/* V4 media pass: photographic sections using the approved spacing and palette. */
.client-photo { margin: 28px 0 0; min-width: 0; }
.client-photo button { display: block; position: relative; width: 100%; padding: 0; border: 0; background: var(--sea, #eaf4f3); overflow: hidden; border-radius: 3px; cursor: zoom-in; aspect-ratio: 4/3; }
.client-photo img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .7s var(--ease, ease); }
.client-photo button:hover img, .client-photo button:focus-visible img { transform: scale(1.035); }
.client-photo figcaption { font-size: 10px; line-height: 1.7; letter-spacing: .01em; color: var(--muted, #59686c); padding-top: 10px; text-align: left; }
.sbr-content-dark .client-photo figcaption, .equipment-section .client-photo figcaption { color: #d5e5e8; }
.client-photo .photo-expand { position: absolute; right: 13px; bottom: 13px; width: 34px; height: 34px; padding: 9px; border-radius: 3px; background: #ffffffed; color: #092f3c; }
.client-photo.portrait button { aspect-ratio: 3/4; }
.client-photo.wide button { aspect-ratio: 16/9; }
.sbr-content-heading > .client-photo { max-width: 520px; }
.client-pair { display: grid; grid-template-columns: 1.1fr 1fr; gap: 18px; align-items: start; margin-top: 28px; }
.client-pair .client-photo { margin: 0; }
.client-pair .client-photo:nth-child(2) { padding-top: 32px; }
.client-photo-ribbon { padding-block: 30px 80px; }
.client-photo-ribbon .client-ribbon-intro { margin-bottom: 26px; display: flex; align-items: baseline; justify-content: space-between; gap: 24px; }
.client-photo-ribbon .client-ribbon-intro h2 { font-size: clamp(25px, 2.6vw, 38px); }
.client-photo-ribbon .client-ribbon-intro p { font-size: 11px; max-width: 460px; }
.client-photo-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; }
.client-photo-grid .client-photo { margin-top: 0; }
.client-photo-grid .client-photo:nth-child(2) { padding-top: 34px; }
.client-photo-grid .client-photo button { aspect-ratio: 4/3; }
.client-photo-grid.four { grid-template-columns: 1.1fr .9fr 1.1fr .9fr; gap: 18px; }
.client-photo-grid.four .client-photo button { aspect-ratio: 3/4; }
.client-photo-grid.four .client-photo:nth-child(even) { padding-top: 35px; }
.client-context-label { position: absolute; z-index: 2; bottom: 18px; right: 18px; max-width: calc(100% - 36px); padding: 7px 11px; background: #092f3cd9; color: white; font: 400 10px/1.6 var(--font-stack, sans-serif); border-radius: 2px; }
.sbr-panorama-media .client-context-label { bottom: 50px; }
.client-film { padding-block: 45px 85px; }
.client-film-layout { display: grid; grid-template-columns: minmax(0,1.3fr) minmax(240px,.7fr); gap: 64px; align-items: center; }
.client-film-copy h2 { max-width: 640px; font-size: clamp(31px,3.3vw,49px); }
.client-film-copy > p { font-size: 13px; max-width: 560px; margin-top: 20px; }
.client-film-copy .client-photo { margin-top: 30px; }
.client-film-copy .client-photo button { aspect-ratio: 16/9; }
.client-film-player { padding: 0; margin: 0; width: 100%; max-width: 375px; justify-self: center; }
.client-film-player video { display: block; width: 100%; aspect-ratio: 9/16; height: auto; background: #092f3c; object-fit: contain; border-radius: 4px; }
.client-film-player figcaption { font-size: 10px; color: var(--muted); margin-top: 12px; line-height: 1.7; }
.sbr-article-body > .client-photo, .sbr-article-body > section > .client-photo { margin-block: 34px; }
.sbr-article-body > .client-photo button, .sbr-article-body > section > .client-photo button { aspect-ratio: 16/10; }
.sbr-article-body .client-photo figcaption { font-size: 11px; }
.client-article-gallery { max-width: 1040px; margin-inline: auto; }
.client-section-cover { margin-block: 22px 0; }
.client-section-cover img { border-radius: 3px; }
#client-photo-dialog { width: min(1140px, calc(100% - 32px)); max-height: 94dvh; padding: 18px; background: #092f3c; color: white; border: 1px solid #ffffff44; border-radius: 4px; }
#client-photo-dialog::backdrop { background: #031a24eb; }
.client-dialog-top { display: flex; gap: 20px; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.client-dialog-top p { color: #e6f0f2; font-size: 12px; margin: 0; }
.client-dialog-top button, .client-dialog-controls button { display: grid; place-items: center; background: none; color: white; border: 1px solid #ffffff66; width: 44px; height: 44px; border-radius: 3px; padding: 10px; }
.client-dialog-image { display: block; width: 100%; height: min(69dvh,720px); object-fit: contain; background: #0d3644; }
.client-dialog-controls { display: flex; align-items: center; justify-content: center; gap: 24px; padding-top: 15px; font-size: 12px; }
.client-photo-error { font-size: 12px; color: white; }
.client-photo-dialog-open { overflow: hidden; }
@media(max-width:980px) { .client-film-layout { gap: 32px; } .client-photo-grid.four { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media(max-width:680px) {
 .client-photo-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 15px; }
 .client-photo-grid .client-photo:nth-child(3) { grid-column: 1/-1; }
 .client-photo-grid .client-photo:nth-child(2), .client-photo-grid.four .client-photo:nth-child(even) { padding-top: 24px; }
 .client-photo-grid.four .client-photo:nth-child(3) { grid-column: auto; }
 .client-photo-grid.four { gap: 15px; }
 .client-photo-ribbon { padding-block: 25px 48px; }
 .client-ribbon-intro { display: block!important; }
 .client-ribbon-intro p { margin-top: 12px; }
 .client-film-layout { grid-template-columns: 1fr; gap: 28px; }
 .client-film { padding-block: 30px 55px; }
 .client-film-player { max-width: 340px; }
 .client-photo figcaption { font-size: 9px; }
 .client-photo { margin-top: 23px; }
 .sbr-content-heading > .client-photo button { aspect-ratio: 16/10; }
 .client-context-label { right: 10px; bottom: 10px; font-size: 9px; }
 .sbr-panorama-media .client-context-label { bottom: 52px; }
 .client-pair { gap: 13px; }
 #client-photo-dialog { padding: 12px; }
 .client-dialog-image { height: 62dvh; }
}
@media(prefers-reduced-motion:reduce) { .client-photo img { transition: none; } .client-photo button:hover img { transform: none; } }
.motion-paused .client-photo img { transition: none; transform: none!important; }

/* Layout balance (inc/layout-fill.php + client-media.js). */
.sbr-fill { margin: 28px 0 0; overflow: hidden; border-radius: 3px; }
.sbr-fill[hidden] { display: none !important; }
.sbr-fill img, .sbr-prose .sbr-fill img { display: block; width: 100%; height: 100% !important; object-fit: cover; border-radius: 3px; }
.sbr-fill:not(.is-double) img + img { display: none; }
.sbr-fill.is-double { display: grid; grid-template-rows: 1fr 1fr; gap: 16px; }
.sbr-content-heading > .sbr-fill { max-width: 520px; }
.equipment-layout[data-fill-row] { align-items: start; }
.equipment-layout[data-fill-row] .equipment-list { align-content: start; }
.equipment-list > .sbr-fill { grid-column: 1 / -1; margin-top: 0; }
@media (max-width: 760px) { .sbr-fill { display: none !important; } }

/* Balanced rows: 12-column grid, each item spans 12 / items-in-its-row. */
.client-photo-grid.is-balanced, .sbr-related-grid.is-balanced { grid-template-columns: repeat(12, minmax(0, 1fr)) !important; align-items: start; }
.is-balanced > .span-3 { grid-column: span 3; } .is-balanced > .span-4 { grid-column: span 4; }
.is-balanced > .span-6 { grid-column: span 6; } .is-balanced > .span-12 { grid-column: span 12; }
.client-photo-grid.is-balanced .client-photo { padding-top: 0 !important; }
.client-photo-grid.is-balanced .span-3 button { aspect-ratio: 3/4; }
.client-photo-grid.is-balanced .span-4 button { aspect-ratio: 4/5; }
.client-photo-grid.is-balanced .span-6 button { aspect-ratio: 4/3; }
.client-photo-grid.is-balanced .span-12 button { aspect-ratio: 21/9; }
@media (max-width: 900px) {
 .client-photo-grid.is-balanced, .sbr-related-grid.is-balanced { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
 .is-balanced > [class*="span-"] { grid-column: auto !important; }
 .is-balanced > :last-child:nth-child(odd) { grid-column: 1 / -1 !important; }
 .client-photo-grid.is-balanced [class*="span-"] button { aspect-ratio: 4/3; }
}
.sbr-related-grid.is-balanced .sbr-media { width: 100%; height: auto !important; aspect-ratio: 4/3; }

/* Less stacked whitespace between consecutive photo/link sections. */
.client-photo-ribbon + .sbr-related, .client-photo-ribbon + .serenity-location-index, .client-photo-ribbon + .sbr-content-section { padding-top: 24px; }
.sbr-form-section > div:first-child > .sbr-fill { max-width: 520px; }
@media (min-width: 761px) { .sbr-form-section[data-fill-row] > div:first-child { position: static !important; } }
.sbr-related-grid.is-balanced .span-6 .sbr-media, .sbr-related-grid.is-balanced .span-12 .sbr-media { aspect-ratio: 16/9; }
.sbr-article-layout .serenity-routelinks { padding-bottom: 0; }
