/* Lifelia · the Meadow design, as a multi-page site.
   Editorial, photographic, still. Montserrat stands in for Bambino New (the brochure face, which needs a web
   licence); Cormorant Garamond italic is kept for quotes and pull lines only. */

/* ---------- Tokens (from the 2026 brochure and counter-display artwork) ---------- */
:root {
  --lf-lav-50: #f8f6fa;
  --lf-lav-100: #f1edf5;
  --lf-lav-200: #e1d8ea;
  --lf-lav-300: #ccbcdb;
  --lf-lav-400: #b9a3cd;
  --lf-lav-500: #a78cc1;   /* the print lavender: logo tab, bands, icons. White on it only at logo size (2.9:1) */
  --lf-lav-600: #8e77a5;
  --lf-lav-700: #756289;   /* white text on it 5.4:1 */
  --lf-lav-800: #5b4b6c;
  --lf-lav-900: #443751;
  --lf-lav-950: #362b42;
  --lf-violet-deep: #5b4a86;
  --lf-ink: #231f20;
  --lf-ink-soft: #4a4446;
  --lf-paper: #fbfaf8;
  --lf-paper-2: #f4f1ec;
  --lf-font: 'Montserrat', 'Bambino New', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', sans-serif;
  --lf-linen: url('../img/linen-master.jpg');   /* cut from the master logo, October 2026 */

  --paper: var(--lf-paper);
  --stone: var(--lf-paper-2);
  --ink: var(--lf-ink);
  --ink-2: var(--lf-ink-soft);
  --mist: #f6f2f8;
  --rule: rgba(35, 31, 32, .14);
  --serif: 'Cormorant Garamond', 'Libre Baskerville', Georgia, serif;
  /* The page runs under a phone's notch and home bar (viewport-fit=cover, 9 Nov 2026): --top / --bottom keep things
     clear of them; both are 0 on a computer. In landscape the notch is at a side, so the gutter grows to clear it. */
  --top: env(safe-area-inset-top, 0px);
  --bottom: env(safe-area-inset-bottom, 0px);
  --gutter: max(clamp(24px, 5.2vw, 84px), calc(env(safe-area-inset-left, 0px) + 12px), calc(env(safe-area-inset-right, 0px) + 12px));
  --maxw: 1240px;
  --gap: clamp(20px, 2.4vw, 40px);
  --sec-y: clamp(48px, 5vw, 76px);     /* one section's padding, top or bottom: two together make the gap between sections */
  --sec-y-sm: clamp(36px, 3.8vw, 56px);  /* where two parts of the same story meet */
  --ease: cubic-bezier(.22, .61, .36, 1);
  --dusk: 34, 26, 38;
  --grain: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .21 0 0 0 0 .17 0 0 0 0 .26 0 0 0 .5 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
}

/* ---------- Brand marks: inline drawings (build.py icon()), coloured by currentColor ---------- */
/* Not CSS masks: some iPhone Safari versions leave a masked shape blank. */
.lf-amp { display: inline-block; width: 1.25em; height: 1em; vertical-align: -.2em; fill: currentColor; }
.lf-logo, .lf-logo-lifelia, .lf-leaf { display: inline-block; height: auto; fill: currentColor; }
.lf-logo { aspect-ratio: 186.54 / 167.81; }
.lf-logo-lifelia { aspect-ratio: 186.54 / 134.82; }
.lf-leaf { aspect-ratio: 110.21 / 82.36; }
.lf-sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.sprite { position: absolute; width: 0; height: 0; overflow: hidden; }

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 88px; }
/* iPhone Safari paints the strip behind the clock from the body's background (when no fixed bar is at the top). On the
   home page that strip sits on the cover photo, so it takes the photo's shaded top edge instead of cream (9 Nov 2026). */
html:has(.hero), html:has(.hero) body { background-color: #574e4c; }
html:has(.hero) main { background-color: var(--paper); }   /* the page itself stays cream */
html.runner-on:has(.hero), html.runner-on:has(.hero) body { background-color: var(--paper); }   /* cream under the cream bar */
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--lf-font);
  font-size: 17px;
  line-height: 1.7;
  letter-spacing: .005em;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}
img { display: block; max-width: 100%; height: auto; }
figure { margin: 0; }
p { margin: 0 0 1.1em; }
h1, h2, h3 { margin: 0; font-weight: 400; }
a { color: var(--lf-violet-deep); text-decoration-thickness: 1px; text-underline-offset: .22em; }
a:hover { color: var(--lf-lav-900); }
:focus-visible { outline: 2px solid var(--lf-violet-deep); outline-offset: 3px; border-radius: 2px; }
.masthead--over :focus-visible, .hero :focus-visible, .footer :focus-visible { outline-color: #fff; }

.skip { position: absolute; left: 12px; top: -80px; z-index: 100; background: var(--ink); color: #fff; padding: 12px 18px; border-radius: 2px; text-decoration: none; }
.skip:focus { top: 12px; color: #fff; }

.wrap { width: min(100% - 2 * var(--gutter), var(--maxw)); margin-inline: auto; }
/* The last thing in a block never adds space below it (section padding does that) */
:where(.intro__body, .made__text, .page-head__text, .ask, .tested__text, .local__text, .events__text, .ahead__text, .why__text,
  .visit__text, .closing__text, .rbody__text, .range__text, .nfe__text, .post, .post__text, .support__item, .every__list li,
  .steps__list li, .materials__list li, .beliefs__list li, .path, .contact__text, .section-head, .proof__head, .asks-section__head,
  .faq__head, .rhead__text, .found__panel > div) > :last-child { margin-bottom: 0; }

/* Type */
.label {
  display: flex; align-items: center; gap: 14px;
  margin: 0 0 24px;
  font: 500 12px/1.4 var(--lf-font);
  letter-spacing: .22em; text-transform: uppercase;
  color: var(--lf-lav-800);
}
.label::before { content: ''; width: 28px; height: 1px; background: var(--lf-lav-400); flex: none; }
.label .lf-leaf { width: 26px; color: var(--lf-lav-500); }
.label:has(.lf-leaf)::before { display: none; }
.label--center { justify-content: center; }
.label--center::after { content: ''; width: 28px; height: 1px; background: var(--lf-lav-400); flex: none; }

.page-title {
  font: 300 clamp(38px, 4.3vw, 64px)/1.08 var(--lf-font);
  letter-spacing: -.018em;
  margin: 0 0 28px;
  text-wrap: balance;
}
.h2 { font: 300 clamp(32px, 3.4vw, 50px)/1.12 var(--lf-font); letter-spacing: -.014em; margin: 0 0 28px; text-wrap: balance; }
.h3 { font: 400 clamp(20px, 1.55vw, 23px)/1.32 var(--lf-font); margin: 0 0 14px; letter-spacing: -.003em; text-wrap: balance; }
.lead { font-weight: 300; font-size: clamp(19px, 1.5vw, 22px); line-height: 1.6; letter-spacing: .004em; }
.soft { color: var(--lf-lav-700); }

/* Buttons and links */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 50px; padding: 0 26px;
  border: 1px solid var(--ink); border-radius: 2px;
  background: transparent; color: var(--ink);
  font: 500 15px/1.2 var(--lf-font); letter-spacing: .02em;
  text-decoration: none; cursor: pointer;
  transition: background-color .4s var(--ease), color .4s var(--ease), border-color .4s var(--ease);
}
.btn:hover { background: var(--ink); color: #fff; }
.btn--solid { background: var(--lf-lav-800); border-color: var(--lf-lav-800); color: #fff; }
.btn--solid:hover { background: var(--lf-lav-950); border-color: var(--lf-lav-950); color: #fff; }
.btn--quiet { min-height: 44px; padding: 0 16px; border-color: var(--lf-lav-300); color: var(--lf-lav-900); font-size: 14px; }
.btn--quiet:hover { background: var(--lf-lav-100); color: var(--lf-lav-950); }
.btn--quiet svg { width: 18px; height: 18px; }
.btn[disabled] { opacity: .7; cursor: default; }
.actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }

.more {
  display: inline-flex; align-items: center; gap: 14px;
  min-height: 44px;
  font: 500 14.5px/1.3 var(--lf-font); letter-spacing: .03em;
  color: var(--lf-lav-900); text-decoration: none;
}
.more__arrow { width: 30px; height: 12px; flex: none; transition: transform .5s var(--ease); }
a.more:hover { color: var(--lf-lav-950); }
a.more:hover .more__arrow, a:hover > .more .more__arrow, article:hover .more .more__arrow, .rcard__link:hover .more__arrow { transform: translateX(6px); }

/* Picture crops: the real photos are cropped in CSS, so no new files */
.crop { position: relative; overflow: hidden; aspect-ratio: var(--cw) / var(--ch); background: var(--stone); }
.crop img {
  position: absolute; max-width: none; height: auto;
  width: calc(var(--iw) / var(--cw) * 100%);
  left: calc(var(--cx) / var(--cw) * -100%);
  top: calc(var(--cy) / var(--ch) * -100%);
}
figcaption { font: italic 300 14px/1.5 var(--lf-font); color: var(--ink-2); letter-spacing: .01em; }
.crop + figcaption { margin-top: 14px; max-width: 34em; }
/* A text graphic (a blog post's picture with words in it) is never cropped: shown whole on a 4:3 card */
.crop--fit { aspect-ratio: 4 / 3; }
.crop--fit img { left: 0; top: 0; width: 100%; height: 100%; object-fit: contain; }

/* The brochure's divider: a small outline leaf on a fine lavender rule */
.divider { display: flex; align-items: center; justify-content: center; gap: 18px; margin: 0 auto clamp(20px, 2.2vw, 30px); }
.divider::before, .divider::after { content: ''; width: clamp(48px, 6vw, 88px); height: 1px; background: var(--lf-lav-300); }
.divider svg { width: 28px; height: 21px; fill: currentColor; color: var(--lf-lav-500); }

/* ---------- Masthead ---------- */
.masthead {
  position: absolute; z-index: 20; top: 0; left: 0; right: 0;
  display: flex; align-items: flex-start; gap: clamp(18px, 2.2vw, 32px);
  padding: 0 var(--gutter);
  pointer-events: none;
}
.masthead > * { pointer-events: auto; }
/* The master logo (brand guide, October 2026) hangs from the top edge, as on the brochure cover */
.tab {
  --tab-w: clamp(98px, 9.6vw, 150px);
  position: relative; display: block; flex: none; overflow: hidden;
  width: var(--tab-w); height: calc(var(--tab-w) / .82 + var(--top));   /* taller by the notch; the logo sits at the foot */
  background: var(--lf-lav-500) var(--lf-linen) center top / 420px auto;
  border-radius: 0 0 5px 5px;
  box-shadow: 0 18px 34px -16px rgba(30, 18, 40, .55);
  transition: transform .5s var(--ease);
}
.tab:hover { transform: translateY(2px); }
.tab__img { position: absolute; left: 0; bottom: 0; width: 100%; height: auto; }
.masthead__nav { margin-left: auto; padding-top: calc(25px + var(--top)); }
.masthead__nav ul, .runner__nav ul { display: flex; gap: clamp(18px, 2vw, 30px); list-style: none; margin: 0; padding: 0; }
.masthead__nav a, .masthead__menu {
  display: inline-flex; align-items: center; min-height: 44px;
  color: var(--ink); text-decoration: none;
  font: 500 13.5px/1 var(--lf-font); letter-spacing: .04em;
}
.masthead__nav a { background: linear-gradient(currentColor, currentColor) 0 calc(50% + 12px) / 0 1px no-repeat; transition: background-size .45s var(--ease); }
.masthead__nav a:hover, .masthead__nav a[aria-current] { background-size: 100% 1px; color: var(--ink); }
.masthead__cta {
  margin-top: calc(25px + var(--top));
  display: inline-flex; align-items: center; min-height: 44px; padding: 0 20px;
  color: var(--ink); text-decoration: none;
  font: 500 13.5px/1 var(--lf-font); letter-spacing: .04em;
  border: 1px solid rgba(35, 31, 32, .6); border-radius: 2px;
  transition: background-color .4s var(--ease), color .4s var(--ease);
}
.masthead__cta:hover { background: var(--ink); color: #fff; }
/* Social links: X, Facebook, LinkedIn (menu bar, running head, menu sheet, footer) */
.socials { display: flex; align-items: center; list-style: none; margin: 0; padding: 0; }
.socials a { display: inline-grid; place-items: center; width: 34px; height: 44px; color: var(--ink); opacity: .78; transition: opacity .3s var(--ease); }
.socials a:hover { opacity: 1; color: var(--ink); }
.socials svg { width: 16px; height: 16px; }
.masthead__socials { margin-top: calc(25px + var(--top)); padding-left: clamp(8px, 1vw, 14px); border-left: 1px solid rgba(35, 31, 32, .18); height: 44px; }
.masthead--over .masthead__socials { border-left-color: rgba(255, 255, 255, .45); }
.masthead--over .masthead__socials a { color: #fff; opacity: .92; filter: drop-shadow(0 1px 2px rgba(var(--dusk), .5)); }
.runner__socials a { width: 30px; }
.runner__socials svg { width: 15px; height: 15px; }
.sheet__socials { margin: 14px 0 0 -9px; }
.sheet__socials svg { width: 19px; height: 19px; }
.footer__socials { margin-left: -9px; }
.footer .footer__socials a { color: #fff; }
.masthead__menu { display: none; gap: 12px; margin-left: auto; margin-top: calc(16px + var(--top)); padding: 0 2px; }
.menu-icon { display: inline-grid; gap: 6px; width: 22px; }
.menu-icon i { display: block; height: 1.5px; background: currentColor; border-radius: 1px; }
.menu-icon i:last-child { width: 70%; justify-self: end; }
/* Over the home page's photograph */
.masthead--over .masthead__nav a, .masthead--over .masthead__menu, .masthead--over .masthead__cta { color: #fff; text-shadow: 0 0 12px rgba(var(--dusk), .6), 0 1px 2px rgba(var(--dusk), .35); }
.masthead--over .masthead__nav a:hover { color: #fff; }
.masthead--over .masthead__cta { border-color: rgba(255, 255, 255, .75); background: rgba(var(--dusk), .22); }
.masthead--over .masthead__cta:hover { background: #fff; color: var(--ink); text-shadow: none; }

/* Running head */
.runner {
  position: fixed; z-index: 30; left: 0; right: 0;
  height: calc(64px + var(--top)); padding: var(--top) var(--gutter) 0;
  align-items: center; gap: clamp(18px, 2vw, 28px);   /* display: flex once shown */
  background: rgba(251, 250, 248, .94);
  -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(35, 31, 32, .08);
  /* Hidden = display: none, not just moved off screen: iPhone Safari takes this cream bar's colour for the strip behind
     the clock whenever the bar exists, shown or not (9 Nov 2026). It slides in (@starting-style) and goes at once:
     animating it out through display misplaces its contents in Safari. */
  top: 0; display: none;
  transition: transform .55s var(--ease);
}
.runner.is-shown { display: flex; transform: none; }
@starting-style { .runner.is-shown { transform: translateY(-101%); } }
.runner__logo {
  display: block; align-self: flex-start; width: 74px;
  margin-top: calc(-1 * var(--top)); padding: calc(24px + var(--top)) 12px 12px;   /* up to the top edge, past the notch */
  background: var(--lf-lav-500) var(--lf-linen) center top / 420px auto;
  border-radius: 0 0 4px 4px; color: #fff;
  box-shadow: 0 10px 22px -12px rgba(30, 18, 40, .5);
}
.runner__logo:hover { color: #fff; }
.runner__logo .lf-logo-lifelia { display: block; width: 100%; }
.runner__nav { margin-left: auto; }
.runner__nav ul { gap: clamp(16px, 1.8vw, 26px); }
.runner__nav a { color: var(--ink); text-decoration: none; font: 500 13px/1 var(--lf-font); letter-spacing: .03em; padding: 14px 0; background: linear-gradient(currentColor, currentColor) 0 calc(50% + 11px) / 0 1px no-repeat; transition: background-size .45s var(--ease); }
.runner__nav a:hover, .runner__nav a[aria-current] { color: var(--ink); background-size: 100% 1px; }
.runner__cta { display: inline-flex; align-items: center; min-height: 40px; padding: 0 16px; border-radius: 2px; background: var(--lf-lav-800); color: #fff; text-decoration: none; font: 500 13px/1 var(--lf-font); letter-spacing: .03em; }
.runner__cta:hover { background: var(--lf-lav-950); color: #fff; }
.runner__menu { display: none; margin-left: auto; min-height: 44px; padding: 0 4px; border: 0; background: none; font: 500 14px/1 var(--lf-font); letter-spacing: .04em; color: var(--ink); cursor: pointer; }

/* Menu sheet */
.sheet { position: fixed; inset: 0; z-index: 60; display: flex; flex-direction: column; padding: 0 var(--gutter) calc(40px + var(--bottom)); background: var(--paper); overflow-y: auto; }
.sheet[hidden] { display: none; }
.sheet__top { display: flex; align-items: flex-start; justify-content: space-between; }
.sheet__tab { --tab-w: 94px; border-radius: 0 0 4px 4px; }
.sheet__close { margin-top: calc(16px + var(--top)); min-height: 44px; padding: 0 4px; border: 0; background: none; font: 500 14px/1 var(--lf-font); letter-spacing: .04em; color: var(--ink); cursor: pointer; }
.sheet__list { list-style: none; margin: 28px 0 0; padding: 0; border-top: 1px solid var(--rule); }
.sheet__list a { display: block; padding: 14px 0; border-bottom: 1px solid var(--rule); color: var(--ink); text-decoration: none; font: 300 27px/1.2 var(--lf-font); letter-spacing: -.01em; }
.sheet__list a[aria-current] { color: var(--lf-lav-800); }
.sheet__list a[aria-current]::after { content: ''; display: inline-block; width: 22px; height: 16px; margin-left: 14px; vertical-align: 0; background: url('../svg/leaf-mark-lav500.svg') center / contain no-repeat; }  /* a coloured copy, not a mask (iPhone Safari) */
.sheet__foot { margin-top: auto; padding-top: 40px; }
.sheet__foot p { margin-top: 22px; line-height: 2; }
html.menu-open { overflow: hidden; }

/* ---------- Home: the cover ---------- */
/* The photograph has been widened (desktop) and lengthened (phone) from its own meadow, so nothing behind
   the words is a smear; a gentle dusk shade keeps the type readable. */
.hero {
  --H: clamp(600px, min(100svh, 64vw), 900px);
  --S: max(53.27vw, var(--H));               /* the original square photo's size on screen (wide image = 2354 × 1254) */
  position: relative; overflow: hidden;
  height: var(--H);
  color: #fff;
  background: #3b3a26;
}
.hero__media { position: absolute; inset: 0; }
.hero__media picture { display: block; width: 100%; height: 100%; }
.hero__img {
  width: 100%; height: 100%;
  object-fit: cover; object-position: 100% 50%;
  transform-origin: 70% 62%;
  animation: lf-breathe 24s cubic-bezier(.45, .05, .55, .95) infinite alternate;
}
@keyframes lf-breathe { from { transform: scale(1); } to { transform: scale(1.04); } }
.hero__shade {
  position: absolute; inset: 0;
  background:
    linear-gradient(180deg, rgba(var(--dusk), .64) 0, rgba(var(--dusk), .36) 92px, rgba(var(--dusk), 0) 220px),
    radial-gradient(46% 58% at 21% 57%, rgba(var(--dusk), .4) 0, rgba(var(--dusk), .16) 62%, rgba(var(--dusk), 0) 100%),
    linear-gradient(90deg, rgba(var(--dusk), .62) 0, rgba(var(--dusk), .52) 24%, rgba(var(--dusk), .22) 42%, rgba(var(--dusk), 0) 57%),
    linear-gradient(0deg, rgba(var(--dusk), .36) 0, rgba(var(--dusk), 0) 30%);
}
.hero__inner {
  --textw: calc(100vw - var(--S) * .906 - var(--gutter) - 32px);
  position: relative; z-index: 2;
  height: 100%;
  padding: calc(var(--H) * .3) var(--gutter) 0;
}
.hero__title {
  font: 500 clamp(38px, min(4.3vw, 8.3svh), 72px)/1.08 var(--lf-font);   /* the brand sets this line in Bambino New Semi Bold */
  letter-spacing: -.012em;
  text-shadow: 0 2px 30px rgba(var(--dusk), .35);
}
.hero__title .l { display: block; }
.hero__title .l--amp, .hero__title .l--end { display: inline; }
.hero__title .lf-amp { width: 1.1em; margin: 0 .04em 0 -.04em; vertical-align: -.17em; }
.hero__line {
  max-width: min(27em, var(--textw));
  margin: 26px 0 0;
  font: 300 clamp(17px, 1.32vw, 21px)/1.5 var(--lf-font);
  letter-spacing: .01em;
  color: rgba(255, 255, 255, .96);
  text-shadow: 0 1px 16px rgba(var(--dusk), .45);
}
.routes {
  list-style: none; margin: clamp(30px, 5.4vh, 60px) 0 0; padding: 0;
  width: min(470px, var(--textw));
  border-top: 1px solid rgba(255, 255, 255, .5);
}
.route {
  position: relative;
  display: grid; grid-template-columns: 1fr auto; column-gap: 20px;
  min-height: 72px; padding: 16px 0 17px;
  border-bottom: 1px solid rgba(255, 255, 255, .5);
  color: #fff; text-decoration: none;
  text-shadow: 0 1px 14px rgba(var(--dusk), .5);
}
.route:hover { color: #fff; }
.route__main { grid-column: 1; font: 400 18px/1.35 var(--lf-font); letter-spacing: .005em; }
.route__sub { grid-column: 1; margin-top: 3px; font: 400 13.5px/1.4 var(--lf-font); color: rgba(255, 255, 255, .9); letter-spacing: .01em; }
.route__arrow { grid-column: 2; grid-row: 1 / span 2; align-self: center; width: 30px; height: 12px; transition: transform .5s var(--ease); }
.route:hover .route__arrow, .route:focus-visible .route__arrow { transform: translateX(6px); }

/* ---------- Inner page heads ---------- */
.page-head { padding: calc(clamp(150px, 14.5vw, 214px) + var(--top)) 0 var(--sec-y-sm); }
.page-head__inner .page-title { max-width: 17em; }
.page-head .lead { max-width: 34em; }
.page-head--center .page-head__inner { text-align: center; }
.page-head--center .page-title { margin-inline: auto; max-width: 15em; }
.page-head--center .label { justify-content: center; }
.page-head--center .label::after { content: ''; width: 28px; height: 1px; background: var(--lf-lav-400); }
.page-head--center .lead { margin-inline: auto; color: var(--ink-2); }

/* Split: words on the left, a large photograph running off the right-hand edge */
.page-head--split { padding-bottom: var(--sec-y); }
.page-head--split .page-head__grid {
  width: 100%; max-width: none; margin: 0;
  padding-left: max(var(--gutter), calc((100% - var(--maxw)) / 2));
  display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
  column-gap: clamp(36px, 5.4vw, 96px); align-items: center;
}
.page-head__text { padding-bottom: 8px; }
.page-head--split .page-title { font-size: clamp(36px, 3.75vw, 56px); }
.page-head__text > p:not(.label):not(.lead) { color: var(--ink-2); max-width: 32em; }
.page-head__media .crop { border-radius: 2px 0 0 2px; }
.page-head__media figcaption { padding: 0 var(--gutter) 0 0; }

.crumbs ol { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 0; list-style: none; margin: 0 0 22px; padding: 0; font: 500 12px/1.4 var(--lf-font); letter-spacing: .2em; text-transform: uppercase; }
.crumbs li { display: inline-flex; align-items: center; }
.crumbs li + li::before { content: ''; width: 18px; height: 1px; margin: 0 12px; background: var(--lf-lav-400); }
.crumbs a { display: inline-flex; align-items: center; min-height: 44px; margin: -12px 0; color: var(--lf-lav-800); text-decoration: none; }
.crumbs a:hover { color: var(--lf-lav-950); text-decoration: underline; }
.crumbs [aria-current] { color: var(--ink-2); }

/* ---------- Section furniture ---------- */
.section-head { max-width: 760px; margin-bottom: clamp(30px, 3.4vw, 48px); }
.section-head > p:last-child:not(.label) { color: var(--ink-2); margin: 0; }
.section-head--center { margin-inline: auto; text-align: center; }
.section-head--center .label { justify-content: center; }
.section-head--center .label::after { content: ''; width: 28px; height: 1px; background: var(--lf-lav-400); }
.section-head--center .h2 { max-width: 15em; margin-inline: auto; }
.section-head--center > p:last-child { max-width: 34em; margin-inline: auto; }
.section-foot { margin: clamp(26px, 3vw, 40px) 0 0; text-align: center; }

/* ---------- Home: our story, in a sentence ---------- */
.intro { position: relative; overflow: hidden; padding: calc(var(--sec-y) + 12px) 0 var(--sec-y); background: linear-gradient(180deg, var(--paper) 0%, var(--paper) 62%, #f8f4f6 100%); }
.intro__amp { position: absolute; z-index: 0; font-size: clamp(300px, 50vw, 800px); right: -.16em; top: 50%; transform: translateY(-52%); color: #f0eaf3; }
.intro .intro__amp { font-size: clamp(260px, 35vw, 520px); right: -.08em; transform: translateY(-50%); }  /* fits inside the shorter section */
.intro__grid, .story__grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 9fr); column-gap: var(--gap); }
.intro__label, .story__label { grid-column: 1; align-self: start; padding-top: 14px; }
.intro__body, .story__body { grid-column: 2; max-width: 800px; }
.intro__lead, .story__lead { margin: 0 0 clamp(32px, 3.6vw, 52px); font: 300 clamp(27px, 2.75vw, 42px)/1.3 var(--lf-font); letter-spacing: -.01em; text-wrap: pretty; }
.triad { margin: 0 0 clamp(26px, 3vw, 40px); font: italic 400 clamp(25px, 2.3vw, 34px)/1.32 var(--serif); color: var(--lf-lav-800); }
.triad span { display: block; }
.triad span:nth-child(2) { padding-left: 1.4em; }
.triad span:nth-child(3) { padding-left: 2.8em; }

/* ---------- Range cards ---------- */
.ranges-home { padding: var(--sec-y) 0; background: linear-gradient(180deg, #f8f4f6 0, var(--lf-lav-50) 30%, var(--mist) 100%); }
.ranges-home--fd, .ranges-home--families { background: linear-gradient(180deg, var(--paper) 0, var(--lf-lav-50) 40%, var(--mist) 100%); }
.rcards { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(20px, 2.6vw, 44px); }
.rcard__link { position: relative; display: flex; flex-direction: column; height: 100%; color: var(--ink); text-decoration: none; }
.rcard__stage { position: relative; display: grid; place-items: center; aspect-ratio: 1.3; margin-bottom: 22px; }
.rcard__stage img { position: relative; width: 88%; filter: drop-shadow(0 24px 22px rgba(54, 43, 66, .2)) drop-shadow(0 6px 7px rgba(54, 43, 66, .1)); transition: transform .8s var(--ease); }
.rcard__link:hover .rcard__stage img { transform: translateY(-6px); }
.rcard__name { font: 300 clamp(28px, 2.4vw, 36px)/1.1 var(--lf-font); letter-spacing: -.015em; margin: 0 0 8px; }
.rcard__sub { font: italic 400 clamp(19px, 1.45vw, 21px)/1.3 var(--serif); color: var(--lf-lav-800); margin-bottom: 14px; }
.rcard__line { color: var(--ink-2); font-size: 16px; line-height: 1.6; margin-bottom: 14px; }
.rcard .more { margin-top: auto; }
.wash {
  position: absolute; inset: -4% -6% 0;
  background:
    radial-gradient(42% 46% at 34% 38%, rgba(216, 180, 90, .13), rgba(216, 180, 90, 0) 100%),
    radial-gradient(closest-side, rgba(196, 178, 214, .78), rgba(214, 202, 228, .52) 46%, rgba(236, 230, 242, 0) 100%);
}
.wash::after {
  content: ''; position: absolute; inset: 0; background: var(--grain); opacity: .3; mix-blend-mode: multiply;
  -webkit-mask-image: radial-gradient(closest-side, #000 30%, transparent 100%); mask-image: radial-gradient(closest-side, #000 30%, transparent 100%);
}

/* ---------- Full-bleed photographs ---------- */
.bleed { position: relative; width: min(100%, 1600px); margin-inline: auto; overflow: hidden; background: #5c5236; }
.bleed > img { width: 100%; object-fit: cover; }
.bleed figcaption {
  position: absolute; z-index: 1; left: var(--gutter); bottom: clamp(26px, 3.4vw, 50px);
  color: #fff; font: italic 400 clamp(22px, 2vw, 30px)/1.2 var(--serif); letter-spacing: .005em;
  text-shadow: 0 1px 20px rgba(var(--dusk), .55);
}
.bleed:has(figcaption)::after { content: ''; position: absolute; inset: auto 0 0 0; height: 46%; background: linear-gradient(0deg, rgba(var(--dusk), .5), rgba(var(--dusk), 0)); pointer-events: none; }
.bleed--poppies > img { height: clamp(440px, 50vw, 780px); object-position: 50% 58%; }
.bleed--phacelia > img { height: clamp(320px, 44vw, 660px); object-position: 50% 56%; }
.bleed .crop { aspect-ratio: auto; height: clamp(340px, 44vw, 680px); }
.bleed .crop img { width: 100%; height: 100%; left: 0; top: 0; object-fit: cover; object-position: 50% 60%; }
.bleed--scene .crop img { object-position: 50% calc(var(--cy) / (var(--ih) - var(--ch)) * 100%); }
.bleed--contact .crop { height: clamp(260px, 30vw, 440px); }
.bleed--contact .crop img { object-position: 50% 12%; }

/* ---------- How they're made (home and page) ---------- */
.made { padding: var(--sec-y) 0; background: var(--paper); }
.made__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gap); row-gap: clamp(36px, 3.8vw, 52px); align-items: start; }
.made__text { grid-column: 1 / span 5; padding-top: clamp(0px, 2vw, 30px); }
.made__text .h2 { max-width: 11em; }
.made__text > p:not(.label):not(.lead) { color: var(--ink-2); }
.made__photo { grid-column: 7 / span 6; grid-row: 1; }
.made__quote { grid-column: 2 / span 10; }
.quote { text-align: center; }
.quote blockquote { margin: 0; }
.quote blockquote p { margin: 0 auto; max-width: 17em; font: italic 400 clamp(32px, 3.7vw, 56px)/1.12 var(--serif); letter-spacing: -.008em; color: var(--ink); text-wrap: balance; }
.quote__more { list-style: none; margin: 26px 0 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 40px; font: italic 400 clamp(19px, 1.5vw, 23px)/1.35 var(--serif); color: var(--lf-lav-800); }
.quote figcaption { margin-top: 26px; font: 500 11.5px/1.5 var(--lf-font); font-style: normal; letter-spacing: .18em; text-transform: uppercase; color: var(--lf-lav-800); }

.materials { padding: var(--sec-y) 0; background: linear-gradient(180deg, var(--paper), var(--lf-lav-50)); }
.materials__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--lf-lav-300); counter-reset: m; }
.materials__list li { padding: 30px clamp(18px, 2.4vw, 40px) 0 0; counter-increment: m; }
.materials__list li + li { padding-left: clamp(18px, 2.4vw, 40px); border-left: 1px solid var(--lf-lav-300); }
.materials__list p { margin: 0; color: var(--ink-2); }

.tested { padding: var(--sec-y) 0; background: var(--paper); }
.tested__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gap); align-items: center; }
.tested__mark { grid-column: 1 / span 4; display: grid; place-items: center; aspect-ratio: 1.15; background: var(--lf-lav-50); border-radius: 2px; }
.tested__mark img { width: 62%; }
.tested__text { grid-column: 6 / span 7; }
.tested__text > p:not(.label):not(.lead) { color: var(--ink-2); max-width: 34em; }

/* ---------- Two ways in (home) ---------- */
.paths { padding: var(--sec-y) 0; background: var(--stone); }
.paths__grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(28px, 4vw, 64px); }
.path { position: relative; }
.path__photo { margin-bottom: 28px; border-radius: 2px; }
.path__photo img { transition: transform 1.2s var(--ease); }
.path:hover .path__photo img { transform: scale(1.03); }
.path .h3 { font-size: clamp(24px, 2vw, 30px); font-weight: 300; line-height: 1.2; letter-spacing: -.01em; max-width: 18em; }
.path__link { color: var(--ink); text-decoration: none; }
.path__link::after { content: ''; position: absolute; inset: 0; }
.path__link:hover { color: var(--ink); }
.path > p:not(.label) { color: var(--ink-2); max-width: 32em; }

/* ---------- Proof ---------- */
.proof { position: relative; padding: var(--sec-y) 0; background: linear-gradient(180deg, var(--lf-lav-50) 0%, var(--lf-lav-100) 100%); }
.proof__head { max-width: 760px; margin-bottom: clamp(30px, 3.4vw, 48px); }
.proof__row { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--lf-lav-300); }
.proof__row li { padding: 34px clamp(18px, 2.2vw, 34px) 0 0; }
.proof__row li + li { padding-left: clamp(18px, 2.2vw, 34px); border-left: 1px solid var(--lf-lav-300); }
.proof__row h3 { margin: 0 0 10px; font: 500 14px/1.35 var(--lf-font); letter-spacing: .14em; text-transform: uppercase; }
.proof__row p { margin: 0; font-size: 15.5px; line-height: 1.65; color: var(--ink-2); }
.mark { display: block; width: 58px; height: 58px; margin-bottom: 24px; fill: currentColor; color: var(--lf-lav-700); }
.mark--leaf { width: 66px; }
img.mark--ffma { width: auto; height: 42px; margin: 8px 0 32px; background: none; }

/* ---------- Events and journal (home) ---------- */
.notes { padding: var(--sec-y) 0; background: linear-gradient(180deg, var(--paper) 0%, #f8f5f9 100%); border-top: 1px solid rgba(35, 31, 32, .07); }
.notes__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gap); row-gap: 64px; }
.nfe { grid-column: 1 / span 6; display: grid; grid-template-columns: minmax(0, 200px) minmax(0, 1fr); gap: clamp(24px, 2.6vw, 40px); align-items: start; }
.nfe__photo .crop { border-radius: 2px; }
.nfe__photo figcaption { margin-top: 10px; font-size: 13px; }
.nfe__text p:not(.label) { color: var(--ink-2); }
.journal { grid-column: 8 / span 5; }
.journal__list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--rule); }
.journal__list a { display: block; padding: 18px 0 19px; border-bottom: 1px solid var(--rule); color: var(--ink); text-decoration: none; }
.journal__list time { display: block; margin-bottom: 6px; font: 500 11.5px/1.4 var(--lf-font); letter-spacing: .16em; text-transform: uppercase; color: var(--lf-lav-800); }
.journal__list span { font: 400 clamp(18px, 1.45vw, 21px)/1.38 var(--lf-font); text-decoration: underline; text-decoration-color: transparent; text-decoration-thickness: 1px; text-underline-offset: .22em; transition: text-decoration-color .4s var(--ease); }
.journal__list a:hover span { text-decoration-color: currentColor; }
.journal__all { margin: 18px 0 0; }

/* ---------- Closing invitation ---------- */
.closing { position: relative; padding: var(--sec-y) 0 calc(var(--sec-y) + 16px); background: linear-gradient(180deg, #f8f5f9 0%, var(--lf-lav-100) 100%); }
.closing__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gap); row-gap: 32px; align-items: end; }
.closing__text { grid-column: 1 / span 7; }
.closing__text .lead { margin: 0; color: var(--ink-2); max-width: 30em; }
.closing__text .h2 { margin-bottom: 20px; }
.closing__actions { grid-column: 9 / span 4; }
.closing__lines { margin: 22px 0 0; line-height: 2; }
.band { position: absolute; left: 0; right: 0; bottom: 0; height: 16px; background: var(--lf-lav-500) var(--lf-linen) center / 420px auto; }

/* ---------- Our coffins ---------- */
.lav-run { overflow: hidden; background: linear-gradient(180deg, var(--paper) 0, #f8f5f9 14%, var(--lf-lav-50) 34%, var(--mist) 72%, #f3eef6 100%); padding-bottom: var(--sec-y-sm); }
.lav-run--short { padding-bottom: 0; background: linear-gradient(180deg, var(--paper) 0, #f8f5f9 40%, var(--lf-lav-50) 100%); }
.jump { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; list-style: none; margin: 34px 0 0; padding: 0; }
.jump a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 20px; border: 1px solid var(--lf-lav-300); border-radius: 999px; color: var(--lf-lav-900); text-decoration: none; font: 500 14px/1 var(--lf-font); letter-spacing: .02em; background: rgba(255, 255, 255, .5); transition: background-color .35s var(--ease), border-color .35s var(--ease); }
.jump a:hover { background: #fff; border-color: var(--lf-lav-500); }

.range { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gap); align-items: center; padding-block: clamp(24px, 3vw, 44px); }
.range__stage { position: relative; aspect-ratio: 1.42; }
.piece { position: absolute; }
.piece img { width: 100%; filter: drop-shadow(0 30px 26px rgba(54, 43, 66, .2)) drop-shadow(0 8px 8px rgba(54, 43, 66, .1)); }
.piece figcaption, .finish figcaption { margin-top: 16px; text-align: center; font: 500 11px/1.4 var(--lf-font); font-style: normal; letter-spacing: .28em; text-transform: uppercase; color: var(--lf-lav-900); }
.piece--solo { left: 6%; right: 6%; top: 50%; transform: translateY(-50%); }
.piece--oak { left: 0; width: 68%; bottom: 2%; z-index: 2; }
.piece--mahogany { right: 1%; width: 52%; top: 9%; z-index: 1; }
.piece--mahogany figcaption { position: absolute; right: 2%; bottom: 100%; margin: 0 0 12px; }
.piece--oak figcaption { text-align: left; padding-left: 14%; }
.range__name { font: 300 clamp(38px, 3.7vw, 58px)/1.04 var(--lf-font); letter-spacing: -.018em; margin: 0 0 12px; }
.range__sub { margin: 0 0 26px; font: italic 400 clamp(20px, 1.6vw, 24px)/1.3 var(--serif); color: var(--lf-lav-800); }
.range__text > p:not([class]) { color: var(--ink-2); }
.range__pull { margin: 30px 0; padding-left: 20px; border-left: 1px solid var(--lf-lav-400); font: italic 400 clamp(23px, 2vw, 29px)/1.28 var(--serif); color: var(--ink); }
.finishes { margin: 26px 0 8px; font: 500 12px/1.6 var(--lf-font); letter-spacing: .26em; text-transform: uppercase; color: var(--lf-lav-800); }
.finishes__k { display: block; margin-bottom: 4px; font-weight: 400; letter-spacing: .2em; color: var(--ink-2); }
.range__note { margin: 16px 0 18px; font: italic 300 15px/1.55 var(--lf-font); color: var(--ink-2); }
.range--forest-spirit .range__stage { grid-column: 1 / span 7; grid-row: 1; aspect-ratio: 1.4; }
.range--forest-spirit .range__text { grid-column: 9 / span 4; grid-row: 1; }
.range--reflective-nature .range__text { grid-column: 1 / span 4; grid-row: 1; }
.range--reflective-nature .range__stage { grid-column: 6 / span 7; grid-row: 1; aspect-ratio: 1.6; }
.range--dotted-moments .range__stage { grid-column: 1 / span 7; grid-row: 1; aspect-ratio: 1.6; }
.range--dotted-moments .range__text { grid-column: 9 / span 4; grid-row: 1; }

.handles { text-align: center; padding: var(--sec-y-sm) 0 0; border-top: 1px solid var(--lf-lav-200); }
.handles__list { display: flex; flex-wrap: wrap; justify-content: center; gap: 18px clamp(28px, 5vw, 80px); list-style: none; margin: 8px 0 26px; padding: 0; }
.handles__list li { display: flex; flex-direction: column; align-items: center; gap: 10px; font: 300 clamp(22px, 2.2vw, 32px)/1.3 var(--lf-font); letter-spacing: -.01em; }
.handles__list svg { width: 88px; height: 55px; color: var(--lf-lav-700); }
.handles__note { max-width: 34em; margin-inline: auto; color: var(--ink-2); }
.handles--page { padding: var(--sec-y) 0; border: 0; background: var(--lf-lav-50); }

.every { padding: var(--sec-y) 0; background: var(--paper); }
.every__list, .steps__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--rule); }
.every__list li, .steps__list li { padding: 30px clamp(18px, 2.4vw, 40px) 0 0; display: flex; flex-direction: column; }
.every__list li + li, .steps__list li + li { padding-left: clamp(18px, 2.4vw, 40px); border-left: 1px solid var(--rule); }
.every__list p, .steps__list p { color: var(--ink-2); }
.every__list .more { margin-top: auto; }

.asks-pair { padding: var(--sec-y) 0; background: var(--stone); }
.asks-pair--tint { background: linear-gradient(180deg, var(--lf-lav-50), var(--lf-lav-100)); }
.asks-pair__grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(28px, 4vw, 64px); }
.ask { padding-top: 28px; border-top: 1px solid var(--lf-lav-300); }
.ask .h3 { font-weight: 300; font-size: clamp(24px, 2vw, 29px); line-height: 1.22; letter-spacing: -.01em; max-width: 16em; }
.ask > p:not(.label) { color: var(--ink-2); max-width: 30em; }

/* ---------- A range ---------- */
.rhead { padding-bottom: var(--sec-y-sm); }
.rhead__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gap); align-items: center; }
.rhead__text { grid-column: 1 / span 5; }
.rhead__title { font-size: clamp(46px, 5.4vw, 84px); line-height: 1; margin-bottom: 14px; }
.rhead__text .lead { margin: 0; color: var(--ink-2); }
.rhead__stage { grid-column: 6 / span 7; position: relative; padding: clamp(10px, 2vw, 30px) 0 0; }
.rhead__stage .wash { inset: -8% -10% 6%; }
.finish img { position: relative; width: 100%; filter: drop-shadow(0 30px 26px rgba(54, 43, 66, .22)) drop-shadow(0 8px 8px rgba(54, 43, 66, .1)); }
.finish-view { position: relative; display: grid; }
.finish-view .finish + .finish { margin-top: 24px; }
html.js .finish-view.is-live .finish { grid-area: 1 / 1; margin: 0; transition: opacity .6s var(--ease), transform .8s var(--ease); }
html.js .finish-view.is-live .finish[hidden] { display: block; opacity: 0; transform: translateX(14px); visibility: hidden; transition: opacity .4s var(--ease), transform .6s var(--ease), visibility 0s linear .6s; }
.finish-pick { position: relative; display: flex; justify-content: center; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.finish-pick[hidden] { display: none; }
.finish-pick__btn {
  display: inline-flex; align-items: center; gap: 10px; min-height: 44px; padding: 0 18px 0 12px;
  border: 1px solid var(--lf-lav-300); border-radius: 999px; background: rgba(255, 255, 255, .7);
  font: 500 14px/1 var(--lf-font); letter-spacing: .02em; color: var(--lf-lav-900); cursor: pointer;
  transition: background-color .35s var(--ease), border-color .35s var(--ease), color .35s var(--ease);
}
.finish-pick__btn:hover { border-color: var(--lf-lav-600); }
.finish-pick__btn[aria-pressed='true'] { background: var(--lf-lav-800); border-color: var(--lf-lav-800); color: #fff; }
.swatch { display: inline-block; width: 20px; height: 20px; flex: none; border-radius: 50%; box-shadow: inset 0 0 0 1px rgba(35, 31, 32, .18); background-size: cover; }
.swatch--oak { background: linear-gradient(135deg, #e6c6a3, #c99f78 55%, #ddb994); }
.swatch--mahogany { background: linear-gradient(135deg, #7a2e24, #4e1a15 55%, #6b281f); }
.swatch--reflective { background: conic-gradient(from 30deg, #f6b0c8, #fbd38d, #a9d8ee, #e9a6cf, #f6b0c8); }
.swatch--dotted { background: radial-gradient(circle at 30% 35%, #e66 0 2px, transparent 2.5px), radial-gradient(circle at 68% 30%, #4a9 0 2px, transparent 2.5px), radial-gradient(circle at 50% 70%, #58c 0 2px, transparent 2.5px), radial-gradient(circle at 25% 72%, #eb4 0 2px, transparent 2.5px), #faf6ee; }

.bleed--scene { margin-top: 0; }
.rbody { padding: var(--sec-y) 0 var(--sec-y-sm); background: var(--paper); }
.rbody__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gap); row-gap: 48px; align-items: start; }
.rbody__text { grid-column: 1 / span 6; }
.rbody__text .lead { color: var(--ink); }
.facts { grid-column: 8 / span 5; margin: 0; border-top: 1px solid var(--rule); }
.facts div { display: grid; grid-template-columns: 128px 1fr; gap: 16px; padding: 16px 0; border-bottom: 1px solid var(--rule); }
.facts dt { font: 500 11.5px/2 var(--lf-font); letter-spacing: .16em; text-transform: uppercase; color: var(--lf-lav-800); }
.facts dd { margin: 0; font-size: 16px; line-height: 1.6; color: var(--ink-2); }

.gallery { padding: 0 0 var(--sec-y); background: var(--paper); }
.gallery__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gap); row-gap: 40px; align-items: start; }
.gallery--1 .gallery__item { grid-column: 3 / span 8; }
.gallery--2 .gallery__item:nth-child(1) { grid-column: 1 / span 7; }
.gallery--2 .gallery__item:nth-child(2) { grid-column: 9 / span 4; margin-top: clamp(40px, 6vw, 100px); }
.gallery--3 .gallery__item:nth-child(1) { grid-column: 1 / span 12; }
.gallery--3 .gallery__item:nth-child(2) { grid-column: 1 / span 5; }
.gallery--3 .gallery__item:nth-child(3) { grid-column: 7 / span 6; margin-top: clamp(40px, 6vw, 100px); }
.gallery .crop { border-radius: 2px; }

.pager { padding: clamp(40px, 4vw, 56px) 0; background: var(--paper); border-top: 1px solid var(--rule); }
.pager__grid { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 24px; }
.pager__link { display: flex; flex-direction: column; gap: 4px; padding: 10px 0; color: var(--ink); text-decoration: none; }
.pager__link--next { text-align: right; align-items: flex-end; }
.pager__k { font: 500 11.5px/1.4 var(--lf-font); letter-spacing: .18em; text-transform: uppercase; color: var(--lf-lav-800); }
.pager__name { font: 300 clamp(24px, 2.2vw, 32px)/1.15 var(--lf-font); letter-spacing: -.01em; }
.pager__link:hover .pager__name { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .2em; }
.pager__all { display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px; border: 1px solid var(--lf-lav-300); border-radius: 999px; color: var(--lf-lav-900); text-decoration: none; font: 500 13.5px/1 var(--lf-font); letter-spacing: .03em; }
.pager__all:hover { background: var(--lf-lav-50); }

/* ---------- Funeral directors ---------- */
.steps { padding: var(--sec-y) 0; background: linear-gradient(180deg, var(--paper), var(--lf-lav-50)); }
.steps__list { counter-reset: step; }
.steps__list li { counter-increment: step; }
.steps__list li::before { content: counter(step); display: grid; place-items: center; width: 44px; height: 44px; margin-bottom: 20px; border: 1px solid var(--lf-lav-400); border-radius: 50%; font: 400 17px/1 var(--lf-font); color: var(--lf-lav-800); }
.support { padding: var(--sec-y) 0; background: var(--paper); }
.support__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gap); row-gap: 40px; align-items: start; }
.support__head { grid-column: 1 / -1; margin-bottom: 0; }
.support__item { grid-column: span 4; padding-top: 30px; border-top: 1px solid var(--rule); }
.support__icon { display: block; width: 52px; height: 52px; margin-bottom: 22px; color: var(--lf-lav-700); }
.support__icon--qr { width: 40px; height: 40px; margin: 6px 0 28px 6px; }
.support__item p { color: var(--ink-2); max-width: 30em; margin: 0; }
.why { padding: var(--sec-y) 0; background: var(--lf-lav-50); }
.why__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gap); row-gap: 56px; align-items: center; }
.why__text { grid-column: 1 / span 6; }
.why__quote { grid-column: 8 / span 5; padding: 0; }
.why__quote blockquote p { font-size: clamp(30px, 3vw, 46px); }
.ticks { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--lf-lav-300); }
.ticks li { display: grid; grid-template-columns: 28px 1fr; gap: 14px; padding: 15px 0; border-bottom: 1px solid var(--lf-lav-300); color: var(--ink-2); }
.ticks svg { width: 24px; height: 24px; margin-top: 2px; color: var(--lf-lav-700); }
.ticks b { font-weight: 500; color: var(--ink); }
.visit { padding: var(--sec-y) 0 calc(var(--sec-y) + 16px); background: linear-gradient(180deg, var(--paper) 0%, var(--lf-lav-100) 100%); }
.visit__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gap); row-gap: 48px; align-items: start; }
.visit__text { grid-column: 1 / span 5; }
.visit .form { grid-column: 7 / span 6; }
.visit--brochure { padding-top: var(--sec-y-sm); background: linear-gradient(180deg, var(--lf-lav-100) 0%, var(--paper) 100%); }

/* ---------- Forms (mockups: they send nothing) ---------- */
.form { padding: clamp(28px, 3.2vw, 48px); background: rgba(255, 255, 255, .78); border-radius: 4px; box-shadow: 0 1px 0 rgba(255, 255, 255, .9) inset, 0 40px 70px -48px rgba(54, 43, 66, .45); }
.form .h3 { margin-bottom: 22px; }
.form__who { margin: 0 0 22px; padding: 0; border: 0; }
.form__who legend, .chips legend { padding: 0; margin-bottom: 8px; font: 500 14px/1.4 var(--lf-font); }
.form__who label { display: flex; align-items: center; gap: 12px; min-height: 44px; font-size: 16px; cursor: pointer; }
.form__who input { width: 20px; height: 20px; margin: 0; accent-color: var(--lf-lav-800); }
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 0 18px; }
.field { margin-bottom: 18px; }
.field label { display: block; margin-bottom: 8px; font: 500 14px/1.4 var(--lf-font); }
.opt { font-weight: 300; color: var(--ink-2); }
.field input, .field textarea {
  width: 100%; min-height: 50px; padding: 12px 14px;
  border: 1px solid rgba(35, 31, 32, .3); border-radius: 2px;
  background: #fff; color: var(--ink); font: 400 16px/1.5 var(--lf-font);
  transition: border-color .3s var(--ease);
}
.field textarea { resize: vertical; min-height: 100px; }
.field input:focus, .field textarea:focus { border-color: var(--lf-violet-deep); outline: 2px solid rgba(91, 74, 134, .25); outline-offset: 0; }
.chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 20px; padding: 0; border: 0; }
.chips legend { float: left; width: 100%; }
.chip { position: relative; cursor: pointer; }
.chip input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.chip > span { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 16px; border: 1px solid rgba(35, 31, 32, .24); border-radius: 999px; background: #fff; font: 400 15px/1 var(--lf-font); transition: background-color .3s var(--ease), border-color .3s var(--ease), color .3s var(--ease); }
.chip svg { width: 0; height: 16px; transition: width .3s var(--ease); }
.chip input:checked + span { background: var(--lf-lav-800); border-color: var(--lf-lav-800); color: #fff; }
.chip input:checked + span svg { width: 16px; }
.chip input:focus-visible + span { outline: 2px solid var(--lf-violet-deep); outline-offset: 2px; }
.chip .swatch { width: 16px; height: 16px; }
.form .btn { margin-top: 6px; }
.form__thanks { margin: 20px 0 0; padding: 16px 18px; border-left: 2px solid var(--lf-lav-500); background: var(--lf-lav-50); font-size: 15.5px; }
.form__thanks:focus, .form__error:focus { outline: none; }
.form__error { margin: 20px 0 0; padding: 16px 18px; border-left: 2px solid #a33a44; background: #fbf2f2; font-size: 15.5px; }
.form__error ul { margin: 6px 0 0; padding-left: 20px; }
.form__note { margin: 14px 0 0; font-size: 13.5px; line-height: 1.5; color: var(--ink-2); }
/* The spam trap: off-screen for people, still filled in by bots. */
.form__hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

/* ---------- Families ---------- */
.found { padding: 0 0 var(--sec-y-sm); }
.found__panel { display: grid; grid-template-columns: auto 1fr; gap: clamp(18px, 2.4vw, 36px); align-items: start; max-width: 940px; padding: clamp(26px, 3vw, 44px); background: var(--lf-lav-50); border-left: 2px solid var(--lf-lav-500); }
.found__leaf { width: 46px; margin-top: 4px; color: var(--lf-lav-500); }
.found__panel .h3 { margin-bottom: 10px; }
.found__panel p { margin: 0; color: var(--ink-2); }
.asks-section { padding: var(--sec-y-sm) 0 var(--sec-y); }
.asks-section__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gap); row-gap: 36px; align-items: start; }
.asks-section__head { grid-column: 1 / span 5; }
.asks-section__head > p:not(.label) { color: var(--ink-2); }
.asks-section .asks { grid-column: 7 / span 6; }
.asks { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--rule); }
.asks li { display: grid; grid-template-columns: 34px 1fr; align-items: baseline; padding: 18px 0 19px; border-bottom: 1px solid var(--rule); font: 400 clamp(19px, 1.6vw, 23px)/1.4 var(--lf-font); }
.asks li::before { content: ''; width: 18px; height: 13.5px; align-self: center; background: url('../svg/leaf-outline-lav600.svg') center / contain no-repeat; }  /* a coloured copy, not a mask (iPhone Safari) */
.ahead { padding: var(--sec-y) 0; background: var(--stone); }
.ahead__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gap); row-gap: 40px; align-items: center; }
.ahead__photo { grid-column: 1 / span 6; }
.ahead__photo .crop { border-radius: 2px; }
.ahead__text { grid-column: 8 / span 5; }
.ahead__text > p:not(.label):not(.lead) { color: var(--ink-2); }
.faq { padding: var(--sec-y) 0; background: var(--paper); }
.faq__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gap); row-gap: 32px; align-items: start; }
.faq__head { grid-column: 1 / span 4; }
.faq__list { grid-column: 6 / span 7; border-top: 1px solid var(--rule); }
.faq details { border-bottom: 1px solid var(--rule); }
.faq summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 64px; padding: 14px 0; cursor: pointer; list-style: none; font: 400 clamp(18px, 1.45vw, 21px)/1.4 var(--lf-font); }
.faq summary::-webkit-details-marker { display: none; }
.faq summary svg { width: 24px; height: 24px; flex: none; color: var(--lf-lav-700); transition: transform .4s var(--ease); }
.faq details[open] summary svg { transform: rotate(45deg); }
.faq details p { margin: 0 0 22px; max-width: 36em; color: var(--ink-2); }

/* ---------- Our story ---------- */
.page-head--story { position: relative; overflow: hidden; padding-bottom: var(--sec-y); background: linear-gradient(180deg, var(--paper) 0%, var(--paper) 62%, #f8f4f6 100%); }
.page-head--story .story__lead { font-size: clamp(32px, 3.4vw, 52px); line-height: 1.22; letter-spacing: -.014em; }
.story__cols { columns: 2; column-gap: clamp(28px, 3.2vw, 52px); max-width: 740px; color: var(--ink-2); margin-bottom: clamp(32px, 3.6vw, 52px); }
.story__cols p { break-inside: avoid; }
.page-head--story .triad { margin: 0; }
.beliefs { padding: var(--sec-y) 0; background: var(--paper); }
.beliefs__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(28px, 3.4vw, 56px); }
.beliefs__list li { padding-top: 26px; border-top: 1px solid var(--lf-lav-300); }
.beliefs__h { font: italic 400 clamp(25px, 2.2vw, 32px)/1.2 var(--serif); color: var(--lf-lav-900); margin: 0 0 16px; }
.beliefs__list p { color: var(--ink-2); margin: 0; }
.local { padding: var(--sec-y) 0; background: linear-gradient(180deg, var(--lf-lav-50), var(--lf-lav-100)); }
.local__grid, .events__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gap); row-gap: 48px; align-items: center; }
.local__text, .events__text { grid-column: 1 / span 6; }
.local__text > p:not(.label):not(.lead), .events__text > p:not(.label):not(.lead) { color: var(--ink-2); }
.local__accred { grid-column: 8 / span 5; }
.local__accred .label { margin-bottom: 6px; }
.accred { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--lf-lav-300); }
.accred li { display: grid; grid-template-columns: 128px 1fr; gap: 20px; align-items: center; padding: 16px 0; border-bottom: 1px solid var(--lf-lav-300); }
.accred__mark { display: grid; place-items: center; height: 76px; padding: 8px 10px; background: #fff; border-radius: 3px; }
.accred__mark img { max-width: 100%; max-height: 60px; width: auto; height: auto; }
.accred__abbr { font: 600 19px/1 var(--lf-font); letter-spacing: .12em; color: var(--lf-lav-800); }
.accred__text { display: grid; gap: 4px; }
.accred__name { font: 400 17px/1.35 var(--lf-font); }
.accred__line { color: var(--ink-2); font-size: 14.5px; }

/* ---------- Journal ---------- */
.page-head:has(+ .posts) { padding-bottom: clamp(40px, 4vw, 64px); }
.posts { padding: 0 0 var(--sec-y); }
.post { position: relative; }
.post__link { color: var(--ink); text-decoration: none; }
.post__link::after { content: ''; position: absolute; inset: 0; }
.post__link:hover { color: var(--ink); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .2em; }
.post__meta { display: flex; flex-wrap: wrap; gap: 4px 14px; margin: 0 0 10px; font: 500 11.5px/1.4 var(--lf-font); letter-spacing: .16em; text-transform: uppercase; color: var(--lf-lav-800); }
.post__meta span::after { content: '·'; margin-left: 14px; }
.post__photo { margin-bottom: 22px; border-radius: 2px; }
.post__photo img { transition: transform 1.2s var(--ease); }
.post:hover .post__photo img { transform: scale(1.03); }
.post__title { font: 400 clamp(21px, 1.7vw, 25px)/1.3 var(--lf-font); letter-spacing: -.005em; margin: 0 0 12px; text-wrap: balance; }
.post > p:last-child, .post__text > p:not(.post__meta) { color: var(--ink-2); font-size: 16px; }
.post--lead { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gap); align-items: center; padding-bottom: clamp(36px, 4vw, 56px); margin-bottom: clamp(36px, 4vw, 56px); border-bottom: 1px solid var(--rule); }
.post--lead .post__photo { grid-column: 1 / span 7; margin: 0; }
.post--lead .post__text { grid-column: 9 / span 4; }
.post--lead .post__title { font-size: clamp(28px, 2.6vw, 40px); font-weight: 300; line-height: 1.15; letter-spacing: -.012em; }
.posts__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 56px clamp(24px, 3vw, 48px); }
.posts__grid--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.events { padding: var(--sec-y) 0; background: linear-gradient(180deg, var(--lf-lav-50), var(--lf-lav-100)); }

/* ---------- Article ---------- */
.article__wrap { width: min(100% - 2 * var(--gutter), 760px); margin-inline: auto; }
.article__head { padding-bottom: clamp(28px, 3vw, 44px); }
.article__title { font-size: clamp(36px, 4vw, 58px); }
.article__head .lead { color: var(--ink-2); }
.article__photo { width: min(100% - 2 * var(--gutter), 960px); margin: 0 auto clamp(32px, 3.6vw, 52px); }
.article__photo .crop { border-radius: 2px; }
.article__photo--narrow { width: min(100% - 2 * var(--gutter), 620px); }
.prose { font-size: 18px; line-height: 1.75; }
.prose h2 { font: 400 clamp(24px, 2vw, 30px)/1.25 var(--lf-font); letter-spacing: -.01em; margin: 1.9em 0 .7em; }
.prose h3 { font: 500 clamp(19px, 1.5vw, 22px)/1.35 var(--lf-font); margin: 1.7em 0 .55em; }
.prose h4 { font: 600 17px/1.45 var(--lf-font); margin: 1.4em 0 .45em; }
.prose p, .prose ul, .prose ol { margin: 0 0 1.15em; }
.prose ul, .prose ol { padding-left: 1.3em; }
.prose li { margin-bottom: .45em; }
.prose li > ul { margin: .45em 0 0; }
.prose blockquote { margin: 1.6em 0; padding-left: 24px; border-left: 1px solid var(--lf-lav-400); }
.prose blockquote p { font: italic 400 clamp(25px, 2.2vw, 32px)/1.25 var(--serif); color: var(--lf-lav-900); margin: 0; }
.prose__quotes { list-style: none; padding: 0 !important; margin: 1.4em 0 !important; font: italic 400 clamp(24px, 2vw, 29px)/1.3 var(--serif); color: var(--lf-lav-900); }
.prose__quotes li + li { margin-top: 8px; }
.prose__end { font-weight: 500; }
.prose__mark { margin: 2em 0; padding: 32px; background: var(--lf-lav-50); text-align: center; }
.prose__mark img { width: min(260px, 70%); margin: 0 auto 16px; }
.prose__photo { margin: 2em auto; max-width: 420px; }
.prose__photo .crop { border-radius: 2px; }
.prose__photo figcaption { margin-top: 12px; }
.share { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 24px; margin-top: clamp(28px, 3vw, 44px); padding-top: 26px; border-top: 1px solid var(--rule); }
.share .label { margin: 0; }
.share__list { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0; padding: 0; }
.share__btn {
  display: inline-flex; align-items: center; gap: 9px; min-height: 44px; padding: 0 16px;
  border: 1px solid var(--rule); border-radius: 2px; background: transparent; color: var(--ink);
  font: 500 13px/1 var(--lf-font); letter-spacing: .03em; text-decoration: none; cursor: pointer;
  transition: background-color .3s var(--ease), border-color .3s var(--ease);
}
.share__btn:hover { background: var(--lf-lav-50); border-color: var(--lf-lav-400); color: var(--ink); }
.share__btn svg { width: 17px; height: 17px; flex: none; color: var(--lf-lav-800); }
.article__asks { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; margin-top: var(--sec-y-sm); padding-bottom: var(--sec-y); }
.article__asks .h3 { font-size: 22px; }
.related { padding: var(--sec-y) 0; background: var(--stone); }

/* ---------- Contact ---------- */
.contact { padding: calc(clamp(150px, 14.5vw, 214px) + var(--top)) 0 var(--sec-y); background: linear-gradient(180deg, var(--paper) 0%, #f8f5f9 60%, var(--lf-lav-100) 100%); }
.contact__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gap); row-gap: 48px; align-items: start; }
.contact__text { grid-column: 1 / span 5; }
.contact .form { grid-column: 7 / span 6; }
.contact__list { margin: 36px 0 0; padding: 0; border-top: 1px solid var(--rule); }
.contact__list div { display: grid; grid-template-columns: 96px 1fr; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--rule); }
.contact__list dt { font: 500 11.5px/2.1 var(--lf-font); letter-spacing: .16em; text-transform: uppercase; color: var(--lf-lav-800); }
.contact__list dd { margin: 0; }
.contact__list dd a { display: inline-flex; align-items: center; min-height: 44px; margin: -10px 0; }
.contact__note { display: grid; grid-template-columns: 30px 1fr; gap: 14px; margin: 30px 0 0; max-width: 30em; font-size: 15.5px; line-height: 1.65; color: var(--ink-2); }
.contact__note + .contact__note { margin-top: 18px; }
.contact__note .lf-leaf { width: 30px; margin-top: 2px; color: var(--lf-lav-500); }

/* ---------- Legal and not found ---------- */
.legal { padding-bottom: var(--sec-y); }
.page-head--404 { min-height: 70svh; }
.lost { list-style: none; margin: 32px 0 0; padding: 0; border-top: 1px solid var(--rule); max-width: 520px; }
.lost li { border-bottom: 1px solid var(--rule); }
.lost .more { width: 100%; justify-content: space-between; min-height: 60px; font-size: 17px; }

/* ---------- Footer ---------- */
.footer { position: relative; overflow: hidden; padding: var(--sec-y) 0 calc(48px + var(--bottom)); background: var(--lf-lav-950); color: var(--lf-lav-200); }
.footer__amp { position: absolute; z-index: 0; font-size: clamp(280px, 36vw, 560px); right: -.1em; top: -.08em; color: rgba(225, 216, 234, .045); }
.footer__grid, .footer__legal { position: relative; z-index: 1; }
.footer__grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.2fr); gap: 48px var(--gap); }
.footer__logo { display: block; width: 116px; color: #fff; }
.footer__logo:hover { color: #fff; }
.footer__logo .lf-logo { display: block; width: 100%; }
.tagline-mark { display: block; width: min(100%, 340px); height: auto; aspect-ratio: 860.9 / 59.2; margin-top: 30px; fill: currentColor; color: var(--lf-lav-300); }
.footer__k { margin: 6px 0 16px; font: 500 11.5px/1.4 var(--lf-font); letter-spacing: .2em; text-transform: uppercase; color: var(--lf-lav-300); }
.footer ul { list-style: none; margin: 0; padding: 0; }
.footer__nav li a { display: inline-flex; align-items: center; min-height: 40px; }
.footer a { color: #fff; text-decoration: underline; text-decoration-color: transparent; transition: text-decoration-color .35s var(--ease); }
.footer a:hover { color: #fff; text-decoration-color: rgba(255, 255, 255, .7); }
.footer__contact p { line-height: 2; margin-bottom: 12px; }
.footer__contact p a { display: inline-flex; align-items: center; min-height: 40px; }
.footer__addr { line-height: 1.6 !important; color: var(--lf-lav-200); font-size: 15px; max-width: 18em; }
.social { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; }
.footer__legal { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px 32px; margin-top: clamp(40px, 4.6vw, 64px); padding-top: 24px; border-top: 1px solid rgba(255, 255, 255, .14); font-size: 13px; line-height: 1.6; color: var(--lf-lav-300); }
.footer__legal p { margin: 0; max-width: 60em; }
.footer__legal ul { display: flex; flex-wrap: wrap; gap: 4px 22px; }
.footer__legal a { display: inline-flex; align-items: center; min-height: 40px; }

/* ---------- Reveal (only when site.js runs; everything is visible without it) ---------- */
html.js [data-reveal] { transition: opacity .9s var(--ease), transform .9s var(--ease); }
html.js [data-reveal].is-pending { opacity: 0; transform: translateY(24px); }
html.no-anim [data-reveal] { transition: none !important; }

@media (prefers-reduced-motion: reduce) {
  .hero__img { animation: none; }
  html.js [data-reveal] { transition: none; }
  html.js [data-reveal].is-pending { opacity: 1; transform: none; }
  .runner, .runner.is-shown { transition: none; }
  .tab, .more__arrow, .route__arrow, .rcard__stage img, .path__photo img, .post__photo img { transition: none; }
}

/* ---------- Mid widths ---------- */
@media (max-width: 1180px) {
  .masthead__nav, .masthead__cta { display: none; }
  .masthead__menu { display: inline-flex; }
  .runner__nav, .runner__cta, .masthead__socials, .runner__socials { display: none; }
  .runner__menu { display: inline-flex; align-items: center; }
  .footer__grid { grid-template-columns: 1fr 1fr 1fr; }
  .footer__brand { grid-column: 1 / -1; }
}

/* ---------- Narrower: the cover stacks (photo above, words below on the meadow at dusk) ---------- */
@media (max-width: 1099.98px) {
  .hero { --S: 100vw; height: auto; background: #241c27; }
  .hero__media { bottom: auto; height: calc(100vw * 1954 / 1254); }
  .hero__img {
    object-fit: cover; object-position: 50% 0; transform-origin: 50% 40%;
    -webkit-mask-image: linear-gradient(180deg, #000 82%, transparent 100%); mask-image: linear-gradient(180deg, #000 82%, transparent 100%);
  }
  .hero__shade {
    background:
      linear-gradient(180deg, rgba(var(--dusk), .5) 0, rgba(var(--dusk), 0) 140px),
      linear-gradient(180deg, rgba(var(--dusk), 0) calc(var(--S) * .62), rgba(var(--dusk), .5) calc(var(--S) * .94), rgba(var(--dusk), .62) calc(var(--S) * 1.2), rgba(36, 28, 39, .9) 100%);
  }
  .hero__inner { --textw: 100%; height: auto; padding: calc(var(--S) - 16px) var(--gutter) 40px; }
  .hero__title { font-size: clamp(34px, 9.4vw, 64px); line-height: 1.08; }
  .hero__line { margin-top: 18px; font-size: 16.5px; }
  .routes { width: 100%; max-width: 560px; margin-top: 28px; }
}

@media (max-width: 860px) {
  .intro__grid, .story__grid { grid-template-columns: 1fr; }
  .intro__label, .story__label { grid-column: 1; padding-top: 0; }
  .intro__body, .story__body { grid-column: 1; }
  .page-head--split .page-head__grid { grid-template-columns: 1fr; padding-left: 0; row-gap: 40px; }
  .page-head--split .page-head__text { padding: 0 var(--gutter); }
  .page-head__media .crop { border-radius: 0; }
  .page-head__media figcaption { padding: 0 var(--gutter); }
  .rcards { grid-template-columns: 1fr; gap: 48px; max-width: 520px; margin-inline: auto; }
  .made__grid, .range, .rhead__grid, .rbody__grid, .gallery__grid, .tested__grid, .support__grid, .why__grid, .visit__grid,
  .asks-section__grid, .ahead__grid, .faq__grid, .local__grid, .events__grid, .notes__grid, .contact__grid, .closing__grid, .post--lead { grid-template-columns: minmax(0, 1fr); }
  .made__text, .made__photo, .made__quote, .range .range__stage, .range .range__text, .rhead__text, .rhead__stage, .rbody__text, .facts,
  .gallery .gallery__item, .tested__mark, .tested__text, .support__item, .why__text, .why__quote, .visit__text, .visit .form,
  .asks-section__head, .asks-section .asks, .ahead__photo, .ahead__text, .faq__head, .faq__list, .local__text, .events__text, .local__accred,
  .nfe, .journal, .contact__text, .contact .form, .closing__text, .closing__actions, .post--lead .post__photo, .post--lead .post__text { grid-column: 1 !important; grid-row: auto !important; }
  .gallery .gallery__item { margin-top: 0 !important; }
    .range .range__stage { margin-bottom: 32px; }
  .rhead__stage { margin-top: 24px; }
  .post--lead .post__photo { margin-bottom: 24px; }
  .tested__mark { max-width: 340px; aspect-ratio: 1.6; }
  .paths__grid, .asks-pair__grid, .article__asks { grid-template-columns: 1fr; }
  .every__list, .steps__list, .materials__list, .beliefs__list { grid-template-columns: 1fr; border-top: 0; gap: 0; }
  .every__list li, .steps__list li, .materials__list li, .beliefs__list li, .every__list li + li, .steps__list li + li, .materials__list li + li { padding: 26px 0; border-left: 0; border-top: 1px solid var(--rule); }
  .beliefs__list li + li { margin-top: 0; }
  .proof__row { grid-template-columns: 1fr 1fr; row-gap: 36px; }
  .proof__row li:nth-child(3) { border-left: 0; padding-left: 0; }
  .posts__grid { grid-template-columns: 1fr 1fr; }
  .footer__grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 600px) {
  body { font-size: 16.5px; }
  .hero__title .l, .hero__title .l--amp, .hero__title .l--end { display: block; }
  .tab { --tab-w: 94px; border-radius: 0 0 4px 4px; }
  .label { margin-bottom: 18px; }
  .h2 { margin-bottom: 22px; }
  .page-head { padding-top: calc(140px + var(--top)); }
  .page-title { font-size: clamp(33px, 9vw, 42px); }
  .intro__amp, .intro .intro__amp { font-size: 320px; right: -130px; top: 24px; transform: none; }
  .intro__lead, .story__lead, .page-head--story .story__lead { font-size: 25px; line-height: 1.34; margin-bottom: 30px; }
  .story__cols { columns: 1; }
  .triad { font-size: 25px; }
  .triad span:nth-child(2), .triad span:nth-child(3) { padding-left: 0; }
  .bleed--poppies > img { height: 340px; object-position: 47% 52%; }
  .bleed--phacelia > img { height: 240px; }
  .bleed .crop { height: 260px; }
  .quote__more { gap: 6px; flex-direction: column; }
  .paths__grid { row-gap: 56px; }
  .range__stage, .range--forest-spirit .range__stage { aspect-ratio: 1.15; }
  .range--reflective-nature .range__stage, .range--dotted-moments .range__stage { aspect-ratio: 1.45; }
  .range__sub { margin-bottom: 20px; }
  .range__pull { margin: 22px 0; }
  .piece--oak { width: 80%; bottom: 3%; }
  .piece--mahogany { width: 58%; top: 9%; }
  .share__list { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
  .share__btn { width: 100%; justify-content: center; }
  .share__list li:last-child { grid-column: 1 / -1; }
  .piece--oak figcaption { padding-left: 8%; }
  .piece--solo { left: 0; right: 0; }
  .handles__list { gap: 18px 28px; }
  .handles__list li { font-size: 21px; }
  .handles__list svg { width: 72px; height: 45px; }
  .rhead__title { font-size: 46px; }
  .facts div { grid-template-columns: 1fr; gap: 2px; padding: 12px 0; }
  .pager__grid { grid-template-columns: 1fr 1fr; }
  .pager__all { grid-column: 1 / -1; grid-row: 2; justify-self: center; }
  .pager__name { font-size: 22px; }
  .proof__row { grid-template-columns: 1fr; row-gap: 0; border-top: 0; }
  .proof__row li, .proof__row li + li { display: grid; grid-template-columns: 56px 1fr; column-gap: 20px; padding: 18px 0; border-left: 0; border-top: 1px solid var(--lf-lav-300); }
  .proof__row li > :first-child { grid-row: 1 / span 2; margin: 2px 0 0; width: 46px; height: 46px; }
  .proof__row img.mark--ffma { width: 56px; height: auto; margin-top: 12px; }
  .notes__grid { row-gap: 48px; }
  .nfe { grid-template-columns: 104px minmax(0, 1fr); gap: 18px 20px; }
  .nfe__photo { grid-row: 1; }
  .nfe__text { display: contents; }
  .nfe__text .label, .nfe__text h2 { grid-column: 2; }
  .nfe__text .label { grid-row: 1; align-self: start; margin: 4px 0 0; }
  .nfe__text h2 { grid-row: 1; align-self: end; margin: 0 0 6px; }
  .nfe__text p:not(.label), .nfe__text .more { grid-column: 1 / -1; margin: 0; }
  .nfe__photo figcaption { display: none; }
  .field-row { grid-template-columns: 1fr; }
  .form { padding: 24px 20px 28px; }
  .contact { padding-top: calc(140px + var(--top)); }
  .contact__list div { grid-template-columns: 1fr; gap: 0; padding: 12px 0; }
  .found__panel { grid-template-columns: 1fr; }
  .found__leaf { width: 38px; }
  .posts__grid, .posts__grid--two { grid-template-columns: 1fr; }
  .accred li { grid-template-columns: 104px 1fr; gap: 16px; }
  .prose { font-size: 17px; }
  .footer { padding-bottom: 40px; }
  .footer__grid { grid-template-columns: 1fr 1fr; gap: 36px 16px; }
  .footer__contact { grid-column: 1 / -1; }
  .footer__nav li a, .footer__contact p a, .footer__legal a { min-height: 44px; }
  .footer__legal { margin-top: 40px; }
}

@media print {
  .share { display: none; }
  .masthead, .runner, .sheet, .footer, .closing, .hero__media, .skip { display: none !important; }
  body { background: #fff; }
  html.js [data-reveal].is-pending { opacity: 1; transform: none; }
  html.print-asks main > :not(.asks-section) { display: none !important; }
  html.print-asks .asks-section { padding: 0; }
  html.print-asks .asks-section__grid { display: block; }
  html.print-asks .asks-section [data-print] { display: none; }
  html.print-asks .asks-section::before { content: 'Lifelia · Questions you might like to ask your funeral director'; display: block; margin-bottom: 24px; font: 500 11px/1.4 var(--lf-font); letter-spacing: .2em; text-transform: uppercase; color: var(--lf-lav-800); }
  html.print-asks .asks-section__head .label { display: none; }
}

/* Without script both Forest Spirit finishes stack, so start the words at the top */
html:not(.js) .rhead__grid { align-items: start; }
html:not(.js) .rhead__text { padding-top: clamp(20px, 4vw, 64px); }

/* ---------- Cookie banner (only when the site has a Google Analytics ID) ---------- */
.consent { position: fixed; z-index: 60; left: 16px; right: 16px; bottom: calc(16px + var(--bottom)); max-width: 440px; padding: 22px 24px 24px; background: #fff; color: var(--ink); border: 1px solid var(--lf-lav-200); border-radius: 2px; box-shadow: 0 18px 48px rgba(var(--dusk), .22); }
.consent[hidden] { display: none; }
.consent__title { margin: 0 0 8px; font: 500 11.5px/1.4 var(--lf-font); letter-spacing: .2em; text-transform: uppercase; color: var(--lf-lav-800); }
.consent__text { margin: 0 0 18px; font-size: 15px; line-height: 1.6; color: var(--ink-2); }
.consent__text a { color: var(--lf-lav-800); }
.consent__actions { display: flex; flex-wrap: wrap; gap: 10px; }
.consent__btn { flex: 1 1 140px; }
.footer__cookies { display: inline-flex; align-items: center; min-height: 40px; padding: 0; border: 0; background: none; font: inherit; color: #fff; cursor: pointer; text-decoration: underline; text-decoration-color: transparent; transition: text-decoration-color .35s var(--ease); }
.footer__cookies:hover { text-decoration-color: rgba(255, 255, 255, .7); }
@media (max-width: 720px) { .footer__cookies { min-height: 44px; } }
@media print { .consent { display: none !important; } }



