/*
Theme Name: NimblePlugins Theme
Theme URI: https://nimbleplugins.com/
Author: NimblePlugins
Description: Purpose-built theme for the NimblePlugins product platform and WooCommerce customer journey.
Version: 0.1.0
Requires at least: 6.7
Requires PHP: 8.1
Text Domain: nimbleplugins
License: GNU General Public License v2 or later
*/

:root {
    /* NimblePlugins brand tokens. Legacy --ith-* aliases are retained for migration compatibility. */
    --np-black: #030608;
    --np-navy: #092a54;
    --np-blue: #0061f4;
    --np-cyan: #009deb;
    --np-silver: #d8dee8;
    --np-white: #ffffff;
    --np-text: #10233f;
    --np-muted: #65758a;
    --np-line: #dce4ed;
    --np-soft: #f4f8fc;

    --ith-navy: var(--np-black);
    --ith-text: var(--np-text);
    --ith-muted: var(--np-muted);
    --ith-orange: var(--np-cyan);
    --ith-orange-dark: var(--np-blue);
    --ith-line: var(--np-line);
    --ith-soft: var(--np-soft);
    --ith-white: var(--np-white);
    --ith-shell: 1220px;
}

*,
*::before,
*::after { box-sizing: border-box; }

html {
    min-height: 100%;
    overflow-x: hidden;
    overflow-y: auto;
    scroll-behavior: smooth;
}

body {
    min-height: 100%;
    margin: 0;
    overflow-x: hidden;
    overflow-y: visible;
    background: var(--ith-white);
    color: var(--ith-text);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 16px;
    line-height: 1.6;
}

body.admin-bar .ith-header { top: 32px; }

a { color: inherit; }
img { display: block; max-width: 100%; height: auto; }

.ith-shell {
    width: min(var(--ith-shell), calc(100% - 48px));
    margin-inline: auto;
}

.ith-site-main { min-height: 60vh; }

.ith-skip {
    position: fixed;
    top: -80px;
    left: 16px;
    z-index: 100000;
    padding: 10px 14px;
    border-radius: 8px;
    background: #fff;
    color: var(--ith-text);
}
.ith-skip:focus { top: 16px; }

/* Header */
.ith-header {
    position: relative;
    z-index: 1000;
    background: linear-gradient(90deg, #030608 0%, #04101f 55%, #030608 100%);
    color: #fff;
}
.ith-header__inner {
    min-height: 82px;
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 34px;
}
.ith-wordmark {
    display: inline-flex;
    align-items: baseline;
    text-decoration: none;
    font-size: 25px;
    font-weight: 800;
    letter-spacing: -.055em;
    white-space: nowrap;
    filter: drop-shadow(0 0 12px rgba(0,157,235,.18));
}
.ith-wordmark__nimble {
    color: #009deb;
    background: linear-gradient(180deg, #17d9ff 0%, #009deb 44%, #0061f4 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}
.ith-wordmark__plugins {
    margin-left: .02em;
    color: #eef3fa;
    background: linear-gradient(180deg, #ffffff 0%, #d8dee8 62%, #a8b7cc 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    font-weight: 650;
}

.ith-nav {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 40px;
}
.ith-nav a,
.ith-account {
    color: #e4ebf3;
    text-decoration: none;
    font-size: 15px;
    font-weight: 600;
    white-space: nowrap;
}
.ith-nav a:hover,
.ith-account:hover,
.ith-nav a[aria-current="page"],
.ith-account[aria-current="page"] { color: #fff; }

.ith-actions {
    display: flex;
    align-items: center;
    gap: 22px;
}
.ith-cart {
    position: relative;
    width: 34px;
    height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    text-decoration: none;
}
.ith-cart svg {
    width: 23px;
    height: 23px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.ith-cart__count {
    position: absolute;
    top: -4px;
    right: -7px;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: var(--ith-orange);
    color: #fff;
    font-size: 10px;
    font-weight: 800;
    line-height: 1;
}
.ith-cart__count[hidden] { display: none; }

/* Footer */
.ith-footer {
    margin-top: 88px;
    padding: 58px 0 24px;
    background: var(--ith-navy);
    color: #cbd6e1;
}
.ith-footer__top {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 40px;
    align-items: start;
}
.ith-footer__top p { margin: 14px 0 0; }
.ith-footer nav {
    display: flex;
    flex-wrap: wrap;
    gap: 26px;
}
.ith-footer nav a {
    color: #e3e9f1;
    text-decoration: none;
}
.ith-footer__bottom {
    margin-top: 42px;
    padding-top: 20px;
    border-top: 1px solid rgba(255,255,255,.12);
    display: flex;
    justify-content: space-between;
    gap: 20px;
    font-size: 13px;
}

/* Standard pages */
.ith-page { padding: 72px 0 96px; }
.ith-page__title {
    margin: 0 0 34px;
    font-size: clamp(42px, 5vw, 68px);
    line-height: 1.02;
    letter-spacing: -.045em;
}

/* Shared WooCommerce */
.ith-commerce { padding: 64px 0 96px; }

.woocommerce .woocommerce-breadcrumb {
    margin: 0 0 26px;
    color: var(--ith-muted);
    font-size: 13px;
}
.woocommerce .woocommerce-breadcrumb a { color: var(--ith-muted); }

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
    margin: 0 0 28px !important;
    padding: 18px 20px 18px 52px !important;
    border: 1px solid var(--ith-line);
    border-top: 3px solid var(--ith-orange);
    border-radius: 12px;
    background: #fff;
    color: var(--ith-text);
}
.woocommerce-error { border-top-color: #b42d2d; }

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
    min-height: 48px;
    padding: 13px 20px;
    border: 0;
    border-radius: 10px;
    background: var(--ith-orange);
    color: #fff;
    font-weight: 800;
    text-decoration: none;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover {
    background: var(--ith-orange-dark);
    color: #fff;
}

/* Shop */
.ith-shop-hero {
    padding: 78px 0 68px;
    background: linear-gradient(135deg, #f7fafc 0%, #eef4fa 58%, #fff7ef 100%);
}
.ith-shop-hero__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr);
    gap: 72px;
    align-items: center;
}
.ith-eyebrow {
    margin: 0 0 16px;
    color: var(--ith-orange);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: .13em;
    text-transform: uppercase;
}
.ith-shop-hero h1 {
    max-width: 780px;
    margin: 0;
    font-size: clamp(46px, 6vw, 76px);
    line-height: 1.02;
    letter-spacing: -.045em;
}
.ith-shop-hero p {
    max-width: 720px;
    margin: 24px 0 0;
    color: var(--ith-muted);
    font-size: 20px;
    line-height: 1.7;
}
.ith-shop-hero__panel {
    display: grid;
    gap: 12px;
    padding: 30px;
    border: 1px solid var(--ith-line);
    border-radius: 22px;
    background: rgba(255,255,255,.88);
    box-shadow: 0 20px 60px rgba(16,35,63,.08);
}
.ith-shop-hero__panel strong { margin-bottom: 8px; font-size: 22px; }
.ith-shop-hero__panel span {
    padding: 14px 16px;
    border-radius: 12px;
    background: var(--ith-soft);
    color: #435269;
}

.ith-shop-body { padding: 68px 0 96px; }
.ith-shop-heading {
    display: flex;
    justify-content: space-between;
    gap: 24px;
    align-items: end;
    margin-bottom: 28px;
}
.ith-shop-heading h2 {
    margin: 0;
    font-size: clamp(38px, 5vw, 60px);
    line-height: 1.05;
    letter-spacing: -.04em;
}
.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering {
    float: none;
    margin: 0;
}
.woocommerce .woocommerce-ordering select {
    min-height: 44px;
    padding: 0 38px 0 12px;
    border: 1px solid var(--ith-line);
    border-radius: 10px;
    background: #fff;
}

.woocommerce ul.products {
    clear: both;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
    margin: 0;
    padding: 0;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after { display: none; }
.woocommerce ul.products li.product {
    width: auto !important;
    float: none !important;
    margin: 0 !important;
    padding: 18px 18px 22px;
    border: 1px solid var(--ith-line);
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 14px 38px rgba(16,35,63,.07);
}
.woocommerce ul.products li.product a img {
    width: 100%;
    margin: 0 0 20px;
    border-radius: 14px;
    background: var(--ith-soft);
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
    padding: 0;
    color: var(--ith-text);
    font-size: 22px;
    line-height: 1.25;
}
.woocommerce ul.products li.product .price {
    margin: 10px 0 16px;
    color: var(--ith-text);
    font-size: 16px;
    font-weight: 800;
}

/* Single product */
.ith-product-page {
    padding: 58px 0 100px;
}
.ith-product-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.06fr) minmax(400px, .94fr);
    gap: 58px;
    align-items: start;
}
.ith-product-media,
.ith-product-summary { min-width: 0; }

.ith-product-media__frame {
    padding: 24px;
    border: 1px solid var(--ith-line);
    border-radius: 22px;
    background: var(--ith-soft);
}
.ith-product-media__frame img {
    width: 100%;
    border-radius: 14px;
}

.ith-product-summary {
    padding: 36px;
    border: 1px solid var(--ith-line);
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 18px 52px rgba(16,35,63,.08);
}
.ith-product-summary h1 {
    margin: 0;
    font-size: clamp(44px, 5vw, 66px);
    line-height: 1.02;
    letter-spacing: -.045em;
}
.ith-product-price {
    margin: 18px 0 0;
    color: var(--ith-text);
    font-size: 24px;
    font-weight: 800;
}
.ith-product-lead {
    margin: 28px 0 0;
    color: var(--ith-text);
    font-size: 18px;
    font-weight: 700;
}
.ith-product-benefits {
    display: grid;
    gap: 12px;
    margin: 20px 0 28px;
    padding: 0;
    list-style: none;
}
.ith-product-benefits li {
    position: relative;
    padding-left: 28px;
    color: var(--ith-muted);
    font-size: 18px;
}
.ith-product-benefits li::before {
    content: "✓";
    position: absolute;
    left: 0;
    top: 0;
    color: var(--ith-orange);
    font-weight: 900;
}
.ith-product-summary form.cart {
    margin: 0;
}
.ith-product-summary form.cart .button {
    width: 100%;
}
.ith-product-meta {
    margin-top: 26px;
    padding-top: 22px;
    border-top: 1px solid var(--ith-line);
    color: var(--ith-muted);
    font-size: 14px;
}
.ith-product-meta a { color: var(--ith-text); }

.ith-product-details {
    margin-top: 64px;
    padding: 48px;
    border-radius: 24px;
    background: var(--ith-soft);
}
.ith-product-details__grid {
    display: grid;
    grid-template-columns: minmax(280px, .9fr) minmax(0, 1.1fr);
    gap: 44px;
}
.ith-product-details h2 {
    margin: 0;
    font-size: clamp(38px, 4.5vw, 58px);
    line-height: 1.05;
    letter-spacing: -.04em;
}
.ith-product-details__copy > p:last-child {
    margin-bottom: 0;
    color: var(--ith-muted);
    font-size: 17px;
}
.ith-product-features {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}
.ith-product-feature {
    padding: 22px;
    border: 1px solid var(--ith-line);
    border-radius: 16px;
    background: #fff;
}
.ith-product-feature h3 { margin: 0 0 8px; font-size: 18px; }
.ith-product-feature p { margin: 0; color: var(--ith-muted); }

/* Cart, checkout and account: deliberately minimal so product plugins own their UI */
.ith-commerce-page { padding: 64px 0 96px; }
.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout,
.woocommerce-cart .woocommerce,
.woocommerce-checkout .woocommerce,
.woocommerce-account .woocommerce {
    width: 100%;
    max-width: none;
}
.woocommerce-account .woocommerce::before,
.woocommerce-account .woocommerce::after { display: none; }

/* Prevent any plugin/modal from leaving the document locked */
html.woocommerce-photo-reviews-locked,
html.pswp-open,
body.pswp-open,
body.woocommerce-modal-open {
    overflow-y: auto !important;
}

@media (max-width: 980px) {
    .ith-nav { gap: 22px; }
    .ith-shop-hero__grid,
    .ith-product-grid,
    .ith-product-details__grid {
        grid-template-columns: 1fr;
    }
    .woocommerce ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
    body.admin-bar .ith-header { top: 46px; }
    .ith-shell { width: min(100% - 28px, var(--ith-shell)); }
    .ith-header__inner {
        min-height: 72px;
        grid-template-columns: 1fr auto;
    }
    .ith-nav,
    .ith-account { display: none; }
    .ith-footer__top,
    .ith-footer__bottom { grid-template-columns: 1fr; }
    .ith-shop-hero { padding: 52px 0; }
    .ith-shop-body,
    .ith-product-page,
    .ith-commerce-page { padding-top: 42px; }
    .ith-shop-heading { display: block; }
    .ith-shop-heading .woocommerce-ordering { margin-top: 18px; }
    .woocommerce ul.products { grid-template-columns: 1fr; }
    .ith-product-summary,
    .ith-product-details { padding: 24px; }
    .ith-product-features { grid-template-columns: 1fr; }
}


/* 1.0.1 — neutralize legacy Storefront cart pseudo-icons */
.ith-header .ith-cart::before,
.ith-header .ith-cart::after {
    content: none !important;
    display: none !important;
    border: 0 !important;
    width: 0 !important;
    height: 0 !important;
}

.ith-header .ith-cart svg {
    display: block !important;
    flex: 0 0 23px;
}

/* 1.0.1 — stable WooCommerce login/register layout */
body.woocommerce-account:not(.logged-in) .ith-page {
    padding-top: 72px;
}

body.woocommerce-account:not(.logged-in) .woocommerce {
    width: min(1080px, 100%) !important;
    margin-inline: auto !important;
}

body.woocommerce-account:not(.logged-in) .woocommerce .u-columns {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 32px;
    align-items: start;
}

body.woocommerce-account:not(.logged-in) .woocommerce .u-column1,
body.woocommerce-account:not(.logged-in) .woocommerce .u-column2 {
    width: auto !important;
    float: none !important;
    margin: 0 !important;
}

body.woocommerce-account:not(.logged-in) .woocommerce h2 {
    margin: 0 0 16px;
}

body.woocommerce-account:not(.logged-in) form.login,
body.woocommerce-account:not(.logged-in) form.register {
    min-height: 100%;
    margin: 0 !important;
    padding: 28px !important;
    border: 1px solid var(--ith-line) !important;
    border-radius: 18px !important;
    background: #fff;
}

@media (max-width: 760px) {
    body.woocommerce-account:not(.logged-in) .woocommerce .u-columns {
        grid-template-columns: 1fr;
    }
}


/* 1.0.2 — neutralize pre-theme full-page offset hacks on embedded legacy pages */
html:has(body.ith-embedded-layout),
body.ith-embedded-layout {
    min-height: 100% !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
}

body.ith-embedded-layout main {
    min-height: 0 !important;
    overflow: visible !important;
}

body.ith-embedded-layout .ith-home.alignfull {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    min-height: 0 !important;
}

/* Ensure the embedded page itself, not an obsolete negative margin, defines document height */
body.ith-embedded-layout .ith-home > footer:last-child {
    margin-bottom: 0 !important;
}


/* 1.0.3 — align account action with the primary navigation */
.ith-header .ith-actions {
    align-self: stretch;
    display: flex;
    align-items: center;
}

.ith-header .ith-account {
    display: inline-flex !important;
    align-items: center !important;
    min-height: 34px;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1 !important;
    transform: none !important;
    position: static !important;
    inset: auto !important;
}

/* 1.0.3 — logged-in inhabtools Account dashboard gets the full theme shell */
body.woocommerce-account.logged-in .ith-page {
    width: 100%;
    max-width: none;
}

body.woocommerce-account.logged-in .ith-page > article,
body.woocommerce-account.logged-in .ith-page .entry-content,
body.woocommerce-account.logged-in .ith-page .woocommerce {
    width: 100% !important;
    max-width: none !important;
    margin-inline: 0 !important;
}

body.woocommerce-account.logged-in .woocommerce-MyAccount-navigation,
body.woocommerce-account.logged-in .woocommerce-MyAccount-content {
    width: 100% !important;
    max-width: none !important;
    float: none !important;
    margin: 0 !important;
}

/* Let the Account plugin own its internal dashboard grid */
body.woocommerce-account.logged-in .woocommerce {
    display: block !important;
}

/* 1.0.3 — My Account guest layout */
body.woocommerce-account:not(.logged-in) .ith-page {
    padding-top: 72px;
    padding-bottom: 96px;
}

body.woocommerce-account:not(.logged-in) .woocommerce {
    width: min(1080px, 100%) !important;
    max-width: 1080px !important;
    margin-inline: auto !important;
}

body.woocommerce-account:not(.logged-in) .woocommerce .u-columns,
body.woocommerce-account:not(.logged-in) .woocommerce .col2-set {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 32px !important;
    align-items: start !important;
    width: 100% !important;
}

body.woocommerce-account:not(.logged-in) .woocommerce .u-column1,
body.woocommerce-account:not(.logged-in) .woocommerce .u-column2,
body.woocommerce-account:not(.logged-in) .woocommerce .col-1,
body.woocommerce-account:not(.logged-in) .woocommerce .col-2 {
    position: static !important;
    width: auto !important;
    max-width: none !important;
    float: none !important;
    margin: 0 !important;
    padding: 0 !important;
    inset: auto !important;
}

body.woocommerce-account:not(.logged-in) .woocommerce h2 {
    margin: 0 0 16px !important;
    font-size: 28px;
    line-height: 1.2;
}

body.woocommerce-account:not(.logged-in) form.login,
body.woocommerce-account:not(.logged-in) form.register {
    min-height: 100%;
    margin: 0 !important;
    padding: 28px !important;
    border: 1px solid var(--ith-line) !important;
    border-radius: 18px !important;
    background: #fff;
}

@media (max-width: 760px) {
    body.woocommerce-account:not(.logged-in) .woocommerce .u-columns,
    body.woocommerce-account:not(.logged-in) .woocommerce .col2-set {
        grid-template-columns: 1fr !important;
    }
}


/* 1.0.4 — balanced logged-in My Account layout */
body.woocommerce-account.logged-in .ith-page {
    width: min(1180px, calc(100% - 48px)) !important;
    max-width: 1180px !important;
    margin-inline: auto !important;
    padding-top: 64px;
    padding-bottom: 96px;
}

body.woocommerce-account.logged-in .ith-page > article,
body.woocommerce-account.logged-in .ith-page .entry-content {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
}

body.woocommerce-account.logged-in .ith-page .woocommerce {
    display: grid !important;
    grid-template-columns: 240px minmax(0, 1fr) !important;
    gap: 32px !important;
    align-items: start !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
}

body.woocommerce-account.logged-in .woocommerce-MyAccount-navigation {
    width: 240px !important;
    max-width: 240px !important;
    float: none !important;
    margin: 0 !important;
    position: sticky;
    top: 24px;
}

body.woocommerce-account.logged-in .woocommerce-MyAccount-content {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    float: none !important;
    margin: 0 !important;
}

body.woocommerce-account.logged-in .woocommerce-MyAccount-navigation ul {
    width: 100% !important;
    margin: 0 !important;
}

@media (max-width: 900px) {
    body.woocommerce-account.logged-in .ith-page .woocommerce {
        grid-template-columns: 1fr !important;
    }

    body.woocommerce-account.logged-in .woocommerce-MyAccount-navigation {
        position: static;
        width: 100% !important;
        max-width: none !important;
    }
}


/* 1.0.5 — My Account page only: vertically center account action and cart */
body.woocommerce-account .ith-header .ith-actions {
    align-self: stretch !important;
    display: flex !important;
    align-items: center !important;
}

body.woocommerce-account .ith-header .ith-account,
body.woocommerce-account .ith-header .ith-cart {
    align-self: center !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    transform: none !important;
}


/* 1.0.6 — My Account page only: force exact vertical centering in header */
body.woocommerce-account .ith-header .ith-header__inner {
    position: relative !important;
}

body.woocommerce-account .ith-header .ith-actions {
    position: absolute !important;
    top: 50% !important;
    right: 0 !important;
    bottom: auto !important;
    left: auto !important;
    width: auto !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
    gap: 22px !important;
    transform: translateY(-50%) !important;
}

body.woocommerce-account .ith-header .ith-account,
body.woocommerce-account .ith-header .ith-cart {
    position: static !important;
    margin: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    transform: none !important;
    line-height: 1 !important;
}

@media (max-width: 760px) {
    body.woocommerce-account .ith-header .ith-actions {
        right: 0 !important;
    }
}


/* 1.0.7 — logged-out My Account: true two-column alignment */
body.woocommerce-account:not(.logged-in) .ith-page {
    width: min(1120px, calc(100% - 48px)) !important;
    max-width: 1120px !important;
    margin-inline: auto !important;
    padding-top: 72px !important;
    padding-bottom: 96px !important;
}

body.woocommerce-account:not(.logged-in) .ith-page > article,
body.woocommerce-account:not(.logged-in) .ith-page .entry-content,
body.woocommerce-account:not(.logged-in) .ith-page .woocommerce {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
}

body.woocommerce-account:not(.logged-in) #customer_login {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 32px !important;
    align-items: start !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
}

body.woocommerce-account:not(.logged-in) #customer_login > .u-column1,
body.woocommerce-account:not(.logged-in) #customer_login > .u-column2,
body.woocommerce-account:not(.logged-in) #customer_login > .col-1,
body.woocommerce-account:not(.logged-in) #customer_login > .col-2 {
    position: static !important;
    width: auto !important;
    max-width: none !important;
    float: none !important;
    margin: 0 !important;
    padding: 0 !important;
    inset: auto !important;
}

body.woocommerce-account:not(.logged-in) #customer_login h2 {
    margin: 0 0 16px !important;
    font-size: 28px !important;
    line-height: 1.2 !important;
}

body.woocommerce-account:not(.logged-in) #customer_login form.login,
body.woocommerce-account:not(.logged-in) #customer_login form.register {
    min-height: 100% !important;
    margin: 0 !important;
    padding: 28px !important;
    border: 1px solid var(--ith-line) !important;
    border-radius: 18px !important;
    background: #fff !important;
}

@media (max-width: 820px) {
    body.woocommerce-account:not(.logged-in) #customer_login {
        grid-template-columns: 1fr !important;
    }
}


/* 1.0.8 — logged-out My Account: target the actual form containers */
body.woocommerce-account:not(.logged-in) .woocommerce:has(form.login):has(form.register) {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 32px !important;
    align-items: start !important;
    width: min(1120px, 100%) !important;
    max-width: 1120px !important;
    margin-inline: auto !important;
}

body.woocommerce-account:not(.logged-in) .woocommerce:has(form.login):has(form.register)
    > *:has(> form.login),
body.woocommerce-account:not(.logged-in) .woocommerce:has(form.login):has(form.register)
    > *:has(> form.register) {
    position: static !important;
    width: auto !important;
    max-width: none !important;
    float: none !important;
    margin: 0 !important;
    padding: 0 !important;
    inset: auto !important;
}

/* Support an extra WooCommerce wrapper layer */
body.woocommerce-account:not(.logged-in) .woocommerce:has(form.login):has(form.register)
    > *:has(form.login):has(form.register) {
    grid-column: 1 / -1;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 32px !important;
    align-items: start !important;
    width: 100% !important;
    margin: 0 !important;
}

body.woocommerce-account:not(.logged-in)
    *:has(> form.login),
body.woocommerce-account:not(.logged-in)
    *:has(> form.register) {
    min-width: 0 !important;
}

body.woocommerce-account:not(.logged-in) form.login,
body.woocommerce-account:not(.logged-in) form.register {
    width: 100% !important;
    min-height: 100% !important;
    margin: 0 !important;
    padding: 28px !important;
    border: 1px solid var(--ith-line) !important;
    border-radius: 18px !important;
    background: #fff !important;
}

body.woocommerce-account:not(.logged-in)
    *:has(> form.login) > h2,
body.woocommerce-account:not(.logged-in)
    *:has(> form.register) > h2 {
    margin: 0 0 16px !important;
    font-size: 28px !important;
    line-height: 1.2 !important;
}

@media (max-width: 820px) {
    body.woocommerce-account:not(.logged-in) .woocommerce:has(form.login):has(form.register),
    body.woocommerce-account:not(.logged-in) .woocommerce:has(form.login):has(form.register)
        > *:has(form.login):has(form.register) {
        grid-template-columns: 1fr !important;
    }
}


/* 1.0.9 — exact logged-out My Account DOM from inhabtools Account */
body.page-id-23:not(.logged-in) .ith-account-layout {
    display: block !important;
    width: min(1120px, 100%) !important;
    max-width: 1120px !important;
    margin: 0 auto !important;
    padding: 0 !important;
}

body.page-id-23:not(.logged-in) .ith-account-layout > .ith-account-intro {
    display: none !important;
}

body.page-id-23:not(.logged-in) .ith-account-layout > #customer_login {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 32px !important;
    align-items: start !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

body.page-id-23:not(.logged-in) #customer_login > .u-column1,
body.page-id-23:not(.logged-in) #customer_login > .u-column2,
body.page-id-23:not(.logged-in) #customer_login > .col-1,
body.page-id-23:not(.logged-in) #customer_login > .col-2 {
    position: static !important;
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    float: none !important;
    margin: 0 !important;
    padding: 0 !important;
    inset: auto !important;
    transform: none !important;
}

body.page-id-23:not(.logged-in) #customer_login h2 {
    margin: 0 0 16px !important;
    font-size: 28px !important;
    line-height: 1.2 !important;
}

body.page-id-23:not(.logged-in) #customer_login form.login,
body.page-id-23:not(.logged-in) #customer_login form.register {
    width: 100% !important;
    min-height: 100% !important;
    margin: 0 !important;
    padding: 28px !important;
    border: 1px solid var(--ith-line) !important;
    border-radius: 18px !important;
    background: #fff !important;
}

@media (max-width: 820px) {
    body.page-id-23:not(.logged-in) .ith-account-layout > #customer_login {
        grid-template-columns: 1fr !important;
    }
}


/* 1.0.10 — exact placement of WooCommerce guest account columns */
body.page-id-23:not(.logged-in) #customer_login > .u-column1,
body.page-id-23:not(.logged-in) #customer_login > .col-1 {
    grid-column: 1 !important;
    grid-row: 1 !important;
    align-self: start !important;
}

body.page-id-23:not(.logged-in) #customer_login > .u-column2,
body.page-id-23:not(.logged-in) #customer_login > .col-2 {
    grid-column: 2 !important;
    grid-row: 1 !important;
    align-self: start !important;
}

@media (max-width: 820px) {
    body.page-id-23:not(.logged-in) #customer_login > .u-column1,
    body.page-id-23:not(.logged-in) #customer_login > .col-1 {
        grid-column: 1 !important;
        grid-row: 1 !important;
    }

    body.page-id-23:not(.logged-in) #customer_login > .u-column2,
    body.page-id-23:not(.logged-in) #customer_login > .col-2 {
        grid-column: 1 !important;
        grid-row: 2 !important;
    }
}


/* 1.0.12 — Lead to Cash desktop product gallery */
.ith-ltc-gallery{padding:96px 0;background:#fff}.ith-ltc-gallery__shell{width:min(1220px,calc(100% - 40px));margin:auto}.ith-ltc-gallery__intro{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:60px;align-items:end;margin-bottom:54px}.ith-ltc-gallery__intro h2,.ith-ltc-edition h3{margin:0;color:#10233f;letter-spacing:-.04em}.ith-ltc-gallery__intro h2{font-size:clamp(34px,4.2vw,54px);line-height:1.08}.ith-ltc-gallery__intro p{margin:0;color:#617083;font-size:18px;line-height:1.72}.ith-ltc-edition{padding:34px;border:1px solid #dfe6ee;border-radius:26px;background:#f7f9fc}.ith-ltc-edition+.ith-ltc-edition{margin-top:34px}.ith-ltc-edition__head{display:flex;justify-content:space-between;gap:28px;align-items:flex-end;margin-bottom:26px}.ith-ltc-edition__head h3{font-size:clamp(30px,3.5vw,46px);line-height:1.05}.ith-ltc-edition__head p{max-width:640px;margin:8px 0 0;color:#617083;line-height:1.65}.ith-ltc-badge{display:inline-flex;align-items:center;padding:8px 11px;border-radius:999px;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;background:#e9f0fa;color:#315f9e}.ith-ltc-badge--pro{background:#fff0e6;color:#aa4f27}.ith-ltc-shot{overflow:hidden;border:1px solid #dce4ed;border-radius:20px;background:#fff;box-shadow:0 18px 45px rgba(16,35,63,.08)}.ith-ltc-shot img{display:block;width:100%;height:auto}.ith-ltc-shot figcaption{padding:18px 20px 21px}.ith-ltc-shot strong{display:block;color:#10233f;font-size:18px}.ith-ltc-shot span{display:block;margin-top:5px;color:#65758a;font-size:14px;line-height:1.55}.ith-ltc-shot--hero{margin-bottom:22px}.ith-ltc-shot-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.ith-ltc-shot-grid--compact{grid-template-columns:repeat(3,minmax(0,1fr))}.ith-ltc-gallery-note{margin:28px 0 0;color:#65758a;font-size:14px;text-align:center}.ith-ltc-mobile-wait{margin-top:34px;padding:28px;border:1px dashed #bfcbd8;border-radius:20px;background:#f7f9fc;text-align:center}.ith-ltc-mobile-wait strong{display:block;color:#10233f;font-size:20px}.ith-ltc-mobile-wait p{margin:8px 0 0;color:#65758a}
@media(max-width:900px){.ith-ltc-gallery__intro{grid-template-columns:1fr;gap:20px}.ith-ltc-edition__head{display:block}.ith-ltc-badge{margin-top:16px}.ith-ltc-shot-grid,.ith-ltc-shot-grid--compact{grid-template-columns:1fr}.ith-ltc-edition{padding:20px}}


/* 1.0.13 — teaser hero and premium compact product storytelling */
.ith-ltc-teaser{
    position:relative;
    overflow:hidden;
    padding:88px 0 82px;
    background:
      radial-gradient(circle at 84% 20%,rgba(207,91,45,.11),transparent 27%),
      linear-gradient(135deg,#f5f8fc 0%,#eef3f9 58%,#fffaf5 100%);
}
.ith-ltc-teaser::after{
    content:"";
    position:absolute;
    right:-120px;
    bottom:-220px;
    width:520px;
    height:520px;
    border:1px solid rgba(16,35,63,.08);
    border-radius:50%;
}
.ith-ltc-teaser__shell{
    position:relative;
    z-index:1;
    width:min(1160px,calc(100% - 40px));
    margin:auto;
    display:grid;
    grid-template-columns:minmax(0,1.02fr) minmax(380px,.78fr);
    gap:78px;
    align-items:center;
}
.ith-ltc-teaser h1{
    max-width:720px;
    margin:0;
    color:#10233f;
    font-size:clamp(48px,6.2vw,82px);
    line-height:.98;
    letter-spacing:-.055em;
}
.ith-ltc-teaser__lead{
    max-width:590px;
    margin:24px 0 0;
    color:#617083;
    font-size:19px;
    line-height:1.65;
}
.ith-ltc-teaser__actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px}
.ith-ltc-teaser__proof{
    display:flex;
    flex-wrap:wrap;
    gap:17px;
    margin-top:25px;
    color:#485970;
    font-size:13px;
    font-weight:750;
}
.ith-ltc-teaser__proof span::before{content:"•";margin-right:8px;color:#009deb}
.ith-ltc-teaser__visual{
    position:relative;
    min-height:470px;
}
.ith-ltc-peek{
    position:absolute;
    overflow:hidden;
    border:1px solid rgba(16,35,63,.12);
    border-radius:22px;
    background:#fff;
    box-shadow:0 28px 70px rgba(16,35,63,.14);
}
.ith-ltc-peek img{width:100%;height:100%;object-fit:cover}
.ith-ltc-peek--desktop{
    top:30px;
    right:0;
    width:min(100%,455px);
    aspect-ratio:1.35;
}
.ith-ltc-peek--desktop img{object-position:0 0}
.ith-ltc-peek--mobile{
    left:0;
    bottom:0;
    width:150px;
    height:310px;
    padding:7px;
    border:7px solid #14243d;
    border-radius:30px;
    transform:rotate(-2deg);
}
.ith-ltc-peek--mobile img{border-radius:17px;object-position:top}
.ith-ltc-peek__label{
    position:absolute;
    right:18px;
    bottom:18px;
    padding:8px 11px;
    border-radius:999px;
    background:rgba(255,255,255,.92);
    color:#10233f;
    font-size:11px;
    font-weight:900;
    letter-spacing:.08em;
    text-transform:uppercase;
    backdrop-filter:blur(8px);
}

.ith-ltc-premium{padding:108px 0;background:#fff}
.ith-ltc-premium__shell{width:min(1160px,calc(100% - 40px));margin:auto}
.ith-ltc-premium__intro{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(320px,.72fr);
    gap:70px;
    align-items:end;
    margin-bottom:68px;
}
.ith-ltc-premium__intro h2{
    max-width:720px;
    margin:0;
    color:#10233f;
    font-size:clamp(38px,4.8vw,62px);
    line-height:1.03;
    letter-spacing:-.045em;
}
.ith-ltc-premium__intro > p{margin:0;color:#617083;font-size:18px;line-height:1.72}
.ith-ltc-story{
    display:grid;
    grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr);
    gap:64px;
    align-items:center;
    padding:70px 0;
    border-top:1px solid #e2e8ef;
}
.ith-ltc-story--reverse{grid-template-columns:minmax(0,1.28fr) minmax(280px,.72fr)}
.ith-ltc-story--reverse .ith-ltc-story__copy{order:2}
.ith-ltc-story__copy h3{
    margin:0;
    color:#10233f;
    font-size:clamp(31px,3.4vw,46px);
    line-height:1.06;
    letter-spacing:-.035em;
}
.ith-ltc-story__copy p{margin:16px 0 0;color:#617083;font-size:17px;line-height:1.72}
.ith-ltc-story__copy ul{display:grid;gap:9px;margin:24px 0 0;padding:0;list-style:none;color:#34475f}
.ith-ltc-story__copy li::before{content:"✓";margin-right:10px;color:#009deb;font-weight:900}
.ith-ltc-mosaic{
    display:grid;
    grid-template-columns:repeat(12,1fr);
    gap:16px;
    align-items:start;
}
.ith-ltc-frame{
    overflow:hidden;
    margin:0;
    border:1px solid #dce4ed;
    border-radius:18px;
    background:#fff;
    box-shadow:0 20px 48px rgba(16,35,63,.09);
}
.ith-ltc-frame img{display:block;width:100%;height:100%;object-fit:cover;object-position:top}
.ith-ltc-frame figcaption{padding:13px 15px;color:#10233f;font-size:13px;font-weight:800}
.ith-ltc-frame--wide{grid-column:1/9}
.ith-ltc-frame--small{grid-column:9/13;margin-top:46px}
.ith-ltc-frame--left{grid-column:1/6;margin-top:38px}
.ith-ltc-frame--right{grid-column:6/13}
.ith-ltc-phone{
    overflow:hidden;
    border:7px solid #14243d;
    border-radius:28px;
    background:#14243d;
    box-shadow:0 22px 52px rgba(16,35,63,.16);
}
.ith-ltc-phone img{width:100%;height:100%;object-fit:cover;object-position:top;border-radius:17px}
.ith-ltc-mobile-stage{
    display:flex;
    justify-content:center;
    align-items:flex-end;
    gap:18px;
    min-height:440px;
    padding:30px 24px 0;
    border-radius:28px;
    background:linear-gradient(145deg,#edf3f8,#faf7f2);
}
.ith-ltc-mobile-stage .ith-ltc-phone{width:165px;height:350px}
.ith-ltc-mobile-stage .ith-ltc-phone:nth-child(2){width:185px;height:390px;transform:translateY(-18px)}
.ith-ltc-editions{
    margin-top:70px;
    padding:58px;
    border-radius:30px;
    background:#10233f;
    color:#fff;
}
.ith-ltc-editions__head{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:30px;
    align-items:end;
    margin-bottom:36px;
}
.ith-ltc-editions h3{margin:0;color:#fff;font-size:clamp(34px,4vw,52px);line-height:1.06;letter-spacing:-.04em}
.ith-ltc-editions p{max-width:690px;margin:13px 0 0;color:#c8d3df;line-height:1.7}
.ith-ltc-pro-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.ith-ltc-pro-grid .ith-ltc-frame{box-shadow:none}
.ith-ltc-pro-grid .ith-ltc-frame img{aspect-ratio:1.45}
.ith-ltc-mobile-note{margin-top:24px;color:#9fb0c3;font-size:13px;text-align:center}

@media(max-width:900px){
    .ith-ltc-teaser__shell,.ith-ltc-premium__intro,.ith-ltc-story,.ith-ltc-story--reverse{grid-template-columns:1fr}
    .ith-ltc-teaser__visual{min-height:420px;max-width:560px}
    .ith-ltc-story--reverse .ith-ltc-story__copy{order:0}
    .ith-ltc-editions{padding:34px 24px}
    .ith-ltc-editions__head{grid-template-columns:1fr}
    .ith-ltc-pro-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:620px){
    .ith-ltc-teaser{padding:62px 0 56px}
    .ith-ltc-teaser__shell,.ith-ltc-premium__shell{width:min(100% - 28px,1160px)}
    .ith-ltc-teaser h1{font-size:clamp(43px,14vw,62px)}
    .ith-ltc-teaser__visual{min-height:365px}
    .ith-ltc-peek--desktop{width:92%;height:240px}
    .ith-ltc-peek--mobile{width:126px;height:260px}
    .ith-ltc-premium{padding:78px 0}
    .ith-ltc-story{gap:34px;padding:54px 0}
    .ith-ltc-frame--wide,.ith-ltc-frame--small,.ith-ltc-frame--left,.ith-ltc-frame--right{grid-column:1/-1;margin-top:0}
    .ith-ltc-mobile-stage{overflow:hidden;justify-content:flex-start;padding-inline:18px}
    .ith-ltc-mobile-stage .ith-ltc-phone{flex:0 0 145px}
    .ith-ltc-mobile-stage .ith-ltc-phone:nth-child(2){flex-basis:155px}
    .ith-ltc-pro-grid{grid-template-columns:1fr}
}


/* 1.0.14 — restrained homepage product preview */
.ith-home-preview{
    padding:88px 0;
    background:#fff;
}
.ith-home-preview__shell{
    width:min(1160px,calc(100% - 40px));
    margin:auto;
    display:grid;
    grid-template-columns:minmax(0,.72fr) minmax(460px,1.28fr);
    gap:72px;
    align-items:center;
}
.ith-home-preview__copy h2{
    margin:0;
    color:#10233f;
    font-size:clamp(38px,4.5vw,58px);
    line-height:1.04;
    letter-spacing:-.045em;
}
.ith-home-preview__copy p{
    max-width:520px;
    margin:20px 0 0;
    color:#617083;
    font-size:18px;
    line-height:1.72;
}
.ith-home-preview__link{
    display:inline-flex;
    align-items:center;
    gap:10px;
    margin-top:26px;
    color:#10233f;
    font-weight:850;
    text-decoration:none;
}
.ith-home-preview__link:hover{color:#009deb}
.ith-home-preview__visual{
    position:relative;
    min-height:430px;
}
.ith-home-preview__desktop{
    position:absolute;
    inset:0 0 auto auto;
    width:min(100%,610px);
    overflow:hidden;
    border:1px solid #dce4ed;
    border-radius:22px;
    background:#fff;
    box-shadow:0 24px 62px rgba(16,35,63,.12);
}
.ith-home-preview__desktop img{
    width:100%;
    aspect-ratio:1.48;
    object-fit:cover;
    object-position:top;
}
.ith-home-preview__mobile{
    position:absolute;
    left:0;
    bottom:0;
    width:150px;
    height:315px;
    padding:6px;
    overflow:hidden;
    border:7px solid #14243d;
    border-radius:30px;
    background:#14243d;
    box-shadow:0 20px 48px rgba(16,35,63,.18);
    transform:rotate(-2deg);
}
.ith-home-preview__mobile img{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:top;
    border-radius:17px;
}
.ith-home-preview__tag{
    position:absolute;
    right:18px;
    bottom:18px;
    padding:8px 11px;
    border-radius:999px;
    background:rgba(255,255,255,.92);
    color:#10233f;
    font-size:11px;
    font-weight:900;
    letter-spacing:.08em;
    text-transform:uppercase;
    backdrop-filter:blur(8px);
}
@media(max-width:900px){
    .ith-home-preview__shell{grid-template-columns:1fr}
    .ith-home-preview__visual{max-width:650px;min-height:420px}
}
@media(max-width:620px){
    .ith-home-preview{padding:68px 0}
    .ith-home-preview__shell{width:min(100% - 28px,1160px);gap:42px}
    .ith-home-preview__visual{min-height:350px}
    .ith-home-preview__desktop{width:94%}
    .ith-home-preview__mobile{width:126px;height:260px}
}

/* 1.0.15 — TranslatePress language switcher */
.ith-language-switcher{display:flex;align-items:center;margin-left:2px}
.ith-language-switcher .trp-language-switcher-container,.ith-language-switcher .trp-language-switcher{margin:0}
.ith-language-switcher .trp-language-switcher{width:auto;height:auto}
.ith-language-switcher .trp-language-switcher>div{width:auto!important;min-width:0;padding:0;border:0;background:transparent}
.ith-language-switcher .trp-language-switcher>div>a{display:inline-flex;align-items:center;min-height:34px;padding:7px 9px;border:1px solid rgba(255,255,255,.2);border-radius:999px;background:rgba(255,255,255,.06);color:#fff;font-size:12px;font-weight:850;line-height:1;text-decoration:none;text-transform:uppercase}
.ith-language-switcher .trp-language-switcher>div>a:hover{background:rgba(255,255,255,.13)}
.ith-language-switcher img{width:16px!important;height:auto!important;margin-right:5px!important}
.ith-language-switcher--embedded{margin-left:0}
.ith-language-switcher--embedded .trp-language-switcher>div>a{color:#fff}
.ith-language-switcher--mobile{width:100%;margin-top:8px;padding-top:12px;border-top:1px solid rgba(255,255,255,.14)}
.ith-language-switcher--mobile .trp-language-switcher>div>a{min-height:40px;padding:9px 12px}
@media(max-width:760px){.ith-header .ith-language-switcher{display:none}}
