/* Estilos comunes personalizados (no incluidos en Tailwind) */
html { scroll-behavior: smooth; }
.glass { backdrop-filter: blur(14px); background: linear-gradient(to bottom right, rgba(255,255,255,.85), rgba(255,255,255,.7)); }
.section-pad { padding-top: 5rem; padding-bottom: 5rem; }

/* Directorio Médico */
body.grad-bg { background: linear-gradient(130deg,#ffffff 0%,#f6f6f6 50%,#ececec 100%); }
.tag-btn[aria-pressed='true'], .view-btn[aria-pressed='true'] { background:#900; color:#fff; }
@keyframes fadeIn {0%{opacity:0;transform:translateY(12px);}100%{opacity:1;transform:translateY(0);} }
.fade-in { animation: fadeIn .5s ease forwards; }
.doctor-card { background:linear-gradient(160deg,#ffffff,#fff6f6); border:1px solid rgba(148,0,0,.12); box-shadow:0 12px 30px -18px rgba(148,0,0,.35),0 10px 24px -16px rgba(15,23,42,.25); border-radius:1.75rem; overflow:hidden; }
.doctor-card .content h3 { font-size:1.05rem; }
.doctor-photo-wrap { position:relative; border-radius:1.5rem; overflow:hidden; background:radial-gradient(circle at 25% 25%,rgba(255,255,255,.5),rgba(148,0,0,.14)); box-shadow:0 16px 40px -24px rgba(0,0,0,.55),0 0 0 1px rgba(148,0,0,.08); isolation:isolate; }
.doctor-photo-img { width:100%; height:220px; object-fit:cover; display:block; transition:transform .6s ease, filter .6s ease; filter:saturate(1.05) contrast(1.02); }
.doctor-photo-gradient { position:absolute; inset:auto 0 0 0; height:45%; background:linear-gradient(0deg,rgba(255,255,255,.75),rgba(255,255,255,0)); z-index:1; opacity:.9; pointer-events:none; }
.doctor-card:hover .doctor-photo-img { transform:scale(1.04); filter:saturate(1.08) contrast(1.05); }
@keyframes pulse {0%,100%{transform:scale(1);opacity:.75}50%{transform:scale(1.35);opacity:1} }
.pulse-dot { animation:pulse 1.8s ease-in-out infinite; }
.list-mode .doctor-card { display:flex; flex-direction:row; align-items:flex-start; }
.list-mode .doctor-card .doctor-photo-wrap { width:110px; min-width:110px; height:110px; border-radius:1.25rem; box-shadow:0 8px 26px -20px rgba(0,0,0,.6),0 0 0 1px rgba(148,0,0,.08); }
.list-mode .doctor-card .doctor-photo-img { height:100%; }
.list-mode .doctor-card .doctor-photo-gradient { height:55%; background:linear-gradient(0deg,rgba(255,255,255,.8),rgba(255,255,255,0)); }
.list-mode .doctor-card .content { flex:1; margin-left:1rem; margin-top:0; }
.list-mode .doctor-card .line-clamp-3 { -webkit-line-clamp:2; line-clamp:2; }
.modal-panel { opacity:0; transform:scale(.95) translateY(8px); transition:all .22s cubic-bezier(.4,0,.2,1); }
#doctorModal.modal-open .modal-panel { opacity:1; transform:scale(1) translateY(0); }
.doctor-modal-card { background:#fff; display:flex; flex-direction:column; box-shadow:0 30px 80px -30px rgba(15,23,42,.55),0 0 0 1px rgba(148,0,0,.08); }
.modal-bio-side { background:linear-gradient(165deg,#111827 0%,#3d0606 45%,#900 100%); position:relative; overflow:hidden; }
.modal-bio-side::after { content:''; position:absolute; inset:0; background:radial-gradient(circle at 30% 20%,rgba(255,255,255,.18),transparent 55%); pointer-events:none; }
.modal-avatar-ring { position:absolute; inset:-12px; width:calc(100% + 24px); height:calc(100% + 24px); border-radius:32px; border:1px solid rgba(255,255,255,.25); pointer-events:none; }
.modal-bio-side h3 { letter-spacing:-0.02em; }
.modal-bio-side p { letter-spacing:.04em; }
.doctor-modal-card h4 { letter-spacing:.2em; font-size:.78rem; }
.doctor-modal-card #modalHighlights span { border-radius:999px; padding:.4rem .9rem; font-size:.75rem; font-weight:600; }
.modal-contact-btn { background:#25D366; color:#fff; box-shadow:0 10px 25px -12px rgba(37,211,102,.7); }
.modal-contact-btn[data-mode="phone"] { background:#0ea5e9; box-shadow:0 10px 25px -12px rgba(14,165,233,.6); }
.modal-contact-btn.disabled { opacity:.5; pointer-events:none; }
.modal-contact-btn svg { width:1.1rem; height:1.1rem; }
.modal-print-btn { box-shadow:0 10px 24px -12px rgba(15,23,42,.15); }
@media (max-width:768px){
	#doctorModal { align-items:flex-start; padding:2.25rem 1rem 1.5rem; }
	#doctorModal .modal-panel { max-height:calc(100vh - 2rem); overflow:auto; border-radius:1.5rem; }
	#doctorModal .doctor-modal-card { max-width:none; }
	#doctorModal #modalCloseIcon { position:fixed; top:1rem; right:1rem; z-index:60; box-shadow:0 12px 30px -14px rgba(15,23,42,.5); }
	#doctorModal .modal-profile { width:100%; padding:2.4rem 1.3rem 1.3rem; text-align:center; }
	#doctorModal .modal-profile img { height:9rem; width:9rem; }
	#doctorModal .modal-details { width:100%; padding:1.5rem 1.25rem 2rem; overflow:visible; }
	#doctorModal .modal-details .grid { gap:1.5rem; }
	#doctorModal #modalHighlights { gap:.6rem; }
	#doctorModal .modal-contact-btn,
	#doctorModal .modal-print-btn { width:100%; justify-content:center; }
}

/* Hover genérico para cards de banner y noticias */
.hover-card { transition: all .28s cubic-bezier(.4,0,.2,1); position: relative; }
.hover-card::after { content:''; position:absolute; inset:0; border-radius:inherit; box-shadow:0 0 0 0 rgba(153,0,0,0.35); opacity:0; transition:inherit; }
.hover-card:hover { transform: translateY(-4px); box-shadow:0 8px 28px -8px rgba(0,0,0,0.25),0 0 0 1px rgba(153,0,0,0.15); }
.hover-card:hover::after { box-shadow:0 0 0 3px rgba(153,0,0,0.35); opacity:1; }
.hover-card:focus-visible { outline: none; transform: translateY(-4px); box-shadow:0 8px 28px -8px rgba(0,0,0,0.3),0 0 0 3px rgba(153,0,0,.55); }

/* Banner destacado más llamativo */
.highlight-banner { position:relative; background:linear-gradient(120deg,#ffeaea 0%,#fff4f4 40%,#ffffff 100%); border:1px solid rgba(153,0,0,.35); box-shadow:0 12px 34px -12px rgba(153,0,0,.35),0 6px 16px -6px rgba(0,0,0,.15); transition: box-shadow .35s cubic-bezier(.4,0,.2,1),transform .35s cubic-bezier(.4,0,.2,1); }
.highlight-banner:hover { transform:translateY(-3px); box-shadow:0 18px 42px -14px rgba(153,0,0,.45),0 8px 22px -8px rgba(0,0,0,.25); }
.highlight-banner::before { content:''; position:absolute; inset:0; border-radius:inherit; pointer-events:none; background:radial-gradient(circle at 85% 20%, rgba(153,0,0,.12), transparent 60%); }
.accent-bar { position:absolute; inset-y:0; left:0; width:10px; background:linear-gradient(#900,#b30000); border-top-left-radius:inherit; border-bottom-left-radius:inherit; }
.live-dot { width:11px; height:11px; border-radius:50%; background:#900; box-shadow:0 0 0 0 rgba(153,0,0,.6); animation:livePulse 2.6s infinite; display:inline-block; }
@keyframes livePulse { 0% { box-shadow:0 0 0 0 rgba(153,0,0,.55);} 65% { box-shadow:0 0 0 12px rgba(153,0,0,0);} 100% { box-shadow:0 0 0 0 rgba(153,0,0,0);} }

/* Quiénes Somos estilos elegantes */
.prose-history { font-size:1.05rem; line-height:1.75; column-gap:3rem; text-align:justify; hyphens:auto; }
@media (min-width:1024px){ .prose-history.cols-2 { column-count:2; } }
.history-dropcap:first-letter { float:left; font-size:3.4rem; line-height:1; padding:.35rem .6rem .25rem .6rem; margin:.05rem .75rem .4rem 0; font-weight:700; background:linear-gradient(135deg,#900,#b80000); color:#fff; border-radius:.9rem; box-shadow:0 8px 24px -6px rgba(153,0,0,.35); }
.timeline { position:relative; }
.timeline::before { content:''; position:absolute; left:0.65rem; top:0; bottom:0; width:3px; background:linear-gradient(#900,#b80000); border-radius:2px; }
.tl-item { position:relative; padding-left:2.5rem; margin-bottom:2.2rem; }
.tl-item:last-child { margin-bottom:0; }
.tl-item::before { content:''; position:absolute; left:0; top:.35rem; width:1.15rem; height:1.15rem; background:#fff; border:3px solid #900; border-radius:50%; box-shadow:0 0 0 4px rgba(153,0,0,.15); }
.tl-year { font-weight:700; font-size:.85rem; letter-spacing:.08em; text-transform:uppercase; color:#900; }
.tl-content { margin-top:.35rem; font-size:.9rem; color:#444; }
.history-card { background:linear-gradient(135deg,#ffffff,#fff5f5); border:1px solid rgba(153,0,0,.15); box-shadow:0 10px 26px -10px rgba(0,0,0,.15); transition:.3s cubic-bezier(.4,0,.2,1); }
.history-card:hover { box-shadow:0 18px 40px -14px rgba(0,0,0,.28),0 0 0 1px rgba(153,0,0,.35); transform:translateY(-4px); }

/* Misión y Visión */
.statement-grid { display:grid; gap:2rem; }
@media (min-width:900px){ .statement-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
.statement-card { position:relative; background:linear-gradient(145deg,#ffffff,#fff7f7); border:1px solid rgba(153,0,0,.18); padding:2.25rem 2rem 2.4rem; border-radius:1.75rem; box-shadow:0 10px 30px -12px rgba(153,0,0,.25),0 6px 18px -8px rgba(0,0,0,.18); transition:.35s cubic-bezier(.4,0,.2,1); }
.statement-card:hover { transform:translateY(-6px); box-shadow:0 18px 46px -16px rgba(153,0,0,.35),0 0 0 1px rgba(153,0,0,.35); }
.statement-card h3 { font-size:1.05rem; letter-spacing:.08em; text-transform:uppercase; font-weight:700; margin-bottom:1rem; display:flex; align-items:center; gap:.6rem; color:#900; }
.statement-card p { font-size:.92rem; line-height:1.65; text-align:justify; hyphens:auto; color:#454545; }
.icon-ring { width:42px; height:42px; border-radius:50%; background:linear-gradient(135deg,#900,#b10000); display:grid; place-items:center; color:#fff; box-shadow:0 6px 18px -6px rgba(153,0,0,.45); }

/* Contador Años de Servicio */
.years-band { display:grid; gap:2rem; }
@media (min-width:960px){ .years-band { grid-template-columns:repeat(3,minmax(0,1fr)); } }
.years-card { position:relative; background:linear-gradient(145deg,#fff,#fff4f4); border:1px solid rgba(153,0,0,.18); padding:2.2rem 1.9rem 2.3rem; border-radius:1.75rem; box-shadow:0 12px 30px -14px rgba(153,0,0,.28),0 6px 18px -10px rgba(0,0,0,.15); overflow:hidden; }
.years-card::after { content:''; position:absolute; inset:0; background:radial-gradient(circle at 80% 25%,rgba(153,0,0,.12),transparent 60%); pointer-events:none; }
.years-value { font-size:3.4rem; font-weight:800; line-height:1; letter-spacing:-.025em; background:linear-gradient(90deg,#900,#c40000); -webkit-background-clip:text; color:transparent; filter:drop-shadow(0 6px 14px rgba(153,0,0,.35)); }
.years-label { margin-top:.65rem; font-size:.85rem; letter-spacing:.18em; text-transform:uppercase; font-weight:600; color:#900; }
.years-desc { margin-top:1rem; font-size:.85rem; line-height:1.5; color:#555; text-align:justify; hyphens:auto; }

/* Galería Antes / Después */
.facade-gallery { display:grid; gap:2.25rem; }
@media (min-width:900px){ .facade-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); } }
.facade-item { position:relative; border-radius:1.75rem; overflow:hidden; background:#fff; box-shadow:0 18px 42px -15px rgba(0,0,0,.25),0 0 0 1px rgba(153,0,0,.15); transition:.45s cubic-bezier(.4,0,.2,1); }
.facade-item:hover { transform:translateY(-6px); box-shadow:0 24px 54px -18px rgba(0,0,0,.32),0 0 0 1px rgba(153,0,0,.35); }
.facade-img { width:100%; height:340px; object-fit:cover; display:block; filter:saturate(1.02) contrast(1.02); transition:.8s ease; }
@media (min-width:1024px){ .facade-img { height:380px; } }
.facade-item:hover .facade-img { transform:scale(1.04); }
.facade-overlay { position:absolute; inset:0; background:linear-gradient(to top,rgba(0,0,0,.55),rgba(0,0,0,.15) 55%,rgba(0,0,0,0)); pointer-events:none; }
.facade-caption { position:absolute; left:0; right:0; bottom:0; padding:1.15rem 1.4rem 1.25rem; color:#fff; }
.facade-tag { display:inline-flex; align-items:center; gap:.4rem; font-size:.65rem; letter-spacing:.16em; font-weight:600; text-transform:uppercase; padding:.4rem .75rem; border-radius:999px; background:rgba(153,0,0,.85); box-shadow:0 4px 14px -4px rgba(153,0,0,.5); }
.facade-title { margin-top:.75rem; font-size:1.1rem; font-weight:700; line-height:1.25; }
.facade-year { font-size:.7rem; letter-spacing:.18em; opacity:.8; font-weight:600; margin-top:.35rem; }

/* Página Contacto */
.contact-grid { display:grid; gap:1.6rem; }
@media (min-width:880px){ .contact-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
.contact-card { position:relative; background:linear-gradient(145deg,#ffffff,#fff6f6); border:1px solid rgba(153,0,0,.18); padding:1.9rem 1.6rem 2rem; border-radius:1.5rem; box-shadow:0 14px 36px -16px rgba(0,0,0,.28),0 0 0 1px rgba(153,0,0,.18); transition:.45s cubic-bezier(.4,0,.2,1); overflow:hidden; }
.contact-card:hover { transform:translateY(-5px); box-shadow:0 22px 52px -20px rgba(0,0,0,.34),0 0 0 1px rgba(153,0,0,.35); }
.contact-card h3 { display:flex; align-items:center; gap:.65rem; font-size:.9rem; letter-spacing:.15em; text-transform:uppercase; font-weight:700; color:#900; margin-bottom:.85rem; }
.contact-card p { font-size:.9rem; line-height:1.55; color:#444; }
.icon-pill { width:40px; height:40px; border-radius:50%; background:linear-gradient(135deg,#900,#b30000); display:grid; place-items:center; color:#fff; box-shadow:0 6px 18px -6px rgba(153,0,0,.45); }
.map-shell { position:relative; border-radius:1.75rem; overflow:hidden; box-shadow:0 20px 56px -24px rgba(0,0,0,.45),0 0 0 1px rgba(153,0,0,.2); background:#fff; }
.map-shell iframe { width:100%; height:100%; border:0; filter:saturate(1.05) contrast(1.05); }
.ratio-16x9 { aspect-ratio:16/9; }
.contact-cta a { text-decoration:none; }

/* Formulario de contacto */
.contact-form-wrap { max-width:520px; margin:0 auto; background:linear-gradient(120deg,#fff,#fff7f7); border-radius:1.5rem; box-shadow:0 10px 32px -12px rgba(153,0,0,.13); padding:2.5rem 2rem 2.2rem; border:1px solid rgba(153,0,0,.10); }
.contact-form-title { font-size:1.4rem; font-weight:700; color:#900; margin-bottom:1.2rem; letter-spacing:.04em; }
.contact-form label { display:block; font-size:.95rem; font-weight:500; color:#900; margin-bottom:.4rem; }
.contact-form input, .contact-form textarea { width:100%; border-radius:.8rem; border:1px solid #e2e2e2; background:#fff; padding:.85rem 1rem; font-size:.98rem; color:#333; margin-bottom:1.2rem; transition:.2s border-color; box-shadow:0 2px 8px -6px rgba(153,0,0,.08); }
.contact-form input:focus, .contact-form textarea:focus { outline:none; border-color:#900; box-shadow:0 0 0 2px #9002; }
.contact-form textarea { min-height:110px; resize:vertical; }
.contact-form button { display:inline-flex; align-items:center; gap:.6rem; background:#900; color:#fff; font-weight:600; border:none; border-radius:.8rem; padding:.85rem 2.2rem; font-size:1rem; box-shadow:0 4px 16px -6px rgba(153,0,0,.18); cursor:pointer; transition:.2s background; }
.contact-form button:hover, .contact-form button:focus-visible { background:#b30000; }
.contact-form [disabled] { opacity:.6; cursor:not-allowed; }

/* Botón directorio médico destacado */
.btn-glow { position:relative; }
.btn-glow::before { content:''; position:absolute; inset:-4px; border-radius:inherit; background:radial-gradient(circle at 30% 30%,rgba(153,0,0,.35),transparent 60%); opacity:0; transform:scale(.85); transition:.6s cubic-bezier(.4,0,.2,1); pointer-events:none; }
.btn-glow::after { content:''; position:absolute; inset:0; border-radius:inherit; background:linear-gradient(120deg,rgba(153,0,0,.15),rgba(255,255,255,0) 55%); mix-blend-mode:multiply; opacity:.0; transition:.6s cubic-bezier(.4,0,.2,1); pointer-events:none; }
.btn-glow:hover::before, .btn-glow:focus-visible::before { opacity:.9; transform:scale(1); }
.btn-glow:hover::after, .btn-glow:focus-visible::after { opacity:.6; }
.btn-glow { box-shadow:0 8px 26px -8px rgba(0,0,0,.28),0 0 0 1px rgba(153,0,0,.15); }
.btn-glow:hover { box-shadow:0 12px 36px -12px rgba(0,0,0,.35),0 0 0 2px rgba(153,0,0,.25); }
@keyframes pulseAura { 0% { box-shadow:0 0 0 0 rgba(153,0,0,.45);} 70% { box-shadow:0 0 0 14px rgba(153,0,0,0);} 100% { box-shadow:0 0 0 0 rgba(153,0,0,0);} }
.btn-glow.aura { animation:pulseAura 3.8s ease-in-out infinite; }
