/* =====================================================================
   A NICE LITTLE WEDDING — styles.css
   Mobile-first. Vanilla CSS. No frameworks.
   Aesthetic: warm editorial "paper goods" — paper ground, one serif,
   terracotta as the single sharp accent, hairline rules, subtle grain.
   ===================================================================== */

/* ----------------------------- 1. TOKENS ---------------------------- */
:root {
  /* COLOR — RAW */
  --paper:#F7F0E6; --paper-light:#FCF8F1; --paper-deep:#F1E7D6;
  --ink:#24211E; --ink-soft:#6B635A;
  --brown:#7A5A43; --brown-deep:#5F4633;
  --clay:#B86B5E; --clay-deep:#9C534A;
  --sage:#DDE2D1; --mauve:#E8D6D2;
  --line:#E2D6C4; --white:#FFFFFF;

  /* COLOR — SEMANTIC */
  --bg:var(--paper); --bg-tint:var(--paper-deep);
  --surface:var(--paper-light); --surface-feat:var(--mauve);
  --text:var(--ink); --text-muted:var(--ink-soft);
  --accent:var(--brown); --accent-strong:var(--clay); --accent-safe:var(--clay-deep);
  --btn-bg:var(--brown); --btn-bg-hover:var(--brown-deep); --btn-text:var(--white);
  --border:var(--line); --focus:var(--clay);

  /* TYPE */
  --font-display:"Fraunces",Georgia,"Times New Roman",serif;
  --font-body:"Hanken Grotesk",system-ui,-apple-system,"Segoe UI",sans-serif;
  --fs-hero:clamp(2.5rem,6vw,4rem);
  --fs-promise:clamp(1.625rem,4.5vw,2.5rem);
  --fs-h2:clamp(1.75rem,4vw,2.5rem);
  --fs-h3:clamp(1.25rem,2vw,1.5rem);
  --fs-price:clamp(1.375rem,2.2vw,1.625rem);
  --fs-quote:clamp(1.25rem,3vw,1.75rem);
  --fs-body:clamp(1rem,0.97rem + 0.2vw,1.0625rem);
  --fs-small:0.875rem;
  --fs-eyebrow:clamp(0.75rem,1.5vw,0.8125rem);
  --fs-btn:1rem;
  --fw-regular:400; --fw-medium:500; --fw-semi:600; --fw-bold:700;
  --lh-tight:1.1; --lh-head:1.15; --lh-body:1.6;
  --track-tight:-0.01em; --track-wide:0.12em;

  /* SPACING */
  --space-1:0.25rem; --space-2:0.5rem; --space-3:0.75rem; --space-4:1rem;
  --space-5:1.5rem; --space-6:2rem; --space-7:3rem; --space-8:4rem; --space-9:6rem;
  --gutter:1.25rem;
  --section-pad-y:clamp(3rem,6vw,6rem);

  /* LAYOUT */
  --maxw:1080px; --readw:640px; --header-h:64px;

  /* RADIUS */
  --r-card:16px; --r-field:10px; --r-pill:999px;

  /* SHADOW */
  --shadow-card:0 1px 2px rgba(60,40,25,0.05),0 6px 18px rgba(60,40,25,0.06);
  --shadow-card-hover:0 2px 4px rgba(60,40,25,0.07),0 12px 28px rgba(60,40,25,0.10);
  --shadow-sticky:0 -2px 12px rgba(60,40,25,0.10);

  /* MOTION */
  --dur:180ms; --ease:cubic-bezier(0.2,0.6,0.2,1);
}

/* --------------------------- 2. RESET/BASE -------------------------- */
*,*::before,*::after{box-sizing:border-box;}
*{margin:0;}
html{
  -webkit-text-size-adjust:100%;
  scroll-behavior:smooth;
  scroll-padding-top:calc(var(--header-h) + 20px);
}
body{
  background-color:var(--bg);
  color:var(--text);
  font-family:var(--font-body);
  font-size:var(--fs-body);
  line-height:var(--lh-body);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
/* Subtle paper grain (atmosphere). Remove this block to drop the texture. */
body::before{
  content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:0.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
img{max-width:100%;height:auto;display:block;}
ul{list-style:none;padding:0;}
a{color:var(--accent-safe);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;}
a:hover{color:var(--brown-deep);}
[hidden]{display:none !important;}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:4px;}

/* --------------------------- 3. UTILITIES --------------------------- */
.container{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter);}
.container--narrow{max-width:var(--readw);}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;}
.skip-link{position:absolute;left:var(--gutter);top:-3rem;z-index:200;background:var(--ink);color:var(--paper);
  padding:.6rem 1rem;border-radius:0 0 8px 8px;text-decoration:none;transition:top var(--dur) var(--ease);}
.skip-link:focus{top:0;color:var(--paper);}

.eyebrow{font-family:var(--font-body);font-size:var(--fs-eyebrow);font-weight:var(--fw-semi);
  letter-spacing:var(--track-wide);text-transform:uppercase;color:var(--accent);margin-bottom:var(--space-3);}
.note{font-size:var(--fs-small);color:var(--text-muted);}

/* Editorial pull line (backyard/restaurant, "if not listed") */
.callout-line{font-family:var(--font-display);font-style:italic;font-size:var(--fs-h3);
  color:var(--brown);line-height:var(--lh-head);border-left:2px solid var(--clay);
  padding-left:var(--space-4);margin-block:var(--space-5);max-width:46ch;}

/* ----------------------------- 4. CARD ------------------------------ */
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);
  padding:var(--space-5);box-shadow:var(--shadow-card);}

/* --------------------------- 5. BUTTONS ----------------------------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  font-family:var(--font-body);font-size:var(--fs-btn);font-weight:var(--fw-semi);
  line-height:1;letter-spacing:.01em;text-decoration:none;cursor:pointer;
  padding:1rem 1.75rem;min-height:48px;border-radius:var(--r-pill);
  border:1px solid transparent;transition:background var(--dur) var(--ease),
  transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease),color var(--dur) var(--ease);}
.btn--primary{background:var(--btn-bg);color:var(--btn-text);}
.btn--primary:hover{background:var(--btn-bg-hover);color:var(--btn-text);transform:translateY(-1px);box-shadow:var(--shadow-card);}
.btn--primary:active{transform:translateY(0);}
.btn--ghost{background:transparent;color:var(--brown);border-color:var(--brown);}
.btn--ghost:hover{background:var(--paper-deep);color:var(--brown-deep);}
.btn:disabled,.btn[aria-disabled="true"]{opacity:.5;cursor:not-allowed;transform:none;}

/* Full-width CTAs on mobile (kept inline on desktop, see breakpoints) */
.hero__inner .btn,
#pricing > .container > .btn,
.quiz-result .btn,
.sticky-cta .btn{width:100%;max-width:420px;}

/* --------------------------- 6. ACCORDION --------------------------- */
.accordion{border-top:1px solid var(--border);margin-top:var(--space-4);}
.accordion summary{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);
  list-style:none;cursor:pointer;padding:var(--space-3) 0;font-weight:var(--fw-semi);color:var(--brown);}
.accordion summary::-webkit-details-marker{display:none;}
.accordion summary::after{content:"+";font-family:var(--font-display);font-size:1.25rem;line-height:1;color:var(--brown);}
.accordion[open] summary::after{content:"\2013";}
.accordion__body{padding-bottom:var(--space-3);color:var(--text-muted);}
.accordion__body p + p{margin-top:var(--space-3);}
.accordion--quiet{margin-top:auto;} /* pin to bottom of flex card */
.accordion--quiet summary{font-size:var(--fs-small);padding:var(--space-2) 0;}

/* --------------------------- 7. HEADER/NAV -------------------------- */
.site-header{position:sticky;top:0;z-index:100;background:var(--paper);border-bottom:1px solid var(--border);}
.site-header.is-scrolled{box-shadow:0 2px 12px rgba(60,40,25,0.08);}
.site-header__inner{display:flex;align-items:center;justify-content:space-between;min-height:var(--header-h);}
.wordmark{font-family:var(--font-display);font-weight:var(--fw-semi);font-size:1.125rem;color:var(--ink);text-decoration:none;}
.wordmark:hover{color:var(--ink);}

.nav-toggle{display:inline-flex;align-items:center;justify-content:center;
  width:44px;height:44px;background:transparent;border:0;cursor:pointer;color:var(--ink);}
.nav-toggle__bars,.nav-toggle__bars::before,.nav-toggle__bars::after{
  content:"";display:block;width:22px;height:2px;background:currentColor;border-radius:2px;
  transition:transform var(--dur) var(--ease),opacity var(--dur) var(--ease);}
.nav-toggle__bars{position:relative;}
.nav-toggle__bars::before{position:absolute;top:-7px;}
.nav-toggle__bars::after{position:absolute;top:7px;}
.nav-toggle[aria-expanded="true"] .nav-toggle__bars{background:transparent;}
.nav-toggle[aria-expanded="true"] .nav-toggle__bars::before{transform:translateY(7px) rotate(45deg);}
.nav-toggle[aria-expanded="true"] .nav-toggle__bars::after{transform:translateY(-7px) rotate(-45deg);}

.primary-nav{display:none;position:absolute;top:100%;left:0;right:0;
  flex-direction:column;gap:var(--space-1);background:var(--paper);
  border-bottom:1px solid var(--border);box-shadow:var(--shadow-card);
  padding:var(--space-3) var(--gutter) var(--space-5);}
.primary-nav.is-open{display:flex;}
.primary-nav a{color:var(--ink);text-decoration:none;font-weight:var(--fw-medium);padding:var(--space-3) 0;}
.primary-nav a:hover{color:var(--brown);}
.primary-nav__cta{color:var(--brown) !important;font-weight:var(--fw-semi) !important;}

/* ----------------------------- 8. HERO ------------------------------ */
.hero{position:relative;overflow:hidden;padding-block:clamp(3.5rem,9vw,7rem);}
.hero__media{position:absolute;inset:0;z-index:0;
  background:
    radial-gradient(60% 80% at 85% 10%,rgba(232,214,210,0.55),transparent 60%),
    radial-gradient(50% 70% at 5% 90%,rgba(221,226,209,0.5),transparent 60%);}
.hero__inner{position:relative;z-index:1;max-width:48rem;}
.hero__title{font-family:var(--font-display);font-weight:var(--fw-medium);font-size:var(--fs-hero);
  line-height:var(--lh-tight);letter-spacing:var(--track-tight);color:var(--ink);}
.hero__tagline{margin-top:var(--space-3);font-weight:var(--fw-semi);letter-spacing:.02em;color:var(--brown);}
.hero__promise{margin-top:var(--space-4);font-family:var(--font-display);font-weight:var(--fw-medium);
  font-size:var(--fs-promise);line-height:var(--lh-head);color:var(--ink);}
.hero__intro{margin-top:var(--space-4);max-width:42ch;color:var(--text-muted);}
.hero__inner .btn{margin-top:var(--space-6);}

/* --------------------------- 9. SECTIONS ---------------------------- */
.section{padding-block:var(--section-pad-y);}
.section--tint{background:var(--bg-tint);}
.section__title{font-family:var(--font-display);font-weight:var(--fw-medium);font-size:var(--fs-h2);
  line-height:var(--lh-head);letter-spacing:var(--track-tight);color:var(--ink);}
.eyebrow + .section__title{margin-top:0;}
.section__lede{margin-top:var(--space-4);max-width:54ch;color:var(--text-muted);}
.section__note{margin-top:var(--space-5);color:var(--text-muted);font-style:italic;}
.subgroup-label{margin-top:var(--space-8);padding-top:var(--space-4);border-top:1px solid var(--border);
  font-size:var(--fs-eyebrow);font-weight:var(--fw-semi);letter-spacing:var(--track-wide);
  text-transform:uppercase;color:var(--accent);}

/* ------------------------ 10. WHO THIS IS FOR ----------------------- */
.who-list{margin-top:var(--space-6);display:grid;gap:var(--space-4);}
.who-item{position:relative;padding-left:1.9rem;line-height:1.45;}
.who-item::before{content:"\2713";position:absolute;left:0;top:0;color:var(--brown);font-weight:var(--fw-bold);}

/* ----------------------- 11. PRICING EXPLAINER ---------------------- */
.pricing-cards{margin-top:var(--space-6);display:grid;gap:var(--space-4);}
.pricing-card{border-top:3px solid var(--clay);}
.pricing-card__label{font-family:var(--font-display);font-size:var(--fs-h3);color:var(--ink);margin-bottom:var(--space-2);}

/* -------------------------- 12. RANGE CARDS ------------------------- */
.range-grid{margin-top:var(--space-6);display:grid;gap:var(--space-4);}
.range-card{border-top:3px solid var(--clay);}
.range-card__title{font-family:var(--font-display);font-size:var(--fs-h3);color:var(--ink);line-height:1.2;}
.range-card__meta{margin-top:var(--space-3);color:var(--text-muted);}

/* ------------------------- 13. SERVICE CARDS ------------------------ */
.service-grid{margin-top:var(--space-6);display:grid;gap:var(--space-5);}
.service-card{display:flex;flex-direction:column;}
.service-card__name{font-family:var(--font-display);font-size:var(--fs-h3);color:var(--ink);line-height:1.2;}
.service-card__price{margin-top:var(--space-2);font-family:var(--font-display);font-weight:var(--fw-semi);
  font-size:var(--fs-price);color:var(--clay);line-height:1.1;}
.service-card__for{margin-top:var(--space-3);font-style:italic;color:var(--text-muted);}
.service-card__helps-label{margin-top:var(--space-4);margin-bottom:var(--space-2);
  font-size:var(--fs-eyebrow);font-weight:var(--fw-semi);letter-spacing:var(--track-wide);
  text-transform:uppercase;color:var(--accent);}
.helps{display:grid;gap:var(--space-2);}
.helps li{position:relative;padding-left:1rem;font-size:var(--fs-small);line-height:1.4;}
.helps li::before{content:"";position:absolute;left:0;top:.55em;width:5px;height:5px;border-radius:50%;background:var(--clay);}

/* -------------------------- 14. ADD-ON CARDS ------------------------ */
.addon-grid{margin-top:var(--space-5);display:grid;gap:var(--space-5);}
.addon-card{box-shadow:none;background:var(--paper-light);}
.addon-card__name{font-family:var(--font-display);font-size:1.125rem;color:var(--ink);line-height:1.25;}
.addon-card__price{margin-top:var(--space-2);font-weight:var(--fw-semi);color:var(--clay-deep);}
.addon-card__for{margin-top:var(--space-3);font-style:italic;color:var(--text-muted);}
.addon-card__helps{margin-top:var(--space-3);font-size:var(--fs-small);}

/* ----------------------------- 15. QUIZ ----------------------------- */
.quiz-launch{margin-top:var(--space-6);}
.quiz-wrap{display:none;margin-top:var(--space-6);}
.quiz-wrap.is-open{display:block;}
.quiz{max-width:560px;margin-inline:auto;}
.quiz__progress{font-size:var(--fs-small);color:var(--text-muted);margin-bottom:var(--space-4);}
.quiz__step{border:0;padding:0;}
.quiz__question{font-family:var(--font-display);font-size:var(--fs-h3);color:var(--ink);
  line-height:1.2;margin-bottom:var(--space-4);padding:0;display:block;width:100%;}
.quiz__option{display:flex;align-items:center;gap:.7rem;min-height:48px;
  padding:.75rem 1rem;margin-bottom:.6rem;background:var(--surface);
  border:1px solid var(--border);border-radius:12px;cursor:pointer;
  transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease);}
.quiz__option:hover{background:var(--paper-deep);}
.quiz__option:focus-within{outline:2px solid var(--focus);outline-offset:2px;}
.quiz__option input{accent-color:var(--clay-deep);width:18px;height:18px;flex:none;}
.quiz__option:has(input:checked),
.quiz__option.is-selected{background:var(--sage);border-color:var(--brown);}
.quiz__nav{display:flex;gap:var(--space-3);margin-top:var(--space-5);flex-wrap:wrap;}
.quiz__nav .btn{flex:1 1 auto;min-width:120px;}

.quiz-result{margin-top:var(--space-5);border-top:3px solid var(--clay);}
.quiz-result__name{font-family:var(--font-display);font-size:var(--fs-h3);color:var(--ink);margin-top:var(--space-2);}
.quiz-result__price{margin-top:var(--space-2);font-family:var(--font-display);font-weight:var(--fw-semi);font-size:var(--fs-price);color:var(--clay);line-height:1.1;}
.quiz-result__reason{margin-top:var(--space-3);color:var(--text);}
.quiz-result__addons{margin-top:var(--space-3);font-size:var(--fs-small);color:var(--text-muted);}
.quiz-result__actions{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-4);}
.quiz-result .note{margin-top:var(--space-3);font-style:italic;}

/* -------------------------- 16. COST DRIVERS ------------------------ */
.cost-grid{margin-top:var(--space-6);display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--space-4);}
.cost-item{display:flex;flex-direction:column;gap:var(--space-2);background:var(--surface);
  border:1px solid var(--border);border-radius:var(--r-card);padding:var(--space-4);}
.cost-item__name{font-family:var(--font-display);font-weight:var(--fw-semi);color:var(--ink);}
.cost-item__desc{font-size:var(--fs-small);color:var(--text-muted);line-height:1.4;}

/* --------------------- 17. GUEST GUIDE FEATURE ---------------------- */
.feature{background:var(--surface-feat);border-color:var(--mauve);padding:0;overflow:hidden;}
.feature__media{min-height:200px;
  background:
    radial-gradient(70% 90% at 20% 20%,rgba(221,226,209,0.9),transparent 60%),
    linear-gradient(140deg,rgba(248,242,232,0.7),rgba(232,214,210,0.4));}
.feature__body{padding:var(--space-6) var(--space-5);}
.feature__lede{color:var(--ink);}
.feature__quote{margin-top:var(--space-5);font-family:var(--font-display);font-style:italic;
  font-size:var(--fs-quote);line-height:1.3;color:var(--clay);}
.feature__price{margin-top:var(--space-4);font-weight:var(--fw-semi);color:var(--clay-deep);}
.feature .accordion{border-top-color:rgba(122,90,67,0.25);}

/* ----------------------- 18. USUALLY SEPARATE ----------------------- */
.separate-list{margin-top:var(--space-6);display:flex;flex-wrap:wrap;gap:var(--space-3);}
.separate-list li{background:var(--sage);border:1px solid var(--border);border-radius:var(--r-pill);
  padding:.45rem .9rem;font-size:var(--fs-small);color:var(--ink);}

/* -------------------------- 19. INQUIRY FORM ------------------------ */
.form-embed{margin-top:var(--space-6);min-height:560px;}
.form-embed iframe,.form-embed [data-fillout-id]{width:100% !important;min-height:560px;border:0;border-radius:var(--r-field);display:block;background:var(--surface);}
.form-embed__placeholder{border:1px dashed var(--brown);border-radius:var(--r-field);
  padding:var(--space-7) var(--space-5);text-align:center;color:var(--text-muted);background:var(--surface);}

/* ----------------------------- 20. FOOTER --------------------------- */
.footer{background:var(--brown-deep);color:var(--paper);padding-block:var(--space-8);margin-top:var(--space-4);}
.footer__name{font-family:var(--font-display);font-size:1.25rem;font-weight:var(--fw-medium);}
.footer__meta{margin-top:var(--space-3);font-size:var(--fs-small);color:rgba(247,240,230,0.85);}
.footer__area{margin-top:var(--space-3);font-size:var(--fs-small);color:rgba(247,240,230,0.7);max-width:60ch;margin-inline:auto;}
.footer__meta a{color:var(--mauve);text-decoration:underline;}
.footer__meta a:hover{color:var(--paper);}
.footer__tagline{margin-top:var(--space-4);font-family:var(--font-display);font-style:italic;color:rgba(247,240,230,0.8);}

/* -------------------------- 21. STICKY CTA -------------------------- */
.sticky-cta{position:fixed;left:0;right:0;bottom:0;z-index:90;
  background:var(--paper);border-top:1px solid var(--border);box-shadow:var(--shadow-sticky);
  padding-block:var(--space-3);transform:translateY(120%);transition:transform var(--dur) var(--ease);}
.sticky-cta.is-visible{transform:translateY(0);}

/* ========================= 22. BREAKPOINTS ========================= */
@media (min-width:768px){
  :root{--gutter:2rem;}

  /* Nav becomes inline; toggle hidden */
  .nav-toggle{display:none;}
  .primary-nav{display:flex;position:static;flex-direction:row;align-items:center;gap:var(--space-5);
    background:transparent;border:0;box-shadow:none;padding:0;}
  .primary-nav a{padding:0;}

  /* Full-width mobile CTAs return to inline */
  .hero__inner .btn,
  #pricing > .container > .btn,
  .quiz-result .btn{width:auto;}

  /* Grids */
  .who-list{grid-template-columns:1fr 1fr;gap:var(--space-4) var(--space-6);}
  .pricing-cards{grid-template-columns:1fr 1fr;}
  .range-grid{grid-template-columns:1fr 1fr;}
  .service-grid{grid-template-columns:1fr 1fr;}
  .addon-grid{grid-template-columns:1fr 1fr;}

  /* Feature: media + body side by side */
  .feature{display:grid;grid-template-columns:1fr 1.25fr;align-items:stretch;}
  .feature__media{min-height:100%;}
  .feature__body{padding:var(--space-7);}

  /* No sticky bar on larger screens */
  .sticky-cta{display:none;}
}

@media (min-width:1024px){
  .service-grid{grid-template-columns:repeat(3,1fr);}
  .addon-grid{grid-template-columns:repeat(3,1fr);}
}

/* ===================== 23. REDUCED MOTION ===================== */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{transition-duration:0ms !important;animation-duration:0ms !important;}
}

/* ========================= 24. PRINT ========================= */
@media print{
  body::before,.site-header,.sticky-cta,.nav-toggle,.quiz-launch,.hero__media,.feature__media{display:none !important;}
  body{background:#fff;color:#000;}
  .section,.hero{padding-block:1rem;}
  .card{box-shadow:none;border-color:#ccc;}
  .accordion__body{display:block !important;}
  .accordion summary::after{display:none;}
  a{color:#000;text-decoration:underline;}
}

/* ============================================================
   EDITORIAL REFRESH (images, spacing, featured tier, quiz)
   ============================================================ */

/* More breathing room / calmer rhythm */
:root{ --section-pad-y:clamp(3.5rem,7.5vw,7rem); }
.range-grid{ gap:var(--space-5); margin-top:var(--space-7); }
.service-grid{ gap:var(--space-6); margin-top:var(--space-7); }
.section__cta{ margin-top:var(--space-7); }

/* Hero illustration */
.hero{ text-align:left; }
.hero__figure{
  position:relative; z-index:1; margin:clamp(2rem,5vw,3.5rem) auto 0;
  max-width:var(--maxw,1080px); padding-inline:clamp(1.25rem,5vw,2rem);
}
.hero__figure img{
  display:block; width:100%; height:auto; border-radius:var(--r-card,16px);
  box-shadow:0 14px 44px rgba(36,33,30,0.12);
}

/* Range-card illustrations (full fidelity, consistent framing) */
.range-card{ overflow:hidden; }
.range-card__media{ margin:0 0 var(--space-4); }
.range-card__img{
  display:block; width:100%; height:auto;
  border-radius:calc(var(--r-card,16px) - 6px); background:var(--paper);
}

/* "Who this is for" logistics illustration */
.who__figure{ margin:var(--space-6) 0 var(--space-5); }
.who__figure img{
  display:block; width:100%; height:auto; border-radius:var(--r-card,16px);
  box-shadow:0 10px 32px rgba(36,33,30,0.10);
}

/* Featured (middle) service tier — visual only, no added words */
.service-card--featured{
  background:var(--sage); border-color:var(--brown);
  box-shadow:0 8px 28px rgba(36,33,30,0.10);
}

/* Guest Guide feature now holds a real illustration */
.feature__media{ min-height:0; background:none; padding:0; margin:0; }
.feature__media img{ display:block; width:100%; height:auto; }
@media (min-width:768px){
  .feature{ align-items:stretch; }
  .feature__media{ height:100%; display:flex; align-items:center; justify-content:center; background:var(--surface-feat); }
  .feature__media img{ width:100%; height:100%; object-fit:contain; }
}

/* Quiz: progress bar + gentle step transition (guided, not a form) */
.quiz__progressbar{
  height:4px; border-radius:999px; background:var(--line);
  overflow:hidden; margin-bottom:var(--space-5);
}
.quiz__progressbar-fill{
  display:block; height:100%; width:14%; border-radius:999px;
  background:var(--clay); transition:width .35s ease;
}
.quiz__step:not([hidden]){ animation:quizFade .35s ease; }
@keyframes quizFade{ from{opacity:0; transform:translateY(6px);} to{opacity:1; transform:none;} }

@media (prefers-reduced-motion:reduce){
  .quiz__step:not([hidden]){ animation:none; }
  .quiz__progressbar-fill{ transition:none; }
}

/* ============================================================
   SPEC REBUILD: reveal cards, subgroups, accordions, hero feather
   ============================================================ */

/* Pricing reveal cards (tap-to-reveal, accessible, calm) */
.reveal-grid{ display:grid; gap:var(--space-5); margin-top:var(--space-6); }
@media (min-width:680px){ .reveal-grid{ grid-template-columns:1fr 1fr; } }
.reveal-card{
  display:block; width:100%; text-align:left; cursor:pointer; font:inherit; color:inherit;
  background:var(--surface, var(--paper-light, #FCF8F1)); border:1px solid var(--line);
  border-radius:var(--r-card,16px); padding:var(--space-5);
  transition:border-color .2s ease, box-shadow .2s ease;
}
.reveal-card:hover{ border-color:var(--brown); }
.reveal-card:focus-visible{ outline:2px solid var(--clay); outline-offset:3px; }
.reveal-card__front,.reveal-card__back{ display:block; }
.reveal-card__title{ display:block; font-family:var(--font-display); font-size:var(--fs-h3); color:var(--ink); line-height:1.2; }
.reveal-card__sub{ display:block; margin-top:var(--space-2); color:var(--text-muted); }
.reveal-card__cue{
  display:inline-flex; align-items:center; gap:.45em; margin-top:var(--space-4);
  font-size:var(--fs-small); font-weight:var(--fw-semi); color:var(--brown); letter-spacing:.01em;
}
.reveal-card__icon{
  display:inline-grid; place-items:center; width:1.5em; height:1.5em; border-radius:999px;
  border:1.5px solid currentColor; font-size:.85em; line-height:1;
}
.reveal-card__list{ margin:var(--space-3) 0 0; padding-left:1.15em; color:var(--text); }
.reveal-card__list li{ margin:.3em 0; }
.reveal-card__back:not([hidden]){ animation:revealFade .3s ease; }
@keyframes revealFade{ from{opacity:0;} to{opacity:1;} }

/* Service-card subgroups */
.helps-group{ margin-top:var(--space-4); }
.helps-group__title{
  font-size:var(--fs-small); font-weight:var(--fw-semi); letter-spacing:.05em;
  text-transform:uppercase; color:var(--brown); margin-bottom:var(--space-2);
}
.helps-group__lead{ margin-top:var(--space-4); font-weight:var(--fw-semi); color:var(--ink); }
.service-card__for + .service-card__for{ margin-top:var(--space-2); }

/* Add-on accordions */
.addons{ margin-top:var(--space-4); display:grid; gap:var(--space-3); }
.addon-acc{
  background:var(--surface, var(--paper-light, #FCF8F1)); border:1px solid var(--line);
  border-radius:var(--r-card,16px); overflow:hidden;
}
.addon-acc summary{
  list-style:none; cursor:pointer; display:flex; flex-wrap:wrap; align-items:baseline;
  gap:.35em var(--space-3); padding:var(--space-4) calc(var(--space-5) + 1.4em) var(--space-4) var(--space-5);
  position:relative;
}
.addon-acc summary::-webkit-details-marker{ display:none; }
.addon-acc__title{ font-family:var(--font-display); font-size:var(--fs-h3); color:var(--ink); line-height:1.2; }
.addon-acc__price{ color:var(--clay); font-weight:var(--fw-semi); }
.addon-acc summary::after{
  content:"+"; position:absolute; right:var(--space-5); top:var(--space-4);
  font-size:1.25em; color:var(--brown); line-height:1.4;
}
.addon-acc[open] summary::after{ content:"\2212"; }
.addon-acc summary:focus-visible{ outline:2px solid var(--clay); outline-offset:-3px; }
.addon-acc__body{ padding:0 var(--space-5) var(--space-5); }
.addon-acc__body p{ margin-top:var(--space-3); }
.addon-acc__body p:first-child{ margin-top:0; }
.addon-acc__sub{ font-size:var(--fs-small); color:var(--text-muted); }

/* Tighter "For you?" section under the hero */
.section--snug{ padding-top:clamp(1.5rem,4vw,2.5rem); }
.hero{ padding-bottom:clamp(2rem,5vw,3rem); }

/* Hero image: soft, feathered, embedded (no hard rectangle) */
.hero__figure img{ border-radius:28px; box-shadow:none; }
.hero__figure::after{
  content:""; position:absolute; inset:0; border-radius:28px; pointer-events:none;
  box-shadow:inset 0 0 24px 10px var(--paper), inset 0 0 64px 30px rgba(247,240,230,.6);
}

/* Wedding-type cards: one uniform illustration treatment */
.range-card__img{ aspect-ratio:16/9; object-fit:cover; }

/* Little Wedding Room emphasis line */
.feature__pair{ margin-top:var(--space-4); font-family:var(--font-display); font-size:1.05rem; color:var(--ink); line-height:1.55; }

/* Floating CTA: safe-area + subtle shadow; no horizontal scroll anywhere */
.sticky-cta{ padding-bottom:calc(var(--space-3) + env(safe-area-inset-bottom)); box-shadow:0 -6px 24px rgba(36,33,30,0.10); }
html,body{ overflow-x:hidden; }

@media (prefers-reduced-motion:reduce){ .reveal-card__back:not([hidden]){ animation:none; } }

/* ============================================================
   FINALIZE: warm palette refresh, footer band, nav state,
   home teasers, CTA band, About page, conversation resource
   ============================================================ */
:root{
  --honey:#D8A24A; --honey-soft:#F3E6CB;
  --olive:#7E8A4F; --olive-soft:#E7E9D6;
  --bg-tint:#F2E7D0;        /* warmer sand for tinted sections */
  --surface-feat:#F3E6CB;   /* honey tint behind feature artwork */
}

/* Warm accents */
.eyebrow{ color:var(--clay-deep); }
.service-card--featured{ background:var(--olive-soft); border-color:var(--olive); }
.teaser--featured{ background:var(--olive-soft); border-color:var(--olive); }
.quiz__progressbar-fill{ background:var(--honey); }

/* Deep-brown footer band (rhythm + anchor on every page) */
.footer{ background:var(--brown-deep); color:#F3E9DA; }
.footer a{ color:#F3E9DA; }
.footer__name{ color:#FFFFFF; }
.footer__area,.footer__tagline{ color:#D9C9B4; }
.footer__nav{ display:flex; flex-wrap:wrap; gap:var(--space-2) var(--space-5); margin:var(--space-4) 0; }
.footer__nav a{ font-weight:var(--fw-semi); }

/* Active page in nav */
.primary-nav a[aria-current="page"]{ color:var(--ink); font-weight:var(--fw-semi); }
@media (min-width:768px){ .primary-nav a[aria-current="page"]{ box-shadow:inset 0 -2px 0 var(--clay); } }

/* Home teaser grid */
.teaser-grid{ display:grid; gap:var(--space-4); margin-top:var(--space-6); }
@media (min-width:680px){ .teaser-grid{ grid-template-columns:repeat(3,1fr); } }
.teaser{ display:flex; flex-direction:column; gap:var(--space-2); text-decoration:none; color:inherit;
  padding:var(--space-5); transition:transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease); }
.teaser:hover{ transform:translateY(-2px); box-shadow:var(--shadow-card-hover); }
.teaser__name{ font-family:var(--font-display); font-size:var(--fs-h3); color:var(--ink); }
.teaser__price{ color:var(--clay-deep); font-weight:var(--fw-semi); }
.teaser__line{ color:var(--text-muted); }

/* CTA band (one calm closing CTA per page) */
.cta-band{ text-align:center; }
.cta-band__inner{ display:flex; flex-direction:column; align-items:center; gap:var(--space-3); }
.cta-band__title{ font-family:var(--font-display); font-size:var(--fs-h2); color:var(--ink); }
.cta-band__text{ color:var(--text-muted); max-width:36ch; }
.cta-band .btn{ margin-top:var(--space-2); }

/* About page */
.about__figure{ margin:var(--space-6) 0; }
.about__figure img{ width:100%; height:auto; display:block; border-radius:var(--r-card); box-shadow:var(--shadow-card); }
.about__prose{ max-width:var(--readw); }
.about__prose p{ margin-top:var(--space-4); }
.about__line{ font-family:var(--font-display); font-size:var(--fs-quote); color:var(--ink); margin-top:var(--space-5); }
.about__roles{ font-family:var(--font-display); font-size:1.15rem; color:var(--ink); }
.conversation__note{ color:var(--text-muted); font-weight:var(--fw-semi); }
