/*
  Plantilla de catálogo comercial — vertical dental (ficticio)
  Negocio: Clínica Dental Nervión · Estilo: clinical-minimal-mint
  Tokens de color importados de /styles/clinical-minimal-mint/tokens.css
  (ver style-notes.md en esa carpeta para el detalle de la extracción).
  El resto de reglas (tipografía, componentes, layout) es propio de este sitio.
*/

@import url('../../styles/clinical-minimal-mint/tokens.css');

*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:auto;} /* Lenis gestiona el smooth scroll */
body{
  background:var(--bg);
  color:var(--ink);
  font-family:'Poppins',sans-serif;
  font-size:1.0625rem;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
.wrap{max-width:1360px;margin:0 auto;padding-inline:1.25rem;}
@media(min-width:768px){.wrap{padding-inline:2.5rem;}}
@media(min-width:1024px){.wrap{padding-inline:4rem;}}

h1,h2,h3{
  font-family:-apple-system,BlinkMacSystemFont,'Poppins',sans-serif;
  font-weight:500;
  line-height:1.2;
  letter-spacing:0;
}
h1{font-size:clamp(2.25rem,5vw,3.75rem);}
h2{font-size:clamp(1.75rem,3.5vw,2.5rem);}
h3{font-size:1.375rem;}
p{color:var(--steel);}

.eyebrow{
  font-family:'Poppins',sans-serif;
  font-size:0.8125rem;letter-spacing:0.12em;text-transform:uppercase;
  font-weight:600;color:var(--steel);
}

/* Botones — esquinas rectas, uppercase, como en la referencia */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:0.5rem;
  padding:0.9375rem 1.875rem;
  border-radius:0;
  font-weight:600;font-size:0.9375rem;letter-spacing:0.06em;text-transform:uppercase;
  min-height:44px;border:1px solid transparent;cursor:pointer;
  transition:transform 0.25s ease, background 0.25s ease, opacity 0.25s ease;
}
.btn-primary{background:var(--accent);color:var(--ink);border-color:var(--accent);}
.btn-primary:hover{opacity:0.85;}
.btn-primary:active{transform:scale(0.98);}
.btn-dark{background:var(--dark);color:#fff;border-color:var(--dark);}
.btn-dark:hover{opacity:0.85;}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--ink);}
.btn-ghost:hover{background:var(--surface-alt);}

/* NAV — fixed. Por defecto (páginas con fondo claro arriba: servicios/equipo/contacto)
   arranca ya en su estado "sólido" (blanco + texto negro), porque un nav transparente
   con texto blanco sería invisible sobre un page-header claro.
   La variante .nav-hero (solo index.html, que tiene el hero oscuro) arranca transparente
   con texto blanco, y pasa a sólido/negro al añadir .nav-scrolled por JS a los 50px. */
nav{
  position:fixed;top:0;left:0;right:0;z-index:50;
  background:#FFFFFF;
  color:var(--ink);
  box-shadow:0 1px 0 var(--border);
  backdrop-filter:blur(6px);
  transition:background-color 0.3s ease, color 0.3s ease, box-shadow 0.3s ease;
}
nav.nav-hero{
  background:transparent;
  color:#FFFFFF;
  box-shadow:none;
  backdrop-filter:none;
}
nav.nav-hero.nav-scrolled{
  background:rgba(255,255,255,0.96);
  color:var(--ink);
  box-shadow:0 1px 0 var(--border);
  backdrop-filter:blur(6px);
}
.nav-inner{display:flex;align-items:center;justify-content:space-between;padding-block:1.375rem;}
.logo{display:flex;align-items:center;}
.logo img{width:200px;height:auto;display:block;}

/* Logo con crossfade — solo se usa en páginas con nav.nav-hero (hero oscuro).
   Ambas imágenes ocupan la misma celda de grid; se cruzan por opacity según
   .nav-scrolled, evitando el parpadeo de recarga que tendría cambiar el src.
   logo-light.png (718x672) y logo-dark.png (701x505) no comparten aspect
   ratio exacto, así que su alto real difiere a 200px de ancho (~187px vs
   ~144px) — align-items:center en el wrap las centra igual dentro de la fila. */
.logo-img-wrap{display:grid;align-items:center;}
.logo-img-wrap img{grid-area:1/1;width:200px;height:auto;display:block;transition:opacity 0.3s ease;}
.logo-img-wrap img.logo-dark{opacity:0;}
nav.nav-scrolled .logo-img-wrap img.logo-light{opacity:0;}
nav.nav-scrolled .logo-img-wrap img.logo-dark{opacity:1;}
.nav-links{display:none;gap:2.25rem;align-items:center;}
.nav-links a{font-size:0.8125rem;font-weight:600;letter-spacing:0.08em;text-transform:uppercase;color:inherit;transition:color 0.3s ease, opacity 0.25s ease;}
.nav-links a:hover{opacity:0.65;}
@media(min-width:900px){.nav-links{display:flex;}}
.nav-cta{display:none;}
@media(min-width:900px){.nav-cta{display:inline-flex;}}
.menu-btn{
  display:flex;align-items:center;justify-content:center;
  width:44px;height:44px;border:1px solid currentColor;background:transparent;color:inherit;
  transition:color 0.3s ease;
}
@media(min-width:900px){.menu-btn{display:none;}}
.mobile-menu{display:none;flex-direction:column;gap:0.25rem;padding:1rem 1.25rem 1.5rem;background:#fff;border-top:1px solid var(--border);}
.mobile-menu.open{display:flex;}
.mobile-menu a{padding:0.875rem 0.5rem;font-weight:600;text-transform:uppercase;font-size:0.8125rem;letter-spacing:0.06em;color:var(--ink);min-height:44px;display:flex;align-items:center;}

/* HERO — imagen de fondo con overlay oscuro + parallax (sustituye el <video> original) */
.hero{
  position:relative;
  min-height:100dvh;
  display:flex;align-items:center;justify-content:center;text-align:center;
  overflow:hidden;
  background:var(--dark);
}
.hero-bg{
  position:absolute;inset:-10% 0 0 0;height:120%;width:100%;
  object-fit:cover;z-index:0;opacity:0.55;
}
.hero-overlay{position:absolute;inset:0;background:rgba(0,0,0,0.45);z-index:1;}
.hero-content{position:relative;z-index:2;max-width:760px;margin:0 auto;padding-inline:1.25rem;}
.hero .eyebrow{color:var(--accent);}
.hero h1{color:#fff;margin-block:1.25rem 1.25rem;}
.hero p{color:rgba(255,255,255,0.85);font-size:1.25rem;max-width:52ch;margin:0 auto 2rem;}
.hero-cta-row{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;align-items:center;}

/* Secciones — full-bleed apiladas, alternando fondo blanco / gris claro, como la referencia */
section{padding-block:clamp(3.5rem,8vw,6.5rem);}
.section-alt{background:var(--surface-alt);}
.section-dark{background:var(--dark);color:#fff;}
.section-dark p{color:rgba(255,255,255,0.7);}
.section-head{max-width:640px;margin-bottom:3rem;}
.section-head.center{margin-inline:auto;text-align:center;}
.section-head h2{margin-block:0.75rem 0.75rem;}

.page-header{padding-block:clamp(7.5rem,14vw,10rem) 2.5rem;text-align:center;background:var(--surface-alt);}
.page-header h1{margin-block:1rem 0.75rem;}
.page-header p{max-width:52ch;margin:0 auto;}

/* Lista de servicios — grid plano de 3 columnas, esquinas rectas (como el original) */
.services-grid{display:grid;grid-template-columns:1fr;gap:1px;background:var(--border);border:1px solid var(--border);}
@media(min-width:768px){.services-grid{grid-template-columns:repeat(3,1fr);}}
.service-item{
  background:#fff;padding:2.25rem 1.75rem;
  display:flex;flex-direction:column;gap:0.875rem;
}
.service-icon{
  width:44px;height:44px;background:var(--accent);color:var(--ink);
  display:flex;align-items:center;justify-content:center;
}
.service-item h3{font-size:1.125rem;}
.service-item p{font-size:0.9375rem;}

/* Galería — grid de imágenes, esquinas rectas */
.gallery-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0.5rem;}
@media(min-width:768px){.gallery-grid{grid-template-columns:repeat(4,1fr);}}
.gallery-grid img{width:100%;aspect-ratio:1/1;object-fit:cover;}

/* Financiamiento / credenciales */
.badge-row{display:flex;flex-wrap:wrap;gap:0.75rem;justify-content:center;}
.badge{
  border:1px solid var(--ink);background:transparent;
  padding:0.625rem 1.125rem;font-size:0.75rem;letter-spacing:0.06em;text-transform:uppercase;font-weight:600;
}

/* ZIG ZAG — para equipo/diferenciadores */
.zigzag{display:flex;flex-direction:column;gap:0;}
.zz-row{display:grid;grid-template-columns:1fr;align-items:center;border-top:1px solid var(--border);}
.zz-row:last-child{border-bottom:1px solid var(--border);}
@media(min-width:900px){
  .zz-row{grid-template-columns:1fr 1fr;min-height:420px;}
  .zz-row.reverse .zz-visual{order:2;}
  .zz-row.reverse .zz-text{order:1;}
}
.zz-visual{height:100%;min-height:280px;}
.zz-visual img{width:100%;height:100%;min-height:280px;object-fit:cover;}
.zz-text{padding:2.5rem;}
.zz-text .num{font-size:0.75rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--steel);font-weight:600;}
.zz-text h3{margin-block:0.625rem 0.875rem;}
.zz-text p{max-width:46ch;}

/* TESTIMONIOS */
.testimonial-note{font-size:0.75rem;color:var(--steel);text-align:center;margin-bottom:2rem;letter-spacing:0.04em;text-transform:uppercase;}
.testimonials{display:grid;grid-template-columns:1fr;gap:1px;background:var(--border);border:1px solid var(--border);}
@media(min-width:768px){.testimonials{grid-template-columns:repeat(3,1fr);}}
.t-card{background:#fff;padding:2rem;display:flex;flex-direction:column;gap:1rem;}
.t-stars{color:var(--dark);letter-spacing:0.1em;}
.t-quote{font-size:0.9375rem;color:var(--ink);}
.t-meta{display:flex;align-items:center;gap:0.75rem;margin-top:auto;}
.t-avatar{width:36px;height:36px;background:var(--accent);color:var(--ink);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:0.75rem;}
.t-name{font-weight:600;font-size:0.875rem;}
.t-role{font-size:0.75rem;color:var(--steel);}

/* CONTACTO */
.location{display:grid;grid-template-columns:1fr;gap:1px;background:var(--border);border:1px solid var(--border);}
@media(min-width:900px){.location{grid-template-columns:1fr 1.1fr;}}
.loc-card{background:#fff;padding:2.25rem;display:flex;flex-direction:column;gap:1.5rem;}
.loc-item{display:flex;gap:0.875rem;align-items:flex-start;}
.loc-item .service-icon{width:38px;height:38px;flex-shrink:0;}
.loc-item strong{display:block;font-size:0.9375rem;margin-bottom:0.125rem;}
.loc-item span{color:var(--steel);font-size:0.9375rem;}
.hours-table{font-size:0.875rem;display:flex;flex-direction:column;gap:0.5rem;width:100%;}
.hours-row{display:flex;justify-content:space-between;color:var(--steel);}
.hours-row span:last-child{color:var(--ink);font-weight:500;}
.map-frame{overflow:hidden;background:#fff;min-height:340px;}
.map-frame iframe{width:100%;height:100%;min-height:340px;border:0;display:block;}

.contact-form{display:flex;flex-direction:column;gap:1.125rem;}
.form-group{display:flex;flex-direction:column;gap:0.5rem;}
.form-group label{font-size:0.75rem;font-weight:600;text-transform:uppercase;letter-spacing:0.06em;}
.form-group input, .form-group textarea{
  border:1px solid var(--border);border-radius:0;padding:0.875rem;
  font-family:inherit;font-size:0.9375rem;background:#fff;color:var(--ink);min-height:44px;
}
.form-group textarea{min-height:120px;resize:vertical;}
.form-note{font-size:0.75rem;color:var(--steel);}

/* CTA final */
.final-cta{
  background:var(--dark);color:#fff;padding:clamp(3rem,7vw,5rem) 2rem;
  text-align:center;display:flex;flex-direction:column;align-items:center;gap:1.5rem;
}
.final-cta h2{color:#fff;}
.final-cta p{color:rgba(255,255,255,0.7);max-width:46ch;}
.final-cta-actions{display:flex;flex-wrap:wrap;gap:0.875rem;justify-content:center;}

/* FOOTER */
footer{border-top:1px solid var(--border);padding-block:3rem;background:var(--surface-alt);}
.footer-grid{display:grid;grid-template-columns:1fr;gap:2rem;margin-bottom:1.75rem;}
@media(min-width:768px){.footer-grid{grid-template-columns:1.4fr 1fr 1fr;}}
.footer-grid h4{font-size:0.75rem;text-transform:uppercase;letter-spacing:0.08em;color:var(--steel);margin-bottom:0.875rem;font-weight:600;}
.footer-grid ul{list-style:none;display:flex;flex-direction:column;gap:0.625rem;}
.footer-grid a{color:var(--steel);font-size:0.9375rem;}
.footer-grid a:hover{color:var(--ink);}
.footer-bottom{display:flex;flex-direction:column;gap:0.75rem;padding-top:1.5rem;border-top:1px solid var(--border);font-size:0.75rem;color:var(--steel);}
@media(min-width:768px){.footer-bottom{flex-direction:row;justify-content:space-between;}}

[data-fade-up], [data-zz-row], [data-service-item]{will-change:transform,opacity;}
