/*
  Plantilla de catálogo comercial — vertical dental infantil/pediátrico (ficticio)
  Negocio: Sonrisitas · Estilo: playful-mono-pill
  Tokens de color importados de /styles/playful-mono-pill/tokens.css
  (ver style-notes.md en esa carpeta para el detalle de la extracción).
  El resto de reglas (tipografía, componentes, layout, marquee) es propio de este sitio.
*/

@import url('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:'Work Sans',sans-serif;
  font-size:1rem;
  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:'Capriola',sans-serif;
  font-weight:400;
  line-height:1.15;
  letter-spacing:-0.02em;
}
h1{font-size:clamp(2.25rem,5vw,3.75rem);}
h2{font-size:clamp(1.75rem,3.5vw,2.75rem);}
h3{font-size:1.375rem;}
p{color:var(--steel);}

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

/* Botones — píldora completa, como en la referencia */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:0.5rem;
  padding:1rem 1.875rem;
  border-radius:300px;
  font-weight:600;font-size:0.9375rem;letter-spacing:0.04em;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(--ink);color:#fff;border-color:var(--ink);}
.btn-primary:hover{opacity:0.85;}
.btn-primary:active{transform:scale(0.97);}
.btn-secondary{background:var(--accent);color:var(--ink);border-color:var(--accent);}
.btn-secondary:hover{opacity:0.8;}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--ink);}
.btn-ghost:hover{background:var(--accent);}

/* NAV — mismo patrón que clinical-minimal-mint: sólido por defecto,
   transparente/blanco solo sobre el hero (clase .nav-hero) */
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.25rem;}
.logo{font-family:'Capriola',sans-serif;font-weight:400;font-size:1.1875rem;display:flex;align-items:center;gap:0.625rem;color:inherit;transition:color 0.3s ease;}
.logo-mark{
  width:34px;height:34px;border-radius:50%;background:var(--ink);color:#fff;
  display:flex;align-items:center;justify-content:center;
  font-family:'Capriola',sans-serif;font-size:0.9375rem;
}
.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;font-family:'Work Sans',sans-serif;}
.nav-links a:hover{opacity:0.6;}
@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-radius:50%;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 + marquee ondulado + parallax */
.hero{
  position:relative;
  min-height:100dvh;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:clamp(1.5rem,4vw,2.5rem);
  text-align:center;
  overflow:hidden;
  background:var(--dark);
  padding-block:clamp(6rem,14vw,8rem) clamp(3rem,8vw,4rem);
}
.hero-bg{
  position:absolute;inset:-10% 0 0 0;height:120%;width:100%;
  object-fit:cover;z-index:0;opacity:0.5;
}
.hero-overlay{position:absolute;inset:0;background:rgba(0,0,0,0.4);z-index:1;}
.hero-marquee{position:relative;z-index:2;width:100%;max-width:1400px;padding-inline:0.5rem;}
.hero-marquee svg{width:100%;height:auto;display:block;overflow:visible;}
.marquee-text{font-family:'Capriola',sans-serif;fill:#ffffff;font-size:64px;opacity:0.7;}
@media(max-width:640px){.marquee-text{font-size:48px;}}
.hero-content{position:relative;z-index:2;max-width:640px;margin:0 auto;padding-inline:1.25rem;}
.hero .eyebrow{color:rgba(255,255,255,0.75);}
.hero p{color:rgba(255,255,255,0.85);font-size:1.125rem;max-width:48ch;margin:1rem auto 1.75rem;}
.hero-cta-row{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;align-items:center;}

/* Secciones — full-bleed, alternando blanco/negro/gris, como la referencia */
section{padding-block:clamp(3.5rem,8vw,6.5rem);}
.section-alt{background:var(--surface);}
.section-dark{background:var(--dark);color:#fff;}
.section-dark h2, .section-dark h3{color:#fff;}
.section-dark p{color:rgba(255,255,255,0.7);}
.section-dark .eyebrow{color:rgba(255,255,255,0.6);}
.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);}
.page-header h1{margin-block:1rem 0.75rem;}
.page-header p{max-width:52ch;margin:0 auto;}

/* Servicios — grid de tarjetas, esquinas rectas en imagen/icono, botón pill */
.services-grid{display:grid;grid-template-columns:1fr;gap:1.25rem;}
@media(min-width:768px){.services-grid{grid-template-columns:repeat(3,1fr);}}
.service-item{
  background:#fff;border:1px solid var(--border);
  padding:2rem 1.75rem;
  display:flex;flex-direction:column;gap:0.875rem;
}
.service-icon{
  width:48px;height:48px;border-radius:50%;background:var(--accent);color:var(--ink);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.service-item h3{font-size:1.125rem;}
.service-item p{font-size:0.9375rem;}

/* Galería */
.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;}

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

/* ZIG ZAG — 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:400px;}
  .zz-row.reverse .zz-visual{order:2;}
  .zz-row.reverse .zz-text{order:1;}
}
.zz-visual{height:100%;min-height:260px;}
.zz-visual img{width:100%;height:100%;min-height:260px;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:1.25rem;}
@media(min-width:768px){.testimonials{grid-template-columns:repeat(3,1fr);}}
.t-card{background:#fff;border:1px solid var(--border);padding:2rem;display:flex;flex-direction:column;gap:1rem;}
.t-stars{color:var(--ink);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;border-radius:50%;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:1.25rem;}
@media(min-width:900px){.location{grid-template-columns:1fr 1.1fr;}}
.loc-card{background:#fff;border:1px solid var(--border);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:40px;height:40px;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);gap:1rem;}
.hours-row span:last-child{color:var(--ink);font-weight:500;text-align:right;}
.map-frame{overflow:hidden;background:#fff;min-height:340px;border:1px solid var(--border);}
.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.75rem;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);}
.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;}
