@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600&family=DM+Sans:wght@400;500;600&display=swap');
:root{--forest:#17382f;--gold:#b59568;--cream:#f7f3ea;--ink:#26382f}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:'DM Sans',sans-serif;line-height:1.65}.nav{height:80px;padding:0 max(5%,calc((100% - 1160px)/2));display:flex;align-items:center;justify-content:space-between;background:#f7f3eaf2;position:sticky;top:0;z-index:10;border-bottom:1px solid #e9e2d5}.brand{text-decoration:none;font-family:'Cormorant Garamond',serif;font-size:32px;color:var(--forest);font-weight:600;white-space:nowrap}.brand span,footer span{color:var(--gold)}nav{display:flex;gap:25px}nav a{font-size:12px;text-transform:uppercase;letter-spacing:1.5px;text-decoration:none;color:var(--forest)}nav a:hover{color:var(--gold)}.menu{display:none;background:none;border:0;font-size:25px;color:var(--forest)}h1,h2,h3{font-family:'Cormorant Garamond',serif;font-weight:500;line-height:1.1}h1{font-size:clamp(65px,10vw,145px);margin:10px 0}h2{font-size:clamp(44px,6vw,74px);margin:12px 0 22px}h3{font-size:32px;margin:12px 0}.eyebrow{text-transform:uppercase;letter-spacing:4px;font-size:11px;font-weight:600;color:var(--gold)}.hero{min-height:calc(100vh - 80px);background:linear-gradient(180deg,rgba(16,40,32,.22),rgba(16,40,32,.08) 55%,rgba(16,40,32,.2)),url('/assets/couple-hero.jpg') center 48%/cover;display:flex;align-items:center;justify-content:center;text-align:center;color:white;padding:50px 20px}.hero .eyebrow{color:#d8bd96}.hero p{letter-spacing:2px}.btn{display:inline-block;margin:22px 8px 0;padding:13px 26px;background:var(--forest);border:1px solid var(--forest);color:white;text-decoration:none;text-transform:uppercase;letter-spacing:2px;font-size:11px;cursor:pointer}.btn.light{background:transparent;border-color:white;color:white}.btn:hover{background:var(--gold);border-color:var(--gold);color:white}.section{max-width:1100px;margin:auto;padding:95px 25px}.center{text-align:center}.intro{max-width:720px;margin:0 auto;color:#626e65;font-size:16px}.divider{width:55px;height:1px;background:var(--gold);margin:30px auto}.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;margin-top:45px}.card{background:white;overflow:hidden;box-shadow:0 9px 28px #17382f10}.card img{width:100%;height:330px;object-fit:cover;display:block}.card-body{padding:27px}.card p{color:#626e65;font-size:14px}.card a{color:var(--forest);letter-spacing:1px;font-size:12px;text-transform:uppercase}.banner{background:var(--forest);color:white;text-align:center;padding:70px 20px}.banner h2{margin:0}.pagehead{background:#e9e4d9;padding:90px 20px;text-align:center}.pagehead h1{font-size:clamp(60px,9vw,100px)}.story-layout{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}.story-layout img{width:100%;height:530px;object-fit:cover}.event{padding:38px;border:1px solid #d8cbb9;text-align:center}.event .date{font-family:'Cormorant Garamond',serif;font-size:36px;color:var(--forest)}.qr{width:170px;height:170px;display:block;margin:25px auto;border:8px solid white;box-shadow:0 0 0 1px #ddd}.note{font-size:13px;color:#626e65}footer{background:#102820;color:#fff;text-align:center;padding:50px 20px;font-family:'Cormorant Garamond',serif;font-size:28px;letter-spacing:4px}footer small{display:block;font-family:'DM Sans',sans-serif;font-size:10px;letter-spacing:2px;margin-top:10px;color:#c9c9bf}@media(max-width:700px){.nav{height:68px;padding:0 20px}.menu{display:block}nav{display:none;position:absolute;top:68px;left:0;right:0;background:var(--cream);padding:25px;flex-direction:column;box-shadow:0 12px 20px #0001}nav.open{display:flex}.cards,.story-layout{grid-template-columns:1fr}.section{padding:65px 20px}.story-layout img{height:370px}.card img{height:260px}}

/* Existing mobile-site page components, styled to match the wedding UI. */
:root{--paper:var(--cream);--muted:#626e65}
a{color:inherit}p{color:var(--muted)}.hero p,.banner p{color:inherit}
.logo{font-family:'Cormorant Garamond',serif}.logo span{color:var(--gold)}
.hero{min-height:calc(100svh - 80px)}.hero h1 em{font-weight:400}.hero p{font-size:13px}.hero .divider{background:#d8bd96}
.narrow{max-width:720px;margin:0 auto}.events,.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;margin-top:40px}
.event{background:transparent}.event h3{font-size:44px}.event .date{font-size:36px}.button{display:inline-block;margin:22px 8px 0;padding:13px 26px;background:var(--forest);border:1px solid var(--forest);color:white;text-decoration:none;text-transform:uppercase;letter-spacing:2px;font-size:11px}.button:hover{background:var(--gold);border-color:var(--gold)}
.line{width:55px;height:1px;background:var(--gold);margin:30px auto}.placeholder{background:linear-gradient(135deg,#e9e4d9,#e5dece);min-height:290px;display:grid;place-content:center;text-align:center;padding:25px;color:#626e65;font-size:11px;letter-spacing:2px;text-transform:uppercase}.photohero{min-height:430px}.cardcontent{padding:27px}.story-block{max-width:900px}.story-block p{margin:28px 0}.label{font-size:11px;color:var(--gold);text-transform:uppercase;letter-spacing:3px}
nav a[aria-current=page]{color:#80623b;text-decoration:underline;text-underline-offset:6px}a:focus-visible,button:focus-visible{outline:2px solid var(--gold);outline-offset:5px}.menu{cursor:pointer;min-width:44px;min-height:44px}
@media(max-width:700px){.hero{min-height:calc(100svh - 68px)}.hero h1{font-size:clamp(60px,14vw,98px)}.hero .btn{margin:16px 4px 0;padding:13px 18px}.events,.grid{grid-template-columns:1fr}.event{padding:32px 20px}.photohero{min-height:300px}.pagehead{padding:65px 20px}.placeholder{min-height:240px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Keep the names in the sky above the hands in the portrait. */
.hero{align-items:flex-start;padding-top:clamp(40px,7svh,90px);text-shadow:0 2px 16px #10282055}
.hero>div{width:100%;max-width:1100px}.hero .eyebrow{color:#fff4df}.hero .divider{margin:18px auto}.hero .btn.light{background:#17382f55;text-shadow:none}
.venues{scroll-margin-top:90px;padding-top:55px}.venues .events{margin-top:28px}.venues .event{background:#fff}.venues .event>p:not(.note){font-size:18px;color:var(--forest);font-weight:500}
@media(min-width:701px){.hero{min-height:680px;min-height:max(680px,calc(100svh - 80px));background-position:center 48%}}
@media(max-width:700px){.hero{padding-top:35px;background-position:center center}.hero h1{margin:8px 0}.hero p{font-size:11px;letter-spacing:1.5px;margin:12px auto;max-width:320px}.hero .eyebrow{font-size:10px;letter-spacing:2px}.hero .btn{font-size:10px;padding:11px 15px;margin-top:10px}.hero .divider{margin:14px auto}.venues{scroll-margin-top:78px;padding-top:40px}}

.venue-details{margin:24px auto 0;max-width:640px}.venue-details h4{font-family:'Cormorant Garamond',serif;font-weight:500;font-size:30px;line-height:1.2;margin:8px 0}.venue-details p{margin:8px 0}.venue-details .label{color:#80623b;font-size:11px}.venue-details .line{margin:24px auto}.venue-map{display:inline-block;font-size:12px;color:var(--forest);text-underline-offset:4px;padding:8px 0}.venue-map:hover{color:#80623b}

.our-story{scroll-margin-top:90px;padding-top:60px;padding-bottom:55px}.our-story .divider{margin:22px auto}.our-story .intro{max-width:650px}@media(max-width:700px){.our-story{scroll-margin-top:78px;padding-top:45px;padding-bottom:35px}}

/* Story placeholder embedded in the lower part of the hero photograph. */
.hero{position:relative;flex-direction:column;justify-content:space-between;align-items:center;gap:80px;padding-bottom:35px}
.hero .our-story{width:min(100%,650px);padding:24px 20px;scroll-margin-top:100px;text-align:center;background:rgba(16,40,32,.32);border:1px solid rgba(255,255,255,.35)}
.hero .our-story h2{font-size:clamp(36px,5vw,54px);margin:0 0 10px;color:white}.hero .story-placeholder{font-size:13px;letter-spacing:1px;margin:0;color:white}
@media(max-width:700px){.hero{gap:100px;padding-bottom:25px}.hero .our-story{padding:20px 15px;scroll-margin-top:85px}}

.hero a.our-story{display:block;color:white;text-decoration:none;transition:background .2s}.hero a.our-story:hover{background:rgba(16,40,32,.5)}.hero a.our-story h2{margin:0}

/* Matching family portrait proportions with face-safe crops. */
.family-grid{align-items:start}.card .family-portrait{display:block;width:100%;height:auto;aspect-ratio:4 / 3;object-fit:cover;object-position:50% 35%}.bride-family .family-portrait{object-position:50% 30%}
.family-member{padding:22px 0;border-top:1px solid #e5ddce}.family-member:first-of-type{margin-top:24px}.family-member:last-child{padding-bottom:0}.family-member h4{font:500 30px/1.2 'Cormorant Garamond',serif;margin:8px 0}.family-member p{margin:10px 0 0}.family-member .eyebrow{font-size:10px;letter-spacing:2px}

.event-location-map{display:block;width:100%;height:300px;border:0;outline:0;box-shadow:none;margin:16px 0 24px;border-radius:0;background:transparent}@media(max-width:700px){.event-location-map{height:240px}}

/* The direction label and map share exactly the same left and right edges. */
.event-map-block{display:block;width:100%;margin:20px 0 30px;padding:0;border:0;border-radius:0;box-shadow:none;background:none;text-align:left;color-scheme:light}
.event-map-block .venue-map{display:block;width:100%;margin:0;padding:0 0 10px;text-align:left;line-height:1.5}
.event-map-block .event-location-map{display:block;box-sizing:border-box;width:100%;height:300px;margin:0;padding:0;border:0!important;outline:0;box-shadow:none;border-radius:0;background:#f7f3ea;color-scheme:light}
@media(max-width:700px){.event-map-block .event-location-map{height:240px}}

/* Tap anywhere on the preview to open the actual venue in Google Maps. */
.event-map-surface{position:relative;width:100%;margin:0;padding:0}
.event-map-surface .event-location-map{pointer-events:none}
.event-map-open{position:absolute;inset:0;display:block;z-index:1;cursor:pointer}
.event-map-open:focus-visible{outline:3px solid #b59568;outline-offset:-3px}

/* Intertwined initials shared across the invitation pages. */
.brand .monogram{position:relative;display:block;width:70px;height:52px;color:var(--forest);font-family:"Cormorant Garamond",Georgia,serif;font-weight:500;line-height:1;isolation:isolate}.brand .monogram-a,.brand .monogram-r{position:absolute;color:inherit;font-size:49px;letter-spacing:-4px}.brand .monogram-a{left:2px;top:0;z-index:2}.brand .monogram-r{left:29px;top:7px;font-style:italic;z-index:1}.brand .monogram-amp{position:absolute;left:24px;top:22px;z-index:3;color:var(--gold);font-size:24px;font-style:italic;text-shadow:0 1px var(--cream),1px 0 var(--cream),-1px 0 var(--cream)}

/* Show the selected second concept from the original monogram sheet. */
.brand .monogram-infinity{width:108px;height:60px;overflow:hidden;background:#faf7f0;mix-blend-mode:multiply}.brand .monogram-infinity img{position:absolute;width:307.2%;height:auto;max-width:none;left:-100%;top:-31.6667%;display:block}@media(min-width:701px){.brand .monogram-infinity{width:120px;height:66.67px}}

/* Centre the couple's monogram independently of navigation width. */
.nav{position:sticky;justify-content:flex-end}
.nav .brand{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}
@media(min-width:701px){
.nav,.launch-home .nav{display:flex;flex-direction:column;align-items:center;justify-content:center;height:auto;min-height:118px;padding:8px 24px 12px;gap:8px;flex-shrink:0}
.nav .brand{position:static;left:auto;top:auto;transform:none;display:block;flex-shrink:0;line-height:1}
.nav nav{position:static;width:auto;display:flex;justify-content:center;align-items:center;flex-shrink:0;flex-wrap:wrap;row-gap:8px}
}
