/* YPW — public PCF registration page */
:root{--ink:#1a1d17;--ink2:#23261e;--paper:#f5f2e8;--dim:#c9c4b3;--red:#c4442e;--stone:#8a8578;--line:#3a3d33;--ochre:#c98f22;
  --head:'Space Grotesk',system-ui,sans-serif;--body:'Source Serif 4',Georgia,serif;}
*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--ink);color:var(--paper);font-family:var(--body);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:var(--paper)}
h1,h2,h3,.brand,label,button,.facts span,.btn,.preview-bar{font-family:var(--head)}
.preview-bar{background:var(--ochre);color:var(--ink);padding:8px 16px;font-size:13px;text-align:center;font-weight:600}
.brand{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--red);font-weight:700;margin-bottom:12px}

/* hero */
.hero{position:relative}
.banner{display:block;width:100%;max-height:460px;object-fit:cover;border-bottom:4px solid var(--red)}
.hero-text{max-width:1100px;margin:0 auto;padding:36px 20px 8px}
.hero h1{font-size:clamp(34px,6vw,64px);line-height:1.02;margin:0 0 22px;font-weight:700;letter-spacing:-.02em;max-width:16ch}
.hero-bg{background-size:cover;background-position:center;min-height:min(78vh,640px);display:flex;align-items:flex-end}
.hero-bg::before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(26,29,23,.25) 0%,rgba(26,29,23,.7) 55%,var(--ink) 100%)}
.hero-bg .hero-text{position:relative;width:100%;padding-bottom:28px}
.facts{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:10px}
.facts li{border:1px solid var(--line);background:rgba(35,38,30,.85);padding:9px 14px;font-size:15px}
.facts span{display:block;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--stone);margin-bottom:1px}
.facts a{color:var(--paper)}

/* body */
.layout{max-width:1100px;margin:0 auto;padding:28px 20px 60px;display:grid;grid-template-columns:1.2fr 1fr;gap:48px;align-items:start}
.about h2,.card h2{font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--stone);margin:0 0 14px}
.about-text p{margin:0 0 16px}
.about-text a{color:var(--paper);text-decoration-color:var(--red)}
.card{background:var(--ink2);border:1px solid var(--line);border-top:4px solid var(--red);padding:26px 24px;position:sticky;top:20px}
.card .sub{color:var(--dim);font-size:14.5px;margin:-6px 0 18px}
.f{margin-bottom:14px}
.f label{display:block;font-size:12.5px;color:var(--dim);margin-bottom:6px;font-weight:500}
.f input,.f select{width:100%;background:var(--ink);border:1px solid var(--line);color:var(--paper);padding:12px 13px;font-size:16px;font-family:var(--body);border-radius:0;-webkit-appearance:none;appearance:none}
.f select{background-image:linear-gradient(45deg,transparent 50%,var(--stone) 50%),linear-gradient(135deg,var(--stone) 50%,transparent 50%);background-position:calc(100% - 18px) 52%,calc(100% - 13px) 52%;background-size:5px 5px;background-repeat:no-repeat}
.f input:focus,.f select:focus{outline:none;border-color:var(--red)}
.f input.bad,.f select.bad{border-color:var(--red)}
.f small{display:block;color:#e8806c;font-size:13px;margin-top:4px;font-family:var(--head);min-height:0}
.check{display:flex;gap:10px;align-items:center;font-size:14px;color:var(--dim);margin:6px 0;cursor:pointer}
.check input{accent-color:var(--red);width:18px;height:18px}
.btn{display:inline-block;background:var(--red);color:var(--paper);border:none;padding:14px 22px;font-size:15px;font-weight:600;cursor:pointer;width:100%;margin-top:12px;text-decoration:none;text-align:center}
.btn:hover{background:#a83a26}
.btn:disabled{opacity:.6;cursor:progress}
.btn.ghost{background:none;border:1px solid var(--line);width:auto}
.err{color:#e8806c;font-family:var(--head);font-size:14px;margin:10px 0 0;min-height:1em}
.thanks h3{margin:0 0 8px;font-size:22px}
.thanks p{color:var(--dim);margin:0}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.foot{text-align:center;color:var(--stone);font-family:var(--head);font-size:12px;padding:0 20px 30px}

/* closed */
.closed{max-width:640px;margin:0 auto;padding:18vh 20px;text-align:left}
.closed h1{font-size:clamp(32px,6vw,52px);line-height:1.05;margin:0 0 16px}
.closed p{color:var(--dim);margin:0 0 26px}

@media (max-width:820px){
  .layout{grid-template-columns:1fr;gap:28px;padding-top:18px}
  .card{position:static;padding:22px 16px}
  .hero-text{padding:26px 16px 4px}
  .hero-bg{min-height:62vh}
  .layout{padding-left:16px;padding-right:16px}
}

/* invite response page */
.rsvp{max-width:560px;margin:0 auto;padding:9vh 20px 60px}
.rsvp h1{font-size:clamp(28px,6vw,44px);line-height:1.08;margin:0 0 18px}
.rsvp .lead{color:var(--dim)}
.rsvp .facts{margin-bottom:22px}
.rsvp-card{position:static}
.rsvp-card h2{font-size:20px;letter-spacing:0;text-transform:none;color:var(--paper);margin:0 0 8px}
.rsvp-card h2.ok{color:#8fbf8f}
.rsvp-card .btn{margin-top:0}
.rsvp .small{font-family:var(--head);font-size:13px;margin:12px 0 0}
.rsvp .small a,.rsvp-card p a{color:var(--dim)}
.join{background:var(--ink);border-left:4px solid #5c7a5c;padding:12px 14px;margin:14px 0}
.join-h{font-family:var(--head);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#8fbf8f;margin-bottom:6px}
.join p{margin:0 0 8px}
.change{margin-top:18px;font-family:var(--head);font-size:13px;color:var(--dim)}
.change summary{cursor:pointer;margin-bottom:10px}
.fee-chip{border-color:var(--ochre) !important}
/* 0.4.3: shorter banner on laptops so the form is reachable; a clear jump to it */
.banner{max-height:min(460px,42vh)}
.hero-bg{min-height:min(60vh,520px)}
.reg-jump{display:inline-block;margin:4px 0 14px;background:var(--red);color:#fff;text-decoration:none;font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:15px;padding:11px 20px;border-radius:2px}
.reg-jump:hover{filter:brightness(1.1)}
html{scroll-behavior:smooth}

/* ---------- Website look (0.7): same colours, type and corners as the public site ---------- */
:root{--ink:#fcfcfa;--ink2:#f3f2ee;--paper:#1d1c1a;--dim:#4a4741;--red:#b3261e;--stone:#6c6860;--line:#e3e0d8;--ochre:#9a5b00;
  --head:'Space Grotesk',system-ui,-apple-system,'Segoe UI',sans-serif;--body:'Source Serif 4',Georgia,serif;}
body{font-family:var(--head);font-size:16px;line-height:1.55}
.about-text{font-family:var(--body);font-size:17px}
.preview-bar{background:#2a2a2a;color:#fff}
.hero-bg::before{background:linear-gradient(180deg,rgba(0,0,0,.15) 0%,rgba(0,0,0,.55) 55%,rgba(0,0,0,.75) 100%)}
.hero-bg .hero-text,.hero-bg .hero-text h1,.hero-bg .facts li,.hero-bg .facts a{color:#fff}
.hero-bg .facts li{background:rgba(0,0,0,.45);border-color:rgba(255,255,255,.25)}
.hero-bg .facts span{color:rgba(255,255,255,.75)}
.facts li{background:#fff;border-radius:8px}
.banner{border-bottom:none}
.card{background:#fff;border:1px solid var(--line);border-top:4px solid var(--red);border-radius:8px;box-shadow:0 1px 2px rgba(0,0,0,.04)}
.f input,.f select,.f textarea{background:#fff;border:1.5px solid #cfcbc1;color:var(--paper);border-radius:8px;font-family:var(--head)}
.f input:focus,.f select:focus,.f textarea:focus{outline:2px solid var(--red);outline-offset:1px;border-color:var(--red)}
.f small,.err{color:#b3261e}
.btn{background:var(--red);color:#fff;border-radius:8px;min-height:46px}
.btn:hover{background:#8f1e18}
.rsvp-card h2.ok{color:#2f6b3b}
.join{background:var(--ink2);border-left-color:#2f6b3b;border-radius:0 8px 8px 0}
.join-h{color:#2f6b3b}

.choices{display:flex;flex-direction:column;gap:8px;margin-top:4px}
.choice{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1.5px solid #cfcbc1;border-radius:8px;background:#fff;font-weight:400;cursor:pointer;line-height:1.4}
.choice input{margin-top:3px;flex:none;width:auto;min-height:0}
.choice:has(input:checked){border-color:var(--red);background:#fdf3f2}
.f textarea{width:100%}
.about-text p{margin:0 0 1em}

.fee-note{margin:4px 0 12px;font-size:14px;line-height:1.5;color:var(--dim)}
.fee-note a{color:var(--red)}
.more-ev{max-width:1080px;margin:10px auto 40px;padding:0 20px}
.more-ev h2{font-size:18px;margin:28px 0 10px}
.more-ev ul{list-style:none;margin:0;padding:0}
.more-ev li{display:grid;grid-template-columns:120px 1fr;gap:14px;padding:10px 0;border-bottom:1px solid var(--line)}
.more-ev li span{color:var(--stone)}
.more-ev p a{color:var(--red);font-weight:600}
