/*
Theme Name:   AXPEP
Theme URI:    https://axpeps.com
Description:  Standalone WooCommerce storefront for AXPEP research compounds. Soft clinical aesthetic — off-white ground, generous radii, floating vials, RUO-compliant throughout. No parent theme.
Author:       AXPEP
Version:      4.0.0
Requires PHP: 7.4
License:      GPL-2.0-or-later
Text Domain:  axpep
Tags:         e-commerce, custom-menu, featured-images
*/

/* ==================================================================
   TOKENS
   ================================================================== */
:root{
  --bg:#F4F6F9;
  --surface:#FFFFFF;
  --ink:#16203C;
  --ink-soft:#2C3A5E;
  --muted:#6B7793;
  --line:#E6EAF0;
  --accent:#16203C;
  --mint:#E8F4EF;
  --blush:#FBEFF1;
  --lilac:#F0EEF9;
  --sky:#EAF1FA;

  --r-sm:12px;
  --r-md:20px;
  --r-lg:28px;
  --r-pill:999px;

  --sh-sm:0 2px 10px rgba(22,32,60,0.05);
  --sh-md:0 8px 30px rgba(22,32,60,0.08);
  --sh-lg:0 18px 50px rgba(22,32,60,0.12);

  --font:'Poppins',system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  --mono:ui-monospace,'SF Mono',Menlo,Consolas,monospace;

  --wrap:1240px;
  --t:0.28s cubic-bezier(.4,0,.2,1);
}

/* ==================================================================
   RESET
   ================================================================== */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:var(--font);
  font-size:16px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--ink);text-decoration:none;transition:color var(--t)}
a:hover{color:var(--muted)}
button,input,select,textarea{font-family:inherit;font-size:inherit}
button{cursor:pointer}
h1,h2,h3,h4,h5,h6{margin:0 0 .6em;font-weight:600;line-height:1.18;letter-spacing:-.02em;text-wrap:balance}
h1{font-size:clamp(2.2rem,5vw,3.6rem);font-weight:700}
h2{font-size:clamp(1.6rem,3.2vw,2.4rem)}
h3{font-size:1.25rem}
p{margin:0 0 1em}
ul,ol{margin:0 0 1em;padding-left:1.2em}
:focus-visible{outline:2px solid var(--ink);outline-offset:3px;border-radius:4px}

.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:.01em}
.eyebrow{
  display:inline-block;font-size:.72rem;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;color:var(--muted);
  margin-bottom:1rem;
}
.skip-link{position:absolute;left:-9999px}
.skip-link:focus{left:16px;top:16px;z-index:100;background:#fff;padding:12px 20px;border-radius:var(--r-pill)}

/* ==================================================================
   BUTTONS
   ================================================================== */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  padding:.95rem 2rem;border:1.5px solid var(--ink);border-radius:var(--r-pill);
  background:var(--ink);color:#fff;
  font-size:.92rem;font-weight:600;letter-spacing:.01em;
  transition:transform var(--t),box-shadow var(--t),background var(--t),color var(--t);
  box-shadow:var(--sh-sm);
}
.btn:hover{background:var(--ink-soft);color:#fff;transform:translateY(-2px);box-shadow:var(--sh-md)}
.btn:active{transform:translateY(0)}
.btn-ghost{background:transparent;color:var(--ink);box-shadow:none}
.btn-ghost:hover{background:var(--ink);color:#fff}
.btn-soft{background:var(--surface);color:var(--ink);border-color:var(--line)}
.btn-soft:hover{background:var(--surface);border-color:var(--ink);color:var(--ink)}
.btn-block{width:100%}
.btn[disabled],.btn:disabled{opacity:.4;cursor:not-allowed;transform:none;box-shadow:none}

/* ==================================================================
   HEADER
   ================================================================== */
.hdr{
  position:sticky;top:0;z-index:500;
  background:rgba(244,246,249,.85);
  backdrop-filter:saturate(180%) blur(14px);
  -webkit-backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid transparent;
  transition:border-color var(--t),background var(--t);
}
.hdr.stuck{border-bottom-color:var(--line);background:rgba(244,246,249,.95)}
.hdr-in{
  max-width:var(--wrap);margin:0 auto;padding:14px 24px;
  display:flex;align-items:center;justify-content:space-between;gap:24px;
}
.brand{display:flex;align-items:center;gap:10px;font-size:1.45rem;font-weight:700;letter-spacing:-.03em}
.brand:hover{color:var(--ink)}
.brand-dot{width:9px;height:9px;border-radius:50%;background:var(--ink);display:inline-block}
.brand img{max-height:38px;width:auto}

.nav{display:flex;align-items:center;gap:6px;list-style:none;margin:0;padding:0}
.nav li{position:relative}
.nav a{
  display:block;padding:.55rem 1rem;border-radius:var(--r-pill);
  font-size:.92rem;font-weight:500;color:var(--ink-soft);
  transition:background var(--t),color var(--t);
}
.nav a:hover,.nav .current-menu-item > a{background:rgba(22,32,60,.06);color:var(--ink)}

.hdr-actions{display:flex;align-items:center;gap:8px}
.icon-btn{
  display:flex;align-items:center;gap:8px;
  padding:.55rem 1.1rem;border:1.5px solid var(--line);border-radius:var(--r-pill);
  background:var(--surface);color:var(--ink);font-size:.88rem;font-weight:500;
  transition:border-color var(--t),box-shadow var(--t);
}
.icon-btn:hover{border-color:var(--ink);box-shadow:var(--sh-sm);color:var(--ink)}
.icon-btn svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.9}
.cart-pill{
  min-width:20px;height:20px;padding:0 6px;border-radius:var(--r-pill);
  background:var(--ink);color:#fff;font-size:.7rem;font-weight:600;
  display:inline-flex;align-items:center;justify-content:center;font-family:var(--mono);
}
.burger{display:none;background:none;border:none;padding:8px}
.burger svg{width:24px;height:24px;stroke:var(--ink);stroke-width:2;fill:none}

/* ==================================================================
   HERO
   ================================================================== */
.hero{position:relative;overflow:hidden;padding:clamp(3rem,7vw,6rem) 0 clamp(3.5rem,8vw,7rem)}
.hero-in{
  max-width:var(--wrap);margin:0 auto;padding:0 24px;
  display:grid;grid-template-columns:1.05fr .95fr;gap:3rem;align-items:center;
  position:relative;z-index:2;
}
.hero h1{margin-bottom:1.2rem}
.hero-lead{font-size:1.1rem;color:var(--muted);max-width:460px;margin-bottom:2rem}
.hero-actions{display:flex;gap:.9rem;flex-wrap:wrap;margin-bottom:2.2rem}
.hero-meta{display:flex;gap:2rem;flex-wrap:wrap}
.hero-meta div{display:flex;flex-direction:column}
.hero-meta strong{font-size:1.4rem;font-weight:700;font-family:var(--mono)}
.hero-meta span{font-size:.8rem;color:var(--muted)}

/* floating vial cluster */
.hero-art{position:relative;min-height:400px;display:flex;align-items:center;justify-content:center}
.vial-float{position:absolute;filter:drop-shadow(0 16px 32px rgba(22,32,60,.13))}
.vial-float:nth-child(1){width:130px;left:6%;top:16%;animation:drift 11s ease-in-out infinite}
.vial-float:nth-child(2){width:172px;left:36%;top:2%;animation:drift 13s ease-in-out infinite .8s}
.vial-float:nth-child(3){width:118px;right:8%;top:24%;animation:drift 12s ease-in-out infinite 1.6s}
.vial-float:nth-child(4){width:96px;left:20%;bottom:6%;animation:drift 14s ease-in-out infinite 2.4s}
.vial-float:nth-child(5){width:108px;right:20%;bottom:2%;animation:drift 10s ease-in-out infinite 3.2s}
@keyframes drift{
  0%,100%{transform:translateY(0) rotate(-3deg)}
  50%{transform:translateY(-18px) rotate(3deg)}
}

/* soft colour blooms behind the hero */
.bloom{position:absolute;border-radius:50%;filter:blur(70px);opacity:.55;pointer-events:none;z-index:1}
.bloom-1{width:420px;height:420px;background:var(--blush);top:-90px;right:4%}
.bloom-2{width:360px;height:360px;background:var(--sky);bottom:-120px;left:-60px}
.bloom-3{width:300px;height:300px;background:var(--mint);top:32%;right:32%}

/* ==================================================================
   TRUST
   ================================================================== */
.trust{padding:0 0 clamp(3rem,6vw,5rem)}
.trust-grid{
  max-width:var(--wrap);margin:0 auto;padding:0 24px;
  display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem;
}
.trust-card{
  background:var(--surface);border-radius:var(--r-md);padding:1.8rem 1.5rem;
  box-shadow:var(--sh-sm);transition:transform var(--t),box-shadow var(--t);
}
.trust-card:hover{transform:translateY(-4px);box-shadow:var(--sh-md)}
.trust-ico{
  width:44px;height:44px;border-radius:14px;margin-bottom:1rem;
  display:flex;align-items:center;justify-content:center;
}
.trust-card:nth-child(1) .trust-ico{background:var(--mint)}
.trust-card:nth-child(2) .trust-ico{background:var(--blush)}
.trust-card:nth-child(3) .trust-ico{background:var(--lilac)}
.trust-card:nth-child(4) .trust-ico{background:var(--sky)}
.trust-ico svg{width:21px;height:21px;stroke:var(--ink);fill:none;stroke-width:1.8}
.trust-card strong{display:block;font-size:.98rem;font-weight:600;margin-bottom:.25rem}
.trust-card span{font-size:.85rem;color:var(--muted);line-height:1.55}

/* ==================================================================
   SECTIONS
   ================================================================== */
.section{padding:clamp(3rem,6vw,5rem) 0}
.section-head{
  max-width:var(--wrap);margin:0 auto 2.5rem;padding:0 24px;
  display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;flex-wrap:wrap;
}
.section-head h2{margin:0}
.section-head p{color:var(--muted);margin:.4rem 0 0;max-width:520px}
.link-arrow{font-size:.92rem;font-weight:600;display:inline-flex;align-items:center;gap:.4rem;white-space:nowrap}
.link-arrow:hover{gap:.7rem;color:var(--ink)}

/* ==================================================================
   PRODUCT GRID  (theme markup + WooCommerce loop)
   ================================================================== */
/* Safety net. Card styling is scoped under .woocommerce because that is where
   Woo's own rules live, but a bare ul.products can appear in a widget, a block,
   or a shortcode where that ancestor is absent. Without this it degrades to a
   bulleted list. Low specificity on purpose so the scoped rules still win. */
ul.products{
  list-style:none;
  margin:0 auto;padding:0 24px;
  max-width:var(--wrap);
  display:grid;grid-template-columns:repeat(4,1fr);gap:1.4rem;
}
ul.products > li.product{list-style:none;margin:0}
@media(max-width:1100px){ul.products{grid-template-columns:repeat(3,1fr)}}
@media(max-width:900px){ul.products{grid-template-columns:repeat(2,1fr);gap:1rem}}

.prod-grid,
.woocommerce ul.products{
  max-width:var(--wrap);margin:0 auto!important;padding:0 24px!important;
  display:grid!important;grid-template-columns:repeat(4,1fr);gap:1.4rem;
  list-style:none;
}
.woocommerce ul.products::before,.woocommerce ul.products::after{display:none!important}

.card,
.woocommerce ul.products li.product{
  position:relative;
  background:var(--surface);border-radius:var(--r-lg);
  box-shadow:var(--sh-sm);overflow:hidden;
  display:flex!important;flex-direction:column;
  width:auto!important;margin:0!important;float:none!important;
  transition:transform var(--t),box-shadow var(--t);
}
.card:hover,
.woocommerce ul.products li.product:hover{transform:translateY(-6px);box-shadow:var(--sh-lg)}

.card-media,
.woocommerce ul.products li.product > a:first-of-type{
  display:block;position:relative;
  padding:2rem 1.5rem 1.2rem;
  background:linear-gradient(160deg,var(--sky) 0%,var(--surface) 70%);
}
.woocommerce ul.products li.product:nth-child(4n+2) > a:first-of-type,
.card:nth-child(4n+2) .card-media{background:linear-gradient(160deg,var(--blush) 0%,var(--surface) 70%)}
.woocommerce ul.products li.product:nth-child(4n+3) > a:first-of-type,
.card:nth-child(4n+3) .card-media{background:linear-gradient(160deg,var(--mint) 0%,var(--surface) 70%)}
.woocommerce ul.products li.product:nth-child(4n+4) > a:first-of-type,
.card:nth-child(4n+4) .card-media{background:linear-gradient(160deg,var(--lilac) 0%,var(--surface) 70%)}

/* Card artwork. display:block matters — an inline img ignores margin:auto
   and drifts left instead of centring. */
.card-media img,
.card-media .ax-vial-wrap,
.woocommerce ul.products li.product img,
.woocommerce ul.products li.product .ax-vial-wrap{
  display:block!important;
  width:auto;max-width:100%;
  height:190px;
  margin:0 auto!important;
  object-fit:contain;
  border-radius:0;
  transition:transform var(--t);
}
/* The vial is an SVG in a span — give it a width to size against. */
.card-media .ax-vial-wrap,
.woocommerce ul.products li.product .ax-vial-wrap{width:112px}
.card-media .ax-vial-wrap svg,
.woocommerce ul.products li.product .ax-vial-wrap svg{height:190px;width:auto;margin:0 auto}

.card:hover .card-media img,
.card:hover .card-media .ax-vial-wrap,
.woocommerce ul.products li.product:hover img,
.woocommerce ul.products li.product:hover .ax-vial-wrap{transform:scale(1.06) translateY(-4px)}

.card-badge{
  position:absolute;top:14px;left:14px;
  background:rgba(255,255,255,.9);backdrop-filter:blur(6px);
  border-radius:var(--r-pill);padding:.25rem .7rem;
  font-family:var(--mono);font-size:.68rem;font-weight:600;color:var(--ink-soft);
}

.card-body{padding:1.3rem 1.4rem 1.5rem;display:flex;flex-direction:column;flex:1}
.card-title,
.woocommerce ul.products li.product .woocommerce-loop-product__title{
  font-size:1.02rem!important;font-weight:600!important;
  margin:0 0 .3rem!important;padding:0!important;line-height:1.3;color:var(--ink);
}
.card-sku{font-family:var(--mono);font-size:.75rem;color:var(--muted);margin-bottom:.7rem}
.card-price,
.woocommerce ul.products li.product .price{
  font-size:1.22rem!important;font-weight:700!important;color:var(--ink)!important;
  margin:0 0 1rem!important;display:block;
}
.woocommerce ul.products li.product .price del{color:var(--muted);font-weight:400;font-size:.9rem}
.woocommerce ul.products li.product .price ins{text-decoration:none}

.card-cta,
.woocommerce ul.products li.product .button{
  margin-top:auto!important;
  display:inline-flex!important;align-items:center;justify-content:center;
  width:100%;padding:.85rem 1.2rem!important;
  border:1.5px solid var(--line)!important;border-radius:var(--r-pill)!important;
  background:var(--surface)!important;color:var(--ink)!important;
  font-size:.88rem!important;font-weight:600!important;
  transition:background var(--t),color var(--t),border-color var(--t);
}
.card:hover .card-cta,
.woocommerce ul.products li.product:hover .button{
  background:var(--ink)!important;color:#fff!important;border-color:var(--ink)!important;
}
.woocommerce ul.products li.product .button.added{background:var(--ink)!important;color:#fff!important}
.woocommerce ul.products li.product .added_to_cart{
  display:block;text-align:center;margin-top:.6rem;font-size:.8rem;color:var(--muted);
}

.card-ruo{
  margin-top:.9rem;padding-top:.9rem;border-top:1px solid var(--line);
  font-size:.7rem;line-height:1.5;color:var(--muted);
}

.woocommerce span.onsale{
  position:absolute;top:14px;right:14px;left:auto!important;
  background:var(--ink)!important;color:#fff!important;
  border-radius:var(--r-pill)!important;
  padding:.25rem .75rem!important;margin:0!important;
  font-size:.68rem!important;font-weight:600;
  min-height:0!important;min-width:0!important;line-height:1.6!important;
}
.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering{display:none}

/* ==================================================================
   SINGLE PRODUCT
   ================================================================== */
.woocommerce div.product{
  max-width:var(--wrap);margin:0 auto;padding:3rem 24px 4rem;
  display:grid;grid-template-columns:1fr 1fr;gap:3.5rem;align-items:start;
}
.woocommerce div.product .woocommerce-product-gallery{
  width:auto!important;float:none!important;margin:0!important;
  background:linear-gradient(160deg,var(--sky) 0%,var(--surface) 65%);
  border-radius:var(--r-lg);padding:2.5rem;box-shadow:var(--sh-sm);
}
.woocommerce div.product .woocommerce-product-gallery img{border-radius:var(--r-md)}
.woocommerce div.product div.summary{width:auto!important;float:none!important;margin:0!important}
.woocommerce div.product .product_title{font-size:clamp(1.7rem,3.2vw,2.4rem);margin-bottom:.5rem}
.woocommerce div.product p.price,
.woocommerce div.product span.price{
  font-size:1.9rem!important;font-weight:700!important;color:var(--ink)!important;margin:0 0 1.2rem!important;
}
.single-sku{
  font-family:var(--mono);font-size:.82rem;color:var(--muted);
  padding:.8rem 1.1rem;background:var(--surface);border-radius:var(--r-sm);
  display:inline-block;margin-bottom:1.4rem;
}
.woocommerce div.product form.cart{margin:0 0 1.2rem!important}
.woocommerce div.product form.cart .button{
  width:100%;padding:1.05rem!important;border-radius:var(--r-pill)!important;
  background:var(--ink)!important;color:#fff!important;border:1.5px solid var(--ink)!important;
  font-size:.95rem!important;font-weight:600!important;
  transition:transform var(--t),box-shadow var(--t);
}
.woocommerce div.product form.cart .button:hover{transform:translateY(-2px);box-shadow:var(--sh-md)}
.woocommerce div.product form.cart div.quantity{float:none;margin:0 0 .9rem;display:block}
.woocommerce .quantity input.qty{
  width:96px;padding:.85rem;text-align:center;
  border:1.5px solid var(--line);border-radius:var(--r-pill);
  background:var(--surface);color:var(--ink);font-family:var(--mono);
}
.woocommerce div.product .variations{border:0;margin-bottom:1.2rem;width:100%}
.woocommerce div.product .variations tr,
.woocommerce div.product .variations td{display:block;width:100%;padding:0}
.woocommerce div.product .variations label{
  font-size:.75rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
  color:var(--muted);margin-bottom:.4rem;display:block;
}
.woocommerce div.product .variations select{
  width:100%;padding:.85rem 1rem;margin-bottom:.9rem;
  border:1.5px solid var(--line);border-radius:var(--r-pill);
  background:var(--surface);color:var(--ink);
}
.ruo-block{
  background:var(--surface);border-radius:var(--r-md);
  padding:1.1rem 1.3rem;margin:1.3rem 0;box-shadow:var(--sh-sm);
}
.ruo-note{font-size:.82rem;font-style:italic;color:var(--muted);line-height:1.6;margin:0}
.ruo-note strong{font-style:normal;color:var(--ink);font-weight:600}
.ruo-note + .ruo-note{margin-top:.7rem;padding-top:.7rem;border-top:1px solid var(--line)}
.ruo-fda{font-size:.76rem}
.spec-note{font-size:.8rem;font-style:italic;color:var(--muted);margin:1rem 0 0}
.acc-body .btn{margin-top:.6rem}
.ftr-fda{
  display:block;max-width:820px;margin:.7rem auto 0;
  font-size:.76rem;font-style:italic;color:var(--muted);line-height:1.6;
}

.acc{margin-top:1.6rem;border-radius:var(--r-md);overflow:hidden;background:var(--surface);box-shadow:var(--sh-sm)}
.acc details{border-bottom:1px solid var(--line)}
.acc details:last-child{border-bottom:0}
.acc summary{
  padding:1.15rem 1.4rem;cursor:pointer;list-style:none;
  display:flex;justify-content:space-between;align-items:center;
  font-size:.95rem;font-weight:600;
}
.acc summary::-webkit-details-marker{display:none}
.acc summary::after{content:"";width:9px;height:9px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg);transition:transform var(--t);margin-top:-4px}
.acc details[open] summary::after{transform:rotate(-135deg);margin-top:4px}
.acc-body{padding:0 1.4rem 1.4rem;color:var(--muted);font-size:.92rem}
.acc-body dl{display:grid;grid-template-columns:auto 1fr;gap:.55rem 1.5rem;margin:0}
.acc-body dt{color:var(--muted)}
.acc-body dd{margin:0;font-family:var(--mono);color:var(--ink)}

.woocommerce div.product .woocommerce-tabs,
.woocommerce div.product .product_meta{display:none}
.woocommerce .related.products{
  grid-column:1/-1;max-width:var(--wrap);margin:2rem auto 0;padding:3rem 0 0;
  border-top:1px solid var(--line);
}
.woocommerce .related.products > h2{padding:0 24px;margin-bottom:1.8rem}

/* ==================================================================
   CART / CHECKOUT / FORMS
   ================================================================== */
.woocommerce-cart .site-main,
.woocommerce-checkout .site-main,
.woocommerce-account .site-main{max-width:var(--wrap);margin:0 auto;padding:3rem 24px 4rem}

.woocommerce table.shop_table{
  background:var(--surface);border:0!important;border-radius:var(--r-md)!important;
  box-shadow:var(--sh-sm);border-collapse:separate;border-spacing:0;overflow:hidden;
}
.woocommerce table.shop_table th{
  background:transparent;border:0;padding:1.1rem 1.3rem;text-align:left;
  font-size:.75rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);
}
.woocommerce table.shop_table td{border:0;border-top:1px solid var(--line);padding:1.1rem 1.3rem}
.woocommerce table.shop_table img{width:56px;border-radius:var(--r-sm)}
.woocommerce a.remove{
  color:var(--muted)!important;border-radius:50%;
  width:24px;height:24px;line-height:22px;font-size:1.1rem;
}
.woocommerce a.remove:hover{background:var(--ink)!important;color:#fff!important}

.woocommerce .cart_totals,
.woocommerce-checkout #order_review,
.woocommerce-checkout .woocommerce-checkout-review-order{
  background:var(--surface);border-radius:var(--r-md);padding:1.6rem;box-shadow:var(--sh-sm);
}
.woocommerce .cart_totals h2,
#order_review_heading{font-size:1.15rem;margin-bottom:1rem}
.woocommerce .wc-proceed-to-checkout a.checkout-button{
  display:block;width:100%;text-align:center;margin-top:1rem;
  padding:1.05rem!important;border-radius:var(--r-pill)!important;
  background:var(--ink)!important;color:#fff!important;border:1.5px solid var(--ink)!important;
  font-weight:600!important;font-size:.95rem!important;
}

.woocommerce form .form-row{padding:0;margin:0 0 1.1rem}
.woocommerce form .form-row label{
  display:block;margin-bottom:.45rem;
  font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);
}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-checkout input[type="text"],
.woocommerce-checkout input[type="email"],
.woocommerce-checkout input[type="tel"],
.select2-container .select2-selection--single{
  width:100%;padding:.9rem 1.1rem!important;height:auto!important;
  background:var(--surface);color:var(--ink);
  border:1.5px solid var(--line)!important;border-radius:var(--r-sm)!important;
  transition:border-color var(--t),box-shadow var(--t);
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus{
  outline:none;border-color:var(--ink)!important;box-shadow:0 0 0 3px rgba(22,32,60,.07);
}
.woocommerce form.checkout h3{font-size:1.15rem;margin:2rem 0 1.2rem}
.woocommerce-checkout #payment{background:transparent;border-radius:var(--r-md)}
.woocommerce-checkout #payment ul.payment_methods{
  background:var(--surface);border:0;border-radius:var(--r-md);padding:1.2rem;margin-bottom:1rem;
}
.woocommerce-checkout #payment div.form-row{padding:0}
.woocommerce-checkout #payment #place_order{
  width:100%;padding:1.1rem!important;border-radius:var(--r-pill)!important;
  background:var(--ink)!important;color:#fff!important;border:1.5px solid var(--ink)!important;
  font-size:1rem!important;font-weight:600!important;
}

.woocommerce-message,.woocommerce-info,.woocommerce-error,.woocommerce-noreviews{
  background:var(--surface)!important;border:0!important;border-top:0!important;
  border-left:3px solid var(--ink)!important;border-radius:var(--r-sm)!important;
  box-shadow:var(--sh-sm);color:var(--ink)!important;padding:1.1rem 1.4rem!important;
}
.woocommerce-message::before,.woocommerce-info::before,.woocommerce-error::before{display:none}
.woocommerce-error{border-left-color:#C8484F!important}
.woocommerce-message .button,.woocommerce-error .button{
  border-radius:var(--r-pill)!important;background:var(--ink)!important;color:#fff!important;
}

/* ==================================================================
   PAGE / CONTENT
   ================================================================== */
.page-hero{padding:3.5rem 0 2rem;text-align:center}
.page-hero h1{margin-bottom:.5rem}
.page-hero p{color:var(--muted);max-width:600px;margin:0 auto}
.content-card{
  max-width:860px;margin:0 auto 4rem;padding:clamp(1.8rem,4vw,3rem);
  background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--sh-sm);
}
.content-card h2{margin-top:2rem;font-size:1.4rem}
.content-card h3{margin-top:1.6rem;font-size:1.1rem}
.content-card h2:first-child,.content-card h3:first-child{margin-top:0}
.content-card ul,.content-card ol{color:var(--ink-soft)}
.content-card li{margin-bottom:.4rem}

/* ==================================================================
   FOOTER
   ================================================================== */
.ftr{background:var(--surface);border-top:1px solid var(--line);padding:4rem 0 0;margin-top:2rem}
.ftr-grid{
  max-width:var(--wrap);margin:0 auto;padding:0 24px 3rem;
  display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:2.5rem;
}
.ftr-brand .brand{margin-bottom:1rem}
.ftr-brand p{color:var(--muted);font-size:.9rem;max-width:300px}
.ftr h4{font-size:.75rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);margin-bottom:1.1rem}
.ftr ul{list-style:none;margin:0;padding:0}
.ftr li{margin-bottom:.65rem}
.ftr li a{font-size:.9rem;color:var(--ink-soft)}
.ftr li a:hover{color:var(--ink)}
.ftr-social{display:flex;gap:.6rem;margin-top:1.2rem}
.ftr-social a{
  width:38px;height:38px;border-radius:50%;border:1.5px solid var(--line);
  display:flex;align-items:center;justify-content:center;transition:border-color var(--t),transform var(--t);
}
.ftr-social a:hover{border-color:var(--ink);transform:translateY(-2px)}
.ftr-social svg{width:16px;height:16px;fill:var(--ink)}
.ftr-ruo{
  border-top:1px solid var(--line);
  padding:1.4rem 24px;text-align:center;
  font-size:.85rem;font-weight:500;color:var(--ink-soft);
}
.ftr-entity{
  border-top:1px solid var(--line);
  padding:1.1rem 24px;text-align:center;
  font-size:.82rem;color:var(--ink-soft);
}
.ftr-legal{
  border-top:1px solid var(--line);
  max-width:var(--wrap);margin:0 auto;padding:1.3rem 24px;
  display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  font-size:.8rem;color:var(--muted);
}

/* Legal pages carry long documents — give them readable measure and rhythm. */
.content-card h2{font-size:1.25rem;font-weight:600;margin:2.2rem 0 .8rem}
.content-card h2:first-child{margin-top:0}
.content-card p,.content-card li{font-size:.95rem;line-height:1.8}
.content-card mark{padding:2px 6px;border-radius:4px}

/* ==================================================================
   SCROLL REVEAL
   ================================================================== */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .6s ease,transform .6s ease}
.reveal.in{opacity:1;transform:none}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .reveal{opacity:1;transform:none}
  .vial-float{animation:none!important}
}

/* ==================================================================
   RESPONSIVE
   ================================================================== */
@media(max-width:1100px){
  .prod-grid,.woocommerce ul.products{grid-template-columns:repeat(3,1fr)}
  .ftr-grid{grid-template-columns:1fr 1fr 1fr}
  .ftr-brand{grid-column:1/-1}
}
@media(max-width:900px){
  .nav{
    display:none;position:absolute;top:100%;left:0;right:0;
    flex-direction:column;align-items:stretch;gap:2px;
    background:var(--surface);padding:14px;margin:0 12px;
    border-radius:var(--r-md);box-shadow:var(--sh-lg);
  }
  .nav.open{display:flex}
  .burger{display:block}
  .hero-in{grid-template-columns:1fr;gap:2rem}
  .hero-art{min-height:300px;order:-1}
  .trust-grid{grid-template-columns:1fr 1fr}
  .prod-grid,.woocommerce ul.products{grid-template-columns:repeat(2,1fr);gap:1rem}
  .woocommerce div.product{grid-template-columns:1fr;gap:2rem;padding-top:2rem}
  .section-head{flex-direction:column;align-items:flex-start;gap:1rem}
}
@media(max-width:560px){
  .ftr-grid{grid-template-columns:1fr 1fr}
  .hero-meta{gap:1.2rem}
  .icon-btn span.label{display:none}
  .bloom{display:none}
}
