/* ==========================================================================
   Amino World — storefront design system (light, clinical)
   Load order: Bootstrap 5.3.3 → legacy.css (optional) → this file.
   Everything new is namespaced .aw-* so it can't collide with older pages.
   ========================================================================== */

:root{
  --aw-blue:#1f5fff;
  --aw-blue-dark:#0f46d8;
  --aw-blue-soft:#e8efff;
  --aw-navy:#0b1633;
  --aw-ink:#1b2440;
  --aw-muted:#5f6b85;
  --aw-line:#e3e8f1;
  --aw-bg:#ffffff;
  --aw-bg-soft:#f4f7fc;
  --aw-bg-ice:#eaf1fb;
  --aw-green:#18a957;

  --aw-font-display:'Montserrat', system-ui, sans-serif;
  --aw-font-body:'Inter', system-ui, sans-serif;

  --aw-radius:10px;
  --aw-radius-lg:16px;
  --aw-shadow-sm:0 1px 2px rgba(11,22,51,.05), 0 2px 8px rgba(11,22,51,.04);
  --aw-shadow:0 10px 30px rgba(11,22,51,.08);
  --aw-header-h:88px;
  --aw-max:1440px;
}

/* ---------------------------------------------------------------- base */
.aw-header *, .aw-header *::before, .aw-header *::after,
.aw-main *, .aw-main *::before, .aw-main *::after,
.aw-footer *, .aw-footer *::before, .aw-footer *::after,
.aw-container{ box-sizing:border-box; }
html{ scroll-behavior:smooth; scroll-padding-top:calc(var(--aw-header-h) + 12px); }
body.aw-body{
  margin:0;
  background:var(--aw-bg);
  color:var(--aw-ink);
  font-family:var(--aw-font-body);
  font-size:15px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
body.aw-body{ overflow-x:clip; }
body.aw-body a{ text-decoration:none; }
body.aw-body img{ max-width:100%; }

.aw-container{
  width:100%;
  max-width:var(--aw-max);
  margin:0 auto;
  padding:0 32px;
}
@media (max-width:768px){ .aw-container{ padding:0 16px; } }

.aw-kicker{
  font-family:var(--aw-font-display);
  font-size:11px;
  font-weight:500;
  letter-spacing:.32em;
  text-transform:uppercase;
  color:var(--aw-muted);
  margin:0 0 18px;
}
.aw-kicker span{ margin:0 10px; opacity:.5; }
.aw-hero .aw-kicker{ white-space:nowrap; }
@media (max-width:560px){ .aw-hero .aw-kicker{ white-space:normal; letter-spacing:.2em; } }

.aw-h2{
  font-family:var(--aw-font-display);
  font-weight:700;
  font-size:15px;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:var(--aw-navy);
  margin:0 0 16px;
}

/* ---------------------------------------------------------------- buttons */
.aw-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  height:48px; padding:0 34px;
  border-radius:999px;
  font-family:var(--aw-font-display);
  font-size:12.5px; font-weight:600; letter-spacing:.12em; text-transform:uppercase;
  border:1.5px solid transparent;
  transition:background .2s, color .2s, border-color .2s, transform .2s, box-shadow .2s;
  cursor:pointer;
}
.aw-btn-primary{ background:var(--aw-blue); color:#fff; box-shadow:0 8px 22px rgba(31,95,255,.28); }
.aw-btn-primary:hover{ background:var(--aw-blue-dark); color:#fff; transform:translateY(-1px); }
.aw-btn-outline{ background:rgba(255,255,255,.6); color:var(--aw-blue); border-color:var(--aw-blue); }
.aw-btn-outline:hover{ background:var(--aw-blue); color:#fff; }
.aw-btn-sm{ height:36px; padding:0 20px; font-size:10.5px; }

/* ================================================================ HEADER (sticky) */
.aw-header{
  position:sticky; top:0; z-index:1030;
  height:var(--aw-header-h);
  background:rgba(255,255,255,.94);
  -webkit-backdrop-filter:saturate(160%) blur(12px);
  backdrop-filter:saturate(160%) blur(12px);
  border-bottom:1px solid transparent;
  transition:box-shadow .25s, border-color .25s;
}
.aw-header.is-scrolled{ border-bottom-color:var(--aw-line); box-shadow:0 4px 20px rgba(11,22,51,.06); }

.aw-header-inner{
  height:100%;
  display:flex; align-items:center; gap:40px;
}
.aw-logo{ display:flex; align-items:center; flex-shrink:0; }
.aw-logo img{ height:54px; width:auto; display:block; }

.aw-nav{ display:flex; align-items:center; gap:34px; flex:1; justify-content:center; }
.aw-nav-link{
  display:inline-flex; align-items:center; gap:6px;
  font-size:14px; font-weight:500; color:var(--aw-ink);
  padding:8px 0;
  position:relative;
}
.aw-nav-link::after{
  content:''; position:absolute; left:0; right:0; bottom:2px; height:2px;
  background:var(--aw-blue); transform:scaleX(0); transition:transform .2s;
}
.aw-nav-link:hover{ color:var(--aw-blue); }
.aw-nav-link:hover::after{ transform:scaleX(1); }

.aw-nav-item{ position:relative; }
.aw-drop{
  position:absolute; top:100%; left:-16px;
  min-width:220px; padding:8px;
  background:#fff; border:1px solid var(--aw-line); border-radius:var(--aw-radius);
  box-shadow:var(--aw-shadow);
  opacity:0; visibility:hidden; transform:translateY(6px);
  transition:opacity .18s, transform .18s, visibility .18s;
}
.aw-has-drop:hover .aw-drop,
.aw-has-drop:focus-within .aw-drop{ opacity:1; visibility:visible; transform:translateY(0); }
.aw-drop a{ display:block; padding:9px 12px; border-radius:6px; font-size:14px; color:var(--aw-ink); }
.aw-drop a:hover{ background:var(--aw-bg-soft); color:var(--aw-blue); }

.aw-actions{ display:flex; align-items:center; gap:18px; }
.aw-search{
  display:flex; align-items:center; gap:8px;
  height:40px; width:250px; padding:0 16px;
  background:var(--aw-bg-soft); border:1px solid var(--aw-line); border-radius:999px;
  color:var(--aw-muted);
}
.aw-search input{
  border:0; outline:0; background:transparent; width:100%;
  font-size:13px; color:var(--aw-ink);
}
.aw-search:focus-within{ border-color:var(--aw-blue); background:#fff; }
.aw-search-mobile{ display:none; }

.aw-icon-btn{ position:relative; display:inline-flex; color:var(--aw-ink); padding:4px; }
.aw-icon-btn:hover{ color:var(--aw-blue); }
.aw-cart .vp-cart-count,
.aw-cart-badge{
  position:absolute; top:-4px; right:-6px;
  min-width:18px; height:18px; padding:0 5px;
  display:inline-flex; align-items:center; justify-content:center;
  background:var(--aw-blue); color:#fff;
  border-radius:999px; font-size:10.5px; font-weight:700; line-height:1;
}

.aw-burger{
  display:none;
  width:40px; height:40px; border:0; background:transparent; padding:9px;
  flex-direction:column; justify-content:space-between;
}
.aw-burger span{ display:block; height:2px; background:var(--aw-ink); border-radius:2px; transition:transform .25s, opacity .25s; }

@media (max-width:1200px){
  .aw-nav{ gap:22px; }
  .aw-search-desktop{ width:190px; }
}
@media (max-width:992px){
  :root{ --aw-header-h:70px; }
  .aw-header{ -webkit-backdrop-filter:none; backdrop-filter:none; background:#fff; }
  .aw-header-inner{ gap:12px; justify-content:space-between; }
  .aw-logo img{ height:44px; max-width:calc(100vw - 180px); object-fit:contain; object-position:left center; }
  .aw-search-desktop{ display:none; }
  .aw-burger{ display:flex; }

  .aw-nav{
    position:fixed; top:var(--aw-header-h); left:0; right:0; bottom:0;
    flex-direction:column; align-items:stretch; justify-content:flex-start; gap:0;
    padding:16px;
    background:#fff; overflow-y:auto;
    opacity:0; visibility:hidden; pointer-events:none; transform:translateY(-8px);
    transition:opacity .22s ease, transform .22s ease, visibility 0s linear .22s;
  }
  body.aw-nav-open .aw-nav{ opacity:1; visibility:visible; pointer-events:auto; transform:none; transition:opacity .22s ease, transform .22s ease; }
  body.aw-nav-open{ overflow:hidden; }
  body.aw-nav-open .aw-burger span:nth-child(1){ transform:translateY(9px) rotate(45deg); }
  body.aw-nav-open .aw-burger span:nth-child(2){ opacity:0; }
  body.aw-nav-open .aw-burger span:nth-child(3){ transform:translateY(-9px) rotate(-45deg); }

  .aw-search-mobile{ display:flex; width:100%; margin-bottom:10px; }
  .aw-nav-link{ font-size:16px; padding:14px 4px; border-bottom:1px solid var(--aw-line); width:100%; justify-content:space-between; }
  .aw-nav-link::after{ display:none; }
  .aw-drop{ position:static; opacity:1; visibility:visible; transform:none; box-shadow:none; border:0; padding:4px 0 8px 12px; min-width:0; }
  .aw-chev{ display:none; }
}

/* ================================================================ HERO */
.aw-hero{
  position:relative; overflow:hidden;
  background:
    var(--hero-bg, none) center / cover no-repeat,
    radial-gradient(1200px 600px at 78% 40%, #ffffff 0%, rgba(255,255,255,0) 60%),
    linear-gradient(115deg, #dfe8f6 0%, #eef3fb 38%, #f7f9fd 60%, #e6eef9 100%);
  min-height:560px;
}
.aw-hero-glow{
  position:absolute; left:-220px; top:-120px; width:620px; height:620px; border-radius:50%;
  background:radial-gradient(circle at 60% 50%, rgba(31,95,255,.18), rgba(31,95,255,0) 65%);
  pointer-events:none;
}
.aw-hero-inner{
  position:relative;
  display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr) auto;
  align-items:center; gap:24px;
  padding-top:56px; padding-bottom:48px;
}
.aw-hero-copy{ padding-left:clamp(0px, 5vw, 110px); }
.aw-hero-title{
  font-family:var(--aw-font-display);
  font-weight:300;
  font-size:clamp(34px, 4.6vw, 72px);
  line-height:1;
  letter-spacing:-.01em;
  text-transform:uppercase;
  color:var(--aw-navy);
  margin:0 0 22px;
}
.aw-hero-title span,
.aw-hero-title strong{ display:block; white-space:nowrap; }
.aw-hero-title strong{ font-weight:800; }
.aw-hero-title em{ font-style:normal; color:var(--aw-blue); }
.aw-hero-sub{ max-width:470px; font-size:16px; color:#36415c; margin:0 0 30px; }
.aw-hero-cta{ display:flex; flex-wrap:wrap; gap:14px; margin-bottom:34px; }
.aw-hero-cta .aw-btn{ min-width:184px; }

.aw-hero-badges{ display:flex; flex-wrap:wrap; gap:22px 30px; }
.aw-badge{ display:flex; align-items:center; gap:10px; }
.aw-badge-ico{
  width:32px; height:32px; border-radius:50%; flex-shrink:0;
  display:inline-flex; align-items:center; justify-content:center;
  border:1px solid rgba(31,95,255,.35); color:var(--aw-blue); background:rgba(255,255,255,.7);
}
.aw-badge-ico svg{ width:16px; height:16px; }
.aw-badge strong{ display:block; font-size:10.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--aw-navy); }
.aw-badge small{ display:block; font-size:11px; color:var(--aw-muted); }

.aw-hero-art{ position:relative; display:flex; align-items:flex-end; justify-content:center; min-height:380px; }
.aw-hero-vials{ position:relative; z-index:2; max-height:440px; width:auto; filter:drop-shadow(0 30px 40px rgba(11,22,51,.18)); }
.aw-hero-cluster{ position:relative; z-index:2; display:flex; align-items:flex-end; justify-content:center; gap:10px; }
.aw-hero-cluster img.v{ height:300px; width:auto; filter:drop-shadow(0 24px 30px rgba(11,22,51,.18)); }
.aw-hero-cluster img.v2{ height:260px; }
.aw-hero-cluster img.v3{ height:340px; margin-bottom:40px; }
.aw-pedestal{
  position:absolute; z-index:1; bottom:18px; left:12%; right:12%; height:70px;
  border-radius:50%;
  background:radial-gradient(ellipse at center, rgba(255,255,255,.95) 0%, rgba(214,224,238,.9) 55%, rgba(214,224,238,0) 72%);
}

/* CSS vials — used only when no hero/product images exist yet */
.aw-vial{
  --cap:var(--aw-blue);
  position:relative; width:92px; height:170px;
  border-radius:14px 14px 18px 18px;
  background:linear-gradient(90deg, rgba(255,255,255,.9), rgba(233,239,248,.95) 40%, #fff 60%, rgba(220,229,242,.95));
  border:1px solid rgba(180,194,214,.7);
  box-shadow:inset 0 0 18px rgba(255,255,255,.9), 0 20px 30px rgba(11,22,51,.12);
  display:flex; align-items:center; justify-content:center;
}
.aw-vial::before{
  content:''; position:absolute; top:-30px; left:10px; right:10px; height:34px;
  border-radius:8px 8px 4px 4px;
  background:linear-gradient(90deg, var(--cap), color-mix(in srgb, var(--cap) 60%, #fff) 50%, var(--cap));
}
.aw-vial span{ font-family:var(--aw-font-display); font-weight:700; font-size:12px; color:var(--aw-navy); }
.aw-css-vials{ gap:22px; }
.aw-css-vials .aw-vial:nth-child(2){ height:200px; }
.aw-css-vials .aw-vial:nth-child(3){ height:230px; margin-bottom:36px; }
.aw-vial-sm{ width:52px; height:84px; border-radius:8px 8px 10px 10px; }
.aw-vial-sm::before{ top:-16px; left:6px; right:6px; height:18px; border-radius:4px 4px 2px 2px; }

.aw-hero-words{
  list-style:none; margin:0; padding:0 0 0 12px;
  font-family:var(--aw-font-display); font-size:11px; font-weight:500;
  letter-spacing:.28em; text-transform:uppercase; color:#4a5878;
  display:flex; flex-direction:column; gap:12px;
}
.aw-hero-words::after{ content:''; display:block; width:42px; height:1px; background:var(--aw-blue); margin-top:14px; }

@media (max-width:1200px){
  .aw-hero-words{ display:none; }
  .aw-hero-inner{ grid-template-columns:1fr 1fr; }
  .aw-hero-copy{ padding-left:0; }
}
@media (max-width:860px){
  .aw-hero{ min-height:0; }
  .aw-hero-inner{ grid-template-columns:minmax(0,1fr); padding-top:36px; padding-bottom:36px; text-align:left; }
  .aw-hero-art{ min-height:260px; order:2; }
  .aw-hero-vials{ max-height:300px; }
  .aw-hero-cluster img.v{ height:190px; }
  .aw-hero-cluster img.v3{ height:220px; }
  .aw-css-vials .aw-vial{ width:64px; height:120px; }
  .aw-css-vials .aw-vial:nth-child(2){ height:140px; }
  .aw-css-vials .aw-vial:nth-child(3){ height:160px; }
  .aw-hero-cta .aw-btn{ flex:1; min-width:0; padding:0 14px; white-space:nowrap; letter-spacing:.08em; }
}

/* ================================================================ SECTIONS */
.aw-section{ padding:26px 0 14px; }

/* ---- categories */
.aw-cat-grid{ display:grid; grid-template-columns:repeat(9, minmax(0,1fr)); gap:10px; }
.aw-cat{
  position:relative; display:block; height:100px;
  border-radius:var(--aw-radius); overflow:hidden;
  background:linear-gradient(160deg, #f6f9fe, #e3ebf7);
  border:1px solid var(--aw-line);
  box-shadow:var(--aw-shadow-sm);
  transition:transform .2s, box-shadow .2s, border-color .2s;
}
.aw-cat:hover{ transform:translateY(-3px); box-shadow:var(--aw-shadow); border-color:#c9d6ec; }
.aw-cat-img{ position:absolute; inset:0; background-size:cover; background-position:center; }
.aw-cat-img.is-empty{
  background:
    radial-gradient(circle at 70% 30%, rgba(31,95,255,.20), rgba(31,95,255,0) 55%),
    radial-gradient(circle at 30% 70%, rgba(123,63,228,.12), rgba(123,63,228,0) 50%);
}
.aw-cat::after{ /* keeps the label readable over any photo */
  content:''; position:absolute; inset:auto 0 0 0; height:60%;
  background:linear-gradient(0deg, rgba(255,255,255,.95) 20%, rgba(255,255,255,0));
}
.aw-cat-label{
  position:absolute; z-index:2; left:12px; bottom:10px; right:42px; overflow-wrap:anywhere;
  font-family:var(--aw-font-display); font-size:10px; font-weight:600;
  letter-spacing:.02em; text-transform:uppercase; line-height:1.3; color:var(--aw-navy);
}
.aw-cat-arrow{
  position:absolute; z-index:2; right:10px; bottom:10px;
  width:26px; height:26px; border-radius:50%;
  display:inline-flex; align-items:center; justify-content:center;
  background:#fff; border:1px solid var(--aw-line); color:var(--aw-navy);
  transition:background .2s, color .2s;
}
.aw-cat:hover .aw-cat-arrow{ background:var(--aw-blue); color:#fff; border-color:var(--aw-blue); }

@media (max-width:1200px){ .aw-cat-grid{ grid-template-columns:repeat(5, minmax(0,1fr)); } }
@media (max-width:768px){
  .aw-cat-grid{ grid-template-columns:repeat(2, minmax(0,1fr)); }
  .aw-cat{ height:92px; }
}

/* ---- featured */
.aw-featured{ padding-bottom:24px; }
.aw-featured-grid{ display:grid; grid-template-columns:minmax(0,1fr) 270px; gap:14px; align-items:stretch; }
.aw-featured-main{ min-width:0; }
.aw-featured-head{ display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-bottom:6px; }
.aw-featured-head .aw-h2{ margin:0; }

.aw-tabs{ display:flex; align-items:center; gap:4px; }
.aw-tab{
  border:0; background:transparent; padding:8px 14px;
  font-size:12px; color:var(--aw-muted); position:relative;
}
.aw-tab.is-active{ color:var(--aw-navy); font-weight:600; }
.aw-tab.is-active::after{ content:''; position:absolute; left:14px; right:14px; bottom:0; height:2px; background:var(--aw-blue); }
.aw-arrows{ display:inline-flex; gap:6px; margin-left:10px; }
.aw-arrow{
  width:30px; height:30px; border-radius:50%;
  border:1px solid var(--aw-line); background:#fff; color:var(--aw-navy);
  display:inline-flex; align-items:center; justify-content:center;
}
.aw-arrow:hover{ border-color:var(--aw-blue); color:var(--aw-blue); }

.aw-track{
  display:flex; gap:10px;
  overflow-x:auto; scroll-snap-type:x mandatory;
  padding:10px 2px 12px;
  scrollbar-width:none;
}
.aw-track::-webkit-scrollbar{ display:none; }
.aw-empty{ color:var(--aw-muted); padding:30px 0; }

.aw-card{
  flex:0 0 calc((100% - 70px) / 8);
  min-width:150px;
  scroll-snap-align:start;
  background:#fff; border:1px solid var(--aw-line); border-radius:var(--aw-radius);
  box-shadow:var(--aw-shadow-sm);
  display:flex; flex-direction:column;
  transition:transform .2s, box-shadow .2s;
}
.aw-card:hover{ transform:translateY(-3px); box-shadow:var(--aw-shadow); }
.aw-card-img{
  height:118px; display:flex; align-items:center; justify-content:center;
  background:linear-gradient(180deg, #fff, var(--aw-bg-soft));
  border-radius:var(--aw-radius) var(--aw-radius) 0 0;
  padding:12px;
}
.aw-card-img img{ max-height:100%; width:auto; object-fit:contain; }
.aw-card-body{ padding:10px 10px 12px; display:flex; flex-direction:column; flex:1; }
.aw-card-name{ font-size:13px; font-weight:700; color:var(--aw-navy); line-height:1.3; }
.aw-card-name:hover{ color:var(--aw-blue); }
.aw-card-meta{ font-size:11px; color:var(--aw-muted); margin-top:2px; }
.aw-card-foot{ display:flex; align-items:center; justify-content:space-between; margin-top:auto; padding-top:10px; }
.aw-price{ font-size:14px; font-weight:700; color:var(--aw-navy); }
.aw-cart-btn{
  width:30px; height:30px; border-radius:50%;
  border:1px solid var(--aw-line); background:#fff; color:var(--aw-navy);
  display:inline-flex; align-items:center; justify-content:center;
  transition:background .2s, color .2s, border-color .2s;
}
.aw-cart-btn:hover{ background:var(--aw-blue); color:#fff; border-color:var(--aw-blue); }
.aw-cart-btn:disabled{ opacity:.7; }

.aw-card-quote{
  flex:0 0 190px; justify-content:center;
  background:linear-gradient(160deg, #eef3fc, #dde7f6);
  border-color:#d5e0f2;
}
.aw-card-quote ul{
  list-style:none; margin:0; padding:0 0 0 26px;
  border-left:1px solid rgba(31,95,255,.35);
  margin-left:24px;
  font-family:var(--aw-font-display); font-size:12px; letter-spacing:.2em; text-transform:uppercase;
  color:#7c89a6; display:flex; flex-direction:column; gap:10px;
}
.aw-card-quote li.hl{ color:var(--aw-blue); font-weight:600; }
.aw-card-quote li.strong{ font-weight:700; }

.aw-story{
  position:relative; border-radius:var(--aw-radius); overflow:hidden;
  min-height:210px;
  background:center / cover no-repeat;
  display:flex; align-items:flex-end; gap:10px; padding:18px;
  color:#fff; font-size:11px; font-weight:600; letter-spacing:.1em; text-transform:uppercase;
}
.aw-story.is-empty{ background:linear-gradient(150deg, #d8e3f4, #9eb6dc 55%, #5f84c4); }
.aw-story::before{ content:''; position:absolute; inset:0; background:linear-gradient(0deg, rgba(11,22,51,.45), rgba(11,22,51,0) 55%); }
.aw-story > *{ position:relative; }
.aw-story:hover{ color:#fff; }
.aw-play{
  width:32px; height:32px; border-radius:50%;
  border:1.5px solid #fff; display:inline-flex; align-items:center; justify-content:center;
  transition:background .2s;
}
.aw-story:hover .aw-play{ background:rgba(255,255,255,.2); }

@media (max-width:1200px){
  .aw-featured-grid{ grid-template-columns:1fr; }
  .aw-card{ flex-basis:180px; }
  .aw-story{ min-height:180px; }
}
@media (max-width:768px){
  .aw-tabs{ width:100%; overflow-x:auto; }
  .aw-arrows{ display:none; }
  .aw-card{ flex-basis:46%; min-width:0; }
}

/* ================================================================ LAB TESTING */
.aw-lab{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(0,1.2fr) minmax(0,1.9fr) minmax(0,1.5fr);
  align-items:stretch;
  background:linear-gradient(180deg, #f3f6fb, #eaf0f9);
  min-height:190px;
}
.aw-lab-photo{ background:center / cover no-repeat; min-height:190px; }
.aw-lab-photo.is-empty{ background:linear-gradient(135deg, #cfdcf0, #eef3fa); }
.aw-lab-copy{ padding:24px 20px 24px 24px; align-self:center; }
.aw-lab-copy .aw-kicker{ font-size:10px; margin-bottom:8px; }
.aw-lab-title{
  font-family:var(--aw-font-display); font-weight:400; text-transform:uppercase;
  font-size:clamp(22px, 2vw, 28px); line-height:1.05; color:var(--aw-navy); margin:0 0 10px;
}
.aw-lab-copy p{ font-size:12.5px; color:#3d4966; margin:0 0 14px; }

.aw-coa{
  align-self:center;
  margin:14px 10px;
  background:#fff; border:1px solid var(--aw-line); border-radius:var(--aw-radius);
  box-shadow:var(--aw-shadow);
  padding:16px 18px;
}
.aw-coa-logo{ height:18px; width:auto; display:block; margin-bottom:8px; }
.aw-coa h3{ font-size:14px; font-weight:700; color:var(--aw-navy); margin:0 0 10px; }
.aw-coa-body{ display:grid; grid-template-columns:auto 1fr; gap:16px; align-items:center; }
.aw-coa dl{ margin:0; font-size:11px; }
.aw-coa dl div{ display:flex; gap:12px; padding:3px 0; }
.aw-coa dt{ width:56px; font-weight:500; color:var(--aw-muted); }
.aw-coa dd{ margin:0; color:var(--aw-ink); }
.aw-coa dd.pass{ display:inline-flex; align-items:center; gap:5px; color:var(--aw-green); font-weight:700; }
.aw-coa-chart{ width:100%; height:120px; }

.aw-lab-side{ position:relative; background:center / cover no-repeat; display:flex; justify-content:flex-end; align-items:center; padding:18px 28px; }
.aw-lab-side.is-empty{
  background:
    radial-gradient(circle at 30% 60%, rgba(255,255,255,.9), rgba(255,255,255,0) 40%),
    linear-gradient(135deg, #dce7f5, #b9cbe8);
}
.aw-lab-side ul{
  list-style:none; margin:0; padding:0;
  font-family:var(--aw-font-display); font-size:10.5px; letter-spacing:.26em; text-transform:uppercase;
  color:#51607f; display:flex; flex-direction:column; gap:8px;
}

@media (max-width:1200px){
  .aw-lab{ grid-template-columns:1fr 1fr; }
  .aw-lab-side{ display:none; }
}
@media (max-width:768px){
  .aw-lab{ grid-template-columns:1fr; }
  .aw-lab-photo{ min-height:220px; }
  .aw-lab-copy{ padding:24px 16px 8px; }
  .aw-coa{ margin:12px 16px 24px; }
  .aw-coa-body{ grid-template-columns:1fr; }
}

/* ================================================================ TRUST STRIP */
.aw-trust{ background:#fff; border-top:1px solid var(--aw-line); border-bottom:1px solid var(--aw-line); }
.aw-trust-grid{ display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:20px; padding-top:20px; padding-bottom:20px; }
.aw-trust-item{ display:flex; align-items:center; justify-content:center; gap:14px; }
.aw-trust-item svg{ width:32px; height:32px; color:var(--aw-blue); flex-shrink:0; }
.aw-trust-item strong{ display:block; font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--aw-navy); }
.aw-trust-item small{ display:block; font-size:11.5px; color:var(--aw-muted); }
@media (max-width:860px){
  .aw-trust-grid{ grid-template-columns:repeat(2, minmax(0,1fr)); }
  .aw-trust-item{ justify-content:flex-start; }
}

/* ================================================================ FOOTER */
.aw-footer{ background:var(--aw-bg-soft); color:var(--aw-muted); padding:48px 0 22px; font-size:13.5px; }
.aw-foot-grid{ display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:32px; }
.aw-foot-brand .aw-logo img{ height:48px; }
.aw-foot-brand p{ margin:14px 0 0; max-width:320px; }
.aw-foot-col h4{
  font-family:var(--aw-font-display); font-size:11.5px; font-weight:700;
  letter-spacing:.14em; text-transform:uppercase; color:var(--aw-navy); margin:4px 0 14px;
}
.aw-foot-col a{ display:block; color:var(--aw-muted); padding:4px 0; }
.aw-foot-col a:hover{ color:var(--aw-blue); }
.aw-foot-disclaimer{
  margin-top:34px; padding:14px 16px;
  border:1px solid var(--aw-line); border-radius:var(--aw-radius); background:#fff;
  font-size:12px;
}
.aw-foot-bottom{
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;
  margin-top:20px; padding-top:18px; border-top:1px solid var(--aw-line); font-size:12px;
}
@media (max-width:768px){
  .aw-foot-grid{ grid-template-columns:1fr 1fr; }
  .aw-foot-brand{ grid-column:1 / -1; }
}

/* ================================================================ INTERIOR PAGES (shared) */
.aw-page-hero{
  position:relative; overflow:hidden;
  background:
    radial-gradient(700px 300px at 85% 20%, rgba(31,95,255,.14), transparent 65%),
    radial-gradient(500px 260px at 10% 90%, rgba(123,63,228,.08), transparent 65%),
    linear-gradient(115deg, #e3ebf7 0%, #f1f5fc 55%, #e8eff9 100%);
  padding:46px 0 44px;
  border-bottom:1px solid var(--aw-line);
}
.aw-page-hero.is-compact{ padding:28px 0 26px; }
.aw-crumbs{ display:flex; flex-wrap:wrap; gap:6px; font-size:12.5px; color:var(--aw-muted); margin:0 0 14px; padding:0; list-style:none; }
.aw-crumbs li+li::before{ content:'/'; margin-right:6px; opacity:.5; }
.aw-crumbs a{ color:var(--aw-muted); }
.aw-crumbs a:hover{ color:var(--aw-blue); }
.aw-page-title{
  font-family:var(--aw-font-display); text-transform:uppercase;
  font-weight:300; font-size:clamp(30px, 4.4vw, 54px); line-height:1.02;
  color:var(--aw-navy); margin:0 0 12px;
}
.aw-page-title strong{ font-weight:800; }
.aw-page-title em{ font-style:normal; color:var(--aw-blue); font-weight:800; }
.aw-page-sub{ max-width:620px; font-size:16px; color:#3d4966; margin:0; }

.aw-page{ padding:48px 0 64px; }
.aw-page-narrow{ max-width:880px; margin:0 auto; }

.aw-panel{
  background:#fff; border:1px solid var(--aw-line); border-radius:var(--aw-radius-lg);
  box-shadow:var(--aw-shadow-sm); padding:26px;
}
.aw-panel h3{ font-family:var(--aw-font-display); font-size:16px; font-weight:700; color:var(--aw-navy); margin:0 0 10px; }
.aw-panel p{ color:#4a5672; margin:0; }
.aw-panel p + p{ margin-top:10px; }

.aw-grid-2{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:16px; }
.aw-grid-3{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:16px; }
.aw-grid-4{ display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:16px; }
@media (max-width:992px){ .aw-grid-3, .aw-grid-4{ grid-template-columns:repeat(2, minmax(0,1fr)); } }
@media (max-width:640px){ .aw-grid-2, .aw-grid-3, .aw-grid-4{ grid-template-columns:minmax(0,1fr); } }

.aw-ico{
  width:44px; height:44px; border-radius:12px; margin-bottom:14px;
  display:inline-flex; align-items:center; justify-content:center;
  background:var(--aw-blue-soft); color:var(--aw-blue);
}
.aw-ico svg{ width:22px; height:22px; }
.aw-step-num{
  font-family:var(--aw-font-display); font-weight:800; font-size:13px; letter-spacing:.14em;
  color:var(--aw-blue); margin-bottom:8px; display:block;
}

.aw-cta-band{
  margin-top:40px; border-radius:var(--aw-radius-lg); overflow:hidden; position:relative;
  background:linear-gradient(120deg, var(--aw-blue) 0%, #3b6dff 55%, #6a4bff 100%);
  color:#fff; padding:34px 32px;
  display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap;
}
.aw-cta-band h3{ font-family:var(--aw-font-display); font-weight:700; font-size:22px; margin:0 0 4px; color:#fff; }
.aw-cta-band p{ margin:0; color:rgba(255,255,255,.85); }
.aw-btn-white{ background:#fff; color:var(--aw-blue); }
.aw-btn-white:hover{ background:var(--aw-navy); color:#fff; }

.aw-note{
  display:flex; gap:12px; align-items:flex-start;
  background:#fff8e6; border:1px solid #f3dfa6; color:#6b5413;
  border-radius:var(--aw-radius); padding:14px 16px; font-size:13.5px;
}
.aw-note svg{ flex-shrink:0; margin-top:2px; }

/* forms (new pages) */
.aw-field{ margin-bottom:16px; }
.aw-field label{ display:block; font-size:13px; font-weight:600; color:var(--aw-navy); margin-bottom:6px; }
.aw-input, body.aw-body .form-control, body.aw-body .form-select{
  width:100%; height:48px; padding:0 14px;
  background:#fff; color:var(--aw-ink);
  border:1px solid #d5dce8; border-radius:10px;
  font-size:15px; box-shadow:none;
  transition:border-color .2s, box-shadow .2s;
}
textarea.aw-input, body.aw-body textarea.form-control{ height:auto; min-height:140px; padding:12px 14px; resize:vertical; }
.aw-input:focus, body.aw-body .form-control:focus, body.aw-body .form-select:focus{
  outline:0; border-color:var(--aw-blue); box-shadow:0 0 0 3px rgba(31,95,255,.15); background:#fff; color:var(--aw-ink);
}
body.aw-body .form-control::placeholder{ color:#9aa5b8; }

.aw-alert{ border-radius:10px; padding:12px 14px; font-size:14px; margin-bottom:18px; }
.aw-alert-error{ background:#fdecec; border:1px solid #f5c2c2; color:#a12a2a; }
.aw-alert-success{ background:#e8f7ee; border:1px solid #b9e5c9; color:#17643a; }

/* ---- FAQ accordion */
.aw-faq{ display:flex; flex-direction:column; gap:10px; }
.aw-faq details{
  background:#fff; border:1px solid var(--aw-line); border-radius:12px; box-shadow:var(--aw-shadow-sm);
  transition:border-color .2s, box-shadow .2s;
}
.aw-faq details[open]{ border-color:rgba(31,95,255,.35); box-shadow:var(--aw-shadow); }
.aw-faq summary{
  list-style:none; cursor:pointer; padding:18px 52px 18px 20px; position:relative;
  font-family:var(--aw-font-display); font-weight:600; font-size:15px; color:var(--aw-navy);
}
.aw-faq summary::-webkit-details-marker{ display:none; }
.aw-faq summary::after{
  content:''; position:absolute; right:20px; top:50%; width:10px; height:10px; margin-top:-7px;
  border:solid var(--aw-blue); border-width:0 2px 2px 0; transform:rotate(45deg); transition:transform .25s;
}
.aw-faq details[open] summary::after{ transform:rotate(-135deg); margin-top:-2px; }
.aw-faq .aw-faq-a{ padding:0 20px 18px; color:#4a5672; font-size:14.5px; line-height:1.7; }
.aw-faq-group{ font-family:var(--aw-font-display); font-size:12px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--aw-muted); margin:26px 0 4px; }
.aw-faq-group:first-child{ margin-top:0; }

/* ---- products listing */
.aw-shop{ display:grid; grid-template-columns:240px minmax(0,1fr); gap:28px; align-items:start; }
.aw-filters{ position:sticky; top:calc(var(--aw-header-h) + 16px); }
.aw-filters h4{ font-family:var(--aw-font-display); font-size:11.5px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--aw-navy); margin:0 0 10px; }
.aw-filter-list{ list-style:none; margin:0 0 24px; padding:0; }
.aw-filter-list a{
  display:flex; justify-content:space-between; align-items:center;
  padding:8px 12px; border-radius:8px; font-size:14px; color:var(--aw-ink);
}
.aw-filter-list a:hover{ background:var(--aw-bg-soft); color:var(--aw-blue); }
.aw-filter-list a.is-active{ background:var(--aw-blue-soft); color:var(--aw-blue); font-weight:600; }
.aw-filter-list small{ color:var(--aw-muted); font-size:12px; }
.aw-shop-bar{ display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-bottom:16px; }
.aw-shop-bar .aw-count{ font-size:14px; color:var(--aw-muted); }
.aw-shop-bar form{ display:flex; gap:8px; align-items:center; }
.aw-shop-bar select{ height:40px; width:auto; padding:0 34px 0 12px; font-size:13.5px; }
.aw-chip{
  display:inline-flex; align-items:center; gap:6px; height:30px; padding:0 12px; border-radius:999px;
  background:var(--aw-blue-soft); color:var(--aw-blue); font-size:12.5px; font-weight:600;
}
.aw-chip a{ color:inherit; font-weight:700; }
.aw-product-grid{ display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:14px; }
.aw-product-grid .aw-card{ min-width:0; flex:none; }
.aw-product-grid .aw-card-img{ height:190px; }
.aw-out{ font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:#b4442b; }
.aw-empty-state{ text-align:center; padding:56px 20px; }
.aw-empty-state h3{ font-family:var(--aw-font-display); color:var(--aw-navy); font-size:20px; margin:0 0 8px; }
.aw-empty-state p{ color:var(--aw-muted); margin:0 0 18px; }
@media (max-width:1200px){ .aw-product-grid{ grid-template-columns:repeat(3, minmax(0,1fr)); } }
@media (max-width:860px){
  .aw-shop{ grid-template-columns:minmax(0,1fr); }
  .aw-filters{ position:static; }
  .aw-filter-list{ display:flex; gap:6px; overflow-x:auto; margin-bottom:8px; padding-bottom:4px; scrollbar-width:none; }
  .aw-filter-list::-webkit-scrollbar{ display:none; }
  .aw-filter-list a{ white-space:nowrap; border:1px solid var(--aw-line); }
  .aw-filter-list small{ display:none; }
  .aw-filters h4{ display:none; }
  .aw-product-grid{ grid-template-columns:repeat(2, minmax(0,1fr)); gap:10px; }
  .aw-product-grid .aw-card-img{ height:150px; }
}

/* ---- product detail */
.aw-pdp{ display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); gap:44px; align-items:start; }
.aw-pdp-media{
  position:sticky; top:calc(var(--aw-header-h) + 16px);
  border-radius:20px; overflow:hidden; aspect-ratio:1 / 1;
  display:flex; align-items:center; justify-content:center;
  background:
    radial-gradient(circle at 50% 40%, #ffffff 0%, rgba(255,255,255,0) 60%),
    linear-gradient(160deg, #eef3fb, #dbe5f4);
  border:1px solid var(--aw-line);
}
.aw-pdp-media img{ max-width:78%; max-height:82%; object-fit:contain; filter:drop-shadow(0 30px 40px rgba(11,22,51,.18)); animation:aw-float 6s ease-in-out infinite; }
.aw-pdp-media .aw-vial{ transform:scale(1.7); animation:aw-float 6s ease-in-out infinite; }
.aw-pdp-cat{ font-family:var(--aw-font-display); font-size:11.5px; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:var(--aw-blue); margin:0 0 8px; }
.aw-pdp h1{ font-family:var(--aw-font-display); font-weight:800; font-size:clamp(28px, 3.4vw, 42px); color:var(--aw-navy); margin:0 0 10px; line-height:1.05; }
.aw-pdp-price{ font-family:var(--aw-font-display); font-size:28px; font-weight:700; color:var(--aw-navy); margin:0 0 6px; }
.aw-pdp-stock{ font-size:13px; font-weight:600; margin:0 0 20px; display:inline-flex; align-items:center; gap:6px; }
.aw-pdp-stock.in{ color:var(--aw-green); }
.aw-pdp-stock.low{ color:#b7791f; }
.aw-pdp-stock.out{ color:#b4442b; }
.aw-pdp-stock::before{ content:''; width:8px; height:8px; border-radius:50%; background:currentColor; }
.aw-pdp-desc{ color:#3d4966; font-size:15.5px; line-height:1.75; margin:0 0 24px; }
.aw-pdp-buy{ display:flex; gap:12px; align-items:stretch; margin-bottom:18px; flex-wrap:wrap; }
.aw-qty{ display:inline-flex; align-items:center; border:1px solid #d5dce8; border-radius:999px; height:52px; background:#fff; }
.aw-qty button{ width:44px; height:100%; border:0; background:transparent; font-size:20px; color:var(--aw-navy); }
.aw-qty button:hover{ color:var(--aw-blue); }
.aw-qty input{ width:46px; border:0; text-align:center; font-weight:700; font-size:16px; color:var(--aw-navy); background:transparent; -moz-appearance:textfield; }
.aw-qty input::-webkit-outer-spin-button, .aw-qty input::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }
.aw-pdp-buy .aw-btn{ flex:1; height:52px; min-width:200px; }
.aw-pdp-buy .aw-btn:disabled{ background:#c5cfe0; box-shadow:none; cursor:not-allowed; }
.aw-pdp-perks{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:10px; margin:22px 0; }
.aw-pdp-perks div{ background:var(--aw-bg-soft); border:1px solid var(--aw-line); border-radius:12px; padding:12px; font-size:12px; color:var(--aw-muted); }
.aw-pdp-perks strong{ display:block; color:var(--aw-navy); font-size:12.5px; margin-bottom:2px; }
.aw-pdp-perks svg{ color:var(--aw-blue); margin-bottom:6px; }
.aw-section-title{ font-family:var(--aw-font-display); font-weight:700; font-size:15px; letter-spacing:.04em; text-transform:uppercase; color:var(--aw-navy); margin:56px 0 16px; }
@media (max-width:860px){
  .aw-pdp{ grid-template-columns:minmax(0,1fr); gap:24px; }
  .aw-pdp-media{ position:relative; top:auto; aspect-ratio:4 / 3; }
  .aw-pdp-media .aw-vial{ transform:scale(1.05); }
  .aw-pdp-perks{ grid-template-columns:minmax(0,1fr); }
}

/* ---- contact */
.aw-contact{ display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); gap:20px; align-items:start; }
.aw-contact-info a{ color:var(--aw-blue); font-weight:600; }
.aw-contact-info .row-i{ display:flex; gap:12px; padding:14px 0; border-bottom:1px solid var(--aw-line); }
.aw-contact-info .row-i:last-child{ border-bottom:0; }
.aw-contact-info .row-i .aw-ico{ margin:0; flex-shrink:0; width:38px; height:38px; }
.aw-contact-info strong{ display:block; color:var(--aw-navy); font-size:14px; }
.aw-contact-info span{ font-size:13.5px; color:var(--aw-muted); }
@media (max-width:860px){ .aw-contact{ grid-template-columns:minmax(0,1fr); } }

/* ---- about */
.aw-split{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:40px; align-items:center; }
.aw-split h2{ font-family:var(--aw-font-display); text-transform:uppercase; font-weight:300; font-size:clamp(26px, 3vw, 38px); line-height:1.05; color:var(--aw-navy); margin:0 0 14px; }
.aw-split h2 strong{ font-weight:800; }
.aw-split p{ color:#3d4966; font-size:15.5px; line-height:1.75; }
.aw-visual{
  position:relative; border-radius:20px; overflow:hidden; aspect-ratio:5 / 4;
  background:
    radial-gradient(circle at 30% 30%, rgba(31,95,255,.25), transparent 50%),
    radial-gradient(circle at 75% 70%, rgba(123,63,228,.18), transparent 50%),
    linear-gradient(160deg, #eef3fb, #d3dff2);
  border:1px solid var(--aw-line);
  display:flex; align-items:center; justify-content:center;
}
.aw-visual .aw-orbit{ top:50%; }
.aw-visual .aw-vial{ position:relative; z-index:1; }
.aw-band{ background:var(--aw-bg-soft); border-top:1px solid var(--aw-line); border-bottom:1px solid var(--aw-line); padding:52px 0; }
@media (max-width:860px){ .aw-split{ grid-template-columns:minmax(0,1fr); gap:24px; } }

.aw-list{ list-style:none; padding:0; margin:14px 0 18px; }
.aw-list li{ position:relative; padding:0 0 10px 26px; color:#3d4966; }
.aw-list li::before{ content:''; position:absolute; left:2px; top:6px; width:12px; height:12px; border-radius:50%; border:2px solid var(--aw-blue); background:var(--aw-blue-soft); }
.aw-list strong{ color:var(--aw-navy); }
.aw-link, .aw-faq-a a, .aw-panel p a{ color:var(--aw-blue); font-weight:600; }
.aw-link:hover, .aw-faq-a a:hover, .aw-panel p a:hover{ text-decoration:underline; }
.aw-coa-foot{ margin:10px 0 0; font-size:11px; color:var(--aw-muted); }
.aw-mini-h{ font-family:var(--aw-font-display); font-size:15px; font-weight:700; color:var(--aw-navy); margin:0 0 6px; }
.aw-mini-p{ font-size:14px; color:#4a5672; margin:0; }
.aw-band-box{ margin-top:64px; padding:32px; border-radius:var(--aw-radius-lg); background:var(--aw-bg-soft); border:1px solid var(--aw-line); }
.aw-split-h{ font-family:var(--aw-font-display); text-transform:uppercase; font-weight:300; font-size:clamp(26px, 3vw, 38px); line-height:1.05; color:var(--aw-navy); margin:0 0 14px; }
.aw-split-h strong{ font-weight:800; }
@media (max-width:640px){ .aw-band-box{ padding:22px 16px; } .aw-cta-band{ padding:26px 20px; } }

/* ================================================================ LEGACY BRIDGE
   Cart, checkout, order confirmation, account and auth pages keep their
   original PHP/markup; these rules give their old class names the new look. */
:root{
  --bg:#ffffff; --paper:#ffffff; --surface:#ffffff; --surface-2:var(--aw-bg-soft);
  --lavender:var(--aw-bg-soft);
  --ink:var(--aw-ink); --muted:var(--aw-muted);
  --violet:var(--aw-blue); --indigo:var(--aw-blue-dark);
  --blue:var(--aw-blue); --blue-deep:var(--aw-blue-dark);
  --grad:linear-gradient(120deg, var(--aw-blue), var(--aw-blue-dark));
  --chrome:linear-gradient(120deg, var(--aw-blue), var(--aw-blue-dark));
  --line:var(--aw-line);
  --shadow:0 10px 26px rgba(31,95,255,.25);
}
body.aw-body h1, body.aw-body h2, body.aw-body h3, body.aw-body h4{ font-family:var(--aw-font-display); }

body.aw-body .section-vp{ padding:48px 0 64px; background:transparent; }
body.aw-body .section-head{ text-align:left; max-width:none; }
body.aw-body .section-head h2,
body.aw-body .auth-card h1{
  font-family:var(--aw-font-display); font-weight:800; text-transform:uppercase;
  font-size:clamp(26px, 3.4vw, 40px); color:var(--aw-navy); letter-spacing:-.01em; line-height:1.05;
}
body.aw-body .eyebrow{
  font-family:var(--aw-font-display); font-size:11px; font-weight:600; letter-spacing:.3em;
  text-transform:uppercase; color:var(--aw-blue); margin-bottom:8px;
}
body.aw-body .container{ max-width:1240px; }

/* buttons */
body.aw-body .btn-vp{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  height:48px; padding:0 26px; border-radius:999px;
  font-family:var(--aw-font-display); font-size:12.5px; font-weight:600; letter-spacing:.1em; text-transform:uppercase;
  border:1.5px solid transparent; transition:background .2s, color .2s, border-color .2s, transform .2s;
}
body.aw-body .btn-vp-primary{ background:var(--aw-blue); color:#fff; box-shadow:0 8px 22px rgba(31,95,255,.25); }
body.aw-body .btn-vp-primary:hover{ background:var(--aw-blue-dark); color:#fff; transform:translateY(-1px); }
body.aw-body .btn-vp-ghost{ background:#fff; color:var(--aw-navy); border-color:#d5dce8; }
body.aw-body .btn-vp-ghost:hover{ border-color:var(--aw-blue); color:var(--aw-blue); background:#fff; }
body.aw-body .vp-icon-btn{
  width:34px; height:34px; border-radius:50%; border:1px solid var(--aw-line); background:#fff; color:var(--aw-muted);
  display:inline-flex; align-items:center; justify-content:center; font-size:18px; line-height:1;
}
body.aw-body .vp-icon-btn:hover{ color:#b4442b; border-color:#f0c4b8; }

/* auth pages */
body.aw-body .auth-section{
  padding:56px 0 72px; min-height:calc(100vh - var(--aw-header-h) - 200px);
  background:
    radial-gradient(700px 360px at 85% 0%, rgba(31,95,255,.12), transparent 65%),
    linear-gradient(180deg, #eef3fb 0%, #ffffff 70%);
}
body.aw-body .auth-card{
  max-width:500px; margin:0 auto;
  background:#fff; color:var(--aw-ink);
  border:1px solid var(--aw-line); border-radius:20px;
  box-shadow:0 24px 60px rgba(11,22,51,.10);
  padding:36px 34px 30px;
}
body.aw-body .auth-card .sub{ color:var(--aw-muted); font-size:15px; margin:0 0 22px; }
body.aw-body .auth-row{ margin-bottom:16px; }
body.aw-body .auth-row label{ font-size:13px; font-weight:600; color:var(--aw-navy); margin-bottom:6px; display:inline-block; }
body.aw-body .auth-hint{ font-size:12.5px; color:var(--aw-muted); margin:-8px 0 14px; }
body.aw-body .auth-alt{ margin-top:20px; text-align:center; font-size:14px; color:var(--aw-muted); }
body.aw-body .auth-alt a, body.aw-body .auth-card a:not(.btn-vp){ color:var(--aw-blue); font-weight:600; }
body.aw-body .auth-error{ background:#fdecec; border:1px solid #f5c2c2; color:#a12a2a; border-radius:10px; padding:12px 14px; font-size:14px; margin-bottom:18px; }
body.aw-body .auth-success{ background:#e8f7ee; border:1px solid #b9e5c9; color:#17643a; border-radius:10px; padding:12px 14px; font-size:14px; margin-bottom:18px; }
body.aw-body .auth-error a, body.aw-body .auth-success a{ color:inherit !important; text-decoration:underline; }

/* account / cart / checkout cards */
body.aw-body .account-card{
  background:#fff; color:var(--aw-ink);
  border:1px solid var(--aw-line); border-radius:var(--aw-radius-lg);
  box-shadow:var(--aw-shadow-sm); padding:26px;
}
body.aw-body .account-card h3{
  font-family:var(--aw-font-display); font-size:13px; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:var(--aw-navy); margin:0 0 16px; padding-bottom:14px; border-bottom:1px solid var(--aw-line);
}
body.aw-body .account-field{
  display:flex; justify-content:space-between; gap:16px; padding:12px 0;
  border-bottom:1px solid var(--aw-line); font-size:14.5px;
}
body.aw-body .account-field span:first-child{ color:var(--aw-muted); }
body.aw-body .account-field span:last-child{ color:var(--aw-navy); font-weight:600; text-align:right; }
body.aw-body .account-empty{ color:var(--aw-muted); text-align:center; padding:30px 10px; }
body.aw-body .account-empty a{ color:var(--aw-blue); font-weight:600; }

body.aw-body .order-row{
  display:flex; align-items:center; gap:16px; flex-wrap:wrap;
  background:#fff; border:1px solid var(--aw-line); border-radius:12px;
  padding:14px 16px; margin-bottom:10px; transition:border-color .2s, box-shadow .2s;
}
body.aw-body .order-row:hover{ border-color:#c9d6ec; box-shadow:var(--aw-shadow-sm); }
body.aw-body .order-row > div:first-child{ flex:1; min-width:140px; }
body.aw-body .oid{ font-weight:700; color:var(--aw-navy); font-size:14.5px; }
body.aw-body .odate{ font-size:12.5px; color:var(--aw-muted); }
body.aw-body .order-total-vp{ font-weight:700; color:var(--aw-navy); }

body.aw-body .status-pill{
  display:inline-flex; align-items:center; height:26px; padding:0 10px; border-radius:999px;
  font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
  background:var(--aw-bg-soft); color:var(--aw-muted); border:1px solid var(--aw-line);
}
body.aw-body .status-pill[class*="paid"], body.aw-body .status-pill[class*="delivered"], body.aw-body .status-pill[class*="complete"]{ background:#e8f7ee; color:#17643a; border-color:#b9e5c9; }
body.aw-body .status-pill[class*="shipped"], body.aw-body .status-pill[class*="processing"]{ background:var(--aw-blue-soft); color:var(--aw-blue); border-color:#c8d7ff; }
body.aw-body .status-pill[class*="pending"], body.aw-body .status-pill[class*="unpaid"]{ background:#fff6e0; color:#946200; border-color:#f3dfa6; }
body.aw-body .status-pill[class*="cancel"], body.aw-body .status-pill[class*="fail"], body.aw-body .status-pill[class*="refund"]{ background:#fdecec; color:#a12a2a; border-color:#f5c2c2; }

body.aw-body .pc-thumb{
  border-radius:10px; overflow:hidden; background:linear-gradient(180deg, #fff, var(--aw-bg-soft));
  border:1px solid var(--aw-line); display:flex; align-items:center; justify-content:center;
}
body.aw-body .pc-thumb img{ max-width:100%; max-height:100%; object-fit:contain; }
body.aw-body .mini-bottle{ display:flex; flex-direction:column; align-items:center; }
body.aw-body .mini-bottle .cap{ width:20px; height:8px; border-radius:3px 3px 1px 1px; background:var(--aw-blue); }
body.aw-body .mini-bottle .body{ width:28px; height:36px; border-radius:5px 5px 7px 7px; background:linear-gradient(90deg,#fff,#e6ecf6 50%,#fff); border:1px solid #cfd8e6; }

@media (max-width:768px){
  body.aw-body .auth-card{ padding:26px 18px 22px; border-radius:16px; }
  body.aw-body .account-card{ padding:18px; }
  body.aw-body .order-row{ gap:10px; }
}

/* ================================================================ VERIFICATION GATE */
body.aw-gate-open{ overflow:hidden; }
.aw-gate{
  position:fixed; inset:0; z-index:2000;
  display:flex; align-items:center; justify-content:center;
  padding:24px 16px;
  overflow-y:auto;
  background:
    radial-gradient(900px 500px at 20% 10%, rgba(31,95,255,.18), transparent 60%),
    radial-gradient(700px 500px at 90% 90%, rgba(123,63,228,.14), transparent 60%),
    rgba(234,241,251,.72);
  -webkit-backdrop-filter:blur(14px) saturate(140%);
  backdrop-filter:blur(14px) saturate(140%);
  animation:aw-gate-in .35s ease both;
}
.aw-gate.is-leaving{ animation:aw-gate-out .45s ease both; }
@keyframes aw-gate-in{ from{ opacity:0; } to{ opacity:1; } }
@keyframes aw-gate-out{ to{ opacity:0; visibility:hidden; } }

.aw-gate-inner{ width:100%; max-width:560px; margin:auto; text-align:center; }
.aw-gate-logo{ height:56px; width:auto; max-width:80%; margin:0 auto 22px; display:block; object-fit:contain; }

.aw-gate-card{
  text-align:left;
  background:rgba(255,255,255,.96);
  border:1px solid var(--aw-line);
  border-radius:20px;
  box-shadow:0 30px 80px rgba(11,22,51,.18), 0 2px 6px rgba(11,22,51,.06);
  padding:34px 34px 26px;
  animation:aw-gate-card .6s cubic-bezier(.2,.7,.2,1) .05s both;
}
@keyframes aw-gate-card{ from{ opacity:0; transform:translateY(24px) scale(.98); } to{ opacity:1; transform:none; } }

.aw-gate-card h2{
  font-family:var(--aw-font-display); font-weight:700;
  font-size:clamp(24px, 4vw, 32px); letter-spacing:-.01em;
  color:var(--aw-navy); margin:0 0 12px;
}
.aw-gate-lead{ font-size:15px; color:#3d4966; margin:0 0 22px; }

.aw-gate-check{
  position:relative;
  display:flex; align-items:flex-start; gap:14px;
  padding:16px 18px; margin:0 0 12px;
  border:1px solid var(--aw-line); border-radius:12px;
  background:#fff; cursor:pointer;
  font-size:15px; line-height:1.5; color:var(--aw-ink);
  transition:border-color .2s, background .2s, box-shadow .2s;
}
.aw-gate-check:hover{ border-color:#c9d6ec; }
.aw-gate-check strong{ color:var(--aw-navy); font-weight:700; }
.aw-gate-check input{ position:absolute; opacity:0; width:1px; height:1px; }
.aw-gate-box{
  flex-shrink:0; width:22px; height:22px; margin-top:1px;
  border:1.5px solid #b7c2d6; border-radius:6px; background:#fff;
  display:inline-flex; align-items:center; justify-content:center;
  transition:background .15s, border-color .15s;
}
.aw-gate-box::after{
  content:''; width:6px; height:11px; margin-top:-2px;
  border:solid #fff; border-width:0 2.5px 2.5px 0;
  transform:rotate(45deg) scale(0); transition:transform .15s cubic-bezier(.3,1.6,.5,1);
}
.aw-gate-check input:checked + .aw-gate-box{ background:var(--aw-blue); border-color:var(--aw-blue); }
.aw-gate-check input:checked + .aw-gate-box::after{ transform:rotate(45deg) scale(1); }
.aw-gate-check:has(input:checked){ border-color:rgba(31,95,255,.45); background:var(--aw-blue-soft); }
.aw-gate-check input:focus-visible + .aw-gate-box{ box-shadow:0 0 0 3px rgba(31,95,255,.3); }

.aw-gate-btn{
  width:100%; height:56px; margin-top:14px;
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  border:0; border-radius:999px;
  background:var(--aw-blue); color:#fff;
  font-family:var(--aw-font-display); font-size:15px; font-weight:700; letter-spacing:.02em;
  box-shadow:0 10px 26px rgba(31,95,255,.3);
  transition:background .2s, box-shadow .2s, transform .2s, opacity .2s;
}
.aw-gate-btn:hover:not(:disabled){ background:var(--aw-blue-dark); transform:translateY(-1px); }
.aw-gate-btn:disabled{ background:#c5cfe0; color:#7c89a3; box-shadow:none; cursor:not-allowed; }

.aw-gate-error{ margin:12px 0 0; font-size:13px; color:#c0392b; text-align:center; }
.aw-gate-fine{ margin:18px 0 0; font-size:11.5px; line-height:1.6; color:#8a95ab; }
.aw-gate-fine a{ color:var(--aw-blue); text-decoration:underline; }

@media (max-width:560px){
  .aw-gate-card{ padding:26px 18px 20px; border-radius:16px; }
  .aw-gate-logo{ height:44px; margin-bottom:16px; }
  .aw-gate-check{ padding:14px; font-size:14px; }
}
@media (prefers-reduced-motion:reduce){
  .aw-gate, .aw-gate-card, .aw-gate.is-leaving{ animation:none; }
}

/* ================================================================ MOTION */
/* Hidden states only apply when aw-motion.js is running (html.aw-js), so the
   page is never blank if JS fails to load. */

/* reveal on scroll */
.aw-js .aw-reveal{
  opacity:0; transform:translateY(28px);
  transition:opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1);
  transition-delay:calc(var(--d, 0) * 80ms);
}
.aw-js .aw-reveal--left{ transform:translateX(-36px); }
.aw-js .aw-reveal--right{ transform:translateX(36px); }
.aw-js .aw-reveal--scale{ transform:scale(.92) translateY(18px); }
.aw-js .aw-reveal.is-in{ opacity:1; transform:none; }

/* hero intro on page load (uses `translate` so it can't fight parallax transforms) */
.aw-js .aw-in{
  opacity:0; translate:0 26px;
  transition:opacity .9s cubic-bezier(.2,.7,.2,1), translate .9s cubic-bezier(.2,.7,.2,1);
  transition-delay:calc(var(--d, 0) * 110ms + 80ms);
}
.aw-js.aw-loaded .aw-in{ opacity:1; translate:0 0; }
.aw-line{ display:block; overflow:hidden; padding-bottom:.04em; }
.aw-js .aw-line > .aw-in{ display:block; translate:0 105%; opacity:1; }
.aw-js.aw-loaded .aw-line > .aw-in{ translate:0 0; }

/* hero glow: second orb + slow breathing */
.aw-hero-glow{ will-change:transform; animation:aw-breathe 9s ease-in-out infinite; }
.aw-hero-glow-2{
  left:auto; right:-160px; top:auto; bottom:-260px; width:560px; height:560px;
  background:radial-gradient(circle at 40% 40%, rgba(123,63,228,.12), rgba(123,63,228,0) 65%);
  animation-delay:-4s;
}
@keyframes aw-breathe{ 0%,100%{ opacity:.85; } 50%{ opacity:1; } }

/* hero art: orbit rings, floating vials */
.aw-hero-art{ will-change:transform; }
.aw-orbit{ position:absolute; z-index:0; left:50%; top:48%; width:0; height:0; pointer-events:none; }
.aw-orbit i{
  position:absolute; left:50%; top:50%;
  width:460px; height:460px; margin:-230px 0 0 -230px;
  border-radius:50%;
  border:1px solid rgba(31,95,255,.16);
  animation:aw-spin 38s linear infinite;
}
.aw-orbit i::after{ /* small satellite dot riding the ring */
  content:''; position:absolute; top:-5px; left:50%; width:10px; height:10px; margin-left:-5px;
  border-radius:50%; background:var(--aw-blue); box-shadow:0 0 14px 3px rgba(31,95,255,.45);
}
.aw-orbit i + i{
  width:340px; height:340px; margin:-170px 0 0 -170px;
  border-style:dashed; border-color:rgba(31,95,255,.12);
  animation-duration:26s; animation-direction:reverse;
}
.aw-orbit i + i::after{ width:7px; height:7px; margin-left:-3.5px; top:-4px; background:#7b3fe4; box-shadow:0 0 12px 2px rgba(123,63,228,.4); }
@keyframes aw-spin{ to{ transform:rotate(360deg); } }

.aw-hero-cluster, .aw-hero-vials{ transition:transform .5s cubic-bezier(.2,.7,.2,1); transform-style:preserve-3d; }
.aw-hero-cluster > *, .aw-hero-vials{ animation:aw-float 6s ease-in-out infinite; }
.aw-hero-cluster > *:nth-child(2){ animation-delay:-1.5s; animation-duration:6.8s; }
.aw-hero-cluster > *:nth-child(3){ animation-delay:-3s;   animation-duration:7.4s; }
.aw-hero-cluster > *:nth-child(4){ animation-delay:-4.5s; animation-duration:6.4s; }
@keyframes aw-float{ 0%,100%{ translate:0 0; } 50%{ translate:0 -14px; } }
.aw-pedestal{ animation:aw-shadow 6s ease-in-out infinite; }
@keyframes aw-shadow{ 0%,100%{ transform:scaleX(1); opacity:1; } 50%{ transform:scaleX(.94); opacity:.8; } }

.aw-js .aw-hero-words li{ transform:translateX(24px); }
.aw-js .aw-hero-words li.is-in{ transform:none; }

/* photo panels: parallax + slow zoom layer */
.aw-pan{ position:relative; overflow:hidden; isolation:isolate; }
.aw-pan-layer{
  position:absolute; z-index:-1; left:0; right:0; top:-14%; bottom:-14%;
  background:inherit; background-size:cover; background-position:center;
  will-change:transform;
}
.aw-story.aw-pan .aw-pan-layer{ z-index:-2; }
.aw-story::before{ z-index:-1; }

/* COA: HPLC line draws itself, PASS pops */
.aw-coa-line{ stroke-dasharray:1; stroke-dashoffset:0; }
.aw-js [data-aw-coa] .aw-coa-line{ stroke-dashoffset:1; transition:stroke-dashoffset 1.8s cubic-bezier(.5,0,.2,1) .35s; }
.aw-js [data-aw-coa].is-in .aw-coa-line{ stroke-dashoffset:0; }
.aw-js [data-aw-coa] .pass{ opacity:0; transform:scale(.6); transition:opacity .4s ease 1.9s, transform .5s cubic-bezier(.3,1.6,.5,1) 1.9s; }
.aw-js [data-aw-coa].is-in .pass{ opacity:1; transform:none; }

/* hover life on cards/tiles */
.aw-cat-img{ transition:transform .6s cubic-bezier(.2,.7,.2,1); }
.aw-cat:hover .aw-cat-img{ transform:scale(1.08); }
.aw-card-img img, .aw-card-img .aw-vial{ transition:transform .5s cubic-bezier(.2,.7,.2,1); }
.aw-card:hover .aw-card-img img, .aw-card:hover .aw-card-img .aw-vial{ transform:translateY(-6px) rotate(-3deg); }
.aw-trust-item svg{ transition:transform .4s cubic-bezier(.3,1.6,.5,1); }
.aw-trust-item:hover svg{ transform:translateY(-3px) scale(1.08); }

@media (max-width:860px){
  .aw-orbit i{ width:300px; height:300px; margin:-150px 0 0 -150px; }
  .aw-orbit i + i{ width:220px; height:220px; margin:-110px 0 0 -110px; }
}

@media (prefers-reduced-motion:reduce){
  .aw-js .aw-reveal, .aw-js .aw-in, .aw-js .aw-line > .aw-in{ opacity:1; transform:none; translate:none; transition:none; }
  .aw-orbit i, .aw-hero-cluster > *, .aw-hero-vials, .aw-pedestal, .aw-hero-glow{ animation:none; }
  .aw-js [data-aw-coa] .aw-coa-line{ stroke-dashoffset:0; transition:none; }
  .aw-js [data-aw-coa] .pass{ opacity:1; transform:none; transition:none; }
  html{ scroll-behavior:auto; }
}
