/* Shared visual system and progressive motion. */
:root{--navy:#10283d;--ink:#172f43;--pink:#cc245b;--muted:#627480;--light:#f5f7f8;--line:#e1e8ed;--radius:14px;--ease:cubic-bezier(.22,1,.36,1)}
body{font-family:'Manrope',Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}
h1,h2,h3{font-weight:650}h2{line-height:1.16}.container{max-width:1320px}.section{padding:112px 0}.eyebrow{letter-spacing:.19em;font-size:10px}.button{border-radius:8px;padding:18px 25px;box-shadow:0 8px 24px #cc245b1a;transition:background .25s,box-shadow .25s,transform .3s var(--ease)}.button:hover{box-shadow:0 12px 28px #cc245b35;transform:translateY(-3px)}.button svg,.text-link svg{transition:transform .3s var(--ease)}.button:hover svg,.text-link:hover svg{transform:translateX(5px)}.button-small{padding:13px 19px}.button-white{box-shadow:none}.text-link{padding-bottom:9px}.topbar{background:#0c2234}.topbar .container{min-height:34px}.nav-wrap{height:94px}.site-header{transition:box-shadow .3s,background .3s}.site-header.is-scrolled{box-shadow:0 5px 30px #10283d10;background:#fffffff5}.nav-wrap nav>a:not(.button){font-size:12px}.nav-wrap nav>a:not(.button):after{content:'';position:absolute;left:0;bottom:4px;width:100%;height:2px;background:var(--pink);transform:scaleX(0);transform-origin:left;transition:transform .3s}.nav-wrap nav>a:hover:after,.nav-wrap nav>a[aria-current]:after{transform:scaleX(1)}
.hero{min-height:740px}.hero-photo{background-position:center;animation:hero-focus 1.8s var(--ease) both}.hero:before{background:linear-gradient(90deg,#0a2136fa 0%,#0a2136e8 35%,#0a213660 74%,#0a213640),linear-gradient(0deg,#0a2136b3,transparent 40%)}.hero:after{content:'';position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 15% 80%,#b8355b14,transparent 55%);pointer-events:none}.hero-content{padding-top:87px;padding-bottom:135px}.hero h1{font-size:clamp(56px,6.5vw,92px);line-height:1.04;max-width:680px;letter-spacing:-.065em}.hero em{color:#f2a7bf}.hero .eyebrow{letter-spacing:.2em;font-size:10px}.hero-content>p:not(.eyebrow){font-size:16px;line-height:1.9;max-width:520px}.hero-actions{margin:32px 0}.hero-secondary{display:flex;align-items:center;gap:12px}.hero-secondary span{margin:0;transition:transform .3s}.hero-secondary:hover span{transform:translate(3px,-3px)}.status-dot{background:#eb648f;box-shadow:0 0 0 5px #eb648f15;animation:status-glow 3s ease-in-out infinite}.hero-note{font-size:10px}.hero-caption{bottom:36px;right:max(40px,calc((100vw - 1240px)/2))}.hero-scroll{left:40px;bottom:30px;width:36px;height:48px;border:1px solid #ffffff40;border-radius:24px;display:flex;align-items:center;justify-content:center;font-size:20px;animation:scroll-hint 3s ease-in-out infinite}
.comfort-card{position:absolute;right:max(40px,calc((100vw - 1240px)/2));top:43%;width:250px;padding:24px;border:1px solid #ffffff38;border-radius:18px;background:linear-gradient(140deg,#ffffff21,#ffffff0b);backdrop-filter:blur(20px);box-shadow:0 24px 70px #00000020;color:white;animation:card-arrive 1.2s .3s var(--ease) both}.comfort-card-top{display:flex;align-items:center;justify-content:space-between;font-size:9px;letter-spacing:.13em;color:#dce5ed}.comfort-card-top svg{width:25px;color:#f2a7bf}.comfort-reading{display:flex;gap:15px;align-items:center;margin:21px 0}.comfort-reading strong{font-size:53px;font-weight:500;letter-spacing:-.07em;line-height:1}.comfort-reading>span{border-left:1px solid #ffffff30;padding-left:15px;font-size:10px;line-height:1.7;color:#d6e0e7}.airflow-bars{display:flex;align-items:center;gap:4px;height:22px}.airflow-bars i{display:block;width:5px;height:9px;background:#f2a7bf;border-radius:4px;animation:airflow 2s ease-in-out infinite;animation-delay:calc(var(--i)*.12s)}.comfort-card-bottom{margin-top:17px;padding-top:14px;border-top:1px solid #ffffff26;display:flex;align-items:center;gap:8px;font-size:10px;color:#d6e0e7}.comfort-card-bottom .status-dot{width:5px;height:5px;animation:none;background:#91d4ba}.comfort-caption{display:block;font-size:8px;color:#bfd0dd;margin-top:10px}
.credentials{background:white;position:relative}.credentials .container{padding-top:32px;padding-bottom:32px}.credentials strong{font-size:22px;font-weight:650}.credentials span{font-size:11px}.credentials .container>div{gap:6px}.about-preview{gap:90px}.about-image{isolation:isolate}.about-image:after{border-radius:18px;background:#edf1f4}.about-image img{height:455px;border-radius:18px}.image-label{border-radius:12px;box-shadow:0 16px 32px #10283d20;padding:25px 30px}.about-preview p:not(.eyebrow){line-height:1.9}.section-tint{background:linear-gradient(135deg,#f6f8fa,#f1f5f7)}.section-heading{margin-bottom:44px}.service-grid{gap:20px}.service-card{padding:31px 25px;border-color:#e4eaee;box-shadow:0 8px 30px #10283d03;transition:transform .4s var(--ease),box-shadow .4s,border-color .4s;overflow:hidden}.service-card:after{content:'';position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--pink);transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease)}.service-card:hover{transform:translateY(-8px);box-shadow:0 20px 45px #10283d10;border-color:#e5c9d3}.service-card:hover:after{transform:scaleX(1)}.service-icon{border-radius:14px;width:56px;height:56px;transition:background .3s,color .3s,transform .4s}.service-card:hover .service-icon{background:var(--pink);color:white;transform:rotate(-5deg)}.service-number{font-size:12px;color:#9baab6}.service-card h3{font-size:21px}.service-card p{line-height:1.9}.service-card .text-link{font-size:11px;padding-top:15px;border-top:1px solid var(--line)}
.brand-section{padding-top:48px;padding-bottom:48px}.brands{color:#5b7181}.brands span{transition:color .25s,transform .25s}.brands span:hover{color:var(--navy);transform:translateY(-2px)}.project-card{box-shadow:0 7px 25px #10283d05;transition:transform .4s var(--ease),box-shadow .4s}.project-card:hover{transform:translateY(-5px);box-shadow:0 20px 45px #10283d10}.project-image img{transition:transform .8s var(--ease)}.project-image:hover img{transform:scale(1.07)}.project-image:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#10283d50,transparent 50%);pointer-events:none}.project-tag,.image-expand{z-index:1}.project-tag{border-radius:5px;backdrop-filter:blur(8px);padding:6px 12px}.image-expand{width:36px;height:36px;line-height:36px;transition:background .25s,color .25s,transform .25s}.project-image:hover .image-expand{background:var(--pink);color:white;transform:rotate(5deg)}.project-info{padding:26px}.project-bottom a{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:#fff0f5;border-radius:50%}.ventilation-preview{background:radial-gradient(ellipse at 0% 100%,#254763,transparent 65%),#10283d}.ventilation-preview:after{content:'';position:absolute;right:-150px;top:-220px;width:650px;height:650px;border:1px solid #ffffff08;border-radius:50%;box-shadow:0 0 0 65px #ffffff03,0 0 0 130px #ffffff02;pointer-events:none}.ventilation-layout{position:relative;z-index:1}.ventilation-list a{transition:padding .3s,color .3s,background .3s}.ventilation-list a:hover{padding-left:12px;background:#ffffff03}.client-grid{border:0;gap:12px}.client-grid>div{border:1px solid var(--line);border-radius:10px;padding:18px;transition:border-color .3s,box-shadow .3s}.client-grid>div:hover{border-color:#c0ced8;box-shadow:0 7px 20px #10283d07}.client-grid img{filter:grayscale(1);opacity:.75;transition:filter .4s,opacity .4s}.client-grid>div:hover img{filter:none;opacity:1}.home-process{padding-top:0}.process-grid article{position:relative}.process-grid article:not(:last-child):after{content:'';position:absolute;left:62px;right:0;top:22px;height:1px;background:var(--line)}.process-grid article>span{background:#fff;color:var(--pink);border-color:#ead3dc;transition:background .3s,color .3s}.process-grid article:hover>span{background:var(--pink);color:white}.cta-band{position:relative;isolation:isolate;background:linear-gradient(110deg,#bb164d,#d7366d);padding:70px 0;overflow:hidden}.cta-band:after{content:'';position:absolute;right:-100px;top:-250px;width:600px;height:600px;border:1px solid #ffffff16;border-radius:50%;box-shadow:0 0 0 60px #ffffff05,0 0 0 120px #ffffff03;z-index:-1}.cta-band h2{font-size:46px}footer{background:#0b2132;padding-top:75px}.footer-grid{padding-bottom:65px}.footer-grid a{transition:color .2s}.floating-contact{padding:14px 20px;box-shadow:0 8px 32px #10283d1a;transition:transform .3s,box-shadow .3s}.floating-contact:hover{transform:translateY(-4px);box-shadow:0 12px 36px #10283d26}.floating-contact svg{color:#19805a}.page-intro{position:relative;isolation:isolate;overflow:hidden;padding:86px 0 76px;background:linear-gradient(110deg,#f0f4f7,#f9f5f7)}.page-intro:after{content:'';position:absolute;z-index:-1;width:440px;height:440px;right:-90px;top:-210px;border:1px solid #cc245b10;border-radius:50%;box-shadow:0 0 0 60px #cc245b03,0 0 0 120px #cc245b02}.page-intro h1{font-size:clamp(42px,5.2vw,72px)}.people-grid>div{border-radius:0 12px 12px 0;transition:transform .3s,background .3s}.people-grid>div:hover{transform:translateY(-3px);background:#eef2f5}.filter-button{transition:background .25s,color .25s,border-color .25s;min-height:44px}.filter-button:hover{border-color:var(--pink);color:var(--pink)}.filter-button[aria-pressed=true]{color:white}.faq details{padding:23px 0}.faq summary::marker{color:var(--pink)}.faq details[open] p{animation:fade-up .35s var(--ease) both}.enquiry-form{background:#f8fafb;padding:40px;box-shadow:0 15px 45px #10283d06}.hours{border-radius:8px}input:not([type=checkbox]),textarea,select{border-radius:7px;padding:14px;font-size:14px;transition:border-color .25s,box-shadow .25s}input:not([type=checkbox]):hover,textarea:hover,select:hover{border-color:#a6b8c5}.email-button{min-height:44px}dialog{border-radius:16px;box-shadow:0 25px 100px #00000050}dialog[open]{animation:dialog-in .25s var(--ease)}body:has(dialog[open]){overflow:hidden}.lightbox-close{height:44px;width:44px;top:0}.reading-progress{position:fixed;top:0;left:0;width:100%;height:3px;z-index:40;background:var(--pink);transform:scaleX(0);transform-origin:left;pointer-events:none}
/* Elements remain visible until an observer is successfully installed. */
.reveal{transition:opacity .75s var(--ease),translate .75s var(--ease);transition-delay:var(--reveal-delay,0ms)}.reveal.is-pending{opacity:0;translate:0 24px}.reveal.is-visible{opacity:1;translate:0 0}.hero-content>*{animation:fade-up .9s var(--ease) both}.hero-content>:nth-child(2){animation-delay:.1s}.hero-content>:nth-child(3){animation-delay:.2s}.hero-content>:nth-child(4){animation-delay:.3s}.hero-content>:nth-child(5){animation-delay:.4s}
@keyframes fade-up{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}@keyframes hero-focus{from{transform:scale(1.055)}to{transform:scale(1)}}@keyframes card-arrive{from{opacity:0;transform:translateY(25px)}to{opacity:1;transform:translateY(0)}}@keyframes airflow{0%,100%{height:6px;opacity:.45}50%{height:20px;opacity:1}}@keyframes status-glow{50%{box-shadow:0 0 0 7px #eb648f08}}@keyframes scroll-hint{0%,100%{translate:0 0}50%{translate:0 5px}}@keyframes dialog-in{from{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}
@media(min-width:1500px){.hero{min-height:790px}.hero-content{padding-top:100px}}
@media(max-width:1100px){.about-preview{gap:50px}.comfort-card{width:220px;right:30px}.hero h1{font-size:76px}.service-grid{gap:20px}.container{padding-left:30px;padding-right:30px}.ventilation-layout{gap:55px}}
@media(max-width:900px){.nav-wrap{height:78px}.nav-wrap nav{top:78px;border-radius:0 0 16px 16px}.nav-wrap nav.is-open{animation:fade-up .25s var(--ease)}.menu-toggle span{transition:transform .25s,opacity .25s}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(7px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:nth-child(2){opacity:0}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-7px) rotate(-45deg)}.comfort-card{display:none}.hero{min-height:680px}.hero-content{padding-top:75px;padding-bottom:100px}.hero h1{font-size:76px}.hero-scroll{left:auto;right:30px}.section{padding:85px 0}.home-process{padding-top:0}.about-image img{height:400px}.cta-band h2{font-size:39px}.enquiry-form{padding:32px}.page-intro{padding:70px 0}}
@media(max-width:650px){.container{padding-left:22px;padding-right:22px}.nav-wrap{height:73px}.nav-wrap nav{top:73px}.section{padding:65px 0}.home-process{padding-top:0}.hero{min-height:630px}.hero-content{padding-top:62px;padding-bottom:85px}.hero h1{font-size:clamp(48px,12.5vw,70px)}.hero .eyebrow{font-size:8px;letter-spacing:.15em}.hero-content>p:not(.eyebrow){font-size:14px}.hero:before{background:linear-gradient(90deg,#0a2136f0,#0a2136b5),linear-gradient(0deg,#0a2136,transparent)}.hero-note{font-size:9px}.hero-scroll{right:22px;bottom:23px;height:39px;width:29px}.credentials strong{font-size:15px}.credentials span{font-size:9px}.credentials .container{padding-top:24px;padding-bottom:24px}.about-preview{gap:40px}.about-image img{height:320px}.service-card{padding:27px}.service-card h3{font-size:23px}.service-card .text-link{font-size:12px}.service-number{font-size:13px}.project-info{padding:24px}.brand-section{padding-top:35px;padding-bottom:35px}.client-grid{gap:8px}.client-grid>div{padding:8px}.cta-band{padding:48px 0}.cta-band h2{font-size:36px}.page-intro{padding:54px 0}.page-intro h1{font-size:42px}.footer-grid{padding-bottom:40px}.enquiry-form{padding:27px 20px}.process-grid{gap:25px}.process-grid article:nth-child(2):after{display:none}.floating-contact{padding:12px 16px}.section-heading{gap:22px}.hero-actions{gap:23px}.ventilation-preview:after{width:420px;height:420px}.page-intro .lead{font-size:15px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.reveal.is-pending{opacity:1;translate:none}}
