/* Joe & Nan's wedding album — shared feature and dedicated story. */
.wedding-feature{margin-top:58px;display:grid;grid-template-columns:1fr 1fr;background:#e7e9dd;align-items:center;border:1px solid #d8ddce}
.wedding-feature-copy{padding:48px clamp(26px,4vw,62px)}
.wedding-feature .eyebrow{color:var(--rust);margin-bottom:20px}
.wedding-feature h2{font-size:clamp(40px,4.6vw,64px);margin-bottom:21px}
.wedding-feature-copy>p:not(.eyebrow){max-width:440px;font-size:14px;color:#536052}
.wedding-feature .button{margin-top:26px}
.wedding-feature-photo{position:relative;display:block;margin:24px 24px 24px 0;background:#fcf9f0}
.wedding-feature-photo img{width:100%;height:auto}
.wedding-feature-photo>span{position:absolute;bottom:20px;left:20px;background:var(--paper);padding:9px 12px;font-size:10px;letter-spacing:.5px}
.wedding-feature-photo .circle-arrow{left:auto;right:20px;padding:0;font-size:22px}
.wedding-feature-photo>span:not(.circle-arrow){max-width:calc(100% - 72px);line-height:1.6}
.wedding-page .site-header nav{gap:26px}
.wedding-breadcrumb{display:flex;flex-wrap:wrap;gap:12px;padding-top:29px;color:var(--muted);font-size:11px}
.wedding-breadcrumb a:hover{text-decoration:underline}
.wedding-hero{display:grid;grid-template-columns:.95fr 1.05fr;align-items:center;gap:70px;padding-block:45px 70px}
.wedding-hero .eyebrow{color:var(--rust)}
.wedding-hero h1{font-size:clamp(72px,7.9vw,112px);line-height:.96;margin:26px 0 20px;letter-spacing:-3px}
.wedding-hero h1 span{display:block;font-size:.57em;font-style:italic;line-height:1.15;color:var(--rust);letter-spacing:-1.5px;margin-top:12px}
.wedding-date{display:flex;align-items:center;gap:18px;margin:26px 0;font-size:11px;letter-spacing:2px;font-weight:600}
.wedding-date::before{content:'';width:35px;height:1px;background:var(--rust)}
.wedding-hero-copy>p:not(.eyebrow,.wedding-date){max-width:405px;color:#616b60;font-size:15px;line-height:1.9}
.wedding-hero-actions{display:flex;flex-wrap:wrap;gap:23px;align-items:center;margin-top:29px}
.wedding-cover{margin:0;transform:rotate(2deg);background:#fffdf7;padding:12px 12px 0;box-shadow:0 13px 35px #253b3420;border:1px solid #e8e2d5}
.wedding-cover a{display:block}
.wedding-cover img{width:100%;height:auto}
.wedding-cover figcaption{padding:14px 4px 17px;display:flex;justify-content:space-between;gap:14px;align-items:center;font:italic 14px Georgia,serif}
.wedding-cover figcaption small{font:9px var(--sans);letter-spacing:.7px;font-style:normal;color:var(--muted)}
.wedding-facts{background:var(--ink);color:var(--paper);padding-block:34px}
.wedding-facts>div{display:grid;grid-template-columns:.7fr 1.05fr 1.05fr;gap:35px}
.wedding-facts p{font:25px/1.35 var(--serif)}
.wedding-facts .eyebrow{display:block;color:#ced3bf;font-size:9px;margin-bottom:9px}
.wedding-album{padding-block:77px}
.wedding-album-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:27px}
.wedding-album-heading .eyebrow,.wedding-announcement .eyebrow{color:var(--rust);margin-bottom:14px}
.wedding-album-heading h2{font-size:49px}
.wedding-album-heading p:not(.eyebrow){font-size:13px;color:var(--muted);margin-top:14px}
.wedding-switch{display:flex;gap:4px;padding:4px;background:#e7e9df;border:1px solid #d6dbce;border-radius:5px;flex-shrink:0}
.wedding-switch button{background:none;padding:12px 16px;border-radius:3px;min-height:43px;font-size:12px;font-weight:600;white-space:nowrap}
.wedding-switch button[aria-pressed=true]{background:var(--green);color:white;box-shadow:0 2px 4px #23342114}
.restoration-note{font-size:12px;color:#596453;line-height:1.8;border-left:2px solid #aab49b;padding:1px 0 1px 16px;max-width:790px;margin-bottom:32px}
.wedding-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:34px 25px}
.wedding-photo{margin:0;min-width:0}
.wedding-photo a{position:relative;display:block;background:#eee9db;box-shadow:0 5px 16px #2334210c}
.wedding-photo img{width:100%;height:auto;aspect-ratio:1;object-fit:contain;transition:opacity .15s}
.wedding-photo .enlarge-mark{position:absolute;bottom:13px;right:13px;background:#f6f3eced;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-size:20px;transition:transform .15s}
.wedding-photo a:hover .enlarge-mark{transform:scale(1.12)}
.wedding-photo figcaption{display:grid;grid-template-columns:22px 1fr;gap:9px;margin-top:17px;align-items:baseline}
.wedding-photo figcaption>span{font-size:10px;color:var(--rust)}
.wedding-photo h3{font-size:27px}
.wedding-photo figcaption p{font-size:10px;margin-top:6px;color:var(--muted);letter-spacing:.4px}
.wedding-announcement{background:#ebe9df;border-block:1px solid #dddccf;padding-block:70px}
.wedding-announcement-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start}
.wedding-clipping{margin:0;padding:18px;background:#fdfbf5;box-shadow:0 6px 25px #23342112;max-width:420px;justify-self:center}
.wedding-clipping img{width:100%;height:auto}
.wedding-clipping a{display:block}
.wedding-clipping figcaption{padding-top:13px;text-align:center;font-size:11px;color:#606a5d}
.wedding-announcement h2{font-size:51px;line-height:1.05}
.wedding-announcement .announcement-intro{font-size:14px;margin:22px 0;color:#5e685c}
.wedding-announcement blockquote{margin:24px 0;font:25px/1.5 var(--serif);border-left:2px solid #a6ad97;padding-left:22px}
.wedding-announcement details{border-block:1px solid #cbcdbf;padding:18px 0;margin:25px 0}
.wedding-announcement summary{cursor:pointer;font-size:13px;font-weight:600;min-height:25px}
.wedding-transcript{padding:20px 0 4px;font-size:14px;line-height:1.8}
.wedding-transcript p+p{margin-top:16px}
.wedding-announcement .source-note{font-size:11px;line-height:1.8;color:#606a5d;margin-top:18px}
.wedding-announcement-links{display:flex;gap:20px;flex-wrap:wrap}
.wedding-next{padding-block:58px;display:flex;justify-content:space-between;align-items:center;gap:30px}
.wedding-next h2{font-size:38px;margin:10px 0}
.wedding-next p:not(.eyebrow){font-size:13px;color:var(--muted);max-width:550px}
.wedding-footer{padding-block:25px;border-top:1px solid var(--line);display:flex;justify-content:space-between;flex-wrap:wrap;gap:20px;font-size:11px;color:var(--muted)}
.wedding-viewer{width:min(1100px,96vw);padding:22px;max-height:94vh;max-height:94dvh}
.wedding-viewer-top{display:flex;gap:20px;align-items:center;justify-content:space-between;padding-right:48px;margin-bottom:16px}
.wedding-viewer-top h2{font-size:30px;letter-spacing:-.4px}
.wedding-viewer-top p{font-size:10px;color:var(--muted);margin-top:6px}
.wedding-viewer-stage{display:grid;grid-template-columns:minmax(0,1fr);background:#e7e4da;gap:20px;padding:15px}
.wedding-viewer-stage.is-comparing{grid-template-columns:repeat(2,minmax(0,1fr))}
.wedding-viewer-stage figure{margin:0;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px}
.wedding-viewer-stage img{width:auto;max-width:100%;height:auto;max-height:57vh;object-fit:contain}
.wedding-viewer-stage figcaption{font-size:11px;font-weight:600}
.wedding-viewer-controls{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;align-items:center;margin-top:17px}
.wedding-viewer .wedding-switch button{padding:9px 12px;min-height:38px;font-size:11px}
.wedding-viewer-arrows{display:flex;align-items:center;gap:12px;font-size:12px}
.wedding-viewer-arrows button{width:42px;height:42px;border:1px solid #aebaa7;border-radius:50%;background:none;font-size:20px}
.wedding-viewer-note{font-size:11px;color:var(--muted);margin-top:13px}
.wedding-downloads{display:flex;flex-wrap:wrap;gap:20px;margin-top:14px}
.wedding-downloads a{font-size:11px;text-decoration:underline;text-underline-offset:4px}
@media(max-width:1000px){.wedding-hero{gap:35px}.wedding-hero h1{font-size:85px}.wedding-album-heading{align-items:flex-start;flex-direction:column;gap:20px}.wedding-announcement-grid{gap:38px}.wedding-announcement h2{font-size:43px}.wedding-grid{gap:28px 18px}.wedding-feature-copy{padding:30px}.wedding-feature h2{font-size:44px}}
@media(max-width:800px){.wedding-page .site-header{flex-wrap:wrap;padding-block:20px;gap:20px}.wedding-page .site-header nav{position:static;display:flex;box-shadow:none;padding:0;gap:22px;font-size:11px;flex-wrap:wrap}.wedding-hero{gap:30px;padding-top:35px;padding-bottom:50px}.wedding-hero h1{font-size:68px}.wedding-hero-copy>p:not(.eyebrow,.wedding-date){font-size:13px}.wedding-date{font-size:10px;gap:10px;letter-spacing:1px}.wedding-facts>div{gap:25px}.wedding-facts p{font-size:22px}.wedding-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.wedding-announcement-grid{gap:30px}.wedding-announcement h2{font-size:38px}.wedding-clipping{padding:10px}.wedding-feature-copy{padding:26px}.wedding-feature h2{font-size:39px}.wedding-feature-copy>p:not(.eyebrow){font-size:12px}.wedding-feature-photo{margin:15px 15px 15px 0}.wedding-feature-photo>span{bottom:12px;left:12px;font-size:8px}.wedding-feature-photo .circle-arrow{right:12px}.wedding-next{align-items:flex-start}}
@media(max-width:580px){.wedding-feature{grid-template-columns:1fr;margin-top:34px}.wedding-feature-copy{padding:30px 26px 10px}.wedding-feature h2{font-size:46px}.wedding-feature-copy>p:not(.eyebrow){font-size:13px}.wedding-feature-photo{margin:22px}.wedding-feature-photo>span{font-size:9px}.wedding-hero{grid-template-columns:1fr;gap:37px;padding-top:30px}.wedding-hero h1{font-size:84px;margin-top:18px}.wedding-hero h1 span{font-size:.52em}.wedding-hero-copy>p:not(.eyebrow,.wedding-date){font-size:14px}.wedding-cover{margin-inline:7px;transform:rotate(1.5deg)}.wedding-breadcrumb{font-size:10px;gap:8px;padding-top:22px}.wedding-date{font-size:11px;margin-block:23px}.wedding-facts{padding-block:26px}.wedding-facts>div{grid-template-columns:1fr;gap:23px}.wedding-facts p{font-size:25px}.wedding-facts .eyebrow{margin-bottom:6px}.wedding-album{padding-block:48px}.wedding-album-heading h2{font-size:40px}.wedding-album-heading p:not(.eyebrow){font-size:12px}.wedding-switch{width:100%;justify-content:center}.wedding-switch button{flex:1;padding-inline:12px}.wedding-grid{grid-template-columns:1fr;gap:30px}.wedding-photo figcaption{margin-top:13px}.wedding-photo h3{font-size:30px}.wedding-photo figcaption p{font-size:11px}.wedding-announcement{padding-block:45px}.wedding-announcement-grid{grid-template-columns:1fr;gap:36px}.wedding-announcement-copy{grid-row:1}.wedding-announcement h2{font-size:44px}.wedding-clipping{max-width:340px}.wedding-next{flex-direction:column;padding-block:40px;gap:24px}.wedding-next h2{font-size:36px}.wedding-footer{font-size:10px}.wedding-viewer{padding:15px}.wedding-viewer-top{margin-bottom:14px;padding-right:35px}.wedding-viewer-top h2{font-size:27px}.wedding-viewer-stage{padding:8px;gap:16px}.wedding-viewer-stage.is-comparing{grid-template-columns:1fr}.wedding-viewer-stage img{max-height:48vh}.wedding-viewer-stage.is-comparing img{max-height:43vh}.wedding-viewer-controls{gap:12px}.wedding-viewer-arrows{margin-left:auto}.wedding-viewer .wedding-switch{order:-1}.wedding-viewer .wedding-switch button{padding:10px 8px;font-size:10px}}
@media(prefers-reduced-motion:reduce){.wedding-photo img,.wedding-photo .enlarge-mark{transition:none}}
@media(max-width:580px){.wedding-hero h1{font-size:clamp(68px,21vw,84px)}}
