.hero{padding:clamp(40px,10vw,140px) var(--gutter) clamp(32px,6vw,80px)}
.hero h1{max-width:12ch}
.hero .lede{margin:22px 0 0;max-width:52ch}
.hero-cta{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}
.numbers-band{background:var(--night);color:var(--on-night);padding:clamp(28px,5vw,56px) 0}
.numbers{list-style:none;margin:0 auto;padding:0 var(--gutter);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 20px}
.numbers li{border-top:1px solid var(--muted-on-night);padding-top:12px}
.numbers .n{display:block;font:600 clamp(2.6rem,6vw,5rem)/.95 var(--font-display);color:var(--sun);letter-spacing:-.02em}
.numbers .l{display:block;margin-top:8px;font-size:.95rem;line-height:1.35;color:var(--muted-on-night)}
@media (min-width:760px){.numbers{grid-template-columns:repeat(4,minmax(0,1fr))}}
.beats{padding-top:clamp(40px,7vw,96px)}
.beat-list{list-style:none;margin:24px 0 0;padding:0;display:grid;gap:0}
.beat-list li{display:grid;gap:4px;padding:20px 0;border-top:1px solid var(--line)}
.beat-list li:last-child{border-bottom:1px solid var(--line)}
.beat-day{font:600 .8rem/1.2 var(--font-text);letter-spacing:.06em;text-transform:uppercase;color:var(--accent)}
.beat-list p{margin:4px 0 0}
@media (min-width:760px){.beat-list li{grid-template-columns:160px 240px 1fr;gap:0 32px;align-items:baseline}.beat-list p{margin:0}}
.place-teaser,.boat-teaser{padding-top:clamp(40px,7vw,96px)}
.place-teaser{display:grid;gap:24px}
.pt-stops{list-style:none;margin:0;padding:0;counter-reset:s}
.pt-stops li{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid var(--line);counter-increment:s}
.pt-stops li::before{content:counter(s);font:600 1rem var(--font-display);color:var(--accent);min-width:1.4em}
.pt-stops b{flex:1;font-weight:600}
.pt-stops span{color:var(--muted);white-space:nowrap}
@media (min-width:900px){.place-teaser{grid-template-columns:1.2fr 1fr;gap:64px;align-items:start}}
.more-link{display:inline-block;margin-top:12px;font-weight:600;text-decoration-color:var(--accent);text-decoration-thickness:2px}
.rsvp{margin-top:clamp(48px,8vw,120px);padding:clamp(40px,7vw,96px) 0;background:var(--panel)}
.rsvp-msg{padding:14px 16px;border:1px dashed var(--muted);border-radius:var(--r-s);background:var(--card);font-style:italic}
.tools{padding-top:clamp(40px,7vw,96px)}
.tool-list{list-style:none;margin:20px 0 0;padding:0;display:grid;gap:10px}
.tool-list a{display:grid;gap:2px;padding:16px 18px;border:1px solid var(--line);border-radius:var(--r);text-decoration:none;min-height:64px}
.tool-list a:hover{border-color:var(--accent);background:var(--card)}
.tool-list b{font:600 1.15rem/1.2 var(--font-display)}
.tool-list span{color:var(--muted);font-size:.95rem}
@media (min-width:760px){.tool-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
