/* Odontodos Motion Layer v1 - keeps palette #0892A4 / #AFD8C2 / #fff / #000 and Space Grotesk + Manrope */
:root{--odt-teal:#0892A4;--odt-teal-d:#066E7C;--odt-mint:#AFD8C2;--odt-ink:#000;--odt-ease:cubic-bezier(.22,.8,.2,1)}

/* ---------- scroll progress ---------- */
#odt-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:100000;background:linear-gradient(90deg,#0892A4,#AFD8C2);transform-origin:0 50%;transform:scaleX(0);pointer-events:none}

/* ---------- initial hidden states (only while motion is active; JS adds .odt-in when done) ---------- */
html.odt-motion .odt-hero-card,
html.odt-motion .odt-h-eyebrow,
html.odt-motion .odt-h-lead,
html.odt-motion .odt-h-btn,
html.odt-motion .odt-chips > div > div,
html.odt-motion .odt-reveal,
html.odt-motion .odt-card,
html.odt-motion .odt-img,
html.odt-motion .odt-step,
html.odt-motion .odt-float,
html.odt-motion .odt-stat,
html.odt-motion .odt-hero-photo,
html.odt-motion .odt-h-sec{opacity:0}
html.odt-motion .odt-split{visibility:hidden}
html.odt-motion .odt-split.odt-split-ready{visibility:visible}
html.odt-motion .odt-in,html.odt-motion .odt-chips > div > div.odt-in,html.odt-motion .odt-hero .odt-in,html.odt-motion .odt-stat.odt-in,html.odt-motion .odt-float.odt-in,html.odt-motion .odt-hero-photo.odt-in,html.odt-motion .odt-h-sec.odt-in{opacity:1}

/* ---------- word split ---------- */
.odt-w{display:inline-block;overflow:hidden;vertical-align:top;padding:0 .04em .14em;margin:0 -.04em -.14em}
.odt-wi{display:inline-block;will-change:transform}

/* ---------- hero ---------- */
.odt-hero{position:relative;overflow:hidden}
.odt-hero-orbs::before,.odt-hero-orbs::after,.odt-orbs::before,.odt-orbs::after{content:"";position:absolute;border-radius:50%;filter:blur(60px);pointer-events:none;z-index:0}
.odt-hero-orbs::before{width:420px;height:420px;left:-80px;top:-120px;background:radial-gradient(circle,rgba(8,146,164,.28),transparent 70%);animation:odtDrift 14s ease-in-out infinite alternate}
.odt-hero-orbs::after{width:380px;height:380px;right:-60px;bottom:-140px;background:radial-gradient(circle,rgba(175,216,194,.7),transparent 70%);animation:odtDrift 17s ease-in-out infinite alternate-reverse}
.odt-hero > *{position:relative;z-index:1}
.odt-orbs{position:relative;overflow:hidden}
.odt-orbs::before{width:480px;height:480px;left:-120px;top:-160px;background:radial-gradient(circle,rgba(8,146,164,.55),transparent 70%);animation:odtDrift 15s ease-in-out infinite alternate}
.odt-orbs::after{width:420px;height:420px;right:-100px;bottom:-180px;background:radial-gradient(circle,rgba(175,216,194,.4),transparent 70%);animation:odtDrift 18s ease-in-out infinite alternate-reverse}
.odt-orbs > *{position:relative;z-index:1}
@keyframes odtDrift{0%{transform:translate3d(0,0,0) scale(1)}100%{transform:translate3d(60px,40px,0) scale(1.18)}}

/* highlight sweep on colored hero span */
.odt-hl{background-image:linear-gradient(transparent 62%,rgba(175,216,194,.85) 62%);background-repeat:no-repeat;background-size:0% 100%;background-position:0 0}

/* ---------- buttons: sheen + pulse ---------- */
.odt-motion-page .elementor-button{position:relative;overflow:hidden;transition:box-shadow .25s var(--odt-ease),background-color .25s}
.odt-motion-page .elementor-button::after{content:"";position:absolute;top:0;left:-70%;width:45%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.45),transparent);transform:skewX(-20deg);transition:left .7s var(--odt-ease);pointer-events:none}
.odt-motion-page .elementor-button:hover::after{left:130%}
.odt-motion-page .elementor-button:hover{box-shadow:0 12px 28px rgba(8,146,164,.32)}
.odt-pulse .elementor-button{animation:odtPulse 2.6s ease-out infinite}
@keyframes odtPulse{0%{box-shadow:0 0 0 0 rgba(8,146,164,.5)}70%{box-shadow:0 0 0 16px rgba(8,146,164,0)}100%{box-shadow:0 0 0 0 rgba(8,146,164,0)}}
.odt-sec-cta .odt-pulse .elementor-button{animation-name:odtPulseMint}
@keyframes odtPulseMint{0%{box-shadow:0 0 0 0 rgba(175,216,194,.55)}70%{box-shadow:0 0 0 18px rgba(175,216,194,0)}100%{box-shadow:0 0 0 0 rgba(175,216,194,0)}}

/* ---------- cards: spotlight + image zoom ---------- */
.odt-card{isolation:isolate}
.odt-card::before{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(280px circle at var(--mx,50%) var(--my,50%),rgba(175,216,194,.45),transparent 62%);opacity:0;transition:opacity .35s;z-index:-1;pointer-events:none}
.odt-card:hover::before{opacity:1}
.odt-card .elementor-widget-image{overflow:hidden;border-radius:16px}
.odt-card .elementor-widget-image img{transition:transform .7s var(--odt-ease)}
.odt-card:hover .elementor-widget-image img{transform:scale(1.06)}

/* ---------- marquee edge fade ---------- */
div[class$="marquee"]{-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}

/* ---------- process (dark) ---------- */
.odt-steps{position:relative}
.odt-track{position:absolute;top:47px;height:2px;background:rgba(255,255,255,.14);border-radius:2px;pointer-events:none;z-index:0}
.odt-track > span{display:block;height:100%;background:linear-gradient(90deg,#0892A4,#AFD8C2);transform-origin:0 50%;transform:scaleX(0);border-radius:2px}
.odt-steps .odt-step{position:relative;z-index:1}
.odt-steps .odt-step.odt-in{opacity:.42;transition:opacity .5s}
.odt-steps .odt-step.is-on{opacity:1}
.odt-steps .odt-step.is-on .elementor-widget-html > div > div:nth-child(2){background:#0892A4 !important;border-color:#0892A4 !important;box-shadow:0 0 0 8px rgba(8,146,164,.22);transition:all .5s}
.odt-steps .odt-step.is-on .elementor-widget-html svg{stroke:#fff !important}
.odt-steps .elementor-widget-html > div > div:nth-child(2){transition:all .5s}
@media (max-width:900px){.odt-track{display:none}.odt-steps .odt-step.odt-in{opacity:1}}

/* ---------- FAQ polish ---------- */
.odt-motion-page .e-n-accordion-item{transition:box-shadow .3s,border-color .3s,transform .3s}
.odt-motion-page .e-n-accordion-item:hover{box-shadow:0 10px 26px rgba(6,32,26,.08)}
.odt-motion-page .e-n-accordion-item[open]{box-shadow:0 14px 32px rgba(8,146,164,.14)}

/* ---------- images ---------- */
.odt-img{overflow:hidden}

@media (prefers-reduced-motion:reduce){
  html.odt-motion .odt-hero-card,html.odt-motion .odt-h-eyebrow,html.odt-motion .odt-h-lead,html.odt-motion .odt-h-btn,html.odt-motion .odt-chips > div > div,html.odt-motion .odt-reveal,html.odt-motion .odt-card,html.odt-motion .odt-img,html.odt-motion .odt-step{opacity:1}
  html.odt-motion .odt-split{visibility:visible}
  .odt-hero-orbs::before,.odt-hero-orbs::after,.odt-orbs::before,.odt-orbs::after,.odt-pulse .elementor-button{animation:none}
}

/* ---------- stats band ---------- */
.odt-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;width:100%}
.odt-stat{display:flex;flex-direction:column;gap:8px;background:#fff;border:1px solid #E2ECE7;border-radius:20px;padding:28px 24px;text-align:center;text-decoration:none;transition:transform .28s ease,box-shadow .28s ease,border-color .28s}
.odt-stat:hover{transform:translateY(-6px);box-shadow:0 20px 40px rgba(6,32,26,.12);border-color:#AFD8C2}
.odt-stat-num{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:58px;line-height:1;color:#0892A4;letter-spacing:-.02em}
.odt-stat-lbl{font-family:'Manrope',sans-serif;font-weight:700;font-size:15px;color:#000;line-height:1.3}
.odt-stat-lbl small{display:block;font-weight:500;font-size:12.5px;color:#4A5254;margin-top:3px}
.odt-stat-link .odt-stat-num{display:flex;align-items:center;justify-content:center;height:58px}
.odt-stat-link .odt-stat-go{font-family:'Manrope',sans-serif;font-weight:700;font-size:13px;color:#0892A4}
@media (max-width:900px){.odt-stats{grid-template-columns:repeat(2,1fr)}.odt-stat-num{font-size:46px}}

/* ---------- hero floating cards (home) ---------- */
.odt-hero > .odt-floats{position:absolute;inset:0;pointer-events:none;z-index:2;width:auto}
.odt-float{position:absolute;display:flex;align-items:center;gap:12px;background:#fff;border:1px solid #E2ECE7;border-radius:16px;padding:12px 18px;box-shadow:0 18px 40px rgba(6,32,26,.2);font-family:'Manrope',sans-serif}
.odt-float b{font-family:'Space Grotesk',sans-serif;font-size:26px;line-height:1;color:#0892A4}
.odt-float span{font-size:12.5px;line-height:1.3;color:#4A5254;font-weight:600}
.odt-float strong{display:block;color:#000;font-size:14px;font-weight:700}
.odt-float-a{left:5%;bottom:14%}
.odt-float-b{right:5%;top:16%}
@media (max-width:1180px){.odt-hero > .odt-floats{display:none}}

/* ---------- quiz ---------- */
.odt-quiz{background:#fff;border-radius:28px;padding:38px;max-width:760px;margin:0 auto;box-shadow:0 30px 70px rgba(0,0,0,.2);font-family:'Manrope',sans-serif;text-align:left}
.odt-quiz-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;gap:16px}
.odt-quiz-step{font-size:12.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#0892A4}
.odt-quiz-dots{display:flex;gap:6px}
.odt-quiz-dots i{width:36px;height:5px;border-radius:5px;background:#E2ECE7;transition:background .3s}
.odt-quiz-dots i.is-done{background:#AFD8C2}
.odt-quiz-dots i.is-now{background:#0892A4}
.odt-quiz-body{transition:opacity .26s,transform .26s;min-height:300px}
.odt-quiz-body.is-out{opacity:0;transform:translateX(-18px)}
.odt-quiz-body.is-in{animation:odtQIn .4s ease both}
@keyframes odtQIn{from{opacity:0;transform:translateX(18px)}to{opacity:1;transform:none}}
.odt-quiz h3.odt-quiz-q{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:27px;line-height:1.2;color:#000;margin:0 0 20px}
.odt-quiz-opts{display:grid;gap:12px}
.odt-quiz button.odt-quiz-opt{display:flex;justify-content:space-between;align-items:center;gap:14px;width:100%;text-align:left;border:1.5px solid #E2ECE7;background:#F8FBFA;border-radius:16px;padding:17px 20px;font:600 15.5px/1.35 'Manrope',sans-serif;color:#22292A;cursor:pointer;box-shadow:none;transition:all .22s ease;-webkit-appearance:none;appearance:none}
.odt-quiz button.odt-quiz-opt:hover,.odt-quiz button.odt-quiz-opt:focus-visible{border-color:#0892A4;background:#fff;color:#066E7C;transform:translateX(5px);box-shadow:0 10px 24px rgba(8,146,164,.15);outline:none}
.odt-quiz-opt svg{flex-shrink:0;opacity:.45;transition:transform .22s,opacity .22s}
.odt-quiz-opt:hover svg{transform:translateX(3px);opacity:1}
.odt-quiz button.odt-quiz-back{margin-top:18px;background:none;border:0;padding:0;font:600 13.5px 'Manrope',sans-serif;color:#4A5254;cursor:pointer;box-shadow:none}
.odt-quiz button.odt-quiz-back:hover{color:#0892A4}
.odt-quiz-result p{font-size:16px;line-height:1.6;color:#4A5254;margin:0 0 22px}
.odt-quiz-badge{display:inline-block;background:#EAF6F8;color:#0892A4;font-weight:700;font-size:12px;letter-spacing:.08em;text-transform:uppercase;padding:6px 14px;border-radius:999px;margin-bottom:14px}
.odt-quiz-cta{display:flex;flex-wrap:wrap;gap:12px}
.odt-quiz a.odt-quiz-btn{display:inline-block;padding:15px 24px;border-radius:12px;border:1.5px solid #0892A4;color:#0892A4;font:700 15px 'Manrope',sans-serif;text-decoration:none;transition:all .25s}
.odt-quiz a.odt-quiz-btn:hover{background:#EAF6F8}
.odt-quiz a.odt-quiz-btn.is-main{background:#0892A4;color:#fff}
.odt-quiz a.odt-quiz-btn.is-main:hover{background:#066E7C;box-shadow:0 12px 28px rgba(8,146,164,.32)}
.odt-quiz small{display:block;margin-top:18px;font-size:12px;color:#7a8583}
@media (max-width:600px){.odt-quiz{padding:26px 20px;border-radius:22px}.odt-quiz h3.odt-quiz-q{font-size:22px}}

/* ---------- google reviews pill ---------- */
.odt-gwrap{display:flex;justify-content:center;width:100%}
.odt-gpill{display:inline-flex;align-items:center;gap:10px;border:1.5px solid #E2ECE7;border-radius:999px;padding:12px 22px;font:700 14px 'Manrope',sans-serif;color:#000;text-decoration:none;background:#fff;transition:all .25s}
.odt-gpill:hover{border-color:#0892A4;color:#066E7C;box-shadow:0 12px 28px rgba(8,146,164,.16);transform:translateY(-2px)}
.odt-gpill svg{flex-shrink:0}
/* ---------- split hero (copy left / photo right) ---------- */
html{scroll-behavior:smooth}
#proceso,#test,#tratamientos{scroll-margin-top:96px}
.odt-hero-split{padding-top:64px;padding-bottom:84px}
.odt-hero-split .odt-h-eyebrow{font-family:'Manrope',sans-serif;font-weight:700;font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:#4A5254}
.odt-hero-split .odt-h-eyebrow::before{content:"";display:inline-block;width:9px;height:9px;border-radius:50%;background:#0892A4;margin-right:12px;vertical-align:middle;box-shadow:0 0 0 5px rgba(8,146,164,.16)}
.odt-hero-split .odt-h-title .elementor-heading-title{letter-spacing:-.02em}
.odt-hero-split .odt-h-lead{max-width:500px}
.odt-hero-split .odt-hl{padding:0 .08em;margin:0 -.08em;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.odt-hero-media{position:relative;width:100%;height:560px}
.odt-hero-photo{position:absolute;inset:0;border-radius:28px;overflow:hidden;background:#d7ebe3;box-shadow:0 34px 80px rgba(6,32,26,.2)}
.odt-hero-photo img{width:100%;height:100%;object-fit:cover;display:block;max-width:none}
.odt-hero-media::before,.odt-hero-media::after{content:"";position:absolute;width:34px;height:34px;border:2px solid #0892A4;pointer-events:none;z-index:1}
.odt-hero-media::before{top:-14px;right:-14px;border-left:0;border-bottom:0;border-radius:0 10px 0 0}
.odt-hero-media::after{bottom:-14px;left:-14px;border-right:0;border-top:0;border-radius:0 0 0 10px}
.odt-hero-media .odt-float{z-index:3;padding:11px 18px 11px 12px}
.odt-ico{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:50%;background:#EAF6F8;flex-shrink:0}
.odt-ico svg{width:22px;height:22px}
.odt-fl-1{left:-38px;top:7%}
.odt-fl-2{right:-26px;top:17%}
.odt-fl-3{left:7%;bottom:-20px}
@media (max-width:1180px){.odt-fl-1{left:-14px}.odt-fl-2{right:-10px}}
@media (max-width:900px){.odt-hero-split{padding-top:40px;padding-bottom:64px}.odt-hero-media{height:400px;max-width:520px;margin:0 auto}.odt-fl-2{display:none}.odt-fl-1{left:-8px}}
@media (max-width:520px){.odt-hero-media{height:340px}.odt-float strong{font-size:13px}.odt-fl-3{left:4%}}