/* ============================================================
   Dr. Gatito — Neurocirugía | Hoja de estilos principal
   Sistema de diseño: editorial, orgánico, cálido — no genérico.
   Fraunces (display) + Inter (texto) · verde expandido + terracota
   ============================================================ */

/* -------------------- Tokens de diseño -------------------- */
:root{
  /* Marca — Cerebro Verde: escala de verde propia, no un solo tono plano */
  --green-50:  #eff7f1;
  --green-100: #d7ecdd;
  --green-200: #add8bb;
  --green-300: #7dbe93;
  --green-400: #52a16d;
  --green-500: #35864e;
  --green-600: #226b3b;
  --green-700: #1b5730;
  --green-800: #143f23;
  --green-900: #0d2a17;

  --color-primary:#1b5730;
  --color-primary-dark:#0d2a17;
  --color-primary-light:#52a16d;
  --color-primary-tint:#eff7f1;

  /* Acento cálido: terracota, no naranja de plantilla */
  --color-accent:#a6501e;
  --color-accent-dark:#7f3b15;
  --color-accent-light:#e7935e;   /* solo decorativo, no para texto */

  --color-blue:#7c8f6a;                 /* salvia, variación secundaria */
  --color-blue-tint:#f2eedd;            /* crema cálido para degradados de hero */
  --color-on-dark-eyebrow:#f0c48f;
  --color-on-dark-soft:#d8ecdd;
  --color-on-dark-muted:#a9c9b3;

  /* Pediatría (uso acotado a esa sección) */
  --color-peds-teal:#0f9b8e;
  --color-peds-coral:#ff6f59;
  --color-peds-yellow:#ffc857;
  --color-peds-tint:#fff7ec;

  /* Neutrales — papel cálido, no blanco de hospital */
  --color-text:#1b2420;
  --color-text-soft:#4e5c50;
  --color-bg:#fbf9f3;
  --color-bg-alt:#f1ede0;
  --color-border:#e2dcc9;
  --color-white:#ffffff;

  /* Tipografía: pareja editorial con carácter */
  --font-display:"Fraunces", ui-serif, Georgia, serif;
  --font-base:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --fs-base: 1rem;
  --fs-scale: 1; /* controlado por el panel de accesibilidad */

  /* Espaciado y forma — radios asimétricos para superficies de marca,
     radios simples reservados a controles de formulario/menús */
  --radius-sm:10px;
  --radius-md:18px;
  --radius-lg:30px;
  --radius-organic-1: 42px 14px 42px 14px;
  --radius-organic-2: 14px 42px 14px 42px;
  --radius-organic-3: 60% 40% 48% 52% / 45% 38% 62% 55%;

  --shadow-sm: 0 3px 16px rgba(13,42,23,.09);
  --shadow-md: 0 18px 46px rgba(13,42,23,.16);
  --shadow-accent: 0 10px 28px rgba(166,80,30,.22);
  --container: 1180px;

  --transition-fast:.18s cubic-bezier(.4,0,.2,1);
  --transition-med:.36s cubic-bezier(.16,1,.3,1);
}

/* -------------------- Reinicio básico -------------------- */
*,*::before,*::after{box-sizing:border-box;}
html{
  scroll-behavior:smooth;
  font-size:calc(100% * var(--fs-scale));
}
body{
  margin:0;
  font-family:var(--font-base);
  color:var(--color-text);
  background:var(--color-bg);
  line-height:1.65;
  font-size:var(--fs-base);
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:var(--color-primary);text-decoration-thickness:2px;text-underline-offset:.15em;}
a:hover{color:var(--color-primary-dark);}
h1,h2,h3,h4{
  line-height:1.1;margin:0 0 .5em;color:var(--color-primary-dark);
  font-family:var(--font-display);font-weight:600;letter-spacing:-.01em;
}
h3{font-weight:600;}
p{margin:0 0 1em;}
ul,ol{padding-left:1.2em;}
button{font-family:inherit;}
main{display:block;}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;}
}
.reduce-motion *{animation:none !important;transition:none !important;}

/* -------------------- Utilidades -------------------- */
.visually-hidden{
  position:absolute !important;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;
}
.skip-link{
  position:absolute;left:8px;top:-60px;background:var(--color-primary-dark);color:#fff;
  padding:.7em 1.2em;border-radius:var(--radius-sm);z-index:2000;transition:top var(--transition-fast);
}
.skip-link:focus{top:8px;}
.container{max-width:var(--container);margin:0 auto;padding:0 1.5rem;}
.section{padding:clamp(3.5rem,7vw,6.5rem) 0;position:relative;}
.section-alt{background:var(--color-bg-alt);}
.section-tint{background:var(--color-primary-tint);}
.eyebrow{
  display:inline-flex;align-items:center;gap:.5em;color:var(--color-accent-dark);font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;font-size:.78rem;margin-bottom:.6em;
}
.eyebrow::before{content:"";width:1.4em;height:2px;background:currentColor;border-radius:2px;display:inline-block;}
.section-head{max-width:640px;margin:0 auto 3rem;text-align:center;}
.section-head h2{font-size:clamp(1.9rem,4vw,2.7rem);}
.section-head p{color:var(--color-text-soft);font-size:1.05rem;}
.text-center{text-align:center;}

:focus{outline:3px solid var(--color-accent-light);outline-offset:2px;}
:focus:not(:focus-visible){outline:3px solid var(--color-accent-light);}
.js-focus-visible :focus:not(.focus-visible){outline:none;}

/* -------------------- Revelado al hacer scroll (lo activa main.js) -------------------- */
.reveal-init{opacity:0;transform:translateY(28px);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1);}
.reveal-init.reveal-in{opacity:1;transform:none;}

/* Botones — forma asimétrica propia, no la píldora genérica */
.btn{
  display:inline-flex;align-items:center;gap:.55em;justify-content:center;position:relative;isolation:isolate;
  padding:.9em 1.7em;border-radius:var(--radius-organic-1);font-weight:700;border:2px solid transparent;
  cursor:pointer;text-decoration:none;transition:transform var(--transition-fast), box-shadow var(--transition-fast), border-radius var(--transition-med), color var(--transition-fast);
  font-size:1rem;overflow:hidden;
}
.btn::before{
  content:"";position:absolute;inset:0;z-index:-1;transform:scaleX(0);transform-origin:left;
  transition:transform var(--transition-med);border-radius:inherit;
}
.btn:hover{transform:translateY(-3px) rotate(-.6deg);border-radius:var(--radius-organic-2);}
.btn-primary{background:var(--color-primary);color:#fff;box-shadow:var(--shadow-sm);}
.btn-primary::before{background:var(--color-primary-dark);}
.btn-primary:hover::before{transform:scaleX(1);}
.btn-primary:hover{color:#fff;box-shadow:var(--shadow-md);}
.btn-accent{background:var(--color-accent);color:#fff;box-shadow:var(--shadow-accent);}
.btn-accent::before{background:var(--color-accent-dark);}
.btn-accent:hover::before{transform:scaleX(1);}
.btn-accent:hover{color:#fff;}
.btn-outline{background:transparent;border-color:var(--color-primary);color:var(--color-primary);}
.btn-outline::before{background:var(--color-primary);}
.btn-outline:hover::before{transform:scaleX(1);}
.btn-outline:hover{color:#fff;}
.btn-lg{padding:1.05em 2.1em;font-size:1.05rem;}
.btn-block{width:100%;}

/* Tarjetas genéricas */
.card{
  background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-md);
  padding:1.8rem;box-shadow:var(--shadow-sm);
}

/* ==================== ENCABEZADO / NAV ==================== */
.site-header{
  position:sticky;top:0;z-index:1000;background:rgba(251,249,243,.92);backdrop-filter:blur(10px);
  border-bottom:1px solid var(--color-border);
}
.nav-wrap{
  max-width:var(--container);margin:0 auto;padding:.85rem 1.5rem;
  display:flex;align-items:center;gap:1rem;
}
.logo{display:flex;align-items:center;gap:.6rem;text-decoration:none;flex-shrink:0;}
.logo:hover{color:inherit;}
.logo svg{width:42px;height:42px;flex-shrink:0;transition:transform var(--transition-med);}
.logo:hover svg{transform:rotate(-8deg) scale(1.05);}
.logo-text{display:flex;flex-direction:column;line-height:1.05;}
.logo-text strong{font-family:var(--font-display);font-size:1.3rem;color:var(--color-primary-dark);font-weight:700;}
.logo-text small{font-size:.7rem;color:var(--color-text-soft);font-weight:600;letter-spacing:.03em;}

.primary-nav{flex:1;}
.nav-menu{
  display:flex;align-items:center;gap:.1rem;list-style:none;margin:0;padding:0;flex-wrap:wrap;
}
.nav-menu > li{position:relative;}
.nav-menu a, .nav-menu button.nav-toggle{
  display:inline-flex;align-items:center;gap:.3em;position:relative;
  padding:.6em 1.05em;border-radius:999px;color:var(--color-text);text-decoration:none;
  font-weight:600;background:transparent;border:none;cursor:pointer;font-size:.96rem;
  transition:color var(--transition-fast);
}
.nav-menu a::after, .nav-menu button.nav-toggle::after{
  content:"";position:absolute;left:1.05em;right:1.05em;bottom:.45em;height:2px;background:var(--color-accent);
  transform:scaleX(0);transform-origin:left;transition:transform var(--transition-fast);border-radius:2px;
}
.nav-menu a:hover::after, .nav-menu button.nav-toggle:hover::after{transform:scaleX(1);}
.nav-menu a:hover, .nav-menu button.nav-toggle:hover{color:var(--color-primary-dark);}
.nav-menu a[aria-current="page"],
.nav-menu > li.is-active > a,
.nav-menu > li.is-active > button{
  background:var(--color-primary);color:#fff;border-radius:999px 6px 999px 6px;
}
.nav-menu a[aria-current="page"]::after,
.nav-menu > li.is-active > a::after,
.nav-menu > li.is-active > button::after{display:none;}
.nav-menu a[aria-current="page"]:hover{color:#fff;}
.nav-toggle .chevron{width:.6em;height:.6em;transition:transform var(--transition-fast);}
.nav-toggle[aria-expanded="true"] .chevron{transform:rotate(180deg);}

.dropdown{
  list-style:none;margin:0;padding:.5rem;position:absolute;top:calc(100% + 10px);left:0;
  background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-sm);
  box-shadow:var(--shadow-md);min-width:200px;display:none;flex-direction:column;gap:.15rem;
}
.has-dropdown.is-open .dropdown{display:flex;animation:dropdown-in .22s cubic-bezier(.16,1,.3,1);}
@keyframes dropdown-in{from{opacity:0;transform:translateY(-6px);}to{opacity:1;transform:translateY(0);}}
.dropdown a{border-radius:8px;display:block;padding:.6em .8em;}
.dropdown a::after{display:none;}

.header-tools{display:flex;align-items:center;gap:.5rem;}

/* Buscador universal */
.site-search{position:relative;}
.site-search form{display:flex;align-items:center;background:var(--color-bg-alt);border:1px solid var(--color-border);border-radius:999px;padding:.2rem .3rem .2rem .9rem;transition:border-color var(--transition-fast);}
.site-search input[type="search"]{
  border:none;background:transparent;padding:.4em 0;width:150px;font-size:.92rem;color:var(--color-text);
}
.site-search input[type="search"]:focus{outline:none;}
.site-search:focus-within form{border-color:var(--color-primary);outline:3px solid var(--color-accent-light);outline-offset:1px;}
.site-search button{
  border:none;background:var(--color-primary);color:#fff;width:34px;height:34px;border-radius:50%;
  display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:background var(--transition-fast);
}
.site-search button:hover{background:var(--color-primary-dark);}
.site-search button svg{width:16px;height:16px;}
.search-results{
  position:absolute;top:calc(100% + 8px);right:0;left:auto;width:320px;max-width:80vw;
  background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);
  list-style:none;margin:0;padding:.4rem;max-height:60vh;overflow:auto;z-index:1200;
}
.search-results[hidden]{display:none;}
.search-results li a{display:block;padding:.6em .7em;border-radius:8px;text-decoration:none;color:var(--color-text);}
.search-results li a:hover, .search-results li a:focus{background:var(--color-primary-tint);}
.search-results .result-cat{display:block;font-size:.72rem;color:var(--color-accent-dark);font-weight:700;text-transform:uppercase;}
.search-results .result-excerpt{display:block;font-size:.82rem;color:var(--color-text-soft);}
.search-empty{padding:.8em;color:var(--color-text-soft);font-size:.9rem;}

/* Botón accesibilidad + hamburguesa */
.icon-btn{
  width:42px;height:42px;border-radius:50%;border:1px solid var(--color-border);background:#fff;
  display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:var(--color-primary);flex-shrink:0;
  box-shadow:var(--shadow-sm);transition:transform var(--transition-fast), background var(--transition-fast);
}
.icon-btn:hover{background:var(--color-primary-tint);transform:translateY(-2px);}
.icon-btn svg{width:20px;height:20px;}
#mobile-menu-toggle{display:none;}

/* ==================== PANEL DE ACCESIBILIDAD ==================== */
.a11y-panel{
  position:fixed;top:0;right:0;height:100vh;width:320px;max-width:90vw;background:var(--color-primary-dark);
  color:#fff;z-index:2000;box-shadow:-8px 0 30px rgba(0,0,0,.3);padding:1.4rem;overflow-y:auto;
  transform:translateX(100%);transition:transform var(--transition-med);
}
.a11y-panel.is-open{transform:translateX(0);}
.a11y-panel[hidden]{display:block !important;} /* se controla con transform, no con hidden real */
.a11y-panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;}
.a11y-panel-head h2{color:#fff;font-size:1.25rem;margin:0;}
.a11y-close{background:transparent;border:2px solid rgba(255,255,255,.5);color:#fff;border-radius:50%;width:34px;height:34px;cursor:pointer;}
.a11y-group{border-top:1px solid rgba(255,255,255,.2);padding:1rem 0;}
.a11y-group h3{font-family:var(--font-base);font-size:.85rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-on-dark-soft);margin:0 0 .7rem;}
.a11y-row{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin-bottom:.5rem;}
.a11y-row span{font-weight:600;}
.fontsize-controls{display:flex;gap:.4rem;}
.fontsize-controls button{
  width:34px;height:34px;border-radius:8px;border:1px solid rgba(255,255,255,.4);background:rgba(255,255,255,.08);
  color:#fff;cursor:pointer;font-weight:700;
}
.fontsize-controls button:hover{background:rgba(255,255,255,.22);}
.switch{position:relative;display:inline-block;width:46px;height:26px;flex-shrink:0;}
.switch input{opacity:0;width:0;height:0;}
.switch .track{position:absolute;inset:0;background:rgba(255,255,255,.3);border-radius:999px;transition:background var(--transition-fast);cursor:pointer;}
.switch .track::before{content:"";position:absolute;height:20px;width:20px;left:3px;top:3px;background:#fff;border-radius:50%;transition:transform var(--transition-fast);}
.switch input:checked + .track{background:var(--color-accent);}
.switch input:checked + .track::before{transform:translateX(20px);}
.switch input:focus-visible + .track{outline:3px solid #fff;outline-offset:2px;}
.a11y-action-btn{
  width:100%;text-align:left;display:flex;align-items:center;gap:.6rem;background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.3);color:#fff;padding:.7em .9em;border-radius:var(--radius-sm);cursor:pointer;margin-bottom:.5rem;font-weight:600;
}
.a11y-action-btn:hover{background:rgba(255,255,255,.2);}
.a11y-backdrop{position:fixed;inset:0;background:rgba(13,20,15,.45);z-index:1900;display:none;}
.a11y-backdrop.is-open{display:block;}

/* Estados globales de accesibilidad */
html[data-contrast="high"]{
  --color-text:#000000;--color-text-soft:#000000;--color-bg:#ffffff;--color-bg-alt:#ffffff;
  --color-primary:#000000;--color-primary-dark:#000000;--color-primary-tint:#ffffff;--color-border:#000000;
}
html[data-contrast="high"] a{color:#00227a;text-decoration:underline;}
html[data-contrast="high"] .btn-primary,html[data-contrast="high"] .nav-menu a[aria-current="page"]{background:#000;color:#fff;}
html[data-contrast="high"] .card, html[data-contrast="high"] .site-header{border:2px solid #000;}

html[data-theme="night"]{
  --color-text:#e7f3ec;--color-text-soft:#bcdac9;--color-bg:#0d1712;--color-bg-alt:#132019;
  --color-primary-tint:#1b2e24;--color-border:#2a4436;--color-white:#132019;
}
html[data-theme="night"] .site-header{background:rgba(13,23,18,.9);}
html[data-theme="night"] .card,
html[data-theme="night"] .dropdown,
html[data-theme="night"] .search-results{background:#132019;color:#e7f3ec;}
html[data-theme="night"] .site-search form{background:#1b2e24;}
html[data-theme="night"] .icon-btn{background:#132019;color:#dcf3e7;}

html[data-underline-links="on"] a{text-decoration:underline;}

/* ==================== HERO ==================== */
.hero{
  background:linear-gradient(135deg, var(--color-blue-tint) 0%, var(--color-primary-tint) 60%, var(--color-bg) 100%);
  padding:clamp(3rem,7vw,5.5rem) 0;overflow:hidden;position:relative;
}
.hero::before{
  content:"";position:absolute;top:-18%;right:-12%;width:46vw;height:46vw;max-width:560px;max-height:560px;
  background:radial-gradient(circle at 35% 35%, rgba(82,161,109,.28), rgba(82,161,109,0) 68%);
  border-radius:var(--radius-organic-3);pointer-events:none;
}
.hero .container{display:grid;grid-template-columns:7fr 5fr;gap:3rem;align-items:center;position:relative;}
.hero-eyebrow{color:var(--color-accent-dark);font-weight:800;text-transform:uppercase;letter-spacing:.08em;font-size:.85rem;}
.hero h1{font-size:clamp(2.3rem,5vw,3.6rem);margin:.3em 0 .45em;letter-spacing:-.02em;}
.hero h1::first-line{font-style:italic;color:var(--color-primary);}
.lead{font-size:1.15rem;color:var(--color-text-soft);max-width:46ch;}
.hero-cta{display:flex;gap:1rem;flex-wrap:wrap;margin-top:1.8rem;}
.hero-art{display:flex;justify-content:center;position:relative;}
.hero-art::before{
  content:"";position:absolute;inset:6% 10%;background:#fff;border-radius:var(--radius-organic-3);
  box-shadow:var(--shadow-md);z-index:-1;transform:rotate(-3deg);
}
.hero-art svg{width:100%;max-width:420px;height:auto;}

/* Barra de confianza */
.trust-bar{display:flex;flex-wrap:wrap;gap:2.5rem;justify-content:center;padding:2.4rem 0;border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);}
.trust-stat{text-align:center;min-width:140px;}
.trust-stat strong{display:block;font-family:var(--font-display);font-size:2.4rem;color:var(--color-primary);font-weight:700;}
.trust-stat span{color:var(--color-text-soft);font-size:.92rem;}

/* Grids de tarjetas */
.grid{display:grid;gap:1.8rem;}
.grid-3{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));}
.grid-2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));}
.grid-4{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));}
@media (min-width:781px){
  .grid-3 > *:nth-child(2), .grid-4 > *:nth-child(2), .grid-4 > *:nth-child(4){transform:translateY(1.4rem);}
  .grid-3 > *, .grid-4 > *{transition:transform var(--transition-med);}
}

.icon-card{text-align:left;position:relative;}
.icon-card .icon-wrap{
  width:58px;height:58px;border-radius:var(--radius-organic-1);background:var(--color-primary-tint);
  display:flex;align-items:center;justify-content:center;margin-bottom:1.1rem;transition:border-radius var(--transition-med), transform var(--transition-med);
}
.icon-card:hover .icon-wrap{border-radius:var(--radius-organic-2);transform:rotate(-4deg);}
.icon-card .icon-wrap svg{width:28px;height:28px;color:var(--color-primary);}
.icon-card h3{font-size:1.15rem;}
.icon-card p{color:var(--color-text-soft);margin-bottom:0;}

/* ==================== CONDICIONES QUE TRATAMOS ==================== */
.condition-card{border-left:none;position:relative;padding-left:2rem;}
.condition-card::before{
  content:"";position:absolute;left:0;top:1.6rem;bottom:1.6rem;width:4px;border-radius:4px;background:var(--color-primary);
}
.condition-card.tag-high::before{background:var(--color-accent);}
.condition-card.peds::before{background:var(--color-peds-teal);}
.condition-card.peds.tag-high::before{background:var(--color-peds-coral);}
.condition-card .tag{
  display:inline-block;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;
  padding:.3em .85em;border-radius:999px 4px 999px 4px;background:var(--color-primary-tint);color:var(--color-primary-dark);margin-bottom:.7rem;
}
.condition-card.tag-high .tag{background:#f8e3d5;color:var(--color-accent-dark);}
.condition-card.peds .tag{background:#e6fbf8;color:#0b6d63;}
.condition-card.peds.tag-high .tag{background:#ffe9e5;color:#c14a3c;}
.condition-card h3{font-size:1.05rem;margin-bottom:.4rem;}
.condition-card p{color:var(--color-text-soft);margin:0;font-size:.95rem;}
.condition-card ul{color:var(--color-text-soft);margin:.6rem 0 0;padding-left:1.2rem;}
.condition-card ul li{margin-bottom:.3rem;}

/* ==================== ARTÍCULOS DE CONDICIONES (páginas individuales) ==================== */
.back-link{display:inline-flex;align-items:center;gap:.4em;font-weight:700;color:var(--color-primary);text-decoration:none;margin-bottom:1.2rem;transition:gap var(--transition-fast);}
.back-link:hover{color:var(--color-primary-dark);gap:.65em;}
.back-link svg{width:16px;height:16px;}
.prose{max-width:720px;margin:0 auto;font-size:1.05rem;}
.prose h2{margin-top:2.4rem;margin-bottom:.6rem;font-size:1.5rem;}
.prose h2:first-child{margin-top:0;}
.prose p,.prose li{color:var(--color-text-soft);}
.prose ul{padding-left:1.3rem;}
.prose ul li{margin-bottom:.4rem;}

/* Tarjetas grandes de pacientes (inicio) */
.patient-choice{display:grid;grid-template-columns:1fr 1fr;gap:1.8rem;}
.patient-choice-card{
  border-radius:var(--radius-organic-1);padding:2.4rem;color:#fff;position:relative;overflow:hidden;
  display:flex;flex-direction:column;justify-content:flex-end;min-height:280px;text-decoration:none;
  transition:transform var(--transition-med), border-radius var(--transition-med);
}
.patient-choice-card:hover{color:#fff;transform:translateY(-6px);border-radius:var(--radius-organic-2);}
.patient-choice-card::after{
  content:"";position:absolute;top:-30%;right:-20%;width:60%;height:60%;border-radius:50%;
  background:rgba(255,255,255,.12);
}
@media (min-width:781px){.patient-choice-card:nth-child(2){transform:translateY(1.8rem);}
  .patient-choice-card:nth-child(2):hover{transform:translateY(1.8rem) translateY(-6px);}}
.patient-choice-card.adulto{background:linear-gradient(135deg,var(--color-primary),var(--color-primary-dark));}
.patient-choice-card.infantil{background:linear-gradient(135deg,var(--color-peds-teal),var(--color-peds-coral));}
.patient-choice-card h3{color:#fff;font-size:1.6rem;}
.patient-choice-card p{color:rgba(255,255,255,.9);}
.patient-choice-card .go{font-weight:800;display:inline-flex;align-items:center;gap:.4em;}

/* ==================== ARTÍCULOS / CONFERENCIAS ==================== */
.article-list{display:grid;gap:1.8rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));}
.article-list > .article-card{max-width:420px;}
.article-card{
  border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;background:#fff;
  display:flex;flex-direction:column;box-shadow:var(--shadow-sm);transition:transform var(--transition-med), box-shadow var(--transition-med), border-radius var(--transition-med);
}
.article-card:hover{transform:translateY(-6px) rotate(-.4deg);box-shadow:var(--shadow-md);border-radius:var(--radius-organic-2);}
.article-card .thumb{aspect-ratio:16/9;background:var(--color-primary-tint);display:flex;align-items:center;justify-content:center;position:relative;}
.article-card .thumb svg{width:64px;height:64px;color:var(--color-primary-light);}
.article-card .badge{
  position:absolute;top:.7rem;left:.7rem;background:var(--color-accent);color:#fff;font-size:.72rem;font-weight:700;
  padding:.25em .7em;border-radius:999px 4px 999px 4px;text-transform:uppercase;letter-spacing:.03em;
}
.article-card .body{padding:1.3rem;display:flex;flex-direction:column;gap:.5rem;flex:1;}
.article-card h3{font-size:1.1rem;margin:0;}
.article-card p{color:var(--color-text-soft);font-size:.94rem;margin:0;flex:1;}
.article-card .read-more{font-weight:700;display:inline-flex;align-items:center;gap:.35em;margin-top:.4rem;}
.article-card .read-more svg{width:16px;height:16px;transition:transform var(--transition-fast);}
.article-card .read-more:hover svg{transform:translateX(4px);}
.article-meta{font-size:.78rem;color:var(--color-text-soft);}

/* Placeholder note (visible solo para quien edite el sitio, discreto) */
.placeholder-note{font-size:.75rem;color:var(--color-accent-dark);font-style:italic;}

/* ==================== ACERCA DE ==================== */
.about-intro{display:grid;grid-template-columns:340px 1fr;gap:3rem;align-items:center;}
.about-photo{
  background:linear-gradient(160deg,var(--color-primary-tint),var(--color-blue-tint));
  border-radius:var(--radius-organic-3);padding:1.8rem;display:flex;align-items:center;justify-content:center;
  position:relative;
}
.about-photo::before{content:"";position:absolute;inset:-14px;border:2px dashed var(--color-primary-light);border-radius:inherit;opacity:.5;}
.about-photo svg{width:100%;max-width:260px;}
.values-grid{margin-top:1rem;}
.commitment-block{
  background:var(--color-primary);color:#fff;border-radius:var(--radius-organic-1);padding:2.8rem;
  display:grid;grid-template-columns:1fr 1.3fr;gap:2.2rem;align-items:center;position:relative;overflow:hidden;
}
.commitment-block::before{content:"";position:absolute;bottom:-25%;left:-10%;width:50%;height:70%;border-radius:50%;background:rgba(255,255,255,.06);}
.commitment-block h2{color:#fff;}
.commitment-block ul{list-style:none;padding:0;margin:0;display:grid;gap:1rem;}
.commitment-block li{display:flex;gap:.7rem;align-items:flex-start;}
.commitment-block li svg{width:22px;height:22px;flex-shrink:0;color:var(--color-accent-light);margin-top:.15em;}

/* ==================== SERVICIOS ==================== */
.service-detail{border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:1rem;overflow:hidden;background:#fff;transition:box-shadow var(--transition-fast);}
.service-detail:hover{box-shadow:var(--shadow-sm);}
.service-detail summary{
  cursor:pointer;list-style:none;padding:1.3rem 1.5rem;display:flex;align-items:center;gap:1.1rem;font-weight:700;font-size:1.08rem;font-family:var(--font-display);
}
.service-detail summary::-webkit-details-marker{display:none;}
.service-detail summary::after{content:"+";margin-left:auto;font-size:1.5rem;color:var(--color-primary);transition:transform var(--transition-fast);}
.service-detail[open] summary::after{content:"–";}
.service-detail .icon-wrap{width:46px;height:46px;border-radius:var(--radius-organic-1);background:var(--color-primary-tint);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.service-detail .icon-wrap svg{width:22px;height:22px;color:var(--color-primary);}
.service-detail-body{padding:0 1.5rem 1.5rem 4.6rem;color:var(--color-text-soft);}

/* ==================== FAQ / ACCORDION genérico ==================== */
.faq-item{border-bottom:1px solid var(--color-border);}
.faq-item summary{cursor:pointer;padding:1.2rem 0;font-weight:700;font-family:var(--font-display);font-size:1.05rem;list-style:none;display:flex;justify-content:space-between;gap:1rem;}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{content:"⌄";font-size:1.3rem;color:var(--color-primary);}
.faq-item[open] summary::after{content:"⌃";}
.faq-item p{padding-bottom:1.1rem;color:var(--color-text-soft);}

/* ==================== GLOSARIO ==================== */
.glossary-toolbar{display:flex;flex-direction:column;gap:1.2rem;background:var(--color-bg-alt);border-radius:var(--radius-md);padding:1.5rem;margin-bottom:2rem;}
.glossary-search{display:flex;gap:.6rem;max-width:480px;}
.glossary-search input{flex:1;padding:.8em 1em;border-radius:999px;border:1px solid var(--color-border);font-size:1rem;}
.letter-nav{display:flex;flex-wrap:wrap;gap:.4rem;}
.letter-btn{
  width:38px;height:38px;border-radius:50%;border:1px solid var(--color-border);background:#fff;
  font-weight:700;cursor:pointer;color:var(--color-text-soft);transition:transform var(--transition-fast), background var(--transition-fast);
}
.letter-btn:hover{background:var(--color-primary-tint);transform:translateY(-2px);}
.letter-btn.is-active{background:var(--color-primary);border-color:var(--color-primary);color:#fff;}
.letter-btn:disabled{opacity:.35;cursor:not-allowed;}
.glossary-group h2{
  color:var(--color-accent-dark);border-bottom:2px solid var(--color-primary-tint);padding-bottom:.3rem;margin-top:2.2rem;
}
.glossary-term{
  background:var(--color-primary-tint);border-radius:var(--radius-sm);padding:1.1rem 1.3rem;margin-bottom:.8rem;
}
.glossary-term dt{font-family:var(--font-display);font-weight:700;color:var(--color-primary-dark);margin-bottom:.25rem;}
.glossary-term dd{margin:0;color:var(--color-text-soft);}
.glossary-empty{padding:2rem;text-align:center;color:var(--color-text-soft);}
mark{background:var(--color-peds-yellow);color:#26202b;border-radius:3px;padding:0 .1em;}

/* ==================== PEDIATRÍA ==================== */
.peds-hero{background:linear-gradient(135deg,var(--color-peds-tint),#eafcf9);}
.peds-hero::before{background:radial-gradient(circle at 35% 35%, rgba(255,111,89,.22), rgba(255,111,89,0) 68%);}
.peds-hero .hero-eyebrow{color:var(--color-peds-coral);}
.peds-hero h1::first-line{color:var(--color-peds-teal);}
.peds-values .icon-card .icon-wrap{background:#fff0ea;}
.peds-values .icon-card:nth-child(2) .icon-wrap{background:#e6fbf8;}
.peds-values .icon-card:nth-child(3) .icon-wrap{background:#fff8e1;}
.peds-values .icon-card svg{color:var(--color-peds-coral);}
.peds-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-radius:var(--radius-organic-1);overflow:hidden;}
.peds-col{padding:2.4rem 1.9rem;color:#fff;position:relative;}
.peds-col h3{color:#fff;font-size:1.35rem;text-transform:uppercase;}
.peds-col p{color:rgba(255,255,255,.92);margin:0;}
.peds-col.c1{background:var(--color-peds-teal);}
.peds-col.c2{background:var(--color-peds-coral);}
.peds-col.c3{background:#e0a800;}

/* ==================== MÉDICOS (tono profesional) ==================== */
.pro-header{background:linear-gradient(135deg,var(--color-primary-dark),var(--color-primary));color:#fff;padding:4rem 0;position:relative;overflow:hidden;}
.pro-header::before{content:"";position:absolute;top:-40%;right:-8%;width:40%;height:120%;border-radius:50%;background:rgba(255,255,255,.05);}
.pro-header h1{color:#fff;}
.pro-header p{color:var(--color-on-dark-soft);max-width:60ch;}
.pub-list{display:flex;flex-direction:column;gap:0;border-top:1px solid var(--color-border);}
.pub-item{display:grid;grid-template-columns:150px 1fr auto;gap:1.4rem;align-items:center;padding:1.5rem 0;border-bottom:1px solid var(--color-border);transition:transform var(--transition-fast);}
.pub-item:hover{transform:translateX(6px);}
.pub-item .pub-thumb{background:var(--color-primary-tint);border-radius:var(--radius-organic-1);aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;}
.pub-item .pub-thumb svg{width:36px;height:36px;color:var(--color-primary-light);}
.pub-item .pub-cat{color:var(--color-accent-dark);font-weight:800;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;}
.pub-item h3{margin:.2rem 0;font-size:1.15rem;}
.pub-item .pub-authors{color:var(--color-text-soft);font-size:.9rem;margin:0;}
.pub-item .pub-date{color:var(--color-text-soft);font-size:.85rem;}
.credential-item{border:1px solid var(--color-border);border-radius:var(--radius-sm);margin-bottom:.7rem;background:#fff;}
.credential-item summary{padding:1rem 1.2rem;font-weight:700;font-family:var(--font-display);cursor:pointer;display:flex;justify-content:space-between;list-style:none;}
.credential-item summary::-webkit-details-marker{display:none;}
.credential-item summary::after{content:"⌄";color:var(--color-primary);}
.credential-item[open] summary::after{content:"⌃";}
.credential-item .credential-body{padding:0 1.2rem 1rem;color:var(--color-text-soft);}
.referral-box{background:var(--color-bg-alt);border-radius:var(--radius-organic-1);padding:2.2rem;}

/* ==================== CONTACTO ==================== */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:2.8rem;align-items:start;}
.form-field{margin-bottom:1.2rem;}
.form-field label{display:block;font-weight:700;margin-bottom:.4rem;}
.form-field .hint{display:block;font-size:.82rem;color:var(--color-text-soft);margin-top:.3rem;}
.form-field input,.form-field textarea,.form-field select{
  width:100%;padding:.85em 1em;border:1px solid var(--color-border);border-radius:var(--radius-sm);
  font-size:1rem;font-family:inherit;background:#fff;color:var(--color-text);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);
}
.form-field input:focus,.form-field textarea:focus,.form-field select:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px var(--color-primary-tint);}
.form-field input:invalid[data-touched="true"],.form-field textarea:invalid[data-touched="true"]{border-color:#c0392b;}
.form-error{color:#c0392b;font-size:.85rem;margin-top:.3rem;display:none;}
.form-error.is-visible{display:block;}
.form-status{margin-top:1rem;padding:1em 1.2em;border-radius:var(--radius-sm);display:none;}
.form-status.is-visible{display:block;}
.form-status.success{background:#e6f7ec;color:#1e6b3c;}
.contact-info-card{background:var(--color-primary);color:#fff;border-radius:var(--radius-organic-1);padding:2.2rem;margin-bottom:1.5rem;position:relative;overflow:hidden;}
.contact-info-card::after{content:"";position:absolute;bottom:-30%;right:-15%;width:55%;height:70%;border-radius:50%;background:rgba(255,255,255,.06);}
.contact-info-card h3{color:#fff;}
.contact-info-list{list-style:none;padding:0;margin:0;display:grid;gap:1rem;position:relative;}
.contact-info-list li{display:flex;gap:.8rem;align-items:flex-start;}
.contact-info-list svg{width:22px;height:22px;flex-shrink:0;color:var(--color-accent-light);margin-top:.15em;}
.map-embed{border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--color-border);}
.map-embed iframe{width:100%;height:320px;border:0;display:block;}

/* ==================== BOTÓN FLOTANTE WHATSAPP ==================== */
.whatsapp-float{
  position:fixed;bottom:24px;right:24px;width:62px;height:62px;border-radius:44% 56% 62% 38% / 45% 40% 60% 55%;background:#25D366;
  display:flex;align-items:center;justify-content:center;box-shadow:0 10px 26px rgba(37,211,102,.4);z-index:1500;
  transition:transform var(--transition-med), border-radius var(--transition-med);
}
.whatsapp-float:hover{transform:scale(1.08) rotate(-4deg);border-radius:56% 44% 38% 62% / 55% 60% 40% 45%;}
.whatsapp-float svg{width:32px;height:32px;fill:#fff;}
.whatsapp-float .wa-tooltip{
  position:absolute;right:74px;background:var(--color-primary-dark);color:#fff;padding:.5em .9em;border-radius:10px 10px 2px 10px;font-size:.85rem;
  white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--transition-fast);
}
.whatsapp-float:hover .wa-tooltip,.whatsapp-float:focus .wa-tooltip{opacity:1;}

/* ==================== CTA banda final ==================== */
.cta-band{background:linear-gradient(135deg,var(--color-primary),var(--color-primary-dark));color:#fff;border-radius:var(--radius-organic-1);padding:3.2rem;text-align:center;position:relative;overflow:hidden;}
.cta-band::before{content:"";position:absolute;top:-40%;left:-10%;width:45%;height:100%;border-radius:50%;background:rgba(255,255,255,.05);}
.cta-band h2{color:#fff;}
.cta-band p{color:var(--color-on-dark-soft);max-width:56ch;margin:0 auto 1.5rem;position:relative;}
.cta-band .btn{position:relative;}

/* ==================== PIE DE PÁGINA ==================== */
.site-footer{background:var(--color-primary-dark);color:#dcecdf;padding:4rem 0 1.5rem;margin-top:4rem;position:relative;overflow:hidden;}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:2rem;position:relative;}
.footer-grid h3{font-family:var(--font-display);color:#fff;font-size:1.05rem;margin-bottom:1rem;}
.footer-grid ul{list-style:none;padding:0;margin:0;display:grid;gap:.6rem;}
.footer-grid a{color:#dcecdf;text-decoration:none;}
.footer-grid a:hover{color:#fff;text-decoration:underline;}
.footer-logo{display:flex;align-items:center;gap:.6rem;margin-bottom:1rem;}
.footer-logo strong{font-family:var(--font-display);color:#fff;font-size:1.3rem;}
.footer-bottom{border-top:1px solid rgba(255,255,255,.15);margin-top:2.5rem;padding-top:1.5rem;display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;font-size:.85rem;color:var(--color-on-dark-muted);}
.social-links{display:flex;gap:.6rem;}
.social-links a{width:38px;height:38px;border-radius:var(--radius-organic-1);background:rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;transition:background var(--transition-fast);}
.social-links a:hover{background:rgba(255,255,255,.2);}
.social-links svg{width:18px;height:18px;fill:#fff;}

/* ==================== CITAS (paciente) ==================== */
.tabs{display:flex;gap:.5rem;margin-bottom:2rem;border-bottom:1px solid var(--color-border);}
.tab-btn{
  background:transparent;border:none;cursor:pointer;padding:.9em 1.4em;font-weight:700;font-family:var(--font-display);
  font-size:1.05rem;color:var(--color-text-soft);position:relative;top:1px;
}
.tab-btn::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:3px;background:transparent;border-radius:3px 3px 0 0;transition:background var(--transition-fast);}
.tab-btn:hover{color:var(--color-primary-dark);}
.tab-btn.is-active{color:var(--color-primary-dark);}
.tab-btn.is-active::after{background:var(--color-accent);}
.tab-panel[hidden]{display:none;}

.status-badge{display:inline-flex;align-items:center;gap:.4em;padding:.3em .9em;border-radius:999px;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;}
.status-badge.pendiente{background:#fdf1d6;color:#8a6416;}
.status-badge.aceptada{background:var(--color-primary-tint);color:var(--color-primary-dark);}
.status-badge.rechazada{background:#fbe4e0;color:#a13a25;}
.status-badge.cancelada{background:var(--color-bg-alt);color:var(--color-text-soft);}

.lookup-code{
  display:inline-block;font-family:var(--font-display);font-size:2.2rem;font-weight:700;letter-spacing:.08em;
  background:var(--color-primary-tint);color:var(--color-primary-dark);padding:.4em .9em;border-radius:var(--radius-organic-1);
  margin:.6em 0;
}
.copy-btn{background:transparent;border:1px solid var(--color-border);border-radius:999px;padding:.4em 1em;font-weight:700;cursor:pointer;color:var(--color-primary);}
.copy-btn:hover{background:var(--color-primary-tint);}

.result-card{background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:2rem;box-shadow:var(--shadow-sm);}
.result-card dl{display:grid;grid-template-columns:auto 1fr;gap:.5rem 1.2rem;margin:1.2rem 0 0;}
.result-card dt{color:var(--color-text-soft);font-weight:600;}
.result-card dd{margin:0;font-weight:600;}
.instructions-box{background:var(--color-primary-tint);border-radius:var(--radius-sm);padding:1.2rem 1.4rem;margin-top:1.4rem;}
.instructions-box h4{margin:0 0 .4em;color:var(--color-primary-dark);}
.reject-box{background:#fbe9e6;border-radius:var(--radius-sm);padding:1.2rem 1.4rem;margin-top:1.4rem;color:#8a3018;}

/* ==================== ADMIN ==================== */
.admin-header{background:var(--color-primary-dark);color:#fff;padding:1.2rem 0;}
.admin-header .container{display:flex;align-items:center;justify-content:space-between;gap:1rem;}
.admin-header strong{font-family:var(--font-display);font-size:1.2rem;}
.admin-header .btn{padding:.5em 1.2em;font-size:.9rem;}
.admin-login-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-primary-tint),var(--color-bg));padding:1.5rem;}
.admin-login-card{max-width:380px;width:100%;background:#fff;border-radius:var(--radius-organic-1);padding:2.4rem;box-shadow:var(--shadow-md);}
.admin-filters{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1.6rem;}
.filter-chip{
  border:1px solid var(--color-border);background:#fff;border-radius:999px;padding:.5em 1.1em;font-weight:600;font-size:.9rem;
  cursor:pointer;color:var(--color-text-soft);
}
.filter-chip:hover{background:var(--color-bg-alt);}
.filter-chip.is-active{background:var(--color-primary);border-color:var(--color-primary);color:#fff;}
.appt-row{background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:1.4rem 1.6rem;margin-bottom:1rem;}
.appt-row-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap;}
.appt-row-head h3{margin:0 0 .2rem;font-size:1.1rem;}
.appt-meta{color:var(--color-text-soft);font-size:.88rem;margin:0;}
.appt-reason{margin:.8rem 0 0;color:var(--color-text);}
.appt-actions{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:1.1rem;}
.appt-actions .btn{padding:.55em 1.2em;font-size:.9rem;}
.appt-decision-form{margin-top:1.1rem;padding-top:1.1rem;border-top:1px dashed var(--color-border);display:grid;gap:.8rem;}
.appt-decision-form[hidden]{display:none;}
.admin-empty{text-align:center;color:var(--color-text-soft);padding:3rem 1rem;}
.admin-toolbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.6rem;flex-wrap:wrap;}
.article-row{background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:1.2rem 1.5rem;margin-bottom:.9rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;}
.article-row h3{margin:0;font-size:1.05rem;}
.article-row .appt-meta{margin-top:.2rem;}
.article-row .row-actions{display:flex;gap:.5rem;flex-wrap:wrap;}
.article-row .row-actions .btn{padding:.5em 1.1em;font-size:.85rem;}
.admin-form-panel{background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:1.8rem;margin-bottom:2rem;}
.admin-form-panel[hidden]{display:none;}
.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
.toast{
  position:fixed;bottom:24px;left:24px;background:var(--color-primary-dark);color:#fff;padding:.9em 1.4em;border-radius:var(--radius-sm);
  box-shadow:var(--shadow-md);z-index:3000;opacity:0;transform:translateY(10px);transition:opacity var(--transition-fast),transform var(--transition-fast);pointer-events:none;
}
.toast.is-visible{opacity:1;transform:translateY(0);}
.toast.is-error{background:#a13a25;}

/* ==================== RESPONSIVE ==================== */
@media (max-width:960px){
  .hero .container,.about-intro,.commitment-block,.contact-grid{grid-template-columns:1fr;}
  .hero-art{order:-1;}
  .patient-choice{grid-template-columns:1fr;}
  .patient-choice-card:nth-child(2){transform:none !important;}
  .peds-columns{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr 1fr;}
  .pub-item{grid-template-columns:100px 1fr;}
  .pub-item .pub-date{grid-column:2;}
  .grid-3 > *:nth-child(2), .grid-4 > *:nth-child(2), .grid-4 > *:nth-child(4){transform:none;}
}
@media (max-width:780px){
  .primary-nav{
    position:fixed;inset:0 0 0 auto;top:64px;height:calc(100vh - 64px);width:280px;max-width:85vw;
    background:#fff;border-left:1px solid var(--color-border);transform:translateX(100%);
    transition:transform var(--transition-med);overflow-y:auto;padding:1rem;
  }
  .primary-nav.is-open{transform:translateX(0);}
  .nav-menu{flex-direction:column;align-items:stretch;gap:.3rem;}
  .nav-menu a,.nav-menu button.nav-toggle{width:100%;}
  .nav-menu a::after,.nav-menu button.nav-toggle::after{display:none;}
  .dropdown{position:static;box-shadow:none;border:none;padding-left:.8rem;}
  #mobile-menu-toggle{display:inline-flex;}
  .site-search input[type="search"]{width:100px;}
  .footer-grid{grid-template-columns:1fr;}
}
@media (max-width:600px){
  .grid-3,.grid-2,.grid-4{grid-template-columns:1fr;}
  .form-grid-2{grid-template-columns:1fr;}
  .admin-toolbar{flex-direction:column;align-items:stretch;}
}
