/* Wedding photography follows the studio's established dark editorial style. */
.wedding-hero { padding:64px 0; background:var(--noir-deep); }
.wedding-hero-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.05fr); gap:clamp(32px,6vw,88px); align-items:center; }
.wedding-breadcrumbs { display:flex; flex-wrap:wrap; gap:12px; margin-bottom:36px; font:12px/1.6 var(--font-ui); color:var(--gold-light); }
.wedding-breadcrumbs a { color:var(--cream); }
.wedding-hero h1 { font:300 clamp(64px,7vw,104px)/.98 var(--font-display); letter-spacing:-.02em; text-transform:uppercase; margin-bottom:28px; }
.wedding-hero-copy > p { max-width:42ch; font:19px/1.8 var(--font-body); color:var(--cream); margin-bottom:24px; }
.wedding-hero-copy .wedding-location { font:14px/1.8 var(--font-ui); color:var(--muted); margin-bottom:32px; }
.wedding-actions { display:flex; flex-wrap:wrap; gap:12px; }
.wedding-actions .btn { padding-inline:24px; letter-spacing:.08em; }
.wedding-hero-photo { margin:0; }
.wedding-hero-photo img { width:100%; height:auto; max-height:760px; object-fit:contain; }
.wedding-story-grid { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:clamp(36px,6vw,88px); align-items:center; }
.wedding-story figure { margin:0; }
.wedding-story img { width:100%; height:auto; border-radius:var(--radius-sm); }
.wedding-story figcaption { margin-top:14px; font:12px/1.7 var(--font-ui); color:var(--muted); }
.wedding-story h2, .wedding-booking h2, .wedding-questions h2 { font:300 clamp(40px,4.8vw,64px)/1.03 var(--font-display); text-transform:uppercase; margin-bottom:28px; text-wrap:balance; }
.wedding-story p { font:17px/1.85 var(--font-body); color:var(--cream); margin-bottom:22px; max-width:65ch; }
.wedding-text-link { display:inline-flex; align-items:center; gap:12px; padding-block:12px; font:600 13px/1.7 var(--font-ui); color:var(--gold-light); }
.wedding-text-link:hover, .wedding-breadcrumbs a:hover { text-decoration:underline; text-underline-offset:5px; }
.section-head .right { font-size:14px; letter-spacing:0; text-transform:none; line-height:1.7; }
.wedding-gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.wedding-gallery figure { margin:0; min-width:0; }
.wedding-gallery img { width:100%; height:auto; aspect-ratio:3/4; object-fit:contain; background:var(--noir); }
.wedding-packages { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; }
.wedding-package { padding:clamp(28px,4vw,48px); border:1px solid var(--line); border-radius:var(--radius-md); background:var(--noir-soft); display:flex; flex-direction:column; }
.wedding-package h3 { font:300 clamp(30px,3.5vw,44px)/1.15 var(--font-display); text-transform:uppercase; margin-bottom:28px; }
.wedding-price { font:300 68px/1 var(--font-display); color:var(--gold-light); margin-bottom:14px; font-variant-numeric:tabular-nums; }
.wedding-price sup { font-size:32px; vertical-align:super; margin-right:4px; }
.wedding-price-note { font:13px/1.7 var(--font-ui); color:var(--muted); margin-bottom:28px; max-width:35ch; }
.wedding-package ul { margin:0 0 32px; padding:24px 0 0; border-top:1px solid var(--line); flex:1; }
.wedding-package li { font:15px/1.8 var(--font-ui); margin-bottom:10px; }
.wedding-package .btn { width:100%; letter-spacing:.08em; }
.wedding-package-note { max-width:65ch; margin-top:24px; font:14px/1.8 var(--font-body); color:var(--muted); }
.wedding-booking-grid, .wedding-question-grid { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:64px; align-items:start; }
.wedding-booking-grid > div > p, .wedding-question-grid > div > p { max-width:36ch; font:17px/1.8 var(--font-body); color:var(--muted); }
.wedding-booking dl > div { display:grid; grid-template-columns:130px minmax(0,1fr); gap:24px; padding:24px 0; border-top:1px solid var(--line); }
.wedding-booking dt { font:600 13px/1.8 var(--font-ui); color:var(--gold-light); }
.wedding-booking dd { margin:0; font:16px/1.85 var(--font-body); color:var(--cream); }
.wedding-questions details { border-bottom:1px solid var(--line); }
.wedding-questions summary { cursor:pointer; padding:22px 24px 22px 0; font:500 16px/1.6 var(--font-ui); }
.wedding-questions details[open] summary { color:var(--gold-light); }
.wedding-questions details p { padding-bottom:24px; font:16px/1.85 var(--font-body); color:var(--muted); max-width:65ch; }
#wedding-packages, #wedding-booking { scroll-margin-top:120px; }
.wedding-hero-copy, .wedding-story-grid > div, .wedding-booking-grid > *, .wedding-question-grid > * { min-width:0; }
@media(max-width:1100px) { .wedding-actions { flex-direction:column; align-items:flex-start; } }
@media(max-width:900px) {
  .wedding-hero-grid, .wedding-story-grid, .wedding-booking-grid, .wedding-question-grid { grid-template-columns:1fr; gap:36px; }
  .wedding-hero-photo, .wedding-story figure { max-width:660px; }
  .wedding-hero-photo img { max-height:none; }
  .wedding-story-grid > div { order:-1; }
  .wedding-packages { gap:20px; }
  .wedding-package { padding:28px 24px; }
}
@media(max-width:600px) {
  .wedding-hero { padding-block:40px; }
  .wedding-hero h1 { font-size:clamp(50px,12vw,72px); }
  .wedding-hero-copy > p { font-size:17px; }
  .wedding-actions { align-items:stretch; }
  .wedding-actions .btn { width:100%; }
  .wedding-gallery { grid-template-columns:1fr; gap:24px; }
  .wedding-gallery img { aspect-ratio:auto; }
  .wedding-packages { grid-template-columns:1fr; }
  .wedding-booking dl > div { grid-template-columns:1fr; gap:8px; }
}

/* Full-width bridal hero with a directional gradient mask. */
.wedding-hero { position:relative; isolation:isolate; overflow:hidden; min-height:clamp(720px,85svh,980px); padding:0; display:flex; align-items:center; }
.wedding-hero-grid { display:block; width:100%; padding-block:72px; }
.wedding-hero-photo { position:absolute; inset:0; z-index:-2; max-width:none; }
.wedding-hero-photo img { display:block; width:100%; height:100%; max-height:none; object-fit:cover; object-position:62% 64%; }
.wedding-hero::after { content:""; position:absolute; inset:0; z-index:-1; pointer-events:none; background:linear-gradient(90deg,rgba(13,14,12,.94) 0%,rgba(13,14,12,.82) 23%,rgba(13,14,12,.40) 48%,rgba(13,14,12,.03) 76%),linear-gradient(0deg,rgba(13,14,12,.72),transparent 28%); }
.wedding-hero-copy { max-width:580px; }
.wedding-hero h1 { font-size:clamp(64px,6.2vw,96px); }
.wedding-hero-copy > p { max-width:38ch; }
.wedding-hero-copy .wedding-location { color:var(--cream); }
.wedding-hero .wedding-actions { flex-direction:row; align-items:center; }
@media(max-width:900px) {
 .wedding-hero { min-height:1100px; align-items:flex-start; }
 .wedding-hero-grid { padding-block:44px 520px; }
 .wedding-hero-copy { max-width:600px; }
 .wedding-hero-photo { top:auto; height:68%; }
 .wedding-hero-photo img { object-position:60% 65%; }
 .wedding-hero::after { background:linear-gradient(180deg,#131412 0%,rgba(19,20,18,.98) 26%,rgba(19,20,18,.88) 40%,rgba(19,20,18,.22) 64%,rgba(19,20,18,.04) 83%,rgba(19,20,18,.65) 100%); }
 .wedding-hero h1 { font-size:clamp(48px,9vw,76px); }
}
@media(max-width:600px) {
 .wedding-hero { min-height:1050px; }
 .wedding-hero-grid { padding-bottom:460px; }
 .wedding-hero .wedding-actions { align-items:stretch; flex-direction:column; }
 .wedding-hero-photo { height:60%; }
 .wedding-hero::after { background:linear-gradient(180deg,#131412 0%,#131412 34%,rgba(19,20,18,.90) 45%,rgba(19,20,18,.16) 67%,transparent 85%,rgba(19,20,18,.65) 100%); }
}@media(min-width:601px) and (max-width:900px) {
 .wedding-hero { min-height:820px; align-items:center; }
 .wedding-hero-grid { padding-block:56px; }
 .wedding-hero-copy { max-width:370px; }
 .wedding-hero h1 { font-size:60px; }
 .wedding-hero-copy > p { font-size:17px; max-width:32ch; }
 .wedding-hero-photo { inset:0; height:100%; }
 .wedding-hero-photo img { object-position:62% 62%; }
 .wedding-hero::after { background:linear-gradient(90deg,rgba(13,14,12,.94),rgba(13,14,12,.72) 36%,rgba(13,14,12,.16) 65%,transparent),linear-gradient(0deg,rgba(13,14,12,.65),transparent 30%); }
 .wedding-hero .wedding-actions { flex-direction:column; align-items:flex-start; }
}

/* Natural image proportions, without letterboxing or framed tiles. */
.wedding-gallery { display:block; columns:3; column-gap:22px; }
.wedding-gallery figure { display:block; break-inside:avoid; margin:0 0 22px; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; overflow:hidden; }
.wedding-gallery img { display:block; width:100%; height:auto; aspect-ratio:auto; object-fit:initial; background:transparent; border:0; border-radius:0; box-shadow:none; }
@media(max-width:1000px) { .wedding-gallery { columns:2; column-gap:18px; } .wedding-gallery figure { margin-bottom:18px; } }
@media(max-width:600px) { .wedding-gallery { columns:1; } .wedding-gallery figure { margin-bottom:20px; } }
