/* =========================================================
   PAGES — page-specific sections (kept small; prefer components)
   ========================================================= */

/* ---------- HOME: hero ---------- */
.hero { position: relative; min-height: 100svh; display: flex; align-items: center; overflow: hidden; isolation: isolate; padding-block: calc(var(--header-h) + 64px) 64px; }
.hero__media { position: absolute; inset: 0; z-index: -2; }
.hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: 62% 40%; }
.hero__shade { position: absolute; inset: 0; z-index: -1; background:
  linear-gradient(90deg, rgba(11,12,16,.93) 0%, rgba(11,12,16,.76) 38%, rgba(11,12,16,.18) 100%),
  linear-gradient(0deg, var(--ink) 0%, transparent 35%, rgba(11,12,16,.18) 100%); }
.hero__inner { width: 100%; }
.hero__title { font-size: min(var(--fs-display), 8vw); line-height: .88; margin: 0 0 var(--s-5); max-width: none; white-space: nowrap; }
.hero__descriptor { font-family: var(--font-display); font-stretch: var(--display-stretch); font-weight: 800; text-transform: uppercase; font-size: clamp(.75rem, 3.5vw, 2.1rem); line-height: 1.02; color: var(--tungsten); white-space: nowrap; margin-bottom: 18px; }
.hero__markets { max-width: 58ch; font-size: .875rem; line-height: 1.65; color: var(--muted-on-ink); margin-bottom: 24px; }
.hero__lede { max-width: 49ch; font-size: 1rem; line-height: 1.65; color: rgba(242,242,242,.9); margin-bottom: 28px; }
.hero__proof { margin-top: 32px; padding-top: 20px; border-top: 1px solid var(--line-ink); }
@media (max-width: 600px) {
  .hero { padding-block: calc(var(--header-h) + 48px) 40px; }
  .hero__shade { background: linear-gradient(90deg, rgba(11,12,16,.88), rgba(11,12,16,.55)), linear-gradient(0deg, var(--ink), transparent 65%); }
  .hero__media img { object-position: 65% 40%; }
  .hero__markets { max-width: 36ch; }
}

/* ---------- HOME / ABOUT: statement ---------- */
.intro__statement { font-family: var(--font-body); font-stretch: var(--head-stretch); text-transform: none; font-weight: 700; font-size: clamp(1.9rem, 1.3rem + 2.2vw, 3.1rem); line-height: 1.1; letter-spacing: -0.02em; max-width: 22ch; margin-bottom: var(--s-6); }
.intro__statement strong { font-weight: inherit; }

/* ---------- HOME: lighting feature ---------- */
.feature-light .split__media img { aspect-ratio: 4 / 3; }

/* ---------- DJ: night timeline ---------- */
.night { display: grid; gap: 0; border-top: 1px solid var(--line-bone); }
.night__row { display: grid; gap: var(--s-3) var(--s-6); padding: var(--s-6) 0; border-bottom: 1px solid var(--line-bone); }
@media (min-width: 900px) { .night__row { grid-template-columns: 160px 1fr 1.4fr; align-items: baseline; } }
.night__time { font-size: 0.95rem; font-weight: 700; color: var(--crest-deep); }
.night__row h3 { font-family: var(--font-display); font-stretch: var(--display-stretch); text-transform: uppercase; font-weight: 800; font-size: clamp(1.8rem, 1.3rem + 1.6vw, 2.7rem); line-height: 0.95; margin: 0; letter-spacing: 0; }
.night__row p { margin: 0; color: var(--muted-on-bone); }

/* ---------- DJ: portal screenshots ---------- */
.portal-stack { position: relative; display: grid; }
.portal-stack img { border: 1px solid var(--line-ink); }
.portal-stack img:nth-child(2) { width: 70%; margin: -22% 0 0 auto; position: relative; box-shadow: var(--shadow-lift); }

/* ---------- PHOTO BOOTH: backdrops + strips ---------- */
.swatches { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--s-4) var(--s-3); }
@media (min-width: 640px) { .swatches { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1000px) { .swatches { grid-template-columns: repeat(6, 1fr); } }
.swatch { margin: 0; }
.swatch img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; }
.swatch figcaption { font-size: var(--fs-small); margin-top: var(--s-2); color: var(--muted-on-bone); }
.strip { margin: 0; }
.strip img { width: 100%; background: #fff; }
.strip figcaption { font-size: var(--fs-small); margin-top: var(--s-3); color: var(--muted-on-ink); }
.strip-pair { display: flex; gap: var(--s-4); justify-content: center; }
.strip-pair img { width: min(180px, 42vw); }

/* ---------- LIGHTING: alternating rows ---------- */
.light-rows { display: grid; gap: clamp(64px, 9vw, 120px); }
.light-row__num { display: none; }

/* ---------- SERVICES: twin columns ---------- */
.twin { display: grid; gap: var(--s-4); }
@media (min-width: 900px) { .twin { grid-template-columns: 1fr 1fr; } }
.twin__card { position: relative; overflow: hidden; min-height: 520px; display: flex; align-items: flex-end; padding: clamp(28px, 4vw, 44px); isolation: isolate; text-decoration: none; }
.twin__card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.twin__card::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(to top, rgba(11,12,16,.95) 12%, rgba(11,12,16,.2) 70%); }
.twin__card h2 { font-size: clamp(2.4rem, 1.6rem + 2.6vw, 3.8rem); margin-bottom: var(--s-3); }
.twin__card p { color: rgba(242,242,242,.85); max-width: 44ch; }
.twin__card:hover .link-arrow { color: var(--tungsten); }


.video-embed { position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: var(--ink-2); }
.video-embed button { position: absolute; inset: 0; width: 100%; border: 0; padding: 0; cursor: pointer; background: none; }
.video-embed button img { width: 100%; height: 100%; object-fit: cover; filter: brightness(.6); transition: filter 200ms linear; }
.video-embed button:hover img { filter: brightness(.75); }
.video-embed__play { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); padding: 14px 24px; background: var(--tungsten); color: var(--ink); font-weight: 700; border-radius: var(--r-sm); }
.video-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* ---------- MUSIC ---------- */
.mixcard { display: grid; gap: var(--s-6); padding: clamp(28px, 5vw, 56px); background: var(--ink-2); border: 1px solid var(--line-ink); align-items: center; }
@media (min-width: 900px) { .mixcard { grid-template-columns: 240px 1fr; } }
.mixcard__art { width: 100%; max-width: 240px; aspect-ratio: 1; background: var(--ink); display: grid; place-items: center; border: 1px solid var(--line-ink); }
.mixcard__art img { width: 64%; }

/* ---------- CONTACT ---------- */
.contact-grid { display: grid; gap: var(--s-7); }
@media (min-width: 1000px) { .contact-grid { grid-template-columns: 1.35fr 1fr; gap: var(--s-8); align-items: start; } }
.form-panel { padding: clamp(24px, 4vw, 44px); background: var(--ink-2); border: 1px solid var(--line-ink); border-radius: var(--r-md); }
.contact-card { display: grid; gap: var(--s-5); }
.contact-card__big { font-family: var(--font-display); font-stretch: var(--display-stretch); font-weight: 800; font-size: clamp(2.6rem, 2rem + 2vw, 3.6rem); line-height: 0.9; text-decoration: none; display: block; }
.contact-card__big:hover { color: var(--tungsten); }
.meet { display: grid; gap: var(--s-4); }
.meet__opt { padding-top: var(--s-4); border-top: 1px solid var(--line-ink); }
.meet__opt h3 { font-size: 1.25rem; margin-bottom: var(--s-2); }
.meet__opt p { color: var(--muted-on-ink); font-size: 0.97rem; }
.next-steps { display: grid; gap: var(--s-5); }
@media (min-width: 800px) { .next-steps { grid-template-columns: repeat(3, 1fr); } }
.next-steps > * { padding-top: var(--s-5); border-top: 2px solid var(--ink); }
.next-steps h3 { margin-bottom: var(--s-2); }
.next-steps p { color: var(--muted-on-bone); }

.calendly-wrap { min-height: 720px; overflow: hidden; background: var(--bone); }
.calendly-wrap iframe { width: 100%; height: 760px; border: 0; }

/* ---------- PRICING ---------- */
.price-grid { display: grid; gap: var(--s-5); }
@media (min-width: 960px) { .price-grid { grid-template-columns: 1fr 1fr; } }
.note-list { display: grid; gap: var(--s-3); color: var(--muted-on-ink); font-size: 0.97rem; }

/* ---------- 404 ---------- */
.notfound { min-height: 100svh; display: grid; place-items: center; text-align: center; padding: calc(var(--header-h) + 40px) var(--gutter) 80px; }
.notfound h1 { font-size: var(--fs-display); }


/* ---------- DJ: intro with photos + dark "included" panel ---------- */
.dj-intro__photos { display: grid; grid-template-columns: 1.3fr 1fr; gap: var(--s-3); margin-top: var(--s-6); }
.dj-intro__photos img { width: 100%; height: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.dj-intro__photos figure:last-child img { aspect-ratio: 3 / 4; }
.dj-intro__photos figure:first-child { align-self: end; }
.included { background: var(--ink); color: var(--text-on-ink); padding: clamp(28px, 3.5vw, 44px); border-radius: var(--r-md); }
.included .checklist { gap: var(--s-3); }
.included .checklist li::marker { color: var(--tungsten); }
.included__note { font-size: var(--fs-small); color: var(--muted-on-ink); margin: var(--s-5) 0; }

/* ---------- HOME: lighting showcase ---------- */
.light-show { display: grid; gap: var(--s-7); }
@media (min-width: 1000px) { .light-show { grid-template-columns: 0.8fr 1.6fr; gap: var(--s-8); align-items: start; } }
.light-show__intro h2 { max-width: 12ch; }
.light-mosaic { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--s-3); }
@media (min-width: 700px) { .light-mosaic { grid-template-columns: repeat(3, 1fr); grid-auto-rows: 210px; } }
.light-mosaic figure { position: relative; overflow: hidden; background: var(--ink-3); min-height: 180px; }
.light-mosaic img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
@media (min-width: 700px) {
  .light-mosaic figure:nth-child(1) { grid-column: span 2; grid-row: span 2; }
}

/* ---------- HOME v2: tagline hero ---------- */
.hero__tagline { display: block; }

.film-section { padding-top: clamp(48px, 6vw, 88px); }

/* ---------- Location pages ---------- */
.h-small { font-size: clamp(1.9rem, 1.4rem + 1.4vw, 2.8rem); }
@media (min-width: 900px) { .start-6 { grid-column-start: 6; } }

/* ---------- Thank you ---------- */
.thanks { padding-top: var(--s-9); }
.thanks h1 { max-width: 16ch; }
.thanks .lede { margin-top: var(--s-5); }
@media (min-width: 800px) { .page-thanks .next-steps { grid-template-columns: repeat(3, 1fr); } }

/* ---------- Concise planning / service notes (location pages) ---------- */
.plan-notes { display: grid; gap: var(--s-5); }
@media (min-width: 800px) { .plan-notes { grid-template-columns: repeat(3, 1fr); gap: var(--s-6); } }
.plan-notes li { padding-top: var(--s-5); border-top: 2px solid var(--line-ink); }
.plan-notes h3 { font-size: 1.25rem; margin: 0 0 var(--s-2); }
.plan-notes h3 a { text-decoration: none; }
.plan-notes h3 a:hover { color: var(--tungsten); }
.plan-notes p { margin: 0; color: var(--muted-on-ink); font-size: 0.97rem; }
.link-row { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--s-2) var(--s-4); margin: var(--s-7) 0 0; color: var(--muted-on-ink); }
.link-row span { font-weight: 700; color: var(--text-on-ink); }
.link-row a { font-weight: 600; color: var(--text-on-ink); text-underline-offset: 0.25em; }
.link-row a:hover { color: var(--tungsten); }

/* ---------- Occasion rows without a time label (Private events) ---------- */
@media (min-width: 900px) { .night--simple .night__row { grid-template-columns: 1fr 1.4fr; } }
.night--simple .night__row h3 { font-size: clamp(1.6rem, 1.2rem + 1.2vw, 2.3rem); }

/* ---------- Lighting: text-only row (Classic Disco Ball until its photo arrives) ---------- */
.split--solo { grid-template-columns: 1fr; padding: clamp(28px, 4vw, 48px); border: 1px solid var(--line-ink); border-radius: var(--r-md); background: var(--ink-2); }
.split--solo .split__body h2 { max-width: none; }

/* ---------- Two-photo gallery (Seattle) ---------- */
@media (min-width: 900px) { .gallery--two { columns: 2; } }

/* Contact intake sits below the contact options at full content width. */
.contact-grid--stacked { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 700px) { .contact-grid--stacked > .contact-card { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; } }

/* Photo Booth: show the complete booth beside the introduction. */
.pb-hero-grid { display: grid; gap: var(--s-8); align-items: center; }
.pb-hero-photo { margin: 0; }
.pb-hero-photo img { width: 100%; height: auto; max-height: 640px; object-fit: contain; }
.pb-manager { display: grid; gap: var(--s-8); align-items: stretch; }
.pb-manager__photo { margin: 0; max-width: 420px; }
.pb-manager__photo img { width: 100%; height: auto; }
.pb-manager__copy { min-width: 0; max-width: 64ch; }
.pb-manager__copy h2 { margin-bottom: 12px; }
.pb-manager__role { font-size: clamp(1.25rem, 1.5vw, 1.5rem); line-height: 1.3; margin-bottom: 24px; }
.pb-manager__copy p { font-size: 1rem; line-height: 1.6; }
@media (min-width: 900px) {
  .pb-hero-grid { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); }
  .pb-manager { grid-template-columns: minmax(280px, 400px) minmax(0, 1fr); }
  .pb-manager__photo { position: relative; max-width: none; }
  .pb-manager__photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 35%; }
  .pb-manager__copy p { font-size: 1.125rem; }
}

/* Lighting options: outdoor uplighting belongs with room uplighting. */
.lighting-outdoor { margin-top: var(--s-8); display: grid; gap: var(--s-6); }
.lighting-photo-pair { display: grid; gap: var(--s-4); }
.lighting-photo-pair figure { margin: 0; }
.lighting-photo-pair img { width: 100%; height: auto; }
.lighting-monograms { display: grid; gap: var(--s-6); }
.lighting-monograms .split__body { max-width: 72ch; }
.lighting-choice { display: grid; gap: var(--s-5); align-items: start; }
.lighting-choice .lede { margin: 0; }
@media (min-width: 800px) {
  .lighting-photo-pair { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: center; }
  .lighting-outdoor { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); align-items: center; }
  .lighting-choice { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.lighting-photo-pair--single { grid-template-columns: minmax(0, 1fr); width: min(100%, 420px); margin-inline: auto; }

.lighting-photo-pair--wide { grid-template-columns: minmax(0, 1fr); }

/* Approved dual-audience homepage: existing type, color and photography. */
.home-audiences{background:var(--ink);padding-bottom:10px}.home-audiences .concept-intro{padding-top:36px}.home-audiences .concept-intro>div:first-child{min-width:0}
.concept-intro{padding:36px 0 30px;display:flex;align-items:end;justify-content:space-between;gap:28px}.concept-intro h1{font-size:clamp(38px,5.2vw,72px);margin:0;line-height:1}.concept-intro p{margin:12px 0 0;color:var(--tungsten);font-size:clamp(12px,1.5vw,18px)}.concept-markets{max-width:220px;color:#b8bbc3;font-size:13px;text-align:right}.concept-paths{display:grid;grid-template-columns:1fr 1fr;gap:18px}.concept-path{position:relative;min-height:470px;overflow:hidden;display:flex;align-items:end;border:1px solid #ffffff22;text-decoration:none;color:white}.concept-path>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s}.concept-path:hover>img{transform:scale(1.025)}.concept-path:before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#0000 20%,#080a10dc 75%),linear-gradient(#25272c59,#25272c59);z-index:1}.concept-path-content{position:relative;z-index:2;padding:32px;width:100%}.concept-path h2{font-size:clamp(32px,3.5vw,49px);line-height:1.03;margin:0 0 14px}.concept-path p{max-width:44ch;font-size:15px;line-height:1.6;margin-bottom:20px}.concept-path .eyebrow{color:var(--tungsten);font-size:11px;letter-spacing:.14em;font-weight:700;margin-bottom:10px}.concept-path .btn{font-size:13px}.concept-private{padding:22px 0;border-bottom:1px solid #ffffff22;color:#b8bbc3;font-size:14px}.concept-private a{color:var(--bone);margin-left:8px}.concept-follow{padding:48px 0;display:grid;grid-template-columns:1fr 1fr;gap:48px}.concept-follow h2{font-size:32px;margin-bottom:16px}.concept-follow p{color:#b8bbc3;line-height:1.7}.concept-proof-placeholder{border:1px dashed #ffffff45;padding:24px;color:#b8bbc3;font-size:13px;line-height:1.8}.concept-label{color:var(--tungsten);font-size:11px;letter-spacing:.1em;text-transform:uppercase}.concept-path:focus-visible{outline:3px solid var(--tungsten);outline-offset:4px}@media(max-width:800px){.concept-intro{display:block}.concept-markets{text-align:left;margin-top:18px;max-width:none}.concept-paths{grid-template-columns:1fr}.concept-path{min-height:370px}.concept-path-content{padding:24px}.concept-follow{grid-template-columns:1fr;gap:24px}.concept-intro h1{font-size:42px}}

.home-audiences .concept-intro h1{white-space:nowrap;font-size:clamp(32px,5.2vw,72px)}.home-audiences .concept-intro p{white-space:nowrap;font-size:clamp(10px,1.4vw,18px)}
@media(min-width:1061px){.site-header__phone{display:none}.site-header__inner{gap:16px}.nav__list{gap:clamp(12px,1.2vw,20px)}.nav__link{font-size:.86rem}.site-header__actions{gap:12px}.site-header__actions>.btn{font-size:.75rem}}
@media(max-width:1060px){.nav__link{white-space:normal;font-size:clamp(1.5rem,6vw,2.1rem)}}
@media(max-width:600px){.home-audiences .concept-intro h1{font-size:8.6vw}.home-audiences .concept-intro p{font-size:clamp(16px,4.3vw,20px);line-height:1.45;white-space:normal;text-wrap:balance}.home-audiences .concept-path{min-height:390px}.site-header__actions>.btn{display:none}}

/* About founder: image follows the complete biography height. */
.page-about section[aria-labelledby="founder-title"] .checklist { margin-bottom: 0 !important; }
@media (min-width: 960px) {
  .page-about section[aria-labelledby="founder-title"] .split { align-items: stretch; }
  .page-about section[aria-labelledby="founder-title"] .split__media img { position: absolute; inset: 0; width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover; object-position: 70% center; }
}

/* Keep planning descriptions readable on light sections. */
.section--bone .plan-notes p { color: var(--text-on-bone); }

/* Keep the complete San Diego review selection available on phones. */
.page-san-diego .reviews-section .review-grid .review:nth-child(n+5) { display: flex; }

/* Compact print previews; the photo viewer preserves each complete design. */
.print-gallery__grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:var(--s-4); }
.print-sample { position:relative; margin:0; aspect-ratio:4/3; overflow:hidden; border-radius:var(--r-sm); background:var(--ink-3); }
.print-sample img { width:100%; height:100%; object-fit:cover; object-position:50% 0%; transition:transform 250ms ease; }
.print-sample:hover img { transform:scale(1.025); }
.print-sample::after { content:"↗"; position:absolute; right:10px; bottom:10px; width:30px; height:30px; display:grid; place-items:center; background:var(--ink); color:var(--tungsten); border-radius:50%; pointer-events:none; }
.print-sample:focus-within { outline:2px solid var(--tungsten); outline-offset:3px; }
.print-gallery__more summary { cursor:pointer; width:fit-content; margin:var(--s-6) auto; padding:12px 20px; border:1px solid var(--line-ink); color:var(--text-on-ink); font-weight:600; }
.print-gallery__more summary:focus-visible { outline:2px solid var(--tungsten); outline-offset:3px; }
.dj-card__photo:has(img[src*="ronnie-rain-2026"]) { overflow:clip; }
.dj-card img[src*="ronnie-rain-2026"] { transform:scale(1.6); transform-origin:65% 40%; }
.lighting-choice__photo { grid-column:1 / -1; margin:0; max-width:100%; }
.lighting-choice__photo img { width:100%; max-height:640px; object-fit:cover; object-position:center; }
@media(max-width:700px) { .print-gallery__grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; } .lighting-choice__photo img { max-height:none; } }

/* Wedding reassurance retains the approved typeface and clear hierarchy. */
.wedding-care__subhead { font-family:var(--font-display); font-stretch:var(--display-stretch); font-weight:800; text-transform:uppercase; font-size:var(--fs-h2); line-height:1.15; margin:var(--s-5) 0; }
.wedding-care__copy { margin-top:var(--s-5); }
#sea-reviews-title { max-width:none; font-size:clamp(1.65rem,3.5vw,3.5rem); }
#sea-reviews-title span { display:block; white-space:nowrap; }
.dj-card img[src*="kryspin-2026"] { object-position:50% 45%; }
.dj-card img[src*="waylon-2026"] { object-position:54% 42%; }

/* Keep the approved wedding statement on two distinct lines. */
#diff-title, .wedding-care__subhead { font-size:var(--fs-h2); white-space:normal; line-height:1.05; }

#diff-title { margin-bottom:0; }
.wedding-care__subhead { margin-top:0.1em; }

/* Keep the Photo Booth gallery headline on exactly two lines. */
#pb-gallery-title { max-width:none; }
#pb-gallery-title span { display:block; white-space:nowrap; }

/* Experience copy and wedding reel share matching desktop edges. */
.dj-experience-layout{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-8);align-items:stretch}
.dj-experience-copy{display:flex;flex-direction:column}
.dj-experience-copy .prose>p:last-child{margin-bottom:0}
.dj-experience-reel{position:relative;overflow:hidden;min-height:420px;background:var(--ink)}
.dj-experience-reel img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;animation:dj-experience-fade 35s linear infinite;animation-delay:calc(var(--slide)*5s)}
.dj-experience-reel img:first-child{opacity:1}
.dj-experience-reel:hover img{animation-play-state:paused}
@keyframes dj-experience-fade{0%,12%{opacity:1}14.28%,98%{opacity:0}100%{opacity:1}}
@media(max-width:959px){.dj-experience-layout{grid-template-columns:1fr;gap:var(--s-6)}.dj-experience-reel{min-height:0;aspect-ratio:4/3}}
@media(prefers-reduced-motion:reduce){.dj-experience-reel img{animation:none}.dj-experience-reel img:first-child{opacity:1}}

/* Homepage capabilities use the standard section heading and body-font bundle treatment. */
.page-home #setlist-title{font-size:var(--fs-h2)}
.page-home .home-bundle{border-top:0;border-bottom:0}
.page-home .home-bundle p{font-family:var(--font-body);font-stretch:normal;text-transform:none;font-weight:700;font-size:clamp(1.6rem,1.2rem + 1.2vw,2.3rem);line-height:1.2;max-width:40ch}

/* Contact clarity and balanced wedding gallery. */
.section-head--split{align-items:start}
.site-footer__contact>.label,.contact-card .label,.faq-contact>.label{
font-size:clamp(1.2rem,1.05rem + .4vw,1.5rem);font-weight:700;line-height:1.35
}
.faq-contact{display:flex;flex-direction:column;align-items:flex-start;gap:var(--s-4);margin-top:var(--s-6)}
.faq-contact__phone{font-family:var(--font-display);font-size:clamp(1.8rem,2.8vw,2.6rem);line-height:1.15;text-decoration:none}
.faq-contact>a[href^="mailto:"]{overflow-wrap:anywhere}
.page-dj .wedding-gallery-section{padding-bottom:var(--s-7)}
.page-dj .wedding-gallery-section .gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-3);columns:auto}
.page-dj .wedding-gallery-section figure{margin:0;aspect-ratio:3/2;overflow:hidden}
.page-dj .wedding-gallery-section figure picture{display:block;height:100%}
.page-dj .wedding-gallery-section figure img{width:100%;height:100%;object-fit:cover}
.page-dj .wedding-gallery-section img[src*="dj-view-garden-party"]{object-position:center bottom}
@media(max-width:899px){.page-dj .wedding-gallery-section .gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.page-dj .wedding-gallery-section .gallery{grid-template-columns:1fr}}
