:root{--cream:#f6f1e7;--paper:#fffdf8;--ink:#17283b;--blue:#1d3a5a;--blue2:#2c5a86;--sky:#d5e4f0;--sun:#e9b44c;--mut:#5d6b7a;--line:rgba(29,58,90,.14);--serif:'Fraunces',Georgia,serif;--sans:'DM Sans',system-ui,-apple-system,'Segoe UI',sans-serif}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--cream);color:var(--ink);font-family:var(--sans);font-weight:400;line-height:1.7;font-size:17px;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
.wrap{width:min(1160px,100% - 48px);margin:0 auto}
.eyebrow{font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;color:var(--blue2);font-weight:500}
h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.12;color:var(--blue)}
h1{font-size:clamp(2.6rem,5.6vw,4.9rem);letter-spacing:-.015em}
h2{font-size:clamp(2rem,3.8vw,3.1rem)}
em{font-style:italic;color:var(--blue2)}
.btn{display:inline-block;padding:15px 30px;border-radius:99px;border:1.5px solid var(--blue);font-size:.92rem;font-weight:500;transition:.3s;background:transparent;color:var(--blue);cursor:pointer;font-family:var(--sans)}
.btn:hover{background:var(--blue);color:#fff}
.btn.solid{background:var(--blue);color:#fff}
.btn.solid:hover{background:var(--blue2);border-color:var(--blue2)}
.nav{position:fixed;inset:0 0 auto 0;z-index:50;padding:20px 0;transition:.35s}
.nav.scrolled{background:rgba(246,241,231,.92);backdrop-filter:blur(10px);padding:12px 0;border-bottom:1px solid var(--line)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px}
.brand{font-family:var(--serif);font-size:1.3rem;color:var(--blue);display:flex;align-items:center;gap:10px;line-height:1.1}
.brand svg{width:32px;height:32px;flex:none}
.brand small{display:block;font-family:var(--sans);font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;color:var(--mut)}
.nav ul{display:flex;gap:30px;list-style:none;font-size:.92rem;font-weight:500}
.nav ul a{position:relative;padding-bottom:3px}
.nav ul a:after{content:"";position:absolute;left:0;bottom:0;height:2px;width:0;background:var(--sun);transition:.3s}
.nav ul a:hover:after{width:100%}
.nav .btn{padding:10px 22px}
.hero{padding:150px 0 90px;position:relative;overflow:hidden;background:linear-gradient(180deg,#e3edf5 0%,var(--cream) 100%)}
.hero .wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center}
.hero h1{margin:20px 0 26px}
.hero p.lead{max-width:520px;font-size:1.18rem;color:var(--mut);margin-bottom:36px}
.cta{display:flex;gap:16px;flex-wrap:wrap;align-items:center}
.cta .tel{font-weight:500;color:var(--blue);border-bottom:2px solid var(--sun);padding-bottom:2px}
.house{position:relative;max-width:480px;margin-left:auto;width:100%}
.house svg{width:100%;height:auto;display:block;filter:drop-shadow(0 30px 40px rgba(29,58,90,.2))}
.house .sun{position:absolute;width:90px;height:90px;border-radius:50%;background:var(--sun);right:2%;top:-4%;opacity:.9;animation:bob 9s ease-in-out infinite}
.house .cap{text-align:center;font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--mut);margin-top:14px}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(12px)}}
.facts{background:var(--blue);color:#fff}
.facts .wrap{display:grid;grid-template-columns:repeat(4,1fr)}
.facts .i{padding:26px 22px;border-left:1px solid rgba(255,255,255,.18);font-size:.95rem}
.facts .i:first-child{border-left:0;padding-left:0}
.facts b{display:block;font-family:var(--serif);font-weight:400;font-size:1.25rem;color:var(--sun)}
section{padding:120px 0}
.sh{max-width:680px;margin-bottom:56px}.sh h2{margin-top:14px}
.about .wrap{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center}
.about h2{margin:14px 0 24px}
.about p{color:var(--mut);margin-bottom:18px;max-width:520px}
.pillars{display:grid;gap:16px}
.pillar{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:26px 28px;transition:.35s}
.pillar:hover{transform:translateX(8px);box-shadow:0 18px 40px -22px rgba(29,58,90,.35)}
.pillar h3{font-size:1.3rem;margin-bottom:4px}
.pillar p{margin:0;font-size:.96rem;color:var(--mut)}
.svc{background:var(--paper)}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.card{background:var(--cream);border-radius:22px;padding:34px 30px;border:1px solid var(--line);transition:.35s;position:relative;overflow:hidden}
.card:before{content:"";position:absolute;width:120px;height:120px;border-radius:50%;background:var(--sky);right:-40px;top:-40px;transition:.5s}
.card:hover:before{transform:scale(1.8)}
.card:hover{transform:translateY(-5px)}
.card h3,.card p,.card .n{position:relative}
.card .n{font-family:var(--serif);font-style:italic;color:var(--blue2);font-size:1rem;margin-bottom:26px;display:block}
.card h3{font-size:1.45rem;margin-bottom:8px}
.card p{font-size:.95rem;color:var(--mut)}
.emerg{margin-top:20px;background:var(--blue);color:#fff;border-radius:22px;padding:34px 40px;display:flex;justify-content:space-between;align-items:center;gap:30px;flex-wrap:wrap}
.emerg h3{color:#fff;font-size:1.6rem;margin-bottom:6px}.emerg p{color:#cfdbe8;max-width:620px}
.emerg .btn{border-color:var(--sun);background:var(--sun);color:var(--ink)}
.here .wrap{display:grid;grid-template-columns:1fr 1fr;gap:80px}
.here h2{margin:14px 0 22px}
.here p{color:var(--mut);margin-bottom:16px}
.route{display:grid;gap:14px}
.route div{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:22px 26px}
.route b{display:block;font-family:var(--serif);font-weight:400;font-size:1.2rem;color:var(--blue);margin-bottom:2px}
.route span{font-size:.94rem;color:var(--mut)}
.gal{display:grid;grid-template-columns:1.3fr 1fr 1fr;grid-template-rows:230px 230px;gap:16px}
.gal .t{border-radius:22px;display:flex;align-items:flex-end;padding:18px;font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(23,40,59,.55);position:relative;overflow:hidden}
.gal .t:nth-child(1){grid-row:span 2;background:linear-gradient(160deg,#c3d8e8,#e6eef5)}
.gal .t:nth-child(2){background:linear-gradient(160deg,#f3dba0,#f6e9c6)}
.gal .t:nth-child(3){background:linear-gradient(160deg,#dbe7f1,#b8cee0)}
.gal .t:nth-child(4){background:linear-gradient(160deg,#e9d9c2,#f3eadb)}
.gal .t:nth-child(5){background:linear-gradient(160deg,#b8cee0,#d5e4f0)}
.gal .t:after{content:"";position:absolute;width:55%;aspect-ratio:1;border-radius:50%;background:rgba(255,255,255,.5);filter:blur(30px);right:-10%;top:-10%;transition:.7s}
.gal .t:hover:after{transform:scale(1.5)}
.gal span{position:relative;z-index:1}
.gnote{margin-top:20px;font-size:.85rem;color:var(--mut)}
.ai{background:var(--blue);color:#fff}
.ai .wrap{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
.ai h2{color:#fff;margin:14px 0 20px}.ai h2 em{color:var(--sun)}.ai .eyebrow{color:var(--sun)}
.ai p{color:#cfdbe8;max-width:480px}
.tag{display:inline-block;margin-top:24px;border:1.5px solid var(--sun);color:var(--sun);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;padding:7px 15px;border-radius:99px;font-weight:500}
.chat{background:var(--paper);color:var(--ink);padding:28px;border-radius:24px;box-shadow:0 30px 60px -30px rgba(0,0,0,.5)}
.chat .h{font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--blue2);margin-bottom:20px;display:flex;justify-content:space-between;font-weight:500}
.msg{max-width:88%;padding:12px 17px;font-size:.93rem;margin-bottom:11px;line-height:1.5;border-radius:16px;opacity:0;transform:translateY(10px);animation:pop .7s forwards}
.msg.a{background:var(--sky);border-bottom-left-radius:4px}
.msg.u{background:var(--blue);color:#fff;margin-left:auto;border-bottom-right-radius:4px}
.msg:nth-of-type(2){animation-delay:.9s}.msg:nth-of-type(3){animation-delay:1.8s}.msg:nth-of-type(4){animation-delay:2.7s}
@keyframes pop{to{opacity:1;transform:none}}
.chat .f{font-size:.72rem;color:var(--mut);margin-top:14px}
.book .wrap{display:grid;grid-template-columns:.9fr 1.1fr;gap:80px}
.book h2{margin:14px 0 22px}
.info p{margin-bottom:20px;color:var(--mut)}
.info b{display:block;font-weight:500;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--blue2);margin-bottom:2px}
.info a.big{font-family:var(--serif);font-size:1.8rem;color:var(--blue)}
form{background:var(--paper);border:1px solid var(--line);border-radius:26px;padding:40px;box-shadow:0 30px 60px -40px rgba(29,58,90,.4)}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:20px}
label{display:block;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--mut);margin-bottom:18px;font-weight:500}
input,select,textarea{display:block;width:100%;margin-top:6px;border:0;border-bottom:1.5px solid rgba(29,58,90,.25);background:transparent;padding:10px 0;font:inherit;font-size:1rem;color:var(--ink);outline:0;border-radius:0;transition:.3s}
input:focus,select:focus,textarea:focus{border-color:var(--blue2)}
textarea{min-height:76px;resize:vertical}
::placeholder{color:rgba(23,40,59,.35)}
form .btn{margin-top:10px;width:100%}
.demo{font-size:.74rem;color:var(--mut);margin-top:14px;text-align:center}.demo.ok{color:var(--blue2)}
footer{background:#10213a;color:#a9b9cb;padding:64px 0 100px;font-size:.9rem}
footer .wrap{display:grid;grid-template-columns:1.2fr 1fr;gap:40px}
footer .brand{color:#fff;margin-bottom:10px}footer .brand small{color:#a9b9cb}
footer .legal{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.15);padding-top:24px;margin-top:20px;color:#fff}
.rv{opacity:0;transform:translateY(24px);transition:opacity .9s ease,transform .9s ease}
.rv.in{opacity:1;transform:none}
.mbar{display:none}
@media(max-width:900px){
 section{padding:80px 0}
 .nav ul{display:none}.nav .btn{padding:9px 16px;font-size:.8rem}.brand{font-size:1.1rem}.brand small{display:none}
 .hero{padding:120px 0 60px}
 .hero .wrap,.about .wrap,.here .wrap,.ai .wrap,.book .wrap,footer .wrap{grid-template-columns:1fr;gap:44px}
 .house{max-width:340px;margin:0 auto}
 .facts .wrap{grid-template-columns:1fr 1fr}
 .facts .i{border-left:0;border-bottom:1px solid rgba(255,255,255,.15);padding:18px 10px 18px 0}
 .grid{grid-template-columns:1fr}
 .emerg{padding:28px 24px}
 .gal{grid-template-columns:1fr 1fr;grid-template-rows:190px 190px 190px}
 .gal .t:nth-child(1){grid-column:span 2;grid-row:span 1}
 form{padding:26px 22px}.f2{grid-template-columns:1fr;gap:0}
 .mbar{display:grid;grid-template-columns:1fr 1fr;position:fixed;bottom:0;left:0;right:0;z-index:60;background:#fff;border-top:1px solid var(--line)}
 .mbar a{padding:15px;text-align:center;font-size:.9rem;font-weight:500;color:var(--blue)}
 .mbar a+a{background:var(--blue);color:#fff}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.rv,.msg{opacity:1;transform:none}}
