@font-face{font-family:Geist;src:url('../fonts/geist-latin.woff2') format('woff2');font-display:swap}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Geist,Arial,sans-serif;color:#222;background:#fff}img{display:block;max-width:100%}a{color:inherit}.skip-link{position:absolute;left:-9999px}.site-header{height:86px;padding:0 5vw;display:flex;align-items:center;gap:34px;background:#fff;border-bottom:1px solid #e6e6e6;position:sticky;top:0;z-index:100}.brand{margin-right:auto}.brand img{width:205px;height:auto}.desktop-nav{display:flex;gap:30px}.desktop-nav a{text-decoration:none;font-size:13px;color:#333}.desktop-nav a:hover{color:#c99427}.header-cta,.button{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;font-weight:700;font-size:12px;letter-spacing:.04em;text-transform:uppercase}.header-cta{padding:14px 20px;background:#c9972b;color:#fff}.mobile-menu{display:none}.section{padding:90px 7vw}.home-hero{height:650px;position:relative;overflow:hidden;background:#111}.home-hero>img{width:100%;height:100%;object-fit:cover}.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.72),rgba(0,0,0,.28) 55%,rgba(0,0,0,.08))}.home-hero-copy{position:absolute;left:7vw;top:50%;transform:translateY(-50%);color:white;max-width:760px}.home-hero-copy p,.section-heading p,.feature-band>div>p,.project-banner p,.cta-simple>p,.footer-eyebrow{font-size:12px;font-weight:700;letter-spacing:.14em;color:#c9972b}.home-hero h1{font-size:clamp(48px,6.2vw,88px);line-height:.97;margin:16px 0 18px;letter-spacing:-.05em}.home-hero h2{font-size:22px;font-weight:400;line-height:1.45;margin:0 0 30px}.button{padding:15px 23px}.button-primary{background:#c9972b;color:white}.button-light{background:#fff;color:#222}.button-ghost{border:1px solid #bbb}.section-heading{display:grid;grid-template-columns:220px 1fr;align-items:start;gap:30px;margin-bottom:55px}.section-heading h2,.intro h2{font-size:clamp(36px,4.4vw,64px);line-height:1.05;margin:0;letter-spacing:-.04em;max-width:900px}.intro-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:50px;border-top:1px solid #ddd;padding-top:42px}.intro-grid h3{font-size:24px;margin:0 0 16px}.intro-grid p{color:#666;line-height:1.75;margin:0 0 18px}.text-link{font-size:12px;font-weight:700;text-decoration:none;border-bottom:1px solid #222;padding-bottom:4px}.feature-band{background:#151515;color:#fff;padding:85px 7vw;display:grid;grid-template-columns:.9fr 1.1fr;gap:80px}.feature-band h2{font-size:clamp(34px,4.5vw,64px);line-height:1.05;margin:12px 0}.feature-points{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #444}.feature-points span{padding:20px 0;border-bottom:1px solid #444;font-size:15px}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.service-grid a{text-decoration:none}.service-grid img{width:100%;height:250px;object-fit:cover}
.service-grid img.img-contain{object-fit:contain;background:#f2f0ec;padding:18px}
.service-grid h3{font-size:22px;margin:18px 0 8px}.service-grid p{color:#666;line-height:1.65;margin:0}.project-banner{height:480px;position:relative;overflow:hidden}.project-banner img{width:100%;height:100%;object-fit:cover;filter:brightness(.5)}.project-banner>div{position:absolute;left:7vw;top:50%;transform:translateY(-50%);color:white;max-width:700px}.project-banner h2{font-size:clamp(40px,5vw,70px);line-height:1.05;margin:12px 0 28px}.cta-simple{text-align:center}.cta-simple h2{font-size:clamp(42px,5vw,70px);margin:12px 0 28px}.contact{background:#222;color:#fff;padding:70px 7vw 25px}.contact-wrap{display:grid;grid-template-columns:1.5fr .5fr;gap:80px;padding-bottom:55px}.contact h2{font-size:clamp(34px,4vw,56px);line-height:1.08;margin:12px 0 20px}.contact p{color:#aaa;line-height:1.65}.footer-contact{display:flex;flex-direction:column;gap:10px}.footer-contact a{text-decoration:none}.contact footer{border-top:1px solid #444;padding-top:22px;display:flex;justify-content:space-between;gap:20px;font-size:12px;color:#aaa}.contact footer nav{display:flex;gap:18px}.contact footer nav a{text-decoration:none}.whatsapp-float{position:fixed;right:20px;bottom:20px;background:#25D366;color:#fff;width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;text-decoration:none;z-index:90;box-shadow:0 6px 18px rgba(0,0,0,.28);transition:transform .2s ease,box-shadow .2s ease}.whatsapp-float svg{width:30px;height:30px}.whatsapp-float:hover{transform:scale(1.08);box-shadow:0 8px 22px rgba(0,0,0,.32)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* Inner pages */
.page-hero{min-height:520px;display:grid;grid-template-columns:1fr 1fr;background:#f4f2ed}.page-hero-copy{padding:95px 7vw;align-self:center}.page-hero-copy h1{font-size:clamp(44px,5vw,72px);line-height:1.02;letter-spacing:-.05em;margin:14px 0 22px}.page-hero-copy em{font-style:normal;color:#c9972b}.page-hero-copy>p{color:#666;line-height:1.7;max-width:640px}.eyebrow{font-size:11px!important;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#c9972b!important}.page-hero-media img{width:100%;height:100%;min-height:520px;object-fit:cover}
/* Tall/narrow product photos (e.g. a rolled membrane, a single kerb)
   look zoomed-in and lose their top/sides when force-cropped into a
   wide hero slot with object-fit:cover. .contain-media shows the
   whole photo, letterboxed on a matching background, instead. */
.page-hero-media.contain-media{background:linear-gradient(135deg,#f8f6f0,#f2efe8);display:flex;align-items:center;justify-content:center;padding:32px}
.page-hero-media.contain-media img{width:100%;height:100%;min-height:0;object-fit:contain;object-position:center}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.section-kicker{font-size:12px;color:#c9972b;font-weight:700;letter-spacing:.12em;text-transform:uppercase;margin-bottom:28px}.section-kicker span{margin-right:8px}.section-intro{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start;margin-bottom:50px}.section-intro h2,.split-editorial h2,.catalogue-category-heading h2,.documentation-note h2{font-size:clamp(36px,4vw,58px);line-height:1.05;margin:0;letter-spacing:-.04em}.section-intro p{color:#666;line-height:1.7}.fact-strip{display:grid;grid-template-columns:repeat(4,1fr);padding:30px 7vw;background:#151515;color:#fff}.fact-strip div{padding:15px 25px;border-right:1px solid #444}.fact-strip strong{font-size:30px;display:block;color:#c9972b}.fact-strip span{font-size:12px;color:#bbb}.split-editorial{display:grid;grid-template-columns:1fr 1fr;gap:70px}.story-copy p{color:#666;line-height:1.75}.field-proof{display:grid;grid-template-columns:1fr 1fr;background:#161616;color:#fff}.field-proof-media img{width:100%;height:100%;min-height:500px;object-fit:cover}.field-proof-copy{padding:80px 7vw}.field-proof-copy h2{font-size:50px}.process-cards,.link-card-grid,.catalogue-cards,.proof-grid,.contact-detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.process-cards li{list-style:none;border-top:2px solid #c9972b;padding:24px;background:#f5f5f5}.process-cards p{color:#666;line-height:1.6}.link-card-grid>a,.contact-detail-grid>*{padding:28px;border:1px solid #ddd;text-decoration:none}.link-card-grid h2{font-size:28px}.link-card-grid p,.contact-detail-grid p{color:#666;line-height:1.6}.product-nav{padding:18px 7vw;display:flex;gap:24px;flex-wrap:wrap;border-bottom:1px solid #ddd}.product-nav a{text-decoration:none;font-size:13px}.catalogue-category{margin-top:70px}.catalogue-category-heading{margin-bottom:25px}.catalogue-cards{grid-template-columns:repeat(3,1fr)}.product-card{border:1px solid #ddd;background:#fff}.product-card-media img{width:100%;height:240px;object-fit:cover}.product-card-body{padding:24px}.product-card-body h3{font-size:24px}.product-card-body p,.product-card-body dd{color:#666;line-height:1.6}.product-card dl{margin:0}.product-card dl div{display:flex;justify-content:space-between;gap:15px;border-top:1px solid #eee;padding:10px 0}.product-card dt{font-weight:700}.catalogue-feature{display:grid;grid-template-columns:.8fr 1.2fr;gap:30px}.catalogue-feature-media img{width:100%;height:100%;max-height:520px;object-fit:cover}
.catalogue-feature-media img.img-contain{object-fit:contain;background:#f2f0ec;padding:24px}
.spec-row{display:grid;grid-template-columns:1fr 1fr 1.2fr;gap:16px;padding:16px;border-bottom:1px solid #ddd}.spec-head{font-weight:700;background:#f2f2f2}.application-band,.documentation-note{padding:65px 7vw;background:#eee}.application-band{display:flex;align-items:center;justify-content:space-between;gap:40px}.application-band h2{font-size:40px;margin:8px 0}.flagship-card{display:grid;grid-template-columns:1fr 1fr;gap:50px;margin:60px 0}.flagship-media img,.proof-grid img{width:100%;height:380px;object-fit:cover}.flagship-copy h3{font-size:48px;line-height:1;margin:10px 0 20px}.flagship-copy p,.flagship-copy li{color:#666;line-height:1.7}.quote{background:#f4f2ed}.quote-layout{display:grid;grid-template-columns:.7fr 1.3fr;gap:60px}.quote-intro h2{font-size:50px}.quote-form{display:grid;gap:16px}.quote-form label{display:grid;gap:7px;font-size:12px;font-weight:700;text-transform:uppercase}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.quote-form input,.quote-form select,.quote-form textarea{width:100%;padding:14px;border:1px solid #bbb;background:#fff;font:inherit}.contact-detail-grid{grid-template-columns:repeat(2,1fr)}
@media(max-width:900px){.home-hero{height:590px}.intro-grid,.service-grid,.process-cards,.link-card-grid,.catalogue-cards,.proof-grid{grid-template-columns:1fr 1fr}.feature-band,.page-hero,.split-editorial,.field-proof,.quote-layout,.catalogue-feature,.flagship-card{grid-template-columns:1fr}.page-hero-media img{min-height:380px}.section-heading,.section-intro{grid-template-columns:1fr}.fact-strip{grid-template-columns:1fr 1fr}.contact-wrap{grid-template-columns:1fr}.application-band{align-items:flex-start;flex-direction:column}}
@media(max-width:600px){.site-header{height:74px;padding:0 20px}.brand img{width:170px}.section{padding:64px 22px}.home-hero-copy{left:22px;right:22px}.home-hero h1{font-size:48px}.intro-grid,.service-grid,.process-cards,.link-card-grid,.catalogue-cards,.proof-grid,.contact-detail-grid{grid-template-columns:1fr}.feature-band{padding:64px 22px}.feature-points{grid-template-columns:1fr}.project-banner>div{left:22px;right:22px}.contact{padding:60px 22px 25px}.contact footer{flex-direction:column}.contact footer nav{flex-wrap:wrap}.page-hero-copy{padding:65px 22px}.fact-strip{grid-template-columns:1fr 1fr;padding:20px}.fact-strip div{padding:15px 10px}.form-row{grid-template-columns:1fr}.spec-row{grid-template-columns:1fr}.application-band,.documentation-note{padding:50px 22px}.flagship-copy h3{font-size:38px}}
html.reveal-ready .reveal{opacity:0;transform:translateY(28px);transition:opacity .7s cubic-bezier(.22,.61,.36,1) var(--reveal-delay,0ms),transform .7s cubic-bezier(.22,.61,.36,1) var(--reveal-delay,0ms);will-change:opacity,transform}html.reveal-ready .reveal-left{transform:translateX(-28px)}html.reveal-ready .reveal-right{transform:translateX(28px)}html.reveal-ready .reveal.is-visible{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){html.reveal-ready .reveal{transition:none;opacity:1;transform:none}}

/* 2026-09-07 responsive/media update */
.brand-mobile-fallback{display:none;align-items:center;gap:9px;text-decoration:none;color:#181818}.brand-mobile-fallback>img{width:38px;height:38px;object-fit:contain}.brand-mobile-fallback strong{font-size:19px;line-height:.82;letter-spacing:.04em}.brand-mobile-fallback small{display:block;font-size:9px;letter-spacing:.28em;margin-top:5px;font-weight:700}.video-hero{background:#101010}.hero-video-wrap{position:absolute;inset:0;overflow:hidden;z-index:0}.hero-video-wrap iframe{position:absolute;left:50%;top:50%;width:177.77777778vh;height:56.25vw;min-width:100%;min-height:100%;border:0;transform:translate(-50%,-50%);pointer-events:none}.hero-video-poster{position:absolute;inset:0;width:100%!important;height:100%!important;object-fit:cover;z-index:0}.hero-video-wrap+.hero-video-poster{z-index:-1}.video-hero .hero-overlay{z-index:1}.video-hero .home-hero-copy{z-index:2}.all-project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.all-project-grid figure{margin:0;background:#f5f5f5;overflow:hidden}.all-project-grid img{width:100%;height:320px;object-fit:cover;transition:transform .45s ease}.all-project-grid figure:hover img{transform:scale(1.025)}.all-project-grid figcaption{padding:18px 18px 20px;display:flex;justify-content:space-between;gap:16px;align-items:baseline}.all-project-grid figcaption b{font-size:18px}.all-project-grid figcaption span{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:#8a6a23}.map-frame{width:100%;height:480px;border:1px solid #ddd;overflow:hidden;background:#eee}.map-frame iframe{width:100%;height:100%;border:0;display:block}
@media(max-width:900px){.brand-wordmark{display:none!important}.brand-mobile-fallback{display:flex}.site-header{padding-left:28px;padding-right:28px}.home-hero{height:620px}.home-hero-copy{left:6vw;right:6vw;max-width:680px}.all-project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.all-project-grid img{height:280px}.flagship-card{gap:28px;margin:45px 0}.page-hero-copy{padding-top:70px;padding-bottom:70px}.map-frame{height:420px}}
@media(max-width:768px){.site-header{height:76px;padding:0 24px}.home-hero{height:590px}.home-hero h1{font-size:clamp(46px,9vw,64px)}.home-hero h2{font-size:18px}.section{padding:70px 5.5vw}.service-grid{grid-template-columns:1fr 1fr}.service-grid img{height:220px}.section-heading,.section-intro{gap:18px}.feature-band{gap:38px;padding:70px 5.5vw}.page-hero{min-height:auto}.page-hero-media img{min-height:340px}.flagship-media img{height:340px}.contact-detail-grid{grid-template-columns:1fr 1fr}.map-frame{height:390px}}
@media(max-width:480px){.site-header{height:70px;padding:0 16px;gap:12px}.brand-mobile-fallback>img{width:34px;height:34px}.brand-mobile-fallback strong{font-size:17px}.brand-mobile-fallback small{font-size:8px}.section{padding:56px 18px}.home-hero{height:560px;min-height:560px}.home-hero-copy{left:18px;right:18px;top:50%}.home-hero h1{font-size:43px;line-height:1}.home-hero h2{font-size:16px;line-height:1.45}.home-hero-copy p{font-size:10px}.button{padding:14px 18px}.intro-grid,.service-grid,.all-project-grid,.contact-detail-grid{grid-template-columns:1fr}.service-grid img{height:240px}.feature-band{padding:56px 18px}.project-banner{height:410px}.project-banner>div{left:18px;right:18px}.project-banner h2{font-size:38px}.page-hero-copy{padding:56px 18px}.page-hero-copy h1{font-size:43px}.page-hero-media img{min-height:270px}.fact-strip{grid-template-columns:1fr}.flagship-card{margin:38px 0}.flagship-media img{height:270px}.flagship-copy h3{font-size:36px}.all-project-grid{gap:16px}.all-project-grid img{height:245px}.all-project-grid figcaption{padding:15px}.all-project-grid figcaption b{font-size:16px}.map-frame{height:330px}.application-band,.documentation-note{padding:46px 18px}.contact footer{font-size:11px}.whatsapp-float{right:14px;bottom:14px;width:52px;height:52px}}

/* --- Mobile brand lockup: single-line, matches desktop wordmark treatment --- */
.brand-mobile-fallback{align-items:center;gap:10px;text-decoration:none;color:#1a1a1a}
.brand-mobile-fallback>img{width:34px;height:34px;object-fit:contain;flex-shrink:0}
.brand-mobile-fallback strong{display:flex;align-items:baseline;flex-wrap:nowrap;gap:5px;font-size:16px;line-height:1;letter-spacing:.01em;font-weight:800;white-space:nowrap}
.brand-mobile-fallback small{display:inline;font-size:10px;letter-spacing:.12em;font-weight:600;color:#7a7a7a;text-transform:uppercase;margin:0}
@media(max-width:480px){.brand-mobile-fallback{gap:8px}.brand-mobile-fallback>img{width:30px;height:30px}.brand-mobile-fallback strong{font-size:14.5px;gap:4px}.brand-mobile-fallback small{font-size:9px;letter-spacing:.1em}}

/* ===== 2026-09-08 modern UI refresh ===== */
:root{--ink:#17191c;--muted:#69707a;--paper:#f6f4ef;--gold:#c9972b;--gold-deep:#a87717;--navy:#07111d;--navy-2:#0c1928;--line:#e7e2d8;--radius:18px;--shadow:0 18px 50px rgba(17,25,35,.10)}
body{background:#fff;color:var(--ink);-webkit-font-smoothing:antialiased}
.site-header{height:88px;padding:0 clamp(20px,5vw,78px);gap:34px;background:transparent;border-bottom:1px solid rgba(22,25,28,.08);box-shadow:0 8px 30px rgba(12,18,25,.04);isolation:isolate}
.site-header:before{content:"";position:absolute;inset:0;z-index:-1;background:rgba(255,255,255,.96);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.brand{display:inline-flex;align-items:center;gap:12px;text-decoration:none;min-width:178px;margin-right:auto}
.brand-symbol{width:48px;height:48px;display:grid;place-items:center;flex:none}
.brand-symbol img{width:100%!important;height:100%!important;object-fit:contain;image-rendering:auto}
.preloader-logo,.footer-brand .brand-symbol img,.brand-symbol img{image-rendering:-webkit-optimize-contrast;image-rendering:auto}
.brand-copy{display:flex;flex-direction:column;line-height:.9;min-width:0}
.brand-copy strong{font-size:22px;letter-spacing:.02em;font-weight:800;color:#202124}
.brand-copy small{font-size:9px;letter-spacing:.28em;font-weight:800;color:var(--gold-deep);margin-top:8px;text-align:center}
.desktop-nav{gap:28px;align-items:center}.desktop-nav a{font-size:13px;font-weight:550;color:#333b44;position:relative;padding:34px 0;text-decoration:none}.desktop-nav a:after{content:"";position:absolute;left:0;right:100%;bottom:24px;height:2px;background:var(--gold);transition:right .25s ease}.desktop-nav a:hover:after{right:0}.desktop-nav a:hover{color:#111}
.header-cta{border-radius:999px;padding:14px 21px;background:var(--gold);box-shadow:0 8px 22px rgba(201,151,43,.22);transition:transform .2s ease,box-shadow .2s ease,background .2s ease}.header-cta:hover{background:var(--gold-deep);transform:translateY(-1px);box-shadow:0 11px 26px rgba(201,151,43,.27)}
.section{padding:clamp(72px,8vw,118px) clamp(22px,7vw,108px)}
.page-hero{background:linear-gradient(135deg,#f8f6f0,#f2efe8);min-height:560px}.page-hero-copy{padding:clamp(60px,7vw,110px)}.page-hero-copy h1{font-size:clamp(46px,5.3vw,78px);letter-spacing:-.055em}.page-hero-copy>p{font-size:17px}.page-hero-media{position:relative;overflow:hidden}.page-hero-media:after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 0 1px rgba(255,255,255,.15)}.page-hero-media img{transition:transform .8s ease}.page-hero:hover .page-hero-media img{transform:scale(1.015)}
.button,.header-cta{border-radius:999px}.button{padding:15px 24px;transition:transform .2s ease,box-shadow .2s ease}.button-primary{box-shadow:0 8px 24px rgba(201,151,43,.20)}.button:hover{transform:translateY(-2px)}
.intro-grid,.service-grid,.catalogue-cards,.proof-grid,.link-card-grid,.contact-detail-grid{gap:26px}.intro-grid>div,.service-grid>a,.link-card-grid>a,.product-card,.contact-detail-grid>*{border-radius:var(--radius)}
.intro-grid>div{padding:28px;background:#fff;border:1px solid var(--line);box-shadow:0 10px 30px rgba(15,20,26,.035)}
.service-grid>a{display:block;padding:0 0 22px;background:#fff;border:1px solid var(--line);overflow:hidden;box-shadow:0 10px 32px rgba(15,20,26,.045);transition:transform .25s ease,box-shadow .25s ease}.service-grid>a:hover{transform:translateY(-5px);box-shadow:var(--shadow)}.service-grid img{height:265px}.service-grid h3,.service-grid p{padding-left:22px;padding-right:22px}.service-grid h3{margin-top:20px}
.feature-band{background:linear-gradient(135deg,#09131e,#101d2b);padding:clamp(75px,8vw,115px) clamp(22px,7vw,108px)}.feature-points span{padding:22px 0}.project-banner{margin:0 clamp(0px,3vw,48px);border-radius:26px;height:520px}.project-banner img{filter:brightness(.48) saturate(.9)}
.fact-strip{background:linear-gradient(135deg,#09131e,#101d2b);padding:36px clamp(22px,7vw,108px)}.fact-strip div:last-child{border-right:0}.fact-strip strong{font-size:34px}
.process-cards li,.link-card-grid>a,.product-card,.contact-detail-grid>*{border:1px solid var(--line);background:#fff;box-shadow:0 10px 30px rgba(15,20,26,.04)}
.quote,.application-band,.documentation-note{background:#f5f2eb}

/* Footer inspired by the user's RightWordTechnical reference */
.site-footer{background:#07111d;color:#fff;padding:72px clamp(22px,7vw,108px) 0;margin-top:0}
.footer-grid{display:grid;grid-template-columns:1.3fr .7fr 1fr 1.05fr;gap:clamp(34px,5vw,76px);padding-bottom:56px}
.footer-brand{display:inline-flex;align-items:center;gap:12px;text-decoration:none;margin-bottom:24px}.footer-brand .brand-copy strong{color:#fff}.footer-brand .brand-copy small{color:var(--gold)}.footer-brand .brand-symbol{width:50px;height:50px}
.footer-brand-col>p,.footer-newsletter>p{color:#8eabc8;line-height:1.65;margin:0 0 24px;max-width:390px}.footer-contact-list{display:grid;gap:11px}.footer-contact-list a{color:#9dc4e7;text-decoration:none;font-size:14px;display:flex;gap:10px;align-items:flex-start}.footer-contact-list a span{color:#1eb7ac;width:16px;text-align:center}.footer-contact-list a:hover{color:#fff}
.footer-col h3{font-size:16px;margin:2px 0 22px}.footer-col nav{display:grid;gap:12px}.footer-col nav a{color:#a7c1da;text-decoration:none;font-size:14px;position:relative;padding-left:15px}.footer-col nav a:before{content:"›";position:absolute;left:0;color:#ef3c35;font-size:21px;line-height:13px}.footer-col nav a:hover{color:#fff;transform:translateX(2px)}
.footer-newsletter form{display:grid;gap:10px}.footer-newsletter input{width:100%;height:46px;border-radius:8px;border:1px solid #35455c;background:#1d2b3d;color:#fff;padding:0 16px;font:inherit;outline:none}.footer-newsletter input::placeholder{color:#7e9bb8}.footer-newsletter input:focus{border-color:var(--gold)}.footer-newsletter button{height:44px;border:0;border-radius:8px;background:#e9292d;color:#fff;font-weight:800;cursor:pointer;font-family:inherit}.footer-newsletter button:hover{filter:brightness(.96)}.footer-socials{display:flex;gap:10px;margin-top:16px}.footer-socials a{width:38px;height:38px;border-radius:50%;background:#1c2b3f;color:#9bb9d6;display:grid;place-items:center;text-decoration:none;font-weight:800}.footer-socials a:hover{background:#263a54;color:#fff}
.footer-bottom{border-top:1px solid #263446;min-height:58px;display:flex;align-items:center;justify-content:space-between;gap:20px;color:#718bab;font-size:12px}.footer-bottom p{margin:0}.footer-bottom div{display:flex;gap:20px}.footer-bottom a{color:#718bab;text-decoration:none}.footer-bottom a:hover{color:#fff}

/* remove legacy footer styling when old utility classes are present */
.contact.inner-contact{display:none}

@media(max-width:1100px){.desktop-nav{gap:19px}.footer-grid{grid-template-columns:1.2fr .8fr 1fr}.footer-newsletter{grid-column:1/-1;max-width:640px}.service-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.brand{min-width:0}.brand-symbol{width:42px;height:42px}.brand-copy strong{font-size:19px}.brand-copy small{font-size:8px}.footer-grid{grid-template-columns:1fr 1fr}.footer-newsletter{grid-column:auto}.page-hero{grid-template-columns:1fr}.page-hero-media{min-height:380px}.page-hero-media img{position:absolute;inset:0;height:100%;min-height:0}.project-banner{margin:0 18px}}
@media(max-width:640px){.site-header{height:74px;padding:0 18px}.brand-symbol{width:38px;height:38px}.brand-copy strong{font-size:17px}.brand-copy small{font-size:7px;letter-spacing:.24em;margin-top:6px}.footer-grid{grid-template-columns:1fr}.footer-newsletter{grid-column:auto}.footer-bottom{padding:18px 0;flex-direction:column;align-items:flex-start}.service-grid{grid-template-columns:1fr}.page-hero-media{min-height:300px}.project-banner{margin:0;border-radius:0}.fact-strip{grid-template-columns:1fr 1fr}.fact-strip div{border-right:0;border-bottom:1px solid rgba(255,255,255,.13)}.fact-strip div:nth-last-child(-n+2){border-bottom:0}}

/* ===== 2026-09-09 requested refinements ===== */
/* Footer accent now follows Tracon gold instead of the red reference-site accent. */
.footer-col nav a:before{color:var(--gold)}
.footer-newsletter button{background:var(--gold);color:#fff;box-shadow:0 8px 22px rgba(201,151,43,.22);transition:background .2s ease,transform .2s ease,box-shadow .2s ease}
.footer-newsletter button:hover,.footer-newsletter button:focus-visible{background:var(--gold-deep);filter:none;transform:translateY(-1px);box-shadow:0 11px 26px rgba(201,151,43,.28)}

/* Scroll-counting facts. */
.scroll-counter{font-variant-numeric:tabular-nums;min-width:4ch}

/* Projects page: reproduce the flagship / portfolio treatment from the supplied trc.zip. */
.flagship-list{display:grid;gap:28px;margin-bottom:92px}
.flagship-card{min-height:620px;display:grid;grid-template-columns:minmax(0,1.42fr) minmax(360px,.58fr);gap:0;margin:0;background:#0d1216;color:#f2eee7;overflow:hidden;border-radius:0}
.flagship-card:nth-child(even){grid-template-columns:minmax(360px,.58fr) minmax(0,1.42fr)}
.flagship-card:nth-child(even) .flagship-media{order:2}
.flagship-card:nth-child(even) .flagship-copy{order:1}
.flagship-media{min-height:620px;position:relative;overflow:hidden;background:#14191d}
.flagship-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,8,10,.04),rgba(5,8,10,.5));pointer-events:none}
.flagship-media img{width:100%;height:100%;display:block;object-fit:cover;filter:saturate(.78) contrast(1.04);transition:transform .9s cubic-bezier(.2,.8,.2,1),filter .5s ease}
.flagship-card:hover .flagship-media img{transform:scale(1.035);filter:saturate(1) contrast(1)}
.flagship-number{position:absolute;top:28px;left:30px;z-index:1;color:var(--gold);font:800 12px/1 Geist,Arial,sans-serif}
.flagship-copy{padding:58px clamp(34px,4.3vw,72px);display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}
.flagship-copy::before{content:"";position:absolute;width:290px;height:290px;right:-170px;top:-130px;border:1px solid rgba(201,151,43,.18);border-radius:50%;box-shadow:0 0 0 58px rgba(201,151,43,.025)}
.flagship-copy>p:first-child{position:relative;margin:0 0 30px;color:var(--gold);font:700 9px/1.4 Geist,Arial,sans-serif;text-transform:uppercase;letter-spacing:.16em}
.flagship-copy h3{position:relative;margin:0;font-size:clamp(48px,5.4vw,84px);line-height:.88;letter-spacing:-.06em;font-weight:650;color:#f2eee7}
.flagship-waterfront .flagship-copy h3{font-size:clamp(46px,4.1vw,64px);letter-spacing:-.055em;white-space:nowrap}
.flagship-description{position:relative;margin:34px 0 0;color:#9ea6ac!important;font-size:14px;line-height:1.7}
.flagship-copy ul{position:relative;list-style:none;margin:32px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.flagship-copy li{padding:9px 11px;border:1px solid rgba(242,238,231,.18);color:#c8cdd0!important;font:600 8px/1 Geist,Arial,sans-serif;text-transform:uppercase;letter-spacing:.11em}
.project-proof{background:#ece8e0}
.proof-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.proof-grid figure{margin:0;min-height:460px;position:relative;overflow:hidden;background:#111;border-radius:0}
.proof-grid img{width:100%;height:100%;object-fit:cover;transition:transform .7s ease}
.proof-grid figure:hover img{transform:scale(1.035)}
.proof-grid figcaption{position:absolute;inset:auto 0 0;padding:70px 22px 20px;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.82));text-transform:uppercase;font:650 8px/1.4 Geist,Arial,sans-serif;letter-spacing:.1em}
@media(max-width:1100px){.flagship-card,.flagship-card:nth-child(even){grid-template-columns:minmax(0,1.15fr) minmax(330px,.85fr)}}
@media(max-width:820px){.flagship-list{gap:18px;margin-bottom:72px}.flagship-card,.flagship-card:nth-child(even){min-height:0;grid-template-columns:minmax(0,1fr)}.flagship-card .flagship-media,.flagship-card:nth-child(even) .flagship-media{order:1;min-height:460px}.flagship-card .flagship-copy,.flagship-card:nth-child(even) .flagship-copy{order:2;padding:48px 34px}.flagship-copy h3{font-size:clamp(48px,11vw,74px)}.flagship-waterfront .flagship-copy h3{font-size:clamp(46px,9.5vw,68px)}.proof-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.flagship-list{margin-inline:-2px;gap:14px;margin-bottom:58px}.flagship-card .flagship-media,.flagship-card:nth-child(even) .flagship-media{min-height:330px}.flagship-number{top:18px;left:18px}.flagship-card .flagship-copy,.flagship-card:nth-child(even) .flagship-copy{padding:36px 22px 30px}.flagship-copy>p:first-child{margin-bottom:22px;font-size:8px}.flagship-copy h3{font-size:clamp(43px,14vw,60px)}.flagship-waterfront .flagship-copy h3{font-size:clamp(39px,12.5vw,56px);white-space:normal}.flagship-description{margin-top:25px;font-size:13px}.flagship-copy ul{margin-top:24px}.proof-grid{grid-template-columns:1fr}.proof-grid figure{min-height:360px}}

/* ===== 2026-09-09 exact TRC project-gallery transfer ===== */
/* All project layouts and interactions below mirror the project section from the supplied trc.zip. */
.projects{background:#e9e5de;color:var(--ink)}
.projects .section-intro{margin-bottom:70px}
.field-gallery{display:grid;grid-template-columns:1fr;gap:16px;align-items:stretch}
.project-cluster{height:clamp(500px,52vw,680px);display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:16px}
.field-gallery figure{margin:0;min-width:0;min-height:0;height:auto;aspect-ratio:auto;position:relative;background:#111;overflow:hidden;border-radius:0}
.cluster-feature-left .project-card-feature{grid-column:1/7;grid-row:1/3}.cluster-feature-left .project-card-small-one{grid-column:7/10;grid-row:1}.cluster-feature-left .project-card-small-two{grid-column:10/13;grid-row:1}.cluster-feature-left .project-card-wide{grid-column:7/13;grid-row:2}
.cluster-feature-right .project-card-feature{grid-column:7/13;grid-row:1/3}.cluster-feature-right .project-card-wide{grid-column:1/7;grid-row:1}.cluster-feature-right .project-card-small-one{grid-column:1/4;grid-row:2}.cluster-feature-right .project-card-small-two{grid-column:4/7;grid-row:2}
.field-gallery .project-main-image{width:100%;height:100%;object-fit:cover;filter:saturate(.8);transition:transform .7s ease}.field-gallery figure:hover .project-main-image{transform:scale(1.035)}
.field-gallery figcaption{position:absolute;left:0;right:0;bottom:0;padding:42px 18px 15px;display:flex;justify-content:space-between;align-items:end;background:linear-gradient(transparent,#080b0ecc);color:#fff}.field-gallery figcaption span{max-width:calc(100% - 108px);font:600 9px/1.35 Geist,Arial,sans-serif;text-transform:uppercase;letter-spacing:.12em}.project-card-small figcaption{padding-inline:14px}.project-card-small figcaption span{max-width:calc(100% - 82px);font-size:8px;letter-spacing:.08em}
.project-mini-carousel{position:absolute;right:18px;bottom:13px;height:34px;display:flex;align-items:flex-end;gap:4px}.project-mini-thumb{width:27px;height:21px;margin:0;padding:0;border:1px solid rgba(255,255,255,.68);border-radius:2px;overflow:hidden;background:#111;box-shadow:0 4px 11px rgba(0,0,0,.34);cursor:pointer;opacity:.8;transition:width .22s ease,height .22s ease,transform .22s ease,opacity .22s ease,border-color .22s ease}.project-mini-thumb:hover{opacity:1;border-color:#fff}.project-mini-thumb.is-current{width:35px;height:28px;transform:translateY(-7px);border-color:var(--gold);opacity:1;box-shadow:0 6px 14px rgba(0,0,0,.48);cursor:default}.project-mini-thumb img{display:block;width:100%;height:100%;object-fit:cover;filter:none;transform:none;transition:none}.field-gallery figure:hover .project-mini-thumb img{transform:none}.project-mini-thumb:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.project-card-small .project-mini-carousel{right:12px;bottom:10px;height:29px;gap:3px}.project-card-small .project-mini-thumb{width:20px;height:17px}.project-card-small .project-mini-thumb.is-current{width:28px;height:23px;transform:translateY(-6px)}
.flagship-list{display:grid;gap:28px;margin-bottom:92px}.projects .flagship-card{min-height:620px;display:grid;grid-template-columns:minmax(0,1.42fr) minmax(360px,.58fr);gap:0;margin:0;background:#0d1216;color:var(--paper);overflow:hidden}.projects .flagship-card:nth-child(even){grid-template-columns:minmax(360px,.58fr) minmax(0,1.42fr)}.projects .flagship-card:nth-child(even) .flagship-media{order:2}.projects .flagship-card:nth-child(even) .flagship-copy{order:1}.projects .flagship-media{min-height:620px;position:relative;overflow:hidden;background:#14191d}.projects .flagship-media:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,8,10,.04),rgba(5,8,10,.5));pointer-events:none}.projects .flagship-media img{width:100%;height:100%;display:block;object-fit:cover;filter:saturate(.78) contrast(1.04);transition:transform .9s cubic-bezier(.2,.8,.2,1),filter .5s ease}.projects .flagship-card:hover .flagship-media img{transform:scale(1.035);filter:saturate(1) contrast(1)}.flagship-status{position:absolute;right:28px;bottom:26px;z-index:1;display:flex;align-items:center;gap:9px;padding:11px 13px;background:rgba(5,8,10,.7);backdrop-filter:blur(10px);color:#e5e7e8;font:650 8px/1 Geist,Arial,sans-serif;text-transform:uppercase;letter-spacing:.12em}.flagship-status span{width:7px;height:7px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 4px rgba(201,151,43,.16)}
.projects .flagship-copy{padding:58px clamp(34px,4.3vw,72px);display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}.projects .flagship-copy:before{content:"";position:absolute;width:290px;height:290px;right:-170px;top:-130px;border:1px solid rgba(201,151,43,.18);border-radius:50%;box-shadow:0 0 0 58px rgba(201,151,43,.025)}.flagship-button{position:relative;margin-top:38px;width:100%;min-height:58px;padding:0 20px;display:flex;align-items:center;justify-content:space-between;border:1px solid var(--gold);background:transparent;color:var(--gold);font:700 11px/1 Geist,Arial,sans-serif;letter-spacing:.03em;cursor:pointer;transition:background .25s ease,color .25s ease}.flagship-button:hover,.flagship-button:focus-visible{background:var(--gold);color:var(--ink)}.flagship-button span{font-size:20px;transition:transform .25s ease}.flagship-button:hover span{transform:translate(4px,-4px)}
.more-work-heading{margin:0 0 36px;padding-top:34px;display:flex;align-items:end;justify-content:space-between;gap:40px;border-top:1px solid #171b1e25}.more-work-heading span{color:var(--gold-deep);font:750 10px/1 Geist,Arial,sans-serif;text-transform:uppercase;letter-spacing:.18em}.more-work-heading p{max-width:520px;margin:0;color:#686f74;font-size:14px;line-height:1.6;text-align:right}
.case-dialog{width:min(1480px,calc(100vw - 40px));max-width:none;max-height:calc(100svh - 40px);margin:auto;padding:0;border:1px solid rgba(242,238,231,.16);background:#0a0e11;color:var(--paper);box-shadow:0 35px 110px rgba(0,0,0,.68);overflow:auto}.case-dialog::backdrop{background:rgba(3,5,7,.88);backdrop-filter:blur(10px)}.case-dialog-shell{padding:34px}.case-dialog-header{display:flex;align-items:start;justify-content:space-between;gap:40px}.case-dialog-header p{margin:0 0 12px;color:var(--gold);font:700 9px/1 Geist,Arial,sans-serif;text-transform:uppercase;letter-spacing:.16em}.case-dialog-header h2{margin:0;font-size:clamp(40px,5.5vw,82px);line-height:.92;letter-spacing:-.055em}.case-dialog-close{flex:0 0 50px;width:50px;height:50px;border:1px solid rgba(242,238,231,.25);background:transparent;color:var(--paper);font:300 34px/1 Arial,sans-serif;cursor:pointer;transition:.2s ease}.case-dialog-close:hover,.case-dialog-close:focus-visible{border-color:var(--gold);color:var(--gold)}.case-dialog-copy{max-width:840px;margin:24px 0 30px;color:#9da5aa;font-size:14px;line-height:1.7}.case-dialog-stage{min-height:min(62vh,780px);position:relative;display:grid;place-items:center;overflow:hidden;background:#11171b}.case-dialog-stage img{width:100%;height:min(62vh,780px);display:block;object-fit:contain}.case-dialog-arrow{position:absolute;top:50%;z-index:2;width:52px;height:52px;transform:translateY(-50%);border:1px solid rgba(255,255,255,.38);background:rgba(5,8,10,.62);backdrop-filter:blur(8px);color:#fff;font-size:21px;cursor:pointer;transition:.2s ease}.case-dialog-arrow:hover,.case-dialog-arrow:focus-visible{border-color:var(--gold);color:var(--gold)}.case-dialog-prev{left:18px}.case-dialog-next{right:18px}.case-dialog-count{position:absolute;right:16px;bottom:14px;padding:9px 11px;background:rgba(5,8,10,.72);color:#fff;font:650 8px/1 Geist,Arial,sans-serif;letter-spacing:.13em}.case-dialog-thumbs{margin-top:14px;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:8px}.case-dialog-thumb{min-width:0;aspect-ratio:1.55;padding:0;border:2px solid transparent;background:#151a1e;overflow:hidden;cursor:pointer;opacity:.56;transition:opacity .2s ease,border-color .2s ease,transform .2s ease}.case-dialog-thumb img{width:100%;height:100%;display:block;object-fit:cover}.case-dialog-thumb:hover{opacity:.88;transform:translateY(-2px)}.case-dialog-thumb.is-current{opacity:1;border-color:var(--gold)}body:has(.case-dialog[open]){overflow:hidden}
@media(max-width:1100px){.projects .flagship-card,.projects .flagship-card:nth-child(even){grid-template-columns:minmax(0,1.15fr) minmax(330px,.85fr)}}
@media(max-width:820px){.projects .flagship-card,.projects .flagship-card:nth-child(even){min-height:0;grid-template-columns:minmax(0,1fr)}.projects .flagship-card .flagship-media,.projects .flagship-card:nth-child(even) .flagship-media{order:1;min-height:460px}.projects .flagship-card .flagship-copy,.projects .flagship-card:nth-child(even) .flagship-copy{order:2;padding:48px 34px}.more-work-heading{align-items:start;flex-direction:column;gap:14px}.more-work-heading p{text-align:left}.case-dialog{width:calc(100vw - 20px);max-height:calc(100svh - 20px)}.case-dialog-shell{padding:20px}.case-dialog-thumbs{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:768px){.project-gallery{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;margin-inline:0;padding:0;overflow:visible;scroll-snap-type:none}.project-gallery .project-cluster{height:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,clamp(140px,38vw,190px)) clamp(180px,48vw,240px);gap:10px}.project-gallery figure{width:auto;min-width:0;height:auto;flex:none}.project-gallery .cluster-feature-left .project-card-feature{grid-column:1;grid-row:1/3}.project-gallery .cluster-feature-left .project-card-small-one{grid-column:2;grid-row:1}.project-gallery .cluster-feature-left .project-card-small-two{grid-column:2;grid-row:2}.project-gallery .cluster-feature-left .project-card-wide{grid-column:1/3;grid-row:3}.project-gallery .cluster-feature-right .project-card-feature{grid-column:2;grid-row:1/3}.project-gallery .cluster-feature-right .project-card-wide{grid-column:1/3;grid-row:3}.project-gallery .cluster-feature-right .project-card-small-one{grid-column:1;grid-row:1}.project-gallery .cluster-feature-right .project-card-small-two{grid-column:1;grid-row:2}.project-gallery figcaption{padding:36px 12px 12px}.project-gallery figcaption span{max-width:calc(100% - 84px);font-size:8px;letter-spacing:.07em}.project-gallery .project-mini-carousel{right:12px;bottom:10px;height:30px;gap:3px}.project-gallery .project-mini-thumb{width:22px;height:18px}.project-gallery .project-mini-thumb.is-current{width:29px;height:24px;transform:translateY(-6px)}}
@media(max-width:520px){.projects .flagship-list{margin-inline:-2px;gap:14px;margin-bottom:58px}.projects .flagship-card .flagship-media,.projects .flagship-card:nth-child(even) .flagship-media{min-height:330px}.projects .flagship-card .flagship-copy,.projects .flagship-card:nth-child(even) .flagship-copy{padding:36px 22px 30px}.case-dialog-shell{padding:14px}.case-dialog-header{gap:18px}.case-dialog-close{width:44px;height:44px;flex-basis:44px}.case-dialog-stage,.case-dialog-stage img{height:54vh;min-height:0}.case-dialog-arrow{width:44px;height:44px}.case-dialog-prev{left:8px}.case-dialog-next{right:8px}.case-dialog-thumbs{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* =====================================================================
   HEADER REDESIGN (Pinpoint Brands-style layout) + MOBILE MENU FIX
   Appended last on purpose so these rules win the cascade and cleanly
   override earlier header/mobile-menu declarations above without
   deleting the legacy rules (keeps this a safe, isolated patch).
   ===================================================================== */

/* ---- Desktop header: logo left / nav centered / pill CTA right ---- */
.site-header{
  display:flex;
  align-items:center;
  gap:28px;
  height:92px;
  padding:0 clamp(20px,4vw,64px);
  background:rgba(255,255,255,.98);
  border-bottom:1px solid #ececec;
  position:sticky;
  top:0;
  left:0;
  right:0;
  z-index:500;
  box-shadow:0 2px 20px rgba(15,23,32,.05);
}
.site-header .brand{margin-right:0;flex:0 0 auto;}
.site-header .desktop-nav{
  display:flex;
  flex:1 1 auto;
  justify-content:center;
  align-items:center;
  gap:34px;
}
.site-header .desktop-nav a{
  font-size:14px;
  font-weight:600;
  color:#20242b;
  padding:8px 2px;
  position:relative;
  text-decoration:none;
  white-space:nowrap;
}
.site-header .desktop-nav a:after{
  content:"";
  position:absolute;
  left:0;right:100%;bottom:-3px;
  height:2px;
  background:var(--gold,#c9972b);
  transition:right .25s ease;
}
.site-header .desktop-nav a:hover:after,
.site-header .desktop-nav a.is-active:after{right:0;}
.site-header .desktop-nav a:hover{color:var(--gold-deep,#a87a1c);}

.header-actions{
  display:flex;
  align-items:center;
  gap:14px;
  flex:0 0 auto;
  margin-left:auto;
}
.header-actions .header-cta{
  border-radius:999px;
  padding:14px 26px;
  background:var(--gold,#c9972b);
  color:#fff;
  box-shadow:0 10px 24px rgba(201,151,43,.28);
  transition:transform .2s ease,box-shadow .2s ease,background .2s ease;
  white-space:nowrap;
}
.header-actions .header-cta:hover{
  background:var(--gold-deep,#a87a1c);
  transform:translateY(-1px);
  box-shadow:0 12px 28px rgba(201,151,43,.32);
}

/* ---- Mobile menu toggle: hidden on desktop, shown under the breakpoint ---- */
.mobile-menu{display:none;}

/* Single, unified collapse breakpoint so nav/CTA and the hamburger
   always switch together -- no gap where neither is visible. Matches
   the 900px breakpoint used for the logo swap above. */
@media (max-width:900px){
  .site-header .desktop-nav{display:none!important;}
  .header-actions .header-cta{display:none;}

  .mobile-menu{
    display:flex!important;
    align-items:center;
    position:relative;
    z-index:2000; /* always above the rest of the header's own content */
  }
  .mobile-menu summary{
    list-style:none;
    cursor:pointer;
    width:44px;
    height:44px;
    display:flex;
    align-items:center;
    justify-content:center;
    position:relative;
    z-index:2001; /* stays above the fullscreen panel so it still works as the close button */
  }
  .mobile-menu summary::-webkit-details-marker{display:none;}
  .mobile-menu summary::marker{content:"";}

  .hamburger{position:relative;width:26px;height:18px;display:block;flex:none;}
  .hamburger span{
    position:absolute;left:0;right:0;height:2px;border-radius:2px;
    background:#181818;
    transition:transform .25s ease,opacity .2s ease,top .25s ease;
  }
  .hamburger span:nth-child(1){top:0;}
  .hamburger span:nth-child(2){top:8px;}
  .hamburger span:nth-child(3){top:16px;}
  .mobile-menu[open] .hamburger span:nth-child(1){top:8px;transform:rotate(45deg);}
  .mobile-menu[open] .hamburger span:nth-child(2){opacity:0;}
  .mobile-menu[open] .hamburger span:nth-child(3){top:8px;transform:rotate(-45deg);}

  /* Fullscreen slide-in panel -- very high z-index so nothing on any
     page can ever paint over it, but lower than the summary/toggle
     above so the close (X) icon stays visible and tappable. */
  .mobile-menu div{
    position:fixed!important;
    inset:0!important;
    top:0!important;
    left:0!important;
    right:0!important;
    bottom:0!important;
    width:100%!important;
    height:100%!important;
    margin:0;
    max-height:none;
    z-index:1999;
    background:#161310;
    color:#fff;
    padding:110px 8vw 40px;
    display:flex;
    flex-direction:column;
    gap:0;
    overflow-y:auto;
    border:0;
    transform:translateX(100%);
    opacity:0;
    visibility:hidden;
    transition:transform .45s cubic-bezier(.22,.61,.36,1),opacity .3s ease,visibility 0s .45s;
  }
  .mobile-menu[open] div{
    transform:translateX(0);
    opacity:1;
    visibility:visible;
    transition:transform .45s cubic-bezier(.22,.61,.36,1),opacity .3s ease;
  }
  .mobile-menu a{
    text-decoration:none;
    color:#fff;
    font-size:clamp(19px,6vw,26px);
    font-weight:600;
    letter-spacing:-.01em;
    padding:15px 0;
    border-bottom:1px solid rgba(255,255,255,.14);
  }
  .mobile-menu a:last-child{
    margin-top:24px;
    border:0;
    background:var(--gold,#c9972b);
    color:#fff;
    text-align:center;
    padding:16px;
    border-radius:999px;
    font-size:12px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.08em;
  }

  body.menu-open{overflow:hidden;}
  /* Header itself no longer needs a special z-index override on open --
     the panel/toggle stacking above already guarantees correct layering,
     and keeping the header at its normal value avoids it fighting with
     the panel for paint order on any page. */
  body.menu-open .site-header{background:rgba(255,255,255,.98);border-color:#ececec;box-shadow:none;}

  .brand{position:relative;z-index:501;}
}

/* ---- 768px tablet / large-phone refinements ---- */
@media (max-width:768px){
  .site-header{height:76px;padding:0 24px;gap:16px;}
  .brand-symbol{width:40px;height:40px;}
  .brand-copy strong{font-size:18px;}
  .brand-copy small{font-size:8px;}
  .home-hero{height:520px;}
  .home-hero-copy{left:24px;right:24px;}
  .section{padding:64px 6vw;}
  .intro-grid,.service-grid,.contact-wrap,.all-project-grid,.fact-strip{grid-template-columns:1fr 1fr;}
  .feature-band{grid-template-columns:1fr;}
  .map-frame{height:360px;}
}

/* ---- 480px phone refinements ---- */
@media (max-width:480px){
  .site-header{height:66px;padding:0 16px;gap:10px;}
  .brand-symbol{width:34px;height:34px;}
  .brand-copy strong{font-size:15px;}
  .brand-copy small{font-size:7px;letter-spacing:.2em;}
  .mobile-menu div{padding:94px 22px 32px;}
  .mobile-menu a{font-size:19px;padding:13px 0;}
  .mobile-menu summary{width:38px;height:38px;}
  .hamburger{width:22px;height:15px;}
  .hamburger span:nth-child(2){top:6.5px;}
  .hamburger span:nth-child(3){top:13px;}
  .mobile-menu[open] .hamburger span:nth-child(1){top:6.5px;}
  .mobile-menu[open] .hamburger span:nth-child(3){top:6.5px;}

  .home-hero{height:440px;min-height:440px;}
  .home-hero-copy{left:16px;right:16px;}
  .home-hero h1{font-size:36px;}
  .home-hero h2{font-size:15px;}
  .section{padding:48px 18px;}
  .section-heading{grid-template-columns:1fr;gap:14px;margin-bottom:34px;}
  .intro-grid,.service-grid,.contact-wrap,.all-project-grid,.fact-strip,.footer-grid{grid-template-columns:1fr;}
  .service-grid img{height:200px;}
  .feature-band{padding:48px 18px;}
  .feature-band h2{font-size:30px;}
  .feature-points{grid-template-columns:1fr;}
  .project-banner{height:340px;}
  .project-banner>div{left:16px;right:16px;}
  .project-banner h2{font-size:30px;}
  .contact{padding:48px 18px 20px;}
  .contact h2{font-size:28px;}
  .map-frame{height:280px;}
  .whatsapp-float{right:12px;bottom:12px;width:50px;height:50px;}
  .whatsapp-float svg{width:26px;height:26px;}
  .button,.header-cta{padding:13px 18px;font-size:11px;}
}

/* Prevent any accidental horizontal scroll on small screens from
   full-bleed sections, absolutely-positioned copy blocks, etc. */
html,body{overflow-x:hidden;max-width:100%;}

/* =====================================================================
   PRELOADER: centered logo shown while the page loads, then fades out
   ===================================================================== */
.preloader{
  position:fixed;
  inset:0;
  z-index:99999;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#fff;
  opacity:1;
  visibility:visible;
  transition:opacity .5s ease,visibility 0s linear 0s;
}
.preloader-logo{
  width:84px;
  height:84px;
  object-fit:contain;
  animation:preloader-pulse 1.1s ease-in-out infinite;
}
@keyframes preloader-pulse{
  0%,100%{transform:scale(1);opacity:1;}
  50%{transform:scale(.88);opacity:.6;}
}
.preloader.is-hidden{
  opacity:0;
  visibility:hidden;
  transition:opacity .5s ease,visibility 0s linear .5s;
}
/* Stop the page from scrolling behind the preloader while it's up */
body.is-preloading{overflow:hidden;}
@media(prefers-reduced-motion:reduce){
  .preloader-logo{animation:none;}
}

/* =====================================================================
   HERO LEFT-ALIGNMENT FIX
   Every hero (home + inner pages) now aligns to the same left edge as
   the sections that follow, instead of looking centred/boxed-in.
   Appended last so it wins the cascade.
   ===================================================================== */
.home-hero-copy,
.page-hero-copy,
.page-hero-copy>*,
.section-heading,
.section-heading h2,
.section-intro,
.section-intro h2,
.field-proof-copy,
.feature-band>div,
.project-banner>div{
  text-align:left;
  margin-left:0;
  margin-right:0;
}
.page-hero-copy{max-width:640px;}
.page-hero-copy .hero-actions{justify-content:flex-start;}
/* On phones the hero image stacks under the copy: keep both flush to
   the same left edge as the section content below (no extra centring). */
@media(max-width:900px){
  .page-hero-copy{padding-left:7vw;padding-right:7vw;max-width:none;}
}
@media(max-width:600px){
  .page-hero-copy{padding-left:22px;padding-right:22px;}
}

/* =====================================================================
   SMOOTHER SCROLL-REVEAL
   Slightly faster/gentler easing and an earlier trigger point so
   content doesn't "pop" late or feel jerky while scrolling.
   ===================================================================== */
html.reveal-ready .reveal{
  transition:opacity .6s cubic-bezier(.16,.8,.28,1) var(--reveal-delay,0ms),
             transform .6s cubic-bezier(.16,.8,.28,1) var(--reveal-delay,0ms);
}
html,body{overflow-x:hidden;}
