:root {
  --ink: #171612;
  --paper: #f3efe5;
  --cream: #e8e0cf;
  --red: #9f2c25;
  --red-dark: #74201b;
  --muted: #6b685f;
  --line: rgba(23, 22, 18, 0.18);
  --white: #fffdf8;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: "DM Sans", sans-serif;
  color: var(--ink);
  background: var(--paper);
  line-height: 1.55;
}
a { color: inherit; text-decoration: none; }

.site-header {
  position: sticky;
  top: 0;
  z-index: 20;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 2rem;
  padding: 1rem clamp(1.25rem, 5vw, 5rem);
  border-bottom: 1px solid var(--line);
  background: rgba(243, 239, 229, 0.92);
  backdrop-filter: blur(14px);
}
.brand { display: inline-flex; align-items: center; gap: .75rem; font-weight: 700; letter-spacing: -.02em; }
.brand-mark {
  display: grid;
  place-items: center;
  width: 2rem;
  aspect-ratio: 1;
  border-radius: 50%;
  color: var(--paper);
  background: var(--ink);
  font-family: "Playfair Display", serif;
}
.nav { display: flex; align-items: center; gap: 1.5rem; font-size: .95rem; }
.nav a:hover { opacity: .65; }
.nav-cta { padding: .65rem 1rem; border: 1px solid var(--ink); border-radius: 999px; }

.section-pad { padding: clamp(4rem, 8vw, 8rem) clamp(1.25rem, 5vw, 5rem); }
.section-pad-topless { padding: 0 clamp(1.25rem, 5vw, 5rem) clamp(4rem, 8vw, 8rem); }
.eyebrow {
  margin: 0 0 1rem;
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--red);
}

.hero {
  min-height: 82vh;
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr);
  align-items: center;
  gap: clamp(3rem, 7vw, 8rem);
}
.hero h1, .intro h2, .how h2, .contact h2 {
  margin: 0;
  font-family: "Playfair Display", serif;
  font-weight: 600;
  line-height: .98;
  letter-spacing: -.045em;
}
.hero h1 { font-size: clamp(4rem, 8vw, 8rem); }
.hero h1 em { color: var(--red); font-weight: 600; }
.hero-text { max-width: 42rem; margin: 2rem 0; font-size: clamp(1.05rem, 2vw, 1.3rem); color: var(--muted); }
.hero-actions { display: flex; align-items: center; gap: 1.25rem; flex-wrap: wrap; }
.button {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  min-height: 3.1rem;
  padding: .85rem 1.35rem;
  border: 0;
  border-radius: 4px;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}
.button-primary { color: var(--white); background: var(--red); }
.button-primary:hover { background: var(--red-dark); }
.text-link { font-weight: 600; }
.hero-meta { display: flex; gap: 2rem; margin-top: 3rem; padding-top: 1.5rem; border-top: 1px solid var(--line); }
.hero-meta div { display: grid; gap: .15rem; }
.hero-meta strong { font-size: 1.05rem; }
.hero-meta span { font-size: .78rem; color: var(--muted); }

.hero-card {
  position: relative;
  min-height: 31rem;
  padding: 2rem;
  overflow: hidden;
  color: var(--paper);
  background: var(--ink);
  box-shadow: 0 30px 70px rgba(23,22,18,.16);
  transform: rotate(1.2deg);
}
.hero-card::after {
  content: "";
  position: absolute;
  right: -5rem;
  bottom: -6rem;
  width: 17rem;
  aspect-ratio: 1;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 50%;
  box-shadow: 0 0 0 2rem rgba(255,255,255,.03), 0 0 0 5rem rgba(255,255,255,.025);
}
.case-topline { display: flex; justify-content: space-between; font-size: .72rem; letter-spacing: .13em; }
.case-status { color: #ef8e85; }
.case-seal { display: grid; place-items: center; width: 5rem; aspect-ratio:1; margin: 4rem 0 2rem; border: 1px solid rgba(255,255,255,.55); border-radius:50%; font: 600 3rem/1 "Playfair Display", serif; }
.case-kicker { margin: 0; color: #c8c0af; font-size: .8rem; text-transform: uppercase; letter-spacing: .13em; }
.hero-card h2 { margin: .5rem 0 1.5rem; font: 600 clamp(2.5rem, 4vw, 4.6rem)/.98 "Playfair Display", serif; letter-spacing: -.035em; }
.case-clues { display:flex; gap:.55rem; flex-wrap:wrap; }
.case-clues span { padding:.4rem .65rem; border:1px solid rgba(255,255,255,.25); border-radius:999px; font-size:.75rem; }
.case-footer { position:absolute; left:2rem; bottom:1.75rem; font-size:.78rem; color:#aaa395; }

.trust-strip { display:flex; justify-content:center; gap:1.2rem; flex-wrap:wrap; padding:1rem 1.25rem; color:var(--paper); background:var(--red); font-size:.72rem; font-weight:700; letter-spacing:.12em; }
.intro { display:grid; grid-template-columns:1.25fr .75fr; gap:4rem; align-items:end; }
.intro h2, .how h2, .contact h2 { font-size:clamp(2.8rem,5vw,5.5rem); }
.intro > p { margin:0; max-width:34rem; color:var(--muted); font-size:1.1rem; }

.event-grid { display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line); }
.event-card { min-height:34rem; display:grid; align-content:space-between; padding:clamp(2rem,4vw,4rem); background:var(--white); }
.event-card.private { background:#ded4c1; }
.event-number { font:600 4rem/1 "Playfair Display",serif; opacity:.14; }
.event-card h3 { margin:.25rem 0 1rem; max-width:18ch; font:600 clamp(2rem,3.2vw,3.3rem)/1.03 "Playfair Display",serif; letter-spacing:-.03em; }
.event-card p { max-width:38rem; color:var(--muted); }
.event-card ul { padding-left:1.2rem; }
.event-card li { margin:.45rem 0; }

.how { color:var(--paper); background:var(--ink); }
.how .eyebrow { color:#d56d64; }
.how-heading { display:grid; grid-template-columns:.55fr 1.45fr; gap:2rem; align-items:start; }
.steps { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; margin-top:5rem; background:rgba(255,255,255,.14); }
.steps article { min-height:17rem; padding:1.5rem; background:var(--ink); }
.steps span { color:#d56d64; font-size:.75rem; font-weight:700; letter-spacing:.12em; }
.steps h3 { margin:4rem 0 .75rem; font:600 1.45rem/1.1 "Playfair Display",serif; }
.steps p { margin:0; color:#b9b2a4; font-size:.92rem; }

.quote-band { padding:clamp(4rem,8vw,7rem) clamp(1.25rem,8vw,9rem); text-align:center; background:var(--red); color:var(--white); }
.quote-band blockquote { max-width:1000px; margin:0 auto 1rem; font:600 clamp(2.2rem,4.8vw,5rem)/1.05 "Playfair Display",serif; letter-spacing:-.035em; }
.quote-band p { opacity:.8; }

.contact { display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(3rem,8vw,8rem); align-items:start; }
.contact > div > p:last-child { max-width:32rem; color:var(--muted); font-size:1.05rem; }
.contact-form { display:grid; grid-template-columns:1fr 1fr; gap:1rem; padding:clamp(1.5rem,3vw,3rem); background:var(--white); border:1px solid var(--line); }
.contact-form label { display:grid; gap:.45rem; }
.contact-form label span { font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; }
.contact-form input, .contact-form select, .contact-form textarea { width:100%; border:1px solid var(--line); border-radius:2px; background:#faf8f2; color:var(--ink); padding:.9rem 1rem; font:inherit; }
.contact-form textarea { resize:vertical; }
.full-width { grid-column:1/-1; }
.form-note { grid-column:1/-1; margin:0; color:var(--muted); font-size:.78rem; }

.footer { display:grid; grid-template-columns:1fr 1fr auto; gap:2rem; align-items:center; padding:2rem clamp(1.25rem,5vw,5rem); border-top:1px solid var(--line); font-size:.85rem; }
.footer p { margin:0; color:var(--muted); }

@media (max-width: 860px) {
  .nav a:not(.nav-cta) { display:none; }
  .hero, .intro, .contact, .how-heading { grid-template-columns:1fr; }
  .hero { min-height:auto; }
  .hero-card { max-width:34rem; width:100%; }
  .event-grid, .steps { grid-template-columns:1fr 1fr; }
  .footer { grid-template-columns:1fr; }
}

@media (max-width: 560px) {
  .site-header { padding-inline:1rem; }
  .brand > span:last-child { font-size:.9rem; }
  .hero h1 { font-size:clamp(3.45rem,18vw,5rem); }
  .hero-meta { gap:1rem; justify-content:space-between; }
  .event-grid, .steps, .contact-form { grid-template-columns:1fr; }
  .full-width { grid-column:auto; }
  .event-card { min-height:29rem; }
  .contact-form label, .form-note { grid-column:auto; }
}

/* FormSubmit helpers */
.form-honeypot {
  position: absolute !important;
  left: -9999px !important;
  width: 1px !important;
  height: 1px !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

.form-note {
  margin-top: 0.9rem;
  font-size: 0.9rem;
  opacity: 0.72;
}

