/* =========================================================
   THE GATHERING PAGE — /g/<slug> and /gathering?event=
   Rendered by gathering.js from the database. Same house as the rest of the
   site: the tokens in styles.css, Cormorant Garamond for display, Inter for
   reading, gold rules, hairlines, a lift on hover. Nothing a person reads is
   under 17px; sentences are 18px, buttons 20px, titles 26px and up.
   ========================================================= */

:root {
  --gp-scrim-top: rgba(24, 23, 19, 0.18);
  --gp-scrim-mid: rgba(24, 23, 19, 0.6);
  --gp-scrim-side: rgba(24, 23, 19, 0.66);
  --gp-scrim-bottom: rgba(24, 23, 19, 0.88);
  --gp-veil: rgba(24, 23, 19, 0.92);
  --gp-glass: rgba(24, 23, 19, 0.62);
  --gp-hero-rule: rgba(255, 255, 255, 0.36);
  --gp-hero-soft: rgba(255, 255, 255, 0.86);
}

/* Numbers sit on the baseline with the letters, everywhere on the page. */
.page-gathering { font-variant-numeric: lining-nums; }
.page-gathering main { min-width: 0; }
/* Italic serif is only for display sizes here; anything a person reads for
   information is upright, 18px and up, and never lighter than the ink-soft tone. */
.page-gathering .section-sub { font-style: italic; font-weight: 500; font-size: 22px; color: var(--ink); }
.page-gathering .notice { font-style: normal; font-family: var(--sans); font-size: 18px; color: var(--ink); }
.gp-nowrap { white-space: nowrap; }
.page-gathering .section { padding-top: 56px; padding-bottom: 56px; }
.page-gathering .gp-house, .page-gathering .gp-itin, .page-gathering .gp-speakers, .page-gathering .gp-hosts,
.page-gathering .gp-attend, .page-gathering .gp-faq, .page-gathering .gp-voices { border-top: 1px solid var(--hair); }
.page-gathering .section-heading { margin-bottom: 18px; }
.page-gathering .section-sub { margin-bottom: 32px; }

/* ---- hero ---- */
.gp-hero {
  position: relative; isolation: isolate; overflow: hidden;
  min-height: min(90svh, 820px); display: flex; align-items: flex-end;
  background: var(--burgundy-deep); color: var(--parchment);
}
.gp-hero-media { position: absolute; inset: 0; z-index: 0; }
.gp-hero-img, .gp-hero-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.gp-hero-video { z-index: 1; }
.gp-hero-yt { position: absolute; inset: 0; z-index: 1; overflow: hidden; pointer-events: none; }
.gp-hero-yt iframe { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); border: 0; }
.gp-hero-scrim {
  position: absolute; inset: 0; z-index: 2;
  background:
    linear-gradient(to right, var(--gp-scrim-side) 0%, transparent 64%),
    linear-gradient(to bottom, var(--gp-scrim-top) 0%, transparent 30%, var(--gp-scrim-mid) 58%, var(--gp-scrim-bottom) 100%);
}
.gp-hero-body { text-shadow: 0 2px 14px rgba(24, 23, 19, 0.55); }
.gp-hero-body { position: relative; z-index: 3; width: 100%; max-width: var(--max); margin: 0 auto; padding: 128px 40px 60px; }
.gp-hero-eyebrow { font-size: 17px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--gold-bright); font-weight: 600; margin-bottom: 18px; line-height: 1.5; }
.gp-dot { color: var(--gold-bright); }
.gp-hero-title {
  font-family: var(--serif); font-size: clamp(46px, 7vw, 92px); line-height: 1.02; font-weight: 500;
  letter-spacing: -0.02em; color: var(--parchment); max-width: 15ch; margin: 0 0 20px; text-wrap: balance;
}
.gp-hero-tagline {
  font-family: var(--serif); font-style: italic; font-weight: 500; font-size: clamp(22px, 2.4vw, 27px); line-height: 1.45;
  max-width: 640px; color: var(--parchment); margin: 0 0 30px;
}
.gp-hero-facts { display: flex; flex-wrap: wrap; gap: 20px 48px; border-top: 1px solid var(--gp-hero-rule); padding-top: 24px; margin-bottom: 30px; }
.gp-fact { min-width: 0; }
.gp-fact-n { display: block; font-family: var(--serif); font-size: 40px; line-height: 1; font-weight: 600; color: var(--gold-bright); font-variant-numeric: lining-nums tabular-nums; }
.gp-fact-l { display: block; font-size: 17px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--gp-hero-soft); margin-top: 8px; font-weight: 500; line-height: 1.4; }
.gp-hero-actions { display: flex; flex-wrap: wrap; gap: 16px 28px; align-items: center; }
.gp-hero-link { color: var(--parchment); font-size: 18px; font-weight: 500; border-bottom: 1px solid var(--gp-hero-rule); padding-bottom: 2px; }
.gp-hero-link:hover { color: var(--gold-bright); border-color: var(--gold-bright); }
.gp-closed-pill { display: inline-block; padding: 13px 22px; border: 2px solid var(--gold-bright); color: var(--parchment); font-size: 18px; font-weight: 600; letter-spacing: 0.04em; border-radius: 3px; }

.gp-hero-plain { background: var(--parchment-deep); color: var(--ink); min-height: 0; border-bottom: 2px solid var(--gold-border, var(--gold)); }
.gp-hero-plain .gp-hero-scrim { display: none; }
.gp-hero-plain .gp-hero-body { padding-top: 72px; }
.gp-hero-plain .gp-hero-eyebrow, .gp-hero-plain .gp-dot { color: var(--gold); }
.gp-hero-plain .gp-hero-title { color: var(--burgundy); }
.gp-hero-plain .gp-hero-tagline { color: var(--ink-soft); }
.gp-hero-plain .gp-hero-facts { border-color: var(--hair-deep); }
.gp-hero-plain .gp-fact-n { color: var(--gold); }
.gp-hero-plain .gp-fact-l { color: var(--ink-faint); }
.gp-hero-plain .gp-hero-link { color: var(--burgundy); border-color: var(--gold); }
.gp-hero-plain .gp-closed-pill { color: var(--burgundy); border-color: var(--gold-border, var(--gold)); }

/* ---- details: one line per fact ---- */
.page-gathering .gp-details { padding-top: 28px; padding-bottom: 20px; }
.gp-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 32px; border-top: 2px solid var(--gold-border, var(--gold)); border-bottom: 1px solid var(--hair-deep); }
.gp-fact-card { padding: 20px 0 18px; min-width: 0; }
.gp-fact-card .detail-card-label { margin-bottom: 8px; }
.gp-fact-value { font-family: var(--serif); font-size: 24px; font-weight: 500; color: var(--burgundy); line-height: 1.3; overflow-wrap: anywhere; }
.gp-fact-place, .gp-fact-locality { display: block; }
.gp-fact-locality { font-size: 21px; line-height: 1.2; white-space: nowrap; }
.gp-fact-value strong { font-weight: 600; }
@media (min-width: 900px) { .gp-facts { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.page-gathering .cta-block-text { font-weight: 500; color: var(--parchment); font-size: 20px; }
.gp-hero-eyebrow { display: inline-block; padding: 8px 14px; background: var(--gp-glass); border-left: 2px solid var(--gold-bright); }

/* ---- about ---- */
.gp-about-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 40px 72px; align-items: start; }
.gp-about-single { grid-template-columns: minmax(0, 1fr); max-width: 760px; margin: 0 auto; }
.gp-prose { max-width: 66ch; }
.gp-prose .gp-arrival { padding: 20px 24px; border: 1px solid var(--hair-deep); background: var(--parchment-deep); font-size: 18px; line-height: 1.6; }
.gp-expect { border-top: 2px solid var(--gold-border, var(--gold)); padding-top: 20px; }
.gp-expect .section-eyebrow { text-align: left; margin-bottom: 18px; }

/* ---- the gathering's theme (166) ---- */
.gp-theme { text-align: center; }
.gp-theme-sub { margin: -6px auto 26px; font-family: var(--serif); font-style: italic; font-size: 22px; color: var(--ink-soft); }
.gp-theme-verse { max-width: 40ch; margin: 0 auto 28px; padding: 22px 26px; border-top: 1px solid var(--gold); border-bottom: 1px solid var(--gold); }
.gp-theme-verse p { margin: 0 0 8px; font-family: var(--serif); font-size: 26px; line-height: 1.4; color: var(--burgundy); }
.gp-theme-verse cite { font-style: normal; font-size: 17px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--gold); }
.gp-theme-prose { max-width: 62ch; margin: 0 auto; }
.gp-theme-prose p { font-size: 19px; line-height: 1.7; color: var(--ink); margin: 0 0 18px; }
.gp-theme-verses { list-style: none; margin: 30px auto 34px; padding: 0; max-width: 720px; display: grid; gap: 12px; text-align: left; }
.gp-theme-verses li { display: grid; grid-template-columns: 170px minmax(0, 1fr); gap: 16px; align-items: baseline; padding: 14px 18px; border: 1px solid var(--hair-deep); background: var(--parchment-deep); font-size: 18px; line-height: 1.55; color: var(--ink); }
.gp-theme-ref { font-weight: 600; color: var(--burgundy); }
.gp-theme-closing p { font-size: 22px; }
@media (max-width: 600px) { .gp-theme-verses li { grid-template-columns: minmax(0, 1fr); gap: 4px; } .gp-theme-verse p { font-size: 22px; } }

/* ---- keepsake: what every guest takes home ---- */
.gp-keepsake-prose { max-width: 66ch; margin: 0 auto; text-align: center; }
.gp-keepsake-prose p { font-size: 18px; line-height: 1.7; color: var(--ink); margin: 0 0 18px; }
.gp-keepsake-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 28px; }
.gp-keepsake-item { margin: 0; overflow: hidden; border: 1px solid var(--hair-deep); background: var(--parchment-deep); }
.gp-keepsake-item img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
.gp-keepsake-note { margin: 14px auto 0; max-width: 66ch; text-align: center; font-size: 17px; font-style: italic; color: var(--ink-soft); }
@media (max-width: 760px) { .gp-keepsake-grid { grid-template-columns: minmax(0, 1fr); } }

.gp-list { list-style: none; margin: 0; padding: 0; }
.gp-list li { position: relative; padding-left: 28px; font-size: 18px; line-height: 1.6; margin-bottom: 12px; break-inside: avoid; }
.gp-list li::before { content: "✦"; position: absolute; left: 0; top: 1px; color: var(--gold); font-size: 17px; }

/* ---- the house ---- */
.gp-venue + .gp-venue { margin-top: 48px; padding-top: 40px; border-top: 1px solid var(--hair); }
.gp-venue-name { font-family: var(--serif); font-size: 30px; font-weight: 500; color: var(--burgundy); margin-bottom: 8px; }
.gp-strip-wrap { position: relative; }
.gp-strip {
  display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-x: contain;
  padding: 6px 2px 16px; margin: 8px 0 0; -webkit-overflow-scrolling: touch; scrollbar-color: var(--gold) var(--parchment-deep);
}
/* An arrow at each end of the rail, centred on the photos rather than the
   scrollbar beneath them, and gone at the end it would scroll past. */
.gp-strip-nav {
  position: absolute; top: calc(50% - 8px); transform: translateY(-50%); z-index: 2;
  width: 52px; height: 52px; display: grid; place-items: center; padding: 0 0 4px;
  border: 2px solid var(--gold-bright, var(--gold)); border-radius: 50%;
  background: rgba(38, 24, 6, 0.72); color: var(--parchment);
  font-family: var(--serif); font-size: 36px; line-height: 1; cursor: pointer;
  box-shadow: 0 8px 20px rgba(65, 42, 8, 0.28);
  transition: background 180ms var(--ease-refined), transform 180ms var(--ease-refined);
}
.gp-strip-nav[hidden] { display: none; }
.gp-strip-prev { left: 10px; }
.gp-strip-next { right: 10px; }
@media (hover: hover) and (pointer: fine) {
  .gp-strip-nav:hover { background: var(--gold); transform: translateY(-50%) scale(1.06); }
}
.gp-strip-nav:focus-visible { outline: 3px solid var(--gold-bright, var(--gold)); outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) {
  .gp-strip-nav, .gp-strip-nav:hover { transition: none; transform: translateY(-50%); }
}
@media (max-width: 640px) {
  .gp-strip-nav { width: 46px; height: 46px; font-size: 32px; }
  .gp-strip-prev { left: 6px; }
  .gp-strip-next { right: 6px; }
}
.gp-strip-item { flex: 0 0 min(78vw, 440px); margin: 0; scroll-snap-align: start; min-width: 0; }
.gp-strip-btn {
  display: block; width: 100%; aspect-ratio: 3 / 2; padding: 0; border: 2px solid var(--gold-border, var(--gold));
  background: var(--parchment-deep); cursor: zoom-in; overflow: hidden;
  transition: transform 200ms var(--ease-refined), box-shadow 200ms var(--ease-refined);
}
.gp-strip-btn .image-frame { height: 100%; }
.gp-strip-btn .image-fallback { font-size: 22px; }
@media (hover: hover) and (pointer: fine) {
  .gp-strip-btn:hover { transform: translateY(-3px); box-shadow: 0 14px 28px rgba(65, 42, 8, 0.18); }
}
.gp-venue-body { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 20px 56px; margin-top: 24px; align-items: start; }
.gp-venue-facts { grid-column: 1 / -1; font-family: var(--serif); font-size: 23px; color: var(--burgundy); font-weight: 500; }
.gp-amenities { columns: 2; column-gap: 40px; }
.gp-venue-note { font-size: 18px; line-height: 1.6; color: var(--ink-soft); }
.gp-venue-note a { color: var(--gold); text-decoration: underline; text-underline-offset: 4px; font-weight: 500; }

.gp-lightbox { border: 0; padding: 0; margin: 0; background: transparent; width: 100vw; height: 100vh; max-width: 100vw; max-height: 100vh; }
.gp-lightbox::backdrop { background: var(--gp-veil); }
.gp-lb-figure { position: absolute; inset: 0; margin: 0; display: grid; place-items: center; padding: 72px 72px 60px; }
.gp-lb-figure img { max-width: 100%; max-height: 100%; object-fit: contain; border: 2px solid var(--gold-border, var(--gold)); background: var(--burgundy-deep); }
.gp-lb-figure figcaption { position: absolute; left: 0; right: 0; bottom: 18px; text-align: center; color: var(--parchment); font-size: 17px; letter-spacing: 0.12em; font-variant-numeric: lining-nums tabular-nums; }
.gp-lb-close, .gp-lb-nav {
  position: absolute; z-index: 2; min-width: 52px; min-height: 52px; border: 2px solid var(--gold-bright); border-radius: 3px;
  background: var(--gp-glass); color: var(--parchment); font-family: var(--serif); font-size: 34px; line-height: 1; cursor: pointer;
}
.gp-lb-close:hover, .gp-lb-nav:hover { background: var(--gold); }
.gp-lb-close { top: 14px; right: 14px; }
.gp-lb-nav { top: 50%; transform: translateY(-50%); }
.gp-lb-prev { left: 12px; }
.gp-lb-next { right: 12px; }

/* ---- itinerary ---- */
.gp-days { display: grid; gap: 44px; max-width: 880px; margin: 0 auto; }
.gp-day-head { display: flex; align-items: baseline; gap: 18px; flex-wrap: wrap; border-bottom: 2px solid var(--gold-border, var(--gold)); padding-bottom: 12px; margin-bottom: 6px; }
.gp-day-n { font-size: 17px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--gold); font-weight: 600; }
.gp-day-head h3 { font-family: var(--serif); font-size: 30px; font-weight: 500; color: var(--burgundy); line-height: 1.2; }
.gp-timeline { list-style: none; margin: 0; padding: 0; position: relative; }
.gp-timeline::before { content: ""; position: absolute; left: 150px; top: 10px; bottom: 10px; width: 1px; background: var(--hair-deep); }
.gp-tl-item { display: grid; grid-template-columns: 130px minmax(0, 1fr); gap: 18px 36px; padding: 16px 0; position: relative; }
.gp-tl-item::before { content: ""; position: absolute; left: 144px; top: 24px; width: 13px; height: 13px; border-radius: 50%; background: var(--gold); border: 2px solid var(--parchment); box-shadow: 0 0 0 1px var(--gold); }
.gp-kind-meal::before { background: var(--gold-bright); }
.gp-kind-worship::before { background: var(--burgundy); }
.gp-kind-free::before, .gp-kind-travel::before { background: var(--parchment); }
.gp-tl-time { font-family: var(--serif); font-size: 20px; color: var(--burgundy); font-variant-numeric: lining-nums tabular-nums; font-weight: 500; line-height: 1.35; }
.gp-tl-any { font-style: italic; color: var(--ink-faint); font-weight: 400; }
.gp-tl-title { font-size: 20px; font-weight: 600; color: var(--ink); line-height: 1.35; }
.gp-tl-meta { font-size: 18px; color: var(--ink-soft); margin-top: 4px; line-height: 1.5; }
.gp-tl-desc { font-size: 18px; color: var(--ink-soft); margin: 8px 0 0; line-height: 1.6; }
.gp-empty {
  font-size: 19px; color: var(--ink); line-height: 1.6; text-align: center;
  padding: 36px 24px; border: 1px dashed var(--hair-deep); max-width: 640px; margin: 0 auto;
}
.gp-empty::before { content: "✦"; display: block; color: var(--gold); font-style: normal; font-size: 18px; margin-bottom: 10px; }

/* ---- still to come ---- */
.gp-pending-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr)); gap: 28px 48px; max-width: 900px; margin: 8px auto 0; }
.gp-pending-item { border-top: 2px solid var(--gold-border, var(--gold)); padding-top: 18px; min-width: 0; }
.gp-pending-item h3 { font-family: var(--serif); font-size: 28px; font-weight: 500; color: var(--burgundy); line-height: 1.2; margin: 0 0 8px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; }
.gp-tbd { font-family: var(--sans); font-size: 17px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--gold); font-weight: 600; border: 1px solid var(--gold-border, var(--gold)); padding: 4px 10px; border-radius: 2px; }
.gp-pending-item p { font-size: 18px; line-height: 1.6; color: var(--ink); margin: 0; }
.page-gathering .gp-pending { border-top: 1px solid var(--hair); }
.page-gathering .gp-pending .section-eyebrow { margin-bottom: 4px; }

/* ---- speakers ---- */
.gp-speaker-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(230px, 100%), 1fr)); gap: 32px 28px; max-width: 1000px; margin: 28px auto 0; }
.gp-speaker { text-align: center; border-top: 2px solid var(--gold-border, var(--gold)); padding-top: 26px; min-width: 0; }
.gp-speaker-photo {
  position: relative; width: 132px; height: 132px; margin: 0 auto 16px; border-radius: 50%; overflow: hidden;
  background: var(--parchment-deep); border: 2px solid var(--gold-border, var(--gold)); display: grid; place-items: center;
}
.gp-speaker-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.gp-monogram { font-family: var(--serif); font-size: 44px; color: var(--gold); font-weight: 500; letter-spacing: 0.02em; }
.gp-speaker-name { font-family: var(--serif); font-size: 26px; font-weight: 500; color: var(--ink); line-height: 1.2; }
.gp-speaker-title { font-size: 17px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink-faint); margin-top: 8px; font-weight: 500; line-height: 1.5; }
.gp-speaker-bio { font-size: 18px; line-height: 1.6; color: var(--ink-soft); margin: 12px 0 0; text-align: left; }

/* ---- your hosts ---- */
.gp-hosts .gp-speaker-grid { grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr)); max-width: 900px; }
.gp-hosts .gp-speaker { border-top-color: var(--burgundy); }

/* ---- ways to attend ---- */
.gp-options { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr)); gap: 24px; max-width: 1000px; margin: 0 auto; }
.gp-option {
  border: 2px solid var(--gold-border, var(--gold)); padding: 32px 28px; background: var(--parchment);
  display: flex; flex-direction: column; gap: 12px; min-width: 0;
  transition: transform 200ms var(--ease-refined), box-shadow 200ms var(--ease-refined);
}
@media (hover: hover) and (pointer: fine) {
  .gp-option:hover { transform: translateY(-3px); box-shadow: 0 16px 32px rgba(65, 42, 8, 0.14); }
}
.gp-option-name { font-family: var(--serif); font-size: 26px; font-weight: 500; color: var(--burgundy); line-height: 1.2; }
.gp-option-price { font-family: var(--serif); font-size: 46px; font-weight: 600; color: var(--burgundy); line-height: 1; margin-top: 4px; }
.gp-option-price span { font-family: var(--sans); font-size: 18px; font-weight: 500; color: var(--ink-soft); margin-left: 6px; }
.gp-option-early { font-size: 17px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--gold); font-weight: 600; line-height: 1.5; }
.gp-option-featured .gp-option-early { color: var(--gold-bright); }
.gp-option-desc { font-size: 18px; line-height: 1.6; color: var(--ink-soft); margin: 0; }
.gp-option-meta { font-size: 17px; color: var(--ink-soft); letter-spacing: 0.02em; line-height: 1.5; }
.gp-option .btn-primary { margin-top: auto; text-align: center; }
.gp-define { font-size: 17px; color: var(--gold); text-decoration: underline; text-underline-offset: 4px; align-self: flex-start; }
.gp-option-featured .gp-define { color: var(--gold-bright); }
.gp-glossary { max-width: 760px; margin: 36px auto 0; border-top: 1px solid var(--hair-deep); border-bottom: 1px solid var(--hair-deep); }
.gp-glossary summary { list-style: none; cursor: pointer; padding: 22px 36px 22px 0; font-size: 20px; font-weight: 500; position: relative; line-height: 1.5; }
.gp-glossary summary::-webkit-details-marker { display: none; }
.gp-glossary summary::after { content: '+'; position: absolute; right: 4px; top: 22px; color: var(--gold); font-size: 23px; }
.gp-glossary[open] summary::after { content: '–'; }
.gp-glossary-list { margin: 0 0 8px; padding: 0; }
.gp-glossary-term { padding: 14px 12px; margin: 0 -12px; border-radius: 8px; transition: background 0.4s ease; }
.gp-glossary-term.is-lit { background: rgba(200, 160, 84, 0.18); }
.gp-glossary dt { font-size: 18px; font-weight: 600; color: var(--ink); margin: 0 0 4px; }
.gp-glossary dd { font-size: 18px; line-height: 1.65; color: var(--ink-soft); margin: 0; max-width: 66ch; }
.gp-option-featured { background: var(--burgundy); color: var(--parchment); }
.gp-option-featured .gp-option-name, .gp-option-featured .gp-option-price { color: var(--parchment); }
.gp-option-featured .gp-option-price { color: var(--gold-bright); }
.gp-option-featured .gp-option-price span, .gp-option-featured .gp-option-desc, .gp-option-featured .gp-option-meta { color: var(--gp-hero-soft); }
.gp-attend-note { max-width: 760px; margin: -8px auto 36px; text-align: center; font-size: 18px; line-height: 1.6; color: var(--burgundy); padding: 14px 22px; border: 1px solid var(--gold-border, var(--gold)); background: var(--parchment-deep); }
.gp-sponsor { max-width: 760px; margin: 44px auto 0; padding: 28px 30px; border: 1px solid var(--gold-border, var(--gold)); background: var(--parchment-deep); }
.gp-sponsor h3 { font-family: var(--serif); font-size: 26px; font-weight: 500; color: var(--burgundy); margin-bottom: 10px; }
.gp-sponsor p { font-size: 18px; line-height: 1.6; color: var(--ink-soft); margin-bottom: 20px; max-width: 62ch; }
.gp-refund { max-width: 760px; margin: 28px auto 0; font-size: 18px; line-height: 1.6; color: var(--ink-soft); text-align: center; }
.gp-refund a { color: var(--burgundy); font-weight: 600; }
.gp-included { max-width: 760px; margin: 44px auto 0; border-top: 1px solid var(--hair-deep); padding-top: 28px; }
.gp-included h3 { font-family: var(--serif); font-size: 26px; font-weight: 500; color: var(--burgundy); margin-bottom: 16px; }
.gp-included .gp-list { columns: 2; column-gap: 40px; }
.gp-notice { max-width: 760px; margin: 0 auto; text-align: center; }
.gp-notice a { color: var(--gold); text-decoration: underline; text-underline-offset: 4px; }

/* ---- questions ---- */
.gp-faq-list { max-width: 760px; margin: 0 auto; }
.gp-faq-list .faq-item summary { font-weight: 600; color: var(--ink); }
.gp-faq-list .faq-answer p { margin: 0 0 12px; font-size: 18px; line-height: 1.7; color: var(--ink-soft); max-width: 66ch; }
.gp-more { text-align: center; margin: 28px auto 0; font-size: 18px; line-height: 1.6; max-width: 640px; }
.gp-more a { color: var(--gold); text-decoration: underline; text-underline-offset: 5px; font-weight: 500; }
.gp-more a:hover { color: var(--ink); }

/* ---- voices ---- */
.gp-quotes { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr)); gap: 28px 32px; }
.gp-quote { margin: 0; border-top: 2px solid var(--gold-border, var(--gold)); padding-top: 24px; min-width: 0; }
.gp-quote blockquote { margin: 0 0 18px; font-family: var(--serif); font-style: italic; font-weight: 500; font-size: 23px; line-height: 1.5; color: var(--ink); }
.gp-quote blockquote::before { content: "\201C"; color: var(--gold); font-size: 40px; line-height: 0; vertical-align: -14px; margin-right: 4px; }
.gp-quote-more { font-family: var(--sans); font-style: normal; font-size: 17px; color: var(--gold); text-decoration: underline; text-underline-offset: 4px; white-space: nowrap; }
.gp-quote figcaption { font-size: 17px; color: var(--ink-soft); letter-spacing: 0.02em; line-height: 1.5; }
.gp-quote figcaption b { font-family: var(--serif); font-size: 20px; color: var(--ink); font-weight: 500; margin-right: 6px; }

/* ---- the sticky reserve bar: a phone thing; the desktop nav keeps Book Now ---- */
@media (min-width: 901px) { .gp-bar { display: none; } }
.gp-bar .reserve-bar-inner { padding: 12px 20px; }
.gp-bar .reserve-bar-btn { flex: 1; text-align: center; white-space: normal; line-height: 1.3; }

/* ---- responsive ---- */
@media (max-width: 900px) {
  .gp-about-grid { grid-template-columns: minmax(0, 1fr); gap: 36px; }
  .gp-venue-body { grid-template-columns: minmax(0, 1fr); }
  .gp-amenities, .gp-included .gp-list { columns: 1; }
  .gp-lb-figure { padding: 72px 12px 60px; }
}
@media (max-width: 600px) {
  .gp-hero { min-height: min(84svh, 720px); }
  .gp-hero-scrim { background: linear-gradient(to bottom, var(--gp-scrim-top) 0%, var(--gp-scrim-mid) 22%, var(--gp-scrim-bottom) 60%); }
  .gp-hero-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gp-hero-body { padding: 96px 24px 36px; }
  .gp-hero-title { font-size: 46px; }
  .gp-hero-tagline { font-size: 21px; }
  .gp-hero-facts { gap: 16px 28px; padding-top: 20px; margin-bottom: 26px; }
  .gp-fact-n { font-size: 32px; }
  .gp-hero-actions .btn-primary { width: 100%; text-align: center; }
  .page-gathering .gp-details { padding-top: 20px; }
  .gp-facts { grid-template-columns: minmax(0, 1fr); }
  .gp-fact-card { padding: 14px 0 12px; border-bottom: 1px solid var(--hair); }
  .gp-fact-card:last-child { border-bottom: 0; }
  .gp-fact-card .detail-card-label { margin-bottom: 4px; }
  .gp-fact-value { font-size: 22px; }
  .gp-strip-item { flex-basis: 82vw; }
  .gp-timeline::before { left: 5px; }
  .gp-tl-item { grid-template-columns: minmax(0, 1fr); gap: 4px; padding-left: 26px; }
  .gp-tl-item::before { left: 0; top: 22px; }
  .gp-day-head h3 { font-size: 26px; }
  .gp-speaker-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 16px; }
  .gp-speaker { padding-top: 20px; }
  .gp-speaker-photo { width: 96px; height: 96px; }
  .gp-monogram { font-size: 34px; }
  .gp-speaker-name { font-size: 22px; }
  .gp-option { padding: 26px 20px; }
  .gp-option-price { font-size: 40px; }
  .gp-lb-close { top: 10px; right: 10px; }
  .gp-lb-figure { padding: 70px 8px 56px; }
}
@media (prefers-reduced-motion: reduce) {
  .gp-strip-btn, .gp-option { transition: none; }
  .gp-strip-btn:hover, .gp-option:hover { transform: none; }
}
@media print {
  .gp-bar, .gp-hero-video, .gp-hero-yt, .gp-lightbox, .gp-hero-scrim { display: none !important; }
  .gp-hero { min-height: 0; color: var(--ink); background: none; }
  .gp-hero-media { position: static; }
  .gp-hero-img { position: static; height: 240px; }
  .gp-hero-title, .gp-hero-tagline, .gp-fact-l, .gp-hero-link { color: var(--ink); }
}

/* ------------------------------------------------------------- premium finish
   Jordan, 2026-09-21: every box on the page gets a tiny radius, real depth and a lift
   on hover. Shadows are ink-tinted (not grey) so they sit on the parchment; the
   featured card's shadow is burgundy-tinted. Motion is off under reduced-motion. */
.gp-root { --gp-lift: 0 1px 1px rgba(32, 31, 27, 0.05), 0 2px 6px rgba(32, 31, 27, 0.06), 0 12px 28px rgba(32, 31, 27, 0.09);
           --gp-lift-hover: 0 2px 3px rgba(32, 31, 27, 0.07), 0 10px 22px rgba(32, 31, 27, 0.10), 0 28px 56px rgba(32, 31, 27, 0.16); }
.gp-option, .gp-sponsor, .gp-attend-note, .gp-strip-btn, .gp-quote, .gp-pending-item, .gp-speaker, .gp-included, .gp-lb-figure img { border-radius: 4px; }
.gp-option { border: 1px solid var(--hair-deep); border-top: 3px solid var(--gold-border, var(--gold)); box-shadow: var(--gp-lift), inset 0 1px 0 rgba(255, 255, 255, 0.55); }
.gp-option-featured { border-color: var(--burgundy-deep, var(--burgundy)); border-top-color: var(--gold-bright); box-shadow: 0 2px 6px rgba(65, 20, 32, 0.24), 0 14px 32px rgba(65, 20, 32, 0.28), inset 0 1px 0 rgba(255, 255, 255, 0.12); }
.gp-sponsor, .gp-attend-note { box-shadow: var(--gp-lift), inset 0 1px 0 rgba(255, 255, 255, 0.55); transition: transform 200ms var(--ease-refined), box-shadow 200ms var(--ease-refined); }
.gp-strip-btn { border: 1px solid var(--hair-deep); box-shadow: var(--gp-lift); }
.gp-quote, .gp-pending-item, .gp-speaker { background: var(--parchment); border: 1px solid var(--hair-deep); border-top: 2px solid var(--gold-border, var(--gold)); padding: 24px 24px 22px; box-shadow: var(--gp-lift); transition: transform 200ms var(--ease-refined), box-shadow 200ms var(--ease-refined); }
.gp-speaker { padding-top: 26px; }
.gp-included { background: var(--parchment); border: 1px solid var(--hair-deep); padding: 28px 30px; box-shadow: var(--gp-lift); }
.btn-primary.gp-cta { border-radius: var(--radius-pill, 999px); box-shadow: 0 2px 6px rgba(65, 20, 32, 0.18), 0 8px 18px rgba(65, 20, 32, 0.16); transition: transform 160ms var(--ease-refined), box-shadow 160ms var(--ease-refined), background-color 160ms, border-color 160ms, color 160ms; }
@media (hover: hover) and (pointer: fine) {
  .gp-option:hover { transform: translateY(-5px); box-shadow: var(--gp-lift-hover), inset 0 1px 0 rgba(255, 255, 255, 0.55); }
  .gp-option-featured:hover { box-shadow: 0 4px 10px rgba(65, 20, 32, 0.28), 0 30px 60px rgba(65, 20, 32, 0.34), inset 0 1px 0 rgba(255, 255, 255, 0.12); }
  .gp-sponsor:hover, .gp-attend-note:hover, .gp-strip-btn:hover, .gp-quote:hover, .gp-pending-item:hover, .gp-speaker:hover { transform: translateY(-4px); box-shadow: var(--gp-lift-hover); }
  .btn-primary.gp-cta:hover { transform: translateY(-2px); box-shadow: 0 4px 10px rgba(65, 20, 32, 0.22), 0 14px 28px rgba(65, 20, 32, 0.22); }
}
@media (prefers-reduced-motion: reduce) {
  .gp-option:hover, .gp-sponsor:hover, .gp-attend-note:hover, .gp-strip-btn:hover, .gp-quote:hover, .gp-pending-item:hover, .gp-speaker:hover, .btn-primary.gp-cta:hover { transform: none; }
}

/* Sold out: the card stays, greyed, with the price struck and no button. */
.gp-option-gone { opacity: 0.72; }
.gp-option-gone .gp-option-price { text-decoration: line-through; text-decoration-color: var(--ink-faint); text-decoration-thickness: 2px; }
.gp-option-soldout { display: inline-block; vertical-align: middle; margin-left: 10px; padding: 4px 10px; border-radius: 3px; background: var(--ink-faint); color: var(--parchment); font-family: var(--sans); font-size: 17px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; text-decoration: none; }
.gp-option-closed { display: block; margin-top: auto; text-align: center; padding: 13px 22px; border: 2px solid var(--hair-deep); border-radius: 3px; color: var(--ink-faint); font-size: 18px; font-weight: 600; letter-spacing: 0.04em; }
.gp-option-gone:hover { transform: none; box-shadow: var(--gp-lift), inset 0 1px 0 rgba(255, 255, 255, 0.55); }

/* Pay it forward: centred, gold, and meant to catch the eye. */
.gp-sponsor { text-align: center; border: 2px solid var(--gold-border, var(--gold)); background: linear-gradient(180deg, rgba(200, 160, 84, 0.14), rgba(200, 160, 84, 0.03) 70%), var(--parchment); padding: 34px 30px 32px; }
.gp-sponsor h3 { color: var(--gold); font-size: 34px; font-weight: 600; letter-spacing: 0.01em; margin-bottom: 12px; }
.gp-sponsor p { margin: 0 auto 22px; }
.gp-sponsor .btn-primary { display: inline-block; }

/* Buttons: ink-tinted depth on parchment; gold on the burgundy featured card so the colours do not fight. */
.btn-primary.gp-cta { box-shadow: 0 1px 2px rgba(32, 31, 27, 0.10), 0 6px 14px rgba(32, 31, 27, 0.14); }
.gp-option-featured .btn-primary.gp-cta { background: var(--gold-bright); border-color: var(--gold-bright); color: var(--burgundy-deep, var(--burgundy)); box-shadow: 0 1px 2px rgba(0, 0, 0, 0.18), 0 8px 18px rgba(0, 0, 0, 0.24); }
@media (hover: hover) and (pointer: fine) {
  .btn-primary.gp-cta:hover { box-shadow: 0 2px 4px rgba(32, 31, 27, 0.12), 0 12px 24px rgba(32, 31, 27, 0.18); }
  .gp-option-featured .btn-primary.gp-cta:hover { background: var(--parchment); border-color: var(--parchment); color: var(--burgundy); }
}

/* ------------------------------------------------- second polish (Jordan, 2026-09-22)
   Four things he asked for, looking at the tier cards: every card the same colour
   (the first was burgundy and read as a different product), the "What do these
   labels mean?" link and the button on the same line across all cards, rounder
   corners on cards and buttons alike, and softer shading — fewer hard edges and
   colour shifts. Radius and shadow are tokens so the whole page moves together. */
.gp-root {
  --gp-radius: var(--radius-card, 20px);
  --gp-radius-inner: var(--radius-inner, 14px);
  --gp-edge: rgba(91, 72, 36, 0.18);
  --gp-lift: 0 1px 2px rgba(39, 37, 31, 0.04), 0 6px 16px rgba(39, 37, 31, 0.06), 0 18px 44px rgba(39, 37, 31, 0.07);
  --gp-lift-hover: 0 2px 4px rgba(39, 37, 31, 0.05), 0 12px 28px rgba(39, 37, 31, 0.09), 0 32px 70px rgba(39, 37, 31, 0.12);
}

/* One card, one colour. The featured treatment is gone: a tier is not a better
   product than the tier beside it, and the dark card made it look like one. */
.gp-option,
.gp-option-featured {
  background: linear-gradient(180deg, var(--parchment) 0%, var(--parchment-deep) 100%);
  color: var(--ink);
  border: 1px solid var(--gp-edge);
  border-radius: var(--gp-radius);
  box-shadow: var(--gp-lift);
}
.gp-option-featured .gp-option-name,
.gp-option-featured .gp-option-price { color: var(--burgundy); }
.gp-option-featured .gp-option-price span,
.gp-option-featured .gp-option-desc,
.gp-option-featured .gp-option-meta { color: var(--ink-soft); }
.gp-option-featured .gp-define { color: var(--gold); }
.gp-option-featured .gp-option-early { color: var(--gold); }

/* The description takes the slack, so the label link and the button land on the
   same line in every card no matter how long the description runs. */
.gp-option-desc { flex: 1 1 auto; }
.gp-option .gp-define { margin-top: 4px; }
.gp-option .btn-primary { margin-top: 10px; }

/* Buttons carry the card's radius and a gradient rather than a flat block, so the
   edge between button and card is a shade instead of a step. */
.gp-root .btn-primary,
.gp-root .btn-secondary,
.gp-option-closed {
  border-radius: var(--radius-pill, 999px);
}
.gp-root .btn-primary {
  background: linear-gradient(180deg, var(--burgundy) 0%, var(--burgundy-deep, #17150F) 100%);
  border: 1px solid rgba(39, 37, 31, 0.5);
  box-shadow: 0 1px 2px rgba(39, 37, 31, 0.10), 0 6px 14px rgba(39, 37, 31, 0.12);
}
.gp-option-featured .btn-primary.gp-cta {
  background: linear-gradient(180deg, var(--burgundy) 0%, var(--burgundy-deep, #17150F) 100%);
  border-color: rgba(39, 37, 31, 0.5);
  color: var(--parchment);
  box-shadow: 0 1px 2px rgba(39, 37, 31, 0.10), 0 6px 14px rgba(39, 37, 31, 0.12);
}
@media (hover: hover) and (pointer: fine) {
  .gp-root .btn-primary:hover,
  .gp-option-featured .btn-primary.gp-cta:hover {
    background: linear-gradient(180deg, var(--gold) 0%, #7E5412 100%);
    border-color: rgba(126, 84, 18, 0.55);
    color: var(--parchment);
    box-shadow: 0 2px 5px rgba(39, 37, 31, 0.12), 0 12px 26px rgba(39, 37, 31, 0.16);
  }
}

/* Every other box on the page takes the same radius and the same soft edge, so
   the page stops changing its mind from section to section. */
.gp-sponsor, .gp-attend-note, .gp-strip-btn, .gp-quote, .gp-pending-item,
.gp-speaker, .gp-included, .gp-lb-figure img, .gp-glossary-term {
  border-radius: var(--gp-radius);
}
.gp-strip-btn, .gp-quote, .gp-pending-item, .gp-speaker, .gp-included {
  border-color: var(--gp-edge);
  box-shadow: var(--gp-lift);
}
.gp-quote, .gp-pending-item, .gp-speaker {
  border-top-width: 1px;
  border-top-color: var(--gp-edge);
  background: linear-gradient(180deg, var(--parchment) 0%, var(--parchment-deep) 100%);
}
.gp-included { background: linear-gradient(180deg, var(--parchment) 0%, var(--parchment-deep) 100%); }
.gp-attend-note {
  border-color: var(--gp-edge);
  background: linear-gradient(180deg, var(--parchment-deep) 0%, var(--parchment) 100%);
  box-shadow: var(--gp-lift);
}
.gp-sponsor {
  border-color: rgba(156, 105, 24, 0.35);
  background: linear-gradient(180deg, rgba(213, 163, 72, 0.10) 0%, rgba(213, 163, 72, 0.02) 60%, var(--parchment) 100%);
  box-shadow: var(--gp-lift);
}
.gp-glossary { border-radius: var(--gp-radius); border: 1px solid var(--gp-edge); padding: 0 24px; background: var(--parchment); }
@media (hover: hover) and (pointer: fine) {
  .gp-option:hover, .gp-option-featured:hover {
    box-shadow: var(--gp-lift-hover);
    transform: translateY(-4px);
  }
}

/* --------------------------------------- a wider desktop page (Jordan, 2026-09-22)
   The gathering page uses the width of a large screen: more room for the tier
   cards, the photo strip and the house facts. Running prose keeps its own
   measure (about 66 characters) so the lines stay readable however wide the
   window gets, and nothing changes below 1100px. */
.page-gathering .section { max-width: 1360px; }
.page-gathering .gp-hero-body { max-width: 1360px; }
.gp-options { max-width: 1280px; }
.gp-included, .gp-sponsor, .gp-attend-note, .gp-glossary { max-width: 900px; }
.gp-about-grid { gap: 40px 88px; }
.gp-strip-item { flex: 0 0 min(78vw, 520px); }
@media (min-width: 1500px) {
  .gp-strip-item { flex: 0 0 560px; }
}
@media (max-width: 1100px) {
  .page-gathering .section, .page-gathering .gp-hero-body,
  .gp-options, .gp-included, .gp-sponsor, .gp-attend-note, .gp-glossary { max-width: var(--max); }
}
/* Bold inside running prose reads as emphasis, not as a heading. */
.gp-prose strong, .gp-arrival strong { font-weight: 600; color: var(--burgundy); }

/* Cedar Rose: day passes first, then overnight choices. */
.gp-attend-group { max-width: 1280px; margin: 0 auto; }
.gp-attend-group-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 16px 32px; margin-bottom: 24px; }
.gp-attend-group-head h3 { font-family: var(--serif); font-size: 32px; font-weight: 500; line-height: 1.2; color: var(--burgundy); margin: 0 0 8px; }
.gp-attend-group-head p { font-size: 18px; line-height: 1.6; color: var(--ink-soft); margin: 0; max-width: 60ch; }
.gp-attend-group-head .gp-define { display: inline-flex; align-items: center; min-height: 44px; align-self: flex-end; }
.gp-options-lodging { grid-template-columns: minmax(0, 1fr); }
.gp-attend-cedar .gp-option { padding: 24px; gap: 16px; }
.gp-attend-cedar .gp-option-name { margin: 0; text-wrap: balance; }
.gp-attend-cedar .gp-option-price { margin: 0; }
.gp-attend-cedar .gp-option-price span { display: block; margin: 8px 0 0; line-height: 1.4; }
.gp-attend-cedar .gp-option-meta { border-top: 1px solid var(--gp-edge); padding-top: 16px; }
.gp-attend-cedar .gp-option .btn-primary { margin-top: 8px; }
.gp-option-details { font-size: 18px; line-height: 1.6; color: var(--ink-soft); }
.gp-option-details summary { min-height: 44px; padding: 8px 0; color: var(--gold); cursor: pointer; font-size: 17px; text-decoration: underline; text-underline-offset: 4px; }
.gp-option-details p { margin: 12px 0 0; }
.gp-option-details summary:focus-visible { outline: 2px solid var(--gold); outline-offset: 4px; border-radius: 2px; }
.gp-stay { margin-top: 48px; padding-top: 32px; border-top: 1px solid var(--hair-deep); }
.gp-options-day { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 700px) {
  .gp-options-lodging { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gp-options-lodging .gp-option-name { min-height: 2.4em; }
  .gp-options-lodging .gp-option-meta { min-height: calc(3em + 17px); }
  .gp-attend-cedar .gp-option-day { display: grid; grid-template-columns: minmax(0, 1fr) minmax(220px, 0.45fr); column-gap: 48px; align-items: start; }
  .gp-option-day .gp-option-name { grid-column: 1; grid-row: 1; }
  .gp-option-day .gp-option-price { grid-column: 2; grid-row: 1 / span 2; }
  .gp-option-day .gp-option-desc { grid-column: 1; grid-row: 2; max-width: 60ch; }
  .gp-attend-cedar .gp-option-day .gp-option-meta { grid-column: 1; grid-row: 3; border: 0; padding: 0; }
  .gp-option-day .gp-option-early { grid-column: 2; }
  .gp-option-day .gp-cta, .gp-option-day .gp-option-closed { grid-column: 2; grid-row: 3; }
  .gp-attend-cedar .gp-option-day .btn-primary { margin-top: 0; }
}
@media (min-width: 1200px) {
  .gp-options-lodging { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* ---- how many are left ---- */
.gp-option-left {
  font-size: 17px; font-weight: 600; letter-spacing: 0.01em;
  color: var(--ink-soft, #4a4036); margin: 6px 0 0;
}
.gp-option-left.is-few { color: var(--burgundy, #5C1F2E); }

/* Pay it forward (149, 155): two buttons side by side. "Sponsor a bed" opens the beds
   still on sale, each its own gift checkout; "Join the waitlist" opens the form. */
.gp-sponsor-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; }
.gp-sponsor-actions .btn-primary, .gp-sponsor-actions .btn-secondary { min-height: 56px; cursor: pointer; }
.gp-sponsor-actions .btn-secondary { background: var(--parchment); }
.gp-sponsor-actions .btn-secondary[aria-expanded="true"] { background: var(--burgundy); color: var(--parchment); }
@media (max-width: 600px) { .gp-sponsor-actions .btn-primary, .gp-sponsor-actions .btn-secondary { flex: 1 1 100%; text-align: center; } }
.gp-sponsor-beds, .gp-sponsor-ask { margin: 24px auto 0; max-width: 560px; text-align: left; border-top: 1px solid var(--hair-deep); padding-top: 20px; }
.gp-sponsor-beds[hidden], .gp-sponsor-ask[hidden] { display: none; }
.gp-sponsor .gp-sponsor-beds p { text-align: center; margin: 0 auto 16px; }
.gp-sponsor-beds ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.gp-sponsor-beds a { display: flex; align-items: center; gap: 14px; min-height: 60px; padding: 12px 18px; border: 2px solid var(--hair-deep); border-radius: 4px; background: var(--parchment); color: var(--ink); text-decoration: none; font-size: 20px; line-height: 1.35; }
.gp-sponsor-beds a:hover, .gp-sponsor-beds a:focus-visible { border-color: var(--gold); outline: none; box-shadow: 0 0 0 4px rgba(156, 105, 24, 0.15); }
.gp-sponsor-bed { flex: 1 1 auto; font-weight: 600; }
.gp-sponsor-price { font-family: var(--serif); font-size: 22px; font-weight: 600; color: var(--burgundy); white-space: nowrap; }
.sponsor-form { margin-top: 16px; display: grid; gap: 14px; }
.sponsor-form p { margin: 0; font-size: 18px; line-height: 1.6; color: var(--ink-soft); max-width: none; }
.sponsor-form .sponsor-promise { padding: 14px 16px; border-left: 3px solid var(--gold); background: var(--parchment); color: var(--ink); }
.sponsor-form label { display: grid; gap: 6px; font-size: 17px; font-weight: 600; color: var(--ink); }
.sponsor-form input, .sponsor-form textarea { width: 100%; box-sizing: border-box; min-height: 52px; padding: 12px 16px; font-size: 18px; font-family: var(--sans); color: var(--ink); background: var(--parchment); border: 2px solid var(--hair-deep); border-radius: 2px; }
.sponsor-form textarea { min-height: 96px; resize: vertical; }
.sponsor-form input:focus, .sponsor-form textarea:focus { outline: none; border-color: var(--gold); box-shadow: 0 0 0 4px rgba(156, 105, 24, 0.15); }
.sponsor-form .btn-primary { justify-self: center; min-height: 52px; cursor: pointer; }
.sponsor-form .btn-primary[disabled] { opacity: 0.6; cursor: default; }

/* Rounder corners (Jordan, 2026-10-10): the same three radii as the rest of the site (styles.css :root). */
.gp-sponsor-beds a { border-radius: var(--radius-inner, 14px); }
.sponsor-form input, .sponsor-form textarea { border-radius: var(--radius-field, 12px); }
.gp-closed-pill, .gp-tbd { border-radius: var(--radius-pill, 999px); }
.gp-lb-figure img { border-radius: var(--radius-inner, 14px); }
