/* Welcome Mat — palette sampled directly from the event flyer */
:root{
  --navy:#142842;
  --navy-soft:#1d3451;
  --olive:#5a5430;
  --olive-light:#6e6740;
  --terracotta:#8e441c;
  --terracotta-bright:#a8501f;
  --cream:#f4ebdc;
  --cream-deep:#ece0cc;
  --paper:#fffdf8;
  --ink:#2e2a22;
  --ink-soft:#5d564a;
  --rule:rgba(90,84,48,.22);
  --shadow:0 2px 14px rgba(20,40,66,.08);
  --serif:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  --script:"Pinyon Script","Snell Roundhand",cursive;
  --sans:"Lato",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--cream);color:var(--ink);
  font-family:var(--sans);font-size:17px;line-height:1.65;
}
img{max-width:100%;display:block}
a{color:var(--terracotta)}

.wrap{max-width:860px;margin:0 auto;padding:0 20px}

/* ---------- header ---------- */
.masthead{background:var(--paper);text-align:center;padding:38px 20px 26px;border-bottom:1px solid var(--rule)}
.wordmark{
  font-family:var(--script);color:var(--navy);
  font-size:clamp(3.1rem,13vw,5.6rem);line-height:.95;margin:0;font-weight:400;
}
.subtitle{
  font-family:var(--serif);color:var(--olive);font-weight:600;
  font-size:clamp(1.25rem,4.6vw,1.95rem);line-height:1.25;margin:.35em 0 0;
}
.presented{font-size:.88rem;letter-spacing:.01em;color:var(--ink-soft);margin:15px auto 0;max-width:34ch;line-height:1.45}
.presented strong{color:var(--navy);font-weight:700}

/* ---------- hero ---------- */
.hero img{width:100%;height:clamp(180px,34vw,330px);object-fit:cover;object-position:center 62%}

/* ---------- intro ---------- */
.intro{
  font-family:var(--serif);font-size:clamp(1.16rem,3.4vw,1.42rem);
  line-height:1.55;text-align:center;color:var(--ink);
  max-width:620px;margin:38px auto 0;
}

/* ---------- CTA ---------- */
.cta-row{text-align:center;margin:30px 0 40px}
.btn{
  display:inline-block;background:var(--terracotta);color:#fff;text-decoration:none;
  font-weight:700;letter-spacing:.055em;text-transform:uppercase;font-size:1.02rem;
  padding:17px 42px;border-radius:3px;box-shadow:var(--shadow);
  border:none;cursor:pointer;font-family:var(--sans);
  transition:background .15s ease,transform .15s ease;
}
.btn:hover,.btn:focus-visible{background:var(--terracotta-bright);transform:translateY(-1px)}
.btn:active{transform:translateY(0)}
.cta-note{font-size:.92rem;color:var(--ink-soft);margin:13px 0 0}
.cta-note strong{color:var(--navy)}

/* ---------- fact strip ---------- */
.facts{
  background:var(--paper);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);
  padding:30px 0;margin:0;
}
.facts-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;text-align:center}
.fact h3{
  font-size:.73rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--olive);margin:0 0 7px;font-weight:700;
}
.fact p{margin:0;font-size:.99rem;line-height:1.45;color:var(--navy);font-weight:600}
.fact .sub{font-weight:400;color:var(--ink-soft);font-size:.88rem}
.fact .icon{display:block;margin:0 auto 9px;color:var(--terracotta)}
.fact .icon svg{width:25px;height:25px;display:block;margin:0 auto}

/* ---------- what's on the mat ---------- */
.section-title{
  display:inline-block;background:var(--olive);color:#fff;
  font-size:.83rem;letter-spacing:.15em;text-transform:uppercase;font-weight:700;
  padding:9px 24px;margin:0 0 26px;border-radius:2px;
}
.mat-section{padding:44px 0 10px;text-align:center}
.cards{display:grid;grid-template-columns:1fr;gap:18px;text-align:left}
.card{
  background:var(--paper);border:1px solid var(--rule);border-radius:4px;
  padding:20px 22px;box-shadow:var(--shadow);
}
.card h4{
  font-family:var(--serif);font-size:1.28rem;color:var(--navy);
  margin:0 0 6px;font-weight:700;
}
.card p{margin:0;font-size:.97rem;color:var(--ink-soft);line-height:1.6}

/* ---------- venue ---------- */
.venue{text-align:center;padding:40px 0 8px}
.venue h3{font-family:var(--serif);font-size:1.5rem;color:var(--navy);margin:0 0 6px}
.venue address{font-style:normal;color:var(--ink-soft);line-height:1.6}
.venue .maplink{
  display:inline-block;margin-top:12px;font-size:.93rem;font-weight:700;
  letter-spacing:.05em;text-transform:uppercase;color:var(--terracotta);text-decoration:none;
  border-bottom:2px solid rgba(142,68,28,.3);padding-bottom:2px;
}
.venue .maplink:hover{border-bottom-color:var(--terracotta)}

/* ---------- footer ---------- */
.footer{background:var(--cream);border-top:1px solid var(--rule);margin-top:46px;padding:34px 20px 20px;text-align:center}
.tagline{font-family:var(--script);font-size:1.75rem;color:var(--olive);margin:0 0 18px;line-height:1.3}
.footer-logo-link{display:block;max-width:230px;margin:0 auto 14px}
.footer-logo{width:100%;height:auto;display:block}
.footer-contact{font-size:.92rem;color:var(--ink-soft);margin:0 0 4px}
/* ---------- contact ---------- */
.contact{
  margin:26px auto 0;padding:22px 18px 4px;max-width:430px;
  border-top:1px solid var(--rule);
}
.contact h4{
  font-size:.73rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--olive);margin:0 0 9px;font-weight:700;
}
.contact-org{
  font-family:var(--serif);font-size:1.06rem;line-height:1.35;
  color:var(--navy);margin:0 0 9px;font-weight:600;
}
.contact address{font-style:normal;color:var(--ink-soft);font-size:.93rem;line-height:1.55;margin:0 0 11px}
.contact-links{margin:0 0 6px;font-size:1rem;line-height:1.5}
.contact-links a{
  color:var(--terracotta);text-decoration:none;font-weight:700;
  display:inline-block;padding:5px 2px;   /* a real tap target on a phone */
}
.contact-links a:hover,.contact-links a:focus-visible{text-decoration:underline}
.contact-links .sep{color:var(--rule);margin:0 7px}
.contact--thanks{border-top:1px solid var(--rule);margin-top:30px;text-align:center}

/* the discreet counter — reads as a build stamp to anyone who doesn't know */
.stamp{
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.7rem;color:rgba(93,86,74,.38);letter-spacing:.06em;
  margin:22px 0 0;user-select:all;
}

/* ---------- form ---------- */
.form-page{max-width:560px;margin:0 auto;padding:0 20px 60px}
.form-head{text-align:center;padding:34px 0 26px}
.form-head h1{font-family:var(--serif);font-size:clamp(1.9rem,6vw,2.5rem);color:var(--navy);margin:0 0 8px;line-height:1.15}
.form-head p{color:var(--ink-soft);margin:0;font-size:1rem}
.field{margin-bottom:20px}
.field label{display:block;font-weight:700;font-size:.88rem;letter-spacing:.06em;text-transform:uppercase;color:var(--olive);margin-bottom:7px}
.field .hint{font-weight:400;text-transform:none;letter-spacing:0;color:var(--ink-soft);font-size:.85rem}
.field input,.field select{
  width:100%;padding:14px 15px;font-size:1.05rem;font-family:var(--sans);
  border:1.5px solid var(--rule);border-radius:4px;background:var(--paper);color:var(--ink);
}
.field input:focus,.field select:focus{outline:3px solid rgba(142,68,28,.35);outline-offset:1px;border-color:var(--terracotta)}
.field input[aria-invalid="true"]{border-color:#a4331f;background:#fdf5f3}
.err{color:#a4331f;font-size:.88rem;margin:6px 0 0;font-weight:600}
.err-summary{background:#fdf5f3;border:1.5px solid #e0b4aa;border-radius:4px;padding:14px 16px;margin-bottom:22px;color:#8d2c1a}
.err-summary p{margin:0;font-weight:700}
.row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-foot{text-align:center;margin-top:26px}
.privacy{font-size:.85rem;color:var(--ink-soft);margin:20px 0 0;line-height:1.55}
.backlink{display:inline-block;margin-top:26px;font-size:.9rem;color:var(--ink-soft)}

/* ---------- thanks ---------- */
.thanks{text-align:center;max-width:560px;margin:0 auto;padding:52px 20px 60px}
.thanks h1{font-family:var(--script);font-size:clamp(2.8rem,11vw,4.2rem);color:var(--navy);margin:0 0 10px;line-height:1}
.thanks .lead{font-family:var(--serif);font-size:1.28rem;color:var(--ink);margin:0 0 28px}
.recap{background:var(--paper);border:1px solid var(--rule);border-radius:4px;padding:22px;text-align:left;box-shadow:var(--shadow)}
.recap dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:9px 18px}
.recap dt{font-size:.73rem;letter-spacing:.13em;text-transform:uppercase;color:var(--olive);font-weight:700;padding-top:3px}
.recap dd{margin:0;color:var(--navy);font-weight:600}

/* ---------- responsive ---------- */
@media (min-width:620px){
  .cards{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:619px){
  .facts-grid{grid-template-columns:repeat(2,1fr);gap:24px 14px}
  .hero img{object-position:center center}
  .masthead{padding:24px 18px 20px}
  .presented{margin-top:12px;font-size:.84rem;max-width:30ch}
  .intro{margin-top:26px}
  .cta-row{margin:24px 0 32px}
  .mat-section{padding:34px 0 6px}
  .venue{padding:32px 0 6px}
  .footer{margin-top:34px}
  /* room for the sticky bar so it never covers the footer */
  body{padding-bottom:82px}
}
@media (max-width:420px){
  .row{grid-template-columns:1fr}
}

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


/* ---------- sticky mobile CTA ---------- */
.sticky-cta{display:none}
@media (max-width:619px){
  .sticky-cta{
    display:block;position:fixed;left:0;right:0;bottom:0;z-index:50;
    background:rgba(255,253,248,.97);border-top:1px solid var(--rule);
    padding:11px 16px calc(11px + env(safe-area-inset-bottom));
    box-shadow:0 -3px 16px rgba(20,40,66,.10);
    transform:translateY(0);transition:transform .22s ease,opacity .22s ease;opacity:1;
  }
  .sticky-cta[hidden]{display:block!important;transform:translateY(115%);opacity:0;pointer-events:none}
  .sticky-cta .btn{display:block;width:100%;padding:15px 18px;font-size:1rem;text-align:center}
}
