:root{--gallery-teal:#05aab3;--gallery-ink:#0a2029;--gallery-muted:#60727a;--gallery-line:#d6e1e3}
body.factory-gallery-page{background:#f5f8f8;color:var(--gallery-ink)}
.factory-gallery-page .topbar{position:relative;background:#fff}
.gallery-hero{min-height:520px;position:relative;display:flex;align-items:flex-end;overflow:hidden;background:#09242d}
.gallery-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 58%}
.gallery-hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,20,28,.9) 0%,rgba(3,20,28,.62) 44%,rgba(3,20,28,.14) 78%),linear-gradient(0deg,rgba(3,20,28,.5),transparent 55%)}
.gallery-hero-copy{width:min(1240px,calc(100% - 48px));margin:0 auto;padding:80px 0;position:relative;z-index:1;color:#fff}
.gallery-hero-copy .eyebrow{color:#27d3d9}
.gallery-hero-copy h1{max-width:760px;margin:14px 0 18px;font-size:clamp(48px,6vw,82px);line-height:.98;letter-spacing:0}
.gallery-hero-copy p:last-child{max-width:660px;margin:0;color:#d7e3e6;font-size:18px;line-height:1.65}
.gallery-section{width:min(1240px,calc(100% - 48px));margin:0 auto;padding:72px 0 96px}
.gallery-intro{display:grid;grid-template-columns:minmax(0,.8fr) minmax(420px,1.2fr);gap:80px;align-items:end;margin-bottom:38px}
.gallery-intro h2{margin:8px 0 0;font-size:clamp(34px,4vw,54px);line-height:1.05;letter-spacing:0}
.gallery-intro>p{margin:0;color:var(--gallery-muted);font-size:16px;line-height:1.7}
.gallery-filters{margin-bottom:30px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.gallery-filter{min-height:48px;padding:0 18px;border:1px solid #bfd2d6;border-radius:5px;background:#fff;color:#41565e;font:700 14px/1 inherit;white-space:nowrap;cursor:pointer;box-shadow:0 2px 8px rgba(7,39,49,.04);transition:transform .2s ease,box-shadow .2s ease,background .2s,color .2s,border-color .2s}
.gallery-filter:hover,.gallery-filter.is-active{border-color:var(--gallery-teal);background:var(--gallery-teal);color:#fff;box-shadow:0 8px 20px rgba(0,167,176,.18);transform:translateY(-1px)}
.factory-gallery-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-flow:dense;grid-auto-rows:4px;gap:12px;align-items:start}
.factory-gallery-item{position:relative;overflow:hidden;margin:0;background:#dce5e6;cursor:zoom-in;min-width:0;grid-row-end:span var(--gallery-row-span,14)}
.factory-gallery-item[data-shape=wide]{grid-column:span 2}
.factory-gallery-item[data-shape=feature]{grid-column:span 2}
.factory-gallery-item[hidden]{display:none}
.factory-gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .42s ease,filter .3s ease}
.factory-gallery-item figcaption{position:absolute;left:0;right:0;bottom:0;padding:42px 18px 16px;background:linear-gradient(transparent,rgba(3,21,29,.82));color:#fff;font-size:15px;font-weight:800;transform:translateY(5px);transition:transform .25s ease}
.factory-gallery-item:hover img{transform:scale(1.035);filter:saturate(1.05)}
.factory-gallery-item:hover figcaption{transform:none}
.gallery-lightbox{width:min(1180px,calc(100% - 32px));max-width:none;padding:0;border:0;background:#071b23;color:#fff;box-shadow:0 30px 90px rgba(0,0,0,.48)}
.gallery-lightbox::backdrop{background:rgba(1,12,17,.84);backdrop-filter:blur(5px)}
.gallery-lightbox-shell{position:relative;display:grid;grid-template-rows:minmax(0,78vh) auto}
.gallery-lightbox-image{width:100%;height:100%;object-fit:contain;background:#061820}
.gallery-lightbox-caption{min-height:66px;padding:18px 86px 18px 24px;display:flex;align-items:center;justify-content:space-between;gap:20px;color:#dce7e9;font-size:15px}
.gallery-lightbox-caption strong{color:#fff;font-size:16px}
.gallery-lightbox-close,.gallery-lightbox-nav{position:absolute;z-index:2;width:44px;height:44px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.34);background:rgba(4,24,32,.72);color:#fff;cursor:pointer}
.gallery-lightbox-close{right:16px;top:16px}
.gallery-lightbox-nav{top:50%;translate:0 -50%}
.gallery-lightbox-nav.prev{left:16px}.gallery-lightbox-nav.next{right:16px}
.gallery-lightbox button:hover{background:var(--gallery-teal);border-color:var(--gallery-teal)}
.gallery-entry-button{min-height:44px;padding:0 18px;display:inline-flex;align-items:center;gap:9px;border:1px solid #00a7b0;background:#00a7b0;color:#fff!important;text-decoration:none;font-size:14px;font-weight:800;transition:transform .2s ease,background .2s ease}
.gallery-entry-button:hover{background:#008f97;transform:translateY(-2px)}
.gallery-entry-button svg{width:18px;height:18px}
.factory-proof .gallery-entry-button{margin-top:22px}
.about-v3-subhead.gallery-enabled{grid-template-columns:minmax(0,1fr) auto;column-gap:34px;align-items:end}
.about-v3-subhead.gallery-enabled>p:last-of-type{grid-column:1}
.about-v3-subhead.gallery-enabled .gallery-entry-button{grid-column:2;grid-row:1/4;margin-bottom:4px}
@media(max-width:900px){.gallery-intro{grid-template-columns:1fr;gap:20px}.gallery-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.factory-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.about-v3-subhead.gallery-enabled{display:block}.about-v3-subhead.gallery-enabled .gallery-entry-button{margin-top:20px}}
@media(max-width:580px){.gallery-hero{min-height:430px}.gallery-hero-copy{width:calc(100% - 32px);padding:58px 0}.gallery-hero-copy h1{font-size:46px}.gallery-section{width:calc(100% - 28px);padding:52px 0 70px}.gallery-filters{gap:8px}.gallery-filter{min-height:46px;padding:0 10px}.factory-gallery-grid{display:block}.factory-gallery-item,.factory-gallery-item[data-shape=wide],.factory-gallery-item[data-shape=feature]{height:auto;aspect-ratio:4/3;margin-bottom:10px;grid-column:auto;grid-row-end:auto}.factory-gallery-item[data-shape=tall]{aspect-ratio:3/4}.gallery-lightbox-shell{grid-template-rows:minmax(0,70vh) auto}.gallery-lightbox-caption{padding:15px 70px 15px 16px;display:block}.gallery-lightbox-caption span{display:block;margin-top:5px}}
@media(prefers-reduced-motion:reduce){.factory-gallery-item img,.gallery-entry-button{transition:none}}
