/**
 * IOmed · Centro Médico Dayenu — Landing pública refinada
 * ---------------------------------------------------------------------------
 * Capa ADITIVA sobre el HTML existente de fronts/medicals/index. Eleva la
 * primera impresión (hero atmosférico, tipografía editorial, profundidad,
 * animaciones de entrada) sin cambiar estructura ni datos dinámicos.
 * Respeta modo claro/oscuro y reduce-motion.
 */

.home-page {
    --lp-teal-900: #0B3B39;
    --lp-teal-700: #0F766E;
    --lp-teal-600: #0D9488;
    --lp-teal-500: #14B8A6;
    --lp-mist-a:   #F0FDFA;
    --lp-mist-b:   #ECFEFF;
    --lp-ink:      #0F2A2A;
    --lp-muted:    #5B7373;
    --lp-display:  "Fraunces", "Poppins", Georgia, serif;
    --lp-ease:     cubic-bezier(0.22, 1, 0.36, 1);
}

/* ---------------------------------------------------------------------------
   Hero — atmósfera con gradiente en malla y blobs suaves
   --------------------------------------------------------------------------- */
.home-page .hero-section {
    position: relative;
    background:
        radial-gradient(60% 80% at 88% 8%, rgba(20, 184, 166, 0.14), transparent 60%),
        radial-gradient(50% 60% at 6% 92%, rgba(13, 148, 136, 0.10), transparent 55%),
        linear-gradient(168deg, var(--lp-mist-a) 0%, var(--lp-mist-b) 55%, #FFFFFF 100%);
    overflow: hidden;
}
.home-page .hero-section::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: radial-gradient(rgba(13, 148, 136, 0.05) 1px, transparent 1px);
    background-size: 22px 22px;
    -webkit-mask-image: radial-gradient(70% 60% at 70% 20%, #000 0%, transparent 75%);
    mask-image: radial-gradient(70% 60% at 70% 20%, #000 0%, transparent 75%);
    pointer-events: none;
}
.home-page .hero-content { position: relative; z-index: 2; }
.home-page .hero-content > p:first-child {
    display: inline-block;
    padding: 6px 14px;
    border-radius: 999px;
    background: rgba(13, 148, 136, 0.10);
    color: var(--lp-teal-700) !important;
    font-weight: 600 !important;
    letter-spacing: 0.02em;
}
.home-page .hero-content h1 {
    font-family: var(--lp-display);
    font-weight: 700;
    letter-spacing: -0.025em;
    line-height: 1.08;
    color: var(--lp-ink);
    font-size: clamp(2.2rem, 4.4vw, 3.6rem);
}
.home-page .hero-section img {
    border-radius: 28px !important;
    box-shadow: 0 30px 70px -24px rgba(11, 59, 57, 0.45) !important;
    position: relative;
    z-index: 2;
}

/* Animación de entrada escalonada */
@keyframes lpRise {
    from { opacity: 0; transform: translateY(18px); }
    to   { opacity: 1; transform: translateY(0); }
}
.home-page .hero-content > * { animation: lpRise 0.7s var(--lp-ease) both; }
.home-page .hero-content > *:nth-child(1) { animation-delay: 0.05s; }
.home-page .hero-content > *:nth-child(2) { animation-delay: 0.14s; }
.home-page .hero-content > *:nth-child(3) { animation-delay: 0.22s; }
.home-page .hero-content > *:nth-child(4) { animation-delay: 0.30s; }
.home-page .hero-section img { animation: lpRise 0.9s var(--lp-ease) 0.18s both; }

/* Botones del hero — pill con elevación de marca */
.home-page .btn-primary {
    border-radius: 999px;
    padding: 0.8rem 1.7rem;
    font-weight: 600;
    box-shadow: 0 8px 22px -8px rgba(13, 148, 136, 0.55);
    transition: transform 0.18s var(--lp-ease), box-shadow 0.18s var(--lp-ease);
}
.home-page .btn-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 30px -10px rgba(13, 148, 136, 0.7);
}
.home-page .btn-outline-primary {
    border-radius: 999px;
    padding: 0.8rem 1.7rem;
    font-weight: 600;
}

/* ---------------------------------------------------------------------------
   Info strip — tarjeta flotante que solapa el hero
   --------------------------------------------------------------------------- */
.home-page .hero-section + section {
    background: transparent !important;
    border-bottom: 0 !important;
    margin-top: -34px;
    position: relative;
    z-index: 3;
}
.home-page .hero-section + section .row {
    background: #FFFFFF;
    border-radius: 18px;
    box-shadow: 0 18px 44px -20px rgba(11, 59, 57, 0.28);
    border: 1px solid rgba(13, 148, 136, 0.10);
    padding: 20px 12px;
    margin-inline: 0;
}
.home-page .hero-section + section .col-md-4 { font-weight: 500; }

/* ---------------------------------------------------------------------------
   Encabezados de sección — display serif consistente
   --------------------------------------------------------------------------- */
.home-page h2 {
    font-family: var(--lp-display);
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--lp-ink);
}
.home-page .top-heading {
    letter-spacing: 0.08em;
    text-transform: uppercase;
    font-weight: 700 !important;
}
.home-page .number-big,
.home-page .card-number {
    font-family: var(--lp-display);
    font-weight: 700;
}

/* ---------------------------------------------------------------------------
   "Cómo trabajamos" — cards con profundidad y número protagonista
   --------------------------------------------------------------------------- */
.home-page .how-work-section {
    background: linear-gradient(180deg, #FFFFFF 0%, var(--lp-mist-a) 100%);
}
.home-page .how-work-section .card {
    border: 1px solid rgba(13, 148, 136, 0.10);
    border-radius: 20px;
    box-shadow: 0 2px 6px rgba(11, 59, 57, 0.04);
    transition: transform 0.3s var(--lp-ease), box-shadow 0.3s var(--lp-ease);
    overflow: hidden;
}
.home-page .how-work-section .card:hover {
    transform: translateY(-6px);
    box-shadow: 0 24px 48px -18px rgba(13, 148, 136, 0.28);
}
.home-page .how-work-section .card-number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 60px;
    height: 60px;
    border-radius: 18px;
    background: linear-gradient(135deg, var(--lp-teal-500), var(--lp-teal-700));
    color: #FFFFFF;
    font-size: 1.6rem;
    box-shadow: 0 12px 24px -10px rgba(13, 148, 136, 0.6);
}

/* ---------------------------------------------------------------------------
   Sección de cita — bloque de marca con relieve
   --------------------------------------------------------------------------- */
.home-page .appointmnet-section__inner-block {
    background: linear-gradient(135deg, var(--lp-teal-700) 0%, var(--lp-teal-900) 100%) !important;
    border-radius: 32px;
    box-shadow: 0 32px 64px -24px rgba(11, 59, 57, 0.5);
    overflow: hidden;
    padding-block: 8px;
}
.home-page .appointmnet-section .btn-light {
    border-radius: 999px;
    font-weight: 700;
    color: var(--lp-teal-700);
    box-shadow: 0 12px 28px -10px rgba(0, 0, 0, 0.3);
    transition: transform 0.18s var(--lp-ease);
}
.home-page .appointmnet-section .btn-light:hover { transform: translateY(-2px); }
.home-page .appointmnet-section .fa-2x { opacity: 0.95; }

/* ---------------------------------------------------------------------------
   Servicios — icon box con marca
   --------------------------------------------------------------------------- */
.home-page .services-section .icon-box {
    width: 84px;
    height: 84px;
    border-radius: 24px;
    background: linear-gradient(135deg, rgba(20, 184, 166, 0.12), rgba(13, 148, 136, 0.06));
    border: 1px solid rgba(13, 148, 136, 0.12);
    transition: transform 0.3s var(--lp-ease);
}
.home-page .services-innner-block:hover .icon-box { transform: scale(1.06) rotate(-3deg); }
.home-page .services-section h4 { font-weight: 600; }

/* ---------------------------------------------------------------------------
   Modo oscuro
   --------------------------------------------------------------------------- */
body.dark-mode .home-page .hero-section {
    background:
        radial-gradient(60% 80% at 88% 8%, rgba(20, 184, 166, 0.16), transparent 60%),
        linear-gradient(168deg, #04201D 0%, #052A28 60%, #06302B 100%);
}
body.dark-mode .home-page .hero-content h1,
body.dark-mode .home-page h2 { color: #ECFDF9; }
body.dark-mode .home-page .hero-section + section .row { background: #0A2523; border-color: rgba(45, 212, 191, 0.16); }

/* ---------------------------------------------------------------------------
   Accesibilidad
   --------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
    .home-page .hero-content > *,
    .home-page .hero-section img { animation: none !important; }
    .home-page .how-work-section .card:hover,
    .home-page .btn-primary:hover,
    .home-page .services-innner-block:hover .icon-box { transform: none !important; }
}

/* ---------------------------------------------------------------------------
   Flechas de carruseles (Slick) — la fuente de iconos "slick" no está
   empaquetada y el glyph salía como un cuadro vacío. Chevrons geométricos en
   CSS puro: no dependen de ninguna fuente.
   --------------------------------------------------------------------------- */
.slick-prev,
.slick-next {
    width: 44px;
    height: 44px;
    background: #FFFFFF !important;
    border: 1px solid rgba(13, 148, 136, 0.14);
    border-radius: 999px;
    box-shadow: 0 8px 20px -8px rgba(11, 59, 57, 0.25);
    z-index: 5;
    transition: transform 0.18s cubic-bezier(0.22, 1, 0.36, 1),
                box-shadow 0.18s cubic-bezier(0.22, 1, 0.36, 1);
}
.slick-prev:hover,
.slick-next:hover {
    transform: scale(1.06);
    box-shadow: 0 12px 26px -10px rgba(13, 148, 136, 0.4);
}
.slick-prev:active,
.slick-next:active {
    transform: scale(0.95);
}
.slick-prev::before,
.slick-next::before {
    content: "" !important;
    display: block;
    width: 11px;
    height: 11px;
    border-right: 2.5px solid #0F766E;
    border-bottom: 2.5px solid #0F766E;
    margin: auto;
    opacity: 1;
}
.slick-prev::before {
    transform: rotate(135deg);
    margin-left: 6px;
}
.slick-next::before {
    transform: rotate(-45deg);
    margin-right: 6px;
}
@media (prefers-reduced-motion: reduce) {
    .slick-prev, .slick-next { transition: none; }
    .slick-prev:hover, .slick-next:hover, .slick-prev:active, .slick-next:active { transform: none; }
}
