/* ============================================================
   ROSE THORNBURY — The Backyard Grower's Handbook
   ============================================================ */

:root{
  --ink:        #1a3324;
  --ink-deep:   #102019;
  --ink-soft:   #3f5647;
  --paper:      #f5f0e2;
  --paper-2:    #ece5d1;
  --paper-3:    #e2dabf;
  --gold:       #a3782c;
  --gold-lt:    #d9b877;
  --rose:       #9c3247;
  --rule:       rgba(26,51,36,.16);
  --rule-lt:    rgba(245,240,226,.22);

  --serif: "Fraunces", "Iowan Old Style", Georgia, serif;
  --text:  "EB Garamond", Georgia, "Times New Roman", serif;
  --ui:    "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;

  --wrap: 1180px;
  --pad: clamp(20px, 5vw, 48px);
}
*,*::before,*::after{ box-sizing:border-box; }

html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }

body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--text);
  font-size:clamp(17px,1.05vw + 14px,19.5px);
  line-height:1.68;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img{ max-width:100%; height:auto; display:block; }

.wrap{ width:100%; max-width:var(--wrap); margin-inline:auto; padding-inline:var(--pad); }

.skip{
  position:absolute; left:-9999px; top:0; z-index:200;
  background:var(--ink); color:var(--paper); padding:12px 18px; font-family:var(--ui); font-size:14px;
}
.skip:focus{ left:8px; top:8px; }

a{ color:inherit; }
:focus-visible{ outline:2.5px solid var(--gold); outline-offset:3px; border-radius:2px; }

.sep{ opacity:.45; padding-inline:.25em; }
.dot{ opacity:.55; padding-inline:.2em; }

/* ---------- Type helpers ---------- */
.eyebrow, .kicker{
  font-family:var(--ui); font-size:12px; font-weight:600;
  letter-spacing:.19em; text-transform:uppercase; color:var(--gold);
  margin:0 0 20px;
}
.kicker::after{
  content:""; display:block; width:44px; height:2px; background:var(--gold);
  margin-top:12px; opacity:.75;
}
.eyebrow{ color:var(--ink-soft); opacity:.8; }
.kicker.light{ color:var(--gold-lt); }
.kicker.light::after{ background:var(--gold-lt); }

.h2{
  font-family:var(--serif);
  font-weight:700;
  font-size:clamp(30px,3.4vw + 12px,54px);
  line-height:1.08;
  letter-spacing:-.018em;
  margin:0 0 22px;
  font-variation-settings:"opsz" 96;
}
.h2 em{ font-style:normal; color:var(--gold); font-weight:400; }
.h2.light{ color:var(--paper); }

.section-lede{
  font-size:1.06em; max-width:64ch; margin:0 0 8px; color:var(--ink-soft);
}
.section-lede.light{ color:rgba(245,240,226,.74); }

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.1em;
  font-family:var(--ui); font-weight:600; font-size:15px; letter-spacing:.01em;
  white-space:nowrap;
  background:var(--ink); color:var(--paper);
  padding:14px 26px; border-radius:2px; text-decoration:none;
  border:1px solid var(--ink);
  transition:transform .18s ease, background .18s ease, box-shadow .18s ease;
  box-shadow:0 1px 0 rgba(26,51,36,.2);
}
.btn:hover{ background:var(--ink-deep); transform:translateY(-2px); box-shadow:0 8px 22px -10px rgba(16,32,25,.65); }
.btn:active{ transform:translateY(0); }
.btn-sm{ padding:10px 18px; font-size:13.5px; }
.btn-lg{ padding:18px 34px; font-size:16.5px; }
.btn-block{ display:flex; width:100%; }
.btn-gold{ background:var(--gold); border-color:var(--gold); color:#16281d; }
.btn-gold:hover{ background:var(--gold-lt); border-color:var(--gold-lt); color:#16281d; }

.btn-ghost{
  font-family:var(--ui); font-size:15px; font-weight:500;
  color:var(--ink-soft); text-decoration:none;
  border-bottom:1px solid var(--rule); padding-bottom:3px;
  transition:color .18s ease, border-color .18s ease;
}
.btn-ghost:hover{ color:var(--ink); border-color:var(--gold); }

@media (prefers-reduced-motion: reduce){
  .btn:hover{ transform:none; }
}

/* ============================================================
   NAV
   ============================================================ */
.nav{
  position:sticky; top:0; z-index:100;
  background:rgba(245,240,226,.86);
  backdrop-filter:saturate(140%) blur(10px);
  border-bottom:1px solid transparent;
  transition:border-color .25s ease, box-shadow .25s ease;
}
.nav.stuck{ border-bottom-color:var(--rule); box-shadow:0 6px 24px -20px rgba(16,32,25,.8); }
.nav-in{ display:flex; align-items:center; gap:24px; min-height:68px; }

.brand{ display:flex; align-items:center; gap:11px; text-decoration:none; margin-right:auto; }
.brand-mark{
  width:34px; height:34px; flex:none; border-radius:50%;
  background:var(--ink); color:var(--gold-lt);
  display:grid; place-items:center;
  font-family:var(--serif); font-weight:700; font-size:17px; line-height:1;
  padding-bottom:1px;
}
.brand-text{
  display:flex; flex-direction:column; line-height:1.15;
  font-family:var(--serif); font-weight:600; font-size:17px; letter-spacing:.005em;
}
.brand-text em{
  font-family:var(--ui); font-style:normal; font-size:10px; font-weight:500;
  letter-spacing:.15em; text-transform:uppercase; color:var(--ink-soft); opacity:.7; margin-top:2px;
}

.nav-links{ display:flex; gap:24px; }
.nav-links a{
  font-family:var(--ui); font-size:14px; font-weight:500; color:var(--ink-soft);
  text-decoration:none; padding-bottom:2px; border-bottom:1px solid transparent;
  transition:color .18s ease, border-color .18s ease;
}
.nav-links a:hover{ color:var(--ink); border-bottom-color:var(--gold); }

@media (max-width:1040px){ .nav-links{ display:none; } }
@media (max-width:620px){
  .brand-text{ font-size:16px; white-space:nowrap; }
  .brand-text em{ display:none; }
  .nav-in{ gap:10px; min-height:60px; }
  .btn-sm{ padding:9px 13px; font-size:12.5px; }
}
@media (max-width:400px){
  .brand-mark{ width:30px; height:30px; font-size:15px; }
  .brand-text{ font-size:15px; }
  .btn-sm{ padding:8px 11px; font-size:11.5px; }
}

/* ============================================================
   HERO
   ============================================================ */
.hero{
  position:relative;
  padding:clamp(48px,7vw,96px) 0 clamp(40px,6vw,80px);
  background:
    radial-gradient(120% 80% at 78% 12%, rgba(163,120,44,.11), transparent 62%),
    radial-gradient(90% 70% at 12% 90%, rgba(26,51,36,.06), transparent 60%),
    var(--paper);
  overflow:hidden;
}
.hero::after{
  content:""; position:absolute; inset:auto 0 0; height:1px; background:var(--rule);
}
.hero-grid{
  display:grid; grid-template-columns:1.03fr .97fr; gap:clamp(28px,5vw,72px); align-items:center;
}
.hero-copy h1{
  font-family:var(--serif); font-weight:900;
  font-size:clamp(37px,4.6vw + 8px,72px);
  line-height:.98; letter-spacing:-.028em;
  margin:0 0 20px;
  font-variation-settings:"opsz" 144;
}
.lede{
  font-family:var(--serif); font-style:italic; font-weight:400;
  font-size:clamp(19px,1.2vw + 14px,26px); line-height:1.34;
  color:var(--rose); margin:0 0 24px; max-width:26ch;
}
.hero-body{ max-width:52ch; color:var(--ink-soft); margin:0 0 32px; }

.cta-row{ display:flex; align-items:center; gap:clamp(16px,3vw,30px); flex-wrap:wrap; margin-bottom:30px; }

.hero-facts{
  display:flex; flex-wrap:wrap; gap:0; list-style:none; margin:0; padding:22px 0 0;
  border-top:1px solid var(--rule);
  font-family:var(--ui); font-size:12.5px; font-weight:500; letter-spacing:.09em; text-transform:uppercase;
  color:var(--ink-soft);
}
.hero-facts li{ padding-right:18px; margin-right:18px; border-right:1px solid var(--rule); }
.hero-facts li:last-child{ border-right:0; margin-right:0; padding-right:0; }

.hero-book{ position:relative; }
.hero-book img{
  width:100%; max-width:520px; margin-inline:auto;
  filter:drop-shadow(-10px 22px 30px rgba(16,32,25,.22));
}

@media (max-width:880px){
  .hero-grid{ grid-template-columns:1fr; }
  .hero-book{ order:-1; }
  .hero-book img{ max-width:300px; }
  .lede{ max-width:none; }
}
@media (max-width:520px){
  .hero-facts{ font-size:11px; gap:6px 0; }
  .hero-facts li{ padding-right:12px; margin-right:12px; }
}

/* ============================================================
   TICKER
   ============================================================ */
.ticker{
  background:var(--ink); color:var(--gold-lt);
  overflow:hidden; padding:13px 0; border-block:1px solid var(--ink-deep);
}
.ticker-track{
  display:flex; width:max-content;
  animation:slide 58s linear infinite;
}
.ticker span{
  font-family:var(--ui); font-size:12px; font-weight:500;
  letter-spacing:.24em; text-transform:uppercase; white-space:nowrap;
  padding-inline:22px; opacity:.85;
}
.ticker span::after{ content:"·"; margin-left:22px; opacity:.5; }
@keyframes slide{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
@media (prefers-reduced-motion: reduce){ .ticker-track{ animation:none; } }

/* ============================================================
   WHY / DIAGNOSIS
   ============================================================ */
.why{ padding:clamp(64px,8vw,120px) 0; }
.why .section-lede{ margin-bottom:clamp(40px,5vw,64px); }

.diag-grid{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(285px,1fr));
  gap:1px; background:var(--rule); border:1px solid var(--rule);
}
.diag{
  background:var(--paper); padding:clamp(26px,2.6vw,38px);
  display:flex; flex-direction:column;
  transition:background .25s ease;
}
.diag:hover{ background:var(--paper-2); }
.diag-symptom{
  font-family:var(--serif); font-weight:600; font-style:italic;
  font-size:clamp(19px,.7vw + 16px,23px); line-height:1.24;
  margin:0 0 16px; color:var(--ink);
}
.diag-answer{ margin:0 0 22px; color:var(--ink-soft); font-size:.97em; flex:1; }
.diag-ref{
  margin:0; font-family:var(--ui); font-size:11px; font-weight:600;
  letter-spacing:.16em; text-transform:uppercase; color:var(--gold);
}

/* ============================================================
   THREE FIXES
   ============================================================ */
.fixes{ padding:clamp(64px,8vw,120px) 0; background:var(--paper-2); }
.fixes .section-lede{ margin-bottom:clamp(38px,4.5vw,58px); }

.fix-grid{
  list-style:none; margin:0 0 clamp(34px,4vw,52px); padding:0;
  display:grid; grid-template-columns:repeat(auto-fit,minmax(268px,1fr));
  gap:clamp(20px,2.4vw,32px);
}
.fix{
  background:var(--paper); border:1px solid var(--rule);
  border-top:3px solid var(--gold);
  padding:clamp(26px,2.6vw,36px);
  display:flex; flex-direction:column;
}
.fix-num{
  font-family:var(--ui); font-size:11px; font-weight:700; letter-spacing:.2em;
  text-transform:uppercase; color:var(--gold); margin:0 0 14px;
}
.fix h3{
  font-family:var(--serif); font-weight:700;
  font-size:clamp(21px,.9vw + 17px,27px); line-height:1.16; letter-spacing:-.014em;
  margin:0 0 14px;
}
.fix-body{ margin:0 0 22px; color:var(--ink-soft); font-size:.97em; flex:1; }
.fix-cost{
  margin:0; padding-top:16px; border-top:1px solid var(--rule);
  font-family:var(--ui); font-size:12px; letter-spacing:.08em; text-transform:uppercase;
  color:var(--ink-soft);
}
.fix-cost strong{ color:var(--ink); font-weight:600; }

.fix-foot{
  margin:0; max-width:74ch;
  font-family:var(--serif); font-style:italic; font-weight:400;
  font-size:clamp(19px,.9vw + 15px,25px); line-height:1.4;
  color:var(--ink);
  padding-left:clamp(18px,2vw,26px); border-left:3px solid var(--rose);
}

/* ============================================================
   BUILT (dark)
   ============================================================ */
.built{
  background:var(--ink); color:var(--paper);
  padding:clamp(64px,8vw,116px) 0;
  background-image:radial-gradient(90% 70% at 15% 0%, rgba(163,120,44,.15), transparent 60%);
}
.built-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(36px,5vw,80px); align-items:center; }
.steps{ list-style:none; margin:0; padding:0; }
.steps li{
  padding:24px 0; border-top:1px solid var(--rule-lt);
  display:grid; grid-template-columns:auto 1fr; column-gap:22px;
}
.steps li:last-child{ border-bottom:1px solid var(--rule-lt); }
.steps .num{
  font-family:var(--serif); font-weight:700; font-size:19px; color:var(--gold-lt);
  grid-row:span 2; padding-top:2px; opacity:.9;
}
.steps h3{
  margin:0 0 6px; font-family:var(--serif); font-weight:600;
  font-size:clamp(19px,.6vw + 16px,23px); line-height:1.2; letter-spacing:-.01em;
}
.steps p{ margin:0; color:rgba(245,240,226,.66); font-size:.97em; grid-column:2; }

@media (max-width:860px){ .built-grid{ grid-template-columns:1fr; } }

/* ============================================================
   CONTENTS
   ============================================================ */
.contents{ padding:clamp(64px,8vw,120px) 0; }
.contents .section-lede{ margin-bottom:clamp(36px,4vw,56px); }

.toc{ border-top:1px solid var(--rule); }
.toc details{ border-bottom:1px solid var(--rule); }
.toc summary{
  list-style:none; cursor:pointer;
  display:flex; align-items:baseline; justify-content:space-between; gap:16px;
  padding:22px 44px 22px 0; position:relative;
}
.toc summary::-webkit-details-marker{ display:none; }
.toc summary::after{
  content:""; position:absolute; right:8px; top:50%;
  width:10px; height:10px; margin-top:-7px;
  border-right:1.6px solid var(--gold); border-bottom:1.6px solid var(--gold);
  transform:rotate(45deg); transition:transform .25s ease;
}
.toc details[open] summary::after{ transform:rotate(-135deg); margin-top:-3px; }
.toc summary:hover .toc-part{ color:var(--rose); }

.toc-part{
  font-family:var(--serif); font-weight:600;
  font-size:clamp(20px,1vw + 16px,28px); letter-spacing:-.012em;
  transition:color .2s ease;
}
.toc-part em{ font-style:normal; color:var(--gold); padding-inline:.2em; font-weight:400; }
.toc-count{
  font-family:var(--ui); font-size:11.5px; font-weight:600; letter-spacing:.14em;
  text-transform:uppercase; color:var(--ink-soft); opacity:.72; white-space:nowrap;
}
.toc-list{
  margin:0; padding:0 0 26px 1.4em;
  columns:2; column-gap:44px;
  color:var(--ink-soft);
}
.toc-list li{ break-inside:avoid; margin-bottom:9px; padding-left:6px; font-size:.98em; }
.toc-list li::marker{ font-family:var(--ui); font-size:.7em; color:var(--gold); }
.toc-list.plain{ list-style:none; padding-left:0; }
.toc-list.plain li{ padding-left:20px; position:relative; }
.toc-list.plain li::before{ content:"—"; position:absolute; left:0; color:var(--gold); }
@media (max-width:760px){ .toc-list{ columns:1; } }

/* ============================================================
   EXCERPT
   ============================================================ */
.excerpt{ padding:clamp(64px,8vw,120px) 0; background:var(--paper-2); }
.excerpt .h2{ margin-bottom:clamp(32px,4vw,48px); }

.page{
  background:#fdfaf0;
  border:1px solid var(--rule);
  box-shadow:0 30px 60px -40px rgba(16,32,25,.5), inset 0 0 0 8px rgba(245,240,226,.6);
  padding:clamp(30px,4.5vw,68px);
  max-width:760px; margin-inline:auto;
  position:relative;
}
.page::before{
  content:"CHAPTER 08 · ROSE THORNBURY";
  display:block; font-family:var(--ui); font-size:10px; font-weight:600;
  letter-spacing:.2em; color:var(--ink-soft); opacity:.5;
  padding-bottom:22px; margin-bottom:26px; border-bottom:1px solid var(--rule);
}
.page p{ margin:0 0 1.05em; }
.page em{ font-style:italic; }
.page strong{ font-weight:600; }

.drop::first-letter{
  float:left; font-family:var(--serif); font-weight:700;
  font-size:4.1em; line-height:.78; padding:.06em .12em 0 0; color:var(--rose);
}
.page-h3{
  font-family:var(--serif); font-weight:600; font-size:1.16em;
  margin:1.6em 0 .5em; letter-spacing:-.008em;
}
.page-steps{ margin:0 0 1.3em; padding-left:1.5em; }
.page-steps li{ margin-bottom:.55em; padding-left:4px; }
.page-steps li::marker{ font-family:var(--ui); font-size:.72em; color:var(--gold); font-weight:600; }

.box{
  background:var(--paper-2); border-left:3px solid var(--gold);
  padding:22px 26px; margin:1.8em 0; font-size:.96em;
}
.box-title{
  font-family:var(--ui); font-size:11px; font-weight:700; letter-spacing:.17em;
  text-transform:uppercase; color:var(--gold); margin:0 0 10px !important;
}
.box p:last-child{ margin-bottom:0; }

.ledger{ width:100%; border-collapse:collapse; margin:1.8em 0; font-size:.95em; }
.ledger caption{
  font-family:var(--ui); font-size:11px; font-weight:600; letter-spacing:.17em;
  text-transform:uppercase; color:var(--ink-soft); opacity:.65;
  text-align:left; padding-bottom:10px;
}
.ledger th, .ledger td{
  text-align:left; padding:11px 0; border-bottom:1px solid var(--rule); font-weight:400; vertical-align:top;
}
.ledger td{ text-align:right; color:var(--rose); font-style:italic; padding-left:16px; }

.page-fold{
  margin:2em 0 0 !important; padding-top:22px; border-top:1px solid var(--rule);
  font-family:var(--ui); font-size:12.5px; letter-spacing:.05em;
  color:var(--ink-soft); opacity:.7; text-align:center;
}

/* ============================================================
   ROSE
   ============================================================ */
.rose{ padding:clamp(64px,8vw,120px) 0; }
.rose-grid{ display:grid; grid-template-columns:.85fr 1fr; gap:clamp(32px,5vw,76px); align-items:center; }
.rose-photo img{
  width:100%; border:1px solid var(--rule);
  box-shadow:0 40px 70px -50px rgba(16,32,25,.85);
  filter:saturate(.97);
}
.caption{
  font-family:var(--ui); font-size:11.5px; letter-spacing:.05em;
  color:var(--ink-soft); opacity:.7; margin:14px 0 0;
}
.rose-copy p{ margin:0 0 1.05em; color:var(--ink-soft); }
.rose-copy .h2{ color:var(--ink); }
.pull{
  margin:32px 0 0; padding:26px 0 0; border-top:1px solid var(--rule);
}
.pull p{
  font-family:var(--serif); font-style:italic; font-weight:400;
  font-size:clamp(20px,1.2vw + 15px,28px); line-height:1.3;
  color:var(--rose) !important; margin:0;
}
@media (max-width:860px){
  .rose-grid{ grid-template-columns:1fr; }
  .rose-photo img{ max-width:420px; }
}

/* ============================================================
   LIMITS (dark)
   ============================================================ */
.limits{
  background:var(--ink-deep); color:var(--paper);
  padding:clamp(60px,7vw,104px) 0;
}
.limits .h2{ margin-bottom:clamp(32px,4vw,50px); }
.limits-grid{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(205px,1fr));
  gap:clamp(22px,2.6vw,38px);
}
.limits-grid p{
  margin:0; padding-top:20px; border-top:1px solid var(--rule-lt);
  color:rgba(245,240,226,.68); font-size:.99em;
}

/* ============================================================
   OFFER
   ============================================================ */
.offer{ padding:clamp(64px,8vw,120px) 0; }
.offer-card{
  display:grid; grid-template-columns:.8fr 1fr;
  gap:clamp(28px,4vw,56px); align-items:start;
  background:#fdfaf0; border:1px solid var(--rule);
  padding:clamp(26px,4vw,56px);
  box-shadow:0 40px 80px -60px rgba(16,32,25,.9);
}
.offer-cover img{
  width:100%;
  filter:drop-shadow(-8px 18px 24px rgba(16,32,25,.26));
}
.offer-title{
  font-family:var(--serif); font-weight:700;
  font-size:clamp(27px,2vw + 15px,40px); line-height:1.05; letter-spacing:-.02em;
  margin:0 0 12px;
}
.offer-sub{
  font-family:var(--serif); font-style:italic; color:var(--rose);
  font-size:1.06em; margin:0 0 26px;
}
.offer-list{ list-style:none; margin:0 0 30px; padding:0; }
.offer-list li{
  position:relative; padding:12px 0 12px 30px; border-bottom:1px solid var(--rule);
  color:var(--ink-soft); font-size:.97em;
}
.offer-list li:first-child{ border-top:1px solid var(--rule); }
.offer-list li::before{
  content:""; position:absolute; left:4px; top:1.05em;
  width:6px; height:11px; border-right:1.8px solid var(--gold); border-bottom:1.8px solid var(--gold);
  transform:rotate(45deg);
}
.offer-list strong{ color:var(--ink); font-weight:600; }

.price-row{ display:flex; align-items:baseline; gap:14px; margin-bottom:20px; flex-wrap:wrap; }
.price{
  font-family:var(--serif); font-weight:700; font-size:clamp(40px,3vw + 20px,58px);
  line-height:1; letter-spacing:-.03em;
}
.price-note{
  font-family:var(--ui); font-size:12px; font-weight:500; letter-spacing:.13em;
  text-transform:uppercase; color:var(--ink-soft); opacity:.75;
}
.secure{
  font-family:var(--ui); font-size:12px; color:var(--ink-soft); opacity:.72;
  margin:16px 0 0; text-align:center;
}
@media (max-width:820px){
  .offer-card{ grid-template-columns:1fr; }
  .offer-cover{ max-width:280px; margin-inline:auto; }
}

/* ============================================================
   FAQ
   ============================================================ */
.faq{ padding:clamp(64px,8vw,120px) 0; background:var(--paper-2); }
.faq-in{ max-width:840px; }
.faq .h2{ margin-bottom:clamp(30px,4vw,46px); }
.faq details{ border-bottom:1px solid var(--rule); }
.faq details:first-of-type{ border-top:1px solid var(--rule); }
.faq summary{
  list-style:none; cursor:pointer; position:relative;
  padding:22px 46px 22px 0;
  font-family:var(--serif); font-weight:600; font-size:clamp(18px,.6vw + 15px,22px);
  line-height:1.3; letter-spacing:-.01em;
  transition:color .2s ease;
}
.faq summary::-webkit-details-marker{ display:none; }
.faq summary:hover{ color:var(--rose); }
.faq summary::before,
.faq summary::after{
  content:""; position:absolute; right:8px; top:50%; background:var(--gold);
  transition:transform .25s ease, opacity .25s ease;
}
.faq summary::before{ width:14px; height:1.6px; margin-top:-.8px; right:8px; }
.faq summary::after{ width:1.6px; height:14px; margin-top:-7px; right:14.2px; }
.faq details[open] summary::after{ transform:rotate(90deg); opacity:0; }
.faq details p{ margin:0 0 24px; padding-right:40px; color:var(--ink-soft); font-size:.99em; }

/* ============================================================
   FINAL CTA
   ============================================================ */
.final{
  background:var(--ink); color:var(--paper);
  padding:clamp(70px,9vw,130px) 0;
  background-image:radial-gradient(70% 90% at 50% 0%, rgba(163,120,44,.2), transparent 65%);
  text-align:center;
}
.final-in{ max-width:820px; }
.final-quote{
  font-family:var(--serif); font-style:italic; font-weight:400;
  font-size:clamp(28px,3.2vw + 12px,50px); line-height:1.16; letter-spacing:-.02em;
  margin:0 0 22px;
}
.final-sig{
  font-family:var(--ui); font-size:11.5px; font-weight:500; letter-spacing:.19em;
  text-transform:uppercase; color:var(--gold-lt); opacity:.85; margin:0 0 40px;
}
.final-facts{
  font-family:var(--ui); font-size:12px; letter-spacing:.1em; text-transform:uppercase;
  color:rgba(245,240,226,.55); margin:22px 0 0;
}

/* ============================================================
   FOOTER
   ============================================================ */
.foot{ background:var(--ink-deep); color:rgba(245,240,226,.6); padding:44px 0 40px; }
.foot-in{ display:grid; gap:26px; }
.foot-brand{ display:flex; align-items:center; gap:12px; }
.foot .brand-mark{ background:var(--gold); color:var(--ink-deep); }
.foot-name{ font-family:var(--serif); font-weight:600; font-size:17px; color:var(--paper); margin:0; }
.foot-place{
  font-family:var(--ui); font-size:10px; letter-spacing:.15em; text-transform:uppercase;
  margin:2px 0 0; opacity:.7;
}
.foot-links{ display:flex; flex-wrap:wrap; gap:8px 26px; }
.foot-links a{
  font-family:var(--ui); font-size:13.5px; text-decoration:none; color:rgba(245,240,226,.68);
  transition:color .18s ease;
}
.foot-links a:hover{ color:var(--gold-lt); }
.foot-fine{
  font-family:var(--ui); font-size:11.5px; line-height:1.6; margin:0;
  padding-top:24px; border-top:1px solid var(--rule-lt); opacity:.6;
}

/* ============================================================
   STICKY BUY BAR
   ============================================================ */
.sticky-buy{
  position:fixed; left:0; right:0; bottom:0; z-index:90;
  background:rgba(16,32,25,.96);
  backdrop-filter:blur(8px);
  border-top:1px solid rgba(163,120,44,.4);
  transform:translateY(105%);
  transition:transform .35s cubic-bezier(.22,.8,.3,1);
  padding:12px var(--pad);
}
.sticky-buy.show{ transform:translateY(0); }
.sticky-in{
  max-width:var(--wrap); margin-inline:auto;
  display:flex; align-items:center; justify-content:space-between; gap:18px;
}
.sticky-text{ display:flex; flex-direction:column; line-height:1.3; color:var(--paper); }
.sticky-text strong{ font-family:var(--serif); font-weight:600; font-size:16px; }
.sticky-text span{
  font-family:var(--ui); font-size:11px; letter-spacing:.11em; text-transform:uppercase;
  color:rgba(245,240,226,.55);
}
.sticky-text em{ font-style:normal; opacity:.5; padding-inline:.25em; }
.sticky-buy .btn{ background:var(--gold); border-color:var(--gold); color:#16281d; flex:none; }
.sticky-buy .btn:hover{ background:var(--gold-lt); border-color:var(--gold-lt); }
@media (max-width:640px){
  .sticky-text span{ display:none; }
  .sticky-text strong{ font-size:14px; }
  .sticky-buy{ padding:10px 16px; }
  .sticky-buy .btn{ padding:11px 16px; font-size:13.5px; }
}
@media (prefers-reduced-motion: reduce){
  .sticky-buy{ transition:none; }
}

/* ---------- Reveal on scroll ---------- */
.reveal{ opacity:0; transform:translateY(16px); }
.reveal.in{ opacity:1; transform:none; transition:opacity .7s ease, transform .7s cubic-bezier(.22,.8,.3,1); }
@media (prefers-reduced-motion: reduce){
  .reveal{ opacity:1; transform:none; }
}

/* ---------- Print ---------- */
@media print{
  .nav, .sticky-buy, .ticker, .final .btn{ display:none !important; }
  body{ background:#fff; }
}
