/* September 2026 editorial pass: one type scale and one spacing rhythm. */
:root{
  --text:#263448;
  --muted:#565b43;
  --warm:#98523d;
  --cream:#f3eddf;
  --serif:Cormorant,Georgia,serif;
  --script:Pinyon,cursive;
  --sans:Arial,Helvetica,sans-serif;
  --gutter:clamp(24px,6vw,92px);
  --section-space:clamp(72px,8vw,116px);
}
html{scroll-padding-top:90px}
body{font-family:var(--serif);font-size:clamp(20px,1.55vw,23px);line-height:1.5;text-wrap:pretty}
body p{line-height:1.5}
h1,h2,h3,h4{font-family:var(--serif);font-weight:400;text-wrap:balance}
h2{line-height:1.03;letter-spacing:-.035em}
h3{line-height:1.1;letter-spacing:-.02em}
h4{line-height:1.2}
.script{font-family:var(--script)}
.eyebrow,.fine,.small,.credit,.event-meta,.event-footnote,.place-meta,.travel-note{
  font-family:var(--sans);font-size:13px;line-height:1.6;letter-spacing:.055em;
}
.eyebrow{font-size:12px;font-weight:600;letter-spacing:.15em;line-height:1.5}
.fine,.small,.credit{font-size:13px}
.text-link,.guest-jumps a,.day-jumps a{font-family:var(--sans);font-size:13px;line-height:1.5;letter-spacing:.035em}
.text-link{font-weight:600}

/* Shared alignment and navigation. */
header{padding-inline:var(--gutter);height:72px}
header .desktop-nav{gap:clamp(16px,2vw,30px)}
header .desktop-nav a,header button,header summary{font:600 12px/1.4 var(--sans);letter-spacing:.035em}
header .monogram{font-size:36px}
.chapter-rail .chapter-number,.chapter-rail .chapter-label{font-family:var(--sans);font-size:10px;line-height:1.3;letter-spacing:.03em}
.site-menu nav a{font:600 14px/1.5 var(--sans);letter-spacing:.02em}

/* Home hero and cover. */
.intro-loader>p{font-size:clamp(40px,5vw,64px);line-height:1.1;margin:24px 0 12px}
.intro-loader>span{font:600 12px/1.5 var(--sans);letter-spacing:.17em}
.intro-loader #enter-site{font:600 13px/1.5 var(--sans);letter-spacing:.06em;min-height:48px}
.hero-copy{left:var(--gutter);max-width:min(43%,590px)}
.hero-copy .eyebrow{font-size:13px;letter-spacing:.15em}
.hero-copy h1{font-size:clamp(82px,9vw,146px);line-height:.86;letter-spacing:-.048em;margin:28px 0 36px}
.hero-date{font-size:clamp(26px,2.5vw,34px);line-height:1.1;margin:0 0 14px}
.hero-location{font:500 15px/1.6 var(--sans);letter-spacing:.035em}
.hero-invite{font:600 13px/1.5 var(--sans);letter-spacing:.04em;min-height:48px;margin-top:24px}
.hero-signoff{left:var(--gutter);font-size:clamp(30px,3vw,44px)}

/* The weekend uses the same reading scale as the practical pages. */
.weekend{padding:var(--section-space) var(--gutter);gap:clamp(48px,7vw,110px)}
.weekend-intro{top:112px}
.weekend-intro h2{font-size:clamp(56px,5.7vw,84px);margin:22px 0 30px}
.weekend-intro>p{font-size:clamp(21px,1.9vw,27px);line-height:1.35}
.weekend-intro .schedule-note{font:15px/1.7 var(--sans);letter-spacing:0;max-width:47ch}
.weekend-at-glance{padding:28px 30px;margin-bottom:18px}
.weekend-at-glance p{font:15px/1.8 var(--sans);letter-spacing:0}
.weekend-at-glance strong{width:84px;font-weight:700}
.weekend-day{padding:42px 0 48px}
.weekend-day h3{font-size:clamp(35px,3.3vw,49px);margin:10px 0 16px}
.weekend-day>p:not(.eyebrow),.weekend-day .friday-night>p:not(.eyebrow),.afterparty-note>p:not(.eyebrow){font-size:clamp(20px,1.65vw,23px);line-height:1.45}
.weekend-day .event-meta,.weekend-day .event-footnote{font:14px/1.65 var(--sans);letter-spacing:.01em}
.friday-night h4,.afterparty-note h4{font-size:clamp(28px,2.5vw,37px)}
.wedding-timeline li{grid-template-columns:minmax(88px,110px) minmax(0,1fr);gap:20px;padding:26px 0}
.wedding-timeline time{font:600 14px/1.5 var(--sans);letter-spacing:0}
.wedding-timeline h4{font-size:clamp(23px,2vw,29px);margin:0 0 5px}
.wedding-timeline p{font-size:19px;line-height:1.45;margin:0}
.afterparty-note{padding:30px;margin-top:28px}
.home-guides{padding:var(--section-space) var(--gutter)}
.home-guides>div{gap:clamp(24px,3vw,50px)}
.home-guides a{padding:27px 0}
.home-guides strong{font-size:clamp(29px,2.6vw,38px);line-height:1.08}
.home-guides a span{font:14px/1.55 var(--sans)}

/* Story and photographic captions. */
.photo-story{padding:var(--section-space) var(--gutter)}
.photo-story .section-heading{margin-bottom:56px}
.photo-story .section-heading h2{font-size:clamp(58px,6vw,88px)}
.section-heading p,.story-note p{font-size:clamp(21px,1.8vw,25px);line-height:1.45}
.photo-grid{gap:clamp(22px,3vw,42px)}
.photo-grid figcaption,.story-details figcaption{font:22px/1.2 var(--serif);padding:14px 0}
.story-details{gap:clamp(25px,3vw,45px);margin-top:clamp(65px,7vw,105px)}
.story-note .script{font-size:clamp(35px,3.5vw,52px)}
.photo-hint,.credit{font:12px/1.6 var(--sans);letter-spacing:.06em}
.story-next{padding:var(--section-space) var(--gutter)}

/* Travel and local places. */
.travel-expanded,.explore-section{padding:var(--section-space) var(--gutter)}
.travel-expanded{gap:clamp(48px,6vw,88px)}
.travel-heading h2,.explore-heading h2{font-size:clamp(60px,6vw,86px);margin:18px 0 24px}
.travel-heading>p,.explore-heading>p{font-size:clamp(21px,1.9vw,26px);line-height:1.45}
.travel-block{padding-top:42px}
.travel-block h3{font-size:clamp(34px,3.4vw,48px);margin:8px 0 20px}
.travel-block>p,.travel-block>div>p,.travel-block article p{font-size:20px;line-height:1.48}
.travel-block h4,.place-card h3{font-size:clamp(28px,2.7vw,38px)}
.travel-note,.travel-block .travel-note{font:15px/1.65 var(--sans);letter-spacing:0;padding:20px 24px}
.travel-venue>div{padding:28px 32px}
.travel-venue>div p{font-size:23px;line-height:1.35}
.airport-grid,.stay-grid{gap:clamp(20px,2.5vw,34px)}
.airport-card{padding:30px}
.airport-code{font-size:clamp(46px,4.8vw,67px)}
.explore-heading{margin-bottom:45px}
.places-grid{gap:clamp(24px,3vw,40px)}
.place-card,.place-card:nth-child(n+3){padding:28px;background:#fff9ed99;border:1px solid #a889553d;box-shadow:0 10px 28px #6c3d200d}
.place-card p{font-size:19px;line-height:1.45}
.place-card .place-meta{font:600 13px/1.55 var(--sans);letter-spacing:.03em}
.place-card .text-link{margin-top:5px}

/* Search and answers. */
.faq-section{padding:var(--section-space) var(--gutter);gap:clamp(50px,6vw,90px)}
.faq-intro h2{font-size:clamp(60px,6vw,86px);margin:18px 0 24px}
.faq-intro>p{font-size:clamp(21px,1.8vw,25px);line-height:1.45}
.faq-group{margin-bottom:32px}
.faq-group h3{font-size:clamp(27px,2.4vw,35px);margin-bottom:14px}
.faq-list summary{font-size:clamp(23px,2vw,29px);line-height:1.25;padding-block:4px}
.faq-list details{padding-block:21px}
.faq-list details p{font:17px/1.65 var(--sans);max-width:66ch;letter-spacing:0}
.faq-tools label,.faq-tools input,.faq-tools button,.faq-tools #faq-results{font:14px/1.5 var(--sans)}
.faq-tools input,.faq-tools button{min-height:46px}

/* Final response and footer. */
.response-section{padding:var(--section-space) var(--gutter);gap:clamp(35px,5vw,76px)}
.response-section h2,.closing h2{font-size:clamp(61px,6vw,87px)}
.response-section>div>p,.registry-note p{font-size:clamp(20px,1.8vw,25px);line-height:1.45}
.registry-note h3{font-size:clamp(32px,3vw,43px)}
.closing{padding:var(--section-space) var(--gutter)}
.closing .script{font-size:clamp(35px,4vw,53px)}
.site-footer{padding:64px var(--gutter) 26px;font:14px/1.6 var(--sans);letter-spacing:0}
.site-footer .footer-names{font:clamp(39px,4vw,55px)/1 var(--serif)}
.site-footer nav a,.site-footer .footer-contact a{font:600 14px/1.5 var(--sans)}
.footer-bottom{font:12px/1.5 var(--sans);letter-spacing:.04em}

@media(max-width:1050px){
  .weekend,.travel-expanded,.faq-section{gap:46px}
  .weekend-intro{position:static}
}
@media(max-width:700px){
  :root{--gutter:24px;--section-space:68px}
  .chapter-rail{display:none}
  header{height:64px;padding-inline:20px}
  .wedding-hero{min-height:700px}
  .hero-copy{left:var(--gutter);right:var(--gutter);top:104px;max-width:none}
  .hero-copy .eyebrow{font-size:11px}
  .hero-copy h1{font-size:clamp(58px,16vw,82px);line-height:.9;margin:20px 0 24px}
  .hero-copy h1 br{display:block}
  .hero-date{font-size:25px;margin:0 0 10px}
  .hero-location{font-size:13px}
  .hero-invite{font-size:12px;margin-top:13px}
  .hero-signoff{left:var(--gutter);right:auto;bottom:24px;font-size:30px}
  .weekend,.travel-expanded,.explore-section,.faq-section,.photo-story,.response-section,.home-guides,.closing,.site-footer{padding-inline:var(--gutter)}
  .weekend{grid-template-columns:1fr;gap:34px}
  .weekend-intro h2,.travel-heading h2,.explore-heading h2,.faq-intro h2{font-size:clamp(50px,12vw,66px)}
  .weekend-day{padding:34px 0 40px}
  .weekend-day h3{font-size:37px}
  .weekend-at-glance p{font-size:14px;line-height:1.7}
  .wedding-timeline li{grid-template-columns:minmax(76px,88px) minmax(0,1fr);gap:14px}
  .wedding-timeline time{font-size:13px}
  .wedding-timeline h4{font-size:25px}
  .wedding-timeline p{font-size:18px}
  .home-guides>div{grid-template-columns:1fr;gap:9px}
  .photo-story .photo-grid{grid-template-columns:1fr;gap:34px;padding:0}
  .story-details{grid-template-columns:1fr;gap:30px;margin-top:62px}
  .travel-expanded{grid-template-columns:1fr}
  .travel-venue>div{margin:-48px 12px 0;padding:22px}
  .airport-grid,.stay-grid,.places-grid{grid-template-columns:1fr;gap:22px}
  .airport-card,.place-card,.place-card:nth-child(n+3){padding:24px}
  .faq-intro{position:static}
  .faq-list details p{font-size:16px}
  .response-section{grid-template-columns:1fr}
  .site-footer{padding-top:56px;padding-bottom:28px}
}
@media(max-width:380px){
  :root{--gutter:20px}
  .hero-copy h1{font-size:56px}
  .wedding-timeline li{grid-template-columns:1fr;gap:4px}
  .wedding-timeline time{padding-bottom:3px}
  .weekend-at-glance strong{width:72px}
}
@media(prefers-reduced-motion:reduce){
  .intro-loader.is-opening>p,.intro-loader.is-opening>span,.intro-loader.is-opening>div,.intro-loader.is-opening>button{transition:none}
}
