:root{
--teal:#1E8A85; --teal-deep:#14615D; --teal-darker:#0D3E3B; --teal-light:#E4F4F2;
--paper:#FFFFFF; --sand:#FAF8F5; --ink:#16302E; --ink-soft:#5A716F; --line:#E3E8E7;
}
*{margin:0; padding:0; box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Inter',sans-serif; color:var(--ink); background:var(--sand); line-height:1.6}
a{text-decoration:none; color:inherit}
img{max-width:100%; display:block}
.wrap{max-width:1100px; margin:0 auto; padding:0 22px}
h1,h2,h3{font-family:'Cormorant Garamond',serif; font-weight:600; line-height:1.15}

.hdr{position:sticky; top:0; z-index:900; background:var(--paper); padding:13px 0; box-shadow:0 1px 0 var(--line), 0 6px 20px rgba(20,97,93,.05)}
.hdr-in{display:flex; align-items:center; justify-content:space-between; gap:20px; padding:0 22px; max-width:1300px; margin:0 auto}
.hdr-logo img{height:146px; width:auto}
.hdr-cta{display:flex; gap:14px; align-items:center; justify-content:flex-end}
.nav{display:flex; align-items:center; gap:28px}
.nav a{font-size:15.5px; font-weight:600; color:var(--ink); position:relative; padding:4px 0; white-space:nowrap}
.nav a:hover{color:var(--teal-deep)}
@media (max-width:1420px){ .nav{gap:20px} .nav a{font-size:14.5px} }
@media (max-width:900px){ .nav{display:none} }
.rev-chip{display:flex; align-items:center; gap:16px; padding:14px 24px; background:var(--teal-light); border-radius:18px}
.rev-chip-score{font-family:'Cormorant Garamond',serif; font-weight:700; font-size:52px; line-height:.9; color:var(--teal-deep)}
.rev-chip-stars{color:#E8A93C; font-size:16px; letter-spacing:2px; margin-bottom:4px; display:block}
.rev-chip-txt{font-size:14px; font-weight:700; color:var(--ink-soft); white-space:nowrap; display:block}
.rev-chip-txt b{color:var(--ink); font-size:15.5px}
.hdr-phone{font-size:16px; font-weight:700; color:var(--teal-deep); white-space:nowrap}
@media (max-width:1100px){ .rev-chip,.hdr-phone{display:none} .hdr-logo img{height:114px} }
@media (max-width:640px){ .hdr-logo img{height:88px} }
.btn{display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:13px 22px; border-radius:99px; font-weight:600; font-size:14.5px; transition:transform .16s, box-shadow .16s; cursor:pointer; border:none}
.btn:hover{transform:translateY(-2px)}
.btn-p{background:linear-gradient(135deg,var(--teal),var(--teal-deep)); color:#fff; box-shadow:0 8px 22px rgba(20,97,93,.3)}
.btn-o{background:transparent; color:var(--teal-deep); border:1.5px solid var(--teal)}
.lang-link{font-size:13.5px; font-weight:600; color:var(--ink-soft); padding:8px 12px; border:1px solid var(--line); border-radius:99px}
.lang-link:hover{color:var(--teal-deep); border-color:var(--teal)}

.hero{position:relative; color:#fff; padding:96px 0 88px; text-align:center; overflow:hidden}
.kb{position:absolute; inset:0}
.kb-slide{position:absolute; inset:0; background-size:cover; background-position:center; opacity:0; animation:kbFade 24s infinite}
.kb-slide:nth-child(1){animation-delay:0s; animation-name:kbFadeFirst} /* first photo shows at once; only later slides fade in */
.kb-slide:nth-child(2){animation-delay:8s}
.kb-slide:nth-child(3){animation-delay:16s}
@keyframes kbFadeFirst{0%{opacity:1; transform:scale(1)} 33%{opacity:1; transform:scale(1.08)} 41%{opacity:0} 100%{opacity:0}}
@keyframes kbFade{0%{opacity:0; transform:scale(1)} 8%{opacity:1} 33%{opacity:1; transform:scale(1.08)} 41%{opacity:0} 100%{opacity:0}}
.kb-veil{position:absolute; inset:0; background:linear-gradient(160deg,rgba(13,62,59,.88),rgba(20,97,93,.82))}
.hero .wrap{position:relative; z-index:2}
.hero .eyebrow{color:#9BD4CE}
.hero h1{font-size:clamp(34px,5.5vw,54px); max-width:800px; margin:14px auto 18px}
.hero h1 em{font-style:italic; color:#A9E0DA}
.hero p{max-width:640px; margin:0 auto 28px; font-size:17px; color:rgba(255,255,255,.9)}
.hero-cta{display:flex; gap:12px; justify-content:center; flex-wrap:wrap}
.btn-w{background:#fff; color:var(--teal-deep)}
.hero-micro{display:flex; gap:22px; justify-content:center; flex-wrap:wrap; margin-top:26px; font-size:13.5px; color:rgba(255,255,255,.85)}

.eyebrow{font-size:12px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--teal)}
.sec{padding:72px 0}
.sec-head{text-align:center; margin-bottom:44px}
.h2{font-size:clamp(28px,4vw,40px); margin-top:10px}

.svc-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px}
@media (max-width:1000px){ .svc-grid{grid-template-columns:repeat(2,1fr)} }
@media (max-width:600px){ .svc-grid{grid-template-columns:1fr; gap:26px} }
a.svc{display:flex; flex-direction:column; color:inherit; cursor:pointer}
.svc-box{border:6px solid var(--teal); border-radius:4px; padding:18px 18px 26px; background:var(--paper); flex:1; display:flex; flex-direction:column; transition:box-shadow .2s, transform .2s, border-color .2s}
a.svc:hover .svc-box{transform:translateY(-3px); border-color:var(--teal-deep); box-shadow:inset 0 0 0 6px var(--teal-deep), 0 18px 40px -18px rgba(20,97,93,.38)}
a.svc:focus-visible{outline:3px solid var(--teal-deep); outline-offset:4px; border-radius:6px}
.svc-img{aspect-ratio:1/1; border-radius:2px; overflow:hidden; margin-bottom:22px; background:var(--teal-light)}
.svc-img img{width:100%; height:100%; object-fit:cover}
.svc-box h3{font-family:'Cormorant Garamond',serif; font-weight:600; font-size:25px; text-align:center; margin-bottom:12px; line-height:1.2}
.svc-box p{font-size:14px; color:var(--ink-soft); line-height:1.7; text-align:center; margin:0}

.habla{background:var(--teal-light); border-radius:20px; padding:36px 32px; display:flex; flex-direction:column; gap:14px; align-items:flex-start}
.habla h2{font-size:clamp(24px,3.5vw,32px)}
.habla p{color:var(--ink-soft); max-width:640px}

.stats-row{display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:16px; max-width:760px; margin:0 auto 30px}
.stat{background:var(--paper); border:1px solid var(--line); border-radius:16px; padding:22px 18px; text-align:center}
.stat-n{font-family:'Cormorant Garamond',serif; font-size:38px; font-weight:600; color:var(--teal-deep); line-height:1}
.stat-l{font-size:13px; font-weight:600; color:var(--ink-soft); margin-top:8px}
.es-stars{display:flex; gap:4px; justify-content:center; margin-top:12px}
.es-stars svg{fill:#FFC233; stroke:none}
.es-quotes-note{text-align:center; font-size:13px; font-weight:600; color:var(--ink-soft); margin:0 0 16px}
.es-quotes{display:grid; grid-template-columns:repeat(3,1fr); gap:16px; max-width:1100px; margin:0 auto 12px}
@media (max-width:900px){ .es-quotes{grid-template-columns:1fr} }
.es-quotes .quote{background:var(--paper); border:1px solid var(--line); border-radius:16px; padding:22px 24px}
.es-quotes .quote-stars{display:flex; gap:3px; justify-content:center; margin-bottom:11px}
.es-quotes .quote-stars svg{fill:#FFC233; stroke:none}
.es-quotes .quote-body{font-family:'Inter',system-ui,sans-serif; font-style:normal; font-size:14.5px; line-height:1.65; margin:0 0 13px; color:var(--ink)}
.es-quotes .quote-who{font-size:12.5px; font-weight:600; color:var(--ink-soft)}
.quote{background:var(--paper); border:1px solid var(--line); border-radius:18px; padding:26px 28px; max-width:620px; margin:0 auto}
.quote-stars{color:#E8A93C; font-size:15px; letter-spacing:2px; margin-bottom:10px}
.quote-body{font-size:16px; font-style:italic; color:var(--ink); margin-bottom:12px; font-family:'Cormorant Garamond',serif; font-size:19px}
.quote-who{font-size:13px; font-weight:600; color:var(--ink-soft)}

.contact-band{background:linear-gradient(160deg,var(--teal-deep),var(--teal-darker)); color:#fff; text-align:center; padding:64px 0}
.contact-band h2{font-size:clamp(26px,4vw,38px); margin-bottom:12px}
.contact-band p{color:rgba(255,255,255,.88); max-width:560px; margin:0 auto 26px}
.contact-band .hero-cta a{min-width:220px}
.addr{margin-top:26px; font-size:14px; color:rgba(255,255,255,.75)}
.addr a{text-decoration:underline}

.foot{padding:28px 0; text-align:center; font-size:13px; color:var(--ink-soft)}
.foot a{color:var(--teal-deep); font-weight:600}

@media (max-width:640px){
.hdr-cta .btn{display:none}
.sec{padding:52px 0}
}
