/* Aweh Black November: global chrome (announcement bar, mega menu, gift box). Markup: partials/nav.php. */
:root {
  --bn-ink: #110b09;
  --bn-ink2: #1c1311;
  --bn-maroon: #6b1e28;
  --bn-maroon2: #8a2a35;
  --bn-cream: #f4ece2;
  --bn-mute: #c8bcaf;
  --bn-gold: #c9a55f;
}

/* ---------- Announcement bar ---------- */
.bnbar { position: relative; display: flex; align-items: center; height: 34px; background: var(--bn-ink); color: var(--bn-cream); overflow: hidden; font-family: var(--font-sans, "Manrope", system-ui, sans-serif); font-size: 12px; line-height: 1; letter-spacing: .02em; }
.bnbar__viewport { flex: 1 1 auto; min-width: 0; height: 100%; overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 28px, #000 calc(100% - 28px), transparent); mask-image: linear-gradient(90deg, transparent, #000 28px, #000 calc(100% - 28px), transparent); }
.bnbar__track { display: flex; width: max-content; height: 100%; animation: bnMarquee 70s linear infinite; will-change: transform; }
.bnbar__set { display: flex; flex: none; align-items: center; height: 100%; margin: 0; padding: 0; list-style: none; }
.bnbar .bnbar__item { display: flex; align-items: center; gap: 22px; margin: 0; padding: 0 0 0 22px; white-space: nowrap; font-weight: 500; color: var(--bn-cream); }
.bnbar .bnbar__item::before { content: ""; flex: none; width: 4px; height: 4px; background: var(--bn-gold); transform: rotate(45deg); }
.bnbar .bnbar__item--lead { font-weight: 700; }
.bnbar.is-live .bnbar__item--lead { color: var(--bn-gold); }
.bnbar:hover .bnbar__track, .bnbar:focus-within .bnbar__track, .bnbar.is-paused .bnbar__track { animation-play-state: paused; }
.bnbar__pause { flex: none; display: grid; place-items: center; width: 34px; height: 34px; margin: 0; padding: 0; border: 0; border-left: 1px solid rgba(244, 236, 226, .1); border-radius: 0; background: var(--bn-ink); color: var(--bn-mute); cursor: pointer; }
.bnbar__pause:hover { color: var(--bn-cream); }
.bnbar__pause:focus-visible { outline: 2px solid var(--bn-gold); outline-offset: -3px; }
.bnbar__pause svg { display: block; width: 11px; height: 11px; }
.bnbar__iy, .bnbar.is-paused .bnbar__ip { display: none; }
.bnbar.is-paused .bnbar__iy { display: inline; }
@keyframes bnMarquee { to { transform: translate3d(-50%, 0, 0); } }

/* ---------- Mega menu ---------- */
.nav__sub { display: grid; gap: 0; min-width: 260px; padding: 12px; }
.nav__sub > li { margin: 0; }
.nav__sub .nav__subhead { margin: 0 0 4px; padding: 6px 14px 10px; border-bottom: 1px solid var(--border, rgba(0, 0, 0, .08)); font-family: var(--font-sans, "Manrope", system-ui, sans-serif); font-size: .6875rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--muted-foreground, #6b5a50); }
.nav__sub a:focus-visible { outline: 2px solid var(--primary, #6b1e28); outline-offset: -2px; color: var(--primary, #6b1e28); }
.nav__sub a[aria-current="page"] { color: var(--primary, #6b1e28); font-weight: 600; }
.nav__sub .nav__suball { margin-top: 4px; padding-top: 4px; border-top: 1px solid var(--border, rgba(0, 0, 0, .08)); }
.nav__sub .nav__suball a { font-weight: 700; color: var(--foreground, #160a07); }
.nav__sub.has-promo { grid-template-columns: minmax(200px, 1fr) 232px; column-gap: 12px; min-width: 500px; }
.nav__sub.has-promo > li { grid-column: 1; }
.nav__sub.has-promo > .nav__promo { grid-column: 2; grid-row: 1 / span 9; }
.nav__sub .nav__promo a { display: flex; flex-direction: column; gap: 6px; height: 100%; padding: 18px; border-radius: var(--radius, 4px); background: radial-gradient(120% 90% at 0% 0%, #2c1915 0%, var(--bn-ink) 60%); color: var(--bn-cream); white-space: normal; text-decoration: none; transform: none; }
.nav__sub .nav__promo a:hover, .nav__sub .nav__promo a:focus-visible { color: var(--bn-cream); background: radial-gradient(120% 90% at 0% 0%, #3a1d19 0%, var(--bn-ink) 60%); transform: none; outline-color: var(--bn-gold); }
.nav__sub .nav__promo a::after { display: none; }
.nav__promo small { font-size: .6875rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--bn-gold); }
.nav__promo b { font-family: var(--font-display, "Anton", "Arial Narrow", sans-serif); font-weight: 400; font-size: 1.6rem; line-height: 1; color: var(--bn-cream); }
.nav__promo span { font-size: .8125rem; line-height: 1.45; color: var(--bn-mute); }
.nav__promo em { margin-top: auto; padding-top: 8px; font-style: normal; font-size: .8125rem; font-weight: 700; color: var(--bn-gold); }
.nav__item.has-sub.is-shut .nav__sub { opacity: 0; visibility: hidden; }
.nav__item.has-sub.is-shut .nav__chev { transform: none; }
.nav__links > li > a:focus-visible { outline: 2px solid var(--primary, #6b1e28); outline-offset: 6px; border-radius: 2px; }

/* Phone drawer */
.gn__promo { display: grid; gap: 5px; margin: 6px 0 16px; padding: 16px 18px; border-radius: 12px; background: radial-gradient(120% 90% at 0% 0%, #2c1915 0%, var(--bn-ink) 60%); color: var(--bn-cream); text-decoration: none; }
.gn__promo small { font-size: .6875rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--bn-gold); }
.gn__promo b { font-family: var(--font-display, "Anton", "Arial Narrow", sans-serif); font-weight: 400; font-size: 1.5rem; line-height: 1; color: var(--bn-cream); }
.gn__promo span { font-size: .875rem; line-height: 1.45; color: var(--bn-mute); }
.gn__promo:focus-visible { outline: 2px solid var(--bn-gold); outline-offset: 2px; }
.gn__head:focus-visible, .gn__sub a:focus-visible, .gn__chips a:focus-visible, .gn__more a:focus-visible { outline: 2px solid var(--primary, #6b1e28); outline-offset: 2px; border-radius: 4px; }
.gn__sub a:active, .gn__more a:active { color: var(--primary, #6b1e28); }

/* ---------- Gift box ---------- */
.bngift { position: fixed; inset: 0; z-index: 2147483001; display: grid; place-items: center; padding: 16px; font-family: var(--font-sans, "Manrope", system-ui, sans-serif); font-size: 16px; color: var(--bn-cream); -webkit-font-smoothing: antialiased; transition: opacity .25s ease; }
.bngift[hidden], .bngift [hidden] { display: none !important; }
.bngift *, .bngift *::before, .bngift *::after { box-sizing: border-box; }
.bngift.is-out { opacity: 0; }
.bngift__scrim { position: absolute; inset: 0; background: rgba(12, 7, 6, .64); opacity: 0; transition: opacity .45s ease; }
.bngift.is-in .bngift__scrim { opacity: 1; }
.bngift__stage { position: relative; display: grid; place-items: center; width: 100%; max-width: 440px; outline: none; }
.bngift__glow, .bngift__box, .bngift__card { grid-area: 1 / 1; }
.bngift__glow { width: 340px; height: 340px; border-radius: 50%; background: radial-gradient(closest-side, rgba(201, 165, 95, .32), rgba(201, 165, 95, 0)); opacity: 0; pointer-events: none; }
.bngift__box { position: relative; width: clamp(150px, 42vw, 200px); height: clamp(150px, 42vw, 200px); pointer-events: none; transform: translate3d(0, 110vh, 0); }
.bngift__wob { position: absolute; inset: 0; transform-origin: 50% 92%; }
.bngift__base { position: absolute; left: 5%; right: 5%; bottom: 0; height: 66%; border-radius: 6px; background: linear-gradient(180deg, #241915, #0c0706); box-shadow: 0 34px 60px -22px rgba(0, 0, 0, .75), inset 0 1px 0 rgba(255, 255, 255, .06); }
.bngift__lid { position: absolute; z-index: 2; left: 0; right: 0; top: 18%; height: 20%; border-radius: 6px; background: linear-gradient(180deg, #2c201b, #150e0c); box-shadow: 0 10px 18px -8px rgba(0, 0, 0, .85), inset 0 1px 0 rgba(255, 255, 255, .08); }
.bngift__rv { position: absolute; top: 0; bottom: 0; left: 50%; width: 16%; margin-left: -8%; background: linear-gradient(90deg, #4e141d, #8a2a35 45%, #6b1e28); }
.bngift__rh { position: absolute; left: 0; right: 0; top: 36%; height: 15%; background: linear-gradient(180deg, #4e141d, #8a2a35 45%, #6b1e28); }
.bngift__lid::after { content: ""; position: absolute; z-index: 2; left: 50%; top: -8px; width: 24px; height: 18px; margin-left: -12px; border-radius: 6px; background: linear-gradient(180deg, #e3c684, #a8833f); box-shadow: 0 2px 4px rgba(0, 0, 0, .4); }
.bngift__bow { position: absolute; left: 50%; bottom: 100%; width: 60%; height: 64%; margin-left: -30%; margin-bottom: -4px; }
.bngift__bow::before, .bngift__bow::after { content: ""; position: absolute; bottom: 0; width: 50%; height: 100%; border: 7px solid var(--bn-gold); border-radius: 50% 50% 46% 46% / 62% 62% 38% 38%; }
.bngift__bow::before { left: 2%; transform: rotate(-26deg); transform-origin: 100% 100%; }
.bngift__bow::after { right: 2%; transform: rotate(26deg); transform-origin: 0 100%; }

.bngift .bngift__card { position: relative; width: 100%; max-height: calc(100vh - 32px); max-height: calc(100dvh - 32px); overflow-y: auto; overscroll-behavior: contain; padding: 32px 22px 22px; border: 1px solid rgba(201, 165, 95, .28); border-radius: 14px; background: radial-gradient(120% 70% at 50% 0%, #2b1714 0%, #140d0b 58%); box-shadow: 0 40px 100px -30px rgba(0, 0, 0, .85); text-align: left; visibility: hidden; opacity: 0; }
.bngift .bngift__card::before { content: ""; position: absolute; top: 0; left: 22px; right: 22px; height: 1px; background: linear-gradient(90deg, transparent, var(--bn-gold), transparent); }
.bngift .bngift__x { position: absolute; top: 8px; right: 8px; display: grid; place-items: center; width: 40px; height: 40px; margin: 0; padding: 0; border: 0; border-radius: 50%; background: transparent; color: var(--bn-mute); cursor: pointer; }
.bngift .bngift__x:hover { color: var(--bn-cream); background: rgba(244, 236, 226, .06); }
.bngift .bngift__x svg { width: 18px; height: 18px; }
.bngift .bngift__eyebrow { margin: 0 0 10px; font-size: .6875rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--bn-gold); }
.bngift .bngift__title { margin: 0 0 12px; padding: 0 28px 0 0; font-family: var(--font-display, "Anton", "Arial Narrow", sans-serif); font-weight: 400; font-size: clamp(1.9rem, 8vw, 2.5rem); line-height: .98; letter-spacing: 0; text-transform: none; color: var(--bn-cream); text-wrap: balance; outline: none; }
.bngift .bngift__lede { margin: 0 0 16px; font-size: .9375rem; line-height: 1.55; color: var(--bn-mute); text-wrap: pretty; }
.bngift .bngift__perks { display: grid; gap: 10px; margin: 0 0 20px; padding: 14px 0 0; border-top: 1px solid rgba(244, 236, 226, .1); list-style: none; }
.bngift .bngift__perks li { position: relative; margin: 0; padding: 0 0 0 26px; font-size: .9375rem; line-height: 1.4; color: var(--bn-cream); }
.bngift .bngift__perks li::before { content: ""; position: absolute; left: 2px; top: .32em; width: 12px; height: 7px; border-left: 2px solid var(--bn-gold); border-bottom: 2px solid var(--bn-gold); transform: rotate(-45deg); }
.bngift .bngift__ctas { display: grid; gap: 10px; }
.bngift .bngift__btn, .bngift .bngift__ghost { display: flex; align-items: center; justify-content: center; height: 50px; margin: 0; padding: 0 18px; border-radius: var(--radius, 4px); font: inherit; font-size: 1rem; font-weight: 700; letter-spacing: 0; text-transform: none; text-decoration: none; cursor: pointer; transition: filter .15s ease, transform .15s ease, background-color .15s ease; }
.bngift .bngift__btn { border: 0; background: var(--bn-maroon2); color: #fff8f0; }
.bngift .bngift__btn:hover { filter: brightness(1.12); color: #fff8f0; }
.bngift .bngift__ghost { border: 1px solid rgba(244, 236, 226, .3); background: transparent; color: var(--bn-cream); font-weight: 600; }
.bngift .bngift__ghost:hover { background: rgba(244, 236, 226, .06); }
.bngift .bngift__btn:active, .bngift .bngift__ghost:active { transform: scale(.98); }
.bngift a:focus-visible, .bngift button:focus-visible, .bngift summary:focus-visible, .bngift input:focus-visible { outline: 2px solid var(--bn-gold); outline-offset: 2px; }
.bngift .bngift__more { margin: 18px 0 0; padding: 10px 0 0; border-top: 1px solid rgba(244, 236, 226, .1); }
.bngift .bngift__more summary { display: flex; align-items: center; justify-content: space-between; min-height: 40px; font-size: .875rem; font-weight: 600; color: var(--bn-cream); list-style: none; cursor: pointer; }
.bngift .bngift__more summary::-webkit-details-marker { display: none; }
.bngift .bngift__more summary::after { content: "+"; font-size: 1.15rem; font-weight: 400; color: var(--bn-gold); }
.bngift .bngift__more[open] summary::after { content: "\2013"; }
.bngift .bngift__form { margin: 0; padding: 8px 0 0; }
.bngift .bngift__input { display: block; width: 100%; height: 46px; margin: 0; padding: 0 14px; border: 1px solid rgba(244, 236, 226, .25); border-radius: var(--radius, 4px); background: rgba(255, 255, 255, .04); color: var(--bn-cream); font: inherit; font-size: 1rem; box-shadow: none; -webkit-appearance: none; appearance: none; }
.bngift .bngift__input::placeholder { color: rgba(200, 188, 175, .75); opacity: 1; }
.bngift .bngift__input:focus { border-color: var(--bn-gold); outline: 2px solid var(--bn-gold); outline-offset: 1px; }
.bngift .bngift__input[aria-invalid="true"] { border-color: #ff9f90; }
.bngift .bngift__check { display: flex; gap: 10px; align-items: flex-start; margin: 12px 0 0; font-size: .8125rem; line-height: 1.45; color: var(--bn-mute); cursor: pointer; }
.bngift .bngift__check input { flex: none; width: 18px; height: 18px; margin: 1px 0 0; accent-color: var(--bn-gold); }
.bngift .bngift__err { margin: 10px 0 0; font-size: .8125rem; line-height: 1.45; color: #ffb4a8; }
.bngift .bngift__send { display: block; width: 100%; height: 46px; margin: 12px 0 0; border: 1px solid var(--bn-gold); border-radius: var(--radius, 4px); background: transparent; color: var(--bn-gold); font: inherit; font-size: .9375rem; font-weight: 700; cursor: pointer; }
.bngift .bngift__send:hover { background: rgba(201, 165, 95, .1); }
.bngift .bngift__send[aria-disabled="true"] { opacity: .7; cursor: progress; }
.bngift .bngift__fine { margin: 10px 0 0; font-size: .75rem; line-height: 1.5; color: rgba(200, 188, 175, .85); }
.bngift .bngift__thanks { margin: 8px 0 0; font-size: .9375rem; line-height: 1.5; color: var(--bn-cream); outline: none; }
.bngift .bngift__hp { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }
.bngift .bngift__sr { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
@media (min-width: 420px) {
  .bngift .bngift__ctas { grid-template-columns: 1.25fr 1fr; }
}
@media (min-width: 640px) {
  .bngift__stage { max-width: 460px; }
  .bngift .bngift__card { padding: 40px 34px 28px; }
}

/* The unwrap: rise, wobble, lid off, ribbons drop, card up. Transforms and opacity only. */
.bngift.is-play .bngift__box { animation: bnRise .8s cubic-bezier(.2, 1.2, .35, 1) both; }
.bngift.is-play .bngift__wob { animation: bnWobble .8s .85s ease-in-out both; }
.bngift.is-play .bngift__lid { animation: bnLid .75s 1.7s cubic-bezier(.3, .7, .2, 1) both; }
.bngift.is-play .bngift__base .bngift__rv { animation: bnFallV .8s 1.8s cubic-bezier(.5, 0, .8, .4) both; }
.bngift.is-play .bngift__rh { animation: bnFallH .8s 1.75s cubic-bezier(.5, 0, .8, .4) both; }
.bngift.is-play .bngift__base { animation: bnSink .55s 2.05s ease-in both; }
.bngift.is-play .bngift__glow { animation: bnGlow 1.2s 1.75s ease-out both; }
.bngift.is-play .bngift__card { animation: bnCard .6s 2.05s cubic-bezier(.16, 1, .3, 1) both; }
@keyframes bnRise { from { transform: translate3d(0, 75vh, 0) scale(.85); } to { transform: none; } }
@keyframes bnWobble { 0%, 100% { transform: none; } 15% { transform: rotate(-7deg) scale(1.02); } 30% { transform: rotate(6deg); } 45% { transform: rotate(-5deg) scale(1.03); } 60% { transform: rotate(4deg); } 78% { transform: rotate(-2deg); } }
@keyframes bnLid { 0% { transform: none; opacity: 1; } 30% { transform: translate3d(0, -35%, 0) rotate(-4deg); opacity: 1; } 100% { transform: translate3d(-30%, -260%, 0) rotate(-24deg); opacity: 0; } }
@keyframes bnFallV { to { transform: translate3d(10%, 140%, 0) rotate(14deg); opacity: 0; } }
@keyframes bnFallH { to { transform: translate3d(-6%, 260%, 0) rotate(-10deg); opacity: 0; } }
@keyframes bnSink { to { transform: translate3d(0, 18%, 0) scale(.82); opacity: 0; } }
@keyframes bnGlow { 0% { opacity: 0; transform: scale(.5); } 40% { opacity: 1; } 100% { opacity: 0; transform: scale(1.4); } }
@keyframes bnCard { from { visibility: hidden; opacity: 0; transform: translate3d(0, 28px, 0) scale(.94); } to { visibility: visible; opacity: 1; transform: none; } }
@keyframes bnFade { from { visibility: hidden; opacity: 0; } to { visibility: visible; opacity: 1; } }

@media (prefers-reduced-motion: reduce) {
  .bnbar__track { animation: none; width: auto; }
  .bnbar__viewport { -webkit-mask-image: none; mask-image: none; }
  .bnbar__set { width: 100%; justify-content: center; }
  .bnbar__set[aria-hidden="true"], .bnbar .bnbar__item[aria-hidden="true"], .bnbar .bnbar__item:not(:first-child) { display: none; }
  .bnbar .bnbar__item { padding-right: 22px; }
  .bnbar__pause { display: none; }
  .bngift__box, .bngift__glow { display: none; }
  .bngift.is-play .bngift__card { animation: bnFade .3s ease both; }
  .bngift__scrim, .bngift { transition-duration: .01s; }
}
@media print { .bnbar, .bngift { display: none !important; } }

/* Headings that receive focus programmatically (dialog open) need no ring. */
.bngift [tabindex="-1"]:focus, .bngift h2:focus, .bngift h3:focus { outline: none; box-shadow: none; }

/* Nothing may widen the page on a phone: an off-canvas coupon drawer and 100vw bands were stretching the layout to 417px on a 390px screen, clipping the menu button. clip (not hidden) keeps sticky headers working. */
html, body { overflow-x: clip; max-width: 100%; }

/* aweh-3.css pins the WhatsApp launcher bottom-left on phones, over headings and copy. Bottom-right, compact, clear of the safe area. */
@media (max-width: 767px) {
  .walaunch { left: auto !important; right: max(12px, env(safe-area-inset-right, 0px)) !important; bottom: calc(14px + env(safe-area-inset-bottom, 0px)) !important; align-items: flex-end; }
  .walaunch > a, .walaunch > button { transform: scale(.86); transform-origin: bottom right; }
}

/* aweh-3.css loads after this file; higher specificity wins the !important tie. */
@media (max-width: 767px) {
  html body .walaunch { left: auto !important; right: max(12px, env(safe-area-inset-right, 0px)) !important; align-items: flex-end !important; }
  html body:not(.has-stickybuy) .walaunch { bottom: calc(14px + env(safe-area-inset-bottom, 0px)) !important; }
  html body.has-stickybuy .walaunch { bottom: 96px !important; }
}
