*{box-sizing:border-box;margin:0;padding:0}
:root{--wrap:1360px;--blue:#0b28fb;--green:#34ca8d;--dark:#06081a;--mid:#1a1f3a;--light:#f2f5ff;--muted:#7a85a3;--border:rgba(11,40,251,0.11);--white:#fff;--r:12px;--rl:20px;--f:'DM Sans',sans-serif;--fh:'Syne',sans-serif;
  /* Placeholders are hints, not content: lighter than --muted so a filled
     field always reads louder than an empty one. Left to the browser they
     came out near-black and competed with real answers. */
  --ph:#aeb6c9}
html{scroll-behavior:smooth;overscroll-behavior-y:none}
body{overscroll-behavior-y:none}
body{font-family:var(--f);color:var(--dark);background:var(--white);overflow-x:hidden}
input::placeholder,textarea::placeholder{color:var(--ph);opacity:1}
/* Safari and older WebKit ignore the standard selector. */
input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:var(--ph)}
/* A select showing its "Select…" prompt is a placeholder in all but name. */
select:has(option[value=""]:checked){color:var(--ph)}
select option{color:var(--dark)}

/* WordPress/WooCommerce visually-hidden text (price labels, form hints) — without this the
   absolutely positioned spans widen the page on phones. */
.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}

/* ── NAV ──────────────────────────────────────────────────────────────── */
nav{position:sticky;top:0;z-index:200;background:rgba(255,255,255,.97);backdrop-filter:blur(14px);border-bottom:1px solid var(--border);height:66px;display:flex;align-items:center;padding:0 40px}
/* Home page: the header rides over the dark hero until the page is scrolled,
   when main.js adds .nav-solid and it returns to the normal white bar. */
nav{transition:background .25s,border-color .25s,box-shadow .25s}
/* Fixed rather than sticky so the hero runs underneath it — a sticky bar keeps
   its own 66px band in the flow, and "transparent" would just show the page
   behind it instead of the hero. */
.nav-tp{position:fixed;right:0;left:0}
.nav-tp:not(.nav-solid){background:transparent;border-bottom-color:transparent;backdrop-filter:none}
/* Everything in the bar goes light while it sits on the hero. */
.nav-tp:not(.nav-solid) .nl{color:#fff}
.nav-tp:not(.nav-solid) .nl:hover,.nav-tp:not(.nav-solid) .nl.on{background:rgba(255,255,255,.16);color:#fff}
.nav-tp:not(.nav-solid) .profile-btn,
.nav-tp:not(.nav-solid) .cart-btn,
.nav-tp:not(.nav-solid) .mob-ham{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.35);color:#fff}
.nav-tp:not(.nav-solid) .profile-btn:hover,
.nav-tp:not(.nav-solid) .cart-btn:hover,
.nav-tp:not(.nav-solid) .mob-ham:hover{background:rgba(255,255,255,.22)}
.nav-tp:not(.nav-solid) .mob-ham span{background:#fff}
/* The icon and the running total carry their own dark colours. */
.nav-tp:not(.nav-solid) .cart-btn i,
.nav-tp:not(.nav-solid) .cart-btn .cart-val,
.nav-tp:not(.nav-solid) .profile-btn i,
.nav-tp:not(.nav-solid) .profile-name{color:#fff}
/* Two logos are rendered; only one is ever shown. Both carry .ctl-logo-img, so
   these have to outrank its own `display:block` — hence the img qualifier. */
.logo img.ctl-logo-onhero{display:none}
.nav-tp:not(.nav-solid) .logo img.ctl-logo-img:not(.ctl-logo-onhero){display:none}
.nav-tp:not(.nav-solid) .logo img.ctl-logo-onhero{display:block}
/* Dashboard: dark header — the customer area, not the marketing site */
nav.nav-dark{background:var(--dark);border-bottom-color:rgba(255,255,255,.08);backdrop-filter:none}
.nav-new-test{display:inline-flex;align-items:center;gap:8px;background:var(--blue);color:#fff;border:none;border-radius:10px;padding:0 16px;height:40px;font-family:var(--fh);font-size:13.5px;font-weight:700;cursor:pointer;margin-left:0;transition:background .15s}
.nav-dark .nav-r{margin-right:8px}
.nav-dash-title{font-family:var(--fh);font-size:17px;font-weight:700;color:#fff;margin-right:18px;padding-right:18px;border-right:1px solid rgba(255,255,255,.15);line-height:1;white-space:nowrap}
.dash-main .btn-p{font-family:var(--fh);font-weight:700;letter-spacing:-.01em}
.nav-new-test:hover{background:#0720d8}
.nav-new-test i{font-size:16px}
.nav-dark .nl{color:rgba(255,255,255,.8)}
.nav-dark .nl:hover,.nav-dark .nl.on{background:rgba(255,255,255,.1);color:#fff}
.nav-dark .profile-btn,.nav-dark .cart-btn,.nav-dark .mob-ham{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.22);color:#fff}
.nav-dark .profile-btn:hover,.nav-dark .cart-btn:hover{background:rgba(255,255,255,.16)}
.nav-dark .cart-btn i,.nav-dark .profile-btn i{color:#fff}
.nav-dark .cart-val,.nav-dark .profile-name{color:#fff}
.nav-dark .mob-ham span{background:#fff}

/* Offset the sticky nav below the WordPress admin toolbar when present */
body.admin-bar nav{top:32px}
@media screen and (max-width:782px){body.admin-bar nav{top:46px}}
.ni{max-width:var(--wrap);margin:0 auto;width:100%;display:flex;align-items:center}
/* Dashboard: full-width header so it lines up with the full-bleed dashboard */
.ctl-dash-nav{padding:0 24px}
.ctl-dash-nav .ni{max-width:none}
.logo{display:flex;align-items:center;gap:9px;cursor:pointer;flex-shrink:0;text-decoration:none}
/* Brand logo image (replaces the old inline SVG mark + text) */
.ctl-logo-img{width:auto;display:block}
.logo .ctl-logo-img{height:46px}
.mob-hd .ctl-logo-img{height:32px}
footer .fn .ctl-logo-img{height:48px}
.si-left .ctl-logo-img{height:42px}
.auth-card .ctl-logo-img,.si-logo .ctl-logo-img{height:40px;margin:0 auto}
.lw{display:flex;flex-direction:column;line-height:1}
.lw-m{font-family:var(--fh);font-size:13px;font-weight:700;color:var(--blue);letter-spacing:.04em}
.lw-s{font-size:8.5px;color:var(--muted);letter-spacing:.07em;text-transform:uppercase}
.nav-links{display:flex;align-items:center;gap:1px;margin-right:auto}
.nl{background:none;border:none;font-family:var(--f);font-size:13.5px;font-weight:500;color:var(--dark);padding:7px 12px;border-radius:8px;cursor:pointer;transition:all .15s;text-decoration:none;display:inline-flex;align-items:center;gap:6px}
.nl:hover,.nl.on{background:var(--light);color:var(--blue)}
.nav-r{display:flex;align-items:center;gap:8px;margin-right:14px}
.cart-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;width:40px;padding:0;box-sizing:border-box;border-radius:10px;border:1px solid var(--border);background:#fff;cursor:pointer;font-size:18px;color:#111;transition:background .15s,border-color .15s}
.cart-btn.has-items{width:auto;padding:0 14px}
.cart-btn:hover{background:var(--light);border-color:rgba(11,40,251,.25)}
.cart-btn i{font-size:20px;color:#111}
.cart-count{position:absolute;top:-5px;left:-5px;background:var(--blue);color:#fff;width:17px;height:17px;border-radius:50%;font-size:9px;font-weight:700;display:flex;align-items:center;justify-content:center}
.cart-val{font-family:var(--f);font-size:13.5px;font-weight:700;color:var(--dark)}
@media(max-width:520px){.cart-val{display:none}}
#nav-dash{display:inline-flex;align-items:center;gap:6px}

/* Nav buttons uniform */
.login-btn{width:36px;height:36px;padding:0;border-radius:8px;border:1px solid var(--border);background:#fff;display:flex;align-items:center;justify-content:center;font-size:0;cursor:pointer;transition:all .15s}
.login-btn i{font-size:18px;color:#111;margin:0}
.login-btn:hover{background:var(--light);border-color:rgba(11,40,251,.25)}
.login-txt{display:inline!important;color:#111!important;font-size:12.5px!important;font-weight:600}
.login-btn{width:auto!important;padding:6px 12px!important;gap:7px!important;font-size:12.5px!important;font-weight:600!important;color:#111!important}
.login-notif{position:absolute!important;top:-5px!important;left:-5px!important;background:#e53e3e!important;color:#fff!important;width:17px!important;height:17px!important;border-radius:50%!important;font-size:9px!important;font-weight:700!important;display:flex!important;align-items:center!important;justify-content:center!important}
.login-btn{position:relative!important}

/* Profile button */
.profile-btn{width:40px;height:40px;border-radius:10px;border:1px solid var(--border);background:#fff;color:var(--dark);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;font-size:20px;box-sizing:border-box;transition:background .15s,border-color .15s;text-decoration:none}
.profile-btn.has-name{width:auto;padding:0 14px}
.profile-photo{width:28px;height:28px;border-radius:50%;object-fit:cover;display:block}
.acct-photo{width:72px;height:72px;border-radius:50%;object-fit:cover;display:block;margin:0 0 16px;border:1px solid var(--border)}
/* Profile: waiting e-mail change + Google sign-in row */
.acct-pending{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin-top:6px;padding:9px 12px;border-radius:9px;background:#fdf6e7;color:#7a5200;font-size:13px}
.acct-pending>i{font-size:16px}
.acct-pending>span{flex:1;min-width:0;overflow-wrap:anywhere}
.acct-link{border:0;background:none;padding:0;font:600 13px var(--f);color:var(--blue);cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.acct-link:disabled{opacity:.5;cursor:wait}
.acct-link.is-off{color:var(--muted);text-decoration:none;cursor:help;margin-right:0}
.acct-google-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-height:44px}
.acct-google-mail{flex:1;min-width:0;font-size:14px;color:var(--dark);overflow-wrap:anywhere}
.acct-google-btn{width:auto}
.profile-name{display:none;font-family:var(--f);font-size:13.5px;font-weight:600}
.profile-btn.has-name .profile-name{display:inline}
.profile-btn:hover{background:var(--light);border-color:var(--blue);color:var(--blue)}

/* Left nav links */
.nav-left-links{display:flex;align-items:center;gap:1px;margin-right:16px}
@media(max-width:768px){.nav-left-links{display:none}}

/* Logo tagline */
.logo-tag{cursor:pointer;font-family:var(--fh);font-size:13px;font-weight:700;color:var(--dark);margin-right:10px;padding-right:11px;border-right:1px solid var(--border);white-space:nowrap;letter-spacing:-.01em}
.logo-tag em{color:var(--blue);font-style:normal}
@media(max-width:980px){.logo-tag{display:none}}

/* ── DESKTOP MEGAMENU ─────────────────────────────────────────────────── */
.nav-mega{position:static;display:inline-flex}   /* the panel hangs off the bar itself, wherever the bar is (admin bar, scrolled, top) */
.nl-mega{display:inline-flex;align-items:center;gap:5px}
.nl-mega .nl-caret{font-size:15px;transition:transform .2s}
.nav-mega:hover .nl-caret{transform:rotate(-180deg)}
.mega-panel{position:absolute;top:100%;right:0;left:0;width:auto;transform:translateY(6px);background:#fff;border-top:1px solid var(--border);border-bottom:1px solid var(--border);box-shadow:0 24px 60px rgba(6,8,26,.18);
  /* full-bleed white; the three cards keep the width they always had */
  padding:24px max(61px, calc((100vw - var(--wrap)) / 2 + 21px)) 26px;display:grid;grid-template-columns:repeat(4,1fr);gap:18px;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .13s,transform .13s,visibility .13s;z-index:1200}
.mega-panel::before{content:'';position:absolute;bottom:100%;right:0;left:0;height:30px}
.nav-mega:hover .mega-panel{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}
/* The rest of the page dims while the menu is open — same idea as the side cart,
   but driven by hover. It sits under the header, so the bar stays as it is. */
body::after{content:'';position:fixed;inset:0;background:rgba(6,8,26,.5);opacity:0;visibility:hidden;pointer-events:none;z-index:150;transition:opacity .13s,visibility .13s}
body:has(.nav-mega:hover)::after{opacity:1;visibility:visible}
/* Dashboard (full-width nav): the megamenu item sits on the right, so anchor the
   panel to the right edge instead of centering it — keeps the mouse path to the
   panel continuous (no gap that hides it on the way down). */
.ctl-dash-nav .mega-panel{right:auto;left:24px;width:min(var(--wrap), calc(100vw - 48px));padding:20px;border:1px solid var(--border);border-radius:0 0 16px 16px;transform:translateX(0) translateY(6px)}
.ctl-dash-nav .nav-mega:hover .mega-panel{transform:translateX(0) translateY(0)}
.mega-card{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:13px;overflow:hidden;transition:border-color .15s,box-shadow .15s;background:#fff;text-decoration:none;cursor:pointer}
.mega-card:hover{border-color:var(--blue);box-shadow:0 8px 22px rgba(11,40,251,.1)}
.mega-card-img{height:120px;background-size:cover;background-position:center;position:relative;display:flex;align-items:center;justify-content:center;text-decoration:none}
.mega-card-img::after{content:'';position:absolute;inset:0;background:rgba(0,0,0,.55);transition:background .15s}
.mega-card:hover .mega-card-img::after{background:rgba(0,0,0,.45)}
.mega-card-tag{position:relative;z-index:1;font-family:var(--fh);font-size:30px;font-weight:800;color:#fff;letter-spacing:.02em;text-align:center;text-shadow:0 2px 10px rgba(0,0,0,.5)}
/* Lab tests card: every test as a compact link list, same height as the CPSR/SDS cards */
.mega-card-tests{cursor:default}
.mega-tests{list-style:none;margin:0 0 10px;padding:0;flex:1;display:flex;flex-direction:column;gap:2px}
.mega-tests a{display:flex;align-items:center;gap:8px;padding:5px 8px;margin:0 -8px;border-radius:7px;font-size:12.5px;font-weight:600;color:var(--dark);text-decoration:none;line-height:1.3;transition:background .12s,color .12s}
.mega-tests a .ti{font-size:15px;color:var(--blue);flex:none}
.mega-tests a .mega-tests-go{margin-right:auto;font-size:13px;color:var(--muted);opacity:0;transition:opacity .12s}
.mega-tests a:hover{background:rgba(11,40,251,.07);color:var(--blue)}
.mega-tests a:hover .mega-tests-go{opacity:1}
.mega-tests button{display:flex;align-items:center;gap:8px;width:calc(100% + 16px);padding:5px 8px;margin:0 -8px;border:0;background:none;border-radius:7px;font-family:var(--f);font-size:12.5px;font-weight:600;color:var(--dark);text-align:right;line-height:1.3;cursor:pointer;transition:background .12s,color .12s}
.mega-tests button .ti{font-size:15px;color:var(--blue);flex:none}
.mega-tests button:hover{background:rgba(11,40,251,.07);color:var(--blue)}
.mega-off{margin-right:auto;flex:none;background:var(--green);color:#06081a;font-size:11px;font-weight:800;padding:2px 7px;border-radius:20px}
.mega-card-bd{padding:13px 14px 15px;display:flex;flex-direction:column;flex:1}
.mega-card-bd h4{font-family:var(--fh);font-size:14px;font-weight:700;color:var(--dark);margin-bottom:5px}
.mega-card-bd p{font-size:11.5px;color:var(--muted);line-height:1.5;margin-bottom:12px;flex:1}
.mega-cta{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:100%;background:var(--blue);color:#fff;border:none;cursor:pointer;font-family:var(--f);font-size:12px;font-weight:700;padding:8px 12px;border-radius:8px;transition:background .15s}
.mega-cta:hover{background:#0720d8}
a.mega-cta,a.mega-cta:hover{text-decoration:none}
.mega-cta.alt{background:rgba(11,40,251,.08);color:var(--blue)}
.mega-cta.alt:hover{background:rgba(11,40,251,.15)}
@media(max-width:980px){.nav-mega{display:none}}

/* ── MOBILE MENU ──────────────────────────────────────────────────────── */
.mob-ham{width:36px;height:36px;padding:0;border-radius:8px;border:1px solid var(--border);background:#fff;display:none;align-items:center;justify-content:center;flex-direction:column;gap:5px;cursor:pointer;flex-shrink:0}
.mob-ham span{width:16px;height:2px;background:#111;border-radius:2px;display:block}
.mob-ham:hover{background:var(--light)}
.mob-ov{position:fixed;inset:0;background:rgba(6,8,26,.55);z-index:600;display:none}
.mob-ov.open{display:block}
.mob-menu{position:fixed;top:0;right:auto!important;left:0!important;width:min(66vw, 380px);height:100%;background:#fff;z-index:601;transform:translateX(-100%)!important;transition:transform .3s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;overflow-y:auto;box-shadow:-8px 0 40px rgba(6,8,26,.22)}
.mob-menu.open{transform:translateX(0)!important}
@media(max-width:768px){
  .mob-menu{width:100%!important;max-width:none;box-shadow:none}
  .mob-hd{position:sticky;top:0;background:#fff;z-index:2}
  .mob-hd-cl{width:40px;height:40px;font-size:20px;border-color:var(--dark)}
  .mob-nav-item{padding:16px 24px;font-size:16px;text-align:right}
  .mob-hd{flex-direction:row!important}
}
.mob-hd{display:flex;align-items:center;justify-content:space-between;flex-direction:row-reverse!important;padding:18px 20px;border-bottom:1px solid var(--border)}
.mob-hd-cl{width:34px;height:34px;border:1px solid var(--border);border-radius:8px;background:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:18px;color:var(--muted)}
.mob-nav-item{display:block;padding:13px 24px;font-size:15px;font-weight:500;color:var(--dark);text-decoration:none;border-bottom:1px solid rgba(0,0,0,.05);cursor:pointer;background:none;border-right:none;border-left:none;font-family:var(--f);width:100%;text-align:left!important;transition:background .12s}
.mob-nav-item:hover{background:rgba(11,40,251,.04);color:var(--blue)}
.mob-nav-item.special{color:var(--blue);font-weight:600}
.mob-footer{padding:20px;border-top:1px solid var(--border);margin-top:auto}
.mob-cta{display:block;width:100%;background:var(--blue);color:#fff;font-size:14px;font-weight:600;padding:12px;border-radius:9px;border:none;cursor:pointer;font-family:var(--f);margin-bottom:12px;text-align:center;text-decoration:none}
.mob-lang-row{display:flex;gap:8px;flex-wrap:wrap}
.mob-lang-btn{padding:6px 12px;border:1px solid var(--border);border-radius:7px;background:none;cursor:pointer;font-size:13px;font-weight:600;font-family:var(--f);display:flex;align-items:center;gap:5px;transition:all .15s}
.mob-lang-btn.on{background:var(--blue);color:#fff;border-color:var(--blue)}
.mob-lang-btn:hover:not(.on){background:var(--light)}

/* ── HERO ─────────────────────────────────────────────────────────────── */
.hero{position:relative;min-height:88vh;display:flex;align-items:center;padding:90px 40px;overflow:hidden}
.hero-img{position:absolute;inset:0;background-size:cover;background-position:center;animation:kbz 20s ease-in-out infinite alternate}
@keyframes kbz{0%{transform:scale(1);opacity:.48}50%{opacity:.58}100%{transform:scale(1.07) translateX(1.5%);opacity:.40}}
.hero-grad{position:absolute;inset:0;background:linear-gradient(-125deg,rgba(8,18,90,.86) 0%,rgba(11,28,120,.76) 45%,rgba(6,8,26,.84) 100%)}
.hero-glow{position:absolute;width:600px;height:600px;top:50%;left:5%;transform:translateY(-50%);background:radial-gradient(ellipse,rgba(52,202,141,.08) 0%,transparent 70%);pointer-events:none}
.hero-in{max-width:var(--wrap);margin:0 auto;width:100%;display:grid;grid-template-columns:1.5fr 1fr!important;gap:48px!important;align-items:center;position:relative;z-index:1}
.h-badge{display:inline-flex;align-items:center;gap:7px;background:rgba(52,202,141,.12);border:1px solid rgba(52,202,141,.28);color:var(--green);padding:6px 13px;border-radius:100px;font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;margin-bottom:26px}
.hero h1,.h-title{font-family:var(--fh);font-size:clamp(30px,4vw,52px)!important;font-weight:700;color:#fff;line-height:1.08!important;letter-spacing:-.022em;margin-bottom:20px}
.hero h1 em{color:var(--green);font-style:normal}
@media(min-width:1025px){.hero h1 em{display:block}}
.hero-sub{font-size:16.5px;color:rgba(255,255,255,.65);line-height:1.7;margin-bottom:34px;max-width:460px}
.hero-btns{display:flex!important;gap:0!important;align-items:flex-end!important;flex-wrap:wrap}
.hero-btn-col{display:flex;flex-direction:column;gap:9px;align-items:flex-start}
.hero-btn-lbl{font-size:10.5px;font-weight:700;color:rgba(255,255,255,.45);text-transform:uppercase;letter-spacing:.09em;white-space:nowrap}
.hero-btn-div{width:1px;height:44px;background:rgba(255,255,255,.18);margin:0 22px;flex-shrink:0;align-self:center;margin-bottom:2px}
.btn-p{background:var(--blue);color:#fff;font-size:14px;font-weight:600;padding:13px 24px;border-radius:10px;border:none;cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:all .2s;font-family:var(--f);text-decoration:none}
.btn-p:hover{background:#0a20d8;transform:translateY(-1px)}
.btn-g{background:rgba(255,255,255,.09);color:#fff;font-size:14px;font-weight:500;padding:13px 24px;border-radius:10px;border:1px solid rgba(255,255,255,.18);cursor:pointer;display:inline-flex;align-items:center;gap:8px;font-family:var(--f);text-decoration:none}
.btn-g:hover{background:rgba(255,255,255,.15)}
.h-stats{display:flex;flex-wrap:nowrap!important;gap:20px!important;align-items:flex-start;margin-top:44px;padding-top:36px;border-top:1px solid rgba(255,255,255,.1)}
.h-stats>div{flex:0 0 auto}
.hst-n{display:block;font-family:var(--fh);font-size:27px!important;font-weight:700;color:#fff;line-height:1}
.hst-l{font-size:10px!important;color:rgba(255,255,255,.42);text-transform:uppercase;letter-spacing:.07em;margin-top:4px;display:block}

/* Hero animated card */
.h-card{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.11);border-radius:var(--rl);padding:22px!important;backdrop-filter:blur(8px)}
.h-card-hd{font-size:10px;text-transform:uppercase;letter-spacing:.11em;color:rgba(255,255,255,.35);margin-bottom:14px!important;font-weight:700}
.ost{display:flex;align-items:center;gap:12px;padding:9px 0!important;border-bottom:1px solid rgba(255,255,255,.07);transition:all .4s}
.ost:last-child{border-bottom:none;padding-bottom:0}
.osn{width:25px!important;height:25px!important;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0;transition:background-color .5s,color .5s}
.os-d{background:var(--green);color:#fff}
.osn .ti{font-size:13px}
.os-pop .ti{animation:osPop .35s cubic-bezier(.3,1.6,.5,1)}
@keyframes osPop{from{transform:scale(0) rotate(30deg);opacity:0}to{transform:none;opacity:1}}
.os-a{background:var(--blue);color:#fff}
.os-p{background:rgba(255,255,255,.07);color:rgba(255,255,255,.3)}
@keyframes pulse-ring{0%,100%{box-shadow:0 0 0 0 rgba(11,40,251,.5)}50%{box-shadow:0 0 0 5px rgba(11,40,251,0)}}
.os-a{animation:pulse-ring 1.8s ease-in-out infinite}
.ost-t{font-size:13px;font-weight:500;transition:color .4s}
.ost-t i{margin-left:7px;font-size:14px;opacity:.85;vertical-align:-1px}
.ost-s{font-size:11px;color:rgba(255,255,255,.3);margin-top:2px}
.osb{margin-right:auto;font-size:9.5px;font-weight:700;padding:3px 8px;border-radius:100px;transition:all .4s;white-space:nowrap}
.bd{background:rgba(52,202,141,.14);color:var(--green)}
.ba{background:rgba(11,40,251,.22);color:#8aabff}

/* Button tooltip */
.with-tt{position:relative;display:inline-block}
.btn-tt{position:absolute;bottom:calc(100% + 12px);right:50%;transform:translateX(50%);width:270px;background:#111827;color:#fff;font-size:12.5px;line-height:1.6;padding:13px 15px;border-radius:11px;pointer-events:none;opacity:0;transition:opacity .2s,transform .2s;text-align:right;box-shadow:0 10px 30px rgba(0,0,0,.35);z-index:500;transform:translateX(50%) translateY(6px)}
.with-tt:hover .btn-tt{opacity:1;transform:translateX(50%) translateY(0)}
.btn-tt::after{content:'';position:absolute;top:100%;right:50%;transform:translateX(50%);border:7px solid transparent;border-top-color:#111827}
.btn-tt strong{display:block;margin-bottom:5px;font-size:13px;color:#fff}
.btn-tt em{color:rgba(255,255,255,.55);font-style:normal;font-size:11.5px;display:block;margin-top:6px;padding-top:6px;border-top:1px solid rgba(255,255,255,.1)}

/* ── SHARED ───────────────────────────────────────────────────────────── */
section{padding:80px 40px}
.cont{max-width:var(--wrap);margin:0 auto}
.slbl{font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--blue);margin-bottom:10px}
.stit{font-family:var(--fh);font-size:clamp(26px,3.2vw,44px);font-weight:700;color:var(--dark);line-height:1.12;letter-spacing:-.02em}
.stit em{color:var(--blue);font-style:normal}
.ssub{font-size:15.5px;color:var(--muted);line-height:1.65;margin-top:12px;max-width:540px}
.sec-lt{background:var(--light)}
/* Dark section variant (e.g. "Testing made simple") — softer blue→green gradient
   (darkish, not black) so it contrasts the light Tests section without being harsh */
.sec-dk{background:linear-gradient(-140deg,#0a1f63 0%,#0d2f7a 52%,#0f456b 100%)}
.sec-dk .slbl{color:var(--green)}
.sec-dk .stit{color:#fff}
.sec-dk .stit em{color:var(--green)}
.sec-dk .ssub{color:rgba(255,255,255,.62)}
.sec-dk .wc{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.12)}
.sec-dk .wc:hover{border-color:rgba(255,255,255,.22)}
.sec-dk .wc h3{color:#fff}
.sec-dk .wc p{color:rgba(255,255,255,.6)}
.sec-dk .wi{background:rgba(52,202,141,.14);color:var(--green)}
/* clickable "Why CTL" cards (homepage → Why Choose Us) */
a.wc{text-decoration:none;color:inherit;cursor:pointer}
a.wc:hover{transform:translateY(-3px)}

/* ── TEST CARDS ───────────────────────────────────────────────────────── */
.tg{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-top:48px}
.tc{background:var(--white);border:1px solid var(--border);border-radius:var(--rl);cursor:pointer;transition:all .2s;display:flex;flex-direction:column;overflow:hidden;text-decoration:none;color:inherit}
.tc:hover{border-color:rgba(11,40,251,.3);box-shadow:0 10px 40px rgba(11,40,251,.1);transform:translateY(-3px)}
.tc-hdr{height:300px;background-size:cover;background-position:center;position:relative;overflow:hidden}
.tc-hdr::after{content:'';position:absolute;inset:0;background:linear-gradient(-180deg,rgba(6,8,26,0) 20%,rgba(6,8,26,.7) 100%)}
.tc-hdr-tag{position:absolute;bottom:12px;right:14px;z-index:1;display:inline-flex;align-items:center;gap:6px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:#fff;background:rgba(11,40,251,.7);padding:4px 10px;border-radius:100px;backdrop-filter:blur(6px)}
.tc-bdy{padding:20px 22px;flex:1;display:flex;flex-direction:column}
.tc-bdy h3{font-family:var(--fh);font-size:16px;font-weight:700;margin-bottom:7px}
.tc-bdy p{font-size:13px;color:var(--muted);line-height:1.6;flex:1}
.tc-ft{display:flex;align-items:center;justify-content:space-between;margin-top:16px;padding-top:14px;border-top:1px solid var(--border)}
.tpr{font-family:var(--fh);font-size:19px;font-weight:700;color:var(--dark)}
.tpr .woocommerce-Price-amount{font-size:inherit;font-weight:inherit;color:inherit}
.tpr > span:not(.woocommerce-Price-amount):not(.screen-reader-text):not([aria-hidden]){font-size:12px;color:var(--muted);font-weight:400}
.btn-ord{background:var(--blue);color:#fff;font-size:12px;font-weight:600;padding:8px 15px;border-radius:8px;border:none;cursor:pointer;font-family:var(--f)}
.btn-ord:hover{background:#0a20d8}

/* ── CPSR/SDS DOC CARDS ───────────────────────────────────────────────── */
.cpsrsds-sec{background:#fff;padding:72px 40px}
.cpsrsds-sec-lt{background:var(--light)}
.cpsrsds-g{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:48px}
.doc-card{background:#fff;border:1px solid var(--border);border-radius:var(--rl);cursor:pointer;transition:all .2s;display:flex;flex-direction:column;overflow:hidden;text-decoration:none;color:inherit}
.doc-card:hover{border-color:rgba(11,40,251,.3);box-shadow:0 10px 40px rgba(11,40,251,.1);transform:translateY(-3px)}
.doc-hdr{height:130px;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;flex-direction:column!important}
.doc-hdr-icon{position:absolute!important;opacity:.16!important;font-size:96px!important;left:-6px;bottom:-14px}
.doc-hdr-title{position:relative;z-index:1;font-family:var(--fh);font-size:46px;font-weight:700;color:#fff;letter-spacing:.01em;line-height:1}
.doc-hdr-sub{position:relative;z-index:1;font-size:12px;font-weight:600;color:rgba(255,255,255,.7);margin-top:6px;text-transform:uppercase;letter-spacing:.08em}
.doc-bdy{padding:20px 22px;flex:1;display:flex;flex-direction:column}
.doc-bdy h3{font-family:var(--fh);font-size:16px;font-weight:700;margin-bottom:7px}
.doc-bdy p{font-size:13px;color:var(--muted);line-height:1.6;flex:1}
.doc-bdy ul{list-style:none;display:flex;flex-direction:column;gap:5px;margin:10px 0}
.doc-bdy ul li{font-size:12.5px;color:var(--muted);display:flex;align-items:flex-start;gap:7px}
.doc-bdy ul li i{color:var(--green);font-size:13px;flex-shrink:0;margin-top:1px}
.doc-ft{display:flex;align-items:center;justify-content:space-between;margin-top:16px;padding-top:14px;border-top:1px solid var(--border)}
.cpsr-oneline{max-width:none!important;white-space:nowrap}
@media(max-width:700px){.cpsr-oneline{white-space:normal}}

/* ── WHY CTL ──────────────────────────────────────────────────────────── */
.wg{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:48px}
.wc{padding:26px;border:1px solid var(--border);border-radius:var(--r);transition:all .2s}
.wc:hover{border-color:rgba(11,40,251,.3);transform:translateY(-2px)}
.wi{width:58px;height:58px;border-radius:14px;background:var(--light);display:flex;align-items:center;justify-content:center;margin-bottom:16px;font-size:28px;color:var(--blue)}
.wc h3{font-family:var(--fh);font-size:15px;font-weight:700;margin-bottom:7px}
.wc p{font-size:13.5px;color:var(--muted);line-height:1.6}

/* ── PROCESS ──────────────────────────────────────────────────────────── */
.pw{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:stretch;margin-top:48px}
.pp{display:flex;gap:18px;padding:18px 26px 18px 0;border-right:2px solid var(--border);position:relative;transition:border-color .2s}
.pp:hover{border-right-color:var(--blue)}
.pd{position:absolute;right:-8px;width:14px;height:14px;border-radius:50%;background:var(--white);border:2px solid var(--border);top:24px;transition:all .2s}
.pp:hover .pd{border-color:var(--blue);background:var(--blue)}
.pn{font-family:var(--fh);font-size:10px;font-weight:700;color:rgba(11,40,251,.3);margin-bottom:2px}
.pc h4{font-family:var(--fh);font-size:14px;font-weight:700;margin-bottom:4px}
.pc p{font-size:13px;color:var(--muted);line-height:1.55}
.pv{background:linear-gradient(-140deg,#0b0e1a 0%,#111827 55%,#0d1220 100%)!important;border-radius:var(--rl);padding:32px;position:relative;overflow:hidden}
.pv::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 80% 60% at 50% 40%,rgba(11,40,251,.09),transparent 65%);animation:pvShim 6s ease-in-out infinite;pointer-events:none}
@keyframes pvShim{0%,100%{transform:translate(25%,-20%)}50%{transform:translate(-25%,20%)}}
/* Free-pickup highlight panel (right side of the Process section) */
.pv-pickup{display:flex;flex-direction:column;position:relative;z-index:1}
.fp-badge{display:inline-flex;align-items:center;gap:7px;width:fit-content;background:rgba(52,202,141,.12);border:1px solid rgba(52,202,141,.28);color:var(--green);font-size:11.5px;font-weight:700;letter-spacing:.01em;padding:6px 13px;border-radius:100px;margin-bottom:22px}
/* keyboard focus ring for the collapsible order/product card headers */
.oc-top:focus-visible,.prod-card-hd:focus-visible{outline:2px solid var(--blue);outline-offset:2px;border-radius:8px}
.fp-title{font-family:var(--fh);font-size:27px;font-weight:700;color:#fff;line-height:1.15;margin-bottom:12px;letter-spacing:-.01em}
.fp-title em{color:var(--green);font-style:normal}
.fp-sub{font-size:13.5px;color:rgba(255,255,255,.6);line-height:1.65;margin-bottom:24px;max-width:420px}
.fp-list{display:flex;flex-direction:column;gap:12px;margin-bottom:26px}
.fp-item{display:flex;align-items:center;gap:11px;font-size:13px;color:rgba(255,255,255,.82)}
.fp-item i{color:var(--green);font-size:14px;background:rgba(52,202,141,.14);border-radius:50%;width:22px;height:22px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.fp-foot{margin-top:auto;display:flex;align-items:center;gap:18px;padding:18px 20px;background:rgba(52,202,141,.09);border-radius:13px;border:1px solid rgba(52,202,141,.18)}
.fp-price{font-family:var(--fh);font-size:36px;font-weight:700;color:var(--green);line-height:1;flex-shrink:0}
.fp-foot-r{display:flex;flex-direction:column;gap:3px;border-right:1px solid rgba(255,255,255,.12);padding-right:18px}
.fp-foot-r strong{font-size:13px;color:#fff;font-weight:700}
.fp-foot-r span{font-size:11.5px;color:rgba(255,255,255,.5);line-height:1.45}

/* ── CTA BAR ──────────────────────────────────────────────────────────── */
.cta-bar{background:linear-gradient(-90deg,#0720c8 0%,#0b28fb 45%,#0d9f72 100%);padding:22px 40px}
.cta-bar-in{max-width:var(--wrap);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.cta-bar-t{font-family:var(--fh);font-size:18px;font-weight:700;color:#fff;margin-bottom:3px}
.cta-bar-s{font-size:13px;color:rgba(255,255,255,.62)}
.cta-bar-btn{background:rgba(255,255,255,.14);color:#fff;font-size:14px;font-weight:600;padding:12px 24px;border-radius:10px;border:1px solid rgba(255,255,255,.4);cursor:pointer;font-family:var(--f);white-space:nowrap;flex-shrink:0;display:inline-flex;align-items:center;gap:8px;transition:background .15s;text-decoration:none}
.cta-bar-btn:hover{background:rgba(255,255,255,.24)}

/* ── PRE-FOOTER REVIEWS ───────────────────────────────────────────────── */
.pre-ftr{background:var(--light);padding:56px 40px}
.pre-ftr .cont{max-width:var(--wrap);margin:0 auto}
.rev-wrap{overflow-x:auto!important;overflow-y:hidden!important;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;cursor:grab;scrollbar-width:none;-ms-overflow-style:none;margin-top:32px}
.rev-wrap::-webkit-scrollbar{height:0;display:none}
.rev-wrap.dragging{cursor:grabbing;scroll-behavior:auto}
.rev-track{display:flex;gap:16px;width:max-content!important;align-items:stretch}
.rev-card{min-width:290px;max-width:290px;padding:20px;border:1px solid var(--border);border-radius:var(--r);background:#fff;flex-shrink:0;display:flex;flex-direction:column}
.rev-card .stars{color:var(--green);font-size:13px;letter-spacing:2px;margin-bottom:9px}
.rev-card .rt{font-size:13px;color:var(--dark);line-height:1.65;margin-bottom:12px;font-style:italic;flex:1}
.rev-card .ra{font-size:11px;font-weight:600;color:var(--muted);margin-top:auto}
.rev-ctrl{display:flex;align-items:center;gap:10px;margin-top:22px;flex-wrap:wrap;justify-content:space-between}
.rev-btns{display:flex;gap:8px}
.rev-btn{width:36px;height:36px;border-radius:50%;border:1px solid var(--border);background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;color:var(--dark);transition:all .15s;line-height:1}
.rev-btn:hover{background:var(--blue);color:#fff;border-color:var(--blue)}

/* ── FOOTER ───────────────────────────────────────────────────────────── */
footer{background:var(--dark);color:rgba(255,255,255,.52);padding:56px 40px 0}
.fi{max-width:var(--wrap);margin:0 auto}
.fb{display:flex;height:4px;margin-bottom:24px;border-radius:2px;overflow:hidden}
.fg{display:flex!important;flex-direction:row!important;align-items:flex-start!important;grid-template-columns:none!important;gap:0!important;flex-wrap:nowrap!important;margin-bottom:32px}
.fg>div{flex:0 0 auto}
.fg>div:first-child{flex:1 1 0%;max-width:260px;margin-left:auto}
.fg>div:not(:first-child){min-width:130px!important;margin-right:38px!important}
.fn{font-family:var(--fh);font-size:15px;font-weight:700;color:#fff;display:flex;align-items:center;gap:9px;margin-bottom:12px;text-decoration:none;cursor:pointer}
.fd{font-size:13px;line-height:1.65;max-width:260px}
.fs{display:flex;gap:8px;margin-top:18px}
.sb{width:33px;height:33px;border-radius:7px;border:1px solid rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;cursor:pointer;color:rgba(255,255,255,.38);font-size:15px;transition:all .15s;background:none;text-decoration:none}
.sb:hover{color:var(--green);border-color:rgba(52,202,141,.3)}
.fc h4{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:rgba(255,255,255,.9);margin-bottom:15px;text-align:right}
.fl{display:flex;flex-direction:column;gap:8px;text-align:right}
.fl a{font-size:13px;color:rgba(255,255,255,.45);text-decoration:none;transition:color .15s;cursor:pointer}
.fl a:hover{color:var(--green)}
.footer-tp-strip{display:flex!important;align-items:center!important;justify-content:space-between!important;flex-wrap:wrap!important;gap:12px!important;border-top:1px solid rgba(255,255,255,.08);padding:20px 0}
.footer-tp-link{display:inline-flex;align-items:center;gap:8px;color:rgba(255,255,255,.6);text-decoration:none;font-size:13px;font-weight:600;transition:color .15s}
.footer-tp-link:hover{color:#00b67a}
.ftr-lang{margin-top:0;display:flex;align-items:center;gap:6px;flex-shrink:0}
.ftr-lang-btn{display:flex;align-items:center;gap:5px;padding:4px 9px;border:1px solid rgba(255,255,255,.15);border-radius:7px;background:none;cursor:pointer;font-size:11px;font-weight:600;color:rgba(255,255,255,.5);font-family:var(--f);transition:all .15s}
.ftr-lang-btn.on{background:rgba(11,40,251,.3);border-color:rgba(11,40,251,.5);color:#fff}
.ftr-lang-btn:hover:not(.on){background:rgba(255,255,255,.08);color:#fff}
.ftr-lang-btn .flag{font-size:14px}
.footer-pay{display:flex;justify-content:flex-start;padding:0 0 22px}
.footer-pay .pi{display:flex;gap:7px}
.pi{display:flex;gap:6px}
.pm{width:auto;min-width:60px!important;height:22px;border:1px solid rgba(255,255,255,.11);border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:9px!important;font-weight:700;color:rgba(255,255,255,.32);padding:3px 6px!important;letter-spacing:.02em}
.fbt{display:flex!important;align-items:center!important;justify-content:space-between!important;padding:18px 0 24px!important;border-top:1px solid rgba(255,255,255,.07)}
.fc-py{font-size:11.5px;color:rgba(255,255,255,.25)}
.fbt-legal{display:flex;gap:18px;flex-wrap:wrap}
.fbt-legal a{font-size:12px;color:rgba(255,255,255,.5);cursor:pointer;text-decoration:none;transition:color .15s}
.fbt-legal a:hover{color:#fff}

/* ── SIDE CART ────────────────────────────────────────────────────────── */
.cart-ov{position:fixed;inset:0;background:rgba(6,8,26,.5);z-index:500;display:none}
.cart-ov.open{display:block}
.cart-panel{position:fixed;top:0;left:0;width:100%;max-width:420px;height:100%;background:#fff;z-index:501;display:flex;flex-direction:column;transform:translateX(-100%);visibility:hidden;transition:transform .3s cubic-bezier(.4,0,.2,1),visibility 0s .3s}
/* hidden while closed, so Tab and screen readers skip it */
.cart-panel.open{transform:translateX(0);visibility:visible;transition:transform .3s cubic-bezier(.4,0,.2,1),visibility 0s}
.cart-hd{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--border)}
.cart-hd h3{font-family:var(--fh);font-size:18px;font-weight:700}
.cart-cl{width:34px;height:34px;border:1px solid var(--border);border-radius:8px;background:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:18px;color:var(--muted)}
.cart-body{flex:1;overflow-y:auto;padding:20px 24px}
.cart-empty{text-align:center;padding:40px 0;color:var(--muted)}
.cart-empty i{font-size:44px;margin-bottom:12px;display:block;color:#e0e4f5}
.cart-empty-btn{margin-top:18px;display:inline-flex;align-items:center;gap:8px}
.cart-empty-btn i{font-size:16px;margin-bottom:0;display:inline-block;color:#fff}

/* ── RESPONSIVE ───────────────────────────────────────────────────────── */
@media(max-width:768px){
  nav{padding:0 16px;height:60px}
  .nav-links{display:none}
  .mob-ham{display:flex}
  .nav-r{margin-right:auto!important}
  .hero{padding:80px 16px 60px;min-height:auto}
  .hero-in{grid-template-columns:1fr!important;gap:32px!important}
  .h-card{display:none}
  section{padding:48px 16px}
  .tg,.wg,.pw,.cpsrsds-g{grid-template-columns:1fr}
  .pre-ftr{padding:40px 16px}
  .cta-bar{padding:18px 16px}
  footer{padding:40px 16px 0}
  .fg{flex-wrap:wrap!important}
  .fg>div:first-child{flex:0 0 100%!important;max-width:100%!important;margin-left:0!important}
  .fg>div:not(:first-child){margin-right:24px;min-width:90px}
  .footer-tp-strip{flex-direction:column;align-items:flex-start;gap:12px}
  .fbt{flex-direction:column;align-items:flex-start;gap:10px}
  .h-stats{gap:20px;flex-wrap:wrap!important}
  .cart-panel{max-width:100%}
  .hero-btns{flex-direction:column;gap:16px!important}
  .hero-btn-div{display:none}
  .hero-btn-col{width:100%}
  .hero-btn-col .btn-p,.hero-btn-col .btn-g{width:100%;justify-content:center}
  .rev-card{min-width:260px;max-width:260px}
}
@media(max-width:480px){
  .hero h1{font-size:30px!important}
}

/* ── PAGE HERO (subpages) ─────────────────────────────────────────────── */
.ph{padding:64px 40px;text-align:center}
.ph-dk{background:var(--dark)}
.ph-cp{background:linear-gradient(-140deg,#0a1a5e,#1a1f3a)}
.ph-sd{background:linear-gradient(-140deg,#071a2e,#0a2d1a)}
.ph-lt{background:var(--light)}
.ph-badge{display:inline-flex;align-items:center;gap:7px;background:rgba(52,202,141,.1);border:1px solid rgba(52,202,141,.22);color:var(--green);padding:5px 12px;border-radius:100px;font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;margin-bottom:18px}
.ph h1{font-family:var(--fh);font-size:clamp(28px,3.5vw,50px);font-weight:700;color:#fff;margin-bottom:12px}
.ph-lt h1{color:var(--dark)}
.ph p{font-size:15px;color:rgba(255,255,255,.5);max-width:520px;margin:0 auto}
.ph-lt p{color:var(--muted)}

/* ── ABOUT ────────────────────────────────────────────────────────────── */
.about-alt-sec{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;margin-top:56px;padding-bottom:56px;border-bottom:1px solid var(--border)}
.about-alt-sec:last-child{border-bottom:none;padding-bottom:0}
.about-alt-img{border-radius:var(--rl);height:380px;background-size:cover;background-position:center;position:relative;overflow:hidden}
.about-alt-img::after{content:'';position:absolute;inset:0;background:linear-gradient(-135deg,rgba(11,40,251,.06),rgba(52,202,141,.04))}
.about-txt h2{font-family:var(--fh);font-size:clamp(22px,2.5vw,34px);font-weight:700;margin-bottom:16px;line-height:1.15}
.about-txt h2 em{color:var(--blue);font-style:normal}
.about-txt p{font-size:15px;color:var(--muted);line-height:1.72;margin-bottom:12px}
.quote-blk{padding:22px 26px;background:#fff;border-right:4px solid var(--blue);margin-top:22px;border-radius:var(--r) 0 0 var(--r);box-shadow:0 2px 12px rgba(11,40,251,.06)}
.quote-blk p{font-size:14.5px;font-style:italic;color:var(--dark);line-height:1.65;margin-bottom:0}
.quote-blk cite{font-size:11.5px;color:var(--muted);font-style:normal;font-weight:700;display:block;margin-top:8px}
.cert-strip{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px}
.cert{display:flex;align-items:center;gap:7px;padding:8px 12px;background:var(--light);border-radius:8px;font-size:12px;font-weight:600;color:var(--dark)}
.cert i{color:var(--blue);font-size:15px}
.stat-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}
.stat-b{padding:18px;background:var(--light);border-radius:11px;text-align:center}
.sbn{font-family:var(--fh);font-size:28px;font-weight:700}
.sbl{font-size:11.5px;color:var(--muted);margin-top:3px}
.team-g{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:40px}
.team-c{text-align:center;padding:26px 20px;border:1px solid var(--border);border-radius:var(--r);transition:all .2s}
.team-c:hover{border-color:rgba(11,40,251,.25);transform:translateY(-2px)}
.tav{width:120px;height:120px;border-radius:50%;margin:0 auto 14px;display:flex;align-items:center;justify-content:center;font-family:var(--fh);font-size:18px;font-weight:700;color:#fff}
.tav-photo{background-size:cover;background-position:center;background-repeat:no-repeat}
.team-c h4{font-family:var(--fh);font-size:15px;font-weight:700}
.team-c .role{font-size:12px;color:var(--muted);margin-top:3px}
.team-c .bio{font-size:12.5px;color:var(--muted);line-height:1.55;margin-top:10px}
.team-li{display:inline-flex;align-items:center;gap:6px;margin-top:13px;font-size:12.5px;font-weight:600;color:#0a66c2;text-decoration:none;border:1px solid var(--border);border-radius:100px;padding:6px 13px;transition:all .15s}
.team-li:hover{background:#0a66c2;color:#fff;border-color:#0a66c2}
.team-li i{font-size:15px}
/* Blog */
.blog-g{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:8px}
.blog-card{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:var(--rl);overflow:hidden;text-decoration:none;color:inherit;background:#fff;transition:all .2s}
.blog-card:hover{border-color:var(--blue);transform:translateY(-3px);box-shadow:0 20px 50px -28px rgba(11,40,251,.4)}
.blog-card-img{height:188px;background-size:cover;background-position:center;background-color:var(--light)}
.blog-card-bdy{padding:20px 22px 24px;display:flex;flex-direction:column;flex:1}
.blog-card-meta{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:6px;margin-bottom:9px}
.blog-card-meta i{color:var(--blue)}
.blog-card h3{font-family:var(--fh);font-size:18px;font-weight:700;line-height:1.25;margin-bottom:9px;color:var(--dark)}
.blog-card p{font-size:13.5px;color:var(--muted);line-height:1.6;flex:1}
.blog-card-more{margin-top:14px;font-size:13.5px;font-weight:700;color:var(--blue)}
.blog-ph-meta{display:inline-flex;align-items:center;gap:6px;opacity:.85}
.blog-single{max-width:820px}
.blog-hero-img{border-radius:var(--rl);overflow:hidden;margin-bottom:30px}
.blog-hero-img img{width:100%;height:auto;display:block}
.blog-prose{font-size:16px;line-height:1.8;color:var(--mid)}
.blog-prose p{margin-bottom:18px}
.blog-prose h2{font-family:var(--fh);font-size:24px;font-weight:700;color:var(--dark);margin:34px 0 14px}
.blog-prose ul{margin:0 0 18px 0;padding-right:22px;display:flex;flex-direction:column;gap:9px}
.blog-prose li{font-size:16px;line-height:1.7;color:var(--mid)}
.blog-prose a{color:var(--blue)}
.blog-single-foot{margin-top:34px;padding-top:24px;border-top:1px solid var(--border)}
.blog-pag{margin-top:36px}
.blog-pag ul{list-style:none;display:flex;gap:8px;justify-content:center;flex-wrap:wrap;padding:0}
.blog-pag a,.blog-pag span{display:flex;align-items:center;justify-content:center;min-width:38px;height:38px;padding:0 12px;border:1px solid var(--border);border-radius:9px;text-decoration:none;color:var(--dark);font-size:14px;font-weight:600}
.blog-pag .current{background:var(--blue);color:#fff;border-color:var(--blue)}
@media(max-width:980px){.blog-g{grid-template-columns:1fr 1fr}}
@media(max-width:680px){.blog-g{grid-template-columns:1fr}}
.val-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:36px}
.val-c{padding:24px;border:1px solid var(--border);border-radius:var(--r);text-align:center}
.val-ic{font-size:26px;color:var(--blue);margin-bottom:10px}
.val-c h4{font-family:var(--fh);font-size:14px;font-weight:700;margin-bottom:5px}
.val-c p{font-size:12.5px;color:var(--muted);line-height:1.55}

/* ── CONTACT ──────────────────────────────────────────────────────────── */
.cg{display:grid;grid-template-columns:1fr 1.3fr;gap:56px;margin-top:48px}
.cii{display:flex;gap:14px;align-items:flex-start;margin-bottom:20px}
.cic{width:40px;height:40px;border-radius:10px;background:var(--light);display:flex;align-items:center;justify-content:center;font-size:18px;color:var(--blue);flex-shrink:0}
.cii h4{font-size:13.5px;font-weight:600;margin-bottom:2px}
.cii p{font-size:13px;color:var(--muted)}
.cnote{padding:16px 18px;background:rgba(11,40,251,.04);border-radius:11px;border-right:3px solid rgba(11,40,251,.2)}
.cnote-l{font-size:11px;font-weight:700;color:var(--blue);margin-bottom:4px;text-transform:uppercase;letter-spacing:.07em}
.cnote p{font-size:12.5px;color:var(--muted);line-height:1.55}
.cform{background:var(--light);border-radius:var(--rl);padding:34px}
.cform h3{font-family:var(--fh);font-size:20px;font-weight:700;margin-bottom:22px}
.hc-gate{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:6px}
.hc-gate-i{font-size:30px;color:var(--blue);margin-bottom:6px}
.hc-gate h3{margin-bottom:16px}
.hc-gate-btns{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}
.hc-gate .btn-g{color:var(--dark);border-color:var(--border);background:#fff}

/* ── FORMS ────────────────────────────────────────────────────────────── */
.fr{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
.fr.full{grid-template-columns:1fr}
.fg2{display:flex;flex-direction:column;gap:5px}
.fg2 label{font-size:12px;font-weight:600;color:var(--dark)}
.fg2 input,.fg2 select,.fg2 textarea{background:#fff;border:1.5px solid var(--border);border-radius:9px;padding:10px 13px;font-size:14px;font-family:var(--f);color:var(--dark);outline:none;transition:border-color .2s;resize:none;width:100%}
.fg2 input:focus,.fg2 select:focus,.fg2 textarea:focus{border-color:var(--blue)}
.btn-nx{background:var(--blue);color:#fff;font-size:13.5px;font-weight:600;padding:11px 22px;border-radius:8px;border:none;cursor:pointer;display:inline-flex;align-items:center;gap:7px;font-family:var(--f)}
.btn-nx:hover{background:#0a20d8}

/* ── LEGAL PAGES ──────────────────────────────────────────────────────── */
.legal-wrap{max-width:820px;margin:0 auto;padding:60px 24px}
.legal-wrap .legal-meta{font-size:13px;color:var(--muted);margin-bottom:32px}
.legal-body{font-size:15px;color:var(--dark);line-height:1.8}
.legal-body p{margin-bottom:14px}
.legal-body strong{color:var(--dark)}
.legal-body h2,.legal-body h3{font-family:var(--fh);font-size:18px;font-weight:700;margin:28px 0 10px;color:var(--dark)}
.legal-body a{color:var(--blue)}
.legal-body ul{margin:0 0 14px;padding-right:22px}
.legal-body li{margin-bottom:7px}
.legal-body table{width:100%;border-collapse:collapse;margin:8px 0 20px;font-size:13.5px}
.legal-body th,.legal-body td{border:1px solid var(--border);padding:9px 11px;text-align:right;vertical-align:top}
.legal-body th{background:var(--light);font-weight:700}
.legal-body .legal-updated{color:var(--muted);font-size:13px;margin-bottom:22px}
.legal-actions{margin-top:40px;padding-top:24px;border-top:1px solid var(--border);display:flex;gap:12px;flex-wrap:wrap}
.btn-g.btn-light{color:var(--dark);border:1.5px solid var(--border);background:none}
.btn-g.btn-light:hover{background:var(--light)}

@media(max-width:768px){
  .ph{padding:48px 16px}
  .about-alt-sec,.val-grid,.team-g,.cg,.stat-pair,.fr{grid-template-columns:1fr}
  .about-alt-sec{gap:32px}
}

/* ── PRODUCT PAGE ─────────────────────────────────────────────────────── */
.prod-h{padding:40px 40px 52px;background:#fff;border-bottom:1px solid var(--border)}
@media(max-width:768px){.prod-h{padding:32px 16px 40px}}
.prod-h-in{display:grid;grid-template-columns:0.95fr 1.05fr;gap:48px;align-items:flex-start}
.pi2{display:flex;flex-direction:column}
/* shop-style product gallery */
.pgal-main{aspect-ratio:4/3;border-radius:var(--rl);background-size:cover;background-position:center;border:1px solid var(--border);box-shadow:0 12px 40px rgba(6,8,26,.07)}
.pgal-thumbs{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap}
.pgal-th{width:74px;height:62px;border-radius:10px;background-size:cover;background-position:center;border:2px solid transparent;cursor:pointer;padding:0;transition:border-color .15s,transform .15s}
.pgal-th:hover{transform:translateY(-2px)}
.pgal-th.is-on{border-color:var(--blue)}
/* three main selling points (buy box) */
.phl{list-style:none;display:flex;flex-direction:column;gap:12px;margin:18px 0 22px}
.phl-i{display:flex;align-items:center;gap:13px}
.phl-ic{width:40px;height:40px;border-radius:11px;background:rgba(11,40,251,.08);color:var(--blue);display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}
.phl-t{font-size:14.5px;font-weight:600;color:var(--dark);line-height:1.4}
.pi2 .ptrst{margin:22px 0 0;padding-top:18px;border-top:1px solid var(--border)}
.pt{display:inline-flex;align-items:center;gap:6px;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--blue);background:rgba(11,40,251,.07);padding:4px 10px;border-radius:100px;margin-bottom:12px;width:fit-content}
.ptit{font-family:var(--fh);font-size:clamp(22px,2.6vw,34px);font-weight:700;line-height:1.1;margin-bottom:12px}
.pdesc{font-size:14px;color:var(--muted);line-height:1.7;margin-bottom:20px}
.ptrst{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.ptr{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--dark)}
.ptr i{color:var(--green);font-size:14px}
.ppr{display:flex;align-items:baseline;gap:8px;margin-bottom:22px}
.ppr-n{font-family:var(--fh);font-size:32px;font-weight:700;color:var(--dark)}
.ppr-n del{color:var(--muted);font-weight:400;font-size:20px}
.ppr-n .from{font-size:13px;color:var(--muted);font-weight:400}
.pi2 .btn-p{width:fit-content;align-self:flex-start}
/* Hero "What's included" accordion */
.pi-incl{background:rgba(11,40,251,.06);border:1px solid rgba(11,40,251,.12);border-radius:12px;padding:16px 18px;margin-bottom:16px;cursor:pointer}
.pi-incl-hd{display:flex;align-items:center;justify-content:space-between;cursor:pointer;user-select:none}
.pi-incl-hd h5{font-family:var(--fh);font-size:12px;font-weight:700;color:var(--dark);margin:0;text-transform:uppercase;letter-spacing:.06em}
.pi-incl-ico{font-size:15px;color:var(--muted);transition:transform .3s ease}
.pi-incl.open .pi-incl-ico{transform:rotate(-180deg)}
.pi-incl-body{list-style:none;max-height:0;overflow:hidden;opacity:0;display:flex;flex-direction:column;gap:5px;margin-top:0;transition:max-height .35s cubic-bezier(.4,0,.2,1),opacity .3s ease,margin-top .3s ease}
.pi-incl.open .pi-incl-body{max-height:320px;opacity:1;margin-top:10px}
.pi-incl-body li{font-size:12.5px;color:var(--dark);display:flex;align-items:flex-start;gap:7px;line-height:1.45}
.pi-incl-body li i{color:var(--green);font-size:13px;flex-shrink:0;margin-top:1px}
.prod-about{align-items:start}
.prod-about ul{margin:10px 0;padding-right:18px}
.prod-about li{margin-bottom:6px}

/* Pricing cards */
.price-sec{background:var(--light);padding:64px 40px}
.pgrid{display:none;gap:14px;align-items:stretch}
.pgrid.on{display:grid}
.pgrid.c3{grid-template-columns:repeat(3,1fr)}
.pgrid.c2{grid-template-columns:repeat(2,1fr);max-width:680px;margin:0 auto}
.pcard{background:#fff;border:1px solid var(--border);border-radius:var(--rl);padding:26px;position:relative;transition:all .2s;display:flex;flex-direction:column}
.pcard:hover{border-color:rgba(11,40,251,.28);transform:translateY(-2px)}
.pcard.feat{border:1.5px solid rgba(11,40,251,.35)}
.fbadge{position:absolute;top:-11px;right:50%;transform:translateX(50%);background:var(--blue);color:#fff;font-size:9.5px;font-weight:700;padding:3px 10px;border-radius:100px;white-space:nowrap}
.pcn{font-family:var(--fh);font-size:17px;font-weight:700;margin-bottom:8px}
.pcp{font-family:var(--fh);font-size:26px;font-weight:700;margin-bottom:18px;color:var(--dark)}
.pcp .from{font-size:13px;color:var(--muted);font-weight:400}
.btn-ca{width:100%;background:var(--blue);color:#fff;font-size:13.5px;font-weight:600;padding:11px;border-radius:8px;border:none;cursor:pointer;font-family:var(--f);margin-top:auto;display:flex;align-items:center;justify-content:center;gap:7px;text-decoration:none}
.btn-ca:hover{background:#0a20d8}
.btn-ca[disabled]{opacity:.7;cursor:default}
/* CPSR: the tier cards are information only; one order button below them. */
.price-sec-cta{display:flex;justify-content:center;margin-top:24px}
.price-sec-cta .btn-ca{width:auto;padding:12px 28px}
.pnote{text-align:center;font-size:11.5px;color:var(--muted);margin-top:18px}
/* SDS document offer panel */
.doc-price{display:grid;grid-template-columns:1.6fr 1fr;max-width:880px;margin:0 auto;background:#fff;border:1px solid var(--border);border-radius:var(--rl);overflow:hidden}
.doc-price-info{padding:32px 34px}
.doc-price-info h3{font-family:var(--fh);font-size:20px;font-weight:700;margin-bottom:8px}
.doc-price-info p{font-size:14px;color:var(--muted);line-height:1.6;margin-bottom:16px}
.doc-price-info ul{list-style:none;display:flex;flex-direction:column;gap:8px}
.doc-price-info li{font-size:13.5px;color:var(--dark);display:flex;align-items:center;gap:9px}
.doc-price-info li i{color:var(--green);font-size:15px;flex-shrink:0}
.doc-price-cta{background:var(--light);padding:32px 28px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;border-right:1px solid var(--border)}
.doc-price-amt{font-family:var(--fh);font-size:30px;font-weight:700;color:var(--dark)}
.doc-price-sub{font-size:12px;color:var(--muted);margin-top:4px}
.doc-price-cta .btn-ca{width:100%;margin-top:14px}
@media(max-width:768px){ .doc-price{grid-template-columns:1fr} .doc-price-cta{border-right:none;border-top:1px solid var(--border)} }

@media(max-width:768px){
  .prod-h-in{grid-template-columns:1fr;gap:26px}
  .pgal-main{aspect-ratio:16/10}
  .price-sec{padding:40px 16px}
  .pgrid.c3,.pgrid.c2{grid-template-columns:1fr}
  .prod-about{grid-template-columns:1fr!important}
}

/* ── SIDE CART ITEMS ──────────────────────────────────────────────────── */
.cart-item{position:relative;display:flex;align-items:flex-start;gap:10px;padding:11px 0 11px 32px;border-bottom:1px solid var(--border)}
.ci-right{display:flex;flex-direction:column;align-items:flex-end;flex-shrink:0;padding-top:1px}
.ci-qty{font-size:12px;color:var(--muted);line-height:1.3;margin-top:2px}
.ci-right .ci-pr{white-space:nowrap}
.cart-warn{display:flex;align-items:flex-start;gap:7px;font-size:12px;font-weight:600;color:#8a5a00;background:rgba(245,166,35,.12);border-radius:8px;padding:8px 10px;margin-bottom:10px;line-height:1.4}
/* Missing data reads as a to-do (amber) until the customer tries to check out; then it turns red. */
.ctl-cart-tried .cart-item.ci-missing .ci-name{color:#b3261e}
.ctl-cart-tried .cart-warn{color:#b3261e;background:rgba(179,38,30,.07)}
.cart-warn i{font-size:14px;flex-shrink:0;margin-top:1px}
.ctl-cart-tried .btn-co.is-warn{background:#b3261e}
.ctl-cart-tried .btn-co.is-warn:hover{background:#9a1f18}
/* missing-data popup (side cart → checkout) */
.mp-bx{max-width:420px;padding:30px 28px 24px}
.mp-h{font-family:var(--fh);font-size:19px;font-weight:700;display:flex;align-items:center;gap:8px;margin:0 0 12px;padding-left:44px;color:#b3261e}
.mp-list{margin:0 0 20px;padding:0 18px 0 0;font-size:13.5px;line-height:1.7;color:var(--dark)}
.mp-acts{display:flex;gap:10px;justify-content:flex-end}
.mp-ok{background:var(--light);border:1px solid var(--border);border-radius:9px;padding:10px 18px;font-family:var(--f);font-size:14px;font-weight:600;color:var(--dark);cursor:pointer}
.mp-ok:hover{background:#eceef3}
.mp-go,.woocommerce a.mp-go{background:var(--blue);color:#fff;border-radius:9px;padding:10px 16px;font-size:14px;font-weight:700;text-decoration:none;display:inline-flex;align-items:center;gap:6px}
.mp-go:hover{background:#0a20d8}
/* checkout: data-missing banner + per-line note */
.co-missing{display:flex;gap:12px;align-items:flex-start;background:rgba(179,38,30,.07);border:1px solid rgba(179,38,30,.3);border-radius:12px;padding:14px 16px;margin:0 0 20px;color:#b3261e;font-size:13.5px;line-height:1.45}
.co-missing[hidden]{display:none}
.co-missing>i{font-size:20px;flex-shrink:0}
.co-missing strong{display:block;font-size:14.5px;margin-bottom:2px}
.co-missing-list{color:#8a1c16}
.co-line-need{font-size:12px;font-weight:600;color:#b3261e;margin-top:2px;display:flex;align-items:center;gap:4px}
.co-line-need i{font-size:13px}
.ci-info{flex:1;min-width:0}
.ci-name{font-size:14px;font-weight:600;color:var(--dark);margin-bottom:3px}
.ci-sub{font-size:12px;color:var(--muted)}
.ci-pr{font-family:var(--fh);font-size:15px;font-weight:700;color:var(--dark);margin-top:4px}
.ci-rm{position:absolute;top:10px;left:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid var(--border);border-radius:7px;cursor:pointer;color:var(--dark);font-size:14px;padding:0;transition:background .15s,color .15s,border-color .15s}
.ci-rm:hover{background:var(--blue);border-color:var(--blue);color:#fff}
.cart-ft{margin-top:18px;padding-top:18px;border-top:1px solid var(--border)}
.cart-disc{display:flex;justify-content:space-between;align-items:center;font-size:12.5px;font-weight:600;color:#1a9a6a;background:rgba(52,202,141,.09);border-radius:8px;padding:7px 10px;margin-bottom:10px}
.cart-disc-n{font-weight:700}
.cart-tot{display:flex;justify-content:space-between;font-size:15px;font-weight:700;margin-bottom:12px}
.cart-tot-n{font-family:var(--fh);font-size:20px;font-weight:700;color:var(--blue)}
.btn-co{width:100%;background:var(--blue);color:#fff;font-size:15px;font-weight:700;padding:13px;border-radius:10px;border:none;cursor:pointer;font-family:var(--f);display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:8px;text-decoration:none}
.btn-co:hover{background:#0a20d8}
.btn-csh{display:block;text-align:center;width:100%;background:none;color:var(--muted);font-size:13px;font-weight:500;padding:10px;border-radius:9px;border:1px solid var(--border);cursor:pointer;font-family:var(--f);text-decoration:none}
.btn-csh:hover{background:var(--light)}

/* ── WOOCOMMERCE PAGES (cart / checkout / account) brand styling ──────── */
/* Match the header container exactly (--wrap box with a 40px gutter), so the
   checkout form lines up with the logo instead of being inset an extra 40px. */
.woo-wrap{width:min(var(--wrap), calc(100% - 80px));max-width:none;margin:0 auto;padding:48px 0}
.woo-wrap h1.stit{margin-bottom:24px}
.woocommerce-page .woocommerce{font-family:var(--f);color:var(--dark)}
.woocommerce-page h1,.woocommerce-page h2,.woocommerce-page h3{font-family:var(--fh)}
.woocommerce form .form-row label,.woocommerce-page label{font-size:13px;font-weight:600;color:var(--dark)}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce-page input.input-text,
.woocommerce-page select,
.woocommerce .select2-selection{
  border:1.5px solid var(--border)!important;border-radius:9px!important;padding:11px 13px!important;
  font-size:14px;font-family:var(--f);color:var(--dark);background:#fff;min-height:44px}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus{border-color:var(--blue)!important;outline:none}
.woocommerce #payment,.woocommerce-checkout #order_review{background:var(--light);border:1px solid var(--border);border-radius:var(--rl);padding:22px}
.woocommerce table.shop_table{border:1px solid var(--border);border-radius:var(--rl);overflow:hidden}
.woocommerce table.shop_table th{font-family:var(--fh);font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.woocommerce-checkout #order_review_heading{font-family:var(--fh);font-weight:700;margin-bottom:12px}
.woocommerce #respond input#submit,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #payment #place_order,
.woocommerce-page .button{
  background:var(--blue)!important;color:#fff!important;font-family:var(--f)!important;font-weight:600!important;
  border-radius:9px!important;padding:12px 22px!important;border:none!important;font-size:14px!important;
  transition:background .15s}
.woocommerce #respond input#submit:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce #payment #place_order:hover,
.woocommerce-page .button:hover{background:#0a20d8!important}
.woocommerce #payment #place_order{width:100%;justify-content:center;font-size:15px!important;padding:14px!important}
.woocommerce .cart-collaterals .cart_totals,.woocommerce-cart .cart-collaterals{border-radius:var(--rl)}
.woocommerce-message,.woocommerce-info,.woocommerce-error{border-top-color:var(--blue);border-radius:10px;font-size:14px}
.woocommerce-message::before,.woocommerce-info::before{color:var(--blue)}

/* Checkout: drop the big error summary box at the top — errors are shown
   inline next to each field (and per-item in the order summary) instead. */
.woocommerce-checkout form.checkout > .woocommerce-NoticeGroup,
.woocommerce-checkout form.checkout > .woocommerce-error,
.woocommerce-checkout .woocommerce-NoticeGroup-checkout{display:none!important}
/* Inline per-field validation message (WooCommerce core) */
.woocommerce-checkout .checkout-inline-error-message,
.woocommerce-checkout .woocommerce-invalid .checkout-inline-error-message{display:block;color:#e2464d;font-size:12px;font-weight:500;margin-top:5px}
.woocommerce-checkout .woocommerce-invalid input.input-text,
.woocommerce-checkout .woocommerce-invalid select,
.woocommerce-checkout .woocommerce-invalid .select2-selection{border-color:#e2464d!important}
.woocommerce-checkout .woocommerce-invalid label{color:#e2464d}
.woocommerce a{color:var(--blue)}
/* WooCommerce puts .woocommerce on <body>, so the rule above would recolour the
   site header nav too — keep the header/footer links themed like everywhere else. */
.woocommerce nav a{color:var(--dark)}
.woocommerce footer a{color:inherit}
@media(max-width:768px){ .woo-wrap{width:auto;padding:32px 16px} }

/* ── TESTS PAGE — CPSR/SDS CTA banners ────────────────────────────────── */
.cta-upsell{border-radius:var(--rl);padding:28px 36px;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-top:20px}
.cta-upsell-cpsr{background:linear-gradient(-135deg,#0a1a5e,#1a1f3a)}
.cta-upsell-sds{background:linear-gradient(-135deg,#071a2e,#0a2d1a)}
.cta-u-tag{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--green);margin-bottom:7px}
.cta-u-title{font-family:var(--fh);font-size:20px;font-weight:700;color:#fff;margin-bottom:6px}
.cta-u-desc{font-size:13.5px;color:rgba(255,255,255,.52);max-width:500px;line-height:1.6}
.cta-u-right{display:flex;flex-direction:column;align-items:flex-end;gap:10px;flex-shrink:0}
.cta-u-price{font-family:var(--fh);font-size:28px;font-weight:700;color:#fff}
.cta-u-price span{font-size:13px;font-weight:400;color:rgba(255,255,255,.35)}
.sc-btn{display:inline-flex;align-items:center;gap:7px;background:var(--green);color:#fff;font-size:12.5px;font-weight:600;padding:9px 16px;border-radius:8px;border:none;cursor:pointer;font-family:var(--f);width:fit-content;text-decoration:none}
.sc-btn:hover{opacity:.92}
@media(max-width:768px){ .cta-upsell{flex-direction:column}.cta-u-right{align-items:flex-start} }

/* ═══ SIDE-CART: footer pinned to bottom, items scroll ═══════════════════ */
.cart-body{display:flex;flex-direction:column;padding:0;overflow:hidden;flex:1;min-height:0}
.cart-body.is-empty{display:block;padding:20px 24px;overflow-y:auto}
.cart-scroll{flex:1;overflow-y:auto;padding:18px 24px;min-height:0}
.cart-ft{margin-top:0!important;padding:18px 24px;border-top:1px solid var(--border);background:#fff;flex-shrink:0}

/* ═══ CTA BUTTONS: force white label (fix invisible add-to-cart text) ════ */
.btn-ca,.btn-ca i,.btn-ord,.btn-ord i,.btn-co,.btn-co i,.btn-cart-confirm,.btn-cart-confirm i,
.btn-sub,.btn-sub i,.btn-p,.btn-p i,.uco-btn,.uco-btn i,.mega-cta,.mega-cta i,.sc-btn,.sc-btn i,
.cta-bar-btn,.cta-bar-btn i,.btn-pp,.btn-pp i,.mob-cta{color:#fff!important}
.btn-nx,.btn-nx i{color:#fff}
/* As a link it needs the extra specificity: `.woocommerce a{color:var(--blue)}`
   otherwise wins and the label disappears into the blue background — which is
   what the "Go to checkout" button in the added-to-cart popup is. */
a.btn-nx,a.btn-nx i{color:#fff}
.btn-nx[style*="color:var(--blue)"],.btn-nx[style*="color:var(--muted)"]{color:inherit}
.mega-cta.alt,.mega-cta.alt i{color:var(--blue)!important}

/* ═══ PRICING TABLES (tabs + spec rows) ═════════════════════════════════ */
.ptabs{display:flex;gap:0;background:#fff;border:1px solid var(--border);border-radius:9px;padding:4px;width:fit-content;margin:0 auto 30px;flex-wrap:wrap;justify-content:center}
.ptab{font-size:12.5px;font-weight:600;padding:7px 16px;border-radius:7px;cursor:pointer;border:none;background:none;font-family:var(--f);color:var(--muted);transition:all .15s}
.ptab.on{background:var(--blue);color:#fff}
.pcs{font-size:12px;color:var(--muted);margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid var(--border);line-height:1.35}
.pcp sup{font-size:14px;vertical-align:super}
.pcr{display:flex;align-items:flex-start;gap:8px;margin-bottom:8px;font-size:12.5px}
.pcl{color:var(--muted);min-width:120px;flex-shrink:0;font-size:11.5px}
.pcv{font-weight:500;color:var(--dark);flex:1;text-align:left}

/* ═══ POPUPS (params, CPSR, SDS) ════════════════════════════════════════ */
.pop-ov{position:fixed;inset:0;background:rgba(6,8,26,.74);z-index:1000;display:none;align-items:center;justify-content:center;padding:16px}
.pop-ov.open{display:flex}
.pop-bx{background:#fff;border-radius:20px;width:100%;max-width:760px;max-height:94vh;overflow-y:auto;padding:40px;position:relative;box-shadow:0 28px 70px rgba(0,0,0,.28)}
.pop-cl{position:absolute;top:16px;left:16px;width:36px;height:36px;border:1px solid var(--border);border-radius:8px;background:none;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:19px;line-height:1;z-index:2}
.pop-cl:hover{background:var(--light)}
.pop-h h2{font-family:var(--fh);font-size:24px;font-weight:700;margin-bottom:6px}
.pop-h p{font-size:13.5px;color:var(--muted);margin-bottom:28px;line-height:1.55}
.param-plan-box{background:var(--light);border-radius:11px;padding:16px 18px;margin-bottom:18px;border-right:4px solid var(--blue);display:flex;align-items:center;justify-content:space-between}
.param-plan-lbl{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:4px}
.param-plan-name{font-family:var(--fh);font-size:16px;font-weight:700;margin-bottom:2px}
.param-plan-price{font-family:var(--fh);font-size:26px;font-weight:700;color:var(--blue)}
.btn-cart-confirm{width:100%;background:var(--green);font-size:15px;font-weight:700;padding:14px;border-radius:10px;border:none;cursor:pointer;font-family:var(--f);margin-top:8px;display:flex;align-items:center;justify-content:center;gap:8px}
.btn-cart-confirm:hover{background:#28b47a}
/* step indicator */
.sind{display:flex;align-items:center;margin-bottom:32px}
.sdot{position:relative;display:flex;flex-direction:column;align-items:center}
/* Step numbers are also navigation in the CPSR/SDS popups. Jumping ahead is
   still gated — ctlGoStep validates every step in between. */
.sdot[data-step-to]{cursor:pointer;outline:none}
.sdot[data-step-to]:hover .sci{border-color:var(--blue);color:var(--blue)}
.sdot[data-step-to]:hover .sci.on,.sdot[data-step-to]:hover .sci.dn{color:#fff}
.sdot[data-step-to]:hover .slb{color:var(--blue)}
.sdot[data-step-to]:focus-visible .sci{box-shadow:0 0 0 3px rgba(11,40,251,.25)}
.sci{width:32px;height:32px;border-radius:50%;border:2px solid var(--border);background:var(--light);display:flex;align-items:center;justify-content:center;font-size:11.5px;font-weight:700;color:var(--muted);transition:all .3s;flex-shrink:0}
.sci.on{background:var(--blue);border-color:var(--blue);color:#fff}
.sci.dn{background:var(--green);border-color:var(--green);color:#fff}
.slb{font-size:10px;font-weight:600;color:var(--muted);position:absolute;top:38px;right:50%;transform:translateX(50%);white-space:nowrap}
.sln{flex:1;height:2px;background:var(--border);margin:0 6px 18px;transition:background .3s}
.sln.dn{background:var(--green)}
.fstep{display:none}.fstep.on{display:block}
.fsect{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:var(--blue);margin-bottom:12px;margin-top:18px}
.fsect:first-child{margin-top:0}
.factions{display:flex;align-items:center;justify-content:space-between;margin-top:24px;padding-top:20px;border-top:1px solid var(--border);gap:10px}
.btn-bk{background:none;color:var(--muted);font-size:13.5px;font-weight:500;padding:11px 14px;border-radius:8px;border:1px solid var(--border);cursor:pointer;font-family:var(--f)}
.btn-bk:hover{background:var(--light)}
.btn-sub{background:var(--green);font-size:13.5px;font-weight:600;padding:11px 22px;border-radius:8px;border:none;cursor:pointer;display:inline-flex;align-items:center;gap:7px;font-family:var(--f)}
.btn-sub:hover{background:#28b47a}
.radio-g{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.radio-o{display:flex;align-items:center;gap:6px;padding:7px 12px;border:1.5px solid var(--border);border-radius:8px;cursor:pointer;font-size:13px;transition:all .15s}
.radio-o:hover{border-color:var(--blue)}
.radio-o.on{border-color:var(--blue);background:rgba(11,40,251,.05);color:var(--blue);font-weight:600}
/* CPSR ingredient-tier picker (step 1 of the CPSR popup) */
.tier-g{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:6px}
.tier-o{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:right;padding:15px 16px;border:1.5px solid var(--border);border-radius:12px;background:#fff;cursor:pointer;font-family:var(--f);transition:all .15s}
.tier-o:hover{border-color:var(--blue);box-shadow:0 8px 22px -14px rgba(11,40,251,.4)}
.tier-o.on{border-color:var(--blue);background:rgba(11,40,251,.05)}
.tier-n{font-family:var(--fh);font-size:15px;font-weight:700;color:var(--dark)}
.tier-o.on .tier-n{color:var(--blue)}
.tier-ing{font-size:12px;font-weight:600;color:var(--blue);background:rgba(11,40,251,.07);border-radius:100px;padding:3px 9px}
.tier-d{font-size:12px;color:var(--muted);line-height:1.45}
.tier-p{margin-top:6px;font-family:var(--fh);font-size:18px;font-weight:700;color:var(--dark)}
.tier-p .woocommerce-Price-amount{font-size:inherit;font-weight:inherit;color:inherit}
.btn-nx:disabled{background:rgba(11,40,251,.25);cursor:not-allowed}
.btn-nx:disabled:hover{background:rgba(11,40,251,.25)}
@media(max-width:640px){.tier-g{grid-template-columns:1fr}}
.chk-g{display:flex;flex-direction:column;gap:7px}
.chk-o{display:flex;align-items:center;gap:8px;font-size:13px;cursor:pointer}
.chk-o input{cursor:pointer}
.sum-r{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--border);font-size:13.5px}
.sum-l{color:var(--muted)}.sum-v{font-weight:600;text-align:left}
.ptotal{display:flex;justify-content:space-between;padding:13px 0;font-size:17px;font-weight:700}
.ptotal .amt{color:var(--blue)}
.agr{padding:14px;background:var(--light);border-radius:10px;margin-bottom:18px;display:flex;align-items:flex-start;gap:11px}
.agr input{margin-top:2px;flex-shrink:0;cursor:pointer}
.agr label{font-size:12.5px;color:var(--muted);line-height:1.55;cursor:pointer}
.fnote{font-size:11.5px;color:var(--muted);padding:10px 14px;background:rgba(11,40,251,.04);border-radius:8px;border-right:3px solid rgba(11,40,251,.2);margin-bottom:12px;line-height:1.55}
/* The popup body is a flex column now; the confirmation replaces the whole of
   it, so it centres itself in the box rather than sitting at the top. */
.suc{display:none;text-align:center;padding:40px 30px}
.suc.on{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1 1 auto;min-height:0;overflow-y:auto}
.suc p strong{color:var(--dark);font-weight:600}
.suc-actions{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:22px}
/* "Edit a product or add a new one?" — shown when the doc form opens with this document already in the cart */
.doc-pick{display:none;padding:34px 30px;flex-direction:column;gap:14px;max-width:560px;width:100%;margin:0 auto}
.doc-pick.on{display:flex}
.doc-pick h3{font-family:var(--fh);font-size:19px;font-weight:700;color:var(--dark);text-align:center;margin:0 0 4px}
.doc-pick-list{display:flex;flex-direction:column;gap:8px}
.doc-pick-r{display:flex;align-items:center;gap:12px;padding:11px 14px 11px 12px;border:1px solid var(--border);border-radius:11px;background:#fff}
.doc-pick-r>.ti{font-size:20px;color:var(--blue);flex:none}
.doc-pick-n{flex:1;min-width:0;font-size:14px;font-weight:600;color:var(--dark);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.doc-pick-n small{display:block;font-size:11.5px;font-weight:500;color:var(--muted)}
.doc-pick-r .btn-bk{flex:none}
.doc-pick-x{flex:none;display:flex;align-items:center;justify-content:center;width:30px;height:30px;border:1.5px solid var(--border);border-radius:8px;background:none;color:var(--muted);cursor:pointer;font-size:14px;transition:all .15s}
.doc-pick-x:hover{border-color:#b3261e;color:#b3261e;background:rgba(179,38,30,.06)}
.doc-pick-new{align-self:center;margin-top:6px}
.suc-actions .btn-nx{text-decoration:none}
.suc-i{width:70px;height:70px;border-radius:50%;background:rgba(52,202,141,.1);display:flex;align-items:center;justify-content:center;margin:0 auto 18px;font-size:32px;color:var(--green)}
.suc h3{font-family:var(--fh);font-size:22px;font-weight:700;margin-bottom:8px}
.suc p{font-size:13.5px;color:var(--muted);line-height:1.6}
@media(max-width:768px){
  .pop-ov{padding:0;align-items:stretch}
  .pop-bx{border-radius:0;max-height:100dvh;height:100dvh;width:100%;max-width:100%;padding:24px 18px}
  .sind{overflow-x:auto;padding-bottom:8px}
}

/* ═══ CHECKOUT (prototype layout) ═══════════════════════════════════════ */
.co-wrap{max-width:var(--wrap);margin:0 auto;padding:48px 40px}
.co-head .slbl{margin-bottom:10px}
.co-g{display:grid;grid-template-columns:1.3fr 1fr;gap:36px;margin-top:32px;align-items:start}
.co-step-h{font-family:var(--fh);font-size:17px;font-weight:700;margin-bottom:16px;display:flex;align-items:center;gap:8px}
.step-num{width:26px;height:26px;border-radius:50%;background:var(--blue);color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.co-sec{margin-bottom:24px;padding-bottom:24px;border-bottom:1px solid var(--border)}
.co-sec:last-child{border-bottom:none}
.ord-sum{background:#fff;border:1px solid var(--border);border-radius:var(--rl);padding:26px 24px;position:sticky;top:80px}
.ord-sum h3{font-family:var(--fh);font-size:16px;font-weight:700;margin-bottom:14px}
.ord-sum h3 .os-toggle{display:none}   /* chevron only appears on mobile (collapsible) */
.os-tot{display:flex;justify-content:space-between;padding:14px 0 0;font-size:17px;font-weight:700}
.os-tot-n{font-family:var(--fh);font-size:22px;font-weight:700;color:var(--blue)}
.pay-lgs{display:flex;gap:6px;margin-top:14px;flex-wrap:wrap;justify-content:center}
.pl{padding:4px 8px;border:1px solid var(--border);border-radius:5px;font-size:10px;font-weight:700;color:var(--muted)}
.sec-note{display:flex;align-items:center;gap:7px;font-size:11.5px;color:var(--muted);margin-top:8px}
.dhl-pick{background:rgba(11,40,251,.04);border:1.5px solid rgba(11,40,251,.15);border-radius:var(--rl);padding:22px;margin-bottom:8px}
.dhl-pick-hd{display:flex;align-items:center;gap:10px;margin-bottom:16px}
.dhl-pick-hd i{font-size:22px;color:var(--blue)}
.dhl-pick-hd h4{font-family:var(--fh);font-size:15px;font-weight:700}
.dhl-pick-hd span{font-size:11.5px;margin-right:auto;background:rgba(11,40,251,.07);padding:3px 9px;border-radius:100px;color:var(--blue);font-weight:600}
.dhl-date-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
@media(max-width:900px){ .co-g{grid-template-columns:1fr} .ord-sum{position:static} .co-wrap{padding:32px 16px} }
/* WooCommerce checkout 2-col override */
.ctl-co-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:36px;margin-top:28px;align-items:start}
.ctl-co-grid>*{min-width:0}
.ctl-co-left .co-step-h{margin-top:8px}
.ctl-checkout h3{font-family:var(--fh)}
.ctl-checkout #customer_details .col2-set,.ctl-checkout #customer_details .col-1,.ctl-checkout #customer_details .col-2{width:100%;float:none}
.ctl-co-right .ord-sum{position:sticky;top:80px}
.ctl-co-right #order_review_heading{margin-bottom:14px}
.woocommerce-checkout .ctl-co-right table.shop_table{background:transparent}
.woocommerce form .form-row{padding:0;margin:0 0 12px}
.woocommerce form .form-row-first{float:none;width:48%;display:inline-block;margin-left:3%}
.woocommerce form .form-row-last{float:none;width:48%;display:inline-block}
@media(max-width:600px){
  .co-logged{flex-wrap:wrap;padding:12px 14px}
  .co-logged span{white-space:normal;flex-basis:calc(100% - 30px)}
  .co-logged-acts{width:100%;padding-right:29px;gap:18px}
  .woocommerce form .form-row-first,.woocommerce form .form-row-last{width:100%;display:block;margin-left:0}
  .co-head .stit{font-size:26px}
  .co-line{gap:10px}
  .co-line-img{width:44px!important;height:44px!important}
  .ctl-checkout .ctl-co-left,.ctl-checkout .ctl-co-right{padding:0}
}
@media(max-width:900px){
  .ctl-co-grid{grid-template-columns:1fr;gap:14px}
  .ctl-co-right{order:-1;margin-bottom:0}              /* summary jumps ABOVE contact & billing */
  .ctl-co-right .ord-sum{position:static;margin-bottom:0}
  .ord-sum.is-collapsed{padding:13px 16px}
  /* collapsible summary — minimized by default, tap the header to expand */
  .ord-sum h3{cursor:pointer;display:flex;align-items:center;gap:8px;margin-bottom:0}
  .ord-sum h3 .os-toggle{display:inline-block;margin-right:auto;font-size:19px;color:var(--muted);transition:transform .2s}
  .ord-sum:not(.is-collapsed) h3{margin-bottom:14px}
  .ord-sum:not(.is-collapsed) h3 .os-toggle{transform:rotate(-180deg)}
  .ord-sum.is-collapsed #order_review{display:none}
  .ctl-co-right .ord-sum.is-collapsed ~ .pay-lgs{display:none}   /* hide pay logos while minimized */
}
@media(max-width:560px){ .woocommerce form .form-row-first,.woocommerce form .form-row-last{width:100%;margin-left:0} }
/* Hide WooCommerce's own section headings — our step headers replace them */
.ctl-checkout .woocommerce-billing-fields > h3,
.ctl-checkout .woocommerce-additional-fields > h3{display:none}
.ctl-checkout .woocommerce-billing-fields__field-wrapper{margin-top:2px}
.ctl-checkout #place_order{font-size:15px!important}
/* Payment method radios cleaner */
.ctl-payment-wrap ul.payment_methods li{list-style:none;padding:8px 0}
.ctl-payment-wrap ul.payment_methods li input[type=radio]{margin-left:8px}
.ctl-payment-wrap .payment_box{background:#fff;border:1px solid var(--border);border-radius:9px;padding:12px 14px;font-size:12.5px;color:var(--muted)}

/* Checkout v2 refinements: payment left (clean), summary right (single box) */
.ctl-checkout .co-sec{margin-bottom:24px;padding-bottom:0;border-bottom:none}
.ctl-checkout #customer_details .woocommerce-billing-fields h3,
.ctl-checkout #customer_details .woocommerce-additional-fields h3{font-family:var(--fh);font-size:14px;font-weight:700;margin:0 0 12px}
.ctl-payment-wrap #payment,.woocommerce-checkout .ctl-payment-wrap #payment{background:var(--light)!important;border:1px solid var(--border)!important;border-radius:var(--rl)!important;padding:18px!important}
.ctl-payment-wrap #payment ul.payment_methods{border:none;padding:0;margin:0}
.ctl-payment-wrap #payment .form-row.place-order{padding:14px 0 0;margin:0}
.ctl-payment-wrap #payment #place_order{width:100%;justify-content:center;font-size:15px!important;padding:14px!important;border-radius:10px!important}
.ctl-payment-wrap #payment .woocommerce-privacy-policy-text{font-size:11.5px;color:var(--muted);margin-top:10px}
/* Right summary: single .ord-sum card; the inner review table is transparent */
.ctl-co-right #order_review{background:transparent!important;border:none!important;padding:0!important}
.ctl-co-right table.shop_table{background:transparent;border:none;width:100%;margin:0;border-radius:0;overflow:visible}
.ctl-co-right table.shop_table thead{display:none}            /* drop the Product/Subtotal header row */
/* Item rows: product on the left, price right-aligned, both top-aligned */
.ctl-co-right table.shop_table tbody td{border:none;border-bottom:1px solid var(--border);padding:14px 0;vertical-align:top}
.ctl-co-right table.shop_table tbody td.product-total{text-align:left;font-weight:700;white-space:nowrap;color:var(--dark)}
.ctl-co-right .co-line{padding:0;border:none;align-items:flex-start;gap:12px}
.ctl-co-right .co-line-edit{margin-top:8px;padding:4px 9px;font-size:11px}
/* Remove-from-order button in the checkout summary */
.co-line-rm{flex-shrink:0;align-self:flex-start;width:20px;height:20px;padding:0;border-radius:50%;border:1px solid var(--border);background:#fff;color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;line-height:1;transition:all .15s}
.co-line-rm:hover{border-color:#e2464d;color:#e2464d;background:rgba(226,70,77,.07)}
.co-line-rm:disabled{opacity:.6;cursor:default}
.co-line-rm i{font-size:11px}
.ctl-co-right .product-quantity{display:none}            /* WC's qty floats below the line — we show it inline instead */
/* WC appends a stray "&nbsp;" text node after the name → an empty line below
   each item. Collapse it with font-size:0 and restore real sizes on children. */
.ctl-co-right td.product-name{font-size:0;line-height:0}
.ctl-co-right td.product-name .co-line,.ctl-co-right td.product-name .variation,.ctl-co-right td.product-name dl{font-size:13px;line-height:1.4}
.co-line-qty{font-weight:500;color:var(--muted);font-size:12px;margin-top:2px;white-space:nowrap}
.ctl-co-right .product-name .variation,.ctl-co-right .product-name dl.variation{margin:8px 64px 0 0;font-size:11.5px;color:var(--muted)}
.ctl-co-right .product-name .variation p,.ctl-co-right .product-name dl.variation *{margin:0}
/* Totals: subtotal / shipping rows, then a prominent order total */
.ctl-co-right table.shop_table tfoot td,.ctl-co-right table.shop_table tfoot th{border:none;padding:8px 0;font-weight:600;text-align:left}
.ctl-co-right table.shop_table tfoot th{text-align:right;font-weight:500;color:var(--muted);text-transform:none;letter-spacing:0;font-family:var(--f);font-size:13px}
.ctl-co-right table.shop_table tfoot tr:first-child td,.ctl-co-right table.shop_table tfoot tr:first-child th{padding-top:16px;border-top:1px solid var(--border)}
.ctl-co-right .order-total th{font-family:var(--fh);font-size:15px;font-weight:700;color:var(--dark)}
.ctl-co-right .order-total td{padding-top:6px}
.ctl-co-right .order-total .woocommerce-Price-amount{font-family:var(--fh);font-size:22px;font-weight:700;color:var(--blue)}

/* ═══ MINIMAL CHROME (checkout only): logo + profile + cart / bottom bar ══ */
.ctl-min-nav .nav-r{margin-right:auto}
.nav-trust{display:flex;align-items:center;gap:18px;font-size:12.5px;font-weight:600;color:var(--muted)}
.nav-trust-i{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.nav-trust-i i{font-size:15px;color:var(--green)}
.nav-trust-star{color:#00b67a;font-size:15px;line-height:1}
a.nav-trust-i,.woocommerce a.nav-trust-i{color:var(--dark);text-decoration:none}
a.nav-trust-i:hover{color:var(--blue)}
@media(max-width:860px){.nav-trust .nav-trust-i:not(:first-child){display:none}}
@media(max-width:520px){.nav-trust{font-size:12px;gap:0}}   /* phone: just the reviews score, on the right */
.co-logged-acts{display:inline-flex;gap:14px;white-space:nowrap}
.co-logged-acts a,.woocommerce .co-logged-acts a{display:inline-flex;align-items:center;gap:4px}
.co-logged-acts i{font-size:14px}
.rev-flag{font-size:14px;line-height:1;margin-right:2px}
/* ── Reviews page ── */
.rv-wrap{max-width:calc(var(--wrap) + 80px);margin:0 auto;padding:48px 40px 72px}
.rv-head{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:center;background:#fff;border:1px solid var(--border);border-radius:var(--rl);padding:28px 32px;margin-bottom:28px}
.rv-score{display:flex;align-items:center;gap:18px}
.rv-score-n{font-family:var(--fh);font-size:52px;font-weight:700;line-height:1;color:var(--dark)}
.rv-stars{color:#00b67a;font-size:22px;letter-spacing:3px;line-height:1}
.rv-stars.sm{font-size:14px;letter-spacing:2px}
.rv-score-l{font-size:14px;color:var(--muted);margin-top:4px}
.rv-score-l strong{color:var(--dark)}
.rv-dist{display:flex;flex-direction:column;gap:7px}
.rv-dist-row{display:grid;grid-template-columns:48px 1fr 36px;align-items:center;gap:10px;font-size:12.5px;color:var(--muted)}
.rv-dist-bar{height:8px;border-radius:100px;background:var(--light);overflow:hidden}
.rv-dist-fill{height:100%;background:#00b67a;border-radius:100px}
.rv-list{display:flex;flex-direction:column;gap:14px}
.rv-item{background:#fff;border:1px solid var(--border);border-radius:var(--r);padding:20px 22px}
.rv-item-hd{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.rv-av{width:36px;height:36px;border-radius:50%;background:var(--blue);color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0}
.rv-who{flex:1;min-width:0}
.rv-name{font-size:13.5px;font-weight:700;color:var(--dark);display:flex;align-items:center;gap:6px}
.rv-meta{font-size:11.5px;color:var(--muted);margin-top:1px}
.rv-date{font-size:12px;color:var(--muted);white-space:nowrap}
.rv-title{font-family:var(--fh);font-size:15.5px;font-weight:700;margin:8px 0 6px;color:var(--dark)}
.rv-text{font-size:13.5px;line-height:1.65;color:var(--dark)}
.rv-verified{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;color:var(--green)}
.rv-src{text-align:center;margin-top:32px;font-size:12.5px;color:var(--muted)}
.rv-src a{color:var(--muted)}
@media(max-width:768px){.rv-head{grid-template-columns:1fr}.rv-wrap{padding:32px 16px 56px}}
.ctl-min-footer{padding:0 40px}
.ctl-min-footer .fi{padding:0}
.ctl-min-footer .fbt{border-top:none;padding:22px 0}
@media(max-width:768px){ .ctl-min-footer{padding:0 16px} .ctl-min-footer .fbt{flex-direction:column;align-items:center;text-align:center;gap:10px} .ctl-min-footer .fbt-right{display:flex;flex-direction:column;align-items:center;gap:10px} .ctl-min-footer .fbt-legal{justify-content:center} }

/* ═══ PRODUCT DETAIL SECTIONS (spec table, map, procedure, FAQ, related) ══ */
.prod-sec{padding:60px 40px}
.prod-sec.alt{background:var(--light)}
.prod-sec h2{font-family:var(--fh);font-size:clamp(22px,2.5vw,32px);font-weight:700;margin-bottom:28px;display:flex;align-items:center;gap:12px}
.sec-icon{width:40px;height:40px;border-radius:10px;background:rgba(11,40,251,.08);display:flex;align-items:center;justify-content:center;font-size:18px;color:var(--blue);flex-shrink:0}
.spec-tbl{width:100%;border-collapse:collapse}
.spec-tbl th{text-align:right;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);padding:9px 0;border-bottom:2px solid var(--border)}
.spec-tbl td{font-size:13px;padding:10px 0;border-bottom:1px solid var(--border);vertical-align:top}
.spec-tbl td:first-child{color:var(--muted);width:40%}
.spec-tip{position:relative;display:inline-flex;align-items:center;gap:5px;cursor:help}
.spec-tip>i{font-size:13px;color:var(--blue);opacity:.6;flex-shrink:0}
.spec-tip:hover>i{opacity:1}
.spec-tip-pop{position:absolute;right:0;bottom:calc(100% + 9px);width:min(260px,72vw);background:var(--dark);color:#fff;font-size:12px;line-height:1.55;font-weight:400;text-transform:none;letter-spacing:normal;padding:10px 12px;border-radius:9px;opacity:0;visibility:hidden;transform:translateY(4px);transition:opacity .15s,transform .15s;z-index:40;box-shadow:0 14px 36px rgba(6,8,26,.3);pointer-events:none}
.spec-tip-pop::after{content:'';position:absolute;right:18px;top:100%;border:6px solid transparent;border-top-color:var(--dark)}
.spec-tip:hover .spec-tip-pop,.spec-tip:focus-within .spec-tip-pop{opacity:1;visibility:visible;transform:translateY(0)}
/* Checkout — returning-customer collapsible login */
.co-logged{display:flex;align-items:center;gap:10px;border:1px solid var(--border);border-radius:12px;background:#fff;padding:12px 16px;margin-bottom:22px;font-size:13.5px;color:var(--dark)}
.co-logged>i{font-size:19px;color:var(--green);flex-shrink:0}
.co-logged span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.co-logged a,.woocommerce .co-logged a{color:var(--blue);font-weight:600;text-decoration:none;white-space:nowrap}
.co-logged a:hover{text-decoration:underline}
.co-login{border:1px solid var(--border);border-radius:12px;background:#fff;margin-bottom:22px;overflow:hidden}
.co-login summary{list-style:none;cursor:pointer;padding:14px 18px;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:14px;color:var(--dark);user-select:none}
.co-login summary::-webkit-details-marker{display:none}
.co-login summary::marker{content:''}
.co-login-bar-l{display:flex;align-items:center;gap:9px}
.co-login-bar-l i{color:var(--blue);font-size:18px}
.co-login-bar-l strong{color:var(--blue)}
.co-login-chev{transition:transform .2s;color:var(--muted);flex-shrink:0}
.co-login[open] .co-login-chev{transform:rotate(-180deg)}
.co-login-body{padding:16px 18px 18px;border-top:1px solid var(--border)}
.co-login-form .fg2 label{display:block;font-size:12.5px;font-weight:600;color:var(--dark);margin-bottom:5px}
.co-login-form .input-text{width:100%;padding:11px 13px;border:1px solid var(--border);border-radius:9px;font-size:14px;background:#fff}
.co-login-form .input-text:focus{outline:none;border-color:var(--blue)}
.co-login-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:12px 0 4px;font-size:13px;flex-wrap:wrap}
.co-login-remember{display:flex;align-items:center;gap:7px;color:var(--muted);cursor:pointer}
.co-login-row a{color:var(--blue);text-decoration:none}
.co-login-btn{width:100%;justify-content:center;padding:12px;border-radius:10px;font-size:14.5px;margin-top:14px}
.co-login-alt{text-align:center;margin-top:15px;padding-top:14px;border-top:1px dashed var(--border);font-size:13px;color:var(--muted)}
.co-login-alt a{color:var(--blue);font-weight:600;text-decoration:none}
.faq-list{display:grid;grid-template-columns:1fr 1fr;gap:20px 40px}
.fqi{padding:18px 0;border-bottom:1px solid var(--border)}
.fqq{font-family:var(--fh);font-size:14.5px;font-weight:700;margin-bottom:7px;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:8px}
.fqq i{font-size:14px;color:var(--muted);flex-shrink:0;transition:transform .2s}
.fqa{font-size:13.5px;color:var(--muted);line-height:1.63;display:none}
.fqi.open .fqa{display:block}
.fqi.open .fqq i{transform:rotate(-180deg)}
.relg{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.relc{padding:20px;border:1px solid var(--border);border-radius:var(--r);cursor:pointer;transition:all .2s;text-decoration:none;color:inherit;display:block}
.relc:hover{border-color:var(--blue);transform:translateY(-2px)}
.relc-img{height:80px;background-size:cover;background-position:center;border-radius:8px;margin-bottom:12px;position:relative;overflow:hidden}
.relc-img::after{content:'';position:absolute;inset:0;background:rgba(6,8,26,.3)}
.relc h4{font-family:var(--fh);font-size:14px;font-weight:700;margin-bottom:5px}
.relc p{font-size:12px;color:var(--muted);line-height:1.5}
.relc .rp{font-family:var(--fh);font-size:15px;font-weight:700;color:var(--blue);margin-top:8px}
.relc-img-bundle{display:flex;align-items:center;justify-content:center;background:linear-gradient(-135deg,#0a1f63,#0f456b)}
.relc-img-bundle::after{display:none}
.relc-img-bundle i{font-size:38px;color:rgba(255,255,255,.92);position:relative;z-index:1}
.relc .rel-save{display:inline-block;margin-right:8px;font-size:11px;font-weight:700;color:#1a9a6a;background:rgba(52,202,141,.12);padding:2px 8px;border-radius:100px;vertical-align:middle}
/* Related tests & bundles — horizontal carousel (reuses .rev-wrap drag/scroll) */
.rel-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:6px}
.rel-head h2{margin:0}
.rel-wrap{position:relative;margin-top:10px;padding:8px 0 12px;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}
.rel-wrap::-webkit-scrollbar{display:none}
.rev-wrap{position:relative}
.rel-wrap .relc{min-width:272px;max-width:272px;flex-shrink:0;display:flex;flex-direction:column}
.rel-wrap .relc p{flex:1}
.rel-wrap .relc-img{height:124px}
.rev-wrap a,.rev-wrap img{-webkit-user-drag:none;user-drag:none}
.rev-wrap a,.rev-wrap .relc,.rev-wrap .relc *{cursor:inherit}
/* Challenge — requirements (prominent cards) */
.chal-req-head{display:flex;align-items:center;gap:13px;margin-bottom:18px}
.chal-req-head-ic{width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:21px;flex-shrink:0}
.chal-req-head-ic.green{background:rgba(52,202,141,.13);color:var(--green)}
.chal-req-head-ic.blue{background:rgba(11,40,251,.08);color:var(--blue)}
.chal-req-head h3{font-family:var(--fh);font-size:19px;font-weight:700;color:var(--dark)}
.chal-req-head p{font-size:13.5px;color:var(--muted);line-height:1.55;margin-top:3px}
.chal-req-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.chal-req-item{display:flex;gap:13px;align-items:flex-start;background:#fff;border:1px solid var(--border);border-right:3px solid var(--blue);border-radius:12px;padding:17px 18px;transition:transform .18s,box-shadow .18s}
.chal-req-item:hover{transform:translateY(-2px);box-shadow:0 16px 36px -24px rgba(11,40,251,.45)}
.chal-req-ic{width:38px;height:38px;border-radius:10px;background:rgba(11,40,251,.07);color:var(--blue);display:flex;align-items:center;justify-content:center;font-size:19px;flex-shrink:0}
.chal-req-t{font-family:var(--fh);font-size:14px;font-weight:700;color:var(--dark);margin-bottom:4px}
.chal-req-d{font-size:12.5px;color:var(--muted);line-height:1.55}
.chal-leg-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.chal-leg{background:#fff;border:1px solid var(--border);border-radius:11px;padding:14px 16px}
.chal-leg-r{font-size:12px;font-weight:700;color:var(--blue);margin-bottom:5px;display:flex;align-items:center;gap:6px}
.chal-leg-r i{font-size:14px}
.chal-leg-d{font-size:12.5px;color:var(--muted);line-height:1.5}
@media(max-width:900px){.chal-req-grid,.chal-leg-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.chal-req-grid,.chal-leg-grid{grid-template-columns:1fr}}
/* BIPEA certification */
.bipea-sec{padding:56px 40px;background:#fff}
.bipea-band{display:grid;grid-template-columns:auto 1fr;gap:40px;align-items:center;background:linear-gradient(-135deg,#f6f9ff 0%,#eefaf4 100%);border:1px solid var(--border);border-radius:var(--rl);padding:38px 44px;position:relative;overflow:hidden}
.bipea-band::before{content:'';position:absolute;left:-70px;top:-70px;width:240px;height:240px;border-radius:50%;background:radial-gradient(circle,rgba(52,202,141,.13),transparent 70%);pointer-events:none}
.bipea-band::after{content:'';position:absolute;right:-50px;bottom:-80px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(11,40,251,.08),transparent 70%);pointer-events:none}
.bipea-seal{flex-shrink:0;position:relative;z-index:1;display:block;text-decoration:none}
.bipea-seal-card{display:flex;flex-direction:column;align-items:center;gap:12px;background:#fff;border:1px solid var(--border);border-radius:20px;padding:26px 32px;box-shadow:0 16px 38px rgba(11,40,251,.14);transition:transform .2s,box-shadow .2s}
.bipea-seal:hover .bipea-seal-card{transform:translateY(-3px);box-shadow:0 24px 48px rgba(11,40,251,.22)}
.bipea-logo-img{width:154px;height:auto;display:block}
.bipea-seal-sub{font-size:11px;text-transform:uppercase;letter-spacing:.14em;font-weight:600;color:var(--muted)}
.bipea-body{position:relative;z-index:1}
.bipea-lbl{color:#1a9a6a}
.bipea-h{font-family:var(--fh);font-size:clamp(22px,2.5vw,32px);font-weight:700;color:var(--dark);margin:6px 0 10px}
.bipea-p{font-size:14.5px;color:var(--muted);line-height:1.7;max-width:none}
.bipea-chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.bipea-chip{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;color:var(--dark);background:#fff;border:1px solid var(--border);border-radius:100px;padding:7px 14px}
.bipea-chip i{font-size:15px;color:var(--blue)}
@media(max-width:768px){.bipea-band{grid-template-columns:1fr;text-align:center;padding:30px 22px;gap:24px}.bipea-seal{margin:0 auto}.bipea-chips{justify-content:center}.bipea-p{margin:0 auto}}
/* World map */
#world-map-d3{position:relative;background:#dbeafe;border-radius:var(--rl);overflow:hidden;margin-bottom:28px;min-height:300px}
#world-map-d3 svg{display:block;width:100%!important;height:auto!important}
#world-map-d3 svg .leg-g{cursor:pointer}
.map-tooltip{position:absolute;display:none;background:#fff;border:1px solid rgba(11,40,251,.15);border-radius:9px;padding:10px 14px;box-shadow:0 6px 24px rgba(0,0,0,.13);pointer-events:none;font-family:var(--f);font-size:13px;max-width:220px;z-index:10;white-space:normal;line-height:1.4}
.map-tooltip .cname{font-weight:700;margin-bottom:4px}
.map-tooltip .cstatus{font-weight:600;white-space:normal}
.map-loading{display:flex;align-items:center;justify-content:center;height:320px;color:var(--muted);flex-direction:column;gap:10px;font-size:13px}
@media(max-width:768px){
  .prod-sec{padding:40px 16px}
  .faq-list{grid-template-columns:1fr}
  .relg{grid-template-columns:1fr}
  .stab-req-grid,.stab-proc-grid{grid-template-columns:1fr!important}
}

/* ═══ THANK YOU PAGE ════════════════════════════════════════════════════ */
/* ── Thank-you / order received ───────────────────────────────────────── */
body.woocommerce-order-received{display:flex;flex-direction:column;min-height:100vh}
body.woocommerce-order-received>footer{margin-top:auto}
body.woocommerce-order-received .woo-wrap{width:100%;max-width:none;padding:0;flex:1 0 auto}
.ty-page{width:100%}
.ty-hero{position:relative;overflow:hidden;text-align:center;padding:64px 24px 48px;background:linear-gradient(-180deg,#eef1ff 0%,#fff 100%)}
.ty-hero h1{font:700 clamp(30px,4vw,44px)/1.15 var(--fh);color:var(--dark);margin:0 0 12px;animation:tyUp .6s .5s both}
.ty-lead{font-size:16px;color:var(--muted);line-height:1.7;margin:0 auto 6px;max-width:620px;animation:tyUp .6s .62s both}
.ty-lead strong,.ty-ref strong{color:var(--dark)}
.ty-lead strong{white-space:nowrap}
.ty-ref{font-size:13.5px;color:var(--muted);margin:0;animation:tyUp .6s .72s both}
.ty-cta{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;margin-top:26px;animation:tyUp .6s .85s both}
.ty-check{width:92px;height:92px;display:block;margin:0 auto 22px;animation:tyPop .5s cubic-bezier(.2,1.5,.4,1) both}
.ty-check-c{stroke:var(--green);stroke-width:2.5;stroke-dasharray:151;stroke-dashoffset:151;animation:tyDraw .7s .1s ease-out forwards;fill:rgba(52,202,141,.12)!important}
.ty-check-p{stroke:var(--green);stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:40;stroke-dashoffset:40;animation:tyDraw .45s .6s ease-out forwards}
.ty-confetti{position:absolute;inset:0;pointer-events:none}
.ty-confetti span{position:absolute;top:-12px;right:var(--x);width:8px;height:14px;border-radius:2px;background:var(--blue);transform:rotate(var(--r));opacity:0;animation:tyFall 2.6s var(--d) ease-in forwards}
.ty-confetti span[style*="--c:1"]{background:var(--green)}
.ty-confetti span[style*="--c:2"]{background:#ffb84d}
.ty-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:24px;width:min(var(--wrap),calc(100% - 80px));margin:8px auto 64px;align-items:start}
.ty-main,.ty-side{display:flex;flex-direction:column;gap:24px;min-width:0}
.ty-in{animation:tyUp .6s calc(.9s + var(--i) * .12s) both}
.ty-card{background:#fff;border:1px solid var(--border);border-radius:var(--rl);padding:28px}
.ty-h{font:700 18px var(--fh);color:var(--dark);margin:0 0 20px}
.ty-dhl{background:var(--dark);border-radius:var(--rl);padding:28px;display:flex;gap:18px;align-items:flex-start;text-align:right}
.ty-dhl-ic{width:48px;height:48px;flex-shrink:0;border-radius:12px;background:rgba(255,255,255,.07);display:flex;align-items:center;justify-content:center;font-size:24px;color:#ffcc00}
.ty-dhl h4{font:700 16px var(--fh);color:#fff;margin:0 0 6px}
.ty-dhl p{font-size:13.5px;color:rgba(255,255,255,.6);line-height:1.6;margin:0}
.ty-dhl p strong{color:rgba(255,255,255,.85)}
.ty-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0}
.ty-step{display:flex;gap:18px;align-items:flex-start;width:100%;padding:0 0 26px;position:relative}
.ty-step:last-child{padding-bottom:0}
.ty-step:not(:last-child)::before{content:"";position:absolute;right:19px;top:42px;bottom:2px;width:2px;background:var(--border)}
.ty-step-n{width:40px;height:40px;flex-shrink:0;border-radius:50%;background:var(--blue);color:#fff;font:700 15px var(--fh);display:flex;align-items:center;justify-content:center}
.ty-step h4{font:700 16px var(--fh);color:var(--dark);margin:7px 0 5px}
.ty-step p{font-size:14px;color:var(--muted);line-height:1.65;margin:0}
.ty-sum{margin:0}
.ty-sum>div{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid var(--border);font-size:14px}
.ty-sum dt{color:var(--muted)}
.ty-sum dd{margin:0;font-weight:600;color:var(--dark);text-align:left}
.ty-sum .ty-sum-t{border-bottom:0;font-size:16px}
.ty-items{list-style:none;margin:14px 0 0;padding:14px 0 0;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:8px;font-size:13.5px;color:var(--dark)}
.ty-items i{color:var(--blue);margin-left:6px}
.ty-soc-r{display:flex;gap:10px}
.ty-soc .sb{width:44px;height:44px;border-radius:12px;background:var(--light);border:0;color:var(--blue);display:flex;align-items:center;justify-content:center;font-size:20px;cursor:pointer;text-decoration:none;transition:transform .2s,background .2s,color .2s}
.ty-soc .sb:hover{background:var(--blue);color:#fff;transform:translateY(-2px)}
@keyframes tyDraw{to{stroke-dashoffset:0}}
@keyframes tyPop{from{transform:scale(.4);opacity:0}to{transform:none;opacity:1}}
@keyframes tyUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes tyFall{0%{opacity:1;transform:translateY(0) rotate(var(--r))}100%{opacity:0;transform:translateY(340px) rotate(calc(-1*(var(--r) + 300deg)))}}
@media(max-width:900px){.ty-grid{grid-template-columns:1fr;width:auto;margin:8px 16px 48px}}
@media(max-width:560px){.ty-hero{padding:44px 16px 36px}.ty-card,.ty-dhl{padding:22px 18px}.ty-cta .btn-p,.ty-cta .btn-g{width:100%;justify-content:center}}
@media(prefers-reduced-motion:reduce){.ty-page *{animation:none!important}.ty-check-c,.ty-check-p{stroke-dashoffset:0}.ty-confetti{display:none}}

/* ═══ AUTH CARDS (forgot / create account) ══════════════════════════════ */
.si-wrap{max-width:440px;margin:0 auto;padding:60px 24px}
.si-logo{text-align:center;margin-bottom:32px}
.si-logo .lw-m{font-size:15px}
.auth-screen{min-height:calc(100vh - 66px);background:var(--light);display:flex;align-items:center;justify-content:center;padding:40px 16px}
.auth-card{background:#fff;border-radius:var(--rl);padding:40px;box-shadow:0 4px 40px rgba(11,40,251,.08);border:1px solid var(--border);width:100%}
@media(max-width:768px){ .auth-card{padding:28px 20px} }
/* Auth pages with a photo background + light blue/green gradient overlay (e.g. Create Account) */
.auth-bg{position:relative;background-image:var(--auth-img,url('../img/patch.jpg'));background-size:cover;background-position:center;background-repeat:no-repeat}
.auth-bg::before{content:'';position:absolute;inset:0;background:linear-gradient(-135deg,rgba(255,255,255,.82) 0%,rgba(246,249,255,.72) 100%)}
.auth-bg > *{position:relative;z-index:1}

/* ═══ HOW IT WORKS (floating tab + popup) ═══════════════════════════════ */
.hiw-tab{position:fixed;right:0;top:50%;transform:translateY(-50%);z-index:400;background:var(--blue);color:#fff;border:none;cursor:pointer;padding:16px 9px;border-radius:12px 0 0 12px;display:flex;flex-direction:column;align-items:center;gap:9px;box-shadow:-3px 3px 16px rgba(11,40,251,.3);transition:padding .2s,background .2s}
.hiw-tab:hover{padding-right:14px;background:#0720d8}
.hiw-tab i{font-size:17px}
.hiw-tab .hiw-tab-txt{writing-mode:vertical-rl;transform:rotate(-180deg);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
@media(max-width:768px){ .hiw-tab{top:auto;bottom:80px;transform:none;width:46px;height:46px;border-radius:50% 0 0 50%;padding:0;justify-content:center} .hiw-tab .hiw-tab-txt{display:none} .hiw-tab i{font-size:21px} }
.cv-ov{position:fixed;inset:0;background:rgba(6,8,26,.74);z-index:1100;display:none;align-items:center;justify-content:center;padding:16px}
.cv-ov.open{display:flex}
/* The stepped-dialog shell, shared by every multi-step popup: a fixed header
   and a compact stepper band on top, a fixed action bar at the bottom, and only
   the middle scrolling. Laid out with flex rather than sticky positioning so
   the footer stays put even when the content is short. */
.cv-bx{background:#fff;border-radius:20px;width:100%;max-width:640px;max-height:94vh;
  display:flex;flex-direction:column;overflow:hidden;position:relative;box-shadow:0 30px 80px rgba(6,8,26,.4)}
.cv-hd,.cv-foot,.nt-stepbar,.wz-band{flex:0 0 auto}
.cv-body{flex:1 1 auto;min-height:0;overflow-y:auto}
/* A form may own everything below the header; it has to carry the column too. */
.cv-bx>form{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}
.cv-hd{display:flex;align-items:center;justify-content:space-between;padding:22px 26px;border-bottom:1px solid var(--border);background:#fff;z-index:2;border-radius:20px 20px 0 0}
.cv-hd-t{font-family:var(--fh);font-weight:700;font-size:15px;color:var(--dark);display:flex;align-items:center;gap:9px}
.cv-cl{width:34px;height:34px;border:1px solid var(--border);border-radius:8px;background:none;cursor:pointer;font-size:18px;color:var(--muted);display:flex;align-items:center;justify-content:center}
.cv-cl:hover{background:var(--light)}
.cv-body{padding:26px}
.hiw-paths{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.hiw-path{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:16px;overflow:hidden}
.hiw-path-hd{padding:20px 18px;color:#fff}
.hiw-path-a{background:linear-gradient(-135deg,#0a3d20,#34ca8d)}
.hiw-path-b{background:linear-gradient(-135deg,#06104a,#0b28fb)}
.hiw-path-hd h3{font-family:var(--fh);font-size:18px;font-weight:700;margin:0;line-height:1.2;color:#fff}
.hiw-path-sub{margin:5px 0 0;font-size:12.5px;font-weight:500;color:rgba(255,255,255,.82);line-height:1.4}
.hiw-mini{padding:16px 18px;display:flex;flex-direction:column;gap:11px;flex:1}
.hiw-mini-step{display:flex;align-items:flex-start;gap:10px;font-size:12.5px;color:var(--dark);line-height:1.45}
.hiw-mini-n{flex-shrink:0;width:20px;height:20px;border-radius:50%;background:var(--light);color:var(--dark);font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center}
.hiw-path-cta{margin:0 18px 18px;justify-content:center;width:calc(100% - 36px)}
@media(max-width:640px){ .hiw-paths{grid-template-columns:1fr} }

/* ═══ MY ACCOUNT DASHBOARD ENGINE (My Products + requirement checklist) ══ */
.ctl-account-wrap{max-width:none;margin:0;padding:0}
.ctl-account-wrap > .woo-content{width:100%}
.ctl-mp-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.ctl-form .fsect{margin-top:18px}
/* Empty state */
.prod-empty{text-align:center;padding:56px 28px;background:#fff;border:2px dashed var(--border);border-radius:var(--rl)}
.prod-empty-ic{width:64px;height:64px;border-radius:18px;background:rgba(11,40,251,.08);color:var(--blue);display:flex;align-items:center;justify-content:center;font-size:30px;margin:0 auto 18px}
.prod-empty h3{font-family:var(--fh);font-size:21px;font-weight:700;color:var(--dark);margin-bottom:8px}
.prod-empty p{font-size:14px;color:var(--muted);max-width:440px;margin:0 auto 22px;line-height:1.6}
/* Product card */
.prod-card{background:#fff;border:1px solid var(--border);border-radius:var(--rl);padding:22px;margin-bottom:16px}
.prod-card-hd{display:flex;align-items:center;gap:14px;margin-bottom:14px;cursor:pointer}
.prod-chev{color:var(--muted);font-size:18px;transition:transform .25s;flex-shrink:0;margin-right:2px}
.prod-card.collapsed .prod-chev{transform:rotate(90deg)}
.prod-card.collapsed .prod-card-hd{margin-bottom:0}
.prod-card.collapsed .prod-card-body{display:none}
.prod-ic{width:44px;height:44px;border-radius:12px;background:rgba(11,40,251,.08);color:var(--blue);display:flex;align-items:center;justify-content:center;font-size:21px;flex-shrink:0}
.prod-name{font-family:var(--fh);font-size:16px;font-weight:700;color:var(--dark);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.prod-meta{font-size:12px;color:var(--muted);margin-top:2px}
.prod-badge{font-size:11px;font-weight:700;color:var(--blue);background:rgba(11,40,251,.08);padding:5px 11px;border-radius:100px;white-space:nowrap;flex-shrink:0}
.prod-badge.pb-done{color:var(--green);background:rgba(52,202,141,.12)}
.prod-prog{height:5px;background:var(--border);border-radius:100px;overflow:hidden;margin-bottom:16px}
.prod-prog-fill{height:100%;background:linear-gradient(-90deg,var(--blue),var(--green));border-radius:100px;transition:width .5s}
/* Checklist (6-col grid: icon | name+why | recommendation | have-it | status | action) */
.checklist{display:flex;flex-direction:column;gap:2px}
.cl-row{display:grid;grid-template-columns:22px 34px 1fr 104px 84px 150px 96px;align-items:center;gap:9px;padding:11px 12px;border-radius:10px;transition:background .15s}
.cl-pick{display:flex;align-items:center;justify-content:center}
.cl-pick-cb{width:16px;height:16px;cursor:pointer;accent-color:var(--blue)}
.cl-pick-empty{display:block}
/* My Products — bulk test selection bar + modal */
.ctl-bulk-bar{position:fixed;right:50%;bottom:24px;transform:translateX(50%);z-index:1200;width:min(560px,calc(100% - 32px))}
.ctl-bulk-bar[hidden]{display:none}
.ctl-bulk-bar-in{display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--dark);color:#fff;border-radius:14px;padding:12px 16px;box-shadow:0 20px 50px -16px rgba(6,8,26,.6)}
.ctl-bulk-count{font-size:13.5px;display:flex;align-items:center;gap:8px}
.ctl-bulk-count strong{font-family:var(--fh)}
.ctl-bulk-count i{color:var(--green);font-size:16px}
.ctl-bulk-actions{display:flex;align-items:center;gap:10px}
.ctl-bulk-clear{background:none;border:none;color:rgba(255,255,255,.7);font-size:13px;font-family:var(--f);cursor:pointer;padding:6px 8px}
.ctl-bulk-clear:hover{color:#fff}
.bk-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:13px 14px;border:1px solid var(--border);border-radius:12px;background:var(--light);margin-bottom:10px}
.bk-row-main{flex:1;min-width:150px}
.bk-row-test{font-size:13.5px;font-weight:700;color:var(--dark)}
.bk-row-for{font-size:11.5px;color:var(--muted);margin-top:2px;display:flex;align-items:center;gap:5px}
.bk-row-for i{color:var(--green);font-size:12px}
.bk-pick{min-width:190px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:#fff;font-family:var(--f);font-size:13px;color:var(--dark);cursor:pointer}
.bk-pick:focus{outline:none;border-color:var(--blue)}
.bk-fixed{font-family:var(--fh);font-size:13.5px;font-weight:700;color:var(--dark);white-space:nowrap}
.ctl-bulk-total{font-size:14px;color:var(--muted)}
.ctl-bulk-total strong{font-family:var(--fh);font-size:18px;color:var(--blue);margin-right:6px}
.cl-row:hover{background:var(--light)}
.cl-row.cl-dim{opacity:.5}
.cl-ic{width:34px;height:34px;border-radius:9px;background:var(--light);color:var(--dark);display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}
.cl-main{min-width:0}
.cl-name{font-size:13.5px;font-weight:600;color:var(--dark)}
.cl-why{font-size:11px;color:var(--muted);margin-top:1px;line-height:1.35}
.cl-rec{font-size:10px;font-weight:700;padding:4px 9px;border-radius:100px;white-space:nowrap;text-transform:uppercase;letter-spacing:.02em;justify-self:start}
.cl-rec.rc-must{color:#d33;background:rgba(221,51,51,.10)}
.cl-rec.rc-rec{color:#c87800;background:rgba(200,120,0,.10)}
.cl-rec.rc-none{color:var(--muted);background:var(--light)}
.cl-state{font-size:10px;font-weight:700;padding:4px 9px;border-radius:100px;white-space:nowrap;text-transform:uppercase;letter-spacing:.02em;justify-self:start}
.cs-draft{color:#9a6b00;background:rgba(245,194,66,.20)}
.cs-prog{color:#1a6dd4;background:rgba(26,109,212,.1)}
.cs-done{color:var(--green);background:rgba(52,202,141,.12)}
.cs-have{color:#1a9a6a;background:rgba(52,202,141,.12)}
.cs-na{color:var(--muted);background:none;font-weight:600}
.cl-have{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;color:var(--muted);cursor:pointer;white-space:nowrap;user-select:none}
.cl-have input{width:14px;height:14px;accent-color:var(--green);cursor:pointer;margin:0}
.cl-have:hover{color:var(--dark)}
.cl-have-empty{display:block}
.cl-btn{border:none;background:var(--blue);color:#fff;font-family:var(--f);font-size:12px;font-weight:700;padding:7px 14px;border-radius:8px;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:background .15s;text-decoration:none;display:inline-flex;align-items:center;gap:5px;justify-self:end}
.cl-btn:hover{background:#0720d8}
.cl-btn-ghost{background:none;color:var(--blue);border:1px solid var(--border)}
.cl-btn-ghost:hover{background:var(--light);color:var(--blue)}
.cl-btn-lock{background:var(--light);color:var(--muted);cursor:not-allowed}
.cl-btn-spacer{display:block}
.cl-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px}
.cl-iconbtn{width:30px;height:30px;flex-shrink:0;border:1px solid var(--border);background:#fff;color:var(--muted);border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:15px;transition:all .15s;text-decoration:none}
.cl-iconbtn:hover{border-color:var(--blue);color:var(--blue)}
/* Markets multi-select (add/edit form) */
.mkt-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:6px}
.mkt-opt{display:flex;align-items:center;gap:9px;padding:14px 16px;border:1.5px solid var(--border);border-radius:12px;cursor:pointer;font-size:13.5px;font-weight:600;color:var(--dark);transition:all .15s}
.mkt-opt:hover{border-color:var(--blue)}
.mkt-opt .mkt-chk{font-size:13px;color:transparent;width:18px;height:18px;border:1.5px solid var(--border);border-radius:5px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.mkt-opt.sel{border-color:var(--blue);background:rgba(11,40,251,.05)}
.mkt-opt.sel .mkt-chk{background:var(--blue);border-color:var(--blue);color:#fff}
@media(max-width:860px){
  .cl-row{display:flex;flex-wrap:wrap;gap:8px 10px}
  .cl-main{flex:1 1 55%}
  .cl-rec,.cl-state{justify-self:auto}
  .cl-btn,.cl-btn-spacer,.cl-btn-lock{justify-self:auto;margin-right:auto}
}
@media(max-width:560px){ .mkt-grid{grid-template-columns:1fr} }
/* Styled WC login/register */
.ctl-login .woocommerce-form{margin:0}
.ctl-login input.input-text{background:#fff;border:1.5px solid var(--border);border-radius:9px;padding:11px 13px;font-size:14px;font-family:var(--f);color:var(--dark);outline:none;width:100%;box-sizing:border-box}
.ctl-login input.input-text:focus{border-color:var(--blue)}
@media(max-width:760px){
  .ctl-login-cols{grid-template-columns:1fr!important}
  .ctl-login-cols > div[style*="border-left"]{border-right:none!important;padding-right:0!important;border-top:1px solid var(--border);padding-top:20px;margin-top:4px}
}

/* ═══ DASHBOARD LINKS — component-styled, no default blue/underline ══════ */
.dash-layout a{text-decoration:none}
.dash-layout a:hover{text-decoration:none}
/* Sidebar */
.woocommerce .dash-side a{text-decoration:none}
.woocommerce .dash-side .dn-item{color:rgba(255,255,255,.55)}
.woocommerce .dash-side .dn-item.on,.woocommerce .dash-side .dn-item:hover{color:#fff}
.woocommerce .dash-side .dash-new-test-btn{color:#fff}
.woocommerce .dash-side .dash-side-btn{color:rgba(255,255,255,.38)}
.woocommerce .dash-side .dash-side-btn:hover{color:rgba(255,255,255,.75)}
/* Main content: default links dark (not blue), components keep their own colour */
.woocommerce .dash-main a{color:var(--dark)}
.woocommerce .dash-main a.cl-btn,
.woocommerce .dash-main a.btn-p,
.woocommerce .dash-main a.btn-nx,
.woocommerce .dash-main a.onb-btn{color:#fff}
.woocommerce .dash-main a.cl-btn-ghost{color:var(--blue)}
.woocommerce .dash-main a.cl-iconbtn{color:var(--muted)}
.woocommerce .dash-main a.cl-iconbtn:hover{color:var(--blue)}
/* WC account tables (orders/addresses): buttons stay as buttons; plain links dark, no underline */
.woocommerce .dash-main .woocommerce-MyAccount-content a:not(.button){color:var(--dark);text-decoration:none}
.woocommerce .dash-main .woocommerce-MyAccount-content a.button{color:#fff}

/* ═══ FOOTER links keep brand colours on every page (incl. WooCommerce) ══ */
footer .fn{color:#fff}
footer .fl a{color:rgba(255,255,255,.45)}
footer .fl a:hover{color:var(--green)}
footer .footer-tp-link{color:rgba(255,255,255,.6)}
footer .footer-tp-link:hover{color:#00b67a}
footer .fbt-legal a{color:rgba(255,255,255,.5)}
footer .fbt-legal a:hover{color:#fff}
footer .sb{color:rgba(255,255,255,.38)}
footer .sb:hover{color:var(--green)}
footer .fc-py a{color:inherit}
footer a{text-decoration:none}

/* ═══ NEW-TEST / WIZARD popup ═══════════════════════════════════════════ */
.cv-foot{display:flex;align-items:center;gap:12px;padding:18px 26px;border-top:1px solid var(--border);background:#fff;border-radius:0 0 20px 20px}
.wz-h{font-family:var(--fh);font-size:22px;font-weight:700;color:var(--dark);margin-bottom:6px}
.wz-p{font-size:13.5px;color:var(--muted);margin-bottom:22px;line-height:1.55}
.nt-test-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.nt-test-opt{border:1.5px solid var(--border);border-radius:14px;padding:18px;cursor:pointer;text-align:center;transition:all .15s}
.nt-test-opt:hover{border-color:var(--blue);transform:translateY(-2px);box-shadow:0 6px 18px rgba(11,40,251,.08)}
.nt-test-ic{width:44px;height:44px;border-radius:12px;background:rgba(11,40,251,.08);color:var(--blue);display:flex;align-items:center;justify-content:center;font-size:21px;margin:0 auto 10px}
.nt-test-nm{font-size:13px;font-weight:700;color:var(--dark);line-height:1.3}
.nt-test-pr{font-size:12px;color:var(--muted);margin-top:4px}
.nt-test-opt{position:relative}
.nt-test-ds{font-size:11.5px;color:var(--muted);line-height:1.35;margin-top:4px}
.nt-test-info,.woocommerce a.nt-test-info{position:absolute;top:8px;left:8px;width:24px;height:24px;border-radius:7px;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:16px;text-decoration:none;transition:background .15s,color .15s}
.nt-test-info:hover,.woocommerce a.nt-test-info:hover{background:rgba(11,40,251,.08);color:var(--blue)}
.nt-alt{display:flex;gap:10px;flex-wrap:wrap}
.nt-alt-btn{flex:1;min-width:180px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:11px 14px;border:1.5px dashed var(--border);border-radius:11px;background:none;font-family:var(--f);font-size:13px;font-weight:600;color:var(--blue);cursor:pointer;transition:border-color .15s,background .15s}
.nt-alt-btn:hover{border-color:var(--blue);background:rgba(11,40,251,.04)}
.nt-alt-btn.nt-alt-skip{color:var(--muted)}
.nt-alt-btn.nt-alt-skip:hover{color:var(--dark);border-color:var(--muted)}
.nt-prod-list{display:flex;flex-direction:column;gap:10px}
.nt-prod-opt{display:flex;align-items:center;gap:12px;border:1.5px solid var(--border);border-radius:12px;padding:14px;cursor:pointer;transition:all .15s}
.nt-prod-opt:hover{border-color:var(--blue);background:rgba(11,40,251,.03)}
.nt-prod-opt.sel{border-color:var(--blue);background:rgba(11,40,251,.05)}
.nt-noprod{text-align:center;padding:30px;color:var(--muted)}
.nt-noprod i{font-size:32px;color:var(--blue);display:block;margin-bottom:10px}
.nt-noprod p{margin-bottom:16px;font-size:13.5px}
.nt-summary{background:var(--light);border-radius:14px;padding:18px 20px}
.nt-sum-row{display:flex;justify-content:space-between;gap:16px;padding:7px 0;font-size:13px}
.nt-sum-k{color:var(--muted);flex-shrink:0}
.nt-sum-v{color:var(--dark);text-align:left;font-weight:500}
.nt-sum-sec{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--dark);margin:14px 0 4px;display:flex;align-items:center;gap:8px}
.nt-imported{font-size:9px;color:var(--green);background:rgba(52,202,141,.12);padding:2px 7px;border-radius:100px;letter-spacing:.03em}
.nt-edit-link{display:flex;align-items:flex-start;gap:7px;font-size:12px;color:var(--muted);margin-top:14px;line-height:1.5}
@media(max-width:560px){ .nt-test-grid{grid-template-columns:1fr} }

/* ── Draft-restored hint banner (popup forms) ── */
.ctl-draft-hint{display:flex;align-items:center;justify-content:space-between;gap:12px;background:rgba(11,40,251,.06);border:1px solid rgba(11,40,251,.18);border-radius:10px;padding:10px 12px;margin-bottom:16px;font-size:12.5px;color:var(--dark)}
.ctl-draft-hint i{color:var(--blue);margin-left:4px}
.ctl-draft-hint button{background:none;border:none;color:var(--blue);font-weight:700;font-size:12px;cursor:pointer;font-family:var(--f);white-space:nowrap}
.ctl-draft-hint button:hover{text-decoration:underline}

/* ── Checkout: red asterisk marks required fields, muted "(optional)" the rest ── */
.dhl-pick .optional{display:none !important}
.dhl-diff{display:flex;align-items:center;gap:9px;margin:14px 0 4px;font-size:13.5px;font-weight:600;cursor:pointer}
.dhl-diff input{width:17px;height:17px;accent-color:var(--blue);margin:0;flex-shrink:0}
.dhl-diff-f{display:none;margin-top:12px;padding-top:14px;border-top:1px solid rgba(11,40,251,.12)}
.dhl-diff-f::after{content:"";display:table;clear:both}
.dhl-pick:has(#ctl_dhl_diff:checked) .dhl-diff-f{display:block}
.dhl-dg{align-items:flex-start;margin-top:10px}
.dhl-dg input{margin-top:2px}
.dhl-dg abbr.required{color:#b3261e;text-decoration:none;margin-right:3px}
.dhl-dg .fhint{margin-right:4px}
.woocommerce-checkout form .required,.woocommerce-checkout abbr.required{color:#d63638;text-decoration:none;border:0;font-weight:700;margin-right:2px}
.woocommerce-checkout .optional{color:var(--muted);font-weight:400;font-size:.85em;margin-right:4px}

/* ═══ ORDER DETAIL popup ════════════════════════════════════════════════ */
.order-row.clickable{cursor:pointer;border-radius:10px;margin:0 -10px;padding-right:10px;padding-left:10px;transition:background .12s}
.order-row.clickable:hover{background:var(--light)}
.ord-d-status{display:flex;align-items:center;gap:14px;padding:16px 18px;border-radius:14px;margin-bottom:18px;background:var(--light)}
.ord-d-status.s-act{background:rgba(11,40,251,.06)}
.ord-d-status.s-pen{background:rgba(245,158,11,.09)}
.ord-d-status.s-dn{background:rgba(52,202,141,.1)}
.ord-d-status-ic{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:22px;background:#fff;color:var(--blue);flex-shrink:0}
.ord-d-status.s-pen .ord-d-status-ic{color:#d97706}
.ord-d-status.s-dn .ord-d-status-ic{color:var(--green)}
.ord-d-status-t{font-weight:700;font-size:15px;color:var(--dark)}
.ord-d-status-s{font-size:12.5px;color:var(--muted);margin-top:2px}
.ord-d-status-dt{display:flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;color:var(--muted);margin-top:5px}
.ord-d-status-dt i{font-size:13px}
.ord-tl{display:flex;justify-content:space-between;position:relative;margin:6px 4px 22px}
.ord-tl::before{content:"";position:absolute;top:13px;right:18px;left:18px;height:2px;background:var(--border);z-index:0}
.ord-tl-step{display:flex;flex-direction:column;align-items:center;gap:7px;position:relative;z-index:1;flex:1;text-align:center}
.ord-tl-step[data-tip]{cursor:help}
.ord-tl-step[data-tip]::after{content:attr(data-tip);position:absolute;bottom:calc(100% + 7px);right:50%;transform:translateX(50%) translateY(4px);background:var(--dark);color:#fff;font-size:11px;font-weight:500;line-height:1.35;padding:6px 10px;border-radius:7px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .12s,transform .12s;z-index:20}
.ord-tl-step[data-tip]:hover::after{opacity:1;transform:translateX(50%) translateY(0)}
.ord-tl-step:first-child[data-tip]::after{right:0;transform:translateX(0) translateY(4px)}
.ord-tl-step:first-child[data-tip]:hover::after{transform:translateX(0) translateY(0)}
.ord-tl-step:last-child[data-tip]::after{right:auto;left:0;transform:translateX(0) translateY(4px)}
.ord-tl-step:last-child[data-tip]:hover::after{transform:translateX(0) translateY(0)}
.ord-tl-dot{width:28px;height:28px;border-radius:50%;background:#fff;border:2px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:13px;color:var(--muted)}
.ord-tl-step.done .ord-tl-dot{background:var(--green);border-color:var(--green);color:#fff}
.ord-tl-step.active .ord-tl-dot{background:var(--blue);border-color:var(--blue);color:#fff;box-shadow:0 0 0 4px rgba(11,40,251,.15)}
.ord-tl-lbl{font-size:10.5px;font-weight:600;color:var(--muted);line-height:1.35;max-width:74px}
.ord-tl-step.done .ord-tl-lbl,.ord-tl-step.active .ord-tl-lbl{color:var(--dark)}
/* When a step happened. Only steps the order has reached carry one. */
.ord-tl-dt{font-size:10px;color:var(--muted);line-height:1.3;margin-top:-3px;white-space:nowrap}
.ord-tl-step.done .ord-tl-dt{color:var(--green)}
/* Separator lives on .ord-itemx only (one line per item); .ord-item just spaces */
.ord-item{display:flex;align-items:center;gap:12px;padding:15px 0}
.ord-item-nm{line-height:1.35}
#ctl-ord-modal .cv-bx{max-width:820px}
.oc-test-link{cursor:pointer;border-radius:8px;transition:background .15s}
.oc-test-link:hover{background:rgba(11,40,251,.03)}
.oc-test-link:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}
.ord-item-ic{width:38px;height:38px;border-radius:10px;background:rgba(11,40,251,.07);color:var(--blue);display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}
.ord-item-nm{font-size:13.5px;font-weight:600;color:var(--dark)}
.ord-item-mt{font-size:11.5px;color:var(--muted);margin-top:2px}
.ord-item-pr{font-weight:700;font-size:13.5px;color:var(--dark);white-space:nowrap}
/* Each test carries its own status here — the order's pill is a roll-up. */
.ord-item-st{margin-right:auto;flex-shrink:0}
.ord-total{display:flex;justify-content:space-between;align-items:center;padding-top:16px;font-size:15px;font-weight:700;color:var(--dark)}
.ord-loading{text-align:center;padding:50px 0;color:var(--muted)}
.ord-loading i{font-size:30px;display:block;margin-bottom:10px;animation:ctlspin 1s linear infinite}
@keyframes ctlspin{to{transform:rotate(-360deg)}}
/* Mini timeline (My Tests order rows) */
.ord-tl-mini{margin:9px 0 2px;max-width:300px}
.ord-tl-mini::before{top:8px;right:8px;left:8px}
.ord-tl-mini .ord-tl-step{gap:5px}
.ord-tl-mini .ord-tl-dot{width:16px;height:16px;font-size:9px;border-width:2px}
.ord-tl-mini .ord-tl-step.active .ord-tl-dot{box-shadow:0 0 0 3px rgba(11,40,251,.15)}
.ord-tl-mini .ord-tl-lbl{font-size:8.5px;max-width:58px;line-height:1.2}
.ord-tl-mini .ord-tl-dt{font-size:9px;margin-top:-2px}
/* Collapsible sections in order popup */
.ord-sec{border:1px solid var(--border);border-radius:12px;margin-top:12px;overflow:hidden}
.ord-sec-hd{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--light);border:none;padding:13px 16px;cursor:pointer;font-family:var(--f);font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--dark)}
.ord-sec-hd:hover{background:#eceef3}
.ord-sec-chev{transition:transform .2s;color:var(--muted);font-size:16px}
.ord-sec.open .ord-sec-chev{transform:rotate(-180deg)}
.ord-sec-bd{display:none;padding:4px 16px 12px}
.ord-sec.open .ord-sec-bd{display:block}

/* ── Order popup: three clear compartments ── */
.ord-comp{border:1px solid var(--border);border-radius:14px;padding:16px 18px;margin-bottom:14px;background:#fff}
.ord-comp-h{font-family:var(--fh);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);display:flex;align-items:center;gap:8px;margin-bottom:14px}
.ord-comp-h i{color:var(--blue);font-size:15px}
.ord-comp.cmp-tl{background:var(--light);border-color:transparent}
.ord-comp>.ord-item:first-of-type{padding-top:0}
.ord-comp-h+.ord-itemx>.ord-item{padding-top:2px}   /* only the first test row hugs the heading; every other row keeps space under the line above */
.ord-comp .ord-tl{margin-bottom:2px}
.ord-comp .ord-sec:first-of-type{margin-top:0}
/* Per-item expandable product data inside the order popup */
.ord-itemx{border-bottom:1px solid var(--border)}   /* one line per item; the last item's line sits right above Total */
.ord-itemx .ord-item{cursor:default}
.ord-itemx[onclick] .ord-item,.ord-itemx .ord-item[onclick]{cursor:pointer}
.ord-item-chev{color:var(--muted);transition:transform .2s;flex-shrink:0}
.ord-itemx.open .ord-item-chev{transform:rotate(-180deg)}
.ord-item-data{display:none;padding:4px 50px 16px 0}
.ord-itemx.open .ord-item-data{display:block}

/* Deliverable documents in the order popup */
.ord-docs{background:rgba(52,202,141,.05);border-color:rgba(52,202,141,.32)}
.ord-docs .ord-comp-h i{color:var(--green)}
/* Which test a group of reports belongs to. */
.ord-doc-grp{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:14px 0 7px}
.ord-doc-grp:first-child{margin-top:0}
.ord-doc{display:flex;align-items:center;gap:12px;padding:11px 12px;border:1px solid var(--border);border-radius:10px;margin-bottom:8px;text-decoration:none;background:#fff;transition:border-color .15s,box-shadow .15s}
.ord-doc:last-child{margin-bottom:0}
.ord-doc:hover{border-color:var(--green);box-shadow:0 4px 14px rgba(52,202,141,.14)}
.ord-doc-ic{width:38px;height:38px;border-radius:9px;background:rgba(52,202,141,.12);color:var(--green);display:flex;align-items:center;justify-content:center;font-size:19px;flex-shrink:0}
.ord-doc-info{flex:1;min-width:0}
.ord-doc-nm{display:block;font-weight:700;font-size:13.5px;color:var(--dark)}
.ord-doc-meta{display:block;font-size:11.5px;color:var(--muted);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ord-doc-dl{flex-shrink:0;display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:700;color:var(--green)}
.ord-docs-empty{text-align:center;padding:26px 16px;color:var(--muted)}
.ord-docs-empty i{font-size:34px;color:var(--green);display:block;margin-bottom:10px;opacity:.7}
.ord-docs-empty p{font-size:13.5px;line-height:1.55}
/* "Documents" button on the My Tests order card */
.oc-docs-btn{flex-shrink:0;display:inline-flex;align-items:center;gap:6px;background:#fff;color:var(--blue);border:1.5px solid rgba(11,40,251,.25);border-radius:9px;font-family:var(--f);font-size:12.5px;font-weight:700;padding:7px 13px;cursor:pointer;transition:background .15s,border-color .15s}
.oc-docs-wait{flex-shrink:0;display:inline-flex;align-items:center;gap:6px;background:rgba(11,40,251,.06);color:var(--muted);border-radius:9px;font-family:var(--f);font-size:12.5px;font-weight:600;padding:8px 12px}
.oc-docs-wait .ctl-tip{margin-right:0}
.oc-docs-btn,.oc-docs-btn:visited,.oc-docs-btn:hover{color:var(--blue);text-decoration:none}
.oc-docs-btn:hover{background:var(--light);border-color:rgba(11,40,251,.45)}
.oc-details-btn,.oc-details-btn:visited,.oc-details-btn:hover{background:var(--blue);border-color:var(--blue);color:#fff}
.oc-details-btn:hover{background:var(--blue);filter:brightness(1.1)}
.oc-dd{position:relative;flex-shrink:0}
.oc-dd>summary{list-style:none}
.oc-dd>summary::-webkit-details-marker{display:none}
.oc-dd-chev{font-size:13px!important;transition:transform .15s}
.oc-dd[open] .oc-dd-chev{transform:rotate(-180deg)}
.oc-dd-menu{position:absolute;left:0;bottom:calc(100% + 6px);z-index:30;min-width:210px;background:#fff;border:1px solid var(--border);border-radius:11px;box-shadow:0 12px 32px rgba(6,8,26,.14);padding:6px;display:grid;gap:2px}
.oc-dd-item,.oc-dd-item:visited{display:flex;align-items:center;gap:9px;width:100%;padding:9px 11px;border:0;border-radius:8px;background:none;font-family:var(--f);font-size:13px;font-weight:600;color:var(--text,#06081a);text-align:right;text-decoration:none;cursor:pointer}
.oc-dd-item:hover{background:var(--light);color:var(--blue)}
.oc-dd-item i{font-size:16px;color:var(--blue)}
.oc-docs-btn i{font-size:15px}

/* My Tests: one card per order */
.order-card{border:1px solid var(--border);border-radius:14px;padding:15px 18px;margin-bottom:14px;background:#fff;transition:border-color .15s,box-shadow .15s}
.order-card:hover{border-color:rgba(11,40,251,.3);box-shadow:0 6px 20px rgba(11,40,251,.08)}
/* One header line: what the order is, how far it has got, what it cost. */
.oc-top{display:flex;align-items:center;gap:14px;padding-bottom:12px;border-bottom:1px solid var(--border);cursor:pointer}
.oc-stat{display:flex;flex-direction:column;align-items:flex-end;gap:3px;flex-shrink:0}
.oc-stat-dt{font-size:10.5px;color:var(--muted);white-space:nowrap}
/* Only shown when the tests in one order are at different stages. */
.oc-mix{display:flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;color:var(--muted);white-space:nowrap;margin-right:auto}
.oc-mix i{font-size:14px;color:var(--blue)}
.oc-ship{display:flex;align-items:center;flex-wrap:wrap;gap:8px 18px;padding:12px 4px 4px;font-size:12.5px;color:var(--muted)}
.oc-ship-st{display:flex;align-items:center;gap:6px;list-style:none;margin:0;padding:0;flex-wrap:wrap}
.oc-ship-st li{display:inline-flex;align-items:center;gap:6px;padding:4px 11px;border-radius:999px;border:1px solid var(--border);font-weight:600;color:var(--muted)}
.oc-ship-st li.done{background:rgba(52,202,141,.14);border-color:transparent;color:#1c7a56}
.oc-ship-st li.now{background:rgba(255,165,0,.14);border-color:transparent;color:#a85f00}
.oc-ship-st li:not(.done):not(.now){cursor:not-allowed}
.oc-ship-st li.now i{animation:ctl-ship-now 2.4s ease-in-out infinite}
@keyframes ctl-ship-now{0%,60%,100%{transform:translateX(0)}30%{transform:translateX(-3px)}}
@media (prefers-reduced-motion:reduce){.oc-ship-st li.now i{animation:none}}
.oc-ship-st i{font-size:14px}
.oc-ship-m{display:flex;align-items:center;flex-wrap:wrap;gap:4px 14px;margin-right:auto}
.oc-ship-m a{font-weight:600;color:var(--blue)}
.oc-ship-m a.oc-track{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border:1px solid var(--blue);border-radius:9px;background:#fff;color:var(--blue);font-weight:700;text-decoration:none;transition:background .15s,color .15s}
.oc-ship-m a.oc-track:hover,.oc-ship-m a.oc-track:focus-visible{background:var(--blue);color:#fff}
.oc-track i{font-size:15px}
.oc-track .oc-track-n{font-weight:500;opacity:.85}
/* Samples to prepare, per test (order card + order popup), until DHL collects them */
.smp-box{margin:12px 0;padding:12px 16px;border-radius:12px;background:rgba(11,40,251,.05);border:1px solid rgba(11,40,251,.15)}
.smp-box .smp-t{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--blue);margin-bottom:6px}
.smp-box .smp-t i{font-size:15px}
.smp-box ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.smp-box li{display:flex;flex-direction:column;gap:2px;font-size:13px;line-height:1.5;color:var(--dark)}
.smp-box li+li{padding-top:8px;border-top:1px solid rgba(11,40,251,.1)}
.smp-box .smp-d{color:var(--muted)}
.smp-box .smp-d strong{color:var(--dark)}
.smp-card{flex:1 1 100%}
.oc-ship-note{flex:1 1 100%;display:flex;gap:10px;align-items:flex-start;margin:4px 0 0;padding:10px 14px;border-radius:10px;background:rgba(255,165,0,.12);color:#7a4a00;font-size:12.5px;line-height:1.5}
.oc-ship-note i{font-size:18px;flex-shrink:0;margin-top:1px}
.oc-ship-note strong{color:#5c3600}
.oc-ship-st li.warn{background:rgba(214,54,56,.12);color:#b32d2e}
.ctl-dhl-tl{list-style:none;margin:0;padding:0 14px 0 0;border-right:2px solid var(--border);display:flex;flex-direction:column;gap:6px;max-height:240px;overflow:auto}
.ctl-dhl-tl li{position:relative;font-size:12.5px;line-height:1.4;color:var(--muted)}
.ctl-dhl-tl li::before{content:"";position:absolute;right:-19px;top:5px;width:8px;height:8px;border-radius:50%;background:var(--border)}
.ctl-dhl-tl li.now::before{background:#34ca8d}
.ctl-dhl-tl li.g-problem::before{background:#d63638}
.ctl-dhl-tl li strong{color:var(--text,inherit);font-weight:600}
.ctl-dhl-tl time{display:block;font-size:11.5px}
.ty-customs{margin-top:16px}
.ty-customs .ty-dhl-ic{color:#ffa500}
/* The header stepper: dots only, each step's date in its tooltip. */
.ord-tl-comp{flex:1;max-width:250px;min-width:150px;margin:0}
/* The rail runs dot-centre to dot-centre — with four equal columns that is
   an eighth of the width in from each end. */
.ord-tl-comp::before{top:6px;right:12.5%;left:12.5%}
.ord-tl-comp .ord-tl-step{gap:4px;cursor:help}
.ord-tl-comp .ord-tl-dot{width:13px;height:13px;font-size:8px;border-width:2px}
.ord-tl-comp .ord-tl-step.active .ord-tl-dot{box-shadow:0 0 0 3px rgba(11,40,251,.15)}
.ord-tl-comp .ord-tl-lbl{font-size:8.5px;max-width:56px;line-height:1.2}
/* Too narrow for four columns beside everything else — give it its own row. */
@media(max-width:760px){
  .oc-top{flex-wrap:wrap;gap:10px}
  .oc-id{flex-basis:60%}
  .oc-test{flex-wrap:wrap}
  .oc-test .oc-stat{align-items:flex-start}
  .oc-test-info .ord-tl-comp{max-width:none}
}
.oc-chev{color:var(--muted);font-size:18px;flex-shrink:0;margin-right:2px;transition:transform .25s}
.order-card.collapsed .oc-chev{transform:rotate(90deg)}
.order-card.collapsed .oc-top{border-bottom:none;padding-bottom:0}
.order-card.collapsed .oc-body{display:none}
.oc-foot-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}
.oc-id{flex:1;min-width:0}
.oc-id-n{font-family:var(--fh);font-size:15px;font-weight:700;color:var(--dark)}
.oc-id-d{font-size:12px;color:var(--muted);margin-top:2px;display:flex;align-items:center;gap:5px}
.oc-id-d i{font-size:13px}
.oc-total{font-family:var(--fh);font-size:16px;font-weight:700;color:var(--dark);white-space:nowrap}
.oc-tests{display:flex;flex-direction:column;padding:4px 0}
.oc-test{display:grid;grid-template-columns:34px minmax(170px,1fr) minmax(300px,1.7fr) auto;align-items:center;gap:14px;padding:10px 0;border-top:1px solid var(--border)}
.oc-test-tl{display:flex;justify-content:center;min-width:0}
.oc-test-tl .ord-tl-comp{flex:1;margin:0 auto;max-width:480px;min-width:260px}
.oc-test .ord-tl-comp::before{top:10px;height:3px}
.oc-test .ord-tl-comp .ord-tl-step{gap:6px}
.oc-test .ord-tl-comp .ord-tl-dot{width:22px;height:22px;font-size:12px}
.oc-test .ord-tl-comp .ord-tl-step.active .ord-tl-dot{box-shadow:0 0 0 4px rgba(11,40,251,.15)}
.oc-test .ord-tl-comp .ord-tl-lbl{font-size:11.5px;max-width:84px;line-height:1.25}
.oc-test .ord-tl-comp .ord-tl-dt{font-size:10.5px}
.oc-test-r{display:flex;align-items:center;justify-content:flex-end;gap:16px}
.oc-test-r .oc-test-pr{font-size:13.5px;color:var(--dark);min-width:64px;text-align:left}
@media(max-width:900px){
  .oc-test{grid-template-columns:34px 1fr auto}
  .oc-test-tl{grid-column:2/4;justify-content:flex-start}
  .oc-test-tl .ord-tl-comp{margin:0}
}
.oc-tests .oc-test:first-child{border-top:none}
/* Each test tracks itself, so its stepper sits with its name. Wider than the
   header strip it grew out of, so the full stage names fit under the dots. */
.oc-test-info .ord-tl-comp{margin-top:9px;max-width:325px;min-width:180px}
.oc-test-info .ord-tl-comp .ord-tl-lbl{max-width:74px}
/* …and its finished reports sit under it, one chip each. */
.oc-test-docs{display:flex;flex-wrap:wrap;gap:7px;margin-top:11px}
.oc-doc{display:inline-flex;align-items:center;gap:7px;padding:6px 11px;border:1px solid var(--border);border-radius:9px;background:#fff;font-size:11.5px;font-weight:600;color:var(--dark);text-decoration:none;transition:border-color .15s,background .15s}
.oc-doc:hover{border-color:var(--green);background:rgba(52,202,141,.06)}
.oc-doc i{font-size:14px;color:var(--green)}
.oc-doc-sz{font-weight:500;color:var(--muted)}
/* The pills carry their full stage names now, so the column has to fit them. */
.oc-test .oc-stat{min-width:128px}
.oc-test-ic{width:34px;height:34px;border-radius:9px;background:rgba(11,40,251,.07);color:var(--blue);display:flex;align-items:center;justify-content:center;font-size:17px;flex-shrink:0}
.oc-test-info{flex:1;min-width:0}
.oc-test-nm{font-size:13.5px;font-weight:600;color:var(--dark);line-height:1.3}
.oc-test-for{font-size:11.5px;color:var(--muted);margin-top:2px;display:flex;align-items:center;gap:5px}
.oc-test-for i{font-size:12px;color:var(--green)}
.oc-test-pr{font-size:12.5px;font-weight:600;color:var(--muted);white-space:nowrap}
.oc-foot{display:flex;align-items:center;justify-content:flex-end;gap:14px;padding-top:11px;border-top:1px solid var(--border)}
.oc-report{flex-shrink:0}

/* ── New-test wizard: stepper band (separate from the main content) ── */
.nt-stepbar,.wz-band{padding:11px 26px 12px;background:var(--light);border-bottom:1px solid var(--border)}
.nt-stepbar .wz-steps,.wz-band .wz-steps{margin-bottom:0}
.nt-stepbar .wz-step-dot,.wz-band .wz-step-dot{width:22px;height:22px;font-size:11px;border-width:2px}
.nt-stepbar .wz-step.active .wz-step-dot,.wz-band .wz-step.active .wz-step-dot{box-shadow:0 0 0 3px rgba(11,40,251,.14)}
/* The band's steps are navigable in the forms that allow it. */
.wz-band .wz-step[data-step-to],.wz-band .wz-step[data-pstep-to]{cursor:pointer}
.wz-band .wz-step[data-step-to]:hover .wz-step-dot,
.wz-band .wz-step[data-pstep-to]:hover .wz-step-dot{border-color:var(--blue);color:var(--blue)}
.wz-band .wz-step[data-step-to]:hover .wz-step.active .wz-step-dot{color:#fff}
.wz-band .wz-step:focus-visible .wz-step-dot{box-shadow:0 0 0 3px rgba(11,40,251,.3)}
#ctl-nt-modal .cv-body{padding-top:20px}
.wz-stepcount{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--blue);margin-bottom:12px}
.nt-test-opt.sel{border-color:var(--blue);background:rgba(11,40,251,.05)}
.wz-steps{display:flex;align-items:center;gap:0;margin-bottom:22px}
.wz-step{display:flex;align-items:center;gap:8px;flex:1;min-width:0}
.wz-step:last-child{flex:0 0 auto}
.wz-step-dot{width:26px;height:26px;border-radius:50%;background:var(--light);border:2px solid var(--border);color:var(--muted);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0;font-family:var(--fh)}
.wz-step.done .wz-step-dot{background:var(--green);border-color:var(--green);color:#fff}
.wz-step.active .wz-step-dot{background:var(--blue);border-color:var(--blue);color:#fff;box-shadow:0 0 0 4px rgba(11,40,251,.14)}
.wz-step-lbl{font-size:11.5px;font-weight:600;color:var(--muted);white-space:nowrap}
.wz-step.active .wz-step-lbl,.wz-step.done .wz-step-lbl{color:var(--dark)}
.wz-step-bar{flex:1;height:2px;background:var(--border);margin:0 10px;min-width:14px}
.wz-step-bar.done{background:var(--green)}
@media(max-width:560px){ .wz-step-lbl{display:none} }

/* ── Searchable product combobox ── */
.nt-combo{position:relative}
.nt-combo-input{width:100%;padding:13px 14px 13px 40px;border:1.5px solid var(--border);border-radius:12px;font-family:var(--f);font-size:14px;color:var(--dark);background:#fff}
.nt-combo-input:focus{outline:none;border-color:var(--blue)}
.nt-combo-ic{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}
/* Rendered on <body> and positioned to the input by JS: inside the wizard the
   modal's own scrolling would clip it, whatever its z-index. Sits above the
   modal (1100) and the INCI list (2000). */
.nt-combo-list{position:fixed;background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:0 18px 44px rgba(6,8,26,.20);max-height:260px;overflow-y:auto;z-index:2100;display:none}
.nt-combo-list.open{display:block}
.nt-combo-opt{display:flex;align-items:center;gap:11px;padding:11px 14px;cursor:pointer;border-bottom:1px solid var(--border)}
.nt-combo-opt:last-child{border-bottom:none}
.nt-combo-opt:hover,.nt-combo-opt.hl{background:rgba(11,40,251,.05)}
.nt-combo-opt .prod-ic{width:32px;height:32px;border-radius:8px;background:rgba(11,40,251,.08);color:var(--blue);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.nt-combo-empty{padding:16px 14px;text-align:center;color:var(--muted);font-size:13px}
.nt-combo-sel{display:flex;align-items:center;gap:12px;border:1.5px solid var(--blue);background:rgba(11,40,251,.04);border-radius:12px;padding:13px 14px;margin-top:12px}
.nt-combo-sel .prod-ic{width:38px;height:38px;border-radius:10px;background:rgba(11,40,251,.1);color:var(--blue);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.nt-combo-sel-x{margin-right:auto;background:none;border:none;color:var(--muted);cursor:pointer;font-size:18px}
.nt-edit-grp{display:flex;flex-direction:column;gap:10px;margin-top:4px}
.nt-edit-grp label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.nt-edit-grp select,.nt-edit-grp input{width:100%;padding:11px 12px;border:1.5px solid var(--border);border-radius:10px;font-family:var(--f);font-size:13.5px;color:var(--dark);background:#fff;margin-top:5px}
.nt-edit-grp select:focus,.nt-edit-grp input:focus{outline:none;border-color:var(--blue)}

/* ── Checkout: editable product/test cards (order review) ── */
.co-line{display:flex;align-items:center;gap:13px;padding:14px 0;border-bottom:1px solid var(--border)}
.co-line-img{width:52px!important;height:52px!important;border-radius:10px;background:var(--light);object-fit:cover;flex-shrink:0;display:block}
.co-line-img-ph{display:flex;align-items:center;justify-content:center;color:var(--blue);font-size:22px}
.co-line-info{flex:1;min-width:0}
.co-line-test{font-size:13.5px;font-weight:700;color:var(--dark);line-height:1.3}
.co-line-prod{font-size:12px;color:var(--muted);margin-top:2px;display:flex;align-items:center;gap:5px}
.co-line-prod i{font-size:13px;color:var(--green)}
.co-line-r{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.co-line-pr{font-weight:700;font-size:13.5px;color:var(--dark);white-space:nowrap}
.co-line-edit{background:none;border:1px solid var(--border);border-radius:8px;color:var(--blue);font-size:11.5px;font-weight:600;font-family:var(--f);padding:5px 10px;cursor:pointer;display:inline-flex;align-items:center;gap:5px}
.co-line-edit:hover{background:rgba(11,40,251,.06);border-color:var(--blue)}
/* missing/incomplete product data — needs attention before checkout */
.co-line-edit.co-line-warn{color:#b32d2e;border-color:rgba(214,54,56,.4);background:rgba(214,54,56,.06)}
.co-line-edit.co-line-warn:hover{background:rgba(214,54,56,.1);border-color:#b32d2e}

/* ── Side-cart item: clickable to edit ── */
.cart-item.editable .ci-name{cursor:pointer}
.cart-item.editable .ci-name:hover{color:var(--blue)}
.ci-edit-hint{font-size:11px;color:var(--blue);cursor:pointer;display:inline-flex;align-items:center;gap:4px;margin-top:3px}
.ci-edit-hint:hover{text-decoration:underline}

/* Floating cart button (bottom-right) */
.cart-fab{position:fixed;left:22px;bottom:22px;z-index:480;width:56px;height:56px;border-radius:50%;background:var(--blue);color:#fff;border:none;cursor:pointer;box-shadow:0 8px 24px rgba(11,40,251,.35);display:none;align-items:center;justify-content:center;font-size:23px;transition:transform .15s,box-shadow .15s}
.cart-fab.show{display:flex;animation:fabpop .25s ease}
.cart-fab:hover{transform:translateY(-2px) scale(1.05);box-shadow:0 12px 30px rgba(11,40,251,.45)}
.cart-fab-count{position:absolute;top:-4px;left:-4px;min-width:22px;height:22px;padding:0 5px;border-radius:11px;background:var(--green);color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;border:2px solid #fff;font-family:var(--f)}
@keyframes fabpop{from{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}
/* Onboarding "Getting started" collapse */
.onb-hd{cursor:pointer}
.onb-chev{margin-right:6px;color:var(--muted);transition:transform .2s;font-size:18px;flex-shrink:0;transform:rotate(-180deg)}
.onb-card.collapsed .onb-chev{transform:rotate(0deg)}
.onb-card.collapsed .onb-steps{display:none}
.onb-card.done .onb-hd-txt h3{color:var(--green)}
/* Profile name in header */
.profile-name{font-size:13.5px;font-weight:600;color:var(--dark);margin-right:7px;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.profile-btn{display:inline-flex;align-items:center}
@media(max-width:680px){.profile-name{display:none}}

/* ═══ SIGN-IN ═══════════════════════════════════════════════════════════ */
.si-2col{display:grid;grid-template-columns:1fr 2fr;min-height:calc(100vh - 66px)}
.si-left{position:relative;overflow:hidden;background:var(--dark)}
.si-left-bg{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.3}
.si-left-grad{position:absolute;inset:0;background:linear-gradient(-160deg,rgba(8,18,90,.92),rgba(11,28,120,.82))}
.si-left-cnt{position:relative;z-index:1;padding:40px 36px;display:flex;flex-direction:column;height:100%}
.si-left-ttl{font-family:var(--fh);font-size:clamp(22px,2.2vw,30px);font-weight:700;color:#fff;line-height:1.2;margin-bottom:14px}
.si-left-sub{font-size:14px;color:rgba(255,255,255,.58);line-height:1.7;margin-bottom:28px}
.si-left-stat{display:flex;flex-direction:column;gap:14px}
.si-left-s{display:flex;align-items:center;gap:12px;padding:13px 16px;background:rgba(255,255,255,.07);border-radius:11px;border:1px solid rgba(255,255,255,.09)}
.si-left-s i{font-size:20px;color:var(--green);flex-shrink:0}
.si-ls-n{font-family:var(--fh);font-size:18px;font-weight:700;color:#fff;line-height:1}
.si-ls-l{font-size:11.5px;color:rgba(255,255,255,.45);margin-top:2px}
.si-right{display:flex;align-items:center;justify-content:center;padding:48px 40px;overflow-y:auto;position:relative;background:var(--light)}
.si-right-bg{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.10}
.si-form-box{background:#fff;border-radius:var(--rl);padding:40px;box-shadow:0 4px 40px rgba(11,40,251,.07);border:1px solid var(--border);width:100%;max-width:480px;position:relative;z-index:1}
.soc-btn{width:100%;padding:11px 16px;border-radius:10px;border:1.5px solid var(--border);background:#fff;font-size:13.5px;font-weight:600;font-family:var(--f);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:9px;transition:all .15s;color:var(--dark)}
.soc-btn:hover{background:var(--light);border-color:rgba(11,40,251,.25)}
.soc-btn svg{width:18px;height:18px;flex-shrink:0}
/* Blend Nextend Social Login buttons into the sign-in card */
.ctl-social{margin-bottom:2px}
.ctl-social .nsl-container{margin:0!important}
.ctl-social .nsl-container-buttons{display:flex;flex-direction:column;gap:9px}
.ctl-social .nsl-button{border-radius:10px!important;font-family:var(--f)!important;font-weight:600!important}
.div-or{display:flex;align-items:center;gap:12px;margin:16px 0;color:var(--muted);font-size:13px}
.div-or::before,.div-or::after{content:'';flex:1;height:1px;background:var(--border)}
.si-links{display:flex;justify-content:space-between;margin-top:14px;font-size:13px}
.si-links a{color:var(--blue);text-decoration:none;cursor:pointer}
.si-reg{text-align:center;margin-top:18px;font-size:13.5px;color:var(--muted)}
.si-reg a{color:var(--blue);font-weight:600;cursor:pointer;text-decoration:none}
@media(max-width:768px){ .si-2col{grid-template-columns:1fr} .si-left{display:none} .si-right{padding:24px 16px} .si-form-box{padding:28px 20px} }

/* ═══ DASHBOARD ═════════════════════════════════════════════════════════ */
/* App-style layout: header + sidebar stay fixed, only .dash-main scrolls */
.dash-layout{display:grid;grid-template-columns:260px 1fr;height:calc(100vh - 66px);overflow:hidden}
body.admin-bar .dash-layout{height:calc(100vh - 98px)} /* + 32px WP admin bar */
.dash-side{background:var(--dark);display:flex;flex-direction:column;padding:18px 0;height:100%;overflow:hidden}
.dash-title{font-family:var(--fh);font-weight:700;font-size:16px;color:#fff;letter-spacing:-.01em;padding:4px 20px 14px;margin:0}
.dash-logo{padding:0 24px 24px;border-bottom:1px solid rgba(255,255,255,.07);margin-bottom:16px;display:flex;align-items:center;gap:9px}
.dash-logo .lw-m{color:rgba(255,255,255,.9);font-size:13px}
.dash-logo .lw-s{color:rgba(255,255,255,.3)}
.dash-new-test-btn{display:flex;align-items:center;gap:9px;width:calc(100% - 32px);margin:0 16px 0;padding:12px 18px;border-radius:12px;border:none;cursor:pointer;background:var(--blue);color:#fff;font-family:var(--fh);font-size:13.5px;font-weight:700;letter-spacing:-.01em;transition:background .15s}
.dash-new-test-btn:hover{background:#0720d8}
.dash-new-test-btn i{font-size:16px;flex-shrink:0}
.dn-sect{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:rgba(255,255,255,.25);padding:14px 24px 6px}
.dn-item{position:relative;display:flex;align-items:center;gap:10px;padding:10px 24px;font-size:13.5px;font-weight:500;color:rgba(255,255,255,.55);cursor:pointer;transition:all .15s;border-right:3px solid transparent;margin:1px 0}
.dn-item:hover{color:#fff;background:rgba(255,255,255,.06)}
.dn-item.on{color:#fff;background:rgba(11,40,251,.25);border-right-color:var(--blue)}
.dn-item i{font-size:18px;flex-shrink:0}
.dash-collapse{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:32px;height:32px;margin:0;padding:0;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:8px;color:rgba(255,255,255,.5);cursor:pointer;transition:color .15s,background .15s}
.dash-collapse:hover{background:rgba(255,255,255,.14)}
.dash-collapse:hover{color:rgba(255,255,255,.8)}
.dash-collapse i{font-size:18px;flex-shrink:0;transition:transform .2s}
@media(min-width:769px){
  html.dash-ready .dash-layout{transition:grid-template-columns .2s ease}   /* only after first paint — no animation on page load */
  .dash-side{white-space:nowrap}
  html.dash-collapsed .dash-layout{grid-template-columns:64px 1fr}
  html.dash-collapsed .dash-side{padding:14px 0}
  html.dash-collapsed .dash-title,html.dash-collapsed .dn-sect,
  html.dash-collapsed .dn-item span,html.dash-collapsed .dash-new-test-btn span,
  html.dash-collapsed .dash-side-btn span,html.dash-collapsed .dash-collapse span,
  html.dash-collapsed .dn-parent{justify-content:flex-start}
.dn-parent .dn-chev{margin-right:auto;font-size:15px;transition:transform .2s}
.dn-group.open .dn-parent .dn-chev{transform:rotate(-180deg)}
.dn-sub{display:none;padding:2px 40px 6px 0}
.dn-group.open .dn-sub{display:block}
.dn-subitem,.woocommerce .dash-side .dn-subitem{display:flex;align-items:center;gap:10px;padding:7px 0;font-size:13px;color:rgba(255,255,255,.5);text-decoration:none;transition:color .15s}
.dn-subitem:hover,.woocommerce .dash-side .dn-subitem:hover{color:#fff}
.dn-subitem.on,.woocommerce .dash-side .dn-subitem.on{color:#fff;font-weight:600}
html.dash-collapsed .dn-chev{display:none}
.dn-subitem i{font-size:16px;flex-shrink:0}
/* Collapsed rail: the profile submenu stays reachable as an icon column. */
@media(min-width:769px){
  html.dash-collapsed .dn-sub{display:block;padding:0}
  html.dash-collapsed .dash-side .dn-subitem,html.dash-collapsed .woocommerce .dash-side .dn-subitem{padding:11px 0;gap:0;font-size:0;justify-content:center}
  html.dash-collapsed .dn-subitem i{font-size:18px}
  html.dash-collapsed .dn-subitem span{display:none}
}
.dn-badge{display:none}
  html.dash-collapsed .dash-new-test-btn{width:40px;margin:4px 12px 0;padding:0;height:40px;justify-content:center;border-radius:10px}
  html.dash-collapsed .dn-item{padding:11px 20px 11px 0;justify-content:flex-start;gap:0}
  html.dash-collapsed .dn-parent .dn-chev{display:none}
  html.dash-collapsed .dash-side-ft{padding:14px 0 0}
  html.dash-collapsed .dash-side-btn{justify-content:center;margin:0;width:100%;padding:9px 0}
  html.dash-collapsed .dash-side-ft{flex-direction:column;gap:6px}
  html.dash-collapsed .dash-collapse{margin:0 auto}
  html.dash-collapsed .dash-collapse i{transform:rotate(-180deg)}
}
.dn-badge{margin-right:auto;background:var(--blue);color:#fff;font-size:10px;font-weight:700;padding:2px 7px;border-radius:100px;min-width:20px;text-align:center}
.dash-side-ft{margin-top:auto;padding:20px 24px 0;border-top:1px solid rgba(255,255,255,.07);display:flex;align-items:center;gap:8px}
.dash-side-btn{display:flex;align-items:center;gap:9px;padding:9px 0;font-size:13px;font-weight:500;color:rgba(255,255,255,.38);cursor:pointer;background:none;border:none;font-family:var(--f);width:100%;transition:color .15s;text-decoration:none}
.dash-side-btn:hover{color:rgba(255,255,255,.75)}
.dash-main{background:#f8f9ff;padding:0;height:100%;overflow-y:auto}
.dash-sec{display:none;padding:40px}
.dash-sec.on{display:block}
.dash-h1{font-family:var(--fh);font-size:28px;font-weight:700;margin-bottom:6px}
.dash-sub{font-size:14px;color:var(--muted);margin-bottom:32px}
.dash-card{background:#fff;border:1px solid var(--border);border-radius:var(--rl);padding:28px;margin-bottom:18px}
.dash-card h3{font-family:var(--fh);font-size:16px;font-weight:700;margin-bottom:18px;display:flex;align-items:center;gap:9px}
.dash-card h3 i{font-size:18px;color:var(--blue)}
.order-row{display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid var(--border)}
.order-row:last-child{border-bottom:none}
.order-ic{width:38px;height:38px;border-radius:9px;background:rgba(11,40,251,.07);display:flex;align-items:center;justify-content:center;font-size:17px;color:var(--blue);flex-shrink:0}
.order-info{flex:1;min-width:0}
.order-name{font-size:14px;font-weight:600;color:var(--dark)}
.order-det{font-size:12px;color:var(--muted);margin-top:2px}
.order-stat{font-size:11px;font-weight:700;padding:3px 10px;border-radius:100px;white-space:nowrap}
.stat-act{background:rgba(11,40,251,.09);color:var(--blue)}
.stat-dn{background:rgba(52,202,141,.1);color:#1a9a6a}
.stat-pen{background:rgba(255,165,0,.1);color:#c87800}
.order-pr{font-family:var(--fh);font-size:14px;font-weight:700;margin-right:8px;flex-shrink:0}
.prog-bar{height:6px;background:var(--border);border-radius:100px;overflow:hidden;margin-top:8px}
.prog-fill{height:100%;border-radius:100px;background:var(--blue)}
.prog-fill.g{background:var(--green)}
.dash-hint{display:flex;align-items:flex-start;gap:12px;background:rgba(11,40,251,.05);border:1px solid rgba(11,40,251,.14);border-radius:var(--r);padding:14px 16px;margin-bottom:18px}
.dash-hint i{color:var(--blue);font-size:18px;margin-top:1px}
.dash-hint b{color:var(--dark)}
.dash-hint span{font-size:13px;color:var(--dark);line-height:1.55}
.dash-hint .dh-close{margin-right:auto;cursor:pointer;color:var(--muted);background:none;border:none;font-size:18px}
.onb-card{background:#fff;border:1px solid var(--border);border-radius:var(--rl);padding:24px;margin-bottom:20px}
.onb-hd{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:20px;flex-wrap:wrap}
.onb-hd-txt h3{font-family:var(--fh);font-size:18px;font-weight:700;color:var(--dark)}
.onb-hd-txt p{font-size:13px;color:var(--muted);margin-top:2px}
.onb-prog-wrap{flex:0 0 auto;width:200px;max-width:45%;margin-right:auto}
.onb-prog-bar{height:8px;background:var(--border);border-radius:100px;overflow:hidden}
.onb-prog-fill{height:100%;background:linear-gradient(-90deg,var(--blue),var(--green));border-radius:100px;transition:width .5s}
.onb-steps{display:flex;flex-direction:column;gap:10px}
.onb-step{display:flex;align-items:center;gap:14px;padding:14px 16px;border:1px solid var(--border);border-radius:14px;transition:border-color .15s}
.onb-step:hover{border-color:var(--blue)}
.onb-step.done{background:rgba(52,202,141,.05);border-color:rgba(52,202,141,.25)}
.onb-step-ic{width:34px;height:34px;border-radius:10px;background:var(--light);color:var(--dark);font-family:var(--fh);font-weight:700;font-size:15px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.onb-step.done .onb-step-ic{background:var(--green);color:#fff}
.onb-step-c{flex:1;min-width:0}
.onb-step-c h4{font-family:var(--fh);font-size:14.5px;font-weight:700;color:var(--dark);margin-bottom:2px}
.onb-step-c p{font-size:12.5px;color:var(--muted);line-height:1.45}
.onb-btn{flex-shrink:0;background:var(--blue);color:#fff;border:none;cursor:pointer;font-family:var(--f);font-size:12.5px;font-weight:700;padding:9px 16px;border-radius:9px;transition:background .15s}
.onb-btn:hover{background:#0720d8}
.onb-badge-done{flex-shrink:0;font-size:11px;font-weight:700;color:var(--green);background:rgba(52,202,141,.12);padding:5px 12px;border-radius:100px}
.onb-quick{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.onb-quick-card{display:flex;align-items:center;gap:13px;background:#fff;border:1px solid var(--border);border-radius:14px;padding:16px;cursor:pointer;transition:border-color .15s,box-shadow .15s}
.onb-quick-card:hover{border-color:var(--blue);box-shadow:0 6px 18px rgba(11,40,251,.08)}
.onb-quick-ic{width:42px;height:42px;border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}
.onb-quick-t{font-family:var(--fh);font-size:14px;font-weight:700;color:var(--dark)}
.onb-quick-d{font-size:11.5px;color:var(--muted);margin-top:1px}
.addr-card{display:flex;align-items:flex-start;gap:14px;padding:16px;border:1px solid var(--border);border-radius:14px;margin-bottom:10px}
.addr-card.def{border-color:rgba(11,40,251,.3);background:rgba(11,40,251,.03)}
.addr-ic{width:38px;height:38px;border-radius:10px;background:var(--light);display:flex;align-items:center;justify-content:center;font-size:18px;color:var(--blue);flex-shrink:0}
.addr-info{flex:1;min-width:0}
.addr-nm{font-family:var(--fh);font-size:14.5px;font-weight:700;color:var(--dark);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.addr-def-badge{font-size:10px;font-weight:700;color:var(--blue);background:rgba(11,40,251,.1);padding:3px 9px;border-radius:100px;text-transform:uppercase;letter-spacing:.04em}
.addr-det{font-size:12.5px;color:var(--muted);line-height:1.5;margin-top:3px}
.addr-actions{display:flex;flex-direction:column;gap:6px;flex-shrink:0}
.addr-act{background:none;border:none;cursor:pointer;font-size:12px;font-weight:600;padding:4px 6px;border-radius:6px;display:inline-flex;align-items:center;gap:4px;transition:background .12s}
.addr-act.edit{color:var(--blue)}.addr-act.edit:hover{background:rgba(11,40,251,.08)}
.addr-act.rm{color:#d33}.addr-act.rm:hover{background:rgba(221,51,51,.08)}
.addr-act.mkdef{color:var(--muted)}.addr-act.mkdef:hover{background:var(--light);color:var(--dark)}
.inv-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--border)}
.inv-row:last-child{border-bottom:none}
.inv-nm{font-size:13.5px;font-weight:600;flex:1}
.inv-dt{font-size:12px;color:var(--muted);width:90px}
.inv-am{font-family:var(--fh);font-size:14px;font-weight:700;width:70px;text-align:left}
.inv-dl{color:var(--blue);font-size:13px;cursor:pointer;display:flex;align-items:center;gap:4px}
@media(max-width:768px){
  .dash-layout{grid-template-columns:1fr;height:auto;overflow:visible}
  body.admin-bar .dash-layout{height:auto}
  .dash-main{height:auto;overflow:visible}
  .dash-side{position:static;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center;gap:6px;padding:8px 10px;overflow:visible}
  .dash-logo,.dn-sect,.dash-side-ft,.dash-title,.dash-spacer{display:none}
  /* compact inline pills that wrap, instead of big stacked buttons */
  .dash-side>.dn-item{flex:0 1 auto;min-width:0;flex-direction:row;align-items:center;gap:6px;font-size:11px;font-weight:600;padding:6px 11px;border-radius:100px;border:1px solid rgba(255,255,255,.14);color:rgba(255,255,255,.7);margin:0;white-space:nowrap}
  .dash-side>.dn-item.on{background:var(--blue);border-color:var(--blue);color:#fff}
  .dash-side>.dn-item i{font-size:15px}
  /* compact full-width "Start new test" on its own top row */
  .dash-new-test-btn{flex:1 1 100%;width:100%;margin:0;justify-content:center;padding:9px;font-size:12.5px;border-radius:9px;gap:7px}
  .dash-new-test-btn i{font-size:15px}
  .dash-sec{padding:18px 14px}
  .onb-quick{grid-template-columns:1fr}
}

/* ═══ BUNDLES & PACKAGES (homepage) ═════════════════════════════════════ */
.bndl-sec{padding:72px 40px;background:var(--light)}
.bndl-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:24px;margin-top:36px;align-items:stretch}
.bndl-card{position:relative;background:#fff;border:1px solid var(--border);border-radius:var(--rl);padding:30px 28px;display:flex;flex-direction:column}
.bndl-card.is-featured{border:1.5px solid var(--blue);box-shadow:0 18px 50px -22px rgba(11,40,251,.35)}
.bndl-badge{position:absolute;top:-12px;right:28px;display:inline-flex;align-items:center;gap:6px;background:var(--blue);color:#fff;font-size:11px;font-weight:700;letter-spacing:.01em;padding:6px 13px;border-radius:100px;box-shadow:0 8px 20px -8px rgba(11,40,251,.6)}
.bndl-card:not(.is-featured) .bndl-badge{background:var(--green);box-shadow:0 8px 20px -8px rgba(52,202,141,.6)}
.bndl-card-ic{width:54px;height:54px;border-radius:15px;background:rgba(11,40,251,.08);color:var(--blue);display:flex;align-items:center;justify-content:center;font-size:27px;margin-bottom:16px}
.bndl-card:not(.is-featured) .bndl-card-ic{background:rgba(52,202,141,.12);color:var(--green)}
.bndl-card-t{font-family:var(--fh);font-size:21px;font-weight:700;color:var(--dark);margin-bottom:8px;letter-spacing:-.01em}
.bndl-card-s{font-size:13.5px;color:var(--muted);line-height:1.6;margin-bottom:18px}
.bndl-card-list{list-style:none;margin:0 0 22px;padding:0;display:flex;flex-direction:column;gap:9px}
.bndl-card-list li{display:flex;align-items:center;gap:10px;font-size:13.5px;color:var(--dark);font-weight:500}
.bndl-card-list li i{color:var(--green);font-size:14px;background:rgba(52,202,141,.13);border-radius:50%;width:21px;height:21px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.bndl-card-ft{margin-top:auto}
.bndl-card-save{display:flex;align-items:center;gap:7px;font-size:12.5px;font-weight:700;color:var(--green);margin-bottom:14px}
.bndl-card-btn{width:100%;justify-content:center}

/* Configurator modal */
.bndl-modal{position:fixed;inset:0;z-index:9000;display:flex;align-items:center;justify-content:center;padding:24px}
.bndl-modal[hidden]{display:none}
.bndl-modal-bg{position:absolute;inset:0;background:rgba(6,8,26,.55);backdrop-filter:blur(3px)}
.bndl-modal-card{position:relative;background:#fff;border-radius:var(--rl);width:min(720px,100%);max-height:90vh;overflow-y:auto;padding:26px 30px 22px;box-shadow:0 40px 90px -30px rgba(6,8,26,.6)}
.bndl-row-nm{white-space:nowrap}
.bndl-modal-hd{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:8px}
.bndl-modal-kicker{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--blue);margin-bottom:6px}
.bndl-modal-hd h3{font-family:var(--fh);font-size:21px;font-weight:700;color:var(--dark);line-height:1.2}
.bndl-modal-x{flex-shrink:0;width:34px;height:34px;border-radius:9px;border:1px solid var(--border);background:#fff;color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:18px;transition:all .15s}
.bndl-modal-x:hover{background:var(--light);color:var(--dark)}
.bndl-modal-sub{font-size:13px;color:var(--muted);line-height:1.6;margin-bottom:18px}
.bndl-rows{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}
.bndl-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:14px;border:1px solid var(--border);border-radius:13px;background:var(--light)}
.bndl-row-main{display:flex;align-items:center;gap:12px;flex:1;min-width:160px}
.bndl-row-ic{width:38px;height:38px;border-radius:10px;background:rgba(11,40,251,.07);color:var(--blue);display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}
.bndl-row-nm{font-size:13.5px;font-weight:700;color:var(--dark)}
.bndl-row-hint{font-size:11.5px;color:var(--muted);margin-top:1px}
.bndl-pick{flex:1;min-width:170px;padding:9px 11px;border:1px solid var(--border);border-radius:9px;background:#fff;font-family:var(--f);font-size:13px;color:var(--dark);cursor:pointer}
.bndl-pick:focus{outline:none;border-color:var(--blue)}
.bndl-row-fixed{font-family:var(--fh);font-size:14px;font-weight:700;color:var(--dark);white-space:nowrap}
.bndl-modal-ft{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;border-top:1px solid var(--border);padding-top:18px}
.bndl-tot-was{font-size:12px;color:var(--muted);margin-bottom:2px}
.bndl-tot-was s{color:var(--muted)}
.bndl-tot-now{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.bndl-tot-now span:first-child{font-family:var(--fh);font-size:28px;font-weight:700;color:var(--blue);line-height:1}
.bndl-tot-badge{font-size:11.5px;font-weight:700;color:var(--green);background:rgba(52,202,141,.12);padding:3px 9px;border-radius:100px}
.bndl-modal-add{flex-shrink:0}

/* Bundle tags inside the cart + checkout review */
.ci-bundle{color:var(--blue)!important;font-weight:600}
.ci-bundle i{font-size:12px;color:var(--blue)}
.co-line-bundle{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;color:var(--blue);background:rgba(11,40,251,.07);padding:2px 8px;border-radius:100px;margin-top:4px}
/* Broken bundle (a component was removed → discount voided) */
.ci-bundle-broken{color:#e2464d!important}
.ci-bundle-broken i{color:#e2464d}
.co-line-bundle-broken{color:#e2464d;background:rgba(226,70,77,.08)}

/* Bundles inside the dashboard "Start new test" wizard (step 1) */
.nt-bundles{margin-bottom:8px}
.nt-bundles-lbl{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--blue);margin-bottom:12px}
.nt-bundle-grid{display:flex;flex-direction:column;gap:10px}
.nt-bundle-opt{display:flex;align-items:center;gap:13px;padding:14px 16px;border:1.5px solid var(--border);border-radius:13px;background:linear-gradient(-135deg,rgba(11,40,251,.04),rgba(52,202,141,.05));cursor:pointer;transition:all .15s}
.nt-bundle-opt:hover{border-color:var(--blue);box-shadow:0 10px 26px -16px rgba(11,40,251,.5)}
.nt-bundle-ic{width:40px;height:40px;border-radius:11px;background:rgba(11,40,251,.1);color:var(--blue);display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}
.nt-bundle-info{flex:1;min-width:0}
.nt-bundle-nm{font-size:14px;font-weight:700;color:var(--dark)}
.nt-bundle-meta{font-size:12px;color:var(--muted);margin-top:2px}
.nt-bundle-meta span{color:var(--green);font-weight:700}
.nt-bundle-arr{color:var(--muted);font-size:18px;flex-shrink:0}
.nt-or-sep{display:flex;align-items:center;gap:12px;margin:18px 0;color:var(--blue);font-family:var(--f);font-size:12px;font-weight:700;letter-spacing:.02em;text-transform:uppercase}
.nt-or-sep::before,.nt-or-sep::after{content:'';flex:1;height:1px;background:var(--border)}

@media(max-width:860px){
  .bndl-sec{padding:48px 16px}
  .bndl-grid{grid-template-columns:1fr;gap:30px}
  .bndl-modal-ft{flex-direction:column;align-items:stretch}
  .bndl-modal-add{width:100%;justify-content:center}
}

/* ── CPSR / SDS order-data popup: summary rows, errors, cart buttons ──── */
.doc-sum{display:flex;flex-direction:column;margin-bottom:6px}
.doc-sum .sum-r{align-items:flex-start;gap:18px}
.doc-sum .sum-l{color:var(--muted);flex-shrink:0}
.doc-sum .sum-v{text-align:left;font-weight:600;color:var(--dark);word-break:break-word}
.doc-sum-empty{font-size:13px;color:var(--muted);padding:14px 0}
/* Values that are really a table or a list get the whole row width — squeezed
   into the right-hand column they wrapped into an unreadable sliver. */
.doc-sum .sum-r.sum-block{flex-direction:column;align-items:stretch;gap:8px}
.doc-sum .sum-block .sum-v{width:100%;text-align:right;font-weight:400}
.sum-tbl-w{width:100%;border:1px solid var(--border);border-radius:10px;overflow:hidden}
.sum-tbl{width:100%;border-collapse:collapse;font-size:12.5px;table-layout:fixed}
.sum-tbl th{text-align:right;padding:7px 10px;background:var(--light);border-bottom:1px solid var(--border);font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.sum-tbl td{padding:7px 10px;border-bottom:1px solid var(--border);color:var(--dark);word-break:break-word}
.sum-tbl th:first-child,.sum-tbl td:first-child{width:34px}
.sum-tbl th:nth-child(3),.sum-tbl td:nth-child(3){width:110px}
.sum-tbl th.n,.sum-tbl td.n{text-align:left;white-space:nowrap;width:74px}
.sum-tbl th.x,.sum-tbl td.x{text-align:center;width:52px}
.sum-tbl td.x i{color:var(--green);font-size:14px}
.sum-tbl.has-nano th:nth-child(3),.sum-tbl.has-nano td:nth-child(3){width:96px}
.sum-tbl tbody tr:last-child td{border-bottom:0}
.sum-tbl tfoot td{background:var(--light);border-top:1px solid var(--border);border-bottom:0;font-weight:700}
.sum-tbl tr.sum-tot td{background:var(--light);font-weight:700}
.sum-tbl tr.sum-may td{font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.sum-list,.sum-files{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:5px;font-size:12.5px}
.sum-list li{display:flex;justify-content:space-between;gap:14px;padding:5px 10px;border-radius:7px;background:var(--light)}
.sum-list li span{color:var(--muted)}
.sum-files li{display:flex;align-items:center;gap:7px;padding:5px 10px;border-radius:7px;background:var(--light)}
.sum-files li i{color:var(--blue);font-size:14px}
.sum-files li span{margin-right:auto;color:var(--muted);font-size:11.5px}
.doc-err{display:flex;align-items:flex-start;gap:8px;font-size:12.5px;line-height:1.5;color:#b3261e;background:rgba(179,38,30,.07);border-radius:8px;padding:10px 13px;margin-bottom:12px}
.doc-err i{font-size:15px;flex-shrink:0;margin-top:1px}
.step-err{margin:14px 0 0}
.fg2.err>label{color:#b3261e}
/* A read-only field is never the thing that is wrong, so it keeps its own look. */
.fg2.err input:not([type=checkbox]):not([readonly]),.fg2.err select,.fg2.err textarea,.fg2.err .sub-ed{border-color:#b3261e}
.fg2.err .radio-g .radio-o,.fg2.err .chk-g{border-color:#b3261e}
.tier-g.err .tier-o{border-color:#b3261e}
.ci-doc-btn{display:inline-flex;align-items:center;gap:5px;margin-top:7px;padding:5px 11px;border:1px solid rgba(11,40,251,.22);border-radius:7px;background:none;cursor:pointer;font-family:var(--f);font-size:11.5px;font-weight:600;color:var(--blue);transition:background .15s}
.ci-doc-btn:hover{background:rgba(11,40,251,.07)}
.ci-doc-btn.ctl-doc-warn{color:#8a5a00;border-color:rgba(217,140,0,.45);background:rgba(245,166,35,.1)}
.ci-doc-btn.ctl-doc-warn:hover{background:rgba(245,166,35,.18)}
.ctl-cart-tried .ci-doc-btn.ctl-doc-warn,.co-line-edit.ctl-doc-warn{color:#b3261e;border-color:rgba(179,38,30,.3);background:none}
.ctl-cart-tried .ci-doc-btn.ctl-doc-warn:hover{background:rgba(179,38,30,.07)}

/* ── SDS / CPSR form: sub-groups, notes, draft banner ─────────────────── */
.lnk-btn{background:none;border:0;padding:0;font-family:var(--f);font-size:inherit;font-weight:600;color:var(--blue);cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.lnk-btn:hover{opacity:.75}
.fg2-note{font-size:11.5px;line-height:1.55;color:var(--muted);margin-top:2px}
.fg2-note a{color:var(--blue)}

/* ── Label tooltips ──────────────────────────────────────────────────────
   Field and step explanations live behind an info icon beside their label.
   The bubble is a child of the trigger so moving the pointer onto it keeps
   it open — some notes contain links that need to be clickable. */
/* Deliberately NOT positioned: the bubble must resolve against .fg2/.fsect,
   not against this 14px icon, or it collapses to the icon's width. */
.fhint{display:inline-flex;align-items:center;margin-right:5px;vertical-align:-2px;cursor:help;color:var(--muted);outline:none}
.fhint:hover,.fhint:focus-visible{color:var(--blue)}
.fhint>i{font-size:14px;line-height:1}
/* The bubble is centred within the FIELD, not on the icon. The icon trails the
   label text, so anchoring to it pushed the bubble off-screen on narrow
   viewports; left/right:0 with auto margins keeps it inside the field at any
   width. */
.fg2,.fsect{position:relative}
/* Content only — the visible bubble is .fhint-p, rendered on <body> so the
   popup's scrolling body cannot clip it. */
.fhint-b{display:none}
.fhint-p{position:fixed;z-index:4000;display:none;
  padding:9px 12px;border-radius:9px;
  background:var(--dark,#101124);color:#fff;
  font-family:var(--f);font-size:11.5px;font-weight:400;line-height:1.55;letter-spacing:0;text-transform:none;text-align:right;
  box-shadow:0 10px 30px rgba(0,0,0,.28)}
.fhint-p.on{display:block}
.fhint-p::after{content:"";position:absolute;top:100%;right:var(--tip-x,50%);transform:translateX(50%);
  border:6px solid transparent;border-top-color:var(--dark,#101124)}
.fhint-p.below::after{top:auto;bottom:100%;border-top-color:transparent;border-bottom-color:var(--dark,#101124)}
.fhint-p a{color:#8ea2ff;text-decoration:underline;text-underline-offset:2px}
.fhint-p a:hover{color:#fff}
.fgroup{border:1.5px solid var(--border);border-radius:12px;padding:16px 16px 4px;margin-bottom:14px;background:#fcfcfe}
.fgroup.hidden{display:none}
/* A single field can be conditional too — the "Other — please specify"
   follow-ups. The condition sits on the row so the gap collapses with it. */
.fr.hidden{display:none}
.fgroup-h{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-bottom:12px}
.addr-fill-note{font-size:11.5px;color:var(--muted);margin-top:5px;line-height:1.45}
/* Compact pill above the popup title — it is a status note, not a headline. */
.doc-draft{display:none;align-items:center;gap:6px;width:fit-content;margin:0 0 10px;padding:4px 9px;border-radius:999px;background:rgba(52,202,141,.1);color:#1c7a56;font-size:11px;line-height:1.4}
.doc-draft.on{display:inline-flex}
.doc-draft i{font-size:13px;flex-shrink:0}
.doc-draft .lnk-btn{color:#1c7a56}

/* ── Multi-select market list ─────────────────────────────────────────── */
.chk-search{width:100%;margin-bottom:9px;background:#fff;border:1.5px solid var(--border);border-radius:9px;padding:9px 13px;font-size:13.5px;font-family:var(--f);color:var(--dark);outline:none}
.chk-search:focus{border-color:var(--blue)}
.chk-g{display:grid;gap:6px 14px;margin-top:6px;max-height:238px;overflow-y:auto;padding:2px}
/* A searched list keeps its box height, so filtering never resizes the popup
   under the cursor — only the contents scroll. */
.chk-g.chk-fixed{height:238px;max-height:238px;align-content:start}
.chk-g .chk-o{align-items:flex-start;gap:7px;line-height:1.4}
.chk-g .chk-o input{margin-top:2px;flex-shrink:0}
.chk-flag{margin-left:5px;font-size:13px;line-height:1}
.chk-meta{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:9px;font-size:12px;color:var(--muted)}
.chk-acts{display:flex;align-items:center;gap:14px}

/* ── Substance editor ─────────────────────────────────────────────────── */
.sub-ed{border:1.5px solid var(--border);border-radius:12px;overflow:hidden;background:#fff}
.sub-hd,.sub-r{display:grid;grid-template-columns:30px minmax(0,1fr) 130px 108px 34px;gap:8px;align-items:center}
.sub-hd{padding:9px 12px;background:var(--light);border-bottom:1.5px solid var(--border);font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.sub-hd .sub-c-p{text-align:left}
/* CPSR adds a nanomaterial tick between the CAS number and the percentage. */
.sub-ed-nano .sub-hd,.sub-ed-nano .sub-r{grid-template-columns:30px minmax(0,1fr) 118px 48px 100px 34px}
.sub-hd .sub-c-x{text-align:center}
.sub-x{display:flex;align-items:center;justify-content:center;cursor:pointer}
.fg2 .sub-x input[type=checkbox]{width:auto;flex:0 0 auto;padding:0;margin:0;cursor:pointer}
.sub-r{padding:8px 12px;border-bottom:1px solid var(--border)}
.sub-r:last-child{border-bottom:0}
.sub-n{font-size:12px;font-weight:700;color:var(--muted);text-align:center}
.sub-ed input{background:#fff;border:1.5px solid var(--border);border-radius:8px;padding:8px 11px;font-size:13.5px;font-family:var(--f);color:var(--dark);outline:none;width:100%;transition:border-color .15s}
.sub-ed input:focus{border-color:var(--blue)}
.sub-p{display:flex;align-items:center;gap:5px}
.sub-p input{text-align:left;-moz-appearance:textfield}
.sub-p input::-webkit-outer-spin-button,.sub-p input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.sub-p span{font-size:12.5px;font-weight:600;color:var(--muted)}
.sub-rm{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border:1.5px solid var(--border);border-radius:8px;background:none;color:var(--muted);cursor:pointer;font-size:14px;transition:all .15s}
.sub-rm:hover:not(:disabled){border-color:#b3261e;color:#b3261e;background:rgba(179,38,30,.06)}
.sub-rm:disabled{opacity:.35;cursor:not-allowed}
.sub-bar{display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding:11px 12px;background:var(--light);border-top:1.5px solid var(--border)}
.sub-add,.sub-even{display:inline-flex;align-items:center;gap:5px;padding:7px 13px;border:1.5px solid var(--border);border-radius:8px;background:#fff;cursor:pointer;font-family:var(--f);font-size:12.5px;font-weight:600;color:var(--dark);transition:all .15s}
.sub-add{border-color:rgba(11,40,251,.25);color:var(--blue)}
.sub-add:hover{background:rgba(11,40,251,.06)}
.sub-even:hover{border-color:var(--blue);color:var(--blue)}
.sub-total{margin-right:auto;display:flex;align-items:baseline;gap:5px;font-size:13px}
.sub-total-l{font-weight:600;color:var(--muted);margin-left:3px}
.sub-total-v{font-size:17px;font-weight:800;font-family:var(--fh, var(--f));line-height:1}
.sub-total-s{font-size:12px;font-weight:600;color:var(--muted)}
.sub-bar.is-ok .sub-total-v{color:#1c7a56}
.sub-bar.is-over .sub-total-v{color:#b3261e}
.sub-bar.is-under .sub-total-v{color:#b26a00}
/* Indented to line up with the table's inner padding — flush against the box
   edge the icon read as falling outside the field. */
.sub-hint{display:flex;align-items:center;gap:7px;font-size:12px;line-height:1.5;margin-top:8px;padding-right:12px}
.sub-hint i{font-size:14px;flex-shrink:0}
.sub-hint.is-ok{color:#1c7a56}
.sub-hint.is-over{color:#b3261e}
.sub-hint.is-under{color:#b26a00}
.sub-hint.is-under .lnk-btn{color:#b26a00}
.sub-ed[data-state="over"]{border-color:rgba(179,38,30,.45)}
.sub-ed[data-state="under"]{border-color:rgba(178,106,0,.4)}
.sub-ed[data-state="ok"]{border-color:rgba(52,202,141,.55)}
/* Shade range (CPSR): the shared base above, "may contain" colorants below the line. */
.sub-may,.sub-add-may{display:none}
.sub-ed.is-shades .sub-may{display:block}
.sub-ed.is-shades .sub-add-may{display:inline-flex}
.sub-may-hd{padding:7px 12px;background:var(--light);border-top:1.5px solid var(--border);border-bottom:1px solid var(--border);font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.sub-rows-may:empty{display:none}
.sub-rows-may .sub-r:last-child{border-bottom:0}

/* ── CPSR tier, shown live under the formula ─────────────────────────── */
.plan-msg{display:none;align-items:flex-start;gap:8px;font-size:12.5px;line-height:1.5;border-radius:8px;padding:10px 13px;margin-top:12px}
.plan-msg i{font-size:15px;flex-shrink:0;margin-top:1px}
/* A tier we moved on the customer's behalf is a price change — it has to be
   impossible to walk past, so it reads like a warning rather than a hint. */
.plan-msg.is-change{display:flex;color:#b3261e;background:rgba(179,38,30,.07)}
.plan-msg.is-note{display:flex;color:var(--muted);background:rgba(122,133,163,.09)}
/* Step zero has a dot but no number — the icon says what it is instead. */
.sci-x{font-size:15px}

/* ── Pack size → samples to prepare ───────────────────────────────────── */
.vol-in{position:relative;display:flex;align-items:center}
.vol-in input{padding-left:62px!important;-moz-appearance:textfield}
.vol-in input::-webkit-outer-spin-button,.vol-in input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.vol-in>span{position:absolute;left:13px;font-size:12.5px;font-weight:600;color:var(--muted);pointer-events:none}
.vol-out{margin-top:7px;font-size:11.5px;line-height:1.55;color:var(--muted)}
.vol-out.on{display:flex;align-items:flex-start;gap:8px;padding:10px 13px;border-radius:9px;
  background:rgba(52,202,141,.1);color:#1c7a56;font-size:12.5px}
.vol-out.on i{font-size:16px;flex-shrink:0;margin-top:1px}
.vol-out.on strong{font-weight:700}

/* ── COSING ingredient lookup ─────────────────────────────────────────── */
/* Fixed-positioned and parented to <body>: the substance table clips its own
   overflow, which would cut the list off after the first row. */
.inci-ac{position:fixed;z-index:2000;display:none;overflow-y:auto;background:#fff;
  border:1.5px solid var(--border);border-radius:10px;box-shadow:0 18px 44px -18px rgba(6,8,26,.4)}
.inci-ac.on{display:block}
.inci-o{display:grid;grid-template-columns:1fr auto;gap:2px 10px;padding:8px 12px;cursor:pointer;border-bottom:1px solid var(--border)}
.inci-o:last-child{border-bottom:0}
.inci-o:hover,.inci-o.at{background:rgba(11,40,251,.06)}
.inci-n{font-size:13px;font-weight:600;color:var(--dark);line-height:1.35;word-break:break-word}
.inci-m{grid-column:1/-1;font-size:11px;color:var(--muted)}
.inci-f{align-self:start;flex-shrink:0;font-size:10px;font-weight:700;letter-spacing:.02em;padding:2px 7px;border-radius:999px;white-space:nowrap}
.inci-f.is-prohibited{background:rgba(179,38,30,.1);color:#b3261e}
.inci-f.is-restricted{background:rgba(178,106,0,.12);color:#b26a00}
.inci-f.is-colorant,.inci-f.is-preservative,.inci-f.is-uv-filter{background:rgba(11,40,251,.08);color:var(--blue)}

/* A name matched against COSING is marked settled — green with a tick — so the
   customer can see at a glance which rows are the recognised INCI spelling.
   Editing the field drops the attribute, and the styling with it. A flagged
   ingredient keeps its warning colour instead: found, but not simply fine. */
.sub-r[data-inci="ok"]:not([data-flag="prohibited"]):not([data-flag="restricted"]) .sub-inci{
  border-color:rgba(52,202,141,.8);
  background-color:rgba(52,202,141,.06);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334ca8d' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:left 9px center;background-size:14px;
  padding-left:30px}

/* A flagged row is coloured at the name itself, where the cause is. */
.sub-r[data-flag="prohibited"] .sub-inci{border-color:#b3261e;background:rgba(179,38,30,.04)}
.sub-r[data-flag="restricted"] .sub-inci{border-color:#b26a00;background:rgba(178,106,0,.05)}

.sub-flags:empty{display:none}
.sub-flag{display:flex;gap:9px;align-items:flex-start;margin-top:10px;padding:11px 13px;border-radius:10px;font-size:12px;line-height:1.55}
.sub-flag>i{font-size:16px;flex-shrink:0;margin-top:1px}
.sub-flag strong{display:block;font-size:12.5px;margin-bottom:3px}
.sub-flag ul{list-style:none;margin:4px 0 6px;padding:0;display:flex;flex-direction:column;gap:3px}
.sub-flag li{font-weight:600}
.sub-flag li span{font-weight:400;opacity:.8}
.sub-flag li em{display:block;font-style:normal;font-weight:400;opacity:.85}
.sub-flag.is-ban{background:rgba(179,38,30,.07);color:#b3261e}
.sub-flag.is-lim{background:rgba(178,106,0,.09);color:#8a5300}

/* ── Physical / chemical specifications grid ──────────────────────────── */
.spec-g{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 16px;margin-top:6px}
.spec-r{display:grid;grid-template-columns:minmax(0,1fr) 96px;align-items:center;gap:9px}
.spec-r label{font-size:12.5px;font-weight:500;color:var(--dark)}
.spec-r input{background:#fff;border:1.5px solid var(--border);border-radius:8px;padding:7px 10px;font-size:13px;font-family:var(--f);color:var(--dark);outline:none;width:100%;transition:border-color .15s}
.spec-r input:focus{border-color:var(--blue)}

@media(max-width:760px){
  .sub-hd{display:none}
  .sub-r{grid-template-columns:26px minmax(0,1fr) 30px;grid-template-areas:"n inci rm" ". cas cas" ". p p";row-gap:6px}
  .sub-ed-nano .sub-r{grid-template-columns:26px minmax(0,1fr) 30px;grid-template-areas:"n inci rm" ". cas cas" ". x x" ". p p"}
  .sub-x{grid-area:x;justify-content:flex-start}
  .sub-x::after{content:"Nanomaterial";margin-right:7px;font-size:12px;color:var(--muted)}
  .sub-n{grid-area:n;align-self:center}
  .sub-inci{grid-area:inci}
  .sub-cas{grid-area:cas}
  .sub-p{grid-area:p}
  .sub-rm{grid-area:rm}
  .sub-total{margin-right:0;width:100%}
  .spec-g{grid-template-columns:1fr}
  .chk-g{grid-template-columns:1fr!important}
}

/* .fg2 stretches inputs to full width — checkboxes and radios must opt out,
   or the box fills the row and shoves its label to the far edge. */
.fg2 .chk-o input[type=checkbox],.fg2 .chk-o input[type=radio]{width:auto;flex:0 0 auto;padding:0}
.chk-o span{flex:1 1 auto;min-width:0}

/* ── Spreadsheet import panel (SDS step I) ────────────────────────────── */
.doc-imp{border:1.5px dashed rgba(11,40,251,.3);border-radius:12px;background:linear-gradient(-180deg,rgba(11,40,251,.045),rgba(11,40,251,.015));padding:16px 18px;margin:12px 0 0;transition:border-color .15s,background .15s}
.doc-imp.drag{border-color:var(--blue);background:rgba(11,40,251,.09)}
/* Collapsed by default: the summary row is all that shows until it's opened. */
.doc-imp-h{display:flex;gap:10px;align-items:center;cursor:pointer;list-style:none}
.doc-imp-h::-webkit-details-marker{display:none}
.doc-imp-h>i{font-size:20px;color:var(--blue);flex-shrink:0}
.doc-imp-h h4{font-size:13.5px;font-weight:700;color:var(--dark);line-height:1.35;margin:0}
.doc-imp-chev{margin-right:auto;font-size:16px!important;color:var(--muted);transition:transform .18s}
.doc-imp[open] .doc-imp-chev{transform:rotate(-180deg)}
.doc-imp-p{font-size:12px;line-height:1.55;color:var(--muted);margin-top:9px}
.doc-imp-a{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:13px}
.doc-imp-dl,.doc-imp-up{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:8px;font-family:var(--f);font-size:12.5px;font-weight:600;cursor:pointer;text-decoration:none;transition:all .15s;border:1.5px solid transparent}
.doc-imp-dl{background:#fff;border-color:rgba(11,40,251,.28);color:var(--blue)}
.doc-imp-dl:hover{background:rgba(11,40,251,.07)}
.doc-imp-alt{font-size:12px;color:var(--muted);text-decoration:underline;text-underline-offset:2px}
.doc-imp-alt:hover{color:var(--blue)}
.doc-imp-up{background:var(--blue);color:#fff;margin-right:auto}
.doc-imp-up:hover{filter:brightness(1.08)}
.doc-imp-r{display:none;margin-top:12px;padding:10px 13px;border-radius:9px;font-size:12px;line-height:1.55}
.doc-imp-r.on{display:block}
.doc-imp-r i{font-size:14px;vertical-align:-2px;margin-left:5px}
.doc-imp-r.is-busy{background:rgba(11,40,251,.07);color:var(--blue)}
.doc-imp-r.is-ok{background:rgba(52,202,141,.12);color:#1c7a56}
.doc-imp-r.is-warn{background:rgba(178,106,0,.1);color:#b26a00}
.doc-imp-r.is-err{background:rgba(179,38,30,.08);color:#b3261e}
.doc-imp-w{margin-top:6px;padding-top:6px;border-top:1px solid rgba(0,0,0,.07)}
@media(max-width:560px){.doc-imp-up{margin-right:0;width:100%;justify-content:center}}
.doc-imp-fx{margin:5px 22px 0 0;padding:0;list-style:disc}
.doc-imp-fx li{font-size:11.5px;line-height:1.65}

/* The upload control is a <label>, so WooCommerce's ".woocommerce-page label"
   (0,1,1) outranks a bare ".doc-imp-up" (0,1,0) and repaints the text dark.
   Scoping by the panel wins on specificity without needing !important. */
.doc-imp .doc-imp-up,.doc-imp .doc-imp-up span,.doc-imp .doc-imp-up i{color:#fff}
/* The panel now sits inside the formula field, so ".fg2 label" reaches it too. */
.fg2 .doc-imp .doc-imp-up,.fg2 .doc-imp .doc-imp-dl{font-size:12.5px}

/* Saved-address picker: a chosen saved address reads as settled, "Enter
   manually…" as something still being typed. */
.addr-fill select{font-weight:600;color:var(--blue);border-color:rgba(11,40,251,.28);background:rgba(11,40,251,.04)}

/* ── Attachments ──────────────────────────────────────────────────────── */
.up-w{margin-top:6px}
.up-z{display:flex;flex-direction:column;align-items:center;gap:2px;border:2px dashed var(--border);border-radius:10px;padding:18px 16px;text-align:center;cursor:pointer;background:var(--light);transition:border-color .2s,background .2s}
.up-z:hover{border-color:rgba(11,40,251,.35);background:rgba(11,40,251,.03)}
.up-w.drag .up-z{border-color:var(--blue);background:rgba(11,40,251,.07)}
.up-w.is-full .up-z{opacity:.5;cursor:not-allowed}
.up-z>i{font-size:22px;color:var(--muted)}
.up-z h5{font-size:13.5px;font-weight:600;color:var(--dark);margin:4px 0 0}
.up-z p{font-size:11.5px;color:var(--muted);line-height:1.5;margin:0}
.fg2 .up-z input[type=file]{display:none}
.up-list{display:flex;flex-direction:column;gap:6px;margin-top:9px}
.up-list:empty{display:none}
.up-f{display:flex;align-items:center;gap:9px;padding:8px 11px;border:1.5px solid var(--border);border-radius:9px;background:#fff;font-size:12.5px}
.up-f>i{font-size:16px;color:var(--blue);flex-shrink:0}
.up-f-n{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;color:var(--dark)}
.up-f-s{flex-shrink:0;font-size:11.5px;color:var(--muted)}
.up-rm{display:flex;align-items:center;justify-content:center;width:26px;height:26px;flex-shrink:0;border:1.5px solid var(--border);border-radius:7px;background:none;color:var(--muted);cursor:pointer;font-size:13px;transition:all .15s}
.up-rm:hover{border-color:#b3261e;color:#b3261e;background:rgba(179,38,30,.06)}
.up-msg{font-size:12px;line-height:1.5;margin-top:7px}
.up-msg:empty{display:none}
.up-msg .is-busy{color:var(--blue)}
.up-msg .is-warn{color:#b26a00}
.up-msg .is-err{color:#b3261e}

/* Side-cart line: how many samples to physically prepare for this test. */
.ci-sub.ci-samples{color:#1c7a56;font-weight:600}
.ci-sub.ci-samples i{font-size:12px}
.co-line-prod.co-line-samples{color:#1c7a56;font-weight:600}

/* ── Product wizard (account "Add a product" modal) ───────────────────── */
.pw-sind{margin:4px 0 30px}
.pw-sind .sdot{cursor:pointer;outline:none}
.pw-sind .sdot:hover .sci{border-color:var(--blue);color:var(--blue)}
.pw-sind .sdot:hover .sci.on,.pw-sind .sdot:hover .sci.dn{color:#fff}
.pw-sind .sdot:focus-visible .sci{box-shadow:0 0 0 3px rgba(11,40,251,.25)}
.pstep{display:none}
.pstep.on{display:block}
.pw-err{display:none}
.pw-err.on{display:flex;align-items:flex-start;gap:8px;margin-top:14px;padding:10px 13px;border-radius:8px;
  background:rgba(179,38,30,.07);color:#b3261e;font-size:12.5px;line-height:1.5}
.pw-err i{font-size:15px;flex-shrink:0;margin-top:1px}
/* Wizard: the asterisk appears only when the test being ordered needs it. */
.req-star{color:inherit}

/* ── CPSR / SDS popups on the shared stepped-dialog shell ─────────────── */
.pop-bx{display:flex;flex-direction:column;max-height:92vh;overflow:hidden;padding:0}
.pop-bx>#cpsr-fw,.pop-bx>#sds-fw,.pop-bx>[data-doc]{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}
.pop-hd{padding:20px 26px;gap:14px}
.pop-hd .cv-hd-t{font-size:16px;min-width:0}
.pop-hd .cv-hd-t span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pop-body{padding:22px 26px 26px}
.pop-intro{font-size:13px;color:var(--muted);line-height:1.55;margin-bottom:20px}
/* The close button floats over the header rather than sitting in the flow. */
.pop-cl{z-index:5}
.pop-hd .doc-draft{margin:0 auto 0 34px}
@media(max-width:560px){
  .pop-hd{padding:16px 18px}
  .pop-body{padding:18px}
  .pop-bx .cv-foot{padding:14px 18px}
  .pop-hd .doc-draft{display:none}
  .pop-hd .doc-draft.on{display:none}
}

/* Many steps: dots only, with the current step keeping its label. */
.wz-steps.wz-many .wz-step{flex:0 1 auto}
.wz-steps.wz-many .wz-step-lbl{display:none}
.wz-steps.wz-many .wz-step.active .wz-step-lbl{display:block}
.wz-steps.wz-many .wz-step-bar{margin:0 6px;min-width:8px}
.wz-steps{min-width:0}

/* An ingredient that is not on the INCI list — the formula cannot be used
   until it is picked from the database. */
.sub-r.sub-unknown .sub-inci,.sub-r.sub-dup .sub-inci{border-color:#b3261e;background:rgba(179,38,30,.05)}
.sub-r .sub-cas[readonly]{background:var(--light);color:var(--muted);cursor:default}
.sub-r .sub-cas[readonly]:focus{border-color:var(--border)}

/* An explanation too long for a tooltip — expands under the field it belongs to. */
.fnote-x{margin-top:9px;border:1px solid var(--border);border-radius:9px;background:var(--light);overflow:hidden}
.fnote-x>summary{cursor:pointer;list-style:none;padding:9px 13px;font-size:12px;font-weight:600;color:var(--blue);display:flex;align-items:center;gap:7px}
.fnote-x>summary::-webkit-details-marker{display:none}
.fnote-x>summary::before{content:"\ea5f";font-family:"tabler-icons";font-weight:400;font-size:14px}
.fnote-x[open]>summary::before{content:"\ea5b"}
.fnote-x-b{padding:0 13px 12px;font-size:12px;line-height:1.6;color:var(--muted)}
.fnote-x-b p{margin-bottom:7px}
.fnote-x-b ul{margin:0;padding-right:18px;list-style:disc}
.fnote-x-b li{margin-bottom:4px}

/* Told, not silently changed: the formula moved the SDS product type. */
.sub-type-note{display:none}
.sub-type-note.on{display:flex;align-items:flex-start;gap:8px;margin-top:10px;padding:9px 12px;
  border-radius:8px;background:rgba(11,40,251,.06);color:var(--blue);font-size:12px;line-height:1.5}
.sub-type-note i{font-size:15px;flex-shrink:0;margin-top:1px}

/* ── Raw-material documents, per ingredient (CPSR) ─────────────────────── */
.sub-ed-docs .sub-r{row-gap:0}
.sub-docs{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.sub-docs:empty{display:none}
.sub-docs:not(:empty){padding:8px 0 4px;margin-right:38px}
.sub-doc{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.sub-doc-add{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border:1px dashed var(--border);
  border-radius:7px;cursor:pointer;font-size:11.5px;font-weight:600;color:var(--muted);transition:all .15s}
.sub-doc-add:hover{border-color:var(--blue);color:var(--blue);background:rgba(11,40,251,.04)}
.sub-doc-add i{font-size:13px}
.sub-doc.is-btn .sub-doc-add{border:1px solid var(--blue);background:var(--blue);color:#fff;padding:6px 13px;font-size:12px}
.sub-doc.is-btn .sub-doc-add:hover{background:#0720d8;border-color:#0720d8;color:#fff}
.sub-doc.is-missing .sub-doc-add{border-style:solid;border-color:#b26a00;color:#b26a00;background:rgba(178,106,0,.06)}
.sub-doc.is-busy .sub-doc-add{opacity:.5;pointer-events:none}
.sub-doc-f{display:inline-flex;align-items:center;gap:5px;padding:4px 9px 4px 6px;border-radius:7px;
  background:rgba(52,202,141,.12);color:#1c7a56;font-size:11.5px;font-weight:600;max-width:230px}
.sub-doc-f>i{font-size:13px;flex-shrink:0}
.sub-doc-rm{display:flex;align-items:center;justify-content:center;width:18px;height:18px;flex-shrink:0;
  border:0;border-radius:5px;background:none;color:inherit;cursor:pointer;font-size:12px;opacity:.7}
.sub-doc-rm:hover{opacity:1;background:rgba(179,38,30,.12);color:#b3261e}
@media(max-width:760px){ .sub-docs:not(:empty){margin-right:0} }

/* ═══ TOASTS — floating messages, never part of the page flow ═══════════ */
.woocommerce-error[role="alert"],.woocommerce-message[role="alert"],.woocommerce-info[role="alert"],.woocommerce-NoticeGroup > [role="alert"],[data-ctl-flash]{display:none!important}
.ctl-toasts{position:fixed;top:82px;left:20px;z-index:2000;display:flex;flex-direction:column;gap:10px;width:min(380px,calc(100vw - 32px));pointer-events:none}
.ctl-toast{pointer-events:auto;display:flex;align-items:flex-start;gap:10px;padding:13px 14px;border-radius:12px;background:#fff;border:1px solid var(--border);border-right-width:4px;box-shadow:0 12px 32px rgba(11,20,60,.18);font-size:13.5px;line-height:1.45;color:var(--dark);opacity:0;transform:translateY(-8px);transition:opacity .2s,transform .2s}
.ctl-toast.on{opacity:1;transform:none}
.ctl-toast>i{font-size:19px;flex-shrink:0;margin-top:1px}
.ctl-toast-t{flex:1;min-width:0}
.ctl-toast-t div+div{margin-top:3px}
.ctl-toast-x{border:0;background:none;font-size:20px;line-height:1;color:var(--muted);cursor:pointer;padding:0 2px;flex-shrink:0}
.ctl-toast-x:hover{color:var(--dark)}
.ctl-toast-error{border-right-color:#b3261e}.ctl-toast-error>i{color:#b3261e}
.ctl-toast-success{border-right-color:var(--green)}.ctl-toast-success>i{color:var(--green)}
.ctl-toast-info{border-right-color:var(--blue)}.ctl-toast-info>i{color:var(--blue)}
.ctl-toast-warning{border-right-color:#d98a00}.ctl-toast-warning>i{color:#d98a00}
@media(max-width:640px){.ctl-toasts{top:auto;bottom:16px;left:16px;right:16px;width:auto;flex-direction:column-reverse}.ctl-toast{transform:translateY(8px)}}

/* ═══ CHECKOUT AUTH POPUP ═══════════════════════════════════════════════ */
.au-bx{max-width:440px;padding:30px 28px 26px}
.au-tabs{display:flex;gap:4px;padding:4px;background:var(--light);border-radius:11px;margin:0 0 18px 28px}
.au-tabs button{flex:1;border:0;background:none;padding:9px 10px;border-radius:8px;font:600 13.5px var(--f);color:var(--muted);cursor:pointer}
.au-tabs button.on{background:#fff;color:var(--dark);box-shadow:0 1px 4px rgba(11,20,60,.12)}
.au-p{display:none}
.au-p.on{display:block}
.au-p .fg2{margin-bottom:12px}
.au-p .fr{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.au-h{font-family:var(--fh);font-size:20px;font-weight:700;margin:0 0 14px 28px}
.au-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:2px 0 16px;font-size:13px}
.au-chk{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:13px;cursor:pointer}
.au-agree{align-items:flex-start;margin:4px 0 16px;line-height:1.4}
.au-agree input{margin-top:2px}
.au-agree a{color:var(--blue)}
.au-link{border:0;background:none;padding:0;color:var(--blue);font:600 13px var(--f);cursor:pointer}
.au-link:hover{text-decoration:underline}
.au-back{display:block;margin:14px auto 0}
.au-btn{width:100%;justify-content:center;padding:12px;border-radius:10px;font-size:14.5px}
.au-btn:disabled,.au-ghost:disabled{opacity:.6;cursor:wait}
.au-who{display:flex;align-items:center;gap:8px;margin:0 0 18px;font-size:13.5px;color:var(--muted)}
.au-who i{color:var(--green);font-size:18px}
.au-acts{display:flex;flex-direction:column;gap:10px}
.au-ghost{border:1px solid var(--border);background:#fff;border-radius:10px;padding:11px;font:600 14px var(--f);color:var(--dark);cursor:pointer}
.au-ghost:hover{background:var(--light)}
.au-social{margin-bottom:0}
.co-auth{display:flex;align-items:center;gap:10px;border:1px solid var(--border);border-radius:12px;background:#fff;padding:12px 16px;margin-bottom:22px;font-size:13.5px;color:var(--dark);flex-wrap:wrap}
.co-auth>i{font-size:19px;color:var(--blue);flex-shrink:0}
.co-auth>span{flex:1;min-width:160px}
.co-auth-acts{display:flex;align-items:center;gap:6px}
.co-auth-acts button{border:0;background:none;padding:2px 0;color:var(--blue);font:600 13.5px var(--f);cursor:pointer;white-space:nowrap}
.co-auth-acts button:hover{text-decoration:underline}
.co-auth-acts .sep{color:var(--border)}

/* Google button — our own look, Google's token popup behind it */
.ctl-google-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:11px 14px;border:1px solid var(--border);border-radius:10px;background:#fff;color:var(--dark);font:600 14.5px var(--f);cursor:pointer;transition:background .15s,border-color .15s,box-shadow .15s}
.ctl-google-btn:hover{background:var(--light);box-shadow:0 1px 6px rgba(11,20,60,.1)}
.ctl-google-btn.is-busy,.ctl-google-btn:disabled{opacity:.65;cursor:wait}
.ctl-g-logo{flex-shrink:0}
.ci-sub strong,.co-line-prod strong{font-weight:700;color:var(--dark)}

/* Email confirmation */
.vf-code{font-size:22px;letter-spacing:8px;text-align:center;font-weight:700}
.vf-row{margin:14px 0 0}
.vf-later{color:var(--muted)}
.ctl-unlock{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--blue);margin:2px 0 8px}
.ctl-unlock i{font-size:16px;flex-shrink:0}
.ctl-unlock a,.ctl-unlock button{border:0;background:none;padding:0;color:var(--blue);font:700 12.5px var(--f);cursor:pointer;text-decoration:underline}
.co-verify{display:flex;align-items:center;gap:10px;border:1px solid rgba(217,138,0,.4);background:rgba(217,138,0,.07);border-radius:12px;padding:11px 16px;margin:-12px 0 22px;font-size:13.5px;flex-wrap:wrap}
.co-verify>i{color:#d98a00;font-size:19px}
.co-verify>span{flex:1;min-width:160px}
.co-verify button{border:0;background:none;padding:0;color:var(--blue);font:700 13.5px var(--f);cursor:pointer;text-decoration:underline}

/* Inline "are you sure" — replaces the row's contents until answered */
.rm-confirm{position:absolute;inset:0;z-index:5;display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:6px 10px;background:rgba(255,255,255,.96);backdrop-filter:blur(2px);border-radius:inherit;font-size:13px;font-weight:600;color:var(--dark);animation:rmIn .15s ease-out}
.rm-confirm>span{margin-left:auto}
.rm-confirm button{border:1px solid var(--border);background:#fff;border-radius:8px;padding:6px 12px;font:600 12.5px var(--f);color:var(--dark);cursor:pointer}
.rm-confirm .rm-yes{background:#e2464d;border-color:#e2464d;color:#fff}
.rm-confirm .rm-yes:hover{background:#c93a41}
.rm-confirm .rm-no:hover{background:var(--light)}
.rm-compact{padding:2px 6px;font-size:12px}
.rm-compact button{padding:3px 8px;font-size:11.5px}
@keyframes rmIn{from{opacity:0}to{opacity:1}}

/* Reviews popup (checkout) */
.rvp-bx{max-width:560px;padding:28px 26px 20px;display:flex;flex-direction:column}
.rvp-head{display:flex;align-items:center;gap:14px;margin:0 0 14px 36px}
.rvp-score{font-family:var(--fh);font-size:40px;font-weight:700;color:var(--dark);line-height:1}
.rvp-head h3{font-size:15px;font-weight:600;margin:2px 0 0}
.rvp-stars{color:#00b67a;letter-spacing:2px;font-size:16px}
.rvp-stars.sm{font-size:12px;margin:3px 0 4px}
.rvp-list{overflow-y:auto;max-height:62vh;margin-left:-8px;padding-left:8px}
.rvp-item{padding:14px 0;border-top:1px solid var(--border)}
.rvp-meta{display:flex;align-items:center;gap:8px;font-size:13px}
.rvp-meta span{margin-right:auto;color:var(--muted);font-size:12px}
.rvp-t{font-weight:700;font-size:14px;margin-bottom:2px}
.rvp-item p{font-size:13.5px;line-height:1.5;color:var(--dark);margin:0}

/* Side cart: one-line "unlock" row, divider, and the always-included banner */
.ctl-unlock{white-space:nowrap;margin:2px 0 0;gap:8px}
.ctl-unlock span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}
.ctl-unlock a,.ctl-unlock button{flex-shrink:0}
.cart-hr{border:0;border-top:1px solid var(--border);margin:12px 0}
.cart-ship{display:flex;align-items:center;gap:8px;padding:9px 24px;background:rgba(52,202,141,.13);color:#127a52;font-size:12.5px;font-weight:600;border-bottom:1px solid rgba(52,202,141,.25)}
.cart-ship i{font-size:17px;flex-shrink:0}
/* Header buttons share one size site-wide */
.cart-btn,.profile-btn{height:40px;min-width:40px;box-sizing:border-box}
.cart-btn i,.profile-btn i{font-size:20px}

/* Checkout: every field is the same height (48px) — inputs, selects, the
   country dropdown and the phone helper. */
.woocommerce-checkout .form-row input.input-text,
.woocommerce-checkout .form-row select{height:48px;min-height:48px;box-sizing:border-box;padding:0 14px!important;line-height:normal}
.woocommerce-checkout .form-row textarea{min-height:96px}
.woocommerce-checkout .select2-container .select2-selection--single{height:48px!important;min-height:48px!important;box-sizing:border-box;display:flex!important;align-items:center;padding:0 14px!important}
.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered{line-height:normal!important;padding:0!important;flex:1}
.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow{height:46px!important;top:0!important;left:8px!important}
.woocommerce-checkout .ctl-ph{height:48px}

/* Order summary header: what is inside, and a clear Show / Hide (phones) */
.ord-sum .os-meta,.ord-sum .os-act{display:none}
@media(max-width:900px){
  .ord-sum h3{gap:10px}
  .ord-sum .os-meta{display:inline;font:600 13px var(--f);color:var(--muted);margin-right:auto;white-space:nowrap}
  .ord-sum .os-act{display:inline-flex;align-items:center;padding:4px 11px;border-radius:100px;background:rgba(11,40,251,.09);color:var(--blue);font:700 12px var(--f)}
  .ord-sum .os-toggle{margin-right:0!important}
  .ord-sum.is-collapsed .os-hide,.ord-sum:not(.is-collapsed) .os-show{display:none}
  .ord-sum:not(.is-collapsed) .os-meta{display:none}
  .ord-sum:not(.is-collapsed) .os-act{margin-right:auto}
}
.ctl-toast-more{border:0;background:none;padding:0;margin-top:3px;color:var(--blue);font:700 13px var(--f);cursor:pointer;text-align:right}
.ctl-toast-more:hover{text-decoration:underline}
/* 404 */
.nf-wrap{text-align:center;padding-top:56px;padding-bottom:72px}
.nf-art{width:min(320px,80%);height:auto;margin:0 auto 20px;display:block}
.nf-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:24px}
.nf-wrap .ssub{margin-right:auto;margin-left:auto;text-align:center}
.nf-wrap .nf-alt,.nf-wrap .nf-alt i{background:#fff;color:var(--dark)!important;border:1px solid var(--border)}
.nf-alt:hover{background:var(--bg,#f3f4f6)}

/* My account menu: icon rail on mid-size windows, icon bar on phones. */
html.dash-auto .dash-collapse{display:none}
@media(max-width:768px){
  .dash-layout .dash-side{flex-direction:row;flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:4px;padding:8px 10px}
  .dash-layout .dash-side .dn-item span,.dash-layout .dash-side .dash-new-test-btn span,.dash-layout .dash-side .dn-chev,.dash-layout .dash-side .dn-sub,.dash-layout .dash-side .dash-collapse{display:none!important}
  .dash-layout .dash-side .dn-group{display:contents}
  .dash-layout .dash-side>.dn-item,.dash-layout .dash-side .dn-group .dn-parent{flex:1 1 0;justify-content:center;min-width:0;padding:11px 0;border-radius:12px;border:0;background:transparent;font-size:0;gap:0}
  .dash-layout .dash-side>.dn-item i,.dash-layout .dash-side .dn-parent i{font-size:21px}
  .dash-layout .dash-side>.dn-item.on,.dash-layout .dash-side .dn-parent.on{background:var(--blue);color:#fff}
  .dash-layout .dash-side .dash-new-test-btn{flex:0 0 44px;width:44px;height:44px;margin:0;padding:0;justify-content:center;border-radius:12px}
  .dash-layout .dash-side .dash-new-test-btn i{font-size:20px}
}
/* Help Center */
.hc-hero{background:var(--light);padding:64px 0 56px;text-align:center}
.hc-hero .ssub{margin-right:auto;margin-left:auto}
.hc-search{position:relative;max-width:620px;margin:26px auto 0;text-align:right}
.hc-search>.ti-search{position:absolute;right:18px;top:50%;transform:translateY(-50%);font-size:20px;color:var(--muted);pointer-events:none}
.hc-search input{width:100%;height:56px;border:1px solid var(--border);border-radius:14px;background:#fff;padding:0 50px 0 18px;font:500 16px var(--f);color:var(--dark);box-shadow:0 8px 28px rgba(11,40,251,.08);outline:none;-webkit-appearance:none}
.hc-search input:focus{border-color:var(--blue);box-shadow:0 8px 28px rgba(11,40,251,.14),0 0 0 3px rgba(11,40,251,.12)}
.hc-sug{position:absolute;right:0;left:0;top:calc(100% + 8px);z-index:20;margin:0;padding:6px;list-style:none;background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:0 18px 44px rgba(6,8,26,.16)}
.hc-sug[hidden]{display:none}
.hc-sug a{display:block;padding:10px 12px;border-radius:9px;text-decoration:none;color:var(--dark)}
.hc-sug a strong{display:block;font-size:14.5px;font-weight:600}
.hc-sug a span{display:block;font-size:12.5px;color:var(--muted);margin-top:2px}
.hc-sug li.on a,.hc-sug a:hover{background:var(--light)}
.hc-sug mark{background:none;color:var(--blue);font-weight:700}
.hc-sug-empty{padding:14px;font-size:14px;color:var(--muted)}
.hc-body{padding:44px 0 80px}
.hc-sec-h{display:flex;align-items:center;gap:10px;font:700 18px var(--fh);color:var(--dark);margin-bottom:20px}
.hc-sec-h i{color:var(--blue);font-size:22px}
.hc-count{font:600 12px var(--f);background:var(--light);color:var(--blue);border-radius:99px;padding:3px 9px}
.hc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.hc-cat{background:#fff;border:1px solid var(--border);border-radius:var(--rl);padding:22px}
.hc-cat[hidden],.hc-cat li[hidden]{display:none}
.hc-cat-h{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.hc-cat-h h2{font:700 18px var(--fh);color:var(--dark);margin:0}
.hc-cat-i{width:38px;height:38px;border-radius:10px;background:var(--light);color:var(--blue);display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}
.hc-cat ul{list-style:none;margin:0;padding:0}
.hc-cat li a{display:block;padding:11px 12px;margin:0 -12px;border-radius:10px;text-decoration:none;color:var(--dark)}
.hc-cat li a:hover,.hc-cat li a:focus-visible{background:var(--light)}
.hc-cat li strong{display:block;font-size:14.5px;font-weight:600}
.hc-cat li span{display:block;font-size:13px;color:var(--muted);margin-top:2px}
.hc-none{text-align:center;padding:40px 0;color:var(--muted)}
.hc-none[hidden]{display:none}
.hc-none>i{font-size:44px;color:var(--blue)}
.hc-none p{margin:8px 0 16px;font-size:15px}
.hc-article{max-width:760px;margin:0 auto}
.hc-article[hidden],#hc-home[hidden],#hc-article-wrap[hidden]{display:none}
.hc-back{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:var(--blue);text-decoration:none;margin-bottom:22px}
.hc-crumb{font:700 11px var(--f);letter-spacing:.08em;text-transform:uppercase;color:var(--blue);margin-bottom:8px}
.hc-article h1{font:700 32px/1.2 var(--fh);color:var(--dark);margin:0 0 20px}
.hc-prose{font-size:16px;line-height:1.7;color:var(--mid)}
.hc-prose h3{font:700 18px var(--fh);color:var(--dark);margin:24px 0 8px}
.hc-prose p{margin:0 0 14px}
.hc-prose ul,.hc-prose ol{margin:0 0 16px;padding-right:22px}
.hc-prose li{margin-bottom:8px}
.hc-prose a{color:var(--blue)}
.hc-rel{margin-top:32px;padding-top:20px;border-top:1px solid var(--border)}
.hc-rel h2,.hc-rel h3{font:700 14px var(--fh);color:var(--dark);margin:0 0 10px}
.hc-rel ul{list-style:none;margin:0;padding:0}
.hc-rel li{margin-bottom:6px}
.hc-rel a{color:var(--blue);font-size:14.5px;text-decoration:none}
.hc-rel a:hover{text-decoration:underline}
.hc-help{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:32px;padding:20px 22px;background:var(--light);border-radius:var(--rl);font:600 15px var(--f);color:var(--dark)}
@media(max-width:760px){.hc-grid{grid-template-columns:1fr}.hc-hero{padding:44px 0 40px}.hc-article h1{font-size:26px}}
@media(min-width:769px){
  /* collapsed rail: icons only — hide every label */
  html.dash-collapsed .dash-title,html.dash-collapsed .dn-sect,html.dash-collapsed .dn-item span,
  html.dash-collapsed .dash-new-test-btn span,html.dash-collapsed .dash-side-btn span{display:none!important}
}
@media(max-width:768px){.dash-layout .dash-side>.dn-item,.dash-layout .dash-side .dn-group .dn-parent{width:0;flex:1 1 0;border-right:0!important}}
@media(min-width:769px){
  /* collapsed rail: breathing room between the + button and the first menu item */
  html.dash-collapsed .dash-new-test-btn{margin-bottom:16px}
}
.woocommerce-checkout .form-row.ctl-locked input.input-text{background:var(--light)!important;color:var(--muted);cursor:not-allowed}

/* "Product data missing" popup */
.mp-bx{max-width:460px;padding:28px 26px 22px}
.mp-top{display:flex;align-items:center;gap:14px;margin:0 0 18px 36px}
.mp-ic{flex:0 0 46px;height:46px;border-radius:14px;background:rgba(217,138,0,.13);color:#c27800;display:flex;align-items:center;justify-content:center;font-size:23px}
.mp-h{font-family:var(--fh);font-size:19px;font-weight:700;margin:0;padding:0;color:var(--dark);display:block}
.mp-sub{margin:3px 0 0;font-size:13px;color:var(--muted)}
.mp-list{list-style:none;margin:0 0 20px;padding:0;display:flex;flex-direction:column;gap:10px;max-height:48vh;overflow-y:auto}
.mp-list li{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:#fff}
.mp-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.mp-info b{font-size:14px;color:var(--dark);overflow:hidden;text-overflow:ellipsis}
.mp-info span{font-size:12.5px;color:#b3261e}
.mp-add{flex-shrink:0;display:inline-flex;align-items:center;gap:6px;border:0;border-radius:9px;padding:9px 13px;background:var(--blue);color:#fff;font:700 12.5px var(--f);cursor:pointer;white-space:nowrap}
.mp-add:hover{background:#0a20d8}
.mp-acts{display:flex;gap:10px;align-items:center;justify-content:space-between;margin:0}
.mp-go,.woocommerce a.mp-go{background:none;color:var(--muted);padding:10px 4px;font-size:13px;font-weight:600}
.mp-go:hover{background:none;color:var(--dark)}
@media(max-width:480px){.mp-list li{flex-wrap:wrap}.mp-add{width:100%;justify-content:center}}
/* Checkout summary on phones: same inner spacing open or closed */
@media(max-width:900px){
  .ctl-co-right .ord-sum,.ctl-co-right .ord-sum.is-collapsed{padding:16px 18px}
  .ord-sum:not(.is-collapsed) h3{margin-bottom:12px}
}

/* Clicking the dimmed background closes a popup / the side cart — say so with the cursor. */
.pop-ov,.cv-ov,.cart-ov,.mob-ov,.bndl-modal-bg{cursor:pointer}
.pop-bx,.cv-bx,.cart-panel,.mob-menu,.bndl-modal-card{cursor:auto}

.hc-contact{padding:8px 0 80px;scroll-margin-top:66px}

.hc-still{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:22px 26px;background:var(--light);border-radius:var(--rl)}
.hc-still-i{width:48px;height:48px;border-radius:13px;background:#fff;color:var(--blue);display:flex;align-items:center;justify-content:center;font-size:26px;flex-shrink:0}
.hc-still-t{flex:1;min-width:200px}
.hc-still-t h2{font:700 20px var(--fh);color:var(--dark);margin:0 0 2px}
.hc-still-t p{margin:0;font-size:14px;color:var(--muted)}
.hc-panel{margin-top:28px}
.hc-panel[hidden],#hc-lower[hidden],.hc-msg[hidden]{display:none}
.hc-panel:not([hidden]){animation:hcIn .25s ease-out}
@keyframes hcIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
.hc-hp{position:absolute;right:-9999px;width:1px;height:1px;overflow:hidden}
.hc-cap{display:flex;align-items:center;gap:10px}
.hc-cap img{max-width:100%;height:auto;border-radius:10px;border:1px solid var(--border);background:#f2f5ff;display:block}
.hc-cap-new{width:40px;height:40px;flex-shrink:0;border:1px solid var(--border);background:#fff;border-radius:10px;color:var(--muted);cursor:pointer;font-size:18px}
.hc-cap-new:hover{background:var(--light);color:var(--blue)}
#cf-cap{letter-spacing:.2em;text-transform:uppercase;font-weight:700}
.hc-msg{margin-top:10px;padding:10px 12px;border-radius:10px;font-size:13.5px;background:#fdecec;color:#a4282e}
.hc-msg.ok{background:#e6f8ef;color:#0a7a52}

.hc-table{width:100%;border-collapse:collapse;margin:0 0 18px;font-size:14.5px}
.hc-table th{text-align:right;font:700 11px var(--f);letter-spacing:.07em;text-transform:uppercase;color:var(--muted);padding:8px 12px;border-bottom:2px solid var(--border)}
.hc-table td{padding:12px;border-bottom:1px solid var(--border);vertical-align:top;color:var(--mid)}
.hc-table td:nth-child(2){font-weight:700;color:var(--dark);white-space:nowrap}
.hc-table a{color:var(--blue);font-weight:600;text-decoration:none}
@media(max-width:560px){.hc-table th:nth-child(3),.hc-table td:nth-child(3){display:none}}

/* Blog: hero crop, CTA, sources, author box, homepage slider */
.blog-hero-img img{aspect-ratio:21/9;object-fit:cover}
.blog-prose h3{font-family:var(--fh);font-size:18px;font-weight:700;color:var(--dark);margin:22px 0 8px}
.blog-prose ol{margin:0 0 18px 0;padding-right:22px;display:flex;flex-direction:column;gap:9px;font-size:16px;line-height:1.7;color:var(--mid)}
.blog-cta{display:flex;gap:18px;align-items:flex-start;margin:38px 0 8px;padding:26px 28px;border-radius:var(--rl);background:linear-gradient(-135deg,#0b28fb 0%,#0a1f9e 100%);color:#fff}
.blog-cta-ic{flex:0 0 46px;height:46px;border-radius:12px;background:rgba(255,255,255,.14);display:flex;align-items:center;justify-content:center;font-size:24px}
.blog-cta h3{font-family:var(--fh);font-size:22px;font-weight:700;color:#fff;margin:0 0 8px}
.blog-cta p{font-size:15px;line-height:1.65;color:rgba(255,255,255,.85);margin:0 0 16px}
.blog-cta-btns{display:flex;flex-wrap:wrap;gap:10px}
@media(min-width:769px){.blog-cta-btns{flex-wrap:nowrap;gap:8px}.blog-cta-btns a{flex:0 1 auto;min-width:0;padding:10px 14px;gap:6px;font-size:13px;line-height:1.3}}
.blog-prose .blog-cta a{color:inherit;text-decoration:none}
.blog-cta-main{background:#fff!important;color:var(--blue)!important}
.blog-prose .blog-cta a.blog-cta-main{color:var(--blue)}
.blog-cta-sec{display:inline-flex;align-items:center;gap:8px;padding:13px 24px;border:1px solid rgba(255,255,255,.4);border-radius:10px;font-size:14px;font-weight:500;color:#fff;transition:background .15s}
.blog-cta-sec:hover{background:rgba(255,255,255,.14)}
/* Blog category landing: start here + services */
/* Phones: categories in one row (All, then the current one first) with a More toggle that opens the rest */
.blog-cats-more{display:none!important}
@media(max-width:680px){
  nav.blog-cats{flex-wrap:nowrap!important;overflow:hidden!important;position:relative!important;padding-left:96px!important}
  .blog-cats .blog-cat{flex:0 0 auto}
  .blog-cats>a:first-child{order:-2}
  .blog-cats .blog-cat.on{order:-1}
  .blog-cats .blog-cats-more{display:inline-flex!important;position:absolute;left:0;top:0;background:var(--blue);border-color:var(--blue);color:#fff;box-shadow:18px 0 14px 4px #fff}
  .blog-cats-more .ti{transition:transform .2s}
  nav.blog-cats.open{flex-wrap:wrap!important;padding-left:0!important}
  .blog-cats.open .blog-cats-more{position:static;order:99;box-shadow:none}
  .blog-cats.open .blog-cats-more .ti{transform:rotate(-180deg)}
}
/* Category "Start here": one compact strip — label, then numbered reads as pills */
.blog-guide{margin:0 0 26px}
.blog-guide-start{display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--rl);background:var(--light)}
.blog-guide h2{flex:0 0 auto;margin:0;font-family:var(--f);font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--dark);display:flex;align-items:center;gap:6px}
.blog-guide h2 i{color:var(--green);font-size:15px}
.blog-guide-start ol{flex:1 1 0;min-width:0;margin:0;padding:0;list-style:none;counter-reset:g;display:flex;flex-wrap:wrap;gap:8px}
.blog-guide-start li{counter-increment:g;min-width:0}
.blog-guide-start a{display:flex;align-items:center;gap:8px;max-width:100%;padding:6px 6px 6px 12px;border-radius:100px;background:#fff;border:1px solid var(--border);color:var(--dark);text-decoration:none;font-weight:600;font-size:13.5px;line-height:1.3;transition:border-color .15s,color .15s}
.blog-guide-start a::before{content:counter(g);flex:0 0 22px;height:22px;border-radius:50%;background:var(--light);color:var(--blue);font-size:11.5px;font-weight:700;display:flex;align-items:center;justify-content:center}
.blog-guide-start a:hover{border-color:var(--blue);color:var(--blue)}
@media(max-width:680px){
  /* Phones: Start here as a short numbered list, no pills */
  .blog-guide-start{flex-direction:column;align-items:stretch;gap:6px;padding:12px 14px}
  .blog-guide-start ol{flex-direction:column;gap:0}
  .blog-guide-start a{border:0;background:none;border-radius:0;padding:7px 0;font-size:14px}
  .blog-guide-start li+li a{border-top:1px solid var(--border)}
  .blog-guide-start a::before{background:#fff}
}
/* Blog: contents box + in-text related links */
.blog-prose h2[id]{scroll-margin-top:90px}
.blog-toc{margin:26px 0 30px;border:1px solid var(--border);border-radius:var(--r);background:var(--light)}
.blog-toc summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;padding:13px 18px;font-weight:700;font-size:14.5px;color:var(--dark)}
.blog-toc summary::-webkit-details-marker{display:none}
.blog-toc summary i:first-child{color:var(--blue)}
.blog-toc-ch{margin-right:auto;transition:transform .2s}
.blog-toc[open] .blog-toc-ch{transform:rotate(-180deg)}
.blog-toc ol{margin:0;padding:0 38px 14px 18px;font-size:14.5px;line-height:1.55;columns:2;column-gap:32px}
.blog-toc li{break-inside:avoid;margin:0 0 6px}
.blog-toc a{color:var(--mid);text-decoration:none}
.blog-toc a:hover{color:var(--blue);text-decoration:underline}
.blog-prose .blog-rel-inline{margin:26px 0;padding:12px 16px;border-right:3px solid var(--green);background:var(--light);border-radius:var(--r) 0 0 var(--r);font-size:15px;line-height:1.5}
.blog-rel-inline span{display:block;font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:2px}
.blog-rel-inline a{font-weight:600;color:var(--blue);text-decoration:none}
.blog-rel-inline a:hover{text-decoration:underline}
@media(max-width:680px){.blog-toc ol{columns:1}}
.blog-src{margin-top:26px;border:1px solid var(--border);border-radius:var(--r);background:#fff}
.blog-src summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;padding:14px 18px;font-weight:700;font-size:14.5px;color:var(--dark)}
.blog-src summary::-webkit-details-marker{display:none}
.blog-src summary i:first-child{color:var(--blue)}
.blog-src-ch{margin-right:auto;transition:transform .2s}
.blog-src[open] .blog-src-ch{transform:rotate(-180deg)}
.blog-src-tw{overflow-x:auto;border-top:1px solid var(--border)}
.blog-src table{width:100%;border-collapse:collapse;font-size:13.5px}
.blog-src th{text-align:right;padding:10px 18px;font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:var(--light)}
.blog-src td{padding:11px 18px;border-top:1px solid var(--border);color:var(--mid);vertical-align:top}
.blog-src td a{color:var(--blue);text-decoration:none;word-break:break-all}
.blog-src td a:hover{text-decoration:underline}
.blog-author{display:flex;gap:20px;align-items:flex-start;margin-top:26px;padding:24px;border:1px solid var(--border);border-radius:var(--rl);background:var(--light)}
.blog-author-img{flex:0 0 84px;width:84px;height:84px;border-radius:50%;background-size:cover;background-position:center top;background-color:var(--border)}
.blog-author-lbl{font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:600}
.blog-author h3{font-family:var(--fh);font-size:19px;font-weight:700;color:var(--dark);margin:2px 0 0}
.blog-author-role{font-size:13px;color:var(--blue);font-weight:600;margin-bottom:8px}
.blog-author p{font-size:14px;line-height:1.65;color:var(--mid);margin:0}
.blog-sec{padding:56px 40px;background:#fff}
.blog-sec .cont{max-width:var(--wrap);margin:0 auto}
.blog-sec-hd{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:4px}
.blog-sec-all{font-size:13.5px;font-weight:700;color:var(--blue);text-decoration:none;padding-bottom:8px}
.bl-wrap{scroll-snap-type:x proximity}
.bl-track{display:flex;gap:20px}
.bl-card{flex:0 0 calc((100% - 40px)/3);scroll-snap-align:start}
@media(max-width:980px){.bl-card{flex-basis:calc((100% - 20px)/2)}}
@media(max-width:680px){.bl-card{flex-basis:86%}.blog-sec{padding:40px 16px}.blog-cta{flex-direction:column;padding:22px}.blog-author{flex-direction:column}}

/* Fields pre-filled from the VAT register flash briefly */
.woocommerce-checkout .form-row.ctl-filled input.input-text{animation:ctlFilled 1.6s ease-out}
@keyframes ctlFilled{0%{background:rgba(52,202,141,.28)}100%{background:#fff}}
.ctl-vf .ctl-ph-d{letter-spacing:.02em}

.blog-fig{margin:28px 0}
.blog-fig-img{width:100%;height:auto;display:block;border-radius:var(--rl);border:1px solid var(--border)}
.blog-fig figcaption{margin-top:8px;font-size:12.5px;color:var(--muted);text-align:center}
.blog-rel{background:var(--light)}
.bl-4 .bl-card{flex-basis:calc((100% - 60px)/4)}
@media(max-width:1100px){.bl-4 .bl-card{flex-basis:calc((100% - 40px)/3)}}
@media(max-width:980px){.bl-4 .bl-card{flex-basis:calc((100% - 20px)/2)}}
@media(max-width:680px){.bl-4 .bl-card{flex-basis:86%}}

.hc-dl{margin:0}
.hc-dl dt{font:700 14.5px var(--fh);color:var(--dark);margin-top:14px}
.hc-dl dd{margin:2px 0 0;color:var(--mid);font-size:15px;line-height:1.6}

.hc-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
#cf-cap::placeholder{letter-spacing:normal;text-transform:none;font-weight:400}
.hc-ask-slot{margin-top:24px}
/* Test finder */
.tf-hero{background:var(--light);padding:56px 0 40px;text-align:center}
.tf-body{padding:36px 0 80px}
.tf-card{max-width:720px;margin:0 auto;background:#fff;border:1px solid var(--border);border-radius:var(--rl);padding:32px;box-shadow:0 12px 40px rgba(11,40,251,.06)}
.tf-prog{height:6px;background:var(--light);border-radius:99px;overflow:hidden}
.tf-prog span{display:block;height:100%;background:var(--blue);border-radius:99px;transition:width .3s}
.tf-count{font:600 12px var(--f);color:var(--muted);margin:10px 0 18px}
.tf-q{font:700 24px/1.25 var(--fh);color:var(--dark);margin:0 0 22px}
.tf-opts{display:grid;gap:10px}
.tf-opt{display:flex;align-items:center;gap:14px;width:100%;text-align:right;padding:15px 18px;border:1.5px solid var(--border);border-radius:14px;background:#fff;font:600 15px var(--f);color:var(--dark);cursor:pointer;transition:border-color .15s,background .15s,transform .15s}
.tf-opt i{font-size:22px;color:var(--blue);flex-shrink:0}
.tf-opt:hover,.tf-opt:focus-visible{border-color:var(--blue);background:var(--light);outline:none}
.tf-opt:active{transform:scale(.99)}
.tf-opt.on{border-color:var(--blue);background:var(--light)}
.tf-back,.tf-again{display:inline-flex;align-items:center;gap:6px;margin-top:20px;background:none;border:none;color:var(--muted);font:600 14px var(--f);cursor:pointer;padding:6px 0}
.tf-back:hover,.tf-again:hover{color:var(--blue)}
.tf-tip{color:var(--muted);font-size:18px;vertical-align:middle;cursor:help}
.tf-done{font-size:44px;color:var(--green);line-height:1;margin-bottom:8px}
.tf-title{margin-bottom:14px}
.tf-sec{font:700 11px var(--f);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:24px 0 10px}
.tf-note{padding:12px 14px;background:var(--light);border-radius:10px;font-size:14px;color:var(--mid);margin-bottom:8px}
.tf-res{display:flex;gap:14px;align-items:flex-start;padding:16px;border:1px solid var(--border);border-radius:14px;margin-bottom:10px}
.tf-res.tf-opt-,.tf-res.tf-opt{cursor:default}
.tf-res.tf-skip{opacity:.7;background:#fafbff}
.tf-res-i{width:42px;height:42px;border-radius:11px;background:var(--light);color:var(--blue);display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0}
.tf-res-b{flex:1;min-width:0}
.tf-res-b h3{font:700 16px var(--fh);color:var(--dark);margin:0 0 3px}
.tf-res-b p{margin:0;font-size:13.5px;line-height:1.5;color:var(--mid)}
.tf-plan{font:700 11px var(--f);background:var(--light);color:var(--blue);border-radius:99px;padding:2px 8px;margin-right:4px;vertical-align:middle}
.tf-meta{margin-top:6px;font-size:12.5px;color:var(--muted)}
.tf-res-r{text-align:left;flex-shrink:0}
.tf-price{font:700 18px var(--fh);color:var(--dark)}
.tf-view{display:inline-flex;align-items:center;gap:4px;margin-top:4px;font-size:13px;font-weight:600;color:var(--blue);text-decoration:none}
.tf-total{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-radius:12px;background:var(--dark);color:#fff;font-size:15px;margin-top:6px}
.tf-total strong{font:700 22px var(--fh)}
.tf-bundle{display:flex;gap:8px;align-items:center;margin-top:10px;padding:11px 14px;border-radius:10px;background:#e6f8ef;color:#0a7a52;font-size:14px;font-weight:600}
.tf-cta{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:26px}
.tf-alt{display:inline-flex;align-items:center;gap:6px;padding:12px 20px;border:1px solid var(--border);border-radius:10px;color:var(--dark)!important;font:600 14px var(--f);text-decoration:none}
.tf-alt:hover{background:var(--light)}
.tf-cta .tf-again{margin-top:0}
@media(max-width:560px){.tf-card{padding:22px 18px}.tf-q{font-size:20px}.tf-res{flex-wrap:wrap}.tf-res-r{width:100%;display:flex;justify-content:space-between;align-items:center;text-align:right}}
/* How it works: "Still not sure?" */
.hiw-still{display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;margin-top:20px;padding-top:18px;border-top:1px solid var(--border)}
.hiw-still strong{font:700 16px var(--fh);color:var(--dark)}

.tf-order{display:flex;width:100%;justify-content:center;align-items:center;gap:8px;margin-top:12px;border:0;cursor:pointer}
.tf-cta{justify-content:center;margin-top:30px;padding-top:20px;border-top:1px solid var(--border)}

/* Footer language dropdown (opens upward; JS flips it down when there is no room above) */
.ftr-lang-dd{position:relative}
.ftr-lang-cur{display:flex;align-items:center;gap:6px;padding:6px 11px;border:1px solid rgba(255,255,255,.2);border-radius:8px;background:rgba(255,255,255,.04);cursor:pointer;font-size:12px;font-weight:600;color:#fff;font-family:var(--f);transition:background .15s}
.ftr-lang-cur:hover,.ftr-lang-dd.open .ftr-lang-cur{background:rgba(255,255,255,.1)}
.ftr-lang-cur .flag,.ftr-lang-menu .flag{font-size:15px}
.ftr-lang-cur .ti{font-size:13px;opacity:.7;transition:transform .15s}
.ftr-lang-dd.open .ftr-lang-cur .ti{transform:rotate(-180deg)}
.ftr-lang-menu{position:absolute;left:0;bottom:calc(100% + 8px);min-width:170px;margin:0;padding:6px;list-style:none;background:#10163a;border:1px solid rgba(255,255,255,.15);border-radius:10px;box-shadow:0 18px 40px -12px rgba(0,0,0,.6);display:none;z-index:50}
.ftr-lang-dd.open .ftr-lang-menu{display:block}
.ftr-lang-dd.drop-down .ftr-lang-menu{bottom:auto;top:calc(100% + 8px)}
.ftr-lang-menu a{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:7px;font-size:13px;font-weight:500;color:rgba(255,255,255,.75);text-decoration:none}
.ftr-lang-menu a:hover{background:rgba(255,255,255,.08);color:#fff}
.ftr-lang-menu [aria-selected="true"] a{background:rgba(11,40,251,.3);color:#fff}

/* Generic info tooltip: <span class="ctl-tip" data-tip="…"><i class="ti ti-info-circle"></i></span> */
.ctl-tip{position:relative;display:inline-flex;vertical-align:middle;margin-right:4px;color:var(--muted);cursor:help}
.ctl-tip::after{content:attr(data-tip);position:absolute;bottom:calc(100% + 7px);right:50%;transform:translateX(50%) translateY(4px);width:max-content;max-width:240px;background:var(--dark);color:#fff;font-size:11.5px;font-weight:500;line-height:1.45;padding:7px 10px;border-radius:7px;opacity:0;pointer-events:none;transition:all .15s;z-index:20;text-transform:none;letter-spacing:0}
.ctl-tip:hover::after,.ctl-tip:focus::after{opacity:1;transform:translateX(50%) translateY(0)}

/* Country picker (selectWoo) — matches the checkout field */
.select2-container.ctl-c2{width:100%!important}
.ctl-c2 .select2-selection--single{height:44px!important;min-height:44px;box-sizing:border-box;display:flex!important;align-items:center;border:1.5px solid var(--border)!important;border-radius:9px!important;background:#fff;padding:0 13px!important}
.ctl-c2 .select2-selection--single .select2-selection__rendered{line-height:normal!important;padding:0!important;flex:1;font-size:14px;color:var(--dark)}
.ctl-c2 .select2-selection--single .select2-selection__arrow{height:42px!important;top:0!important;left:8px!important}
.ctl-c2.select2-container--open .select2-selection--single,.ctl-c2.select2-container--focus .select2-selection--single{border-color:var(--blue)!important}
.ctl-c2-dd{border:1.5px solid var(--border)!important;border-radius:10px!important;box-shadow:0 18px 40px -16px rgba(11,40,251,.25);overflow:hidden;z-index:100000}
.select2-container--open{z-index:100000}
.ctl-c2-dd .select2-search--dropdown{padding:8px}
.ctl-c2-dd .select2-search__field{border:1.5px solid var(--border)!important;border-radius:8px!important;padding:8px 10px!important;font-size:14px;min-height:0!important}
.ctl-c2-dd .select2-results__option{padding:8px 12px;font-size:14px}
.ctl-c2-dd .select2-results__option--highlighted[aria-selected]{background:var(--blue)!important;color:#fff}

/* Checkout: divider between the name row and the VAT number */
.woocommerce-checkout #billing_vat_field{clear:both;width:100%;float:none;border-top:1px solid var(--border);margin-top:16px;padding-top:18px}

/* Blog: category filter, post chip, left-aligned hero, two-column layout with sticky sidebar */
.blog-cats{display:flex;flex-wrap:wrap;align-items:flex-start;gap:8px;margin:0 0 28px;position:static;height:auto;padding:0;background:none;border:0;backdrop-filter:none;z-index:auto}
.blog-cat{display:inline-flex;align-items:center;gap:7px;padding:8px 15px;border:1px solid var(--border);border-radius:100px;background:#fff;color:var(--dark);font-size:13.5px;font-weight:600;text-decoration:none;transition:all .15s}
.blog-cat span{font-size:11px;font-weight:700;color:var(--muted);background:var(--light);padding:1px 7px;border-radius:100px}
.blog-cat:hover{border-color:var(--blue);color:var(--blue)}
.blog-cat.on{background:var(--blue);border-color:var(--blue);color:#fff}
.blog-cat.on span{background:rgba(255,255,255,.2);color:#fff}
.blog-cat.reg:not(.on){border-color:rgba(52,202,141,.5);background:rgba(52,202,141,.08)}
.blog-card-cat{font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--blue);margin-bottom:6px}
.blog-ph-left{text-align:right;padding:48px 40px 40px}
.blog-ph-left .blog-wrap{max-width:var(--wrap)}
.blog-ph-left h1{max-width:900px;margin-bottom:14px}
.blog-ph-tags{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px}
.blog-ph-tags .ph-badge{margin:0;text-decoration:none}
.blog-cat-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:100px;border:1px solid rgba(255,255,255,.25);color:#fff;font-size:12px;font-weight:600;text-decoration:none;transition:background .15s}
.blog-cat-chip:hover{background:rgba(255,255,255,.12)}
.blog-wrap{max-width:var(--wrap)}
.blog-cols{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:56px;align-items:start}
.blog-cols .blog-main{min-width:0;max-width:none}
.blog-side{position:sticky;top:108px;align-self:start}
.blog-side-in{max-height:calc(100vh - 128px);overflow-y:auto;scrollbar-width:none;border:1px solid var(--border);border-radius:var(--rl);background:#fff;padding:20px;box-shadow:0 18px 44px -30px rgba(11,40,251,.35)}
.blog-side-hd{display:flex;align-items:center;gap:8px;font-family:var(--fh);font-size:17px;font-weight:700;color:var(--dark);margin-bottom:12px}
.blog-side-hd i{color:var(--blue)}
.blog-side-grp{font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin:14px 0 6px}
.blog-side-it{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:10px;text-decoration:none;color:var(--dark);transition:background .15s}
.blog-side-it:hover{background:var(--light)}
.blog-side-ic{flex:0 0 32px;height:32px;border-radius:9px;background:rgba(11,40,251,.08);color:var(--blue);display:flex;align-items:center;justify-content:center;font-size:17px}
.blog-side-nm{flex:1;font-size:13.5px;font-weight:600;line-height:1.3}
.blog-side-it>.ti-chevron-right{color:var(--muted);font-size:14px}
.blog-side-cta{display:flex;justify-content:center;gap:8px;width:100%;margin-top:16px}
.blog-side-in::-webkit-scrollbar{display:none}
.blog-side-perks{list-style:none;margin:16px 0 0;padding:14px 0 0;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:12px}
.blog-side-perks li,.blog-side-perks a{display:flex;align-items:center;gap:11px;color:var(--dark);text-decoration:none}
.blog-side-perks strong{display:block;font-size:13px;font-weight:700;line-height:1.25}
.blog-side-perks small{display:block;font-size:11.5px;color:var(--muted);margin-top:1px}
.bsp-ic{flex:0 0 32px;height:32px;border-radius:9px;background:rgba(52,202,141,.14);color:#0f8a5c;display:flex;align-items:center;justify-content:center;font-size:17px}
.bsp-star{background:rgba(0,182,122,.14);color:#00b67a}
.blog-side-note{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:12px;font-size:12px;color:var(--muted)}
@media(max-width:980px){.blog-cols{grid-template-columns:1fr}.blog-side{display:none}.blog-ph-left{padding:36px 20px 28px}}

/* Regulatory monitor */
.reg-wrap{padding-top:8px}
.reg-filter .blog-cat{font-family:var(--f);cursor:pointer}
.reg-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.reg-card{border:1px solid var(--border);border-radius:var(--rl);background:#fff;padding:22px 24px;display:flex;flex-direction:column;gap:10px;scroll-margin-top:90px}
.reg-card[hidden]{display:none}
.reg-top{display:flex;align-items:center;gap:8px}
.reg-st{font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:3px 10px;border-radius:100px}
.reg-st-in-force{background:rgba(52,202,141,.14);color:#0f8a5c}
.reg-st-upcoming{background:rgba(11,40,251,.1);color:var(--blue)}
.reg-st-draft{background:rgba(200,120,0,.12);color:#a35f00}
.reg-st-pending{background:var(--light);color:var(--muted)}
.reg-rg{font-size:11px;font-weight:700;letter-spacing:.05em;color:var(--muted);border:1px solid var(--border);padding:2px 9px;border-radius:100px}
.reg-card h2{font-family:var(--fh);font-size:18px;line-height:1.3;font-weight:700;color:var(--dark);margin:0}
.reg-card p{font-size:14px;line-height:1.65;color:var(--mid);margin:0}
.reg-dates{display:flex;flex-wrap:wrap;gap:6px 18px;margin:2px 0 0}
.reg-dates div{display:flex;flex-direction:column}
.reg-dates dt{font-size:11px;color:var(--muted);font-weight:600}
.reg-dates dd{margin:0;font-size:13.5px;font-weight:700;color:var(--dark)}
.reg-src{margin-top:auto;padding-top:6px;font-size:12.5px;color:var(--muted);display:flex;flex-wrap:wrap;align-items:center;gap:4px}
.reg-src a{color:var(--blue);text-decoration:none}.reg-src a:hover{text-decoration:underline}
.reg-more{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
@media(max-width:820px){.reg-list{grid-template-columns:1fr}}
.blog-cats .reg-link{margin-right:auto;border-style:dashed;color:var(--blue)}@media(max-width:680px){.blog-cats .reg-link{margin-right:0}}

.reg-feed{margin-top:34px;border:1px solid var(--border);border-radius:var(--rl);background:#fff;padding:22px 24px}
.reg-feed h2{font-family:var(--fh);font-size:18px;font-weight:700;color:var(--dark);margin:0 0 12px;display:flex;align-items:center;gap:8px}
.reg-feed h2>.ti{color:var(--blue)}
.reg-feed ul{list-style:none;margin:0;padding:0}
.reg-feed-it{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 12px;padding:10px 0;border-top:1px solid var(--border);font-size:14px}
.reg-feed-it[hidden]{display:none}
.reg-feed-it:first-child{border-top:0}
.reg-feed-d{min-width:104px;font-size:12.5px;color:var(--muted)}
.reg-feed-it a{flex:1 1 320px;color:var(--dark);font-weight:600;text-decoration:none}.reg-feed-it a:hover{color:var(--blue)}
.reg-feed-s{font-size:12px;color:var(--muted)}
.reg-feed-c{margin:12px 0 0;font-size:12px;color:var(--muted)}

/* ═══ Mobile polish v2 ═══════════════════════════════════════════════════ */
/* Mobile menu: tests on top, pages, account, language pinned to the bottom */
.mob-menu .mob-hd{flex-direction:row!important}   /* logo left, close right */
.mob-body{flex:1 0 auto;display:flex;flex-direction:column;gap:6px;padding:14px 16px 20px}
.mob-tests{display:flex;flex-direction:column;gap:8px;padding-bottom:12px;border-bottom:1px solid var(--border)}
.mob-test{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:12px;background:var(--light);color:var(--dark);font-size:16px;font-weight:600;text-decoration:none}
.mob-test .ti{font-size:20px;color:var(--blue)}
.mob-test.on,.mob-test:hover{background:rgba(11,40,251,.08);color:var(--blue)}
.mob-pages{display:flex;flex-direction:column;padding:6px 0;border-bottom:1px solid var(--border)}
.mob-pages .mob-nav-item{text-align:right!important;padding:12px 8px;border-bottom:0;border-radius:8px;font-size:16px}
.mob-pages .mob-nav-item.on{color:var(--blue);font-weight:600}
.mob-test{width:100%;border:0;cursor:pointer;font-family:var(--f);text-align:right}
.mob-test-chev{margin-right:auto;font-size:18px!important;color:var(--muted)!important;transition:transform .2s}
.mob-test-grp.open .mob-test-chev{transform:rotate(-180deg)}
.mob-test-sub{display:none;flex-direction:column;padding:4px 14px 2px 0;margin-right:16px;border-right:2px solid rgba(11,40,251,.15)}
.mob-test-grp.open .mob-test-sub{display:flex}
.mob-test-sub a{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;color:var(--dark);font-size:15px;text-decoration:none}
.mob-test-sub a .ti{font-size:18px;color:var(--blue)}
.mob-test-sub a.on{background:rgba(11,40,251,.07);color:var(--blue);font-weight:600}
.mob-test-sub .mob-test-all{color:var(--blue);font-weight:600}
.mob-test-sub button{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border:0;border-radius:8px;background:none;color:var(--dark);font-family:var(--f);font-size:15px;text-align:right;cursor:pointer}
.mob-test-sub button .ti{font-size:18px;color:var(--blue)}
.mob-test .mega-off+.mob-test-chev{margin-right:8px}
.mob-acc{display:flex;gap:8px;margin-bottom:8px}
.mob-lang-bar.in{display:flex;gap:8px}
.mob-lang-bar.in .mob-acc{flex:1;margin:0;order:2}
.mob-lang-bar.in .mob-lang-cur{flex:1;min-width:0}
.mob-acc-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:7px;padding:10px 12px;border-radius:10px;border:1px solid var(--border);color:var(--dark);font-size:15px;font-weight:600;text-decoration:none;background:#fff}
.mob-acc-btn.pri{background:var(--blue);border-color:var(--blue);color:#fff}
.mob-acc-btn .ti{font-size:18px}
.mob-lang-bar{position:sticky;bottom:0;background:#fff;border-top:1px solid var(--border);padding:10px 16px calc(10px + env(safe-area-inset-bottom));z-index:2}
.mob-lang-cur{display:flex;align-items:center;gap:8px;width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:#fff;color:var(--dark);font:500 15px var(--f);cursor:pointer}
.mob-lang-cur .ti-world{color:var(--muted);font-size:18px}
.mob-lang-cur .ti-chevron-down{display:inline-block;margin-right:auto;color:var(--muted);transform:rotate(-180deg);transition:transform .2s}
.mob-lang-cur[aria-expanded="true"] .ti-chevron-down{transform:none}
.mob-lang-list{display:none;position:absolute;right:16px;left:16px;bottom:calc(100% + 6px);max-height:min(60vh,440px);overflow-y:auto;background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:0 -10px 40px rgba(6,8,26,.16);padding:6px}
.mob-lang-bar.open .mob-lang-list{display:block}
.mob-lang-list a{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;color:var(--dark);text-decoration:none;font-size:15px}
.mob-lang-list a.on{background:rgba(11,40,251,.07);color:var(--blue);font-weight:600}
.mob-lang-list a .ti-check{margin-right:auto}
.mob-lang-list .flag,.mob-lang-cur .flag{font-size:18px}
@media(max-width:768px){
  /* Hero: title (two rows), description and the two paths centred together; stats at the bottom,
     above the floating help button (14px + 42px + gap) */
  .hero{padding:84px 16px 76px;min-height:100svh;align-items:stretch}
  .hero-in{align-items:stretch!important}
  .hero-in>div:first-child{display:flex;flex-direction:column;min-height:calc(100svh - 160px)}
  .hero h1{margin-top:auto}
  .hero h1 em{display:block}
  .hero-sub{margin-bottom:24px!important}
  .hero-btns{margin-bottom:auto!important}
  .h-badge{display:none}
  .hero-btns{flex-direction:row!important;align-items:flex-end!important;gap:10px!important}
  .hero-btn-col{flex:1 1 0;min-width:0;width:auto}
  .hero-btn-lbl{font-size:9px;letter-spacing:.06em;white-space:normal;line-height:1.25;min-height:22px;display:flex;align-items:flex-end}
  .hero-btn-col .with-tt{width:100%}
  .hero-btn-col .with-tt{display:block}
  .hero-btn-col .btn-p,.hero-btn-col .btn-g{width:100%;height:46px;box-sizing:border-box;padding:0 8px;font-size:13.5px;gap:6px;justify-content:center}
  .h-stats{flex-wrap:nowrap!important;gap:8px!important;justify-content:space-between;margin-top:32px;padding-top:16px;border-top:1px solid rgba(255,255,255,.1)}
  .h-stats>div{flex:1 1 0;min-width:0}
  .hst-n{font-size:17px!important}
  .hst-l{font-size:8px!important;letter-spacing:.04em;line-height:1.25}
  /* BIPEA: edge-to-edge band */
  .bipea-sec{padding:0}
  .bipea-sec .cont{padding:0;max-width:none;width:100%}
  .bipea-band{border-radius:0;border-right:0;border-left:0;padding:40px 20px}
  /* Footer: centred, two tidy columns */
  footer:not(.ctl-min-footer){text-align:center;padding:48px 20px 0}
  footer:not(.ctl-min-footer) .fg{display:grid!important;grid-template-columns:1fr 1fr!important;gap:30px 20px!important;margin-bottom:28px}
  footer:not(.ctl-min-footer) .fg>div:first-child{grid-column:1/-1;display:flex;flex-direction:column;align-items:center;flex:none!important;max-width:none!important;margin:0 0 6px!important}
  footer:not(.ctl-min-footer) .fg>div:not(:first-child){margin:0!important;min-width:0!important}
  footer:not(.ctl-min-footer) .fd{margin-right:auto;margin-left:auto;max-width:320px}
  footer:not(.ctl-min-footer) .fs{justify-content:center;margin:20px 0 14px}
  footer:not(.ctl-min-footer) .fc h4{text-align:center}
  footer:not(.ctl-min-footer) .fl{align-items:center;text-align:center;gap:10px}
  footer:not(.ctl-min-footer) .footer-pay,footer:not(.ctl-min-footer) .fbt-legal{justify-content:center}
  footer:not(.ctl-min-footer) .footer-tp-strip,footer:not(.ctl-min-footer) .fbt{align-items:center;justify-content:center;text-align:center}
  footer:not(.ctl-min-footer) .ftr-lang-menu{right:50%;left:auto;transform:translateX(50%)}
  /* How-it-works bubble mirrors the cart bubble */
  .hiw-tab{right:14px;bottom:14px;width:42px;height:42px;border-radius:50%;box-shadow:0 6px 18px rgba(11,40,251,.35)}
  .hiw-tab i{font-size:19px}
  .hiw-tab:hover{padding:0}
  /* CTA bars: more room above and below */
  .cta-bar{padding:34px 20px}
  .pre-ftr{padding:48px 20px}
}

/* Tablet: the footer columns wrap instead of pushing the page wider */
@media(min-width:769px) and (max-width:1100px){
  .fg{flex-wrap:wrap!important;gap:32px 24px!important}
  .fg>div:first-child{flex:0 0 100%!important;max-width:100%!important;margin-left:0!important}
  .fg>div:not(:first-child){margin-right:0!important;flex:1 1 140px;min-width:140px!important}
}
/* Decorative glows / animated cards may poke past the edge: never let that widen the page */
.cpsrsds-sec{overflow-x:clip}

/* Help Center article + legal pages: full page width, content on the left, sidebar on the right (like the blog) */
.hc-article{max-width:none;margin:0}
.hc-art-cols,.legal-cols{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:56px;align-items:start}
.hc-prose{max-width:900px}
.hc-side{position:sticky;top:108px;align-self:start}
.hc-side .hc-rel{margin:0;padding:20px;border:1px solid var(--border);border-radius:var(--rl);background:#fff;box-shadow:0 18px 44px -30px rgba(11,40,251,.35)}
.legal-wrap.legal-wide{max-width:none;margin:0;padding:60px 40px}
.legal-wide .legal-cols{max-width:var(--wrap);margin:0 auto}
.legal-wide .legal-body{max-width:900px}
.legal-side{position:sticky;top:108px;align-self:start}
.legal-side-in{border:1px solid var(--border);border-radius:var(--rl);background:#fff;padding:20px;box-shadow:0 18px 44px -30px rgba(11,40,251,.35)}
.legal-side-hd{display:flex;align-items:center;gap:8px;font-family:var(--fh);font-size:17px;font-weight:700;color:var(--dark);margin-bottom:10px}
.legal-side-hd i{color:var(--blue)}
.legal-side-it{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 10px;border-radius:10px;font-size:14px;font-weight:600;color:var(--dark);text-decoration:none;transition:background .15s}
.legal-side-it:hover{background:var(--light)}
.legal-side-it.on{background:rgba(11,40,251,.07);color:var(--blue)}
.legal-side-it i{color:var(--muted);font-size:14px}
@media(max-width:980px){
  .hc-art-cols,.legal-cols{grid-template-columns:1fr;gap:28px}
  .hc-side,.legal-side{position:static}
  .legal-wrap.legal-wide{padding:40px 16px}
}

/* Contact form under a Help Center article: the subject is fixed */
#cf-ctx-v.ctl-locked-field{background:var(--light);color:var(--muted);cursor:not-allowed;pointer-events:none;user-select:none}

/* ═══ Mobile polish v3 (loop 1): gutters, readable sizes, tap targets, tooltips ═══ */
@media(max-width:1100px){
  .hc-hero,.hc-body,.hc-contact,.tf-hero,.tf-body{padding-right:max(16px,calc((100vw - var(--wrap)) / 2 + 40px));padding-left:max(16px,calc((100vw - var(--wrap)) / 2 + 40px))}
}
@media(max-width:768px){
  .btn-tt{display:none}
  .ctl-tip::after{position:fixed;right:16px;left:16px;bottom:20px;top:auto;width:auto;max-width:none;transform:none;font-size:13px;padding:12px 14px;border-radius:12px;z-index:700}
  .ctl-tip:hover::after,.ctl-tip:focus::after{transform:none}
  .hc-hero,.hc-body,.hc-contact,.tf-hero,.tf-body{padding-right:16px;padding-left:16px}
  /* nothing smaller than ~11px */
  .slbl,.ph-badge,.blog-card-cat,.reg-st,.reg-rg,.rv-verified,.cnote-l,.hc-crumb,.bipea-seal-sub,.rel-save,.ra,.pt,.fbadge,.tc-hdr-tag,.pn,.bndl-badge{font-size:11.5px!important}
  .pm{font-size:10.5px}
  .hero-btn-lbl{font-size:10px}
  .hst-l{font-size:9.5px!important}
  /* comfortable tap targets */
  .sb{width:40px;height:40px}
  .fl a{display:inline-block;padding:7px 0}
  .fbt-legal{gap:4px 6px}
  .fbt-legal a{padding:9px 6px}
  .footer-tp-link{padding:9px 0}
  .blog-cat-chip,.ph-badge{min-height:34px;display:inline-flex;align-items:center}
  .hc-back{display:inline-flex;align-items:center;min-height:36px}
  .blog-sec-all,.team-li{display:inline-flex;align-items:center;min-height:36px}
  input[type=checkbox],input[type=radio]{width:18px;height:18px}
}

/* Tablet (≤1024): touch-friendly targets, pricing cards that fit */
.pgrid.c3{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:900px){.pgrid.c3{grid-template-columns:1fr}}
@media(max-width:1024px){
  .nl{min-height:38px;display:inline-flex;align-items:center}
  .sb{width:40px;height:40px}
  .fl a{display:inline-block;padding:7px 0}
  .fbt-legal a{padding:9px 6px}
  .footer-tp-link{padding:9px 0}
  .blog-cat-chip,.ph-badge{min-height:34px;display:inline-flex;align-items:center}
  .hc-back,.blog-sec-all,.team-li{display:inline-flex;align-items:center;min-height:36px}
}

/* Loop 1: dashboard header + checkout bar fit small screens */
@media(max-width:560px){
  .ctl-dash-nav .nav-dash-title,.ctl-dash-nav .profile-name{display:none}
  .ctl-dash-nav .profile-btn.has-name{padding:0;width:36px;justify-content:center;gap:0}
}
@media(max-width:768px){
  .co-logged-acts{box-sizing:border-box;width:100%;flex-wrap:wrap;white-space:normal}
  .step-num{font-size:11px!important}
}

/* Loop 2: the header already has a cart on the dashboard — no second floating one */
@media(max-width:1024px){body.woocommerce-account .cart-fab{display:none!important}}

/* Loop 2: section headings with an icon keep their words together; doc cards' price row wraps */
.stit:has(> .sec-icon){display:block!important}
.stit > .sec-icon{display:inline-flex;vertical-align:middle;margin-left:12px}
@media(max-width:560px){
  .doc-ft{flex-wrap:wrap;gap:12px}
  .doc-ft .btn-ord{flex:1 1 100%;text-align:center;padding:12px 15px;font-size:13.5px}
}

@media(max-width:1100px){.cpsr-oneline{white-space:normal!important}}

/* Loop 2: phones — one header on top, the dashboard menu becomes a bottom tab bar */
@media(max-width:768px){
  .dash-layout .dash-side{position:fixed;right:0;left:0;bottom:0;top:auto;z-index:450;height:auto;
    padding:6px 8px calc(6px + env(safe-area-inset-bottom));background:var(--dark);border-top:1px solid rgba(255,255,255,.1);box-shadow:0 -10px 30px rgba(6,8,26,.28)}
  .dash-layout .dash-side>.dn-item,.dash-layout .dash-side .dn-group .dn-parent{padding:9px 0}
  .dash-layout .dash-side .dash-new-test-btn{flex:0 0 42px;width:42px;height:42px}
  .dash-main{padding-bottom:calc(84px + env(safe-area-inset-bottom))}
}

/* Loop 3: My orders on phones — header in two rows, each test as icon | name + price, timeline underneath */
@media(max-width:640px){
  .oc-top{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px}
  .oc-id{order:1;flex:1 1 0;min-width:0}
  .oc-total{order:2;font-size:15px;white-space:nowrap}
  .oc-chev{order:3}
  .oc-stat{order:4;flex:1 1 100%;flex-direction:row;align-items:center;gap:8px}
  .oc-mix{order:5;flex:1 1 100%;margin-right:0;white-space:normal}
  .oc-id-d{display:flex;flex-wrap:wrap;align-items:center;gap:2px 6px}
  .oc-test{grid-template-columns:34px minmax(0,1fr) auto;grid-template-areas:"ic info r" "tl tl tl";gap:10px 12px;align-items:start}
  .oc-test-ic{grid-area:ic}
  .oc-test-info{grid-area:info;min-width:0}
  .oc-test-tl{grid-area:tl;margin-top:2px}
  .oc-test-tl .ord-tl-comp{max-width:none;min-width:0;width:100%}
  .oc-test-r{grid-area:r;flex-direction:column;align-items:flex-end;gap:4px}
  .oc-test-r .oc-stat{display:none}
  .oc-test .oc-test-pr{min-width:0}
}

/* Loop 3: order popup rows on phones — name gets the room, status pill sits under it */
@media(max-width:640px){
  .ord-item{display:grid!important;grid-template-columns:36px minmax(0,1fr) auto auto;grid-template-areas:"ic nm pr chev" ". st st st";gap:6px 10px;align-items:start}
  .ord-item-ic{grid-area:ic}
  .ord-item>div:not(.ord-item-ic){grid-area:nm}
  .ord-item-pr{grid-area:pr;white-space:nowrap}
  .ord-item-chev{grid-area:chev;align-self:center}
  .ord-item-st{grid-area:st;justify-self:start;margin-right:0!important}
  .ord-comp{padding:14px}
}

/* Loop 4: sign-in card without a box inside the box; blog headings tighter on phones */
@media(max-width:640px){
  .woocommerce form.woocommerce-form-login,.woocommerce-form-login{border:0!important;padding:0!important;margin:0!important;box-shadow:none!important;background:transparent!important}
  .blog-main h2{line-height:1.25!important}
  .blog-main p,.blog-main li{line-height:1.75}
}

/* Loop 4: timeline tooltips on phones show as a bar above the tab bar (no page widening) */
@media(max-width:768px){
  .ord-tl-step[data-tip]::after,.ord-tl-step:first-child[data-tip]::after,.ord-tl-step:last-child[data-tip]::after{position:fixed;right:16px;left:16px;bottom:84px;top:auto;width:auto;max-width:none;transform:none;font-size:13px;padding:12px 14px;border-radius:12px;z-index:700;white-space:normal}
  .ord-tl-step[data-tip]:hover::after,.ord-tl-step:first-child[data-tip]:hover::after,.ord-tl-step:last-child[data-tip]:hover::after{transform:none}
}

/* Loop 5: My Products cards fit phones */
.dash-layout>*,.dash-main,.dash-sec,.prod-card{min-width:0}
@media(max-width:640px){
  .prod-card{padding:16px}
  .prod-card-hd{flex-wrap:wrap;gap:8px 12px}
  .prod-card-hd>div:not([class*=ic]){min-width:0}
}

@media(max-width:640px){
  .prod-card-hd>div[style*="flex:1"]{flex:1 1 120px!important}
  .prod-card-hd .cl-actions{margin-right:auto}
  .prod-name{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}
}

/* Languages that are not translated yet: visible but disabled */
.ftr-lang-menu li.soon span,.mob-lang-list .soon{display:flex;align-items:center;gap:9px;padding:8px 10px;font-size:13px;color:rgba(255,255,255,.35);cursor:not-allowed}
.mob-lang-list .soon{color:var(--muted);font-size:15px;padding:10px 12px}
.ftr-lang-menu li.soon em,.mob-lang-list .soon em{font-style:normal;font-size:11px;font-weight:600;letter-spacing:.02em;margin-right:auto;padding:2px 7px;border-radius:100px;background:rgba(255,255,255,.08)}
.mob-lang-list .soon em{background:var(--light)}
.ftr-lang-menu li.soon .flag,.mob-lang-list .soon .flag{opacity:.5}
.ftr-lang-menu{min-width:230px}
.ftr-lang-menu li.soon span{white-space:nowrap}
.ftr-lang-menu li.soon em,.mob-lang-list .soon em{white-space:nowrap}
.ftr-lang-menu{max-height:min(60vh,430px);overflow-y:auto}

/* How it works: step N on the left starts at the same height as step N on the right (rows are shared) */
@media(min-width:641px){
  .hiw-paths{grid-template-rows:auto repeat(3,auto) auto;column-gap:16px;row-gap:0}
  .hiw-path{display:grid;grid-row:span 5;grid-template-rows:subgrid}
  .hiw-mini{display:contents}
  .hiw-mini-step{padding:7px 18px;align-items:flex-start;font-size:13px}
  .hiw-mini-step:first-child{padding-top:18px}
  .hiw-mini-step:last-child{padding-bottom:14px}
  .hiw-path-cta{align-self:end}
}

/* Footer bottom bar: legal links + (checkout) language picker on the right */
.fbt-right{display:flex;align-items:center;gap:18px;flex-wrap:wrap;justify-content:flex-end}
@media(max-width:768px){footer:not(.ctl-min-footer) .fbt-right{justify-content:center}.ctl-min-footer .fbt-right{justify-content:flex-start}}

.ca-perk,.hero .ca-perk{display:inline-flex!important;margin:2px auto 4px;font-size:11.5px;text-align:center;line-height:1.35}
.ca-dot{width:6px;height:6px;border-radius:50%;background:var(--green);flex-shrink:0}

/* Checkout payment: Stripe picker is the UI; drop Woo's grey box, arrow and the redundant single-method radio */
.ctl-payment-wrap #payment ul.payment_methods>li.payment_method_stripe:only-child>input.input-radio,
.ctl-payment-wrap #payment ul.payment_methods>li.payment_method_stripe:only-child>label{display:none}
.ctl-payment-wrap #payment ul.payment_methods>li{padding:0 0 10px;border:0}
.ctl-payment-wrap #payment div.payment_box{background:transparent!important;border:0!important;padding:0!important;margin:10px 0 0!important;color:var(--ink,inherit)}
.ctl-payment-wrap #payment div.payment_box::before,.ctl-payment-wrap #payment div.payment_box::after{display:none!important}
.ctl-payment-wrap #payment ul.payment_methods>li:not(:only-child) div.payment_box{background:#fff!important;border:1px solid var(--border)!important;border-radius:9px;padding:12px 14px!important}
.ctl-payment-wrap #payment ul.payment_methods>li:not(:only-child)>label{font-weight:600;font-size:14px}
.ctl-payment-wrap .wc-stripe-payment-method-instruction{background:var(--light);border:1px dashed var(--border);border-radius:8px;padding:8px 12px;font-size:12px;color:var(--muted);margin:0 0 12px}
.ctl-payment-wrap .wc-stripe-copy-test-number{border:0;background:none;padding:0;font:inherit;font-weight:600;color:var(--blue,#0033ff);cursor:pointer}
.ctl-payment-wrap .wc-stripe-copy-test-number i{display:none}
.ctl-payment-wrap fieldset.wc-upe-form{border:0;margin:0;padding:0;background:transparent}
.ctl-payment-wrap #payment fieldset{border:0!important;margin:0;padding:0;background:transparent;min-width:0}
.ctl-payment-wrap #payment .woocommerce-SavedPaymentMethods-saveNew{margin:10px 0 0;padding:0;border:0;background:none}

/* PDF popup (invoice, credit note, DHL label) — ctl-invoices assets/pdf-view.js */
.pdfv-bx{max-width:860px;height:92vh;display:flex;flex-direction:column;padding:0;overflow:hidden}
.pdfv-hd{display:flex;align-items:center;gap:12px;padding:18px 24px 18px 70px;border-bottom:1px solid var(--border)}
.pdfv-hd .pop-cl{top:13px}
.pdfv-t{display:flex;align-items:center;gap:9px;font-family:var(--fh);font-size:16px;font-weight:700;min-width:0}
.pdfv-t i{font-size:20px;color:var(--blue);flex-shrink:0}
.pdfv-t span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pdfv-fr{flex:1 1 auto;width:100%;border:0;background:var(--light);min-height:0}
.pdfv-ft{display:flex;flex-wrap:wrap;gap:10px;padding:16px 24px;border-top:1px solid var(--border)}
.pdfv-dl{display:inline-flex;align-items:center;gap:7px;background:var(--blue);color:#fff;border-radius:10px;padding:11px 18px;font-size:13.5px;font-weight:600;text-decoration:none}
.pdfv-dl:hover,.pdfv-dl:visited{color:#fff}
.pdfv-dl:hover{filter:brightness(1.1)}
.pdfv-dl-2{background:#fff;color:var(--blue);border:1.5px solid rgba(11,40,251,.25)}
.pdfv-dl-2:hover,.pdfv-dl-2:visited{color:var(--blue);background:var(--light);filter:none}
@media (max-width:600px){.pdfv-bx{height:94vh;border-radius:14px}.pdfv-hd{padding:14px 16px 14px 60px}.pdfv-ft{padding:12px 16px}.pdfv-dl{flex:1 1 auto;justify-content:center}}

/* Order popup: DHL label card while the samples wait for pickup (ctl-dhl customer.php) */
.ord-label{margin:16px 0;padding:18px 20px;border-radius:16px;background:linear-gradient(-135deg,rgba(11,40,251,.07),rgba(52,202,141,.09));border:2px solid var(--blue)}
.ord-label-hd{display:flex;gap:14px;align-items:flex-start}
.ord-label-ic{flex-shrink:0;width:44px;height:44px;border-radius:12px;background:var(--blue);color:#fff;display:flex;align-items:center;justify-content:center;font-size:24px}
.ord-label-t{font-family:var(--fh);font-size:18px;font-weight:700;line-height:1.25}
.ord-label-steps{margin:14px 0 0;padding:0;list-style:none;counter-reset:ols;display:grid;gap:8px}
.ord-label-steps li{counter-increment:ols;position:relative;padding-right:32px;font-size:13.5px;line-height:1.5}
.ord-label-steps li::before{content:counter(ols);position:absolute;right:0;top:0;width:22px;height:22px;border-radius:50%;background:var(--blue);color:#fff;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center}
.ord-label-when{display:flex;align-items:center;gap:7px;margin:12px 0 0;font-size:13.5px;font-weight:600}
.ord-label-when i{color:var(--blue);font-size:17px}
.ord-label-btns{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.ord-label-main{display:inline-flex;align-items:center;gap:8px;background:var(--blue);color:#fff;border:0;border-radius:10px;padding:12px 20px;font-family:var(--f);font-size:14.5px;font-weight:700;cursor:pointer}
.ord-label-main:hover{filter:brightness(1.1)}
.ord-label-main i{font-size:18px}
.ord-label-dl,.ord-label-dl:visited{display:inline-flex;align-items:center;gap:7px;padding:12px 16px;border-radius:10px;border:1.5px solid rgba(11,40,251,.25);background:#fff;color:var(--blue);font-size:13.5px;font-weight:600;text-decoration:none}
.ord-label-dl:hover{background:var(--light)}
.pdfv-ov{z-index:1200}
@media (max-width:600px){.ord-label-btns>*{flex:1 1 100%;justify-content:center}}

/* Site search: header button + popup */
.srch-btn{width:40px;height:40px;border-radius:10px;border:1px solid var(--border);background:#fff;color:var(--dark);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:19px;box-sizing:border-box;transition:background .15s,border-color .15s}
.srch-btn:hover{background:var(--light);border-color:var(--blue);color:var(--blue)}
.nav-tp:not(.nav-solid) .srch-btn{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.35);color:#fff}
.nav-tp:not(.nav-solid) .srch-btn:hover{background:rgba(255,255,255,.22)}
.nav-dark .srch-btn{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.22);color:#fff}
.nav-dark .srch-btn:hover{background:rgba(255,255,255,.16)}
.srch-ov{position:fixed;inset:0;z-index:1200;background:rgba(6,8,26,.55);backdrop-filter:blur(3px);display:none;align-items:flex-start;justify-content:center;padding:10vh 16px 16px}
.srch-ov.open{display:flex}
html.srch-lock{overflow:hidden}
.srch-box{width:100%;max-width:680px;background:#fff;border-radius:var(--rl);box-shadow:0 24px 60px rgba(6,8,26,.25);overflow:hidden;display:flex;flex-direction:column;max-height:78vh}
.srch-f{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--border)}
.srch-f>i{font-size:20px;color:var(--blue)}
.srch-f input{flex:1;border:0;outline:0;font:500 17px var(--f);color:var(--dark);background:none;min-width:0}
.srch-f input::-webkit-search-cancel-button{display:none}
.srch-ov .srch-cl{position:static;flex:0 0 34px;box-shadow:none;border:0;background:var(--light);width:34px;height:34px;border-radius:9px;cursor:pointer;color:var(--mid);font-size:17px;display:flex;align-items:center;justify-content:center}
.srch-ov .srch-cl:hover{color:var(--blue)}
.srch-res{overflow-y:auto;padding:6px 8px 10px}
.srch-res.loading{opacity:.55}
.srch-res:empty{display:none}
.srch-g{padding:8px 0 4px}
.srch-gl{font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:4px 10px 6px}
.srch-i{display:block;padding:9px 10px;border-radius:10px;text-decoration:none;outline:0}
.srch-i:hover,.srch-i:focus{background:var(--light)}
.srch-t{display:block;font-weight:600;font-size:14.5px;color:var(--dark);line-height:1.35}
.srch-i:hover .srch-t,.srch-i:focus .srch-t{color:var(--blue)}
.srch-s{display:block;font-size:13px;color:var(--muted);line-height:1.45;margin-top:2px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.srch-none{padding:14px 10px;margin:0;color:var(--muted);font-size:14.5px}
.srch-all{display:flex;align-items:center;justify-content:center;gap:6px;margin:6px 2px 0;padding:11px;border-radius:10px;background:var(--light);color:var(--blue);font-weight:700;font-size:14px;text-decoration:none}
.srch-all:hover{background:#e6ebff}
@media(max-width:680px){.srch-ov{padding:12px}.srch-box{max-height:88vh}.srch-btn{width:38px;height:38px}}
/* Search results page */
.srch-page-f{display:flex;gap:10px;max-width:640px;margin:0 0 28px}
.srch-page-f input{flex:1;min-width:0;height:48px;border:1px solid var(--border);border-radius:var(--r);padding:0 16px;font:500 16px var(--f);color:var(--dark)}
.srch-page-f input:focus{outline:0;border-color:var(--blue)}
.srch-page-g{margin:0 0 30px}
.srch-page-g h2{font-family:var(--fh);font-size:18px;color:var(--dark);margin:0 0 10px}
.srch-page-g .srch-i{border:1px solid var(--border);margin:0 0 8px;background:#fff}

/* Mobile header: account button is an icon only; a profile photo fills the whole button */
@media(max-width:768px){
  .profile-btn.has-name{width:40px;padding:0;gap:0}
  .profile-btn.has-name .profile-name{display:none}
  .profile-btn:has(.profile-photo){padding:0;overflow:hidden;border:0}
  .profile-btn .profile-photo{width:100%;height:100%;border-radius:0}
}

/* Footer top band: logo with the rotating globe inside its diamond (left), search (right).
   Globe position = the diamond's centre in the logo SVG (236/982, 236/472). */
.ftr-top{display:flex;align-items:center;justify-content:space-between;gap:48px;padding:8px 0 36px}
.ftr-brand{display:block;flex-shrink:0;text-decoration:none}
.ftr-brand-logo{position:relative;display:block;width:400px;aspect-ratio:982/472}
.ftr-brand-logo img{display:block;width:100%;height:100%}
.ftr-globe{position:absolute;left:22.6%;top:50%;width:29.4%;aspect-ratio:1;transform:translate(-50%,-50%);opacity:0;transition:opacity .8s;pointer-events:none}
.ftr-globe.ready{opacity:1}
.ftr-brand-tag{display:block;padding-left:34.5%;margin-top:-16px;font-size:13px;font-weight:500;letter-spacing:.01em;color:rgba(255,255,255,.6);white-space:nowrap}
.ftr-srch{flex:0 1 640px;text-align:right;box-sizing:border-box}
.ftr-srch[style*=width]{flex:none}
.ftr-srch h3{margin:0 0 14px;color:#fff;font-size:22px;font-weight:600;letter-spacing:-.01em}
.ftr-srch-bar{display:flex;align-items:center;gap:12px;width:100%;height:54px;padding:0 18px;border:1px solid rgba(255,255,255,.18);border-radius:12px;background:rgba(255,255,255,.06);color:rgba(255,255,255,.6);font:400 15px var(--f);cursor:text;text-align:right;transition:border-color .15s,background .15s}
.ftr-srch-bar .ti{font-size:20px;color:rgba(255,255,255,.8)}
.ftr-srch-bar input{flex:1;min-width:0;height:100%;border:0;background:none;outline:none;color:#fff;font:inherit;-webkit-appearance:none;appearance:none}
.ftr-srch-bar input::placeholder{color:rgba(255,255,255,.55)}
.ftr-srch-bar input::-webkit-search-cancel-button{display:none}
.ftr-srch-bar:hover,.ftr-srch-bar:focus-within{border-color:var(--green);background:rgba(255,255,255,.1)}
@media(max-width:900px){
  .ftr-top{flex-direction:column;align-items:stretch;gap:24px;padding-bottom:28px}
  .ftr-brand{align-self:center}
  .ftr-brand-logo{width:min(340px,86vw)}
  .ftr-brand-tag{font-size:11px}
  .ftr-srch{flex:none}
  .ftr-srch h3{font-size:19px;text-align:center}
}

/* Search popup motion: overlay fades, box drops in, results fade up group by group */
@keyframes ctlSrchFade{from{opacity:0}to{opacity:1}}
@keyframes ctlSrchDrop{from{opacity:0;transform:translateY(-10px) scale(.98)}to{opacity:1;transform:none}}
@keyframes ctlSrchUp{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.srch-ov.open{animation:ctlSrchFade .16s ease-out}
.srch-ov.open .srch-box{animation:ctlSrchDrop .22s cubic-bezier(.2,.8,.2,1)}
.srch-res{transition:opacity .15s}
.srch-res>*{animation:ctlSrchUp .22s ease-out both}
.srch-res>*:nth-child(2){animation-delay:.04s}
.srch-res>*:nth-child(3){animation-delay:.08s}
.srch-res>*:nth-child(n+4){animation-delay:.12s}
@media(prefers-reduced-motion:reduce){.srch-ov.open,.srch-ov.open .srch-box,.srch-res>*{animation:none}}

/* Footer colour line: the light first runs round the logo's diamond (SVG in footer.php), then left → right
   along the line, then the line beats twice; one 7 s loop for both */
.ftr-brand-run{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;mix-blend-mode:screen}
.ftr-brand-run path{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:150 2000;stroke-dashoffset:150}
.ftr-run-glow{stroke:#8fa4ff;stroke-width:70;opacity:.75}
.ftr-run-core{stroke:#fff;stroke-width:26;opacity:.9}
.fb{position:relative;--fb-split:60%;background:linear-gradient(-90deg,var(--blue) 0,var(--blue) calc(var(--fb-split) - 15%),var(--green) calc(var(--fb-split) + 15%),var(--green) 100%)}
.fb>div{background:none!important}   /* the two halves only hold the layout; the blended gradient is on .fb */
.fb::after{content:"";position:absolute;top:0;bottom:0;right:0;width:28%;background:linear-gradient(-90deg,rgba(255,255,255,0),rgba(255,255,255,.85),rgba(255,255,255,0));transform:translateX(100%)}
/* All of the light's motion (logo → left line → colour line → right line → beat) is one timeline in footer-flow.js */
footer:not(.ctl-min-footer){position:relative;overflow:hidden}
footer:not(.ctl-min-footer)>.fi{position:relative;z-index:1}
.ftr-deco{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0;overflow:visible}
.ftr-deco path{fill:none;stroke-linejoin:miter;stroke-miterlimit:4;stroke-linecap:butt}
.ftr-deco .ftr-deco-beam{opacity:0}
.ftr-deco .ftr-deco-run{display:none}   /* replaced by the beam */
.ftr-deco .ftr-deco-run{stroke:#fff;stroke-linecap:round;stroke-linejoin:round;opacity:.55;stroke-dasharray:0 2000}   /* soft wave, masked to the band */
/* Even rhythm: footer top → logo = logo/search → line = line → columns (36 px desktop, 28 px mobile; .ftr-top adds 8 px on top) */
footer:not(.ctl-min-footer){padding-top:28px}
footer:not(.ctl-min-footer) .fb{margin-bottom:36px}
@media(max-width:900px){footer:not(.ctl-min-footer){padding-top:20px}footer:not(.ctl-min-footer) .fb{margin-bottom:28px}}
.ftr-flow-on .fb{background:none!important}   /* the SVG path draws the line (seamless with its legs) */
.ftr-flow-on .fb::after{display:none}
@media(prefers-reduced-motion:reduce){.fb::after,.ftr-brand-run,.ftr-deco-run{display:none}}

/* Why Choose Us — comparison table (page-why-choose-us.php): aspect | traditional | CTL (highlighted column) */
.cmp{margin-top:40px;display:flex;flex-direction:column}
.cmp-row{display:grid;grid-template-columns:200px minmax(0,1fr) minmax(0,1fr);border-bottom:1px solid var(--border)}
.cmp-row:last-child{border-bottom:none}
.cmp-row>div{padding:22px 26px;display:flex;gap:12px;align-items:center;font-size:16px;line-height:1.45}
.cmp-k{font-family:var(--fh);font-weight:700;font-size:15px!important;color:var(--dark)}
.cmp-k .ti{font-size:20px;color:var(--blue)}
.cmp-old{color:var(--muted)}
.cmp-old .ti{color:#c0392b;font-size:20px;flex-shrink:0}
.cmp-new{background:#fff;color:var(--dark);font-weight:500;border-right:1.5px solid var(--blue);border-left:1.5px solid var(--blue)}
.cmp-new .ti{color:var(--green);font-size:22px;flex-shrink:0}
.cmp-hd>div{font-family:var(--fh);font-size:20px;font-weight:700;padding-top:26px;padding-bottom:26px}
.cmp-hd .cmp-old{color:var(--dark)}
.cmp-hd .cmp-old .ti{color:var(--muted);font-size:24px}
.cmp-hd .cmp-new{background:var(--blue);color:#fff;border-radius:var(--rl) var(--rl) 0 0;border-color:var(--blue)}
.cmp-hd .cmp-new .ti{color:#fff;font-size:24px}
.cmp-row:last-child .cmp-new{border-bottom:1.5px solid var(--blue);border-radius:0 0 var(--rl) var(--rl);box-shadow:0 30px 50px -30px rgba(11,40,251,.35)}
@media(max-width:900px){
  .cmp-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .cmp-k{grid-column:1/-1;padding:18px 4px 8px!important}
  .cmp-hd .cmp-k{display:none}
  .cmp-row>div{padding:14px 14px;font-size:14px;align-items:flex-start}
  .cmp-hd>div{font-size:15px;padding:16px 14px;align-items:center}
  .cmp-row{border-bottom:none}
  .cmp-row .cmp-old{border-bottom:1px solid var(--border)}
}

/* Why Choose Us — key numbers under the page title */
.wcu-stats{display:flex;justify-content:center;gap:0;margin-top:34px;flex-wrap:wrap}
.wcu-stats>*{padding:4px 30px;text-align:center;text-decoration:none;border-right:1px solid var(--border)}
.wcu-stats>*:first-child{border-right:none}
.wcu-n{display:block;font-family:var(--fh);font-size:30px;font-weight:700;color:var(--blue);line-height:1.1}
.wcu-g{color:#00b67a}
.wcu-l{display:block;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.07em;margin-top:5px}
@media(max-width:600px){.wcu-stats{display:grid;grid-template-columns:1fr 1fr;row-gap:20px}.wcu-stats>*{padding:4px 8px;border-right:none}.wcu-n{font-size:24px}}

/* Why Choose Us — who it's for */
.who-g{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:36px}
.who-c{background:#fff;border:1px solid var(--border);border-radius:var(--rl);padding:28px 26px;display:flex;flex-direction:column;transition:border-color .2s,box-shadow .2s}
.who-c:hover{border-color:var(--blue);box-shadow:0 18px 50px -26px rgba(11,40,251,.35)}
.who-i{width:46px;height:46px;border-radius:12px;background:rgba(11,40,251,.08);color:var(--blue);display:flex;align-items:center;justify-content:center;font-size:23px;margin-bottom:16px}
.who-c h3{font-family:var(--fh);font-size:19px;font-weight:700;color:var(--dark);margin-bottom:8px}
.who-c p{font-size:14.5px;color:var(--muted);line-height:1.55;margin-bottom:18px}
.who-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto}
.who-tags a{font-size:12px;font-weight:600;color:var(--blue);background:rgba(11,40,251,.06);border-radius:99px;padding:5px 11px;text-decoration:none}
.who-tags a:hover{background:var(--blue);color:#fff}
@media(max-width:900px){.who-g{grid-template-columns:1fr}}

/* Why Choose Us — dashboard preview (HTML mock) */
.dash-sec{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:64px;align-items:center}
.dash-pts{list-style:none;display:flex;flex-direction:column;gap:14px;margin:26px 0 30px}
.dash-pts li{display:flex;gap:12px;align-items:center;font-size:15.5px;color:var(--dark)}
.dash-pts .ti{width:34px;height:34px;border-radius:10px;background:rgba(47,222,145,.14);color:#0e9f63;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}
.dash-mock{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 40px 80px -40px rgba(11,40,251,.45),0 0 0 1px var(--border)}
.dm-bar{display:flex;align-items:center;gap:6px;padding:11px 14px;background:#06081a;border-bottom:1px solid rgba(255,255,255,.06)}
.dm-bar span{width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.16)}
.dm-bar em{font-style:normal;font-size:11px;color:rgba(255,255,255,.38);margin-right:12px;background:rgba(255,255,255,.05);border-radius:6px;padding:3px 12px}
.dm-body{display:grid;grid-template-columns:170px minmax(0,1fr);min-height:330px}
.dm-nav{background:#06081a;padding:18px 12px;display:flex;flex-direction:column;gap:4px}
.dm-nav img{width:28px;height:28px;margin:0 8px 14px 0}
.dm-nav div{display:flex;gap:9px;align-items:center;font-size:12.5px;color:rgba(255,255,255,.5);padding:8px 10px;border-radius:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dm-nav div.on{background:rgba(11,40,251,.35);color:#fff}
.dm-nav div.dm-new{background:var(--blue);color:#fff;font-weight:600;margin-bottom:10px}
.dm-nav .ti{font-size:16px}
.dm-main{padding:22px;display:flex;flex-direction:column;gap:14px;min-width:0;background:#f6f7fb}
.dm-hi{font-family:var(--fh);font-size:18px;font-weight:700;color:var(--dark)}
.dm-card{background:#fff;border:1px solid var(--border);border-radius:12px;padding:16px}
.dm-ord{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--muted);margin-bottom:16px;flex-wrap:wrap}
.dm-ord strong{color:var(--dark)}
.dm-ord b{margin-right:auto;font-size:11px;font-weight:600;color:#0e9f63;background:rgba(47,222,145,.14);border-radius:99px;padding:3px 10px}
.dm-steps{display:flex;align-items:center}
.dm-steps>div:not(.ln){width:34px;height:34px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:16px;color:#a3a9bf;border:1.5px solid #dfe2ec;background:#fff}
.dm-steps>div.ok{background:#2fde91;border-color:#2fde91;color:#fff}
.dm-steps>div.cur{border-color:#2fde91;color:#0e9f63;animation:dmPulse 2s ease-in-out infinite}
.dm-steps .ln{flex:1;height:2px;background:#e4e7f0;position:relative;overflow:hidden}
.dm-steps .ln.ok{background:#2fde91}
.dm-steps .ln.run::after{content:'';position:absolute;inset:0;background:#2fde91;transform-origin:right;animation:dmRun 2.4s ease-out infinite}
@keyframes dmPulse{0%,100%{box-shadow:0 0 0 0 rgba(47,222,145,.45)}50%{box-shadow:0 0 0 7px rgba(47,222,145,0)}}
@keyframes dmRun{0%{transform:scaleX(0)}70%,100%{transform:scaleX(1)}}
.dm-docs{display:flex;flex-direction:column;gap:2px;padding:8px 16px}
.dm-docs div{display:flex;align-items:center;gap:10px;font-size:12.5px;color:var(--dark);padding:8px 0;border-bottom:1px solid var(--border)}
.dm-docs div:last-child{border-bottom:none;color:var(--muted)}
.dm-docs span{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dm-docs .ti:first-child{color:var(--blue);font-size:17px}
.dm-docs .ti:last-child{color:#0e9f63;font-size:16px}
.dm-docs div:last-child .ti:last-child{color:#a3a9bf}
@media(prefers-reduced-motion:reduce){.dm-steps>div.cur,.dm-steps .ln.run::after{animation:none}}
@media(max-width:900px){.dash-sec{grid-template-columns:1fr;gap:36px}.dm-body{grid-template-columns:minmax(0,1fr)}.dm-nav{display:none}.dm-main{padding:16px}}

/* Homepage — client logos (template-parts/clients.php) */
.clients-sec{text-align:center;overflow:hidden}
.clients-sec .ssub{margin-right:auto;margin-left:auto}
.clients-mq{margin-top:44px;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.clients-track{display:flex;align-items:center;gap:72px;width:max-content;animation:clientsMq 40s linear infinite}
.clients-track img{height:var(--h,48px);width:auto;object-fit:contain;opacity:.55;transition:opacity .25s;flex-shrink:0}
.clients-track img:hover{opacity:1}
@keyframes clientsMq{to{transform:translateX(calc(-1*(-25% - 18px)))}}   /* one copy + one gap (4 copies) */
@media(max-width:768px){.clients-track{gap:44px;animation-duration:30s}.clients-track img{height:calc(var(--h,48px)*.72)}@keyframes clientsMq{to{transform:translateX(calc(-1*(-25% - 11px)))}}}
@media(prefers-reduced-motion:reduce){.clients-track{animation:none;flex-wrap:wrap;justify-content:center;width:auto;row-gap:28px}.clients-track img[aria-hidden]{display:none}}

/* Dashboard: the whole "Confirm your email" box opens the code popup (data-verify on the box) */
.co-verify-click{cursor:pointer;transition:border-color .2s,box-shadow .2s}
.co-verify-click:hover{box-shadow:0 8px 24px -14px rgba(11,40,251,.35)}
