/* ============================================================
   Absolute Aromas: Project Abbie shared design system
   British English, no em dashes.
   ============================================================ */

:root {
  --aa-black:#000; --aa-white:#fff; --aa-soft:#fafafa;
  --aa-lavender:#A7ADD8; --aa-teal:#A5C4CB; --aa-sage-dark:#7F9778;
  --aa-sage-light:#A9BC9D; --aa-grey:#D9D9D9; --aa-muted:#5A5A5A;
  --aa-amber:#C9A96E;
  --aa-title:'Cormorant Garamond','EB Garamond',Georgia,serif;
  --aa-body:'Open Sans Condensed','Roboto Condensed','Arial Narrow',system-ui,sans-serif;
  --aa-ease:cubic-bezier(0.4,0,0.2,1);
  --aa-max:1400px;
}
* { box-sizing:border-box; margin:0; padding:0; }
body { font-family:var(--aa-body); font-weight:300; color:var(--aa-black); background:var(--aa-white); -webkit-font-smoothing:antialiased; line-height:1.55; }
h1,h2,h3,h4 { font-family:var(--aa-title); font-weight:400; letter-spacing:0.01em; }
a { color:inherit; text-decoration:none; }
img { display:block; max-width:100%; }
.wrap { max-width:var(--aa-max); margin:0 auto; padding:0 32px; }
.section { padding:64px 0; }
.eyebrow { font-family:var(--aa-body); text-transform:uppercase; letter-spacing:0.2em; font-size:12px; font-weight:700; color:var(--aa-muted); }
.crumb { font-size:12px; text-transform:uppercase; letter-spacing:0.1em; color:var(--aa-muted); padding:18px 0 6px; }
.crumb a:hover { opacity:0.6; }

/* ---- Buttons ---- */
.btn { display:inline-block; font-family:var(--aa-body); font-weight:700; text-transform:uppercase; letter-spacing:0.08em; font-size:13px; border-radius:2px; padding:14px 30px; cursor:pointer; border:1px solid var(--aa-black); transition:all var(--aa-ease) 240ms; text-align:center; }
.btn--lav { background:var(--aa-lavender); border-color:var(--aa-lavender); color:var(--aa-black); }
.btn--lav:hover { filter:brightness(0.92); }
.btn--ghost { background:transparent; color:var(--aa-black); }
.btn--ghost:hover { background:var(--aa-black); color:var(--aa-white); }
.btn--block { display:block; width:100%; }

/* ---- Announce + header ---- */
.announce { background:var(--aa-black); color:var(--aa-white); text-align:center; font-size:13px; letter-spacing:0.07em; text-transform:uppercase; padding:9px 16px; font-weight:300; }
header { border-bottom:1px solid var(--aa-grey); position:sticky; top:0; background:rgba(255,255,255,0.97); z-index:50; backdrop-filter:none; }
.hbar { display:flex; align-items:center; justify-content:space-between; padding:14px 32px; max-width:var(--aa-max); margin:0 auto; gap:16px; }
.logo img { height:40px; flex-shrink:0; }

/* Nav: 7 categories + separator + 2 finder pills */
.nav { display:flex; align-items:center; gap:18px; flex-wrap:nowrap; }
.nav a { font-family:var(--aa-body); text-transform:uppercase; letter-spacing:0.09em; font-weight:700; font-size:12px; transition:opacity var(--aa-ease) 240ms; white-space:nowrap; }
.nav a:hover { opacity:0.55; }
.nav-sep { width:1px; height:18px; background:var(--aa-grey); flex-shrink:0; }
.nav a.nav--finder { background:var(--aa-lavender); color:var(--aa-black); border-radius:999px; padding:4px 14px; font-size:11px; letter-spacing:0.08em; }
.nav a.nav--finder:hover { opacity:1; filter:brightness(0.92); }
.icons { display:flex; gap:16px; align-items:center; flex-shrink:0; }
.icons i { width:21px; height:21px; stroke-width:1.5; cursor:pointer; }
.menu-toggle { display:none; }

/* ---- Hero ---- */
.hero { position:relative; height:560px; overflow:hidden; display:flex; align-items:center; }
.hero img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; }
.hero::after { content:''; position:absolute; inset:0; background:linear-gradient(100deg, rgba(255,255,255,0.55) 0%, rgba(255,255,255,0.15) 38%, transparent 60%); }
.hero__inner { position:relative; z-index:2; max-width:var(--aa-max); margin:0 auto; padding:0 32px; width:100%; }
.hero h1 { font-size:66px; line-height:1.0; max-width:10em; }
.hero .eyebrow { display:block; margin-bottom:18px; color:#222; }
.hero .btn { margin-top:30px; }

/* Hub hero (shorter) */
.hubhero { position:relative; height:360px; overflow:hidden; display:flex; align-items:center; }
.hubhero img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.hubhero::after { content:''; position:absolute; inset:0; background:linear-gradient(100deg, rgba(0,0,0,0.52) 0%, rgba(0,0,0,0.18) 42%, transparent 66%); }
.hubhero__inner { position:relative; z-index:2; max-width:var(--aa-max); margin:0 auto; padding:0 32px; width:100%; }
.hubhero .kicker { font-family:var(--aa-body); text-transform:uppercase; letter-spacing:0.22em; font-size:12px; font-weight:700; color:#fff; margin-bottom:12px; }
.hubhero h1 { font-size:60px; line-height:1.0; color:#fff; }

/* ---- Trust band ---- */
.trust { border-bottom:1px solid var(--aa-grey); }
.trust .wrap { display:flex; }
.trust .item { flex:1; display:flex; align-items:center; gap:14px; padding:26px 24px; }
.trust .item + .item { border-left:1px solid var(--aa-grey); }
.trust i { width:30px; height:30px; stroke-width:1.2; flex-shrink:0; }
.trust p { font-size:14.5px; line-height:1.4; color:#2a2a2a; }
.trust-line { background:var(--aa-soft); border-top:1px solid var(--aa-grey); border-bottom:1px solid var(--aa-grey); }
.trust-line .wrap { display:flex; align-items:center; justify-content:center; gap:12px; padding:22px 32px; text-align:center; }
.trust-line i { width:22px; height:22px; stroke-width:1.3; flex-shrink:0; }
.trust-line p { font-size:15px; color:#2a2a2a; }

/* ---- Section heading ---- */
.shead { text-align:center; margin-bottom:40px; }
.shead h2 { font-size:42px; margin-top:8px; }
.shead p { font-size:16px; line-height:1.7; color:#444; max-width:52em; margin:12px auto 0; }

/* ---- Hub intro text ---- */
.hub-intro { max-width:760px; margin:0 auto; text-align:center; font-size:17px; line-height:1.7; color:#333; }

/* ---- Range tiles (3-col) ---- */
.tiles { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.tile { position:relative; height:240px; overflow:hidden; display:flex; align-items:flex-end; cursor:pointer; }
.tile img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform var(--aa-ease) 600ms; }
.tile::after { content:''; position:absolute; inset:0; background:linear-gradient(to top, rgba(0,0,0,0.6) 0%, rgba(0,0,0,0.12) 42%, transparent 66%); }
.tile:hover img { transform:scale(1.04); }
.tile__label { position:relative; z-index:2; padding:18px 22px; display:flex; align-items:flex-end; justify-content:space-between; width:100%; color:#fff; }
.tile__label .tx h3 { font-size:26px; color:#fff; }
.tile__label .tx .sub { font-size:13px; color:rgba(255,255,255,0.85); margin-top:2px; }
.tile__label i { width:24px; height:24px; stroke-width:1.5; flex-shrink:0; margin-bottom:4px; }

/* Hub tiles (bigger, 3-col for 5-tile EO format) */
.hub-tiles { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.hub-tiles .tile { height:270px; }
.hub-tiles .tile:nth-child(4):last-child { grid-column:2; }
.hub-tiles .tile:nth-child(4):not(:last-child) ~ .tile:last-child { }

/* ---- Format tiles (Essential Oils: 5 specific formats) ---- */
.format-tiles { display:grid; grid-template-columns:repeat(5,1fr); gap:10px; }
.format-tile { position:relative; overflow:hidden; border:1px solid var(--aa-grey); padding:22px 16px 18px; text-align:center; transition:border-color var(--aa-ease) 240ms; cursor:pointer; display:block; }
.format-tile:hover { border-color:var(--aa-black); }
.format-tile__icon { width:36px; height:36px; margin:0 auto 12px; stroke-width:1.2; }
.format-tile__name { font-family:var(--aa-title); font-size:18px; line-height:1.15; margin-bottom:6px; }
.format-tile__count { font-family:var(--aa-body); text-transform:uppercase; letter-spacing:0.1em; font-size:11px; color:var(--aa-muted); }

/* ---- Filter chips ---- */
.filter-row { display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin-bottom:28px; }
.filter-row__label { font-family:var(--aa-body); text-transform:uppercase; letter-spacing:0.12em; font-size:11px; font-weight:700; color:var(--aa-muted); margin-right:4px; }
.chip { display:inline-block; font-family:var(--aa-body); font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:0.08em; border:1px solid var(--aa-grey); border-radius:999px; padding:6px 14px; cursor:pointer; transition:all var(--aa-ease) 200ms; background:var(--aa-white); }
.chip:hover { border-color:var(--aa-black); }
.chip.active { background:var(--aa-black); color:var(--aa-white); border-color:var(--aa-black); }
.chip--sage { border-color:var(--aa-sage-dark); color:var(--aa-sage-dark); }
.chip--sage.active { background:var(--aa-sage-dark); color:var(--aa-white); }
.chip--lav { border-color:var(--aa-lavender); color:var(--aa-black); }
.chip--lav.active { background:var(--aa-lavender); border-color:var(--aa-lavender); }

/* ---- Sub-collection tiles (Bath & Body, Home Fragrance) ---- */
.scol-tiles { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-bottom:48px; }
.scol-tile { border:1px solid var(--aa-grey); padding:24px 18px 20px; transition:border-color var(--aa-ease) 240ms; cursor:pointer; display:block; }
.scol-tile:hover { border-color:var(--aa-black); }
.scol-tile i { width:32px; height:32px; stroke-width:1.2; margin-bottom:14px; }
.scol-tile__name { font-family:var(--aa-title); font-size:20px; line-height:1.2; margin-bottom:6px; }
.scol-tile__desc { font-family:var(--aa-body); font-size:13px; line-height:1.5; color:var(--aa-muted); }

/* ---- Product card ---- */
.card { padding-top:18px; border-top:1px solid var(--aa-grey); display:block; }
.card__media { aspect-ratio:1/1; background:var(--aa-white); display:flex; align-items:center; justify-content:center; overflow:hidden; position:relative; }
.card__media img.shot { max-height:84%; width:auto; filter:drop-shadow(6px 9px 14px rgba(0,0,0,0.12)); transition:transform var(--aa-ease) 420ms; }
.card:hover .card__media img.shot { transform:translateY(-4px); }
.ph { width:100%; height:100%; background:linear-gradient(160deg,#f3f5f1,#eef0f5); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; }
.ph img { width:50px; opacity:0.16; }
.ph span { font-family:var(--aa-body); text-transform:uppercase; letter-spacing:0.16em; font-size:10px; color:#9a9a9a; }
.badge { position:absolute; top:8px; left:8px; font-family:var(--aa-body); text-transform:uppercase; letter-spacing:0.1em; font-size:10px; font-weight:700; border:1px solid var(--aa-black); padding:3px 8px; background:rgba(255,255,255,0.85); }
.badge.organic { border-color:var(--aa-sage-dark); color:var(--aa-sage-dark); }
.badge.co2 { border-color:var(--aa-teal); color:#3a6e75; }
.card__note { font-family:var(--aa-body); text-transform:uppercase; letter-spacing:0.12em; font-size:11px; color:var(--aa-muted); margin-top:14px; }
.card__name { font-family:var(--aa-title); font-size:23px; line-height:1.12; margin:3px 0 2px; }
.card__botanical { font-style:italic; font-size:14px; color:var(--aa-muted); }
.card__price { font-size:16px; margin-top:10px; }
.card__price .from { font-size:11px; text-transform:uppercase; letter-spacing:0.1em; color:var(--aa-muted); }
.grid-4 { display:grid; grid-template-columns:repeat(4,1fr); gap:14px 26px; }
.grid-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:14px 26px; }
.center-cta { text-align:center; margin-top:42px; }

/* ---- Occasion tiles (Gifts) ---- */
.occasion-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-bottom:48px; }
.occasion-tile { position:relative; padding:28px 22px; border:1px solid var(--aa-grey); transition:border-color var(--aa-ease) 240ms; cursor:pointer; display:block; }
.occasion-tile:hover { border-color:var(--aa-black); }
.occasion-tile__eyebrow { font-family:var(--aa-body); text-transform:uppercase; letter-spacing:0.14em; font-size:10px; font-weight:700; color:var(--aa-muted); margin-bottom:10px; }
.occasion-tile__name { font-family:var(--aa-title); font-size:26px; margin-bottom:10px; }
.occasion-tile__products { font-family:var(--aa-body); font-size:13px; color:var(--aa-muted); }
.occasion-tile__arrow { position:absolute; bottom:16px; right:18px; }
.occasion-tile__arrow i { width:18px; height:18px; stroke-width:1.5; }

/* Price strip */
.price-strip { display:flex; gap:10px; margin-bottom:48px; overflow-x:auto; padding-bottom:4px; }
.price-strip a { flex-shrink:0; font-family:var(--aa-body); font-weight:700; text-transform:uppercase; letter-spacing:0.08em; font-size:12px; border:1px solid var(--aa-black); padding:9px 20px; border-radius:2px; transition:all var(--aa-ease) 200ms; }
.price-strip a:hover,
.price-strip a.active { background:var(--aa-black); color:var(--aa-white); }

/* ---- Abbie inline band ---- */
.abbie-band { background:var(--aa-soft); border-top:1px solid var(--aa-grey); border-bottom:1px solid var(--aa-grey); padding:64px 0; }
.abbie-band__inner { display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; }
.abbie-band__content .eyebrow { display:block; margin-bottom:12px; }
.abbie-band__heading { font-family:var(--aa-title); font-size:46px; line-height:1.05; margin-bottom:18px; }
.abbie-band__copy { font-size:16px; line-height:1.75; color:#3a3a3a; margin-bottom:30px; }
.abbie-band__btns { display:flex; gap:12px; flex-wrap:wrap; }

/* Abbie portrait placeholder */
.abbie-portrait-wrap { display:flex; justify-content:center; align-items:center; height:280px; }
.abbie-portrait { width:200px; height:200px; background:var(--aa-lavender); border-radius:50%; display:flex; align-items:center; justify-content:center; position:relative; }
.abbie-portrait::after { content:''; position:absolute; inset:-10px; border:1px solid var(--aa-lavender); border-radius:50%; opacity:0.4; }
.abbie-portrait__letter { font-family:var(--aa-title); font-size:96px; color:var(--aa-white); line-height:1; margin-top:6px; }

/* Guided question band (Blends, Home Fragrance hubs) */
.abbie-guide-band { background:var(--aa-white); border-bottom:1px solid var(--aa-grey); padding:52px 0; }
.abbie-guide-band__inner { max-width:720px; margin:0 auto; text-align:center; }
.abbie-guide-band__q { font-family:var(--aa-title); font-size:42px; line-height:1.1; margin:12px 0 22px; }
.abbie-guide-band__hint { font-size:15px; color:var(--aa-muted); margin-bottom:26px; }

/* ---- Abbie FAB ---- */
.abbie-fab { position:fixed; bottom:28px; right:28px; z-index:200; display:flex; align-items:center; gap:8px; background:var(--aa-lavender); color:var(--aa-black); border:none; border-radius:999px; padding:12px 20px 12px 16px; font-family:var(--aa-body); font-weight:700; font-size:13px; letter-spacing:0.07em; text-transform:uppercase; cursor:pointer; box-shadow:0 4px 18px -4px rgba(0,0,0,0.25); transition:all var(--aa-ease) 240ms; }
.abbie-fab:hover { filter:brightness(0.92); transform:translateY(-2px); box-shadow:0 8px 24px -4px rgba(0,0,0,0.22); }
.abbie-fab i { width:18px; height:18px; stroke-width:1.5; }

/* ---- Abbie chat panel ---- */
.abbie-overlay { position:fixed; inset:0; background:rgba(0,0,0,0.22); z-index:250; opacity:0; pointer-events:none; transition:opacity var(--aa-ease) 300ms; }
.abbie-overlay.is-open { opacity:1; pointer-events:auto; }

.abbie-panel { position:fixed; right:0; top:0; height:100vh; width:400px; max-width:100vw; background:var(--aa-white); border-left:1px solid var(--aa-grey); z-index:300; display:flex; flex-direction:column; transform:translateX(102%); transition:transform var(--aa-ease) 320ms; }
.abbie-panel.is-open { transform:translateX(0); }

.abbie-panel__header { padding:20px 20px 16px; border-bottom:1px solid var(--aa-grey); display:flex; align-items:flex-start; justify-content:space-between; flex-shrink:0; }
.abbie-panel__name { font-family:var(--aa-title); font-size:28px; line-height:1; margin-bottom:3px; }
.abbie-panel__subtitle { font-family:var(--aa-body); font-size:12px; text-transform:uppercase; letter-spacing:0.12em; color:var(--aa-muted); }
.abbie-panel__role { display:inline-block; font-family:var(--aa-body); font-size:11px; text-transform:uppercase; letter-spacing:0.1em; color:var(--aa-black); background:var(--aa-lavender); border-radius:999px; padding:3px 10px; margin-top:8px; }
.abbie-panel__close { background:none; border:none; cursor:pointer; padding:2px; }
.abbie-panel__close i { width:22px; height:22px; stroke-width:1.5; }
.abbie-panel__close:hover { opacity:0.55; }

.abbie-panel__messages { flex:1; overflow-y:auto; padding:20px; display:flex; flex-direction:column; gap:18px; }

/* Opening message (from scenario opener) */
.abbie-opening { font-family:var(--aa-title); font-size:18px; line-height:1.55; color:#2a2a2a; }
.abbie-opening:empty { display:none; }

/* Message bubbles */
.abbie-msg { max-width:100%; }
.abbie-msg__bubble { font-family:var(--aa-body); font-size:15px; line-height:1.65; font-weight:300; color:#1a1a1a; }
.abbie-msg--user .abbie-msg__bubble { background:var(--aa-soft); border:1px solid var(--aa-grey); padding:12px 16px; border-radius:2px; margin-left:24px; font-style:italic; }
.abbie-msg--abbie .abbie-msg__bubble { }
.abbie-msg__label { font-family:var(--aa-body); font-size:10px; text-transform:uppercase; letter-spacing:0.1em; color:var(--aa-muted); margin-bottom:5px; }

/* Thinking state */
.abbie-think { height:3px; background:transparent; margin:0 20px; flex-shrink:0; overflow:hidden; }
.abbie-think.is-thinking { background:var(--aa-grey); }
.abbie-think.is-thinking::after { content:''; display:block; height:100%; width:40%; background:var(--aa-amber); animation:abbieThink 1.2s var(--aa-ease) infinite; }
@keyframes abbieThink { 0%{transform:translateX(-100%)} 100%{transform:translateX(350%)} }

/* Product recommendation cards */
.abbie-recs { display:flex; gap:10px; flex-wrap:wrap; margin-top:12px; }
.abbie-rec { display:flex; align-items:center; gap:10px; border:1px solid var(--aa-grey); padding:10px 14px; flex:1 0 160px; min-width:0; transition:border-color var(--aa-ease) 200ms; cursor:pointer; }
.abbie-rec:hover { border-color:var(--aa-black); }
.abbie-rec__initial { width:40px; height:40px; border-radius:50%; background:var(--aa-sage-light); display:flex; align-items:center; justify-content:center; font-family:var(--aa-title); font-size:20px; flex-shrink:0; }
.abbie-rec__body { min-width:0; }
.abbie-rec__name { font-family:var(--aa-title); font-size:16px; line-height:1.2; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.abbie-rec__cat { font-family:var(--aa-body); font-size:10px; text-transform:uppercase; letter-spacing:0.1em; color:var(--aa-muted); margin-top:1px; }
.abbie-rec__price { font-family:var(--aa-body); font-size:13px; margin-top:3px; }

/* Panel input area */
.abbie-panel__bottom { flex-shrink:0; border-top:1px solid var(--aa-grey); }
.abbie-panel__inputrow { display:flex; gap:8px; padding:14px 16px; }
.abbie-panel__input { flex:1; font-family:var(--aa-body); font-size:14px; font-weight:300; border:1px solid var(--aa-grey); border-radius:2px; padding:10px 12px; resize:none; line-height:1.5; outline:none; }
.abbie-panel__input:focus { border-color:var(--aa-black); }
.abbie-panel__send { padding:10px 18px; font-size:12px; flex-shrink:0; align-self:flex-end; }
.abbie-panel__footer { padding:6px 16px 14px; text-align:center; }
.abbie-panel__fresh { background:none; border:none; cursor:pointer; font-family:var(--aa-body); font-size:11px; text-transform:uppercase; letter-spacing:0.1em; color:var(--aa-muted); text-decoration:underline; }
.abbie-panel__fresh:hover { color:var(--aa-black); }

/* ---- Editorial ---- */
.editorial { display:grid; grid-template-columns:1fr 1fr; align-items:center; }
.editorial__img { height:480px; position:relative; overflow:hidden; }
.editorial__img img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.editorial__txt { padding:0 7vw; }
.editorial__txt h2 { font-size:40px; line-height:1.08; margin:10px 0 18px; }
.editorial__txt p { font-size:16.5px; line-height:1.65; color:#333; max-width:30em; }
.editorial__txt .link { display:inline-block; margin-top:22px; font-family:var(--aa-body); font-weight:700; text-transform:uppercase; letter-spacing:0.08em; font-size:13px; border-bottom:1px solid var(--aa-black); padding-bottom:3px; }

/* ---- Newsletter ---- */
.news { background:var(--aa-sage-light); text-align:center; }
.news h2 { font-size:38px; }
.news p { font-size:16px; color:#2c3a28; margin:12px auto 26px; max-width:34em; }
.news form { display:flex; gap:10px; max-width:480px; margin:0 auto; }
.news input { flex:1; border:1px solid #7c8c74; border-radius:2px; padding:14px 16px; font-family:var(--aa-body); font-size:15px; background:rgba(255,255,255,0.7); }
.news input::placeholder { color:#5d6b56; }

/* ---- Footer ---- */
footer { background:var(--aa-black); color:var(--aa-white); padding:56px 0 36px; }
.fgrid { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:32px; }
footer .strap { font-family:var(--aa-title); font-size:24px; max-width:11em; line-height:1.2; }
footer h4 { font-family:var(--aa-body); text-transform:uppercase; letter-spacing:0.12em; font-size:12px; font-weight:700; color:#cfcfcf; margin-bottom:16px; }
footer ul { list-style:none; display:flex; flex-direction:column; gap:10px; }
footer ul a { font-size:14px; color:#e6e6e6; }
footer ul a:hover { color:#fff; opacity:0.7; }
.fbase { border-top:1px solid #333; margin-top:40px; padding-top:22px; font-size:12.5px; letter-spacing:0.07em; text-transform:uppercase; color:#9a9a9a; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px; }

.note-banner { background:var(--aa-soft); border:1px dashed var(--aa-grey); padding:9px 16px; font-size:12px; color:var(--aa-muted); text-align:center; letter-spacing:0.03em; }

/* Legibility / scrim helpers */
.scrim { position:absolute; inset:0; z-index:1; }
.scrim--dark-bottom { background:linear-gradient(to top, rgba(0,0,0,0.6) 0%, rgba(0,0,0,0.12) 42%, transparent 66%); }
.scrim--dark-left { background:linear-gradient(100deg, rgba(0,0,0,0.55) 0%, rgba(0,0,0,0.18) 40%, transparent 64%); }
.scrim--light-left { background:linear-gradient(100deg, rgba(255,255,255,0.82) 0%, rgba(255,255,255,0.32) 40%, transparent 64%); }
.on-photo-light, .on-photo-light .eyebrow, .on-photo-light h1, .on-photo-light h2 { color:#fff; }
.on-photo-dark, .on-photo-dark h1, .on-photo-dark h2 { color:#111; }
.on-photo-dark .eyebrow { color:#222; }
.halo { text-shadow:0 2px 20px rgba(0,0,0,0.5), 0 1px 4px rgba(0,0,0,0.4); }

/* Safety / info boxes */
.safety-box { background:#faf3e6; border:1px solid var(--aa-amber); padding:14px 16px; display:flex; gap:12px; margin:16px 0; }
.safety-box i { width:20px; height:20px; stroke-width:1.6; color:#9a7b3c; flex-shrink:0; margin-top:2px; }
.safety-box p { font-size:14px; line-height:1.55; color:#6b5526; }
.info-box { background:var(--aa-soft); border:1px solid var(--aa-grey); padding:14px 16px; font-size:14px; line-height:1.6; margin:16px 0; }

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width:1200px){
  .nav { gap:14px; }
  .nav a { font-size:11px; }
}

@media (max-width:900px){
  .wrap { padding:0 18px; }
  .hbar { padding:14px 18px; }
  .nav { display:none; }
  .menu-toggle { display:inline-block; }
  /* Mobile nav drawer: opens below the sticky header bar */
  .nav.nav--open { display:flex; flex-direction:column; align-items:stretch; gap:0; position:absolute; top:100%; left:0; right:0; background:var(--aa-white); border-top:1px solid var(--aa-grey); border-bottom:1px solid var(--aa-grey); padding:6px 18px 16px; box-shadow:0 10px 24px -10px rgba(0,0,0,0.18); }
  .nav.nav--open a { font-size:14px; padding:12px 0; border-bottom:1px solid var(--aa-soft); white-space:normal; }
  .nav.nav--open .nav-sep { display:none; }
  .nav.nav--open a.nav--finder { align-self:flex-start; border-bottom:none; margin-top:10px; padding:7px 16px; }
  .logo img { height:34px; }
  .section { padding:44px 0; }

  .hero { height:520px; }
  .hero h1 { font-size:46px; }

  .hubhero { height:280px; }
  .hubhero h1 { font-size:42px; }

  .trust .wrap { flex-direction:column; }
  .trust .item { padding:18px 0; }
  .trust .item + .item { border-left:none; border-top:1px solid var(--aa-grey); }

  .shead h2 { font-size:32px; }
  .tiles { grid-template-columns:1fr 1fr; gap:10px; }
  .tile { height:170px; }
  .hub-tiles { grid-template-columns:1fr 1fr; }
  .format-tiles { grid-template-columns:repeat(3,1fr); }
  .scol-tiles { grid-template-columns:1fr 1fr; }
  .occasion-grid { grid-template-columns:1fr 1fr; }
  .grid-4 { grid-template-columns:repeat(2,1fr); gap:10px 14px; }
  .grid-3 { grid-template-columns:repeat(2,1fr); }
  .card__name { font-size:20px; }

  .abbie-band__inner { grid-template-columns:1fr; }
  .abbie-band__heading { font-size:34px; }
  .abbie-portrait-wrap { display:none; }
  .abbie-guide-band__q { font-size:30px; }

  .abbie-panel { width:100vw; }

  .editorial { grid-template-columns:1fr; }
  .editorial__img { height:300px; order:-1; }
  .editorial__txt { padding:40px 18px 8px; }
  .editorial__txt h2 { font-size:32px; }

  .news h2 { font-size:30px; }
  .news form { flex-direction:column; }

  .fgrid { grid-template-columns:1fr 1fr; gap:28px; }
  footer .strap { grid-column:1 / -1; font-size:22px; }
}
