/* Ayurvite Storefront UI v1.0.5
   Modern, warm, editorial storefront. No green theme, no front-end framework. */

:root {
  --ayv-ink: #202431;
  --ayv-ink-2: #303746;
  --ayv-ivory: #fbf9f5;
  --ayv-paper: #ffffff;
  --ayv-sand: #eadfce;
  --ayv-sand-2: #f3ece3;
  --ayv-clay: #c97355;
  --ayv-clay-dark: #a8543a;
  --ayv-plum: #75697f;
  --ayv-blue: #66788d;
  --ayv-copper: #b48764;
  --ayv-muted: #6d706f;
  --ayv-border: #e8e3dc;
  --ayv-radius-sm: 14px;
  --ayv-radius: 22px;
  --ayv-radius-lg: 34px;
  --ayv-shadow: 0 18px 55px rgba(32, 36, 49, 0.08);
  --ayv-shell: min(1240px, calc(100% - 40px));
}

/* Global storefront surface ------------------------------------------------- */
body.ayv-storefront-ui {
  --ayv-header-bg: #111827;
  --ayv-header-text: #f7f3ec;
  --ayv-header-muted: #d7d3cc;
  --ayv-header-accent: #c97355;
  --ayv-header-accent-dark: #a8543a;
  --ayv-menu-surface: #fffdf9;
}

body.ayv-modern-storefront {
  background: var(--ayv-ivory);
  color: var(--ayv-ink);
}

/* Only the homepage content canvas is reset. Do NOT touch .ast-container:
   Astra uses it for the header and normal content alignment site-wide. */
body.ayv-modern-storefront #content,
body.ayv-modern-storefront .site-content {
  padding: 0;
}

body.ayv-modern-storefront #primary,
body.ayv-modern-storefront .content-area {
  width: 100%;
  margin: 0;
}

/* One header system on every page ------------------------------------------ */
body.ayv-storefront-ui .site-header,
body.ayv-storefront-ui .ast-primary-header-bar,
body.ayv-storefront-ui .site-primary-header-wrap,
body.ayv-storefront-ui .ast-mobile-header-wrap .ast-primary-header-bar,
body.ayv-storefront-ui .ast-desktop .ast-primary-header-bar {
  background: var(--ayv-header-bg) !important;
  border-bottom-color: rgba(255,255,255,.10) !important;
}

/* Preserve Astra's own centered container width. We only normalize spacing. */
body.ayv-storefront-ui .ast-primary-header-bar .site-primary-header-wrap,
body.ayv-storefront-ui .ast-primary-header-bar .ast-builder-grid-row-container-inner {
  width: 100%;
}

body.ayv-storefront-ui .main-header-menu > .menu-item > .menu-link,
body.ayv-storefront-ui .ast-builder-menu-1 .menu-item > .menu-link,
body.ayv-storefront-ui .ast-builder-menu .menu-item > .menu-link,
body.ayv-storefront-ui .ast-header-html a,
body.ayv-storefront-ui .ast-header-html-1 a {
  color: var(--ayv-header-text) !important;
  background: transparent !important;
  font-weight: 600;
  letter-spacing: -.01em;
}

/* Current/hover state: same on homepage, shop, category and product pages. */
body.ayv-storefront-ui .main-header-menu > .menu-item:hover > .menu-link,
body.ayv-storefront-ui .main-header-menu > .current-menu-item > .menu-link,
body.ayv-storefront-ui .main-header-menu > .current-menu-ancestor > .menu-link,
body.ayv-storefront-ui .ast-builder-menu .menu-item:hover > .menu-link,
body.ayv-storefront-ui .ast-builder-menu .current-menu-item > .menu-link,
body.ayv-storefront-ui .ast-builder-menu .current-menu-ancestor > .menu-link {
  color: #fff !important;
  background: var(--ayv-header-accent) !important;
}

/* Desktop dropdowns: one light surface and one hover treatment everywhere. */
body.ayv-storefront-ui .main-header-menu .sub-menu,
body.ayv-storefront-ui .ast-builder-menu .sub-menu {
  background: var(--ayv-menu-surface) !important;
  border: 1px solid rgba(32,36,49,.10) !important;
  border-radius: 14px;
  box-shadow: 0 18px 50px rgba(17,24,39,.16);
  overflow: hidden;
}

body.ayv-storefront-ui .main-header-menu .sub-menu .menu-link,
body.ayv-storefront-ui .ast-builder-menu .sub-menu .menu-link,
body.ayv-storefront-ui .main-header-menu .sub-menu .current-menu-item > .menu-link,
body.ayv-storefront-ui .ast-builder-menu .sub-menu .current-menu-item > .menu-link {
  color: var(--ayv-ink) !important;
  background: transparent !important;
}

body.ayv-storefront-ui .main-header-menu .sub-menu .menu-item:hover > .menu-link,
body.ayv-storefront-ui .ast-builder-menu .sub-menu .menu-item:hover > .menu-link,
body.ayv-storefront-ui .main-header-menu .sub-menu .current-menu-item > .menu-link,
body.ayv-storefront-ui .ast-builder-menu .sub-menu .current-menu-item > .menu-link {
  color: var(--ayv-header-accent-dark) !important;
  background: #f7efe8 !important;
}

/* Search, account/cart and submenu-arrow icons. */
body.ayv-storefront-ui .ast-header-search .ast-icon,
body.ayv-storefront-ui .ast-header-search .ast-search-icon,
body.ayv-storefront-ui .ast-search-menu-icon,
body.ayv-storefront-ui .ast-header-account-wrap .ast-header-account-type-icon,
body.ayv-storefront-ui .ast-header-account-wrap svg,
body.ayv-storefront-ui .ast-site-header-cart .ast-cart-menu-wrap,
body.ayv-storefront-ui .ast-site-header-cart .ast-addon-cart-wrap,
body.ayv-storefront-ui .ast-site-header-cart .ast-woo-header-cart-info-wrap,
body.ayv-storefront-ui .main-header-menu .ast-icon.icon-arrow svg,
body.ayv-storefront-ui .main-header-menu .ast-menu-toggle {
  color: var(--ayv-header-text) !important;
  fill: var(--ayv-header-text) !important;
}

body.ayv-storefront-ui .ast-site-header-cart .ast-addon-cart-wrap {
  border-color: rgba(247,243,236,.45) !important;
}

body.ayv-storefront-ui .ast-site-header-cart:hover .ast-addon-cart-wrap,
body.ayv-storefront-ui .ast-header-search:hover .ast-icon {
  color: #e49a7d !important;
  fill: #e49a7d !important;
  border-color: #e49a7d !important;
}

/* Mobile navigation --------------------------------------------------------
   Keep Astra's toggle logic, but replace its inherited green surfaces and
   oversized submenu spacing with a compact first-party visual system. */
body.ayv-storefront-ui .ast-button-wrap .menu-toggle,
body.ayv-storefront-ui .ast-mobile-menu-trigger-minimal {
  color: var(--ayv-header-text) !important;
}

body.ayv-storefront-ui .ast-mobile-header-content,
body.ayv-storefront-ui .ast-mobile-popup-drawer .ast-mobile-popup-inner,
body.ayv-storefront-ui .ast-mobile-popup-content {
  background: var(--ayv-menu-surface) !important;
}

body.ayv-storefront-ui .ast-mobile-header-content .main-header-menu,
body.ayv-storefront-ui .ast-mobile-popup-content .main-header-menu {
  background: var(--ayv-menu-surface) !important;
  padding: 8px 0 16px !important;
}

body.ayv-storefront-ui .ast-mobile-header-content .main-header-menu > .menu-item,
body.ayv-storefront-ui .ast-mobile-popup-content .main-header-menu > .menu-item {
  background: transparent !important;
  border-bottom: 1px solid rgba(32,36,49,.09) !important;
}

body.ayv-storefront-ui .ast-mobile-header-content .main-header-menu .menu-link,
body.ayv-storefront-ui .ast-mobile-popup-content .main-header-menu .menu-link,
body.ayv-storefront-ui .ast-mobile-popup-content .menu-item > .menu-link {
  min-height: 52px;
  display: flex !important;
  align-items: center;
  color: var(--ayv-ink) !important;
  background: transparent !important;
  padding: 12px 20px !important;
  font-weight: 650;
  line-height: 1.3;
}

body.ayv-storefront-ui .ast-mobile-header-content .main-header-menu > .current-menu-item > .menu-link,
body.ayv-storefront-ui .ast-mobile-header-content .main-header-menu > .current-menu-ancestor > .menu-link,
body.ayv-storefront-ui .ast-mobile-popup-content .main-header-menu > .current-menu-item > .menu-link,
body.ayv-storefront-ui .ast-mobile-popup-content .main-header-menu > .current-menu-ancestor > .menu-link {
  color: var(--ayv-header-accent-dark) !important;
  background: #f7efe8 !important;
}

/* Mobile submenu remains controlled by Astra; only its presentation changes. */
body.ayv-storefront-ui .ast-mobile-header-content .main-header-menu .sub-menu,
body.ayv-storefront-ui .ast-mobile-popup-content .main-header-menu .sub-menu {
  margin: 0 !important;
  padding: 4px 0 10px !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  background: #f8f4ee !important;
}

body.ayv-storefront-ui .ast-mobile-header-content .main-header-menu .sub-menu .menu-link,
body.ayv-storefront-ui .ast-mobile-popup-content .main-header-menu .sub-menu .menu-link {
  min-height: 44px;
  padding: 10px 24px 10px 34px !important;
  color: var(--ayv-ink) !important;
  background: transparent !important;
  font-size: 14px;
  font-weight: 600;
}

body.ayv-storefront-ui .ast-mobile-header-content .main-header-menu .sub-menu .menu-item:hover > .menu-link,
body.ayv-storefront-ui .ast-mobile-popup-content .main-header-menu .sub-menu .menu-item:hover > .menu-link,
body.ayv-storefront-ui .ast-mobile-header-content .main-header-menu .sub-menu .current-menu-item > .menu-link,
body.ayv-storefront-ui .ast-mobile-popup-content .main-header-menu .sub-menu .current-menu-item > .menu-link {
  color: var(--ayv-header-accent-dark) !important;
  background: #f3e6dd !important;
}

/* Keep mobile arrow/toggle cells compact and remove inherited green blocks. */
body.ayv-storefront-ui .ast-mobile-header-content .ast-menu-toggle,
body.ayv-storefront-ui .ast-mobile-popup-content .ast-menu-toggle,
body.ayv-storefront-ui .ast-mobile-header-content .menu-item-has-children > .ast-menu-toggle,
body.ayv-storefront-ui .ast-mobile-popup-content .menu-item-has-children > .ast-menu-toggle {
  color: var(--ayv-ink) !important;
  background: transparent !important;
  border: 0 !important;
  min-width: 48px;
  min-height: 48px;
}

body.ayv-storefront-ui .ast-mobile-header-content .ast-menu-toggle svg,
body.ayv-storefront-ui .ast-mobile-popup-content .ast-menu-toggle svg {
  fill: currentColor !important;
}

body.ayv-storefront-ui a:focus-visible,
body.ayv-storefront-ui button:focus-visible,
body.ayv-storefront-ui summary:focus-visible {
  outline: 3px solid rgba(201,115,85,.35);
  outline-offset: 4px;
}

.ayv-shell {
  width: var(--ayv-shell);
  margin-inline: auto;
}

.ayv-announcement {
  background: var(--ayv-ink);
  color: #fff;
  font-size: 12px;
  letter-spacing: .03em;
}

.ayv-announcement__inner {
  min-height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  text-align: center;
  overscroll-behavior-inline: contain;
}

.ayv-announcement__item { flex: 0 0 auto; }
.ayv-announcement a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.ayv-announcement__dot { opacity: .5; flex: 0 0 auto; }

.ayv-home {
  overflow: clip;
}

.ayv-home h1,
.ayv-home h2,
.ayv-home h3,
.ayv-home p { margin-top: 0; }

.ayv-home h1,
.ayv-home h2 {
  color: var(--ayv-ink);
  font-family: Georgia, 'Times New Roman', serif;
  font-weight: 500;
  letter-spacing: -.035em;
  line-height: .98;
}

.ayv-home h1 {
  font-size: clamp(48px, 7vw, 86px);
  max-width: 760px;
  margin-bottom: 26px;
}

.ayv-home h2 {
  font-size: clamp(34px, 4.7vw, 58px);
  margin-bottom: 20px;
}

.ayv-kicker {
  margin-bottom: 18px;
  color: var(--ayv-clay-dark);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.ayv-hero {
  position: relative;
  background:
    radial-gradient(circle at 90% 10%, rgba(117,105,127,.14), transparent 34%),
    radial-gradient(circle at 10% 90%, rgba(201,115,85,.11), transparent 28%),
    var(--ayv-ivory);
  padding: clamp(58px, 8vw, 112px) 0 clamp(70px, 8vw, 116px);
}

.ayv-hero__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.03fr) minmax(420px, .97fr);
  gap: clamp(40px, 6vw, 92px);
  align-items: center;
}

.ayv-hero__lead {
  max-width: 660px;
  margin-bottom: 34px;
  color: #565c62;
  font-size: clamp(18px, 2vw, 22px);
  line-height: 1.65;
}

.ayv-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  align-items: center;
}

.ayv-btn {
  display: inline-flex;
  min-height: 50px;
  align-items: center;
  justify-content: center;
  padding: 0 24px;
  border: 1px solid transparent;
  border-radius: 999px;
  font-weight: 700;
  text-decoration: none !important;
  transition: transform .18s ease, background .18s ease, border-color .18s ease;
}

.ayv-btn:hover { transform: translateY(-2px); }
.ayv-btn--primary { background: var(--ayv-ink); color: #fff !important; }
.ayv-btn--primary:hover { background: #11151e; }
.ayv-btn--ghost { border-color: #cfc7bc; color: var(--ayv-ink) !important; background: rgba(255,255,255,.56); }
.ayv-btn--ghost:hover { background: #fff; border-color: #aaa196; }
.ayv-btn--light { background: #fff; color: var(--ayv-ink) !important; }

.ayv-proof-list {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 24px;
  padding: 0;
  margin: 30px 0 0;
  list-style: none;
  color: var(--ayv-muted);
  font-size: 13px;
}

.ayv-proof-list li::before {
  content: '✓';
  margin-right: 8px;
  color: var(--ayv-clay);
  font-weight: 800;
}

.ayv-hero-mosaic {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: repeat(2, minmax(190px, 1fr));
  gap: 14px;
  min-height: 520px;
}

.ayv-hero-tile {
  position: relative;
  display: flex;
  overflow: hidden;
  align-items: center;
  justify-content: center;
  min-height: 230px;
  border-radius: var(--ayv-radius);
  background: #fff;
  box-shadow: var(--ayv-shadow);
  text-decoration: none !important;
}

.ayv-hero-tile--1 { background: #efe3d8; }
.ayv-hero-tile--2 { background: #e7e5ea; transform: translateY(28px); }
.ayv-hero-tile--3 { background: #e1e7eb; }
.ayv-hero-tile--4 { background: #f1e6df; transform: translateY(28px); }

.ayv-hero-tile img {
  width: 78%;
  max-height: 185px;
  object-fit: contain;
  mix-blend-mode: multiply;
  transition: transform .3s ease;
}

.ayv-hero-tile:hover img { transform: scale(1.035); }

.ayv-hero-tile span {
  position: absolute;
  inset: auto 14px 14px 14px;
  padding: 9px 11px;
  border-radius: 12px;
  background: rgba(255,255,255,.9);
  color: var(--ayv-ink);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.35;
  backdrop-filter: blur(6px);
}

.ayv-consult-cta {
  padding: 26px 0 0;
  background: var(--ayv-ivory);
}

.ayv-consult-cta__inner {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(260px, .55fr);
  align-items: center;
  gap: clamp(28px, 5vw, 72px);
  padding: clamp(28px, 4vw, 44px);
  border: 1px solid rgba(32,36,49,.10);
  border-radius: 28px;
  background: linear-gradient(135deg, #f2e9e1 0%, #f7f2ec 58%, #e8e4eb 100%);
  box-shadow: 0 14px 40px rgba(32,36,49,.06);
}

.ayv-consult-cta__copy h2 {
  margin: 0 0 12px;
  color: var(--ayv-ink);
  font-family: Georgia, 'Times New Roman', serif;
  font-size: clamp(30px, 3.3vw, 48px);
  font-weight: 500;
  letter-spacing: -.035em;
  line-height: 1.02;
}

.ayv-consult-cta__copy p:last-child {
  max-width: 760px;
  margin: 0;
  color: #555c66;
  line-height: 1.65;
}

.ayv-consult-cta__action {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
}

.ayv-btn--consult {
  background: var(--ayv-ink);
  color: #fff !important;
  border-color: var(--ayv-ink);
  white-space: nowrap;
}

.ayv-btn--consult:hover {
  background: var(--ayv-clay-dark);
  border-color: var(--ayv-clay-dark);
  transform: translateY(-1px);
}

.ayv-consult-cta__action > span {
  color: #6f6870;
  font-size: 12px;
}

.ayv-section {
  padding: clamp(72px, 9vw, 122px) 0;
}

.ayv-section--categories { padding-top: clamp(68px, 8vw, 108px); }
.ayv-section--signature { background: #f1ebe3; }

.ayv-section-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 30px;
  margin-bottom: 42px;
}

.ayv-section-head h2 { margin-bottom: 0; }

.ayv-text-link {
  color: var(--ayv-ink) !important;
  font-weight: 750;
  text-decoration: none !important;
}

.ayv-text-link:hover { color: var(--ayv-clay-dark) !important; }
.ayv-text-link--light { color: #fff !important; }
.ayv-text-link--light:hover { color: #f0d9c7 !important; }

.ayv-category-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.ayv-category-card {
  position: relative;
  min-height: 230px;
  padding: 30px;
  border-radius: var(--ayv-radius);
  color: var(--ayv-ink) !important;
  text-decoration: none !important;
  transition: transform .2s ease, box-shadow .2s ease;
}

.ayv-category-card:hover { transform: translateY(-4px); box-shadow: var(--ayv-shadow); }
.ayv-category-card--terracotta { background: #efd9cf; }
.ayv-category-card--sand { background: #ece2d4; }
.ayv-category-card--plum { background: #e8e2ea; }
.ayv-category-card--blue { background: #e0e6eb; }
.ayv-category-card--clay { background: #f1ded4; }
.ayv-category-card--ink { background: var(--ayv-ink); color: #fff !important; }

.ayv-category-card__eyebrow {
  display: block;
  margin-bottom: 48px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
  opacity: .65;
}

.ayv-category-card strong {
  display: block;
  max-width: 85%;
  margin-bottom: 10px;
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 27px;
  font-weight: 500;
  letter-spacing: -.025em;
  line-height: 1.05;
}

.ayv-category-card__copy {
  display: block;
  max-width: 88%;
  font-size: 13px;
  line-height: 1.55;
  opacity: .74;
}

.ayv-category-card__arrow {
  position: absolute;
  right: 24px;
  bottom: 22px;
  font-size: 23px;
}

.ayv-product-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 22px;
}

.ayv-product-card {
  min-width: 0;
}

.ayv-product-card__image {
  position: relative;
  display: flex;
  aspect-ratio: 1 / 1.02;
  overflow: hidden;
  align-items: center;
  justify-content: center;
  margin-bottom: 18px;
  border-radius: var(--ayv-radius-sm);
  background: #f1eee9;
}

.ayv-product-card__image img {
  width: 86%;
  height: 86%;
  object-fit: contain;
  mix-blend-mode: multiply;
  transition: transform .25s ease;
}

.ayv-product-card:hover .ayv-product-card__image img { transform: scale(1.035); }

.ayv-product-card__meta {
  margin-bottom: 7px;
  color: var(--ayv-clay-dark);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.ayv-product-card__title {
  min-height: 48px;
  margin: 0 0 9px;
  font-family: inherit !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  letter-spacing: -.01em !important;
  line-height: 1.45 !important;
}

.ayv-product-card__title a { color: var(--ayv-ink) !important; text-decoration: none !important; }
.ayv-product-card__price { margin-bottom: 10px; color: var(--ayv-ink); font-size: 15px; font-weight: 750; }
.ayv-product-card__price del { color: #999; font-weight: 500; }

.ayv-editorial-band {
  padding: clamp(78px, 9vw, 128px) 0;
  background: var(--ayv-ink);
  color: #fff;
}

.ayv-editorial-band h2 { color: #fff; }
.ayv-editorial-band .ayv-kicker { color: #df9b81; }
.ayv-editorial-band__grid { display: grid; grid-template-columns: .92fr 1.08fr; gap: clamp(42px, 7vw, 96px); align-items: center; }
.ayv-editorial-band__copy > p:not(.ayv-kicker) { max-width: 620px; color: #ccd0d7; font-size: 17px; line-height: 1.75; }

.ayv-stat-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.ayv-stat-card { min-height: 205px; padding: 26px; border: 1px solid rgba(255,255,255,.14); border-radius: 18px; background: rgba(255,255,255,.045); }
.ayv-stat-card span { display: block; margin-bottom: 44px; color: #df9b81; font-size: 12px; font-weight: 800; }
.ayv-stat-card strong { display: block; margin-bottom: 9px; font-size: 17px; }
.ayv-stat-card p { margin: 0; color: #b9bec7; font-size: 13px; line-height: 1.6; }

.ayv-signature-intro { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: end; margin-bottom: 45px; }
.ayv-signature-intro h2 { margin-bottom: 0; }
.ayv-signature-intro p { color: #656663; line-height: 1.7; }

.ayv-guide-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 18px; }
.ayv-guide-card { min-height: 290px; padding: 30px; border: 1px solid var(--ayv-border); border-radius: var(--ayv-radius); background: #fff; color: var(--ayv-ink) !important; text-decoration: none !important; transition: transform .2s ease, box-shadow .2s ease; }
.ayv-guide-card:hover { transform: translateY(-4px); box-shadow: var(--ayv-shadow); }
.ayv-guide-card > span { display: block; margin-bottom: 68px; color: var(--ayv-clay-dark); font-size: 12px; font-weight: 800; }
.ayv-guide-card h3 { margin-bottom: 12px; font-family: Georgia, 'Times New Roman', serif; font-size: 28px; font-weight: 500; letter-spacing: -.025em; }
.ayv-guide-card p { min-height: 64px; color: var(--ayv-muted); font-size: 14px; line-height: 1.6; }
.ayv-guide-card strong { font-size: 13px; }

.ayv-section--faq { background: #fff; }
.ayv-faq-layout { display: grid; grid-template-columns: .7fr 1.3fr; gap: clamp(42px, 7vw, 100px); }
.ayv-faq-heading p:not(.ayv-kicker) { color: var(--ayv-muted); line-height: 1.7; }
.ayv-faq-list details { border-top: 1px solid var(--ayv-border); }
.ayv-faq-list details:last-child { border-bottom: 1px solid var(--ayv-border); }
.ayv-faq-list summary { position: relative; cursor: pointer; padding: 24px 40px 24px 0; list-style: none; font-size: 17px; font-weight: 750; }
.ayv-faq-list summary::-webkit-details-marker { display: none; }
.ayv-faq-list summary::after { content: '+'; position: absolute; right: 4px; top: 21px; color: var(--ayv-clay-dark); font-size: 24px; font-weight: 400; }
.ayv-faq-list details[open] summary::after { content: '–'; }
.ayv-faq-list details p { max-width: 760px; padding: 0 40px 24px 0; margin: 0; color: var(--ayv-muted); line-height: 1.7; }

.ayv-final-cta { padding: 70px 0; background: #ead9cd; }
.ayv-final-cta__inner { display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.ayv-final-cta h2 { margin-bottom: 0; font-size: clamp(32px,4vw,52px); }

@media (max-width: 980px) {
  :root { --ayv-shell: min(100% - 32px, 900px); }
  .ayv-hero__grid,
  .ayv-consult-cta__inner,
  .ayv-editorial-band__grid,
  .ayv-signature-intro,
  .ayv-faq-layout { grid-template-columns: 1fr; }
  .ayv-hero__visual { max-width: 720px; }
  .ayv-category-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .ayv-product-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .ayv-guide-grid { grid-template-columns: 1fr; }
  .ayv-guide-card { min-height: 230px; }
  .ayv-guide-card > span { margin-bottom: 42px; }
}

@media (max-width: 640px) {
  :root { --ayv-shell: calc(100% - 24px); }
  .ayv-announcement { font-size: 11px; }
  .ayv-announcement__inner {
    min-height: 38px;
    justify-content: flex-start;
    overflow-x: auto;
    overflow-y: hidden;
    white-space: nowrap;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x proximity;
    padding-block: 8px;
  }
  .ayv-announcement__inner::-webkit-scrollbar { display: none; }
  .ayv-announcement__item { scroll-snap-align: start; }
  .ayv-consult-cta { padding-top: 18px; }
  .ayv-consult-cta__inner { padding: 24px 20px; border-radius: 20px; gap: 22px; }
  .ayv-consult-cta__copy h2 { font-size: clamp(30px, 9vw, 40px); }
  .ayv-consult-cta__action { width: 100%; }
  .ayv-btn--consult { width: 100%; white-space: normal; text-align: center; }
  .ayv-home h1 { font-size: clamp(45px, 15vw, 65px); }
  .ayv-home h2 { font-size: clamp(34px, 10vw, 46px); }
  .ayv-hero { padding-top: 52px; }
  .ayv-hero__grid { gap: 44px; }
  .ayv-hero-mosaic { min-height: 390px; grid-template-rows: repeat(2, minmax(150px,1fr)); gap: 9px; }
  .ayv-hero-tile { min-height: 150px; border-radius: 16px; }
  .ayv-hero-tile--2,
  .ayv-hero-tile--4 { transform: translateY(14px); }
  .ayv-hero-tile span { display: none; }
  .ayv-hero-tile img { width: 88%; max-height: 140px; }
  .ayv-actions { align-items: stretch; }
  .ayv-btn { width: 100%; }
  .ayv-proof-list { display: grid; gap: 8px; }
  .ayv-section-head { align-items: flex-start; flex-direction: column; }
  .ayv-category-grid { grid-template-columns: 1fr; }
  .ayv-category-card { min-height: 205px; }
  .ayv-product-grid { gap: 14px; }
  .ayv-product-card__title { font-size: 14px !important; min-height: 61px; }
  .ayv-stat-grid { grid-template-columns: 1fr; }
  .ayv-stat-card { min-height: auto; }
  .ayv-stat-card span { margin-bottom: 28px; }
  .ayv-final-cta__inner { align-items: flex-start; flex-direction: column; }
  .ayv-final-cta .ayv-btn { width: auto; }
}

@media (max-width: 420px) {
  .ayv-announcement__inner {
    display: grid;
    grid-auto-flow: column;
    grid-template-rows: repeat(2, auto);
    grid-auto-columns: max-content;
    align-content: center;
    align-items: center;
    justify-content: start;
    column-gap: 18px;
    row-gap: 3px;
    min-height: 50px;
    white-space: normal;
    text-align: left;
  }
  .ayv-announcement__dot { display: none; }
  .ayv-announcement__item { max-width: 230px; line-height: 1.35; }
}

@media (prefers-reduced-motion: reduce) {
  .ayv-home *, .ayv-home *::before, .ayv-home *::after { scroll-behavior: auto !important; transition: none !important; }
}

/* v1.0.3 — reliable mobile submenu chevrons -------------------------------
   Astra's icon SVG can inherit a light stroke from header settings even when
   the button colour is corrected. Draw the mobile chevron ourselves so its
   contrast is independent of the theme icon implementation. */
@media (max-width: 921px) {
  body.ayv-storefront-ui .ast-mobile-header-content .menu-item-has-children > .ast-menu-toggle,
  body.ayv-storefront-ui .ast-mobile-popup-content .menu-item-has-children > .ast-menu-toggle {
    position: relative !important;
    color: var(--ayv-ink) !important;
    opacity: 1 !important;
  }

  body.ayv-storefront-ui .ast-mobile-header-content .menu-item-has-children > .ast-menu-toggle .ast-icon,
  body.ayv-storefront-ui .ast-mobile-popup-content .menu-item-has-children > .ast-menu-toggle .ast-icon {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    color: var(--ayv-ink) !important;
    opacity: 1 !important;
  }

  /* Hide Astra's inconsistent SVG and render one high-contrast chevron. */
  body.ayv-storefront-ui .ast-mobile-header-content .menu-item-has-children > .ast-menu-toggle .ast-icon > svg,
  body.ayv-storefront-ui .ast-mobile-popup-content .menu-item-has-children > .ast-menu-toggle .ast-icon > svg {
    display: none !important;
  }

  body.ayv-storefront-ui .ast-mobile-header-content .menu-item-has-children > .ast-menu-toggle .ast-icon::after,
  body.ayv-storefront-ui .ast-mobile-popup-content .menu-item-has-children > .ast-menu-toggle .ast-icon::after {
    content: "";
    display: block;
    width: 8px;
    height: 8px;
    border-right: 2px solid var(--ayv-ink);
    border-bottom: 2px solid var(--ayv-ink);
    transform: rotate(45deg) translate(-1px, -1px);
    transform-origin: center;
    transition: transform .18s ease;
  }

  body.ayv-storefront-ui .ast-mobile-header-content .menu-item-has-children > .ast-menu-toggle[aria-expanded="true"] .ast-icon::after,
  body.ayv-storefront-ui .ast-mobile-popup-content .menu-item-has-children > .ast-menu-toggle[aria-expanded="true"] .ast-icon::after,
  body.ayv-storefront-ui .ast-mobile-header-content .menu-item-has-children > .ast-menu-toggle.toggled .ast-icon::after,
  body.ayv-storefront-ui .ast-mobile-popup-content .menu-item-has-children > .ast-menu-toggle.toggled .ast-icon::after {
    transform: rotate(225deg) translate(-1px, -1px);
  }

  body.ayv-storefront-ui .ast-mobile-header-content .menu-item-has-children > .ast-menu-toggle:hover .ast-icon::after,
  body.ayv-storefront-ui .ast-mobile-header-content .menu-item-has-children > .ast-menu-toggle:focus .ast-icon::after,
  body.ayv-storefront-ui .ast-mobile-popup-content .menu-item-has-children > .ast-menu-toggle:hover .ast-icon::after,
  body.ayv-storefront-ui .ast-mobile-popup-content .menu-item-has-children > .ast-menu-toggle:focus .ast-icon::after {
    border-color: var(--ayv-header-accent-dark);
  }
}


/* v1.0.4 — mobile menu row geometry ---------------------------------------
   Astra outputs the submenu toggle as a sibling of the menu link. Depending
   on Customizer/header settings that button can participate in normal flow,
   producing a second full-width row and very tall parent items. Normalize the
   mobile menu to one compact parent row with a fixed right-side toggle. */
@media (max-width: 921px) {
  body.ayv-storefront-ui .ast-mobile-header-content .main-header-menu > .menu-item,
  body.ayv-storefront-ui .ast-mobile-popup-content .main-header-menu > .menu-item,
  body.ayv-storefront-ui .ast-mobile-header-content .main-header-menu .sub-menu > .menu-item,
  body.ayv-storefront-ui .ast-mobile-popup-content .main-header-menu .sub-menu > .menu-item {
    position: relative !important;
    display: block !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  /* Parent links are always one 52px row. Leave room for the toggle button. */
  body.ayv-storefront-ui .ast-mobile-header-content .main-header-menu > .menu-item > .menu-link,
  body.ayv-storefront-ui .ast-mobile-popup-content .main-header-menu > .menu-item > .menu-link {
    box-sizing: border-box !important;
    width: 100% !important;
    height: 52px !important;
    min-height: 52px !important;
    padding: 0 62px 0 20px !important;
    margin: 0 !important;
    display: flex !important;
    align-items: center !important;
    line-height: 1.25 !important;
  }

  /* Astra can also print an arrow inside the link; keep only our right toggle. */
  body.ayv-storefront-ui .ast-mobile-header-content .main-header-menu > .menu-item > .menu-link .dropdown-menu-toggle,
  body.ayv-storefront-ui .ast-mobile-popup-content .main-header-menu > .menu-item > .menu-link .dropdown-menu-toggle {
    display: none !important;
  }

  /* Remove the toggle from document flow and pin it to the parent row. */
  body.ayv-storefront-ui .ast-mobile-header-content .main-header-menu > .menu-item-has-children > .ast-menu-toggle,
  body.ayv-storefront-ui .ast-mobile-popup-content .main-header-menu > .menu-item-has-children > .ast-menu-toggle {
    position: absolute !important;
    top: 0 !important;
    right: 0 !important;
    bottom: auto !important;
    left: auto !important;
    box-sizing: border-box !important;
    width: 52px !important;
    height: 52px !important;
    min-width: 52px !important;
    min-height: 52px !important;
    padding: 0 !important;
    margin: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    border: 0 !important;
    border-left: 1px solid rgba(32,36,49,.07) !important;
    background: transparent !important;
    z-index: 3 !important;
    transform: none !important;
  }

  /* Submenus follow the compact parent row directly; no artificial gap. */
  body.ayv-storefront-ui .ast-mobile-header-content .main-header-menu > .menu-item > .sub-menu,
  body.ayv-storefront-ui .ast-mobile-popup-content .main-header-menu > .menu-item > .sub-menu {
    position: static !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    clear: both !important;
  }

  /* Child rows are slightly shorter and visually nested. */
  body.ayv-storefront-ui .ast-mobile-header-content .main-header-menu .sub-menu > .menu-item > .menu-link,
  body.ayv-storefront-ui .ast-mobile-popup-content .main-header-menu .sub-menu > .menu-item > .menu-link {
    box-sizing: border-box !important;
    width: 100% !important;
    height: 46px !important;
    min-height: 46px !important;
    margin: 0 !important;
    padding: 0 54px 0 34px !important;
    display: flex !important;
    align-items: center !important;
    line-height: 1.25 !important;
  }

  /* Nested submenu toggles, if any, use the child-row height. */
  body.ayv-storefront-ui .ast-mobile-header-content .main-header-menu .sub-menu > .menu-item-has-children > .ast-menu-toggle,
  body.ayv-storefront-ui .ast-mobile-popup-content .main-header-menu .sub-menu > .menu-item-has-children > .ast-menu-toggle {
    position: absolute !important;
    top: 0 !important;
    right: 0 !important;
    width: 46px !important;
    height: 46px !important;
    min-width: 46px !important;
    min-height: 46px !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }
}
