/* ==========================================================================
   DIMAGEN.CSS — Sistema de diseño Dentimagen (rediseño "Finpay" 2026)
   Fuente única de verdad para todas las páginas del núcleo.
   Identidad: claro + cálido + morado, con gradiente de marca y glows ambientales.
   Fuentes: Cormorant Garamond (display) + DM Sans (cuerpo).
   ========================================================================== */

/* ---------- TOKENS ---------- */
:root{
  --bg-primary:#f9f4ef; --bg-white:#fefbf7; --bg-section:#f4eee7; --bg-navy:#0a1628; --bg-navy-deep:#060e1a;
  --text-primary:#0a1628; --text-secondary:#4a5568; --text-muted:#8a97a8;
  --accent:#6d28d9; --accent-deep:#4c1d95; --accent-light:#7c3aed; --accent-bright:#a855f7; --accent-pale:rgba(109,40,217,.10); --blue:#1e3a8a; --blue-mid:#2563eb;
  --grad-accent:linear-gradient(120deg,#4c1d95 0%,#6d28d9 45%,#a855f7 100%);
  --grad-accent-bright:linear-gradient(120deg,#6d28d9 0%,#a855f7 100%);
  --grad-accent-soft:linear-gradient(135deg,rgba(109,40,217,.13),rgba(168,85,247,.07));
  --glow-accent:radial-gradient(closest-side,rgba(124,58,237,.20),rgba(124,58,237,0));
  --glow-blue:radial-gradient(closest-side,rgba(37,99,235,.12),rgba(37,99,235,0));
  --ring-accent:0 0 0 1px rgba(109,40,217,.16);
  --border:#e5dbd0; --border-light:#eee6dd;
  --shadow-xs:0 1px 3px rgba(10,22,40,.06); --shadow-sm:0 2px 8px rgba(10,22,40,.08); --shadow-md:0 6px 20px rgba(10,22,40,.10); --shadow-lg:0 16px 48px rgba(10,22,40,.13);
  --shadow-accent:0 8px 30px rgba(109,40,217,.30); --shadow-accent-lg:0 18px 50px rgba(109,40,217,.28);
  --r-sm:4px; --r-md:8px; --r-lg:16px; --r-xl:24px; --r-pill:100px;
  --ease:cubic-bezier(.4,0,.2,1); --dur:.3s; --dur-slow:.55s;
  --font-display:'Cormorant Garamond',Georgia,serif; --font-body:'DM Sans',-apple-system,sans-serif;
  /* aliases legacy */
  --gold:var(--accent); --gold-light:var(--accent-light); --gold-pale:var(--accent-pale); --shadow-gold:var(--shadow-accent);
}

/* ---------- RESET / BASE ---------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{font-family:var(--font-body);background:var(--bg-primary);color:var(--text-primary);line-height:1.6;overflow-x:hidden;-webkit-font-smoothing:antialiased;}
img{display:block;max-width:100%;} a{text-decoration:none;color:inherit;} ul{list-style:none;} button{font-family:var(--font-body);cursor:pointer;}
.container{max-width:1240px;margin:0 auto;padding:0 2rem;}

/* ---------- TIPOGRAFÍA ---------- */
.eyebrow{display:inline-flex;align-items:center;gap:.55rem;font-size:.75rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-deep);}
.eyebrow::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--grad-accent-bright);box-shadow:0 0 9px rgba(124,58,237,.55);flex-shrink:0;}
.section-title{font-family:var(--font-display);font-size:clamp(1.875rem,3.5vw,2.875rem);font-weight:700;line-height:1.13;color:var(--text-primary);}
.section-body{font-size:1.0625rem;font-weight:300;color:var(--text-secondary);line-height:1.75;}
.grad-text{background:var(--grad-accent);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;}
.gold-rule{display:block;width:48px;height:3px;background:var(--grad-accent-bright);border-radius:3px;}
.sec-header{text-align:center;max-width:620px;margin:0 auto 4rem;}
.sec-header .eyebrow{margin-bottom:.85rem;} .sec-header .section-title{margin-bottom:1rem;} .sec-header .gold-rule{margin:1.25rem auto 0;}

/* ---------- GLOWS AMBIENTALES ---------- */
.glow{position:absolute;border-radius:50%;pointer-events:none;z-index:0;will-change:transform;width:min(36vw,440px);height:min(36vw,440px);}
.glow-accent{background:var(--glow-accent);} .glow-blue{background:var(--glow-blue);}
.glow--tl{top:-6%;left:-8%;} .glow--tr{top:-6%;right:-8%;} .glow--bl{bottom:-6%;left:-8%;} .glow--br{bottom:-6%;right:-8%;} .glow--ml{top:20%;left:-10%;} .glow--mr{top:10%;right:-10%;}
@keyframes drift{0%{transform:translate3d(0,0,0) scale(1);}100%{transform:translate3d(26px,-42px,0) scale(1.08);}}
@keyframes driftAlt{0%{transform:translate3d(0,0,0) scale(1);}100%{transform:translate3d(-30px,34px,0) scale(1.06);}}
.glow.is-anim{animation:drift 17s ease-in-out infinite alternate;}
.glow.is-anim-2{animation:driftAlt 21s ease-in-out infinite alternate;}
@keyframes pulse{0%,100%{opacity:1;}50%{opacity:.35;}}

/* ---------- BOTONES ---------- */
.btn{position:relative;display:inline-flex;align-items:center;gap:.5rem;padding:1.05rem 2rem;border-radius:var(--r-pill);font-size:.9375rem;font-weight:600;letter-spacing:.01em;text-transform:none;border:none;transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease),background var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease);white-space:nowrap;cursor:pointer;overflow:hidden;isolation:isolate;}
.btn>svg,.btn>span{position:relative;z-index:1;}
.btn-gold,.btn-accent{background:var(--grad-accent-bright);color:#fff;box-shadow:var(--shadow-accent);}
.btn-gold::after,.btn-accent::after{content:'';position:absolute;inset:0;background:linear-gradient(110deg,transparent 28%,rgba(255,255,255,.40) 50%,transparent 72%);transform:translateX(-130%);transition:transform .65s var(--ease);z-index:0;}
.btn-gold:hover,.btn-accent:hover{transform:translateY(-3px) scale(1.02);box-shadow:0 14px 44px rgba(109,40,217,.42);}
.btn-gold:hover::after,.btn-accent:hover::after{transform:translateX(130%);}
.btn-outline{background:transparent;color:var(--text-primary);border:1.5px solid var(--border);}
.btn-outline:hover{border-color:transparent;color:var(--accent-deep);background:var(--grad-accent-soft);box-shadow:var(--ring-accent);transform:translateY(-3px);}
.btn-whatsapp{background:#25D366;color:#fff;box-shadow:0 6px 22px rgba(37,211,102,.30);}
.btn-whatsapp:hover{background:#1ebe5a;transform:translateY(-3px) scale(1.02);box-shadow:0 12px 34px rgba(37,211,102,.40);}
.btn-light{background:#fff;color:var(--accent-deep);box-shadow:var(--shadow-md);}
.btn-light:hover{transform:translateY(-3px) scale(1.02);box-shadow:0 14px 40px rgba(0,0,0,.18);}

/* ---------- REVEAL (progressive enhancement) ----------
   Visible por defecto; oculto SOLO con JS (html.js). prefers-reduced-motion lo fuerza visible. */
.reveal{opacity:1;}
.js .reveal{opacity:0;transform:translateY(28px);transition:opacity var(--dur-slow) var(--ease),transform var(--dur-slow) var(--ease);}
.js .reveal.in{opacity:1;transform:translateY(0);}
.delay-1{transition-delay:.10s;} .delay-2{transition-delay:.22s;} .delay-3{transition-delay:.34s;} .delay-4{transition-delay:.46s;}

/* ---------- NAV (flotante → dock) ---------- */
.nav{position:fixed;inset:0 0 auto;z-index:1000;padding:1rem 1.25rem 0;transition:padding .45s var(--ease);}
.nav-inner{max-width:1280px;margin:0 auto;background:rgba(254,251,247,.80);-webkit-backdrop-filter:blur(20px) saturate(150%);backdrop-filter:blur(20px) saturate(150%);border:1px solid rgba(10,22,40,.07);border-radius:var(--r-pill);box-shadow:0 12px 32px rgba(10,22,40,.11),0 2px 6px rgba(10,22,40,.05),inset 0 1px 0 rgba(255,255,255,.7);transition:max-width .45s var(--ease),border-radius .45s var(--ease),box-shadow .3s var(--ease),border-color .3s var(--ease);}
.nav.scrolled{padding:0;}
.nav.scrolled .nav-inner{max-width:100%;border-radius:0;border-color:transparent;border-bottom:1px solid var(--border-light);box-shadow:var(--shadow-sm);}
.nav-row{display:flex;align-items:center;justify-content:space-between;height:66px;transition:height .45s var(--ease);}
.nav.scrolled .nav-row{height:64px;}
.nav-logo{display:flex;align-items:center;flex-shrink:0;}
.logo-box{display:flex;align-items:center;width:158px;height:44px;}
.logo-box img{width:100%;height:100%;object-fit:contain;display:block;}
.nav-links{display:flex;align-items:center;gap:1.35rem;}
.nav-links a{font-size:.8125rem;font-weight:500;color:var(--text-secondary);position:relative;transition:color var(--dur) var(--ease);}
.nav-links a::after{content:'';position:absolute;bottom:-3px;left:0;width:0;height:2px;border-radius:2px;background:var(--grad-accent-bright);transition:width .3s var(--ease);}
.nav-links a:hover{color:var(--text-primary);} .nav-links a:hover::after{width:100%;}
.nav-dropdown{position:relative;}
.nav-dropdown-toggle{display:flex;align-items:center;gap:.3rem;font-size:.8125rem;font-weight:500;color:var(--text-secondary);cursor:pointer;background:none;border:none;font-family:var(--font-body);padding:0;transition:color var(--dur) var(--ease);}
.nav-dropdown-toggle:hover{color:var(--text-primary);}
.nav-dropdown-toggle svg{width:12px;height:12px;flex-shrink:0;transition:transform var(--dur) var(--ease);}
.nav-dropdown.open .nav-dropdown-toggle{color:var(--text-primary);}
.nav-dropdown.open .nav-dropdown-toggle svg{transform:rotate(180deg);}
.nav-dropdown-menu{position:absolute;top:calc(100% + 18px);left:50%;transform:translateX(-50%) translateY(-6px);min-width:184px;background:rgba(254,251,247,.96);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--border-light);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);padding:.4rem;opacity:0;pointer-events:none;transition:opacity var(--dur) var(--ease),transform var(--dur) var(--ease);z-index:999;}
.nav-dropdown.open .nav-dropdown-menu{opacity:1;pointer-events:all;transform:translateX(-50%) translateY(0);}
.nav-dropdown-menu a{display:flex;align-items:center;gap:.625rem;padding:.6rem .875rem;border-radius:var(--r-md);font-size:.8125rem;font-weight:500;color:var(--text-secondary);white-space:nowrap;transition:background var(--dur) var(--ease),color var(--dur) var(--ease);}
.nav-dropdown-menu a:hover{background:var(--accent-pale);color:var(--accent);}
.dd-dot{width:6px;height:6px;border-radius:50%;background:var(--grad-accent-bright);flex-shrink:0;}
.nav-right{display:flex;align-items:center;gap:1rem;}
.nav-right .btn{padding:.72rem 1.45rem;font-size:.8125rem;}
.hamburger{display:none;flex-direction:column;gap:5px;background:none;border:none;padding:4px;}
.hamburger span{display:block;width:24px;height:2px;background:var(--text-primary);border-radius:2px;transition:all var(--dur) var(--ease);}
.hamburger.open span:nth-child(1){transform:rotate(45deg) translate(5px,5px);}
.hamburger.open span:nth-child(2){opacity:0;}
.hamburger.open span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px);}
.mobile-drawer{position:fixed;top:84px;left:1.25rem;right:1.25rem;background:rgba(254,251,247,.98);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--border);border-radius:var(--r-xl);box-shadow:var(--shadow-lg);padding:1.25rem 1.5rem 1.75rem;transform:translateY(-130%);opacity:0;transition:transform var(--dur-slow) var(--ease),opacity var(--dur-slow) var(--ease);z-index:999;pointer-events:none;}
.mobile-drawer.open{transform:translateY(0);opacity:1;pointer-events:all;}
.mobile-drawer nav{display:flex;flex-direction:column;}
.mobile-drawer nav a{padding:.85rem 0;font-size:1rem;color:var(--text-primary);border-bottom:1px solid var(--border-light);}
.mobile-drawer nav a:last-child{border-bottom:none;}
.mobile-drawer .btn{margin-top:1.25rem;width:100%;justify-content:center;}

/* ---------- BREADCRUMB ---------- */
.breadcrumb{padding:96px 0 0;}
.breadcrumb ol{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.78rem;color:var(--text-muted);}
.breadcrumb li{display:flex;align-items:center;gap:.5rem;}
.breadcrumb li::after{content:'/';color:var(--border);}
.breadcrumb li:last-child::after{display:none;}
.breadcrumb a{color:var(--text-secondary);transition:color var(--dur) var(--ease);}
.breadcrumb a:hover{color:var(--accent);}
.breadcrumb [aria-current]{color:var(--accent-deep);font-weight:600;}

/* ---------- HERO (home + servicio/sede) ---------- */
.hero{position:relative;overflow:hidden;background:linear-gradient(150deg,#fdfaf6 0%,#f8f2eb 55%,#f1e8de 100%);}
.hero--home{padding-top:92px;min-height:100vh;display:flex;flex-direction:column;}
.hero--page{padding:2.5rem 0 5rem;}
.hero .glow-1{top:-8%;right:-8%;width:min(46vw,620px);height:min(46vw,620px);}
.hero .glow-2{bottom:-6%;left:-6%;width:min(34vw,440px);height:min(34vw,440px);}
.hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center;position:relative;z-index:1;}
.hero--home .hero-grid{flex:1;padding:3.5rem 0 6rem;}
.hero--page .hero-grid{grid-template-columns:1.05fr .95fr;}
.hero-eyebrow{display:flex;align-items:center;gap:.75rem;margin-bottom:1.25rem;}
.hero-eyebrow-line{display:inline-block;width:28px;height:1.5px;background:var(--grad-accent-bright);}
.hero-h1,.hero h1{font-family:var(--font-display);font-weight:700;line-height:1.07;letter-spacing:-.01em;margin-bottom:1.25rem;color:var(--text-primary);}
.hero--home .hero-h1{font-size:clamp(2.75rem,6vw,4.75rem);line-height:1.08;}
.hero--page h1{font-size:clamp(2.5rem,5vw,4rem);}
.hero-h1-accent,.hero .grad{background:var(--grad-accent);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;}
.hero-tagline{font-size:.875rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);margin:-.25rem 0 1.25rem;}
.hero-lead{font-size:1.125rem;font-weight:300;color:var(--text-secondary);line-height:1.78;max-width:520px;margin-bottom:1.5rem;}
.hero-chips{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:2rem;}
.chip{display:inline-flex;align-items:center;gap:.45rem;font-size:.78rem;font-weight:500;color:var(--accent-deep);background:var(--grad-accent-soft);border:1px solid rgba(109,40,217,.12);padding:.45rem .9rem;border-radius:var(--r-pill);}
.chip svg{width:14px;height:14px;}
.hero-ctas{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:2.5rem;}
.hero-stats{display:flex;gap:2.5rem;padding-top:2rem;border-top:1px solid var(--border);}
.stat-num{font-family:var(--font-display);font-size:3rem;font-weight:700;line-height:1;display:block;background:var(--grad-accent);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;}
.stat-label{font-size:.6875rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted);display:block;margin-top:.4rem;}
.hero-visual{position:relative;}
.hero-img{width:100%;aspect-ratio:4/5;background:linear-gradient(140deg,#e5e0d9,#d4cfc8);border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--shadow-lg);position:relative;}
.hero-img img{width:100%;height:100%;object-fit:cover;}
.hero-open{position:absolute;top:1.25rem;left:1.25rem;display:inline-flex;align-items:center;gap:.45rem;background:rgba(16,185,129,.95);color:#fff;font-size:.66rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:.4rem .85rem;border-radius:var(--r-pill);box-shadow:var(--shadow-sm);z-index:4;}
.hero-open .dot{width:7px;height:7px;border-radius:50%;background:#fff;animation:pulse 2s infinite;}
.hero-card,.hero-card-1{position:absolute;bottom:1.5rem;left:-1.75rem;background:rgba(254,251,247,.85);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.7);border-radius:var(--r-lg);padding:1rem 1.25rem;box-shadow:var(--shadow-lg);display:flex;align-items:center;gap:.875rem;z-index:4;}
.hero-card .ic,.card-icon{width:42px;height:42px;border-radius:50%;background:var(--grad-accent-bright);display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:var(--shadow-accent);flex-shrink:0;}
.hero-card .ic svg,.card-icon svg{width:19px;height:19px;}
.hero-card strong,.card-info strong{display:block;font-family:var(--font-display);font-size:1.1rem;color:var(--text-primary);font-weight:700;}
.hero-card span,.card-info span{font-size:.68rem;color:var(--text-muted);}
.hero-rate,.hero-card-2{position:absolute;top:1.5rem;right:-1.75rem;background:rgba(254,251,247,.85);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.7);border-radius:var(--r-lg);padding:.7rem 1rem;box-shadow:var(--shadow-lg);display:flex;align-items:center;gap:.55rem;z-index:4;}
.hero-rate .stars,.gold-stars{color:#f5b301;font-size:.8rem;} .hero-rate span,.hero-card-2 span:last-child{font-size:.72rem;color:var(--text-secondary);white-space:nowrap;}

/* ---------- OVERLAP TRUST STRIP ---------- */
.overlap-strip{position:relative;z-index:5;margin:0 auto 4.5rem;max-width:1080px;background:linear-gradient(180deg,#ffffff,#fbf7f1);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.7);border-radius:var(--r-xl);box-shadow:var(--shadow-lg);padding:1.5rem 2.25rem;display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;}
.overlap-item{display:flex;align-items:center;gap:.8rem;}
.overlap-ic{width:42px;height:42px;border-radius:var(--r-md);background:var(--grad-accent-soft);border:1px solid rgba(109,40,217,.12);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.overlap-ic svg{width:20px;height:20px;color:var(--accent);}
.overlap-item strong{display:block;font-size:.9rem;color:var(--text-primary);font-weight:600;line-height:1.2;}
.overlap-item span{font-size:.72rem;color:var(--text-muted);}

/* ---------- BENTO SERVICIOS (home) ---------- */
.services-bento{display:grid;grid-template-columns:1.5fr 1fr;grid-template-rows:auto auto;grid-template-areas:"feat orto" "feat blanq";gap:1.5rem;}
.svc-feat{grid-area:feat;position:relative;overflow:hidden;border-radius:var(--r-xl);background:var(--grad-accent);color:#fff;padding:2.75rem;display:flex;flex-direction:column;justify-content:space-between;box-shadow:var(--shadow-accent-lg);min-height:440px;}
.svc-feat::after{content:'';position:absolute;right:-60px;bottom:-60px;width:340px;height:340px;background:radial-gradient(closest-side,rgba(255,255,255,.16),transparent);pointer-events:none;}
.svc-feat-icon{position:absolute;right:1.5rem;top:1.5rem;width:120px;height:120px;opacity:.16;color:#fff;}
.svc-feat-badge{display:inline-flex;align-items:center;gap:.4rem;align-self:flex-start;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.3);color:#fff;font-size:.65rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:.35rem .85rem;border-radius:var(--r-pill);margin-bottom:1.25rem;}
.svc-feat h3{font-family:var(--font-display);font-size:2.4rem;font-weight:700;line-height:1.05;margin-bottom:.85rem;position:relative;z-index:1;}
.svc-feat p{font-size:1.0625rem;font-weight:300;line-height:1.7;color:rgba(255,255,255,.88);max-width:30ch;position:relative;z-index:1;}
.svc-feat-chips{display:flex;flex-wrap:wrap;gap:.5rem;margin:1.5rem 0 1.75rem;position:relative;z-index:1;}
.svc-feat-chip{font-size:.72rem;font-weight:500;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.22);color:#fff;padding:.35rem .75rem;border-radius:var(--r-pill);}
.svc-feat .btn{align-self:flex-start;}
.svc-orto{grid-area:orto;} .svc-blanq{grid-area:blanq;}

/* ---------- SERVICE CARD (grid genérico + 6-servicios sede) ---------- */
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;}
.svc-card,.serv-card{position:relative;background:linear-gradient(180deg,#fffdfb,#f7f1ea);border:1px solid var(--border-light);border-radius:var(--r-xl);padding:2rem;overflow:hidden;display:flex;flex-direction:column;transition:transform var(--dur-slow) var(--ease),box-shadow var(--dur-slow) var(--ease),border-color var(--dur-slow) var(--ease);}
.svc-card::after,.serv-card::after,.why-card::after{content:'';position:absolute;inset:0;border-radius:inherit;padding:1.5px;background:var(--grad-accent);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transition:opacity .4s var(--ease);pointer-events:none;}
.svc-card:hover,.serv-card:hover,.why-card:hover{transform:translateY(-6px);box-shadow:0 24px 60px rgba(109,40,217,.16);border-color:transparent;}
.svc-card:hover::after,.serv-card:hover::after,.why-card:hover::after{opacity:1;}
.svc-icon,.serv-ic,.why-ic{width:54px;height:54px;border-radius:var(--r-lg);background:var(--grad-accent-soft);border:1px solid rgba(109,40,217,.10);display:flex;align-items:center;justify-content:center;margin-bottom:1.1rem;box-shadow:inset 0 1px 0 rgba(255,255,255,.6);}
.svc-icon svg,.serv-ic svg,.why-ic svg{width:24px;height:24px;color:var(--accent);}
.svc-card h3,.serv-card h3,.why-card h3{font-family:var(--font-display);font-size:1.5rem;font-weight:700;color:var(--text-primary);margin-bottom:.5rem;line-height:1.2;}
.serv-card h3,.why-card h3{font-size:1.3rem;}
.svc-card p,.serv-card p,.why-card p{font-size:.95rem;color:var(--text-secondary);font-weight:300;line-height:1.65;margin-bottom:1.1rem;flex:1;}
.svc-link,.serv-link{display:inline-flex;align-items:center;gap:.45rem;font-size:.72rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--accent-deep);transition:gap var(--dur) var(--ease);}
.svc-link svg,.serv-link svg{width:13px;height:13px;transition:transform .3s var(--ease);}
.svc-link:hover,.serv-card:hover .serv-link{gap:.7rem;} .svc-link:hover svg,.serv-card:hover .serv-link svg{transform:translateX(4px);}

/* ---------- PROCESO / ROADMAP (draw-on-scroll) ---------- */
.proc2-track{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;}
.proc2-line{position:absolute;top:40px;left:12%;right:12%;height:3px;background:var(--grad-accent-bright);border-radius:3px;transform-origin:left;transition:transform 1.4s var(--ease);z-index:0;}
.js .proc2-line{transform:scaleX(0);}
.proc2-track.drawn .proc2-line{transform:scaleX(1);}
.proc2-step{text-align:center;position:relative;z-index:1;padding:0 .5rem;}
.proc2-node{width:80px;height:80px;margin:0 auto 1.25rem;border-radius:50%;background:var(--grad-accent);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-accent);position:relative;}
.proc2-node svg{width:32px;height:32px;}
.proc2-num{position:absolute;top:-4px;right:-4px;width:28px;height:28px;border-radius:50%;background:#fff;color:var(--accent-deep);font-family:var(--font-display);font-weight:700;font-size:.95rem;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm);border:1px solid var(--border-light);}
.proc2-step h3{font-family:var(--font-display);font-size:1.35rem;font-weight:700;margin-bottom:.5rem;}
.proc2-step p{font-size:.92rem;font-weight:300;color:var(--text-secondary);line-height:1.6;}

/* ---------- ANATOMÍA (servicio) ---------- */
.anatomy-grid{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center;}
.anatomy-img{aspect-ratio:4/3;border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--shadow-lg);background:linear-gradient(140deg,#ddd7cf,#cac4bc);position:relative;}
.anatomy-img img{width:100%;height:100%;object-fit:cover;}
.anatomy-steps{display:flex;flex-direction:column;gap:1.25rem;}
.anatomy-step{display:flex;gap:1.1rem;align-items:flex-start;}
.anatomy-num{flex-shrink:0;width:46px;height:46px;border-radius:var(--r-md);background:var(--grad-accent);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:1.25rem;font-weight:700;box-shadow:var(--shadow-accent);}
.anatomy-step h3{font-family:var(--font-display);font-size:1.35rem;font-weight:700;margin-bottom:.25rem;}
.anatomy-step p{font-size:.95rem;font-weight:300;color:var(--text-secondary);line-height:1.65;}

/* ---------- GALERÍA ---------- */
.gallery-grid{display:grid;grid-template-columns:2fr 1fr 1fr;grid-auto-rows:188px;gap:1rem;grid-template-areas:"feat t1 t2" "feat t3 t4";}
.gphoto{position:relative;border-radius:var(--r-lg);overflow:hidden;background:linear-gradient(140deg,#ddd7cf,#cac4bc);box-shadow:var(--shadow-sm);min-height:160px;}
.gphoto.feat{grid-area:feat;min-height:340px;}
.gphoto img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s var(--ease);}
.gphoto:hover img{transform:scale(1.06);}
.gphoto-ph{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;text-align:center;font-size:.72rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;padding:.75rem;}
.gphoto-ph svg{width:30px;height:30px;opacity:.5;}

/* ---------- RESULTADOS (sección oscura, antes/después) ---------- */
.results,.section-dark{position:relative;overflow:hidden;background:linear-gradient(140deg,var(--bg-navy),var(--bg-navy-deep));}
.results .glow-1{top:-15%;right:-6%;width:min(44vw,560px);height:min(44vw,560px);background:radial-gradient(closest-side,rgba(124,58,237,.30),rgba(124,58,237,0));}
.results .glow-2{bottom:-16%;left:-6%;width:min(34vw,420px);height:min(34vw,420px);background:radial-gradient(closest-side,rgba(37,99,235,.16),rgba(37,99,235,0));}
.results .sec-header .section-title{color:#fff;} .results .eyebrow{color:#fff;}
.results-grid{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center;}
.ba-frames{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-lg);}
.ba-frame{position:relative;aspect-ratio:3/4;background:#222;overflow:hidden;}
.ba-frame img{width:100%;height:100%;object-fit:cover;}
.ba-ph{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;text-align:center;color:rgba(255,255,255,.4);font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;padding:.75rem;}
.ba-ph svg{width:28px;height:28px;opacity:.6;}
.ba-tag{position:absolute;bottom:.6rem;left:.6rem;background:rgba(0,0,0,.55);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff;font-size:.62rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:.28rem .65rem;border-radius:var(--r-pill);}
.ba-note,.results-lead{font-size:.72rem;color:rgba(255,255,255,.4);margin-top:.75rem;text-align:center;}
.results-lead{font-size:1rem;color:rgba(255,255,255,.62);font-weight:300;line-height:1.7;text-align:left;max-width:42ch;margin-top:1.25rem;}
.results-stats{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;}
.rstat{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:var(--r-lg);padding:1.5rem;}
.rstat .num{font-family:var(--font-display);font-size:3rem;font-weight:700;line-height:1;background:linear-gradient(120deg,#a855f7,#c4b5fd);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;}
.rstat .lbl{display:block;color:rgba(255,255,255,.6);font-size:.85rem;font-weight:300;margin-top:.5rem;}

/* ---------- WHY (feature list / grid) ---------- */
.why-grid{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:center;}
.why-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;}
.features{display:flex;flex-direction:column;gap:1.375rem;}
.feat{display:flex;gap:1.125rem;align-items:flex-start;}
.feat-icon{width:44px;height:44px;flex-shrink:0;background:var(--grad-accent-soft);border:1px solid rgba(109,40,217,.12);border-radius:var(--r-md);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-xs);}
.feat-icon svg{width:18px;height:18px;color:var(--accent);}
.feat-text h4{font-size:.9375rem;font-weight:600;color:var(--text-primary);margin-bottom:.2rem;}
.feat-text p{font-size:.875rem;color:var(--text-secondary);font-weight:300;line-height:1.65;}
.why-visual{position:relative;}
.why-frame{width:100%;aspect-ratio:3/4;border-radius:var(--r-xl);box-shadow:var(--shadow-lg);overflow:hidden;background:linear-gradient(140deg,#dbd6cf,#cac4bc);}
.why-frame img{width:100%;height:100%;object-fit:cover;}
.why-counter{position:absolute;top:1.25rem;right:1.25rem;background:rgba(10,22,40,.78);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:var(--r-lg);padding:.7rem 1.1rem;color:#fff;border:1px solid rgba(255,255,255,.13);}
.why-counter .v{font-family:var(--font-display);font-size:2rem;font-weight:700;line-height:1;background:var(--grad-accent-bright);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;}
.why-counter .l{font-size:.65rem;opacity:.85;display:block;margin-top:.2rem;}

/* ---------- PRICING ---------- */
.pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;align-items:stretch;}
.price-card{position:relative;display:flex;flex-direction:column;background:linear-gradient(180deg,#fffdfb,#f7f1ea);border:1px solid var(--border-light);border-radius:var(--r-xl);padding:2.25rem 2rem;transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease);}
.price-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg);}
.price-card.feat{background:var(--grad-accent);color:#fff;box-shadow:var(--shadow-accent-lg);transform:scale(1.03);}
.price-card.feat:hover{transform:scale(1.03) translateY(-5px);}
.price-badge{position:absolute;top:1.25rem;right:1.25rem;background:#fff;color:var(--accent-deep);font-size:.6rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:.3rem .7rem;border-radius:var(--r-pill);}
.price-card h3{font-family:var(--font-display);font-size:1.5rem;font-weight:700;margin-bottom:.5rem;}
.price-amt{font-family:var(--font-display);font-size:2.5rem;font-weight:700;line-height:1;margin-bottom:.25rem;}
.price-card.feat .price-amt{color:#fff;}
.price-card:not(.feat) .price-amt{background:var(--grad-accent);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;}
.price-sub{font-size:.78rem;opacity:.7;margin-bottom:1.5rem;}
.price-card ul{display:flex;flex-direction:column;gap:.65rem;margin-bottom:1.75rem;flex:1;}
.price-card li{display:flex;gap:.55rem;align-items:flex-start;font-size:.9rem;font-weight:300;}
.price-card li svg{width:16px;height:16px;flex-shrink:0;margin-top:3px;color:var(--accent);}
.price-card.feat li svg{color:#fff;}
.price-card .btn{width:100%;justify-content:center;}
.price-note{text-align:center;font-size:.78rem;color:var(--text-muted);margin-top:1.5rem;}

/* ---------- FAQ ---------- */
.faq-list{max-width:820px;margin:0 auto;}
.faq-item{border:1px solid var(--border-light);border-radius:var(--r-lg);background:var(--bg-white);margin-bottom:.875rem;overflow:hidden;transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease);}
.faq-item[open]{border-color:rgba(109,40,217,.25);box-shadow:var(--shadow-sm);}
.faq-q{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.25rem 1.5rem;font-size:1.05rem;font-weight:600;font-family:var(--font-display);color:var(--text-primary);}
.faq-q::-webkit-details-marker{display:none;}
.faq-q .pm{width:24px;height:24px;flex-shrink:0;position:relative;}
.faq-q .pm::before,.faq-q .pm::after{content:'';position:absolute;background:var(--accent);border-radius:2px;top:50%;left:50%;transform:translate(-50%,-50%);}
.faq-q .pm::before{width:13px;height:2px;} .faq-q .pm::after{width:2px;height:13px;transition:transform var(--dur) var(--ease);}
.faq-item[open] .faq-q .pm::after{transform:translate(-50%,-50%) scaleY(0);}
.faq-a{padding:0 1.5rem 1.35rem;font-size:.95rem;font-weight:300;color:var(--text-secondary);line-height:1.7;}

/* ---------- TESTIMONIOS ---------- */
.testi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;}
.testi-card{position:relative;background:linear-gradient(180deg,#fffdfb,#f7f1ea);border:1px solid var(--border-light);border-radius:var(--r-xl);padding:2rem;transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease),border-color var(--dur) var(--ease);}
.testi-card:hover{transform:translateY(-5px);box-shadow:0 20px 50px rgba(109,40,217,.13);border-color:rgba(109,40,217,.2);}
.testi-stars{display:flex;gap:2px;margin-bottom:1rem;} .testi-stars svg{width:15px;height:15px;fill:#f5b301;color:#f5b301;}
.testi-quote{font-size:.9375rem;font-weight:300;font-style:italic;color:var(--text-secondary);line-height:1.78;margin-bottom:1.25rem;position:relative;}
.testi-author{display:flex;align-items:center;gap:.875rem;padding-top:1.25rem;border-top:1px solid var(--border-light);}
.testi-avatar{width:40px;height:40px;border-radius:50%;background:var(--grad-accent-bright);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:1rem;font-weight:700;color:#fff;flex-shrink:0;box-shadow:var(--shadow-accent);}
.testi-name{font-size:.875rem;font-weight:600;color:var(--text-primary);display:block;} .testi-sub{font-size:.75rem;color:var(--text-muted);display:block;}

/* ---------- SEDES INMERSIVAS (cards en home) ---------- */
.loc2-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:2rem;}
.loc2-card{position:relative;border-radius:var(--r-xl);overflow:hidden;border:1px solid var(--border);background:var(--bg-white);box-shadow:var(--shadow-sm);transition:transform var(--dur-slow) var(--ease),box-shadow var(--dur-slow) var(--ease),border-color var(--dur) var(--ease);display:flex;flex-direction:column;}
.loc2-card:hover{transform:translateY(-6px);box-shadow:0 24px 60px rgba(109,40,217,.14);border-color:rgba(109,40,217,.22);}
.loc2-media{position:relative;aspect-ratio:16/10;overflow:hidden;}
.loc2-media img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease);}
.loc2-card:hover .loc2-media img{transform:scale(1.05);}
.loc2-open{position:absolute;top:1rem;left:1rem;display:inline-flex;align-items:center;gap:.45rem;background:rgba(16,185,129,.95);color:#fff;font-size:.66rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:.38rem .8rem;border-radius:var(--r-pill);box-shadow:var(--shadow-sm);}
.loc2-open .dot{width:7px;height:7px;border-radius:50%;background:#fff;animation:pulse 2s infinite;}
.loc2-ribbon{position:absolute;top:1rem;right:1rem;background:var(--grad-accent-bright);color:#fff;font-size:.62rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:.34rem .8rem;border-radius:var(--r-pill);box-shadow:var(--shadow-accent);}
.loc2-body{padding:1.75rem 2rem 2rem;display:flex;flex-direction:column;flex:1;}
.loc2-body h3{font-family:var(--font-display);font-size:1.7rem;font-weight:700;color:var(--text-primary);margin-bottom:.35rem;}
.loc2-addr{display:flex;align-items:flex-start;gap:.5rem;font-size:.9rem;color:var(--text-secondary);font-weight:300;margin-bottom:1rem;}
.loc2-addr svg{width:15px;height:15px;color:var(--accent);flex-shrink:0;margin-top:3px;}
.loc2-hours{width:100%;border-collapse:collapse;margin-bottom:1.5rem;}
.loc2-hours td{font-size:.85rem;padding:.45rem 0;border-bottom:1px solid var(--border-light);color:var(--text-secondary);font-weight:300;}
.loc2-hours tr:last-child td{border-bottom:none;}
.loc2-hours td:last-child{text-align:right;font-weight:600;color:var(--text-primary);}
.loc2-actions{display:flex;gap:.75rem;margin-top:auto;flex-wrap:wrap;}
.loc2-actions .btn{flex:1;justify-content:center;min-width:140px;}

/* ---------- CÓMO LLEGAR (sede) ---------- */
.locate-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:2.5rem;align-items:stretch;}
.locate-info{background:linear-gradient(180deg,#fffdfb,#f7f1ea);border:1px solid var(--border-light);border-radius:var(--r-xl);padding:2.25rem;display:flex;flex-direction:column;}
.locate-badges{display:flex;gap:.6rem;margin-bottom:1.25rem;flex-wrap:wrap;}
.badge-open{display:inline-flex;align-items:center;gap:.45rem;background:rgba(16,185,129,.12);color:#0f9d6b;border:1px solid rgba(16,185,129,.25);font-size:.66rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:.34rem .8rem;border-radius:var(--r-pill);}
.badge-open .dot{width:7px;height:7px;border-radius:50%;background:#10b981;animation:pulse 2s infinite;}
.badge-main{background:var(--grad-accent-soft);color:var(--accent-deep);border:1px solid rgba(109,40,217,.18);font-size:.66rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:.34rem .8rem;border-radius:var(--r-pill);}
.locate-row{display:flex;gap:.85rem;align-items:flex-start;padding:1rem 0;border-bottom:1px solid var(--border-light);}
.locate-row:last-of-type{border-bottom:none;}
.locate-row svg{width:19px;height:19px;color:var(--accent);flex-shrink:0;margin-top:2px;}
.locate-row .k{font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);display:block;margin-bottom:.2rem;}
.locate-row .val{font-size:.95rem;color:var(--text-primary);font-weight:400;}
.hours-mini{width:100%;border-collapse:collapse;}
.hours-mini td{font-size:.9rem;padding:.25rem 0;color:var(--text-secondary);font-weight:300;}
.hours-mini td:last-child{text-align:right;font-weight:600;color:var(--text-primary);}
.locate-info .btn{margin-top:1.5rem;width:100%;justify-content:center;}
.locate-map{border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--shadow-lg);border:1px solid var(--border-light);min-height:440px;}
.locate-map iframe{width:100%;height:100%;min-height:440px;border:0;display:block;filter:grayscale(.2) contrast(1.05);}

/* ---------- CTA OSCURO ---------- */
.cta-sec{position:relative;overflow:hidden;background:linear-gradient(140deg,var(--bg-navy),var(--bg-navy-deep));}
.cta-sec .glow-1{top:-20%;right:-6%;width:min(46vw,560px);height:min(46vw,560px);background:radial-gradient(closest-side,rgba(124,58,237,.32),rgba(124,58,237,0));}
.cta-sec .glow-2{bottom:-16%;left:-6%;width:min(36vw,440px);height:min(36vw,440px);background:radial-gradient(closest-side,rgba(37,99,235,.18),rgba(37,99,235,0));}
.cta-inner{position:relative;z-index:1;display:grid;grid-template-columns:1fr auto;gap:4rem;align-items:center;}
.cta-eyebrow{color:#fff;display:inline-flex;margin-bottom:1rem;}
.cta-h2{font-family:var(--font-display);font-size:clamp(2rem,4vw,3rem);font-weight:700;color:#fff;line-height:1.13;margin-bottom:1rem;}
.cta-h2 .grad{background:linear-gradient(120deg,#a855f7,#c4b5fd);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;}
.cta-p{font-size:1.0625rem;font-weight:300;color:rgba(255,255,255,.62);line-height:1.75;max-width:500px;}
.cta-box{min-width:300px;display:flex;flex-direction:column;gap:.875rem;}
.cta-box .btn{width:100%;justify-content:center;}
.cta-form{display:flex;flex-direction:column;gap:.75rem;}
.cta-form input{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);border-radius:var(--r-md);padding:.95rem 1.125rem;font-family:var(--font-body);font-size:.95rem;color:#fff;outline:none;transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease);}
.cta-form input::placeholder{color:rgba(255,255,255,.4);}
.cta-form input:focus{border-color:rgba(168,85,247,.6);background:rgba(255,255,255,.1);}
.cta-or{display:flex;align-items:center;gap:.875rem;font-size:.6875rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.3);}
.cta-or::before,.cta-or::after{content:'';flex:1;height:1px;background:rgba(255,255,255,.1);}

/* ---------- ENLACES INTERNOS ---------- */
.ilinks-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:3rem;}
.ilink{position:relative;display:flex;flex-direction:column;background:linear-gradient(180deg,#fffdfb,#f7f1ea);border:1px solid var(--border-light);border-radius:var(--r-xl);padding:2rem;transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease),border-color var(--dur) var(--ease);}
.ilink:hover{transform:translateY(-5px);box-shadow:0 20px 50px rgba(109,40,217,.13);border-color:rgba(109,40,217,.22);}
.ilink h3{font-family:var(--font-display);font-size:1.35rem;font-weight:700;margin-bottom:.4rem;}
.ilink p{font-size:.9rem;font-weight:300;color:var(--text-secondary);line-height:1.6;margin-bottom:1rem;flex:1;}
.ilink .go{display:inline-flex;align-items:center;gap:.45rem;font-size:.72rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--accent-deep);}
.ilink .go svg{width:13px;height:13px;transition:transform .3s var(--ease);} .ilink:hover .go svg{transform:translateX(4px);}

/* ---------- FOOTER ---------- */
.footer{position:relative;background:var(--bg-navy-deep);padding:4.5rem 0 2rem;}
.footer::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--grad-accent);opacity:.55;}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:3rem;margin-bottom:3rem;}
.footer-brand .logo-box{margin-bottom:1.125rem;}
.footer-brand p{font-size:.875rem;font-weight:300;color:rgba(255,255,255,.45);line-height:1.7;margin-bottom:1.5rem;}
.socials{display:flex;gap:.625rem;}
.social-btn{width:36px;height:36px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:var(--r-md);display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.5);transition:all var(--dur) var(--ease);}
.social-btn:hover{background:var(--grad-accent-bright);border-color:transparent;color:#fff;transform:translateY(-2px);}
.social-btn svg{width:15px;height:15px;}
.footer-col h4{font-size:.625rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:rgba(255,255,255,.3);margin-bottom:1.25rem;}
.footer-col ul{display:flex;flex-direction:column;gap:.55rem;}
.footer-col ul a{font-size:.875rem;font-weight:300;color:rgba(255,255,255,.5);transition:color var(--dur) var(--ease);}
.footer-col ul a:hover{color:rgba(255,255,255,.9);}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:2rem;border-top:1px solid rgba(255,255,255,.06);}
.footer-bottom p{font-size:.8125rem;font-weight:300;color:rgba(255,255,255,.25);}
.footer-bottom a{color:rgba(168,85,247,.8);transition:color var(--dur) var(--ease);} .footer-bottom a:hover{color:#c4b5fd;}

/* ---------- BLOG TEASER ---------- */
.blog-teaser{position:relative;overflow:hidden;padding:6rem 0;background:linear-gradient(180deg,#fcf7f1,#f7efe7);}
.blog-teaser .container{position:relative;z-index:1;}
.blog-teaser-head{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;margin-bottom:2.5rem;}
.blog-teaser-copy{max-width:680px;}
.blog-teaser-copy .section-title{margin-top:.5rem;} .blog-teaser-copy .section-body{max-width:58ch;margin-top:1rem;}
.blog-teaser-tags{display:flex;flex-wrap:wrap;gap:.625rem;margin-top:1.25rem;}
.blog-teaser-tag{display:inline-flex;align-items:center;padding:.4rem .9rem;border-radius:var(--r-pill);border:1px solid var(--border);background:rgba(254,251,247,.92);box-shadow:var(--shadow-xs);font-size:.75rem;font-weight:500;color:var(--text-secondary);}
.blog-teaser-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem;}
.blog-teaser-card{position:relative;display:flex;flex-direction:column;min-height:100%;border-radius:var(--r-xl);border:1px solid var(--border-light);background:rgba(254,251,247,.9);box-shadow:var(--shadow-sm);overflow:hidden;transition:transform var(--dur-slow) var(--ease),box-shadow var(--dur-slow) var(--ease),border-color var(--dur) var(--ease);}
.blog-teaser-card:hover{transform:translateY(-6px);box-shadow:0 24px 60px rgba(109,40,217,.15);border-color:rgba(109,40,217,.22);}
.blog-card-thumb{width:100%;aspect-ratio:16/9;position:relative;overflow:hidden;flex-shrink:0;}
.blog-card-thumb-inner{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;}
.blog-card-thumb-implantes{background:linear-gradient(135deg,#e8e0f4,#d4c6ef);}
.blog-card-thumb-ortodoncia{background:linear-gradient(135deg,#dde9f8,#c5d9f2);}
.blog-card-thumb-cumbaya{background:linear-gradient(135deg,#e8e0f4,#d9c9f0);}
.blog-card-thumb svg{width:56px;height:56px;opacity:.32;}
.blog-card-thumb-implantes svg{color:#6d28d9;} .blog-card-thumb-ortodoncia svg{color:#1e3a8a;} .blog-card-thumb-cumbaya svg{color:#7c3aed;}
.blog-card-body{display:flex;flex-direction:column;flex:1;padding:1.5rem 1.75rem 1.75rem;}
.blog-teaser-label{display:inline-flex;align-items:center;width:fit-content;margin-bottom:.95rem;padding:.35rem .8rem;border-radius:var(--r-pill);background:var(--grad-accent-soft);font-size:.6875rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-deep);}
.blog-teaser-card h3{font-family:var(--font-display);font-size:1.55rem;font-weight:700;line-height:1.12;color:var(--text-primary);margin-bottom:.8rem;}
.blog-teaser-card p{flex:1;font-size:.95rem;font-weight:300;line-height:1.75;color:var(--text-secondary);margin-bottom:1.25rem;}
.blog-teaser-link{display:inline-flex;align-items:center;gap:.55rem;font-size:.8125rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--accent-deep);}
.blog-teaser-link svg{width:15px;height:15px;transition:transform var(--dur) var(--ease);} .blog-teaser-card:hover .blog-teaser-link svg{transform:translateX(4px);}
/* Branded blog thumbnails (gráfico de marca por categoría, sin foto) */
.blog-thumb{position:relative;height:128px;overflow:hidden;display:flex;align-items:flex-end;padding:1.1rem 1.25rem;background:var(--grad-accent);}
.blog-teaser-card.cat-orto .blog-thumb{background:linear-gradient(135deg,#1e3a8a,#2563eb);}
.blog-teaser-card.cat-cumbaya .blog-thumb{background:linear-gradient(135deg,#6d28d9,#a855f7);}
.blog-thumb .motif{position:absolute;right:-12px;top:-20px;width:124px;height:124px;color:#fff;opacity:.20;}
.blog-thumb .kicker{position:relative;z-index:1;color:#fff;font-family:var(--font-display);font-size:1.6rem;font-weight:700;line-height:1;}
.blog-meta{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:auto;padding-top:1rem;border-top:1px solid var(--border-light);}
.blog-rt{display:inline-flex;align-items:center;gap:.4rem;font-size:.78rem;font-weight:500;color:var(--text-muted);}
.blog-rt svg{width:14px;height:14px;}

/* ---------- BLOG HUB (índice) ---------- */
.bloghub{padding:7rem 0 5rem;background:var(--bg-primary);position:relative;overflow:hidden;}
.bloghub .glow-1{top:0;right:-8%;}
.bloghub .container{position:relative;z-index:1;}
.bloghub-featured{display:grid;grid-template-columns:1.05fr 1fr;border-radius:var(--r-xl);overflow:hidden;border:1px solid var(--border-light);background:linear-gradient(180deg,#fffdfb,#f7f1ea);box-shadow:var(--shadow-sm);margin-bottom:2rem;transition:transform var(--dur-slow) var(--ease),box-shadow var(--dur-slow) var(--ease);}
.bloghub-featured:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg);}
.bloghub-featured .blog-thumb{height:100%;min-height:280px;}
.bloghub-featured .blog-thumb .motif{width:180px;height:180px;}
.bloghub-featured .blog-thumb .kicker{font-size:2rem;}
.bloghub-feat-body{padding:2.5rem;display:flex;flex-direction:column;justify-content:center;}
.bloghub-feat-body h2{font-family:var(--font-display);font-size:1.9rem;font-weight:700;line-height:1.15;margin-bottom:.75rem;}
.bloghub-feat-body p{font-size:1rem;font-weight:300;color:var(--text-secondary);line-height:1.7;margin-bottom:1.25rem;}

/* ---------- ARTÍCULO (lectura) ---------- */
.article-hero{padding:1.5rem 0 0;}
.article-hero .container{max-width:840px;}
.article-cat{display:inline-flex;align-items:center;width:fit-content;margin-bottom:1rem;padding:.35rem .85rem;border-radius:var(--r-pill);background:var(--grad-accent-soft);font-size:.6875rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-deep);}
.article-hero h1{font-family:var(--font-display);font-size:clamp(2rem,4.5vw,3.1rem);font-weight:700;line-height:1.1;letter-spacing:-.01em;color:var(--text-primary);margin-bottom:1.25rem;}
.article-meta{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem 1.25rem;color:var(--text-muted);font-size:.85rem;font-weight:500;}
.article-meta .am{display:inline-flex;align-items:center;gap:.4rem;}
.article-meta svg{width:14px;height:14px;}
.article-meta .am-sep{opacity:.4;}
.article-figure{max-width:980px;margin:2.5rem auto 0;}
.article-figure .blog-thumb{height:300px;border-radius:var(--r-xl);}
.article-figure .blog-thumb .motif{width:240px;height:240px;}
.article-figure .blog-thumb .kicker{font-size:2.2rem;}
.article-body{padding:3rem 0 0;background:var(--bg-primary);}
.prose{max-width:720px;margin:0 auto;}
.prose>p{font-size:1.0625rem;line-height:1.8;color:var(--text-secondary);font-weight:300;margin-bottom:1.3rem;}
.prose h2{font-family:var(--font-display);font-size:clamp(1.6rem,3vw,2rem);font-weight:700;color:var(--text-primary);line-height:1.2;margin:2.75rem 0 1rem;}
.prose h3{font-family:var(--font-display);font-size:1.4rem;font-weight:700;color:var(--text-primary);margin:1.9rem 0 .75rem;}
.prose h2:first-child,.prose h3:first-child,.prose>p:first-child{margin-top:0;}
.prose ul,.prose ol{margin:0 0 1.3rem 1.3rem;color:var(--text-secondary);font-weight:300;line-height:1.8;font-size:1.0625rem;}
.prose li{margin-bottom:.5rem;}
.prose a{color:var(--accent);text-decoration:underline;text-underline-offset:2px;transition:color var(--dur) var(--ease);}
.prose a:hover{color:var(--accent-deep);}
.prose strong{color:var(--text-primary);font-weight:600;}
.prose blockquote{border-left:3px solid var(--accent);background:var(--grad-accent-soft);padding:1rem 1.25rem;margin:1.75rem 0;border-radius:0 var(--r-md) var(--r-md) 0;font-style:italic;color:var(--text-secondary);}
.prose img{width:100%;border-radius:var(--r-lg);margin:1.75rem 0;box-shadow:var(--shadow-md);}
.prose table{width:100%;border-collapse:collapse;margin:1.5rem 0;font-size:.95rem;}
.prose th,.prose td{text-align:left;padding:.75rem 1rem;border-bottom:1px solid var(--border-light);}
.prose th{font-weight:600;color:var(--text-primary);background:var(--bg-section);}
.prose td{color:var(--text-secondary);font-weight:300;}
.article-faq{max-width:820px;margin:3.5rem auto 0;}
.article-faq>.eyebrow{display:block;text-align:center;margin-bottom:.5rem;}
.article-faq>h2{font-family:var(--font-display);font-size:clamp(1.6rem,3vw,2rem);font-weight:700;text-align:center;margin-bottom:2rem;}
@media (max-width:1024px){.blog-teaser-head{align-items:flex-start;flex-direction:column;} .blog-teaser-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:768px){.blog-teaser-grid{grid-template-columns:1fr;max-width:520px;margin:0 auto;}}

/* ---------- ESPACIADO DE SECCIONES ---------- */
.section{padding:7rem 0;position:relative;overflow:hidden;}
.section--white{background:var(--bg-white);} .section--primary{background:var(--bg-primary);}
.section>.container{position:relative;z-index:1;}

/* ---------- RESPONSIVE ---------- */
@media (max-width:1024px){
  .hero-grid{gap:3rem;} .hero--page .hero-grid{grid-template-columns:1fr;}
  .why-grid,.anatomy-grid,.results-grid,.locate-grid,.loc2-grid{grid-template-columns:1fr;gap:2.5rem;}
  .services-bento{grid-template-columns:1fr 1fr;grid-template-areas:"feat feat" "orto blanq";} .svc-feat{min-height:auto;}
  .services-grid,.why-cards,.pricing-grid,.testi-grid,.ilinks-grid{grid-template-columns:1fr 1fr;}
  .proc2-track{grid-template-columns:repeat(2,1fr);gap:2.5rem 1.5rem;} .proc2-line{display:none;}
  .footer-grid{grid-template-columns:1fr 1fr;gap:2.5rem;}
}
@media (max-width:768px){
  .nav-links,.nav-right{display:none;} .hamburger{display:flex;}
  .hero-grid{grid-template-columns:1fr;text-align:center;} .hero--home .hero-grid{padding:2.5rem 0 5rem;}
  .hero--page .hero-grid{text-align:left;}
  .hero-eyebrow,.hero--home .hero-ctas,.hero-stats{justify-content:center;}
  .hero-visual{order:-1;max-width:400px;margin:0 auto;}
  .overlap-strip{grid-template-columns:1fr 1fr;padding:1.5rem;}
  .services-bento{grid-template-columns:1fr;grid-template-areas:"feat" "orto" "blanq";}
  .services-grid,.why-cards,.pricing-grid,.testi-grid,.ilinks-grid,.loc2-grid{grid-template-columns:1fr;max-width:480px;margin-left:auto;margin-right:auto;}
  .price-card.feat{transform:none;} .price-card.feat:hover{transform:translateY(-5px);}
  .proc2-track{grid-template-columns:1fr;max-width:420px;margin:0 auto;gap:2.25rem;}
  .gallery-grid{grid-template-columns:1fr 1fr;grid-auto-rows:150px;grid-template-areas:"feat feat" "t1 t2" "t3 t4";}
  .why-visual{order:-1;max-width:380px;margin:0 auto;} .why-frame{aspect-ratio:4/3;min-height:260px;}
  .cta-inner{grid-template-columns:1fr;gap:2.5rem;text-align:center;} .cta-p{max-width:100%;} .cta-box{width:100%;}
  .footer-grid{grid-template-columns:1fr;gap:2rem;} .footer-bottom{flex-direction:column;gap:.625rem;text-align:center;}
}
@media (max-width:480px){
  .container{padding:0 1.25rem;} .nav{padding:.65rem .9rem 0;} .mobile-drawer{left:.9rem;right:.9rem;top:78px;}
  .hero-ctas{flex-direction:column;align-items:center;} .hero-ctas .btn{width:100%;justify-content:center;}
  .hero-stats{flex-wrap:wrap;gap:1.25rem;} .results-stats{grid-template-columns:1fr;}
  .hero-card,.hero-card-1{left:0;} .hero-rate,.hero-card-2{right:0;}
}
@media (prefers-reduced-motion:reduce){
  .glow.is-anim,.glow.is-anim-2,.badge-open .dot,.hero-open .dot,.loc2-open .dot{animation:none!important;}
  .btn-gold::after,.btn-accent::after{transition:none;}
  .reveal{opacity:1!important;transform:none!important;transition:none!important;}
  .proc2-line{transition:none!important;transform:none!important;}
  *{scroll-behavior:auto;}
}

/* ---------- Mobile premium: ritmo más ajustado + carruseles con swipe (solo ≤768px) ---------- */
@media (max-width:768px){
  /* Padding de sección reducido en mobile (desktop usa 7rem) */
  .section{padding:4.5rem 0;}
  .blog-teaser{padding:4.5rem 0;}
  .bloghub{padding:5.5rem 0 4rem;}

  /* Servicios, testimonios y blog → riel horizontal con scroll-snap y "peek" */
  .services-bento,.testi-grid,.blog-teaser-grid{
    display:flex;grid-template-columns:none;grid-template-areas:none;
    overflow-x:auto;overflow-y:visible;
    scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;
    gap:1rem;max-width:none;
    margin:0 -1.25rem;padding:.25rem 1.25rem 1.25rem;
    scrollbar-width:none;
  }
  .services-bento::-webkit-scrollbar,
  .testi-grid::-webkit-scrollbar,
  .blog-teaser-grid::-webkit-scrollbar{display:none;}
  .services-bento>*,
  .testi-grid>.testi-card,
  .blog-teaser-grid>.blog-teaser-card{
    flex:0 0 84%;scroll-snap-align:center;grid-area:auto;
  }
  .svc-feat{min-height:auto;}
  /* En el riel las cards siempre visibles (no quedan ocultas por .reveal) */
  .js .services-bento>.reveal,
  .js .testi-grid>.reveal,
  .js .blog-teaser-grid>.reveal{opacity:1;transform:none;}
}
