/* ============================================================
   Base compartida — Dra. Carmen Álvarez
   Variables, reset, textura, cabecera y pie.
   La cargan las páginas legales y las de áreas.
   ============================================================ */
:root{
  --cream:#FDF9F6; --cream-2:#F7EEE8; --blush:#F5DEDA; --blush-2:#EFCEC8;
  --rose:#D89A91; --rose-deep:#C67F76; --coral:#E17E7C;
  --petrol:#0E2E3B; --petrol-2:#1D4152; --ink:#14333F; --ink-soft:#47616D;
  --hairline:rgba(20,51,63,.14); --hairline-rose:rgba(198,127,118,.35);
  --serif:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  --sans:"Jost","Avenir Next","Helvetica Neue",sans-serif;
  --ease-out:cubic-bezier(.22,1,.36,1);
  --ease-soft:cubic-bezier(.45,0,.15,1);
  --pad:clamp(1.25rem,5vw,5rem);
  --maxw:1280px;
}
*,*::before,*::after{ margin:0; padding:0; box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  background:var(--cream); color:var(--ink);
  font-family:var(--sans); font-weight:300;
  font-size:clamp(1rem,.95rem + .3vw,1.08rem); line-height:1.75;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
::selection{ background:var(--blush-2); color:var(--petrol); }
img{ max-width:100%; display:block; }
a{ color:inherit; }

.grain{
  position:fixed; inset:-50%; z-index:120; pointer-events:none;
  opacity:.05; mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 300 300' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.7' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ---------- cabecera ---------- */
.nav{
  position:sticky; top:0; z-index:100;
  display:flex; align-items:center; justify-content:space-between;
  padding:.9rem var(--pad);
  background:rgba(253,249,246,.9); backdrop-filter:blur(14px);
  box-shadow:0 1px 0 var(--hairline);
}
.nav-brand{ display:flex; align-items:center; gap:.7rem; text-decoration:none; }
.nav-brand img{ width:38px; height:38px; object-fit:cover; }
.nav-brand span{
  font-family:var(--serif); font-size:1.12rem; color:var(--petrol);
  letter-spacing:.02em; white-space:nowrap;
}
.nav-links{ display:flex; gap:clamp(.9rem,2.2vw,2.1rem); list-style:none; align-items:center; }
.nav-links a{
  text-decoration:none; font-size:.75rem; letter-spacing:.2em; text-transform:uppercase;
  color:var(--ink-soft); font-weight:400; transition:color .3s; white-space:nowrap;
}
.nav-links a:hover, .nav-links a[aria-current]{ color:var(--rose-deep); }
.nav-cta{
  padding:.6rem 1.4rem; border:1px solid var(--rose-deep); border-radius:99px;
  color:var(--rose-deep) !important; transition:background .35s, color .35s;
}
.nav-cta:hover{ background:var(--rose-deep); color:var(--cream) !important; }
@media (max-width:860px){ .nav-links li.opt{ display:none; } }
@media (max-width:620px){
  .nav{ padding:.7rem 1.25rem; }
  .nav-brand span{ display:none; }
}

/* ---------- pie ---------- */
footer{ background:var(--petrol); color:rgba(253,249,246,.5); }
.foot{
  max-width:var(--maxw); margin:0 auto; padding:2.4rem var(--pad) 1rem;
  display:flex; flex-wrap:wrap; gap:1.2rem; align-items:center; justify-content:space-between;
  font-size:.78rem; letter-spacing:.12em;
}
.foot .brand{ font-family:var(--serif); font-size:1.05rem; color:var(--cream); letter-spacing:.04em; }
.foot-nav{
  display:flex; flex-wrap:wrap; gap:1.5rem;
  font-size:.68rem; letter-spacing:.2em; text-transform:uppercase;
}
.foot-nav a{ color:rgba(253,249,246,.7); text-decoration:none; transition:color .3s; }
.foot-nav a:hover{ color:var(--blush-2); }
.foot-legal{
  max-width:var(--maxw); margin:0 auto; padding:0 var(--pad) 1.2rem;
  display:flex; flex-wrap:wrap; gap:1.4rem; justify-content:center;
  font-size:.66rem; letter-spacing:.2em; text-transform:uppercase;
}
.foot-legal a, .foot-legal button{
  color:rgba(253,249,246,.62); text-decoration:none;
  background:none; border:none; padding:0; font:inherit; cursor:pointer;
  border-bottom:1px solid rgba(239,206,200,.2);
  transition:color .3s, border-color .3s;
}
.foot-legal a:hover, .foot-legal button:hover{ color:var(--blush-2); border-color:var(--blush-2); }
.foot-credit{
  max-width:var(--maxw); margin:0 auto; padding:0 var(--pad) 1.7rem;
  font-size:.66rem; letter-spacing:.18em; text-transform:uppercase;
  color:rgba(253,249,246,.32); text-align:center;
}
.foot-credit a{
  color:rgba(253,249,246,.55); text-decoration:none;
  border-bottom:1px solid rgba(239,206,200,.25);
  transition:color .3s, border-color .3s;
}
.foot-credit a:hover{ color:var(--blush-2); border-color:var(--blush-2); }

/* ---------- aparición al hacer scroll ---------- */
.rv{
  opacity:0; transform:translateY(26px);
  transition:opacity .9s var(--ease-soft), transform .9s var(--ease-out);
  transition-delay:var(--d,0s);
}
.rv.in{ opacity:1; transform:none; }

@media (prefers-reduced-motion:reduce){
  *{ transition-duration:.01ms !important; animation-duration:.01ms !important; }
  .rv{ opacity:1 !important; transform:none !important; }
  html{ scroll-behavior:auto; }
}
