.gallery-hero { overflow:hidden; color:var(--white); background:linear-gradient(130deg,#03152d 0%,#063f91 72%,#0757b8 100%); }
.gallery-hero__inner { min-height:510px; display:grid; grid-template-columns:minmax(0,1.2fr) minmax(350px,.8fr); align-items:center; gap:90px; padding-top:75px; padding-bottom:75px; }
.gallery-hero .breadcrumb { margin-bottom:52px; }
.gallery-hero h1 { margin:0; font-size:clamp(4.4rem,8vw,8.5rem); }
.gallery-hero__copy > p { max-width:600px; color:#d7e4f4; font-size:1.08rem; line-height:1.7; }
.gallery-hero__copy > div { display:flex; align-items:end; gap:15px; margin-top:32px; padding-top:24px; border-top:1px solid rgba(255,255,255,.23); }
.gallery-hero__copy strong { color:#8cc0ff; font-family:"Bahnschrift",sans-serif; font-size:3.2rem; line-height:.8; }
.gallery-hero__copy span { color:#dce8f7; font-size:.76rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.gallery-section { padding:clamp(80px,9vw,130px) 0; background:#f5f3ed; }
.gallery-heading { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr); align-items:end; gap:80px; margin-bottom:48px; }
.gallery-heading h2 { max-width:820px; margin:0; }
.gallery-heading > p { margin:0 0 8px; line-height:1.7; }
.gallery-filters { display:flex; flex-wrap:wrap; gap:9px; margin-bottom:34px; padding-bottom:22px; border-bottom:1px solid #d6d8d5; }
.gallery-filters button { min-height:43px; display:inline-flex; align-items:center; gap:9px; padding:0 15px; border:1px solid #cbd3db; color:#45566b; background:rgba(255,255,255,.65); font-size:.74rem; font-weight:800; letter-spacing:.035em; cursor:pointer; }
.gallery-filters button span { color:#758398; font-size:.65rem; }
.gallery-filters button:hover,.gallery-filters button.is-active { border-color:var(--blue); color:var(--white); background:var(--blue); }
.gallery-filters button.is-active span { color:#cfe1f7; }
.gallery-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.gallery-card { min-width:0; overflow:hidden; background:var(--white); box-shadow:0 14px 34px rgba(7,29,61,.08); transition:box-shadow .3s var(--ease),transform .3s var(--ease); }
.gallery-card[hidden] { display:none; }
.gallery-card:hover { box-shadow:0 22px 48px rgba(7,29,61,.14); transform:translateY(-5px); }
.gallery-card__media { position:relative; width:100%; aspect-ratio:4/3; display:block; padding:0; overflow:hidden; border:0; background:#d9e2ea; cursor:zoom-in; }
.gallery-card__media img,.gallery-card__media video { width:100%; height:100%; object-fit:cover; transition:transform .55s var(--ease); }
.gallery-card:hover .gallery-card__media img,.gallery-card:hover .gallery-card__media video { transform:scale(1.035); }
.gallery-card__expand { position:absolute; right:13px; bottom:13px; padding:7px 10px; color:var(--white); background:rgba(3,21,45,.82); font-size:.62rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.gallery-card__play { position:absolute; top:50%; left:50%; width:58px; height:58px; border-radius:50%; background:rgba(255,255,255,.92); transform:translate(-50%,-50%); }
.gallery-card__play::after { content:""; position:absolute; top:18px; left:23px; border-top:11px solid transparent; border-bottom:11px solid transparent; border-left:17px solid var(--red); }
.gallery-card__copy { min-height:142px; padding:20px 22px 22px; }
.gallery-card__copy > span { color:var(--blue); font-size:.66rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.gallery-card__copy h3 { margin:7px 0 10px; font-size:1.3rem; }
.gallery-card__copy p { margin:0; color:#788493; font-size:.74rem; }
.gallery-empty,.gallery-no-results { padding:70px 30px; border:1px dashed #aeb9c5; background:rgba(255,255,255,.55); text-align:center; }
.gallery-empty h3 { margin-bottom:9px; }
.gallery-lightbox { width:min(calc(100% - 36px),1180px); max-width:none; max-height:calc(100dvh - 36px); padding:0; overflow:hidden; border:0; color:var(--white); background:#031126; box-shadow:0 30px 100px rgba(0,0,0,.55); }
.gallery-lightbox::backdrop { background:rgba(2,12,28,.86); backdrop-filter:blur(6px); }
.gallery-lightbox__media { min-height:300px; height:min(74dvh,760px); display:grid; place-items:center; background:#020b18; }
.gallery-lightbox__media img,.gallery-lightbox__media video { width:100%; height:100%; object-fit:contain; }
.gallery-lightbox__caption { padding:18px 72px 22px 24px; }
.gallery-lightbox__caption span { color:#8cb9ef; font-size:.63rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.gallery-lightbox__caption h2 { margin:4px 0 0; font-size:1.6rem; }
.gallery-lightbox__close { position:absolute; z-index:2; top:14px; right:14px; width:46px; height:46px; padding:0; border:0; background:var(--red); cursor:pointer; }
.gallery-lightbox__close span { position:absolute; top:22px; left:12px; width:22px; height:2px; background:var(--white); transform:rotate(45deg); }
.gallery-lightbox__close span:last-child { transform:rotate(-45deg); }
@media (max-width:900px) { .gallery-hero__inner,.gallery-heading { grid-template-columns:1fr; gap:35px; } .gallery-hero__inner { min-height:auto; padding-top:60px; padding-bottom:65px; } .gallery-hero .breadcrumb { margin-bottom:40px; } .gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:600px) { .gallery-hero h1 { font-size:clamp(4rem,19vw,6rem); } .gallery-hero__copy > div { align-items:flex-start; flex-direction:column; } .gallery-heading { margin-bottom:34px; } .gallery-filters { flex-wrap:nowrap; overflow-x:auto; padding-bottom:17px; } .gallery-filters button { flex:0 0 auto; } .gallery-grid { grid-template-columns:1fr; gap:18px; } .gallery-card__copy { min-height:auto; } .gallery-lightbox__media { height:68dvh; } .gallery-lightbox__caption { padding:15px 60px 17px 18px; } }
