/* EventProCoach site styles */
:root{
  --paper:#F5EFE6;
  --paper-2:#EDE4D6;
  --ink:#211514;
  --ink-soft:#4B3B38;
  --muted:#6A5854;
  --maroon:#A4343A;
  --maroon-deep:#6E1F24;
  --gold:#C99A3E;
  --gold-light:#DBB059;
  --on-dark-soft:#E6DACB;
  --line:rgba(33,21,20,.18);
  --serif:'Fraunces', Georgia, 'Times New Roman', serif;
  --sans:'DM Sans', system-ui, -apple-system, 'Segoe UI', Arial, sans-serif;
  --wrap:1180px;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0; font-family:var(--sans); font-size:18px; line-height:1.65;
  color:var(--ink-soft); background:var(--paper);
}
img{ max-width:100%; height:auto; display:block; }
a{ color:var(--maroon); }
p{ margin:0 0 1.2em; }
h1,h2,h3{
  font-family:var(--serif); font-weight:500; color:var(--maroon-deep);
  line-height:1.12; letter-spacing:-.015em; margin:0 0 .5em; text-wrap:balance;
}
h1{ font-size:clamp(2.5rem,5.4vw,4.6rem); line-height:1.04; letter-spacing:-.02em; }
h2{ font-size:clamp(1.9rem,3.6vw,3rem); }
h3{ font-size:1.3rem; line-height:1.25; }

.wrap{ max-width:var(--wrap); margin:0 auto; padding:0 clamp(20px,4vw,40px); }
.section{ padding:clamp(64px,9vw,120px) 0; }
.section-tight{ padding:clamp(48px,6vw,80px) 0; }
.lede{ font-size:1.2rem; max-width:36em; }
.prose{ max-width:68ch; }
.muted{ color:var(--muted); }

:focus-visible{ outline:3px solid var(--ink); outline-offset:3px; }
.dark :focus-visible, .site-footer :focus-visible, .cta :focus-visible{ outline-color:var(--gold-light); }

.skip{
  position:absolute; left:-9999px; top:8px; background:var(--ink); color:var(--paper);
  padding:10px 16px; z-index:200;
}
.skip:focus{ left:8px; }
.sr-only{
  position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0);
  white-space:nowrap;
}

/* ---------- buttons and links ---------- */
.btn{
  display:inline-block; padding:15px 26px; font:inherit; font-weight:700; font-size:1rem;
  line-height:1.2; text-decoration:none; text-align:center; cursor:pointer;
  background:var(--maroon); color:var(--paper); border:2px solid var(--maroon); border-radius:2px;
  transition:background .15s ease, color .15s ease, border-color .15s ease;
}
.btn:hover{ background:var(--maroon-deep); border-color:var(--maroon-deep); }
.btn-small{ padding:10px 18px; font-size:.95rem; }
.btn-light{ background:var(--paper); color:var(--maroon-deep); border-color:var(--paper); }
.btn-light:hover{ background:var(--gold-light); border-color:var(--gold-light); color:var(--maroon-deep); }
.btn-ghost-light{ background:transparent; color:var(--paper); border-color:rgba(245,239,230,.7); }
.btn-ghost-light:hover{ background:rgba(245,239,230,.12); border-color:var(--paper); color:var(--paper); }
.link{
  color:inherit; font-weight:500; text-decoration:underline;
  text-underline-offset:4px; text-decoration-thickness:1px;
}
.link:hover{ text-decoration-thickness:2px; }
.actions{ display:flex; flex-wrap:wrap; gap:16px 28px; align-items:center; }

/* ---------- header ---------- */
.site-header{
  position:sticky; top:0; z-index:50; background:var(--paper);
  border-bottom:1px solid var(--line);
}
.bar{ display:flex; align-items:center; justify-content:space-between; min-height:72px; gap:16px; }
.brand{
  font-weight:700; font-size:1rem; letter-spacing:.14em; color:var(--maroon);
  text-decoration:none;
}
.site-nav ul{ list-style:none; margin:0; padding:0; display:flex; align-items:center; gap:30px; }
.site-nav a:not(.btn){
  color:var(--ink); text-decoration:none; font-weight:500; font-size:1rem;
  padding:6px 0; border-bottom:2px solid transparent;
}
.site-nav a:not(.btn):hover{ border-bottom-color:var(--gold); }
.site-nav a[aria-current="page"]:not(.btn){ border-bottom-color:var(--maroon); }
.nav-toggle{
  display:none; font:inherit; font-weight:700; font-size:.95rem; color:var(--maroon);
  background:transparent; border:2px solid var(--maroon); border-radius:2px; padding:8px 16px; cursor:pointer;
}

/* ---------- hero (home) ---------- */
.hero{
  display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  min-height:clamp(560px,86vh,860px); border-bottom:1px solid var(--line);
}
.hero-copy{
  display:flex; flex-direction:column; justify-content:center;
  padding:clamp(48px,8vw,104px) clamp(24px,5vw,72px) clamp(48px,8vw,104px) max(24px, calc((100vw - var(--wrap)) / 2 + 40px));
}
.hero h1{ max-width:12ch; margin-bottom:.4em; }
.hero-lede{ font-size:1.2rem; max-width:34em; margin:0 0 2rem; }
.hero-photo{ position:relative; min-height:420px; background:var(--maroon-deep); }
.hero-photo img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:45% 15%;
}
.hero-photo::after{
  content:""; position:absolute; inset:20px; border:1px solid rgba(219,176,89,.8); pointer-events:none;
}
@keyframes rise{ from{ opacity:0; transform:translateY(16px); } to{ opacity:1; transform:none; } }
@keyframes fade{ from{ opacity:0; } to{ opacity:1; } }
.hero-copy > *{ animation:rise .8s cubic-bezier(.2,.7,.2,1) both; }
.hero-copy > *:nth-child(2){ animation-delay:.1s; }
.hero-copy > *:nth-child(3){ animation-delay:.2s; }
.hero-photo img{ animation:fade 1.1s ease .15s both; }

/* ---------- proof row ---------- */
.proof{ background:var(--maroon-deep); color:var(--paper); }
.proof ul{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(3,1fr); }
.proof li{ padding:36px 32px; border-left:1px solid rgba(219,176,89,.4); }
.proof li:first-child{ border-left:0; padding-left:0; }
.proof strong{
  display:block; font-family:var(--serif); font-weight:500; font-size:1.35rem; line-height:1.25;
  color:var(--paper); margin-bottom:6px;
}
.proof span{ color:var(--on-dark-soft); font-size:.98rem; line-height:1.5; display:block; }

/* ---------- gap table ---------- */
.gap-table{ width:100%; border-collapse:collapse; margin-top:40px; }
.gap-table th, .gap-table td{
  text-align:left; vertical-align:top; padding:28px 32px 28px 0; border-top:1px solid var(--line);
}
.gap-table thead th{
  font-weight:700; font-size:.95rem; color:var(--maroon); padding-bottom:14px; border-top:0;
}
.gap-table tbody th{
  font-family:var(--serif); font-weight:500; font-size:1.4rem; color:var(--maroon-deep); width:22%;
}
.gap-table tbody tr:last-child > *{ border-bottom:1px solid var(--line); }

/* ---------- dark sections ---------- */
.dark{ background:var(--maroon-deep); color:var(--paper); }
.dark h1,.dark h2,.dark h3{ color:var(--paper); }
.dark p{ color:var(--on-dark-soft); }
.dark .link{ color:var(--gold-light); }
.split{
  display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  gap:clamp(32px,6vw,88px); align-items:start;
}
.incl{ list-style:none; margin:0; padding:0; border-top:1px solid rgba(245,239,230,.25); }
.incl li{ padding:16px 0; border-bottom:1px solid rgba(245,239,230,.25); color:var(--paper); }
.price-note{ margin:32px 0; padding-left:20px; border-left:2px solid var(--gold-light); }
.price-note p{ margin:0 0 .6em; color:var(--paper); }

/* ---------- gallery ---------- */
.gallery{
  display:grid; grid-template-columns:1.7fr 1fr; grid-template-rows:repeat(2,clamp(180px,22vw,290px)); gap:16px;
}
.gallery figure{ margin:0; overflow:hidden; background:var(--paper-2); }
.gallery img{ width:100%; height:100%; object-fit:cover; }
.gallery .tall{ grid-row:1 / span 2; }
.gallery-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.gallery-grid figure{ margin:0; aspect-ratio:3/2; overflow:hidden; background:var(--paper-2); }
.gallery-grid img{ width:100%; height:100%; object-fit:cover; }
.caption{ font-size:.92rem; color:var(--muted); margin:14px 0 0; }

/* ---------- about teaser and about page ---------- */
.about-teaser{
  display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);
  gap:clamp(32px,6vw,88px); align-items:center;
}
.about-teaser img, .portrait img{ width:100%; aspect-ratio:1/1; object-fit:cover; }
.portrait{ position:relative; }
.portrait::after{
  content:""; position:absolute; inset:16px; border:1px solid rgba(219,176,89,.8); pointer-events:none;
}

/* ---------- call to action band ---------- */
.cta{ background:var(--maroon); color:var(--paper); padding:clamp(64px,8vw,104px) 0; }
.cta h2{ color:var(--paper); max-width:18ch; margin-bottom:.8em; }
.cta p{ color:var(--paper); margin:1.6rem 0 0; }
.cta a:not(.btn){ color:var(--paper); }

/* ---------- inner page hero ---------- */
.page-hero{ padding:clamp(56px,8vw,112px) 0 clamp(32px,5vw,64px); }
.page-hero h1{ font-size:clamp(2.3rem,5vw,4rem); max-width:16ch; }
.page-hero .lede{ margin-bottom:0; }

/* ---------- sprint page pieces ---------- */
.include-groups{ display:grid; grid-template-columns:repeat(2,1fr); gap:0 clamp(32px,5vw,72px); margin-top:32px; }
.include-groups div{ border-top:1px solid var(--line); padding:24px 0 12px; }
.include-groups h3{ margin-bottom:.3em; }
.include-groups p{ margin-bottom:.8em; }
.weeks{ list-style:none; margin:32px 0 0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:clamp(24px,4vw,56px); }
.weeks > li{ border-top:3px solid var(--gold); padding-top:20px; }
.weeks h3{ margin-bottom:.2em; }
.weeks .wk-title{ font-weight:700; color:var(--maroon); margin-bottom:.8em; }
.weeks ul{ margin:0; padding-left:1.15em; }
.weeks ul li{ margin-bottom:.5em; }
.two-col{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(32px,5vw,72px); }
.two-col ul{ margin:0; padding-left:1.15em; }
.two-col ul li{ margin-bottom:.6em; }
.box{ border:1px solid var(--line); background:var(--paper-2); padding:clamp(24px,3vw,40px); }
.box h2, .box h3{ margin-top:0; }

/* faq */
details{ border-top:1px solid var(--line); }
details:last-of-type{ border-bottom:1px solid var(--line); }
summary{
  cursor:pointer; list-style:none; padding:22px 44px 22px 0; position:relative;
  font-family:var(--serif); font-size:1.25rem; color:var(--maroon-deep);
}
summary::-webkit-details-marker{ display:none; }
summary::after{
  content:"+"; position:absolute; right:4px; top:50%; transform:translateY(-50%);
  font-family:var(--sans); font-size:1.6rem; color:var(--maroon);
}
details[open] summary::after{ content:"\2013"; }
details .answer{ padding:0 0 24px; max-width:62ch; }

/* quotes */
.quotes{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(24px,4vw,56px); margin-top:32px; }
.quotes blockquote{ margin:0; padding-left:20px; border-left:3px solid var(--gold); }
.quotes p{ font-family:var(--serif); font-size:1.3rem; line-height:1.4; color:var(--maroon-deep); margin-bottom:.5em; }
.quotes cite{ font-style:normal; font-size:.95rem; color:var(--muted); }

/* work page */
.work-item{ display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:clamp(32px,5vw,72px); align-items:start; }
.work-item ul{ padding-left:1.15em; margin:0 0 1.4em; }
.work-item ul li{ margin-bottom:.5em; }

/* legal */
.legal h2{ font-size:1.5rem; margin-top:1.8em; }
.legal ul{ padding-left:1.2em; }

/* ---------- footer ---------- */
.site-footer{ background:var(--maroon-deep); color:var(--on-dark-soft); padding:64px 0 32px; font-size:.98rem; }
.foot-grid{ display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:40px; }
.site-footer a{ color:var(--paper); text-decoration:none; }
.site-footer a:hover{ text-decoration:underline; }
.site-footer ul{ list-style:none; margin:0; padding:0; }
.site-footer li{ margin-bottom:8px; }
.foot-title{ font-weight:700; color:var(--gold-light); margin:0 0 12px; }
.foot-brand{ font-family:var(--serif); font-size:1.35rem; line-height:1.3; color:var(--paper); margin:0 0 12px; max-width:16em; }
.legalline{
  border-top:1px solid rgba(245,239,230,.25); margin-top:44px; padding-top:24px;
  font-size:.9rem; display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px;
}
.tagline{ font-family:var(--serif); font-style:italic; color:var(--paper); }

/* ---------- cookie banner ---------- */
#cookie-banner{
  position:fixed; left:16px; right:16px; bottom:16px; max-width:560px; margin:0 auto;
  background:var(--paper); color:var(--ink); border:1px solid rgba(33,21,20,.3); border-radius:6px;
  padding:18px 20px; box-shadow:0 8px 30px rgba(0,0,0,.2); z-index:1000; display:none;
  font-size:15px; line-height:1.5;
}
#cookie-banner p{ margin:0 0 14px; }
#cookie-banner a{ color:var(--maroon); text-decoration:underline; }
#cookie-banner .cb-actions{ display:flex; gap:10px; flex-wrap:wrap; }
#cookie-banner button{
  font:inherit; font-weight:700; font-size:15px; padding:10px 18px; border-radius:2px;
  cursor:pointer; border:2px solid var(--maroon);
}
#cookie-banner .cb-accept{ background:var(--maroon); color:var(--paper); }
#cookie-banner .cb-decline{ background:transparent; color:var(--maroon); }
#cookie-banner :focus-visible{ outline-color:var(--ink); }

/* ---------- responsive ---------- */
@media (max-width:980px){
  .foot-grid{ grid-template-columns:1fr 1fr; }
  .include-groups, .two-col, .quotes, .work-item, .split, .about-teaser{ grid-template-columns:1fr; }
  .gallery-grid{ grid-template-columns:1fr 1fr; }
}
@media (max-width:880px){
  .nav-toggle{ display:inline-block; }
  .site-nav{
    display:none; position:absolute; left:0; right:0; top:100%; background:var(--paper);
    border-bottom:1px solid var(--line); padding:8px clamp(20px,4vw,40px) 24px;
  }
  .site-nav.open{ display:block; }
  .site-nav ul{ flex-direction:column; align-items:stretch; gap:0; }
  .site-nav li{ border-top:1px solid var(--line); }
  .site-nav li:first-child{ border-top:0; }
  .site-nav a:not(.btn){ display:block; padding:16px 0; border-bottom:0; }
  .site-nav li:last-child{ padding-top:16px; }
  .hero{ grid-template-columns:1fr; min-height:0; }
  .hero-copy{ padding:56px 24px; }
  .hero-photo{ min-height:0; aspect-ratio:4/5; }
  .proof ul{ grid-template-columns:1fr; }
  .proof li, .proof li:first-child{ padding:24px 0; border-left:0; border-top:1px solid rgba(219,176,89,.4); }
  .proof li:first-child{ border-top:0; }
  .weeks{ grid-template-columns:1fr; }
  .gallery{ grid-template-columns:1fr; grid-template-rows:none; }
  .gallery figure{ aspect-ratio:3/2; }
  .gallery .tall{ grid-row:auto; }

  .gap-table, .gap-table tbody, .gap-table tr, .gap-table th, .gap-table td{ display:block; width:auto; }
  .gap-table thead{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
  .gap-table th, .gap-table td{ padding:0; border:0; }
  .gap-table tbody tr{ padding:28px 0; border-top:1px solid var(--line); }
  .gap-table tbody tr:last-child{ border-bottom:1px solid var(--line); }
  .gap-table tbody tr:last-child > *{ border-bottom:0; }
  .gap-table tbody th{ width:auto; margin-bottom:10px; }
  .gap-table td{ margin-bottom:10px; }
  .gap-table td::before{
    content:attr(data-label); display:block; font-weight:700; font-size:.9rem; color:var(--maroon);
  }
}
@media (max-width:560px){
  .foot-grid{ grid-template-columns:1fr; }
  .gallery-grid{ grid-template-columns:1fr; }
  body{ font-size:17px; }
}
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation:none !important; transition:none !important; }
}
