/* ============================================================================
   AVANTE — POLISH LAYER (loads after visual.css)
   Brings the render up to the approved mockups: crisp white cards on the
   lavender ground, one consistent line-icon language, full card anatomy.
   ============================================================================ */

/* ---- Icon language ------------------------------------------------------ */
.avs-i{ flex:0 0 auto; display:inline-block; vertical-align:middle; }
.avs-star{ color:#E8E3F0; }
.avs-star.is-on{ color:var(--amber-500); }

/* ---- Cards are WHITE on the lavender ground -----------------------------
   0.68 glass over lavender reads grey and muddies the whole page. The mockup
   contrast is white card / lavender ground. Glass stays on sticky chrome only. */
.avs-pcard, .avs-guide, .avs-rev-card, .avs-rev-agg, .avs-sit-grid a,
.avs-reo-col, .avs-prev-list li, .avs-prev-top, .avs-trust,
.avs-rail-strip a, .avs-find, .avs-bento-bar{
  background:#fff!important;
  -webkit-backdrop-filter:none; backdrop-filter:none;
  border:1px solid #EAE4F2!important;
  box-shadow:0 1px 2px rgba(46,26,94,.04), 0 10px 28px rgba(46,26,94,.05);
}
.avs-hero-assure{
  background:rgba(255,255,255,.94)!important;
  -webkit-backdrop-filter:blur(18px); backdrop-filter:blur(18px);
  border:1px solid rgba(255,255,255,.95)!important;
}

/* ---- Utility strip ------------------------------------------------------ */
.avs-util-items{ gap:0; align-items:center; }
.avs-util-items li{ display:flex; align-items:center; gap:9px; padding:0 18px; }
.avs-util-dot{ padding:0!important; opacity:.45; }
.avs-util .avs-i{ opacity:.9; }

/* ---- Header ------------------------------------------------------------- */
.avs-tool-ico{ display:grid; place-items:center; height:26px; }
.avs-search button{ border-radius:999px; margin:5px; min-width:46px; min-height:38px; }
.avs-search{ padding-right:0; }
.avs-nav-list>li>a::after{
  content:""; width:9px; height:9px; margin-left:7px;
  border-right:1.6px solid currentColor; border-bottom:1.6px solid currentColor;
  transform:rotate(45deg) translateY(-2px); opacity:.55;
}
.avs-nav-list>li:last-child>a::after{ display:none; }

/* ---- Hero assurance: dividers, not floating emoji ----------------------- */
.avs-hero-assure{ display:flex; gap:0; padding:16px 0; }
.avs-hero-assure li{
  flex:1; display:flex; align-items:center; justify-content:center; gap:12px;
  padding:6px 20px; font-size:15px; line-height:1.3; text-align:left;
}
.avs-hero-assure li + li{ border-left:1px solid #EDE7F4; }
.avs-hero-assure .avs-i{ color:var(--violet-500); }

/* ---- Guided finder ------------------------------------------------------ */
.avs-find{ padding:32px 36px; }
.avs-find-rail{ gap:12px; }
.avs-find-rail li{
  background:#fff; border:1px solid #EAE4F2; border-radius:999px;
  padding:10px 18px; gap:12px; box-shadow:0 1px 2px rgba(46,26,94,.04);
}
.avs-find-num{
  background:var(--lavender); color:var(--indigo-900);
  width:26px; height:26px; font-size:14px;
}
.avs-find-start{ font-size:17px; padding:14px 30px; }

/* ---- Category bento ----------------------------------------------------- */
.avs-bento-t{ font-size:20px!important; }
.avs-bento-mid .avs-bento-t{ font-size:17px!important; }
.avs-bento-t small{ font-weight:500; opacity:.7; }
.avs-bento-pill{
  background:#fff; border:1px solid rgba(255,255,255,.9);
  box-shadow:0 1px 3px rgba(46,26,94,.06); font-weight:600;
}
.avs-bento-bar{ padding:0; }
.avs-bento-bar a{ gap:12px; padding:18px 16px; }
.avs-bento-bar .avs-i{ color:var(--violet-500); }
.avs-bento-bar small{ font-weight:500; opacity:.65; }

/* ---- Shop by situation -------------------------------------------------- */
.avs-sit-grid a{ padding:26px 18px; gap:16px; }
.avs-sit-t{ font-size:16px!important; line-height:1.3; }

/* ---- PRODUCT CARD — full mockup anatomy --------------------------------- */
.avs-pcard{
  padding:20px; gap:0; border-radius:20px;
  display:flex; flex-direction:column;
}
.avs-pcard-link{ order:1; }
.avs-pcard-name{
  font-size:16px!important; font-weight:600; line-height:1.32;
  min-height:2.64em; margin:0 0 8px; display:block;
}
.avs-badge{
  order:2; align-self:flex-start; display:inline-flex; align-items:center; gap:5px;
  padding:4px 11px; border-radius:999px; font-size:13px; font-weight:600;
  margin:0 0 10px; letter-spacing:.01em;
}
.avs-badge--best-seller{ background:#EDE6F8; color:#4A2E86; }
.avs-badge--new{ background:#FFEFD6; color:#8A5200; }
.avs-badge--video{ background:#EDE6F8; color:#4A2E86; }
.avs-pcard-media{
  order:3; display:block; background:transparent; border-radius:14px;
  padding:0; margin:0 0 12px;
}
.avs-pcard-media img{ width:100%; height:auto; aspect-ratio:1; object-fit:contain; }
.avs-pcard-stars{ order:4; display:flex; align-items:center; gap:2px; margin:0 0 8px; }
.avs-pcard-stars small{ margin-left:6px; color:var(--ink-muted); font-size:15px!important; }
.avs-pcard-price{ order:5; display:block; margin:0 0 10px; line-height:1.15; }
.avs-pcard-price strong{ font-size:26px; font-weight:700; color:var(--indigo-900); }
.avs-pcard-price strong .woocommerce-Price-amount{ font-size:inherit; }
.avs-pcard-price small{
  display:inline; margin-left:8px; font-size:15px!important;
  font-weight:500; color:var(--ink-muted);
}
.avs-pcard-price em{ font-size:17px; font-style:normal; font-weight:600; color:var(--ink-muted); }
.avs-pcard-meta{
  order:6; list-style:none; padding:0; margin:0 0 14px;
  display:flex; flex-direction:column; gap:5px;
}
.avs-pcard-meta li{
  display:flex; align-items:center; gap:7px;
  font-size:15px!important; color:var(--ink-muted); line-height:1.35;
}
.avs-pcard-meta .avs-in{ color:#1B5E20; font-weight:600; }
.avs-pcard-meta .avs-in .avs-i{ color:#1B5E20; }
.avs-pcard-meta .avs-i{ color:var(--ink-subtle); }
.avs-pcard-meta .avs-zip{ font-weight:700; color:var(--indigo-900); }
.avs-zip-change{
  background:none; border:0; padding:0; cursor:pointer; min-height:24px;
  color:var(--violet-500); font-size:15px; font-weight:600;
  text-decoration:underline; text-underline-offset:3px;
}
.avs-pcard-add{
  order:7; width:100%; margin:0 0 12px; text-decoration:none;
  border-radius:10px; min-height:48px; font-size:16px; font-weight:600;
}
.avs-pcard-tools{ order:8; margin:0; padding-top:2px; }
.avs-pcard-cmp{ font-size:15px!important; }
.avs-wish{ color:var(--violet-500); display:grid; place-items:center; }
.avs-wish[aria-pressed="true"] .avs-i{ fill:currentColor; }

/* ---- Compact rails ------------------------------------------------------ */
.avs-rail-strip a{ padding:12px; border-radius:16px; }
.avs-strip-n{ font-size:15px!important; }
.avs-strip-p{ font-size:16px!important; font-weight:700; }

/* ---- Reorder ------------------------------------------------------------ */
.avs-reo-col{ padding:28px 30px; }

/* ---- Paying & claiming -------------------------------------------------- */
.avs-pay{ padding:32px 36px; }
.avs-pay-cols{ gap:0; }
.avs-pay-cols li{ padding:4px 26px; grid-template-columns:30px 1fr; }
.avs-pay-cols li + li{ border-left:1px solid rgba(255,255,255,.2); }
.avs-pay-ico{ display:grid; place-items:start; color:#fff; opacity:.95; }
.avs-pay-t{ font-size:16px; line-height:1.35; }
.avs-pay-d{ font-size:15px!important; opacity:.82; line-height:1.45; }

/* ---- Reviews ------------------------------------------------------------ */
.avs-rev-card{ padding:26px; }
.avs-rev-stars{ display:inline-flex; gap:2px; }
.avs-rev-avg{ font-size:44px; }
.avs-rev-bar i{ background:var(--amber-500); }
.avs-rev-hist li{ grid-template-columns:32px 1fr 44px; }

/* ---- Guides ------------------------------------------------------------- */
.avs-guide{ padding:0 0 24px; overflow:hidden; }
.avs-guide-media{ margin:0 0 4px; }
.avs-guide-media .avs-life-img{ border-radius:20px 20px 0 0; height:200px; }
.avs-guide h3, .avs-guide p, .avs-guide-more{ padding-inline:24px; }
.avs-guide h3{ margin:18px 0 8px; }
.avs-spec{ padding:30px 26px; gap:10px;
  background:linear-gradient(165deg,#FFF7E9 0%,#FDEFD8 100%)!important;
  border:1px solid #F3E0BE!important; }
.avs-spec-ico{ color:var(--amber-ink); }
.avs-spec-tel{ display:inline-flex; align-items:center; gap:9px; font-size:28px; }
.avs-spec-tel .avs-i{ width:22px; height:22px; }

/* ---- Trust strip -------------------------------------------------------- */
.avs-trust li{ gap:12px; font-size:15px; }
.avs-trust .avs-i{ color:var(--violet-500); }
.avs-trust li + li{ border-left:1px solid #EDE7F4; }

/* ---- Footer ------------------------------------------------------------- */
.avs-foot-assure li{ gap:10px; }
.avs-foot-assure .avs-i{ opacity:.9; }

@media (max-width:900px){
  .avs-hero-assure{ flex-wrap:wrap; }
  .avs-hero-assure li{ flex:1 1 45%; }
  .avs-hero-assure li:nth-child(odd) + li{ border-left:0; }
  .avs-pay-cols li + li{ border-left:0; }
}

/* ---- Reel reads as a real vertical video player -------------------------- */
.avs-reel-frame{ position:relative; }
.avs-reel-chrome{
  position:absolute; top:0; left:0; right:0; z-index:4;
  display:flex; align-items:center; justify-content:space-between;
  padding:12px 14px; color:#fff;
  background:linear-gradient(to bottom, rgba(0,0,0,.42), transparent);
}
.avs-reel-handle{ position:static; font-size:15px; font-weight:600; text-shadow:0 1px 3px rgba(0,0,0,.4); }
.avs-reel-menu{ opacity:.9; }
.avs-reel-bar{
  position:absolute; left:0; right:0; bottom:0; z-index:4;
  display:flex; align-items:center; gap:10px; padding:12px 14px 14px;
  color:#fff; background:linear-gradient(to top, rgba(0,0,0,.62), transparent);
}
.avs-reel-progress{ flex:1; height:3px; border-radius:999px; background:rgba(255,255,255,.38); }
.avs-reel-progress i{ display:block; width:26%; height:100%; border-radius:999px; background:#fff; }
.avs-reel-time{ font-size:var(--t-meta,15px); opacity:.95; letter-spacing:.02em; }
.avs-reel-full{ opacity:.9; display:grid; place-items:center; }
.avs-reel-item figcaption{ padding-bottom:44px; z-index:3; }
.avs-reel-play{
  width:72px; height:72px; background:rgba(255,255,255,.86);
  box-shadow:0 6px 20px rgba(0,0,0,.24); z-index:4;
}

/* ============================================================================
   ATMOSPHERE — the mockup is never flat. Soft tints carry the page.
   ============================================================================ */

/* A gentle vertical gradient under everything, so the ground is lit not painted. */
body.home{
  background:
    radial-gradient(900px 620px at 88% 4%,  rgba(245,166,35,.10), transparent 62%),
    radial-gradient(820px 640px at 6%  30%, rgba(168,143,208,.14), transparent 64%),
    linear-gradient(180deg, #F4F1FA 0%, #F2EFF8 42%, #F7F5FB 100%)!important;
  background-attachment:fixed!important;
}
/* Sections stay translucent so that ground shows through and reads as light. */
body.home .elementor > .e-con:nth-child(odd){ background:transparent!important; }
body.home .elementor > .e-con:nth-child(even){ background:rgba(255,255,255,.46)!important; }

/* Finder band carries a lavender tint, as in the mockup — not flat white. */
.avs-find{
  background:linear-gradient(135deg,#F6F2FB 0%,#FBF7FC 48%,#FDF6EC 100%)!important;
  border:1px solid rgba(255,255,255,.9)!important;
  box-shadow:0 1px 2px rgba(46,26,94,.04), 0 14px 34px rgba(46,26,94,.06);
}
.avs-find-rail li{ background:rgba(255,255,255,.92); }

/* Reorder / parts: the right-hand half is tinted in the mockup. */
.avs-reo-parts{
  background:linear-gradient(140deg,#F5F0FA 0%,#FAF6FC 60%,#FDF5EA 100%)!important;
}

/* Product cards: a touch more air, and a larger image, as in the mockup. */
.avs-pcard{ padding:22px 20px 20px; }
.avs-pcard-media{ margin-bottom:14px; }
.avs-pcard-media img{ transform:scale(1.04); }
.avs-pcard-price strong{ display:inline-block; }
.avs-pcard-price small{ display:block; margin:2px 0 0; }

/* Situation + trust + bento bar keep a whisper of tint so they never read grey. */
.avs-sit-grid a, .avs-trust, .avs-bento-bar{
  background:rgba(255,255,255,.92)!important;
}

/* ============================================================================
   HERO + FINDER — match the mockup proportions
   ============================================================================ */

/* The headline runs to two or three generous lines, not a narrow column. */
.avs-slide-copy{ max-width:none; }
.avs-slide-h{ max-width:13ch; }
.avs-slide-copy p{ max-width:36ch; font-size:18px; }

/* Hero buttons are large pills, as in the mockup — not inline text. */
.avs-slide-btns{ gap:14px; margin-top:26px; }
.avs-slide-btns .avs-cta,
.avs-slide-btns .avs-btn-secondary{
  display:inline-flex; align-items:center; gap:10px;
  min-height:56px; padding:0 30px; border-radius:999px;
  font-size:17px; font-weight:600; text-decoration:none; white-space:nowrap;
}
.avs-slide-btns .avs-cta{ box-shadow:0 8px 20px rgba(245,166,35,.32); }
.avs-slide-btns .avs-btn-secondary{
  background:rgba(255,255,255,.9); border:1.5px solid var(--violet-500);
  -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
}

/* Slider controls sit quietly under the copy. */
.avs-hero-nav{ margin-top:28px; gap:8px; }
.avs-hero-nav button{
  min-width:40px; min-height:40px; font-size:15px;
  background:rgba(255,255,255,.86); border-color:rgba(255,255,255,.9);
  box-shadow:0 2px 8px rgba(46,26,94,.10);
}
.avs-hero-dots button{ min-width:26px; min-height:40px; background:none; box-shadow:none; border:0; }
.avs-hero-dots button::after{ background:rgba(46,26,94,.22); }
.avs-hero-dots button[aria-selected="true"]::after{ background:var(--amber-500); }

/* ---- Finder: one row of icon pills with Start on the right --------------- */
.avs-find-row{ display:flex; align-items:center; gap:16px; flex-wrap:wrap; }
.avs-find-rail{
  flex:1; display:grid; gap:12px; margin:0;
  grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
}
.avs-find-rail li{ gap:10px; padding:12px 18px; }
.avs-find-rail .avs-i{ color:var(--violet-500); }
.avs-find-num{
  background:var(--lavender); color:var(--indigo-900);
  width:24px; height:24px; font-size:13px; flex:0 0 auto;
}
.avs-find-q{ font-size:15px; }
.avs-find-start{
  flex:0 0 auto; min-height:56px; padding:0 34px; border-radius:999px;
  font-size:17px; box-shadow:0 8px 20px rgba(245,166,35,.32);
}
.avs-find-intro{ margin-bottom:24px; }
@media (max-width:900px){
  .avs-find-row{ flex-direction:column; align-items:stretch; }
  .avs-find-start{ align-self:flex-start; }
}

/* Every reel poster is painted; only the active one is revealed. Prevents a
   blank frame on rotation. */
.avs-reel-item{ display:block!important; opacity:0; transition:opacity .5s ease; pointer-events:none; }
.avs-reel-item.is-active{ opacity:1; pointer-events:auto; }
.avs-reel-item .avs-life-img{ display:block; }

/* The monthly figure sits beside the price, as in the mockup. */
.avs-pcard-price small{ display:inline!important; margin:0 0 0 8px!important; }

/* ============================================================================
   Mockup-matched chrome on the homepage build.
   header 134px · nav 68px · content column 1358 with 41px gutters
   ============================================================================ */
body.avante-home-page .avs-head-in,
body.avante-home-page .avs-nav-list,
body.avante-home-page .avs-util-in,
body.avante-home-page .avs-foot-in,
body.avante-home-page .avs-foot-assure,
body.avante-home-page .avs-foot-legal{
  max-width:1440px!important; padding-inline:41px!important;
}
/* The homepage component steps its own gutters down to 32, 26 and 24 at the
   breakpoints. These wrappers kept 41 at every width, which left the header
   and footer misaligned with the content beneath them on tablets, and on a
   360px phone pushed the text-size buttons 15px past the edge so the whole
   page scrolled sideways. Same gutter as the content, at every width. */
@media (max-width:1279px){
  body.avante-home-page .avs-head-in,
  body.avante-home-page .avs-nav-list,
  body.avante-home-page .avs-util-in,
  body.avante-home-page .avs-foot-in,
  body.avante-home-page .avs-foot-assure,
  body.avante-home-page .avs-foot-legal{ padding-inline:32px!important; }
}
@media (max-width:1023px){
  body.avante-home-page .avs-head-in,
  body.avante-home-page .avs-nav-list,
  body.avante-home-page .avs-util-in,
  body.avante-home-page .avs-foot-in,
  body.avante-home-page .avs-foot-assure,
  body.avante-home-page .avs-foot-legal{ padding-inline:26px!important; }
}
@media (max-width:767px){
  body.avante-home-page .avs-head-in,
  body.avante-home-page .avs-nav-list,
  body.avante-home-page .avs-util-in,
  body.avante-home-page .avs-foot-in,
  body.avante-home-page .avs-foot-assure,
  body.avante-home-page .avs-foot-legal{ padding-inline:24px!important; }
}
@media (max-width:374px){
  body.avante-home-page .avs-util-in{ padding-inline:12px!important; }
}

body.avante-home-page .avs-head-in{ min-height:134px; padding-block:0!important; }
body.avante-home-page .avs-brand img{ height:58px; max-width:262px; }
body.avante-home-page .avs-head-search{ max-width:668px; }
body.avante-home-page .avs-search{ min-height:62px; }
body.avante-home-page .avs-search input[type=search]{ min-height:60px; font-size:16.5px; }
body.avante-home-page .avs-search select{ min-height:60px; }
body.avante-home-page .avs-search button{ min-width:54px; min-height:48px; }
body.avante-home-page .avs-nav-list>li>a{ min-height:68px; font-size:15.5px; }
body.avante-home-page .avs-util-in{ min-height:61px; }

/* ============================================================================
   Chrome height. Utility 61 + header 134 + nav 69 = 264px of furniture before
   the hero began — roughly a third of a laptop screen. Trimmed to 40 + 84 + 52
   = 176px, which keeps the mockup's proportions but stops eating the fold.
   ============================================================================ */
body.avante-home-page .avs-util-in{ min-height:44px; padding-block:0; }
body.avante-home-page .avs-util-items li{ padding:0 14px; font-size:13.5px; }
body.avante-home-page .avs-util-size button{ min-width:44px; min-height:44px; }

body.avante-home-page .avs-head-in{ min-height:84px; gap:26px; }
body.avante-home-page .avs-brand img{ height:44px; max-width:200px; }
body.avante-home-page .avs-head-search{ max-width:620px; }
body.avante-home-page .avs-search{ min-height:50px; }
body.avante-home-page .avs-search input[type=search]{ min-height:48px; font-size:15.5px; padding:10px 18px; }
body.avante-home-page .avs-search select{ min-height:48px; font-size:14.5px; }
body.avante-home-page .avs-search button{ min-width:46px; min-height:40px; margin:4px; }
body.avante-home-page .avs-tool{ min-width:58px; padding:2px 6px; }
body.avante-home-page .avs-tool-ico{ height:22px; }
body.avante-home-page .avs-tool-ico svg{ width:21px; height:21px; }
/* tokens.css calls --t-meta the absolute floor, nothing smaller anywhere. These
   two were 12px and 11px, on a site whose readers are largely over 60. */
body.avante-home-page .avs-tool-l{ font-size:var(--t-meta,15px); }
body.avante-home-page .avs-tool-l small{ font-size:var(--t-meta,15px); font-weight:400; }

body.avante-home-page .avs-nav-list>li>a{ min-height:52px; font-size:14.5px; }

/* The homepage header follows the same one-row phone layout as every other
   page (tokens.css): menu button, logo, account and cart on one line, the
   search beneath. Its 26px gap and 84px minimum height pushed the tools onto
   a second row here and made the sticky header 205px tall. */
@media (max-width:767px){
  body.avante-home-page .avs-head-in{ min-height:0; gap:8px 10px; padding-inline:14px!important; padding-block:8px!important; }
  body.avante-home-page .avs-brand img{ height:38px; max-width:170px; }
  body.avante-home-page .avs-tool{ min-width:56px; padding:4px 4px; }
}

/* Astra's scroll-to-top control is 32px, under the 48px floor every other
   control on the site keeps. Same corner, same behaviour, a size a finger
   can hit; the product page hides it altogether (its sticky bar owns that
   corner). */
#ast-scroll-top{ width:48px!important; height:48px!important; line-height:48px!important; border-radius:50%!important;
  background:var(--indigo-900)!important; color:#fff!important; box-shadow:var(--shadow-2)!important; }
#ast-scroll-top .ast-icon svg, #ast-scroll-top svg{ width:20px; height:20px; }
#ast-scroll-top:focus-visible{ outline:var(--focus); outline-offset:3px; }

/* ------------------------------------------------------------------ notices ------
   "... has been added to your cart" shows on the product page, the shop and
   every category, but commerce.css only loads on cart, checkout and account,
   so everywhere else the band and its View cart button fell back to Astra's
   stock blue. Same band, same slim button, on every page that can raise one. */
body .woocommerce-notices-wrapper .woocommerce-message,
body .woocommerce-notices-wrapper .woocommerce-info,
body .woocommerce-notices-wrapper .woocommerce-error{
  display:flex; align-items:center; flex-wrap:wrap; gap:6px 16px;
  margin:0 0 20px; padding:14px 20px 14px 52px; position:relative;
  border:1px solid var(--line); border-top-width:1px; border-left:0; border-radius:var(--radius-sm);
  background:#fff; color:var(--ink); font-size:1.0625rem; line-height:1.5; list-style:none;
  box-shadow:var(--shadow-1);
}
body .woocommerce-notices-wrapper .woocommerce-message::before,
body .woocommerce-notices-wrapper .woocommerce-info::before,
body .woocommerce-notices-wrapper .woocommerce-error::before{
  position:absolute; left:18px; top:50%; transform:translateY(-50%);
  width:22px; height:22px; border-radius:50%; margin:0; padding:0;
  display:grid; place-items:center; font-size:14px; font-weight:700; line-height:1;
  font-family:var(--font-sans); font-variant:normal;
  content:"i"; background:var(--lavender); color:var(--indigo-900);
}
body .woocommerce-notices-wrapper .woocommerce-message::before{ content:"\2713"; background:#E4F3E6; color:var(--success-ink); }
body .woocommerce-notices-wrapper .woocommerce-error{ border-color:#F0C9C6; background:#FFF6F5; }
body .woocommerce-notices-wrapper .woocommerce-error::before{ content:"!"; background:#F8D7D4; color:var(--danger-ink); }
/* The button sits at the end of the sentence, slim, in the site's own colours. */
body .woocommerce-notices-wrapper .woocommerce-message .button,
body .woocommerce-notices-wrapper .woocommerce-info .button,
body .woocommerce-notices-wrapper .woocommerce-error .button{
  float:none; order:2; margin:0 0 0 auto; flex:none;
  display:inline-flex; align-items:center; justify-content:center;
  min-height:44px; padding:6px 20px; border-radius:var(--pill);
  background:var(--lavender)!important; color:var(--indigo-900)!important;
  border:1px solid #DDD4EE!important; box-shadow:none!important;
  font-size:1rem; font-weight:700; text-decoration:none; text-transform:none;
}
body .woocommerce-notices-wrapper .woocommerce-message .button:hover,
body .woocommerce-notices-wrapper .woocommerce-info .button:hover{ background:#E7E0F4!important; filter:none; }
body .woocommerce-notices-wrapper .woocommerce-message .button:focus-visible,
body .woocommerce-notices-wrapper .woocommerce-info .button:focus-visible{ outline:var(--focus); outline-offset:2px; }
/* On a phone the sentence and the button each take their own line. */
@media (max-width:600px){
  body .woocommerce-notices-wrapper .woocommerce-message,
  body .woocommerce-notices-wrapper .woocommerce-info,
  body .woocommerce-notices-wrapper .woocommerce-error{ padding:14px 16px 14px 48px; }
  body .woocommerce-notices-wrapper .woocommerce-message .button,
  body .woocommerce-notices-wrapper .woocommerce-info .button{ margin:2px 0 0; }
}

/* ------------------------------------------------------------------ gutters ------
   The page containers are fixed widths: 1200px for the header, nav and footer,
   1240px for the content. On a laptop around 1280px wide that leaves 20px at
   each edge and the whole page reads as edge to edge. Cap both against the
   viewport so a real margin always remains.
   Above about 1410px nothing changes at all, because 88vw is already wider than
   both caps, so a 1440 or 1470 screen renders exactly as it did before. */
@media (min-width:1024px){
  .ast-container{ max-width:min(1240px, 88vw); }
  .avs-head-in,
  .avs-nav-list,
  .avs-foot-in,
  .avs-foot-assure,
  .avs-foot-legal{ max-width:min(1200px, 88vw); }
}

/* ------------------------------------------------------------------ logo ---------
   The new lockup is wider than the old one (about 5.5 to 1), so every rule that
   capped its width would have squashed it. Height sets the size, width follows. */
.avs-brand img,
body.avante-home-page .avs-brand img{ height:33px; width:auto; max-width:none; }
.avs-foot-logo-img{ display:block; height:34px; width:auto; margin:0 0 4px; }
/* 33px on laptops, desktops and tablets. On a phone the header is one row
   (menu, logo, Account, Cart), and at 33px the logo is 183px wide, which
   pushed Account and Cart onto a second row. The phone size is the largest
   that keeps that row intact. */
@media (max-width:767px){
  .avs-burger{ padding:0!important; width:48px; }
  .avs-brand img,
  body.avante-home-page .avs-brand img{ height:28px; }
}
@media (max-width:380px){
  .avs-brand img,
  body.avante-home-page .avs-brand img{ height:23px; }
}
