:root{--bg:#fff;--bg2:#f1f8fa;--card:#fff;--teal:#0f8aa8;--deep:#0b5b73;--red:#e5484d;--ivory:#0a3a4d;--muted:#4d6a75;--line:rgba(11,91,115,.14);--wa:#25d366}
*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}
body{font-family:'Jost',sans-serif;background:var(--bg);color:var(--muted);line-height:1.7;font-size:16px}
h1,h2,h3{font-family:'Cormorant Garamond',serif;font-weight:600;color:var(--ivory);line-height:1.1;letter-spacing:-.01em}
h1 em,h2 em{font-style:italic;font-weight:500;color:var(--teal)}
img{max-width:100%;display:block}a{color:inherit;text-decoration:none}
.wrap{max-width:1380px;margin:auto;padding:0 22px}
.eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:13px;color:var(--teal);margin-bottom:16px;letter-spacing:.04em}
.eyebrow:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--red)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:14px 28px;border-radius:50px;font:700 15px 'Jost',sans-serif;border:0;cursor:pointer;transition:.25s}
.btn svg{width:30px;height:30px;padding:7px;border-radius:50%;background:rgba(255,255,255,.2);fill:currentColor;flex:none}.btn:has(svg){padding-left:10px}
.b-main{background:linear-gradient(135deg,#0f8aa8,#0b5b73);color:#fff}.b-main:hover{transform:translateY(-2px);box-shadow:0 10px 28px rgba(15,138,168,.35)}
.b-wa{background:linear-gradient(135deg,#27c25f,#128c4a);color:#fff;box-shadow:0 8px 22px rgba(18,140,74,.3)}.b-wa:hover{transform:translateY(-2px)}.b-line{background:linear-gradient(135deg,#0d4a60,#062e3f);color:#fff;box-shadow:0 8px 22px rgba(6,46,63,.28)}.b-line:hover{transform:translateY(-2px)}
header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.92);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
header .wrap{display:flex;justify-content:space-between;align-items:center;height:84px}
header img{height:64px}.hb{display:flex;gap:10px}.hb .btn{padding:7px 22px 7px 8px;font-size:14px}.hb .btn svg{width:28px;height:28px;padding:6px}
.hero{padding:64px 0 80px;background:radial-gradient(800px 460px at 90% 0,rgba(15,138,168,.14),transparent),radial-gradient(500px 360px at 0 100%,rgba(229,72,77,.06),transparent),linear-gradient(180deg,#f6fbfc,#fff)}
.hero .wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:72px;align-items:center}
.hero h1{font-size:72px;margin-bottom:20px}.lead{font-size:18px;max-width:540px;margin-bottom:26px}
.chips{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:28px}.chips span{border:1px solid var(--line);border-radius:40px;padding:7px 16px;font-size:13px;color:var(--ivory);background:rgba(39,182,212,.06)}
.ctas{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:34px}
.heroimg{position:relative;border-radius:22px;overflow:hidden;border:1px solid var(--line)}
.heroimg img{width:100%;height:300px;object-fit:cover}
.heroimg span{position:absolute;left:16px;bottom:16px;background:rgba(6,24,31,.85);border:1px solid var(--line);color:var(--ivory);padding:8px 16px;border-radius:40px;font-size:13px}
.formcard{background:#fff;border:1px solid var(--line);border-top:5px solid var(--teal);border-radius:26px;padding:38px;box-shadow:0 30px 80px rgba(11,91,115,.16);position:sticky;top:96px}
.formcard h2{font-size:36px;margin-bottom:6px}.formcard>p{font-size:14px;margin-bottom:12px}
label{display:block;font-weight:600;font-size:13px;color:var(--ivory);margin:16px 0 7px;text-align:left}
input,textarea{width:100%;padding:14px 16px;border:1px solid var(--line);border-radius:12px;font:inherit;font-size:15px;color:var(--ivory);background:#f4f9fb;text-align:left}
input::placeholder,textarea::placeholder{color:#6f8c97}input:focus,textarea:focus{outline:0;border-color:var(--teal);background:#fff;box-shadow:0 0 0 3px rgba(15,138,168,.12)}
textarea{min-height:96px;resize:vertical}.formcard .btn{width:100%;margin-top:22px}.note{font-size:12px;text-align:center;margin-top:12px}
.stats{border-block:1px solid var(--line);background:var(--bg2)}.stats .wrap{display:grid;grid-template-columns:repeat(4,1fr)}
.stats div{padding:30px 14px;text-align:center;border-right:1px solid var(--line)}.stats div:last-child{border:0}
.stats b{display:block;font:600 34px 'Cormorant Garamond',serif;color:var(--teal)}.stats span{font-size:13px}
section{padding:92px 0}.sec-h{text-align:center;max-width:660px;margin:0 auto 48px}.sec-h h2{font-size:48px;margin-bottom:12px}
.gal{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.gal figure{position:relative;border-radius:18px;overflow:hidden;border:1px solid var(--line)}
.gal img{width:100%;height:310px;object-fit:cover;transition:.5s}.gal figure:hover img{transform:scale(1.05)}
.gal figcaption{position:absolute;left:0;right:0;bottom:0;padding:34px 16px 12px;background:linear-gradient(transparent,rgba(3,12,16,.9));color:#fff;font-size:13px}
.alt{background:radial-gradient(rgba(11,91,115,.09) 1px,transparent 1.2px) 0 0/24px 24px,var(--bg2)}
.doc{display:grid;grid-template-columns:.8fr 1.2fr;gap:56px;align-items:center}
.doc img{border-radius:240px 240px 22px 22px;border:1px solid var(--line);width:100%;max-width:420px;aspect-ratio:1/1.15;object-fit:cover}
.doc h2{font-size:46px;margin-bottom:6px}.doc h3{font:500 16px 'Jost';color:var(--teal);margin-bottom:18px}.doc p{margin-bottom:14px}.doc .btn{margin-top:10px}
.doc.flip{grid-template-columns:1.2fr .8fr}.doc.flip img{margin-left:auto}
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:30px 24px;transition:.3s;box-shadow:0 10px 30px rgba(11,91,115,.06)}.card:hover{border-color:var(--teal);transform:translateY(-4px)}
.ic{width:46px;height:46px;border-radius:14px;background:rgba(39,182,212,.12);border:1px solid var(--line);display:grid;place-items:center;margin-bottom:18px;color:var(--teal);font:600 22px 'Cormorant Garamond'}
.card h3{font-size:26px;margin-bottom:8px}.card p{font-size:14.5px}
.why{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.why div{padding:6px 18px;border-left:2px solid var(--red)}.why b{display:block;color:var(--ivory);margin-bottom:4px}.why span{font-size:14px}
.revs{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.rev{box-shadow:0 10px 30px rgba(11,91,115,.06);background:#fff;border:1px solid var(--line);border-radius:20px;padding:30px}
.stars{color:#f5b942;letter-spacing:3px}.rev p{margin:12px 0 18px;color:#3d5963;font-size:15px}.rev b{color:var(--ivory)}.rev small{display:block}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.step{border-top:1px solid var(--line);padding-top:20px}.step i{font:italic 500 44px 'Cormorant Garamond';color:var(--teal);display:block;line-height:1}.step b{display:block;color:var(--ivory);margin:10px 0 4px}.step span{font-size:14px}
.faqbox{max-width:820px;margin:auto;text-align:left}
details{background:var(--card);border:1px solid var(--line);border-radius:16px;margin-bottom:12px;padding:0 22px}
summary{list-style:none;cursor:pointer;color:var(--ivory);font-weight:600;padding:20px 30px 20px 0;position:relative;text-align:left}
summary::-webkit-details-marker{display:none}summary:after{content:"+";position:absolute;right:0;top:15px;font-size:26px;color:var(--teal);transition:.2s}
details[open] summary:after{content:"–"}details p{padding-bottom:20px;font-size:15px;text-align:left}
.disc{max-width:820px;margin:22px auto 0;font-size:12.5px;text-align:center}
.visit{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.visit h2{font-size:46px;margin-bottom:16px}.visit p{margin-bottom:10px}.visit p b{color:var(--ivory)}
.visit img{border-radius:22px;border:1px solid var(--line);height:340px;width:100%;object-fit:cover}
footer{background:#062e3f;color:#a9c6cf;text-align:center;padding:28px 20px;font-size:13px}
.mapwrap{position:relative;border-radius:28px;overflow:hidden;border:1px solid var(--line);box-shadow:0 30px 80px rgba(11,91,115,.16)}.mapwrap iframe{display:block;width:100%;height:540px;border:0}.mapcard{position:absolute;left:36px;top:50%;transform:translateY(-50%);width:410px;background:#fff;border-radius:24px;padding:34px;border-top:5px solid var(--teal);box-shadow:0 24px 60px rgba(6,46,63,.25)}.mapcard h3{font-size:34px;margin-bottom:12px}.mapcard p{font-size:15px;margin-bottom:10px}.mapcard p b{color:var(--ivory)}.mapcard .ctas{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0 0}.mapcard .ctas .b-main{grid-column:1/-1}
.float{position:fixed;right:22px;bottom:22px;display:flex;flex-direction:column;gap:12px;z-index:60}
.float a{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;box-shadow:0 10px 30px rgba(0,0,0,.5)}.float svg{width:28px;height:28px;fill:currentColor}
.f-wa{background:var(--wa);color:#04210f}.f-call{background:var(--teal);color:#fff}
.bar{display:none}.hero{overflow:hidden}
.ty{min-height:100vh;display:grid;place-items:center;text-align:center;padding:24px;background:linear-gradient(180deg,#eaf6f9,#fff)}
.tycard{background:#fff;box-shadow:0 30px 80px rgba(11,91,115,.16);border-top:5px solid var(--teal);border:1px solid var(--line);border-radius:26px;padding:52px 38px;max-width:520px}
.tycard img{height:96px;margin:0 auto 22px}.tick{width:68px;height:68px;border-radius:50%;border:2px solid var(--teal);color:var(--teal);font-size:32px;line-height:64px;margin:0 auto 18px}
.tycard h1{font-size:46px;margin-bottom:10px}.tycard p{margin-bottom:26px}.tycard .ctas{justify-content:center;margin:0}
@media(max-width:900px){
body{text-align:center}.hero{padding:40px 0 56px}.hero .wrap,.visit,.doc{grid-template-columns:1fr;gap:32px}.hero h1{font-size:42px}.lead{margin-inline:auto}
.chips,.ctas{justify-content:center}.hb{display:none}header .wrap{justify-content:center;height:80px}header img{height:58px}.hero .ctas{display:grid;grid-template-columns:1fr 1fr;gap:10px}.hero .ctas .b-main{grid-column:1/-1}.hero .formcard{order:2;position:static}.heroimg{order:3}.heroimg img{height:240px}
.formcard,.formcard h2,.formcard>p{text-align:center}.formcard label,.formcard input,.formcard textarea{text-align:left}.formcard{padding:28px 22px}
.stats .wrap{grid-template-columns:1fr 1fr}.stats div:nth-child(2){border-right:0}.stats div:nth-child(-n+2){border-bottom:1px solid var(--line)}
section{padding:60px 0}.sec-h h2,.doc h2,.visit h2{font-size:36px}.gal{grid-template-columns:1fr 1fr}.gal img{height:190px}
.doc img{margin:auto}.cards,.why,.steps{grid-template-columns:1fr 1fr}.why div{border-left:0;border-top:2px solid var(--red);padding:14px 0 0}.revs{grid-template-columns:1fr}
.float{display:none}.bar{display:grid;grid-template-columns:1fr 1fr;position:fixed;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));z-index:60;background:rgba(255,255,255,.94);backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:26px;padding:8px;gap:8px;box-shadow:0 14px 40px rgba(6,46,63,.28)}
.bar .btn{padding:9px 8px 9px 9px;border-radius:20px;font-size:14px;gap:7px}footer{padding-bottom:100px}.mapwrap iframe{height:340px}.mapcard{position:static!important;transform:none!important;width:auto!important;margin:-40px 14px 0;position:relative}.mapcard .ctas{justify-content:center}}
@media(max-width:520px){.cards,.why,.steps{grid-template-columns:1fr}.gal img{height:150px}header img{height:54px}.hero h1{font-size:38px}.visit .ctas{flex-direction:column}}

/* motion + polish */
h1 em,h2 em{background:linear-gradient(100deg,#13a5c6,#0b5b73);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;padding-right:.06em}
.progress{position:fixed;top:0;left:0;right:0;height:3px;transform-origin:0 0;transform:scaleX(0);background:linear-gradient(90deg,#0f8aa8,#e5484d);z-index:80}
header{transition:box-shadow .3s}header.sc{box-shadow:0 10px 34px rgba(6,46,63,.12)}
.hero{position:relative}.hero .wrap{position:relative;z-index:1}
.hero:before,.hero:after{content:"";position:absolute;border-radius:50%;pointer-events:none;filter:blur(8px)}
.hero:before{width:560px;height:560px;right:-140px;top:-160px;background:radial-gradient(circle,rgba(15,138,168,.22),transparent 68%);animation:drift 14s ease-in-out infinite alternate}
.hero:after{width:420px;height:420px;left:-120px;bottom:-160px;background:radial-gradient(circle,rgba(229,72,77,.12),transparent 68%);animation:drift 18s ease-in-out infinite alternate-reverse}
@keyframes drift{to{transform:translate(-50px,40px) scale(1.15)}}
@keyframes up{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}
.hero .eyebrow,.hero h1,.hero .lead,.hero .ctas{animation:up .9s cubic-bezier(.2,.7,.2,1) both}
.hero .eyebrow{animation-delay:.05s}.hero h1{animation-delay:.15s}.hero .lead{animation-delay:.3s}.hero .ctas{animation-delay:.45s}.hero .formcard{animation:up 1s cubic-bezier(.2,.7,.2,1) .35s both}
.eyebrow:before{animation:blink 2.2s ease-in-out infinite}@keyframes blink{50%{box-shadow:0 0 0 6px rgba(229,72,77,.18)}}
.btn{position:relative;overflow:hidden}
.b-main:after{content:"";position:absolute;top:0;left:-70%;width:40%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.4),transparent);transform:skewX(-20deg);animation:shine 4.5s ease-in-out infinite}
@keyframes shine{0%,55%{left:-70%}100%{left:140%}}
.f-wa{animation:ring 2.4s infinite}@keyframes ring{0%{box-shadow:0 0 0 0 rgba(37,211,102,.55),0 10px 30px rgba(0,0,0,.35)}70%,100%{box-shadow:0 0 0 18px rgba(37,211,102,0),0 10px 30px rgba(0,0,0,.35)}}
.float a{transition:transform .25s}.float a:hover{transform:scale(1.1)}
.card{position:relative;overflow:hidden}.card:before{content:"";position:absolute;left:0;top:0;height:3px;width:0;background:linear-gradient(90deg,var(--teal),var(--red));transition:width .5s}.card:hover:before{width:100%}
.rev{transition:.3s}.rev:hover{transform:translateY(-4px);box-shadow:0 20px 50px rgba(11,91,115,.14)}
.step{transition:.3s}.step:hover{border-top-color:var(--teal)}.step i{transition:transform .3s}.step:hover i{transform:translateX(6px)}
details{transition:box-shadow .3s,border-color .3s}details[open]{border-color:var(--teal);box-shadow:0 12px 30px rgba(11,91,115,.1)}details[open] p{animation:up .4s both}
.js .rv{opacity:0;transform:translateY(34px);transition:opacity .9s cubic-bezier(.2,.7,.2,1) var(--d,0s),transform .9s cubic-bezier(.2,.7,.2,1) var(--d,0s)}.js .rv.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.js .rv{opacity:1;transform:none}}

/* service cards + type */
body{font-weight:400;letter-spacing:.005em;overflow-x:clip}p{line-height:1.85}
.card{text-align:center;min-width:0}.card p{font-size:15px;color:#4d6a75}
.ic{width:66px;height:66px;border-radius:22px;margin:0 auto 22px;background:linear-gradient(145deg,#e8f7fb,#cde9f1);border:1px solid rgba(15,138,168,.2);color:var(--teal);transition:.35s}
.ic svg{width:30px;height:30px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.card:hover .ic{background:linear-gradient(135deg,#0f8aa8,#0b5b73);color:#fff;transform:translateY(-3px) rotate(-5deg);box-shadow:0 12px 26px rgba(15,138,168,.3)}
@media(max-width:900px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.cards{grid-template-columns:minmax(0,1fr)}}

/* map: side-by-side, no overlap with Google's own place card */
.mapwrap{display:grid;grid-template-columns:430px minmax(0,1fr);background:#fff}
.mapcard{position:static;transform:none;width:auto;margin:0;border:0;border-right:1px solid var(--line);border-radius:0;box-shadow:none;padding:44px 40px;display:flex;flex-direction:column;justify-content:center;text-align:left}
.mapwrap iframe{height:560px}
@media(max-width:900px){.mapwrap{grid-template-columns:minmax(0,1fr)}.mapwrap iframe{height:340px;order:1}.mapcard{order:2;border-right:0;border-top:1px solid var(--line);padding:30px 22px;text-align:center;margin:0}.mapcard h3{font-size:30px}}

/* Jost body type */
body{font-size:17px;letter-spacing:.01em}.lead{font-size:20px;font-weight:300}
.card p,.rev p,details p{font-size:16.5px}.why span,.step span,.stats span,.sec-h p,.mapcard p{font-size:16px}.rev p{font-weight:400}
label{font-size:14px}input,textarea{font-size:16px}.btn{font-size:16px;letter-spacing:.02em}

.lead{font-size:17px;font-weight:400;line-height:1.75}

@media(max-width:900px){.doc.flip{grid-template-columns:1fr}.doc.flip img{margin:auto;order:-1}}
