/* ==========================================================================
   DISEÑO MODERNO PARA LAS PÁGINAS DE SERVICIOS  (body.dm)
   Medicina general · Laboratorio · SMAPS · Gestión de riesgos · Inyectología
   · Salud y desarrollo comunitario · Solicitar capacitación
   Paleta: rojo #E50914 · marino #1A2530 · azul #00719E/#00A0DC
   ========================================================================== */
.dm { --rojo:#E50914; --rojo-osc:#8B0000; --marino:#1A2530; --marino2:#2A3B4C; --azul:#00719E; --azul-cl:#00A0DC; --gris:#F1F5F9; --r:18px; background:#fff; }
.dm h1,.dm h2,.dm h3 { font-family:'Poppins','Inter',sans-serif; }
.dm-wrap { max-width:1100px; margin:0 auto; }

/* ---------- Aparición al scroll ---------- */
.js .rv { opacity:0; transform:translateY(26px); transition:opacity .65s ease var(--d,0s), transform .65s cubic-bezier(.2,.7,.2,1) var(--d,0s); }
.js .rv.visto { opacity:1; transform:none; }

/* ---------- HERO ---------- */
.dm-hero { position:relative; color:#fff; padding:8.2rem 1.5rem 6.5rem; overflow:hidden; }
.dm-hero.rojo  { background:radial-gradient(circle at 85% 15%, rgba(255,255,255,.16), transparent 42%), linear-gradient(130deg,#5c0008 0%,#B90710 45%,#E50914 100%); }
.dm-hero.azul  { background:radial-gradient(circle at 85% 15%, rgba(255,255,255,.16), transparent 42%), linear-gradient(130deg,#00394F 0%,#00719E 55%,#00A0DC 100%); }
.dm-hero.marino{ background:radial-gradient(circle at 85% 15%, rgba(229,9,20,.35), transparent 45%), linear-gradient(130deg,#0E1A24 0%,#1A2530 45%,#2A3B4C 100%); }
.dm-bg span { position:absolute; border-radius:50%; background:rgba(255,255,255,.08); animation:dmFlota 14s ease-in-out infinite; }
.dm-bg span:nth-child(1){width:220px;height:220px;left:-60px;top:22%}
.dm-bg span:nth-child(2){width:80px;height:80px;left:46%;top:14%;animation-delay:-3s}
.dm-bg span:nth-child(3){width:300px;height:300px;right:-90px;bottom:0;animation-delay:-6s}
.dm-bg span:nth-child(4){width:44px;height:44px;left:30%;bottom:24%;animation-delay:-2s;background:rgba(255,255,255,.16)}
.dm-bg span:nth-child(5){width:120px;height:120px;right:32%;top:10%;animation-delay:-8s}
@keyframes dmFlota { 0%,100%{transform:translate(0,0)} 50%{transform:translate(16px,-24px)} }
.dm-hero-grid { position:relative; max-width:1180px; margin:0 auto; display:grid; grid-template-columns:1.2fr .8fr; gap:2.5rem; align-items:center; }
.dm-volver { display:inline-block; color:rgba(255,255,255,.88); font-weight:600; font-size:.9rem; text-decoration:none; margin-bottom:1.3rem; }
.dm-volver:hover { text-decoration:underline; }
.dm-etiqueta { display:inline-block; background:rgba(255,255,255,.16); border:1px solid rgba(255,255,255,.35); font-size:.78rem; font-weight:700; letter-spacing:1.2px; text-transform:uppercase; padding:.35rem .95rem; border-radius:50px; margin-bottom:1rem; }
.dm-hero h1 { font-size:clamp(2rem,4.6vw,3.3rem); line-height:1.1; font-weight:800; margin:0 0 1rem; text-transform:none; }
.dm-hero h1::after { content:""; display:block; width:90px; height:6px; border-radius:6px; margin-top:.9rem; background:#fff; opacity:.9; transform-origin:left; animation:dmSub 1s .4s both; }
@keyframes dmSub { from{transform:scaleX(0)} to{transform:scaleX(1)} }
.dm-lead { font-size:1.12rem; line-height:1.65; max-width:580px; color:rgba(255,255,255,.93); margin:0 0 1.7rem !important; }
.dm-lead strong { color:#fff; }
.dm-botones { display:flex; flex-wrap:wrap; gap:.9rem; margin-bottom:1.5rem; }
.dm-btn { display:inline-block; padding:.85rem 1.6rem; border-radius:50px; font-weight:700; font-size:.96rem; text-decoration:none; transition:transform .2s, box-shadow .2s, background .2s, color .2s; cursor:pointer; }
.dm-btn:hover { transform:translateY(-3px); }
.dm-btn-fuerte { background:#fff; color:var(--rojo); box-shadow:0 10px 26px rgba(0,0,0,.25); }
.dm-hero.azul .dm-btn-fuerte { color:var(--azul); } .dm-hero.marino .dm-btn-fuerte { color:var(--marino); }
.dm-btn-fuerte:hover { box-shadow:0 14px 32px rgba(0,0,0,.35); }
.dm-btn-suave { background:rgba(255,255,255,.14); color:#fff; border:2px solid rgba(255,255,255,.6); }
.dm-btn-suave:hover { background:rgba(255,255,255,.28); }
.dm-chips { list-style:none; display:flex; flex-wrap:wrap; gap:.55rem; padding:0; margin:0; }
.dm-chips li { font-size:.84rem; font-weight:600; background:rgba(0,0,0,.22); padding:.35rem .85rem; border-radius:50px; }
.dm-hero-art { position:relative; width:min(100%,340px); aspect-ratio:1; margin:0 auto; }
.dm-orbe { position:absolute; inset:14%; border-radius:50%; display:grid; place-items:center; font-size:clamp(4rem,9vw,6.4rem); background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.35); backdrop-filter:blur(6px); box-shadow:0 20px 50px rgba(0,0,0,.25), inset 0 0 40px rgba(255,255,255,.12); animation:dmOrbe 5s ease-in-out infinite; }
.dm-orbe::before,.dm-orbe::after { content:""; position:absolute; inset:-14%; border-radius:50%; border:2px dashed rgba(255,255,255,.35); animation:dmGira 26s linear infinite; }
.dm-orbe::after { inset:-30%; border-style:solid; border-color:rgba(255,255,255,.14); animation-duration:40s; animation-direction:reverse; }
@keyframes dmOrbe { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-10px)} }
@keyframes dmGira { to{transform:rotate(360deg)} }
.dm-sat { position:absolute; width:58px; height:58px; display:grid; place-items:center; font-size:1.7rem; background:#fff; border-radius:50%; box-shadow:0 10px 24px rgba(0,0,0,.25); animation:dmSat 6s ease-in-out infinite; }
.dm-sat.s1 { left:0; top:18%; } .dm-sat.s2 { right:2%; top:8%; animation-delay:-2s; } .dm-sat.s3 { right:10%; bottom:2%; animation-delay:-4s; }
@keyframes dmSat { 0%,100%{transform:translate(0,0) scale(1)} 50%{transform:translate(0,-14px) scale(1.06)} }
.dm-onda { position:absolute; left:0; bottom:-1px; width:100%; height:56px; display:block; }
.dm-onda path { fill:#fff; }

/* ---------- SECCIONES ---------- */
.dm-body { background:#fff; }
.dm-sec { padding:4.2rem 1.5rem; }
.dm-body > .dm-sec:nth-child(even) { background:#F8FAFC; }
.dm .dm-sec h2 { text-align:center; font-size:clamp(1.6rem,3vw,2.2rem); line-height:1.2; color:var(--marino); font-weight:800; margin:0 0 2.2rem; }
.dm .dm-sec h2::after { content:""; display:block; width:64px; height:5px; border-radius:5px; margin:.8rem auto 0; background:linear-gradient(90deg,var(--rojo),#FF6B73); }
.dm .dm-sec > .dm-wrap > p { max-width:760px; margin-left:auto; margin-right:auto; text-align:center; color:#5B6B7B; font-size:1.02rem; }
.dm .dm-sec .dm-wrap > h2 + p { margin-top:-1rem; }

/* Aviso destacado */
.dm .aviso-destacado { position:relative; min-height:68px; background:linear-gradient(135deg,#FFF7E8,#FFF1D6); border:1px solid #F5D8A0; border-left:6px solid #E5A017; border-radius:16px; padding:1.2rem 1.5rem 1.2rem 4.6rem; margin:2rem auto; max-width:900px; color:#5c4210; box-shadow:0 8px 22px rgba(229,160,23,.12); }
.dm .aviso-destacado::before { content:"💡"; position:absolute; left:1rem; top:50%; transform:translateY(-50%); width:44px; height:44px; display:grid; place-items:center; font-size:1.4rem; background:#fff; border-radius:50%; box-shadow:0 4px 10px rgba(0,0,0,.08); }
.dm .aviso-destacado strong { color:#5c4210; }

/* Estado en vivo */
.dm-estado { display:flex; align-items:center; justify-content:center; gap:.6rem; width:fit-content; margin:0 auto 1.6rem; padding:.55rem 1.2rem; border-radius:50px; font-weight:700; font-size:.92rem; background:#E8F5EC; color:#17663A; border:1px solid #BFE3CB; }
.dm-estado i { width:10px; height:10px; border-radius:50%; background:#22A559; animation:dmPulso 1.6s infinite; }
.dm-estado.cerrado { background:#F1F5F9; color:#475569; border-color:#D5DDE6; } .dm-estado.cerrado i { background:#94A3B8; animation:none; }
@keyframes dmPulso { 0%{box-shadow:0 0 0 0 rgba(34,165,89,.6)} 100%{box-shadow:0 0 0 10px rgba(34,165,89,0)} }

/* Tabla */
.dm .tabla-horarios { max-width:900px; margin:0 auto 1rem; border-radius:16px; overflow:hidden; border-collapse:separate; border-spacing:0; box-shadow:0 12px 34px rgba(26,37,48,.12); background:#fff; }
.dm .tabla-horarios th { background:linear-gradient(120deg,var(--marino),var(--marino2)); padding:1rem 1.3rem; }
.dm .tabla-horarios td { padding:1rem 1.3rem; transition:background .2s; }
.dm .tabla-horarios tr:hover td { background:#FFF1F2; }
.dm .tabla-horarios td:first-child { font-weight:600; color:var(--marino); }

/* Tarjetas de información */
.dm .info-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:1.3rem; margin:0 auto; max-width:1100px; }
.dm .info-card { position:relative; background:#fff; border:1px solid #E6EBF1; border-top:4px solid var(--azul); border-radius:var(--r); padding:1.6rem 1.5rem; box-shadow:0 8px 24px rgba(26,37,48,.07); transition:transform .3s, box-shadow .3s, border-color .3s; }
.dm .info-card:hover { transform:translateY(-8px); box-shadow:0 18px 38px rgba(26,37,48,.15); border-top-color:var(--rojo); }
.dm .info-card h3 { color:var(--marino); font-size:1.05rem; display:flex; align-items:center; gap:.8rem; margin:0 0 .9rem; }
.dm-ico { flex:0 0 46px; height:46px; display:grid; place-items:center; font-size:1.4rem; border-radius:14px; background:linear-gradient(135deg,#FFE9EA,#fff); border:2px solid #FFD0D3; transition:transform .4s; }
.dm .info-card:hover .dm-ico { transform:rotate(-8deg) scale(1.12); }
.dm .info-card p { color:#475569; margin:0; line-height:1.6; word-break:break-word; }
.dm .info-card p a { color:var(--azul); font-weight:700; text-decoration:none; border-bottom:2px solid rgba(0,113,158,.25); }
.dm .info-card p a:hover { color:var(--rojo); border-color:var(--rojo); }
.dm .info-card ul { list-style:none; margin:0; padding:0; }
.dm .info-card ul li { position:relative; padding-left:1.6rem; margin-bottom:.5rem; color:#475569; line-height:1.5; }
.dm .info-card ul li::before { content:"✓"; position:absolute; left:0; top:0; color:#fff; background:var(--rojo); width:18px; height:18px; border-radius:50%; font-size:.7rem; font-weight:800; display:grid; place-items:center; margin-top:.2rem; }

/* Listas directas: lista de verificación / pasos */
.dm .dm-wrap > ul { list-style:none; margin:0 auto; padding:0; max-width:980px; display:grid; grid-template-columns:repeat(2,1fr); gap:1rem; }
.dm .dm-wrap > ul > li { position:relative; background:#fff; border:1px solid #E6EBF1; border-radius:16px; padding:1.1rem 1.2rem 1.1rem 3.6rem; color:#475569; line-height:1.6; box-shadow:0 6px 18px rgba(26,37,48,.06); transition:transform .25s, box-shadow .25s; }
.dm .dm-wrap > ul > li:hover { transform:translateY(-4px); box-shadow:0 14px 28px rgba(26,37,48,.12); }
.dm .dm-wrap > ul > li::before { content:"✓"; position:absolute; left:1.1rem; top:1.1rem; width:28px; height:28px; border-radius:50%; background:linear-gradient(135deg,var(--rojo),#FF4B55); color:#fff; font-weight:800; display:grid; place-items:center; }
.dm .dm-wrap > ol { list-style:none; counter-reset:paso; margin:0 auto; padding:0; max-width:820px; position:relative; }
.dm .dm-wrap > ol::before { content:""; position:absolute; left:27px; top:24px; bottom:24px; width:4px; border-radius:4px; background:linear-gradient(var(--rojo),var(--azul)); opacity:.25; }
.dm .dm-wrap > ol > li { counter-increment:paso; position:relative; margin:0 0 1rem; padding:1.1rem 1.3rem 1.1rem 5.2rem; background:#fff; border:1px solid #E6EBF1; border-radius:16px; color:#475569; line-height:1.65; box-shadow:0 6px 18px rgba(26,37,48,.06); transition:transform .25s, box-shadow .25s; }
.dm .dm-wrap > ol > li:hover { transform:translateX(8px); box-shadow:0 12px 26px rgba(26,37,48,.12); }
.dm .dm-wrap > ol > li::before { content:counter(paso); position:absolute; left:.7rem; top:50%; transform:translateY(-50%); width:44px; height:44px; border-radius:50%; background:linear-gradient(135deg,var(--rojo),#FF4B55); color:#fff; font-family:'Poppins',sans-serif; font-weight:800; display:grid; place-items:center; box-shadow:0 0 0 6px rgba(229,9,20,.12); }
.dm .dm-wrap > ul > li strong, .dm .dm-wrap > ol > li strong { color:var(--marino); }

/* Botones y volver */
.dm .btn-primary { display:inline-block; background:linear-gradient(135deg,var(--rojo),#B90710); color:#fff; border:none; padding:.9rem 2rem; border-radius:50px; font-weight:700; font-size:1rem; box-shadow:0 10px 24px rgba(229,9,20,.35); transition:transform .2s, box-shadow .2s; text-decoration:none; cursor:pointer; font-family:inherit; }
.dm .btn-primary:hover { transform:translateY(-3px); box-shadow:0 14px 30px rgba(229,9,20,.5); background:linear-gradient(135deg,#B90710,#8B0000); }
.dm .dm-wrap > .btn-primary { display:table; margin:1.8rem auto 0 !important; }
.dm .volver-servicios { display:table; margin:2.2rem auto 0; padding:.8rem 1.6rem; background:var(--marino); color:#fff; border-radius:50px; font-weight:700; text-decoration:none; transition:background .2s, transform .2s; }
.dm .volver-servicios:hover { background:var(--rojo); text-decoration:none; transform:translateY(-3px); }

/* Formularios */
.dm .formulario { max-width:860px; margin:2rem auto 0; background:#fff; border:1px solid #E6EBF1; border-radius:24px; padding:2.2rem; box-shadow:0 18px 44px rgba(26,37,48,.1); border-top:5px solid var(--rojo); }
.dm .formulario input, .dm .formulario select, .dm .formulario textarea { border:2px solid #E2E8F0; border-radius:12px; padding:.8rem 1rem; background:#F8FAFC; transition:border-color .2s, box-shadow .2s, background .2s; }
.dm .formulario input:focus, .dm .formulario select:focus, .dm .formulario textarea:focus { background:#fff; border-color:var(--rojo); box-shadow:0 0 0 4px rgba(229,9,20,.12); }
.dm .formulario .btn-primary { width:100%; }
.dm .nota-formulario { text-align:center; color:#7A8794; }
.dm h3[style] { text-align:center; margin:2rem 0 0 !important; }

/* Galería con hover */
.dm .galeria-hover { gap:1.2rem; margin:0 auto; max-width:1100px; }
.dm .tarjeta-hover { border-radius:22px; min-height:400px; box-shadow:0 14px 34px rgba(26,37,48,.2); transition:transform .35s, box-shadow .35s; background:var(--marino2); }
.dm .tarjeta-hover:hover { transform:translateY(-8px); box-shadow:0 24px 48px rgba(26,37,48,.3); }

/* Procedimientos */
.dm .grid-procedimientos { max-width:1100px; margin:0 auto; gap:1.1rem; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); }
.dm .procedimiento-card { border-radius:var(--r); border:1px solid #E6EBF1; padding:1.7rem 1.2rem; box-shadow:0 8px 22px rgba(26,37,48,.07); position:relative; overflow:hidden; }
.dm .procedimiento-card::after { content:""; position:absolute; left:0; bottom:0; height:4px; width:100%; background:var(--color-acento,#E50914); transform:scaleX(0); transition:transform .35s; transform-origin:left; }
.dm .procedimiento-card:hover::after { transform:scaleX(1); }
.dm .procedimiento-card:hover .procedimiento-icono { transform:scale(1.15) rotate(-6deg); }
.dm .procedimiento-icono { transition:transform .35s; width:64px; height:64px; font-size:1.8rem; }

/* Sueros */
.dm .grid-sueros { max-width:1100px; margin:0 auto 1rem; gap:1.4rem; }
.dm .tarjeta-suero { position:relative; border-radius:24px; padding:2rem 1.7rem; overflow:hidden; transition:transform .3s, box-shadow .3s; box-shadow:0 14px 34px rgba(0,0,0,.18); }
.dm .tarjeta-suero:hover { transform:translateY(-10px) rotate(-.5deg); box-shadow:0 26px 50px rgba(0,0,0,.28); }
.dm .tarjeta-suero::before { content:""; position:absolute; width:180px; height:180px; right:-60px; top:-60px; border-radius:50%; background:rgba(255,255,255,.14); }
.dm .tarjeta-suero::after { content:"Próximamente"; position:absolute; right:1rem; top:1rem; font-size:.68rem; font-weight:800; text-transform:uppercase; letter-spacing:.8px; background:rgba(0,0,0,.28); padding:.3rem .7rem; border-radius:50px; }
.dm .sublinea-titulo { display:table; margin:0 auto 1.2rem; }
.dm .tarjeta-suero ul { list-style:none; margin-left:0; }
.dm .tarjeta-suero ul li { position:relative; padding-left:1.5rem; }
.dm .tarjeta-suero ul li::before { content:"✦"; position:absolute; left:0; opacity:.9; }

/* Servicios adicionales */
.dm .grid-adicionales { max-width:1000px; margin:0 auto; gap:1.5rem; }
.dm .tarjeta-adicional { border-radius:24px; box-shadow:0 14px 34px rgba(26,37,48,.12); }
.dm .tarjeta-adicional:hover { transform:translateY(-8px); }
.dm .tarjeta-adicional-imagen { height:190px; transition:transform .6s; }
.dm .tarjeta-adicional { overflow:hidden; }
.dm .tarjeta-adicional:hover .tarjeta-adicional-imagen { transform:scale(1.06); }

/* Exámenes (laboratorio) */
.dm .examenes-intro { text-align:center; margin:-1rem auto 1.8rem !important; }
.dm .examenes-grid { max-width:1100px; margin:0 auto; gap:1.1rem; align-items:start; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); }
.dm .examen-card { border:1px solid #E6EBF1; border-radius:var(--r); box-shadow:0 8px 22px rgba(26,37,48,.07); background:#fff; transition:transform .3s, box-shadow .3s, border-color .3s; }
.dm .examen-card:hover { transform:translateY(-5px); border-color:var(--rojo); box-shadow:0 16px 32px rgba(26,37,48,.13); }
.dm .examen-card.abierto { border-color:var(--rojo); box-shadow:0 0 0 3px rgba(229,9,20,.12), 0 16px 32px rgba(26,37,48,.13); }
.dm .examen-header { background:#fff; padding:1.1rem 1.1rem; gap:.8rem; }
.dm .examen-icono { width:48px; height:48px; display:grid; place-items:center; font-size:1.5rem; border-radius:14px; background:linear-gradient(135deg,#FFE9EA,#fff); border:2px solid #FFD0D3; }
.dm .examen-titulo { font-family:'Poppins',sans-serif; font-weight:700; color:var(--marino); font-size:.98rem; }
.dm .examen-flecha { width:28px; height:28px; display:grid; place-items:center; border-radius:50%; background:var(--gris); color:var(--rojo); }
.dm .examen-badge { font-size:.65rem; font-weight:800; text-transform:uppercase; letter-spacing:.6px; background:#FFF1D6; color:#8A5A00; border:1px solid #F5D8A0; padding:.2rem .5rem; border-radius:50px; }
.dm .examen-detalle { display:none; padding:0 1.2rem 1.2rem; border-top:1px dashed #E2E8F0; }
.dm .examen-card.abierto .examen-detalle { display:block; animation:dmAbre .35s ease; }
@keyframes dmAbre { from{opacity:0;transform:translateY(-8px)} to{opacity:1;transform:none} }
.dm .examen-detalle p { text-align:left !important; margin:1rem 0 .8rem !important; font-size:.93rem; }
.dm .examen-meta { list-style:none !important; display:grid !important; grid-template-columns:1fr !important; gap:.5rem !important; padding:0 !important; margin:0 !important; max-width:none !important; }
.dm .examen-meta li { background:var(--gris) !important; border:none !important; box-shadow:none !important; padding:.55rem .8rem !important; border-radius:10px !important; font-size:.88rem; transform:none !important; }
.dm .examen-meta li::before { display:none !important; }
.dm-tips { display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:1rem; max-width:1100px; margin:0 auto; }
.dm-tip { display:flex; gap:1rem; align-items:flex-start; background:#fff; border:1px solid #E6EBF1; border-radius:var(--r); padding:1.2rem; box-shadow:0 8px 22px rgba(26,37,48,.07); transition:transform .3s, box-shadow .3s; }
.dm-tip:hover { transform:translateY(-6px); box-shadow:0 16px 32px rgba(26,37,48,.13); }
.dm-tip .dm-ico { flex:0 0 52px; height:52px; font-size:1.6rem; }
.dm-tip strong { display:block; font-family:'Poppins',sans-serif; color:var(--marino); margin-bottom:.2rem; }
.dm-tip p { margin:0 !important; text-align:left !important; font-size:.92rem; color:#475569 !important; line-height:1.55; }

/* Precio (curso) */
.dm .precio-destacado { position:relative; overflow:hidden; max-width:900px; margin:0 auto; border-radius:26px; padding:2rem 2.4rem; background:linear-gradient(120deg,#5c0008,#B90710 50%,#E50914); box-shadow:0 20px 44px rgba(229,9,20,.35); }
.dm .precio-destacado::after { content:""; position:absolute; top:0; left:-60%; width:40%; height:100%; background:linear-gradient(100deg,transparent,rgba(255,255,255,.28),transparent); transform:skewX(-20deg); animation:dmBrillo 4.5s infinite; }
@keyframes dmBrillo { 0%{left:-60%} 60%,100%{left:130%} }
.dm .precio-destacado .precio-monto { font-size:3.6rem; }

/* Acordeón de líneas (salud y desarrollo comunitario) */
.dm-acc-barra { display:flex; justify-content:center; gap:.7rem; margin:0 auto 1.6rem; }
.dm-acc-barra button { cursor:pointer; border:2px solid var(--azul); background:#fff; color:var(--azul); font-weight:700; padding:.5rem 1.2rem; border-radius:50px; font-family:inherit; transition:all .2s; }
.dm-acc-barra button:hover { background:var(--azul); color:#fff; }
.dm .linea-acordeon { max-width:980px; margin:0 auto 1.1rem; border-radius:22px; overflow:hidden; background:#fff; border:1px solid #E6EBF1; box-shadow:0 10px 28px rgba(26,37,48,.08); transition:box-shadow .3s, border-color .3s; }
.dm .linea-acordeon:hover { box-shadow:0 18px 40px rgba(26,37,48,.15); }
.dm .linea-acordeon[open] { border-color:var(--azul-cl); box-shadow:0 0 0 3px rgba(0,160,220,.14), 0 18px 40px rgba(26,37,48,.12); }
.dm .linea-acordeon summary { min-height:92px; }
.dm .linea-imagen { width:130px; min-width:130px; height:auto; align-self:stretch; background-color:var(--azul); transition:filter .3s; }
.dm .linea-acordeon:hover .linea-imagen { filter:saturate(1.2) brightness(1.05); }
.dm .linea-numero { width:40px; min-width:40px; height:40px; background:linear-gradient(135deg,var(--azul),var(--azul-cl)); box-shadow:0 6px 14px rgba(0,160,220,.4); font-family:'Poppins',sans-serif; }
.dm .linea-flecha { width:34px; height:34px; display:grid; place-items:center; border-radius:50%; background:var(--gris); }
.dm .linea-contenido { padding:1.6rem 1.8rem 2rem; background:#F8FAFC; display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:1.2rem; }
.dm .sublinea { margin:0; background:#fff; border:1px solid #E6EBF1; border-radius:16px; padding:1.2rem 1.3rem; }
.dm .sublinea .sublinea-titulo { display:inline-block; margin:0 0 .8rem; }
.dm .sublinea ul { list-style:none; margin:0; padding:0; }
.dm .sublinea ul li { position:relative; padding-left:1.4rem; font-size:.93rem; }
.dm .sublinea ul li::before { content:""; position:absolute; left:0; top:.55rem; width:8px; height:8px; border-radius:50%; background:var(--azul-cl); }

/* Formulario a todo el ancho (solicitar capacitación) */
.dm .capacitacion-form-ancho { position:relative; overflow:hidden; padding:5rem 1.5rem; }
.dm .capacitacion-form-ancho::before { content:""; position:absolute; width:420px; height:420px; right:-140px; top:-140px; border-radius:50%; background:rgba(255,255,255,.07); }
.dm .card-registro { border-radius:26px; box-shadow:0 26px 60px rgba(0,0,0,.35); border-top:6px solid var(--rojo); }
.dm .form-capacitacion input, .dm .form-capacitacion select, .dm .form-capacitacion textarea { border:2px solid #E2E8F0; border-radius:12px; background:#F8FAFC; transition:border-color .2s, box-shadow .2s, background .2s; }
.dm .form-capacitacion input:focus, .dm .form-capacitacion select:focus, .dm .form-capacitacion textarea:focus { background:#fff; border-color:var(--rojo); box-shadow:0 0 0 4px rgba(229,9,20,.12); outline:none; }
.dm .detalle-contenido-cierre { background:#fff; padding:2rem 1.5rem 3rem; }

/* ---------- RESPONSIVE ---------- */
@media (max-width:960px) {
    .dm-hero-grid { grid-template-columns:1fr; }
    .dm-hero { padding-top:7rem; }
    .dm-hero-art { width:min(70%,260px); }
    .dm .dm-wrap > ul { grid-template-columns:1fr; }
}
@media (max-width:640px) {
    .dm-hero { padding:6.4rem 1.1rem 5rem; }
    .dm-botones .dm-btn { width:100%; text-align:center; }
    .dm-sec { padding:3.2rem 1.1rem; }
    .dm .formulario { padding:1.4rem 1.1rem; }
    .dm .dm-wrap > ol > li { padding-left:4.6rem; }
    .dm .dm-wrap > ol::before { left:23px; }
    .dm .dm-wrap > ol > li::before { width:40px; height:40px; }
    .dm .linea-imagen { width:72px; min-width:72px; }
    .dm .linea-contenido { padding:1.1rem 1rem 1.4rem; }
    .dm .tabla-horarios th, .dm .tabla-horarios td { padding:.8rem .8rem; font-size:.88rem; }
    .dm .precio-destacado { padding:1.6rem 1.4rem; } .dm .precio-destacado .precio-monto { font-size:3rem; }
    .dm .aviso-destacado { padding:1rem 1rem 1rem 4.2rem; }
    .dm .aviso-destacado::before { width:38px; height:38px; left:.7rem; }
    .dm .tarjeta-hover { min-height:360px; }
}
@media (prefers-reduced-motion:reduce) {
    .dm *, .dm *::before, .dm *::after { animation:none !important; transition:none !important; }
    .js .rv { opacity:1; transform:none; }
}
.dm .dm-wrap > p + .galeria-hover, .dm .dm-wrap > p + .grid-sueros, .dm .dm-wrap > p + .examenes-grid { margin-top:1.8rem; }
.dm .linea-contenido { align-items:start; }

.dm .galeria-hover:has(> :nth-child(4)) { grid-template-columns:repeat(2,1fr); }
@media (max-width:640px) {
    .dm .galeria-hover:has(> :nth-child(4)) { grid-template-columns:1fr; }
    .dm .tabla-horarios { table-layout:fixed; width:100%; }
    .dm .tabla-horarios th, .dm .tabla-horarios td { word-break:break-word; white-space:normal !important; }
    .dm .tabla-horarios th { font-size:.7rem; letter-spacing:.2px; }
    .dm .tabla-horarios:not(:has(thead)) tbody, .dm .tabla-horarios:not(:has(thead)) tr, .dm .tabla-horarios:not(:has(thead)) td { display:block; width:100%; }
    .dm .tabla-horarios:not(:has(thead)) { display:block; }
    .dm .tabla-horarios:not(:has(thead)) td { box-sizing:border-box; }
    .dm .tabla-horarios:not(:has(thead)) tr { border-bottom:1px solid #E9ECEF; padding:.6rem 0; }
    .dm .tabla-horarios:not(:has(thead)) td { border:none; padding:.15rem 1rem; background:transparent !important; }
    .dm .tabla-horarios:not(:has(thead)) td:first-child { color:var(--rojo); font-size:.78rem; text-transform:uppercase; letter-spacing:.5px; }
}
