/* Denemouth Park luxury web brochure.
   The same navy and gold editorial identity as the print PDF, reflowed to read
   perfectly on a phone with no zoom. Everything is scoped under .brochure so it
   stays isolated from the rest of the site. It uses the same Cormorant Garamond and
   Outfit pair the whole site loads (inc/enqueue.php). Mobile first; the desktop grids return
   at the breakpoints near the bottom. A print block at the end lets WeasyPrint render
   the portrait PDF from this same source. */

.brochure{
  --br-green:#0B2340;
  --br-green-2:#102C4F;
  --br-cream:#F4EFE6;
  --br-cream-panel:#FBF7EE;
  --br-ink:#1A1714;
  --br-ink-soft:#514A42;
  --br-cream-soft:#ECE5D5;
  --br-cream-faint:#C4BDA9;
  --br-gold:#C4A265;
  --br-gold-lt:#D9BF8C;
  --br-bronze:#7A5D24; /* gold's text-safe partner on cream (5.4:1); gold itself is for navy only */
  --br-sage:#B39A6B;
  --br-line:rgba(244,239,230,0.16);

  font-family:'Outfit',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  color:var(--br-ink);
  background:var(--br-cream);
  overflow-x:hidden;
}
.brochure *{box-sizing:border-box}

.brochure .br-wrap{max-width:1120px;margin:0 auto;padding:0 22px;width:100%}

/* ---------- Type ---------- */
.brochure .br-eyebrow{
  font-family:'Outfit';font-weight:600;font-size:.72rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--br-gold);margin:0;
}
.brochure .br-h2{
  font-family:'Cormorant Garamond',Georgia,serif;font-weight:600;
  font-size:clamp(1.85rem,5.4vw,2.9rem);line-height:1.08;letter-spacing:-.01em;
  margin:.5rem 0 0;color:var(--br-ink);text-wrap:balance;
}
.brochure .br-display{
  font-family:'Cormorant Garamond',Georgia,serif;font-weight:600;
  font-size:clamp(2.7rem,9vw,5rem);line-height:1.02;letter-spacing:-.015em;margin:.4rem 0 0;
}
.brochure .br-body{
  font-family:'Outfit';font-weight:400;font-size:1.075rem;line-height:1.65;color:var(--br-ink-soft);
}
.brochure .br-body p{margin:0 0 .9rem}
.brochure .br-body p:last-child{margin-bottom:0}
.brochure .br-lead{font-weight:300;font-size:1.16rem;line-height:1.6}
.brochure .br-u{text-decoration:underline;font-weight:800}
.brochure .br-gold-t{color:var(--br-gold)}

/* Section colourways */
.brochure .br-sec{padding:clamp(3.2rem,8vw,6rem) 0}
.brochure .br-green{background:var(--br-green);color:var(--br-cream)}
.brochure .br-cream{background:var(--br-cream);color:var(--br-ink)}
.brochure .br-green .br-h2{color:var(--br-cream)}
.brochure .br-green .br-body{color:var(--br-cream-soft)}
.brochure .br-green .br-eyebrow{color:var(--br-gold-lt)}
.brochure .br-cream .br-eyebrow,.brochure .br-cream .br-kicker,.brochure .br-cream .br-chip-l,.brochure .br-cream .br-sig,.brochure .br-cream .br-callme,.brochure .br-cream .br-gold-t{color:var(--br-bronze)}
.brochure .br-cream .br-callme{border-bottom-color:rgba(122,93,36,.4)}
.brochure .br-intro{max-width:640px}
.brochure .br-intro .br-body{margin-top:.9rem}

/* ---------- Buttons ---------- */
.brochure .br-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  font-family:'Outfit';font-weight:600;font-size:1rem;letter-spacing:.01em;
  min-height:52px;padding:.85rem 1.6rem;border-radius:9px;border:1.5px solid transparent;
  cursor:pointer;transition:background .2s ease,color .2s ease,border-color .2s ease;text-align:center;
}
.brochure .br-btn-gold{background:var(--br-gold);color:#07182C}
.brochure .br-btn-gold:hover{background:var(--br-gold-lt)}
.brochure .br-btn-ghost{background:transparent;color:var(--br-cream);border-color:rgba(244,239,230,.5)}
.brochure .br-btn-ghost:hover{background:rgba(244,239,230,.1);border-color:var(--br-cream)}

/* ---------- 1. Cover ---------- */
.brochure .br-cover{
  position:relative;min-height:min(90vh,860px);display:flex;color:var(--br-cream);
  background-image:
    linear-gradient(100deg, rgba(7,24,44,.93) 0%, rgba(7,24,44,.82) 28%, rgba(7,24,44,.64) 52%, rgba(7,24,44,.44) 76%, rgba(7,24,44,.3) 100%),
    linear-gradient(0deg, rgba(7,24,44,.72) 0%, rgba(7,24,44,0) 34%),
    url(../media/site/hero.jpg);
  background-size:cover;background-position:center;
  text-shadow:0 1px 14px rgba(4,14,27,.55);
}
.brochure .br-cover-in{
  max-width:1120px;margin:0 auto;width:100%;padding:calc(2rem + 1vw) 22px 2.4rem;
  display:flex;flex-direction:column;gap:1.4rem;justify-content:space-between;min-height:min(90vh,860px);
}
.brochure .br-brandline{display:flex;align-items:center;gap:14px}
.brochure .br-wordmark{font-family:'Outfit';font-weight:600;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--br-cream)}
.brochure .br-brandline .br-bar{flex:1 1 auto;height:1px;background:var(--br-line)}
.brochure .br-est{font-family:'Outfit';font-weight:500;font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--br-cream-faint);white-space:nowrap}
.brochure .br-cover-hero{margin-top:auto}
.brochure .br-cover-hero .br-eyebrow{color:var(--br-gold-lt);margin-bottom:.9rem}
.brochure .br-display{color:var(--br-cream)}
.brochure .br-cover-sub{font-family:'Outfit';font-weight:300;font-size:1.18rem;line-height:1.5;color:var(--br-cream-soft);max-width:36ch;margin:1.2rem 0 0}
.brochure .br-cta{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.6rem}
.brochure .br-cta .br-btn{flex:1 1 auto}
.brochure .br-strip{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .8rem;font-family:'Outfit';font-weight:500;font-size:.95rem;color:var(--br-cream)}
.brochure .br-strip .br-dot{color:var(--br-gold-lt)}
.brochure .br-strip .br-price{color:var(--br-gold-lt);font-weight:600}

/* ---------- 2. Invitation ---------- */
.brochure .br-invite-grid{display:grid;gap:2.2rem}
.brochure .br-letter .br-body{margin-top:1.1rem}
.brochure .br-signoff{font-family:'Cormorant Garamond',Georgia,serif;font-weight:600;font-size:1.35rem;color:var(--br-ink);margin:1.5rem 0 .6rem}
.brochure .br-sig{font-family:'Cormorant Garamond',Georgia,serif;font-style:italic;font-weight:500;font-size:3rem;line-height:.95;color:var(--br-gold)}
.brochure .br-nameplate{font-family:'Outfit';font-weight:600;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--br-ink-soft);margin-top:.6rem}
.brochure .br-callme{display:inline-block;font-family:'Outfit';font-weight:600;font-size:1rem;color:var(--br-gold);margin-top:.9rem;border-bottom:1px solid rgba(196,162,101,.4);padding-bottom:2px}
.brochure .br-callme-row{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem 1.5rem;margin-top:1.1rem}
.brochure .br-callme-row .br-callme{margin-top:0}
.brochure .br-whatsapp{display:inline-flex;align-items:center;gap:.45rem;font-family:'Outfit';font-weight:600;font-size:1rem;color:#7A5D24;border-bottom:1px solid rgba(122,93,36,.4);padding-bottom:2px}
.brochure .br-whatsapp svg{flex:none}
.brochure .br-aside{background:var(--br-green);color:var(--br-cream);border-radius:16px;padding:2rem 1.6rem;display:flex;flex-direction:column;justify-content:center}
.brochure .br-kicker{font-family:'Outfit';font-weight:600;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--br-gold);margin:0 0 1rem}
.brochure .br-pull{font-family:'Cormorant Garamond',Georgia,serif;font-weight:600;font-size:1.4rem;line-height:1.28;letter-spacing:-.01em;margin:0}

/* ---------- 3. Difference / pillars ---------- */
.brochure .br-pillars{display:grid;gap:1.8rem 1.6rem;margin-top:2.4rem}
.brochure .br-pillar .br-ico{width:38px;height:38px;margin-bottom:.7rem}
.brochure .br-pillar .br-ico svg{width:38px;height:38px}
.brochure .br-pillar h3{font-family:'Cormorant Garamond',Georgia,serif;font-weight:600;font-size:1.22rem;color:var(--br-cream);margin:0 0 .35rem}
.brochure .br-pillar p{font-family:'Outfit';font-weight:400;font-size:1rem;line-height:1.55;color:var(--br-cream-soft);margin:0}

/* ---------- 3b. Photo spread ---------- */
.brochure .br-photo{
  position:relative;min-height:72vh;display:flex;align-items:flex-end;
  background-image:url(../media/area/beach.jpg);background-size:cover;background-position:center;
}
.brochure .br-photo-cap{
  width:100%;padding:5rem 0 2.4rem;color:var(--br-cream);text-shadow:0 1px 12px rgba(4,14,27,.5);
  background:linear-gradient(0deg, rgba(7,24,44,.95) 0%, rgba(7,24,44,.8) 46%, rgba(7,24,44,0) 100%);
}
.brochure .br-photo-cap .br-eyebrow{color:var(--br-gold-lt);margin-bottom:.5rem}
.brochure .br-photo-cap .br-h2{color:var(--br-cream);margin-top:.2rem}
.brochure .br-photo-cap .br-body{color:var(--br-cream-soft);max-width:52ch;margin-top:.9rem}

/* ---------- 3c. Doorstep ---------- */
.brochure .br-ds-grid{display:grid;gap:1.8rem 2.2rem;margin-top:2.4rem}
.brochure .br-ds h3{font-family:'Cormorant Garamond',Georgia,serif;font-weight:600;font-size:1.18rem;color:var(--br-ink);margin:0 0 .3rem}
.brochure .br-ds p{font-family:'Outfit';font-weight:400;font-size:1rem;line-height:1.55;color:var(--br-ink-soft);margin:0}

/* ---------- 4. Spec ---------- */
.brochure .br-spec-grid{display:grid;gap:1.8rem;margin-top:2rem;align-items:center}
.brochure .br-spec-copy .br-body{margin-bottom:1rem}
.brochure .br-spec-copy .br-body:last-child{margin-bottom:0}
.brochure .br-spec-shot{border-radius:14px;min-height:240px;background-image:url(../media/brochure/bar.jpg);background-size:cover;background-position:center}
.brochure .br-chips{display:flex;flex-wrap:wrap;gap:1.4rem 2.4rem;margin-top:2.2rem;padding-top:1.8rem;border-top:1px solid rgba(26,23,20,.14)}
.brochure .br-chip-k{display:block;font-family:'Cormorant Garamond',Georgia,serif;font-weight:600;font-size:1.35rem;color:var(--br-ink)}
.brochure .br-chip-l{display:block;font-family:'Outfit';font-weight:600;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--br-gold);margin-top:.35rem}

/* ---------- 5. Manifesto ---------- */
.brochure .br-man-top{display:grid;gap:1.6rem}
.brochure .br-man-shot{border-radius:14px;min-height:200px;background-image:url(../media/brochure/home.jpg);background-size:cover;background-position:center}
.brochure .br-man-cols{display:grid;gap:1.8rem;margin-top:2rem}
.brochure .br-man-price{text-align:left}
.brochure .br-from{font-family:'Outfit';font-weight:600;font-size:.85rem;letter-spacing:.14em;text-transform:uppercase;color:var(--br-cream-faint);margin-bottom:.5rem}
.brochure .br-num{font-family:'Outfit';font-weight:800;font-size:clamp(3rem,12vw,4.4rem);line-height:1;color:var(--br-gold);letter-spacing:-.03em}
.brochure .br-num-foot{font-family:'Outfit';font-weight:300;font-style:italic;font-size:1rem;color:var(--br-cream-soft);margin-top:.7rem}

/* ---------- 6. Packages explainer ---------- */
.brochure .br-pkg-row{display:grid;gap:1.8rem;margin-top:2.2rem}
.brochure .br-base-label{font-family:'Outfit';font-weight:600;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--br-gold);margin:0 0 1rem}
.brochure .br-base-list{list-style:none;margin:0;padding:0}
.brochure .br-base-list li{font-family:'Outfit';font-weight:400;font-size:1.05rem;color:var(--br-cream);position:relative;padding-left:1.7rem;margin-bottom:.7rem}
.brochure .br-base-list li::before{content:"\2713";position:absolute;left:0;color:var(--br-gold);font-weight:700}
.brochure .br-pkg-shot{border-radius:14px;min-height:220px;background-image:url(../media/brochure/interior-2.jpg);background-size:cover;background-position:center}

/* ---------- 6b. Tier cards ---------- */
.brochure .br-tiers{display:grid;gap:1.1rem;margin-top:2.4rem;align-items:stretch}
.brochure .br-tier{
  position:relative;background:var(--br-cream-panel);border:1px solid rgba(26,23,20,.12);
  border-radius:14px;padding:1.6rem 1.4rem;display:flex;flex-direction:column;
}
.brochure .br-tier-top{border-color:rgba(196,162,101,.55);box-shadow:0 14px 34px -22px rgba(196,162,101,.6)}
.brochure .br-tier-flag{position:absolute;top:-.7rem;left:1.4rem;background:var(--br-gold);color:#07182C;font-family:'Outfit';font-weight:700;font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;padding:.3rem .7rem;border-radius:20px;margin:0}
.brochure .br-tier-name{font-family:'Cormorant Garamond',Georgia,serif;font-weight:600;font-size:1.55rem;color:var(--br-ink);margin:0}
.brochure .br-tier-dep{font-family:'Outfit';font-weight:700;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--br-gold);margin:.25rem 0 0}
.brochure .br-tier-plus{font-family:'Outfit';font-weight:500;font-size:.9rem;color:var(--br-ink-soft);margin:1.1rem 0 .8rem;padding-top:1rem;border-top:1px solid rgba(26,23,20,.1)}
.brochure .br-tier-list{list-style:none;margin:0;padding:0}
.brochure .br-tier-list li{font-family:'Outfit';font-weight:500;font-size:1rem;color:var(--br-ink);position:relative;padding-left:1.6rem;margin-bottom:.6rem}
.brochure .br-tier-list li::before{content:"\2713";position:absolute;left:0;color:var(--br-sage);font-weight:700}
.brochure .br-note{font-family:'Outfit';font-weight:400;font-size:.92rem;line-height:1.55;color:var(--br-ink-soft);margin-top:2rem;max-width:70ch}
.brochure .br-note strong{color:var(--br-ink);font-weight:600}

/* ---------- 6c. Yours to own ---------- */
.brochure .br-own{
  background-image:linear-gradient(rgba(7,24,44,.93),rgba(7,24,44,.965)),url(../media/site/hero.jpg);
  background-size:cover;background-position:center;
}
.brochure .br-own-cols{display:grid;gap:2rem;margin-top:2rem;align-items:center}
.brochure .br-own-stats{display:flex;flex-direction:column;gap:1.6rem}
.brochure .br-stat b{display:block;font-family:'Outfit';font-weight:800;font-size:clamp(2.6rem,10vw,3.6rem);line-height:1;color:var(--br-gold);letter-spacing:-.02em}
.brochure .br-stat span{display:block;font-family:'Outfit';font-weight:400;font-size:1rem;color:var(--br-cream-soft);margin-top:.35rem}

/* ---------- 7. Steps ---------- */
.brochure .br-steps-grid{display:grid;gap:2rem;margin-top:2.4rem}
.brochure .br-step-n{font-family:'Cormorant Garamond',Georgia,serif;font-weight:600;font-size:2.2rem;color:var(--br-gold);line-height:1}
.brochure .br-step-hr{width:34px;height:1.5px;background:var(--br-line);margin:.7rem 0 .9rem}
.brochure .br-step h3{font-family:'Cormorant Garamond',Georgia,serif;font-weight:600;font-size:1.22rem;color:var(--br-cream);margin:0 0 .4rem}
.brochure .br-step p{font-family:'Outfit';font-weight:400;font-size:1rem;line-height:1.5;color:var(--br-cream-soft);margin:0}
.brochure .br-steps-close{font-family:'Cormorant Garamond',Georgia,serif;font-weight:600;font-size:1.3rem;line-height:1.35;color:var(--br-cream);margin-top:2.4rem;max-width:40ch}

/* ---------- 8. Back / contact ---------- */
.brochure .br-back{
  background-image:linear-gradient(180deg, rgba(7,24,44,.9) 0%, rgba(7,24,44,.93) 55%, rgba(7,24,44,.97) 100%),url(../media/brochure/back.jpg);
  background-size:cover;background-position:center;
}
.brochure .br-back-para{max-width:52ch;margin-top:1rem;color:var(--br-cream-soft)}
.brochure .br-contact{display:grid;gap:.9rem;margin-top:2.2rem}
.brochure .br-c{display:block;padding:.4rem 0}
a.br-c{border-bottom:1px solid var(--br-line)}
a.br-c:hover .br-c-v{color:var(--br-gold-lt)}
.brochure .br-c-l{display:block;font-family:'Outfit';font-weight:600;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--br-gold)}
.brochure .br-c-v{display:block;font-variant-numeric:lining-nums;font-family:'Cormorant Garamond',Georgia,serif;font-weight:600;font-size:1.3rem;color:var(--br-cream);margin-top:.3rem;transition:color .2s ease}
.brochure .br-c-v.br-c-sm{font-family:'Outfit';font-weight:400;font-size:1.02rem;line-height:1.4}
.brochure .br-download{margin-top:2rem}
.brochure .br-download .br-btn{display:inline-flex}
.brochure .br-legal{font-family:'Outfit';font-weight:400;font-size:.86rem;line-height:1.5;color:var(--br-cream-faint);margin-top:2rem;max-width:70ch}

/* ---------- Brochure gate (get the brochure) ---------- */
.brochure .br-gate{margin-top:2.4rem;max-width:640px}
.brochure .br-gate-head{margin-bottom:1.3rem}
.brochure .br-gate-head .br-h2{margin:.2rem 0 .6rem}
.brochure .br-gate-form{display:flex;flex-direction:column;gap:1rem;align-items:flex-start}
.brochure .br-gate-form.is-hidden{display:none}
/* The HTML `hidden` attribute must beat the flex displays above, otherwise the
   download "done" state shows before submit, and the JS toggle (form.hidden=true /
   done.hidden=false) silently no-ops. This is the fix for both. */
.brochure .br-gate-form[hidden],.brochure .br-gate-done[hidden]{display:none}
.brochure .br-gate-row{display:flex;flex-wrap:wrap;gap:1rem;width:100%}
.brochure .br-gate-field{flex:1 1 220px;display:flex;flex-direction:column;gap:.35rem}
.brochure .br-gate-field span{font-family:'Outfit';font-weight:600;font-size:.9rem;color:var(--br-cream-soft)}
.brochure .br-gate-field input{font-family:'Outfit';font-size:1rem;color:var(--br-cream);background:rgba(244,239,230,.08);border:1.5px solid rgba(244,239,230,.35);border-radius:9px;padding:.8rem 1rem;min-height:52px;width:100%}
.brochure .br-gate-field input:focus{outline:none;border-color:var(--br-gold-lt);background:rgba(244,239,230,.14)}
.brochure .br-gate-form .br-btn-gold{min-width:200px}
.brochure .br-gate-optin{display:flex;align-items:flex-start;gap:.7rem;cursor:pointer;font-family:'Outfit';font-weight:400;font-size:.92rem;line-height:1.5;color:var(--br-cream-soft);max-width:60ch}
.brochure .br-gate-optin input{flex:0 0 auto;width:20px;height:20px;margin:.1rem 0 0;accent-color:var(--br-gold-lt);cursor:pointer}
.brochure .br-gate-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.brochure .br-gate-privacy{font-family:'Outfit';font-weight:400;font-size:.82rem;line-height:1.5;color:var(--br-cream-faint);margin:.2rem 0 0;max-width:52ch}
.brochure .br-gate-privacy a{color:var(--br-cream-soft);text-decoration:underline}
.brochure .br-gate-error{font-family:'Outfit';font-size:.9rem;color:#F1C08A;margin:.2rem 0 0}
.brochure .br-gate-done{display:flex;flex-direction:column;gap:1rem;align-items:flex-start}
.brochure .br-gate-done-lead{font-family:'Outfit';font-weight:600;font-size:1.12rem;color:var(--br-cream);margin:0}
.brochure .br-gate-links{display:flex;flex-wrap:wrap;gap:.8rem}
/* Two download formats offered: lead with the one that suits the visitor's screen
   (phone version on a phone, print/computer version on desktop), keep the other as a
   quiet secondary. Decided by screen width so a cached page can never guess wrong; the
   email carries both regardless. Mobile-first, so the phone version leads by default. */
.brochure .br-dl{flex:0 0 auto}
.brochure .br-dl-phone{background:var(--br-gold);color:#07182C;order:0}
.brochure .br-dl-phone:hover{background:var(--br-gold-lt)}
.brochure .br-dl-print{background:transparent;color:var(--br-cream);border-color:rgba(244,239,230,.5);order:1}
.brochure .br-dl-print:hover{background:rgba(244,239,230,.1);border-color:var(--br-cream)}
@media(min-width:1000px){
  /* Desktop: the print/computer version leads instead. */
  .brochure .br-dl-phone{background:transparent;color:var(--br-cream);border-color:rgba(244,239,230,.5);order:1}
  .brochure .br-dl-phone:hover{background:rgba(244,239,230,.1);border-color:var(--br-cream)}
  .brochure .br-dl-print{background:var(--br-gold);color:#07182C;border-color:transparent;order:0}
  .brochure .br-dl-print:hover{background:var(--br-gold-lt)}
}

/* The gate as its own section, sitting directly under the cover on every screen
   (this page is focused on getting the brochure). A slightly lighter green than
   the hero so it reads as its own action band, not a continuation of the photo. */
.brochure .br-gate-sec{background:var(--br-green-2)}
.brochure .br-gate-sec .br-gate{margin-top:0;max-width:720px}

/* ---------- Scroll anchors (clear the sticky nav) ---------- */
.brochure .br-enquire,#br-enquire,.brochure .br-gate-sec,#get-brochure{scroll-margin-top:96px}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  .brochure *{transition:none !important}
}

/* ============ Small tablet: 2-up grids ============ */
@media (min-width:600px){
  .brochure .br-pillars{grid-template-columns:1fr 1fr}
  .brochure .br-ds-grid{grid-template-columns:1fr 1fr}
  .brochure .br-tiers{grid-template-columns:1fr 1fr}
  .brochure .br-steps-grid{grid-template-columns:1fr 1fr}
  .brochure .br-contact{grid-template-columns:1fr 1fr}
  .brochure .br-cta .br-btn{flex:0 0 auto}
}

/* ============ Desktop: full editorial layout ============ */
@media (min-width:1000px){
  .brochure .br-sec{padding:4.5rem 0}
  /* Desktop: centre the hero text block instead of pinning it to the bottom (the
     brandline stays top, the stats strip stays bottom, via space-between). */
  .brochure .br-cover-hero{margin-top:0}
  .brochure .br-invite-grid{grid-template-columns:1.4fr 1fr;gap:4rem;align-items:stretch}
  .brochure .br-aside{padding:2.6rem 2.2rem}
  .brochure .br-pull{font-size:1.7rem}
  .brochure .br-pillars{grid-template-columns:repeat(3,1fr);gap:2.4rem 2.6rem}
  .brochure .br-photo{min-height:82vh}
  .brochure .br-photo-cap{padding:7rem 0 3rem}
  .brochure .br-ds-grid{gap:2.4rem 3.2rem}
  .brochure .br-spec-grid{grid-template-columns:1fr 1.05fr;gap:3.2rem}
  .brochure .br-spec-shot{min-height:340px}
  .brochure .br-man-top{grid-template-columns:1.3fr 1fr;gap:3rem;align-items:center}
  .brochure .br-man-shot{min-height:240px}
  .brochure .br-man-cols{grid-template-columns:1.2fr 1fr;gap:3.4rem;align-items:end}
  .brochure .br-man-price{text-align:right}
  .brochure .br-pkg-row{grid-template-columns:1.05fr 1fr;gap:3.4rem;align-items:center}
  .brochure .br-pkg-shot{min-height:300px}
  .brochure .br-tiers{grid-template-columns:repeat(4,1fr);gap:1.2rem}
  .brochure .br-own-cols{grid-template-columns:1.4fr 1fr;gap:3.4rem}
  .brochure .br-own-stats{text-align:right}
  .brochure .br-steps-grid{grid-template-columns:repeat(4,1fr);gap:2.4rem}
}

/* ============ Print: portrait A4 for the PDF (WeasyPrint drives this off the
   same markup, so the PDF and the web page never drift on content). Fixed pt type
   (no clamp/vw in print), each major block on its own page, dark sections bleed
   to fill the sheet. ============ */
@media print{
  @page{size:A4 portrait;margin:0}
  .nav,.footer,.mobilebar,.deskbar,.lightbox,.skip-link,.br-cta,.br-download,.br-enquire,.br-gate-sec{display:none !important}
  .brochure{-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#fff;overflow:visible}
  .brochure .br-wrap{max-width:none;padding:0 16mm;width:100%}

  /* Each major block starts a fresh page. */
  .brochure .br-sec,.brochure .br-cover,.brochure .br-photo{
    break-before:page;page-break-before:always;padding:18mm 0;
  }
  .brochure>*:first-child{break-before:avoid;page-break-before:avoid}
  /* Fill each page with the section colour and centre the content, so short
     sections do not trail off into the page background. Tall sections grow past
     297mm and simply flow, so nothing is clipped. */
  .brochure .br-sec{min-height:297mm;display:flex;flex-direction:column;justify-content:center}

  /* Fixed print type. */
  .brochure .br-display{font-size:42pt;line-height:1.02}
  .brochure .br-h2{font-size:23pt}
  .brochure .br-body{font-size:11pt;line-height:1.55}
  .brochure .br-lead{font-size:12.5pt}
  .brochure .br-eyebrow{font-size:8.5pt}
  .brochure .br-cover-sub{font-size:13pt}
  .brochure .br-num{font-size:44pt}
  .brochure .br-stat b{font-size:34pt}
  .brochure .br-tier-name{font-size:15pt}
  .brochure .br-step-n{font-size:26pt}
  .brochure .br-pull{font-size:17pt}
  .brochure .br-c-v{font-size:13pt}
  .brochure .br-chip-k{font-size:15pt}
  .brochure .br-sig{font-size:30pt}

  /* Dark, photo-led pages fill the sheet edge to edge. */
  .brochure .br-cover{min-height:297mm;padding:0}
  .brochure .br-cover-in{min-height:297mm;padding:20mm 16mm}
  .brochure .br-photo{min-height:297mm;padding:0;align-items:flex-end}
  .brochure .br-photo-cap{padding:24mm 0 20mm}
  .brochure .br-back,.brochure .br-own{min-height:297mm}

  /* Print column layouts. */
  .brochure .br-invite-grid{grid-template-columns:1.35fr 1fr;gap:12mm}
  .brochure .br-pillars{grid-template-columns:1fr 1fr;gap:9mm 12mm}
  .brochure .br-ds-grid{grid-template-columns:1fr 1fr;gap:8mm 12mm}
  .brochure .br-spec-grid{grid-template-columns:1fr 1fr;gap:12mm;align-items:center}
  .brochure .br-spec-shot{min-height:70mm}
  .brochure .br-man-top{grid-template-columns:1.3fr 1fr;gap:12mm;align-items:center}
  .brochure .br-man-shot{min-height:55mm}
  .brochure .br-man-cols{grid-template-columns:1.2fr 1fr;gap:14mm;align-items:end}
  .brochure .br-man-price{text-align:right}
  .brochure .br-pkg-row{grid-template-columns:1fr 1fr;gap:12mm;align-items:center}
  .brochure .br-pkg-shot{min-height:65mm}
  .brochure .br-tiers{grid-template-columns:1fr 1fr;gap:8mm}
  .brochure .br-own-cols{grid-template-columns:1.4fr 1fr;gap:14mm}
  .brochure .br-own-stats{text-align:right}
  .brochure .br-steps-grid{grid-template-columns:1fr 1fr;gap:10mm}

  /* Keep small units whole. */
  .brochure .br-pillar,.brochure .br-ds,.brochure .br-tier,.brochure .br-step,.brochure .br-chip{break-inside:avoid}
}
