:root {
  --cream: #FFF8F5;
  --warm-white: #FFFCFB;
  --sage: #C96A4A;
  --sage-light: #F9EDE8;
  --sage-dark: #7A2E47;
  --terra: #B85C78;
  --terra-light: #F9E8EE;
  --purple: #7A2E47;
  --purple-light: #F5E0E8;
  --purple-mid: #D4849C;
  --charcoal: #3D2B35;
  --gray: #9C7080;
  --border: rgba(200,106,120,0.18);
  --ff-display: 'Playfair Display', Georgia, serif;
  --ff-body: 'DM Sans', sans-serif;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { font-family: var(--ff-body); background: var(--cream); color: var(--charcoal); overflow-x: hidden; }

.page { display: none; }
.page.active { display: block; animation: fadein .3s ease both; }
@keyframes fadein { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:none; } }

/* ── NAV ── */
nav {
  position: fixed; top:0; left:0; right:0; z-index:100;
  height: 62px;
  background: rgba(250,247,242,.94); backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--border);
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 2.5rem;
}
.nav-logo { font-family: var(--ff-display); font-size:25px; font-weight:700; color:var(--sage-dark); cursor:pointer; letter-spacing:-.4px; display:inline-flex; align-items:center; gap:10px; }
.nav-logo-icon { height:42px; width:auto; display:block; }
.nav-logo em { font-style:normal; color:var(--purple-mid); }
.nav-logo span { color:var(--terra); }
.nav-links { display:flex; align-items:center; gap:.2rem; }
.nbtn { background:none; border:none; cursor:pointer; font-family:var(--ff-body); font-size:14px; color:var(--sage); padding:7px 13px; border-radius:100px; transition:color .2s, background .2s; font-weight:500; }
.nbtn:hover { color:var(--charcoal); background:var(--sage-light); }
.nbtn.sanit { color:var(--sage-dark); }
.nbtn.sanit:hover { background:var(--sage-light); color:var(--sage-dark); }
.nbtn.mental { color:var(--purple); }
.nbtn.mental:hover { background:var(--purple-light); color:var(--purple); }
.nbtn.cta { background:var(--terra); color:white; font-weight:500; }
.nbtn.cta:hover { background:#b05a38; }
.nav-back { display:none; align-items:center; gap:7px; background:var(--sage-light); border:1.5px solid var(--border); border-radius:100px; cursor:pointer; font-family:var(--ff-body); font-size:14px; font-weight:500; color:var(--sage-dark); transition:background .2s, color .2s; padding:7px 16px; }
.nav-back:hover { background:var(--sage); color:white; border-color:var(--sage); }
.nav-back svg { width:15px; height:15px; }

/* hamburger */
.ham { display:none; flex-direction:column; justify-content:center; gap:5px; width:38px; height:38px; background:none; border:none; cursor:pointer; padding:6px; border-radius:8px; transition:background .2s; }
.ham:hover { background:var(--sage-light); }
.ham span { display:block; height:1.5px; border-radius:2px; background:var(--charcoal); transition:transform .25s, opacity .2s; }
.ham.open span:nth-child(1) { transform:translateY(6.5px) rotate(45deg); }
.ham.open span:nth-child(2) { opacity:0; }
.ham.open span:nth-child(3) { transform:translateY(-6.5px) rotate(-45deg); }
.mob-menu { display:none; position:fixed; top:62px; left:0; right:0; z-index:99; background:rgba(250,247,242,.98); backdrop-filter:blur(14px); border-bottom:1px solid var(--border); flex-direction:column; padding:.5rem 1rem 1rem; animation:slidedown .2s ease both; }
.mob-menu.open { display:flex; }
@keyframes slidedown { from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none} }
.mob-menu button { background:none; border:none; cursor:pointer; font-family:var(--ff-body); font-size:16px; color:var(--charcoal); padding:13px 12px; text-align:left; border-radius:10px; transition:background .15s; width:100%; }
.mob-menu button:hover { background:var(--sage-light); }
.mob-menu .mob-sanit { color:var(--sage-dark); font-weight:500; }
.mob-menu .mob-mental { color:var(--purple); font-weight:500; }
.mob-menu .mob-cta { background:var(--terra); color:white; font-weight:500; text-align:center; margin-top:.4rem; border-radius:100px; }
.mob-menu .mob-cta:hover { background:#b05a38; }
.mob-divider { height:1px; background:var(--border); margin:.3rem 0; }

/* ── SHARED ── */
.btn { display:inline-flex; align-items:center; gap:8px; padding:12px 24px; border-radius:100px; font-size:15px; font-weight:500; font-family:var(--ff-body); cursor:pointer; border:none; transition:background .2s, transform .15s; text-decoration:none; }
.btn-terra { background:var(--terra); color:white; }
.btn-terra:hover { background:#b05a38; transform:translateY(-1px); }
.btn-sage { background:var(--purple-mid); color:white; }
.btn-sage:hover { background:var(--terra); transform:translateY(-1px); }
.btn-purple { background:var(--purple); color:white; }
.btn-purple:hover { background:#4a3a79; transform:translateY(-1px); }
.btn-outline { background:none; border:1.5px solid var(--border); color:var(--sage-dark); }
.btn-outline:hover { border-color:var(--sage); background:var(--sage-light); }

.label { font-size:11px; font-weight:500; letter-spacing:.13em; text-transform:uppercase; color:var(--terra); margin-bottom:.6rem; }
.label.sage { color:var(--sage-dark); }
.label.purple { color:var(--purple); }
.h1 { font-family:var(--ff-display); font-size:clamp(2rem,3.5vw,3rem); font-weight:700; line-height:1.15; letter-spacing:-.02em; color:var(--charcoal); }
.h2 { font-family:var(--ff-display); font-size:clamp(1.7rem,2.5vw,2.2rem); font-weight:700; line-height:1.18; letter-spacing:-.02em; color:var(--charcoal); margin-bottom:.7rem; }
.h3 { font-family:var(--ff-display); font-size:1.05rem; font-weight:700; color:var(--charcoal); margin-bottom:.4rem; }
.desc { font-size:16px; color:var(--gray); line-height:1.72; }
.see-more { display:inline-flex; align-items:center; gap:6px; background:none; border:1.5px solid var(--border); color:var(--sage-dark); padding:9px 18px; border-radius:100px; font-size:14px; font-weight:500; cursor:pointer; font-family:var(--ff-body); transition:all .2s; }
.see-more:hover { border-color:var(--sage); background:var(--sage-light); }
.see-more.purple { color:var(--purple); }
.see-more.purple:hover { border-color:var(--purple-mid); background:var(--purple-light); }
.see-more.mt { margin-top:1.3rem; }

/* ── LINE BADGE ── */
.line-badge { display:inline-flex; align-items:center; gap:7px; padding:5px 14px; border-radius:100px; font-size:11px; font-weight:500; letter-spacing:.08em; text-transform:uppercase; margin-bottom:1rem; }
.line-badge.sanit { background:var(--sage-light); color:var(--sage-dark); }
.line-badge.sanit::before { content:''; width:7px; height:7px; border-radius:50%; background:var(--sage); display:block; }
.line-badge.mental { background:var(--purple-light); color:var(--purple); }
.line-badge.mental::before { content:''; width:7px; height:7px; border-radius:50%; background:var(--purple); display:block; animation:blink 2s ease-in-out infinite; }
@keyframes blink { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.4;transform:scale(1.4)} }

/* ── SCROLL REVEAL (sutil, accesible) ── */
[data-reveal] {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1);
  will-change: opacity, transform;
}
[data-reveal="fade"] { transform: none; }
[data-reveal="left"] { transform: translateX(-22px); }
[data-reveal="right"] { transform: translateX(22px); }
[data-reveal="scale"] { transform: scale(.96); }
[data-reveal].is-visible {
  opacity: 1;
  transform: none;
}
/* Stagger para grupos de tarjetas */
[data-reveal-group] > * {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity .65s ease, transform .65s cubic-bezier(.2,.7,.2,1);
}
[data-reveal-group].is-visible > * { opacity: 1; transform: none; }
[data-reveal-group].is-visible > *:nth-child(1) { transition-delay: .00s; }
[data-reveal-group].is-visible > *:nth-child(2) { transition-delay: .08s; }
[data-reveal-group].is-visible > *:nth-child(3) { transition-delay: .16s; }
[data-reveal-group].is-visible > *:nth-child(4) { transition-delay: .24s; }
[data-reveal-group].is-visible > *:nth-child(5) { transition-delay: .32s; }
[data-reveal-group].is-visible > *:nth-child(6) { transition-delay: .40s; }
[data-reveal-group].is-visible > *:nth-child(7) { transition-delay: .48s; }
[data-reveal-group].is-visible > *:nth-child(8) { transition-delay: .56s; }

/* Respeto absoluto a quien prefiere menos movimiento (común en personas mayores
   o con sensibilidad vestibular). Mostramos todo de inmediato. */
@media (prefers-reduced-motion: reduce) {
  [data-reveal],
  [data-reveal-group] > * {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
  html { scroll-behavior: auto; }
}

/* ── HOME HERO ── */
.hero-photo {
  position: relative;
  min-height: calc(100vh - 62px);
  display: flex;
  align-items: center;
  overflow: visible;
  background: var(--sage-dark);
}
.hero-photo-img {
  position: absolute; inset: 0;
  background-size: cover; background-position: center 30%;
  width: 100%; height: 100%;
  filter: brightness(.92) saturate(1);
}
.hero-photo-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(105deg, rgba(61,20,30,.58) 0%, rgba(61,20,30,.28) 55%, rgba(61,20,30,.05) 100%);
}
.hero-content {
  position: relative; z-index: 1;
  max-width: 1180px; margin: 0 auto; width: 100%;
  padding: 120px 2.5rem 80px;
  display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: center;
}
.hero { min-height:calc(100vh - 62px); display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:center; max-width:1180px; margin:0 auto; padding:100px 2.5rem 70px; }
.hero-title { font-family:var(--ff-display); font-size:clamp(2.4rem,4vw,3.7rem); font-weight:700; line-height:1.1; letter-spacing:-.025em; margin-bottom:1.3rem; color: white; }
.hero-title em { font-style:normal; color:var(--purple); }
.hero-title span { color:var(--terra); }
.hero-desc { font-size:17px; color:rgba(255,255,255,.8); line-height:1.75; max-width:460px; margin-bottom:2rem; }
.hero-btns { display:flex; gap:.8rem; flex-wrap:wrap; align-items:center; }
.btn-hero { font-size:16px; padding:14px 30px; }
.hcard { background:white; border-radius:22px; padding:1.8rem; border:1px solid var(--border); box-shadow:0 6px 32px rgba(180,80,100,.08); }
.hcard-head { display:flex; align-items:center; gap:12px; margin-bottom:1.4rem; padding-bottom:1.4rem; border-bottom:1px solid var(--border); }
.avatar { width:46px; height:46px; border-radius:50%; background:linear-gradient(135deg,var(--sage-light),var(--sage)); display:flex; align-items:center; justify-content:center; font-family:var(--ff-display); font-size:17px; color:white; font-weight:700; flex-shrink:0; }

/* two-line preview in hero card */
.hcard-lines { display:grid; grid-template-columns:1fr 1fr; gap:.8rem; margin-bottom:1.3rem; }
.hcard-line { border-radius:12px; padding:1rem; }
.hcard-line.sanit { background:var(--sage-light); }
.hcard-line.mental { background:var(--purple-light); }
.hcard-line-title { font-size:11px; font-weight:500; text-transform:uppercase; letter-spacing:.08em; margin-bottom:.5rem; }
.hcard-line.sanit .hcard-line-title { color:var(--sage-dark); }
.hcard-line.mental .hcard-line-title { color:var(--purple); }
.hcard-chips { display:flex; flex-wrap:wrap; gap:5px; }
.chip { font-size:11px; padding:3px 9px; border-radius:100px; }
.chip-sage { background:white; color:var(--sage-dark); border:1px solid rgba(200,106,120,.2); }
.chip-purple { background:white; color:var(--purple); border:1px solid rgba(91,74,138,.2); }
.stats { display:grid; grid-template-columns:1fr 1fr 1fr; gap:10px; }
.stat { background:var(--cream); border-radius:12px; padding:12px; text-align:center; }
.stat-n { font-family:var(--ff-display); font-size:21px; font-weight:700; display:block; }
.stat-l { font-size:11px; color:var(--gray); }

/* trust */
.trust { background:var(--sage-dark); color:white; padding:1.1rem 2rem; display:flex; justify-content:center; gap:2.5rem; flex-wrap:wrap; }
.ti { display:flex; align-items:center; gap:8px; font-size:13px; opacity:.9; }
.ti-dot { width:26px; height:26px; border-radius:50%; background:rgba(255,255,255,.15); display:flex; align-items:center; justify-content:center; font-size:13px; }

/* ── SUMMARY SECTIONS ── */
.sum-sec { padding:68px 2.5rem; }
.sum-sec.alt { background:var(--warm-white); }
.sum-inner { max-width:1180px; margin:0 auto; }

/* Elena strip */
.elena-strip { display:grid; grid-template-columns:auto 1fr; gap:2rem; align-items:center; background:white; border:1px solid var(--border); border-radius:20px; padding:1.8rem 2rem; margin-bottom:1.6rem; }
.avatar-lg { width:84px; height:84px; border-radius:50%; background:linear-gradient(135deg,var(--sage-light),var(--sage)); display:flex; align-items:center; justify-content:center; font-family:var(--ff-display); font-size:30px; color:white; font-weight:700; flex-shrink:0; }
.elena-quote { font-family:var(--ff-display); font-style:italic; font-size:16px; color:var(--charcoal); line-height:1.6; margin-bottom:.7rem; }
.cred-pills { display:flex; flex-wrap:wrap; gap:6px; }
.cpill { font-size:11px; padding:3px 11px; border-radius:100px; background:var(--sage-light); color:var(--sage-dark); }

/* two-line summary grid */
.lines-grid { display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; margin-bottom:1.6rem; }
.line-card { border-radius:20px; padding:1.8rem; border:2px solid transparent; transition:transform .2s, box-shadow .2s; cursor:pointer; }
.line-card:hover { transform:translateY(-3px); box-shadow:0 10px 28px rgba(0,0,0,.08); }
.line-card.sanit { background:var(--sage-light); border-color:rgba(200,106,120,.25); }
.line-card.mental { background:var(--purple-light); border-color:rgba(91,74,138,.25); }
.line-card-icon { font-size:28px; margin-bottom:.8rem; }
.line-card-title { font-family:var(--ff-display); font-size:1.2rem; font-weight:700; margin-bottom:.5rem; }
.line-card.sanit .line-card-title { color:var(--sage-dark); }
.line-card.mental .line-card-title { color:var(--purple); }
.line-card-desc { font-size:14px; line-height:1.6; color:var(--gray); margin-bottom:1rem; }
.line-card-items { display:flex; flex-direction:column; gap:5px; }
.lci { font-size:13px; color:var(--charcoal); display:flex; align-items:center; gap:7px; }
.lci::before { content:''; width:5px; height:5px; border-radius:50%; flex-shrink:0; }
.line-card.sanit .lci::before { background:var(--sage); }
.line-card.mental .lci::before { background:var(--purple-mid); }

/* area strip */
.area-strip { background:var(--sage-dark); border-radius:20px; padding:1.8rem 2rem; margin-bottom:1.6rem; display:flex; justify-content:space-between; align-items:center; gap:1.5rem; flex-wrap:wrap; transition:transform .2s, box-shadow .2s; }
.area-strip:hover { transform:translateY(-3px); box-shadow:0 10px 28px rgba(0,0,0,.15); }
.zone-chips { display:flex; flex-wrap:wrap; gap:7px; margin-top:.8rem; }
.zchip { background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.15); color:rgba(255,255,255,.85); border-radius:100px; padding:4px 12px; font-size:12px; }
.zchip.online { background:rgba(201,106,69,.3); border-color:rgba(201,106,69,.5); color:#F4A07A; }

/* contact strip */
.contact-strip { display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin-bottom:1.6rem; }
.cstrip-item { background:var(--sage-light); border-radius:14px; padding:1rem 1.2rem; display:flex; align-items:center; gap:12px; }
.cs-lbl { font-size:11px; color:var(--sage-dark); font-weight:500; text-transform:uppercase; letter-spacing:.07em; }
.cs-val { font-size:14px; color:var(--charcoal); }

/* ── DETAIL PAGES ── */
.detail { padding:62px 0 0; min-height:100vh; }
.dheader { padding:3.5rem 2.5rem 3rem; }
.dheader.sage { background:var(--sage-dark); }
.dheader.purple { background:var(--purple); }
.dheader-inner { max-width:900px; margin:0 auto; }
.dheader .label { color:rgba(255,255,255,.5); }
.dheader h1 { font-family:var(--ff-display); font-size:clamp(2rem,3.5vw,3rem); font-weight:700; color:white; line-height:1.15; letter-spacing:-.02em; margin-bottom:.7rem; }
.dheader h1 em { font-style:italic; color:rgba(255,255,255,.7); }
.dheader p { font-size:16px; color:rgba(255,255,255,.65); line-height:1.7; max-width:540px; }
.dbody { max-width:960px; margin:0 auto; padding:3rem 2.5rem 5rem; }

/* servicios */
.svc-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:1.2rem; }
.svc-card { background:white; border:1px solid var(--border); border-radius:18px; padding:1.5rem; transition:transform .2s, box-shadow .2s; }
.svc-card:hover { transform:translateY(-3px); box-shadow:0 10px 28px rgba(180,80,100,.08); }
.svc-card h3 { font-family:var(--ff-display); font-size:1rem; font-weight:700; color:var(--charcoal); margin-bottom:.5rem; }
.svc-card p { font-size:13px; color:var(--gray); line-height:1.6; margin-bottom:.9rem; }
.icon-box { width:44px; height:44px; border-radius:12px; display:flex; align-items:center; justify-content:center; font-size:20px; margin-bottom:.9rem; }
.icon-sage { background:var(--sage-light); }
.icon-purple { background:var(--purple-light); }
.svc-tags { display:flex; flex-wrap:wrap; gap:5px; }
.stag { font-size:11px; padding:3px 9px; border-radius:100px; border:1px solid var(--border); color:var(--gray); }

/* steps */
.steps { display:grid; grid-template-columns:repeat(4,1fr); gap:1.5rem; position:relative; margin-bottom:3rem; }
.steps::before { content:''; position:absolute; top:26px; left:12%; width:76%; height:1px; background:var(--border); z-index:0; }
.step { text-align:center; position:relative; z-index:1; }
.step-n { width:52px; height:52px; border-radius:50%; background:white; border:1.5px solid var(--border); display:flex; align-items:center; justify-content:center; margin:0 auto 1rem; font-family:var(--ff-body); line-height:1; font-size:19px; font-weight:700; color:var(--sage-dark); }
.step-n.on { background:var(--sage); border-color:var(--sage); color:white; }
.step h4 { font-size:13px; font-weight:500; color:var(--charcoal); margin-bottom:4px; }
.step p { font-size:12px; color:var(--gray); line-height:1.5; }

/* salud mental */
.sm-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; }
.sm-summary-item { background:white; border:1px solid var(--border); border-radius:14px; padding:1.3rem 1rem; min-height:104px; min-width:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; text-align:center; font-size:14px; font-weight:700; color:var(--charcoal); cursor:pointer; transition:border-color .2s, background .2s; }
.sm-summary-item:hover { border-color:var(--purple-mid); background:var(--purple-light); }
.sm-summary-item .label { min-width:0; overflow-wrap:break-word; }
.sm-summary-item .icon { font-size:26px; }
.sm-cards { display:flex; flex-direction:column; gap:1.1rem; margin-bottom:2.5rem; }
.sm-card { background:white; border:1px solid var(--border); border-radius:16px; padding:1.5rem; display:flex; gap:1.2rem; align-items:flex-start; }
.sm-card h3 { font-family:var(--ff-display); font-size:1rem; font-weight:700; color:var(--charcoal); margin-bottom:4px; }
.sm-card p { font-size:14px; color:var(--gray); line-height:1.65; }
.para-quien { display:grid; grid-template-columns:1fr 1fr; gap:9px; background:var(--purple-light); border-radius:20px; padding:1.8rem; margin-bottom:1.5rem; }
.pq-title { grid-column:1/-1; font-size:11px; font-weight:500; letter-spacing:.1em; text-transform:uppercase; color:var(--purple-mid); margin-bottom:.2rem; }
.pq { background:white; border-radius:11px; padding:10px 13px; font-size:13px; color:var(--charcoal); display:flex; align-items:center; gap:9px; }
.sm-note { background:var(--purple); border-radius:14px; padding:1.1rem 1.4rem; display:flex; gap:11px; align-items:flex-start; }
.sm-note p { font-size:12px; color:rgba(255,255,255,.7); line-height:1.65; }

/* elena */
.elena-layout { display:grid; grid-template-columns:280px 1fr; gap:4rem; align-items:start; }
.elena-sidebar { background:var(--sage-light); border-radius:22px; padding:2rem; position:sticky; top:80px; text-align:center; }
.avatar-xl { width:100px; height:100px; border-radius:50%; background:linear-gradient(135deg,var(--sage),var(--sage-dark)); display:flex; align-items:center; justify-content:center; font-family:var(--ff-display); font-size:36px; color:white; font-weight:700; margin:0 auto 1.1rem; overflow:hidden; }
.avatar-xl img { width:100%; height:100%; object-fit:cover; object-position:center 15%; }
.ename { font-family:var(--ff-display); font-size:1.3rem; font-weight:700; color:var(--charcoal); margin-bottom:3px; }
.esub { font-size:13px; color:var(--gray); margin-bottom:1.3rem; }
.cred-list { display:flex; flex-direction:column; gap:7px; text-align:left; }
.cred { background:white; border-radius:9px; padding:9px 12px; font-size:12px; font-weight:500; color:var(--sage-dark); display:flex; align-items:center; gap:8px; }
.bio p { font-size:16px; line-height:1.8; color:var(--charcoal); margin-bottom:1.1rem; }
.bio p:first-child { font-family:var(--ff-display); font-size:18px; font-style:italic; }
.bio strong { color:var(--sage-dark); font-weight:500; }
.bio-list { list-style:none; display:flex; flex-direction:column; gap:.9rem; margin:0 0 1.3rem; }
.bio-list li { font-size:16px; line-height:1.8; color:var(--charcoal); padding-left:1.3rem; position:relative; }
.bio-list li::before { content:''; position:absolute; left:0; top:.55rem; width:7px; height:7px; border-radius:50%; background:var(--sage); }
.sidebar-btns { margin-top:1rem; display:flex; flex-direction:column; gap:.6rem; }
.btn-full { width:100%; justify-content:center; }
.bio-actions { margin-top:1.5rem; display:flex; gap:1rem; flex-wrap:wrap; }

/* area */
.area-layout { display:grid; grid-template-columns:1fr 1fr; gap:3rem; align-items:start; }
.zone-list { display:flex; flex-direction:column; gap:9px; }
.zone-item { display:flex; align-items:center; gap:11px; padding:11px 14px; background:white; border:1px solid var(--border); border-radius:11px; }
.zdot { width:8px; height:8px; border-radius:50%; background:var(--sage); flex-shrink:0; }
.zdot.online { background:var(--terra); }
.zname { font-size:14px; color:var(--charcoal); }
.znote { font-size:11px; color:var(--gray); margin-left:auto; }
.map-box { background:var(--sage-dark); border-radius:20px; padding:1.8rem; text-align:center; }
.online-badge { display:inline-flex; align-items:center; gap:8px; background:rgba(201,106,69,.25); border:1px solid rgba(201,106,69,.4); color:#F4A07A; padding:7px 15px; border-radius:100px; font-size:13px; margin-top:.9rem; }

/* online */
.online-layout { display:grid; grid-template-columns:1fr 1fr; gap:3rem; align-items:start; }
.online-feats { display:flex; flex-direction:column; gap:.9rem; margin-bottom:2rem; }
.ofeat { display:flex; align-items:flex-start; gap:13px; padding:1.1rem 1.3rem; background:white; border-radius:14px; border:1px solid var(--border); }
.ofeat h4 { font-size:14px; font-weight:500; color:var(--charcoal); margin-bottom:3px; }
.ofeat p { font-size:13px; color:var(--gray); }
.ofeat-icon { font-size:20px; flex-shrink:0; margin-top:2px; }
.modalities { display:flex; flex-direction:column; gap:8px; }
.modality { display:flex; align-items:center; gap:10px; padding:10px 14px; background:var(--terra-light); border-radius:11px; font-size:13px; color:var(--charcoal); }

/* contacto */
.contact-layout { display:grid; grid-template-columns:1fr 1fr; gap:3rem; align-items:start; }
.contact-items { display:flex; flex-direction:column; gap:.9rem; }
.citem { background:var(--sage-light); border-radius:12px; padding:12px 15px; display:flex; gap:12px; align-items:center; }
.ci-icon-wa { display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.ci-lbl { font-size:11px; color:var(--sage-dark); font-weight:500; text-transform:uppercase; letter-spacing:.07em; }
.ci-val { font-size:14px; color:var(--charcoal); }
.cform { background:white; border:1px solid var(--border); border-radius:20px; padding:1.8rem; }
.cf-title { font-family:var(--ff-display); font-size:1.2rem; font-weight:700; color:var(--charcoal); margin-bottom:1.3rem; }
.fg { margin-bottom:.85rem; }
.fg label { display:block; font-size:11px; font-weight:500; color:var(--gray); margin-bottom:5px; text-transform:uppercase; letter-spacing:.06em; }
.fg input,.fg textarea,.fg select { width:100%; padding:10px 13px; border:1px solid var(--border); border-radius:10px; font-family:var(--ff-body); font-size:14px; color:var(--charcoal); background:var(--cream); outline:none; transition:border-color .2s; }
.fg input:focus,.fg textarea:focus,.fg select:focus { border-color:var(--sage); background:white; }
.fg textarea { min-height:90px; resize:vertical; }
.fg-row { display:grid; grid-template-columns:1fr 1fr; gap:.9rem; }
.cf-submit { width:100%; background:var(--terra); color:white; border:none; padding:13px; border-radius:100px; font-size:15px; font-weight:500; font-family:var(--ff-body); cursor:pointer; transition:background .2s; margin-top:.3rem; }
.cf-submit:hover { background:#b05a38; }
.form-type-label { font-weight:600; font-size:14px; }
.form-type-label.sage { color:var(--sage-dark); }
.form-type-label.purple { color:var(--purple); }

/* footer */
footer { background:var(--charcoal); padding:2.5rem; }
.footer-inner { max-width:1100px; margin:0 auto; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:1rem; }
.flogo { font-family:var(--ff-display); font-size:17px; font-weight:700; color:white; display:inline-flex; align-items:center; gap:7px; }
.flogo-icon { height:24px; width:auto; display:block; filter:brightness(0) invert(1); opacity:.92; }
.flogo em { font-style:normal; color:#A8A0CC; }
.flogo span { color:var(--terra); }
.flinks { display:flex; gap:1.3rem; flex-wrap:wrap; }
.flinks a { text-decoration:none; color:rgba(255,255,255,.4); font-size:13px; cursor:pointer; transition:color .2s; }
.flinks a:hover { color:white; }
.fcopy { font-size:12px; color:rgba(255,255,255,.3); }

/* ── MOBILE ── */
.two-col-grid { display:grid; grid-template-columns:1fr 1fr; gap:3rem; }

@media(max-width:768px){
  nav { padding:0 1.2rem; }
  .nav-links { display:none !important; }
  .ham { display:flex; }
  .hero { grid-template-columns:1fr; padding:80px 1.2rem 50px; gap:2rem; min-height:unset; }
  .hero-content { grid-template-columns:1fr; padding:80px 1.2rem 60px; gap:2rem; }
  .hero-title { font-size:1.9rem; line-height:1.15; }
  .hcard { display:none; }
  .hcard-lines { grid-template-columns:1fr; gap:.7rem; }
  .trust { gap:.8rem; padding:.9rem 1.2rem; justify-content:flex-start; }
  .ti { font-size:11px; }
  .sum-sec { padding:40px 1.2rem; }
  .lines-grid { grid-template-columns:1fr; }
  .elena-strip { grid-template-columns:1fr !important; text-align:center; gap:1.2rem; padding:1.4rem !important; }
  .cred-pills { justify-content:center; }
  .contact-strip { grid-template-columns:1fr; gap:.8rem; }
  .two-col-grid { grid-template-columns:1fr; gap:2rem; }
  .dheader { padding:2rem 1.2rem 1.8rem; }
  .dheader h1 { font-size:1.7rem; line-height:1.2; }
  .dheader p { font-size:14px; }
  .dbody { padding:1.8rem 1.2rem 3.5rem; }
  .detail div[style*="min-height:52vh"] { min-height:38vh !important; }
  .detail div[style*="min-height:52vh"] > div[style*="padding:0 2.5rem"] { padding:0 1.2rem 2rem !important; }
  .steps { grid-template-columns:1fr 1fr; gap:1rem; }
  .steps::before { display:none; }
  .svc-grid { grid-template-columns:1fr; }
  .elena-layout { grid-template-columns:1fr; gap:2rem; }
  .elena-sidebar { position:static; }
  .sm-card { flex-direction:column; gap:.8rem; }
  .sm-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .para-quien { grid-template-columns:1fr; }
  .area-layout,.online-layout,.contact-layout { grid-template-columns:1fr; gap:2rem; }
  #mapa-cobertura { height:300px !important; }
  .fg-row { grid-template-columns:1fr; }
  div[style*="margin:-64px auto 0"] { margin:-28px auto 0 !important; padding:0 1.2rem !important; }
  div[style*="margin:-64px auto 0"] > div { grid-template-columns:1fr !important; gap:.8rem !important; }
  div[style*="grid-template-columns:1fr 1fr 1fr"] { grid-template-columns:1fr !important; }
  div[style*="grid-template-columns:1fr 1fr;gap:4rem"] { grid-template-columns:1fr !important; gap:1.5rem !important; }
  div[style*="grid-template-columns:1fr 1fr;gap:3rem"] { grid-template-columns:1fr !important; gap:1.5rem !important; }
  div[style*="grid-template-columns:1fr 1.6fr"] { grid-template-columns:1fr !important; gap:1.5rem !important; }
  div[style*="padding:160px 2.5rem 140px"] { padding:90px 1.2rem 100px !important; }
  /* Badge EIR en card de salud mental del home: en móvil pasa a estático */
  .home-card-mental { padding:1.4rem 1.4rem !important; }
  .home-card-mental .eir-badge { position:static !important; display:inline-block; margin-bottom:.9rem; }
  .home-card-mental-label { font-size:9px !important; letter-spacing:.06em !important; }
  .footer-inner { flex-direction:column; align-items:flex-start; gap:1.2rem; }
  .flinks { gap:.8rem; }
}
@media(max-width:500px){
  .hero-title { font-size:1.7rem; }
  .dheader h1 { font-size:1.5rem; }
  .line-card-title { font-size:1.05rem; }
}

/* ── FLOATING CARDS ── */
.fcard { background:white; border-radius:18px; padding:1.5rem 1.6rem; box-shadow:0 6px 28px rgba(0,0,0,.1); cursor:pointer; transition:transform .2s, box-shadow .2s; }
.fcard:hover { transform:translateY(-4px); box-shadow:0 14px 40px rgba(0,0,0,.14); }
.fcard-icon { width:44px; height:44px; border-radius:12px; display:flex; align-items:center; justify-content:center; font-size:22px; margin-bottom:.9rem; }
.fcard-title { font-family:var(--ff-display); font-size:15px; font-weight:700; margin-bottom:.4rem; }
.fcard-desc { font-size:13px; color:var(--gray); line-height:1.55; }

/* mobile fcard */
@media(max-width:768px) {
  .fcard { padding:1.2rem; }
}
@media(max-width:768px) {
  div[style*="grid-template-columns:1fr 1fr 1fr"] { grid-template-columns: 1fr !important; }
  div[style*="grid-template-columns:1fr 1fr;gap:4rem"] { grid-template-columns: 1fr !important; gap: 2rem !important; }
  div[style*="grid-template-columns:1fr 1.6fr"] { grid-template-columns: 1fr !important; gap: 2rem !important; }
  div[style*="padding:160px 2.5rem 140px"] { padding: 100px 1.2rem 110px !important; }
  div[style*="margin:-64px auto 0"] { margin: -40px auto 0 !important; }
}

/* ── COOKIE BANNER ── */
.cookie-banner { position:fixed; left:0; right:0; bottom:0; z-index:300; display:none; padding:1rem; }
.cookie-banner.show { display:block; animation:cookieUp .3s ease both; }
@keyframes cookieUp { from{opacity:0;transform:translateY(16px)} to{opacity:1;transform:none} }
.cookie-banner-inner { max-width:980px; margin:0 auto; background:white; border:1px solid var(--border); border-radius:18px; box-shadow:0 12px 40px rgba(0,0,0,.18); padding:1.4rem 1.6rem; display:flex; align-items:center; gap:1.5rem; flex-wrap:wrap; }
.cookie-banner-text strong { font-family:var(--ff-display); font-size:15px; color:var(--charcoal); display:block; margin-bottom:4px; }
.cookie-banner-text p { font-size:13px; color:var(--gray); line-height:1.55; max-width:620px; }
.cookie-banner-actions { display:flex; gap:.6rem; flex-wrap:wrap; margin-left:auto; flex-shrink:0; }
.cookie-btn { padding:10px 18px; border-radius:100px; font-size:13px; font-weight:500; font-family:var(--ff-body); cursor:pointer; border:none; transition:background .2s, transform .15s; white-space:nowrap; }
.cookie-btn-outline { background:none; border:1.5px solid var(--border); color:var(--charcoal); }
.cookie-btn-outline:hover { border-color:var(--sage); background:var(--sage-light); }
.cookie-btn-accept { background:var(--sage-dark); color:white; }
.cookie-btn-accept:hover { background:#5e1f32; transform:translateY(-1px); }

@media(max-width:768px){
  .cookie-banner-inner { flex-direction:column; align-items:stretch; padding:1.2rem; }
  .cookie-banner-actions { margin-left:0; }
  .cookie-btn { flex:1; }
}

/* ── COOKIE SETTINGS MODAL ── */
.cookie-modal-overlay { display:none; position:fixed; inset:0; z-index:400; background:rgba(61,20,30,.45); backdrop-filter:blur(2px); align-items:center; justify-content:center; padding:1.2rem; }
.cookie-modal-overlay.show { display:flex; }
.cookie-modal { background:white; border-radius:20px; max-width:480px; width:100%; max-height:85vh; overflow-y:auto; box-shadow:0 20px 60px rgba(0,0,0,.25); animation:cookieModalIn .25s ease both; }
@keyframes cookieModalIn { from{opacity:0;transform:scale(.96)} to{opacity:1;transform:none} }
.cookie-modal-head { display:flex; align-items:center; justify-content:space-between; padding:1.4rem 1.6rem 1rem; border-bottom:1px solid var(--border); }
.cookie-modal-head h3 { font-family:var(--ff-display); font-size:1.15rem; font-weight:700; color:var(--charcoal); }
.cookie-modal-close { background:none; border:none; font-size:22px; line-height:1; color:var(--gray); cursor:pointer; padding:4px 8px; border-radius:8px; }
.cookie-modal-close:hover { background:var(--sage-light); color:var(--sage-dark); }
.cookie-modal-body { padding:1.2rem 1.6rem; display:flex; flex-direction:column; gap:1.3rem; }
.cookie-cat-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:.4rem; gap:1rem; }
.cookie-cat-title { font-size:14px; font-weight:700; color:var(--charcoal); }
.cookie-locked { font-size:11px; font-weight:500; color:var(--sage-dark); background:var(--sage-light); padding:3px 10px; border-radius:100px; }
.cookie-cat p { font-size:13px; color:var(--gray); line-height:1.6; }
.cookie-modal-actions { display:flex; gap:.7rem; padding:1.2rem 1.6rem; border-top:1px solid var(--border); flex-wrap:wrap; }
.cookie-modal-actions .cookie-btn { flex:1; }

/* toggle switch */
.cookie-switch { position:relative; display:inline-block; width:42px; height:24px; flex-shrink:0; }
.cookie-switch input { opacity:0; width:0; height:0; }
.cookie-slider { position:absolute; cursor:pointer; inset:0; background:var(--border); border-radius:100px; transition:background .2s; }
.cookie-slider::before { content:''; position:absolute; width:18px; height:18px; left:3px; top:3px; background:white; border-radius:50%; transition:transform .2s; box-shadow:0 1px 3px rgba(0,0,0,.25); }
.cookie-switch input:checked + .cookie-slider { background:var(--sage); }
.cookie-switch input:checked + .cookie-slider::before { transform:translateX(18px); }

/* Calendly consent fallback box */
.calendly-embed-box { display:block; }
.calendly-consent-fallback { text-align:center; padding:4.5rem 1.8rem; max-width:360px; margin:0 auto; }
.calendly-consent-icon { font-size:32px; display:block; margin-bottom:1rem; }
.calendly-consent-fallback p { font-size:14px; color:var(--gray); line-height:1.6; margin-bottom:1.2rem; }
.calendly-consent-fallback .btn { margin:0 auto; }
.calendly-consent-alt { font-size:12px !important; color:var(--gray); margin-top:1rem !important; margin-bottom:0 !important; }

/* ── LEGAL PAGES (Aviso legal / Privacidad) ── */
.legal-content { max-width:760px; }
.legal-updated { font-size:12px; color:var(--gray); text-transform:uppercase; letter-spacing:.08em; margin-bottom:2rem; }
.legal-content h2 { font-family:var(--ff-display); font-size:1.2rem; font-weight:700; color:var(--charcoal); margin:2rem 0 .8rem; }
.legal-content h2:first-of-type { margin-top:0; }
.legal-content p { font-size:15px; line-height:1.75; color:var(--charcoal); margin-bottom:1rem; }
.legal-content ul { list-style:none; display:flex; flex-direction:column; gap:.5rem; margin-bottom:1rem; }
.legal-content li { font-size:15px; line-height:1.65; color:var(--charcoal); padding-left:1.2rem; position:relative; }
.legal-content li::before { content:''; position:absolute; left:0; top:.6rem; width:6px; height:6px; border-radius:50%; background:var(--sage); }
.legal-content strong { color:var(--sage-dark); font-weight:500; }
.legal-note { background:var(--sage-light); border-radius:14px; padding:1.1rem 1.4rem; display:flex; gap:11px; align-items:flex-start; margin-top:2.5rem; }
.legal-note p { font-size:13px; color:var(--gray); line-height:1.65; margin-bottom:0; }
