/* GL-STROY photography: real source images, 21 October 2026. */
.visual-hero{isolation:isolate;position:relative;overflow:hidden;background:#262320;color:#fff;padding:72px 0 64px;min-height:580px}
.visual-hero>.visual-hero__image{position:absolute;inset:0;z-index:-2;margin:0;border-radius:0;box-shadow:none}
.visual-hero>.visual-hero__image img{display:block;width:100%;height:100%;object-fit:cover;object-position:var(--hero-position,center)}
.visual-hero:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(18,20,22,.91),rgba(18,20,22,.76) 43%,rgba(18,20,22,.28)),linear-gradient(0deg,rgba(18,20,22,.26),rgba(18,20,22,.08))}
.visual-hero .hero-grid,.visual-hero .spec-hero-grid{display:block;position:relative}
.visual-hero .hero-copy,.visual-hero .spec-hero-copy{max-width:910px;position:relative;margin:0}
.visual-hero h1{color:#fff;max-width:100%;font-size:clamp(2.4rem,4.35vw,3.9rem);line-height:1.1;letter-spacing:-.035em;word-break:normal;overflow-wrap:normal;margin:0 0 26px}
.visual-hero p,.visual-hero .hero-lead,.visual-hero .microcopy{color:#f1efed}
.visual-hero .hero-lead,.visual-hero .spec-hero-copy>p{max-width:760px;font-size:1.15rem;line-height:1.6}
.visual-hero .eyebrow{display:inline-flex;color:#fff;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.2);padding:8px 13px;border-radius:100px;margin-bottom:22px;font-size:.76rem}
.visual-hero .hero-badges{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-width:910px;margin:25px 0 0}
.visual-hero .hero-badges li{background:rgba(255,255,255,.11);border:1px solid rgba(255,255,255,.17);color:#fff;border-radius:14px;padding:13px 15px;line-height:1.55;align-items:flex-start;font-size:.79rem;font-weight:500}
.visual-hero .hero-badges .icon{color:#ffb4ab;flex-shrink:0;margin-top:2px}
.visual-hero .button--filled{background:#a82423;color:#fff;border-color:#a82423}
.visual-hero .button--filled:hover{background:#c0322e}
.visual-hero .button--outlined{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.6);color:#fff}
.visual-hero .button--outlined:hover{background:rgba(255,255,255,.23)}
.visual-hero .floating-card{position:static;display:inline-flex;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.22);box-shadow:none;color:#fff;margin-top:22px;max-width:560px;backdrop-filter:none}
.visual-hero .floating-card span{color:#e7e3df}
.visual-hero.inner-hero--compact{min-height:420px;padding-block:78px}
.photo-illustrated{display:flow-root}
.text-photo{display:block;width:min(100%,528px);max-width:100%;margin:28px auto 30px;break-inside:avoid}
.text-photo picture{display:block;width:100%;aspect-ratio:3/2;border-radius:20px;box-shadow:0 12px 32px rgba(36,25,22,.08);overflow:hidden}
.text-photo img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}
.legacy-content-photo{display:block;max-width:528px;width:100%;aspect-ratio:3/2!important;border-radius:20px!important}
.legacy-content-photo img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}
.text-photo figcaption{font-size:.82rem;line-height:1.55;color:var(--on-surface-variant,#534341);padding:12px 3px 0}
.section--dark .text-photo figcaption{color:#eee7e3}
@media(min-width:1100px){.container.photo-illustrated:not(.narrow):not(.narrow-wide)>.text-photo{float:right;margin:5px 0 24px 42px}.container.photo-illustrated.photo-illustrated--reverse:not(.narrow):not(.narrow-wide)>.text-photo{float:left;margin:5px 42px 24px 0}}
.photo-illustrated>.grid,.photo-illustrated>.cards-grid,.photo-illustrated>.table-wrap{clear:both}
.document-grid:has(.text-photo),.contact-grid:has(.text-photo){grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
.document-grid:has(.text-photo)>article,.contact-grid:has(.text-photo)>article{padding:24px}
@media(max-width:1099px){.document-grid:has(.text-photo),.contact-grid:has(.text-photo),.split:has(.text-photo),.section-heading:has(.text-photo){grid-template-columns:1fr}}
@media(max-width:1099px){.section-heading:has(.text-photo){display:block}.section-heading:has(.text-photo)>div{width:100%;max-width:none}}
@media(max-width:760px){.document-grid>article>.text-photo,.contact-grid>article>.text-photo{width:calc(100% + 48px);max-width:none;margin-inline:-24px}.document-grid>article>.text-photo figcaption,.contact-grid>article>.text-photo figcaption{padding-inline:24px}}
.visual-gallery{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px!important;overflow:visible!important;cursor:auto;user-select:auto;padding:0!important;margin-top:28px;align-items:start}
.visual-gallery figure{margin:0!important;min-width:0;background:var(--surface-container-lowest,#fff);border:1px solid var(--outline-variant,#ded5d0);border-radius:18px;overflow:hidden;box-shadow:none}
.visual-gallery a[data-photo]{position:relative;display:block;color:inherit;text-decoration:none;overflow:hidden;cursor:zoom-in}
.visual-gallery picture{display:block;width:100%!important;height:auto!important;aspect-ratio:3/2!important;border-radius:0!important;box-shadow:none!important}
.visual-gallery img{display:block;width:100%!important;height:auto!important;aspect-ratio:3/2!important;object-fit:cover!important;transition:transform .35s ease;-webkit-user-drag:none}
.visual-gallery a:hover img{transform:scale(1.035)}
.visual-gallery a[data-photo]:after{content:"↗";position:absolute;right:11px;bottom:11px;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:rgba(20,22,24,.78);color:#fff;font-size:21px}
.visual-gallery a:focus-visible{outline:4px solid var(--primary,#8f1d1d);outline-offset:-4px}
.visual-gallery figcaption{padding:14px 16px 17px!important;font-size:.84rem!important;line-height:1.5;font-weight:500!important}
.visual-gallery .portfolio-card--video{grid-column:1/-1}
.visual-gallery video{max-height:500px}
.portfolio-intro{padding-bottom:20px}
.portfolio-intro .eyebrow{margin-bottom:12px}
.portfolio-intro h2{max-width:900px}
.portfolio-lead{max-width:760px;color:var(--on-surface-variant);font-size:1.08rem}
.portfolio-filters{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:28px 0 22px}
.portfolio-filters button{border:1px solid var(--outline-variant);background:transparent;border-radius:100px;padding:11px 18px;cursor:pointer;font-size:.86rem;font-weight:650;transition:background .18s,color .18s}
.portfolio-filters button[aria-pressed=true]{background:var(--primary);border-color:var(--primary);color:#fff}
.portfolio-filters button:focus-visible{outline:3px solid var(--primary);outline-offset:3px}
.portfolio-counter{font-size:.84rem;color:var(--on-surface-variant);margin-bottom:24px}
.portfolio-collection{margin:0!important}
.portfolio-collection [hidden]{display:none!important}
.portfolio-story{border-top:1px solid var(--outline-variant);padding-block:50px}
.portfolio-story>.container{display:grid;grid-template-columns:minmax(0,1fr) 528px;gap:56px;align-items:center}
.portfolio-story .text-photo{margin:0}
.portfolio-story:nth-of-type(even)>.container>.text-photo{grid-row:1;grid-column:1}
.portfolio-story:nth-of-type(even)>.container>.portfolio-story__copy{grid-column:2}
.portfolio-story__copy .eyebrow{font-size:.78rem;margin-bottom:14px}
.portfolio-story__copy p{color:var(--on-surface-variant)}
.photo-lightbox{width:100vw;height:100dvh;max-width:none;max-height:none;inset:0;margin:0;padding:0;border:0;color:#fff;background:rgba(12,14,17,.97);overflow:hidden}
.photo-lightbox::backdrop{background:rgba(0,0,0,.9)}
.photo-lightbox:not([open]){display:none}
.photo-lightbox[open]{display:flex;align-items:center;justify-content:center}
.photo-lightbox__frame{display:flex;flex-direction:column;align-items:center;justify-content:center;width:min(1600px,calc(100% - 150px));height:calc(100dvh - 140px);margin:0;gap:18px;pointer-events:none}
.photo-lightbox__image{display:block;width:auto;height:auto;max-width:100%;max-height:calc(100dvh - 220px);object-fit:contain;box-shadow:0 16px 60px rgba(0,0,0,.3);pointer-events:auto}
.photo-lightbox__caption{font-size:.94rem;line-height:1.5;text-align:center;color:#e2e2e2;max-width:900px;pointer-events:auto}
.photo-lightbox__toolbar{position:absolute;top:18px;left:24px;right:24px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.photo-lightbox__count{font-size:.88rem;color:#c9cdd2}
.photo-lightbox button{display:grid;place-items:center;background:rgba(255,255,255,.1);color:#fff;border:1px solid rgba(255,255,255,.25);border-radius:50%;width:48px;height:48px;cursor:pointer;font:28px/1 Arial,sans-serif;flex-shrink:0}
.photo-lightbox button:hover{background:rgba(255,255,255,.22)}
.photo-lightbox button:focus-visible{outline:3px solid #fff;outline-offset:4px}
.photo-lightbox__prev,.photo-lightbox__next{position:absolute;top:50%;transform:translateY(-50%)}
.photo-lightbox__prev{left:20px}.photo-lightbox__next{right:20px}
.photo-lightbox__hint{position:absolute;bottom:19px;left:20px;right:20px;text-align:center;color:#aeb3b9;font-size:.78rem}
@media(max-width:1099px){.portfolio-story>.container{display:flex;flex-direction:column;gap:30px;align-items:stretch}.portfolio-story .text-photo{width:min(100%,528px);margin-inline:auto}.visual-hero h1{font-size:clamp(2.2rem,5vw,3.7rem)}}
@media(max-width:760px){
 .visual-hero{padding:46px 0 42px;min-height:480px}
 .visual-hero>.visual-hero__image img{object-position:85% center}
 .visual-hero:after{background:linear-gradient(90deg,rgba(18,20,22,.86),rgba(18,20,22,.63)),linear-gradient(0deg,rgba(18,20,22,.3),transparent)}
 .visual-hero h1{font-size:clamp(1.8rem,7.8vw,2.7rem);line-height:1.16;letter-spacing:-.02em;margin-bottom:23px}
 .visual-hero .hero-lead,.visual-hero .spec-hero-copy>p{font-size:1.02rem;line-height:1.6}
 .visual-hero .hero-badges{grid-template-columns:1fr;gap:8px;margin-top:22px}
 .visual-hero .hero-badges li{font-size:.76rem;padding:11px 13px}
 .visual-hero .microcopy{font-size:.78rem}
 .visual-hero .eyebrow{font-size:.67rem;letter-spacing:.07em;padding:7px 11px}
 .visual-hero.inner-hero--compact{min-height:330px;padding-block:55px}
 .visual-hero .button-row{gap:10px}
 .visual-hero .button{font-size:.83rem;padding:14px 18px;min-height:48px}
 .text-photo{margin-block:24px}
 .text-photo picture{border-radius:15px}
 .visual-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px!important}
 .visual-gallery figcaption{padding:11px 12px 14px!important;font-size:.75rem!important}
 .visual-gallery figure{border-radius:13px}
 .visual-gallery a[data-photo]:after{width:28px;height:28px;font-size:17px;right:8px;bottom:8px}
 .portfolio-story{padding-block:34px}
 .portfolio-story>.container{display:flex;flex-direction:column;gap:22px;align-items:stretch}
 .portfolio-story .text-photo{max-width:528px;margin-inline:auto}
 .portfolio-filters{gap:8px;margin-top:22px}
 .portfolio-filters button{padding:10px 14px;font-size:.78rem}
 .photo-lightbox__frame{width:100%;height:calc(100dvh - 160px);padding:0 14px;gap:18px}
 .photo-lightbox__image{max-height:calc(100dvh - 270px)}
 .photo-lightbox__caption{font-size:.83rem;max-width:100%;padding-inline:5px}
 .photo-lightbox__toolbar{top:13px;left:16px;right:16px}
 .photo-lightbox__prev,.photo-lightbox__next{top:auto;bottom:49px;transform:none}
 .photo-lightbox__prev{left:calc(50% - 60px)}.photo-lightbox__next{right:calc(50% - 60px)}
 .photo-lightbox__hint{font-size:.7rem;bottom:15px}
}
@media(prefers-reduced-motion:reduce){.visual-gallery img{transition:none}}
