/* The Signature Wedding: real photographs, dimensional prints and quiet light. */
.wed-hero, .wed-inspiration, .wed-services, .wed-film-feature, .wed-value, .wed-stories, .wed-process, .wed-planning { --wed-gold:#d1b48d; --wed-wine:#4b1020; --wed-cream:#fff8ed; color:#281d19; font-family:var(--tn-sans,system-ui,sans-serif); }
.wed-label { margin:0 0 1rem; color:#7b2435; font-size:.72rem; font-weight:650; line-height:1.6; letter-spacing:.12em; text-transform:uppercase; }
.wed-hero h1, .wed-inspiration h2, .wed-services h2, .wed-film-feature h2, .wed-value h2, .wed-stories h2, .wed-process h2, .wed-planning h2 { margin:0; font:400 clamp(2.4rem,4.8vw,4.5rem)/1.05 var(--tn-display,Georgia,serif); letter-spacing:-.045em; text-transform:none; text-wrap:balance; }
.wed-inspiration h2 em, .wed-services h2 em, .wed-film-feature h2 em, .wed-stories h2 em, .wed-process h2 em { color:#781a2c; font-weight:inherit; }
.wed-button { display:inline-flex; align-items:center; justify-content:space-between; gap:1.5rem; width:fit-content; max-width:100%; min-height:50px; padding:.9rem 1.2rem; border:1px solid #ac8f71; color:var(--wed-cream); background:#5d1125; font:600 .85rem/1.5 var(--tn-sans,system-ui,sans-serif); text-decoration:none; }
.wed-button:hover { background:#38101b; }
.wed-button .tn-icon { width:1.1em; height:1.1em; flex:none; }
.wed-hero { position:relative; isolation:isolate; display:grid; grid-template-columns:1.1fr 1fr; min-height:clamp(580px,57vw,800px); background:#1e1a1b; color:var(--wed-cream); overflow:hidden; }
.wed-hero::after { content:''; position:absolute; inset:0; z-index:-1; pointer-events:none; background:linear-gradient(90deg,transparent 33%,#1e1a1bd9 54%,#1e1a1b 75%); }
.wed-hero-image { position:absolute; inset:0 25% 0 0; z-index:-2; margin:0; }
.wed-hero-image > picture { display:block; width:100%; height:100%; }
.wed-hero-image img { display:block; width:100%; height:100%; object-fit:cover; object-position:50% 76%; }
.wed-hero-copy { grid-column:2; align-self:center; padding:clamp(36px,5vw,80px) clamp(28px,5vw,78px) clamp(42px,6vw,90px) 1rem; max-width:650px; }
.wed-hero .wed-label { color:#edd1b4; font-size:.68rem; }
.wed-hero h1 { font-size:clamp(3.2rem,6.7vw,6.5rem); line-height:.98; }
.wed-hero h1 em { color:#e7c9a5; font-weight:inherit; }
.wed-hero-copy > p:not(.wed-label) { max-width:40ch; margin:1.5rem 0; color:#eee3d9; font-size:1rem; line-height:1.7; }
.wed-hero .wed-button { background:#fff7e9; color:#4b1020; border-color:#fff7e9; }
.wed-hero .wed-button:hover { background:#e9d2b5; }
.wed-hero-copy .wed-hero-note { margin:1.1rem 0 0; font-size:.72rem; color:#dbc2ae; letter-spacing:.015em; }
.wed-inspiration { position:relative; display:grid; grid-template-columns:1fr 1.1fr; gap:clamp(24px,4vw,65px); padding-block:clamp(54px,8vw,110px); background:radial-gradient(ellipse at 15% 10%,#fffdf7 0,transparent 65%),#f4ecdf; }
.wed-inspiration-heading { align-self:center; padding-bottom:2rem; }
.wed-inspiration-image { position:relative; z-index:1; margin:0; padding:10px; background:#fffbf4; box-shadow:0 2px 3px #3b24121c,0 26px 42px -25px #45251a66; transform:perspective(1400px) rotateY(-3deg) rotateZ(1deg); }
.wed-inspiration-image::before { content:''; position:absolute; z-index:-1; inset:13px -12px -13px 15px; background:#e0c8a7; border:1px solid #c5a77e; transform:rotate(-2deg); }
.wed-inspiration-image img { width:100%; height:auto; aspect-ratio:1.5; object-fit:cover; display:block; }
.wed-inspiration-image figcaption { padding:.7rem .15rem .1rem; color:#715d4e; font-size:.67rem; line-height:1.5; }
.wed-inspiration-note { grid-column:1; grid-row:2; margin-top:-5.5rem; align-self:end; max-width:40ch; }
.wed-detail-line { display:block; width:80px; height:1px; background:#ae8558; margin-bottom:1.5rem; }
.wed-inspiration-note p { color:#675447; font-size:.95rem; line-height:1.75; }
.wed-inspiration-note p:first-of-type { color:#5d1726; font:400 clamp(1.35rem,2.3vw,2rem)/1.35 var(--tn-display,Georgia,serif); }
.wed-services { padding-block:clamp(48px,6vw,90px); background:#fcf7f0; }
.wed-section-heading { max-width:850px; }
.wed-service-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(20px,2.8vw,40px); margin:clamp(28px,4vw,54px) 0; }
.wed-service-grid article { min-width:0; background:#fffdf8; border:1px solid #d6c3ad; box-shadow:0 14px 25px -24px #39201699; scroll-margin-top:5rem; }
.wed-service-grid figure { margin:0; }
.wed-service-grid figure img { display:block; width:100%; height:auto; aspect-ratio:1.25; object-fit:cover; }
.wed-service-grid article:first-child img { object-position:center top; }
.wed-service-grid figcaption { padding:.75rem 1.2rem; color:#7a503e; background:#f0e5d7; font-size:.65rem; line-height:1.5; font-weight:600; letter-spacing:.065em; text-transform:uppercase; }
.wed-service-grid article > div { padding:1.4rem 1.2rem; }
.wed-service-grid h3 { margin:0 0 .8rem; font:400 clamp(1.7rem,2.3vw,2.3rem)/1.15 var(--tn-display,Georgia,serif); letter-spacing:-.03em; }
.wed-service-grid p { margin:0 0 1rem; color:#66564b; font-size:.93rem; line-height:1.7; }
.wed-service-grid a { display:inline-flex; align-items:center; gap:.5rem; min-height:44px; color:#791c2e; text-decoration:underline; text-underline-offset:.22em; font-size:.84rem; font-weight:600; }
.wed-package-note { display:grid; grid-template-columns:1.1fr 1fr; gap:clamp(24px,5vw,80px); padding:clamp(25px,3.5vw,50px); border:1px solid #d1b999; background:linear-gradient(110deg,#eaddc9,#f3e9da); box-shadow:inset 0 1px 0 #fffdf7; scroll-margin-top:5rem; }
.wed-package-copy { align-self:center; max-width:48ch; }
.wed-sparkler-photo { width:100%; max-width:400px; justify-self:center; margin:0; }
/* Frame the photograph inside the supplied portrait screen capture. */
.wed-sparkler-photo img { display:block; width:100%; height:auto; aspect-ratio:1206 / 1600; object-fit:cover; object-position:center; }
.wed-sparkler-photo figcaption { margin-top:.55rem; color:#675447; font-size:.78rem; line-height:1.5; }
.wed-package-note .wed-label { color:#79583c; }
.wed-package-note h3 { margin:0 0 1.4rem; font:400 clamp(1.8rem,2.9vw,2.8rem)/1.15 var(--tn-display,Georgia,serif); letter-spacing:-.035em; }
.wed-package-note h3 em { color:#791c2e; font-weight:inherit; }
.wed-package-note p { margin:0 0 1rem; color:#675447; font-size:.92rem; line-height:1.7; }
.wed-package-note .wed-scope { font-size:.8rem; margin-bottom:0; }
.wed-package-note .wed-enhancement-choice { display:flex; align-items:center; gap:.7rem; flex-wrap:wrap; margin:1rem 0 1.4rem; }
.wed-enhancement-choice strong { font:400 1.4rem/1.25 var(--tn-display,Georgia,serif); color:#5d1726; }
.wed-enhancement-choice span { font:italic .85rem var(--tn-display,Georgia,serif); color:#675447; }
.wed-film-feature { display:grid; grid-template-columns:1.1fr .9fr; align-items:center; gap:clamp(32px,8vw,120px); padding-block:clamp(50px,8vw,115px); background:#f4ebdf; }
.wed-morning-feature { grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); }
.wed-morning-film { min-width:0; margin:0; }
.wed-morning-film video { display:block; width:100%; height:auto; aspect-ratio:16/9; background:#171311; }
.wed-morning-film figcaption { margin-top:.55rem; color:#675447; font-size:.78rem; }
.wed-film-copy { max-width:42ch; }
.wed-film-copy > p:not(.wed-label) { margin:1.3rem 0 0; color:#66554a; font-size:1rem; line-height:1.75; }
.wed-film { max-width:370px; width:100%; justify-self:center; margin:0; scroll-margin-top:5rem; }
.wed-film-label { display:flex; justify-content:space-between; gap:1rem; padding-bottom:.65rem; color:#7c4f3b; font-size:.65rem; font-weight:600; letter-spacing:.05em; text-transform:uppercase; }
.wed-film-label time { font-variant-numeric:tabular-nums; }
.wed-film-mount { position:relative; isolation:isolate; padding:9px; background:#fffaf2; box-shadow:0 25px 40px -26px #31170b88; transform:rotate(1deg); }
.wed-film-mount::before { content:''; position:absolute; z-index:-1; inset:5px -10px -10px 8px; background:#d1b48d; transform:rotate(-2deg); }
.wed-film video { display:block; width:100%; height:auto; aspect-ratio:9/16; background:#241b1a; }
.wed-film figcaption { margin-top:1.2rem; color:#715b4c; font-size:.76rem; line-height:1.6; }
.wed-value { display:grid; grid-template-columns:1.1fr 1fr; gap:1rem clamp(30px,6vw,90px); padding-block:clamp(50px,7vw,100px); background:radial-gradient(ellipse at 0 0,#6b2438 0,transparent 70%),#2e101b; color:var(--wed-cream); }
.wed-value .wed-label { color:#d6b48d; }
.wed-value h2 em { color:#d7b68f; font-weight:inherit; }
.wed-value-intro > p:not(.wed-label) { color:#decbc1; max-width:40ch; font-size:.96rem; line-height:1.75; margin-top:1.5rem; }
.wed-value-list { list-style:none; padding:0; margin:0 0 1.2rem; }
.wed-value-list li { display:grid; grid-template-columns:2.2rem minmax(0,1fr); gap:1rem; border-top:1px solid #926c62; padding:1.2rem 0; }
.wed-value-list li > span { color:#c6a77f; font:italic 400 1.5rem/1.2 var(--tn-display,Georgia,serif); }
.wed-value-list h3 { margin:0; font:400 1.55rem/1.2 var(--tn-display,Georgia,serif); letter-spacing:-.025em; }
.wed-value-list p { color:#decbc1; margin:.7rem 0 0; font-size:.9rem; line-height:1.7; }
.wed-price-question { grid-column:1/-1; border-top:1px solid #926c62; padding-block:.8rem; }
.wed-price-question summary { cursor:pointer; min-height:44px; align-content:center; color:#f3e2d2; font-size:.9rem; font-weight:600; }
.wed-price-question p { max-width:82ch; margin:.8rem 0 .5rem; color:#decbc1; font-size:.93rem; line-height:1.75; }
.wed-stories { padding-block:clamp(50px,7vw,100px); background:#fcf7f0; }
.wed-portraits { display:grid; grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr); align-items:center; gap:clamp(26px,5vw,72px); margin-top:clamp(30px,5vw,65px); }
.wed-portrait { margin:0; min-width:0; }
.wed-portrait:first-child { transform:rotate(-1deg); }
.wed-portrait:last-child { transform:translateY(24px) rotate(.7deg); }
.wed-portrait .gallery-open { position:relative; padding:9px; background:#fffdf8; aspect-ratio:auto; box-shadow:0 2px 2px #40271b16,0 22px 35px -24px #40271b88; }
.wed-portrait img { display:block; width:100%; height:auto; }
.wed-portrait .gallery-open:hover img { transform:none; }
.wed-expand { position:absolute; right:1rem; bottom:1rem; display:grid; place-items:center; width:30px; height:30px; padding:6px; border-radius:50%; color:#5d1726; background:#fffbf4; }
.wed-expand .tn-icon { width:18px; height:18px; }
.wed-portrait figcaption { padding:.8rem .15rem 0; color:#71604f; font-size:.76rem; line-height:1.6; }
.wed-portrait figcaption strong { display:block; color:#40281f; font:400 1.3rem/1.3 var(--tn-display,Georgia,serif); letter-spacing:-.02em; }
.wed-portrait figcaption a { display:inline-flex; align-items:center; gap:.4rem; min-height:44px; color:#791c2e; text-decoration:underline; text-underline-offset:.2em; }
.wed-process { padding-block:clamp(48px,6vw,90px); background:#f0e6d7; }
.wed-steps { list-style:none; counter-reset:wed-step; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(24px,4vw,65px); padding:0; margin:2.4rem 0 0; }
.wed-steps li { counter-increment:wed-step; border-top:1px solid #bba083; padding-top:1.2rem; }
.wed-steps li::before { content:'0' counter(wed-step); display:block; color:#8b6a48; font:italic 400 1.6rem/1 var(--tn-display,Georgia,serif); margin-bottom:1.1rem; }
.wed-steps h3 { margin:0; font:400 1.5rem/1.2 var(--tn-display,Georgia,serif); letter-spacing:-.025em; }
.wed-steps p { color:#66554a; font-size:.93rem; line-height:1.75; margin:.75rem 0 0; }
.wed-planning { padding-block:clamp(50px,7vw,100px); background:#4b1020; color:var(--wed-cream); text-align:center; }
.wed-planning .wed-label { color:#d7b68f; }
.wed-planning h2 em { color:#d7b68f; font-weight:inherit; }
.wed-planning .wed-button { margin-top:2rem; background:#fff7e9; color:#4b1020; border-color:#fff7e9; }
@media(max-width:1000px) { .wed-hero { grid-template-columns:1fr 1fr; } .wed-hero-copy { padding-right:28px; } .wed-hero h1 { font-size:clamp(3rem,6.5vw,5.5rem); } .wed-inspiration { grid-template-columns:1fr 1fr; gap:2rem; } .wed-inspiration-note { margin-top:-3rem; } }
@media(max-width:720px) {
 .wed-hero { display:block; min-height:0; background:#2e101b; }
 .wed-hero::after { display:none; }
 .wed-hero-image { position:relative; inset:auto; z-index:auto; aspect-ratio:1.5; }
 .wed-hero-copy { max-width:none; padding:2.1rem var(--edge,22px) 2.5rem; }
 .wed-hero h1 { font-size:clamp(3.2rem,12vw,5rem); }
 .wed-hero-copy > p:not(.wed-label) { max-width:48ch; font-size:.95rem; margin:1.2rem 0; }
 .wed-hero-copy .wed-hero-note { font-size:.7rem; margin-bottom:0; }
 .wed-inspiration { grid-template-columns:1fr; gap:1.8rem; padding-block:3.2rem; }
 .wed-inspiration-heading { padding:0; }
 .wed-inspiration-image { margin-right:9px; transform:rotate(.6deg); }
 .wed-inspiration-image img { aspect-ratio:1.5; }
 .wed-inspiration-note { grid-column:auto; grid-row:auto; margin:0; max-width:60ch; }
 .wed-detail-line { margin-bottom:1.1rem; }
 .wed-service-grid { grid-template-columns:1fr; gap:1.5rem; }
 .wed-service-grid figure img { aspect-ratio:1.6; }
 .wed-service-grid article > div { padding:1.3rem; }
 .wed-package-note, .wed-film-feature, .wed-value { grid-template-columns:1fr; gap:2rem; }
 .wed-film { max-width:340px; justify-self:center; }
 .wed-value-list { margin-bottom:0; }
 .wed-portraits { grid-template-columns:1fr; gap:2rem; }
 .wed-portrait:first-child, .wed-portrait:last-child { transform:none; }
 .wed-steps { grid-template-columns:1fr; gap:1.4rem; }
 .wed-steps li { display:grid; grid-template-columns:2.1rem minmax(0,1fr); column-gap:.9rem; }
 .wed-steps li::before { grid-row:1/3; margin:0; }
 .wed-steps p { grid-column:2; }
}
@media(prefers-reduced-motion:reduce) { .wed-inspiration-image, .wed-film-mount, .wed-portrait:first-child, .wed-portrait:last-child { transform:none; } }
@media print { .wed-hero { display:block; min-height:0; color:#181412; background:#fff; } .wed-hero-image { position:relative; height:300px; z-index:auto; } .wed-hero::after { display:none; } .wed-hero-copy { max-width:none; padding:25px; } .wed-hero-copy > p:not(.wed-label), .wed-hero .wed-label { color:#281d19; } .wed-value, .wed-planning { background:#fff; color:#281d19; } .wed-value p, .wed-value h2 em, .wed-value .wed-label, .wed-price-question summary { color:#281d19; } .wed-inspiration-image, .wed-film-mount, .wed-portrait:first-child, .wed-portrait:last-child { transform:none; box-shadow:none; } }
