/* ============================================================
   AVANTE DESIGN TOKENS  — single source of truth (brief §1)
   Changing a value here restyles the whole site.
   ============================================================ */
:root{
  /* Brand */
  --indigo-900:#2E1A5E;   /* primary text, header, footer */
  --violet-500:#7B5EA7;   /* secondary surfaces */
  --lilac-300:#A88FD0;    /* glows, soft accents */
  --amber-500:#F5A623;    /* THE call-to-action colour, nothing else */
  --magenta:#E6007E;      /* tiny highlights only */

  /* Ground */
  --ground:#FBFAFD;       /* page background */
  --lavender:#F2EFF8;     /* alternating section background */

  /* Glass — surfaces and chrome ONLY, never behind paragraph text */
  --glass:rgba(255,255,255,.68);
  --glass-blur:18px;
  --glass-border:rgba(255,255,255,.55);

  /* Derived, contrast-checked against --ground (all >= 4.5:1) */
  --ink:#2E1A5E;          /* body text            14.0:1 */
  --ink-muted:#544470;    /* secondary text        8.2:1 */
  --ink-subtle:#6B5C86;   /* tertiary, >=17px      5.6:1 */
  --line:#E4DFEE;
  --amber-ink:#7A4A00;    /* amber text on light   5.9:1 — never use --amber-500 as text */
  --success-ink:#1B5E20;
  --danger-ink:#B3261E;

  /* Radii */
  --radius:24px;          /* cards */
  --radius-sm:14px;
  --pill:999px;

  /* Type — audience is 60+, these are floors not suggestions */
  --font-sans:'Figtree','Inter',system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  --fs-body:17px;         /* MINIMUM body size */
  --lh-body:1.65;
  --fs-h1:clamp(2.25rem,1.4rem + 3.2vw,3.5rem);
  --fs-h2:clamp(1.7rem,1.2rem + 1.8vw,2.5rem);
  --fs-h3:clamp(1.25rem,1.05rem + .7vw,1.6rem);

  /* Controls — 48px minimum touch target */
  --control-h:48px;
  --tap:48px;

  --shadow-1:0 1px 3px rgba(46,26,94,.07);
  --shadow-2:0 12px 32px rgba(46,26,94,.10);
  --focus:3px solid var(--violet-500);
}

/* Text-size toggle (utility strip A A A). Steps the root size; persisted in localStorage. */
html[data-textsize="m"]{font-size:100%}
html[data-textsize="l"]{font-size:112.5%}
html[data-textsize="xl"]{font-size:125%}

html{font-size:100%}
body{
  background:var(--ground);
  color:var(--ink);
  font-family:var(--font-sans);
  font-size:var(--fs-body);
  line-height:var(--lh-body);
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{color:var(--indigo-900);font-weight:600;letter-spacing:-.02em;line-height:1.2}
h1{font-size:var(--fs-h1)} h2{font-size:var(--fs-h2)} h3{font-size:var(--fs-h3)}
p{line-height:var(--lh-body)}

/* Accessibility floors — non-negotiable for this audience */
a,button,input,select,textarea,[role="button"]{font-size:inherit}
button,.button,.ast-button,.wp-block-button__link,
.woocommerce a.button,.woocommerce button.button,.woocommerce input.button{
  min-height:var(--control-h);
  padding:.75rem 1.5rem;
  border-radius:var(--pill);
  font-weight:600;
  font-size:1rem;
  line-height:1.2;
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  cursor:pointer;
  transition:filter .15s ease, box-shadow .15s ease;
}
a:focus-visible,button:focus-visible,input:focus-visible,
select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{
  outline:var(--focus);outline-offset:2px;border-radius:4px;
}
:where(a,button,[role="button"]){min-height:auto}
.avs-tap{min-height:var(--tap);min-width:var(--tap)}

/* The one CTA colour */
.avs-cta,.woocommerce a.button.alt,.woocommerce button.button.alt,
.single_add_to_cart_button,.checkout-button{
  background:var(--amber-500)!important;
  color:#3D2600!important;              /* 6.1:1 on amber — white would be 2.1:1 and fail */
  border:0!important;
}
.avs-cta:hover,.woocommerce a.button.alt:hover,.single_add_to_cart_button:hover{filter:brightness(1.06)}

.avs-btn-secondary{
  background:transparent;border:2px solid var(--violet-500);color:var(--indigo-900);
}

/* Surfaces */
.avs-card{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow-1),var(--shadow-2);
}
.avs-glass{
  background:var(--glass);
  -webkit-backdrop-filter:blur(var(--glass-blur));
  backdrop-filter:blur(var(--glass-blur));
  border:1px solid var(--glass-border);
  border-radius:var(--radius);
}
/* Glass is chrome only. If a paragraph sits on it, give it a solid plate. */
.avs-glass p,.avs-glass li{background:none}
.avs-section-alt{background:var(--lavender)}
.avs-pill{border-radius:var(--pill)}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important}
}

/* ---------- Footer ---------- */
.avs-foot{background:var(--indigo-900);color:#fff;margin-top:48px}
.avs-foot-in{max-width:1200px;margin:0 auto;padding:44px 20px 28px;display:grid;gap:28px;
  grid-template-columns:1.4fr repeat(4,1fr) 1.3fr}
.avs-foot-logo{font-size:2rem;font-weight:700;letter-spacing:-.02em}
.avs-foot-brand p{margin:12px 0 16px;font-size:.9375rem;opacity:.82;max-width:26ch}
.avs-foot-social{list-style:none;display:flex;gap:10px;padding:0;margin:0}
.avs-foot-social a{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;
  background:rgba(255,255,255,.12);color:#fff;text-decoration:none;font-size:18px}
.avs-foot-col h2{font-size:1rem;margin:0 0 14px;color:#fff}
.avs-foot-col ul{list-style:none;padding:0;margin:0;display:grid;gap:2px}
.avs-foot-col a{color:#fff;opacity:.85;text-decoration:none;font-size:.9375rem;
  min-height:44px;display:inline-flex;align-items:center}
.avs-foot-col a:hover{opacity:1;text-decoration:underline}
.avs-foot-news p{font-size:.9375rem;opacity:.82;margin:0 0 12px}
.avs-news{display:grid;gap:10px}
.avs-news input,.woocommerce .avs-news input[type="email"]{min-height:48px;padding:12px 16px;border-radius:10px;border:1px solid rgba(255,255,255,.28);
  background:rgba(255,255,255,.08);color:#fff;font-size:1rem}
.avs-news input::placeholder{color:rgba(255,255,255,.6)}
.avs-news-ok{font-size:1.0625rem;font-weight:700;opacity:1!important;margin:0}
.avs-foot-assure{list-style:none;max-width:1200px;margin:0 auto;padding:20px;display:flex;
  flex-wrap:wrap;gap:14px 30px;align-items:center;justify-content:center;
  border-top:1px solid rgba(255,255,255,.16);font-size:.9375rem}
.avs-foot-assure li{display:flex;align-items:center;gap:8px}
.avs-foot-hsa{border:1px solid rgba(255,255,255,.4);border-radius:8px;padding:6px 12px;
  font-size:.75rem;font-weight:700;letter-spacing:.05em}
.avs-foot-legal{max-width:1200px;margin:0 auto;padding:16px 20px 34px;display:flex;gap:10px 26px;
  flex-wrap:wrap;align-items:center;justify-content:space-between;
  border-top:1px solid rgba(255,255,255,.16);font-size:.875rem;opacity:.82}
.avs-foot-legal ul{list-style:none;display:flex;gap:10px 22px;flex-wrap:wrap;padding:0;margin:0}
.avs-foot-legal a{color:#fff;text-decoration:none;display:inline-flex;align-items:center;min-height:44px}
.avs-foot-legal a:hover{text-decoration:underline}
@media (max-width:1024px){.avs-foot-in{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.avs-foot-in{grid-template-columns:1fr}}

/* ---------- Header ---------- */
.avs-head{background:rgba(255,255,255,.86);backdrop-filter:blur(18px);
  border-bottom:1px solid var(--line);position:sticky;top:0;z-index:800}
.avs-head-in{max-width:1200px;margin:0 auto;padding:12px 20px;display:flex;gap:22px;
  align-items:center;justify-content:space-between}
.avs-brand{flex:0 0 auto;display:flex;align-items:center;min-height:44px;line-height:0}
.avs-brand img{height:52px;width:auto;max-width:230px}
.avs-head-search{flex:1 1 auto;min-width:0;max-width:620px}
.avs-search{display:flex;align-items:stretch;background:#fff;border:1px solid var(--line);
  border-radius:var(--pill);overflow:hidden}
.avs-search input[type=search]{flex:1;min-width:0;min-height:48px;padding:12px 20px;border:0;
  font-size:1rem;background:transparent;color:var(--ink)}
.avs-search select{min-height:48px;border:0;border-left:1px solid var(--line);
  background:transparent;padding:0 14px;font-size:.9375rem;color:var(--ink);max-width:160px}
.avs-search button{min-width:56px;min-height:48px;border:0;cursor:pointer;
  background:var(--indigo-900);color:#fff;font-size:17px}
.avs-search input:focus-visible,.avs-search select:focus-visible{outline:2px solid var(--violet-500);outline-offset:-2px}
.avs-head-tools{display:flex;gap:6px;align-items:center;flex:0 0 auto}
.avs-tool{display:flex;flex-direction:column;align-items:center;gap:2px;text-decoration:none;
  color:var(--indigo-900);min-width:64px;min-height:48px;padding:4px 8px;border-radius:12px;position:relative}
.avs-tool:hover{background:var(--lavender)}
.avs-tool-ico{font-size:21px;line-height:1}
.avs-tool-l{font-size:var(--t-meta,15px);font-weight:600;text-align:center;line-height:1.2}
.avs-tool-l small{display:block;font-size:var(--t-meta,15px);font-weight:400;color:var(--ink-muted)}
.avs-cart-n{position:absolute;top:0;right:6px;min-width:22px;height:22px;border-radius:999px;
  background:var(--amber-500);color:#3D2600;font-size:.75rem;font-weight:700;
  display:grid;place-items:center;padding:0 6px}
.avs-burger{display:none;min-width:48px;min-height:48px;border:0;background:none;font-size:22px;cursor:pointer}
.avs-nav{border-top:1px solid var(--line)}
.avs-nav-list{max-width:1200px;margin:0 auto;padding:0 20px;list-style:none;display:flex;
  gap:6px;flex-wrap:wrap;justify-content:space-between}
.avs-nav-list>li>a{display:flex;align-items:center;min-height:52px;padding:0 12px;
  text-decoration:none;color:var(--indigo-900);font-weight:600;font-size:.9375rem}
.avs-nav-list>li>a:hover{color:var(--violet-500)}
.avs-nav-list .sub-menu{display:none;position:absolute;z-index:20;background:#fff;
  border:1px solid var(--line);border-radius:16px;padding:8px;margin:0;list-style:none;min-width:230px;
  box-shadow:var(--shadow-2)}
.avs-nav-list li:hover>.sub-menu,.avs-nav-list li:focus-within>.sub-menu{display:block}
.avs-nav-list .sub-menu a{display:block;padding:10px 14px;min-height:44px;text-decoration:none;
  color:var(--ink);font-size:.9375rem;border-radius:10px}
.avs-nav-list .sub-menu a:hover{background:var(--lavender)}
.avs-nav-list>li{position:relative}
@media (max-width:1024px){
  .avs-head-in{flex-wrap:wrap}
  .avs-head-search{order:3;flex-basis:100%;max-width:none}
  .avs-tool-l small{display:none}
}
@media (max-width:767px){
  /* One row for the menu button, the logo and the two tools, the search under
     it: the header was three rows and 227px of an 844px screen, and it is
     sticky. Now about 140px. */
  .avs-head-in{gap:8px 10px;padding:8px 14px}
  .avs-burger{display:grid;place-items:center;order:-1}
  .avs-nav{display:none}
  .avs-nav.is-open{display:block}
  .avs-nav-list{flex-direction:column}
  .avs-search select{display:none}
  .avs-brand img{height:38px}
  .avs-head-tools{gap:2px}
  .avs-tool{min-width:56px;padding:4px 4px}
  .avs-head-search{order:3;flex-basis:100%}
}

/* ---------- Price-on-request (catalogue mode) ---------- */
.avs-poa{font-weight:600;color:var(--ink-muted)}
.avs-poa-box{background:var(--lavender);border:1px solid var(--line);border-radius:16px;
  padding:18px 20px;margin:18px 0}
.avs-poa-box p{margin:0 0 6px;font-size:1rem}
.avs-poa-box p:last-child{margin:0}
.avs-poa-box a{color:var(--indigo-900);font-weight:700;text-decoration:none;
  min-height:44px;display:inline-flex;align-items:center}

/* ---------- Product page ---------- */
.avs-ident{list-style:none;padding:0;margin:14px 0;display:flex;flex-wrap:wrap;gap:8px 22px;
  font-size:.9375rem}
.avs-ident li{display:flex;flex-direction:column}
.avs-ident span{color:var(--ink-muted);font-size:.8125rem}
.avs-ident b{color:var(--indigo-900);font-weight:700;letter-spacing:.02em}
.avs-ident em{font-size:.75rem;color:var(--ink-muted);font-style:normal}

/* Prop 65 — legally required where published. Prominent, never buried. */
.avs-p65{border:1px solid #E4C88A;background:#FFF8E8;border-radius:14px;padding:12px 16px;margin:16px 0}
.avs-p65 summary{cursor:pointer;display:flex;align-items:center;gap:10px;min-height:44px;
  font-size:.9375rem;color:#6B4A00;font-weight:600}
.avs-p65 summary::-webkit-details-marker{display:none}
.avs-p65-mark{font-size:19px}
.avs-p65 p{margin:8px 0 0;font-size:.9375rem;color:#5A3F00;line-height:1.55}
.avs-p65-src a{color:#5A3F00;font-weight:600}

.avs-pp-compare{display:flex;align-items:center;gap:9px;min-height:48px;margin-top:10px;
  font-size:1rem;color:var(--ink-muted);cursor:pointer}
.avs-pp-compare input{width:20px;height:20px}

.avs-spec-wrap{overflow-x:auto}
.avs-spec-table{width:100%;border-collapse:collapse;font-size:1rem}
.avs-spec-table th,.avs-spec-table td{padding:12px 14px;text-align:left;border-bottom:1px solid var(--line);
  vertical-align:top}
.avs-spec-table th{width:44%;font-weight:600;color:var(--indigo-900);background:var(--ground)}
.avs-spec-note{margin-top:12px;font-size:.9375rem;color:var(--ink-muted)}
.avs-cmp-missing{color:var(--ink-subtle);font-style:italic}

.avs-docs h3{margin:18px 0 8px;font-size:1.0625rem}
.avs-doc-list{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.avs-doc-list a{display:flex;align-items:center;gap:10px;min-height:48px;padding:10px 14px;
  background:var(--lavender);border-radius:12px;text-decoration:none;color:var(--indigo-900);
  font-weight:600;font-size:.9375rem}
.avs-doc-list a:hover{background:#E8E2F4}
.avs-doc-list small{margin-left:auto;font-weight:400;color:var(--ink-muted);font-size:.75rem}

/* Product reviews */
.avs-prev{margin:40px 0}
.avs-prev-top{display:grid;gap:22px;grid-template-columns:auto 1fr;align-items:center;
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:22px;margin-bottom:18px}
.avs-prev-score{text-align:center}
.avs-prev-list{list-style:none;padding:0;margin:0;display:grid;gap:12px}
.avs-prev-list li{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px}
.avs-prev-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:6px}
.avs-prev-head strong{font-size:1.0625rem;color:var(--indigo-900)}
.avs-prev-list p{margin:0 0 10px}
.avs-prev-list footer{display:flex;gap:14px;flex-wrap:wrap;font-size:.875rem;color:var(--ink-muted)}
.avs-prev-none{color:var(--ink-muted)}
.avs-prev-form{margin-top:20px;background:var(--lavender);border-radius:var(--radius);padding:18px 20px}
.avs-prev-form summary{cursor:pointer;font-weight:600;min-height:44px;display:flex;align-items:center;
  color:var(--indigo-900)}
.avs-rev-form label{display:block;font-weight:600;margin-bottom:5px}
.avs-rev-form input[type=text],.avs-rev-form textarea{width:100%;padding:12px 14px;font-size:1rem;
  border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink)}
.avs-rev-rate{border:0;padding:0;margin:0 0 14px;display:flex;gap:14px;flex-wrap:wrap}
.avs-rev-rate legend{font-weight:600;margin-bottom:6px}
.avs-rev-rate label{display:flex;align-items:center;gap:6px;min-height:44px;font-weight:400}
.avs-rev-guard{font-size:.875rem;color:var(--ink-muted)}
.avs-rev-thanks{background:#E8F5E9;border:1px solid #A5D6A7;color:#1B5E20;border-radius:12px;
  padding:14px 18px;margin:0 0 18px;font-weight:600}
@media (max-width:600px){.avs-prev-top{grid-template-columns:1fr}}

/* ---------- Live search suggestions ---------- */
.avs-head-search{position:relative}
.avs-sug{position:absolute;top:calc(100% + 8px);left:0;right:0;z-index:60;background:#fff;
  border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow-2);overflow:hidden;
  max-height:min(70vh,460px);overflow-y:auto}
.avs-sug-i{display:flex;align-items:center;gap:12px;padding:10px 14px;text-decoration:none;
  color:var(--ink);border-bottom:1px solid var(--line);min-height:60px}
.avs-sug-i:last-of-type{border-bottom:0}
.avs-sug-i:hover,.avs-sug-i.is-on{background:var(--lavender)}
.avs-sug-i img{width:48px;height:48px;object-fit:contain;border-radius:8px;flex:0 0 auto}
.avs-sug-t{flex:1;min-width:0;display:flex;flex-direction:column}
.avs-sug-t b{font-size:.9375rem;font-weight:600;line-height:1.3;color:var(--indigo-900);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.avs-sug-t small{font-size:var(--t-meta,15px);color:var(--ink-muted)}
.avs-sug-p{font-weight:700;font-size:.9375rem;white-space:nowrap;color:var(--indigo-900)}
.avs-sug-all{display:flex;align-items:center;justify-content:center;min-height:52px;
  background:var(--lavender);text-decoration:none;font-weight:600;color:var(--indigo-900)}
.avs-sug-all.is-on{background:#E8E2F4}

/* ---------- Shop loop extras ---------- */
.avs-loop-cmp{display:flex;align-items:center;gap:8px;min-height:44px;margin-top:6px;
  font-size:.875rem;color:var(--ink-muted);cursor:pointer}
.avs-loop-cmp input{width:18px;height:18px}
.avs-loop-poa{display:block;font-weight:600;color:var(--ink-muted);margin:4px 0}
