/* ═══════════════════════════════════════════════════════════════════════
   SKYWRITE · VARIANT B — "Editorial Art"
   A magazine spread. Bodoni Moda italic at 220px. Cream paper.
   Masthead-style "VOL · 01 · SS·26" issue strip.
   Sunset orange + sage + plum + navy section breaks.
   Caveat handwriting marks. Paper-cutout collage with rotated photos.
   Hand-rolled CSS marquee. Asymmetric bento. Pull-quote testimonials.
   Footer running headline as massive italic display closing flourish.
   ═══════════════════════════════════════════════════════════════════════ */

:root{
  --paper:        #f5ecda;
  --paper-deep:   #ebe1cb;
  --paper-cream:  #f7efe1;
  --ink:          #1a1814;
  --ink-soft:     #4a4338;
  --ink-mute:     #8c826f;

  /* sectional palette */
  --sunset:       #de5b1c;
  --sunset-soft:  #f7a374;
  --sage:         #7a8a6c;
  --sage-soft:    #c5cfb6;
  --plum:         #6b3a52;
  --plum-soft:    #b78ea1;
  --navy:         #18324a;
  --navy-soft:    #92a8bf;
  --gold:         #b8924a;
  --gold-deep:    #8a6a32;
  --hand:         #9c4a25;

  --rule:         rgba(26,24,20,.18);
  --rule-soft:    rgba(26,24,20,.10);
  --hairline:     1px solid var(--rule);

  --max:          1360px;
  --gutter:       clamp(24px, 4vw, 64px);

  --display:      "Bodoni Moda", "Bodoni 72", "Didot", Georgia, serif;
  --hand-font:    "Caveat", "Bradley Hand", cursive;
  --mono:         "JetBrains Mono", ui-monospace, Menlo, monospace;
  --sans:         "Inter", system-ui, -apple-system, sans-serif;

  --t:            420ms;
  --t-fast:       180ms;
  --ease:         cubic-bezier(.2, .7, .2, 1);
}

*,*::before,*::after{ box-sizing:border-box; }

html,body{
  margin:0; padding:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  font-size:16px;
  line-height:1.55;
  max-width:100%;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
@supports (overflow: clip){
  html,body{ overflow-x:clip; }
}

img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; background:none; border:0; padding:0; cursor:pointer; }
em{ font-style:italic; }
::selection{ background:var(--sunset); color:var(--paper); }

/* ─── paper grain ─── */
.paper-grain{
  position:fixed; inset:0; pointer-events:none; z-index:9000;
  opacity:.18; mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='p'><feTurbulence type='fractalNoise' baseFrequency='0.7' numOctaves='2' stitchTiles='stitch' seed='3'/><feColorMatrix values='0 0 0 0 .39 0 0 0 0 .31 0 0 0 0 .19 0 0 0 .55 0'/></filter><rect width='100%25' height='100%25' filter='url(%23p)'/></svg>");
  background-size:220px 220px;
}

/* ─── issue strip (masthead-style) ─── */
.issue-strip{
  background:var(--ink);
  color:var(--paper);
  padding:8px 0;
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.issue-strip-inner{
  max-width:var(--max);
  margin:0 auto;
  padding:0 var(--gutter);
  display:flex;
  align-items:center;
  gap:14px;
}
.issue-vol, .issue-date, .issue-tag, .issue-headline, .issue-id{ white-space:nowrap; }
.issue-tag{ color:var(--sunset-soft); }
.issue-headline{ color:var(--paper); font-style:italic; text-transform:none; letter-spacing:.06em; font-weight:500; }
.issue-spacer{ flex:1; }
.issue-dot{ color:var(--ink-mute); }

@media (max-width: 900px){
  .issue-strip-inner{ font-size:10px; gap:8px; flex-wrap:wrap; }
  .issue-tag{ flex-basis:100%; order:5; }
  .issue-headline{ flex-basis:100%; order:6; white-space:normal; }
  .issue-spacer{ display:none; }
}

/* ─── masthead / nameplate ─── */
.masthead{
  position:relative;
  z-index:30;
  background:var(--paper);
}
.masthead-grid{
  max-width:var(--max);
  margin:0 auto;
  padding:30px var(--gutter) 18px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}
/* Composite wordmark: smoky-gold S replaces the typographic S in SkyWrite,
   and "kyWrite" continues in the italic Bodoni next to it. One brand mark. */
.masthead-brand{
  display:inline-flex;
  align-items:center;
  gap:0;
  text-decoration:none;
  /* pull whole composite mark further left, past the inner gutter */
  margin-left:calc(var(--gutter) * -0.7);
  line-height:1;
}
.masthead-brand-s{
  /* taller than cap-height to compensate for the smoky trail bleed
     above and below the visible S core */
  height:1.55em;
  width:auto;
  display:block;
  /* nudge so the gold S visually slots where the typographic S would sit */
  margin-right:-0.18em;
  margin-bottom:-0.05em;
  pointer-events:none;
  user-select:none;
  font-size:clamp(48px, 5.4vw, 84px); /* anchor the em unit */
}
.masthead-brand-rest{
  font-family:var(--display);
  font-style:italic; font-weight:600;
  font-size:clamp(48px, 5.4vw, 84px);
  line-height:.88;
  letter-spacing:-0.025em;
  color:var(--ink);
}
.masthead-glyph{
  display:inline-flex; align-items:center; justify-content:center;
  width:64px; height:64px;
  border:1.5px solid var(--gold);
  font-family:var(--display); font-style:italic; font-weight:700; font-size:42px;
  line-height:1;
  color:var(--gold);
  background:transparent;
  letter-spacing:-0.02em;
}
.masthead-glyph-img{
  width:84px; height:84px;
  object-fit:contain;
  display:block;
  /* the smoky S asset is gold-on-transparent — no border, no box */
}
@media (max-width: 720px){
  .masthead-glyph-img{ width:60px; height:60px; }
}
.masthead-title{
  font-family:var(--display);
  font-style:italic; font-weight:600;
  font-size:clamp(56px, 7vw, 104px);
  line-height:.88;
  letter-spacing:-0.025em;
  margin:0;
  color:var(--ink);
}
.masthead-nav{
  display:flex; gap:34px;
  align-items:center;
  font-family:var(--display);
  font-size:23px;
  font-weight:500;
  font-style:italic;
  margin-left:auto;
}
.masthead-nav a{
  color:var(--ink); position:relative;
  transition:color var(--t-fast) var(--ease);
  padding:6px 4px;
}
.masthead-nav a::after{
  content:""; position:absolute; left:0; right:0; bottom:2px; height:1.5px; background:var(--ink);
  transform:scaleX(0); transform-origin:left; transition:transform var(--t) var(--ease);
}
.masthead-nav a:hover::after{ transform:scaleX(1); }
.masthead-reserve{
  display:inline-flex; align-items:center; gap:14px;
  background:var(--sunset);
  color:var(--paper);
  padding:22px 36px;
  font-family:var(--mono); font-size:17px; letter-spacing:.2em; text-transform:uppercase;
  font-weight:500;
  justify-self:end;
  transition:background var(--t) var(--ease), transform var(--t-fast) var(--ease);
}
.masthead-reserve:hover{ background:var(--ink); }
.reserve-arrow{ transition:transform var(--t-fast) var(--ease); }
.masthead-reserve:hover .reserve-arrow{ transform:translateX(4px); }
.masthead-rule{
  height:6px;
  background:var(--ink);
  margin-top:0;
  position:relative;
}
.masthead-rule::after{
  content:"";
  position:absolute; left:0; right:0; bottom:-6px;
  height:1px; background:var(--ink);
}

@media (max-width: 1080px){
  .masthead-nav{ font-size:18px; gap:22px; }
  .masthead-reserve{ padding:18px 28px; font-size:14px; }
}
@media (min-width: 1025px){
  .masthead-brand{
    margin-left:calc(var(--gutter) * -0.95);
    transform:translateX(-34px);
  }
  .dropcap-label{
    margin-left:0;
  }
}
@media (max-width: 920px){
  .masthead-grid{ padding:22px var(--gutter) 10px; gap:14px; flex-wrap:wrap; }
  .masthead-nav{ display:none; }
  .masthead-reserve{ padding:14px 22px; font-size:12px; }
}
@media (max-width: 520px){
  .masthead-reserve{ display:none; }
}

/* ─── shared press buttons ─── */
.press-btn{
  display:inline-flex; align-items:center; justify-content:center;
  padding:13px 22px;
  font-family:var(--mono); font-size:11px; letter-spacing:.18em; text-transform:uppercase;
  border-radius:0;
  transition:background var(--t) var(--ease), color var(--t) var(--ease), transform var(--t-fast) var(--ease);
  cursor:pointer;
}
.press-btn-fill{
  background:var(--ink); color:var(--paper);
  border:1.5px solid var(--ink);
}
.press-btn-fill:hover{ background:var(--sunset); border-color:var(--sunset); }
.press-btn-line{
  background:transparent; color:var(--ink);
  border:1.5px solid var(--ink);
}
.press-btn-line:hover{ background:var(--ink); color:var(--paper); }

/* ─── kickers / section labels ─── */
.kicker{
  --kicker-color:var(--ink);
  font-family:var(--mono); font-size:12px; letter-spacing:.22em; text-transform:uppercase;
  display:inline-block;
  padding:4px 10px 6px;
  border-bottom:1px solid var(--kicker-color);
  margin-bottom:18px;
  color:var(--kicker-color);
  cursor:default;
  transition:background var(--t-fast) var(--ease), color var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease);
}
.kicker:hover{
  background:var(--kicker-color);
  color:var(--paper);
  border-bottom-color:var(--kicker-color);
}
.kicker-orange{ --kicker-color:var(--sunset); }
.kicker-sage{ --kicker-color:var(--sage); }
.kicker-plum{ --kicker-color:var(--plum); }
.kicker-navy{ --kicker-color:var(--navy); }

/* ─── shared section heads ─── */
.section-head{
  max-width:var(--max);
  margin:0 auto;
  padding:0 var(--gutter);
  margin-bottom:clamp(40px, 6vw, 72px);
}
.section-title{
  font-family:var(--display);
  font-style:normal; font-weight:600;
  font-size:clamp(48px, 8vw, 130px);
  line-height:.92;
  letter-spacing:-0.025em;
  margin:0 0 20px;
}
.section-title em{
  font-style:italic;
  font-weight:500;
  color:var(--sunset);
}
.section-lede{
  max-width:640px;
  font-size:18px;
  color:var(--ink-soft);
  line-height:1.55;
  margin:0;
}

/* ─── HERO SPREAD ─── */
.spread-hero{
  position:relative;
  padding:clamp(40px, 6vw, 72px) 0 clamp(60px, 8vw, 100px);
}
.spread-hero-grid{
  max-width:var(--max);
  margin:0 auto;
  padding:0 var(--gutter);
  display:grid;
  grid-template-columns: 0.72fr 1.28fr;
  gap:clamp(34px, 4vw, 68px);
  align-items:start;
}

.spread-hero-title{
  position:relative;
  margin-left:clamp(-148px, -7.8vw, -50px);
}
.dropcap-label{
  font-family:var(--mono); font-size:12px; letter-spacing:.22em; text-transform:uppercase;
  color:var(--sunset);
  display:inline-block;
  margin-bottom:24px;
  padding:4px 10px 6px;
  border-bottom:1.5px solid var(--sunset);
  cursor:default;
  position:relative;
  transition:color var(--t-fast) var(--ease), text-shadow var(--t) var(--ease), background var(--t) var(--ease);
}
.dropcap-label::before{
  content:""; position:absolute; inset:0;
  background:radial-gradient(120% 120% at 50% 50%, rgba(222,91,28,.18), transparent 70%);
  opacity:0; transition:opacity var(--t) var(--ease);
  pointer-events:none;
}
.dropcap-label:hover{
  color:#fff;
  background:var(--sunset);
  text-shadow:0 0 14px rgba(255,193,123,.85), 0 0 28px rgba(222,91,28,.55);
}
.dropcap-label:hover::before{ opacity:1; }

.spread-headline{
  font-family:var(--display);
  font-weight:500;
  font-style:italic;
  font-size:clamp(72px, 14vw, 220px);
  line-height:.86;
  letter-spacing:-0.028em;
  margin:0 0 36px;
  color:var(--ink);
}
.head-line{
  display:block;
}
.head-italic{
  font-style:italic;
  color:var(--sunset);
  font-weight:500;
}

.hero-deck{
  font-family:var(--display);
  font-style:normal;
  font-weight:400;
  font-size:18px;
  line-height:1.5;
  margin-bottom:32px;
  max-width:520px;
  column-count:1;
}
.hero-deck p{ margin:0; }
.dropcap{
  float:left;
  font-family:var(--display);
  font-style:italic;
  font-size:88px;
  line-height:.78;
  margin:6px 12px 0 0;
  color:var(--sunset);
  font-weight:600;
}

.hero-byline{
  display:grid;
  grid-template-columns:repeat(3, auto);
  gap:24px 36px;
  border-top:var(--hairline);
  border-bottom:var(--hairline);
  padding:18px 0;
  margin-bottom:30px;
  flex-wrap:wrap;
}
.byline-block{ display:flex; flex-direction:column; gap:4px; min-width:0; }
.byline-label{
  font-family:var(--mono); font-size:10px; letter-spacing:.22em; text-transform:uppercase;
  color:var(--ink-mute);
}
.byline-value{
  font-family:var(--display); font-size:14px; color:var(--ink);
}

.hero-actions{
  display:flex; gap:14px; flex-wrap:wrap;
  margin-bottom:24px;
}

.caveat-mark{
  font-family:var(--hand-font);
  color:var(--hand);
  font-size:38px;
  line-height:1;
  margin:0;
  font-weight:600;
  pointer-events:none;
  user-select:none;
}
.caveat-mark-vegas{
  position:absolute; bottom:-30px; right:-10px;
  transform:rotate(-9deg);
  font-size:54px;
  color:var(--sunset);
}
.caveat-mark-shows{
  position:absolute; top:-50px; left:44%;
  transform:rotate(-6deg);
  font-size:52px;
  color:var(--plum);
  background:var(--paper);
  padding:6px 14px;
  border:1px solid var(--ink);
  z-index:12;
}
.caveat-mark-bento{
  position:absolute; top:18px; right:18px;
  transform:rotate(-4deg);
  font-size:24px;
  color:var(--hand);
  margin:0;
}

/* ─── HERO COLLAGE ─── */
.spread-hero-collage{
  position:relative;
  height:clamp(840px, 98vw, 1120px);
  margin-left:clamp(12px, 1.5vw, 28px);
  margin-right:clamp(-78px, -5vw, -32px);
  transform:translateX(clamp(14px, 2.2vw, 34px));
}
.pinned{
  position:absolute;
  margin:0;
  background:#fff;
  padding:10px 10px 36px;
  box-shadow:0 14px 30px rgba(26,24,20,.18), 0 2px 6px rgba(26,24,20,.12);
  transition:transform var(--t) var(--ease), box-shadow var(--t) var(--ease), z-index 0s;
  cursor:pointer;
}
.pinned img{
  width:100%;
  height:auto;
  display:block;
}
.pinned figcaption{
  position:absolute; left:10px; right:10px; bottom:9px;
  font-family:var(--mono); font-size:10.5px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--ink-soft);
  text-align:left;
  line-height:1.2;
}

.pinned-1{ top:0;      left:4%;    width:49%; transform:rotate(-3.5deg); z-index:7; }
.pinned-2{ top:2%;     right:-2%;  width:39%; transform:rotate(4deg);    z-index:5; }
.pinned-3{ top:28%;    left:-7%;   width:40%; transform:rotate(2deg);    z-index:6; }
.pinned-4{ top:33%;    right:1%;   width:43%; transform:rotate(-5deg);   z-index:8; }
.pinned-5{ bottom:23%; left:16%;   width:42%; transform:rotate(3deg);    z-index:7; }
.pinned-6{ bottom:8%;  right:-1%;  width:36%; transform:rotate(-2deg);   z-index:5; }
.pinned-7{ bottom:1%;  left:2%;    width:38%; transform:rotate(-7deg);   z-index:6; }
.pinned-8{ top:19%;    right:30%;  width:30%; transform:rotate(7deg);    z-index:9; }

/* hover-grow: bigger pop, deeper shadow, brings the photo clearly forward */
.pinned:hover{
  z-index:99;
  transform:rotate(0) scale(1.35);
  box-shadow:0 32px 70px rgba(26,24,20,.36), 0 8px 18px rgba(26,24,20,.22);
}

@media (max-width: 1024px){
  .spread-hero-grid{
    grid-template-columns:1fr;
    gap:clamp(28px, 7vw, 56px);
  }
  .spread-hero-title{
    margin-left:0;
  }
  .spread-headline{
    font-size:clamp(68px, 18vw, 150px);
  }
  .spread-hero-collage{
    height:clamp(680px, 96vw, 900px);
    margin:24px 0 0;
    transform:none;
  }
  .pinned-1{ top:0;      left:0;    width:54%; }
  .pinned-2{ top:2%;     right:0;   width:42%; }
  .pinned-3{ top:26%;    left:1%;   width:38%; }
  .pinned-4{ top:30%;    right:2%;  width:46%; }
  .pinned-5{ bottom:20%; left:23%;  width:42%; }
  .pinned-6{ bottom:8%;  right:0;   width:36%; }
  .pinned-7{ bottom:0;   left:2%;   width:36%; }
  .pinned-8{ top:17%;    right:30%; width:28%; }
}
@media (max-width: 820px){
  .spread-hero-collage{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:18px 14px;
    height:auto;
    margin:12px 0 0;
    overflow:visible;
  }
  .pinned{
    position:relative;
    inset:auto;
    width:auto;
    padding:9px 9px 34px;
    box-shadow:0 10px 22px rgba(26,24,20,.16), 0 2px 5px rgba(26,24,20,.10);
  }
  .pinned figcaption{
    left:9px;
    right:9px;
    bottom:8px;
    font-size:10px;
    letter-spacing:.14em;
  }
  .pinned-1{ grid-column:1 / -1; justify-self:center; width:min(76%, 520px); transform:rotate(-2.5deg); }
  .pinned-2{ grid-column:2; grid-row:2; transform:rotate(3deg); }
  .pinned-3{ grid-column:1; grid-row:2; transform:rotate(-2deg); }
  .pinned-4{ grid-column:2; grid-row:3; transform:rotate(2.5deg); }
  .pinned-5{ grid-column:1; grid-row:3; transform:rotate(-2.5deg); }
  .pinned-6{ grid-column:1 / -1; grid-row:5; justify-self:center; width:min(58%, 380px); transform:rotate(-1deg); }
  .pinned-7{ grid-column:1; grid-row:4; transform:rotate(2deg); }
  .pinned-8{ grid-column:2; grid-row:4; transform:rotate(-2deg); }
  .pinned:hover{
    transform:scale(1.04);
  }
  .caveat-mark-shows{ display:none; }
}
@media (max-width: 600px){
  .spread-hero{
    padding-top:34px;
  }
  .spread-hero-grid{
    gap:30px;
  }
  .spread-headline{
    font-size:clamp(62px, 19vw, 82px);
    line-height:.9;
    margin-bottom:26px;
  }
  .hero-deck{
    font-size:17px;
    max-width:none;
  }
  .hero-byline{
    grid-template-columns:1fr 1fr;
    gap:18px 22px;
  }
  .hero-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
  }
  .press-btn{
    min-width:0;
    padding-left:14px;
    padding-right:14px;
    justify-content:center;
    text-align:center;
  }
  .spread-hero-collage{
    gap:16px 12px;
    margin:8px 0 0;
  }
  .pinned{
    padding:8px 8px 32px;
  }
  .pinned figcaption{
    left:8px;
    right:8px;
    bottom:8px;
    font-size:9px;
    letter-spacing:.13em;
  }
  .pinned-1{ width:76%; }
  .pinned-6{ width:58%; }
  .caveat-mark-vegas{ bottom:-20px; right:0; font-size:42px; }
}

/* ─── HAND-ROLLED MARQUEE ─── */
.paper-marquee{
  border-top:2px solid var(--ink);
  border-bottom:2px solid var(--ink);
  background:var(--ink);
  color:var(--paper);
  padding:20px 0;
  overflow:hidden;
  overflow:clip;
  contain:layout paint;
  max-width:100%;
  white-space:nowrap;
  margin:clamp(40px, 6vw, 80px) 0;
}
.paper-marquee-track{
  display:flex; gap:0;
  animation:marquee 38s linear infinite;
  width:max-content;
}
.marquee-set{
  display:flex; align-items:center; gap:30px;
  padding-right:30px;
}
.m-stat{
  font-family:var(--display);
  font-style:italic; font-weight:500;
  font-size:clamp(28px, 3.4vw, 48px);
  letter-spacing:-0.02em;
}
.m-stat strong{
  font-style:normal;
  font-family:var(--sans);
  color:var(--sunset-soft);
  font-weight:800;
  letter-spacing:0;
  margin-right:.16em;
}
.m-dot{
  color:var(--sunset);
  font-size:14px;
}
@keyframes marquee{
  from{ transform:translateX(0); }
  to  { transform:translateX(-50%); }
}

/* ─── FEATURE OPENER ─── */
.feature{
  padding:clamp(60px, 8vw, 110px) 0;
  background:var(--paper-cream);
  border-top:var(--hairline);
  border-bottom:var(--hairline);
}
.feature-grid{
  max-width:var(--max);
  margin:0 auto;
  padding:0 var(--gutter);
  display:grid;
  grid-template-columns:1fr 2.5fr;
  gap:clamp(32px, 5vw, 80px);
  align-items:start;
}
.feature-meta{ position:sticky; top:32px; }
.feature-meta-line{
  --kicker-color:var(--ink-mute);
  display:inline-block;
  font-family:var(--mono); font-size:12px; letter-spacing:.22em; text-transform:uppercase;
  color:var(--kicker-color);
  margin:0;
  padding:4px 10px 6px;
  border-bottom:1px solid transparent;
  cursor:default;
  transition:background var(--t-fast) var(--ease), color var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease);
}
.feature-meta-line:hover{
  background:var(--kicker-color);
  color:var(--paper);
  border-bottom-color:var(--kicker-color);
}
.feature-title{
  font-family:var(--display);
  font-weight:500;
  font-size:clamp(40px, 5.4vw, 84px);
  line-height:.98;
  letter-spacing:-0.022em;
  margin:0 0 32px;
}
.feature-title em{
  font-style:italic;
  color:var(--sunset);
}
.feature-columns{
  column-count:2;
  column-gap:48px;
  font-family:var(--display);
  font-weight:400;
  font-size:17px;
  line-height:1.6;
  color:var(--ink-soft);
}
.feature-columns p{ margin:0 0 16px; break-inside:avoid; }
@media (max-width: 880px){
  .feature-grid{ grid-template-columns:1fr; }
  .feature-columns{ column-count:1; }
  .feature-meta{ position:static; }
}

/* ─── BENTO REPERTOIRE ─── */
.repertoire{
  padding:clamp(80px, 10vw, 140px) 0;
}
.bento-grid{
  max-width:var(--max);
  margin:0 auto;
  padding:0 var(--gutter);
  display:grid;
  grid-template-columns:repeat(12, 1fr);
  gap:14px;
}
.bento{
  position:relative;
  padding:clamp(22px, 2.4vw, 36px);
  display:flex; flex-direction:column;
  border:1.5px solid var(--ink);
  background:var(--paper-cream);
  min-height:240px;
  text-decoration:none;
  color:var(--ink);
  cursor:pointer;
  transition:transform var(--t) var(--ease), background var(--t) var(--ease), color var(--t) var(--ease), border-color var(--t) var(--ease), box-shadow var(--t) var(--ease);
}
.bento:hover{
  transform:translateY(-4px);
  box-shadow:0 18px 34px rgba(26,24,20,.14);
}
.bento-num{
  font-family:var(--mono); font-size:11px; letter-spacing:.22em;
  margin-bottom:14px;
  color:var(--ink-mute);
}
.bento h3{
  font-family:var(--display); font-style:italic; font-weight:500;
  font-size:clamp(26px, 2.8vw, 38px);
  line-height:1.05;
  margin:0 0 12px;
  letter-spacing:-0.012em;
}
.bento p{
  margin:0 0 18px;
  font-size:clamp(15px, 1.2vw, 16px);
  line-height:1.55;
  color:var(--ink-soft);
}
.bento-tier{
  margin-top:auto;
  font-family:var(--mono); font-size:11px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--ink);
  padding-top:14px;
  border-top:1px solid var(--rule);
}
.bento-cta{
  margin-top:auto;
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:currentColor;
  padding-top:14px;
  border-top:1px solid currentColor;
}

/* tonal bento backgrounds */
.tone-orange{ background:var(--sunset); color:var(--paper); border-color:var(--sunset); }
.tone-orange .bento-num, .tone-orange p, .tone-orange .bento-tier{ color:var(--paper); }
.tone-orange .bento-tier, .tone-orange .bento-cta{ border-top-color:rgba(255,255,255,.4); }
.tone-sage{ background:var(--sage); color:var(--paper); border-color:var(--sage); }
.tone-sage .bento-num, .tone-sage p, .tone-sage .bento-tier{ color:var(--paper); }
.tone-sage .bento-tier, .tone-sage .bento-cta{ border-top-color:rgba(255,255,255,.4); }
.tone-plum{ background:var(--plum); color:var(--paper); border-color:var(--plum); }
.tone-plum .bento-num, .tone-plum p, .tone-plum .bento-tier{ color:var(--paper); }
.tone-plum .bento-tier, .tone-plum .bento-cta{ border-top-color:rgba(255,255,255,.4); }
.tone-navy{ background:var(--navy); color:var(--paper); border-color:var(--navy); }
.tone-navy .bento-num, .tone-navy p, .tone-navy .bento-tier{ color:var(--paper); }
.tone-navy .bento-tier, .tone-navy .bento-cta{ border-top-color:rgba(255,255,255,.4); }
.tone-cream{ background:var(--paper-cream); }
.tone-orange:hover{ background:var(--paper); color:var(--sunset); border-color:var(--sunset); }
.tone-sage:hover{ background:var(--paper); color:var(--sage); border-color:var(--sage); }
.tone-plum:hover{ background:var(--paper); color:var(--plum); border-color:var(--plum); }
.tone-navy:hover{ background:var(--paper); color:var(--navy); border-color:var(--navy); }
.tone-cream:hover{ background:var(--ink); color:var(--paper); border-color:var(--ink); }
.tone-orange:hover p,
.tone-sage:hover p,
.tone-plum:hover p,
.tone-navy:hover p{ color:var(--ink-soft); }
.tone-cream:hover p{ color:rgba(255,255,255,.8); }
.bento:hover .bento-cta{ border-top-color:currentColor; }

/* asymmetric placements (12-col) */
.bento-a{ grid-column:span 5; }
.bento-b{ grid-column:span 4; }
.bento-c{ grid-column:span 3; min-height:280px; }
.bento-d{ grid-column:span 4; }
.bento-e{ grid-column:span 8; }
.bento-f{ grid-column:span 3; }
.bento-g{ grid-column:span 5; }
.bento-h{ grid-column:span 4; }

@media (max-width: 1024px){
  .bento-a, .bento-b, .bento-d, .bento-e, .bento-g, .bento-h{ grid-column:span 6; }
  .bento-c, .bento-f{ grid-column:span 6; }
}
@media (max-width: 640px){
  .bento-a, .bento-b, .bento-c, .bento-d, .bento-e, .bento-f, .bento-g, .bento-h{ grid-column:span 12; }
}

/* ─── PROCESS ─── */
.process{
  /* horizontal padding moved to the section so the grid borders frame
     the cells exactly — no stray border sticks beyond the cell edges */
  padding:clamp(80px, 10vw, 140px) var(--gutter);
  background:var(--paper-deep);
  border-top:var(--hairline);
  border-bottom:var(--hairline);
}
.process-grid{
  list-style:none; padding:0; margin:0;
  max-width:var(--max);
  margin-left:auto; margin-right:auto;
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:0;
  border-top:1.5px solid var(--ink);
  border-left:1.5px solid var(--ink);
}
.process-cell{
  padding:clamp(32px, 3.4vw, 52px);
  border-right:1.5px solid var(--ink);
  border-bottom:1.5px solid var(--ink);
  background:var(--paper);
  min-height:340px;
  display:flex; flex-direction:column; justify-content:center;
}
.process-cell h3{
  font-family:var(--display); font-style:normal; font-weight:600;
  font-size:clamp(28px, 2.4vw, 36px); line-height:1.1;
  margin:0 0 18px;
  letter-spacing:-0.015em;
}
.process-cell p{
  margin:0;
  color:var(--ink-soft);
  font-size:clamp(17px, 1.2vw, 19px);
  line-height:1.55;
}
@media (max-width: 960px){
  .process-grid{ grid-template-columns:repeat(2, 1fr); }
}
@media (max-width: 520px){
  .process-grid{ grid-template-columns:1fr; }
  .process-cell{ min-height:auto; }
}

/* ─── EDITIONS / PRICING ─── */
.editions{
  padding:clamp(80px, 10vw, 140px) 0;
}
.editions-grid{
  max-width:var(--max);
  margin:0 auto;
  padding:0 var(--gutter);
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:14px;
}
.edition{
  position:relative;
  background:var(--paper-cream);
  border:1.5px solid var(--ink);
  padding:clamp(26px, 2.6vw, 38px);
  display:flex; flex-direction:column;
  min-height:640px;
  transition:transform var(--t) var(--ease);
}
.edition:hover{ transform:translateY(-4px); }
.edition-feat{
  background:var(--ink);
  color:var(--paper);
  border-color:var(--ink);
}
.edition-feat .edition-strategy,
.edition-feat ul li,
.edition-feat .edition-num,
.edition-feat .edition-name{ color:rgba(255,255,255,.92); }
.edition-feat .edition-strategy,
.edition-feat ul li{ color:rgba(255,255,255,.9); }
.edition-feat ul li{ border-bottom-color:rgba(255,255,255,.18); }
.edition-feat ul li::before{ color:var(--sunset-soft); }
.edition-feat .price-num{ color:var(--sunset-soft); }
.edition-feat h3{ color:var(--paper); }

.edition-bespoke{ background:var(--navy); color:var(--paper); border-color:var(--navy); }
.edition-bespoke .edition-strategy,
.edition-bespoke ul li,
.edition-bespoke .edition-num,
.edition-bespoke .edition-name,
.edition-bespoke h3{ color:rgba(255,255,255,.93); }
.edition-bespoke .edition-strategy,
.edition-bespoke ul li{ color:rgba(255,255,255,.9); }
.edition-bespoke ul li{ border-bottom-color:rgba(255,255,255,.18); }
.edition-bespoke ul li::before{ color:var(--navy-soft); }
.edition-bespoke .price-num{ color:var(--paper); }

.edition-flag{
  position:absolute; top:-1px; right:-1px;
  background:var(--paper); color:var(--ink);
  padding:10px 16px;
  border:1.5px solid var(--sunset-soft);
  font-family:var(--mono); font-size:11px; letter-spacing:.22em; text-transform:uppercase;
  font-weight:800;
  box-shadow:0 8px 18px rgba(0,0,0,.22);
}
.edition-flag.flag-bespoke{ background:var(--sunset-soft); color:var(--navy); border-color:var(--paper); }

.edition header{ margin-bottom:18px; }
.edition-num{
  display:block;
  font-family:var(--mono); font-size:11px; letter-spacing:.22em; text-transform:uppercase;
  color:var(--ink-mute);
  margin-bottom:4px;
}
.edition-name{
  display:block;
  font-family:var(--mono); font-size:11px; letter-spacing:.22em; text-transform:uppercase;
  color:var(--ink);
  margin-bottom:8px;
}
.edition h3{
  font-family:var(--display); font-style:italic; font-weight:500;
  font-size:clamp(22px, 2.4vw, 30px);
  line-height:1.1;
  margin:0 0 16px;
  letter-spacing:-0.012em;
}
.edition-strategy{
  margin:0 0 22px;
  font-size:14px; color:var(--ink-soft);
  line-height:1.55;
}
.edition ul{
  list-style:none; padding:0; margin:0 0 24px;
  flex-grow:1;
}
.edition ul li{
  padding:11px 0;
  border-bottom:1px solid var(--rule-soft);
  font-size:14.5px;
  color:var(--ink-soft);
  display:flex; gap:10px; align-items:flex-start;
  line-height:1.45;
}
.edition ul li::before{
  content:"—";
  color:var(--sunset);
}
.edition ul li:last-child{ border-bottom:0; }
.edition-feat .edition-strategy,
.edition-feat ul li,
.edition-feat .edition-name,
.edition-feat h3{
  color:rgba(255,255,255,.93);
}
.edition-bespoke .edition-strategy,
.edition-bespoke ul li,
.edition-bespoke .edition-name,
.edition-bespoke h3{
  color:rgba(255,255,255,.94);
}
.edition-feat ul li,
.edition-bespoke ul li{
  border-bottom-color:rgba(255,255,255,.22);
}
.edition-feat ul li::before{ color:var(--sunset-soft); }
.edition-bespoke ul li::before{ color:rgba(255,255,255,.64); }
.edition-price{
  display:flex; align-items:baseline; gap:10px;
  margin-bottom:20px;
  border-top:1.5px solid currentColor;
  padding-top:14px;
}
.price-num{
  font-family:var(--display);
  font-style:italic;
  font-weight:600;
  font-size:54px; line-height:1;
  letter-spacing:-0.022em;
  color:var(--sunset);
}
.price-num.price-custom{ font-size:34px; color:var(--paper); }
.price-suf{
  font-family:var(--mono); font-size:11px; letter-spacing:.22em; text-transform:uppercase;
  color:var(--ink-mute);
}
.edition-feat .price-suf, .edition-bespoke .price-suf{ color:rgba(255,255,255,.7); }
.edition-cta{ width:100%; margin-top:auto; }
.edition-feat .edition-cta{ background:var(--sunset); border-color:var(--sunset); color:var(--paper); }
.edition-feat .edition-cta:hover{ background:var(--sunset-soft); border-color:var(--sunset-soft); color:var(--ink); }
.edition-bespoke .edition-cta{ background:transparent; color:var(--paper); border-color:var(--paper); }
.edition-bespoke .edition-cta:hover{ background:var(--paper); color:var(--navy); }

@media (max-width: 1100px){
  .editions-grid{ grid-template-columns:repeat(2, 1fr); }
  .edition{ min-height:auto; }
}
@media (max-width: 560px){
  .editions-grid{ grid-template-columns:1fr; }
}

/* ─── PULL-QUOTE TESTIMONIALS ─── */
.voices{
  padding:clamp(80px, 10vw, 140px) 0;
  background:var(--paper-cream);
  border-top:var(--hairline);
  border-bottom:var(--hairline);
}
.pullquotes{
  max-width:var(--max);
  margin:0 auto;
  padding:0 var(--gutter);
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:48px;
}
.pullquote{
  position:relative;
  padding:48px 32px 28px;
  margin:0;
  background:var(--paper);
  border:1.5px solid var(--ink);
}
.pullquote-mark{
  position:absolute;
  top:-26px; left:24px;
  font-family:var(--display);
  font-style:italic;
  font-weight:600;
  font-size:180px;
  line-height:.7;
  color:var(--sunset);
  background:var(--paper-cream);
  padding:0 14px;
}
.pullquote blockquote{
  margin:0 0 24px;
  font-family:var(--display); font-style:italic; font-weight:500;
  font-size:clamp(22px, 2.6vw, 30px);
  line-height:1.28;
  letter-spacing:-0.012em;
  color:var(--ink);
}
.pullquote figcaption{
  display:flex; flex-direction:column; gap:2px;
  border-top:1.5px solid var(--ink);
  padding-top:12px;
}
.pullquote figcaption strong{
  font-family:var(--display); font-weight:600; font-size:16px;
}
.pullquote figcaption span{
  font-family:var(--mono); font-size:11px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--ink-mute);
}
.pullquote-orange{ background:var(--sunset); }
.pullquote-orange blockquote, .pullquote-orange figcaption strong{ color:var(--paper); }
.pullquote-orange .pullquote-mark{ color:var(--paper); background:var(--sunset); }
.pullquote-orange figcaption{ border-top-color:var(--paper); }
.pullquote-orange figcaption span{ color:rgba(255,255,255,.7); }
.pullquote-sage{ background:var(--sage); }
.pullquote-sage blockquote, .pullquote-sage figcaption strong{ color:var(--paper); }
.pullquote-sage .pullquote-mark{ color:var(--paper); background:var(--sage); }
.pullquote-sage figcaption{ border-top-color:var(--paper); }
.pullquote-sage figcaption span{ color:rgba(255,255,255,.75); }

@media (max-width: 880px){
  .pullquotes{ grid-template-columns:1fr; gap:60px; }
}

/* ─── FAQ ─── */
.faq{
  padding:clamp(80px, 10vw, 140px) 0;
}
.faq-list{
  max-width:var(--max);
  margin:0 auto;
  padding:0 var(--gutter);
  border-top:1.5px solid var(--ink);
}
.faq-item{
  border-bottom:1.5px solid var(--ink);
  padding:18px 0;
}
.faq-item summary{
  list-style:none;
  cursor:pointer;
  display:flex; align-items:center; justify-content:space-between;
  gap:18px;
  font-family:var(--display); font-style:italic; font-weight:500;
  font-size:clamp(20px, 2.4vw, 26px);
  letter-spacing:-0.012em;
  padding:8px 0;
  transition:color var(--t-fast) var(--ease);
}
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary::after{
  content:"+";
  font-family:var(--display);
  font-size:28px;
  font-weight:600;
  color:var(--sunset);
  transition:transform var(--t) var(--ease);
}
.faq-item[open] summary::after{ content:"–"; }
.faq-item p{
  margin:14px 0 8px;
  color:var(--ink-soft);
  max-width:780px;
  line-height:1.6;
  font-family:var(--display);
  font-size:16px;
}

/* ─── BOOKING ─── */
.booking{
  padding:clamp(80px, 10vw, 140px) 0;
  background:var(--paper-deep);
  border-top:var(--hairline);
  border-bottom:var(--hairline);
}
.booking-flow{
  max-width:var(--max);
  margin:0 auto;
  padding:0 var(--gutter);
  border:1.5px solid var(--ink);
  background:var(--paper);
}
.booking-steps{
  list-style:none; padding:0; margin:0;
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  border-bottom:1.5px solid var(--ink);
}
.b-step{
  padding:26px 26px;
  border-right:1.5px solid var(--ink);
  display:flex; align-items:baseline; gap:14px;
  font-family:var(--mono); font-size:12px; letter-spacing:.22em; text-transform:uppercase;
  color:var(--ink-mute);
  cursor:pointer;
  transition:background var(--t) var(--ease), color var(--t) var(--ease);
}
.b-step:last-child{ border-right:0; }
.b-step span{
  font-family:var(--display); font-style:italic; font-weight:600; font-size:34px; line-height:1;
  color:var(--sunset);
  letter-spacing:0;
}
.b-step em{ font-style:normal; }
.b-step.active{ background:var(--sunset); color:var(--paper); }
.b-step.active span{ color:var(--paper); }

@media (max-width: 720px){
  .booking{
    padding:clamp(58px, 14vw, 90px) 0;
  }
  .booking-flow{
    padding:0;
    border-left:0;
    border-right:0;
  }
  .booking-steps{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
  .b-step{
    padding:18px 20px;
    gap:10px;
    font-size:10px;
    letter-spacing:.18em;
  }
  .b-step:nth-child(2){
    border-right:0;
  }
  .b-step:nth-child(-n+2){
    border-bottom:1.5px solid var(--ink);
  }
  .b-step span{
    font-size:30px;
  }
  .booking-pane{
    padding:32px 24px;
  }
}

.booking-pane{
  display:none;
  padding:clamp(36px, 4vw, 52px);
}
.booking-pane.active{ display:block; }
@media (max-width: 720px){
  .booking-pane{
    padding:32px 24px;
  }
}
.booking-pane h3{
  margin:0 0 28px;
  font-family:var(--display); font-style:italic; font-weight:500;
  font-size:clamp(38px, 4vw, 52px);
  line-height:1.02;
  letter-spacing:-0.012em;
}

.occasion-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:14px;
}
.occasion-btn{
  padding:32px 22px;
  min-height:136px;
  background:var(--paper-deep);
  color:var(--ink);
  border:1.5px solid var(--ink);
  text-align:left;
  font-family:var(--display); font-style:italic; font-weight:500;
  font-size:clamp(25px, 2.25vw, 32px);
  line-height:1.08;
  cursor:pointer;
  transition:background var(--t) var(--ease), color var(--t) var(--ease), transform var(--t-fast) var(--ease);
  position:relative;
}
.occasion-btn::before{
  content:""; position:absolute; left:14px; top:14px;
  width:18px; height:1.5px; background:var(--sunset);
  transition:width var(--t) var(--ease);
}
.occasion-btn:hover{ background:var(--sunset); color:var(--paper); }
.occasion-btn:hover::before{ background:var(--paper); width:32px; }
.occasion-btn.selected{ background:var(--sunset); color:var(--paper); }
.occasion-btn.selected::before{ background:var(--paper); width:32px; }
.occasion-btn span{ display:block; padding-top:24px; }
@media (max-width: 720px){
  .occasion-grid{ grid-template-columns:repeat(2, 1fr); }
}

.package-grid{
  display:grid; grid-template-columns:repeat(4, 1fr); gap:14px;
}
.pkg-btn{
  padding:30px 24px 32px;
  min-height:178px;
  background:var(--paper-deep);
  color:var(--ink);
  border:1.5px solid var(--ink);
  display:flex; flex-direction:column; gap:10px;
  text-align:left;
  cursor:pointer;
  position:relative;
  transition:background var(--t) var(--ease), color var(--t) var(--ease), transform var(--t-fast) var(--ease);
}
.pkg-btn:hover,
.pkg-btn.selected{ background:var(--sunset); color:var(--paper); transform:translateY(-2px); }
.pkg-btn:hover .pkg-rec-flag{ background:var(--paper); color:var(--ink); }
.pkg-btn.selected .pkg-rec-flag{ background:var(--paper); color:var(--ink); }
.pkg-btn strong{
  font-family:var(--display); font-style:italic; font-weight:600; font-size:clamp(28px, 2.5vw, 36px);
  line-height:1.04;
  margin-top:20px;
}
.pkg-btn span{
  font-family:var(--mono); font-size:12px; letter-spacing:.2em; text-transform:uppercase;
  color:var(--ink-mute);
}
.pkg-btn em{
  font-style:normal; font-family:var(--sans); font-size:14px; color:var(--ink-soft);
  line-height:1.4;
}
.pkg-btn:hover span, .pkg-btn:hover em,
.pkg-btn.selected span, .pkg-btn.selected em{ color:rgba(255,255,255,.88); }
.pkg-rec-flag{
  position:absolute; top:0; right:0;
  background:var(--sunset); color:var(--paper);
  padding:8px 12px;
  font-family:var(--mono); font-size:10px; letter-spacing:.22em; text-transform:uppercase;
  font-weight:800;
}
.pkg-rec-flag.flag-bespoke{ background:var(--navy); color:var(--paper); }
.pkg-rec{ background:var(--paper-deep); color:var(--ink); }
.pkg-rec span{ color:var(--ink-mute); }
.pkg-rec em{ color:var(--ink-soft); }
.payment-method-note{
  margin:18px 0 0;
  max-width:760px;
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--ink-soft);
}
@media (max-width: 880px){ .package-grid{ grid-template-columns:repeat(2, 1fr); } }

.field, .field-row{ display:block; margin-bottom:18px; }
.field-row{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.field span{
  display:block;
  font-family:var(--mono); font-size:11px; letter-spacing:.22em; text-transform:uppercase;
  color:var(--ink-mute);
  margin-bottom:8px;
}
.field-hint{
  font-style:italic;
  font-weight:400;
  text-transform:none;
  letter-spacing:.04em;
  color:var(--sunset);
  margin-left:6px;
}
.field input, .field textarea, .field select{
  width:100%;
  padding:15px 17px;
  background:var(--paper-cream);
  border:1.5px solid var(--ink);
  color:var(--ink);
  font-family:var(--display); font-style:normal; font-size:18px;
  border-radius:0;
  transition:background var(--t-fast) var(--ease);
}
.field input:focus, .field textarea:focus, .field select:focus{
  outline:none; background:var(--paper);
  box-shadow:inset 0 -3px 0 var(--sunset);
}
.booking-nav{
  display:flex; gap:14px; flex-wrap:wrap;
  margin-top:24px;
}
.booking-nav .press-btn-fill{ margin-left:auto; }
.payment-options{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:10px;
  margin-top:16px;
}
.payment-options[hidden]{ display:none; }
.payment-option{
  appearance:none;
  border:1.5px solid var(--ink);
  background:var(--paper-cream);
  color:var(--ink);
  padding:13px 12px;
  font-family:var(--mono);
  font-size:11px;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
  cursor:pointer;
}
.payment-option:focus-visible{
  outline:3px solid var(--sunset);
  outline-offset:2px;
}
.booking-summary{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:14px;
}
.booking-summary p{
  grid-column:1 / -1;
  margin:0;
  color:var(--ink-soft);
  font-size:16px;
}
.summary-item{
  border:1.5px solid var(--ink);
  background:var(--paper-cream);
  padding:18px;
}
.summary-item span{
  display:block;
  font-family:var(--mono);
  font-size:10px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--ink-mute);
  margin-bottom:8px;
}
.summary-item strong{
  font-family:var(--display);
  font-style:italic;
  font-size:26px;
  font-weight:500;
  line-height:1.1;
}
@media (max-width: 600px){
  .field-row{ grid-template-columns:1fr; }
  .booking-nav .press-btn-fill{ margin-left:0; }
  .booking-summary{ grid-template-columns:1fr; }
}

/* ─── CONTACT ─── */
.contact{
  padding:clamp(80px, 10vw, 140px) 0;
}
.contact-grid{
  max-width:var(--max);
  margin:0 auto;
  padding:0 var(--gutter);
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(40px, 6vw, 96px);
}
.contact-list{
  list-style:none; padding:0; margin:32px 0 0;
  border-top:1.5px solid var(--ink);
}
.contact-list li{
  padding:18px 0;
  border-bottom:1px solid var(--rule);
  display:grid; grid-template-columns:120px 1fr; gap:18px;
  align-items:baseline;
  font-size:15px;
  color:var(--ink-soft);
}
.contact-list li span{
  font-family:var(--mono); font-size:11px; letter-spacing:.22em; text-transform:uppercase;
  color:var(--ink-mute);
}
.contact-list a{ color:var(--ink); transition:color var(--t-fast) var(--ease); }
.contact-list a:hover{ color:var(--sunset); }
.contact-form .press-btn-fill{ margin-top:8px; }
@media (max-width: 880px){
  .contact-grid{ grid-template-columns:1fr; }
}

/* ─── CLOSER (running flourish display headline) ─── */
.closer{
  padding:clamp(60px, 9vw, 120px) var(--gutter);
  text-align:center;
  background:var(--ink);
  color:var(--paper);
  border-top:var(--hairline);
  border-bottom:var(--hairline);
}
.closer-line{
  font-family:var(--display);
  font-style:italic;
  font-weight:500;
  font-size:clamp(56px, 12vw, 200px);
  line-height:.9;
  letter-spacing:-0.028em;
  margin:0 0 clamp(56px, 5vw, 88px);
  display:flex; flex-wrap:wrap; align-items:baseline; justify-content:center;
  gap:.18em;
}
.closer-line em{
  font-style:italic;
  color:var(--sunset);
  font-weight:600;
}
.closer-line .closer-italic{
  font-style:italic;
  color:var(--sunset);
  font-weight:600;
}
.closer-meta{
  font-family:var(--mono); font-size:11px; letter-spacing:.22em; text-transform:uppercase;
  color:var(--paper);
  margin:0;
  opacity:.7;
}

/* ─── LEGAL / UTILITY PAGES ─── */
.legal-page{
  min-height:100vh;
  background:var(--paper);
}
.legal-shell{
  max-width:980px;
  margin:0 auto;
  padding:clamp(42px, 7vw, 92px) var(--gutter) clamp(70px, 9vw, 120px);
}
.legal-nav{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding-bottom:28px;
  border-bottom:1.5px solid var(--ink);
  margin-bottom:clamp(42px, 6vw, 72px);
}
.legal-brand{
  display:inline-flex;
  align-items:center;
  gap:12px;
  font-family:var(--display);
  font-style:italic;
  font-size:32px;
  font-weight:600;
}
.legal-brand img{
  width:42px;
  height:42px;
  object-fit:contain;
}
.legal-back{
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--ink-soft);
  transition:color var(--t-fast) var(--ease);
}
.legal-back:hover{ color:var(--sunset); }
.legal-kicker{
  margin-bottom:22px;
}
.legal-title{
  font-family:var(--display);
  font-style:italic;
  font-weight:500;
  font-size:clamp(58px, 9vw, 120px);
  line-height:.92;
  letter-spacing:-0.026em;
  margin:0 0 24px;
}
.legal-updated{
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--ink-mute);
  margin:0 0 clamp(34px, 5vw, 56px);
}
.legal-copy{
  display:grid;
  gap:28px;
  font-size:16px;
  line-height:1.68;
  color:var(--ink-soft);
}
.legal-copy section{
  border-top:1px solid var(--rule);
  padding-top:26px;
}
.legal-copy h2{
  font-family:var(--display);
  font-style:italic;
  font-weight:500;
  font-size:clamp(28px, 3vw, 42px);
  line-height:1.05;
  color:var(--ink);
  margin:0 0 10px;
}
.legal-copy p,
.legal-copy ul{ margin:0; }
.legal-copy ul{
  padding-left:20px;
}
.legal-copy a{
  color:var(--ink);
  border-bottom:1px solid currentColor;
}
.success-details{
  display:grid;
  grid-template-columns:minmax(120px, 0.38fr) 1fr;
  gap:12px 18px;
  margin:0;
}
.success-details dt{
  font-family:var(--mono);
  font-size:10px;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--ink-mute);
}
.success-details dd{
  margin:0;
  color:var(--ink);
}
.legal-actions{
  display:flex;
  gap:14px;
  flex-wrap:wrap;
  margin-top:clamp(34px, 5vw, 58px);
}
@media (max-width:620px){
  .legal-nav{
    align-items:flex-start;
    flex-direction:column;
  }
  .legal-actions .press-btn{
    width:100%;
  }
  .success-details{
    grid-template-columns:1fr;
    gap:6px;
  }
  .success-details dd{
    margin-bottom:10px;
  }
}

/* ─── FOOTER ─── */
.press-footer{
  background:var(--paper);
  padding:clamp(24px, 4vw, 42px) 0 22px;
}
.press-footer-grid{
  max-width:var(--max);
  margin:0 auto;
  padding:0 var(--gutter);
  display:grid;
  grid-template-columns:1.5fr 1fr 1fr 1fr;
  gap:clamp(18px, 3vw, 34px);
  border-top:1.5px solid var(--ink);
  padding-top:28px;
}
.press-footer-mark{
  display:flex; align-items:center; gap:14px;
  margin-bottom:10px;
  font-family:var(--display); font-style:italic; font-weight:600; font-size:24px;
  color:var(--ink);
}
.press-footer-brand p{ color:var(--ink-soft); font-size:13px; max-width:320px; line-height:1.45; margin:0 0 8px; }
.press-footer-address{ font-size:12.5px; color:var(--ink-soft); line-height:1.55; }
.press-footer-address a{ color:var(--ink); }
.press-footer-col h4{
  font-family:var(--mono); font-size:11px; letter-spacing:.22em; text-transform:uppercase;
  color:var(--ink-mute);
  margin:0 0 10px;
  font-weight:400;
}
.press-footer-col ul{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:6px; }
.press-footer-col ul a{
  color:var(--ink-soft);
  font-family:var(--display); font-size:14px;
  transition:color var(--t-fast) var(--ease);
}
.press-footer-col ul a:hover{ color:var(--sunset); }
.press-footer-bottom{
  max-width:var(--max);
  margin:24px auto 0;
  padding:14px var(--gutter) 0;
  border-top:1px solid var(--rule);
  display:flex; justify-content:space-between; gap:18px; flex-wrap:wrap;
  font-family:var(--mono); font-size:10px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--ink-mute);
}
@media (max-width:880px){
  .press-footer-grid{ grid-template-columns:1fr 1fr; }
}
@media (max-width:520px){
  .press-footer-grid{ grid-template-columns:1fr; }
}

/* ─── focus-visible ─── */
:focus-visible{
  outline:1.5px solid var(--sunset);
  outline-offset:3px;
}

/* ─── reduced motion ─── */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:0ms !important;
    animation-iteration-count:1 !important;
    transition-duration:0ms !important;
  }
  .paper-marquee-track{ animation:none; }
  .pinned:hover{ transform:none; }
}

/* ─── scroll-margin for in-page anchors ───
   Sections have a generous padding-top for normal scroll layout, which
   otherwise leaves a big chunk of empty space above the section heading
   when you click a nav link. Negative scroll-margin cancels most of
   that padding so the section heading lands flush at the top. */
.spread-hero, .repertoire, .process, .editions, .voices, .faq, .booking, .contact{
  scroll-margin-top:calc(-1 * clamp(80px, 10vw, 140px));
}
/* .feature is the one exception — this section should land with
   the headline visually centered in the viewport, not glued to the top.
   Positive scroll-margin pushes the anchor target down so the editorial
   "The sky IS the photograph" headline lands roughly mid-viewport. */
.feature{
  scroll-margin-top:90px;
}
