{"id":106,"date":"2025-12-15T23:05:50","date_gmt":"2025-12-15T23:05:50","guid":{"rendered":"https:\/\/psicodominicana.com\/blog\/?p=106"},"modified":"2026-04-07T01:15:06","modified_gmt":"2026-04-07T05:15:06","slug":"programa-especializado-en-trastornos-del-sueno-12-sesiones-2","status":"publish","type":"post","link":"https:\/\/psicodominicana.com\/blog\/ansiedad\/programa-especializado-en-trastornos-del-sueno-12-sesiones-2\/","title":{"rendered":"Programa Especializado en Trastornos del Sue\u00f1o &#8211; 12 sesiones"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"es\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <meta name=\"description\" content=\"Programa terap\u00e9utico de 12 sesiones para trastornos del sue\u00f1o coordinado por Miguel Mart\u00ednez, Psic\u00f3logo Cl\u00ednico\">\n    <meta name=\"keywords\" content=\"trastornos del sue\u00f1o, insomnio, 12 sesiones, terapia del sue\u00f1o, higiene del sue\u00f1o, Psicodominicana, programa completo, sue\u00f1o saludable\">\n    <meta name=\"author\" content=\"Psicodominicana\">\n    <title>Psicodominicana | Programa de 12 Sesiones: Trastornos del Sue\u00f1o<\/title>\n    <script src=\"https:\/\/cdn.tailwindcss.com\"><\/script>\n    <script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/Chart.js\/3.9.1\/chart.min.js\"><\/script>\n    <link href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.0.0\/css\/all.min.css\" rel=\"stylesheet\">\n    <link rel=\"icon\" type=\"image\/x-icon\" href=\"https:\/\/img.icons8.com\/color\/48\/000000\/sleep.png\">\n    \n    <style>\n        body {\n            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\n            background-color: #f0f4f8;\n            color: #4a5568;\n            scroll-behavior: smooth;\n        }\n        .chart-container {\n            position: relative;\n            width: 100%;\n            max-width: 100%;\n            height: 320px;\n            max-height: 380px;\n            margin: 0 auto;\n        }\n        .phase-btn.active {\n            background-color: #c3dafe;\n            border-left: 4px solid #4c51bf;\n            font-weight: bold;\n            box-shadow: 0 4px 6px -1px rgba(102, 126, 234, 0.1);\n        }\n        .logo-title {\n            font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;\n            font-weight: 700;\n            background: linear-gradient(90deg, #2d3748 0%, #4c51bf 50%, #667eea 100%);\n            -webkit-background-clip: text;\n            -webkit-text-fill-color: transparent;\n            background-clip: text;\n        }\n        .section-animate {\n            animation: fadeInUp 0.6s ease-out;\n        }\n        @keyframes fadeInUp {\n            from {\n                opacity: 0;\n                transform: translateY(20px);\n            }\n            to {\n                opacity: 1;\n                transform: translateY(0);\n            }\n        }\n        .sticky-sidebar {\n            position: sticky;\n            top: 100px;\n        }\n        .gradient-header {\n            background: linear-gradient(135deg, #2d3748 0%, #4c51bf 50%, #667eea 100%);\n        }\n        .pulse-gentle {\n            animation: pulse 4s infinite ease-in-out;\n        }\n        @keyframes pulse {\n            0%, 100% { transform: scale(1); }\n            50% { transform: scale(1.05); }\n        }\n        .sleep-animation {\n            animation: sleepFloat 8s infinite ease-in-out;\n        }\n        @keyframes sleepFloat {\n            0%, 100% { transform: translateY(0) rotate(0deg); }\n            25% { transform: translateY(-8px) rotate(1deg); }\n            50% { transform: translateY(4px) rotate(-1deg); }\n            75% { transform: translateY(-4px) rotate(0.5deg); }\n        }\n        .sleep-gradient {\n            background: linear-gradient(135deg, #434190 0%, #667eea 25%, #9f7aea 50%, #d53f8c 75%, #f6ad55 100%);\n            background-size: 400% 400%;\n            animation: gradientShift 20s ease infinite;\n        }\n        @keyframes gradientShift {\n            0% { background-position: 0% 50%; }\n            50% { background-position: 100% 50%; }\n            100% { background-position: 0% 50%; }\n        }\n        .session-card {\n            transition: all 0.3s ease;\n            border: 2px solid transparent;\n        }\n        .session-card:hover {\n            transform: translateY(-5px);\n            border-color: #c3dafe;\n            box-shadow: 0 10px 25px -5px rgba(102, 126, 234, 0.1);\n        }\n        .progress-step {\n            width: 24px;\n            height: 24px;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            border-radius: 50%;\n            font-weight: bold;\n            font-size: 12px;\n        }\n        .phase-progress {\n            height: 4px;\n            background: linear-gradient(90deg, #4c51bf 0%, #667eea 100%);\n        }\n        \/* Estilos para el bot\u00f3n de WhatsApp *\/\n        .whatsapp-float {\n            position: fixed;\n            width: 60px;\n            height: 60px;\n            bottom: 20px;\n            right: 20px;\n            background-color: #25d366;\n            color: #FFF;\n            border-radius: 50px;\n            text-align: center;\n            font-size: 30px;\n            box-shadow: 2px 2px 3px #999;\n            z-index: 100;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            transition: all 0.3s ease;\n        }\n        .whatsapp-float:hover {\n            background-color: #128C7E;\n            transform: scale(1.1);\n            box-shadow: 3px 3px 10px #666;\n        }\n        \/* Modal estilos *\/\n        .modal-overlay {\n            display: none;\n            position: fixed;\n            top: 0;\n            left: 0;\n            width: 100%;\n            height: 100%;\n            background-color: rgba(0, 0, 0, 0.7);\n            z-index: 1000;\n            justify-content: center;\n            align-items: center;\n        }\n        .modal-content {\n            background-color: white;\n            padding: 30px;\n            border-radius: 15px;\n            max-width: 500px;\n            width: 90%;\n            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);\n            text-align: center;\n        }\n        .modal-close {\n            position: absolute;\n            top: 15px;\n            right: 15px;\n            font-size: 24px;\n            cursor: pointer;\n            color: #666;\n        }\n        \/* Efectos de sue\u00f1o *\/\n        .star {\n            position: absolute;\n            background-color: white;\n            border-radius: 50%;\n            animation: twinkle 3s infinite;\n        }\n        @keyframes twinkle {\n            0%, 100% { opacity: 0.3; transform: scale(0.8); }\n            50% { opacity: 1; transform: scale(1); }\n        }\n        .moon-phase {\n            animation: moonPhase 30s infinite linear;\n        }\n        @keyframes moonPhase {\n            0% { transform: rotate(0deg); }\n            100% { transform: rotate(360deg); }\n        }\n        \/* Mejoras de accesibilidad *\/\n        .focus-visible:focus {\n            outline: 3px solid #4c51bf;\n            outline-offset: 2px;\n        }\n        @media (prefers-reduced-motion: reduce) {\n            .section-animate, .sleep-animation, .pulse-gentle {\n                animation: none;\n            }\n        }\n    <\/style>\n<\/head>\n<body class=\"min-h-screen flex flex-col\">\n\n    <!-- Fondo estrellado -->\n    <div id=\"stars-container\" class=\"fixed inset-0 pointer-events-none z-0\"><\/div>\n\n    <!-- Bot\u00f3n flotante de WhatsApp -->\n    <a href=\"https:\/\/wa.link\/w3dnnk\" target=\"_blank\" \n       class=\"whatsapp-float focus-visible\" \n       aria-label=\"Contactar por WhatsApp para informaci\u00f3n del programa de sue\u00f1o\"\n       title=\"Para contactos e informaci\u00f3n sobre trastornos del sue\u00f1o, clic aqu\u00ed\">\n        <i class=\"fab fa-whatsapp\"><\/i>\n    <\/a>\n\n    <!-- Header para Trastornos del Sue\u00f1o -->\n    <header class=\"gradient-header text-white shadow-lg sticky top-0 z-10\">\n        <div class=\"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-5\">\n            <div class=\"flex flex-col sm:flex-row justify-between items-center space-y-4 sm:space-y-0\">\n                <div class=\"flex items-center space-x-3\">\n                    <a href=\"https:\/\/psicodominicana.com\" target=\"_blank\" class=\"flex items-center space-x-3 no-underline focus-visible\" aria-label=\"Ir al sitio web de Psicodominicana\">\n                        <div class=\"sleep-gradient text-white p-3 rounded-xl shadow-lg sleep-animation\" aria-hidden=\"true\">\n                            <i class=\"fas fa-moon text-xl\"><\/i>\n                        <\/div>\n                        <div class=\"flex flex-col\">\n                            <h1 class=\"text-2xl md:text-3xl font-bold text-white\">Psicodominicana<\/h1>\n                            <p class=\"text-sm text-indigo-100\">Programa de 12 Sesiones &#8211; Trastornos del Sue\u00f1o<\/p>\n                        <\/div>\n                    <\/a>\n                <\/div>\n                \n                <div class=\"text-center sm:text-right\">\n                    <h2 class=\"text-lg font-bold text-white\">Programa Terap\u00e9utico Especializado<\/h2>\n                    <p class=\"text-sm text-indigo-100 font-semibold\">12 Sesiones | Enfoque en Sue\u00f1o Saludable<\/p>\n                    <p class=\"text-xs text-indigo-200 mt-1\">Coordinado por Miguel Mart\u00ednez, Psic\u00f3logo Cl\u00ednico<\/p>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/header>\n\n    <main class=\"flex-grow max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8 w-full relative z-10\">\n        \n        <!-- Introducci\u00f3n - Programa de 12 Sesiones para Trastornos del Sue\u00f1o -->\n        <section class=\"mb-10 max-w-6xl mx-auto section-animate\" aria-labelledby=\"programa-titulo\">\n            <div class=\"bg-gradient-to-r from-indigo-50 to-blue-50 rounded-2xl shadow-xl p-6 md:p-8 border border-indigo-200\">\n                <div class=\"flex flex-col md:flex-row items-start md:items-center gap-6 mb-6\">\n                    <div class=\"flex-shrink-0\" aria-hidden=\"true\">\n                        <div class=\"sleep-gradient text-white p-5 rounded-full shadow-lg sleep-animation\">\n                            <i class=\"fas fa-bed text-3xl\"><\/i>\n                        <\/div>\n                    <\/div>\n                    <div class=\"flex-grow\">\n                        <h2 id=\"programa-titulo\" class=\"text-3xl font-bold text-gray-900 mb-3\">Programa Especializado en Trastornos del Sue\u00f1o &#8211; 12 Sesiones<\/h2>\n                        <p class=\"text-lg text-gray-700 leading-relaxed\">\n                            Este <strong class=\"text-indigo-700\">programa especializado de 12 sesiones<\/strong> est\u00e1 dise\u00f1ado espec\u00edficamente para \n                            <strong>recuperar un sue\u00f1o reparador y saludable<\/strong>. Desarrollado por \n                            <strong class=\"text-indigo-700\">Miguel Mart\u00ednez, Psic\u00f3logo Cl\u00ednico y CEO de Psicodominicana<\/strong>, \n                            cada sesi\u00f3n utiliza t\u00e9cnicas basadas en evidencia cient\u00edfica para ayudarte a superar el insomnio, \n                            regular tu ritmo circadiano y mejorar la calidad de tu descanso.\n                        <\/p>\n                        \n                        <!-- Bot\u00f3n de contacto mejorado -->\n                        <div class=\"mt-6 flex flex-col sm:flex-row gap-4 items-center\">\n                            <button onclick=\"openContactModal()\" \n                                    class=\"bg-gradient-to-r from-green-500 to-green-600 text-white font-bold py-3 px-6 rounded-xl shadow-lg hover:from-green-600 hover:to-green-700 transition transform hover:scale-105 focus-visible\">\n                                <i class=\"fab fa-whatsapp mr-2\"><\/i> Contactar para informaci\u00f3n\n                            <\/button>\n                            <p class=\"text-sm text-gray-600\">Obt\u00e9n informaci\u00f3n detallada y resuelve tus dudas sobre el programa<\/p>\n                        <\/div>\n                    <\/div>\n                <\/div>\n                \n                <!-- Estad\u00edsticas del Programa -->\n                <div class=\"grid grid-cols-2 md:grid-cols-4 gap-4 mt-8\">\n                    <div class=\"bg-white rounded-xl p-4 text-center shadow-sm\">\n                        <div class=\"text-3xl font-bold text-indigo-600\">12<\/div>\n                        <div class=\"text-sm text-gray-600\">Sesiones Especializadas<\/div>\n                    <\/div>\n                    <div class=\"bg-white rounded-xl p-4 text-center shadow-sm\">\n                        <div class=\"text-3xl font-bold text-indigo-600\">90%<\/div>\n                        <div class=\"text-sm text-gray-600\">Mejora en Calidad de Sue\u00f1o<\/div>\n                    <\/div>\n                    <div class=\"bg-white rounded-xl p-4 text-center shadow-sm\">\n                        <div class=\"text-3xl font-bold text-indigo-600\">24+<\/div>\n                        <div class=\"text-sm text-gray-600\">T\u00e9cnicas para Dormir Mejor<\/div>\n                    <\/div>\n                    <div class=\"bg-white rounded-xl p-4 text-center shadow-sm\">\n                        <div class=\"text-3xl font-bold text-indigo-600\">3<\/div>\n                        <div class=\"text-sm text-gray-600\">Meses de Transformaci\u00f3n<\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/section>\n\n        <!-- Panel Interactivo del Programa - 12 Sesiones -->\n        <section class=\"section-animate\" aria-labelledby=\"panel-interactivo\">\n            <div class=\"text-center mb-10\">\n                <h2 id=\"panel-interactivo\" class=\"text-3xl font-bold text-gray-900 mb-3\">Programa Completo de 12 Sesiones para Trastornos del Sue\u00f1o<\/h2>\n                <p class=\"text-lg text-gray-600 max-w-3xl mx-auto\">Navega por las 4 fases especializadas dise\u00f1adas para recuperar tu sue\u00f1o reparador y mejorar tu descanso nocturno.<\/p>\n                \n                <!-- Indicador de Progreso -->\n                <div class=\"mt-6 max-w-2xl mx-auto\">\n                    <div class=\"flex justify-between mb-2\">\n                        <span class=\"text-sm font-medium text-indigo-600\">Progreso del Programa<\/span>\n                        <span class=\"text-sm font-medium text-indigo-600\" id=\"progress-percentage\">0%<\/span>\n                    <\/div>\n                    <div class=\"w-full bg-gray-200 rounded-full h-2.5\" role=\"progressbar\" aria-valuemin=\"0\" aria-valuemax=\"100\" aria-valuenow=\"0\">\n                        <div class=\"phase-progress h-2.5 rounded-full\" id=\"progress-bar\" style=\"width: 0%\"><\/div>\n                    <\/div>\n                    <div class=\"flex justify-between mt-2\">\n                        <span class=\"text-xs text-gray-500\">Sesi\u00f3n 1<\/span>\n                        <span class=\"text-xs text-gray-500\">Sesi\u00f3n 12<\/span>\n                    <\/div>\n                <\/div>\n            <\/div>\n\n            <div class=\"grid grid-cols-1 lg:grid-cols-12 gap-8\">\n                \n                <!-- LEFT: Navigation \/ Timeline Expandida -->\n                <div class=\"lg:col-span-3 space-y-6 sticky-sidebar\">\n                    <div class=\"bg-white rounded-xl shadow-lg p-6 border border-indigo-100\">\n                        <h3 class=\"text-lg font-semibold text-gray-800 mb-4 border-b pb-2 flex items-center\">\n                            <i class=\"fas fa-map text-indigo-500 mr-2\"><\/i> Programa de 12 Sesiones\n                        <\/h3>\n                        <p class=\"text-xs text-gray-500 mb-4\">\n                            Selecciona una fase para explorar sus 3 sesiones especializadas en trastornos del sue\u00f1o.\n                        <\/p>\n                        <nav id=\"phase-nav\" class=\"space-y-2 flex flex-col\" aria-label=\"Navegaci\u00f3n por fases del programa\">\n                            <!-- Nav Items Generated by JS -->\n                        <\/nav>\n                    <\/div>\n\n                    <!-- Progress Tracker -->\n                    <div class=\"bg-gradient-to-r from-indigo-50 to-blue-50 rounded-xl shadow-lg p-6 border border-indigo-200\">\n                        <h3 class=\"text-md font-bold text-gray-800 mb-4 flex items-center\">\n                            <i class=\"fas fa-chart-line text-indigo-500 mr-2\"><\/i> Tu Progreso\n                        <\/h3>\n                        <div class=\"space-y-3\">\n                            <div class=\"flex items-center justify-between\">\n                                <span class=\"text-sm text-gray-600\">Sesiones Completadas<\/span>\n                                <span class=\"text-sm font-bold text-indigo-600\" id=\"completed-sessions\">0\/12<\/span>\n                            <\/div>\n                            <div class=\"grid grid-cols-6 gap-1\" id=\"session-dots\" aria-label=\"Puntos de progreso de sesiones\">\n                                <!-- Sesion dots will be generated by JS -->\n                            <\/div>\n                            <div class=\"mt-4\">\n                                <button onclick=\"markSessionComplete()\" class=\"w-full bg-gradient-to-r from-indigo-500 to-blue-500 text-white py-2 rounded-lg text-sm font-semibold hover:from-indigo-600 hover:to-blue-600 transition shadow-md focus-visible\">\n                                    <i class=\"fas fa-check-circle mr-1\"><\/i> Marcar Sesi\u00f3n como Completada\n                                <\/button>\n                            <\/div>\n                        <\/div>\n                    <\/div>\n\n                    <!-- Coordinator Card -->\n                    <div class=\"bg-white rounded-xl shadow-lg p-6 border border-indigo-100\">\n                        <div class=\"flex items-center mb-4\">\n                            <div class=\"sleep-gradient p-3 rounded-full mr-3\" aria-hidden=\"true\">\n                                <i class=\"fas fa-user-md text-white text-xl\"><\/i>\n                            <\/div>\n                            <div>\n                                <h3 class=\"text-md font-bold text-slate-800\">Coordinador del Programa<\/h3>\n                                <p class=\"text-sm text-indigo-700 font-medium\">Miguel Mart\u00ednez<\/p>\n                            <\/div>\n                        <\/div>\n                        <p class=\"text-sm text-gray-600 mb-4\">\n                            Psic\u00f3logo Cl\u00ednico especializado en <strong>trastornos del sue\u00f1o e insomnio<\/strong> con \n                            <strong>12 a\u00f1os de experiencia<\/strong>. CEO de <strong>Psicodominicana<\/strong> y \n                            autor de estudios sobre higiene del sue\u00f1o.\n                        <\/p>\n                        <div class=\"flex items-center text-xs text-indigo-600\">\n                            <i class=\"fas fa-award mr-2\"><\/i>\n                            <span>Especialista en Terapia Cognitivo-Conductual para el Insomnio<\/span>\n                        <\/div>\n                    <\/div>\n                <\/div>\n\n                <!-- CENTER: Content Details Expandido -->\n                <div class=\"lg:col-span-6 space-y-6\">\n                    <div id=\"phase-content\" class=\"bg-white rounded-xl shadow-xl p-6 min-h-[600px] transition-all duration-300 border border-indigo-100\" aria-live=\"polite\">\n                        <!-- Content Injected by JS -->\n                    <\/div>\n                <\/div>\n\n                <!-- RIGHT: Visualization & Micro-Tools -->\n                <div class=\"lg:col-span-3 space-y-6 sticky-sidebar\">\n                    \n                    <!-- Chart Section Actualizado para Trastornos del Sue\u00f1o -->\n                    <div class=\"bg-white rounded-xl shadow-lg p-4 border border-indigo-100\">\n                        <h3 class=\"text-sm font-bold text-gray-700 mb-2 flex items-center\">\n                            <i class=\"fas fa-chart-line text-indigo-500 mr-2\"><\/i> Progresi\u00f3n del Sue\u00f1o en 12 Sesiones\n                        <\/h3>\n                        <p class=\"text-xs text-gray-500 mb-3\">\n                            Mejora esperada en la calidad del sue\u00f1o a lo largo del programa.\n                        <\/p>\n                        <div class=\"chart-container\">\n                            <canvas id=\"progressChart\" aria-label=\"Gr\u00e1fico de progreso de la calidad del sue\u00f1o\" role=\"img\"><\/canvas>\n                        <\/div>\n                        <div class=\"mt-3 text-center\">\n                            <span class=\"inline-block w-2 h-2 bg-red-500 rounded-full mr-1\" aria-hidden=\"true\"><\/span>\n                            <span class=\"text-xs text-gray-600 mr-3\">Insomnio\/Sue\u00f1o Fragmented<\/span>\n                            <span class=\"inline-block w-2 h-2 bg-green-500 rounded-full mr-1\" aria-hidden=\"true\"><\/span>\n                            <span class=\"text-xs text-gray-600\">Sue\u00f1o Reparador<\/span>\n                        <\/div>\n                    <\/div>\n\n                    <!-- Interactive Lab Section -->\n                    <div id=\"interactive-lab\" class=\"bg-gradient-to-r from-indigo-50 to-blue-50 rounded-xl shadow-lg p-5 border border-indigo-200\">\n                        <!-- Dynamic Tool Injected by JS -->\n                    <\/div>\n\n                    <!-- Diario de Sue\u00f1o -->\n                    <div class=\"sleep-gradient rounded-xl shadow-lg p-5 text-white\">\n                        <div class=\"text-center mb-4\">\n                            <div class=\"inline-block bg-white\/20 p-3 rounded-full shadow mb-2 pulse-gentle\" aria-hidden=\"true\">\n                                <i class=\"fas fa-moon text-white text-2xl\"><\/i>\n                            <\/div>\n                            <h4 class=\"font-bold text-white\">Diario de Sue\u00f1o<\/h4>\n                            <p class=\"text-xs text-indigo-100\" id=\"sleep-tracker\">Noche anterior: Pendiente<\/p>\n                        <\/div>\n                        <div class=\"text-center mb-4\">\n                            <div class=\"inline-flex flex-col items-center space-y-2\">\n                                <div class=\"text-3xl font-bold text-white\" id=\"sleep-quality\">&#8212;<\/div>\n                                <div class=\"text-xs text-indigo-100\">Calidad del sue\u00f1o (1-10)<\/div>\n                            <\/div>\n                            <div class=\"mt-4 text-sm text-white\">\n                                <i class=\"fas fa-clock mr-1\"><\/i> Horas de sue\u00f1o: <span id=\"sleep-hours\">&#8212;<\/span>\n                                <br>\n                                <i class=\"fas fa-redo mr-1\"><\/i> Despertares: <span id=\"awakenings\">&#8212;<\/span>\n                                <br>\n                                <i class=\"fas fa-sun mr-1\"><\/i> Sensaci\u00f3n al despertar: <span id=\"wake-feeling\">&#8212;<\/span>\n                            <\/div>\n                        <\/div>\n                        <button onclick=\"openSleepDiary()\" class=\"w-full bg-white\/30 hover:bg-white\/40 text-white py-2 rounded-lg text-sm font-semibold transition shadow-md focus-visible\">\n                            <i class=\"fas fa-clipboard-list mr-1\"><\/i> Completar Diario de Sue\u00f1o\n                        <\/button>\n                    <\/div>\n\n                    <!-- Recursos de la Sesi\u00f3n -->\n                    <div class=\"bg-gradient-to-r from-blue-50 to-indigo-50 rounded-xl shadow-lg p-5 border border-blue-200\">\n                        <h4 class=\"font-bold text-indigo-800 mb-3 flex items-center\">\n                            <i class=\"fas fa-download text-indigo-600 mr-2\"><\/i> Recursos para Dormir Mejor\n                        <\/h4>\n                        <div class=\"space-y-2\">\n                            <a href=\"#\" class=\"flex items-center p-2 bg-white rounded-lg hover:shadow transition focus-visible\" aria-label=\"Descargar gu\u00eda de higiene del sue\u00f1o\">\n                                <i class=\"fas fa-file-pdf text-red-500 mr-2\" aria-hidden=\"true\"><\/i>\n                                <span class=\"text-sm\">Gu\u00eda de Higiene del Sue\u00f1o<\/span>\n                            <\/a>\n                            <a href=\"#\" class=\"flex items-center p-2 bg-white rounded-lg hover:shadow transition focus-visible\" aria-label=\"Descargar audio para conciliar el sue\u00f1o\">\n                                <i class=\"fas fa-headphones text-blue-500 mr-2\" aria-hidden=\"true\"><\/i>\n                                <span class=\"text-sm\">Audio para Conciliar el Sue\u00f1o<\/span>\n                            <\/a>\n                            <a href=\"#\" class=\"flex items-center p-2 bg-white rounded-lg hover:shadow transition focus-visible\" aria-label=\"Descargar plantilla de diario de sue\u00f1o\">\n                                <i class=\"fas fa-clipboard-list text-green-500 mr-2\" aria-hidden=\"true\"><\/i>\n                                <span class=\"text-sm\">Diario de Sue\u00f1o (Plantilla)<\/span>\n                            <\/a>\n                        <\/div>\n                        <button onclick=\"downloadAllResources()\" class=\"w-full mt-3 bg-gradient-to-r from-indigo-500 to-blue-500 text-white py-2 rounded-lg text-sm font-semibold hover:from-indigo-600 hover:to-blue-600 transition shadow-md focus-visible\">\n                            <i class=\"fas fa-download mr-1\"><\/i> Descargar Todos\n                        <\/button>\n                    <\/div>\n\n                <\/div>\n            <\/div>\n        <\/section>\n\n        <!-- Resumen del Programa - 12 Sesiones -->\n        <section class=\"mt-16 mb-12 max-w-6xl mx-auto section-animate\" aria-labelledby=\"resumen-titulo\">\n            <div class=\"bg-gradient-to-r from-indigo-50 to-blue-50 rounded-2xl shadow-xl p-8 border border-indigo-200\">\n                <h2 id=\"resumen-titulo\" class=\"text-2xl font-bold text-gray-900 text-center mb-8\">Resumen de las 12 Sesiones para Trastornos del Sue\u00f1o<\/h2>\n                \n                <div class=\"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6\">\n                    <div class=\"bg-white rounded-xl p-6 shadow-lg\">\n                        <div class=\"flex items-center mb-4\">\n                            <div class=\"sleep-gradient p-3 rounded-full mr-3\" aria-hidden=\"true\">\n                                <span class=\"text-white font-bold\">1-3<\/span>\n                            <\/div>\n                            <h4 class=\"font-bold text-gray-800\">Fase 1: Evaluaci\u00f3n del Sue\u00f1o<\/h4>\n                        <\/div>\n                        <p class=\"text-sm text-gray-600 mb-3\">Sesiones 1-3: Evaluaci\u00f3n completa de patrones de sue\u00f1o, identificaci\u00f3n de factores disruptivos y establecimiento de l\u00ednea base.<\/p>\n                        <ul class=\"text-xs text-gray-500 space-y-1\">\n                            <li>\u2022 Diario de sue\u00f1o inicial<\/li>\n                            <li>\u2022 Identificaci\u00f3n de h\u00e1bitos perjudiciales<\/li>\n                            <li>\u2022 Establecimiento de metas realistas<\/li>\n                        <\/ul>\n                    <\/div>\n                    \n                    <div class=\"bg-white rounded-xl p-6 shadow-lg\">\n                        <div class=\"flex items-center mb-4\">\n                            <div class=\"sleep-gradient p-3 rounded-full mr-3\" aria-hidden=\"true\">\n                                <span class=\"text-white font-bold\">4-6<\/span>\n                            <\/div>\n                            <h4 class=\"font-bold text-gray-800\">Fase 2: Higiene del Sue\u00f1o<\/h4>\n                        <\/div>\n                        <p class=\"text-sm text-gray-600 mb-3\">Sesiones 4-6: Implementaci\u00f3n de h\u00e1bitos saludables, rutinas pre-sue\u00f1o y optimizaci\u00f3n del ambiente para dormir.<\/p>\n                        <ul class=\"text-xs text-gray-500 space-y-1\">\n                            <li>\u2022 Rutinas pre-sue\u00f1o efectivas<\/li>\n                            <li>\u2022 Optimizaci\u00f3n del dormitorio<\/li>\n                            <li>\u2022 Manejo de exposici\u00f3n a luz<\/li>\n                        <\/ul>\n                    <\/div>\n                    \n                    <div class=\"bg-white rounded-xl p-6 shadow-lg\">\n                        <div class=\"flex items-center mb-4\">\n                            <div class=\"sleep-gradient p-3 rounded-full mr-3\" aria-hidden=\"true\">\n                                <span class=\"text-white font-bold\">7-9<\/span>\n                            <\/div>\n                            <h4 class=\"font-bold text-gray-800\">Fase 3: Regulaci\u00f3n Cognitiva<\/h4>\n                        <\/div>\n                        <p class=\"text-sm text-gray-600 mb-3\">Sesiones 7-9: Manejo de pensamientos intrusivos, ansiedad relacionada al sue\u00f1o y reestructuraci\u00f3n de creencias.<\/p>\n                        <ul class=\"text-xs text-gray-500 space-y-1\">\n                            <li>\u2022 Pensamientos sobre el sue\u00f1o<\/li>\n                            <li>\u2022 Manejo de ansiedad nocturna<\/li>\n                            <li>\u2022 T\u00e9cnicas de relajaci\u00f3n<\/li>\n                        <\/ul>\n                    <\/div>\n                <\/div>\n\n                <div class=\"mt-8 grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6\">\n                    <div class=\"bg-white rounded-xl p-6 shadow-lg\">\n                        <div class=\"flex items-center mb-4\">\n                            <div class=\"sleep-gradient p-3 rounded-full mr-3\" aria-hidden=\"true\">\n                                <span class=\"text-white font-bold\">10-12<\/span>\n                            <\/div>\n                            <h4 class=\"font-bold text-gray-800\">Fase 4: Consolidaci\u00f3n<\/h4>\n                        <\/div>\n                        <p class=\"text-sm text-gray-600 mb-3\">Sesiones 10-12: Consolidaci\u00f3n de h\u00e1bitos, prevenci\u00f3n de reca\u00eddas y mantenimiento a largo plazo.<\/p>\n                        <ul class=\"text-xs text-gray-500 space-y-1\">\n                            <li>\u2022 Consolidaci\u00f3n de rutinas<\/li>\n                            <li>\u2022 Estrategias de mantenimiento<\/li>\n                            <li>\u2022 Plan para situaciones especiales<\/li>\n                        <\/ul>\n                    <\/div>\n                    \n                    <div class=\"bg-white rounded-xl p-6 shadow-lg md:col-span-2\">\n                        <div class=\"flex items-center mb-4\">\n                            <div class=\"sleep-gradient p-3 rounded-full mr-3\" aria-hidden=\"true\">\n                                <i class=\"fas fa-graduation-cap text-white\"><\/i>\n                            <\/div>\n                            <h4 class=\"font-bold text-gray-800\">Resultados Esperados<\/h4>\n                        <\/div>\n                        <div class=\"grid grid-cols-2 md:grid-cols-3 gap-4\">\n                            <div class=\"text-center\">\n                                <div class=\"text-2xl font-bold text-indigo-600\">90%<\/div>\n                                <div class=\"text-xs text-gray-600\">Mejora en calidad de sue\u00f1o<\/div>\n                            <\/div>\n                            <div class=\"text-center\">\n                                <div class=\"text-2xl font-bold text-indigo-600\">75%<\/div>\n                                <div class=\"text-xs text-gray-600\">Reducci\u00f3n de tiempo para dormirse<\/div>\n                            <\/div>\n                            <div class=\"text-center\">\n                                <div class=\"text-2xl font-bold text-indigo-600\">95%<\/div>\n                                <div class=\"text-xs text-gray-600\">Satisfacci\u00f3n con el programa<\/div>\n                            <\/div>\n                        <\/div>\n                    <\/div>\n                <\/div>\n                \n                <!-- Bot\u00f3n de contacto en secci\u00f3n principal -->\n                <div class=\"mt-10 text-center\">\n                    <button onclick=\"openContactModal()\" \n                            class=\"inline-flex items-center bg-gradient-to-r from-green-500 to-green-600 text-white font-bold py-4 px-8 rounded-xl shadow-lg hover:from-green-600 hover:to-green-700 transition transform hover:scale-105 focus-visible\">\n                        <i class=\"fab fa-whatsapp mr-3 text-xl\"><\/i>\n                        \u00bfProblemas para dormir? Cont\u00e1ctanos para m\u00e1s informaci\u00f3n\n                    <\/button>\n                    <p class=\"text-sm text-gray-600 mt-3\">Resolvemos todas tus dudas sobre el programa para trastornos del sue\u00f1o<\/p>\n                <\/div>\n            <\/div>\n        <\/section>\n\n        <!-- Calendario del Programa -->\n        <section class=\"mt-16 mb-12 max-w-6xl mx-auto section-animate\" aria-labelledby=\"calendario-titulo\">\n            <div class=\"bg-white rounded-2xl shadow-xl p-8 border border-indigo-100\">\n                <h2 id=\"calendario-titulo\" class=\"text-2xl font-bold text-gray-900 text-center mb-8\">Calendario del Programa de 12 Sesiones para Sue\u00f1o<\/h2>\n                \n                <div class=\"overflow-x-auto\">\n                    <table class=\"w-full\">\n                        <thead>\n                            <tr class=\"bg-gradient-to-r from-indigo-50 to-blue-50\">\n                                <th class=\"py-3 px-4 text-left text-sm font-semibold text-gray-700\">Sesi\u00f3n<\/th>\n                                <th class=\"py-3 px-4 text-left text-sm font-semibold text-gray-700\">Fase<\/th>\n                                <th class=\"py-3 px-4 text-left text-sm font-semibold text-gray-700\">T\u00edtulo<\/th>\n                                <th class=\"py-3 px-4 text-left text-sm font-semibold text-gray-700\">Duraci\u00f3n<\/th>\n                                <th class=\"py-3 px-4 text-left text-sm font-semibold text-gray-700\">Materiales<\/th>\n                            <\/tr>\n                        <\/thead>\n                        <tbody id=\"program-calendar\">\n                            <!-- Calendar rows will be generated by JS -->\n                        <\/tbody>\n                    <\/table>\n                <\/div>\n                \n                <div class=\"mt-8 text-center\">\n                    <button onclick=\"exportCalendar()\" class=\"inline-flex items-center bg-gradient-to-r from-indigo-500 to-blue-500 text-white font-bold py-3 px-6 rounded-xl shadow-lg hover:from-indigo-600 hover:to-blue-600 transition focus-visible mr-4\">\n                        <i class=\"fas fa-calendar-alt mr-2\"><\/i>\n                        Descargar Calendario (PDF)\n                    <\/button>\n                    <button onclick=\"openContactModal()\" class=\"inline-flex items-center bg-gradient-to-r from-green-500 to-green-600 text-white font-bold py-3 px-6 rounded-xl shadow-lg hover:from-green-600 hover:to-green-700 transition focus-visible\">\n                        <i class=\"fab fa-whatsapp mr-2\"><\/i>\n                        Consultar Disponibilidad\n                    <\/button>\n                <\/div>\n            <\/div>\n        <\/section>\n\n    <\/main>\n\n    <!-- Footer Actualizado -->\n    <footer class=\"bg-gradient-to-r from-slate-800 to-slate-900 text-slate-300 py-10 mt-12 relative z-10\">\n        <div class=\"max-w-7xl mx-auto px-4\">\n            <div class=\"grid grid-cols-1 md:grid-cols-4 gap-10\">\n                <div class=\"md:col-span-2\">\n                    <div class=\"flex items-center mb-5\">\n                        <div class=\"sleep-gradient p-2 rounded-lg mr-4\" aria-hidden=\"true\">\n                            <i class=\"fas fa-moon text-white\"><\/i>\n                        <\/div>\n                        <div>\n                            <h3 class=\"text-xl font-bold text-white\">Psicodominicana<\/h3>\n                            <p class=\"text-sm text-indigo-200\">Programa de 12 Sesiones &#8211; Trastornos del Sue\u00f1o<\/p>\n                        <\/div>\n                    <\/div>\n                    <p class=\"text-sm mb-6 max-w-lg\">Programa terap\u00e9utico especializado en trastornos del sue\u00f1o, dise\u00f1ado para recuperar el descanso nocturno y mejorar la calidad de vida. M\u00e9todo basado en Terapia Cognitivo-Conductual para el Insomnio (TCC-I).<\/p>\n                    <p class=\"text-xs text-slate-400\">Coordinaci\u00f3n cl\u00ednica: <span class=\"text-indigo-300\">Miguel Mart\u00ednez, Psic\u00f3logo Cl\u00ednico Especialista<\/span><\/p>\n                <\/div>\n                \n                <div>\n                    <h4 class=\"text-lg font-semibold text-white mb-5\">Programas Especializados<\/h4>\n                    <ul class=\"space-y-3 text-sm\">\n                        <li><a href=\"#\" class=\"hover:text-indigo-300 transition flex items-center focus-visible\" aria-label=\"Programa de 12 sesiones para trastornos del sue\u00f1o\">\n                            <i class=\"fas fa-moon mr-2 text-indigo-400\"><\/i> 12 Sesiones &#8211; Sue\u00f1o\n                        <\/a><\/li>\n                        <li><a href=\"#\" class=\"hover:text-indigo-300 transition flex items-center focus-visible\" aria-label=\"Programa de 8 sesiones para insomnio\">\n                            <i class=\"fas fa-bed mr-2 text-indigo-400\"><\/i> 8 Sesiones &#8211; Insomnio\n                        <\/a><\/li>\n                        <li><a href=\"#\" class=\"hover:text-indigo-300 transition flex items-center focus-visible\" aria-label=\"Programa de 10 sesiones para ansiedad\">\n                            <i class=\"fas fa-brain mr-2 text-indigo-400\"><\/i> 10 Sesiones &#8211; Ansiedad\n                        <\/a><\/li>\n                        <li><a href=\"#\" class=\"hover:text-indigo-300 transition flex items-center focus-visible\" aria-label=\"Terapia individual\">\n                            <i class=\"fas fa-users mr-2 text-indigo-400\"><\/i> Terapia Individual\n                        <\/a><\/li>\n                    <\/ul>\n                <\/div>\n                \n                <div>\n                    <h4 class=\"text-lg font-semibold text-white mb-5\">Inscripci\u00f3n al Programa<\/h4>\n                    <a href=\"https:\/\/psicodominicana.com\" target=\"_blank\" class=\"inline-flex items-center text-indigo-300 hover:text-indigo-100 font-medium mb-4 focus-visible\" aria-label=\"Visitar sitio web de Psicodominicana\">\n                        <i class=\"fas fa-external-link-alt mr-2\"><\/i> psicodominicana.com\/sueno\n                    <\/a>\n                    <p class=\"text-sm mb-4\">Agenda tu evaluaci\u00f3n inicial gratuita para el programa de trastornos del sue\u00f1o<\/p>\n                    <div class=\"flex space-x-3\">\n                        <button onclick=\"openContactModal()\" class=\"bg-slate-700 hover:bg-green-600 p-3 rounded-lg transition transform hover:-translate-y-1 focus-visible\" aria-label=\"Contactar por WhatsApp\">\n                            <i class=\"fab fa-whatsapp\"><\/i>\n                        <\/button>\n                        <a href=\"mailto:sueno@psicodominicana.com\" class=\"bg-slate-700 hover:bg-indigo-600 p-3 rounded-lg transition transform hover:-translate-y-1 focus-visible\" aria-label=\"Enviar correo electr\u00f3nico\">\n                            <i class=\"fas fa-envelope\"><\/i>\n                        <\/a>\n                        <a href=\"#\" class=\"bg-slate-700 hover:bg-purple-700 p-3 rounded-lg transition transform hover:-translate-y-1 focus-visible\" aria-label=\"Seguir en Instagram\">\n                            <i class=\"fab fa-instagram\"><\/i>\n                        <\/a>\n                    <\/div>\n                <\/div>\n            <\/div>\n            \n            <div class=\"border-t border-slate-700 mt-10 pt-8 text-center text-sm text-slate-500\">\n                <p class=\"mb-3\">\u00ab12 sesiones para recuperar tu descanso nocturno y despertar renovado cada ma\u00f1ana.\u00bb<\/p>\n                <p>\u00a9 2024 Psicodominicana. Programa especializado en trastornos del sue\u00f1o. Certificaci\u00f3n al completar el programa.<\/p>\n            <\/div>\n        <\/div>\n    <\/footer>\n\n    <!-- Modal de Contacto -->\n    <div id=\"contactModal\" class=\"modal-overlay\" role=\"dialog\" aria-labelledby=\"modalTitle\" aria-modal=\"true\">\n        <div class=\"modal-content relative\">\n            <button class=\"modal-close\" onclick=\"closeContactModal()\" aria-label=\"Cerrar modal\">&times;<\/button>\n            <h3 id=\"modalTitle\" class=\"text-2xl font-bold text-gray-800 mb-4\">Contactar para Informaci\u00f3n sobre Sue\u00f1o<\/h3>\n            <div class=\"sleep-gradient text-white p-5 rounded-full inline-block mb-6\">\n                <i class=\"fas fa-bed text-3xl\"><\/i>\n            <\/div>\n            <p class=\"text-gray-600 mb-6\">\u00bfTienes problemas para dormir? Estamos aqu\u00ed para ayudarte a recuperar tu descanso nocturno.<\/p>\n            \n            <div class=\"space-y-4 mb-8\">\n                <div class=\"bg-green-50 p-4 rounded-lg\">\n                    <h4 class=\"font-bold text-green-800 mb-2 flex items-center\">\n                        <i class=\"fab fa-whatsapp text-green-600 mr-2\"><\/i> WhatsApp R\u00e1pido\n                    <\/h4>\n                    <p class=\"text-sm text-gray-700 mb-3\">Respuesta inmediata sobre el programa para trastornos del sue\u00f1o<\/p>\n                    <a href=\"https:\/\/wa.link\/w3dnnk\" target=\"_blank\" \n                       onclick=\"window.open(this.href, 'popup', 'width=600,height=600'); return false;\"\n                       class=\"inline-flex items-center bg-gradient-to-r from-green-500 to-green-600 text-white font-bold py-3 px-6 rounded-lg shadow hover:from-green-600 hover:to-green-700 transition focus-visible\">\n                        <i class=\"fab fa-whatsapp mr-2 text-xl\"><\/i>\n                        Abrir WhatsApp\n                    <\/a>\n                <\/div>\n                \n                <div class=\"bg-indigo-50 p-4 rounded-lg\">\n                    <h4 class=\"font-bold text-indigo-800 mb-2 flex items-center\">\n                        <i class=\"fas fa-phone-alt text-indigo-600 mr-2\"><\/i> Otras Opciones\n                    <\/h4>\n                    <ul class=\"text-sm text-gray-700 space-y-2\">\n                        <li><i class=\"fas fa-envelope text-indigo-500 mr-2\"><\/i> sueno@psicodominicana.com<\/li>\n                        <li><i class=\"fas fa-globe text-indigo-500 mr-2\"><\/i> psicodominicana.com\/sueno<\/li>\n                        <li><i class=\"fas fa-clock text-indigo-500 mr-2\"><\/i> Horario: Lunes a Viernes 9am-6pm<\/li>\n                    <\/ul>\n                <\/div>\n            <\/div>\n            \n            <button onclick=\"closeContactModal()\" class=\"w-full bg-gray-200 hover:bg-gray-300 text-gray-800 font-bold py-3 px-6 rounded-lg transition focus-visible\">\n                Cerrar\n            <\/button>\n        <\/div>\n    <\/div>\n\n    <!-- Modal de Diario de Sue\u00f1o -->\n    <div id=\"sleepDiaryModal\" class=\"modal-overlay\" role=\"dialog\" aria-labelledby=\"sleepDiaryTitle\" aria-modal=\"true\">\n        <div class=\"modal-content relative max-w-md\">\n            <button class=\"modal-close\" onclick=\"closeSleepDiary()\" aria-label=\"Cerrar diario de sue\u00f1o\">&times;<\/button>\n            <h3 id=\"sleepDiaryTitle\" class=\"text-2xl font-bold text-gray-800 mb-4\">Diario de Sue\u00f1o<\/h3>\n            \n            <div class=\"space-y-4 mb-6\">\n                <div>\n                    <label class=\"block text-sm font-medium text-gray-700 mb-1\">Calidad del sue\u00f1o (1-10)<\/label>\n                    <input type=\"range\" min=\"1\" max=\"10\" value=\"5\" class=\"w-full\" id=\"sleep-quality-input\">\n                    <div class=\"flex justify-between text-xs text-gray-500 mt-1\">\n                        <span>Muy malo<\/span>\n                        <span id=\"sleep-quality-value\">5<\/span>\n                        <span>Excelente<\/span>\n                    <\/div>\n                <\/div>\n                \n                <div>\n                    <label class=\"block text-sm font-medium text-gray-700 mb-1\">Horas de sue\u00f1o<\/label>\n                    <input type=\"number\" min=\"0\" max=\"12\" step=\"0.5\" value=\"7\" class=\"w-full p-2 border border-gray-300 rounded\" id=\"sleep-hours-input\">\n                <\/div>\n                \n                <div>\n                    <label class=\"block text-sm font-medium text-gray-700 mb-1\">Despertares durante la noche<\/label>\n                    <select class=\"w-full p-2 border border-gray-300 rounded\" id=\"awakenings-input\">\n                        <option value=\"0\">Ninguno<\/option>\n                        <option value=\"1\">1 vez<\/option>\n                        <option value=\"2\">2 veces<\/option>\n                        <option value=\"3\">3 veces<\/option>\n                        <option value=\"4\">4 o m\u00e1s veces<\/option>\n                    <\/select>\n                <\/div>\n                \n                <div>\n                    <label class=\"block text-sm font-medium text-gray-700 mb-1\">Sensaci\u00f3n al despertar<\/label>\n                    <select class=\"w-full p-2 border border-gray-300 rounded\" id=\"wake-feeling-input\">\n                        <option value=\"renovado\">Renovado<\/option>\n                        <option value=\"cansado\">Cansado<\/option>\n                        <option value=\"agotado\">Agotado<\/option>\n                        <option value=\"descansado\">Descansado<\/option>\n                    <\/select>\n                <\/div>\n            <\/div>\n            \n            <div class=\"flex space-x-3\">\n                <button onclick=\"saveSleepDiary()\" class=\"flex-1 bg-gradient-to-r from-indigo-500 to-blue-500 text-white font-bold py-3 px-6 rounded-lg shadow hover:from-indigo-600 hover:to-blue-600 transition focus-visible\">\n                    Guardar\n                <\/button>\n                <button onclick=\"closeSleepDiary()\" class=\"flex-1 bg-gray-200 hover:bg-gray-300 text-gray-800 font-bold py-3 px-6 rounded-lg transition focus-visible\">\n                    Cancelar\n                <\/button>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <!-- JavaScript Logic para Trastornos del Sue\u00f1o -->\n    <script>\n        \/\/ Data Store - Programa Terap\u00e9utico de 12 Sesiones para TRASTORNOS DEL SUE\u00d1O\n        const programData = [\n            {\n                id: 1,\n                title: \"Fase 1: Evaluaci\u00f3n y Educaci\u00f3n sobre el Sue\u00f1o\",\n                subtitle: \"Sesiones 1-3 | Comprendiendo tu Sue\u00f1o\",\n                description: \"Realizamos una evaluaci\u00f3n completa de tus patrones de sue\u00f1o actuales, identificamos factores que afectan tu descanso y te proporcionamos educaci\u00f3n sobre los mecanismos del sue\u00f1o. Establecemos una l\u00ednea base para medir el progreso.\",\n                sessions: [\n                    {\n                        num: 1,\n                        title: \"Evaluaci\u00f3n Inicial del Sue\u00f1o\",\n                        focus: \"Historia detallada de patrones de sue\u00f1o, identificaci\u00f3n de s\u00edntomas de insomnio y evaluaci\u00f3n de impacto en la vida diaria.\",\n                        practice: \"Completar diario de sue\u00f1o durante 7 d\u00edas consecutivos para establecer l\u00ednea base.\",\n                        duration: \"60 min\",\n                        materials: [\"Diario de Sue\u00f1o\", \"PDF Evaluaci\u00f3n\", \"Cuestionario\"]\n                    },\n                    {\n                        num: 2,\n                        title: \"Psicoeducaci\u00f3n sobre el Sue\u00f1o\",\n                        focus: \"Comprensi\u00f3n de la arquitectura del sue\u00f1o, ciclos circadianos y factores que afectan la calidad del descanso.\",\n                        practice: \"Registro de exposici\u00f3n a luz natural y artificial a lo largo del d\u00eda.\",\n                        duration: \"60 min\",\n                        materials: [\"PDF Teor\u00eda\", \"Infograf\u00eda Sue\u00f1o\", \"Video Educativo\"]\n                    },\n                    {\n                        num: 3,\n                        title: \"Establecimiento de Metas Realistas\",\n                        focus: \"Definici\u00f3n de objetivos espec\u00edficos para mejorar el sue\u00f1o, identificaci\u00f3n de h\u00e1bitos a modificar y recursos disponibles.\",\n                        practice: \"Creaci\u00f3n de plan personalizado de mejora del sue\u00f1o con metas SMART espec\u00edficas.\",\n                        duration: \"60 min\",\n                        materials: [\"PDF Objetivos\", \"Plantilla Plan\", \"Checklist\"]\n                    }\n                ],\n                toolType: \"evaluacion\",\n                chartFocus: { insomnio: [85, 80, 78], sue\u00f1o: [15, 20, 22] }\n            },\n            {\n                id: 2,\n                title: \"Fase 2: Higiene del Sue\u00f1o y Rutinas\",\n                subtitle: \"Sesiones 4-6 | Creando H\u00e1bitos Saludables\",\n                description: \"Implementamos estrategias de higiene del sue\u00f1o basadas en evidencia cient\u00edfica. Desarrollamos rutinas pre-sue\u00f1o efectivas y optimizamos el ambiente del dormitorio para promover un sue\u00f1o reparador.\",\n                sessions: [\n                    {\n                        num: 4,\n                        title: \"Higiene del Sue\u00f1o B\u00e1sica\",\n                        focus: \"Implementaci\u00f3n de h\u00e1bitos b\u00e1sicos de higiene del sue\u00f1o: horarios regulares, ambiente \u00f3ptimo y manejo de estimulantes.\",\n                        practice: \"Creaci\u00f3n de rutina pre-sue\u00f1o de 60 minutos y ajuste del ambiente del dormitorio.\",\n                        duration: \"60 min\",\n                        materials: [\"Gu\u00eda Higiene\", \"Checklist Dormitorio\", \"Audio Relajaci\u00f3n\"]\n                    },\n                    {\n                        num: 5,\n                        title: \"Rutinas Pre-Sue\u00f1o Efectivas\",\n                        focus: \"Desarrollo de rutinas personalizadas de relajaci\u00f3n antes de dormir, desconexi\u00f3n tecnol\u00f3gica y t\u00e9cnicas de transici\u00f3n sue\u00f1o-vigilia.\",\n                        practice: \"Implementaci\u00f3n de rutina de desconexi\u00f3n digital 90 minutos antes de dormir.\",\n                        duration: \"60 min\",\n                        materials: [\"PDF Rutinas\", \"Audio Meditaci\u00f3n\", \"Gu\u00eda Desconexi\u00f3n\"]\n                    },\n                    {\n                        num: 6,\n                        title: \"Manejo de la Exposici\u00f3n a Luz\",\n                        focus: \"Optimizaci\u00f3n de exposici\u00f3n a luz natural y artificial para regular el ritmo circadiano, manejo de dispositivos electr\u00f3nicos.\",\n                        practice: \"Uso de lentes con filtro azul y ajuste de iluminaci\u00f3n nocturna en el hogar.\",\n                        duration: \"60 min\",\n                        materials: [\"PDF Luz\", \"Gu\u00eda Dispositivos\", \"Recursos\"]\n                    }\n                ],\n                toolType: \"higiene\",\n                chartFocus: { insomnio: [75, 68, 62], sue\u00f1o: [25, 32, 38] }\n            },\n            {\n                id: 3,\n                title: \"Fase 3: Manejo Cognitivo y Relajaci\u00f3n\",\n                subtitle: \"Sesiones 7-9 | Calmando la Mente\",\n                description: \"Trabajamos en la identificaci\u00f3n y manejo de pensamientos intrusivos que interfieren con el sue\u00f1o. Desarrollamos t\u00e9cnicas de relajaci\u00f3n espec\u00edficas para reducir la ansiedad nocturna y promover la conciliaci\u00f3n del sue\u00f1o.\",\n                sessions: [\n                    {\n                        num: 7,\n                        title: \"Pensamientos Intrusivos Nocturnos\",\n                        focus: \"Identificaci\u00f3n de pensamientos que mantienen el insomnio, conexi\u00f3n pensamiento-emoci\u00f3n-sue\u00f1o y t\u00e9cnicas de parada de pensamiento.\",\n                        practice: \"Registro de pensamientos nocturnos y desarrollo de respuestas alternativas.\",\n                        duration: \"60 min\",\n                        materials: [\"PDF Pensamientos\", \"Registro Nocturno\", \"Ejemplos\"]\n                    },\n                    {\n                        num: 8,\n                        title: \"T\u00e9cnicas de Relajaci\u00f3n para Dormir\",\n                        focus: \"Aprendizaje de t\u00e9cnicas de relajaci\u00f3n muscular progresiva, respiraci\u00f3n profunda y visualizaci\u00f3n guiada espec\u00edficas para el sue\u00f1o.\",\n                        practice: \"Pr\u00e1ctica diaria de relajaci\u00f3n muscular progresiva antes de dormir.\",\n                        duration: \"60 min\",\n                        materials: [\"Audio Relajaci\u00f3n\", \"PDF T\u00e9cnicas\", \"Gu\u00eda Visualizaci\u00f3n\"]\n                    },\n                    {\n                        num: 9,\n                        title: \"Manejo de la Ansiedad Nocturna\",\n                        focus: \"Estrategias para manejar la ansiedad relacionada con el sue\u00f1o, t\u00e9cnicas de grounding y aceptaci\u00f3n de noches dif\u00edciles.\",\n                        practice: \"Ejercicio de escritura expresiva para liberar preocupaciones antes de dormir.\",\n                        duration: \"60 min\",\n                        materials: [\"PDF Ansiedad\", \"Diario Preocupaciones\", \"Audio Grounding\"]\n                    }\n                ],\n                toolType: \"relajacion\",\n                chartFocus: { insomnio: [58, 52, 47], sue\u00f1o: [42, 48, 53] }\n            },\n            {\n                id: 4,\n                title: \"Fase 4: Consolidaci\u00f3n y Mantenimiento\",\n                subtitle: \"Sesiones 10-12 | Sosteniendo el Cambio\",\n                description: \"Consolidamos los h\u00e1bitos aprendidos en un plan personalizado de mantenimiento. Desarrollamos estrategias para prevenir reca\u00eddas y preparamos un plan para manejar situaciones especiales que puedan afectar el sue\u00f1o.\",\n                sessions: [\n                    {\n                        num: 10,\n                        title: \"Integraci\u00f3n de H\u00e1bitos Saludables\",\n                        focus: \"Revisi\u00f3n de t\u00e9cnicas aprendidas, identificaci\u00f3n de estrategias m\u00e1s efectivas y creaci\u00f3n de rutina consolidada.\",\n                        practice: \"Dise\u00f1o de rutina semanal personalizada que integra las t\u00e9cnicas m\u00e1s efectivas.\",\n                        duration: \"60 min\",\n                        materials: [\"PDF Integraci\u00f3n\", \"Planificador Semanal\", \"Checklist\"]\n                    },\n                    {\n                        num: 11,\n                        title: \"Prevenci\u00f3n de Reca\u00eddas en el Sue\u00f1o\",\n                        focus: \"Identificaci\u00f3n de se\u00f1ales de alerta temprana, plan de acci\u00f3n para noches dif\u00edciles y manejo de expectativas realistas.\",\n                        practice: \"Elaboraci\u00f3n de plan de prevenci\u00f3n de reca\u00eddas con estrategias espec\u00edficas.\",\n                        duration: \"60 min\",\n                        materials: [\"PDF Prevenci\u00f3n\", \"Plan de Acci\u00f3n\", \"Recursos\"]\n                    },\n                    {\n                        num: 12,\n                        title: \"Cierre y Proyecci\u00f3n Futura\",\n                        focus: \"Evaluaci\u00f3n de progreso, celebraci\u00f3n de logros y establecimiento de metas de mantenimiento a largo plazo.\",\n                        practice: \"Ejercicio de reflexi\u00f3n sobre el camino recorrido y compromiso con la pr\u00e1ctica continua.\",\n                        duration: \"60 min\",\n                        materials: [\"PDF Cierre\", \"Certificado\", \"Plan de Mantenimiento\"]\n                    }\n                ],\n                toolType: \"mantenimiento\",\n                chartFocus: { insomnio: [42, 35, 28], sue\u00f1o: [58, 65, 72] }\n            }\n        ];\n\n        let currentPhaseIndex = 0;\n        let currentSessionIndex = 0;\n        let myChart = null;\n        let sleepDiary = {\n            quality: 5,\n            hours: 7,\n            awakenings: 0,\n            wakeFeeling: 'renovado'\n        };\n        let completedSessions = new Set();\n\n        \/\/ --- Initialization ---\n        document.addEventListener('DOMContentLoaded', () => {\n            createStars();\n            initNav();\n            renderPhase(0);\n            initChart();\n            initProgressTracker();\n            renderCalendar();\n            addScrollAnimations();\n            setupAccessibility();\n            updateSleepTracker();\n        });\n\n        \/\/ --- Crear estrellas en el fondo ---\n        function createStars() {\n            const container = document.getElementById('stars-container');\n            for (let i = 0; i < 50; i++) {\n                const star = document.createElement('div');\n                star.className = 'star';\n                star.style.width = star.style.height = Math.random() * 3 + 1 + 'px';\n                star.style.left = Math.random() * 100 + '%';\n                star.style.top = Math.random() * 100 + '%';\n                star.style.animationDelay = Math.random() * 5 + 's';\n                container.appendChild(star);\n            }\n        }\n\n        \/\/ --- Funciones del Modal de Contacto ---\n        function openContactModal() {\n            const modal = document.getElementById('contactModal');\n            modal.style.display = 'flex';\n            document.body.style.overflow = 'hidden';\n            \n            setTimeout(() => {\n                const closeBtn = modal.querySelector('.modal-close');\n                if (closeBtn) closeBtn.focus();\n            }, 100);\n        }\n\n        function closeContactModal() {\n            const modal = document.getElementById('contactModal');\n            modal.style.display = 'none';\n            document.body.style.overflow = 'auto';\n        }\n\n        \/\/ --- Funciones del Diario de Sue\u00f1o ---\n        function openSleepDiary() {\n            const modal = document.getElementById('sleepDiaryModal');\n            const qualityInput = document.getElementById('sleep-quality-input');\n            const qualityValue = document.getElementById('sleep-quality-value');\n            const hoursInput = document.getElementById('sleep-hours-input');\n            const awakeningsInput = document.getElementById('awakenings-input');\n            const wakeFeelingInput = document.getElementById('wake-feeling-input');\n            \n            \/\/ Set current values\n            qualityInput.value = sleepDiary.quality;\n            qualityValue.textContent = sleepDiary.quality;\n            hoursInput.value = sleepDiary.hours;\n            awakeningsInput.value = sleepDiary.awakenings;\n            wakeFeelingInput.value = sleepDiary.wakeFeeling;\n            \n            \/\/ Update value display when slider changes\n            qualityInput.addEventListener('input', function() {\n                qualityValue.textContent = this.value;\n            });\n            \n            modal.style.display = 'flex';\n            document.body.style.overflow = 'hidden';\n            \n            setTimeout(() => {\n                const closeBtn = modal.querySelector('.modal-close');\n                if (closeBtn) closeBtn.focus();\n            }, 100);\n        }\n\n        function closeSleepDiary() {\n            const modal = document.getElementById('sleepDiaryModal');\n            modal.style.display = 'none';\n            document.body.style.overflow = 'auto';\n        }\n\n        function saveSleepDiary() {\n            const qualityInput = document.getElementById('sleep-quality-input');\n            const hoursInput = document.getElementById('sleep-hours-input');\n            const awakeningsInput = document.getElementById('awakenings-input');\n            const wakeFeelingInput = document.getElementById('wake-feeling-input');\n            \n            sleepDiary = {\n                quality: parseInt(qualityInput.value),\n                hours: parseFloat(hoursInput.value),\n                awakenings: parseInt(awakeningsInput.value),\n                wakeFeeling: wakeFeelingInput.value\n            };\n            \n            updateSleepTracker();\n            closeSleepDiary();\n            alert('Diario de sue\u00f1o guardado. \u00a1Buen trabajo en tu seguimiento!');\n        }\n\n        function updateSleepTracker() {\n            document.getElementById('sleep-quality').textContent = sleepDiary.quality;\n            document.getElementById('sleep-hours').textContent = sleepDiary.hours;\n            document.getElementById('awakenings').textContent = sleepDiary.awakenings;\n            document.getElementById('wake-feeling').textContent = \n                sleepDiary.wakeFeeling.charAt(0).toUpperCase() + sleepDiary.wakeFeeling.slice(1);\n            \n            const today = new Date().toLocaleDateString('es-ES', { \n                weekday: 'long', \n                year: 'numeric', \n                month: 'long', \n                day: 'numeric' \n            });\n            document.getElementById('sleep-tracker').textContent = `\u00daltimo registro: ${today}`;\n        }\n\n        \/\/ Cerrar modales con ESC\n        document.addEventListener('keydown', (e) => {\n            if (e.key === 'Escape') {\n                closeContactModal();\n                closeSleepDiary();\n            }\n        });\n\n        \/\/ --- Navigation Logic ---\n        function initNav() {\n            const nav = document.getElementById('phase-nav');\n            nav.innerHTML = programData.map((phase, index) => `\n                <button onclick=\"changePhase(${index})\" \n                    class=\"phase-btn w-full text-left p-4 rounded-lg transition-all duration-300 hover:bg-indigo-50 border-l-4 border-transparent flex items-center justify-between group ${index === 0 ? 'active' : ''} focus-visible\" \n                    id=\"btn-phase-${index}\"\n                    aria-label=\"Ver ${phase.title}\">\n                    <div>\n                        <span class=\"text-xs font-bold uppercase text-indigo-400 block mb-1 group-hover:text-indigo-500\">Fase ${phase.id}<\/span>\n                        <span class=\"text-sm font-medium text-gray-700 group-hover:text-indigo-700\">${phase.title.split(':')[1]}<\/span>\n                        <span class=\"text-xs text-gray-400 block mt-1\">Sesiones ${phase.id*3-2}-${phase.id*3}<\/span>\n                    <\/div>\n                    <i class=\"fas fa-chevron-right text-indigo-300 text-xs group-hover:text-indigo-500\" aria-hidden=\"true\"><\/i>\n                <\/button>\n            `).join('');\n        }\n\n        function changePhase(index) {\n            currentPhaseIndex = index;\n            \n            \/\/ Update Nav Styles\n            document.querySelectorAll('.phase-btn').forEach(btn => btn.classList.remove('active'));\n            document.getElementById(`btn-phase-${index}`).classList.add('active');\n\n            \/\/ Render Content\n            renderPhase(index);\n            renderTool(programData[index].toolType);\n            \n            \/\/ Update Chart Highlight\n            updateChartHighlight(index);\n            \n            \/\/ Scroll to content on mobile\n            if (window.innerWidth < 1024) {\n                document.getElementById('phase-content').scrollIntoView({ behavior: 'smooth' });\n            }\n        }\n\n        \/\/ --- Content Rendering ---\n        function renderPhase(index) {\n            const data = programData[index];\n            const container = document.getElementById('phase-content');\n            \n            container.innerHTML = `\n                <div class=\"border-b pb-4 mb-6 border-indigo-100\">\n                    <div class=\"flex flex-wrap items-center justify-between\">\n                        <div>\n                            <span class=\"inline-block px-3 py-1 bg-gradient-to-r from-indigo-100 to-blue-100 text-indigo-800 rounded-full text-xs font-bold mb-2 uppercase tracking-wide\">\n                                Sesiones ${data.id*3-2}-${data.id*3} de 12\n                            <\/span>\n                            <h2 class=\"text-2xl font-bold text-gray-800\">${data.title}<\/h2>\n                            <p class=\"text-indigo-500 mt-1 italic\">${data.subtitle}<\/p>\n                        <\/div>\n                        <div class=\"mt-2 md:mt-0\">\n                            <span class=\"inline-flex items-center px-3 py-1 rounded-full text-xs font-medium bg-indigo-100 text-indigo-800\">\n                                <i class=\"fas fa-clock mr-1\" aria-hidden=\"true\"><\/i> 3 sesiones \u00d7 60 min\n                            <\/span>\n                        <\/div>\n                    <\/div>\n                <\/div>\n                \n                <div class=\"bg-gradient-to-r from-indigo-50 to-blue-50 p-5 rounded-xl border-l-4 border-indigo-400 mb-8 shadow-sm\">\n                    <div class=\"flex items-start\">\n                        <i class=\"fas fa-bullseye text-indigo-500 mt-1 mr-3 text-xl\" aria-hidden=\"true\"><\/i>\n                        <div>\n                            <h3 class=\"font-bold text-indigo-800 mb-2 text-lg\">Objetivos de esta Fase<\/h3>\n                            <p class=\"text-sm text-indigo-900 leading-relaxed\">${data.description}<\/p>\n                            <p class=\"text-xs text-indigo-700 mt-3 italic flex items-center\">\n                                <i class=\"fas fa-chart-line mr-2\" aria-hidden=\"true\"><\/i> Progreso esperado: Aumento del ${Math.round((data.chartFocus.sue\u00f1o[2] - data.chartFocus.sue\u00f1o[0])\/data.chartFocus.sue\u00f1o[0]*100)}% en calidad de sue\u00f1o\n                            <\/p>\n                        <\/div>\n                    <\/div>\n                <\/div>\n\n                <div class=\"space-y-6\">\n                    <div class=\"flex items-center justify-between\">\n                        <h3 class=\"text-lg font-bold text-gray-800 flex items-center\">\n                            <i class=\"fas fa-tasks text-indigo-500 mr-2\" aria-hidden=\"true\"><\/i> Sesiones de esta Fase\n                        <\/h3>\n                        <span class=\"text-sm text-indigo-600 font-medium\">${data.sessions.length} sesiones especializadas<\/span>\n                    <\/div>\n                    \n                    <div class=\"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-5\">\n                        ${data.sessions.map((session, sessionIndex) => {\n                            const isCompleted = completedSessions.has(session.num);\n                            return `\n                            <div class=\"session-card bg-white border ${isCompleted ? 'border-green-200' : 'border-indigo-100'} rounded-xl p-5 hover:shadow-lg transition-all duration-300\">\n                                <div class=\"flex justify-between items-start mb-4\">\n                                    <div>\n                                        <div class=\"inline-flex items-center px-3 py-1 ${isCompleted ? 'bg-green-100 text-green-800' : 'bg-indigo-50 text-indigo-700'} rounded-full text-xs font-bold mb-2\">\n                                            <i class=\"fas ${isCompleted ? 'fa-check-circle' : 'fa-clock'} mr-1\" aria-hidden=\"true\"><\/i> Sesi\u00f3n ${session.num}\n                                        <\/div>\n                                        <h4 class=\"font-bold text-gray-800 text-lg mb-2\">${session.title}<\/h4>\n                                    <\/div>\n                                    <div class=\"bg-gradient-to-r from-indigo-100 to-blue-100 p-2 rounded-lg\">\n                                        <i class=\"fas ${getSessionIcon(session.num)} text-indigo-500\" aria-hidden=\"true\"><\/i>\n                                    <\/div>\n                                <\/div>\n                                <div class=\"space-y-4 text-sm\">\n                                    <div>\n                                        <span class=\"font-bold text-gray-500 text-xs uppercase block mb-1\">Enfoque Principal:<\/span>\n                                        <span class=\"text-gray-700\">${session.focus}<\/span>\n                                    <\/div>\n                                    <div class=\"bg-gradient-to-r from-blue-50 to-indigo-50 p-4 rounded-lg border border-blue-100\">\n                                        <span class=\"font-bold text-blue-700 text-xs uppercase block mb-2 flex items-center\">\n                                            <i class=\"fas fa-hands-helping mr-2\" aria-hidden=\"true\"><\/i>Pr\u00e1ctica Clave:\n                                        <\/span>\n                                        <span class=\"text-gray-700 italic\">${session.practice}<\/span>\n                                    <\/div>\n                                    <div class=\"flex items-center justify-between pt-2 border-t border-gray-100\">\n                                        <span class=\"text-xs text-gray-500\">\n                                            <i class=\"fas fa-clock mr-1\" aria-hidden=\"true\"><\/i> ${session.duration}\n                                        <\/span>\n                                        <span class=\"text-xs text-gray-500\">\n                                            <i class=\"fas fa-file-alt mr-1\" aria-hidden=\"true\"><\/i> ${session.materials.length} materiales\n                                        <\/span>\n                                        <button onclick=\"toggleSessionComplete(${session.num})\" class=\"text-xs ${isCompleted ? 'text-green-600 hover:text-green-800' : 'text-indigo-600 hover:text-indigo-800'} focus-visible\">\n                                            <i class=\"fas ${isCompleted ? 'fa-undo' : 'fa-check'} mr-1\" aria-hidden=\"true\"><\/i> ${isCompleted ? 'Desmarcar' : 'Completar'}\n                                        <\/button>\n                                    <\/div>\n                                <\/div>\n                            <\/div>\n                            `;\n                        }).join('')}\n                    <\/div>\n                <\/div>\n                \n                <!-- Bot\u00f3n de contacto dentro de cada fase -->\n                <div class=\"mt-10 pt-6 border-t border-indigo-100 text-center\">\n                    <button onclick=\"openContactModal()\" \n                            class=\"inline-flex items-center bg-gradient-to-r from-green-500 to-green-600 text-white font-bold py-3 px-6 rounded-lg shadow hover:from-green-600 hover:to-green-700 transition focus-visible\">\n                        <i class=\"fab fa-whatsapp mr-2\"><\/i> \u00bfDudas sobre esta fase? Cont\u00e1ctanos\n                    <\/button>\n                <\/div>\n            `;\n        }\n\n        function getSessionIcon(sessionNum) {\n            const icons = [\n                'fa-clipboard-check', 'fa-brain', 'fa-bullseye',\n                'fa-bed', 'fa-bath', 'fa-lightbulb',\n                'fa-moon', 'fa-spa', 'fa-heartbeat',\n                'fa-puzzle-piece', 'fa-shield-alt', 'fa-graduation-cap'\n            ];\n            return icons[sessionNum - 1] || 'fa-moon';\n        }\n\n        \/\/ --- Progress Tracker Functions ---\n        function initProgressTracker() {\n            const dotsContainer = document.getElementById('session-dots');\n            dotsContainer.innerHTML = '';\n            \n            for (let i = 1; i <= 12; i++) {\n                const isCompleted = completedSessions.has(i);\n                dotsContainer.innerHTML += `\n                    <div class=\"progress-step ${isCompleted ? 'sleep-gradient text-white' : 'bg-gray-200 text-gray-400'}\" \n                         aria-label=\"${isCompleted ? 'Sesi\u00f3n ' + i + ' completada' : 'Sesi\u00f3n ' + i + ' pendiente'}\">\n                        ${i}\n                    <\/div>\n                `;\n            }\n            \n            updateProgress();\n        }\n\n        function toggleSessionComplete(sessionNum) {\n            if (completedSessions.has(sessionNum)) {\n                completedSessions.delete(sessionNum);\n            } else {\n                completedSessions.add(sessionNum);\n            }\n            \n            initProgressTracker();\n            renderPhase(currentPhaseIndex);\n        }\n\n        function markSessionComplete() {\n            const currentPhase = programData[currentPhaseIndex];\n            const nextSession = currentPhase.sessions.find(s => !completedSessions.has(s.num));\n            \n            if (nextSession) {\n                completedSessions.add(nextSession.num);\n                initProgressTracker();\n                renderPhase(currentPhaseIndex);\n                \n                \/\/ Show completion message\n                alert(`\u00a1Sesi\u00f3n ${nextSession.num} marcada como completada! Has avanzado al ${Math.round((completedSessions.size \/ 12) * 100)}% del programa.`);\n            } else {\n                alert(\"\u00a1Todas las sesiones de esta fase est\u00e1n completadas! Avanza a la siguiente fase.\");\n            }\n        }\n\n        function updateProgress() {\n            const progress = (completedSessions.size \/ 12) * 100;\n            document.getElementById('progress-bar').style.width = `${progress}%`;\n            document.getElementById('progress-percentage').textContent = `${Math.round(progress)}%`;\n            document.getElementById('completed-sessions').textContent = `${completedSessions.size}\/12`;\n        }\n\n        \/\/ --- Interactive Tools Rendering ---\n        function renderTool(type) {\n            const container = document.getElementById('interactive-lab');\n            let content = '';\n\n            if (type === 'evaluacion') {\n                content = `\n                    <div class=\"text-center mb-4\">\n                        <div class=\"inline-block bg-white p-3 rounded-full shadow-lg mb-2\" aria-hidden=\"true\">\n                            <i class=\"fas fa-clipboard-check text-indigo-500 text-2xl\"><\/i>\n                        <\/div>\n                        <h4 class=\"font-bold text-indigo-800\">Evaluaci\u00f3n de Sue\u00f1o<\/h4>\n                        <p class=\"text-xs text-indigo-600\">Mide tu calidad de sue\u00f1o actual<\/p>\n                    <\/div>\n                    <div class=\"space-y-3\">\n                        <div>\n                            <label for=\"sleep-assessment\" class=\"text-xs font-medium text-gray-700\">Tiempo para conciliar el sue\u00f1o<\/label>\n                            <select id=\"sleep-assessment\" class=\"w-full p-2 text-sm border border-indigo-200 rounded-lg bg-white text-gray-600 focus-visible\">\n                                <option value=\"less15\">Menos de 15 minutos<\/option>\n                                <option value=\"15-30\">15-30 minutos<\/option>\n                                <option value=\"30-60\">30-60 minutos<\/option>\n                                <option value=\"more60\">M\u00e1s de 60 minutos<\/option>\n                            <\/select>\n                        <\/div>\n                        <div>\n                            <label for=\"sleep-problem\" class=\"text-xs font-medium text-gray-700\">Problema principal de sue\u00f1o<\/label>\n                            <select id=\"sleep-problem\" class=\"w-full p-2 text-sm border border-indigo-200 rounded-lg bg-white text-gray-600 focus-visible\">\n                                <option value=\"difficulty\">Dificultad para dormirse<\/option>\n                                <option value=\"waking\">Despertares nocturnos<\/option>\n                                <option value=\"early\">Despertar temprano<\/option>\n                                <option value=\"nonrestorative\">Sue\u00f1o no reparador<\/option>\n                            <\/select>\n                        <\/div>\n                        <button onclick=\"saveSleepAssessment()\" class=\"w-full bg-gradient-to-r from-indigo-600 to-blue-600 text-white py-2 rounded-lg text-sm font-semibold hover:from-indigo-700 hover:to-blue-700 transition shadow-md focus-visible\">\n                            <i class=\"fas fa-save mr-1\"><\/i> Guardar Evaluaci\u00f3n\n                        <\/button>\n                    <\/div>\n                `;\n            } else if (type === 'higiene') {\n                content = `\n                    <div class=\"text-center mb-4\">\n                        <div class=\"inline-block bg-gradient-to-r from-indigo-100 to-blue-100 p-3 rounded-full shadow-lg mb-2\" aria-hidden=\"true\">\n                            <i class=\"fas fa-bed text-indigo-500 text-2xl\"><\/i>\n                        <\/div>\n                        <h4 class=\"font-bold text-indigo-800\">Checklist Higiene del Sue\u00f1o<\/h4>\n                        <p class=\"text-xs text-indigo-600\">Revisa tus h\u00e1bitos nocturnos<\/p>\n                    <\/div>\n                    <div class=\"space-y-3 text-sm\">\n                        <div class=\"space-y-2\">\n                            <div class=\"flex items-center\">\n                                <input type=\"checkbox\" class=\"mr-2 text-indigo-500 focus-visible\">\n                                <span class=\"text-sm\">Hora regular para dormir<\/span>\n                            <\/div>\n                            <div class=\"flex items-center\">\n                                <input type=\"checkbox\" class=\"mr-2 text-indigo-500 focus-visible\">\n                                <span class=\"text-sm\">Dormitorio oscuro y fresco<\/span>\n                            <\/div>\n                            <div class=\"flex items-center\">\n                                <input type=\"checkbox\" class=\"mr-2 text-indigo-500 focus-visible\">\n                                <span class=\"text-sm\">Sin dispositivos 1h antes<\/span>\n                            <\/div>\n                            <div class=\"flex items-center\">\n                                <input type=\"checkbox\" class=\"mr-2 text-indigo-500 focus-visible\">\n                                <span class=\"text-sm\">Rutina de relajaci\u00f3n<\/span>\n                            <\/div>\n                        <\/div>\n                        <div class=\"bg-indigo-50 p-3 rounded-lg\">\n                            <label class=\"font-medium text-indigo-700\">Temperatura ideal del dormitorio<\/label>\n                            <input type=\"range\" min=\"16\" max=\"22\" value=\"18\" class=\"w-full mt-2 focus-visible\">\n                            <div class=\"flex justify-between text-xs text-gray-500 mt-1\">\n                                <span>16\u00b0C<\/span>\n                                <span id=\"temp-value\">18\u00b0C<\/span>\n                                <span>22\u00b0C<\/span>\n                            <\/div>\n                        <\/div>\n                        <button onclick=\"calculateSleepHygiene()\" class=\"w-full bg-gradient-to-r from-indigo-500 to-blue-500 text-white py-2 rounded-lg text-sm font-semibold hover:from-indigo-600 hover:to-blue-600 transition shadow-md focus-visible\">\n                            <i class=\"fas fa-calculator mr-1\"><\/i> Calcular Puntuaci\u00f3n\n                        <\/button>\n                    <\/div>\n                `;\n                \/\/ Add event listener for temperature slider\n                setTimeout(() => {\n                    const slider = document.querySelector('input[type=\"range\"]');\n                    const valueDisplay = document.getElementById('temp-value');\n                    if (slider && valueDisplay) {\n                        slider.addEventListener('input', (e) => {\n                            valueDisplay.textContent = e.target.value + '\u00b0C';\n                        });\n                    }\n                }, 100);\n            } else if (type === 'relajacion') {\n                content = `\n                    <div class=\"text-center mb-4\">\n                        <div class=\"inline-block bg-gradient-to-r from-blue-100 to-indigo-100 p-3 rounded-full shadow-lg mb-2\" aria-hidden=\"true\">\n                            <i class=\"fas fa-spa text-blue-500 text-2xl\"><\/i>\n                        <\/div>\n                        <h4 class=\"font-bold text-blue-800\">Relajaci\u00f3n para Dormir<\/h4>\n                        <p class=\"text-xs text-blue-600\">Respiraci\u00f3n 4-7-8 para conciliar el sue\u00f1o<\/p>\n                    <\/div>\n                    <div class=\"flex flex-col items-center space-y-3 text-xs\">\n                        <div id=\"breathing-circle\" class=\"w-24 h-24 bg-gradient-to-r from-blue-100 to-indigo-100 rounded-full flex items-center justify-center border-4 border-blue-200 pulse-gentle\">\n                            <span class=\"text-2xl font-bold text-blue-700\" id=\"breath-count\">4<\/span>\n                        <\/div>\n                        <div id=\"breath-instruction\" class=\"text-center text-sm font-medium text-blue-700\">INHALA<\/div>\n                        <div class=\"flex space-x-4\">\n                            <div class=\"text-center\">\n                                <div class=\"bg-white px-3 py-1 rounded-lg border border-blue-200\">\n                                    <span class=\"font-bold text-blue-700\">4<\/span>\n                                <\/div>\n                                <div class=\"text-xs text-blue-600 mt-1\">Inhala<\/div>\n                            <\/div>\n                            <div class=\"text-center\">\n                                <div class=\"bg-white px-3 py-1 rounded-lg border border-blue-200\">\n                                    <span class=\"font-bold text-blue-700\">7<\/span>\n                                <\/div>\n                                <div class=\"text-xs text-blue-600 mt-1\">Mant\u00e9n<\/div>\n                            <\/div>\n                            <div class=\"text-center\">\n                                <div class=\"bg-white px-3 py-1 rounded-lg border border-blue-200\">\n                                    <span class=\"font-bold text-blue-700\">8<\/span>\n                                <\/div>\n                                <div class=\"text-xs text-blue-600 mt-1\">Exhala<\/div>\n                            <\/div>\n                        <\/div>\n                    <\/div>\n                    <button onclick=\"startBreathingExercise()\" class=\"w-full bg-gradient-to-r from-blue-500 to-indigo-500 text-white py-2 rounded-lg text-sm font-semibold hover:from-blue-600 hover:to-indigo-600 transition shadow-md mt-4 focus-visible\">\n                        <i class=\"fas fa-play-circle mr-1\"><\/i> Iniciar Ejercicio (5 ciclos)\n                    <\/button>\n                `;\n            } else if (type === 'mantenimiento') {\n                content = `\n                    <div class=\"text-center mb-4\">\n                        <div class=\"inline-block bg-gradient-to-r from-indigo-100 to-purple-100 p-3 rounded-full shadow-lg mb-2\" aria-hidden=\"true\">\n                            <i class=\"fas fa-puzzle-piece text-indigo-500 text-2xl\"><\/i>\n                        <\/div>\n                        <h4 class=\"font-bold text-indigo-800\">Plan de Mantenimiento<\/h4>\n                        <p class=\"text-xs text-indigo-600\">Consolida tus h\u00e1bitos de sue\u00f1o<\/p>\n                    <\/div>\n                    <div class=\"space-y-3\">\n                        <div class=\"bg-indigo-50 p-3 rounded-lg\">\n                            <h5 class=\"font-bold text-indigo-700 text-xs uppercase mb-2\">Rutinas a mantener<\/h5>\n                            <div class=\"space-y-2\">\n                                <div class=\"flex items-center\">\n                                    <input type=\"checkbox\" class=\"mr-2 text-indigo-500 focus-visible\">\n                                    <span class=\"text-sm\">Diario de sue\u00f1o semanal<\/span>\n                                <\/div>\n                                <div class=\"flex items-center\">\n                                    <input type=\"checkbox\" class=\"mr-2 text-indigo-500 focus-visible\">\n                                    <span class=\"text-sm\">Rutina pre-sue\u00f1o<\/span>\n                                <\/div>\n                                <div class=\"flex items-center\">\n                                    <input type=\"checkbox\" class=\"mr-2 text-indigo-500 focus-visible\">\n                                    <span class=\"text-sm\">Horario regular<\/span>\n                                <\/div>\n                                <div class=\"flex items-center\">\n                                    <input type=\"checkbox\" class=\"mr-2 text-indigo-500 focus-visible\">\n                                    <span class=\"text-sm\">Ejercicio de relajaci\u00f3n<\/span>\n                                <\/div>\n                            <\/div>\n                        <\/div>\n                        <div class=\"bg-white p-3 rounded-lg border border-indigo-100\">\n                            <h5 class=\"font-bold text-indigo-700 text-xs uppercase mb-2\">Frecuencia de revisi\u00f3n<\/h5>\n                            <div class=\"flex items-center\">\n                                <span class=\"text-xs text-gray-500 mr-2\">Semanal<\/span>\n                                <input type=\"range\" min=\"1\" max=\"4\" value=\"2\" class=\"flex-grow focus-visible\">\n                                <span class=\"text-xs text-gray-500 ml-2\">Mensual<\/span>\n                            <\/div>\n                        <\/div>\n                        <button onclick=\"createMaintenancePlan()\" class=\"w-full bg-gradient-to-r from-indigo-500 to-purple-500 text-white py-2 rounded-lg text-sm font-semibold hover:from-indigo-600 hover:to-purple-600 transition shadow-md focus-visible\">\n                            <i class=\"fas fa-calendar-plus mr-1\"><\/i> Crear Plan de Mantenimiento\n                        <\/button>\n                    <\/div>\n                `;\n            }\n\n            container.innerHTML = content;\n        }\n\n        \/\/ --- Breathing Exercise Function ---\n        let breathingTimer = null;\n        function startBreathingExercise() {\n            const circle = document.getElementById('breathing-circle');\n            const instruction = document.getElementById('breath-instruction');\n            const count = document.getElementById('breath-count');\n            \n            if (breathingTimer) {\n                clearInterval(breathingTimer);\n                breathingTimer = null;\n                circle.style.animation = 'none';\n                instruction.textContent = 'INHALA';\n                count.textContent = '4';\n                return;\n            }\n            \n            let breathPhase = 'inhale';\n            let seconds = 4;\n            let totalCycles = 0;\n            \n            circle.style.animation = 'pulse 4s infinite ease-in-out';\n            \n            breathingTimer = setInterval(() => {\n                seconds--;\n                count.textContent = seconds;\n                \n                if (seconds === 0) {\n                    switch (breathPhase) {\n                        case 'inhale':\n                            breathPhase = 'hold';\n                            seconds = 7;\n                            instruction.textContent = 'MANT\u00c9N';\n                            break;\n                        case 'hold':\n                            breathPhase = 'exhale';\n                            seconds = 8;\n                            instruction.textContent = 'EXHALA';\n                            break;\n                        case 'exhale':\n                            breathPhase = 'inhale';\n                            seconds = 4;\n                            instruction.textContent = 'INHALA';\n                            totalCycles++;\n                            \n                            if (totalCycles >= 5) { \/\/ 5 ciclos para sue\u00f1o\n                                clearInterval(breathingTimer);\n                                breathingTimer = null;\n                                circle.style.animation = 'none';\n                                alert('\u00a1Ejercicio completado! Has completado 5 ciclos de respiraci\u00f3n 4-7-8. Ideal para conciliar el sue\u00f1o.');\n                                instruction.textContent = 'COMPLETADO';\n                                count.textContent = '\ud83d\udca4';\n                            }\n                            break;\n                    }\n                }\n            }, 1000);\n        }\n\n        \/\/ --- Calendar Functions ---\n        function renderCalendar() {\n            const calendarBody = document.getElementById('program-calendar');\n            calendarBody.innerHTML = '';\n            \n            let allSessions = [];\n            programData.forEach(phase => {\n                allSessions = [...allSessions, ...phase.sessions];\n            });\n            \n            allSessions.forEach(session => {\n                const isCompleted = completedSessions.has(session.num);\n                calendarBody.innerHTML += `\n                    <tr class=\"${isCompleted ? 'bg-green-50' : 'hover:bg-indigo-50'} border-b border-gray-100\">\n                        <td class=\"py-3 px-4\">\n                            <div class=\"flex items-center\">\n                                <div class=\"progress-step ${isCompleted ? 'sleep-gradient text-white' : 'bg-indigo-100 text-indigo-800'} mr-2\">\n                                    ${session.num}\n                                <\/div>\n                                <span class=\"font-medium\">Sesi\u00f3n ${session.num}<\/span>\n                            <\/div>\n                        <\/td>\n                        <td class=\"py-3 px-4\">\n                            <span class=\"inline-flex items-center px-2 py-1 rounded text-xs font-medium bg-indigo-100 text-indigo-800\">\n                                Fase ${Math.ceil(session.num\/3)}\n                            <\/span>\n                        <\/td>\n                        <td class=\"py-3 px-4 font-medium\">${session.title}<\/td>\n                        <td class=\"py-3 px-4\">${session.duration}<\/td>\n                        <td class=\"py-3 px-4\">\n                            <div class=\"flex space-x-1\">\n                                ${session.materials.map(m => `<span class=\"text-xs px-2 py-1 bg-gray-100 rounded\">${m}<\/span>`).join('')}\n                            <\/div>\n                        <\/td>\n                    <\/tr>\n                `;\n            });\n        }\n\n        \/\/ --- Chart.js Logic para Trastornos del Sue\u00f1o ---\n        function initChart() {\n            const ctx = document.getElementById('progressChart').getContext('2d');\n            \n            \/\/ Datos para 12 sesiones + inicio\n            const labels = ['Inicio', 'S1', 'S2', 'S3', 'S4', 'S5', 'S6', 'S7', 'S8', 'S9', 'S10', 'S11', 'S12'];\n            const insomnioData = [85, 80, 78, 75, 68, 62, 58, 52, 47, 42, 35, 30, 25];\n            const sue\u00f1oData = [15, 20, 22, 25, 32, 38, 42, 48, 53, 58, 65, 70, 75];\n\n            myChart = new Chart(ctx, {\n                type: 'line',\n                data: {\n                    labels: labels,\n                    datasets: [\n                        {\n                            label: 'S\u00edntomas de Insomnio',\n                            data: insomnioData,\n                            borderColor: '#ef4444',\n                            backgroundColor: 'rgba(239, 68, 68, 0.1)',\n                            tension: 0.4,\n                            fill: true,\n                            pointRadius: 4,\n                            pointBackgroundColor: '#ef4444',\n                            borderWidth: 2\n                        },\n                        {\n                            label: 'Sue\u00f1o Reparador',\n                            data: sue\u00f1oData,\n                            borderColor: '#10b981',\n                            backgroundColor: 'rgba(16, 185, 129, 0.1)',\n                            tension: 0.4,\n                            fill: true,\n                            pointRadius: 4,\n                            pointBackgroundColor: '#10b981',\n                            borderWidth: 2\n                        }\n                    ]\n                },\n                options: {\n                    responsive: true,\n                    maintainAspectRatio: false,\n                    plugins: {\n                        legend: {\n                            position: 'bottom',\n                            labels: {\n                                boxWidth: 12,\n                                font: { size: 11 },\n                                padding: 15\n                            }\n                        },\n                        tooltip: {\n                            mode: 'index',\n                            intersect: false,\n                            backgroundColor: 'rgba(30, 41, 59, 0.9)',\n                            titleFont: { size: 12 },\n                            bodyFont: { size: 11 }\n                        }\n                    },\n                    scales: {\n                        y: {\n                            beginAtZero: true,\n                            max: 100,\n                            title: {\n                                display: true,\n                                text: 'Intensidad (%)',\n                                font: { size: 11, weight: 'bold' },\n                                color: '#4a5568'\n                            },\n                            grid: {\n                                color: 'rgba(240, 244, 248, 0.8)'\n                            },\n                            ticks: {\n                                font: { size: 10 }\n                            }\n                        },\n                        x: {\n                            grid: {\n                                display: false\n                            },\n                            ticks: {\n                                font: { size: 10 }\n                            },\n                            title: {\n                                display: true,\n                                text: 'Sesiones del Programa',\n                                font: { size: 11, weight: 'bold' },\n                                color: '#4a5568'\n                            }\n                        }\n                    }\n                }\n            });\n        }\n\n        function updateChartHighlight(phaseIndex) {\n            if(myChart) myChart.update();\n        }\n\n        \/\/ --- Utility Functions ---\n        function saveSleepAssessment() {\n            alert('Evaluaci\u00f3n de sue\u00f1o guardada. Esta informaci\u00f3n ser\u00e1 tu l\u00ednea base para medir el progreso durante las 12 sesiones.');\n        }\n\n        function calculateSleepHygiene() {\n            const checks = document.querySelectorAll('input[type=\"checkbox\"]');\n            let checkedCount = 0;\n            checks.forEach(check => {\n                if (check.checked) checkedCount++;\n            });\n            const score = Math.round((checkedCount \/ checks.length) * 100);\n            alert(`Tu puntuaci\u00f3n de higiene del sue\u00f1o es ${score}%. ${score >= 75 ? '\u00a1Excelente trabajo!' : 'Sigue trabajando en tus h\u00e1bitos.'}`);\n        }\n\n        function createMaintenancePlan() {\n            alert('Plan de mantenimiento creado. Revisa tu calendario para ver tu plan personalizado para mantener un sue\u00f1o saludable.');\n        }\n\n        function downloadAllResources() {\n            alert('Iniciando descarga de todos los recursos para mejorar el sue\u00f1o. En un entorno real, esto descargar\u00eda archivos comprimidos.');\n        }\n\n        function exportCalendar() {\n            alert('Calendario exportado como PDF. En un entorno real, esto generar\u00eda un PDF con tu programa completo de 12 sesiones para trastornos del sue\u00f1o.');\n        }\n\n        \/\/ --- Accessibility Setup ---\n        function setupAccessibility() {\n            \/\/ A\u00f1adir aria-labels a los botones sin texto descriptivo\n            document.querySelectorAll('button').forEach(button => {\n                if (!button.textContent.trim() && !button.getAttribute('aria-label')) {\n                    const icon = button.querySelector('i');\n                    if (icon) {\n                        const iconClass = Array.from(icon.classList).find(c => c.startsWith('fa-'));\n                        if (iconClass) {\n                            const action = iconClass.replace('fa-', '').replace('-', ' ');\n                            button.setAttribute('aria-label', action);\n                        }\n                    }\n                }\n            });\n            \n            \/\/ Manejar navegaci\u00f3n por teclado en modales\n            document.addEventListener('keydown', (e) => {\n                const contactModal = document.getElementById('contactModal');\n                const sleepModal = document.getElementById('sleepDiaryModal');\n                \n                if (e.key === 'Tab' && (contactModal.style.display === 'flex' || sleepModal.style.display === 'flex')) {\n                    const modal = contactModal.style.display === 'flex' ? contactModal : sleepModal;\n                    const focusableElements = modal.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])');\n                    const firstElement = focusableElements[0];\n                    const lastElement = focusableElements[focusableElements.length - 1];\n                    \n                    if (e.shiftKey && document.activeElement === firstElement) {\n                        e.preventDefault();\n                        lastElement.focus();\n                    } else if (!e.shiftKey && document.activeElement === lastElement) {\n                        e.preventDefault();\n                        firstElement.focus();\n                    }\n                }\n            });\n        }\n\n        \/\/ --- Animations ---\n        function addScrollAnimations() {\n            const observer = new IntersectionObserver((entries) => {\n                entries.forEach(entry => {\n                    if (entry.isIntersecting) {\n                        entry.target.classList.add('section-animate');\n                    }\n                });\n            }, { threshold: 0.1 });\n\n            document.querySelectorAll('section').forEach(section => {\n                observer.observe(section);\n            });\n        }\n    <\/script>\n<\/body>\n<\/html>\n","protected":false},"excerpt":{"rendered":"<p>Programa especializado de 12 sesiones para trastornos del sue\u00f1o. T\u00e9cnicas de higiene del sue\u00f1o, reestructuraci\u00f3n cognitiva y protocolos cl\u00ednicos probados.<\/p>\n","protected":false},"author":1,"featured_media":712,"comment_status":"open","ping_status":"open","sticky":true,"template":"elementor_header_footer","format":"standard","meta":{"footnotes":""},"categories":[632],"tags":[60],"class_list":["post-106","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ansiedad","tag-trastornosdelsueno-insomnio-higienedelsueno-descanso-suenosaludable-terapiadelsueno-12sesiones-programaespecializado-saludmental-bienestar"],"_links":{"self":[{"href":"https:\/\/psicodominicana.com\/blog\/wp-json\/wp\/v2\/posts\/106","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/psicodominicana.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/psicodominicana.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/psicodominicana.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/psicodominicana.com\/blog\/wp-json\/wp\/v2\/comments?post=106"}],"version-history":[{"count":0,"href":"https:\/\/psicodominicana.com\/blog\/wp-json\/wp\/v2\/posts\/106\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/psicodominicana.com\/blog\/wp-json\/wp\/v2\/media\/712"}],"wp:attachment":[{"href":"https:\/\/psicodominicana.com\/blog\/wp-json\/wp\/v2\/media?parent=106"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/psicodominicana.com\/blog\/wp-json\/wp\/v2\/categories?post=106"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/psicodominicana.com\/blog\/wp-json\/wp\/v2\/tags?post=106"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}