/* Shared portrait players retain a stable size throughout playback. */
.video-card {position:relative;min-width:0;margin:0;border:0;background:transparent;box-shadow:none;scroll-margin-top:110px;}
.video-card__media {position:relative;isolation:isolate;width:100%;aspect-ratio:9/16;overflow:hidden;border:1px solid #082b471a;border-radius:16px;background:#09283e;box-shadow:0 9px 30px #082b4712;}
.video-card__media>picture {position:absolute;inset:0;}
.video-card__media>img,.video-card__media>picture>img {display:block;width:100%;height:100%;object-fit:contain;}
.video-card--landscape .video-card__media {aspect-ratio:16/9;}
.video-card__frame {position:absolute;inset:0;width:100%;height:100%;border:0;background:#000;}
.video-card__status:not([hidden]) {position:absolute;inset:0;z-index:2;display:grid;place-items:center;margin:0;padding:24px;background:#082b47ed;color:#fff;text-align:center;font-size:16px;line-height:1.5;pointer-events:none;}

/* Center the library and let consistent portrait frames carry the page. */
.gallery-page {background:#f5f8f7;}
.gallery-page .header {position:sticky;top:0;z-index:60;}
.gallery-page .header-inner {gap:28px;}
.gallery-page .header .desktop-nav {gap:22px;justify-content:center;}
.gallery-page .header .desktop-nav>a {white-space:nowrap;}
.gallery-page [aria-current="page"] {color:var(--teal-deep);font-weight:600;}
.gallery-page .header .desktop-nav>a[aria-current="page"] {box-shadow:inset 0 -2px var(--teal-deep);}
.gallery-menu {display:none;}
.gallery-intro {position:relative;padding:72px 0 58px;background:#fff;border-bottom:1px solid #d9e4e2;text-align:center;}
.gallery-intro .container {display:flex;flex-direction:column;align-items:center;}
.gallery-intro h1 {max-width:880px;margin:0 auto;color:var(--navy);font-size:clamp(38px,4.3vw,62px);font-weight:400;line-height:1.1;letter-spacing:-.045em;text-wrap:balance;}
.gallery-intro h1 span {color:var(--teal-deep);}
.gallery-intro p {max-width:700px;margin:24px auto 0;font-size:20px;line-height:1.65;text-wrap:pretty;}
.gallery-intro .gallery-intro-actions {display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:14px 26px;margin-top:28px;}
.gallery-intro .text-link {font-size:16px;text-decoration:underline;text-underline-offset:3px;}
.gallery-library {padding:50px 0 72px;scroll-margin-top:110px;}
.gallery-library-heading {display:flex;flex-direction:column;align-items:center;gap:12px;margin:0 auto 28px;text-align:center;}
.gallery-library-heading h2 {font-size:30px;line-height:1.2;letter-spacing:-.035em;}
.gallery-library-heading p {font-size:15px;color:var(--body,#405463);}
.gallery-tools {display:flex;flex-direction:column;align-items:center;gap:22px;max-width:1000px;margin:0 auto 42px;}
.gallery-filters {display:flex;flex-wrap:wrap;justify-content:center;gap:8px;}
.gallery-filters button {min-height:46px;padding:11px 17px;border:1px solid #bdcfca;border-radius:999px;background:transparent;color:var(--navy);font-size:14px;line-height:1.4;cursor:pointer;}
.gallery-filters button[aria-pressed="true"] {background:var(--navy);border-color:var(--navy);color:#fff;}
.gallery-filters button:hover {border-color:var(--teal-deep);}
.gallery-search {width:min(100%,400px);}
.gallery-search label {display:block;margin-bottom:8px;text-align:center;font-size:14px;font-weight:500;color:var(--navy);}
.gallery-search input {display:block;width:100%;min-height:48px;padding:11px 16px;border:1px solid #b8cdc8;border-radius:999px;background:#fff;color:var(--navy);font-size:16px;line-height:1.4;}
.gallery-filters button:focus-visible,.gallery-search input:focus-visible,.gallery-clear:focus-visible {outline:3px solid var(--teal-deep);outline-offset:3px;}
.gallery-clear {min-height:44px;margin-top:-12px;padding:6px 12px;border:0;background:none;color:var(--teal-deep);font-size:14px;text-decoration:underline;text-underline-offset:3px;cursor:pointer;}
.video-gallery {display:flex;flex-wrap:wrap;justify-content:center;gap:38px 30px;width:100%;max-width:960px;margin-inline:auto;align-items:start;}
.video-gallery .video-card {display:grid;grid-template-columns:minmax(0,1fr);column-gap:12px;row-gap:0;flex:0 1 300px;width:100%;max-width:300px;align-items:end;}
.video-gallery .video-card__heading {grid-column:1;align-self:center;margin:0 0 14px;color:var(--navy);font-size:18px;font-weight:500;line-height:1.35;letter-spacing:-.02em;text-wrap:pretty;}
.video-gallery .video-card__media {grid-column:1/-1;}
.gallery-empty {max-width:720px;margin-inline:auto;padding:46px 24px;text-align:center;background:#fff;border:1px dashed #b8cdc8;border-radius:16px;}
.gallery-empty h3 {font-size:26px;margin-bottom:12px;}
.gallery-empty p {font-size:17px;line-height:1.6;}
.gallery-empty .button {margin-top:22px;font-size:16px;}
.gallery-contact {padding:64px 0;background:var(--navy);color:#fff;}
.gallery-contact .container {display:flex;flex-direction:column;align-items:center;gap:28px;text-align:center;}
.gallery-contact h2 {max-width:740px;margin-inline:auto;font-size:clamp(30px,3vw,40px);line-height:1.17;letter-spacing:-.035em;text-wrap:balance;}
.gallery-contact p {max-width:640px;margin:18px auto 0;color:#e5eff2;font-size:18px;line-height:1.6;}
.gallery-contact .button {flex-shrink:0;background:#fff;color:var(--navy);font-size:17px;}
.gallery-page .footer {padding-bottom:50px;}
.gallery-page .footer-grid {align-items:center;}
.gallery-page .footer-nav {flex-wrap:wrap;gap:12px 22px;}
.gallery-page .quick-contact {position:fixed;right:20px;bottom:20px;z-index:65;display:flex;flex-direction:column;gap:10px;}
.gallery-page .quick-contact>a {display:grid;place-items:center;width:52px;height:52px;border:1px solid #ffffffb8;border-radius:50%;color:#fff;box-shadow:0 5px 18px #082b4729;}
.gallery-page .quick-contact svg {width:23px;height:23px;}
.gallery-page .quick-call svg {fill:currentColor;stroke:none;}
@media(max-width:1199px) {
 .gallery-page .header .desktop-nav,.gallery-page .header .header-cta {display:none;}
 .gallery-page .header-inner {justify-content:space-between;}
 .gallery-menu {display:block;}
 .gallery-menu>summary {display:flex;align-items:center;justify-content:center;min-width:70px;min-height:48px;padding:10px 14px;list-style:none;border:1px solid #b8cdc8;border-radius:11px;background:#f3f7f5;color:var(--navy);font-size:15px;cursor:pointer;}
 .gallery-menu>summary::-webkit-details-marker {display:none;}
 .gallery-menu[open]>summary {background:var(--navy);border-color:var(--navy);color:#fff;}
 .gallery-menu nav {position:absolute;top:calc(100% + 8px);left:24px;right:24px;display:grid;gap:8px;max-height:calc(100dvh - 115px);overflow-y:auto;overscroll-behavior-y:contain;padding:16px 16px max(16px,env(safe-area-inset-bottom));background:#fff;border:1px solid #d9e4e2;border-radius:14px;box-shadow:0 20px 50px #082b4729;}
 .gallery-menu nav>a {display:flex;align-items:center;min-height:48px;padding:11px 14px;border-radius:8px;background:#f5f8f7;font-size:17px;line-height:1.45;}
 .gallery-menu nav>a[aria-current="page"] {background:#e6f2ee;}
 .gallery-menu nav>.button {margin-top:8px;background:var(--navy);color:#fff;}
}
@media(min-width:640px) {
 .video-gallery .video-card__heading {min-height:98px;display:flex;align-items:center;}
}
@media(max-width:939px) {
 .gallery-intro {padding-top:54px;}
 .video-gallery {max-width:630px;}
 .gallery-page .footer-grid {display:block;}
 .gallery-page .footer-nav {margin-top:24px;}
 .gallery-page .footer {padding-bottom:calc(148px + env(safe-area-inset-bottom,0px));}
}
@media(min-width:640px) and (max-width:939px) {
 /* Leave room beside native player controls for the persistent contact dock. */
 .gallery-page .video-gallery {max-width:min(630px,calc(100% - 64px));margin-inline:0;gap:28px 20px;}
 .gallery-page .video-gallery>.video-card {flex-basis:calc((100% - 20px)/2);max-width:300px;}
}
@media(max-width:639px) {
 .gallery-page .container {width:calc(100% - 40px);}
 .gallery-page .header-inner {height:72px;min-height:72px;}
 .gallery-page .header .brand img {width:190px;}
 .gallery-intro {padding:34px 0 30px;}
 .gallery-intro h1 {font-size:clamp(32px,8.7vw,37px);line-height:1.12;letter-spacing:-.035em;}
 .gallery-intro p {margin-top:18px;font-size:17px;line-height:1.55;}
 .gallery-intro .gallery-intro-actions {gap:8px 18px;margin-top:20px;}
 .gallery-intro .button {min-height:48px;font-size:16px;padding-inline:18px;}
 .gallery-intro .text-link {min-height:48px;font-size:15px;}
 .gallery-library {padding:30px 0 40px;scroll-margin-top:88px;}
 .gallery-library-heading {gap:8px;margin-bottom:20px;}
 .gallery-library-heading h2 {max-width:20ch;font-size:27px;}
 .gallery-tools {gap:16px;margin-bottom:24px;}
 .gallery-filters {gap:7px;}
 .gallery-filters button {font-size:14px;padding:11px 15px;min-height:48px;}
 .gallery-search {max-width:340px;}
 .gallery-search label {font-size:15px;}
 .gallery-search input {min-height:52px;}
 .gallery-clear {min-height:48px;font-size:15px;}
 .gallery-page .video-gallery {width:calc(100% - 64px);max-width:none;margin-inline:0;gap:18px;scrollbar-width:thin;scrollbar-color:#96b7a8 transparent;}
 .gallery-page .video-gallery>.video-card {flex:0 0 calc(100% - 18px);width:calc(100% - 18px);max-width:none;min-width:200px;}
 .gallery-page .video-gallery .video-card__heading {min-height:72px;font-size:17px;line-height:1.4;margin-bottom:12px;}
 .gallery-library .structured-rail-tools {width:calc(100% - 64px);gap:14px;}
 .gallery-page .gallery-library .structured-rail-tools button {flex:0 0 52px;width:52px;height:52px;min-height:52px;padding:13px;}
 .gallery-library .structured-rail-position {min-width:48px;font-size:15px;}
 .gallery-contact {padding:38px 0;}
 .gallery-contact p {font-size:17px;}
 .gallery-contact .button {min-height:48px;}
 .gallery-page .footer-nav {display:flex;gap:6px 20px;}
 .gallery-page .footer-nav a {min-height:48px;font-size:15px;}
 .gallery-page .footer-bottom {display:block;}
 .gallery-page .footer-bottom>a {display:inline-flex;align-items:center;min-height:48px;margin-top:12px;}
 .gallery-page .quick-contact {right:14px;bottom:max(14px,env(safe-area-inset-bottom));gap:9px;}
 .gallery-page .quick-contact>a {width:48px;height:48px;}
}
@media(max-width:359px) {
 .gallery-page .container {width:calc(100% - 32px);}
 .gallery-page .header .brand img {width:182px;}
 .gallery-menu>summary {min-width:62px;padding-inline:10px;}
 .gallery-intro h1 {font-size:32px;}
 .video-gallery .video-card {column-gap:8px;}
 .video-gallery .video-card__heading {font-size:17px;}
}
