:root{
  --bg:#F6F3EE; --surface:#FFFFFF; --ink:#1F1D1A; --muted:#6B655C;
  --rule:#E3DDD3; --accent:#2F4A3F; --accent-ink:#FFFFFF;
  --serif:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,serif;
  --sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){
  :root{
    --bg:#141412; --surface:#1C1B19; --ink:#ECE7DF; --muted:#A39C90;
    --rule:#2E2B27; --accent:#8DB3A2; --accent-ink:#10201A;
    color-scheme:dark;
  }
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; background:var(--bg); color:var(--ink);
  font:400 1.0625rem/1.65 var(--sans);
  display:flex; flex-direction:column; min-height:100vh;
}
.top,main,.foot{width:100%; max-width:46rem; margin:0 auto; padding-left:1.5rem; padding-right:1.5rem}

.top{display:flex; align-items:baseline; justify-content:space-between; padding-top:2rem}
.mark{font:500 1.25rem/1 var(--serif); letter-spacing:.06em}
.tag{font-size:.8125rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted)}

main{flex:1}
.hero{padding:clamp(4rem,14vh,8rem) 0 3.5rem}
.eyebrow{margin:0 0 1.25rem; font-size:.8125rem; letter-spacing:.14em; text-transform:uppercase; color:var(--accent)}
h1{
  margin:0 0 1.75rem; font:400 clamp(2.5rem,7vw,4.25rem)/1.05 var(--serif);
  letter-spacing:-.01em; text-wrap:balance;
}
.lead{margin:0; max-width:34rem; font-size:1.1875rem; color:var(--muted); text-wrap:pretty}
.card p,.sub{text-wrap:pretty}

.who{
  display:grid; gap:1rem; grid-template-columns:1fr;
  padding:3rem 0; border-top:1px solid var(--rule);
}
@media (min-width:40rem){ .who{grid-template-columns:1fr 1fr; gap:1.25rem} }
.card{
  background:var(--surface); border:1px solid var(--rule); border-radius:14px;
  padding:1.75rem 1.5rem 1.6rem;
}
.num{display:block; font-size:.75rem; letter-spacing:.14em; color:var(--muted); margin-bottom:1.1rem}
.card h2{margin:0 0 .5rem; font:400 1.5rem/1.2 var(--serif)}
.card p{margin:0; color:var(--muted); font-size:1rem}

.contact{padding:3rem 0 5rem; border-top:1px solid var(--rule)}
.contact h2{margin:0 0 .4rem; font:400 clamp(1.75rem,4.5vw,2.25rem)/1.15 var(--serif)}
.sub{margin:0 0 1.75rem; color:var(--muted)}

.btn{
  appearance:none; border:0; cursor:pointer;
  background:var(--accent); color:var(--accent-ink);
  font:500 1rem/1 var(--sans); letter-spacing:.01em;
  padding:1rem 1.6rem; min-height:48px; border-radius:999px;
  transition:transform .15s ease, opacity .15s ease;
}
.btn:hover{opacity:.92}
.btn:active{transform:translateY(1px)}
.btn:focus-visible,.phone a:focus-visible{outline:2px solid var(--accent); outline-offset:4px}

.phone{display:flex; flex-direction:column; gap:.35rem}
.phone a{
  font:400 clamp(1.9rem,6vw,2.6rem)/1.1 var(--serif); letter-spacing:.01em;
  color:var(--ink); text-decoration:none; border-bottom:1px solid var(--rule);
  align-self:flex-start; padding-bottom:.15rem;
}
.phone a:hover{border-bottom-color:var(--accent)}
.hint{font-size:.875rem; color:var(--muted)}

.foot{
  display:flex; flex-wrap:wrap; gap:.5rem; align-items:center;
  padding-top:1.5rem; padding-bottom:2rem; border-top:1px solid var(--rule);
  font-size:.8125rem; color:var(--muted);
}

.meet{margin-top:3rem; padding-top:2rem; border-top:1px solid var(--rule)}
.meet p{margin:0}
.label{font-size:.75rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); margin-bottom:.75rem!important}
.venue{font:400 1.5rem/1.2 var(--serif)}
.addr{color:var(--muted); margin:.2rem 0 .6rem!important}
.meet .hint a{color:var(--accent); text-decoration:none; border-bottom:1px solid currentColor}
.meet .hint a:hover{opacity:.8}
.meet .hint a:focus-visible{outline:2px solid var(--accent); outline-offset:3px}

@media (prefers-reduced-motion:reduce){ *{transition:none!important} }
