.weddings-page { --bg:#111310; --bg-alt:#181b16; --text:#f4f1e9; --muted:#c0c3b8; background:var(--bg); }
.weddings-page h1,.weddings-page h2,.w-film h3 { font-family:Georgia,'Times New Roman',serif; font-weight:400; letter-spacing:-.035em; }
.weddings-page .eyebrow { text-transform:uppercase; letter-spacing:.18em; font-size:11px; color:var(--muted); }
.weddings-page .site-header { background:rgba(17,19,16,.96); }
.w-intro { text-align:center; padding:90px 0 64px; }
.w-intro h1 { font-size:clamp(44px,6.8vw,88px); line-height:1.03; margin:24px 0; }
.w-lead { max-width:650px; margin:0 auto; font-size:18px; line-height:1.7; color:var(--muted); }
.w-intro-links { display:flex; justify-content:center; flex-wrap:wrap; gap:24px; margin:28px 0; font-size:14px; }
.w-intro-links a { padding-bottom:6px; border-bottom:1px solid #777e6b; }
.w-location { font-size:12px; color:var(--muted); }
.w-section-heading { padding:30px 0; border-top:1px solid var(--stroke); }
.w-section-heading h2 { font-size:clamp(28px,4vw,44px); }
.w-film { margin:0 0 72px; }
.w-player { position:relative; width:100%; aspect-ratio:16/9; overflow:hidden; background:#000; cursor:pointer; }
.w-player img,.w-player iframe { display:block; width:100%; height:100%; border:0; object-fit:contain; }
.w-play { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); display:flex; align-items:center; gap:12px; padding:16px 23px; border:1px solid rgba(255,255,255,.55); border-radius:999px; background:rgba(15,17,14,.82); color:#fff; font-size:14px; white-space:nowrap; }
.w-play span { font-size:18px; }
.w-player:hover .w-play { background:#f4f1e9; color:#111310; }
.w-player:focus-visible { outline:3px solid #ded4b4; outline-offset:5px; }
.w-duration { position:absolute; bottom:16px; right:16px; padding:5px 9px; background:rgba(0,0,0,.7); font-size:12px; color:#fff; }
.w-film-caption { display:grid; grid-template-columns:1fr 1fr; gap:30px; padding:23px 0; border-bottom:1px solid var(--stroke); }
.w-film h3 { font-size:36px; margin:0; }
.w-film-caption p { max-width:470px; margin:0; color:var(--muted); font-size:15px; }
.w-approach { background:var(--bg-alt); }
.weddings-page .section h2 { font-size:clamp(36px,5vw,60px); }
.w-process { display:grid; grid-template-columns:repeat(3,1fr); gap:40px; margin-top:44px; }
.w-process article { border-top:1px solid var(--stroke); padding-top:20px; }
.w-process span { font-size:12px; color:var(--muted); }
.w-process h3 { margin:18px 0 14px; font-size:19px; }
.w-process p,.w-about p,.w-faq p { color:var(--muted); }
.w-about { display:grid; grid-template-columns:.8fr 1fr; align-items:center; gap:70px; }
.w-about>img { width:100%; max-height:510px; object-fit:cover; object-position:center 35%; }
.w-language { margin-top:25px; font-size:12px; letter-spacing:.12em; }
.w-faq { display:grid; grid-template-columns:.8fr 1.2fr; gap:60px; border-top:1px solid var(--stroke); }
.w-faq details { border-bottom:1px solid var(--stroke); padding:20px 0; }
.w-faq summary { line-height:1.5; cursor:pointer; }
.w-faq details p { margin:16px 0 0; }
.w-contact { background:var(--bg-alt); text-align:center; }
.w-contact p { max-width:600px; margin:22px auto; color:var(--muted); }
.w-contact .contact-actions { justify-content:center; }
.weddings-page section[id],.weddings-page .w-film[id] { scroll-margin-top:90px; }
.weddings-page .wa-float { display:none; }
@media(max-width:700px) {
 .w-intro { padding:55px 0 35px; }
 .w-lead { font-size:16px; }
 .w-film-caption,.w-process,.w-about,.w-faq { grid-template-columns:1fr; gap:20px; }
 .w-film { margin-bottom:36px; }
 .w-film h3 { font-size:29px; }
 .w-play { padding:12px 17px; font-size:13px; }
 .w-duration { bottom:9px; right:9px; }
 .w-about>img { max-height:380px; }
 .w-intro-links { gap:16px; }
}
