:root {
  --navy: #064c78;
  --navy-dark: #033b5e;
  --teal: #0ba7aa;
  --cyan: #14c2c5;
  --pale: #edfafa;
  --pale-blue: #eef8fc;
  --text: #083f62;
  --muted: #5b7280;
  --white: #fff;
  --shadow: 0 18px 45px rgba(3, 75, 105, .12);
  --radius: 18px;
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  font-family: "Nunito Sans", sans-serif;
  color: var(--text);
  background: #fff;
  line-height: 1.55;
}
body.no-scroll { overflow: hidden; }
img { display: block; width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
.container { width: min(1160px, calc(100% - 48px)); margin: auto; }

.site-header {
  position: sticky; top: 0; z-index: 1000;
  background: rgba(255,255,255,.96);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(7, 83, 113, .05);
}
.nav-wrap { min-height: 82px; display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.brand { display: flex; align-items: center; gap: 10px; color: var(--navy); }
.brand-mark {
  width: 56px; height: 56px; flex: 0 0 56px;
  display: block; object-fit: contain; border: 0;
}
.brand:not(.brand-dark) { color:#28677b; }
.brand strong { display: block; font: 800 25px/1 "Montserrat", sans-serif; letter-spacing: .5px; }
.brand span { display: block; font: 700 9px/1.4 "Montserrat", sans-serif; letter-spacing: 1.5px; }
.main-nav { display: flex; align-items: center; gap: 28px; font: 700 11px "Montserrat", sans-serif; }
.main-nav > a { position: relative; padding: 31px 0; }
.main-nav > a:not(.nav-cta)::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 23px; height: 2px;
  background: var(--teal); transform: scaleX(0); transition: .25s;
}
.main-nav > a:hover::after, .main-nav > a.active::after { transform: scaleX(1); }
.nav-cta { background: var(--teal); color: white; padding: 14px 19px !important; border-radius: 14px; box-shadow: 0 8px 18px rgba(11,167,170,.22); }
.menu-toggle { display:none; border:0; background:none; color:var(--navy); font-size:25px; }

.hero { background: linear-gradient(115deg,#eefaff 0%,#f5fcff 52%,#fff 52%); overflow: hidden; }
.hero-grid { min-height: 600px; display:grid; grid-template-columns: .92fr 1.08fr; align-items: stretch; }
.hero-copy { display:flex; flex-direction:column; justify-content:center; padding: 65px 20px 65px 0; position:relative; z-index:2; }
.eyebrow { font:700 11px "Montserrat",sans-serif; letter-spacing:2px; color:var(--teal); margin-bottom:14px; }
.hero h1, h2 { font-family:"Montserrat",sans-serif; letter-spacing:-1.2px; }
.hero h1 { font-size:clamp(39px,4.3vw,62px); line-height:1.04; color:var(--navy); }
.hero h1 span, h2 span { color:var(--teal); }
.hero-copy > p { max-width:540px; margin:24px 0; color:#214f70; font-size:16px; }
.hero-actions { display:flex; align-items:center; gap:28px; }
.btn { display:inline-flex; align-items:center; justify-content:center; gap:10px; border:0; border-radius:13px; padding:15px 21px; font:800 11px "Montserrat",sans-serif; letter-spacing:.2px; transition:.25s; }
.btn-primary { color:#fff; background:linear-gradient(135deg,var(--teal),#0795a0); box-shadow:0 10px 22px rgba(7,160,167,.22); }
.btn-primary:hover { transform:translateY(-2px); box-shadow:0 14px 28px rgba(7,160,167,.28); }
.text-link { font:800 11px "Montserrat",sans-serif; color:var(--navy); }
.text-link i { margin-left:6px; }
.trust-row { display:flex; gap:35px; margin-top:42px; }
.trust-row div { display:flex; align-items:center; gap:11px; font-size:12px; color:#164a6c; }
.trust-row i { color:var(--teal); font-size:27px; }
.hero-photo { position:relative; overflow:hidden; min-height:600px; }
.hero-photo img { height:100%; object-fit:cover; object-position:center; }
.hero-curve { position:absolute; inset:-20% auto -20% -10%; width:190px; background:#f3fbff; border-right:12px solid var(--teal); border-radius:50%; opacity:.97; }
.photo-label { position:absolute; right:6%; top:33%; background:rgba(4,76,120,.91); color:#fff; padding:16px 22px; border-radius:5px; display:none; }
.photo-label strong { font:800 30px "Montserrat"; display:block; }

.section { padding:90px 0; }
.split { display:grid; grid-template-columns: .88fr 1.12fr; gap:70px; align-items:center; }
.section-tag { display:inline-flex; align-items:center; gap:10px; color:#087f98; border:1px solid #7ad3d7; border-radius:30px; padding:5px 13px; font:800 10px "Montserrat",sans-serif; letter-spacing:.7px; }
.section-intro h2, .why-copy h2, .center-heading h2 { font-size:clamp(30px,3vw,43px); line-height:1.1; margin:17px 0 20px; }
.section-intro p, .why-copy p, .center-heading p { color:#506b7b; max-width:560px; margin-bottom:25px; }
.service-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.service-card { min-height:132px; padding:20px; background:linear-gradient(145deg,#f5ffff,#eaf7fa); border-radius:15px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; transition:.25s; }
.service-card:hover { transform:translateY(-5px); box-shadow:var(--shadow); }
.service-card:nth-child(4) { grid-column:2; }
.service-card i { color:var(--teal); font-size:32px; margin-bottom:10px; }
.service-icon { width:38px; height:38px; margin-bottom:10px; color:var(--teal); fill:none; stroke:currentColor; stroke-width:3.5; stroke-linecap:round; stroke-linejoin:round; }
.service-icon .icon-fill { fill:currentColor; stroke:none; }
.service-card h3 { font:700 14px/1.35 "Montserrat",sans-serif; }

.why { background:#e9f8fa; overflow:hidden; }
.why-grid { display:grid; grid-template-columns: .9fr 1.1fr; gap:70px; align-items:center; }
.why-image { height:370px; position:relative; }
.why-image img { height:100%; object-fit:cover; border-radius:0 120px 120px 0; position:relative; z-index:2; }
.image-accent { position:absolute; left:-40px; bottom:-22px; width:80%; height:35px; background:var(--teal); border-radius:50%; transform:rotate(-8deg); }
.benefits { display:grid; grid-template-columns:1fr 1fr; gap:25px 45px; margin-top:30px; }
.benefit { display:flex; align-items:center; gap:16px; }
.benefit i { flex:0 0 49px; height:49px; display:grid; place-items:center; color:#fff; background:var(--teal); border-radius:50%; font-size:19px; }
.benefit span { font-size:14px; line-height:1.35; }

.treatments { background:#fff; }
.center-heading { text-align:center; margin-bottom:42px; }
.center-heading p { margin:0 auto; }
.treatment-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.treatment-card { padding:27px 22px; border:1px solid #e2f0f3; border-radius:18px; box-shadow:0 8px 25px rgba(8,63,98,.06); transition:.25s; }
.treatment-card:hover { transform:translateY(-6px); box-shadow:var(--shadow); }
.treatment-icon { width:58px; height:58px; border-radius:17px; background:#e7f8f9; color:var(--teal); display:grid; place-items:center; font-size:25px; margin-bottom:17px; }
.orthodontic-icon { width:38px; height:38px; }
.treatment-card h3 { font:700 16px "Montserrat",sans-serif; margin-bottom:10px; }
.treatment-card p { color:#607786; font-size:13px; margin-bottom:20px; }
.wa-treatment { color:#078e99; font:800 11px "Montserrat",sans-serif; }

.gallery { padding-top:30px; }
.gallery-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:12px; }
.gallery-item { border:0; padding:0; height:145px; overflow:hidden; border-radius:9px; background:#eee; }
.gallery-item img { height:100%; object-fit:cover; transition:.35s; }
.gallery-item:hover img { transform:scale(1.06); }

.cta { background:linear-gradient(110deg,#08a5ab,#0bbec2); color:#fff; position:relative; overflow:hidden; }
.cta::after { content:""; position:absolute; width:460px; height:460px; border:1px solid rgba(255,255,255,.22); border-radius:50%; right:-130px; top:-260px; }
.cta-inner { min-height:115px; display:flex; align-items:center; gap:25px; position:relative; z-index:1; }
.cta-icon { width:60px; font-size:43px; }
.cta h2 { font-size:24px; margin-bottom:3px; }
.cta p { font-size:13px; }
.cta .btn { margin-left:auto; }
.btn-light { background:#fff; color:#078c99; }

.footer { background:#063b5e; color:#d9edf5; padding:48px 0 0; }
.footer-grid { display:grid; grid-template-columns:1.4fr .75fr 1fr 1.15fr; gap:50px; }
.brand-dark { color:#fff; }
.footer-brand > p { margin:17px 0; font-size:13px; }
.footer h3 { color:#fff; font:700 13px "Montserrat",sans-serif; margin-bottom:15px; }
.footer-grid > div:not(.footer-brand) a, .footer-grid > div:not(.footer-brand) p { display:block; color:#d1e7ef; font-size:12px; margin-bottom:8px; }
.footer-grid a:hover { color:#fff; }
.footer-grid i { width:19px; }
.socials { display:flex; gap:10px; }
.socials a { width:34px; height:34px; border:1px solid rgba(255,255,255,.25); border-radius:50%; display:grid; place-items:center; }
.copyright { margin-top:30px; padding:18px 0; border-top:1px solid rgba(255,255,255,.15); text-align:center; font-size:11px; color:#bdd5de; }

.floating-wa { position:fixed; z-index:950; right:22px; bottom:22px; width:58px; height:58px; border-radius:50%; display:grid; place-items:center; color:#fff; background:#25d366; font-size:29px; box-shadow:0 12px 30px rgba(37,211,102,.35); }
.floating-wa:hover { transform:scale(1.06); }

.modal, .lightbox { position:fixed; inset:0; z-index:2000; display:none; align-items:center; justify-content:center; background:rgba(0,35,53,.72); padding:20px; }
.modal.open, .lightbox.open { display:flex; }
.modal-card { width:min(520px,100%); background:#fff; border-radius:22px; padding:35px; position:relative; box-shadow:0 30px 80px rgba(0,0,0,.2); }
.modal-card h2 { font-size:32px; margin:12px 0 8px; }
.modal-card > p { color:#657b88; font-size:14px; margin-bottom:22px; }
.modal-close, #lightboxClose { position:absolute; top:14px; right:15px; width:38px; height:38px; border:0; border-radius:50%; background:#eef7f8; color:var(--navy); }
form { display:grid; gap:14px; }
label { font:700 11px "Montserrat",sans-serif; color:var(--navy); }
.appointment-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.availability-note { margin:0; padding:10px 12px; border-radius:10px; background:#eef9fa; color:#28707a; font-size:12px; line-height:1.45; }
.availability-note i { margin-right:5px; }
input, select, textarea { display:block; width:100%; margin-top:7px; border:1px solid #d5e8ed; border-radius:10px; padding:12px 13px; outline:none; color:var(--text); background:#fbfeff; }
input:focus, select:focus, textarea:focus { border-color:var(--teal); box-shadow:0 0 0 3px rgba(11,167,170,.08); }
.full { width:100%; }
.lightbox { padding:40px; }
.lightbox img { width:auto; max-width:min(1100px,95vw); max-height:90vh; object-fit:contain; border-radius:10px; }
#lightboxClose { top:25px; right:25px; z-index:2; }

@media (max-width: 980px) {
  .main-nav { gap:16px; }
  .hero-grid { grid-template-columns:1fr; }
  .hero { background:#eefaff; }
  .hero-copy { padding-right:0; }
  .hero-photo { min-height:390px; margin-bottom:0; }
  .hero-curve { display:none; }
  .split, .why-grid { grid-template-columns:1fr; gap:45px; }
  .service-grid { grid-template-columns:repeat(2,1fr); }
  .service-card:nth-child(4) { grid-column:auto; }
  .treatment-grid { grid-template-columns:repeat(2,1fr); }
  .gallery-grid { grid-template-columns:repeat(3,1fr); }
  .footer-grid { grid-template-columns:1fr 1fr; }
}

@media (max-width: 760px) {
  .container { width:min(100% - 32px, 600px); }
  .nav-wrap { min-height:70px; }
  .menu-toggle { display:block; }
  .main-nav {
    position:absolute; top:70px; left:0; right:0; padding:16px;
    background:#fff; box-shadow:0 20px 30px rgba(0,0,0,.08);
    display:none; flex-direction:column; align-items:stretch; gap:0;
  }
  .main-nav.open { display:flex; }
  .main-nav > a { padding:13px 8px; }
  .main-nav > a:not(.nav-cta)::after { bottom:5px; }
  .nav-cta { text-align:center; margin-top:8px; }
  .hero-copy { padding:55px 0 42px; }
  .hero h1 { font-size:42px; }
  .trust-row { flex-direction:column; gap:16px; margin-top:30px; }
  .hero-photo { min-height:300px; }
  .section { padding:65px 0; }
  .service-grid, .benefits, .treatment-grid { grid-template-columns:1fr; }
  .appointment-grid { grid-template-columns:1fr; }
  .why-image { height:280px; }
  .gallery-grid { grid-template-columns:repeat(2,1fr); }
  .gallery-item { height:125px; }
  .cta-inner { padding:24px 0; display:grid; grid-template-columns:48px 1fr; gap:12px; }
  .cta .btn { grid-column:1 / -1; margin:0; }
  .footer-grid { grid-template-columns:1fr; gap:30px; }
  .brand strong { font-size:22px; }
}

@media (max-width: 420px) {
  .hero h1 { font-size:35px; }
  .hero-actions { flex-direction:column; align-items:flex-start; gap:17px; }
  .gallery-grid { grid-template-columns:1fr 1fr; }
  .gallery-item { height:105px; }
}
/* Production refinements: a calm, legible visual system. */
:root { --teal:#087f83; --cyan:#0e999e; --navy:#123f4a; --navy-dark:#123840; --text:#23434b; --muted:#526970; --shadow:0 18px 48px rgba(18,63,74,.09); }
html { scroll-padding-top:100px; }
body { background:#fffefa; font-size:16px; }
a,button { -webkit-tap-highlight-color:transparent; }
:focus-visible { outline:3px solid #be731e; outline-offset:5px; }
.skip-link { position:fixed; left:16px; top:-100px; z-index:4000; padding:14px 20px; background:#fff; border:2px solid var(--teal); border-radius:8px; }
.skip-link:focus { top:12px; }
.topbar { background:#153e47; color:#fff; font-size:12px; }
.topbar .container { min-height:34px; display:flex; align-items:center; justify-content:space-between; gap:15px; }
.topbar a { padding:5px 0; }
.site-header { background:rgba(255,254,250,.97); }
.nav-wrap { gap:24px; min-height:88px; }
.brand { flex-shrink:0; }
.main-nav { gap:20px; font-size:10px; }
.main-nav > a { white-space:nowrap; }
.nav-cta { border-radius:7px; box-shadow:none; }
.hero { background:#f0f5f1; padding:38px 0 56px; }
.hero-grid { min-height:570px; grid-template-columns:1.04fr 1fr; gap:35px; align-items:center; }
.hero-copy { padding:35px 0; }
.eyebrow { font-size:11px; color:var(--teal); letter-spacing:2px; display:flex; align-items:center; gap:10px; }
.eyebrow::before { content:''; width:23px; height:1px; background:currentColor; }
.hero h1 { font-size:clamp(40px,4.5vw,62px); font-weight:600; letter-spacing:-2.8px; line-height:1.12; }
.hero h1 span { font-weight:500; }
.hero-copy > p { font-size:17px; line-height:1.8; color:#4b6268; max-width:460px; margin:26px 0 30px; }
.btn { min-height:48px; border-radius:7px; font-size:11px; padding:17px 22px; }
.btn-primary { background:var(--teal); box-shadow:none; }
.btn-primary:hover { background:#086c70; box-shadow:none; }
.hero-actions { gap:24px; }
.trust-row { gap:25px; margin-top:38px; padding-top:26px; border-top:1px solid #ceddd7; }
.trust-row div { color:#496168; font-size:11px; gap:9px; }
.trust-row i { font-size:21px; }
.hero-photo { min-height:0; height:530px; border-radius:140px 12px 12px 12px; background:#dae8e1; }
.hero-photo img { height:100%; object-position:50% 50%; }
.hero-curve { display:none; }
.photo-label { display:block; top:auto; bottom:22px; left:22px; right:22px; background:rgba(255,254,250,.94); color:var(--navy); border-radius:7px; padding:16px 20px; }
.photo-label strong { font-size:13px; letter-spacing:2px; }
.photo-label span { font-size:12px; color:#4b6268; }
.section { padding:88px 0; }
.section-tag { background:none; border:0; padding:0; color:var(--teal); font-size:10px; letter-spacing:1.8px; }
h2 { font-weight:600; }
.section-intro h2,.why-copy h2,.center-heading h2,.visit-heading h2,.faq h2,.location h2 { font-size:clamp(30px,3.2vw,43px); line-height:1.2; margin:16px 0 22px; font-weight:600; letter-spacing:-1.5px; }
.split { gap:64px; }
.service-grid { gap:12px; }
.service-card { background:#edf4f1; border:1px solid #dce8e3; min-height:145px; border-radius:9px; }
.service-icon { overflow:visible; }
.why { background:#f1f5f2; }
.why-image { height:435px; border-radius:12px; }
.why-image img { height:100%; object-fit:cover; border-radius:12px; }
.image-accent { display:none; }
.benefits { gap:22px; margin-top:25px; }
.benefit { font-size:13px; }
.treatment-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.treatment-card { display:flex; flex-direction:column; padding:30px; border-color:#dbe5df; border-radius:10px; box-shadow:none; background:#fff; }
.treatment-card h3 { font-size:17px; line-height:1.45; }
.treatment-card p { font-size:15px; line-height:1.75; }
.treatment-card a { margin-top:auto; align-self:flex-start; padding:10px 0; font-size:12px; }
.treatment-icon { background:#edf4f1; border-radius:10px; }
.treatment-guide { background:#edf4f1; justify-content:center; }
.treatment-guide .section-tag { margin-bottom:20px; }
.treatment-guide h3 { font-size:24px; font-weight:600; }
.first-visit { background:#153e47; color:#fff; }
.first-visit .section-tag,.first-visit h2 span { color:#8bd1c4; }
.visit-heading { display:flex; align-items:center; justify-content:space-between; gap:60px; }
.visit-heading > p { max-width:360px; color:#d0deda; line-height:1.8; }
.visit-steps { list-style:none; display:grid; grid-template-columns:repeat(3,1fr); gap:40px; margin-top:34px; }
.visit-steps li { padding-top:24px; border-top:1px solid #59756e; }
.visit-steps span { color:#8bd1c4; font-size:13px; }
.visit-steps h3 { font-size:18px; margin:16px 0 12px; }
.visit-steps p { font-size:15px; color:#d0deda; }
.gallery-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.gallery-item { position:relative; height:230px; border-radius:9px; }
.gallery-item::after { content:'Ampliar ↗'; position:absolute; bottom:10px; right:10px; border-radius:4px; padding:5px 9px; background:#fffefa; color:var(--navy); font-size:11px; }
.gallery-item img { width:100%; }
.faq { border-top:1px solid #dbe5df; }
.faq-layout { display:grid; grid-template-columns:.8fr 1.2fr; gap:80px; }
.faq-layout > div > p { color:var(--muted); max-width:300px; margin-bottom:24px; }
.faq-list details { border-bottom:1px solid #d4e1d9; }
.faq-list summary { cursor:pointer; padding:23px 30px 23px 0; font-weight:700; position:relative; list-style:none; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary::after { content:'+'; position:absolute; right:2px; top:18px; color:var(--teal); font-size:24px; font-weight:400; }
.faq-list details[open] summary::after { content:'−'; }
.faq-list details p { padding:0 25px 24px 0; color:var(--muted); line-height:1.8; }
.faq-list a { text-decoration:underline; }
.location { background:#edf4f1; }
.location-heading { display:grid; grid-template-columns:1fr .75fr; gap:60px; align-items:end; margin-bottom:35px; }
.location-heading > p { color:var(--muted); line-height:1.8; max-width:440px; margin-bottom:24px; }
.location-panel { display:grid; grid-template-columns:1.25fr .75fr; min-height:560px; background:#fffefa; border:1px solid #d6e3dc; border-radius:16px; overflow:hidden; box-shadow:0 24px 65px rgba(18,63,74,.09); }
.map-frame { position:relative; min-height:560px; background:#dce8e2; }
.map-frame iframe { position:absolute; inset:0; width:100%; height:100%; border:0; filter:saturate(.8) contrast(.98); }
address { font-style:normal; color:var(--muted); margin:0 0 25px; line-height:1.9; }
.location-info { background:#fffefa; padding:45px 38px; display:flex; flex-direction:column; justify-content:center; }
.location-kicker { display:flex; align-items:center; gap:8px; color:var(--teal); font:700 10px "Montserrat",sans-serif; letter-spacing:1.5px; }
.location-kicker i { width:27px; height:27px; border:1px solid #a8cec4; border-radius:50%; display:grid; place-items:center; }
.location-info h3 { font:600 23px/1.35 "Montserrat",sans-serif; margin:17px 0; letter-spacing:-.5px; }
.location-directions { align-self:flex-start; margin-bottom:30px; }
.location-contact { display:grid; grid-template-columns:1fr 1fr; gap:18px; border-top:1px solid #e0e8e2; padding:22px 0 16px; }
.location-contact div { display:flex; flex-direction:column; gap:5px; }
.location-contact span { color:var(--muted); font-size:11px; }
.location-contact a,.location-contact strong { color:var(--navy); font-size:14px; }
.location-info dl > div { display:flex; justify-content:space-between; gap:16px; padding:10px 0; border-top:1px solid #e0e8e2; font-size:13px; }
.location-note { font-size:12px; color:var(--muted); margin-top:18px; }
.location-note i { color:var(--teal); margin-right:6px; }
.cta { background:#087f83; }
.cta-inner { min-height:160px; }
.cta h2 { letter-spacing:-.5px; }
.cta p { font-size:15px; }
.footer { background:#153e47; }
.footer-location-link { display:inline-flex; align-items:center; gap:8px; color:#fff; font-size:12px; border-bottom:1px solid rgba(255,255,255,.35); padding:4px 0 6px; }
.footer-grid { gap:35px; }
.footer-grid > div:not(.footer-brand) a,.footer-grid > div:not(.footer-brand) p { font-size:13px; }
.footer-grid a { padding:3px 0; }
.copyright { font-size:12px; padding:24px 0 30px; }
.copyright a { display:inline-block; margin-left:20px; text-decoration:underline; }
.floating-wa { background:#087f66; box-shadow:0 6px 22px #153e4733; width:54px; height:54px; bottom:max(18px,env(safe-area-inset-bottom)); }
.modal,.lightbox { inset:0; margin:auto; padding:0; border:0; color:var(--text); background:transparent; width:calc(100% - 32px); max-width:540px; max-height:calc(100dvh - 32px); overflow:auto; }
.modal:not([open]),.lightbox:not([open]) { display:none; }
.modal[open],.lightbox[open] { display:block; }
.modal::backdrop,.lightbox::backdrop { background:rgba(10,35,39,.78); backdrop-filter:blur(4px); }
.modal-card { width:100%; padding:30px; border-radius:14px; box-shadow:none; }
.modal-card h2 { font-size:29px; }
.modal-card > p { font-size:14px; }
.modal-close,#lightboxClose { min-width:44px; min-height:44px; z-index:2; }
label { font-size:12px; }
input,select { font-size:16px; min-height:46px; }
.form-privacy { font-size:12px; color:#526970; line-height:1.6; }
.form-privacy a { text-decoration:underline; }
.lightbox { max-width:1100px; color:#fff; text-align:center; padding:52px 0 12px; }
.lightbox img { width:auto; max-width:100%; max-height:75dvh; margin:auto; }
#lightboxClose { position:fixed; top:4px; right:4px; }
#lightboxCaption { padding:14px; font-size:14px; }
.legal-page { max-width:760px; padding:72px 24px; margin:auto; }
.legal-page h1 { font:600 clamp(30px,5vw,46px)/1.15 'Montserrat',sans-serif; margin:25px 0; letter-spacing:-1.5px; }
.legal-page h2 { font-size:23px; margin:32px 0 12px; }
.legal-page p { margin:14px 0; color:var(--muted); line-height:1.85; }
.legal-page a:not(.btn) { text-decoration:underline; }
@media(max-width:1100px) {
 .main-nav { gap:12px; font-size:9px; } .brand strong { font-size:22px; } .nav-wrap { gap:16px; }
 .hero-grid { gap:26px; } .hero h1 { font-size:48px; } .trust-row { gap:14px; }
}
@media(max-width:980px) {
 .menu-toggle { display:block; min-width:44px; min-height:44px; }
 .main-nav { position:absolute; top:88px; left:0; right:0; padding:16px 24px 24px; background:#fffefa; box-shadow:0 20px 30px #153e4715; display:none; flex-direction:column; align-items:stretch; gap:0; font-size:12px; }
 .main-nav.open { display:flex; } .main-nav > a { padding:14px 8px; } .main-nav > a:not(.nav-cta)::after { bottom:6px; } .nav-cta { text-align:center; margin-top:10px; }
 .hero-grid { grid-template-columns:1fr 1fr; min-height:490px; } .hero h1 { font-size:42px; } .hero-photo { height:480px; } .hero-copy > p { font-size:16px; }
 .trust-row { flex-wrap:wrap; } .hero-actions { align-items:flex-start; flex-direction:column; gap:20px; }
 .split,.why-grid { grid-template-columns:1fr 1fr; gap:35px; } .service-grid { grid-template-columns:1fr 1fr; }
 .treatment-grid { grid-template-columns:1fr 1fr; } .gallery-grid { grid-template-columns:1fr 1fr; }
 .faq-layout { gap:40px; }
 .location-panel { grid-template-columns:1.05fr .95fr; }
}
@media(max-width:760px) {
 html { scroll-padding-top:85px; } .nav-wrap { min-height:74px; } .main-nav { top:74px; } .topbar { font-size:10px; }
 .hero { padding:20px 0 32px; } .hero-grid { grid-template-columns:1fr; gap:10px; } .hero-copy { padding:25px 0 30px; }
 .hero h1 { font-size:clamp(38px,8.4vw,56px); letter-spacing:-1.9px; } .hero-copy > p { margin:20px 0 24px; }
 .hero-actions { flex-direction:row; align-items:center; gap:20px; } .trust-row { flex-direction:row; justify-content:space-between; gap:10px; padding-top:20px; margin-top:28px; }
 .trust-row div { font-size:10px; gap:7px; } .trust-row i { font-size:18px; }
 .hero-photo { height:350px; min-height:0; border-radius:85px 10px 10px 10px; } .photo-label { bottom:15px; left:15px; right:15px; }
 .brand-mark { width:48px; height:48px; flex-basis:48px; }
 .section { padding:58px 0; } .split,.why-grid,.faq-layout { grid-template-columns:1fr; gap:30px; }
 .service-grid { grid-template-columns:repeat(2,1fr); } .service-card { min-height:125px; } .benefits { grid-template-columns:1fr 1fr; } .why-image { height:320px; }
 .treatment-grid { grid-template-columns:1fr; } .treatment-card { padding:26px; } .treatment-card p { margin-bottom:10px; }
 .visit-heading { display:block; } .visit-steps { grid-template-columns:1fr; gap:24px; } .visit-steps h3 { margin-top:8px; }
 .gallery-item { height:180px; } .gallery-grid { gap:10px; }
 .location-heading,.location-panel { grid-template-columns:1fr; }
 .location-heading { gap:8px; margin-bottom:22px; }
 .location-heading > p { margin-bottom:0; }
 .map-frame { min-height:390px; }
 .location-info { padding:30px 25px; }
 .location-panel { min-height:0; }
 .cta-inner { padding:30px 0; grid-template-columns:1fr; } .cta-icon { display:none; } .cta h2 { font-size:26px; }
 .footer-grid { grid-template-columns:1fr 1fr; gap:32px 24px; } .footer-brand { grid-column:1 / -1; }
 .copyright { text-align:left; padding-right:65px; } .copyright a { margin:8px 0 0; display:block; }
 .modal-card { padding:25px 20px; } .appointment-grid { grid-template-columns:1fr 1fr; } .modal-card > p { margin-bottom:16px; }
}
@media(max-width:360px) { .brand strong { font-size:19px; } .hero-actions { flex-direction:column; align-items:flex-start; } .trust-row i { display:none; } .footer-grid { grid-template-columns:1fr; } .gallery-item { height:140px; } .appointment-grid { grid-template-columns:1fr; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition:none!important; animation:none!important; } }
@media print { .site-header,.topbar,.floating-wa,.cta,.hero-actions,dialog,.skip-link { display:none!important; } .section { padding:24px 0; } body { background:white; } .hero-grid { display:block; } .hero-photo { height:250px; } }
@media(max-width:980px) {
  html:not(.js) .nav-wrap { flex-wrap:wrap; padding-block:15px; }
  html:not(.js) .main-nav { display:flex; position:static; width:100%; box-shadow:none; padding:0; }
  html:not(.js) .menu-toggle { display:none; }
}

/* Descriptive service links remain visible for keyboard and touch navigation. */
.service-detail { display:inline-block; margin-top:8px; padding:8px 4px; font-size:12px; font-weight:700; color:var(--teal); text-underline-offset:4px; }
.service-detail:hover { text-decoration:underline; }
.service-card:focus-within { outline:2px solid var(--teal); outline-offset:3px; }
.hero h1 { font-size:clamp(34px,3.8vw,54px); text-wrap:balance; }
.treatment-card { scroll-margin-top:110px; }
@media(max-width:760px) {
  .split,.why-grid,.faq-layout { grid-template-columns:minmax(0,1fr); }
  .service-grid,.benefits { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .service-card { min-width:0; padding:18px 10px; }
}
@media(max-width:400px) {
  .benefits { grid-template-columns:1fr; }
  .service-card h3 { font-size:12px; }
  .hero .eyebrow { font-size:9px; letter-spacing:1.2px; }
}

.hours-help,.comments-help { font-size:12px; line-height:1.55; color:#526970; margin:0; }
.optional-label { font-weight:400; color:#526970; }
#appointmentComments { resize:vertical; min-height:88px; font-size:16px; line-height:1.5; }
#appointmentTime:disabled { background:#edf3f4; color:#526970; cursor:not-allowed; }

/* Motion and visual depth — calm enough for a healthcare setting. */
:root {
  --ease-out:cubic-bezier(.22,1,.36,1);
  --ease-soft:cubic-bezier(.4,0,.2,1);
  --warm:#f5eee2;
}
.site-header { transition:box-shadow .35s var(--ease-soft),background-color .35s var(--ease-soft); }
.site-header.is-scrolled { background:rgba(255,254,250,.985); box-shadow:0 12px 34px rgba(18,63,74,.09); }
.site-progress { position:absolute; left:0; right:0; bottom:-1px; height:3px; background:linear-gradient(90deg,#087f83,#31b8ad); transform:scaleX(0); transform-origin:left; will-change:transform; }
.hero { position:relative; isolation:isolate; }
.hero::before,.hero::after { content:""; position:absolute; z-index:-1; border-radius:50%; pointer-events:none; filter:blur(2px); }
.hero::before { width:430px; height:430px; left:-230px; top:-245px; background:radial-gradient(circle,rgba(49,184,173,.13),rgba(49,184,173,0) 68%); }
.hero::after { width:360px; height:360px; right:33%; bottom:-260px; border:1px solid rgba(8,127,131,.14); box-shadow:0 0 0 55px rgba(8,127,131,.025),0 0 0 110px rgba(8,127,131,.018); }
.hero-photo { box-shadow:0 28px 70px rgba(18,63,74,.13); transition:box-shadow .45s var(--ease-out),transform .45s var(--ease-out); }
.hero-photo::after { content:""; position:absolute; inset:0; background:linear-gradient(150deg,transparent 48%,rgba(8,62,73,.16)); pointer-events:none; }
.hero-photo img { transform:translate(var(--media-x,0),var(--media-y,0)) scale(1.035); transition:transform .8s var(--ease-out); }
.photo-label { z-index:2; border:1px solid rgba(255,255,255,.65); backdrop-filter:blur(13px); box-shadow:0 12px 30px rgba(18,63,74,.12); }
.btn { position:relative; overflow:hidden; isolation:isolate; }
.btn::before { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(110deg,transparent 20%,rgba(255,255,255,.26) 48%,transparent 76%); transform:translateX(-130%); transition:transform .7s var(--ease-out); }
.btn:hover::before { transform:translateX(130%); }
.btn i,.btn span { transition:transform .3s var(--ease-out); }
.btn:hover i:last-child,.btn:hover span:last-child { transform:translateX(3px); }
.text-link,.wa-treatment,.service-detail { transition:color .25s ease,letter-spacing .3s var(--ease-out); }
.text-link:hover,.wa-treatment:hover,.service-detail:hover { color:#056a6e; letter-spacing:.15px; }
.interactive-surface { position:relative; isolation:isolate; overflow:hidden; }
.interactive-surface::after { content:""; position:absolute; inset:0; z-index:-1; pointer-events:none; background:radial-gradient(260px circle at var(--glow-x,50%) var(--glow-y,50%),rgba(48,184,173,.13),transparent 68%); opacity:0; transition:opacity .35s ease; }
.interactive-surface:hover::after { opacity:1; }
.service-card { transition:transform .42s var(--ease-out),box-shadow .42s var(--ease-out),border-color .3s ease; }
.service-card:hover { transform:translateY(-7px); border-color:rgba(8,127,131,.28); box-shadow:0 22px 50px rgba(18,63,74,.12); }
.service-card .service-icon,.service-card i { transition:transform .42s var(--ease-out),color .3s ease; }
.service-card:hover .service-icon,.service-card:hover > i { transform:translateY(-4px) scale(1.06); color:#056f73; }
.why-image { overflow:hidden; box-shadow:0 24px 55px rgba(18,63,74,.10); }
.why-image img { transition:transform 1s var(--ease-out); }
.why-image:hover img { transform:scale(1.035); }
.benefit i { transition:transform .4s var(--ease-out),background-color .3s ease; }
.benefit:hover i { transform:translateY(-3px) rotate(-4deg); background:#056f73; }
.treatments { position:relative; background:linear-gradient(180deg,#fffefa 0%,#f7fbf9 48%,#fffefa 100%); }
.treatment-card { background:rgba(255,255,255,.82); backdrop-filter:blur(5px); transition:transform .42s var(--ease-out),box-shadow .42s var(--ease-out),border-color .3s ease; }
.treatment-card:hover { transform:translateY(-9px); border-color:rgba(8,127,131,.27); box-shadow:0 24px 55px rgba(18,63,74,.12); }
.treatment-icon { transition:transform .45s var(--ease-out),background-color .3s ease,color .3s ease; }
.treatment-card:hover .treatment-icon { transform:translateY(-4px) rotate(-3deg); background:#d9f1ef; color:#056f73; }
.first-visit { position:relative; overflow:hidden; }
.first-visit::before { content:""; position:absolute; width:380px; height:380px; right:-220px; top:-230px; border:1px solid rgba(8,127,131,.13); border-radius:50%; box-shadow:0 0 0 50px rgba(8,127,131,.025); }
.visit-steps li { transition:transform .4s var(--ease-out),border-color .3s ease; }
.visit-steps li:hover { transform:translateY(-5px); border-color:rgba(8,127,131,.35); }
.visit-steps li > span { transition:transform .4s var(--ease-out),color .3s ease; }
.visit-steps li:hover > span { transform:translateY(-3px); color:#056f73; }
.gallery-grid { grid-template-columns:repeat(12,minmax(0,1fr)); grid-auto-rows:165px; gap:14px; }
.gallery-item { height:auto; position:relative; box-shadow:0 16px 34px rgba(18,63,74,.09); transition:transform .45s var(--ease-out),box-shadow .45s var(--ease-out); }
.gallery-item:nth-child(1) { grid-column:span 7; grid-row:span 2; }
.gallery-item:nth-child(2) { grid-column:span 5; grid-row:span 2; }
.gallery-item:nth-child(3) { grid-column:span 5; grid-row:span 2; }
.gallery-item:nth-child(4) { grid-column:span 7; grid-row:span 2; }
.gallery-item::before { content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(180deg,transparent 55%,rgba(9,55,64,.42)); opacity:.42; transition:opacity .4s ease; pointer-events:none; }
.gallery-item::after { content:'Ampliar ↗'; z-index:2; position:absolute; inset:auto 12px 12px auto; border-radius:5px; padding:6px 10px; background:rgba(255,254,250,.94); color:var(--navy); font-size:11px; box-shadow:0 6px 16px rgba(18,63,74,.1); transition:transform .35s var(--ease-out),background-color .3s ease; }
.gallery-item:hover { transform:translateY(-5px); box-shadow:0 25px 52px rgba(18,63,74,.16); }
.gallery-item:hover::before { opacity:.7; }
.gallery-item:hover::after { transform:translate(-3px,-3px); background:#fff; }
.gallery-item img { transition:transform .75s var(--ease-out),filter .5s ease; }
.gallery-item:hover img { transform:scale(1.055); filter:saturate(1.06); }
.faq-list details { transition:background-color .3s ease,border-color .3s ease,transform .35s var(--ease-out); }
.faq-list details:hover { transform:translateX(4px); border-color:rgba(8,127,131,.28); }
.faq-list details[open] { background:#f1f8f5; border-color:rgba(8,127,131,.3); }
.faq-list summary::after { transition:transform .35s var(--ease-out),color .3s ease; }
.faq-list details[open] summary::after { transform:scale(1.12); color:var(--teal); }
.map-frame { overflow:hidden; }
.map-frame iframe { transition:transform .7s var(--ease-out),filter .5s ease; filter:saturate(.88) contrast(.96); }
.map-frame:hover iframe { transform:scale(1.012); filter:saturate(1) contrast(1); }
.location-panel { transition:box-shadow .45s var(--ease-out),transform .45s var(--ease-out); }
.location-panel:hover { transform:translateY(-4px); box-shadow:0 28px 65px rgba(18,63,74,.14); }
.cta::before { content:""; position:absolute; width:260px; height:260px; left:8%; bottom:-215px; border:1px solid rgba(255,255,255,.2); border-radius:50%; box-shadow:0 0 0 42px rgba(255,255,255,.035); animation:cta-drift 8s ease-in-out infinite alternate; }
.floating-wa { transition:transform .35s var(--ease-out),box-shadow .35s ease; }
.floating-wa::after { content:""; position:absolute; inset:-1px; border:1px solid rgba(8,127,102,.42); border-radius:inherit; animation:wa-ring 2.8s ease-out infinite; }
.floating-wa:hover { transform:translateY(-4px) scale(1.05); box-shadow:0 14px 34px rgba(8,127,102,.3); }
.motion-ready .reveal { opacity:0; transform:translateY(24px); filter:blur(2px); transition:opacity .7s var(--ease-out) var(--reveal-delay,0ms),transform .7s var(--ease-out) var(--reveal-delay,0ms),filter .7s ease var(--reveal-delay,0ms); }
.motion-ready .reveal.is-visible { opacity:1; transform:none; filter:none; }
.motion-ready .hero .eyebrow,.motion-ready .hero h1,.motion-ready .hero-copy > p,.motion-ready .hero-actions,.motion-ready .trust-row { opacity:0; transform:translateY(22px); }
.motion-ready .hero-photo { opacity:0; transform:translateX(24px) scale(.985); }
.motion-ready .hero.is-ready .eyebrow,.motion-ready .hero.is-ready h1,.motion-ready .hero.is-ready .hero-copy > p,.motion-ready .hero.is-ready .hero-actions,.motion-ready .hero.is-ready .trust-row { animation:hero-enter .8s var(--ease-out) forwards; }
.motion-ready .hero.is-ready h1 { animation-delay:.08s; }
.motion-ready .hero.is-ready .hero-copy > p { animation-delay:.16s; }
.motion-ready .hero.is-ready .hero-actions { animation-delay:.24s; }
.motion-ready .hero.is-ready .trust-row { animation-delay:.32s; }
.motion-ready .hero.is-ready .hero-photo { animation:hero-photo-enter 1s var(--ease-out) .14s forwards; }
@keyframes hero-enter { to { opacity:1; transform:none; } }
@keyframes hero-photo-enter { to { opacity:1; transform:none; } }
@keyframes cta-drift { to { transform:translateY(-24px) translateX(18px); } }
@keyframes wa-ring { 0%,42% { transform:scale(1); opacity:0; } 55% { opacity:.55; } 100% { transform:scale(1.55); opacity:0; } }

@media(max-width:760px) {
  .gallery-grid { grid-template-columns:1fr 1fr; grid-auto-rows:185px; }
  .gallery-item:nth-child(n) { grid-column:span 1; grid-row:span 1; }
  .gallery-item:nth-child(1) { grid-column:1 / -1; grid-row:span 2; }
  .gallery-item:nth-child(4) { grid-column:1 / -1; }
  .location-panel:hover { transform:none; }
  .faq-list details:hover { transform:none; }
}
@media(max-width:420px) {
  .gallery-grid { grid-template-columns:1fr; grid-auto-rows:220px; }
  .gallery-item:nth-child(n) { grid-column:1; grid-row:span 1; }
  .gallery-item:nth-child(1) { grid-row:span 2; }
}
@media(prefers-reduced-motion:reduce) {
  .hero-photo img,.why-image img,.gallery-item img { transform:none!important; }
  .floating-wa::after { display:none; }
  .motion-ready .reveal,.motion-ready .hero * { opacity:1!important; transform:none!important; filter:none!important; }
}
