*{box-sizing:border-box}
:root{--ink:#151515;--cream:#f4efe6;--paper:#fffdf8;--accent:#dc6b47;--muted:#777066;--line:rgba(21,21,21,.15)}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:"DM Sans",sans-serif;line-height:1.6}
.shell{width:min(1120px,calc(100% - 40px));margin:0 auto}
.hero{min-height:100vh;background:var(--ink);color:#fff;display:flex;flex-direction:column}
.nav{height:90px;display:flex;align-items:center;justify-content:flex-end;border-bottom:1px solid rgba(255,255,255,.16)}
.nav-rsvp,.location a{color:inherit;text-decoration:none;border-bottom:1px solid currentColor}
.hero-content{flex:1;padding:90px 0 70px;display:flex;flex-direction:column;justify-content:center}
.eyebrow{margin:0 0 24px;font-size:.72rem;font-weight:700;letter-spacing:.18em}
.eyebrow.dark{color:var(--muted)}
h1,h2{font-family:"Playfair Display",serif;line-height:.95;letter-spacing:-.045em;margin:0}
h1{font-size:clamp(5rem,14vw,10rem);max-width:900px}
h2{font-size:clamp(3rem,7vw,5.8rem)}
.title-row{display:flex;align-items:center;gap:34px}
.simple-cross{position:relative;width:72px;height:104px;flex:0 0 auto;opacity:.95}
.simple-cross::before,.simple-cross::after{content:"";position:absolute;background:#fff;border-radius:2px}
.simple-cross::before{width:12px;height:104px;left:30px;top:0}
.simple-cross::after{width:72px;height:12px;left:0;top:31px}
.hero-copy{max-width:650px;margin:35px 0 12px;font-size:clamp(1.25rem,2vw,1.55rem)}
.welcome{max-width:690px;color:rgba(255,255,255,.72);font-size:1.05rem}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.button{display:inline-flex;justify-content:center;align-items:center;min-height:52px;padding:0 22px;text-decoration:none;font-weight:700;border-radius:3px;transition:transform .18s ease}
.button:hover{transform:translateY(-2px)}
.primary{color:#fff;background:var(--accent)}
.secondary{color:#fff;border:1px solid rgba(255,255,255,.35)}
.full{width:100%}
.hero-meta{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid rgba(255,255,255,.16)}
.hero-meta>div{padding:28px 24px 32px 0;display:flex;flex-direction:column;border-right:1px solid rgba(255,255,255,.16)}
.hero-meta>div:not(:first-child){padding-left:24px}.hero-meta>div:last-child{border-right:none}
.meta-label{color:rgba(255,255,255,.5);letter-spacing:.16em;font-size:.65rem;font-weight:700;margin-bottom:8px}
.hero-meta strong{font-size:1.05rem}.hero-meta span:last-child{color:rgba(255,255,255,.65);font-size:.9rem}
.section{padding:130px 0}
.intro{display:grid;grid-template-columns:1fr 4fr;gap:40px}.section-number{color:var(--muted);padding-top:9px}.intro-copy{max-width:830px}
.intro-copy>p:not(.eyebrow){max-width:720px;font-size:1.15rem;color:#3f3c37}.intro-copy h2{margin-bottom:40px}
.programme{background:var(--cream);padding:120px 0}.programme h2{margin-bottom:65px}.programme-grid{display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid var(--line)}
.programme-grid article{padding:28px 22px 10px 0;border-right:1px solid var(--line)}.programme-grid article:not(:first-child){padding-left:22px}.programme-grid article:last-child{border-right:none}
.programme-grid span{color:var(--accent);font-size:.72rem;font-weight:700}.programme-grid h3{margin:35px 0 10px;font-size:1.15rem}.programme-grid p{color:var(--muted);font-size:.92rem}
.free-section{padding:100px 0;border-bottom:1px solid var(--line)}.free-grid{display:grid;grid-template-columns:1fr 3fr;gap:40px}.free-grid h2{margin-bottom:25px}.free-grid p:last-child{max-width:740px;font-size:1.15rem;color:#3f3c37}
.rsvp{background:var(--paper)}.rsvp-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:80px;align-items:start}.rsvp-grid>div:first-child>p:last-child{max-width:570px;font-size:1.1rem;color:var(--muted)}.rsvp-grid h2{margin-bottom:30px}
.rsvp-card{background:var(--cream);padding:38px}.rsvp-card h3{margin-top:0;font-size:1.5rem}.rsvp-card .small{color:var(--muted);font-size:.78rem;margin:18px 0 0}
.location{background:var(--ink);color:#fff;padding:120px 0}.location-grid{display:grid;grid-template-columns:1.5fr .5fr;align-items:end;gap:60px}.location-details p{color:rgba(255,255,255,.65)}.location-details a{display:inline-block;margin-top:16px}
footer{background:#0e0e0e;color:#fff;padding:42px 0}.footer-inner{display:flex;align-items:center;gap:28px;flex-wrap:wrap}.footer-inner p{color:rgba(255,255,255,.55);margin:0}.footer-small{margin-left:auto!important;font-size:.8rem}.footer-mark{font-weight:700;letter-spacing:.12em;font-size:.85rem}
@media(max-width:820px){.hero-content{padding-top:60px}.title-row{align-items:flex-start;gap:18px}.simple-cross{width:46px;height:68px;margin-top:8px}.simple-cross::before{width:8px;height:68px;left:19px}.simple-cross::after{width:46px;height:8px;top:20px}.hero-meta,.programme-grid,.intro,.free-grid,.rsvp-grid,.location-grid{grid-template-columns:1fr}.hero-meta>div,.hero-meta>div:not(:first-child){padding:18px 0;border-right:0;border-bottom:1px solid rgba(255,255,255,.16)}.hero-meta>div:last-child{border-bottom:0}.programme-grid article,.programme-grid article:not(:first-child){padding:24px 0;border-right:0;border-bottom:1px solid var(--line)}.section,.programme,.location{padding-top:85px;padding-bottom:85px}.intro{gap:15px}.rsvp-grid{gap:45px}.location-grid{align-items:start}.footer-small{width:100%;margin-left:0!important}}
@media(max-width:520px){.shell{width:min(100% - 28px,1120px)}.nav{height:72px}h1{font-size:clamp(4.2rem,22vw,6.5rem)}.title-row{gap:12px}.simple-cross{width:36px;height:54px}.simple-cross::before{width:7px;height:54px;left:14.5px}.simple-cross::after{width:36px;height:7px;top:16px}.rsvp-card{padding:28px 22px}}

.footer-email{color:rgba(255,255,255,.8);text-decoration:none;border-bottom:1px solid rgba(255,255,255,.35)}
.footer-email:hover{color:#fff;border-bottom-color:#fff}

.volunteers{padding:100px 0;background:var(--cream);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.volunteers-grid{display:grid;grid-template-columns:1fr 2fr;gap:60px;align-items:start}
.volunteers h2{font-size:clamp(2.8rem,6vw,5rem)}
.volunteers-copy{max-width:700px}
.volunteers-copy p{font-size:1.1rem;color:#3f3c37;margin-top:0;margin-bottom:18px}
.volunteers-copy a{color:var(--ink);font-weight:700;text-decoration-thickness:1px;text-underline-offset:4px}
@media(max-width:820px){.volunteers-grid{grid-template-columns:1fr;gap:28px}.volunteers{padding:85px 0}}
