:root{--navy:#101a3c;--navy2:#172452;--aqua:#20c7b5;--blue:#2464d8;--yellow:#ffd166;--ink:#20283a;--muted:#667085;--line:#dce2e8;--surface:#f4f7f9;--white:#fff}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:#fff;font-family:"Open Sans",sans-serif;overflow-x:hidden}body.menu-open{overflow:hidden}img{display:block;max-width:100%}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{color:inherit}section[id]{scroll-margin-top:100px}.skip-link{position:fixed;top:-100px;left:1rem;z-index:100;padding:.8rem 1rem;background:#fff}.skip-link:focus{top:1rem}
.demo-bar{min-height:30px;padding:.35rem 1rem;display:flex;align-items:center;justify-content:center;gap:.7rem;color:#d9e0f3;background:#09112c;font-size:.65rem}.demo-bar p{margin:0}.demo-bar span{padding:.16rem .42rem;color:var(--navy);background:var(--yellow);border-radius:3px;font-weight:700}.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.97);border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}.site-header.scrolled{box-shadow:0 7px 24px rgba(16,26,60,.08)}.header-inner{width:min(1180px,calc(100% - 40px));min-height:78px;margin:auto;display:flex;align-items:center;gap:2.1rem}.brand{display:inline-flex;align-items:center;gap:.7rem;margin-right:auto}.brand-symbol{width:44px;height:44px;display:grid;place-items:center;color:#fff;background:var(--blue);border-radius:8px}.brand-symbol svg{width:30px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round}.brand strong,.brand small{display:block}.brand strong{font-family:"Roboto Slab",serif;font-size:1.08rem}.brand small{margin-top:-.05rem;color:var(--muted);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase}.main-nav{display:flex;gap:1.7rem;font-size:.82rem;font-weight:600}.main-nav a:hover{color:var(--blue)}.header-phone{padding-left:1.4rem;border-left:1px solid var(--line)}.header-phone span,.header-phone strong{display:block}.header-phone span{color:var(--muted);font-size:.6rem}.header-phone strong{font-family:"Roboto Slab",serif;font-size:.9rem}.menu-toggle{display:none;width:44px;height:44px;border:0;background:transparent}.menu-toggle span{display:block;width:23px;height:2px;margin:5px auto;background:var(--navy);transition:.2s}
.hero{position:relative;min-height:640px;color:#fff;isolation:isolate}.hero-image,.hero-overlay{position:absolute;inset:0;width:100%;height:100%}.hero-image{z-index:-2;object-fit:cover;object-position:center 55%}.hero-overlay{z-index:-1;background:linear-gradient(90deg,rgba(9,17,44,.96) 0%,rgba(9,17,44,.82) 47%,rgba(9,17,44,.18) 100%)}.hero-inner{width:min(1180px,calc(100% - 40px));min-height:640px;margin:auto;padding:4.8rem 0;display:grid;grid-template-columns:1fr 370px;gap:5rem;align-items:center}.service-area{display:flex;align-items:center;gap:.55rem;margin:0 0 1rem;font-size:.7rem;font-weight:700}.service-area span{width:8px;height:8px;background:var(--aqua);border-radius:50%;box-shadow:0 0 0 5px rgba(32,199,181,.13)}h1,h2,h3{font-family:"Roboto Slab",serif}.hero h1{max-width:680px;margin:0;font-size:clamp(2.8rem,5vw,4.5rem);line-height:1.12;font-weight:600}.hero-message>p:not(.service-area){max-width:640px;margin:1.35rem 0 0;color:#d3d9e9;font-size:1rem;line-height:1.75}.hero-buttons{margin-top:2rem;display:flex;flex-wrap:wrap;gap:.75rem}.button{min-height:50px;padding:0 1.3rem;display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:5px;font-weight:700;cursor:pointer}.button-primary{color:var(--navy);background:var(--aqua)}.button-secondary{color:#fff;border-color:rgba(255,255,255,.38);background:rgba(255,255,255,.08)}.contact-card{padding:1.5rem;color:var(--ink);background:#fff;border-top:5px solid var(--aqua);box-shadow:0 22px 55px rgba(2,7,24,.3)}.contact-card-title{padding-bottom:1rem;display:flex;gap:.75rem;align-items:flex-start;border-bottom:1px solid var(--line)}.availability{width:10px;height:10px;margin-top:.3rem;flex:0 0 10px;background:var(--aqua);border-radius:50%}.contact-card strong,.contact-card small{display:block}.contact-card strong{font-family:"Roboto Slab",serif;font-size:1rem}.contact-card small{margin-top:.2rem;color:var(--muted);font-size:.7rem}.contact-card button{width:100%;padding:.85rem 0;display:flex;justify-content:space-between;border:0;border-bottom:1px solid var(--line);background:transparent;font-size:.78rem;text-align:left;cursor:pointer}.contact-card button:hover{color:var(--blue)}.contact-card button span{color:var(--blue);font-size:1.1rem}.contact-card>p{margin:1rem 0 0;color:var(--muted);font-size:.66rem;text-align:center}
.reassurance{width:min(1180px,calc(100% - 40px));margin:-35px auto 0;position:relative;z-index:3;display:grid;grid-template-columns:repeat(3,1fr);background:#fff;border:1px solid var(--line);box-shadow:0 15px 35px rgba(16,26,60,.1)}.reassurance>div{padding:1.2rem 1.4rem;display:flex;align-items:center;gap:.8rem;border-right:1px solid var(--line)}.reassurance>div:last-child{border-right:0}.reassurance svg{width:28px;height:28px;padding:.38rem;fill:none;stroke:var(--navy);stroke-width:2.2;background:var(--yellow);border-radius:50%}.reassurance strong,.reassurance span{display:block}.reassurance strong{font-family:"Roboto Slab",serif;font-size:.78rem}.reassurance span{color:var(--muted);font-size:.65rem;line-height:1.5}
.section{padding:6.5rem max(20px,calc((100vw - 1180px)/2))}.section-heading{max-width:760px;margin-bottom:2.5rem}.section-heading h2,.company h2,.contact h2{margin:0;font-size:clamp(2rem,3.5vw,3rem);line-height:1.2;font-weight:600}.section-heading p{margin:1rem 0 0;color:var(--muted);line-height:1.7}.service-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.service-grid article{padding:1.6rem;background:var(--surface);border:1px solid var(--line);border-radius:8px}.service-icon{width:48px;height:48px;display:grid;place-items:center;color:var(--blue);background:#e7efff;border-radius:8px}.service-icon svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.service-grid h3{min-height:52px;margin:1.3rem 0 .65rem;font-size:1.05rem}.service-grid p{min-height:78px;margin:0;color:var(--muted);font-size:.78rem;line-height:1.65}.service-grid button{margin-top:1.3rem;padding:.55rem 0;border:0;border-bottom:1px solid var(--blue);color:var(--blue);background:transparent;font-size:.7rem;font-weight:700;cursor:pointer}
.company{display:grid;grid-template-columns:1fr 1fr;min-height:650px;background:var(--navy);color:#fff}.company-photo{position:relative;overflow:hidden}.company-photo img{width:100%;height:100%;object-fit:cover;object-position:center 28%}.company-photo>div{position:absolute;left:1.5rem;right:1.5rem;bottom:1.5rem;padding:1rem 1.2rem;background:rgba(16,26,60,.88);border-radius:6px}.company-photo strong,.company-photo span{display:block}.company-photo strong{font-family:"Roboto Slab",serif;font-size:.95rem}.company-photo span{margin-top:.2rem;color:#b9c3da;font-size:.7rem}.company-content{padding:5.5rem max(20px,calc((100vw - 1180px)/2)) 5.5rem 5rem}.company-content>p{max-width:560px;color:#b9c3da;line-height:1.75}.company ul{margin:2rem 0;padding:0;list-style:none}.company li{padding:1rem 0;display:grid;grid-template-columns:34px 1fr;gap:.8rem;border-top:1px solid rgba(255,255,255,.14)}.company li:last-child{border-bottom:1px solid rgba(255,255,255,.14)}.company li>span{width:28px;height:28px;display:grid;place-items:center;color:var(--navy);background:var(--aqua);border-radius:50%;font-weight:700}.company li strong{font-family:"Roboto Slab",serif;font-size:.83rem}.company li p{margin:.2rem 0 0;color:#9ca9c6;font-size:.72rem}.button-dark{color:var(--navy);background:#fff}
.gallery{background:var(--surface)}.gallery-grid{display:grid;grid-template-columns:1.35fr .65fr;grid-template-rows:280px 280px;gap:1rem}.gallery-grid figure{position:relative;margin:0;overflow:hidden;background:#cfd6dc;border-radius:6px}.gallery-main{grid-row:1/3}.gallery-grid img{width:100%;height:100%;object-fit:cover}.gallery-main img{object-position:center}.gallery-grid figure:not(.gallery-main) img{object-position:center 35%}.gallery-grid figcaption{position:absolute;left:0;right:0;bottom:0;padding:1rem 1.2rem;color:#fff;background:linear-gradient(transparent,rgba(9,17,44,.92))}.gallery-grid figcaption strong,.gallery-grid figcaption span{display:block}.gallery-grid figcaption strong{font-family:"Roboto Slab",serif;font-size:.86rem}.gallery-grid figcaption span{margin-top:.22rem;color:#c4cde2;font-size:.65rem}
.contact{padding:6rem max(20px,calc((100vw - 1180px)/2));display:grid;grid-template-columns:.85fr 1.15fr;gap:6rem;color:#fff;background:var(--blue)}.contact-label{display:inline-block;margin-bottom:1rem;padding:.28rem .5rem;color:var(--navy);background:var(--yellow);border-radius:3px;font-size:.62rem;font-weight:700}.contact-info>p{max-width:500px;color:#d6e2fb;font-size:.84rem;line-height:1.7}.details{margin-top:2rem;border-top:1px solid rgba(255,255,255,.22)}.details p{margin:0;padding:.8rem 0;display:flex;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.22);font-size:.7rem}.details span{color:#c7d6f8}.quote-form{padding:2rem;color:var(--ink);background:#fff;border-radius:8px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.quote-form label{display:block;margin-bottom:1rem;font-size:.68rem;font-weight:700}.quote-form input,.quote-form select,.quote-form textarea{width:100%;margin-top:.4rem;padding:.85rem .9rem;border:1px solid var(--line);border-radius:4px;background:#f7f9fb;outline:0;resize:vertical}.quote-form input:focus,.quote-form select:focus,.quote-form textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(36,100,216,.12)}.submit-button{width:100%}.form-note{margin:.7rem 0 0;color:var(--muted);font-size:.62rem;text-align:center}.form-success{margin:1rem 0 0;padding:.8rem;color:#087267;background:#ddfaf6;border-radius:4px;font-size:.72rem;font-weight:700}
footer{min-height:130px;padding:2rem max(20px,calc((100vw - 1180px)/2));display:flex;align-items:center;gap:2.5rem;color:#8792ad;background:#09112c;font-size:.68rem}footer .brand{color:#fff}footer .brand small{color:#8792ad}footer p:first-of-type{margin-left:auto}footer a:not(.brand){color:#fff;text-decoration:underline}.mobile-contact{display:none}
@media(max-width:1000px){.header-phone{display:none}.hero-inner{grid-template-columns:1fr 330px;gap:2rem}.service-grid{grid-template-columns:1fr 1fr}.company-content{padding-left:3rem}.contact{gap:3rem}}
@media(max-width:780px){.header-inner{width:min(100% - 28px,1180px);min-height:70px}.menu-toggle{display:block}.main-nav{position:fixed;inset:100px 0 auto;height:calc(100vh - 100px);padding:1.5rem;display:flex;flex-direction:column;align-items:flex-start;gap:.3rem;background:#fff;transform:translateX(100%);transition:.22s}.main-nav.open{transform:none}.main-nav a{width:100%;padding:1rem 0;border-bottom:1px solid var(--line);font-family:"Roboto Slab",serif;font-size:1.2rem}.menu-toggle[aria-expanded=true] span:nth-child(1){transform:translateY(7px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:nth-child(2){opacity:0}.menu-toggle[aria-expanded=true] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.hero-inner{grid-template-columns:1fr;padding:4rem 0}.hero-overlay{background:rgba(9,17,44,.84)}.contact-card{max-width:540px}.reassurance{grid-template-columns:1fr;margin-top:0;width:100%}.reassurance>div{border-right:0;border-bottom:1px solid var(--line)}.service-grid{grid-template-columns:1fr 1fr}.company{grid-template-columns:1fr}.company-photo{min-height:530px}.company-content{padding:4rem 20px}.contact{grid-template-columns:1fr}.mobile-contact{position:fixed;z-index:40;left:12px;right:12px;bottom:12px;min-height:52px;padding:0 1.1rem;display:flex;align-items:center;justify-content:space-between;color:var(--navy);background:var(--aqua);border-radius:5px;box-shadow:0 12px 30px rgba(16,26,60,.25);font-size:.8rem;font-weight:700}footer{flex-direction:column;align-items:flex-start;gap:.6rem;padding-bottom:5.5rem}footer p:first-of-type{margin-left:0}}
@media(max-width:540px){.demo-bar p{display:none}.brand strong{font-size:.95rem}.hero{min-height:auto}.hero-inner{padding:3.2rem 0}.hero h1{font-size:2.65rem}.hero-buttons{display:grid}.contact-card{padding:1.2rem}.service-grid{grid-template-columns:1fr}.service-grid h3,.service-grid p{min-height:0}.company-photo{min-height:440px}.gallery-grid{grid-template-columns:1fr;grid-template-rows:340px 260px 290px}.gallery-main{grid-row:auto}.form-row{grid-template-columns:1fr;gap:0}.quote-form{padding:1.3rem}.details p{display:block}.details strong{display:block;margin-top:.25rem}}
