/* Hallmark · pre-emit critique: Philosophy 5 · Hierarchy 5 · Execution 4 · Specificity 5 · Restraint 5 · Variety 4 */
:root {
  --rf-surface: var(--cream);
  --rf-surface-muted: #ead9c2;
  --rf-ink: var(--black);
  --rf-ink-muted: #6d5a4c;
  --rf-rule-light: #b8a99d;
}

.booking-desk {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(18rem, .85fr);
  gap: clamp(2rem, 8vw, 8rem);
  align-items: start;
  background: var(--rf-surface-muted);
  color: var(--rf-ink);
}

.booking-desk > div:last-child {
  padding-top: clamp(15rem, 18vw, 18rem);
}

.booking-desk h2 { max-width: 10ch; }
.booking-desk-copy { max-width: 30rem; font: 1.15rem/1.5 var(--serif); color: var(--rf-ink-muted); }
.booking-desk-copy .lead { color: var(--rf-ink); font-size: clamp(1.4rem, 2.4vw, 2.1rem); line-height: 1.2; margin-bottom: 1rem; }
.booking-desk-card { border-top: 1px solid var(--rf-rule-light); border-bottom: 1px solid var(--rf-rule-light); padding: 1.1rem 0; }
.booking-desk-card + .booking-desk-card { border-top: 0; }
.booking-desk-card b { display: block; color: var(--crimson); font: 700 .68rem var(--sans); letter-spacing: .14em; text-transform: uppercase; margin-bottom: .35rem; }
.booking-desk-card span { display: block; font: 1.1rem/1.35 var(--serif); }
.booking-desk-card .button { margin-top: 1rem; }
.offer-grid .offer h3 { min-height: 5.7rem; }
.offer-grid .offer p { min-height: 7.5rem; }
.offer-grid .offer .button { margin-top: .35rem; }
.booking-session-list { display:grid; gap:.55rem; margin-top:.9rem; }
.booking-session-list a { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.75rem .85rem; border:1px solid var(--rf-rule-light); color:var(--rf-ink); text-decoration:none; transition:background .2s ease,color .2s ease,border-color .2s ease; }
.booking-session-list a:hover,.booking-session-list a:focus-visible { background:var(--rf-ink); color:var(--cream); border-color:var(--rf-ink); }
.booking-session-list a span { display:flex; flex-direction:column; gap:.12rem; }
.booking-session-list strong { font:700 .78rem var(--sans); letter-spacing:.12em; text-transform:uppercase; }
.booking-session-list small { font: .92rem/1.25 var(--serif); }
.booking-session-list em { font:700 .68rem var(--sans); letter-spacing:.12em; text-transform:uppercase; font-style:normal; white-space:nowrap; }
.booking-price { margin-top:.8rem; color:var(--rf-ink-muted); font: 1rem/1.35 var(--serif)!important; }
.booking-help { max-width: 34rem; margin: .9rem 0 0; color: var(--rf-ink-muted); font: .9rem/1.45 var(--serif); }

.steps { counter-reset: class-step; }
.steps div { align-items: baseline; }
.steps b { min-width: 1.7rem; }
.steps span { max-width: 28rem; }

.press-assets { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-top: 2.5rem; }
.press-asset { border: 1px solid var(--line); padding: 1.25rem; background: var(--wine); }
.press-asset img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; margin-bottom: 1rem; }
.press-asset figcaption { color: var(--cream); font: 1rem/1.35 var(--serif); }
.press-asset a { display: inline-flex; margin-top: .85rem; color: var(--red); font: 700 .68rem var(--sans); letter-spacing: .12em; text-transform: uppercase; }
.press-asset a:hover, .press-asset a:focus-visible { color: var(--cream); }

.press-desk { padding: clamp(2.5rem, 5vw, 5rem) 8vw; background: var(--rf-surface-muted); color: var(--rf-ink); }
.social-links::before { content: 'Instagram'; flex-basis: 100%; color: var(--crimson); font: 700 .62rem var(--sans); letter-spacing: .14em; text-transform: uppercase; }
.press-desk .section-label { color: var(--crimson); margin-bottom: 1.5rem; }
.press-desk-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.press-desk-grid > div { border-top: 1px solid var(--rf-rule-light); padding-top: 1rem; }
.press-desk-grid b { display: block; margin-bottom: .5rem; color: var(--crimson); font: 700 .68rem var(--sans); letter-spacing: .12em; text-transform: uppercase; }
.press-desk-grid span { display: block; max-width: 20rem; font: 1.05rem/1.4 var(--serif); }

@media (max-width: 800px) {
  .booking-desk { grid-template-columns: 1fr; gap: 2.5rem; }
  .booking-desk > div:last-child { padding-top: 0; }
  .offer-grid .offer h3,
  .offer-grid .offer p { min-height: 0; }
  .press-assets { grid-template-columns: 1fr; }
  .press-desk { padding-left: 7vw; padding-right: 7vw; }
  .press-desk-grid { grid-template-columns: 1fr; gap: 1.5rem; }
}

.programme-panel { display: grid; grid-template-columns: minmax(0, 1fr) minmax(18rem, .9fr); gap: clamp(2rem, 8vw, 8rem); align-items: start; padding: clamp(3rem, 7vw, 7rem) 8vw; background: var(--wine); color: var(--cream); }
.programme-panel > div:last-child { padding-top: clamp(6rem, 8vw, 8rem); }
.programme-panel h2 { max-width: 13ch; margin-top: 1rem; }
.programme-details { border-top: 1px solid #76525b; padding-top: 1.1rem; }
.programme-dates { display: grid; grid-template-columns: auto 1fr; gap: .45rem 1rem; margin: 0 0 1.5rem; font: 1.15rem/1.35 var(--serif); }
.programme-dates b { color: var(--red); font-family: var(--sans); font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; }
.programme-details > p:not(.programme-dates) { font: 1.05rem/1.5 var(--serif); }
.programme-details strong { color: var(--red); }
.programme-details .text-link { color: var(--cream); }
.programme-details .text-link:hover, .programme-details .text-link:focus-visible { color: var(--red); }
.press-programme { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem 2rem; max-width: 62rem; margin-top: 2.5rem; border-top: 1px solid #b8a99d; }
.press-programme > div { padding: 1.1rem 1rem 0 0; }
.press-programme b { display: block; margin-bottom: .45rem; color: var(--crimson); font: 700 .65rem var(--sans); letter-spacing: .14em; text-transform: uppercase; }
.press-programme span { display: block; font: 1.05rem/1.45 var(--serif); }
.press-programme a { color: var(--crimson); }
.press-programme a:hover, .press-programme a:focus-visible { color: var(--black); }
.script-accent { font-family: var(--script); font-style: normal; font-weight: 400; letter-spacing: 0; }
@media (max-width: 800px) {
  .programme-panel { grid-template-columns: 1fr; gap: 2.5rem; padding-left: 7vw; padding-right: 7vw; }
  .programme-panel > div:last-child { padding-top: 0; }
  .press-programme { grid-template-columns: 1fr; gap: 0; }
  .hero > .scroll-cue { bottom: 4.6rem !important; }
  .hero > .hero-media-control { bottom: .8rem !important; }
}
/* Intermediate desktop width: preserve readable card measure and baseline rhythm. */
@media (min-width: 801px) and (max-width: 1100px) {
  .offer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.press-programme span { display:flex; flex-direction:column; min-height:7rem; }
