/* =========================================================
   Clínica Dental Alborada — hoja de estilos
   Paleta: oro bruñido, tinta cálida, hueso y gris piedra
   ========================================================= */

:root{
  --oro:#B0873B;
  --oro-claro:#D9C08A;
  --oro-oscuro:#8A6A2B;
  --tinta:#211F1B;
  --tinta-suave:#3A372F;
  --hueso:#F5F2EC;
  --piedra:#E4E0D8;
  --texto:#4C483F;
  --blanco:#FFFFFF;

  --ancho:1180px;
  --radio:2px;
  --transicion:.25s ease;
}

*,*::before,*::after{box-sizing:border-box}

html{scroll-behavior:smooth;scroll-padding-top:56px}

body{
  margin:0;
  font-family:"Jost",system-ui,-apple-system,"Segoe UI",sans-serif;
  font-weight:300;
  font-size:16.5px;
  line-height:1.75;
  color:var(--texto);
  background:var(--blanco);
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3,h4{font-family:"Marcellus",Georgia,serif;font-weight:400;line-height:1.2;margin:0 0 .6em}
p{margin:0 0 1.1em;max-width:62ch}
a{color:inherit}
img{max-width:100%;display:block}

:focus-visible{outline:2px solid var(--oro);outline-offset:3px}

/* ---------- Menú ---------- */
.barra{
  position:fixed;top:0;left:0;right:0;z-index:60;
  background:rgba(33,31,27,.92);
  backdrop-filter:blur(6px);
  border-bottom:1px solid rgba(217,192,138,.22);
}
.nav{
  max-width:var(--ancho);
  margin:0 auto;
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
}
.nav__link{
  font-size:11px;
  letter-spacing:.16em;
  text-transform:uppercase;
  text-decoration:none;
  color:#DCD7CC;
  padding:19px 20px;
  transition:background var(--transicion),color var(--transicion);
}
.nav__link:hover{color:var(--blanco);background:rgba(176,135,59,.35)}
.nav__link.is-activa{background:var(--oro);color:#1B1915}

.nav__toggle{
  display:none;
  position:absolute;top:8px;right:14px;
  width:40px;height:38px;
  background:none;border:0;cursor:pointer;
  padding:9px 8px;
}
.nav__toggle span{display:block;height:1.5px;background:var(--oro-claro);margin:5px 0;transition:var(--transicion)}
.nav__toggle.is-abierto span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.nav__toggle.is-abierto span:nth-child(2){opacity:0}
.nav__toggle.is-abierto span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}

.nav__movil{display:none;flex-direction:column;background:rgba(33,31,27,.98);border-top:1px solid rgba(217,192,138,.18)}
.nav__movil a{
  padding:14px 22px;text-decoration:none;color:#DCD7CC;
  font-size:12px;letter-spacing:.14em;text-transform:uppercase;
  border-bottom:1px solid rgba(255,255,255,.06);
}

/* ---------- Placeholders de imagen ---------- */
.ph{
  position:relative;
  background:
    repeating-linear-gradient(45deg,rgba(176,135,59,.07) 0 12px,transparent 12px 24px),
    var(--piedra);
  border:1px dashed rgba(138,106,43,.55);
  border-radius:var(--radio);
  min-height:220px;
  display:flex;align-items:center;justify-content:center;
}
.ph::after{
  content:attr(data-ph);
  font-size:11.5px;letter-spacing:.09em;text-transform:uppercase;
  color:var(--oro-oscuro);
  text-align:center;
  max-width:70%;
  line-height:1.6;
}

.ph--alta{min-height:560px;height:100%}
.ph--retrato{min-height:620px;height:100%}
.ph--icono{width:74px;height:74px;min-height:0;border-radius:50%;margin:0 auto 18px;background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.4)}
.ph--icono::after{font-size:9px;color:rgba(255,255,255,.75)}
.ph--mapa{min-height:420px;border-left:0;border-right:0}
.ph--logo{width:140px;height:140px;min-height:0;border-radius:50%;margin:28px auto 26px;background:rgba(255,255,255,.08);border-color:rgba(217,192,138,.8)}
.ph--logo::after{font-size:9.5px;color:var(--oro-claro)}
.ph--logo-pie{width:110px;height:110px;min-height:0;border-radius:50%;background:rgba(255,255,255,.05);border-color:rgba(217,192,138,.5);margin-bottom:18px}
.ph--logo-pie::after{font-size:9px;color:rgba(217,192,138,.8)}

/* ---------- Hero ---------- */
.hero{
  position:relative;
  min-height:84vh;
  display:flex;align-items:center;justify-content:center;
  padding:130px 22px 90px;
  overflow:hidden;
}
.ph--hero{position:absolute;inset:0;border:0;border-radius:0}
.ph--hero::after{color:rgba(255,255,255,.55);font-size:12px}
.hero__velo{position:absolute;inset:0;background:linear-gradient(180deg,rgba(33,31,27,.72),rgba(33,31,27,.55) 45%,rgba(33,31,27,.82))}
.hero__cuerpo{position:relative;z-index:2;text-align:center;color:var(--blanco);max-width:720px}
.hero h1{font-size:clamp(2.1rem,5vw,3.5rem);margin-bottom:.35em}
.hero__bajada{margin:0 auto;color:#EAE4D8;font-size:1.05rem;max-width:46ch}

/* ---------- Botones y enlaces ---------- */
.boton{
  display:inline-block;
  font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;
  text-decoration:none;padding:15px 38px;border-radius:var(--radio);
  transition:var(--transicion);
}
.boton--oro{background:var(--oro);color:#1B1915;border:1px solid var(--oro)}
.boton--oro:hover{background:transparent;color:var(--oro-claro);border-color:var(--oro-claro)}
.boton--linea{border:1px solid var(--oro);color:var(--oro-oscuro)}
.boton--linea:hover{background:var(--oro);color:var(--blanco)}

.enlace-oro{
  display:inline-block;margin-top:6px;
  font-size:12px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--oro-oscuro);text-decoration:none;
  border-bottom:1px solid var(--oro-claro);padding-bottom:4px;
}
.enlace-oro:hover{color:var(--oro)}

/* ---------- Secciones ---------- */
.seccion{padding:96px 22px}
.seccion--hueso{background:var(--hueso)}
.seccion--blanca{background:var(--blanco)}
.seccion--gris{background:var(--piedra)}

.rejilla{max-width:var(--ancho);margin:0 auto;display:grid;gap:56px;align-items:center}
.rejilla--2{grid-template-columns:1fr 1fr}
.rejilla--3{grid-template-columns:repeat(3,1fr);gap:44px;align-items:start}
.rejilla--pegada{gap:0}
.rejilla--pegada .texto{padding:0 48px}

.titulo-seccion{font-size:clamp(1.6rem,2.8vw,2.3rem);color:var(--oro-oscuro)}
.ante{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--oro);margin-bottom:10px}
.texto--con-aire{padding:56px 48px}

/* ---------- Acordeón de tratamientos ---------- */
.lista-acordeon{border-top:1px solid rgba(176,135,59,.3);margin-top:26px}
.acordeon{border-bottom:1px solid rgba(176,135,59,.3)}
.acordeon__cab{
  width:100%;text-align:left;background:none;border:0;cursor:pointer;
  font-family:inherit;font-size:13px;letter-spacing:.09em;text-transform:uppercase;
  color:var(--tinta-suave);padding:17px 34px 17px 4px;
  position:relative;transition:color var(--transicion);
}
.acordeon__cab::after{
  content:"+";position:absolute;right:6px;top:50%;transform:translateY(-50%);
  color:var(--oro);font-size:18px;line-height:1;
}
.acordeon__cab:hover{color:var(--oro-oscuro)}
.acordeon.is-abierto .acordeon__cab{color:var(--oro-oscuro)}
.acordeon.is-abierto .acordeon__cab::after{content:"−"}
.acordeon__cuerpo{max-height:0;overflow:hidden;transition:max-height .32s ease}
.acordeon__cuerpo p{padding:0 30px 18px 4px;font-size:15.5px;margin:0}

/* ---------- Razones ---------- */
.lista-razones{list-style:none;padding:0;margin:0 0 30px}
.lista-razones li{padding:11px 0 11px 26px;position:relative;border-bottom:1px solid rgba(255,255,255,.55);font-size:15.5px}
.lista-razones li::before{content:"";position:absolute;left:0;top:19px;width:9px;height:9px;border:1px solid var(--oro);transform:rotate(45deg)}

/* ---------- Banda dorada ---------- */
.banda{
  background:linear-gradient(135deg,#8A6A2B 0%,#B0873B 48%,#7E5F25 100%);
  color:#FBF7EE;text-align:center;
}
.banda__ante{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.7);margin-bottom:8px}
.banda__titulo{font-size:clamp(1.7rem,3vw,2.5rem);color:var(--blanco);margin-bottom:54px}
.carta h3{font-size:1.15rem;color:var(--blanco);letter-spacing:.04em}
.carta p{color:rgba(255,255,255,.85);font-size:15px;margin:0 auto;max-width:34ch}

/* ---------- Currículum de la doctora ---------- */
.lista-curriculum{list-style:none;padding:0;margin:0 0 26px;column-gap:0}
.lista-curriculum li{
  position:relative;padding:9px 0 9px 22px;font-size:15px;
  border-bottom:1px solid rgba(176,135,59,.2);
}
.lista-curriculum li::before{content:"";position:absolute;left:2px;top:19px;width:10px;height:1px;background:var(--oro)}
.firma{font-size:13px;letter-spacing:.06em;color:var(--oro-oscuro)}

/* ---------- Mapa ---------- */
.mapa{background:var(--piedra)}

/* ---------- Pie ---------- */
.pie{background:var(--tinta);color:#CFC9BC;padding:72px 22px 30px}
.pie__rejilla{max-width:var(--ancho);margin:0 auto;display:grid;grid-template-columns:1.1fr 1fr 1fr 1fr;gap:44px}
.pie h4{color:var(--oro-claro);font-size:14px;letter-spacing:.08em;margin-bottom:14px}
.pie p{font-size:14.5px;line-height:1.9;margin:0;color:#B9B3A6}
.pie a{color:#B9B3A6;text-decoration:none}
.pie a:hover{color:var(--oro-claro)}
.redes{display:flex;gap:10px}
.redes a{
  width:34px;height:34px;display:grid;place-items:center;
  border:1px solid rgba(217,192,138,.4);border-radius:50%;
  font-size:11.5px;color:var(--oro-claro);text-decoration:none;transition:var(--transicion);
}
.redes a:hover{background:var(--oro);color:#1B1915;border-color:var(--oro)}
.pie__base{
  max-width:var(--ancho);margin:54px auto 0;padding-top:20px;
  border-top:1px solid rgba(255,255,255,.08);
  font-size:12.5px;color:#8C877C;text-align:center;
}

/* ---------- WhatsApp flotante ---------- */
.wa{
  position:fixed;left:20px;bottom:20px;z-index:70;
  width:54px;height:54px;border-radius:50%;
  background:#25D366;display:grid;place-items:center;
  box-shadow:0 6px 18px rgba(0,0,0,.25);
  transition:transform var(--transicion);
}
.wa svg{width:30px;height:30px;fill:#fff}
.wa:hover{transform:scale(1.07)}

/* ---------- Responsive ---------- */
@media (max-width:980px){
  .nav{display:none}
  .nav__toggle{display:block}
  .barra{min-height:54px}
  .nav__movil[hidden]{display:none}
  .nav__movil{display:flex}
  .rejilla--2,.rejilla--3{grid-template-columns:1fr}
  .rejilla--pegada{gap:0}
  .rejilla--pegada .texto,.texto--con-aire{padding:44px 0}
  .seccion{padding:64px 22px}
  .ph--alta,.ph--retrato{min-height:380px}
  .pie__rejilla{grid-template-columns:1fr 1fr}
}

@media (max-width:560px){
  .pie__rejilla{grid-template-columns:1fr;gap:34px}
  .hero{min-height:78vh;padding:110px 18px 70px}
  .ph--logo{width:112px;height:112px}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{transition:none!important;animation:none!important}
}
