/* ==========================================================================
   DESIGN TOKENS  (WordPress: move to theme style.css / theme.json)
   Layout: one column on phones with a fixed order bar at the thumb;
   products grid + sticky spec-sheet summary from 1024px.
   ========================================================================== */
:root{
  /* colour */
  --ink:#0d0c0b;        /* page */
  --plate:#16130f;      /* cards */
  --plate-2:#1d1914;    /* selected / raised */
  --rule:#2e2821;       /* hairlines */
  --bone:#ede6d6;       /* primary text, summary sheet */
  --dust:#9a907f;       /* secondary text */
  --brass:#b8925a;      /* ORDER stripes, unit labels */
  --signal:#f0561d;     /* action, selection */
  --signal-ink:#1a0a03; /* text on signal */
  /* type */
  --f-display:"Archivo", "Helvetica Neue", Arial, sans-serif;
  --f-mono:"IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;
  --t-xs:.6875rem;  /* 11 */
  --t-sm:.8125rem;  /* 13 */
  --t-md:1rem;      /* 16 */
  --t-lg:1.25rem;   /* 20 */
  --t-xl:1.75rem;   /* 28 */
  /* space */
  --gut:max(16px, env(safe-area-inset-left, 0px));
  --gut-r:max(16px, env(safe-area-inset-right, 0px));
  --tap:48px;
  --bar-h:76px;
  color-scheme:dark;
}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--ink);color:var(--bone);
  font-family:var(--f-display);font-size:var(--t-md);line-height:1.45;
  font-variation-settings:"wdth" 100;
  -webkit-font-smoothing:antialiased;
  padding-bottom:calc(var(--bar-h) + env(safe-area-inset-bottom, 0px));
}
.wrap{max-width:1440px;margin:0 auto;padding-left:var(--gut);padding-right:var(--gut-r)}
.mono{font-family:var(--f-mono);font-weight:400;letter-spacing:.08em;text-transform:uppercase;font-size:var(--t-xs)}
a{color:inherit}
:focus-visible{outline:2px solid var(--signal);outline-offset:3px}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ===================== HEADER (header.php) ===================== */
.site-head{border-bottom:1px solid var(--rule)}
.site-head .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:14px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:800;font-size:var(--t-md);letter-spacing:.02em;font-variation-settings:"wdth" 112}
.brand__mark{display:grid;gap:2px;width:22px}
.brand__mark i{display:block;height:3px;background:var(--signal)}
.brand__mark i:nth-child(2){width:72%}
.brand__mark i:nth-child(3){width:44%}
.head-facts{display:flex;gap:20px;margin:0;padding:0;list-style:none}
.head-facts li{display:grid;gap:2px}
.head-facts dt,.head-facts .k{color:var(--signal)}
.head-facts .v{color:var(--bone)}
.head-facts li.opt{display:none}
.notice{border-bottom:1px solid var(--rule);background:var(--plate)}
.notice p{margin:0;padding-block:10px;color:var(--dust);font-family:var(--f-mono);font-size:var(--t-xs);line-height:1.6;letter-spacing:.02em}

/* ===================== HERO ===================== */
.hero{
  position:relative;border-bottom:1px solid var(--rule);
  background-image:
    linear-gradient(var(--rule) 1px, transparent 1px),
    linear-gradient(90deg, var(--rule) 1px, transparent 1px);
  background-size:44px 44px;background-position:-1px -1px;
}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg, transparent 40%, var(--ink));pointer-events:none}
.hero .wrap{position:relative;z-index:1;padding-block:24px 18px}
.hero__rev{color:var(--dust);margin:0 0 6px}
.order-word{
  margin:0;line-height:.8;font-weight:900;font-variation-settings:"wdth" 100;
  font-size:clamp(4.5rem, 24.5vw, 20rem);letter-spacing:-.045em;
  color:var(--brass);
  background:repeating-linear-gradient(90deg, var(--brass) 0 2.5px, transparent 2.5px 4px);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  padding-top:.06em;
}
.tagline{
  margin:14px 0 0;color:var(--signal);font-weight:900;font-variation-settings:"wdth" 100;text-transform:uppercase;
  font-size:clamp(2rem, 10.5vw, 6.5rem);line-height:.92;letter-spacing:-.02em;text-wrap:balance;
}
.steps{display:grid;grid-template-columns:repeat(3,1fr);margin:18px 0 0;padding:0;list-style:none;border-top:1px solid var(--rule)}
.steps li{padding:12px 8px 0 0;display:grid;gap:4px;color:var(--bone);font-size:var(--t-sm);font-weight:600;line-height:1.25}
.steps li + li{padding-left:10px;border-left:1px solid var(--rule)}
.steps .n{font-family:var(--f-mono);font-size:var(--t-xs);color:var(--signal)}

/* ===================== SHOP LAYOUT (front-page.php) ===================== */
.shop{padding-block:28px 40px}
.shop__grid{display:grid;gap:32px}
.sec-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:14px}
.sec-head h2{margin:0;font-size:var(--t-xl);font-weight:800;letter-spacing:-.01em;line-height:1}
.sec-head .mono{color:var(--dust)}

/* ---------- product card (template-parts/product-card.php -> one WooCommerce product) ---------- */
.products{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.product{position:relative;background:var(--plate);border:1px solid var(--rule);transition:border-color .15s, background-color .15s}
.product__hit{display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:14px;min-height:72px;padding:12px 16px;cursor:pointer}
.product__check{position:absolute;opacity:0;width:1px;height:1px}
.product__box{width:28px;height:28px;border:1.5px solid var(--dust);border-radius:6px;display:grid;place-items:center;background:transparent;transition:background-color .12s,border-color .12s}
.product__box::after{content:"";width:12px;height:7px;border-left:2.5px solid var(--signal-ink);border-bottom:2.5px solid var(--signal-ink);transform:translateY(-2px) rotate(-45deg) scale(0);transition:transform .14s}
.product__meta{display:grid;gap:3px;min-width:0}
.product__unit{color:var(--brass)}
.product__name{font-weight:750;font-size:1.0625rem;line-height:1.2;font-variation-settings:"wdth" 104}
.product__dose{color:var(--dust);font-weight:600;white-space:nowrap}
.product__price{font-family:var(--f-mono);font-weight:500;font-size:var(--t-md);font-variant-numeric:tabular-nums;letter-spacing:0}
.product:hover{border-color:#4a4037}
.product__check:focus-visible + .product__box{outline:2px solid var(--signal);outline-offset:3px}
.product.is-on{border-color:var(--signal);background:var(--plate-2)}
.product.is-on .product__box{background:var(--signal);border-color:var(--signal)}
.product.is-on .product__box::after{transform:translateY(-2px) rotate(-45deg) scale(1)}

.product__qty{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 16px 12px 58px}
.product__qty .mono{color:var(--dust)}
.stepper{display:flex;align-items:center;border:1px solid var(--rule)}
.stepper button{width:var(--tap);height:40px;border:0;background:transparent;color:var(--bone);font:600 1.25rem/1 var(--f-mono);cursor:pointer}
.stepper button:active{background:var(--rule)}
.stepper output{min-width:36px;text-align:center;font-family:var(--f-mono);font-variant-numeric:tabular-nums}

/* placeholder (unit not yet named) */
.product.is-tba{background:transparent;border-style:dashed;order:1}
.product.is-tba .product__hit{cursor:default;min-height:60px}
.product.is-tba .product__box{border-style:dashed;opacity:.5}
.product.is-tba .product__name{color:var(--dust);font-weight:600}
.product.is-tba .product__price{color:var(--dust);font-size:var(--t-xs);font-family:var(--f-mono);text-transform:uppercase;letter-spacing:.08em}

/* add-on */
.addon-sec{margin-top:36px}
.addon-sec .products{grid-template-columns:1fr!important}
.product--addon .product__hit{min-height:88px}
.product--addon .product__name{color:var(--signal);font-weight:900;font-size:clamp(1.375rem, 6vw, 2.5rem);line-height:.95;letter-spacing:-.01em;font-variation-settings:"wdth" 108}
.product--addon .product__note{color:var(--dust);font-size:var(--t-sm);font-weight:500}

/* ===================== ORDER SUMMARY: "order manifest" ===================== */
/* phones: fixed bar at the thumb that opens the manifest. desktop: sticky manifest beside the products. */
.summary{
  position:fixed;left:0;right:0;bottom:0;z-index:20;
  background:var(--ink);color:var(--bone);
  border-top:2px solid var(--signal);
  box-shadow:0 -16px 40px rgba(0,0,0,.6);
  padding-bottom:env(safe-area-inset-bottom, 0px);
}
.summary__sheet{max-height:min(64vh, 560px);overflow:auto;background:var(--plate)}
.summary__sheet[hidden]{display:none}

.mani__head{display:grid;grid-template-columns:1fr auto;align-items:end;gap:8px 12px;background:var(--signal);color:var(--signal-ink);padding:14px var(--gut-r) 12px var(--gut)}
.mani__head h2{margin:0;font-weight:900;font-size:2rem;line-height:.85;letter-spacing:-.02em;text-transform:uppercase;font-variation-settings:"wdth" 112}
.mani__serial{display:grid;gap:2px;text-align:right;font-family:var(--f-mono);font-size:var(--t-xs);letter-spacing:.08em;text-transform:uppercase}
.mani__serial b{font-weight:500}
.mani__stripes{height:10px;background:repeating-linear-gradient(90deg, var(--signal) 0 3px, transparent 3px 6px);opacity:.85}

.mani__body{padding:4px var(--gut-r) 0 var(--gut)}
.mani__cols{display:grid;grid-template-columns:52px 1fr auto 32px;gap:8px;padding:12px 0 6px;border-bottom:1px solid var(--rule);font-family:var(--f-mono);font-size:var(--t-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--dust)}
.mani__cols span:nth-child(3){text-align:right}
.lines{list-style:none;margin:0;padding:0}
.line{display:grid;grid-template-columns:52px 1fr auto 32px;align-items:center;gap:8px;min-height:50px;border-bottom:1px solid var(--rule)}
.line__unit{font-family:var(--f-mono);font-size:var(--t-xs);letter-spacing:.06em;color:var(--brass)}
.line__name{font-weight:750;font-size:var(--t-sm);line-height:1.2;min-width:0}
.line__name i{font-style:normal;font-family:var(--f-mono);font-weight:400;color:var(--signal);margin-left:6px}
.line__amt{font-family:var(--f-mono);font-variant-numeric:tabular-nums;font-size:var(--t-sm);text-align:right}
.line__rm{width:32px;height:40px;border:0;background:transparent;color:var(--dust);font:500 1.125rem/1 var(--f-mono);cursor:pointer}
.line__rm:hover{color:var(--signal)}
.lines-empty{margin:12px 0 4px;padding:18px 14px;border:1px dashed var(--rule);color:var(--dust);font-size:var(--t-sm);line-height:1.4}
.lines-empty b{display:block;color:var(--bone);font-weight:800;margin-bottom:2px}

.totals{margin:0;padding:12px 0 4px;display:grid;grid-template-columns:1fr auto;gap:8px 12px}
.totals dt{font-family:var(--f-mono);font-size:var(--t-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--dust)}
.totals dd{margin:0;text-align:right;font-family:var(--f-mono);font-variant-numeric:tabular-nums;font-size:var(--t-sm)}
.grand{display:grid;grid-template-columns:auto 1fr;align-items:end;gap:12px;margin-top:10px;padding:12px 0 16px;border-top:1.5px solid var(--bone)}
.grand__label{font-family:var(--f-mono);font-size:var(--t-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--dust);line-height:1.5}
.grand__num{justify-self:end;font-weight:900;font-size:3.25rem;line-height:.8;letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-variation-settings:"wdth" 108}
.grand__num small{font-size:.45em;vertical-align:top;margin-right:2px;color:var(--brass)}

.summary__bar{display:grid;grid-template-columns:auto 1fr minmax(0,max-content);align-items:center;gap:12px;min-height:var(--bar-h);padding:10px var(--gut-r) 10px var(--gut);background:var(--ink)}
.bar__toggle{display:grid;gap:3px;text-align:left;border:0;background:transparent;color:var(--bone);padding:6px 4px 6px 0;min-height:var(--tap);cursor:pointer;font:inherit}
.bar__count{white-space:nowrap;font-weight:900;font-size:var(--t-lg);line-height:1;font-variation-settings:"wdth" 110}
.bar__count b{color:var(--signal);font-weight:900}
.bar__hint{font-family:var(--f-mono);font-size:var(--t-xs);letter-spacing:.08em;color:var(--dust);text-transform:uppercase}
.bar__hint::after{content:" \25B4"}
.summary.is-open .bar__hint::after{content:" \25BE"}
.bar__total{justify-self:end;text-align:right;display:grid;gap:3px}
.bar__total .mono{color:var(--dust)}
.bar__total strong{font-weight:900;font-size:1.5rem;line-height:1;font-variant-numeric:tabular-nums}

.btn{white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--tap);padding:0 18px;border:1.5px solid currentColor;background:transparent;color:inherit;font:800 var(--t-sm)/1 var(--f-display);letter-spacing:.06em;text-transform:uppercase;text-decoration:none;cursor:pointer;font-variation-settings:"wdth" 110}
.btn--go{min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;background:var(--signal);border-color:var(--signal);color:var(--signal-ink);min-height:52px;padding:0 18px;font-size:var(--t-md);font-weight:900}
.btn--go #go-label{min-width:0;overflow:hidden;text-overflow:ellipsis}
/* Phones: after tapping, "Opening checkout…" goes smaller and condensed so it fits the bar. */
@media (max-width:1023px){.btn--go.is-opening{font-size:var(--t-sm);letter-spacing:.01em;padding:0 10px;font-variation-settings:"wdth" 62}}
.btn--go .go__amt{display:none;font-family:var(--f-mono);font-weight:500;font-size:var(--t-sm);letter-spacing:0}
.btn--go:hover{filter:brightness(1.07)}
.btn--go[aria-disabled="true"]{color:var(--dust);border-color:var(--rule);cursor:not-allowed;filter:none;
  background:repeating-linear-gradient(135deg, var(--plate-2) 0 6px, var(--plate) 6px 12px)}
.summary__msg{margin:0;padding:10px var(--gut-r) 0 var(--gut);font-size:var(--t-sm);font-weight:600;color:var(--signal);background:var(--ink)}
.summary__msg:empty{display:none}
.summary__clear{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:0 0 14px}
.summary__clear .mono{color:var(--dust)}
.link-btn{border:0;background:transparent;padding:10px 0;color:var(--dust);font-family:var(--f-mono);font-size:var(--t-xs);letter-spacing:.08em;text-transform:uppercase;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.link-btn:hover{color:var(--signal)}
.desk-only{display:none}

/* ===================== LAB RESULTS + FOOTER (footer.php) ===================== */
.coa{border-top:1px solid var(--rule)}
.coa .wrap{padding-block:32px 40px}
.coa__head{display:grid;gap:8px;margin-bottom:18px}
.coa__head h2{margin:0;font-size:var(--t-xl);font-weight:800;line-height:1.05}
.coa__head p{margin:0;color:var(--dust);max-width:52ch;font-size:var(--t-sm)}
.coa-list{list-style:none;margin:0;padding:0;display:grid;gap:0;border-top:1px solid var(--rule)}
.coa-row{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:6px 16px;min-height:64px;padding:10px 4px;border-bottom:1px solid var(--rule);text-decoration:none}
.coa-row__meta{display:grid;gap:2px;min-width:0}
.coa-row__unit{color:var(--brass)}
.coa-row__name{font-weight:750;font-variation-settings:"wdth" 104;line-height:1.2}
.coa-row__pct{font-weight:900;font-size:var(--t-lg);font-variant-numeric:tabular-nums;color:var(--bone);font-variation-settings:"wdth" 104}
.coa-row__pct span{color:var(--signal)}
.coa-row__id{display:none;color:var(--dust)}
.coa-row__go{justify-self:end;color:var(--signal);border:1px solid var(--rule);padding:8px 10px}
.coa-row:hover .coa-row__go{border-color:var(--signal)}
.coa-row:hover{background:var(--plate)}
.coa-view{padding:0;border:1px solid var(--rule);background:var(--ink);color:var(--bone);width:min(640px, calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:hidden}
.coa-view[open]{display:flex;flex-direction:column}
.coa-view::backdrop{background:rgba(0,0,0,.78)}
.coa-view__bar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 10px 10px 16px;border-bottom:1px solid var(--rule)}
.coa-view__title{margin:0;font-weight:800}
.coa-view__meta{margin:2px 0 0;color:var(--dust)}
.coa-view__x{width:var(--tap);height:var(--tap);border:1px solid var(--rule);background:transparent;color:var(--bone);font-size:1.5rem;cursor:pointer}
.coa-view__img{overflow:auto;background:#fff;flex:1;min-height:0}
.coa-view__img img{display:block;width:100%;height:auto}
.coa-view__nav{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 16px;border-top:1px solid var(--rule)}
.coa-view__nav .btn{color:var(--bone);border-color:var(--rule)}
.coa-view__nav .mono{color:var(--dust)}
.shipping{border-top:1px solid var(--rule)}
.shipping .wrap{padding-block:32px 36px}
.shipping__grid{display:grid;gap:20px}
.shipping h2{margin:0 0 8px;font-size:var(--t-xl);font-weight:800;line-height:1.05}
.shipping p{margin:0;color:var(--dust);max-width:52ch;font-size:var(--t-sm)}
.ship-facts{margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--rule)}
.ship-facts div{display:grid;gap:4px;padding:14px 12px 14px 0;border-bottom:1px solid var(--rule)}
.ship-facts div:nth-child(even){padding-left:12px;border-left:1px solid var(--rule)}
.ship-facts dt{font-family:var(--f-mono);font-size:var(--t-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--brass)}
.ship-note{margin:10px 0 0!important;font-family:var(--f-mono);font-size:var(--t-xs)!important;letter-spacing:.04em}
.ship-facts dd{margin:0;font-weight:800;font-size:var(--t-lg);line-height:1.1;font-variation-settings:"wdth" 104}
.contact{border-top:1px solid var(--rule)}
.contact .wrap{padding-block:32px 40px}
.contact__grid{display:grid;gap:24px}
.contact__intro h2{margin:0 0 8px;font-size:var(--t-xl);font-weight:800;line-height:1.05}
.contact__intro p{margin:0;color:var(--dust);max-width:46ch;font-size:var(--t-sm)}
.contact__addr{display:grid;gap:4px;margin-top:16px!important;color:var(--bone)!important;font-size:var(--t-md)!important;user-select:all}
.contact__addr .mono{color:var(--brass);user-select:none}
.contact__form{display:grid;gap:16px;max-width:640px}
.field{display:grid;gap:6px}
.field label{font-family:var(--f-mono);font-size:var(--t-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--dust)}
.field input,.field textarea{width:100%;min-height:var(--tap);padding:12px 14px;background:var(--plate);border:1px solid var(--rule);border-radius:0;color:var(--bone);font:500 1rem/1.4 var(--f-display)}
.field textarea{resize:vertical;min-height:132px}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--signal)}
.field [aria-invalid="true"]{border-color:var(--signal)}
.btn--send{justify-self:start;background:var(--signal);border-color:var(--signal);color:var(--signal-ink);min-height:52px;padding:0 24px}
.contact__msg{margin:0;font-size:var(--t-sm);color:var(--bone)}
.contact__msg:empty{display:none}
.site-foot{border-top:1px solid var(--rule)}
.site-foot .wrap{display:grid;gap:14px;padding-block:22px}
.site-foot nav ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px 20px}
.site-foot a{display:inline-flex;align-items:center;min-height:40px;color:var(--signal);text-underline-offset:3px}
.site-foot .mono{color:var(--dust)}

/* ===================== ≥600px ===================== */
@media (min-width:600px){
  .coa-list{grid-template-columns:repeat(2, minmax(0,1fr));column-gap:32px}
  .coa-row{grid-template-columns:1fr auto auto auto}
  .coa-row__id{display:inline}
  .products{grid-template-columns:repeat(2, minmax(0,1fr))}
  .head-facts li.opt{display:grid}
  .steps li{font-size:var(--t-md)}
}
/* ===================== ≥1024px: products + sticky spec sheet ===================== */
@media (min-width:1024px){
  :root{--gut:max(32px, env(safe-area-inset-left, 0px));--gut-r:max(32px, env(safe-area-inset-right, 0px))}
  body{padding-bottom:0}
  .hero .wrap{padding-block:36px 26px}
  .order-word{font-size:clamp(9rem, 21vw, 20rem)}
  .tagline{font-size:clamp(4rem, 7vw, 6.5rem)}
  .steps{max-width:880px}
  .shop{padding-block:44px 64px}
  .shop__grid{grid-template-columns:minmax(0,1fr) 360px;align-items:start;gap:40px}
  .products{grid-template-columns:repeat(2, minmax(0,1fr))}
  .summary{position:sticky;top:24px;left:auto;right:auto;bottom:auto;box-shadow:none;padding-bottom:0;border:1px solid var(--rule);border-top:0;background:var(--plate)}
  .summary__sheet,.summary__sheet[hidden]{display:block;max-height:none;overflow:visible}
  .mani__head{padding:16px 20px 14px}
  .mani__head h2{font-size:2.5rem}
  .mani__body{padding:4px 20px 0}
  .summary__bar{grid-template-columns:1fr;padding:0 20px 20px;gap:0;min-height:0;background:var(--plate)}
  .bar__toggle,.bar__total{display:none}
  .btn--go{width:100%;min-height:60px;justify-content:space-between;padding:0 20px;font-size:1.125rem}
  .btn--go .go__amt{display:inline}
  .btn--go[aria-disabled="true"]{justify-content:center}
  .btn--go[aria-disabled="true"] .go__amt{display:none}
  .summary__msg{padding:0 20px 14px;background:var(--plate)}
  .desk-only{display:flex}
  .site-foot .wrap{grid-template-columns:1fr auto;align-items:center}
  .contact__grid{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:48px}
  .shipping__grid{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:48px;align-items:start}
  .ship-facts{grid-template-columns:repeat(4,minmax(0,1fr))}
  .ship-facts div:nth-child(n+2){padding-left:12px;border-left:1px solid var(--rule)}
}
@media (min-width:1280px){
  .coa-list{grid-template-columns:repeat(3, minmax(0,1fr))}
  .products{grid-template-columns:repeat(3, minmax(0,1fr))}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition:none!important;animation:none!important}
}
