/*
Theme Name:   HMD Scientific
Theme URI:    https://hmdscientific.com
Description:  Child theme for HMD Scientific. Layout, spacing, typography scale and component geometry follow the reference commerce pattern measured from a comparable RUO storefront; brand marks and copy are HMD Scientific's own.
Author:       HMD Scientific
Template:     hello-elementor
Version:      2.0.0
Text Domain:  hmd-scientific
*/

/* ==========================================================================
   TOKENS — measured from the reference storefront
   body 18px/1.6 Source Sans · headings Montserrat 600/700
   container 1180 · buttons 50h/10r/13px/800/1.04ls · qty pill · card 24r
   ========================================================================== */

:root{
  --ink:#12181F;
  --ink-deep:#0B1220;
  --body:rgba(0,0,0,.81);
  --muted:#3A4652;
  --muted-2:#64707B;
  --line:#E3E8EB;
  --line-soft:#EDF2F6;

  --page:#FFFFFF;
  --surface:#FFFFFF;
  --tint:#F4F9FC;
  --tint-2:#EAF1F8;

  --blue:#2E6FB8;
  --blue-deep:#1B4E7A;
  --orange:#F96F48;
  --orange-deep:#E15A34;

  --ok:#1E8E5A; --ok-bg:#E8F5EF;
  --warn:#9A6206; --warn-bg:#FBF1E0;
  --crit:#B3261E; --crit-bg:#FBEAE9;

  --r-btn:10px; --r-card:24px; --r-strip:12px; --r-field:10px; --r-pill:100px;
  --shadow-card:0 10px 34px rgba(15,30,50,.07);
  --shadow-soft:0 4px 16px rgba(15,30,50,.05);
  --shadow-lift:0 14px 40px rgba(15,30,50,.11);

  --font-head:"Montserrat","Helvetica Neue",Arial,sans-serif;
  --font-body:"Source Sans 3","Source Sans Pro",-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --font-mono:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;

  --wrap:1190px;
  /* The archive banner band -- measured from the reference storefront. */
  --banner:#0177B9;
  /* Hero plate and resting nav ink -- measured from the reference. */
  --plate:#F8F7F3;
  --nav:rgba(0,0,0,.7);
  /* Neutral grey for the cart/checkout order-summary panel. */
  --panel:#F2F2F2;
  --heading-blue:#0077BA;
  /* Display headings sit in near-black, not brand blue. At scale, blue reads
     as a section label; near-black reads as a statement. */
  --ink-display:#0F2233;
  --hero-text:#333333;
}

/* No dark-mode override. The reference storefront is a white site, and a partial
   dark theme was worse than none: the entry gate styles itself with tokens this
   sheet never defined, so it kept light-mode fallbacks and its headline all but
   disappeared against a flipped page. Painting one ground keeps them in step. */
:root[data-theme="dark"]{
  --ink:#EAEFF3; --ink-deep:#F2F6F9; --body:rgba(255,255,255,.82); --muted:#AFBBC5; --muted-2:#8B98A3;
  --line:#28323A; --line-soft:#222A31;
  --page:#0E1418; --surface:#161D23; --tint:#1A232B; --tint-2:#202B34;
  --blue:#79AEE4; --blue-deep:#A9C9EC; --orange:#FF8158; --orange-deep:#FF9873;
  --shadow-card:0 10px 34px rgba(0,0,0,.45);
  --shadow-soft:0 4px 16px rgba(0,0,0,.35);
  --shadow-lift:0 14px 40px rgba(0,0,0,.5);
}

/* ==========================================================================
   BASE
   ========================================================================== */

*,*::before,*::after{box-sizing:border-box;}

body{
  background:var(--page);
  color:var(--body);
  font-family:var(--font-body);
  font-size:18px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3,h4,h5,h6{font-family:var(--font-head);color:var(--ink);margin:0 0 .5em;
  font-weight:700;text-wrap:pretty;}
h1{font-size:36px;line-height:1.12;letter-spacing:-.02em;color:var(--ink-deep);}
h2{font-size:24px;line-height:1.1;}
h3{font-size:18px;line-height:1.25;}
h4{font-size:15px;line-height:1.3;}

p{margin:0 0 1rem;}
p.lead{font-size:18px;line-height:1.6;color:var(--muted);}

a{color:var(--blue);text-decoration:none;}
a:hover{color:var(--blue-deep);text-decoration:underline;text-underline-offset:2px;}

:focus-visible{outline:2px solid var(--blue);outline-offset:2px;}

img{max-width:100%;height:auto;}
hr{border:0;border-top:1px solid var(--line-soft);margin:2.5rem 0;}

.entry-content,.page-content{max-width:none;}

.hmd-legal{max-width:72ch;font-size:16px;}
.hmd-legal h2{font-size:20px;margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid var(--line-soft);}
.hmd-legal h3{font-size:17px;margin-top:1.75rem;}

table{width:100%;border-collapse:collapse;font-size:15px;margin:1rem 0;}
th{font-family:var(--font-head);font-size:13px;font-weight:700;text-align:left;
  color:var(--muted);padding:12px 14px;border-bottom:1px solid var(--line);}
td{padding:12px 14px;border-bottom:1px solid var(--line-soft);vertical-align:top;color:var(--body);}

code{font-family:var(--font-mono);font-size:.9em;background:var(--tint);padding:2px 6px;border-radius:4px;}

/* ==========================================================================
   BUTTONS — 50h · 10r · 13px/800 · 1.04px tracking · uppercase
   ========================================================================== */

.button,button,input[type="submit"],
.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,
.woocommerce #respond input#submit{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  font-family:var(--font-body);font-size:13px;font-weight:800;letter-spacing:1.04px;
  text-transform:uppercase;line-height:1;
  height:50px;padding:0 26px;border-radius:var(--r-btn);border:1px solid var(--orange);
  background:var(--orange);color:#fff;cursor:pointer;text-decoration:none;
  transition:background .14s ease,border-color .14s ease,transform .14s ease;
}
.button:hover,button:hover,input[type="submit"]:hover,
.woocommerce a.button:hover,.woocommerce button.button:hover{
  background:var(--orange-deep);border-color:var(--orange-deep);color:#fff;text-decoration:none;}
/* WooCommerce ships its own higher-specificity display rules for buttons inside
   the product loop and the cart form. They reset the flex centring above, which
   drops the label onto a 13px line at the top of the 50px box. */
.woocommerce ul.products li.product .button,
.woocommerce div.product form.cart .button,
.woocommerce div.product form.cart button.button,
.woocommerce .cart .button,.woocommerce .cart input.button,
.woocommerce form .form-row .button,
.woocommerce #respond input#submit{
  display:inline-flex;align-items:center;justify-content:center;line-height:1;}

/* Hello Elementor underlines every link inside .page-content and .comments-area.
   That selector outranks the plain `.button` rule, so every button label sitting
   in page copy is drawn with a line through it. */
.page-content a.button,.entry-content a.button,.comments-area a.button,
.page-content a.button:hover,.entry-content a.button:hover{text-decoration:none;}
/* text-decoration propagates to in-flow descendants, so the underline reached
   the whole card body, not just its link text. Turn it off structurally and put
   it back only on prose links inside legal copy. */
.page-content a,.page-content a:hover{text-decoration:none;}
.page-content .hmd-legal a{text-decoration:underline;}
.page-content .hmd-section-more a:hover{text-decoration:underline;}

button:disabled,.button:disabled,.woocommerce button.button:disabled{
  background:#C9D2D9;border-color:#C9D2D9;color:#fff;cursor:not-allowed;opacity:1;}

.button--secondary,.woocommerce a.button.button--secondary{
  background:var(--surface);border:1px solid var(--blue);color:var(--blue);}
.button--secondary:hover{background:var(--tint);border-color:var(--blue);color:var(--blue);}

/* ==========================================================================
   FIELDS
   ========================================================================== */

input[type="text"],input[type="email"],input[type="tel"],input[type="url"],
input[type="password"],input[type="date"],input[type="number"],input[type="search"],
select,textarea{
  width:100%;font-family:var(--font-body);font-size:16px;color:var(--ink);
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-field);
  padding:13px 16px;line-height:1.4;}
input:focus,select:focus,textarea:focus{border-color:var(--blue);outline:none;
  box-shadow:0 0 0 3px rgba(46,111,184,.12);}
label{display:block;font-size:15px;font-weight:600;color:var(--ink);margin-bottom:6px;}

/* ==========================================================================
   HEADER / FOOTER
   ========================================================================== */

/* 84px tall and sticky, with no rule beneath it -- measured from the reference,
   which lets the hero plate meet the header edge to edge. */
.site-header{background:var(--surface);border-bottom:0;box-shadow:none;
  position:sticky;top:0;z-index:8;padding-top:0;padding-bottom:0;}
.site-header .header-inner{min-height:84px;}

/* Hello Elementor renders the mobile dropdown menu at every width, collapsed to
   zero height. It stays in the text and accessibility trees, so the whole nav
   reads out twice. Hide it wherever the toggle that opens it is not shown. */
@media (min-width:1025px){
  .site-header nav.site-navigation-dropdown{display:none;}
}

/* Hello Elementor caps its containers at 1140px above 1200px wide; the reference
   measures 1190. Its rule is scoped `body:not([class*="elementor-page-"])
   .site-main` inside that media query, so a plainer `.site-main` never wins --
   match the selector shape and the breakpoint. */
/* hello-elementor steps its containers 500 / 600 / 800 / 1140 at 576 / 768 /
   992 / 1200. Overriding only the top step leaves a tablet-width page pinned to
   an 800px column inside a full-bleed banner. One unconditional rule at its
   selector shape replaces the whole ladder; the page gutter does the rest. */
body:not([class*="elementor-page-"]) .site-main,
.site-header .header-inner,
.site-footer .footer-inner,
.page-header .entry-title{max-width:var(--wrap);}

/* ==========================================================================
   INTERIOR PAGE BANNER

   Content pages get the same full-bleed band as the catalogue archive, so the
   title stops sitting flush against the header with no breathing room.
   ========================================================================== */

.page-header{width:100vw;margin:0 0 48px calc(50% - 50vw);background:var(--banner);padding:0;}
.page-header .entry-title,.page-header h1{
  max-width:var(--wrap);margin:0 auto;padding:40px 24px 96px;
  font-family:var(--font-head);font-size:64px;line-height:1.06;font-weight:600;
  letter-spacing:-.018em;color:#fff;}

/* The front page carries a hero; its page title would be a second, duplicate H1. */
.home .page-header{display:none;}

/* Tablets have room for the full 48px band title; only phones need it reduced. */
@media (max-width:900px){
  .page-header{margin-bottom:38px;}
  .page-header .entry-title,.page-header h1{padding:36px 24px 64px;}
}
@media (max-width:640px){
  .page-header{margin-bottom:30px;}
  .page-header .entry-title,.page-header h1{padding:30px 22px 46px;font-size:40px;}
}
.site-header .site-title,.site-header .site-title a,.site-header h1,.site-header h1 a{
  font-family:var(--font-head);font-size:22px;font-weight:700;letter-spacing:-.01em;
  color:var(--ink);text-decoration:none;margin:0;line-height:1.2;}
/* Nav is Montserrat 600 at normal tracking, not the body face at 700/0.04em. */
.site-header nav a{font-family:var(--font-head);font-size:14px;font-weight:600;
  letter-spacing:normal;text-transform:uppercase;color:var(--nav);text-decoration:none;
  transition:color .14s ease;}
.site-header nav a:hover,.site-header nav .current-menu-item > a{
  color:var(--ink);text-decoration:none;}

.site-footer{background:var(--surface);border-top:1px solid var(--line-soft);margin-top:4rem;}
.site-footer a{font-size:14px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;
  color:var(--ink);}
.site-footer a:hover{color:var(--blue);}

/* ==========================================================================
   PRODUCT PAGE
   ========================================================================== */

.woocommerce div.product{max-width:var(--wrap);margin:0 auto;padding:0 28px;}

@media (min-width:900px){
  .woocommerce div.product{display:grid;grid-template-columns:1.02fr 1fr;gap:56px;align-items:start;}
  .woocommerce div.product div.images.woocommerce-product-gallery{grid-column:1;float:none;width:auto;position:static;}
  .woocommerce div.product div.summary{grid-column:2;width:auto;max-width:none;float:none;margin:0;}
  .woocommerce div.product .hmd-spec,
  .woocommerce div.product .hmd-refs,
  .woocommerce div.product .hmd-why,
  .woocommerce div.product .related{grid-column:1/-1;}
}

.woocommerce div.product div.images.woocommerce-product-gallery{
  background:var(--surface);border:0;border-radius:var(--r-card);padding:26px;
  box-shadow:var(--shadow-card);}
.woocommerce div.product div.images img{border-radius:14px;display:block;margin:0 auto;
  max-height:min(52vh,500px);width:auto;object-fit:contain;}
.woocommerce div.product div.images .woocommerce-product-gallery__wrapper{
  display:flex;align-items:center;justify-content:center;min-height:18rem;}

.hmd-badges{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 26px;
  list-style:none;margin:22px 0 0;padding:14px 18px;
  background:var(--tint);border-radius:var(--r-strip);}
.hmd-badges li{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:var(--ink);}

.woocommerce div.product .summary{font-size:16px;}
.hmd-eyebrow{display:block;font-family:var(--font-mono);font-size:11px;font-weight:600;
  letter-spacing:.12em;text-transform:uppercase;color:var(--blue);margin-bottom:10px;}
.woocommerce div.product .product_title{font-family:var(--font-head);font-size:36px;
  font-weight:700;line-height:1.12;letter-spacing:-.02em;color:var(--ink-deep);margin:0 0 12px;}
.woocommerce div.product p.price{font-family:var(--font-body);font-size:22px;font-weight:700;
  color:var(--ink);margin:0 0 22px;}

.hmd-includes{list-style:none;margin:0 0 22px;padding:0;}
.hmd-includes li{display:flex;align-items:center;gap:14px;padding:14px 0;
  font-size:16px;color:var(--ink);border-bottom:1px solid var(--line-soft);}
.hmd-includes li:first-child{border-top:1px solid var(--line-soft);}

.woocommerce div.product form.cart{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:0 0 14px;}
.woocommerce div.product form.cart .quantity{display:flex;align-items:center;
  border:1px solid var(--line);border-radius:var(--r-pill);background:var(--surface);
  height:50px;padding:0 6px;}
.woocommerce div.product form.cart .quantity input{width:66px;height:48px;border:0;background:transparent;
  text-align:center;font-size:16px;font-weight:600;color:var(--ink);padding:0;}
.woocommerce div.product form.cart .quantity input:focus{box-shadow:none;}
.woocommerce div.product form.cart button[type="submit"]{min-width:190px;}

.hmd-microtrust{list-style:none;display:flex;flex-wrap:wrap;gap:10px 24px;margin:0 0 24px;padding:0;
  font-size:13px;color:var(--muted-2);}
.hmd-microtrust li{display:flex;align-items:center;gap:7px;}

.hmd-desc{font-size:14.5px;line-height:1.75;color:var(--muted);}
.hmd-desc p{margin-bottom:1rem;}

.hmd-coa{background:var(--tint);border:0;border-radius:var(--r-strip);padding:20px;margin:22px 0;}
.hmd-coa__label{font-family:var(--font-mono);font-size:11px;font-weight:600;letter-spacing:.1em;
  text-transform:uppercase;color:var(--blue);}
.hmd-coa__meta{display:grid;grid-template-columns:auto 1fr;gap:6px 18px;margin:12px 0;font-size:14px;}
.hmd-coa__meta dt{color:var(--muted-2);}
.hmd-coa__meta dd{margin:0;font-family:var(--font-mono);font-size:13px;color:var(--ink);}
.hmd-coa__link{font-size:14px;font-weight:700;color:var(--blue);}
.hmd-coa__pending{margin:8px 0 0;font-size:14px;color:var(--muted-2);font-style:italic;}

.hmd-gate-notice{background:var(--tint);border:0;border-radius:var(--r-strip);padding:20px;margin:18px 0;
  font-size:15px;line-height:1.55;color:var(--muted);}
.hmd-gate-notice p{margin:0 0 14px;}
.hmd-gate-notice strong{color:var(--ink);}
.hmd-gate-notice__alt{margin:12px 0 0;font-size:13px;}
.hmd-gated-price a{font-size:16px;font-weight:700;color:var(--blue);}
.hmd-gated-price__alt{display:block;font-size:13px;font-weight:400;color:var(--muted-2);margin-top:4px;}

.hmd-product-disclaimer{background:var(--tint);border:0;border-radius:var(--r-strip);
  padding:16px 20px;margin-top:22px;font-size:13px;line-height:1.6;color:var(--muted-2);}
.hmd-product-disclaimer p{margin:0 0 4px;}
.hmd-product-disclaimer p:first-child{color:var(--ink);font-weight:700;}
.hmd-product-disclaimer p:last-child{margin:0;}

.hmd-spec,.hmd-refs{margin:56px 0 0;}
.hmd-spec__h,.hmd-refs h3{font-family:var(--font-head);font-size:24px;font-weight:700;
  color:var(--ink);margin:0 0 16px;}
.hmd-spec table{background:var(--surface);border-radius:var(--r-strip);overflow:hidden;
  box-shadow:var(--shadow-soft);}
.hmd-spec th{width:32%;font-family:var(--font-body);font-size:14px;font-weight:600;
  color:var(--muted-2);background:transparent;text-transform:none;}
.hmd-spec td{font-family:var(--font-mono);font-size:13.5px;color:var(--ink);}
.hmd-refs ol{margin:0;padding-left:22px;font-size:14px;line-height:1.7;color:var(--muted);}
.hmd-refs li{margin-bottom:8px;}
.hmd-refs a{font-family:var(--font-mono);font-size:12.5px;}
.hmd-refs__note{margin-top:14px;font-size:12.5px;color:var(--muted-2);}

.hmd-why{margin:64px 0 0;}
.hmd-why h2{font-size:24px;margin:0 0 8px;}
.hmd-why__lede{font-size:16px;color:var(--muted);max-width:62ch;margin:0 0 28px;}
.hmd-why__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(17rem,1fr));gap:20px;}
.hmd-why__card{background:var(--surface);border:1px solid var(--line-soft);border-radius:16px;padding:26px;}
.hmd-why__card h3{font-family:var(--font-head);font-size:15px;font-weight:700;color:var(--ink);margin:16px 0 8px;}
.hmd-why__card p{font-size:14px;line-height:1.6;color:var(--muted);margin:0;}

.hmd-tile{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;
  border-radius:12px;background:var(--tint-2);}
.hmd-tile .hmd-ico{width:20px;height:20px;opacity:1;}

.woocommerce div.product .related{margin-top:64px;}
.woocommerce div.product .related > h2{font-size:24px;margin-bottom:20px;}

/* ==========================================================================
   ARCHIVE BANNER
   ========================================================================== */

/* Full-bleed out of the theme's constrained container. */
.hmd-banner{width:100vw;margin-left:calc(50% - 50vw);background:var(--banner);color:#fff;}
.hmd-banner__inner{max-width:var(--wrap);margin:0 auto;padding:40px 24px 96px;}
.hmd-banner__title{font-family:var(--font-head);font-size:64px;
  line-height:1.1;font-weight:600;letter-spacing:-.01em;color:#fff;margin:0;}

/* ==========================================================================
   ARCHIVE TOOLBAR
   ========================================================================== */

.hmd-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;
  flex-wrap:wrap;padding:24px 0;margin:0 0 34px;border-bottom:1px solid var(--line-soft);}
.hmd-toolbar__left,.hmd-toolbar__right{display:flex;align-items:center;gap:26px;}
.hmd-catnav{display:flex;align-items:center;gap:26px;flex-wrap:wrap;}
.hmd-catnav a{font-family:var(--font-body);font-size:16px;font-weight:600;
  color:var(--muted-2);text-decoration:none;transition:color .15s ease;}
.hmd-catnav a:hover{color:var(--ink);}
.hmd-catnav a.is-active{color:var(--ink);}
.hmd-count{font-family:var(--font-body);font-size:16px;color:var(--muted-2);}

/* Sort reads as a text control, not a boxed form field. */
.woocommerce .woocommerce-ordering{margin:0;}
.woocommerce .woocommerce-ordering select{
  -webkit-appearance:none;appearance:none;border:0;background:none;box-shadow:none;
  padding:0 22px 0 0;height:auto;font-family:var(--font-body);font-size:16px;
  font-weight:600;color:var(--ink);cursor:pointer;
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' fill='none' stroke='%2312181F' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right center;}
.woocommerce .woocommerce-ordering select:focus{outline:2px solid var(--blue);outline-offset:3px;}

/* ==========================================================================
   PRODUCT GRID
   ========================================================================== */

.woocommerce ul.products{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  gap:54px 22px;margin:0 0 48px;padding:0;list-style:none;}
/* WooCommerce's clearfix pseudo-elements become grid items and eat the first
   and last cells, which reads as a missing product. */
.woocommerce ul.products::before,.woocommerce ul.products::after{display:none;}

/* WooCommerce sizes cards with a float-era percentage width scoped by a
   .columns-N class, which outranks a plainer `ul.products li.product` rule.
   Left in place it, not the grid, decides card width at every breakpoint --
   22.05% of a 358px phone column is an 82px card. Match its specificity and
   hand sizing back to the grid track. */
.woocommerce ul.products.columns-1 li.product,
.woocommerce ul.products.columns-2 li.product,
.woocommerce ul.products.columns-3 li.product,
.woocommerce ul.products.columns-4 li.product,
.woocommerce ul.products.columns-5 li.product,
.woocommerce ul.products.columns-6 li.product{
  width:auto;margin:0;float:none;clear:none;}
.woocommerce ul.products li.product{background:none;border:0;border-radius:0;box-shadow:none;
  padding:0;margin:0;width:auto;float:none;text-align:center;
  display:flex;flex-direction:column;transition:none;}
.woocommerce ul.products li.product:hover{box-shadow:none;transform:none;}
.woocommerce ul.products li.product > a{text-decoration:none;}

/* Fixed-height media plate so names and buttons line up across the row
   regardless of each illustration's own aspect ratio. */
.woocommerce ul.products li.product .hmd-card__media{
  height:351px;display:flex;align-items:center;justify-content:center;margin:0 0 18px;}
.woocommerce ul.products li.product .hmd-card__media img{
  width:auto;max-width:100%;height:100%;max-height:351px;object-fit:contain;
  margin:0;border-radius:0;background:none;box-shadow:none;
  transition:transform .2s ease;}
.woocommerce ul.products li.product:hover .hmd-card__media img{transform:scale(1.03);}

.woocommerce ul.products li.product .woocommerce-loop-product__title{
  font-family:var(--font-body);font-size:18px;font-weight:400;line-height:1.35;
  color:var(--ink);padding:0;margin:0 0 10px;}
.woocommerce ul.products li.product .price{font-family:var(--font-body);font-size:18px;
  font-weight:500;color:var(--ink);margin:0 0 22px;display:block;}
.woocommerce ul.products li.product .hmd-gated-price--loop{
  display:block;font-size:18px;font-weight:500;color:var(--muted-2);}
.woocommerce ul.products li.product .button{margin-top:auto;width:auto;min-width:180px;
  align-self:center;padding-left:26px;padding-right:26px;}
.woocommerce span.onsale,.woocommerce .star-rating,.woocommerce .woocommerce-product-rating{display:none;}

.woocommerce nav.woocommerce-pagination{margin:16px 0 8px;}

/* ==========================================================================
   HOMEPAGE
   ========================================================================== */

/* Hero: a full-bleed image with the type set over it. The earlier version put
   48px type beside a contained illustration, faithfully matching the reference
   storefront's measurements -- but the reference is not a well-designed site,
   and copying its restraint made ours look tentative. A/B tested: bigger type,
   bigger art, edge to edge. */
.hmd-hero,.hmd-hero.hmd-full{max-width:none;}
.hmd-hero{position:relative;width:100vw;margin-left:calc(50% - 50vw);
  min-height:620px;display:flex;align-items:center;padding:0;text-align:left;
  overflow:hidden;background:var(--plate);}

/* The art fills the frame and bleeds off it; the scrim keeps the type legible
   where the two overlap. */
.hmd-hero__art{position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:72% center;pointer-events:none;}
.hmd-hero::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(90deg,rgba(255,255,255,.92) 0%,rgba(255,255,255,.72) 38%,rgba(255,255,255,0) 66%);}

.hmd-hero__inner{position:relative;z-index:2;max-width:var(--wrap);width:100%;
  margin:0 auto;padding:0 24px;box-sizing:border-box;}
.hmd-hero h2,.hmd-hero h1{font-family:var(--font-head);font-size:72px;line-height:1.02;
  font-weight:600;letter-spacing:-.022em;color:var(--ink-display);
  max-width:14ch;margin:0 0 22px;}
.hmd-hero .lead{max-width:44ch;margin:0 0 32px;font-size:19px;line-height:1.6;
  color:var(--hero-text);}
.hmd-hero .button{margin:0 12px 0 0;height:56px;padding:0 34px;font-size:14px;}

@media (max-width:900px){
  .hmd-hero{min-height:0;padding:52px 0 0;flex-direction:column;align-items:stretch;}
  .hmd-hero::after{display:none;}
  /* Stacked, the headline must still come first -- source order puts the image
     first so it can be the backdrop on desktop. */
  .hmd-hero__inner{order:1;}
  .hmd-hero__art{order:2;position:static;width:100%;height:auto;margin-top:26px;
    object-fit:contain;object-position:center bottom;}
  .hmd-hero h2,.hmd-hero h1{font-size:44px;max-width:none;}
  .hmd-banner__title{font-size:48px;}
  .hmd-hero .lead{max-width:none;}
}
@media (max-width:640px){
  .hmd-hero{padding-top:34px;}
  .hmd-hero h2,.hmd-hero h1{font-size:38px;letter-spacing:-.02em;}
  .hmd-hero .lead{font-size:17px;}
  .hmd-hero .button{margin:0;width:100%;}
  .hmd-banner__title{font-size:38px;}
}

/* Section titles sit centred at the reference's 48px, above each block. */
.hmd-section-title{font-family:var(--font-head);font-size:56px;line-height:1.06;
  font-weight:600;letter-spacing:-.018em;color:var(--ink-display);
  text-align:center;margin:34px 0 42px;}
.hmd-section-more{text-align:center;margin:8px 0 0;}
.hmd-section-more a{font-weight:600;color:var(--blue);text-decoration:none;}
.hmd-section-more a:hover{text-decoration:underline;}

.hmd-cats{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(21rem,100%),1fr));gap:26px;margin:0 0 76px;}
/* Hello Elementor underlines links inside .page-content; these are cards. */
.page-content a.hmd-cat,.page-content a.hmd-cat:hover{text-decoration:none;}
.hmd-cat{display:block;padding:26px;background:var(--surface);border:1px solid var(--line-soft);
  border-radius:16px;text-decoration:none;transition:box-shadow .16s ease,transform .16s ease;}
.hmd-cat:hover{box-shadow:var(--shadow-lift);transform:translateY(-2px);text-decoration:none;}
.hmd-cat__n{display:block;font-family:var(--font-head);font-size:17px;font-weight:700;
  color:var(--ink);margin-bottom:8px;}
.hmd-cat__d{display:block;font-size:14px;color:var(--muted);line-height:1.55;}

.hmd-assurance{display:flex;flex-wrap:wrap;justify-content:center;gap:16px 32px;
  background:var(--tint);border-radius:var(--r-strip);padding:20px 24px;margin:20px 0 24px;
  font-size:14px;font-weight:600;color:var(--ink);}
.hmd-assurance > span{display:flex;align-items:center;gap:8px;}

.hmd-full{max-width:var(--wrap);margin:0 auto;padding:0 28px;}

/* ==========================================================================
   REGISTRATION
   ========================================================================== */

.hmd-app--simple{max-width:640px;margin:0 auto;background:var(--surface);
  border:1px solid var(--line-soft);border-radius:var(--r-card);padding:36px;
  box-shadow:var(--shadow-soft);}
.hmd-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.hmd-grid-3{display:grid;grid-template-columns:2fr 1fr 1fr;gap:18px;}
@media (max-width:600px){.hmd-grid-2,.hmd-grid-3{grid-template-columns:1fr;}}
.hmd-field{margin:0 0 18px;}
.hmd-help{display:block;font-size:13px;color:var(--muted-2);margin-top:5px;font-weight:400;}
.hmd-ack-single{display:flex;gap:14px;align-items:flex-start;padding:18px;margin:6px 0 24px;
  background:var(--tint);border-radius:var(--r-field);font-size:14px;line-height:1.6;
  color:var(--muted);font-weight:400;cursor:pointer;}
.hmd-ack-single input{width:auto;margin-top:3px;flex-shrink:0;}
.hmd-ack-single:has(input:checked){background:var(--ok-bg);color:var(--ink);}
.hmd-app--simple .hmd-submit{margin:0;}
.hmd-app--simple .hmd-submit button{width:100%;}
.hmd-app__foot{margin:18px 0 0;font-size:13px;line-height:1.6;color:var(--muted-2);text-align:center;}
.hmd-app-errors{background:var(--crit-bg);color:var(--crit);border-radius:var(--r-field);
  padding:16px 20px;margin-bottom:24px;font-size:14px;}
.hmd-app-errors ul{margin:0;padding-left:20px;}
.hmd-app-success{background:var(--ok-bg);border-radius:var(--r-field);padding:24px;font-size:16px;}
.hmd-app-notice{background:var(--tint);border-radius:var(--r-field);padding:20px;font-size:16px;}
.hmd-login-signup{margin-top:16px;font-size:15px;color:var(--muted);}

/* ==========================================================================
   SITEWIDE DISCLAIMER
   ========================================================================== */

.hmd-ruo-footer{border-top:1px solid var(--line-soft);margin-top:2rem;padding:26px 20px;
  text-align:center;font-size:13px;line-height:1.7;color:var(--muted-2);}
.hmd-ruo-footer p{margin:0 0 4px;}
.hmd-ruo-footer p:first-child{font-weight:700;color:var(--ink);}

/* ==========================================================================
   MOBILE STICKY CART
   ========================================================================== */

.hmd-sticky-cart{position:fixed;left:0;right:0;bottom:0;z-index:80;display:flex;align-items:center;
  gap:14px;padding:12px 16px;background:var(--surface);border-top:1px solid var(--line);
  box-shadow:0 -4px 18px rgba(15,30,50,.10);
  padding-bottom:calc(12px + env(safe-area-inset-bottom));}
.hmd-sticky-cart[hidden]{display:none;}
.hmd-sticky-cart__info{display:flex;flex-direction:column;min-width:0;flex:1;}
.hmd-sticky-cart__name{font-size:13px;color:var(--muted-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.hmd-sticky-cart__price{font-size:15px;font-weight:700;color:var(--ink);}
.hmd-sticky-cart__btn{height:44px;padding:0 20px;white-space:nowrap;}

/* ==========================================================================
   ICONS
   ========================================================================== */

.hmd-ico{width:18px;height:18px;flex-shrink:0;display:inline-block;background:var(--blue);
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;
  -webkit-mask-size:contain;mask-size:contain;}
.hmd-ico--vial{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7'%3E%3Cpath d='M9 3h6M10 3v10.5a4 4 0 108 0V3'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7'%3E%3Cpath d='M9 3h6M10 3v10.5a4 4 0 108 0V3'/%3E%3C/svg%3E");}
.hmd-ico--flask{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7'%3E%3Cpath d='M9 2v7L4 20a1 1 0 001 1h14a1 1 0 001-1L15 9V2M8 2h8M7 14h10'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7'%3E%3Cpath d='M9 2v7L4 20a1 1 0 001 1h14a1 1 0 001-1L15 9V2M8 2h8M7 14h10'/%3E%3C/svg%3E");}
.hmd-ico--truck{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7'%3E%3Cpath d='M2 6h11v10H2zM13 9h4l3 3v4h-7z'/%3E%3Ccircle cx='6' cy='18' r='2'/%3E%3Ccircle cx='17' cy='18' r='2'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7'%3E%3Cpath d='M2 6h11v10H2zM13 9h4l3 3v4h-7z'/%3E%3Ccircle cx='6' cy='18' r='2'/%3E%3Ccircle cx='17' cy='18' r='2'/%3E%3C/svg%3E");}
.hmd-ico--lock{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7'%3E%3Crect x='4' y='10' width='16' height='11' rx='2'/%3E%3Cpath d='M8 10V7a4 4 0 018 0v3'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7'%3E%3Crect x='4' y='10' width='16' height='11' rx='2'/%3E%3Cpath d='M8 10V7a4 4 0 018 0v3'/%3E%3C/svg%3E");}
.hmd-ico--ship{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7'%3E%3Cpath d='M12 2v10M8 6l4-4 4 4M3 13l9 4 9-4v6l-9 4-9-4z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7'%3E%3Cpath d='M12 2v10M8 6l4-4 4 4M3 13l9 4 9-4v6l-9 4-9-4z'/%3E%3C/svg%3E");}
.hmd-ico--seal{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7'%3E%3Ccircle cx='12' cy='9' r='6'/%3E%3Cpath d='M9 14l-2 8 5-3 5 3-2-8'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7'%3E%3Ccircle cx='12' cy='9' r='6'/%3E%3Cpath d='M9 14l-2 8 5-3 5 3-2-8'/%3E%3C/svg%3E");}
.hmd-ico--shield{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7'%3E%3Cpath d='M12 2l8 4v6c0 5-3.4 8.8-8 10-4.6-1.2-8-5-8-10V6z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7'%3E%3Cpath d='M12 2l8 4v6c0 5-3.4 8.8-8 10-4.6-1.2-8-5-8-10V6z'/%3E%3C/svg%3E");}
.hmd-ico--usa{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7'%3E%3Crect x='3' y='6' width='18' height='12' rx='2'/%3E%3Cpath d='M3 10h18M3 14h18'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7'%3E%3Crect x='3' y='6' width='18' height='12' rx='2'/%3E%3Cpath d='M3 10h18M3 14h18'/%3E%3C/svg%3E");}
.hmd-ico--snow{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7'%3E%3Cpath d='M12 2v20M4 7l16 10M20 7L4 17'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7'%3E%3Cpath d='M12 2v20M4 7l16 10M20 7L4 17'/%3E%3C/svg%3E");}
.hmd-ico--doc{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7'%3E%3Cpath d='M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z'/%3E%3Cpath d='M14 2v6h6M8 13h8M8 17h5'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7'%3E%3Cpath d='M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z'/%3E%3Cpath d='M14 2v6h6M8 13h8M8 17h5'/%3E%3C/svg%3E");}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */

@media (max-width:899px){
  body{font-size:17px;}
  .woocommerce div.product{display:flex;flex-direction:column;padding:0 18px;}
  .woocommerce div.product div.images{order:1;padding:18px;border-radius:18px;}
  .woocommerce div.product div.summary{order:2;}
  .woocommerce div.product .hmd-spec{order:4;}
  .woocommerce div.product .hmd-refs{order:5;}
  .woocommerce div.product .hmd-why{order:6;}
  .woocommerce div.product .related{order:7;}
  .woocommerce div.product div.images img{max-height:36vh;}
  .woocommerce div.product div.images .woocommerce-product-gallery__wrapper{min-height:0;}
  .woocommerce div.product .product_title{font-size:28px;}
  .woocommerce div.product form.cart{flex-wrap:nowrap;}
  .woocommerce div.product form.cart button[type="submit"]{flex:1;min-width:0;padding:0 16px;}
  .hmd-badges{gap:10px 16px;padding:12px 14px;}
  .hmd-badges li{font-size:12px;}
  .hmd-full{padding:0 18px;}
  body.single-product{padding-bottom:5rem;}
}
@media (min-width:641px) and (max-width:899px){
  .woocommerce div.product div.images{max-width:34rem;margin:0 auto;}
  .woocommerce div.product div.summary{max-width:38rem;margin:0 auto;}
  .woocommerce div.product .hmd-badges{max-width:34rem;margin-left:auto;margin-right:auto;}
}
@media (prefers-reduced-motion:reduce){
  *{animation-duration:.01ms !important;transition-duration:.01ms !important;}
}

/* ==========================================================================
   PRODUCT PAGE — parity corrections
   The product shot must dominate its card the way it does on a real
   storefront; the gated buy box must stay as tight as the priced one.
   ========================================================================== */

/* Image fills the card */
.woocommerce div.product div.images img{
  width:100%;max-width:420px;max-height:none;height:auto;}
.woocommerce div.product div.images .woocommerce-product-gallery__wrapper{min-height:0;}
.woocommerce div.product div.images.woocommerce-product-gallery{padding:32px;}
/* WooCommerce's zoom trigger leaks into the summary column */
.woocommerce div.product .woocommerce-product-gallery__trigger{display:none;}

/* Gated buy box: one compact line, not a panel */
.hmd-gated-price{display:block;margin:0 0 20px;}
.hmd-gated-price a{font-size:18px;font-weight:700;}
.hmd-gate-notice{background:transparent;padding:0;margin:0 0 20px;font-size:14px;}
.hmd-gate-notice p{margin:0 0 12px;color:var(--muted-2);font-size:14px;}
.hmd-gate-notice .hmd-gate-cta{width:auto;}
.hmd-gate-notice__alt{margin:10px 0 0;font-size:13px;color:var(--muted-2);}

/* COA panel is reference, not a headline — quieter and tighter */
.hmd-coa{background:transparent;border:1px solid var(--line-soft);padding:16px 18px;margin:0 0 20px;}
.hmd-coa__pending{font-size:13px;}

/* Description: show the opening, expand for the rest */
.hmd-desc{font-size:14.5px;line-height:1.75;}
.hmd-desc__more{display:none;}
.hmd-desc.is-open .hmd-desc__more{display:block;}
.hmd-desc__toggle{background:none;border:0;padding:0;height:auto;margin-top:4px;
  font-family:var(--font-body);font-size:14px;font-weight:700;letter-spacing:normal;
  text-transform:none;color:var(--blue);cursor:pointer;}
.hmd-desc__toggle:hover{background:none;color:var(--blue-deep);text-decoration:underline;}

/* Related cards: name, price, button — no gate clutter */
.woocommerce div.product .related .hmd-gated-price{margin:0 0 12px;}
.woocommerce div.product .related .hmd-gated-price a{font-size:14px;font-weight:600;}
.woocommerce div.product .related .hmd-gated-price__alt{display:none;}

/* Badge strip lives inside the image card, flush to its lower edge */
.woocommerce div.product div.images .hmd-badges{margin:26px 0 0;width:100%;}

/* ==========================================================================
   ARCHIVE — RESPONSIVE
   ========================================================================== */

@media (max-width:1080px){
  .woocommerce ul.products{grid-template-columns:repeat(3,minmax(0,1fr));gap:46px 26px;}
  .woocommerce ul.products li.product .hmd-card__media{height:250px;}
  .woocommerce ul.products li.product .hmd-card__media img{max-height:250px;}
}
@media (max-width:820px){
  .hmd-banner__inner{padding:52px 24px;}
  .hmd-toolbar{gap:14px;padding:18px 0;margin-bottom:26px;}
  .hmd-toolbar__left,.hmd-toolbar__right{gap:18px;}
  .hmd-catnav{gap:18px;}
  .hmd-catnav a,.hmd-count,.woocommerce .woocommerce-ordering select{font-size:15px;}
}
@media (max-width:640px){
  .woocommerce ul.products{grid-template-columns:repeat(2,minmax(0,1fr));gap:38px 18px;}
  .woocommerce ul.products li.product .hmd-card__media{height:200px;margin-bottom:14px;}
  .woocommerce ul.products li.product .hmd-card__media img{max-height:200px;}
  .woocommerce ul.products li.product .woocommerce-loop-product__title{font-size:16px;}
  .woocommerce ul.products li.product .price{font-size:16px;margin-bottom:16px;}
  .woocommerce ul.products li.product .hmd-gated-price--loop{font-size:14px;}
  .woocommerce ul.products li.product .button{font-size:11px;height:44px;min-width:0;align-self:stretch;}
  /* One line cannot hold the categories and the sort control; the sort ends up
     clipped. Give each its own row and let the categories scroll sideways. */
  .hmd-toolbar{flex-wrap:wrap;gap:12px 0;}
  .hmd-toolbar__left{flex:0 0 100%;overflow-x:auto;-webkit-overflow-scrolling:touch;
    scrollbar-width:none;}
  .hmd-toolbar__left::-webkit-scrollbar{display:none;}
  .hmd-toolbar__right{flex:0 0 100%;justify-content:space-between;}
  .hmd-catnav{flex-wrap:nowrap;}
  .hmd-catnav a,.hmd-count{white-space:nowrap;}
}

/* The banner names the page — the breadcrumb below it is duplicate chrome. */
.woocommerce-shop .woocommerce-breadcrumb,
.tax-product_cat .woocommerce-breadcrumb{display:none;}

@media (max-width:900px){
  .hmd-section-title{font-size:40px;margin:24px 0 30px;}
}
@media (max-width:640px){
  .hmd-section-title{font-size:32px;}
}

/* ==========================================================================
   ACCOUNT SURFACES

   WooCommerce scopes its own form styling as `.woocommerce form.login` (0,2,1)
   and `.woocommerce form .form-row input.input-text` (0,3,2), both of which
   outrank the theme's element selectors -- so the sign-in panel rendered in
   colours and radii that appear nowhere else, while the identical field on
   /apply/ picked up the tokens correctly.
   ========================================================================== */

.woocommerce form.login,.woocommerce form.register,
.woocommerce-account .woocommerce-form-login,
.woocommerce-account .woocommerce-form-register{
  max-width:640px;margin:0 auto;padding:36px;
  background:var(--surface);border:1px solid var(--line-soft);
  border-radius:var(--r-card);box-shadow:var(--shadow-soft);}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select{
  width:100%;height:50px;padding:0 14px;
  font-family:var(--font-body);font-size:16px;color:var(--ink);
  background:var(--page);border:1px solid var(--line);border-radius:var(--r-field);
  box-shadow:none;}
.woocommerce form .form-row textarea{height:auto;padding:12px 14px;}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus{
  outline:2px solid var(--blue);outline-offset:2px;border-color:var(--blue);}
.woocommerce form .form-row label{
  display:block;margin-bottom:6px;font-size:14px;font-weight:600;color:var(--ink);}

/* An empty cart with no way onward is a dead end. */
.wp-block-woocommerce-empty-cart-block{text-align:center;padding:24px 0 8px;}

/* WooCommerce Blocks marks the cart and checkout wrappers `alignwide`, which
   pulls them outside their container with negative margins -- 80px off the left
   edge here, so the whole cart sat misaligned against every other page. */
.site-main .alignwide,.site-main .alignfull{
  margin-left:auto;margin-right:auto;width:auto;max-width:100%;}

/* ==========================================================================
   CART

   WooCommerce Blocks ships a table-style cart. The reference storefront uses a
   line-item list on the left and a grey order-summary panel on the right, so
   these rules restructure rather than re-skin.
   ========================================================================== */

/* No column header: the reference has none, and "PRODUCT DETAILS / TOTAL"
   reads as a spreadsheet rather than a basket. */
.wc-block-cart-items__header{display:none;}

/* Item name: dark and set at reading size, not a small blue link. */
.wp-block-woocommerce-cart table.wc-block-cart-items .wc-block-cart-items__row
  .wc-block-cart-item__wrap .wc-block-components-product-name{
  font-family:var(--font-body);font-size:18px;font-weight:400;line-height:1.35;
  color:var(--ink);text-decoration:none;}
.wc-block-components-product-name:hover{color:var(--blue);text-decoration:underline;}

/* The full product description belongs on the product page, not the cart line. */
.wc-block-components-product-metadata__description{display:none;}

.wc-block-cart-items__row{padding:26px 0;border-bottom:1px solid var(--line-soft);}
.wc-block-cart-item__prices .wc-block-components-product-price{
  font-size:16px;color:var(--muted-2);}
.wc-block-cart-item__total .wc-block-components-product-price{
  font-size:18px;color:var(--ink);}

/* Quantity control reads as one rounded pill. */
.wp-block-woocommerce-cart .wc-block-components-quantity-selector{
  border:1px solid var(--line);border-radius:var(--r-pill);overflow:hidden;
  max-width:118px;background:var(--page);}
.wc-block-components-quantity-selector__input{font-size:16px;color:var(--ink);}
.wc-block-components-quantity-selector__button{
  font-size:20px;color:var(--muted-2);background:none;border:0;}
.wc-block-components-quantity-selector__button:hover{color:var(--ink);background:none;}

/* Order summary: a grey panel, as on the reference. */
.wp-block-woocommerce-cart-totals-block,
.wc-block-components-sidebar{
  background:var(--panel);border-radius:var(--r-card);padding:28px;align-self:start;}
.wp-block-woocommerce-cart .wc-block-cart__totals-title{display:none;}
.wc-block-components-totals-wrapper{border-color:rgba(0,0,0,.10);}

.wc-block-components-totals-footer-item{
  font-size:24px;font-weight:500;color:var(--ink);}
.wc-block-components-totals-footer-item .wc-block-formatted-money-amount{
  font-size:24px;font-weight:500;}
/* Shipping is shown as its own included line above, so only tax is deferred. */
.wc-block-components-totals-footer-item::after{
  content:"Taxes calculated at checkout.";
  display:block;margin-top:8px;
  font-size:14px;font-weight:400;line-height:1.5;color:var(--muted-2);}

.wc-block-cart__submit-button{
  background:var(--ink);color:#fff;border:0;border-radius:var(--r-pill);
  height:56px;font-family:var(--font-body);font-size:18px;font-weight:600;
  letter-spacing:normal;text-transform:none;width:100%;}
.wc-block-cart__submit-button:hover{background:#000;color:#fff;}

@media (max-width:900px){
  .wp-block-woocommerce-cart-totals-block,
  .wc-block-components-sidebar{padding:22px;margin-top:24px;}
  .wc-block-components-totals-footer-item,
  .wc-block-components-totals-footer-item .wc-block-formatted-money-amount{font-size:20px;}
}

/* Blocks lets the line-item image grow to the column; the reference keeps it a
   small fixed thumbnail so the row stays one line tall. */
.wp-block-woocommerce-cart .wc-block-cart-item__image{width:96px;}
.wp-block-woocommerce-cart .wc-block-cart-item__image img{
  width:96px;max-width:96px;height:auto;max-height:130px;object-fit:contain;}
@media (max-width:640px){
  .wp-block-woocommerce-cart .wc-block-cart-item__image,
  .wp-block-woocommerce-cart .wc-block-cart-item__image img{width:72px;max-width:72px;}
}

/* The signed-in confirmation on /apply/ -- a bare one-line notice read as an
   error state rather than a completed signup. */
.hmd-app-done{background:var(--tint);border:1px solid var(--line-soft);
  border-radius:var(--r-card);padding:34px 36px;margin:0 0 8px;}
.hmd-app-done h2{font-family:var(--font-head);font-size:26px;font-weight:600;
  color:var(--ink);margin:0 0 10px;}
.hmd-app-done p{margin:0 0 8px;color:var(--muted);}
.hmd-app-done__actions{margin:22px 0 0;display:flex;flex-wrap:wrap;gap:12px;}
.page-content .hmd-app-done__actions a{text-decoration:none;}
@media (max-width:640px){
  .hmd-app-done{padding:24px 22px;}
  .hmd-app-done__actions{flex-direction:column;}
  .hmd-app-done__actions .button{width:100%;}
}

/* ==========================================================================
   CHECKOUT
   ========================================================================== */

/* The summary block paints its own white panel inside the grey sidebar, which
   reads as a card inside a card. One flat panel, as on the reference. */
.wp-block-woocommerce-checkout .wc-block-components-sidebar .wp-block-woocommerce-checkout-order-summary-block,
.wp-block-woocommerce-checkout .wc-block-components-sidebar .wc-block-components-order-summary{
  background:none;border:0;box-shadow:none;padding:0;}

.wp-block-woocommerce-checkout .wc-block-components-order-summary-item__image,
.wp-block-woocommerce-checkout .wc-block-components-order-summary-item__image img{
  width:64px;max-width:64px;height:auto;max-height:88px;object-fit:contain;}

.wp-block-woocommerce-checkout .wc-block-components-order-summary-item__description
  .wc-block-components-product-name{font-size:16px;color:var(--ink);}

/* Blocks renders the place-order control with no background of its own. */
.wp-block-woocommerce-checkout .wc-block-components-checkout-place-order-button{
  background:var(--orange);border:1px solid var(--orange);color:#fff;
  border-radius:var(--r-btn);height:56px;width:100%;
  font-family:var(--font-body);font-size:15px;font-weight:800;
  letter-spacing:1.04px;text-transform:uppercase;}
.wp-block-woocommerce-checkout .wc-block-components-checkout-place-order-button:hover{
  background:var(--orange-deep);border-color:var(--orange-deep);color:#fff;}

/* Match the field treatment already used on /apply/. */
.wp-block-woocommerce-checkout .wc-block-components-text-input input,
.wp-block-woocommerce-checkout .wc-block-components-address-form input,
.wp-block-woocommerce-checkout .wc-block-components-form .wc-block-components-text-input input{
  border-radius:var(--r-field);border-color:var(--line);}

.wp-block-woocommerce-checkout .wc-block-components-checkout-step__title{
  font-family:var(--font-head);font-size:22px;font-weight:600;color:var(--ink);}

/* On /apply/ the "create an account" lead sits above a card confirming the
   account already exists. */
.page-content p.lead:has(+ .hmd-app-done){display:none;}

/* Hero trust marks — added 2026-09-11 with the HR-parity copy pass */
.hmd-hero__marks{display:flex;flex-wrap:wrap;gap:10px 22px;margin:0 0 22px;
  font-size:13px;font-weight:600;letter-spacing:.02em;color:var(--ink);}
.hmd-hero__marks > span{display:inline-flex;align-items:center;}
.hmd-hero__marks > span + span::before{content:'';display:inline-block;width:4px;height:4px;
  border-radius:50%;background:currentColor;opacity:.45;margin-right:22px;margin-left:-13px;}
@media(max-width:640px){.hmd-hero__marks{font-size:12px;gap:8px 16px;}
  .hmd-hero__marks > span + span::before{margin-right:16px;margin-left:-10px;}}
