/* Shared L22 typography; warm charcoal gives the campaign photography its own setting. */
@view-transition{navigation:auto}
::view-transition-old(root),::view-transition-new(root){animation-duration:.25s}
:root{color-scheme:dark;--pad:clamp(20px,4.5vw,64px);--ink:#e9e5df;--grey:#b6b0aa;--line:#e9e5df26;--pink:#e8cbd5;--accent:#d2abbc;--gb-background:#191818;--gb-surface:#222020;--gb-contact:#282325;--gb-width:1160px;--hero-height:min(420px,51svh)}
html{scroll-padding-top:44px}body{font-size:17px;background:var(--gb-background)}a{text-decoration:none}input{font:inherit}
::selection{background:var(--pink);color:var(--gb-background)}:focus-visible{outline-color:var(--accent)}
.skip-link{position:fixed;top:-100px;left:20px;z-index:40;background:var(--paper);color:var(--gb-background);padding:12px}.skip-link:focus{top:10px}
.gb-nav{position:sticky;top:0;z-index:30;height:44px;background:#0b0b0c;color:var(--paper);padding:0 var(--pad);font-size:13px}
.gb-nav-inner{max-width:1400px;height:100%;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:20px}
.gb-nav a{display:flex;align-items:center;gap:12px;min-height:36px;font-family:var(--display);font-variation-settings:'wdth' 92,'wght' 700}
.gb-nav svg{height:23px;width:auto;fill:currentColor}.gb-nav :focus-visible{outline-color:var(--paper)}
.gb-progress{position:absolute;left:0;bottom:0;width:100%;height:2px;background:var(--pink);transform:scaleX(0);transform-origin:left}
.gb-hero,.gb-brief,.gb-gallery,.gb-footer{width:min(100%,calc(var(--gb-width) + var(--pad)*2));margin-inline:auto;padding-inline:var(--pad)}
.gb-hero{padding-block:30px 52px;overflow:clip}.gb-topline{display:flex;justify-content:space-between;gap:24px;font-size:12px;color:var(--grey)}.gb-topline>a{display:flex;gap:14px;align-items:center;color:var(--ink)}.gb-topline>a span{font-size:18px}
.gb-hero h1{font-size:clamp(48px,5.5vw,76px);margin:18px 0 26px;font-variation-settings:'wdth' 105,'wght' 650;line-height:1.05;letter-spacing:-.05em}
.gb-hero-grid{display:grid;grid-template-columns:minmax(0,1fr) calc(var(--hero-height)*.8) calc(var(--hero-height)*.54);gap:clamp(20px,3vw,44px);align-items:center}
.gb-hero-copy h2{font-size:clamp(30px,3.1vw,43px)}.gb-hero-copy>p{font-size:16px;color:var(--grey);margin-top:20px;max-width:30ch}
.gb-text-link{display:inline-flex;gap:24px;align-items:center;margin-top:28px;padding-bottom:8px;border-bottom:1px solid var(--line);font-size:13px}.gb-text-link svg{width:18px;height:18px}
.gb-hero-main,.gb-hero-side{position:relative}.gb-hero-main img,.gb-hero-side img{width:100%;height:auto}.gb-hero-side{align-self:end;margin-bottom:22px}
.gb-hero-grid figcaption{position:absolute;bottom:10px;left:10px;font:10px/1 var(--body);color:var(--paper);background:#231f20e8;padding:7px 9px}
.gb-brief{display:grid;grid-template-columns:1fr 2fr;gap:40px;padding-block:60px;border-top:1px solid var(--line)}.gb-label{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--grey)}
.gb-brief h2{font-size:clamp(30px,3.1vw,44px)}.gb-brief>div>p{max-width:60ch;color:var(--grey);margin-top:22px;line-height:1.6;font-size:16px}
.gb-facts{display:grid;grid-template-columns:.7fr 1.5fr 1.2fr;gap:24px;margin-top:30px;padding-top:22px;border-top:1px solid var(--line)}.gb-facts span{display:block;font-size:12px;color:var(--grey);margin-bottom:7px}.gb-facts strong{font-size:15px;font-weight:600}
.gb-transformation{--compare-height:min(520px,calc(100svh - 150px));background:var(--gb-surface);padding:40px max(var(--pad),calc((100vw - var(--gb-width))/2));display:grid;grid-template-columns:minmax(0,1fr) calc(var(--compare-height)*.665);gap:clamp(32px,8vw,120px);align-items:center}
.gb-transform-copy h2{font-size:clamp(32px,3.4vw,48px);margin:24px 0 20px}.gb-transform-copy h2 em{font-style:normal;color:var(--accent)}.gb-transform-copy>p:not(.gb-label){font-size:16px;line-height:1.6;max-width:40ch;color:var(--grey)}.gb-source-note{display:flex;align-items:center;gap:20px;margin-top:28px;font-size:12px;border-top:1px solid var(--line);padding-top:18px;max-width:40ch}.gb-source-note svg{width:19px;height:19px;transform:rotate(45deg)}
.gb-comparison{width:100%;justify-self:end}.gb-comparison .image-compare:focus-within{outline-color:var(--ink)}.gb-comparison .compare-hint{font-size:12px;color:var(--grey)}
.gb-gallery{padding-block:60px 72px;overflow:clip}.gb-gallery-head{display:flex;justify-content:space-between;align-items:end;gap:32px;margin-bottom:30px}.gb-gallery h2{font-size:clamp(32px,3.4vw,48px)}.gb-gallery-head>p{max-width:28ch;color:var(--grey);font-size:15px}
.gb-color-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2.2vw,32px);align-items:start;max-width:min(1040px,calc((100svh - 240px)*2.4));margin-inline:auto}.gb-color-grid figure:nth-child(2){margin-top:24px}.gb-color-grid figure:nth-child(3){margin-top:48px}.gb-color-grid img{width:100%;height:auto}.gb-color-grid figcaption{display:flex;justify-content:space-between;gap:10px;padding-top:12px;font-size:12px}.gb-color-grid figcaption>span:last-child{font-size:11px}
.gb-contact{background:var(--gb-contact);padding:36px max(var(--pad),calc((100vw - var(--gb-width))/2)) 42px}.gb-contact p{font-size:14px;margin-bottom:18px;color:var(--grey)}.gb-contact>a{display:flex;justify-content:space-between;align-items:center;gap:25px;font-family:var(--display);font-size:clamp(32px,4.3vw,58px);font-variation-settings:'wdth' 105,'wght' 650;line-height:1.1;letter-spacing:-.045em}.gb-contact svg{width:38px;height:38px;transition:transform .3s ease}
.gb-footer{display:flex;align-items:center;justify-content:space-between;gap:32px;padding-block:26px;font-size:12px}.gb-footer>a:last-child{display:flex;gap:20px;align-items:center}.gb-footer strong{font-family:var(--display);font-size:25px;font-variation-settings:'wdth' 105,'wght' 650;letter-spacing:-.035em}.gb-footer svg{width:20px;height:20px}
@media(hover:hover) and (pointer:fine){.gb-contact a:hover svg{transform:translate(4px,-4px)}.gb-text-link:hover{color:var(--accent);border-color:var(--accent)}}
@media(max-width:1000px){:root{--hero-height:min(330px,46svh)}.gb-hero-grid{gap:22px}.gb-hero-copy h2{font-size:32px}.gb-hero-copy>p{font-size:14px}.gb-brief{grid-template-columns:.6fr 2fr}.gb-facts{gap:16px}.gb-facts strong{font-size:14px}}
@media(max-width:960px){.gb-nav{height:64px}html{scroll-padding-top:64px}}
@media(max-width:700px){
 :root{--hero-height:none}.gb-hero{padding-block:24px 40px}.gb-topline{font-size:10px;gap:12px}.gb-topline>a{gap:9px}.gb-hero h1{font-size:48px;margin:18px 0 24px}.gb-hero-grid{grid-template-columns:1.3fr .8fr;gap:18px;max-width:430px;margin-inline:auto}.gb-hero-copy{grid-column:1/-1;margin-bottom:8px}.gb-hero-copy h2{font-size:32px}.gb-hero-copy>p{font-size:15px;max-width:34ch;margin-top:14px}.gb-text-link{margin-top:18px}.gb-hero-side{margin-bottom:0;align-self:center}.gb-hero-grid figcaption{left:7px;bottom:7px;font-size:9px;padding:6px 7px}
 .gb-brief{grid-template-columns:1fr;gap:22px;padding-block:40px}.gb-brief h2{font-size:30px}.gb-brief>div>p{font-size:15px}.gb-facts{grid-template-columns:1fr 1.5fr;gap:20px}.gb-facts>div:last-child{grid-column:1/-1}
 .gb-transformation{grid-template-columns:1fr;gap:28px;padding-block:36px}.gb-transform-copy h2{font-size:32px;margin:16px 0}.gb-transform-copy>p:not(.gb-label){font-size:15px}.gb-source-note{margin-top:22px}.gb-comparison{max-width:min(100%,calc(min(560px,72svh)*.665));justify-self:center}
 .gb-gallery{padding-block:40px 48px}.gb-gallery-head{display:block;margin-bottom:24px}.gb-gallery h2{font-size:32px}.gb-gallery-head>p{font-size:14px;margin-top:16px}.gb-color-grid{grid-template-columns:1fr;gap:30px;max-width:350px}.gb-color-grid figure{width:88%}.gb-color-grid figure:nth-child(2){margin-top:0;justify-self:end}.gb-color-grid figure:nth-child(3){margin-top:0}.gb-color-grid figcaption{font-size:12px}
 .gb-contact{padding-block:30px}.gb-contact>a{font-size:34px}.gb-contact svg{width:25px;height:25px}.gb-contact p{font-size:13px}.gb-footer{gap:20px;align-items:start}.gb-footer>a:last-child{flex-direction:column;align-items:flex-end;gap:6px;min-width:0}.gb-footer strong{font-size:23px}.gb-footer svg{width:18px;height:18px}
}
.gb-compare-picker{display:flex;align-items:center;gap:24px;margin-top:24px}
.gb-compare-picker[hidden],.gb-compare-panel[hidden]{display:none}
.gb-compare-picker button{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 0;border:0;border-bottom:1px solid transparent;background:transparent;color:var(--grey);font-size:14px;transition:color .2s,border-color .2s}
.gb-compare-picker button[aria-pressed="true"]{color:var(--ink);border-bottom-color:var(--ink);font-weight:600}
.gb-compare-picker button:hover{color:var(--ink)}
.gb-swatch{width:9px;height:9px;border-radius:50%;box-shadow:inset 0 0 0 1px #231f2020}.gb-swatch--gold{background:#c5a566}.gb-swatch--pink{background:#d998ba}
.gb-compare-panel--pink .image-compare{aspect-ratio:675/1200;width:calc(100% * 675 / 798);margin-inline:auto}
.gb-compare-panel--pink .compare-hint{width:calc(100% * 675 / 798);margin-inline:auto}
.gb-comparison:not(.is-switchable) .gb-compare-panel+.gb-compare-panel{margin-top:28px}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

/* Shared L22 image corners and full-size project photographs. */
.gb-hero-main img,.gb-hero-side img,.gb-color-grid img,.gb-comparison .image-compare{border-radius:7px}
.gb-zoom{position:relative;display:block;border-radius:7px;cursor:zoom-in}
.gb-zoom:focus-visible{outline:2px solid var(--ink);outline-offset:5px}
.gb-zoom-icon{position:absolute;right:10px;top:10px;width:32px;height:32px;display:grid;place-items:center;border-radius:50%;background:#191818bc;color:#fff;font:22px/1 system-ui;pointer-events:none}
.gb-hero-grid figcaption{pointer-events:none}
.gb-lightbox{padding:0;border:0;max-width:none;max-height:none;background:transparent;overflow:visible;margin:auto;color:#fff}
.gb-lightbox::backdrop{background:#151414f5}
.gb-lightbox>img{display:block;width:auto;height:auto;max-width:calc(100vw - 40px);max-height:calc(100dvh - 100px);border-radius:7px;object-fit:contain}
.gb-lightbox-close{position:fixed;top:16px;right:18px;width:44px;height:44px;border:1px solid #ffffff50;border-radius:50%;background:#252222;color:#fff;font:30px/1 system-ui;cursor:pointer}
html:has(.gb-lightbox[open]){overflow:hidden}
.gb-lightbox>img{cursor:zoom-out}

/* GymBeam-only atmosphere; shared case-study styles remain neutral. */
.gymbeam-project{--gb-background:#211c21;--gb-surface:#30242e;--gb-contact:#322730}
/* Clear, touch-sized series selection. */
.gb-compare-picker{display:flex;flex-wrap:wrap;gap:4px;width:fit-content;padding:5px;border:1px solid #ffffff40;border-radius:9px;background:#ffffff06;position:relative;margin-top:56px}
.gb-picker-label{position:absolute;left:0;top:-30px;font-size:13px;line-height:20px;color:var(--grey)}
.gb-compare-picker button{min-height:44px;padding:10px 16px;border:1px solid transparent;border-radius:5px;gap:9px;color:#d9cdd3;transition:background .2s,color .2s}
.gb-compare-picker button[aria-pressed="true"]{background:#f4f2ed;color:#282126;border-color:transparent;font-weight:650}
.gb-compare-picker button:hover{background:#ffffff18;color:#fff}
.gb-compare-picker button[aria-pressed="true"]:hover{background:white;color:#282126}
.gb-compare-picker button:focus-visible{outline:2px solid #f4f2ed;outline-offset:3px}
.gb-compare-picker .gb-swatch{width:10px;height:10px;flex:none}
@media(max-width:380px){.gb-compare-picker button{padding-inline:10px;font-size:13px}}

/* Let campaign images lead on larger screens; keep the complete photographs. */
@media(min-width:1001px){
 /* A wider composition and tighter heading leave room for BOTH photographs. */
 .gb-hero{width:min(100%,calc(1280px + var(--pad)*2));padding-top:22px}
 .gb-hero h1{font-size:clamp(48px,5vw,68px);margin:12px 0 18px}
 .gb-hero-grid{grid-template-columns:minmax(220px,1fr) min(42%,calc((100svh - 235px)*.8)) min(35%,calc((100svh - 235px)*.68));gap:24px}
 .gb-hero-side{margin-bottom:0}
 .gb-transformation{--compare-height:min(680px,calc(100svh - 140px));gap:clamp(40px,6vw,88px)}
 .gb-color-grid{max-width:1160px}
}

.gb-next-name{display:inline-flex;align-items:center;gap:14px;white-space:nowrap}.gb-next-name>span{flex:none}.gb-next-label{white-space:nowrap}

.gb-next-name>svg{flex:none}
