:root{
  --rosa:#F3E3DA; --rosa-claro:#FAF1EC; --tinta:#221C1B; --vaquita:#E2777F;
  --vaquita-osc:#B9525B; --viejo:#7E625E; --blanco:#FFFCFA; --linea:#E4CFC5;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--blanco);color:var(--tinta);
  font-family:"Jost",system-ui,sans-serif;font-size:1.0625rem;line-height:1.6;
  -webkit-font-smoothing:antialiased}
a{color:inherit}
a:focus-visible,summary:focus-visible,.btn:focus-visible{outline:3px solid var(--vaquita);outline-offset:3px;border-radius:4px}
.envoltura{max-width:68rem;margin:0 auto;padding:0 1.25rem}

/* Portada */
.portada{background:var(--rosa);overflow:hidden}
.portada .envoltura{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);
  gap:3rem;align-items:center;min-height:min(88vh,44rem);padding-top:3rem;padding-bottom:3rem}
.sello{width:100%;height:auto;max-width:26rem;aspect-ratio:1;border-radius:50%;justify-self:center;
  object-fit:cover;clip-path:circle(47.5% at 50% 50%)}
.portada h1{font-weight:500;font-size:clamp(2.1rem,4.6vw,3.6rem);line-height:1.08;
  letter-spacing:-.015em;margin:0 0 1.25rem;max-width:16ch}
.portada p{color:var(--viejo);margin:0 0 2rem;max-width:34rem}
.acciones{display:flex;flex-wrap:wrap;gap:.75rem}
.btn{display:inline-flex;align-items:center;gap:.6rem;text-decoration:none;font-weight:500;
  padding:.9rem 1.5rem;border-radius:999px;border:1.5px solid var(--tinta);transition:background .2s,color .2s}
.btn-lleno{background:var(--tinta);color:var(--blanco)}
.btn-lleno:hover{background:var(--vaquita-osc);border-color:var(--vaquita-osc)}
.btn-borde:hover{background:var(--tinta);color:var(--blanco)}
.ubicacion{margin-top:2.25rem;font-size:.95rem;color:var(--viejo)}

/* Secciones */
section{padding:5rem 0}
h2{font-weight:500;font-size:clamp(1.7rem,3vw,2.3rem);letter-spacing:-.01em;margin:0 0 .75rem}
.bajada{color:var(--viejo);max-width:38rem;margin:0 0 2.5rem}

/* Tratamientos */
.cat{border-top:1px solid var(--linea)}
.cat:last-child{border-bottom:1px solid var(--linea)}
.cat summary{list-style:none;cursor:pointer;display:grid;
  grid-template-columns:1.1rem minmax(0,1fr) auto;column-gap:1rem;row-gap:.15rem;padding:1.35rem 0;align-items:baseline}
.cat summary::-webkit-details-marker{display:none}
.cat summary::before{content:"";grid-row:1 / span 2;width:.8rem;height:.8rem;border-radius:50%;
  background:var(--vaquita);align-self:center;transition:transform .25s}
.cat[open] summary::before{background:var(--tinta);transform:scale(.7)}
.cat-nombre{font-size:1.3rem;font-weight:500}
.cat-desc{grid-column:2;color:var(--viejo);font-size:.95rem}
.cat-desde{grid-column:3;grid-row:1 / span 2;align-self:center;color:var(--viejo);font-size:.95rem;white-space:nowrap}
.lista{list-style:none;margin:0 0 1.75rem;padding:0 0 0 2.1rem;columns:2 22rem;column-gap:3rem}
.lista li{break-inside:avoid;display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:1rem;
  padding:.55rem 0;border-bottom:1px dotted var(--linea);font-size:.97rem}
.dur{color:var(--viejo);white-space:nowrap}
.pre{white-space:nowrap;font-variant-numeric:tabular-nums;min-width:5.5rem;text-align:right}
.nota{font-size:.9rem;color:var(--viejo);margin-top:1.5rem}

/* Reservas */
.reservas{background:var(--rosa-claro)}
.pasos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2.5rem;margin:0;padding:0;list-style:none;counter-reset:p}
.pasos li{counter-increment:p}
.pasos li::before{content:counter(p);display:grid;place-items:center;width:2.4rem;height:2.4rem;border-radius:50%;
  background:var(--vaquita);color:var(--blanco);font-weight:500;margin-bottom:1rem}
.pasos h3{font-weight:500;font-size:1.15rem;margin:0 0 .4rem}
.pasos p{margin:0;color:var(--viejo)}

/* Contacto */
.contacto .envoltura{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:3rem}
.datos{margin:0;display:grid;grid-template-columns:auto minmax(0,1fr);gap:.8rem 1.5rem}
.datos dt{color:var(--viejo)}
.datos dd{margin:0}
.horarios{margin:0;padding:0;list-style:none}
.horarios li{display:flex;justify-content:space-between;gap:1rem;padding:.7rem 0;border-bottom:1px solid var(--linea)}
.horarios li span:last-child{font-variant-numeric:tabular-nums}

footer{background:var(--tinta);color:#E9DCD6;padding:2.5rem 0;font-size:.92rem}
footer .envoltura{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem}
footer a{color:#fff}

/* Privacidad */
.doc{max-width:44rem;padding:4rem 1.25rem 5rem;margin:0 auto}
.doc h1{font-weight:500;font-size:clamp(1.9rem,4vw,2.6rem);margin:0 0 .5rem}
.doc h2{font-size:1.3rem;margin:2.25rem 0 .5rem}
.doc .volver{display:inline-block;margin-bottom:2rem;color:var(--viejo)}

@media (max-width:52rem){
  .portada .envoltura{grid-template-columns:1fr;gap:2.25rem;min-height:0;padding-top:2.5rem}
  .sello{max-width:15rem}
  .pasos{grid-template-columns:1fr;gap:1.75rem}
  .contacto .envoltura{grid-template-columns:1fr}
  .cat summary{grid-template-columns:1.1rem minmax(0,1fr)}
  .cat-desde{grid-column:2;grid-row:auto}
  .lista{padding-left:0;columns:1}
  section{padding:3.5rem 0}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
