/* === style.css === */
@font-face{font-family:Manrope;src:url('assets/manrope.woff2') format('woff2');font-style:normal;font-weight:400 800;font-display:swap}
@font-face{font-family:Bluescreens;src:url('assets/bluescreens.ttf') format('truetype');font-style:normal;font-weight:600;font-display:swap}
.gals-article i{display:none !important}
.gals-article{--gutter:clamp(24px,3.8vw,110px);--section-gap:clamp(88px,9vw,200px)}
.gals-article *, .gals-article *::before, .gals-article *::after{box-sizing:border-box}
.gals-article{scroll-behavior:smooth;overflow-x:clip}
.gals-article{margin:0;background:#fff;color:#111;font-family:Manrope,Arial,sans-serif;overflow-x:clip}
.gals-article img{display:block;width:100%;height:100%;object-fit:cover}
.gals-article figure{margin:0}
.gals-article main, .gals-article section{width:100%;min-width:0}
.gals-article .container{width:100%;max-width:none;margin-inline:0;padding-inline:var(--gutter)}
.gals-article .hero{height:100vh;height:100svh;min-height:620px;position:relative;overflow:hidden;color:#fff;width:100%}
.gals-article .hero picture, .gals-article .hero picture img{position:absolute;inset:0;width:100%;height:100%}
.gals-article .hero picture img{object-fit:cover;object-position:center}
.gals-article .hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,transparent 28%,rgba(0,0,0,.68) 100%);pointer-events:none}
.gals-article h1{position:absolute;bottom:clamp(65px,8vh,130px);left:var(--gutter);width:min(1100px,calc(100% - 2 * var(--gutter)));font-size:clamp(48px,5.4vw,110px);line-height:1.05;letter-spacing:-.045em;margin:0;font-weight:800;overflow-wrap:normal}
.gals-article .scroll-cue{position:absolute;bottom:24px;right:var(--gutter);font-size:14px}.gals-article .scroll-cue span{display:inline-block;margin-left:16px;animation:bob 2s infinite}@keyframes bob{50%{transform:translateY(8px)}}
.gals-article .intro{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(30px,5vw,120px);align-items:center;padding-block:clamp(70px,9vw,180px)}
.gals-article .intro-image{height:min(85vh,950px);min-height:450px;min-width:0}
.gals-article .copy{font-size:clamp(20px,1.55vw,32px);line-height:1.34;font-weight:500;margin:0 0 clamp(28px,3vw,54px);max-width:100%;overflow-wrap:break-word}
.gals-article .article-section{margin-bottom:var(--section-gap)}
.gals-article .article-section h2{font-family:Bluescreens,Manrope,sans-serif;font-size:clamp(65px,6.5vw,150px);line-height:.94;letter-spacing:-.01em;font-weight:600;max-width:1400px;margin:0 0 clamp(45px,6vw,120px);overflow-wrap:break-word}
.gals-article .article-section>.container:not(:first-child){padding-top:clamp(55px,6vw,130px)}
.gals-article .split, .gals-article .columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(28px,4vw,110px);align-items:start}
.gals-article .split{margin-block:clamp(50px,6vw,110px)}
.gals-article .split .photo{height:min(78vh,900px);min-height:430px}
.gals-article .wide-photo{height:100vh;height:100svh;min-height:600px;width:100%;margin:clamp(40px,5vw,90px) 0 0}
.gals-article .fullscreen-photo{height:100vh;height:100svh;min-height:600px;width:100%;margin-block:clamp(60px,6vw,120px)}
.gals-article .photo{overflow:hidden;position:relative;min-width:0}
.gals-article .photo img{transition:transform 1.2s ease;will-change:transform}
.gals-article .photo figcaption{position:absolute;right:var(--gutter);bottom:20px;color:#fff;text-shadow:0 1px 4px #000;font-size:14px}
.gals-article .image-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:clamp(55px,7vw,140px) 0;width:100%}
.gals-article .image-pair .photo{height:min(95vh,1050px);min-height:500px}
.gals-article .image-pair.overlap{gap:clamp(16px,2vw,48px);max-width:none;padding-inline:var(--gutter)}
.gals-article .image-pair.overlap .photo:nth-child(2){margin-top:clamp(65px,8vw,170px)}
.gals-article .editorial-slider{width:100%;height:100vh;height:100svh;min-height:600px;margin-block:clamp(65px,7vw,145px);overflow:hidden;position:relative}
.gals-article .editorial-slider .swiper-wrapper{display:flex;width:100%;height:100%}
.gals-article .editorial-slider .swiper-slide{position:relative;flex:0 0 100%;width:100%;height:100%;overflow:hidden}
.gals-article .editorial-slider .swiper-slide img{width:100%;height:100%;object-fit:cover}
.gals-article .swiper-pagination{position:absolute;bottom:26px!important;z-index:5}
.gals-article .swiper-pagination-bullet{background:#fff!important;opacity:.5!important}.gals-article .swiper-pagination-bullet-active{opacity:1!important}
.gals-article .video-placeholder{height:85vh;min-height:400px;background:#111;color:#fff;display:flex;flex-direction:column;gap:16px;align-items:center;justify-content:center;margin:clamp(65px,7vw,145px) 0;width:100%}
.gals-article .play{border:1px solid #fff;border-radius:50%;width:72px;height:72px;display:grid;place-items:center;padding-left:4px}
.gals-article .reveal{opacity:0;transform:translateY(30px);transition:opacity .9s ease,transform .9s ease}
.gals-article .reveal.visible{opacity:1;transform:translateY(0)}
.gals-article footer{padding-block:70px 130px;font-size:18px}
@media(min-width:2400px){.gals-article{--gutter:clamp(85px,4vw,180px)}.gals-article .copy{font-size:clamp(30px,1.4vw,48px)}.gals-article .article-section h2{font-size:clamp(140px,6vw,210px)}.gals-article h1{font-size:clamp(110px,5vw,165px);width:min(1600px,75vw)}.gals-article .split, .gals-article .columns{gap:6vw}}
@media(max-width:900px){.gals-article{--gutter:clamp(18px,4vw,36px);--section-gap:80px}.gals-article .hero{min-height:0}.gals-article .hero h1{bottom:65px;left:var(--gutter);width:calc(100% - 2 * var(--gutter));font-size:clamp(30px,8.3vw,48px);line-height:1.08;letter-spacing:-.035em}.gals-article .scroll-cue{bottom:18px;font-size:12px}.gals-article .intro{display:flex;flex-direction:column;align-items:stretch;gap:30px;padding-block:55px}.gals-article .intro-image{height:52vh;min-height:280px}.gals-article .copy{font-size:16px;line-height:1.4;margin-bottom:28px}.gals-article .article-section h2{font-size:clamp(36px,9.2vw,60px);line-height:.98;margin-bottom:36px}.gals-article .article-section>.container:not(:first-child){padding-top:35px}.gals-article .split, .gals-article .columns{display:flex;flex-direction:column;gap:0;margin-block:32px}.gals-article .split .photo{height:52vh;min-height:280px;width:100%;margin-bottom:28px}.gals-article .wide-photo, .gals-article .fullscreen-photo{height:100svh;min-height:0;margin-block:35px}.gals-article .image-pair{margin:40px 0;gap:8px}.gals-article .image-pair .photo{height:55vh;min-height:250px}.gals-article .image-pair.overlap{gap:8px;padding-inline:var(--gutter)}.gals-article .image-pair.overlap .photo:nth-child(2){margin-top:45px}.gals-article .editorial-slider{height:100svh;min-height:380px;margin-block:40px}.gals-article .video-placeholder{height:55vh;min-height:260px;margin:40px 0}.gals-article footer{padding-block:40px 80px;font-size:16px}}
@media(max-width:500px){.gals-article .hero picture img{object-position:center}.gals-article .hero h1{font-size:clamp(30px,8vw,40px)}.gals-article .intro-image{height:300px}.gals-article .image-pair .photo{height:300px;min-height:0}.gals-article .article-section h2{font-size:clamp(35px,9vw,43px)}}
@media(prefers-reduced-motion:reduce){.gals-article *, .gals-article *::before, .gals-article *::after{animation:none!important;transition:none!important}.gals-article .reveal{opacity:1;transform:none}}


/* === layout-v6.css === */

/* v6: based on current Figma desktop 22:144 and mobile 62:2 */
.gals-article{--gutter:3.819444vw;--section-gap:0}
.gals-article *{box-sizing:border-box}.gals-article, .gals-article, .gals-article main{max-width:100%;overflow-x:clip}
.gals-article .container{width:100%;max-width:none;padding-inline:var(--gutter)}
.gals-article .hero{height:100svh;min-height:0;position:relative}.gals-article .hero picture, .gals-article .hero img{height:100%;width:100%;object-fit:cover;display:block}
.gals-article .hero h1{font:700 5.416667vw/1.115 Manrope,Arial,sans-serif;letter-spacing:0;left:var(--gutter);bottom:5.8vh;width:74.722vw;max-width:none;text-wrap:initial}
.gals-article .hero-shade{background:linear-gradient(to bottom,transparent 30%,rgba(0,0,0,.5) 100%)}
.gals-article .copy{font:500 1.736111vw/1.296 Manrope,Arial,sans-serif;margin:0}
.gals-article .article-section h2{font:700 5vw/1.125 Manrope,Arial,sans-serif;letter-spacing:0;margin:0 0 6.25vw;max-width:none}
.gals-article .article-section h2.heading-tech{width:56vw}.gals-article .article-section h2.heading-homes{width:88vw}
.gals-article .intro{display:grid;grid-template-columns:52.014% 1fr;gap:5.7vw;padding:6.8vw var(--gutter) 7.4vw 0;align-items:start;min-height:0}
.gals-article .intro-image{height:44.65vw;min-height:0}.gals-article .intro .copy{max-width:none}
.gals-article .article-section.container{padding-inline:var(--gutter)}
.gals-article .article-section .container>.copy{margin-bottom:3.2vw}.gals-article .article-section.container>.copy{margin-bottom:3.2vw}
.gals-article .split{display:grid;grid-template-columns:44.45vw 46.32vw;gap:5.42vw;align-items:start;margin:5.55vw 0 0}
.gals-article .split .text-column{display:flex;flex-direction:column;gap:3.2vw}.gals-article .split .photo{height:38.125vw;min-height:0}
.gals-article .article-section .figma-complex-photo{width:75vw;height:45.1389vw;min-height:0;margin:0}
.gals-article .columns{display:grid;grid-template-columns:1fr 1fr;gap:3.47vw;margin:6.94vw 0 6.25vw}
.gals-article .image-pair.figma-asymmetric{position:relative;display:block;height:55vw;margin:0 0 6.25vw}
.gals-article .figma-asymmetric .photo:first-child{position:absolute;left:3.82vw;top:0;width:34.24vw;height:30.9vw;z-index:2}
.gals-article .figma-asymmetric .photo:last-child{position:absolute;left:26.04vw;top:11.25vw;width:73.96vw;height:43.82vw;z-index:1}
.gals-article .article-section .fullscreen-photo{width:100%;height:51.3889vw;min-height:0;margin:0 0 7.3vw}
.gals-article .figma-wide-detail{width:83.264vw;height:48.54vw;margin:6.6vw 0 6.25vw}
.gals-article .image-pair.overlap{position:relative;height:52.8vw;display:block;margin:6.25vw 0}
.gals-article .overlap .photo:first-child{position:absolute;left:37.5vw;top:0;width:62.5vw;height:38.2vw;z-index:1}
.gals-article .overlap .photo:last-child{position:absolute;left:0;top:10.42vw;width:33.75vw;height:42.29vw;z-index:2}
.gals-article .figma-duo{display:grid;grid-template-columns:1fr 1fr;width:100%;height:52.083vw;margin:6.25vw 0 11.11vw}
.gals-article .figma-duo .photo{height:100%;width:100%}.gals-article .photo img{width:100%;height:100% !important;object-fit:cover}
.gals-article .split.media-right{grid-template-columns:41.667vw 50vw;gap:4.51vw;margin:0 0 0 var(--gutter);padding:0}.gals-article .split.media-right .photo{height:57.15vw}
.gals-article .video-placeholder{margin:7.3vw 4.167vw;width:91.667vw;height:51.39vw}
.gals-article .final-cta{position:absolute;left:3.82vw;top:4.45vw;color:white;text-decoration:underline;font:500 1.736vw/1.3 Manrope,sans-serif;max-width:60vw}
.gals-article .reveal:not(.visible){opacity:1;transform:none}
@media(max-width:900px){
.gals-article{--gutter:18px}.gals-article .hero{height:100svh}.gals-article .hero h1{font-size:40px;line-height:1.1;left:18px;bottom:28px;width:354px;max-width:calc(100% - 36px)}.gals-article .hero h1 br{display:none}
.gals-article .copy{font-size:16px;line-height:22px}.gals-article .article-section h2{font-size:36px;line-height:39px;margin-bottom:30px;max-width:100%}
.gals-article .intro{display:flex;flex-direction:column-reverse;padding:36px 0 0;gap:40px}.gals-article .intro .copy{padding:0 18px}.gals-article .intro-image{width:100%;height:300px}
.gals-article .article-section.container{padding:0 18px}.gals-article .article-section .container>.copy, .gals-article .article-section.container>.copy{margin-bottom:26px}
.gals-article .split{display:flex;flex-direction:column;gap:0;margin:26px -18px 0}.gals-article .split .text-column{display:contents}.gals-article .split .text-column .copy{padding:0 18px;margin-bottom:26px}.gals-article .split .photo{order:1;height:285px;width:100%;margin:8px 0 34px}.gals-article .split .text-column .copy:last-child{order:2}
.gals-article .article-section .figma-complex-photo{width:100%;height:255px}.gals-article .columns{display:flex;flex-direction:column;gap:26px;margin:34px 0}
.gals-article .image-pair.figma-asymmetric{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 20px;height:215px;margin:34px 0}
.gals-article .figma-asymmetric .photo:first-child, .gals-article .figma-asymmetric .photo:last-child{position:static;width:100%;height:215px}
.gals-article .article-section .fullscreen-photo{height:235px;margin:0 0 34px}
.gals-article .figma-wide-detail{width:100%;height:255px;margin:34px 0}
.gals-article .image-pair.overlap{display:grid;grid-template-columns:120px minmax(0,1fr);gap:10px;padding:0 20px;height:230px;margin:34px 0}
.gals-article .overlap .photo:first-child, .gals-article .overlap .photo:last-child{position:static;width:100%;height:230px}
.gals-article .figma-duo{display:block;width:100%;height:390px;margin:34px 0 66px}.gals-article .figma-duo .photo{width:100%;height:390px}.gals-article .figma-duo .photo+ .photo{display:none}
.gals-article .split.media-right{display:flex;flex-direction:column-reverse;margin:0;padding:0;gap:34px}.gals-article .split.media-right .photo{height:390px;width:100%;margin:0}.gals-article .split.media-right .copy{padding:0 18px}
.gals-article .video-placeholder{margin:34px 0;width:100%;height:220px}.gals-article .final-cta{font-size:16px;left:18px;top:30px;max-width:calc(100% - 36px)}
}
/* v7: restore Figma spacing above the second section heading.
   Desktop: previous paragraph ends at y=2886, heading starts at y=3046 (160px).
   Mobile: previous paragraph ends at y=3103, heading starts at y=3169 (66px). */
.gals-article .article-section:has(.heading-complexes){padding-top:11.111111vw}
@media(max-width:900px){.gals-article .article-section:has(.heading-complexes){padding-top:66px}}

/* v8: Figma desktop 22:144, mobile 62:2 — spacing and captions */
.gals-article .article-section:has(.heading-complexes){padding-top:11.111111vw}
.gals-article .article-section:has(.heading-homes){padding-top:0}
.gals-article .article-section:has(.heading-homes)>.container:first-child{padding-top:0}
/* 1440px design: heading starts at y5809 after paragraph ends y5649 (160px) */
.gals-article .article-section:has(.heading-homes)>.container:first-child{padding-top:11.111111vw}
/* The previous paragraph ends y2886; next heading y3046 */
.gals-article .article-section h2.heading-complexes{margin-bottom:5.902778vw}
.gals-article .article-section h2.heading-homes{margin-bottom:5.902778vw}
/* Design has exact 90px spacing after the other section titles */
.gals-article .article-section h2{margin-bottom:6.25vw}
.gals-article .figma-caption{position:absolute;z-index:4;left:10px;right:auto;bottom:10px;max-width:calc(100% - 20px);color:white;font:500 12px/1.3 Manrope,Arial,sans-serif;text-shadow:0 1px 5px rgba(0,0,0,.65);pointer-events:none}
.gals-article .figma-caption.right{left:auto;right:10px;text-align:right}
.gals-article .photo{isolation:isolate}
.gals-article .gallery-controls{display:none}
.gals-article .ad-disclaimer{position:absolute;z-index:4;left:3.5vw;right:3.5vw;bottom:24px;color:white;font:400 11px/1.35 Manrope,Arial,sans-serif;text-shadow:0 1px 4px rgba(0,0,0,.7)}
@media(max-width:900px){
 .gals-article .article-section:has(.heading-complexes){padding-top:66px}
 .gals-article .article-section:has(.heading-homes)>.container:first-child{padding-top:66px}
 .gals-article .article-section h2, .gals-article .article-section h2.heading-complexes, .gals-article .article-section h2.heading-homes{margin-bottom:32px}
 .gals-article .figma-caption{font-size:10px;bottom:8px;left:8px;max-width:calc(100% - 16px)}
 .gals-article .figma-caption.right{right:8px}
 .gals-article .figma-duo{position:relative;display:block;height:390px;overflow:visible}
 .gals-article .figma-duo .photo{display:none!important;height:390px;width:100%}
 .gals-article .figma-duo .photo.is-active{display:block!important}
 .gals-article .gallery-controls{display:flex;position:absolute;top:100%;left:0;right:0;align-items:center;justify-content:center;gap:20px;height:48px}
 .gals-article .gallery-controls button{appearance:none;background:transparent;border:0;font-size:26px;color:#111;padding:6px 14px;cursor:pointer}
 .gals-article .gallery-count{font:500 13px/1 Manrope,Arial,sans-serif;font-variant-numeric:tabular-nums}
 .gals-article .ad-disclaimer{font-size:9px;bottom:12px;left:18px;right:18px}
}

/* v9 audited against Figma 22:144 / 62:2. Remove inherited generic margins. */
@media(min-width:901px){
  .gals-article .article-section{margin-bottom:0}
  .gals-article .article-section>.container:not(:first-child){padding-top:0}
  .gals-article .intro{padding-bottom:7.36vw}
  .gals-article .article-section.container>.copy{margin-bottom:3.2vw}
  .gals-article .article-section .container>.copy{margin-bottom:3.2vw}
  .gals-article .split.media-right{display:grid;grid-template-columns:41.667vw 50vw;gap:4.514vw;margin:0 0 0 3.819vw;padding:0;align-items:start}
  .gals-article .split.media-right .media-copy{display:flex;flex-direction:column;gap:3.125vw}
  .gals-article .split.media-right .media-copy .copy{margin:0}
  .gals-article .split.media-right .photo{height:57.153vw}
  .gals-article .figma-duo{margin-top:6.25vw;margin-bottom:11.11vw}
  .gals-article .figma-caption{font-size:clamp(12px,1.111vw,24px)}
  .gals-article .final-cta{font-size:4.3056vw;line-height:1.13;text-decoration:none;max-width:88vw;font-weight:700}
  .gals-article .ad-disclaimer{font-size:1.111vw}
}
@media(max-width:900px){
 .gals-article .article-section{margin-bottom:0}
 .gals-article .article-section>.container:not(:first-child){padding-top:0}
 .gals-article .split.media-right{display:flex;flex-direction:column;gap:0}
 .gals-article .split.media-right .media-copy{order:2;padding:0 18px;display:flex;flex-direction:column;gap:26px;margin-top:34px}
 .gals-article .split.media-right .media-copy .copy{padding:0;margin:0}
 .gals-article .split.media-right .photo{order:1;margin:0}
 .gals-article .article-section:has(.heading-homes)>.container:first-child{padding-top:66px}
 .gals-article .figma-duo .photo{margin:0}
 .gals-article .final-cta{font-size:clamp(26px,7.4vw,40px);line-height:1.12;font-weight:700;text-decoration:none}
}


/* v10 — photo labels and reference-style cross-fade galleries */
.gals-article .figma-caption, .gals-article .photo figcaption.figma-caption{left:16px;right:auto;bottom:16px;max-width:calc(100% - 32px);font-size:clamp(12px,1.111111vw,18px);line-height:1.3;font-weight:500;text-shadow:none;filter:none;white-space:normal;overflow-wrap:anywhere;z-index:6}
.gals-article .figma-caption.right, .gals-article .photo figcaption.figma-caption.right{left:auto;right:16px;text-align:right}
/* Gallery matches the Bas reference: fade / crossFade, 1450ms, 4200ms autoplay. */
.gals-article .figma-duo[data-fade-slider]{display:block;position:relative;height:52.083333vw;overflow:hidden;margin-block:6.25vw 11.11vw}
.gals-article .figma-duo[data-fade-slider]>figure.photo{position:absolute;inset:0;display:block!important;width:100%;height:100%;opacity:0;visibility:hidden;pointer-events:none;transition:opacity 1450ms ease,visibility 0s linear 1450ms;z-index:1}
.gals-article .figma-duo[data-fade-slider]>figure.photo.is-active{opacity:1;visibility:visible;pointer-events:auto;transition:opacity 1450ms ease;z-index:2}
.gals-article .figma-duo[data-fade-slider]>figure.photo img{width:100%;height:100%;object-fit:cover}
.gals-article .figma-duo[data-fade-slider] .gallery-controls{display:flex;position:absolute;z-index:8;bottom:22px;left:50%;transform:translateX(-50%);align-items:center;gap:18px;color:#fff}
.gals-article .figma-duo[data-fade-slider] .gallery-controls button{border:0;background:transparent;color:#fff;font:500 28px/1 Manrope,sans-serif;cursor:pointer;padding:5px 10px}
.gals-article .figma-duo[data-fade-slider] .gallery-count{font:500 13px/1.2 Manrope,sans-serif;font-variant-numeric:tabular-nums}
/* Original design's text does not collide with the captioned image. */
.gals-article .image-pair.overlap{margin-bottom:8.4vw}
.gals-article .split.media-right .media-copy{gap:3.125vw}
@media(max-width:900px){
 .gals-article .figma-caption, .gals-article .photo figcaption.figma-caption{left:12px;bottom:12px;max-width:calc(100% - 24px);font-size:12px}
 .gals-article .figma-caption.right, .gals-article .photo figcaption.figma-caption.right{right:12px}
 .gals-article .figma-duo[data-fade-slider]{height:390px;margin:34px 0 66px;overflow:hidden}
 .gals-article .figma-duo[data-fade-slider]>figure.photo{height:390px}
 .gals-article .figma-duo[data-fade-slider] .gallery-controls{bottom:8px}
 .gals-article .split.media-right .media-copy{gap:26px}
}
@media(prefers-reduced-motion:reduce){.gals-article .figma-duo[data-fade-slider]>figure.photo{transition:none!important}}

/* v11 — exact photo assets supplied for overlapping composition */
@media(min-width:901px){
 .gals-article .post-overlap-copy{padding-left:37.5vw;padding-right:3.819vw;margin-top:0}
 .gals-article .post-overlap-copy .copy{max-width:none}
 .gals-article .image-pair.overlap{margin-bottom:3.125vw}
}
/* Bas reference: independent left/right Swiper fade sliders, combined mobile slider */
.gals-article .reference-slider{width:100%;margin:6.25vw 0 11.11vw}
.gals-article .reference-slider-desktop{display:grid;grid-template-columns:50% 50%}
.gals-article .reference-slider .swiper-slider1, .gals-article .reference-slider .swiper-slider2, .gals-article .reference-slider .swiper-slider3{overflow:hidden;position:relative;min-width:0}
.gals-article .reference-slider .swiper-slide{position:relative;height:52.083vw;overflow:hidden}
.gals-article .reference-slider .swiper-slide img{display:block;width:100%;height:100%;object-fit:cover;transform:scale(1.06);transition:transform 5.5s cubic-bezier(.2,.65,.3,1)}
.gals-article .reference-slider .swiper-slide-active img{transform:scale(1)}
.gals-article .reference-slider .swiper-slider3{display:none}
.gals-article .reference-slider .swiper-pagination-bullet{background:#fff;opacity:.6}
.gals-article .reference-slider .swiper-pagination-bullet-active{opacity:1}
/* Photo captions: Figma 16px, no shadow; inset from all edges */
.gals-article .photo .figma-caption, .gals-article .reference-slider .figma-caption{left:16px;right:auto;bottom:16px;max-width:calc(100% - 32px);font-size:16px;line-height:1.3;text-shadow:none!important;filter:none!important;overflow-wrap:break-word}
.gals-article .photo .figma-caption.right, .gals-article .reference-slider .figma-caption.right{left:auto;right:16px}
@media(max-width:900px){
 .gals-article .post-overlap-copy{padding:0 18px}
 .gals-article .reference-slider{margin:34px 0 66px}
 .gals-article .reference-slider-desktop{display:none}
 .gals-article .reference-slider .swiper-slider3{display:block}
 .gals-article .reference-slider .swiper-slide{height:390px}
 .gals-article .photo .figma-caption, .gals-article .reference-slider .figma-caption{font-size:12px;bottom:12px;left:12px;max-width:calc(100% - 24px)}
 .gals-article .photo .figma-caption.right, .gals-article .reference-slider .figma-caption.right{right:12px}
}

/* v12: Figma spacing and reference Swiper pagination, including desktop */
@media(min-width:901px){
  /* Figma: text starts beside the bottom part of the Face ID photograph, not beneath both images */
  .gals-article .post-overlap-copy{position:relative;z-index:3;margin-top:-8.26vw;padding-left:37.5vw;padding-right:3.819vw}
  .gals-article .post-overlap-copy .copy + .copy{margin-top:3.125vw}
  /* Figma's two 720 x 750 image strips have much smaller intervening whitespace */
  .gals-article .reference-slider{margin-top:6.25vw;margin-bottom:6.94vw}
  .gals-article .split.media-right{margin-top:0}
  .gals-article .split.media-right .media-copy{gap:3.125vw}
}
.gals-article .reference-slider .swiper-slider1, .gals-article .reference-slider .swiper-slider2, .gals-article .reference-slider .swiper-slider3{position:relative}
.gals-article .reference-slider .swiper-pagination{position:absolute;z-index:20;left:0;right:0;bottom:18px!important;display:flex;justify-content:center;gap:9px;pointer-events:auto}
.gals-article .reference-slider .swiper-pagination-bullet{width:8px;height:8px;margin:0!important;border-radius:50%;background:#fff;opacity:.55;box-shadow:none}
.gals-article .reference-slider .swiper-pagination-bullet-active{opacity:1}
/* Labels should never touch the edge, even when the parent photo is cropped */
.gals-article .reference-slider .photo figcaption.figma-caption, .gals-article .photo figcaption.figma-caption{left:16px!important;right:16px!important;bottom:16px!important;width:auto!important;max-width:calc(100% - 32px)!important;text-shadow:none!important;filter:none!important;box-sizing:border-box}
.gals-article .reference-slider .photo figcaption.figma-caption.right, .gals-article .photo figcaption.figma-caption.right{text-align:right}
.gals-article .reference-slider .swiper-slide img{transform:none;transition:none}
@media(max-width:900px){
  .gals-article .post-overlap-copy{margin-top:0;padding:0 18px}
  .gals-article .reference-slider{margin:34px 0 48px}
  .gals-article .reference-slider .swiper-pagination{bottom:14px!important}
  .gals-article .reference-slider .photo figcaption.figma-caption, .gals-article .photo figcaption.figma-caption{left:12px!important;right:12px!important;bottom:12px!important;max-width:calc(100% - 24px)!important}
}

/* v13 — match Bas header clearance, image reveals, captions and editorial rhythm */
.gals-article{--site-header-height:70px}
.gals-article .hero{height:calc(100vh - var(--site-header-height));height:calc(100svh - var(--site-header-height));min-height:0}
@media(max-width:900px){.gals-article .hero{height:calc(100svh - var(--site-header-height));min-height:0}}
/* Prevent edge-clipped captions on long photos; consistent inset at every size. */
.gals-article .photo figcaption.figma-caption, .gals-article .reference-slider .photo figcaption.figma-caption{position:absolute!important;left:20px!important;right:20px!important;bottom:20px!important;max-width:none!important;width:auto!important;padding:0!important;line-height:1.4!important;text-shadow:none!important;filter:none!important;box-sizing:border-box;overflow-wrap:normal;word-break:normal;pointer-events:none}
.gals-article .photo figcaption.figma-caption.right, .gals-article .reference-slider .photo figcaption.figma-caption.right{text-align:right!important}
.gals-article .photo figcaption.figma-caption.left, .gals-article .reference-slider .photo figcaption.figma-caption.left{text-align:left!important}
.gals-article .split.media-right .photo figcaption{font-size:clamp(11px,.9vw,15px)!important}
/* Reduce oversized white gaps around the late editorial paragraphs and video. */
@media(min-width:901px){
 .gals-article .split.media-right{margin-bottom:0}
 .gals-article .split.media-right .media-copy{gap:3.125vw}
 .gals-article .split.media-right .media-copy .copy{margin:0}
 .gals-article .reference-slider{margin-top:5.55vw;margin-bottom:4.86vw}
 .gals-article .reference-slider + .container{padding-top:0}
 .gals-article .reference-slider + .container > .copy{margin-top:0;margin-bottom:0}
 .gals-article .video-placeholder{margin-top:5.55vw;margin-bottom:5.55vw}
 .gals-article .video-placeholder + .container > .copy{margin-top:0;margin-bottom:3.47vw}
 .gals-article .video-placeholder + .container + .fullscreen-photo{margin-top:0}
 .gals-article .post-overlap-copy .copy:last-child{margin-bottom:0}
}
@media(max-width:900px){
 .gals-article .photo figcaption.figma-caption, .gals-article .reference-slider .photo figcaption.figma-caption{left:12px!important;right:12px!important;bottom:12px!important;font-size:11px!important}
 .gals-article .reference-slider{margin-top:32px;margin-bottom:38px}
 .gals-article .video-placeholder{margin:36px 0}
}
/* Same reveal families as Bas: headings/text rise, photos wipe in. JS adds js-motion. */
@media(prefers-reduced-motion:no-preference){
 .js-motion .gals-article .reveal:not(.photo):not(.intro-image):not(.image-pair){opacity:0;transform:translateY(45px);transition:opacity 1s cubic-bezier(.22,1,.36,1),transform 1s cubic-bezier(.22,1,.36,1)}
 .js-motion .gals-article .reveal:not(.photo):not(.intro-image):not(.image-pair).visible{opacity:1;transform:none}
 .js-motion .gals-article .photo.reveal{opacity:1;transform:none;clip-path:inset(0 100% 0 0);transition:clip-path 1.25s cubic-bezier(.22,1,.36,1)}
 .js-motion .gals-article .photo.reveal.visible{clip-path:inset(0 0 0 0)}
 .gals-article .reference-slider .swiper-slide img{transform:scale(1.06);transition:transform 5.5s cubic-bezier(.2,.65,.3,1)}
 .gals-article .reference-slider .swiper-slide-active img{transform:scale(1)}
}
@media(prefers-reduced-motion:reduce){.gals-article .reveal, .gals-article .photo.reveal{opacity:1!important;transform:none!important;clip-path:none!important}}
/* v14 critical fix: never conceal photography while awaiting IntersectionObserver. */
.gals-article .photo.reveal, .js-motion .gals-article .photo.reveal, .js-motion .gals-article .photo.reveal:not(.visible){opacity:1!important;visibility:visible!important;clip-path:none!important;transform:none!important}
.gals-article .photo.reveal img{opacity:1!important;visibility:visible!important}
@media(prefers-reduced-motion:no-preference){
 .js-motion .gals-article .photo.reveal img{transform:scale(1.035);transition:transform 1.35s cubic-bezier(.22,1,.36,1)}
 .js-motion .gals-article .photo.reveal.visible img{transform:scale(1)}
}

/* v15: final layout corrections from annotated screenshots */
/* Two independently moving photographs: preserve their exact crop and footprint. */
@media (min-width:901px){
 .gals-article .figma-asymmetric .photo{overflow:hidden}
 .gals-article .figma-asymmetric .photo img{height:calc(100% + 100px);width:100%;object-fit:cover;transform:translate3d(0,var(--parallax-y,0px),0)!important;transition:none!important;will-change:transform}
 .gals-article .figma-asymmetric{margin-bottom:clamp(28px,3.8vw,68px)}
 .gals-article .post-overlap-copy{margin-top:-4.8vw!important}
 .gals-article .image-pair.overlap{margin-bottom:clamp(20px,2.5vw,55px)!important}
 .gals-article .post-overlap-copy .copy+.copy{margin-top:clamp(25px,3vw,60px)}
 .gals-article .split.media-right{margin-top:clamp(35px,4vw,75px)!important;margin-bottom:clamp(25px,3.2vw,60px)!important}
 .gals-article .reference-slider{margin-top:clamp(35px,4vw,75px)!important;margin-bottom:clamp(45px,5vw,90px)!important}
 .gals-article .video-placeholder{margin-top:clamp(38px,4vw,75px)!important;margin-bottom:clamp(38px,4vw,75px)!important}
 .gals-article .video-placeholder+.container>.copy{margin-bottom:clamp(38px,4vw,75px)!important}
}
/* Captions have a true safe area on both sides, including narrow photos. */
.gals-article .photo figcaption.figma-caption, .gals-article .reference-slider .photo figcaption.figma-caption{
 left:clamp(18px,1.65vw,32px)!important;
 right:clamp(18px,1.65vw,32px)!important;
 bottom:clamp(16px,1.65vw,32px)!important;
 width:auto!important;max-width:none!important;
 padding:0!important;box-sizing:border-box!important;
 text-shadow:none!important;filter:none!important;
 white-space:normal!important;overflow-wrap:anywhere!important;
}
.gals-article .photo figcaption.figma-caption.right, .gals-article .reference-slider .photo figcaption.figma-caption.right{text-align:right!important}
/* The last photo is the end of the article; no extra section whitespace below. */
.gals-article main>.article-section:last-child{margin-bottom:0!important;padding-bottom:0!important}
.gals-article main>.article-section:last-child>.fullscreen-photo:last-child{margin-bottom:0!important}
.gals-article main{padding-bottom:0!important}
@media(max-width:900px){
 .gals-article .figma-asymmetric .photo img{transform:none!important}
 .gals-article .figma-asymmetric{margin-bottom:30px}
 .gals-article .post-overlap-copy{margin-top:0!important}
 .gals-article .photo figcaption.figma-caption, .gals-article .reference-slider .photo figcaption.figma-caption{left:14px!important;right:14px!important;bottom:14px!important}
 .gals-article .split.media-right{margin-top:35px!important;margin-bottom:32px!important}
 .gals-article .reference-slider{margin-top:32px!important;margin-bottom:40px!important}
 .gals-article .video-placeholder{margin-top:35px!important;margin-bottom:35px!important}
}


/* === fix-v16.css === */
/* v16 consolidated corrections; keep photo positioning and typography from Figma */
.gals-article{--site-header-height:70px}
.gals-article .hero{height:calc(100svh - var(--site-header-height));min-height:0}
/* The two photos are fixed in their Figma rectangles; only image contents travel. */
@media(min-width:901px){
 .gals-article .figma-asymmetric{margin-bottom:3.2vw!important}
 .gals-article .figma-asymmetric .photo img{height:calc(100% + 120px)!important;position:absolute;top:-60px;left:0;transform:translate3d(0,var(--parallax-y,0px),0)!important;transition:none!important;will-change:transform}
 /* Copy aligns to the left edge of the right column, overlapping only the empty area below the left photo. */
 .gals-article .post-overlap-copy{margin-top:-7vw!important;padding-left:37.5vw;padding-right:3.819vw}
 .gals-article .post-overlap-copy .copy+.copy{margin-top:3.125vw!important}
 .gals-article .image-pair.overlap{margin-bottom:2.6vw!important}
 .gals-article .split.media-right{margin-top:4vw!important;margin-bottom:0!important}
 .gals-article .reference-slider{margin-top:5.5vw!important;margin-bottom:5.5vw!important}
 .gals-article .reference-slider+.container>.copy{margin:0!important}
 .gals-article .video-placeholder{margin-top:5.5vw!important;margin-bottom:5.5vw!important}
 .gals-article .video-placeholder+.container>.copy{margin-bottom:4.5vw!important}
 .gals-article .article-section .fullscreen-photo:last-child{margin-bottom:0!important}
}
/* Captions: fixed safe insets regardless of the position, no shadow or clipping. */
.gals-article .photo figcaption.figma-caption, .gals-article .reference-slider .photo figcaption.figma-caption{
 position:absolute!important;left:22px!important;right:22px!important;bottom:20px!important;
 max-width:calc(100% - 44px)!important;width:auto!important;margin:0!important;padding:0!important;
 box-sizing:border-box!important;overflow-wrap:break-word!important;word-break:normal!important;
 text-shadow:none!important;filter:none!important;line-height:1.35!important;z-index:9!important;
}
.gals-article .photo figcaption.figma-caption.right, .gals-article .reference-slider .photo figcaption.figma-caption.right{text-align:right!important}
.gals-article .photo figcaption.figma-caption.left, .gals-article .reference-slider .photo figcaption.figma-caption.left{text-align:left!important}
/* Fully self-contained reference-style crossfade slider: no external CDN dependency. */
.gals-article .reference-slider .swiper-slider1, .gals-article .reference-slider .swiper-slider2, .gals-article .reference-slider .swiper-slider3{position:relative;overflow:hidden}
.gals-article .reference-slider .swiper-wrapper{display:block;position:relative;width:100%;height:52.083vw}
.gals-article .reference-slider .swiper-slide{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;margin:0!important;
 opacity:0;visibility:hidden;transition:opacity 1450ms ease,visibility 0s linear 1450ms;overflow:hidden}
.gals-article .reference-slider .swiper-slide.swiper-slide-active{opacity:1;visibility:visible;transition:opacity 1450ms ease}
.gals-article .reference-slider .swiper-slide img{width:100%;height:100%;object-fit:cover;transform:scale(1.045);transition:transform 5.5s ease}
.gals-article .reference-slider .swiper-slide.swiper-slide-active img{transform:scale(1)}
.gals-article .reference-slider .swiper-pagination{position:absolute;left:0;right:0;bottom:18px!important;z-index:30;display:flex;gap:10px;justify-content:center}
.gals-article .reference-slider .swiper-pagination-bullet{appearance:none;border:0;padding:0;display:block;width:8px;height:8px;border-radius:50%;background:#fff;opacity:.55;cursor:pointer}
.gals-article .reference-slider .swiper-pagination-bullet-active{opacity:1}
@media(max-width:900px){
 .gals-article .figma-asymmetric .photo img{position:static;transform:none!important;height:100%!important}
 .gals-article .post-overlap-copy{margin-top:0!important}
 .gals-article .reference-slider .swiper-wrapper{height:390px}
 .gals-article .reference-slider{margin:34px 0 42px!important}
 .gals-article .photo figcaption.figma-caption, .gals-article .reference-slider .photo figcaption.figma-caption{left:14px!important;right:14px!important;bottom:14px!important;max-width:calc(100% - 28px)!important;font-size:11px!important}
 .gals-article .video-placeholder{margin:36px 0!important}
}
/* Never blank an image before it becomes visible; animate copy only. */
.gals-article .photo.reveal, .js-motion .gals-article .photo.reveal{opacity:1!important;clip-path:none!important;transform:none!important}
.js-motion .gals-article .photo.reveal img{opacity:1!important;visibility:visible!important}
.gals-article main, .gals-article main>.article-section:last-child{padding-bottom:0!important;margin-bottom:0!important}


/* === fix-v17.css === */
/* v17: mobile and caption layout corrections */
.gals-article .reference-slider .swiper-slide figcaption.figma-caption{bottom:54px!important;left:22px!important;right:22px!important;max-width:calc(100% - 44px)!important;font-size:clamp(11px,1vw,15px)!important;line-height:1.35!important}
.gals-article .reference-slider .swiper-pagination{bottom:18px!important;min-height:10px;align-items:center}
.gals-article .reference-slider .swiper-pagination-bullet{width:8px;height:8px;flex:none}
@media(max-width:900px){
 .gals-article{--gutter:18px}
 .gals-article .hero picture source, .gals-article .hero picture img{object-fit:cover;object-position:center center}
 .gals-article .hero h1{font-size:clamp(30px,8.3vw,36px)!important;line-height:1.11!important;letter-spacing:-.025em!important;width:calc(100% - 36px)!important;left:18px!important;bottom:28px!important;overflow-wrap:normal!important;word-break:normal!important;hyphens:none!important}
 .gals-article .article-section h2{font-size:clamp(30px,8.2vw,36px)!important;line-height:1.13!important;letter-spacing:-.02em!important;overflow-wrap:normal!important;word-break:normal!important;hyphens:none!important}
 .gals-article .article-section h2.heading-tech{width:auto!important}
 .gals-article .image-pair.overlap{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:10px!important;padding:0 18px!important;height:auto!important;min-height:0!important;margin:32px 0!important;align-items:start!important}
 .gals-article .image-pair.overlap .photo:first-child, .gals-article .image-pair.overlap .photo:last-child{position:relative!important;left:auto!important;top:auto!important;width:100%!important;height:235px!important;min-height:0!important;margin:0!important;overflow:hidden!important}
 .gals-article .image-pair.overlap .photo:nth-child(2){margin-top:0!important}
 .gals-article .image-pair.overlap .photo img{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:cover!important;transform:none!important}
 .gals-article .post-overlap-copy{margin:0!important;padding:0 18px!important}
 .gals-article .post-overlap-copy .copy{margin-bottom:26px!important}
 .gals-article .reference-slider{margin:32px 0 38px!important}
 .gals-article .reference-slider .swiper-wrapper, .gals-article .reference-slider .swiper-slide{height:390px!important}
 .gals-article .reference-slider .swiper-slide figcaption.figma-caption{bottom:52px!important;left:16px!important;right:16px!important;max-width:calc(100% - 32px)!important;font-size:11px!important;line-height:1.35!important}
 .gals-article .reference-slider .swiper-pagination{bottom:17px!important}
 .gals-article .article-section .fullscreen-photo:last-child{height:420px!important;min-height:420px!important;margin-bottom:0!important}
 .gals-article .article-section .fullscreen-photo:last-child .final-cta{left:18px!important;right:18px!important;top:28px!important;max-width:calc(100% - 36px)!important;font-size:clamp(25px,7.2vw,34px)!important;line-height:1.13!important}
 .gals-article .article-section .fullscreen-photo:last-child .ad-disclaimer{left:18px!important;right:18px!important;bottom:18px!important;font-size:10px!important;line-height:1.4!important}
 .gals-article .split.media-right .photo{height:390px!important}
 .gals-article .split.media-right .media-copy{margin-top:30px!important}
 .gals-article .video-placeholder{margin:36px 0!important}
 .gals-article .video-placeholder+.container>.copy{margin-bottom:36px!important}
}


/* === fix-v18.css === */
/* v18: unified editorial section rhythm and bottom-anchored slider captions */
@media (min-width:901px){
 /* All four article headings share the same spacing above and below. */
 .gals-article .article-section:has(>h2), .gals-article .article-section:has(>.container:first-child>h2){padding-top:0!important}
 .gals-article .article-section:has(.heading-complexes){padding-top:0!important}
 .gals-article .article-section:has(.heading-homes)>.container:first-child{padding-top:0!important}
 .gals-article .article-section>h2, .gals-article .article-section>.container:first-child>h2{margin-top:clamp(90px,11.111vw,180px)!important;margin-bottom:clamp(56px,6.25vw,100px)!important}
 .gals-article .article-section h2.heading-complexes, .gals-article .article-section h2.heading-homes{margin-bottom:clamp(56px,6.25vw,100px)!important}
 /* No extra gap between previous slider and following heading beyond the common rhythm. */
 .gals-article .article-section>.reference-slider:last-child{margin-bottom:0!important}
}
/* Keep every caption pinned to the photo bottom, including single-line captions.
   Pagination is centered; captions occupy side lanes so the two never overlap. */
.gals-article .reference-slider .swiper-slide.photo figcaption.figma-caption, .gals-article .reference-slider .swiper-slide.photo figcaption.figma-caption.left, .gals-article .reference-slider .swiper-slide.photo figcaption.figma-caption.right{
 position:absolute!important;bottom:18px!important;top:auto!important;
 left:20px!important;right:auto!important;
 width:auto!important;max-width:calc(50% - 48px)!important;
 margin:0!important;padding:0!important;
 font-size:clamp(11px,.88vw,15px)!important;line-height:1.35!important;
 text-align:left!important;overflow-wrap:normal!important;
 z-index:10!important;
}
.gals-article .reference-slider .swiper-slide.photo figcaption.figma-caption.right{
 left:auto!important;right:20px!important;text-align:right!important;
}
.gals-article .reference-slider .swiper-pagination{bottom:19px!important;left:50%!important;right:auto!important;width:auto!important;transform:translateX(-50%)!important;z-index:12!important}
@media(max-width:900px){
 .gals-article .article-section:has(.heading-complexes), .gals-article .article-section:has(.heading-homes)>.container:first-child{padding-top:0!important}
 .gals-article .article-section>h2, .gals-article .article-section>.container:first-child>h2{margin-top:66px!important;margin-bottom:32px!important}
 .gals-article .article-section>.reference-slider:last-child{margin-bottom:0!important}
 .gals-article .reference-slider .swiper-slide.photo figcaption.figma-caption, .gals-article .reference-slider .swiper-slide.photo figcaption.figma-caption.left, .gals-article .reference-slider .swiper-slide.photo figcaption.figma-caption.right{
  bottom:14px!important;left:14px!important;right:auto!important;
  max-width:calc(50% - 32px)!important;font-size:10px!important;line-height:1.25!important;
 }
 .gals-article .reference-slider .swiper-slide.photo figcaption.figma-caption.right{left:auto!important;right:14px!important;text-align:right!important}
 .gals-article .reference-slider .swiper-pagination{bottom:14px!important}
}


/* === fix-v19.css === */
/* v19: section headings use ONE spacing model: section padding, not collapsing h2 margins. */
@media (min-width:901px){
 .gals-article{--heading-top-gap:11.111111vw;--heading-bottom-gap:6.25vw}
 /* Remove gaps inherited from the previous section; each next section owns its top space. */
 .gals-article main>.intro{padding-bottom:0!important;margin-bottom:0!important}
 .gals-article main>.article-section{margin-top:0!important;margin-bottom:0!important;padding-top:var(--heading-top-gap)!important}
 .gals-article main>.article-section.container{padding-top:var(--heading-top-gap)!important}
 .gals-article main>.article-section>.container:first-child{padding-top:0!important}
 .gals-article main>.article-section>h2, .gals-article main>.article-section>.container:first-child>h2{
  margin-top:0!important;margin-bottom:var(--heading-bottom-gap)!important;
 }
 .gals-article main>.article-section h2.heading-complexes, .gals-article main>.article-section h2.heading-homes{margin-bottom:var(--heading-bottom-gap)!important}
 /* Last copy in preceding section should not add a hidden gap above next heading. */
 .gals-article main>.article-section>.container:last-child>.copy:last-child{margin-bottom:0!important}
 .gals-article main>.article-section.container>.split:last-child{margin-bottom:0!important}
 .gals-article main>.article-section>.reference-slider:last-child{margin-bottom:0!important}
}
@media (max-width:900px){
 .gals-article{--heading-top-gap:66px;--heading-bottom-gap:32px}
 .gals-article main>.intro{padding-bottom:0!important;margin-bottom:0!important}
 .gals-article main>.article-section{margin-top:0!important;margin-bottom:0!important;padding-top:var(--heading-top-gap)!important}
 .gals-article main>.article-section.container{padding-top:var(--heading-top-gap)!important}
 .gals-article main>.article-section>.container:first-child{padding-top:0!important}
 .gals-article main>.article-section>h2, .gals-article main>.article-section>.container:first-child>h2{margin-top:0!important;margin-bottom:var(--heading-bottom-gap)!important}
 .gals-article main>.article-section>.container:last-child>.copy:last-child{margin-bottom:0!important}
 .gals-article main>.article-section>.reference-slider:last-child{margin-bottom:0!important}
}


/* === fix-v20.css === */
/* v20: explicit in-flow spacers, not collapsing margins or nested padding. */
@media (min-width:901px) {
 .gals-article main > section.article-section {padding-top:0!important;margin-top:0!important;}
 .gals-article main > section.article-section::before {content:"";display:block;position:static;float:none;clear:both;height:11.111111vw;max-height:none;pointer-events:none;}
 .gals-article main > section.article-section > .container:first-child {padding-top:0!important;margin-top:0!important;}
 .gals-article main > section.article-section > h2, .gals-article main > section.article-section > .container:first-child > h2 {margin-top:0!important;padding-top:0!important;margin-bottom:6.25vw!important;}
 .gals-article main > section.article-section > .container:first-child > h2.heading-homes, .gals-article main > section.article-section > .container:first-child > h2.heading-complexes {margin-top:0!important;}
}
@media (max-width:900px) {
 .gals-article main > section.article-section {padding-top:0!important;margin-top:0!important;}
 .gals-article main > section.article-section::before {content:"";display:block;position:static;float:none;clear:both;height:66px;pointer-events:none;}
 .gals-article main > section.article-section > .container:first-child {padding-top:0!important;margin-top:0!important;}
 .gals-article main > section.article-section > h2, .gals-article main > section.article-section > .container:first-child > h2 {margin-top:0!important;padding-top:0!important;margin-bottom:32px!important;}
}


/* === fix-v21.css === */
/* v21: correct the actual visible gaps, not just section box padding.
   The intro is a two-column grid: its text column extends well below the image.
   Consequently the first section's 160px spacer starts after the text column,
   not after the visible image. It must not receive the same extra spacer. */
@media(min-width:901px){
  .gals-article main > section.article-section:has(.heading-tech)::before{height:0!important;}
  /* The intro grid still leaves its text-column tail below the image. */
  .gals-article main > section.article-section:has(.heading-tech){margin-top:-4.166667vw!important;}
  /* All subsequent section breaks have their own explicit 160px spacer,
     but their previous content already includes approximately 60px of
     terminal whitespace. Normalize the visually measured distance. */
  .gals-article main > section.article-section:not(:has(.heading-tech))::before{height:6.944444vw!important;}
}
@media(max-width:900px){
  /* Mobile is stacked; it does not have the desktop grid mismatch. */
  .gals-article main > section.article-section:has(.heading-tech){margin-top:0!important;}
  .gals-article main > section.article-section:has(.heading-tech)::before{height:66px!important;}
  .gals-article main > section.article-section:not(:has(.heading-tech))::before{height:66px!important;}
}


/* === video-v22.css === */
/* v22: VK Video player */
.gals-article .video-placeholder.video-embed{display:block!important;position:relative!important;width:100%!important;height:auto!important;min-height:0!important;aspect-ratio:16/9!important;margin-left:auto!important;margin-right:auto!important;padding:0!important;overflow:hidden!important;background:#111!important;}
.gals-article .video-placeholder.video-embed iframe{display:block;width:100%;height:100% !important;position:absolute;inset:0;border:0;}


/* === fix-v23.css === */
/* v23: single mobile heading spacing source; remove legacy duplicate gaps. */
@media (max-width:900px) {
  .gals-article { --mobile-heading-top: 36px; --mobile-heading-bottom: 28px; }
  .gals-article main > section.article-section, .gals-article main > section.article-section.container {
    margin-top: 0 !important;
    padding-top: 0 !important;
  }
  .gals-article main > section.article-section::before {
    content: "" !important;
    display: block !important;
    height: var(--mobile-heading-top) !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    clear: both !important;
  }
  .gals-article main > section.article-section > .container:first-child, .gals-article main > section.article-section:has(.heading-homes) > .container:first-child {
    padding-top: 0 !important;
    margin-top: 0 !important;
  }
  .gals-article main > section.article-section > h2, .gals-article main > section.article-section > .container:first-child > h2, .gals-article main > section.article-section h2.heading-tech, .gals-article main > section.article-section h2.heading-complexes, .gals-article main > section.article-section h2.heading-homes {
    margin-top: 0 !important;
    padding-top: 0 !important;
    margin-bottom: var(--mobile-heading-bottom) !important;
  }
}


/* === fix-v25.css === */
/* v25: slider captions clear of central pagination */
@media(min-width:901px){
.gals-article .reference-slider .swiper-slide figcaption.figma-caption{left:22px!important;right:auto!important;bottom:16px!important;width:max-content!important;max-width:calc(50% - 55px)!important;overflow-wrap:break-word!important;font-size:12px!important;line-height:1.25!important}
.gals-article .reference-slider .swiper-pagination{z-index:10!important;pointer-events:auto!important}
}
@media(max-width:900px){
.gals-article .reference-slider .swiper-slide figcaption.figma-caption{left:14px!important;right:14px!important;bottom:47px!important;max-width:calc(100% - 28px)!important;width:auto!important;font-size:11px!important;line-height:1.3!important}
.gals-article .reference-slider .swiper-pagination{bottom:16px!important;z-index:10!important}
}


/* === fix-v26.css === */
/* v26: caption alignment and mobile captions above dots */
@media (min-width:901px){
.gals-article .reference-slider .swiper-slide figcaption.figma-caption.right{
 left:auto!important;right:22px!important;text-align:right!important;
 width:max-content!important;max-width:calc(50% - 55px)!important;
}
.gals-article .reference-slider .swiper-slide figcaption.figma-caption.left{
 left:22px!important;right:auto!important;text-align:left!important;
 width:max-content!important;max-width:calc(50% - 55px)!important;
}
}
@media (max-width:900px){
.gals-article .reference-slider .swiper-slide figcaption.figma-caption, .gals-article .reference-slider .swiper-slide figcaption.figma-caption.left, .gals-article .reference-slider .swiper-slide figcaption.figma-caption.right{
 left:14px!important;right:14px!important;bottom:48px!important;
 width:calc(100% - 28px)!important;max-width:calc(100% - 28px)!important;
 text-align:left!important;font-size:10px!important;line-height:1.25!important;
 max-height:5em!important;overflow:hidden!important;
}
.gals-article .reference-slider .swiper-pagination{bottom:14px!important;z-index:20!important;}
}


/* === fix-v27.css === */
/* v27: desktop slider captions anchored toward the outer/inner edge per column, without dot overlap. */
@media (min-width:901px){
.gals-article .reference-slider .swiper-slider1 .swiper-slide.photo figcaption.figma-caption, .gals-article .reference-slider .swiper-slider1 .swiper-slide.photo figcaption.figma-caption.right{
 left:auto!important;right:20px!important;text-align:right!important;
 width:max-content!important;max-width:calc(50% - 54px)!important;
 bottom:18px!important;line-height:1.3!important;overflow-wrap:normal!important;
}
.gals-article .reference-slider .swiper-slider2 .swiper-slide.photo figcaption.figma-caption, .gals-article .reference-slider .swiper-slider2 .swiper-slide.photo figcaption.figma-caption.left{
 left:20px!important;right:auto!important;text-align:left!important;
 width:max-content!important;max-width:calc(50% - 54px)!important;
 bottom:18px!important;line-height:1.3!important;overflow-wrap:normal!important;
}
}
@media(max-width:900px){
.gals-article .reference-slider .swiper-slider3 .swiper-slide.photo figcaption.figma-caption{
 left:14px!important;right:14px!important;bottom:49px!important;
 width:calc(100% - 28px)!important;max-width:calc(100% - 28px)!important;
 text-align:left!important;line-height:1.3!important;font-size:11px!important;
 max-height:6.5em!important;overflow:hidden!important;
}
.gals-article .reference-slider .swiper-slider3 .swiper-pagination{bottom:15px!important;}
}


/* === fix-v28.css === */
/* v28: each desktop slider caption is aligned to its own outer edge. */
@media (min-width:901px){
.gals-article .reference-slider .swiper-slider1 .swiper-slide.photo figcaption.figma-caption, .gals-article .reference-slider .swiper-slider1 .swiper-slide.photo figcaption.figma-caption.left{
 left:20px!important;right:auto!important;text-align:left!important;
 width:max-content!important;max-width:calc(50% - 54px)!important;
 bottom:18px!important;line-height:1.3!important;
}
.gals-article .reference-slider .swiper-slider2 .swiper-slide.photo figcaption.figma-caption, .gals-article .reference-slider .swiper-slider2 .swiper-slide.photo figcaption.figma-caption.right{
 left:auto!important;right:20px!important;text-align:right!important;
 width:max-content!important;max-width:calc(50% - 54px)!important;
 bottom:18px!important;line-height:1.3!important;
}
}


/* === fix-v29.css === */
/* v29: swap paired photos on mobile; reserve the bottom corners for captions and center for dots. */
@media (max-width:900px){
  .gals-article .image-pair.overlap .photo:first-child{order:2!important}
  .gals-article .image-pair.overlap .photo:nth-child(2){order:1!important}
  .gals-article .reference-slider .swiper-slider3 .swiper-slide.photo figcaption.figma-caption, .gals-article .reference-slider .swiper-slider3 .swiper-slide.photo figcaption.figma-caption.left, .gals-article .reference-slider .swiper-slider3 .swiper-slide.photo figcaption.figma-caption.right{
    position:absolute!important;
    left:10px!important;
    right:auto!important;
    bottom:10px!important;
    top:auto!important;
    width:max-content!important;
    max-width:calc(50% - 24px)!important;
    max-height:none!important;
    overflow:visible!important;
    font-size:10px!important;
    line-height:1.25!important;
    text-align:left!important;
    overflow-wrap:break-word!important;
    z-index:12!important;
  }
  .gals-article .reference-slider .swiper-slider3 .swiper-pagination{
    position:absolute!important;
    left:50%!important;
    right:auto!important;
    transform:translateX(-50%)!important;
    bottom:13px!important;
    z-index:20!important;
  }
}


/* === fix-v30.css === */
/* v30: strict separation between mobile caption and centered pagination. */
.gals-article .article-inline-link{color:inherit;text-decoration:underline;text-underline-offset:2px}
@media(max-width:900px){
 .gals-article .reference-slider .swiper-slider3 .swiper-slide.photo figcaption.figma-caption, .gals-article .reference-slider .swiper-slider3 .swiper-slide.photo figcaption.figma-caption.left, .gals-article .reference-slider .swiper-slider3 .swiper-slide.photo figcaption.figma-caption.right{
   left:8px!important;right:auto!important;bottom:8px!important;
   width:30%!important;max-width:30%!important;
   font-size:9px!important;line-height:1.18!important;
   white-space:normal!important;overflow-wrap:anywhere!important;
   text-align:left!important;transform:none!important;
 }
 .gals-article .reference-slider .swiper-slider3 .swiper-pagination{
   left:50%!important;transform:translateX(-50%)!important;
   bottom:12px!important;width:max-content!important;max-width:34%!important;
   display:flex!important;justify-content:center!important;gap:5px!important;
 }
 .gals-article .reference-slider .swiper-slider3 .swiper-pagination-bullet{width:6px!important;height:6px!important;margin:0!important;flex:0 0 6px!important}
}


/* Delivery: underline only the linked word in the final CTA. */
.gals-article .final-cta, .gals-article .article-section .fullscreen-photo .final-cta {text-decoration:none!important;}
.gals-article .final-cta .cta-underlined {text-decoration:underline!important;text-decoration-thickness:from-font;text-underline-offset:.11em;}

/* v34: scoped motion selectors. js-motion is applied to <html>, not inside article. */
@media (prefers-reduced-motion: no-preference) {
  html.js-motion .gals-article .reveal:not(.photo):not(.intro-image):not(.image-pair):not(.visible) {opacity:0;transform:translateY(45px);transition:opacity 1s cubic-bezier(.22,1,.36,1),transform 1s cubic-bezier(.22,1,.36,1)}
  html.js-motion .gals-article .reveal:not(.photo):not(.intro-image):not(.image-pair).visible {opacity:1;transform:none}
  html.js-motion .gals-article .photo.reveal img {transform:scale(1.035);transition:transform 1.35s cubic-bezier(.22,1,.36,1)}
  html.js-motion .gals-article .photo.reveal.visible img {transform:scale(1)}
}
