/* ============================================================
   faithpost.co — production stylesheet
   Palette rules: NEVER #fff / #000. Whites = #fffcf6 / #faf9f7,
   blacks = #2c2418. See uploads/faithpost-design-prompt.md.
   ============================================================ */

:root{
  /* parchment neutrals */
  --bg-paper:#faf9f7;
  --bg-cream-2:#f5efe6;
  --bg-cream-3:#ece7df;
  --card-ivory:#fffcf6;
  --field-fill:#f3f0e6;
  /* brand — deep vespers navy (locked) */
  --brand:#27314f;
  --brand-dark:#1c2439;
  /* gold + accents */
  --gold-1:#c9a764;
  --gold-2:#b8913a;
  --gold-deep:#ad8636;
  --gold-pale:#e3c886;
  --gold-band:#e7d9b6;
  --gold-soft:#dcc187;
  --gold-soft-2:#e3d3ab;
  --gold-mute:#6f5c33; /* darkened from #9b8552 — 5.24–6.30:1 on the creams (only ever used as text on light bgs) */
  --olive:#5a5f3c;
  --reviews-blue:#4a6c85;
  /* ink */
  --ink:#2c2418;
  --ink-body:#4d555e;
  --muted:#5f6670; /* darkened from #7a8089 — 5.07–5.66:1 on all light bgs */
  --seal-dark:#5b4417;
  /* type */
  --f-serif:"EB Garamond",Garamond,Baskerville,Georgia,serif;
  --f-sc:"Cormorant SC",Georgia,serif;
  --f-mono:ui-monospace,Menlo,monospace;
  /* reading-size scale (set by JS: 1 / 1.15 / 1.3) */
  --ts:1;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--bg-paper);
  color:var(--ink-body);
  font-family:var(--f-serif);
  font-synthesis:none;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
.fp-page{ width:100%; overflow-x:hidden; }
img{ max-width:100%; }

@keyframes fpUp{
  from{ transform:translateY(16px); opacity:0; }
  to{ transform:translateY(0); opacity:1; }
}
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
}

/* ---------- a11y ---------- */
.skip-link{
  position:absolute; left:-9999px; top:0; z-index:100;
  background:var(--brand); color:var(--card-ivory);
  padding:12px 20px; border-radius:0 0 7px 0; font-family:var(--f-serif); font-size:16px; text-decoration:none;
}
.skip-link:focus{ left:0; }
a:focus-visible, button:focus-visible{
  outline:3px solid var(--brand); outline-offset:3px;
}
input:focus-visible{ outline:2px solid var(--gold-1); outline-offset:1px; }
/* gold focus only where the backdrop is dark (navy / reviews-blue / announcement) */
.section--navy :focus-visible, .section--reviews :focus-visible, .ann-bar :focus-visible{
  outline-color:var(--gold-1);
}

/* ---------- containers & sections ---------- */
.container-1180{ max-width:1180px; margin:0 auto; padding:0 28px; }
.container-1080{ max-width:1080px; margin:0 auto; padding:0 28px; }
.container-880{ max-width:880px; margin:0 auto; padding:0 28px; text-align:center; }
.container-780{ max-width:780px; margin:0 auto; padding:0 28px; }
.container-760{ max-width:760px; margin:0 auto; padding:0 28px; }

.section{ padding:96px 0; }
.section--paper{ background:var(--bg-paper); }
.section--cream2{ background:var(--bg-cream-2); }
.section--cream3{ background:var(--bg-cream-3); }
.section--navy{ background:var(--brand); }
.section--reviews{ background:var(--reviews-blue); }
.gallery{ padding:104px 0; }
.pricing{ padding:100px 0; }
.guarantee{ padding:100px 0; }
.final-cta{ padding:104px 0; text-align:center; }
#whats-inside, #gallery, #how, #plans, #gift, #guarantee, #faq{ scroll-margin-top:20px; }

.section-head{ text-align:center; margin:0 auto; }
.section-head--680{ max-width:680px; }
.section-head--660{ max-width:660px; }
.section-head--640{ max-width:640px; }

/* ---------- shared type ---------- */
.eyebrow{
  display:inline-block; font-family:var(--f-serif); text-transform:uppercase;
  font-size:12px; letter-spacing:.26em; font-weight:600; color:#7a5e1f; /* AA on all creams; keep bright gold for navy sections only */
}
.eyebrow--goldsoft{ color:var(--gold-soft); }
.eyebrow--reviews{ color:var(--gold-soft-2); }
.eyebrow--pillar{ font-size:11px; letter-spacing:.24em; }
.eyebrow--guarantee{ margin-top:22px; }

.h2{
  font-family:var(--f-serif); font-weight:500;
  font-size:clamp(30px,4.2vw,44px); line-height:1.14;
  color:var(--ink); letter-spacing:-.01em; margin:14px 0 0;
}
.h2--sc{ font-family:var(--f-sc); font-weight:600; line-height:1.1; letter-spacing:.02em; margin:12px 0 0; }
.h2--ivory{ color:var(--card-ivory); }
.h2--gallery{ font-size:clamp(28px,4vw,42px); line-height:1.16; }
.h2--founder{ font-size:clamp(28px,3.6vw,40px); margin:12px 0 0; }
.h2--guarantee{ font-size:clamp(28px,3.8vw,42px); margin:12px 0 0; }
.h2--reviews{ font-size:clamp(28px,3.8vw,42px); margin:12px 0 0; }
.h2--reviews-size{ font-size:clamp(28px,3.8vw,42px); margin:12px 0 0; }

em.i-navy{ font-style:italic; color:var(--brand); }
em.i-ink{ font-style:italic; color:var(--ink); }
em.i-gold{ font-style:italic; color:var(--gold-pale); }
em.i-ivory{ font-style:italic; color:var(--card-ivory); }

.inline-link{ color:var(--brand); font-style:italic; text-decoration:underline; text-underline-offset:3px; }

.mono-note{
  font-family:var(--f-mono); font-size:calc(12px * var(--ts,1)); letter-spacing:.1em;
  text-transform:uppercase; color:#7a5e1f; margin-top:6px;
}
.mono-note--gallery{ font-size:calc(12px * var(--ts,1)); letter-spacing:.12em; color:#9aa6bf; }
.mono-note--navy{ font-size:calc(12px * var(--ts,1)); letter-spacing:.12em; color:#9aa6bf; }
.mono-note--placeholder{ font-size:calc(12px * var(--ts,1)); color:#7a5e1f; margin-top:0; }
.mono-note--sig{ letter-spacing:.12em; margin-top:8px; }

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  font-family:var(--f-serif); font-weight:600; letter-spacing:.02em;
  border-radius:7px; text-decoration:none; cursor:pointer; border:none;
}
.btn--primary{
  background:var(--brand); color:var(--card-ivory);
  box-shadow:0 14px 28px -14px rgba(39,49,79,.62);
  transition:background .2s ease, transform .2s ease;
}
.btn--primary:hover{ background:var(--brand-dark); transform:translateY(-1px); }
.btn--ghost{
  background:transparent; color:var(--brand); border:1.5px solid var(--brand);
  transition:background .15s ease;
}
.btn--ghost:hover{ background:rgba(39,49,79,.05); }
.btn--header{ min-height:40px; padding:0 18px; font-size:16px; letter-spacing:.01em; }
.btn--hero{ min-height:54px; padding:15px 34px; font-size:19px; }
.btn--hero-secondary{ min-height:54px; padding:15px 30px; font-size:18px; }
.btn--invite{
  min-height:50px; padding:13px 28px; margin-top:20px;
  background:var(--card-ivory); color:var(--brand); font-size:18px;
  transition:transform .2s ease, box-shadow .2s ease;
}
.btn--invite:hover{ transform:translateY(-1px); box-shadow:0 12px 26px -14px rgba(0,0,0,.45); }
.btn--final{
  min-height:56px; padding:16px 40px;
  background:var(--card-ivory); color:var(--brand); font-size:20px;
  box-shadow:0 16px 32px -16px rgba(0,0,0,.5);
  transition:transform .2s ease, box-shadow .2s ease;
}
.btn--final:hover{ transform:translateY(-1px); box-shadow:0 20px 38px -16px rgba(0,0,0,.55); }

/* ---------- seal medallion ---------- */
.seal{
  position:relative; display:inline-block; flex:0 0 auto; border-radius:50%;
  background:radial-gradient(circle at 38% 30%, #e3c886, #c9a764 46%, #ad8636 100%);
  box-shadow:inset 0 1px 3px rgba(255,250,235,.6), inset 0 -3px 6px rgba(110,82,28,.5);
}
.seal-ring{ position:absolute; inset:8%; border-radius:50%; border:1px solid rgba(110,82,28,.4); }
.seal-cross{ position:absolute; left:50%; top:50%; width:32%; height:48%; transform:translate(-50%,-50%); }
.seal-cross::before{
  content:""; position:absolute; left:50%; top:0; width:18%; height:100%;
  transform:translateX(-50%); background:var(--seal-dark); border-radius:1px;
}
.seal-cross::after{
  content:""; position:absolute; left:0; top:24%; width:100%; height:16%;
  background:var(--seal-dark); border-radius:1px;
}
.seal--28{ width:28px; height:28px; box-shadow:inset 0 1px 2px rgba(255,250,235,.6), inset 0 -2px 4px rgba(110,82,28,.5); }
.seal--30{ width:30px; height:30px; box-shadow:inset 0 1px 2px rgba(255,250,235,.6), inset 0 -2px 4px rgba(110,82,28,.5); }
.seal--32{ width:32px; height:32px; box-shadow:inset 0 1px 3px rgba(255,250,235,.6), inset 0 -3px 6px rgba(110,82,28,.5), 0 4px 10px -5px rgba(110,82,28,.5); }
.seal--34{ width:34px; height:34px; }
.seal--64{ width:64px; height:64px; box-shadow:inset 0 1px 4px rgba(255,250,235,.6), inset 0 -4px 7px rgba(110,82,28,.5), 0 10px 24px -10px rgba(0,0,0,.5); }
.seal--100{
  width:100px; height:100px;
  box-shadow:inset 0 2px 5px rgba(255,250,235,.6), inset 0 -5px 9px rgba(110,82,28,.5), 0 14px 30px -14px rgba(110,82,28,.5);
}
.seal--100 .seal-ring{ box-shadow:inset 0 0 0 2px rgba(255,250,235,.18); }

/* ---------- frame ornaments ---------- */
.frame-inset{
  position:absolute; border:1px solid rgba(184,145,58,.5); border-radius:9px;
  box-shadow:inset 0 0 0 3px var(--card-ivory), inset 0 0 0 4px rgba(201,167,100,.28);
  pointer-events:none;
}
.frame-inset--14{ inset:14px; }
.frame-inset--11{ inset:11px; }
.diamond{ position:absolute; width:7px; height:7px; background:var(--gold-1); transform:rotate(45deg); --off:10px; }
.plan .diamond{ --off:9px; }
.d-tl{ top:var(--off); left:var(--off); }
.d-tr{ top:var(--off); right:var(--off); }
.d-bl{ bottom:var(--off); left:var(--off); }
.d-br{ bottom:var(--off); right:var(--off); }

.photo-wash{
  position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(180deg, rgba(201,167,100,.06), rgba(201,167,100,.16));
}

/* ---------- announcement bar ---------- */
.ann-bar{
  background:var(--brand); color:var(--card-ivory); text-align:center;
  padding:11px 18px; font-size:14.5px; letter-spacing:.01em;
  border-bottom:1px solid rgba(201,167,100,.32);
}
.ann-strong{ color:var(--gold-band); }
.ann-dim{ color:#9aa6bf; }
.ann-date{ font-style:italic; color:var(--card-ivory); }
.ann-link{
  color:var(--gold-band); font-style:italic; text-decoration:underline; text-underline-offset:3px;
  /* enlarge the tap target without shifting layout */
  display:inline-block; padding:6px 2px; margin:-6px -2px;
}

/* ---------- header ---------- */
.site-header{
  max-width:1180px; margin:0 auto; padding:18px 28px;
  display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;
}
.brand{ display:flex; align-items:center; gap:12px; text-decoration:none; }
.wordmark{
  font-family:var(--f-sc); font-size:27px; font-weight:600;
  letter-spacing:.05em; color:var(--ink);
}
.wordmark--footer{ font-size:24px; }
.header-controls{ display:flex; align-items:center; gap:18px; flex-wrap:wrap; }
.size-ctl{ display:flex; align-items:center; gap:9px; }
.size-label{ font-size:calc(12px * var(--ts,1)); text-transform:uppercase; letter-spacing:.16em; color:var(--gold-mute); }
.size-btns{ display:flex; gap:4px; }
.size-btn{
  min-width:44px; height:44px; padding:0 8px;
  border:1px solid #d8cdb6; background:var(--card-ivory); color:#6b6450;
  border-radius:5px; cursor:pointer; font-family:inherit; line-height:1;
  transition:all .15s ease;
}
.size-btn.is-active{ border-color:var(--brand); background:var(--brand); color:var(--card-ivory); }
.size-btn--s{ font-size:13px; }
.size-btn--m{ font-size:15px; }
.size-btn--l{ font-size:17px; }

/* ---------- hero ---------- */
.hero{ position:relative; padding:48px 0 64px; }
.hero-inner{ max-width:980px; margin:0 auto; padding:0 28px; text-align:center; position:relative; }
.hero-h1{
  font-family:var(--f-serif); font-weight:500;
  font-size:clamp(40px,6vw,64px); line-height:1.08;
  color:var(--ink); margin:18px 0 0; letter-spacing:-.012em;
}
.hero-sub{
  font-size:calc(20px * var(--ts,1)); line-height:1.62; color:var(--ink-body);
  max-width:680px; margin:22px auto 0;
}
.hero-price-cue{
  font-family:var(--f-serif); font-size:17px; color:var(--olive);
  margin:20px 0 0; letter-spacing:.01em;
}
.hero-price-cue strong{ font-weight:600; color:var(--ink); }
.hero-ctas{ display:flex; gap:14px; justify-content:center; flex-wrap:wrap; margin-top:28px; }
.hero-status{ margin-top:26px; font-size:14px; color:var(--muted); letter-spacing:.015em; }
.status-date{ font-style:italic; color:var(--ink-body); }
.dot-gold{ color:var(--gold-1); }
.hero-proofline{
  margin-top:26px; display:inline-flex; align-items:center; gap:12px;
  font-size:15px; color:var(--ink-body);
}
.hero-proofline .stars{ color:var(--gold-2); letter-spacing:.08em; font-size:18px; }
.hero-proofline strong{ color:var(--ink); }

/* hero showpiece */
.hero-showpiece{ max-width:840px; margin:42px auto 0; padding:0 28px; }
.showcase-card{
  position:relative; background:var(--card-ivory); border-radius:14px; padding:18px;
  box-shadow:0 34px 64px -34px rgba(44,36,24,.32), 0 2px 0 rgba(201,167,100,.16);
}
.showcase-face{
  position:relative; border-radius:9px; aspect-ratio:16/9; overflow:hidden;
  background:radial-gradient(120% 130% at 50% 12%, #fffdf8, #f6efe0);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center; padding:30px;
}
.showcase-art{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
}
.showcase-scrim{
  position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(ellipse 72% 85% at 50% 50%, rgba(255,252,246,.85), rgba(255,252,246,.7) 55%, rgba(255,252,246,.12) 100%);
}
.showcase-type{ position:relative; display:flex; flex-direction:column; align-items:center; }
.showcase-eyebrow{ font-family:var(--f-sc); font-size:13px; letter-spacing:.22em; color:#7a5e1f; }
.showcase-verse{
  font-family:var(--f-serif); font-size:clamp(26px,3.6vw,42px); line-height:1.24;
  color:#3a3526; margin-top:16px; max-width:560px;
  text-shadow:0 1px 14px rgba(255,252,246,.85), 0 0 3px rgba(255,252,246,.6);
}
.showcase-divider{ display:flex; align-items:center; gap:14px; margin-top:22px; }
.divider-line{ height:1px; width:38px; background:rgba(184,145,58,.55); }
.showcase-ref{ font-family:var(--f-sc); font-size:14px; letter-spacing:.18em; color:var(--gold-mute); margin-top:14px; }
.showcase-caption{
  text-align:center; margin-top:14px; font-family:var(--f-sc);
  font-size:calc(13px * var(--ts,1)); letter-spacing:.14em; text-transform:uppercase; color:#7a5e1f;
}
.hero-tagline{
  text-align:center; margin-top:22px; font-family:var(--f-sc);
  letter-spacing:.1em; color:var(--gold-mute); font-size:15px;
}

/* ---------- format-as-promise strip ---------- */
.promise-strip{ background:var(--bg-cream-3); border-top:1px solid #e0d8c8; border-bottom:1px solid #e0d8c8; }
.promise-inner{
  max-width:1000px; margin:0 auto; padding:26px 28px;
  display:flex; align-items:center; justify-content:center;
  gap:18px 40px; flex-wrap:wrap; text-align:center;
}
.promise-num{ font-family:var(--f-serif); font-size:30px; color:var(--brand); }
.promise-label{ font-size:13px; text-transform:uppercase; letter-spacing:.16em; color:#8a7a52; }
.promise-div{ width:1px; height:34px; background:#d6cdb8; }

/* ---------- what's inside ---------- */
.inside-lede{ font-size:calc(18.5px * var(--ts,1)); line-height:1.66; color:var(--ink-body); margin:18px 0 0; }
.inside-grid{ display:grid; grid-template-columns:1.5fr 1fr; gap:20px; margin-top:44px; align-items:stretch; }
.inside-main{
  position:relative; background:var(--card-ivory); border-radius:14px; padding:18px;
  box-shadow:0 26px 50px -30px rgba(44,36,24,.28);
}
.inside-face{
  position:relative; border-radius:9px; min-height:340px; height:100%;
  background:radial-gradient(120% 130% at 50% 14%, #fffdf8, #f4ecdb);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center; padding:38px;
}
.inside-face .showcase-eyebrow{ font-size:12.5px; }
.inside-verse{
  font-family:var(--f-serif); font-size:clamp(28px,3vw,38px); line-height:1.26;
  color:#3a3526; margin-top:16px; max-width:420px;
}
.inside-rule{ width:40px; height:1px; background:rgba(184,145,58,.55); margin:20px 0 12px; }
.inside-face .showcase-ref{ font-size:13px; margin-top:0; }
.inside-details{ display:grid; grid-template-rows:repeat(3,1fr); gap:20px; }
.detail-card{
  position:relative; background:var(--card-ivory); border-radius:14px; padding:12px;
  box-shadow:0 20px 40px -28px rgba(44,36,24,.26);
  display:flex; gap:14px; align-items:center;
}
.detail-thumb{
  flex:0 0 96px; height:96px; border-radius:8px; overflow:hidden; position:relative;
  background:repeating-linear-gradient(135deg,#efe7d6 0 12px,#e8ddc8 12px 24px);
}
.detail-thumb img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.inside-photo{ position:relative; border-radius:9px; overflow:hidden; aspect-ratio:4/5; }
.inside-photo img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 42%; }
.founder-photo{ position:relative; border-radius:9px; overflow:hidden; aspect-ratio:4/5; }
.founder-photo img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.detail-wash{ position:absolute; inset:0; background:linear-gradient(180deg,rgba(201,167,100,.05),rgba(201,167,100,.2)); }
.detail-title{ font-family:var(--f-serif); font-style:italic; font-size:20px; color:var(--ink); }
.detail-sub{ font-size:14px; color:var(--muted); margin-top:2px; }

/* ---------- gallery ---------- */
.gallery-lede{ font-size:calc(17.5px * var(--ts,1)); line-height:1.62; color:#c2cad9; margin:16px 0 0; }
.gallery-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:46px; }
.vcard{
  --vbg:var(--card-ivory); --vink:#3a3526; --vrule:rgba(184,145,58,.55); --vref:var(--gold-mute);
  position:relative; border-radius:12px; padding:36px 26px; min-height:236px;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center; background:var(--vbg);
  box-shadow:0 28px 50px -26px rgba(0,0,0,.45);
}
.vcard--2{ --vbg:#f5efe6; --vink:#27314f; }
.vcard--4{ --vbg:#fbf3e3; --vrule:rgba(184,145,58,.6); }
.vcard--5{ --vink:#27314f; }
.vcard--6{ --vbg:#f5efe6; }
.vcard-frame{
  position:absolute; inset:11px; border:1px solid var(--vrule); border-radius:8px;
  box-shadow:inset 0 0 0 3px var(--vbg), inset 0 0 0 4px var(--vrule);
  pointer-events:none;
}
.vcard-text{
  position:relative; font-family:var(--f-serif); font-style:italic;
  font-size:calc(23px * var(--ts,1)); line-height:1.36; color:var(--vink);
}
.vcard-rule{ width:28px; height:1px; background:var(--vrule); margin:16px 0; }
.vcard-ref{ font-family:var(--f-sc); font-size:12.5px; letter-spacing:.16em; color:var(--vref); }
.gallery-note{ text-align:center; margin-top:18px; }

/* lead magnet */
.lead-magnet{ max-width:560px; margin:42px auto 0; text-align:center; }
.lead-success{
  background:rgba(255,252,246,.08); border:1px solid rgba(201,167,100,.4);
  border-radius:12px; padding:22px;
}
.lead-success-title{ font-family:var(--f-serif); font-style:italic; font-size:21px; color:var(--card-ivory); }
.lead-success-sub{ color:#c2cad9; font-size:15px; margin-top:6px; }
.lead-intro{ color:#c2cad9; font-size:16px; margin-bottom:14px; }
.lead-form{ display:flex; gap:10px; justify-content:center; flex-wrap:wrap; }
.lead-label{ flex:1 1 100%; color:#c2cad9; font-size:15px; text-align:center; margin-bottom:2px; }
.hp-field{ position:absolute; left:-9999px; top:auto; width:1px; height:1px; overflow:hidden; margin:0; }
.lead-input{
  min-width:240px; flex:1 1 240px; max-width:320px; height:50px; padding:0 16px;
  border-radius:7px; border:1px solid rgba(201,167,100,.5);
  background:var(--field-fill); color:var(--ink);
  font-family:inherit; font-size:16px;
}
.lead-btn{
  height:50px; padding:0 24px; background:var(--gold-1); color:var(--brand);
  border:none; border-radius:7px; font-family:inherit; font-size:16px; font-weight:600;
  cursor:pointer; letter-spacing:.01em; transition:background .15s ease;
}
.lead-btn:hover{ background:#d8b878; }

/* ---------- how it works ---------- */
.how-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:48px; }
.how-step{ text-align:center; padding:8px 12px; }
.how-num{ font-family:var(--f-serif); font-size:46px; color:#8a6d2f; line-height:1; letter-spacing:.02em; }
.how-rule{ width:34px; height:1px; background:rgba(184,145,58,.5); margin:16px auto; }
.how-title{ font-family:var(--f-serif); font-weight:500; font-size:23px; color:var(--ink); margin:0; }
.how-body{ font-size:calc(16.5px * var(--ts,1)); line-height:1.62; color:var(--ink-body); margin:10px 0 0; }
.how-evergreen{
  text-align:center; max-width:660px; margin:40px auto 0;
  font-family:var(--f-serif); font-style:italic;
  font-size:calc(18px * var(--ts,1)); color:var(--olive);
}

/* ---------- pillars ---------- */
.pillar-featured{
  margin-top:46px; background:var(--brand); border-radius:16px; overflow:hidden;
  display:grid; grid-template-columns:1.05fr .95fr;
  box-shadow:0 34px 70px -36px rgba(28,36,57,.6);
}
.pillar-copy{ padding:clamp(30px,4vw,52px); display:flex; flex-direction:column; justify-content:center; }
.pillar-h3{
  font-family:var(--f-serif); font-weight:500;
  font-size:clamp(26px,3vw,34px); line-height:1.16;
  color:var(--card-ivory); margin:12px 0 0;
}
.pillar-lede{ font-size:calc(18px * var(--ts,1)); line-height:1.66; color:#cdd4e0; margin:16px 0 0; }
.testimonial-slot{
  margin-top:22px; padding:16px 18px; border:1px dashed rgba(201,167,100,.45);
  border-radius:10px; background:rgba(255,252,246,.04);
}
.testimonial-slot-quote{ font-family:var(--f-serif); font-style:italic; font-size:16px; color:var(--gold-band); }
.pillar-photo{
  position:relative; min-height:320px; overflow:hidden;
  /* parchment-stripe fallback while the lazy photo loads (matches source framework) */
  background-color:var(--brand);
  background-image:repeating-linear-gradient(135deg,#34406090 0 17px,#2c395790 17px 34px);
}
.pillar-photo img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.pillars-3{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:22px; }
.pillar-card{
  background:var(--card-ivory); border-radius:14px; padding:30px 26px;
  box-shadow:0 22px 44px -30px rgba(44,36,24,.26);
}
.pillar-kicker{ font-family:var(--f-sc); font-size:13px; letter-spacing:.14em; color:#7a5e1f; }
.pillar-card-title{ font-family:var(--f-serif); font-weight:500; font-size:24px; color:var(--ink); margin:8px 0 0; }
.pillar-card-body{ font-size:calc(16.5px * var(--ts,1)); line-height:1.62; color:var(--ink-body); margin:10px 0 0; }

/* ---------- pricing ---------- */
.recipient-block{ margin-top:18px; }
.recipient-q{ font-family:var(--f-serif); font-style:italic; font-size:17px; color:var(--muted); }
.recipient-pills{ display:inline-flex; gap:8px; margin-left:10px; flex-wrap:wrap; vertical-align:middle; }
.rec-pill{
  padding:11px 18px; border-radius:999px; border:1px solid #d8cdb6;
  background:transparent; color:var(--ink-body); cursor:pointer;
  font-family:inherit; font-size:15px; transition:all .15s ease;
}
.rec-pill.is-active{ border-color:var(--brand); background:var(--brand); color:var(--card-ivory); }
.recipient-caption{
  font-family:var(--f-serif); font-style:italic; font-size:15.5px;
  color:var(--olive); margin-top:12px;
}
.pricing-grid{ display:grid; grid-template-columns:1.18fr 1fr; gap:22px; margin-top:40px; align-items:stretch; }

.plan{ position:relative; border-radius:14px; padding:34px 30px 30px; cursor:pointer; }
/* visually-hidden plan radio — the real keyboard/SR control for plan selection */
.plan-radio{
  position:absolute; width:1px; height:1px; margin:-1px; padding:0; border:0;
  clip:rect(0 0 0 0); clip-path:inset(50%); overflow:hidden; white-space:nowrap;
}
.plan:has(.plan-radio:focus-visible){ outline:3px solid var(--brand); outline-offset:3px; }
.plan--prepay{
  order:0; background:var(--card-ivory); border:2px solid var(--brand);
  box-shadow:0 30px 60px -34px rgba(39,49,79,.45);
}
.plan--monthly{
  order:1; background:var(--card-ivory); border:1px solid #e2d9c6;
  box-shadow:0 20px 44px -30px rgba(44,36,24,.24);
  display:flex; flex-direction:column;
}
.plan--monthly.is-selected{ border-color:var(--brand); box-shadow:0 26px 54px -32px rgba(39,49,79,.4); }
.plan-top{ display:flex; align-items:center; justify-content:space-between; gap:10px; }
.plan-top--monthly{ min-height:28px; }
.pill-badge{
  display:inline-block; padding:5px 13px; border-radius:999px;
  background:#f3e7c8; color:#6d541f; border:1px solid rgba(184,145,58,.5);
  font-size:12.5px; letter-spacing:.04em; font-weight:600;
}
.plan-kicker{ font-family:var(--f-sc); font-size:13px; letter-spacing:.12em; color:var(--gold-mute); }
.plan-selected{ display:none; align-items:center; gap:6px; font-size:13px; color:var(--brand); font-weight:600; }
.plan.is-selected .plan-selected{ display:inline-flex; }
.check-dot{
  width:18px; height:18px; border-radius:50%; background:var(--brand); color:var(--card-ivory);
  display:inline-flex; align-items:center; justify-content:center; font-size:11px;
}
.plan-title{ font-family:var(--f-serif); font-weight:500; font-size:25px; color:var(--ink); margin:18px 0 0; }
.plan-title--monthly{ margin:14px 0 0; }
.plan-price-row{ display:flex; align-items:baseline; gap:10px; margin-top:12px; flex-wrap:wrap; }
.plan-price-row--monthly{ gap:8px; flex-wrap:nowrap; }
.price-struck{ font-family:var(--f-serif); font-size:17px; color:var(--gold-mute); text-decoration:line-through; }
.price-main{ font-family:var(--f-serif); font-size:46px; color:var(--ink); line-height:1; }
.price-main--brand{ color:var(--brand); }
.price-note{ font-size:15px; color:var(--olive); }
.price-save{ color:var(--ink); }
.plan-fine{ font-size:13.5px; color:var(--muted); margin-top:4px; }
.plan-lede{
  font-family:var(--f-serif); font-style:italic;
  font-size:calc(16.5px * var(--ts,1)); color:var(--olive); margin-top:14px;
}
.plan-rule{ height:1px; background:rgba(184,145,58,.35); margin:20px 0; }
.plan-rule--soft{ background:rgba(184,145,58,.28); }
.plan-bullets{ display:flex; flex-direction:column; gap:11px; }
.plan-bullet{ display:flex; gap:11px; align-items:flex-start; }
.bullet-check{ color:var(--gold-1); font-size:15px; line-height:1.5; }
.bullet-text{ font-size:calc(16px * var(--ts,1)); line-height:1.5; color:var(--ink-body); }
.plan-spacer{ flex:1; }
.plan-cta{ width:100%; margin-top:24px; min-height:54px; font-size:19px; }
.plan-cta--monthly{ font-size:18px; }
.plan-under{ text-align:center; font-size:13px; color:var(--muted); margin-top:10px; }
.under-sep{ color:var(--gold-mute); }
.pricing-guarantee{
  text-align:center; margin-top:26px; font-family:var(--f-serif);
  font-size:16px; color:var(--olive);
}
.pricing-guarantee strong{ color:var(--ink); font-weight:600; }
.pricing-proofline{ text-align:center; margin-top:10px; font-size:15px; color:var(--ink-body); }
.stars-gold{ color:var(--gold-2); }
.pricing-tagline{
  text-align:center; margin-top:14px; font-family:var(--f-sc);
  letter-spacing:.1em; color:var(--gold-mute); font-size:14px;
}

/* ---------- founder ---------- */
.founder-grid{ display:grid; grid-template-columns:.85fr 1.15fr; gap:40px; align-items:center; }
.framed-photo{
  position:relative; background:var(--card-ivory); border-radius:14px; padding:14px;
  box-shadow:0 26px 52px -32px rgba(44,36,24,.3);
}
.placeholder-face{
  position:relative; border-radius:9px; overflow:hidden;
  background:repeating-linear-gradient(135deg,#efe7d6 0 16px,#e8ddc8 16px 32px);
}
.placeholder-face--45{ aspect-ratio:4/5; }
.placeholder-wash{ position:absolute; inset:0; background:linear-gradient(180deg, rgba(201,167,100,.05), rgba(201,167,100,.2)); }
.placeholder-note{
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  padding:20px; text-align:center;
}
.founder-p{ font-size:calc(18px * var(--ts,1)); line-height:1.7; color:var(--ink-body); margin:18px 0 0; }
.founder-p--tight{ margin:14px 0 0; }
.founder-sig{ margin-top:20px; }
.founder-grace{ font-family:var(--f-serif); font-style:italic; font-size:26px; color:var(--brand); }
.founder-byline{ font-size:14px; color:var(--muted); margin-top:14px; font-style:italic; }

/* ---------- gifting ---------- */
.gift-grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:40px; align-items:center; }
.gift-benefits{ display:flex; flex-direction:column; gap:18px; margin-top:24px; }
.gift-benefit{ display:flex; gap:14px; align-items:flex-start; }
.benefit-check{
  flex:0 0 30px; height:30px; border-radius:50%;
  background:#f3e7c8; color:#8a6d2f;
  display:flex; align-items:center; justify-content:center;
  font-size:15px; border:1px solid rgba(184,145,58,.4);
}
.benefit-title{ font-family:var(--f-serif); font-size:20px; color:var(--ink); }
.benefit-body{ font-size:calc(16px * var(--ts,1)); line-height:1.55; color:var(--ink-body); margin:3px 0 0; }
.gift-closer{
  margin-top:22px; font-family:var(--f-serif); font-style:italic;
  font-size:calc(16.5px * var(--ts,1)); color:var(--olive);
}
/* gift CTA block — spacing only; button + fine print reuse existing styles */
.gift-cta{ margin-top:26px; }
.gift-cta .plan-fine{ margin-top:12px; }
.gift-face{
  position:relative; border-radius:9px; overflow:hidden; aspect-ratio:1/1;
  /* parchment-stripe fallback while the lazy photo loads */
  background:repeating-linear-gradient(135deg,#efe7d6 0 16px,#e8ddc8 16px 32px);
}
.gift-face img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 28%; }

/* ---------- guarantee ---------- */
.guarantee-seal-wrap{ display:flex; justify-content:center; }
.guarantee-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:40px; text-align:left; }
.guarantee-card{
  background:var(--card-ivory); border-radius:14px; padding:26px 24px;
  box-shadow:0 20px 42px -30px rgba(44,36,24,.26);
}
.guarantee-title{ font-family:var(--f-serif); font-size:21px; color:var(--brand); margin-bottom:8px; }
.guarantee-body{ font-size:calc(15.5px * var(--ts,1)); line-height:1.58; color:var(--ink-body); margin:0; }

/* ---------- reviews ---------- */
.reviews-lede{ font-size:calc(18px * var(--ts,1)); line-height:1.66; color:#e6edf3; margin:16px 0 0; }
.founding-invite{
  max-width:620px; margin:34px auto 0;
  background:rgba(255,252,246,.07); border:1px solid rgba(227,211,171,.4);
  border-radius:14px; padding:30px 28px; text-align:center;
}
.founding-invite-quote{
  font-family:var(--f-serif); font-style:italic;
  font-size:calc(20px * var(--ts,1)); line-height:1.55; color:var(--card-ivory);
}
.reviews-statbar{
  display:flex; justify-content:center; align-items:center; gap:28px; flex-wrap:wrap;
  margin:30px 0 34px; color:var(--card-ivory);
}
.stat{ text-align:center; }
.stat-num{ font-family:var(--f-serif); font-size:36px; line-height:1; }
.stat-star{ color:var(--gold-pale); }
.stat-label{ font-size:13px; color:#dde6ee; margin-top:4px; }
.stat-div{ width:1px; height:38px; background:rgba(255,252,246,.3); }
.reviews-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.review-card{
  background:var(--card-ivory); border-radius:14px; padding:24px;
  box-shadow:0 22px 44px -30px rgba(0,0,0,.4);
  display:flex; flex-direction:column; height:100%;
}
.review-stars{ color:var(--gold-1); font-size:15px; letter-spacing:.1em; }
.review-quote{
  font-size:calc(15.5px * var(--ts,1)); line-height:1.6; color:#3a3526;
  font-style:italic; margin:12px 0 18px; flex:1;
}
.review-byline{ display:flex; align-items:center; gap:11px; }
.review-avatar{
  flex:0 0 40px; width:40px; height:40px; border-radius:50%;
  color:var(--card-ivory); display:flex; align-items:center; justify-content:center;
  font-family:var(--f-serif); font-size:15px; letter-spacing:.02em;
}
.review-who{ min-width:0; flex:1; }
.review-name{ font-family:var(--f-serif); font-size:16px; color:var(--ink); line-height:1.2; }
.review-meta{ font-size:12.5px; color:var(--muted); }
.review-verified{
  flex:0 0 auto; display:inline-flex; align-items:center; gap:4px;
  font-size:11px; color:var(--olive); background:#eef0e4;
  border:1px solid rgba(90,95,60,.25); border-radius:999px; padding:3px 9px;
}

/* ---------- faq ---------- */
.faq-list{ margin-top:36px; border-top:1px solid rgba(184,145,58,.4); }
.faq-item{ border-bottom:1px solid rgba(184,145,58,.4); }
.faq-h{ margin:0; font-weight:normal; }
.faq-q{
  width:100%; text-align:left; background:transparent; border:none; cursor:pointer;
  padding:22px 4px; display:flex; align-items:center; justify-content:space-between; gap:18px;
  font-family:var(--f-serif); color:var(--ink);
}
.faq-q-text{ font-size:calc(20px * var(--ts,1)); line-height:1.3; }
.faq-glyph{
  flex:0 0 auto; width:26px; height:26px;
  display:inline-flex; align-items:center; justify-content:center;
  color:var(--gold-2); font-size:22px; line-height:1;
}
.faq-a{ display:none; padding:0 4px 24px; }
.faq-item.is-open .faq-a{ display:block; }
.faq-a p{ font-size:calc(17px * var(--ts,1)); line-height:1.68; color:var(--ink-body); margin:0; max-width:660px; }

/* ---------- final cta ---------- */
.final-seal-wrap{ display:flex; justify-content:center; margin-bottom:24px; }
.final-h2{
  font-family:var(--f-serif); font-weight:500;
  font-size:clamp(30px,4.4vw,46px); line-height:1.14;
  color:var(--card-ivory); margin:0;
}
.final-cta-wrap{ margin-top:30px; display:flex; justify-content:center; }
.final-status{ margin-top:22px; font-size:15px; color:#9aa6bf; }
.final-date{ font-style:italic; color:var(--gold-band); }
.final-tagline{
  margin-top:30px; font-family:var(--f-sc);
  letter-spacing:.12em; color:var(--gold-soft); font-size:15px;
}

/* ---------- footer ---------- */
.site-footer{ background:var(--bg-cream-3); padding:56px 0 116px; }
.footer-grid{
  max-width:1180px; margin:0 auto; padding:0 28px;
  display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:32px;
}
.footer-brand{ display:flex; align-items:center; gap:11px; }
.footer-mission{ font-size:15px; line-height:1.6; color:#5d5d50; margin:14px 0 0; max-width:300px; }
.footer-head{
  font-family:var(--f-serif); text-transform:uppercase; font-size:calc(12px * var(--ts,1));
  letter-spacing:.2em; color:var(--gold-mute); margin-bottom:14px;
}
.footer-links{ display:flex; flex-direction:column; gap:9px; font-size:15px; }
.footer-links a{ color:var(--ink-body); text-decoration:none; }
.footer-links a:hover{ color:var(--brand); }
.footer-badges{ display:flex; flex-wrap:wrap; gap:8px; }
.footer-badges span{
  font-size:12px; color:#6a6a5c; border:1px solid #d6cdb8;
  border-radius:6px; padding:6px 10px; background:var(--card-ivory);
}
.footer-copyright{ font-size:12px; color:var(--gold-mute); margin-top:14px; }

/* ---------- sticky bar ---------- */
.sticky-bar{
  position:fixed; left:0; right:0; bottom:0; z-index:50;
  background:var(--card-ivory); border-top:1px solid rgba(184,145,58,.5);
  box-shadow:0 -12px 30px -18px rgba(44,36,24,.4);
  animation:fpUp .32s ease both;
}
.sticky-bar[hidden]{ display:none; }
.sticky-inner{
  max-width:1180px; margin:0 auto; padding:12px 22px;
  display:flex; align-items:center; justify-content:space-between; gap:16px;
}
.sticky-brand{ display:flex; align-items:center; gap:12px; min-width:0; }
.sticky-text{ min-width:0; }
.sticky-name{ font-family:var(--f-sc); font-size:16px; letter-spacing:.04em; color:var(--ink); line-height:1.1; }
.sticky-sub{
  font-size:13px; color:var(--muted); line-height:1.2;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.sticky-cta{ flex:0 0 auto; min-height:46px; padding:11px 24px; font-size:18px; }

/* ---------- toast ---------- */
.toast{
  position:fixed; left:50%; bottom:96px; transform:translateX(-50%); z-index:60;
  background:var(--brand); color:var(--card-ivory);
  padding:13px 22px; border-radius:8px; font-size:15px;
  box-shadow:0 18px 44px -18px rgba(28,36,57,.7);
  border:1px solid rgba(201,167,100,.45);
  animation:fpUp .25s ease both;
  max-width:90vw; text-align:center;
}
.toast[hidden]{ display:none; }

/* ============================================================
   RESPONSIVE
   ============================================================ */

@media (max-width: 980px){
  .pricing-grid{ grid-template-columns:1fr; }
  .pillar-featured{ grid-template-columns:1fr; }
  .pillar-photo{ min-height:280px; }
  .pillars-3{ grid-template-columns:1fr; }
  .gallery-grid{ grid-template-columns:repeat(2,1fr); }
  .footer-grid{ grid-template-columns:1fr 1fr; }
  .reviews-grid{ grid-template-columns:repeat(2,1fr); }
}

@media (max-width: 760px){
  .section{ padding:64px 0; }
  .gallery{ padding:72px 0; }
  .pricing{ padding:68px 0; }
  .guarantee{ padding:68px 0; }
  .final-cta{ padding:72px 0; }
  .hero{ padding:36px 0 48px; }
  .inside-grid{ grid-template-columns:1fr; }
  .inside-face{ min-height:280px; padding:30px 22px; }
  .how-grid{ grid-template-columns:1fr; gap:32px; }
  .founder-grid{ grid-template-columns:1fr; gap:28px; }
  .gift-grid{ grid-template-columns:1fr; gap:28px; }
  .gift-photo{ order:-1; }
  .guarantee-grid{ grid-template-columns:1fr; }
  .reviews-grid{ grid-template-columns:1fr; }
  .site-header{ padding:14px 20px; gap:12px; }
  .container-1180, .container-1080, .container-880, .container-780, .container-760{ padding:0 20px; }
  .hero-inner, .hero-showpiece{ padding:0 20px; }
  .showcase-face{ padding:22px 18px; }
  .plan{ padding:28px 22px 24px; }
}

@media (max-width: 560px){
  .ann-mid{ display:none; }
  .gallery-grid{ grid-template-columns:1fr; }
  .footer-grid{ grid-template-columns:1fr; }
  .promise-inner{ gap:16px 26px; }
  .promise-div{ display:none; }
  .header-controls{ gap:12px; }
  .hero-ctas .btn{ width:100%; }
  .lead-input{ max-width:none; flex:0 0 auto; } /* flex-basis would become a 240px HEIGHT in the column layout */
  .lead-form{ flex-direction:column; align-items:stretch; }
  .recipient-pills{ margin-left:0; margin-top:10px; display:flex; justify-content:center; }
  .recipient-q{ display:block; }
  .sticky-inner{ padding:10px 14px; gap:10px; }
  .sticky-cta{ padding:10px 18px; font-size:18px; min-height:44px; }
}

@media (max-width: 400px){
  .sticky-sub{ display:none; }
  .sticky-cta{ padding:10px 14px; }
  .plan{ padding:26px 18px 22px; }
  .detail-thumb{ flex-basis:78px; height:78px; }
}
