/* index.css (reglas propias; lo compartido esta en base.css) — generado a partir de la deduplicacion de index.css / politica-de-cookies.css */

/* Cualquier elemento con el atributo hidden debe ocultarse SIEMPRE, aunque
     una clase le fije display:flex/grid/block para cuando está visible. */
  [hidden]{display:none !important;}

.profile-photo-col{
    background:linear-gradient(165deg,var(--noche-2),var(--noche-3));
    padding:36px;display:flex;flex-direction:column;justify-content:center;gap:22px;
  }

.profile-bio-group .profile-bio{margin-bottom:14px;}

.profile-bio-group .profile-bio:last-child{margin-bottom:28px;}

/* ===== AGENDA MÉDICA AUTOMÁTICA (Supabase) ===== */
  .visually-hidden{
    position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
    clip:rect(0,0,0,0);white-space:nowrap;border:0;
  }

.agenda-section{padding:0 0 48px;}

.agenda-service-switcher{
    max-width:720px;margin:0 auto 14px;display:flex;gap:10px;justify-content:center;flex-wrap:wrap;
  }

.agenda-card{
    max-width:720px;margin:0 auto;
    background:var(--blanco);border:1px solid var(--border);border-radius:var(--radius-l);
    box-shadow:var(--shadow-s);
    padding:26px 30px;
  }

@media(max-width:560px){ .agenda-card{padding:20px 18px;border-radius:var(--radius-m);} }

.agenda-card-skeleton{
    display:flex;align-items:center;gap:10px;color:var(--text-soft);font-size:0.92rem;
  }

.agenda-card-skeleton .agenda-dot{
    width:9px;height:9px;border-radius:50%;background:var(--salvia);flex-shrink:0;
    animation:availPulse 1.4s ease-in-out infinite;
  }

@media (prefers-reduced-motion:reduce){ .agenda-card-skeleton .agenda-dot{animation:none;} }

.agenda-state-title{font-size:1.15rem;margin-bottom:8px;}

.agenda-state-text, .agenda-state-when, .agenda-state-zones, .agenda-state-note{
    font-size:0.96rem;color:var(--text-soft);margin-top:4px;
  }

.agenda-state-when{font-weight:600;color:var(--noche);font-family:var(--ff-mono);font-size:0.92rem;}

.agenda-state-active .agenda-state-title{color:var(--salvia);}

.agenda-state-note{font-style:italic;}

.agenda-state-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px;}

/* Modal de la agenda pública */
  .agenda-modal-overlay{
    position:fixed;inset:0;background:rgba(11,34,41,0.55);
    display:flex;align-items:center;justify-content:center;
    padding:20px;z-index:500;
  }

.agenda-modal-overlay[hidden]{display:none;}

.agenda-modal{
    background:var(--blanco);border-radius:var(--radius-l);max-width:560px;width:100%;
    max-height:85vh;display:flex;flex-direction:column;box-shadow:var(--shadow-m);
  }

.agenda-modal-head{
    display:flex;align-items:center;justify-content:space-between;gap:12px;
    padding:22px 24px;border-bottom:1px solid var(--border);
  }

.agenda-modal-head h3{font-size:1.15rem;}

.agenda-modal-close{
    background:rgba(18,49,58,0.06);border:none;border-radius:100px;width:36px;height:36px;
    display:flex;align-items:center;justify-content:center;flex-shrink:0;
  }

.agenda-modal-close svg{width:16px;height:16px;stroke:var(--noche);}

.agenda-modal-body{padding:8px 24px 24px;overflow-y:auto;}

.agenda-day-group{margin-top:18px;}

.agenda-day-group:first-child{margin-top:8px;}

.agenda-day-title{font-size:0.98rem;color:var(--noche);margin-bottom:10px;text-transform:capitalize;}

.agenda-day-slots{display:flex;flex-direction:column;gap:10px;}

.agenda-slot-item{
    display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;
    background:var(--espuma);border:1px solid var(--border);border-radius:var(--radius-m);
    padding:14px 16px;
  }

.agenda-slot-info{display:flex;flex-direction:column;gap:3px;min-width:0;}

.agenda-slot-time{font-family:var(--ff-mono);font-weight:600;color:var(--noche);font-size:0.92rem;}

.agenda-slot-zones{font-size:0.84rem;color:var(--text-soft);}

.agenda-slot-note{font-size:0.84rem;color:var(--text-faint);font-style:italic;}

.agenda-modal-empty{color:var(--text-soft);margin-bottom:14px;}

.agenda-modal-more{margin-top:16px;width:100%;}

@media(max-width:480px){
    .agenda-slot-item{flex-direction:column;align-items:stretch;}
  }

/* .cookie-modal-head / .cookie-modal-close / .mt-14 / .text-sm: extraídos
   a css/components.css (rollout GA4/Consent Mode v2). */

/* ===== Utilidades minimas (sustituyen a los style="" inline que habia en index.html) ===== */
  .section-bg-white{background:var(--blanco);}

.section-bg-dark{background:var(--noche); color:var(--espuma);}

.pt-0{padding-top:0;}

/* ===== CTA FINAL (cierre de marca antes del footer) ===== */
  .cta-final-box{max-width:560px;margin:0 auto;text-align:center;}

.cta-final-box h2{color:var(--blanco);font-size:clamp(1.7rem,3.4vw,2.4rem);}

.cta-final-box p{margin-top:var(--space-4);color:rgba(245,243,238,0.75);font-size:1.05rem;}

.cta-final-box .btn{margin-top:var(--space-6);}

.mt-16{margin-top:16px;}

.mt-20{margin-top:20px;}

.mb-14{margin-bottom:14px;}

.inline-flex{display:inline-flex;}

.lead-soft{color:var(--text-soft); font-size:1.05rem;}

.footer-blurb{max-width:280px; font-size:0.92rem;}

.footer-note-small{max-width:280px; font-size:0.82rem; margin-top:14px; opacity:0.7;}

.link-agenda-cta{
    display:inline-flex; align-items:center; gap:6px; margin-top:14px;
    color:rgba(255,255,255,0.85); font-size:0.86rem; text-decoration:underline;
  }

/* ===== Mini-hero "Consulta online" (teaser hacia /consulta-online) =====
   Deliberadamente chico y de bajo contraste para no competir con el hero
   principal. Toda la información detallada vive en su propia página
   (consulta-online.html / css/consulta-online.css); acá solo el teaser. */
  .coming-soon-badge{
    display:inline-flex; align-items:center; gap:6px;
    background:var(--noche); color:var(--espuma);
    border-radius:100px; padding:6px 14px;
    font-family:var(--ff-mono); font-size:0.72rem; font-weight:700;
    letter-spacing:0.08em; text-transform:uppercase; white-space:nowrap;
  }

.online-teaser{
    display:flex; align-items:center; justify-content:space-between; gap:32px;
    background:var(--salvia-soft); border-radius:var(--radius-l);
    padding:34px 40px; margin:0 0 8px; overflow:hidden; position:relative;
  }

.online-teaser-copy{flex:1 1 auto; min-width:0; max-width:520px;}

.online-teaser-head{display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:10px;}

.online-teaser-copy h2{font-size:1.4rem; margin-bottom:8px;}

.online-teaser-copy p{color:var(--text-soft); font-size:0.95rem; margin-bottom:20px;}

/* Ilustración: mockup de chat, a la derecha de la card */
  .online-teaser-visual{
    position:relative; width:220px; height:180px; flex-shrink:0;
    display:flex; align-items:center; justify-content:center;
  }

.teaser-blob{
    position:absolute; width:200px; height:200px; border-radius:50%;
    background:radial-gradient(circle, rgba(200,103,46,0.22), rgba(200,103,46,0) 70%);
    animation:blobfloat1 7s ease-in-out infinite;
  }

.chat-mock{
    position:relative; width:190px; background:var(--blanco); border-radius:18px;
    box-shadow:var(--shadow-m); padding:14px; transform:rotate(-4deg);
    transition:transform .3s ease;
  }

.online-teaser:hover .chat-mock{transform:rotate(-1deg) translateY(-3px);}

.chat-mock-head{
    display:flex; align-items:center; gap:8px; margin-bottom:10px;
    padding-bottom:10px; border-bottom:1px solid var(--border);
  }

.chat-mock-avatar{
    width:28px; height:28px; border-radius:50%; background:var(--noche);
    display:flex; align-items:center; justify-content:center; flex-shrink:0;
  }

.chat-mock-avatar svg{width:15px; height:15px; stroke:var(--espuma);}

.chat-mock-status{display:flex; align-items:center; gap:5px; font-size:0.7rem; color:var(--text-soft); font-weight:600;}

.status-dot{width:7px; height:7px; border-radius:50%; background:var(--salvia); animation:statusPulse 2s ease-in-out infinite;}

.chat-mock-body{display:flex; flex-direction:column; gap:8px;}

.chat-bubble-mock{font-size:0.76rem; padding:8px 11px; border-radius:12px; max-width:85%; line-height:1.3;}

.chat-bubble-mock.patient{align-self:flex-end; background:var(--terracota-soft); color:var(--noche); border-bottom-right-radius:4px;}

.chat-bubble-mock.doctor{
    align-self:flex-start; background:var(--espuma); border-bottom-left-radius:4px;
    display:flex; gap:4px; align-items:center; padding:11px;
  }

.chat-dot{width:6px; height:6px; border-radius:50%; background:var(--text-faint); animation:onlineTeaserTyping 1.2s ease-in-out infinite;}

.chat-dot:nth-child(2){animation-delay:0.15s;}

.chat-dot:nth-child(3){animation-delay:0.3s;}

@keyframes onlineTeaserTyping{
    0%,60%,100%{transform:translateY(0); opacity:0.45;}
    30%{transform:translateY(-4px); opacity:1;}
  }

@keyframes statusPulse{
    0%,100%{box-shadow:0 0 0 0 rgba(143,169,140,0.55);}
    50%{box-shadow:0 0 0 5px rgba(143,169,140,0);}
  }

@media (prefers-reduced-motion:reduce){ .chat-dot, .status-dot, .teaser-blob{animation:none;} }

@media(max-width:820px){
    .online-teaser{flex-direction:column; text-align:center; padding:28px 24px;}
    .online-teaser-copy{max-width:none;}
    .online-teaser-head{justify-content:center;}
    .online-teaser-visual{margin-top:6px;}
    .chat-mock{transform:rotate(0deg);}
  }
