/* ============================================================
   ADC Peptides — PHP TEMPLATE styles  (handle: adc-templates)
   ------------------------------------------------------------
   Component styles for the child theme's PHP templates
   (single-product, shop archive, blog index, single post) —
   see docs/TECH-ARCHITECTURE.md §2a. Ported verbatim from the
   client-approved mockups (mockups/{product,shop,blog,post}.html),
   re-namespaced with the `adc-` prefix and re-pointed at the
   `--adc-*` design tokens so nothing collides with Astra /
   WooCommerce markup. Depends on adc-tokens + adc-widgets
   (reuses .adc-wrap/.adc-section/.adc-btn/.adc-stars/.adc-eyebrow/
   .adc-prodcard/.adc-prodgrid/.adc-post/.adc-news/.adc-faq).

   ⚠️ Do NOT redesign — this must match the approved mockups.
   ============================================================ */

/* ---------- Astra container neutralisation ----------
   Astra renders .ast-container as flex (to place content + sidebar side by side).
   Our full-width PHP templates make it page-builder/no-sidebar, but the flex still
   shrinks each top-level .adc-wrap to its content. Force block so children fill the
   width. Scoped to our page-builder template bodies (WooCommerce + blog), so the
   Elementor homepage — also page-builder — is untouched. */
.ast-page-builder-template.woocommerce .ast-container,
.ast-page-builder-template.single-post .ast-container,
.ast-page-builder-template.blog .ast-container{display:block}

/* ---------- shared: breadcrumb ---------- */
.adc-crumb{padding:18px 0;font-size:.85rem;color:var(--adc-ink-soft);display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.adc-crumb a{color:inherit}
.adc-crumb a:hover{color:var(--adc-accent)}
.adc-crumb .sep{opacity:.4}
.adc-crumb .current{color:var(--adc-ink)}

/* ============================================================
   SINGLE PRODUCT
   ============================================================ */
.adc-pdp{display:grid;grid-template-columns:1fr 1fr;gap:48px;padding:8px 0 clamp(40px,5vw,64px);align-items:start}

/* gallery */
.adc-gallery{position:sticky;top:96px}
.adc-gstage{aspect-ratio:1;border:1px solid var(--adc-line);border-radius:20px;position:relative;overflow:hidden;display:grid;place-items:center;background:radial-gradient(120% 100% at 50% 5%,#fff,#E7F0FB 62%,#D9E7F7)}
.adc-gstage::after{content:"";position:absolute;bottom:14%;left:50%;transform:translateX(-50%);width:46%;height:16px;border-radius:50%;background:rgba(11,26,51,.16);filter:blur(10px)}
.adc-gstage [data-adc-gmain]{position:relative;z-index:1;width:100%;height:100%;display:grid;place-items:center}
.adc-gstage [data-adc-gmain] svg{width:52%;height:auto;filter:drop-shadow(0 18px 26px rgba(18,41,74,.2))}
.adc-gstage [data-adc-gmain] img{width:82%;height:82%;object-fit:contain}
.adc-gstage .adc-gbadge{position:absolute;z-index:2;top:18px;left:18px;background:#fff;border:1px solid var(--adc-line);border-radius:999px;font-size:.7rem;font-weight:700;padding:6px 12px;color:var(--adc-ink-soft);text-transform:uppercase;letter-spacing:.06em}
.adc-gstage .adc-zoomhint{position:absolute;z-index:2;bottom:18px;right:18px;background:rgba(255,255,255,.9);border:1px solid var(--adc-line);border-radius:999px;font-size:.72rem;font-weight:600;padding:6px 12px;color:var(--adc-ink-soft);display:flex;gap:6px;align-items:center}
.adc-thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:12px}
.adc-thumb{aspect-ratio:1;border:1.5px solid var(--adc-line);border-radius:12px;background:radial-gradient(120% 100% at 50% 5%,#fff,#E7F0FB 70%);display:grid;place-items:center;cursor:pointer;transition:.16s;padding:0;overflow:hidden}
.adc-thumb:hover{border-color:var(--adc-navy-500)}
.adc-thumb.is-active{border-color:var(--adc-navy-800);box-shadow:0 0 0 3px rgba(18,41,74,.1)}
.adc-thumb svg{width:46%;height:auto}
.adc-thumb img{width:100%;height:100%;object-fit:cover}
/* Defend the gallery-thumb <button>s against Astra's button hover/focus/active FILL
   (see the tab/size fix above). Keep the light radial background; hover/active only
   change the border. Winning specificity (class+pseudo 0,2,0 > Astra's 0,1,1). */
.adc-thumb{-webkit-appearance:none;appearance:none}
.adc-thumb:hover,.adc-thumb:focus,.adc-thumb:active,.adc-thumb:focus-visible{
	background:radial-gradient(120% 100% at 50% 5%,#fff,#E7F0FB 70%);border-color:var(--adc-navy-500);box-shadow:none;outline:none}
.adc-thumb.is-active,.adc-thumb.is-active:hover,.adc-thumb.is-active:focus,.adc-thumb.is-active:active{
	background:radial-gradient(120% 100% at 50% 5%,#fff,#E7F0FB 70%);border-color:var(--adc-navy-800);box-shadow:0 0 0 3px rgba(18,41,74,.1)}
.adc-thumb:focus-visible{box-shadow:0 0 0 3px rgba(47,107,224,.28)} /* keyboard-only ring */

/* buy box */
.adc-buy__cls{font-size:.75rem;color:var(--adc-accent);font-weight:700;text-transform:uppercase;letter-spacing:.08em}
.adc-buy h1{font-size:clamp(1.9rem,3.6vw,2.6rem);font-weight:800;margin:8px 0 12px;letter-spacing:-.02em;line-height:1.1;color:var(--adc-ink)}
.adc-buy__rate{display:flex;align-items:center;gap:10px;font-size:.88rem;color:var(--adc-ink-soft);flex-wrap:wrap}
.adc-buy__rate a{color:var(--adc-accent);font-weight:600}
.adc-chip-stock{display:inline-flex;align-items:center;gap:7px;font-size:.78rem;font-weight:700;color:var(--adc-success);background:rgba(18,136,90,.09);padding:5px 11px;border-radius:999px}
.adc-chip-stock.is-out{color:var(--adc-danger);background:rgba(192,57,43,.09)}
.adc-chip-stock .dot{width:7px;height:7px;border-radius:50%;background:var(--adc-success);box-shadow:0 0 0 3px rgba(18,136,90,.18)}
.adc-chip-stock.is-out .dot{background:var(--adc-danger);box-shadow:0 0 0 3px rgba(192,57,43,.18)}
.adc-buy__lead{color:var(--adc-ink-soft);margin:18px 0 22px;font-size:1rem}

.adc-priceline{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;padding:18px 0;border-top:1px solid var(--adc-line);border-bottom:1px solid var(--adc-line)}
.adc-priceline .now{font-size:2.1rem;font-weight:800;letter-spacing:-.03em;color:var(--adc-ink)}
.adc-priceline .per{font-size:.9rem;color:var(--adc-ink-soft);font-weight:500}
.adc-priceline .was{font-size:1rem;color:var(--adc-ink-soft);text-decoration:line-through}
.adc-priceline .savepill{font-size:.74rem;font-weight:700;background:var(--adc-success);color:#fff;padding:4px 10px;border-radius:999px}

.adc-optgroup{margin-top:24px}
.adc-optgroup__label{display:flex;justify-content:space-between;align-items:baseline;font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--adc-ink-soft);margin-bottom:11px}
.adc-optgroup__label b{color:var(--adc-ink);text-transform:none;letter-spacing:0;font-size:.95rem}
.adc-sizes{display:flex;gap:10px;flex-wrap:wrap}
.adc-size{border:1.5px solid var(--adc-line);background:#fff;border-radius:12px;padding:11px 18px;font-family:inherit;font-weight:700;font-size:.95rem;color:var(--adc-ink);cursor:pointer;transition:.16s;line-height:1.2}
.adc-size small{display:block;font-size:.7rem;font-weight:600;color:var(--adc-ink-soft);margin-top:2px}
.adc-size:hover{border-color:var(--adc-navy-500)}
.adc-size.is-active{border-color:var(--adc-navy-800);background:var(--adc-navy-800);color:#fff}
.adc-size.is-active small{color:#b9cce8}

/* quantity tiers (light buy-box variant — distinct from the dark .adc-tier band) */
.adc-buytiers{display:flex;flex-direction:column;gap:10px}
.adc-buytier{position:relative;display:flex;align-items:center;gap:14px;border:1.5px solid var(--adc-line);background:#fff;border-radius:14px;padding:15px 17px;cursor:pointer;transition:.16s;font-family:inherit;text-align:left;width:100%;color:var(--adc-ink)}
.adc-buytier:hover{border-color:var(--adc-navy-500)}
.adc-buytier.is-active{border-color:var(--adc-navy-800);background:#F7FAFE;box-shadow:0 0 0 3px rgba(18,41,74,.07)}
.adc-buytier__radio{width:20px;height:20px;border-radius:50%;border:2px solid #C8D4E4;flex:none;display:grid;place-items:center;transition:.16s}
.adc-buytier.is-active .adc-buytier__radio{border-color:var(--adc-navy-800)}
.adc-buytier.is-active .adc-buytier__radio::after{content:"";width:10px;height:10px;border-radius:50%;background:var(--adc-navy-800)}
.adc-buytier__q{font-weight:700;font-size:1rem}
.adc-buytier__q small{display:block;font-size:.75rem;font-weight:500;color:var(--adc-ink-soft)}
.adc-buytier__tag{font-size:.68rem;font-weight:700;color:#fff;background:var(--adc-success);padding:3px 9px;border-radius:999px;white-space:nowrap}
.adc-buytier__tag--best{background:var(--adc-gold)}
.adc-buytier__price{margin-left:auto;text-align:right;white-space:nowrap}
.adc-buytier__price b{font-size:1.08rem;font-weight:800}
.adc-buytier__price small{display:block;font-size:.72rem;color:var(--adc-ink-soft);font-weight:600}

/* Defend the size/tier <button>s against the theme's (Astra) button hover/focus/active
   FILL — our base rules only set the border, so Astra was painting them accent-blue on
   hover. Pin background/colour/border on every interactive state to match the mockup
   (hover = navy-500 border only; active = navy fill / light-blue tier). */
.adc-size,.adc-buytier{-webkit-appearance:none;appearance:none}
.adc-size:hover,.adc-size:focus,.adc-size:active,.adc-size:focus-visible{
	background:#fff;color:var(--adc-ink);border-color:var(--adc-navy-500);box-shadow:none;outline:none}
.adc-size.is-active,.adc-size.is-active:hover,.adc-size.is-active:focus,.adc-size.is-active:active{
	background:var(--adc-navy-800);color:#fff;border-color:var(--adc-navy-800)}
.adc-buytier:hover,.adc-buytier:focus,.adc-buytier:active,.adc-buytier:focus-visible{
	background:#fff;color:var(--adc-ink);border-color:var(--adc-navy-500);box-shadow:none;outline:none}
.adc-buytier.is-active,.adc-buytier.is-active:hover,.adc-buytier.is-active:focus,.adc-buytier.is-active:active{
	background:#F7FAFE;border-color:var(--adc-navy-800);box-shadow:0 0 0 3px rgba(18,41,74,.07)}
/* keyboard-only focus ring (accessibility) — doesn't fire on mouse click */
.adc-size:focus-visible,.adc-buytier:focus-visible{box-shadow:0 0 0 3px rgba(47,107,224,.28)}

.adc-buyactions{margin-top:24px;display:flex;flex-direction:column;gap:10px}
.adc-buyactions .adc-btn{cursor:pointer}
.adc-dispatch{display:flex;align-items:center;gap:9px;font-size:.86rem;color:var(--adc-ink-soft);margin-top:14px}
.adc-dispatch .adc-icon{width:18px;height:18px;color:var(--adc-success)}

.adc-coabox{display:flex;align-items:center;gap:14px;border:1.5px solid var(--adc-line);border-radius:14px;padding:15px 17px;margin-top:20px;background:var(--adc-paper-2)}
.adc-coabox .adc-coabox__ic{width:40px;height:40px;border-radius:11px;background:#fff;border:1px solid var(--adc-line);display:grid;place-items:center;color:var(--adc-navy-700);flex:none}
.adc-coabox strong{display:block;font-size:.95rem;color:var(--adc-ink)}
.adc-coabox span{font-size:.8rem;color:var(--adc-ink-soft)}
.adc-coabox .adc-btn{margin-left:auto}

.adc-disclaimer{margin-top:20px;border-left:3px solid #B84A2E;background:#FDF6F4;border-radius:0 10px 10px 0;padding:14px 16px;font-size:.84rem;color:#7A3D2C}
.adc-disclaimer strong{display:block;margin-bottom:3px;color:#8A3F2A}

/* trust strip */
.adc-tstrip{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;border-top:1px solid var(--adc-line);border-bottom:1px solid var(--adc-line);padding:26px 0}
.adc-tstrip div{display:flex;align-items:center;gap:11px;font-size:.88rem;font-weight:500}
.adc-tstrip .adc-icon{color:var(--adc-navy-700);flex:none}

/* tabs */
.adc-tabs{display:flex;gap:4px;border-bottom:1px solid var(--adc-line);overflow-x:auto;margin-bottom:32px}
.adc-tab{background:none;border:0;border-bottom:2.5px solid transparent;padding:14px 18px;font-family:inherit;font-size:.98rem;font-weight:600;color:var(--adc-ink-soft);cursor:pointer;white-space:nowrap;transition:.15s}
.adc-tab:hover{color:var(--adc-ink)}
.adc-tab.is-active{color:var(--adc-navy-800);border-bottom-color:var(--adc-navy-800)}
/* Defend the tab <button>s against Astra's button focus/active FILL — the active
   tab holds focus after a click, and Astra was painting it accent-blue. Keep the
   background transparent (underline style) on every interactive state. */
.adc-tab{-webkit-appearance:none;appearance:none}
.adc-tab:hover,.adc-tab:focus,.adc-tab:active,.adc-tab:focus-visible{background:none;box-shadow:none;outline:none}
.adc-tab.is-active,.adc-tab.is-active:hover,.adc-tab.is-active:focus,.adc-tab.is-active:active{
	background:none;color:var(--adc-navy-800);border-bottom-color:var(--adc-navy-800);box-shadow:none}
.adc-tab:focus-visible{box-shadow:inset 0 0 0 2px rgba(47,107,224,.28)} /* keyboard-only ring */
.adc-panel{display:none;max-width:820px}
.adc-panel.is-active{display:block}
.adc-panel h3{margin:22px 0 10px;font-size:1.15rem;font-weight:700;color:var(--adc-ink)}
.adc-panel h3:first-child{margin-top:0}
.adc-spec{width:100%;border-collapse:collapse;margin:8px 0 18px;font-size:.93rem}
.adc-spec th,.adc-spec td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--adc-line)}
.adc-spec th{width:210px;color:var(--adc-ink-soft);font-weight:600}
.adc-spec td{font-weight:600;color:var(--adc-ink)}
.adc-tablewrap{overflow-x:auto}

/* PDP reviews */
.adc-revwrap{display:grid;grid-template-columns:280px 1fr;gap:44px;align-items:start}
.adc-revsum{border:1px solid var(--adc-line);border-radius:var(--adc-radius);padding:24px;text-align:center;background:#fff}
.adc-revsum .big{font-size:3rem;font-weight:800;line-height:1;color:var(--adc-ink)}
.adc-revbars{margin-top:18px;display:flex;flex-direction:column;gap:7px}
.adc-revbar{display:flex;align-items:center;gap:9px;font-size:.78rem;color:var(--adc-ink-soft)}
.adc-revbar .track{flex:1;height:7px;border-radius:99px;background:var(--adc-line);overflow:hidden}
.adc-revbar .fill{height:100%;background:var(--adc-gold);border-radius:99px}
.adc-revlist{display:flex;flex-direction:column;gap:18px}
.adc-rev{border:1px solid var(--adc-line);border-radius:var(--adc-radius);padding:22px;background:#fff}
.adc-rev__top{display:flex;align-items:center;gap:12px;margin-bottom:10px;flex-wrap:wrap}
.adc-rev__av{width:36px;height:36px;border-radius:50%;background:var(--adc-paper);color:var(--adc-navy-700);display:grid;place-items:center;font-weight:700;font-size:.8rem;flex:none}
.adc-rev__name{font-weight:700;font-size:.93rem;color:var(--adc-ink)}
.adc-rev__meta{font-size:.76rem;color:var(--adc-ink-soft)}
.adc-rev__ver{font-size:.68rem;font-weight:700;color:var(--adc-success);background:rgba(18,136,90,.09);padding:3px 9px;border-radius:999px}
.adc-rev p{color:var(--adc-ink);font-size:.95rem}
.adc-revform{max-width:640px;margin-top:8px}
.adc-revempty{color:var(--adc-ink-soft);margin-bottom:18px}

/* sticky mobile buy bar */
.adc-stickybuy{position:fixed;left:0;right:0;bottom:0;z-index:60;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);border-top:1px solid var(--adc-line);padding:11px 16px;display:none;gap:14px;align-items:center;box-shadow:0 -6px 24px rgba(11,26,51,.08)}
.adc-stickybuy .p{font-weight:800;font-size:1.1rem;white-space:nowrap;color:var(--adc-ink)}
.adc-stickybuy .p small{display:block;font-size:.68rem;font-weight:600;color:var(--adc-ink-soft)}
.adc-stickybuy .adc-btn{margin-left:auto}

/* ============================================================
   SHOP ARCHIVE
   ============================================================ */
.adc-pagehead{padding:22px 0 30px;border-bottom:1px solid var(--adc-line)}
.adc-pagehead h1{font-size:clamp(2rem,4.4vw,3rem);font-weight:800;margin:10px 0;letter-spacing:-.02em;line-height:1.1;color:var(--adc-ink)}
.adc-pagehead p{color:var(--adc-ink-soft);max-width:62ch}

.adc-toolbar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:22px 0;position:sticky;top:70px;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);z-index:20;border-bottom:1px solid var(--adc-line)}
.adc-chips{display:flex;gap:9px;flex-wrap:wrap}
.adc-chip{border:1.5px solid var(--adc-line);background:#fff;border-radius:999px;padding:9px 17px;font-family:inherit;font-size:.9rem;font-weight:600;color:var(--adc-ink);cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:8px;text-decoration:none}
.adc-chip:hover{border-color:var(--adc-navy-500)}
.adc-chip.is-active{background:var(--adc-navy-800);border-color:var(--adc-navy-800);color:#fff}
.adc-chip .n{font-size:.75rem;opacity:.6;font-weight:700}
.adc-chip.is-active .n{opacity:.75}
.adc-toolbar__right{margin-left:auto;display:flex;align-items:center;gap:12px}
.adc-count{font-size:.86rem;color:var(--adc-ink-soft);white-space:nowrap}
.adc-sortwrap{position:relative;display:flex;align-items:center}
.adc-sortwrap .adc-icon{position:absolute;right:13px;pointer-events:none;color:var(--adc-ink-soft);width:16px;height:16px}
.adc-sortwrap select{appearance:none;-webkit-appearance:none;border:1.5px solid var(--adc-line);background:#fff;border-radius:11px;padding:10px 38px 10px 14px;font-family:inherit;font-size:.9rem;font-weight:600;color:var(--adc-ink);cursor:pointer}
.adc-sortwrap select:focus{outline:none;border-color:var(--adc-accent)}
/* Same clipping trap as the form-widget selects: Astra pins select{height:40px},
   so 10px of vertical padding left an 18px box for 24px text. Let the text have
   the whole box (this one already draws its own .adc-icon arrow). */
.adc-sortwrap select{height:40px;padding-top:0;padding-bottom:0;line-height:1.4}

.adc-shopgrid{padding:34px 0 0}
.adc-empty{padding:70px 20px;text-align:center;color:var(--adc-ink-soft)}
.adc-empty .adc-icon{width:52px;height:52px;margin:0 auto 16px;color:#c3d1e2}
.adc-empty b{display:block;color:var(--adc-ink);font-size:1.1rem;margin-bottom:6px}

.adc-pager{display:flex;justify-content:center;align-items:center;gap:8px;padding:44px 0 0;flex-wrap:wrap}
.adc-pager a,.adc-pager span{min-width:42px;height:42px;border-radius:11px;border:1.5px solid var(--adc-line);display:grid;place-items:center;font-weight:600;font-size:.92rem;background:#fff;transition:.15s;padding:0 12px;color:var(--adc-ink);text-decoration:none}
.adc-pager a:hover{border-color:var(--adc-navy-500);color:var(--adc-navy-700)}
.adc-pager .current{background:var(--adc-navy-800);border-color:var(--adc-navy-800);color:#fff}
.adc-pager .dots{border:0;background:none}

.adc-tstrip--shop{border-bottom:0;margin-top:56px}

.adc-seo{background:var(--adc-paper);padding:clamp(34px,5vw,60px) 0}
.adc-seo .inner{max-width:760px}
.adc-seo h2{font-size:1.5rem;font-weight:800;margin-bottom:14px;color:var(--adc-ink)}
.adc-seo p{color:var(--adc-ink-soft);margin-bottom:14px;font-size:.97rem}
.adc-seo .fine{font-size:.82rem;font-style:italic}

/* ============================================================
   BLOG INDEX
   ============================================================ */
.adc-pagehead--blog{background:var(--adc-paper-2);border-bottom:1px solid var(--adc-line);padding:clamp(30px,4vw,46px) 0}
.adc-pagehead--blog h1{font-size:clamp(2rem,4.4vw,3rem);font-weight:800;margin:10px 0}
.adc-pagehead--blog p{color:var(--adc-ink-soft);max-width:62ch;font-size:1.05rem}
.adc-pagehead--blog .adc-chips{margin-top:22px}

.adc-feat{display:grid;grid-template-columns:1.1fr .9fr;gap:0;border:1px solid var(--adc-line);border-radius:18px;overflow:hidden;background:#fff;box-shadow:var(--adc-shadow-sm);transition:.2s;text-decoration:none;color:inherit}
.adc-feat:hover{box-shadow:var(--adc-shadow)}
.adc-feat__img{position:relative;min-height:280px;background:linear-gradient(160deg,#EAF2FB,#D6E4F5);overflow:hidden}
.adc-feat__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.adc-feat__img .adc-chain{position:absolute;inset:0;width:100%;height:100%;color:var(--adc-navy-500);opacity:.4}
.adc-feat__tag{position:absolute;top:16px;left:16px;background:#fff;border:1px solid var(--adc-line);border-radius:999px;font-size:.68rem;font-weight:700;padding:5px 12px;color:var(--adc-accent);text-transform:uppercase;letter-spacing:.06em}
.adc-feat__body{padding:clamp(24px,3vw,40px);display:flex;flex-direction:column;justify-content:center}
.adc-feat__meta{font-size:.74rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--adc-accent)}
.adc-feat__body h2{font-size:clamp(1.4rem,2.6vw,1.9rem);margin:12px 0;font-weight:800;line-height:1.15;color:var(--adc-ink)}
.adc-feat__body p{color:var(--adc-ink-soft);margin-bottom:20px}
.adc-feat__by{display:flex;align-items:center;gap:10px;font-size:.82rem;color:var(--adc-ink-soft)}
.adc-feat__av{width:32px;height:32px;border-radius:50%;background:var(--adc-paper);color:var(--adc-navy-700);display:grid;place-items:center;font-weight:700;font-size:.78rem}

.adc-post__more{margin-top:auto;font-size:.86rem;font-weight:600;color:var(--adc-navy-700);display:inline-flex;align-items:center;gap:6px}
.adc-post__more .adc-icon{width:16px;height:16px}

/* ============================================================
   SINGLE POST / ARTICLE
   ============================================================ */
.adc-arthead{max-width:760px;margin:0 auto;text-align:center;padding:8px 0 30px}
.adc-arthead .meta{font-size:.74rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--adc-accent)}
.adc-arthead h1{font-size:clamp(2rem,4.6vw,3.1rem);font-weight:800;margin:14px 0 18px;letter-spacing:-.02em;line-height:1.1;color:var(--adc-ink)}
.adc-arthead .sub{font-size:1.15rem;color:var(--adc-ink-soft)}
.adc-arthead .by{display:inline-flex;align-items:center;gap:11px;margin-top:24px;font-size:.86rem;color:var(--adc-ink-soft)}
.adc-arthead .av{width:38px;height:38px;border-radius:50%;background:var(--adc-paper);color:var(--adc-navy-700);display:grid;place-items:center;font-weight:700;font-size:.82rem}
.adc-artcover{max-width:920px;margin:0 auto;aspect-ratio:21/9;border-radius:18px;overflow:hidden;background:linear-gradient(160deg,#EAF2FB,#D6E4F5);position:relative;border:1px solid var(--adc-line)}
.adc-artcover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.adc-artcover .adc-chain{position:absolute;inset:0;width:100%;height:100%;color:var(--adc-navy-500);opacity:.4}

/* prose (article body + product description tab) */
.adc-prose{max-width:720px;margin:0 auto;font-size:1.06rem;color:#26344c}
.adc-prose>p{margin:0 0 22px}
.adc-prose h2{font-size:1.6rem;font-weight:800;margin:40px 0 14px;color:var(--adc-ink);line-height:1.15}
.adc-prose h3{font-size:1.22rem;font-weight:700;margin:30px 0 10px;color:var(--adc-ink)}
.adc-prose ul,.adc-prose ol{margin:0 0 22px;padding-left:22px;display:flex;flex-direction:column;gap:9px}
.adc-prose li{padding-left:4px}
.adc-prose a{color:var(--adc-accent);font-weight:600;text-decoration:underline;text-underline-offset:2px}
.adc-prose strong{color:var(--adc-ink)}
.adc-prose blockquote{border-left:3px solid var(--adc-accent);background:var(--adc-paper-2);border-radius:0 12px 12px 0;padding:16px 22px;margin:0 0 22px;color:var(--adc-ink-soft);font-style:italic}
.adc-prose img{border-radius:14px;margin:0 0 22px}
.adc-prose .callout{border:1px solid var(--adc-line);background:var(--adc-paper);border-radius:14px;padding:20px 22px;margin:0 0 22px}
.adc-prose .callout b{display:block;margin-bottom:6px;color:var(--adc-ink)}
.adc-prose figure{margin:0 0 22px}
.adc-prose figcaption{font-size:.82rem;color:var(--adc-ink-soft);text-align:center;margin-top:8px;font-style:italic}
.adc-prose hr{border:0;border-top:1px solid var(--adc-line);margin:34px 0}

.adc-rnote{max-width:720px;margin:34px auto 0;border:1px solid var(--adc-line);background:var(--adc-paper);border-radius:14px;padding:18px 22px;display:flex;gap:13px;align-items:flex-start}
.adc-rnote .adc-icon{width:20px;height:20px;color:var(--adc-navy-700);flex:none;margin-top:3px}
.adc-rnote p{font-size:.9rem;color:var(--adc-ink-soft)}

.adc-authorbox{max-width:720px;margin:34px auto 0;border:1px solid var(--adc-line);border-radius:16px;padding:24px;background:#fff;display:flex;gap:16px;align-items:flex-start}
.adc-authorbox .av{width:52px;height:52px;border-radius:50%;background:var(--adc-paper);color:var(--adc-navy-700);display:grid;place-items:center;font-weight:800;flex:none}
.adc-authorbox h3{font-size:1.02rem;font-weight:700;margin-bottom:5px;color:var(--adc-ink)}
.adc-authorbox p{font-size:.9rem;color:var(--adc-ink-soft)}
.adc-authorbox a{color:var(--adc-accent);font-weight:600}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media(max-width:1000px){
  .adc-shopgrid .adc-prodgrid.adc-cols-4{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:960px){
  .adc-pdp{grid-template-columns:1fr;gap:34px}
  .adc-gallery{position:static}
  .adc-revwrap{grid-template-columns:1fr;gap:26px}
  .adc-tstrip{grid-template-columns:repeat(2,1fr)}
  .adc-feat{grid-template-columns:1fr}
  .adc-toolbar{position:static}
  .adc-stickybuy{display:flex}
  body.single-product{padding-bottom:74px}
}
@media(max-width:680px){
  .adc-shopgrid .adc-prodgrid{grid-template-columns:repeat(2,1fr)}
  .adc-toolbar__right{margin-left:0;width:100%}
}
@media(max-width:560px){
  .adc-tstrip{grid-template-columns:1fr}
  .adc-spec th{width:auto}
}
@media(max-width:420px){
  .adc-shopgrid .adc-prodgrid{grid-template-columns:1fr}
}

/* ============================================================
   WOOCOMMERCE — cart / checkout / My Account (classic shortcodes)
   Brand-styled to the design system (no dedicated mockup exists for
   these). Buttons → navy pills; tables/fields → tokens; notices →
   semantic colours. Scoped under .woocommerce so nothing else is hit.
   ============================================================ */
.woocommerce .woocommerce-billing-fields h3,
.woocommerce .woocommerce-shipping-fields h3,
.woocommerce-checkout h3,
.woocommerce-cart .cart_totals h2,
.woocommerce-order-received h2{font-weight:800;letter-spacing:-.01em;color:var(--adc-ink)}

/* buttons */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce-page a.button,
.woocommerce .wc-proceed-to-checkout a.checkout-button,
.woocommerce #place_order{
	background:var(--adc-navy-800);color:#fff;border:1.5px solid transparent;border-radius:999px;
	font-family:inherit;font-weight:600;font-size:.98rem;padding:13px 24px;line-height:1.2;
	transition:.18s ease;box-shadow:none;text-shadow:none;text-decoration:none;cursor:pointer}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce .wc-proceed-to-checkout a.checkout-button:hover,
.woocommerce #place_order:hover{background:var(--adc-navy-700);color:#fff;transform:translateY(-1px);box-shadow:var(--adc-shadow)}
/* Primary CTAs are NAVY, not Astra's accent blue: the approved mockups use navy
   for every primary button, and the accent is reserved for links + highlights. */
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce #place_order{background:var(--adc-navy-800)}
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover,
.woocommerce #place_order:hover{background:var(--adc-navy-700)}
.woocommerce .wc-proceed-to-checkout a.checkout-button{display:block;text-align:center;font-size:1.05rem;padding:15px 24px}
.woocommerce .button.wc-backward{background:#fff;color:var(--adc-navy-800);border-color:var(--adc-line)}
.woocommerce .button.wc-backward:hover{background:#fff;color:var(--adc-navy-700);border-color:var(--adc-navy-500)}

/* tables (cart, order review, order details) */
.woocommerce table.shop_table{border:1px solid var(--adc-line);border-radius:var(--adc-radius);border-collapse:separate;border-spacing:0;overflow:hidden}
.woocommerce table.shop_table th{background:var(--adc-paper);color:var(--adc-ink-soft);font-weight:700;font-size:.82rem;text-transform:uppercase;letter-spacing:.05em;padding:14px 16px;border-top:0}
.woocommerce table.shop_table td{padding:16px;border-top:1px solid var(--adc-line);color:var(--adc-ink);vertical-align:middle}
.woocommerce table.shop_table .product-thumbnail img{width:64px;height:64px;border-radius:10px;border:1px solid var(--adc-line);object-fit:cover}
.woocommerce table.shop_table a{color:var(--adc-ink);font-weight:600}
.woocommerce table.shop_table a:hover{color:var(--adc-accent)}
.woocommerce .cart_item .product-remove a.remove{color:var(--adc-danger)!important;border:1px solid var(--adc-line);background:#fff!important;width:24px;height:24px;line-height:22px;font-size:16px}
.woocommerce .cart_item .product-remove a.remove:hover{background:var(--adc-danger)!important;color:#fff!important;border-color:var(--adc-danger)}
.woocommerce .order-total .amount,.woocommerce .cart-subtotal .amount{font-weight:800;color:var(--adc-ink)}
/* (the old flat totals box is superseded by the .adc-summary card below) */

/* quantity + inputs */
.woocommerce .quantity .qty{border:1.5px solid var(--adc-line);border-radius:10px;padding:9px 8px;font-family:inherit;font-weight:600;color:var(--adc-ink);background:#fff}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce-page form .form-row input.input-text,
.woocommerce .input-text,
.woocommerce #order_comments,
.woocommerce-cart .coupon input[type="text"]{
	border:1.5px solid var(--adc-line);border-radius:11px;padding:12px 14px;font-family:inherit;font-size:.95rem;color:var(--adc-ink);background:#fff;line-height:1.4}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce .input-text:focus,
.woocommerce-cart .coupon input[type="text"]:focus{outline:none;border-color:var(--adc-accent);box-shadow:0 0 0 4px rgba(47,107,224,.12)}
.woocommerce form .form-row label{font-weight:600;color:var(--adc-ink);font-size:.9rem}
.woocommerce .select2-container--default .select2-selection--single{border:1.5px solid var(--adc-line);border-radius:11px;height:auto;padding:7px 6px}
.woocommerce-cart table.cart td.actions .coupon .input-text{width:200px;max-width:100%}

/* payment box */
.woocommerce-checkout #payment{background:var(--adc-paper);border:1px solid var(--adc-line);border-radius:var(--adc-radius)}
.woocommerce-checkout #payment ul.payment_methods{border-bottom:1px solid var(--adc-line)}
.woocommerce-checkout #payment div.payment_box{background:#fff;border:1px solid var(--adc-line)}
.woocommerce-checkout #payment div.payment_box::before{border-bottom-color:#fff}

/* notices */
.woocommerce-message,.woocommerce-info,.woocommerce-error,.woocommerce-noreviews{
	border-top:0;border-radius:10px;padding:14px 16px 14px 44px;font-size:.92rem;background:var(--adc-paper-2);color:var(--adc-ink);box-shadow:none}
.woocommerce-message{border-left:3px solid var(--adc-success)}
.woocommerce-message::before{color:var(--adc-success)}
.woocommerce-info{border-left:3px solid var(--adc-accent)}
.woocommerce-info::before{color:var(--adc-accent)}
.woocommerce-error{border-left:3px solid var(--adc-danger);background:#FDF6F4;list-style:none}
.woocommerce-error::before{color:var(--adc-danger)}
.woocommerce-message .button,.woocommerce-info .button{padding:8px 16px;font-size:.85rem}

/* My Account */
.woocommerce-account .woocommerce-MyAccount-navigation ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;border:1px solid var(--adc-line);border-radius:var(--adc-radius);padding:10px;background:var(--adc-paper-2)}
.woocommerce-account .woocommerce-MyAccount-navigation li a{display:block;padding:11px 14px;border-radius:10px;font-weight:600;color:var(--adc-ink);text-decoration:none;transition:.15s}
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover{background:#fff;color:var(--adc-navy-700)}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a{background:var(--adc-navy-800);color:#fff}
.woocommerce-account .woocommerce-MyAccount-content{border:1px solid var(--adc-line);border-radius:var(--adc-radius);padding:clamp(20px,3vw,32px);background:#fff}
/* Plain links accent-blue, but NOT buttons — buttons keep white text on the navy pill
   (punch-list #2: "Confirm email address" / "Browse products" were rendering blue). */
/* Plain links go accent-blue, but not BUTTONS — WooCommerce buttons carry
   .button, ours carry .adc-btn, and both keep their own colour (the affiliate
   dashboard's ghost "Contact us" was rendering blue while the "Copy" ghost
   buttons next to it stayed navy). */
.woocommerce-account .woocommerce-MyAccount-content a:not(.button):not(.adc-btn){color:var(--adc-accent)}
.woocommerce-account .woocommerce-MyAccount-content a.button,
.woocommerce-message a.button,.woocommerce-info a.button{color:#fff}
.woocommerce-account .woocommerce-MyAccount-content a.button:hover,
.woocommerce-account .woocommerce-MyAccount-content a.button:focus,
.woocommerce-account .woocommerce-MyAccount-content a.button:active,
.woocommerce-message a.button:hover,.woocommerce-message a.button:focus,.woocommerce-message a.button:active,
.woocommerce-info a.button:hover,.woocommerce-info a.button:focus,.woocommerce-info a.button:active{color:#fff}

/* My Account — Addresses (punch-list #1: brand the billing/shipping cards) */
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Addresses,
.woocommerce-account .woocommerce-MyAccount-content .u-columns.addresses{
	display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:16px 0 0;float:none;width:auto}
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address{
	border:1px solid var(--adc-line);border-radius:var(--adc-radius);overflow:hidden;background:#fff;
	box-shadow:var(--adc-shadow-sm);width:auto;float:none;margin:0;display:flex;flex-direction:column}
/* Pin the two columns explicitly — Astra/WC's col2-set classes otherwise give one a
   stray grid position, staggering them diagonally. */
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Addresses > .u-column1,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Addresses > .col-1{grid-column:1;grid-row:1}
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Addresses > .u-column2,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Addresses > .col-2{grid-column:2;grid-row:1}
.woocommerce-account .woocommerce-Address-title{
	display:flex;align-items:center;justify-content:space-between;gap:14px;
	padding:16px 20px;background:var(--adc-paper-2);border-bottom:1px solid var(--adc-line)}
/* WooCommerce 11 renders this title as <h2> (older versions used <h3>), so the
   original h3-only rule stopped matching and the heading fell back to Astra's
   30px — which wrapped "Shipping address" onto two lines. Cover both tags. */
.woocommerce-account .woocommerce-Address-title h2,
.woocommerce-account .woocommerce-Address-title h3{margin:0;font-size:1.15rem;font-weight:800;color:var(--adc-navy-800);letter-spacing:-.01em}
.woocommerce-account .woocommerce-Address-title a.edit{
	flex:0 0 auto;font-size:.82rem;font-weight:600;color:var(--adc-navy-800);text-decoration:none;
	border:1.5px solid var(--adc-line);padding:7px 15px;border-radius:999px;background:#fff;transition:.15s}
.woocommerce-account .woocommerce-Address-title a.edit:hover,
.woocommerce-account .woocommerce-Address-title a.edit:focus{border-color:var(--adc-navy-500);color:var(--adc-navy-700)}
.woocommerce-account .woocommerce-Address address{
	margin:0;padding:18px 20px;font-style:normal;color:var(--adc-ink);line-height:1.7;font-size:.95rem;flex:1}
.woocommerce-account .woocommerce-Address address:empty::before{content:"—";color:var(--adc-ink-soft)}
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Addresses + p,
.woocommerce-account .woocommerce-MyAccount-content > p:first-child{color:var(--adc-ink-soft)}
@media(max-width:640px){
	.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Addresses,
	.woocommerce-account .woocommerce-MyAccount-content .u-columns.addresses{grid-template-columns:1fr}
}

/* ============================================================
   MY ACCOUNT — logged-out login / register (myaccount/form-login.php)
   ------------------------------------------------------------
   Full-bleed light page-hero (matching /contact/) + two branded auth
   cards. Reuses .adc-phero--light, .adc-btn, .adc-trustlist, .adc-cartnote.
   Scoped to :not(.logged-in) so the logged-in dashboard is untouched.
   ============================================================ */
.woocommerce-account:not(.logged-in) .ast-container{display:block}
.adc-authpage{padding-bottom:clamp(40px,6vw,72px)}

/* hero head */
.adc-authhero .adc-authhead{max-width:760px;padding:clamp(40px,6vw,76px) 0 clamp(28px,4vw,44px)}
.adc-authhead .adc-eyebrow{display:inline-flex;align-items:center;gap:8px}
.adc-authhead .adc-eyebrow .adc-icon{width:16px;height:16px}
.adc-authhead h1{margin:14px 0 0;font-size:clamp(2.1rem,5vw,3.2rem);font-weight:800;letter-spacing:-.025em;line-height:1.08;color:var(--adc-ink)}
.adc-authhead h1 em{color:var(--adc-accent);font-style:normal}
.adc-authhead .adc-phero__lead{margin-top:14px}
.adc-authperks{list-style:none;margin:22px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:10px 22px}
.adc-authperks li{display:flex;align-items:center;gap:9px;font-size:.92rem;font-weight:600;color:var(--adc-ink)}
.adc-authperks .adc-icon{width:19px;height:19px;color:var(--adc-navy-500);flex:0 0 auto}

/* form grid */
.adc-authsec{position:relative;z-index:1}
.adc-authgrid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(18px,2.4vw,26px);align-items:start;margin-top:clamp(6px,2vw,18px)}
.adc-authgrid--solo{grid-template-columns:minmax(0,520px);justify-content:center}

/* card */
.adc-authcard{background:#fff;border:1px solid var(--adc-line);border-radius:16px;padding:clamp(22px,3vw,34px);box-shadow:var(--adc-shadow-sm)}
.adc-authcard--register{background:var(--adc-paper-2)}
.adc-authcard__head{display:flex;align-items:flex-start;gap:14px;margin:0 0 20px}
.adc-authcard__ic{width:44px;height:44px;border-radius:12px;flex:0 0 auto;display:grid;place-items:center;background:var(--adc-navy-800);color:#fff}
.adc-authcard__ic--accent{background:var(--adc-accent)}
.adc-authcard__ic .adc-icon{width:22px;height:22px}
.adc-authcard__head h2{margin:0;font-size:1.3rem;font-weight:800;letter-spacing:-.02em;color:var(--adc-ink)}
.adc-authcard__head p{margin:3px 0 0;font-size:.9rem;color:var(--adc-ink-soft)}

/* full-width submit + actions */
.adc-authcard .adc-btn--primary{width:100%;margin-top:4px}
.adc-authcard__actions{display:block!important;margin-bottom:0}
.adc-authcard .woocommerce-form-login__rememberme{display:flex;align-items:center;gap:8px;margin:0 0 14px;font-size:.9rem;color:var(--adc-ink-soft)}
.adc-authcard .woocommerce-form-login__rememberme input{margin:0}
.adc-authcard .lost_password{margin:14px 0 0;font-size:.88rem}
.adc-authcard .lost_password a{color:var(--adc-accent);font-weight:600}

/* register hint + benefits */
.adc-authcard__hint{display:flex;align-items:flex-start;gap:9px;margin:0 0 4px;font-size:.88rem;color:var(--adc-ink-soft);background:#fff;border:1px dashed var(--adc-line-strong);border-radius:10px;padding:11px 13px}
.adc-authcard__hint .adc-icon{width:17px;height:17px;color:var(--adc-navy-500);flex:0 0 auto;margin-top:1px}
.adc-authbenefits{list-style:none;margin:20px 0 0;padding:20px 0 0;border-top:1px solid var(--adc-line);display:grid;gap:11px}
.adc-authbenefits li{display:flex;align-items:center;gap:10px;font-size:.92rem;font-weight:600;color:var(--adc-ink)}
.adc-authbenefits .adc-icon{width:18px;height:18px;color:var(--adc-success);flex:0 0 auto;stroke-width:2.4}

/* foot: trust row + compliance */
.adc-authfoot{margin-top:clamp(26px,4vw,40px)}
.adc-authfoot .adc-trustlist{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;list-style:none;margin:0;padding:0}
.adc-authfoot .adc-cartnote{margin-top:18px}

@media(max-width:860px){
	.adc-authgrid{grid-template-columns:1fr}
	.adc-authfoot .adc-trustlist{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:480px){
	.adc-authfoot .adc-trustlist{grid-template-columns:1fr}
}

/* order-received / thank-you */
.woocommerce ul.order_details{border:1px solid var(--adc-line);border-radius:var(--adc-radius);background:var(--adc-paper-2);padding:20px 0}
.woocommerce ul.order_details li{border-right:1px solid var(--adc-line)}
.woocommerce ul.order_details li strong{color:var(--adc-ink)}

/* keep WC content off the header and readable-width */
.woocommerce-cart .site-content,
.woocommerce-checkout .site-content,
.woocommerce-account .site-content{padding-top:clamp(28px,4vw,48px);padding-bottom:clamp(40px,6vw,72px)}

/* ============================================================
   COMMERCE FUNNEL — cart + checkout (child theme template overrides)
   ------------------------------------------------------------
   The stock WooCommerce cart/checkout are tables; ours are card layouts
   (woocommerce/cart/*.php, woocommerce/checkout/*.php). Everything below
   styles OUR markup — the `.woocommerce ...` block above still handles the
   parts WooCommerce renders itself (notices, My Account, order details).

   ⚠️ Astra button-fill: `.adc-qty__btn` is a bare <button>, so its
   :hover/:focus/:active must pin background+color explicitly or Astra paints
   it accent-blue. See CLAUDE.md "ASTRA BUTTON-FILL GOTCHA".
   ============================================================ */

/* Astra ships .ast-container as flex, which shrinks our .adc-wrap. */
.woocommerce-cart .ast-container,
.woocommerce-checkout .ast-container{display:block}

.adc-cartpage,.adc-ckopage{padding:clamp(24px,4vw,44px) 20px clamp(48px,7vw,84px)}

/* ── page head + step rail ─────────────────────────────────
   ⚠️ NAMESPACE: these are `.adc-fstep*` (FUNNEL step), NOT `.adc-step*`.
   `.adc-steps` / `.adc-step` already belong to the numbered-steps WIDGET in
   widgets.css, and templates.css loads after it — reusing those names here
   silently flipped that widget from grid to flex on every page using it
   (homepage process, affiliate, wholesale, contact). Keep them distinct. */
.adc-cart__head,.adc-cko__head{margin:0 0 clamp(20px,3vw,30px)}
.adc-cart__title,.adc-cko__title{
	margin:6px 0 0;font-size:clamp(1.9rem,3.4vw,2.6rem);font-weight:800;
	letter-spacing:-.025em;color:var(--adc-ink);line-height:1.12}

.adc-fsteps{list-style:none;display:flex;align-items:center;gap:0;margin:22px 0 0;padding:0;flex-wrap:wrap}
.adc-fstep{display:flex;align-items:center;gap:9px;color:var(--adc-ink-soft);font-size:.9rem;font-weight:600}
.adc-fstep + .adc-fstep::before{
	content:"";width:clamp(18px,4vw,48px);height:2px;background:var(--adc-line);
	margin:0 clamp(8px,1.4vw,14px);border-radius:2px;flex:0 0 auto}
.adc-fstep__dot{
	width:28px;height:28px;border-radius:50%;display:grid;place-items:center;flex:0 0 auto;
	background:var(--adc-paper);color:var(--adc-ink-soft);border:1.5px solid var(--adc-line);
	font-size:.82rem;font-weight:700;line-height:1}
.adc-fstep__tick{width:15px;height:15px;stroke-width:2.6}
.adc-fstep.is-now .adc-fstep__dot{background:var(--adc-navy-800);border-color:var(--adc-navy-800);color:#fff;box-shadow:0 0 0 4px rgba(18,41,74,.10)}
.adc-fstep.is-now{color:var(--adc-ink)}
.adc-fstep.is-done .adc-fstep__dot{background:var(--adc-success);border-color:var(--adc-success);color:#fff}
.adc-fstep.is-done + .adc-fstep::before{background:var(--adc-success)}
@media(max-width:560px){
	.adc-fstep__label{display:none}
	.adc-fstep.is-now .adc-fstep__label{display:inline}
}

/* ── two-column grids ────────────────────────────────────── */
.adc-cart__grid{display:grid;grid-template-columns:minmax(0,1fr) 372px;gap:clamp(20px,2.6vw,34px);align-items:start}
.adc-cko__grid{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:clamp(20px,2.6vw,34px);align-items:start}
.adc-cart__aside,.adc-cko__aside{position:sticky;top:96px;display:flex;flex-direction:column;gap:16px}
@media(max-width:1020px){
	.adc-cart__grid,.adc-cko__grid{grid-template-columns:1fr}
	.adc-cart__aside,.adc-cko__aside{position:static}
}

/* ── free-shipping progress ──────────────────────────────── */
.adc-freeship{border:1px solid var(--adc-line);border-radius:12px;background:var(--adc-paper-2);padding:13px 16px;margin:0 0 16px}
.adc-freeship__msg{display:flex;align-items:center;gap:9px;margin:0 0 9px;font-size:.9rem;color:var(--adc-ink)}
.adc-freeship__msg .adc-icon{width:18px;height:18px;color:var(--adc-navy-500);flex:0 0 auto}
.adc-freeship__msg .amount{font-weight:800}
.adc-freeship__track{height:6px;border-radius:99px;background:#dfe8f3;overflow:hidden}
.adc-freeship__track i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--adc-navy-500),var(--adc-accent));transition:width .35s ease}
.adc-freeship.is-done{background:#EDF8F2;border-color:#BFE5D3}
.adc-freeship.is-done .adc-freeship__msg .adc-icon{color:var(--adc-success)}
.adc-freeship.is-done .adc-freeship__track i{background:var(--adc-success)}

/* ── cart line item ──────────────────────────────────────── */
.adc-cartitem{
	display:grid;grid-template-columns:96px minmax(0,1fr) auto auto;gap:clamp(14px,1.8vw,22px);
	align-items:center;background:#fff;border:1px solid var(--adc-line);border-radius:var(--adc-radius);
	padding:16px;margin:0 0 12px;box-shadow:var(--adc-shadow-sm);transition:border-color .18s,box-shadow .18s}
.adc-cartitem:hover{border-color:#CFDCEC;box-shadow:var(--adc-shadow)}
.adc-cartitem__media{
	width:96px;height:96px;border-radius:12px;background:var(--adc-paper-2);border:1px solid var(--adc-line);
	display:grid;place-items:center;overflow:hidden}
.adc-cartitem__media a{display:grid;place-items:center;width:100%;height:100%}
.adc-cartitem__media svg{width:auto;height:74px;display:block}
.adc-cartitem__media img{width:100%;height:100%;object-fit:cover;display:block}
.adc-cartitem__body{min-width:0}
.adc-cartitem__name{margin:0;font-size:1.06rem;font-weight:700;letter-spacing:-.01em;line-height:1.3}
.adc-cartitem__name a{color:var(--adc-ink);text-decoration:none}
.adc-cartitem__name a:hover{color:var(--adc-navy-500)}
.adc-cartitem__unit{margin:8px 0 0;font-size:.86rem;color:var(--adc-ink-soft)}
.adc-cartitem__unit .amount{color:var(--adc-ink);font-weight:600}
.adc-cartitem__lbl{
	display:block;font-size:.68rem;text-transform:uppercase;letter-spacing:.09em;
	font-weight:700;color:var(--adc-ink-soft);margin:0 0 7px}
.adc-cartitem__qty{text-align:center}
.adc-cartitem__total{text-align:right;min-width:104px}
.adc-cartitem__sum{display:block;font-size:1.12rem;font-weight:800;color:var(--adc-ink);letter-spacing:-.01em}
.adc-cartitem__sum .amount{color:inherit}
.adc-cartitem__remove{
	display:inline-flex;align-items:center;gap:5px;margin-top:9px;font-size:.8rem;font-weight:600;
	color:var(--adc-ink-soft)!important;background:none!important;border:0!important;text-decoration:none;
	width:auto!important;height:auto!important;line-height:1.4!important;padding:0!important;transition:color .15s}
.adc-cartitem__remove .adc-icon{width:14px;height:14px}
.adc-cartitem__remove:hover,.adc-cartitem__remove:focus{color:var(--adc-danger)!important;background:none!important}

/* line meta as pills (size, bundle tier, variations) */
.adc-cartmeta{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:9px 0 0;padding:0}
.adc-cartmeta__pill{
	display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:999px;
	background:var(--adc-paper);border:1px solid var(--adc-line);font-size:.76rem;line-height:1.4}
.adc-cartmeta__k{color:var(--adc-ink-soft);font-weight:600}
.adc-cartmeta__k::after{content:":"}
.adc-cartmeta__v{color:var(--adc-ink);font-weight:700}
.adc-cartmeta__pill--save{background:#EDF8F2;border-color:#BFE5D3}
.adc-cartmeta__pill--save .adc-cartmeta__k,
.adc-cartmeta__pill--save .adc-cartmeta__v{color:#0F6B48}

/* quantity stepper */
.adc-cartitem__qty .quantity{
	display:inline-flex;align-items:center;border:1.5px solid var(--adc-line);border-radius:999px;
	background:#fff;overflow:hidden;float:none;margin:0}
.adc-cartitem__qty .quantity .qty{
	width:46px;border:0!important;border-radius:0!important;text-align:center;padding:9px 0!important;
	font-weight:700;color:var(--adc-ink);background:#fff;-moz-appearance:textfield;box-shadow:none!important}
.adc-cartitem__qty .quantity .qty::-webkit-outer-spin-button,
.adc-cartitem__qty .quantity .qty::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.adc-cartitem__qty .quantity .qty:focus{outline:none;box-shadow:none!important}
.adc-qty__btn{
	width:36px;height:38px;display:grid;place-items:center;border:0;background:#fff;cursor:pointer;
	color:var(--adc-navy-800);padding:0;transition:background .15s,color .15s}
.adc-qty__btn .adc-icon{width:15px;height:15px;stroke-width:2.4}
/* Astra fills any <button> accent-blue on hover/focus/active — pin ours. */
.adc-qty__btn:hover,.adc-qty__btn:focus,.adc-qty__btn:active,.adc-qty__btn:focus-visible{
	background:var(--adc-paper);color:var(--adc-navy-700);box-shadow:none;outline:none}
.adc-qty__btn:focus-visible{box-shadow:inset 0 0 0 2px var(--adc-accent)}
.adc-qty__btn[disabled]{opacity:.35;cursor:not-allowed}

/* ── coupon disclosure ───────────────────────────────────── */
.adc-coupon{border:1px dashed #CBD8E8;border-radius:12px;background:var(--adc-paper-2);margin:16px 0 0}
.adc-coupon > summary{
	list-style:none;cursor:pointer;display:flex;align-items:center;gap:9px;padding:13px 16px;
	font-size:.9rem;font-weight:600;color:var(--adc-navy-800)}
.adc-coupon > summary::-webkit-details-marker{display:none}
.adc-coupon > summary .adc-icon{width:17px;height:17px;color:var(--adc-navy-500)}
.adc-coupon > summary::after{content:"+";margin-left:auto;font-size:1.15rem;line-height:1;color:var(--adc-ink-soft)}
.adc-coupon[open] > summary::after{content:"\2212"}
.adc-coupon__row{display:flex;gap:9px;padding:0 16px 15px;flex-wrap:wrap}
.adc-coupon__row .input-text{flex:1 1 170px;min-width:0}

.adc-cart__actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:18px 0 0}
.adc-cart__back{
	display:inline-flex;align-items:center;gap:7px;font-size:.92rem;font-weight:600;
	color:var(--adc-navy-800);text-decoration:none;margin-right:auto}
.adc-cart__back:hover{color:var(--adc-accent)}
.adc-cart__back .adc-icon{width:17px;height:17px}
.adc-flip{transform:rotate(180deg)}
.woocommerce .adc-cart__update{background:#fff;color:var(--adc-navy-800);border-color:var(--adc-line)}
.woocommerce .adc-cart__update:hover,.woocommerce .adc-cart__update:focus{background:#fff;color:var(--adc-navy-700);border-color:var(--adc-navy-500)}
.woocommerce .adc-cart__update[disabled]{opacity:.45;cursor:default;transform:none;box-shadow:none}

.adc-cartnote{
	display:flex;gap:10px;align-items:flex-start;margin:22px 0 0;padding:14px 16px;border-radius:12px;
	background:var(--adc-paper);font-size:.84rem;line-height:1.6;color:var(--adc-ink-soft)}
.adc-cartnote .adc-icon{width:17px;height:17px;flex:0 0 auto;margin-top:2px;color:var(--adc-navy-500)}

/* ── summary card (cart totals + checkout review) ────────── */
.adc-summary{
	background:#fff;border:1px solid var(--adc-line);border-radius:var(--adc-radius);
	box-shadow:var(--adc-shadow);overflow:hidden;padding:0;width:auto;float:none}
.adc-summary__head{
	display:flex;align-items:center;justify-content:space-between;gap:12px;
	background:var(--adc-navy-800);padding:16px 20px}
.adc-summary__title{margin:0;font-size:1.06rem;font-weight:800;color:#fff;letter-spacing:-.01em}
.adc-summary__count{
	font-size:.74rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#fff;
	background:rgba(255,255,255,.14);border-radius:999px;padding:5px 11px}
.adc-summary__body{padding:6px 20px 20px}

.adc-sumrow{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--adc-line)}
.adc-sumrow__k{font-size:.92rem;color:var(--adc-ink-soft);font-weight:600}
.adc-sumrow__v{font-size:.95rem;color:var(--adc-ink);font-weight:700;text-align:right}
.adc-sumrow__v .amount{color:inherit}
.adc-sumrow--muted .adc-sumrow__v{color:var(--adc-ink-soft);font-weight:600;font-size:.88rem}
.adc-sumrow--save .adc-sumrow__k,.adc-sumrow--save .adc-sumrow__v{color:var(--adc-success)}
.adc-sumrow--total{border-bottom:0;padding:16px 0 4px;align-items:center}
.adc-sumrow--total .adc-sumrow__k{font-size:1rem;font-weight:800;color:var(--adc-ink)}
.adc-sumrow--total .adc-sumrow__v{font-size:1.5rem;font-weight:800;color:var(--adc-navy-800);letter-spacing:-.02em}
.adc-sumrow--total .adc-sumrow__v small{display:block;font-size:.7rem;font-weight:600;color:var(--adc-ink-soft);letter-spacing:0}

/* shipping method radios inside the card */
.adc-sumrow--ship{flex-direction:column;align-items:stretch;gap:8px}
.adc-shipmethods{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;text-align:left}
.adc-shipmethods li{display:flex;align-items:center;gap:8px;font-size:.9rem}
.adc-shipmethods label{margin:0;font-weight:600;color:var(--adc-ink)}
.woocommerce-shipping-destination{margin:8px 0 0;font-size:.82rem;color:var(--adc-ink-soft);text-align:left}
.adc-sumrow--ship .shipping-calculator-button{font-size:.84rem;font-weight:600;color:var(--adc-accent)}
.adc-sumrow--ship .shipping-calculator-form{margin-top:10px}

/* CTA + trust */
.adc-summary .wc-proceed-to-checkout{padding:16px 0 0;margin:0}
.woocommerce .adc-summary .wc-proceed-to-checkout a.checkout-button{
	display:flex;align-items:center;justify-content:center;gap:8px;width:100%;
	background:var(--adc-navy-800);color:#fff;font-size:1.02rem;font-weight:700;padding:15px 22px;border-radius:999px}
.woocommerce .adc-summary .wc-proceed-to-checkout a.checkout-button:hover,
.woocommerce .adc-summary .wc-proceed-to-checkout a.checkout-button:focus{background:var(--adc-navy-700);color:#fff}

.adc-trustlist{list-style:none;margin:18px 0 0;padding:16px 0 0;border-top:1px solid var(--adc-line);display:flex;flex-direction:column;gap:10px}
.adc-trustlist li{display:flex;align-items:center;gap:10px;font-size:.83rem;color:var(--adc-ink-soft);line-height:1.45}
.adc-trustlist .adc-icon{width:17px;height:17px;flex:0 0 auto;color:var(--adc-navy-500)}
.adc-cko__aside .adc-trustlist,.adc-emptycart .adc-trustlist{
	border:1px solid var(--adc-line);border-radius:var(--adc-radius);background:var(--adc-paper-2);padding:16px 18px;margin-top:0}

/* ── empty cart ──────────────────────────────────────────── */
.adc-emptycart{
	max-width:620px;margin:0 auto;text-align:center;background:#fff;border:1px solid var(--adc-line);
	border-radius:var(--adc-radius);box-shadow:var(--adc-shadow-sm);padding:clamp(30px,5vw,54px) clamp(22px,4vw,44px)}
.adc-emptycart__art{width:96px;margin:0 auto 20px;opacity:.9}
.adc-emptycart__art svg{width:100%;height:auto;display:block}
.adc-emptycart h1{margin:6px 0 0;font-size:clamp(1.6rem,3vw,2.1rem);font-weight:800;letter-spacing:-.02em;color:var(--adc-ink)}
.adc-emptycart__lead{margin:12px auto 0;max-width:46ch;color:var(--adc-ink-soft);font-size:.98rem;line-height:1.65}
.adc-emptycart__cta{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin:24px 0 0}
.adc-emptycart .adc-trustlist{text-align:left;margin-top:28px}

/* ── checkout ────────────────────────────────────────────── */
.adc-cko__details{display:grid;grid-template-columns:1fr;gap:16px;float:none;width:auto}
.adc-cko__panel{
	background:#fff;border:1px solid var(--adc-line);border-radius:var(--adc-radius);
	box-shadow:var(--adc-shadow-sm);padding:clamp(18px,2.4vw,26px);float:none;width:auto}
.adc-cko__panel:empty{display:none}
.woocommerce .adc-cko__panel h3{
	margin:0 0 16px;padding:0 0 13px;border-bottom:1px solid var(--adc-line);
	font-size:1.14rem;font-weight:800;letter-spacing:-.015em;color:var(--adc-ink)}
.woocommerce .adc-cko__panel h3#ship-to-different-address{border-bottom:0;padding-bottom:0;margin-bottom:6px;font-size:1rem;display:flex;align-items:center;gap:10px}
.adc-cko__panel .form-row{margin:0 0 14px;padding:0}
.adc-cko__panel .form-row-first,.adc-cko__panel .form-row-last{width:100%;float:none}
.adc-cko__panel .woocommerce-billing-fields__field-wrapper,
.adc-cko__panel .woocommerce-shipping-fields__field-wrapper,
.adc-cko__panel .woocommerce-additional-fields__field-wrapper{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
.adc-cko__panel .form-row-wide,.adc-cko__panel .notes,
.adc-cko__panel #order_comments_field,
.adc-cko__panel .create-account,
.adc-cko__panel .woocommerce-account-fields{grid-column:1/-1}
@media(max-width:520px){
	.adc-cko__panel .woocommerce-billing-fields__field-wrapper,
	.adc-cko__panel .woocommerce-shipping-fields__field-wrapper,
	.adc-cko__panel .woocommerce-additional-fields__field-wrapper{grid-template-columns:1fr}
}
.adc-cko__review-title{margin:0 0 12px;font-size:1.05rem;font-weight:800;color:var(--adc-ink)}

/* review-order card */
.adc-review{border:0;background:transparent;display:block;margin:0}
.adc-cko__aside .adc-summary{border:1px solid var(--adc-line);border-radius:var(--adc-radius);background:#fff;box-shadow:var(--adc-shadow);overflow:hidden;padding:0}
.adc-review__items{padding:6px 18px 0}
.adc-reviewitem{display:grid;grid-template-columns:56px minmax(0,1fr) auto;gap:12px;align-items:center;padding:13px 0;border-bottom:1px solid var(--adc-line)}
.adc-reviewitem__media{position:relative;width:56px;height:56px;border-radius:10px;background:var(--adc-paper-2);border:1px solid var(--adc-line);display:grid;place-items:center;overflow:visible}
.adc-reviewitem__media svg{width:auto;height:42px;display:block}
.adc-reviewitem__media img{width:100%;height:100%;object-fit:cover;display:block;border-radius:9px}
.adc-reviewitem__qty{
	position:absolute;top:-7px;right:-7px;min-width:22px;height:22px;padding:0 6px;border-radius:999px;
	background:var(--adc-navy-800);color:#fff;font-size:.72rem;font-weight:700;display:grid;place-items:center;
	border:2px solid #fff}
.adc-reviewitem__name{display:block;font-size:.93rem;font-weight:700;color:var(--adc-ink);line-height:1.35}
.adc-reviewitem__body .adc-cartmeta{margin-top:6px}
.adc-reviewitem__body .adc-cartmeta__pill{font-size:.7rem;padding:3px 8px}
.adc-reviewitem__total{font-size:.95rem;font-weight:800;color:var(--adc-ink);text-align:right;white-space:nowrap}
.adc-review__totals{padding:4px 18px 18px}

/* payment box */
.woocommerce-checkout .adc-cko__aside #payment{background:transparent;border:0;border-radius:0;margin-top:16px}
.woocommerce-checkout .adc-cko__aside #payment ul.payment_methods{
	background:#fff;border:1px solid var(--adc-line);border-radius:var(--adc-radius);padding:14px 18px;margin:0}
.woocommerce-checkout .adc-cko__aside #payment ul.payment_methods li{margin:0;padding:6px 0;line-height:1.5}
.woocommerce-checkout .adc-cko__aside #payment ul.payment_methods li label{font-weight:600;color:var(--adc-ink);margin-left:6px}
.woocommerce-checkout .adc-cko__aside #payment div.form-row.place-order{padding:16px 0 0;margin:0}
.woocommerce #payment #place_order{width:100%;font-size:1.05rem;padding:16px 24px;border-radius:999px}
.woocommerce-checkout .adc-cko__aside .woocommerce-privacy-policy-text{font-size:.8rem;color:var(--adc-ink-soft);line-height:1.6;margin-top:12px}
.woocommerce-checkout .adc-cko__aside .woocommerce-terms-and-conditions-wrapper{margin-top:12px;font-size:.85rem}

/* ── responsive: cart line collapses to two rows ─────────── */
@media(max-width:760px){
	.adc-cartitem{grid-template-columns:76px minmax(0,1fr);gap:14px;row-gap:14px}
	.adc-cartitem__media{width:76px;height:76px}
	.adc-cartitem__media svg{height:58px}
	.adc-cartitem__qty{grid-column:1/2;text-align:left}
	.adc-cartitem__total{grid-column:2/3;text-align:right;min-width:0}
	.adc-cart__actions{gap:10px}
	.adc-cart__back{width:100%;margin-right:0}
}

/* ── funnel overrides: two inherited rules fight this layout ──────────
   1) Astra's page-builder template prints an INLINE rule
      `.ast-page-builder-template .entry-content[data-ast-blocks-layout] >
       :not(.wp-block-group):where(...) > *{max-width:none}`  (0,4,0)
      which strips the max-width off our `.adc-wrap`, so the cart ran the
      full window width. Restated here with !important — a plain class
      selector cannot outrank it.
   2) WooCommerce sizes `.cart-collaterals .cart_totals` to `width:48%`
      (0,3,0), which squeezed the summary card to ~180px inside its own
      372px column. The class is kept on the aside (third-party code
      targets it), so the card is re-widened by a more specific rule. */
.ast-page-builder-template .entry-content .adc-cartpage,
.ast-page-builder-template .entry-content .adc-ckopage{
	max-width:var(--adc-maxw)!important;margin-left:auto;margin-right:auto}

.woocommerce .cart-collaterals .cart_totals.adc-summary{width:auto;float:none;padding:0}
.woocommerce .cart-collaterals .adc-summary .adc-summary__body{padding:6px 20px 20px}

/* WooCommerce styles `a.remove` as a round 1em badge; ours is a text button. */
.woocommerce .adc-cartitem__remove{border-radius:0!important;font-size:.8rem!important}

/* The templates bring their own vertical rhythm now. */
.woocommerce-cart .site-content,
.woocommerce-checkout .site-content{padding-top:0;padding-bottom:0}
.woocommerce-account .site-content{padding-top:clamp(28px,4vw,48px);padding-bottom:clamp(40px,6vw,72px)}

/* ── three more inherited rules that outrank a plain class ──────────
   (a) The summary card's title sat on the navy header in ink-navy text —
       invisible. Our own earlier rule `.woocommerce-cart .cart_totals h2`
       (0,2,1) was the winner; re-scope past it.
   (b) WooCommerce draws `a.remove` as a round badge via a ::before ring.
       Our remove control is a text button, so the ring has to go.
   (c) `.woocommerce button.button` (0,2,1) beat `.woocommerce
       .adc-cart__update` (0,2,0), so the outline "Update basket" button
       came out solid navy. */
.woocommerce-cart .adc-summary .adc-summary__title,
.woocommerce-checkout .adc-summary .adc-summary__title{color:#fff}

.woocommerce .adc-cartitem__remove::before,
.woocommerce .adc-cartitem__remove::after{content:none!important;display:none!important;border:0!important}

.woocommerce button.button.adc-cart__update{
	background:#fff;color:var(--adc-navy-800);border:1.5px solid var(--adc-line);box-shadow:none}
.woocommerce button.button.adc-cart__update:hover,
.woocommerce button.button.adc-cart__update:focus,
.woocommerce button.button.adc-cart__update:active{
	background:#fff;color:var(--adc-navy-700);border-color:var(--adc-navy-500);box-shadow:none;transform:none}
.woocommerce button.button.adc-cart__update[disabled],
.woocommerce button.button.adc-cart__update:disabled{
	background:var(--adc-paper-2);color:var(--adc-ink-soft);border-color:var(--adc-line);
	opacity:1;cursor:default;transform:none;box-shadow:none}

/* the cart form dims while an auto-update round-trip is in flight */
.woocommerce-cart-form.is-updating{opacity:.55;pointer-events:none;transition:opacity .15s}

/* ── checkout: unpick WooCommerce's own float layout ────────────────
   The classic checkout is built from floats — `.col2-set` and its
   `.col-1`/`.col-2` are `float:left;width:48%`, and `#order_review` is
   `float:right;width:48%`. Our grid already positions those boxes, so the
   floats have to be neutralised or the columns collapse to ~48% of 48%.
   `#order_review` is an ID (1,0,0), so only an ID-qualified selector wins;
   the class boxes need one extra class each. The ids/classes themselves
   are kept — WooCommerce's checkout JS updates `#order_review` by id. */
.woocommerce .col2-set.adc-cko__details,
.woocommerce-page .col2-set.adc-cko__details{width:auto;float:none;display:grid}
.woocommerce .adc-cko__details > .col-1.adc-cko__panel,
.woocommerce .adc-cko__details > .col-2.adc-cko__panel,
.woocommerce-page .adc-cko__details > .col-1.adc-cko__panel,
.woocommerce-page .adc-cko__details > .col-2.adc-cko__panel{width:auto;float:none}
.woocommerce-checkout #order_review.adc-summary,
.woocommerce-checkout #order_review.adc-summary.adc-summary{width:auto;float:none;padding:0}

/* Notices fired by `woocommerce_before_checkout_form` (login prompt, coupon
   toggle) now render inside the page wrap — keep them off the card grid. */
.adc-cko__notices{margin:0 0 clamp(16px,2.4vw,26px)}
.adc-cko__notices .woocommerce-form-login,
.adc-cko__notices .checkout_coupon{
	background:#fff;border:1px solid var(--adc-line);border-radius:var(--adc-radius);
	padding:clamp(16px,2.2vw,24px);box-shadow:var(--adc-shadow-sm);margin:12px 0 0}
.adc-cko__notices .checkout_coupon .form-row{margin-bottom:0}

/* ── Astra's own checkout column rule ───────────────────────────────
   Astra prints an INLINE stylesheet containing, inside @media (min-width:922px):
     .woocommerce-page.woocommerce-checkout form #customer_details.col2-set{width:55%;float:left}
     ... plus matching float/width/border rules for #order_review and
     #order_review_heading (that last one is why "Your order" arrived inside a
     2px box).
   That selector is (1,4,1) AND it is inline, so it beats anything a stylesheet
   can say by specificity or order alone — !important is the only lever here.
   We are replacing Astra's float layout with our own grid wholesale, so this is
   a deliberate, contained override rather than a patch. */
@media (min-width:922px){
	.woocommerce-page.woocommerce-checkout form #customer_details.col2-set.adc-cko__details{
		width:auto!important;float:none!important}
	.woocommerce-page.woocommerce-checkout form #order_review.adc-summary{
		width:auto!important;float:none!important;padding:0!important}
	.woocommerce-page.woocommerce-checkout form #order_review_heading.adc-cko__review-title{
		width:auto!important;float:none!important;border:0!important;padding:0!important;margin:0 0 12px!important}
}
.woocommerce-checkout #order_review_heading.adc-cko__review-title{border:0;padding:0}

/* ── checkout aside: the review table IS the card ───────────────────
   `#order_review` wraps two distinct things — the order review and the
   payment box — so it stays a bare container and each child becomes its
   own card. Otherwise the payment panel renders as a box inside a box. */
.woocommerce-checkout .adc-cko__aside #order_review.adc-summary{
	background:transparent;border:0;box-shadow:none;border-radius:0;overflow:visible}
.adc-cko__aside .adc-review{
	background:#fff;border:1px solid var(--adc-line);border-radius:var(--adc-radius);
	box-shadow:var(--adc-shadow);overflow:hidden}
/* our own card header replaces it */
.adc-cko__review-title{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.adc-review .adc-summary__head{margin:0}
.adc-review__items{padding:6px 18px 0}
.adc-review__items .adc-reviewitem:last-child{border-bottom:0}
.adc-review__totals{padding:0 18px 18px;border-top:1px solid var(--adc-line);margin-top:0}
.adc-review__totals .adc-sumrow:first-child{border-top:0}

/* .adc-review carries WooCommerce's `shop_table` class (its AJAX target), which
   picks up a padded-box style from the theme; the card sets its own padding. */
.woocommerce-checkout .adc-cko__aside .adc-review{padding:0;margin:0}

/* ── checkout aside, part 2: Astra's stray #order_review border ─────
   Astra's INLINE sheet also carries
     form #order_review:not(.elementor-widget-woocommerce-checkout-page #order_review){
       border-width:0 2px 2px; border-style:solid; border-color:var(--ast-border-color) }
   i.e. a bottomless three-sided box around the whole aside. `:not()` takes the
   specificity of its argument, so that selector is (2,1,1) — TWO ids — and the
   (1,3,0) reset above could not touch it. Result: the privacy text and Place
   order button sat flush against a stray border with no padding.
   `#order_review` is only a container here (it holds the review card AND the
   payment box), so it gets no border of its own. */
.woocommerce-checkout .adc-cko__aside #order_review.adc-summary{
	border:0!important;border-width:0!important;border-radius:0!important;background:transparent!important}

/* The payment block becomes its own card, so its contents have breathing room
   instead of touching an edge. The methods list is then just the top section of
   that card, divided from the button rather than boxed on its own. */
.woocommerce-checkout .adc-cko__aside #payment{
	background:#fff;border:1px solid var(--adc-line);border-radius:var(--adc-radius);
	box-shadow:var(--adc-shadow-sm);padding:clamp(16px,2.2vw,22px);margin-top:16px}
.woocommerce-checkout .adc-cko__aside #payment ul.payment_methods{
	background:transparent;border:0;border-radius:0;padding:0;margin:0 0 4px;list-style:none}
.woocommerce-checkout .adc-cko__aside #payment ul.payment_methods:not(:empty){
	border-bottom:1px solid var(--adc-line);padding-bottom:14px;margin-bottom:4px}
.woocommerce-checkout .adc-cko__aside #payment ul.payment_methods li{margin:0;padding:6px 0;line-height:1.5}
.woocommerce-checkout .adc-cko__aside #payment ul.payment_methods li label{font-weight:600;color:var(--adc-ink);margin-left:6px}
/* the "no gateways yet" notice renders as a list item — let it keep its own box */
.woocommerce-checkout .adc-cko__aside #payment ul.payment_methods li.woocommerce-notice,
.woocommerce-checkout .adc-cko__aside #payment ul.payment_methods li.woocommerce-info{margin:0}
.woocommerce-checkout .adc-cko__aside #payment div.form-row.place-order{padding:14px 0 0;margin:0}
.woocommerce-checkout .adc-cko__aside .woocommerce-privacy-policy-text{
	font-size:.8rem;color:var(--adc-ink-soft);line-height:1.6;margin:0 0 14px}
.woocommerce-checkout .adc-cko__aside .woocommerce-privacy-policy-text p{margin:0}
.woocommerce-checkout .adc-cko__aside .woocommerce-terms-and-conditions-wrapper{margin:0 0 14px;font-size:.85rem}

/* ============================================================
   MY ACCOUNT — slim navy rail + wide content
   ------------------------------------------------------------
   WooCommerce floats the account nav at `width:30%` (360px of a 1200px page)
   and the content at 70%. Replaced with a grid: a fixed 236px rail in the
   WordPress-admin idiom (always visible, sticky, icon + label) and everything
   else for the content — the affiliate dashboard gains ~120px.
   Markup: adc-peptides-child/woocommerce/myaccount/navigation.php.
   ============================================================ */
/* Opt-IN, not opt-out: the grid only engages when the account nav is actually
   present. The logged-out login/register screen and the order-received view have
   no nav, and if this were written as "grid unless :not(:has(nav))" then a
   browser without :has() support would drop the whole rule and drop those pages
   into a 236px column. Written positively, the worst case is simply no grid —
   WooCommerce's own float layout still renders a usable page. */
.woocommerce-account .woocommerce:has(.woocommerce-MyAccount-navigation){
	display:grid;grid-template-columns:236px minmax(0,1fr);gap:clamp(18px,2.2vw,28px);align-items:start}

.woocommerce-account .woocommerce-MyAccount-navigation.adc-acct-nav,
.woocommerce-account .woocommerce-MyAccount-content{width:auto;float:none;margin:0}

/* ── the rail ─────────────────────────────────────────────── */
.adc-acct-nav{
	/* colour first, gradient second — see the mobile-menu note in widgets.css */
	position:sticky;top:96px;background-color:var(--adc-navy-900);
	background-image:linear-gradient(165deg,var(--adc-navy-900),var(--adc-navy-700));
	border-radius:var(--adc-radius);padding:8px;box-shadow:var(--adc-shadow);overflow:hidden}

.adc-acct-nav__id{display:flex;align-items:center;gap:11px;padding:13px 12px 15px}
.adc-acct-nav__avatar{
	width:38px;height:38px;flex:0 0 auto;border-radius:50%;display:grid;place-items:center;
	background:rgba(255,255,255,.12);color:#fff;font-weight:800;font-size:1rem;
	border:1px solid rgba(255,255,255,.18)}
.adc-acct-nav__who{min-width:0;display:flex;flex-direction:column;gap:2px}
.adc-acct-nav__eyebrow{
	font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:#8FA9CC}
.adc-acct-nav__name{
	font-size:.94rem;font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.woocommerce-account .adc-acct-nav ul{
	list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;
	background:transparent;border:0;border-radius:0}
.woocommerce-account .adc-acct-nav li{margin:0}
.woocommerce-account .adc-acct-nav li a{
	display:flex;align-items:center;gap:11px;padding:11px 12px;border-radius:10px;
	font-size:.92rem;font-weight:600;color:#C8D8EE;text-decoration:none;line-height:1.3;
	transition:background .15s,color .15s}
.woocommerce-account .adc-acct-nav li a .adc-icon{
	width:18px;height:18px;flex:0 0 auto;opacity:.75;transition:opacity .15s}
.woocommerce-account .adc-acct-nav li a:hover,
.woocommerce-account .adc-acct-nav li a:focus{background:rgba(255,255,255,.09);color:#fff}
.woocommerce-account .adc-acct-nav li a:hover .adc-icon{opacity:1}
.woocommerce-account .adc-acct-nav li.is-active a{
	background:#fff;color:var(--adc-navy-900);box-shadow:0 2px 8px rgba(0,0,0,.18)}
.woocommerce-account .adc-acct-nav li.is-active a .adc-icon{opacity:1;color:var(--adc-accent)}
.woocommerce-account .adc-acct-nav li a:focus-visible{outline:2px solid var(--adc-accent);outline-offset:2px}

/* log out sits apart from the destinations above it */
.woocommerce-account .adc-acct-nav li.adc-acct-nav__out{
	margin-top:6px;padding-top:8px;border-top:1px solid rgba(255,255,255,.12)}
.woocommerce-account .adc-acct-nav li.adc-acct-nav__out a{color:#93A9C7}
.woocommerce-account .adc-acct-nav li.adc-acct-nav__out a:hover{background:rgba(192,57,43,.22);color:#fff}

/* ── the content card ─────────────────────────────────────── */
.woocommerce-account .woocommerce-MyAccount-content{
	border:1px solid var(--adc-line);border-radius:var(--adc-radius);background:#fff;
	padding:clamp(20px,2.6vw,32px);box-shadow:var(--adc-shadow-sm);min-width:0}

/* ── mobile: the rail becomes a scrollable tab strip ──────── */
@media(max-width:900px){
	.woocommerce-account .woocommerce{grid-template-columns:1fr}
	.adc-acct-nav{position:static;padding:8px 8px 4px}
	.adc-acct-nav__id{padding:9px 8px 12px}
	.woocommerce-account .adc-acct-nav ul{
		flex-direction:row;overflow-x:auto;gap:6px;padding-bottom:6px;
		scrollbar-width:thin;-webkit-overflow-scrolling:touch}
	.woocommerce-account .adc-acct-nav li a{white-space:nowrap;padding:9px 13px}
	.woocommerce-account .adc-acct-nav li.adc-acct-nav__out{
		margin-top:0;padding-top:0;border-top:0;border-left:1px solid rgba(255,255,255,.12);
		margin-left:4px;padding-left:6px}
}

/* The `.woocommerce` wrapper carries a legacy clearfix (`::before`/`::after`
   with `display:table`). Harmless while it was floated — but a grid container
   turns BOTH pseudo-elements into grid items, so `::before` took cell 1 and
   pushed the nav into the 936px column while the content dropped to the 236px
   one on row 2. Kill the clearfix here (a grid needs no float clearing) and pin
   both columns explicitly rather than trusting auto-placement — the same trap
   that staggered the My-Account address cards diagonally. */
.woocommerce-account .woocommerce::before,
.woocommerce-account .woocommerce::after{content:none;display:none}
.woocommerce-account .woocommerce > .woocommerce-MyAccount-navigation{grid-column:1;grid-row:1}
.woocommerce-account .woocommerce > .woocommerce-MyAccount-content{grid-column:2;grid-row:1}
.woocommerce-account .woocommerce > .woocommerce-notices-wrapper{grid-column:1/-1;grid-row:auto}
@media(max-width:900px){
	.woocommerce-account .woocommerce > .woocommerce-MyAccount-navigation{grid-column:1;grid-row:1}
	.woocommerce-account .woocommerce > .woocommerce-MyAccount-content{grid-column:1;grid-row:2}
}
