/*
 * Estilos de respaldo para los contenedores Elementor creados por
 * Nilson Reservas. Se cargan después de Elementor para impedir que los
 * estilos globales del editor desarmen la estructura guardada.
 */
:root {
    --npa-layout-ink: #173b3a;
    --npa-layout-ink-2: #244d4b;
    --npa-layout-muted: #667675;
    --npa-layout-accent: #2f7771;
    --npa-layout-accent-dark: #205b57;
    --npa-layout-soft: #eef6f3;
    --npa-layout-sand: #f5f0e8;
    --npa-layout-line: #dbe7e3;
    --npa-layout-shell: 1180px;
}

body .entry-content--elementor,
body .entry-content--elementor > .elementor,
body .entry-content--elementor > .elementor > .elementor-element {
    margin: 0 !important;
    max-width: none !important;
    width: 100% !important;
}

body .elementor .elementor-element.npa-el-section {
    --width: 100% !important;
    margin: 0 !important;
    max-width: none !important;
    padding-inline: 0 !important;
    position: relative !important;
    width: 100% !important;
}

body .elementor .elementor-element.npa-el-shell {
    --width: 100% !important;
    margin-inline: auto !important;
    max-width: var(--npa-layout-shell) !important;
    padding-inline: 1.25rem !important;
    width: 100% !important;
}

body .elementor .npa-el-section .elementor-heading-title {
    color: var(--npa-layout-ink) !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-weight: 600 !important;
    letter-spacing: -.035em !important;
    line-height: 1.08 !important;
}

body .elementor .npa-el-section .elementor-widget-text-editor,
body .elementor .npa-el-section .elementor-widget-text-editor p {
    color: var(--npa-layout-ink-2);
}

/* Portada */
body .elementor .elementor-element.npa-el-hero,
body .elementor .elementor-element.elementor-element-11c302ef {
    background:
        radial-gradient(circle at 78% 18%, rgba(255,255,255,.82), transparent 22%),
        linear-gradient(135deg, #e9f4f0 0%, #f5f0e8 100%) !important;
    overflow: hidden !important;
    padding-block: clamp(5rem, 10vw, 9rem) !important;
}

body .elementor .elementor-element.npa-el-hero::after,
body .elementor .elementor-element.elementor-element-11c302ef::after {
    border: 1px solid rgba(47, 119, 113, .12);
    border-radius: 50%;
    content: "";
    height: 540px;
    pointer-events: none;
    position: absolute;
    right: -180px;
    top: -160px;
    width: 540px;
}

body .elementor .elementor-element.npa-el-hero-grid,
body .elementor .elementor-element.elementor-element-6eb313a4 {
    --display: flex !important;
    align-items: center !important;
    display: flex !important;
    flex-direction: row !important;
    gap: clamp(2rem, 7vw, 7rem) !important;
    position: relative !important;
    z-index: 1 !important;
}

body .elementor .elementor-element.npa-el-hero-copy,
body .elementor .elementor-element.elementor-element-7290db6 {
    --width: 66% !important;
    display: flex !important;
    flex: 1 1 66% !important;
    flex-direction: column !important;
    gap: 1rem !important;
    width: 66% !important;
}

body .elementor .elementor-widget-heading.npa-el-kicker .elementor-heading-title,
body .elementor .npa-el-kicker .elementor-heading-title {
    color: var(--npa-layout-accent) !important;
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
    font-size: .76rem !important;
    font-weight: 850 !important;
    letter-spacing: .14em !important;
    line-height: 1.35 !important;
    text-transform: uppercase !important;
}

body .elementor .npa-el-title .elementor-heading-title {
    margin: 0 !important;
}

body .elementor .npa-el-hero .npa-el-title .elementor-heading-title,
body .elementor .elementor-element-11c302ef .elementor-element-f2fc1cf .elementor-heading-title {
    color: var(--npa-layout-ink) !important;
    font-size: clamp(2.6rem, 7vw, 5.6rem) !important;
    max-width: 850px !important;
}

body .elementor .elementor-element.npa-el-lead,
body .elementor .elementor-element.npa-el-lead p {
    color: var(--npa-layout-ink-2) !important;
    font-size: clamp(1.05rem, 2vw, 1.28rem) !important;
    margin: 0 !important;
    max-width: 700px !important;
}

body .elementor .elementor-element.npa-el-actions,
body .elementor .elementor-element.elementor-element-1638302b {
    --display: flex !important;
    align-items: center !important;
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    gap: 1rem 1.5rem !important;
    margin-top: 1rem !important;
}

body .elementor .elementor-element.npa-el-button .elementor-button {
    border-radius: 999px !important;
    font-weight: 800 !important;
    padding: .9rem 1.35rem !important;
}

body .elementor .elementor-element.npa-el-button-primary .elementor-button,
body .elementor .elementor-element.npa-el-button-secondary .elementor-button {
    background: var(--npa-layout-accent) !important;
    color: #fff !important;
}

body .elementor .elementor-element.npa-el-button-primary .elementor-button:hover,
body .elementor .elementor-element.npa-el-button-secondary .elementor-button:hover {
    background: var(--npa-layout-accent-dark) !important;
    color: #fff !important;
}

body .elementor .elementor-element.npa-el-button-link .elementor-button {
    background: transparent !important;
    color: var(--npa-layout-accent-dark) !important;
    padding-inline: 0 !important;
    text-decoration: underline !important;
    text-underline-offset: .25em !important;
}

body .elementor .elementor-element.npa-el-session-card,
body .elementor .elementor-element.elementor-element-6dab6105 {
    --width: 34% !important;
    background: rgba(255, 255, 255, .78) !important;
    border: 1px solid rgba(255, 255, 255, .85) !important;
    border-radius: 2rem !important;
    box-shadow: 0 30px 80px rgba(23, 59, 58, .12) !important;
    display: flex !important;
    flex: 0 1 34% !important;
    flex-direction: column !important;
    gap: .4rem !important;
    padding: clamp(1.5rem, 5vw, 2.5rem) !important;
    width: 34% !important;
}

body .elementor .npa-el-card-label .elementor-heading-title {
    color: var(--npa-layout-muted) !important;
    font-family: Inter, ui-sans-serif, system-ui, sans-serif !important;
    font-size: .9rem !important;
    font-weight: 750 !important;
    letter-spacing: 0 !important;
}

body .elementor .npa-el-card-price .elementor-heading-title {
    color: var(--npa-layout-ink) !important;
    font-size: clamp(2rem, 5vw, 3rem) !important;
}

body .elementor .npa-el-card-text,
body .elementor .npa-el-card-text p {
    color: var(--npa-layout-muted) !important;
    margin: 0 !important;
}

/* Secciones interiores */
body .elementor .elementor-element.npa-el-clinical,
body .elementor .elementor-element.npa-el-about-section,
body .elementor .elementor-element.npa-el-blog-section,
body .elementor .elementor-element.npa-el-blog-page-section,
body .elementor .elementor-element.npa-el-commerce-section {
    background: #fff !important;
    padding-block: clamp(4.5rem, 9vw, 8rem) !important;
}

body .elementor .elementor-element.npa-el-booking-section,
body .elementor .elementor-element.npa-el-booking-page-section,
body .elementor .elementor-element.npa-el-about-cards-section {
    background: var(--npa-layout-soft) !important;
    padding-block: clamp(4.5rem, 9vw, 8rem) !important;
}

body .elementor .elementor-element.npa-el-two-columns,
body .elementor .elementor-element.elementor-element-3ab13c66 {
    --display: flex !important;
    align-items: flex-start !important;
    display: flex !important;
    flex-direction: row !important;
    gap: 3rem !important;
}

body .elementor .elementor-element.npa-el-column {
    display: flex !important;
    flex-direction: column !important;
    gap: .8rem !important;
}

body .elementor .npa-el-two-columns > .elementor-element.npa-el-column {
    --width: 50% !important;
    flex: 1 1 50% !important;
    width: 50% !important;
}

body .elementor .elementor-element.npa-el-muted-copy,
body .elementor .elementor-element.npa-el-muted-copy p {
    color: var(--npa-layout-muted) !important;
    font-size: 1.06rem !important;
}

body .elementor .elementor-element.npa-el-heading-split {
    --display: flex !important;
    align-items: flex-end !important;
    display: flex !important;
    flex-direction: row !important;
    gap: 2rem !important;
    justify-content: space-between !important;
    margin-bottom: 2rem !important;
}

/* Encabezados de páginas */
body .elementor .elementor-element.npa-el-page-hero {
    background: linear-gradient(135deg, var(--npa-layout-soft), var(--npa-layout-sand)) !important;
    padding-block: clamp(4rem, 8vw, 7rem) !important;
}

body .elementor .elementor-element.npa-el-page-hero-inner {
    display: flex !important;
    flex-direction: column !important;
    gap: .8rem !important;
}

body .elementor .npa-el-page-hero .npa-el-title .elementor-heading-title {
    color: var(--npa-layout-ink) !important;
    font-size: clamp(2.6rem, 7vw, 5rem) !important;
}

body .elementor .elementor-element.npa-el-card-grid {
    --display: flex !important;
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    gap: 1.5rem !important;
    margin-top: 2rem !important;
}

body .elementor .elementor-element.npa-el-info-card {
    --width: calc(33.333% - 1rem) !important;
    background: #fff !important;
    border: 1px solid var(--npa-layout-line) !important;
    border-radius: 1.25rem !important;
    box-shadow: 0 16px 40px rgba(23, 59, 58, .06) !important;
    display: flex !important;
    flex: 1 1 calc(33.333% - 1rem) !important;
    flex-direction: column !important;
    gap: .4rem !important;
    min-width: 220px !important;
    padding: 1.5rem !important;
    width: calc(33.333% - 1rem) !important;
}

body .elementor .npa-el-info-card .elementor-heading-title {
    color: var(--npa-layout-ink) !important;
    font-size: 1.7rem !important;
}

/* Blog dinámico */
body .elementor .npa-blog-grid,
body .npa-blog-grid {
    display: grid !important;
    gap: 1.5rem !important;
    grid-template-columns: repeat(var(--npa-blog-columns, 3), minmax(0, 1fr)) !important;
    width: 100% !important;
}

body .elementor .npa-blog-grid .post-card,
body .npa-blog-grid .post-card {
    background: #fff !important;
    border: 1px solid var(--npa-layout-line) !important;
    border-radius: 1.25rem !important;
    overflow: hidden !important;
}

body .elementor .npa-blog-grid .post-card__image,
body .npa-blog-grid .post-card__image {
    aspect-ratio: 16 / 10 !important;
    display: block !important;
    overflow: hidden !important;
}

body .elementor .npa-blog-grid .post-card__image img,
body .npa-blog-grid .post-card__image img {
    height: 100% !important;
    object-fit: cover !important;
    width: 100% !important;
}

body .elementor .npa-blog-grid .post-card__body,
body .npa-blog-grid .post-card__body {
    padding: 1.35rem !important;
}

body .elementor .npa-blog-grid .post-card h2,
body .npa-blog-grid .post-card h2 {
    font-size: 1.55rem !important;
    margin: .5rem 0 .75rem !important;
}

/* WooCommerce dentro de Elementor */
body .elementor .elementor-element.npa-el-commerce-widget {
    width: 100% !important;
}

body .elementor .npa-el-commerce-section .woocommerce {
    margin: 0 !important;
    max-width: none !important;
    padding: 0 !important;
    width: 100% !important;
}

body .npa-calendar-actions .button,
body .npa-account-bookings .button {
    background: var(--npa-layout-accent) !important;
    border-radius: .75rem !important;
    color: #fff !important;
    display: inline-block !important;
    font-weight: 800 !important;
    padding: .7rem 1rem !important;
    text-decoration: none !important;
}

@media (max-width: 900px) {
    body .elementor .elementor-element.npa-el-hero-grid,
    body .elementor .elementor-element.elementor-element-6eb313a4,
    body .elementor .elementor-element.npa-el-two-columns,
    body .elementor .elementor-element.elementor-element-3ab13c66 {
        flex-direction: column !important;
    }

    body .elementor .elementor-element.npa-el-hero-copy,
    body .elementor .elementor-element.npa-el-session-card,
    body .elementor .npa-el-two-columns > .elementor-element.npa-el-column,
    body .elementor .elementor-element.npa-el-info-card {
        --width: 100% !important;
        flex-basis: 100% !important;
        max-width: 100% !important;
        width: 100% !important;
    }

    body .elementor .npa-blog-grid,
    body .npa-blog-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 600px) {
    body .elementor .elementor-element.npa-el-hero,
    body .elementor .elementor-element.npa-el-page-hero,
    body .elementor .elementor-element.npa-el-clinical,
    body .elementor .elementor-element.npa-el-booking-section,
    body .elementor .elementor-element.npa-el-booking-page-section,
    body .elementor .elementor-element.npa-el-about-section,
    body .elementor .elementor-element.npa-el-about-cards-section,
    body .elementor .elementor-element.npa-el-blog-section,
    body .elementor .elementor-element.npa-el-blog-page-section,
    body .elementor .elementor-element.npa-el-commerce-section {
        padding-block: 3.5rem !important;
    }

    body .elementor .elementor-element.npa-el-heading-split {
        align-items: flex-start !important;
        flex-direction: column !important;
    }

    body .elementor .npa-blog-grid,
    body .npa-blog-grid {
        grid-template-columns: 1fr !important;
    }
}

/* -------------------------------------------------------------------------
 * Refuerzo de estructura 2.2.0
 * Elementor puede regenerar el CSS de la página con selectores basados en ID.
 * Estas reglas reconocen tanto las clases editables como los IDs exportados
 * de la página Inicio, sin depender del orden de los contenedores.
 * ---------------------------------------------------------------------- */
html body .elementor.elementor-47 > .elementor-element.elementor-element-11c302ef,
html body .elementor .elementor-element.elementor-element-11c302ef,
html body .elementor .elementor-element.npa-el-hero {
    background-color: transparent !important;
    background-image:
        radial-gradient(circle at 78% 18%, rgba(255,255,255,.82), transparent 22%),
        linear-gradient(135deg, #e9f4f0 0%, #f5f0e8 100%) !important;
    min-height: auto !important;
    padding: clamp(5rem, 10vw, 9rem) 0 !important;
}

html body .elementor .elementor-element.elementor-element-6eb313a4,
html body .elementor .elementor-element.npa-el-hero-grid {
    align-items: center !important;
    display: flex !important;
    flex-direction: row !important;
    gap: clamp(2rem, 7vw, 7rem) !important;
    margin: 0 auto !important;
    max-width: 1180px !important;
    padding-left: 1.25rem !important;
    padding-right: 1.25rem !important;
    width: 100% !important;
}

html body .elementor .elementor-element.elementor-element-7290db6,
html body .elementor .elementor-element.npa-el-hero-copy {
    flex: 1 1 66% !important;
    max-width: 66% !important;
    width: 66% !important;
}

html body .elementor .elementor-element.elementor-element-6dab6105,
html body .elementor .elementor-element.npa-el-session-card {
    background: rgba(255,255,255,.82) !important;
    border: 1px solid rgba(255,255,255,.9) !important;
    border-radius: 2rem !important;
    box-shadow: 0 30px 80px rgba(23,59,58,.12) !important;
    flex: 0 1 34% !important;
    max-width: 420px !important;
    padding: clamp(1.5rem, 5vw, 2.5rem) !important;
    width: 34% !important;
}

html body .elementor .elementor-element.elementor-element-f2fc1cf .elementor-heading-title,
html body .elementor .npa-el-hero .npa-el-title .elementor-heading-title {
    color: #173b3a !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: clamp(2.6rem, 7vw, 5.6rem) !important;
    font-weight: 600 !important;
    letter-spacing: -.035em !important;
    line-height: 1.08 !important;
}

html body .elementor .elementor-element.elementor-element-321ab8f2,
html body .elementor .elementor-element.elementor-element-321ab8f2 p,
html body .elementor .npa-el-lead,
html body .elementor .npa-el-lead p {
    color: #244d4b !important;
}

html body .elementor .elementor-element.elementor-element-1c17f9f1,
html body .elementor .elementor-element.npa-el-clinical {
    background: #fff !important;
    padding: clamp(4.5rem, 9vw, 8rem) 0 !important;
}

html body .elementor .elementor-element.elementor-element-3ab13c66,
html body .elementor .elementor-element.npa-el-two-columns {
    display: flex !important;
    flex-direction: row !important;
    gap: 3rem !important;
    margin: 0 auto !important;
    max-width: 1180px !important;
    padding-left: 1.25rem !important;
    padding-right: 1.25rem !important;
    width: 100% !important;
}

html body .elementor .elementor-element.elementor-element-16ae22c8 .elementor-heading-title,
html body .elementor .elementor-element.elementor-element-3d869033 .elementor-heading-title {
    color: #173b3a !important;
    font-family: Georgia, "Times New Roman", serif !important;
}

html body .elementor .elementor-element.elementor-element-fdebb79,
html body .elementor .elementor-element.npa-el-booking-section {
    background: #eef6f3 !important;
    padding: clamp(4.5rem, 9vw, 8rem) 0 !important;
}

html body .elementor .elementor-element.elementor-element-6c5b02a5,
html body .elementor .elementor-element.elementor-element-5659faae,
html body .elementor .elementor-element.npa-el-shell {
    margin-left: auto !important;
    margin-right: auto !important;
    max-width: 1180px !important;
    padding-left: 1.25rem !important;
    padding-right: 1.25rem !important;
    width: 100% !important;
}

html body .elementor .elementor-element.elementor-element-12a3adc2,
html body .elementor .elementor-element.npa-el-blog-section {
    background: #fff !important;
    padding: clamp(4.5rem, 9vw, 8rem) 0 !important;
}

html body .elementor .elementor-element.elementor-element-de38b4a,
html body .elementor .elementor-element.npa-el-heading-split {
    align-items: flex-end !important;
    display: flex !important;
    flex-direction: row !important;
    justify-content: space-between !important;
}

@media (max-width: 900px) {
    html body .elementor .elementor-element.elementor-element-6eb313a4,
    html body .elementor .elementor-element.npa-el-hero-grid,
    html body .elementor .elementor-element.elementor-element-3ab13c66,
    html body .elementor .elementor-element.npa-el-two-columns {
        flex-direction: column !important;
    }

    html body .elementor .elementor-element.elementor-element-7290db6,
    html body .elementor .elementor-element.elementor-element-6dab6105,
    html body .elementor .elementor-element.npa-el-hero-copy,
    html body .elementor .elementor-element.npa-el-session-card {
        max-width: 100% !important;
        width: 100% !important;
    }
}

@media (max-width: 600px) {
    html body .elementor .elementor-element.elementor-element-de38b4a,
    html body .elementor .elementor-element.npa-el-heading-split {
        align-items: flex-start !important;
        flex-direction: column !important;
    }
}

/* -------------------------------------------------------------------------
 * Cobertura completa 2.3.0: Reservar hora, Nosotros, Blog y WooCommerce.
 * Estas reglas se cargan al final del documento y usan las clases restauradas
 * tanto en PHP como en JavaScript.
 * ---------------------------------------------------------------------- */
html body .elementor .elementor-element.npa-el-page-hero,
html body .elementor .elementor-element.npa-el-about-section,
html body .elementor .elementor-element.npa-el-about-cards-section,
html body .elementor .elementor-element.npa-el-booking-page-section,
html body .elementor .elementor-element.npa-el-blog-page-section,
html body .elementor .elementor-element.npa-el-commerce-section {
    --width: 100% !important;
    margin: 0 !important;
    max-width: none !important;
    width: 100% !important;
}

html body .elementor .elementor-element.npa-el-page-hero {
    background-color: transparent !important;
    background-image: linear-gradient(135deg, #eef6f3 0%, #f5f0e8 100%) !important;
    padding: clamp(4rem, 8vw, 7rem) 0 !important;
}

html body .elementor .elementor-element.npa-el-page-hero-inner,
html body .elementor .elementor-element.npa-el-about-section > .e-con,
html body .elementor .elementor-element.npa-el-about-cards-section > .e-con,
html body .elementor .elementor-element.npa-el-booking-page-section > .e-con,
html body .elementor .elementor-element.npa-el-blog-page-section > .e-con,
html body .elementor .elementor-element.npa-el-commerce-section > .e-con {
    --width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    max-width: 1180px !important;
    padding-left: 1.25rem !important;
    padding-right: 1.25rem !important;
    width: 100% !important;
}

html body .elementor .elementor-element.npa-el-page-hero-inner {
    align-items: flex-start !important;
    display: flex !important;
    flex-direction: column !important;
    gap: .8rem !important;
}

html body .elementor .elementor-element.npa-el-page-hero .npa-el-title .elementor-heading-title {
    color: #173b3a !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: clamp(2.7rem, 7vw, 5rem) !important;
    font-weight: 600 !important;
    letter-spacing: -.035em !important;
    line-height: 1.08 !important;
    margin: 0 !important;
    max-width: 900px !important;
}

html body .elementor .elementor-element.npa-el-page-hero .npa-el-lead,
html body .elementor .elementor-element.npa-el-page-hero .npa-el-lead p {
    color: #667675 !important;
    font-size: clamp(1.05rem, 2vw, 1.2rem) !important;
    line-height: 1.7 !important;
    margin: 0 !important;
    max-width: 760px !important;
}

/* Nosotros */
html body .elementor .elementor-element.npa-el-about-section {
    background: #fff !important;
    padding: clamp(4.5rem, 9vw, 8rem) 0 !important;
}

html body .elementor .elementor-element.npa-el-about-section .npa-el-two-columns {
    align-items: flex-start !important;
    display: flex !important;
    flex-direction: row !important;
    gap: clamp(2rem, 6vw, 5rem) !important;
}

html body .elementor .elementor-element.npa-el-about-section .npa-el-column {
    --width: 50% !important;
    display: flex !important;
    flex: 1 1 50% !important;
    flex-direction: column !important;
    gap: .9rem !important;
    max-width: 50% !important;
    width: 50% !important;
}

html body .elementor .elementor-element.npa-el-about-section h2.elementor-heading-title,
html body .elementor .elementor-element.npa-el-about-cards-section h2.elementor-heading-title {
    color: #173b3a !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: clamp(2rem, 5vw, 3.6rem) !important;
    font-weight: 600 !important;
    letter-spacing: -.035em !important;
    line-height: 1.08 !important;
    margin: 0 !important;
}

html body .elementor .elementor-element.npa-el-about-section .npa-el-muted-copy,
html body .elementor .elementor-element.npa-el-about-section .npa-el-muted-copy p {
    color: #667675 !important;
    font-size: 1.06rem !important;
    line-height: 1.75 !important;
}

html body .elementor .elementor-element.npa-el-about-cards-section {
    background: #eef6f3 !important;
    padding: clamp(4.5rem, 9vw, 8rem) 0 !important;
}

html body .elementor .elementor-element.npa-el-card-grid {
    --display: flex !important;
    align-items: stretch !important;
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    gap: 1.5rem !important;
    margin-top: 2rem !important;
    width: 100% !important;
}

html body .elementor .elementor-element.npa-el-info-card {
    --width: calc(50% - .75rem) !important;
    background: #fff !important;
    border: 1px solid #dbe7e3 !important;
    border-radius: 1.25rem !important;
    box-shadow: 0 16px 40px rgba(23, 59, 58, .06) !important;
    display: flex !important;
    flex: 1 1 calc(50% - .75rem) !important;
    flex-direction: column !important;
    gap: .55rem !important;
    max-width: calc(50% - .75rem) !important;
    min-width: 260px !important;
    padding: clamp(1.4rem, 3vw, 2rem) !important;
    width: calc(50% - .75rem) !important;
}

html body .elementor .elementor-element.npa-el-info-card h3.elementor-heading-title {
    color: #173b3a !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: 1.75rem !important;
    line-height: 1.15 !important;
    margin: 0 !important;
}

html body .elementor .elementor-element.npa-el-info-card .npa-el-muted-copy,
html body .elementor .elementor-element.npa-el-info-card .npa-el-muted-copy p {
    color: #667675 !important;
    line-height: 1.7 !important;
    margin: 0 !important;
}

/* Reservar hora */
html body .elementor .elementor-element.npa-el-booking-page-section {
    background: #eef6f3 !important;
    padding: clamp(4.5rem, 9vw, 8rem) 0 !important;
}

html body .elementor .elementor-element.npa-el-booking-page-section .npa-booking,
html body .elementor .elementor-element.npa-el-booking-section .npa-booking {
    align-items: start !important;
    display: grid !important;
    gap: clamp(2rem, 5vw, 4rem) !important;
    grid-template-columns: minmax(0, .8fr) minmax(320px, 1.2fr) !important;
    width: 100% !important;
}

html body .elementor .npa-booking__intro h2 {
    color: #173b3a !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: clamp(2rem, 5vw, 3.5rem) !important;
    line-height: 1.04 !important;
}

html body .elementor .npa-booking__panel {
    background: #fff !important;
    border: 1px solid #dbe7e3 !important;
    border-radius: 1.5rem !important;
    box-shadow: 0 24px 70px rgba(23, 59, 58, .09) !important;
}

/* Blog */
html body .elementor .elementor-element.npa-el-blog-page-section {
    background: #fff !important;
    padding: clamp(4.5rem, 9vw, 8rem) 0 !important;
}

html body .elementor .npa-blog-grid,
html body .npa-blog-grid,
html body .post-grid {
    display: grid !important;
    gap: 1.5rem !important;
    grid-template-columns: repeat(var(--npa-blog-columns, 3), minmax(0, 1fr)) !important;
    width: 100% !important;
}

html body .elementor .npa-blog-grid .post-card,
html body .npa-blog-grid .post-card,
html body .post-grid .post-card {
    background: #fff !important;
    border: 1px solid #dbe7e3 !important;
    border-radius: 1.25rem !important;
    box-shadow: 0 12px 32px rgba(23, 59, 58, .05) !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
}

html body .elementor .npa-blog-grid .post-card__image,
html body .npa-blog-grid .post-card__image,
html body .post-grid .post-card__image {
    aspect-ratio: 16 / 10 !important;
    display: block !important;
    overflow: hidden !important;
}

html body .elementor .npa-blog-grid .post-card__image img,
html body .npa-blog-grid .post-card__image img,
html body .post-grid .post-card__image img {
    height: 100% !important;
    object-fit: cover !important;
    width: 100% !important;
}

html body .elementor .npa-blog-grid .post-card__body,
html body .npa-blog-grid .post-card__body,
html body .post-grid .post-card__body {
    display: flex !important;
    flex: 1 1 auto !important;
    flex-direction: column !important;
    padding: 1.35rem !important;
}

html body .elementor .npa-blog-grid .post-card h2,
html body .npa-blog-grid .post-card h2,
html body .post-grid .post-card h2 {
    color: #173b3a !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: 1.55rem !important;
    line-height: 1.2 !important;
    margin: .5rem 0 .75rem !important;
}

html body .elementor .npa-blog-grid .post-card p,
html body .npa-blog-grid .post-card p,
html body .post-grid .post-card p {
    color: #667675 !important;
    flex: 1 1 auto !important;
}

/* Carrito, checkout y cuenta */
html body .elementor .elementor-element.npa-el-commerce-section {
    background: #fff !important;
    padding: clamp(3.5rem, 7vw, 6rem) 0 !important;
}

html body .elementor .elementor-element.npa-el-commerce-widget,
html body .elementor .elementor-element.npa-el-commerce-widget .elementor-widget-container,
html body .elementor .npa-el-commerce-section .woocommerce {
    margin: 0 !important;
    max-width: none !important;
    padding: 0 !important;
    width: 100% !important;
}

html body .elementor .npa-el-commerce-section .woocommerce table,
html body .elementor .npa-el-commerce-section .woocommerce form,
html body .elementor .npa-el-commerce-section .woocommerce .woocommerce-MyAccount-content,
html body .elementor .npa-el-commerce-section .woocommerce .woocommerce-MyAccount-navigation {
    border-color: #dbe7e3 !important;
}

@media (max-width: 900px) {
    html body .elementor .elementor-element.npa-el-about-section .npa-el-two-columns {
        flex-direction: column !important;
    }

    html body .elementor .elementor-element.npa-el-about-section .npa-el-column,
    html body .elementor .elementor-element.npa-el-info-card {
        --width: 100% !important;
        flex-basis: 100% !important;
        max-width: 100% !important;
        width: 100% !important;
    }

    html body .elementor .elementor-element.npa-el-booking-page-section .npa-booking,
    html body .elementor .elementor-element.npa-el-booking-section .npa-booking {
        grid-template-columns: 1fr !important;
    }

    html body .elementor .npa-blog-grid,
    html body .npa-blog-grid,
    html body .post-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 600px) {
    html body .elementor .elementor-element.npa-el-page-hero,
    html body .elementor .elementor-element.npa-el-about-section,
    html body .elementor .elementor-element.npa-el-about-cards-section,
    html body .elementor .elementor-element.npa-el-booking-page-section,
    html body .elementor .elementor-element.npa-el-blog-page-section,
    html body .elementor .elementor-element.npa-el-commerce-section {
        padding-bottom: 3.5rem !important;
        padding-top: 3.5rem !important;
    }

    html body .elementor .npa-blog-grid,
    html body .npa-blog-grid,
    html body .post-grid {
        grid-template-columns: 1fr !important;
    }
}


/* -------------------------------------------------------------------------
 * Normalización de títulos de sección 2.4.0.
 * Elementor puede conservar el tamaño y color global del widget Heading aunque
 * el contenedor ya tenga el resto del diseño. Esta capa apunta directamente al
 * título visible y también corrige WebKit text fill.
 * ---------------------------------------------------------------------- */
html body .elementor .elementor-element.npa-el-section-title .elementor-heading-title,
html body .elementor .elementor-element.npa-el-blog-section .elementor-widget-heading:not(.npa-el-kicker) .elementor-heading-title,
html body .elementor .elementor-element.npa-el-clinical .elementor-widget-heading:not(.npa-el-kicker) .elementor-heading-title,
html body .elementor .elementor-element.npa-el-about-section .elementor-widget-heading:not(.npa-el-kicker) .elementor-heading-title,
html body .elementor .elementor-element.npa-el-about-cards-section > .e-con > .elementor-widget-heading:not(.npa-el-kicker) .elementor-heading-title {
    color: #173b3a !important;
    -webkit-text-fill-color: #173b3a !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: clamp(2.25rem, 5vw, 4.15rem) !important;
    font-weight: 600 !important;
    letter-spacing: -.035em !important;
    line-height: 1.08 !important;
    margin: 0 !important;
}

html body .elementor .elementor-element.npa-el-blog-section .npa-el-heading-split {
    gap: clamp(1.5rem, 4vw, 4rem) !important;
}

html body .elementor .elementor-element.npa-el-blog-section .npa-el-section-title {
    max-width: 760px !important;
}

@media (max-width: 600px) {
    html body .elementor .elementor-element.npa-el-section-title .elementor-heading-title,
    html body .elementor .elementor-element.npa-el-blog-section .elementor-widget-heading:not(.npa-el-kicker) .elementor-heading-title,
    html body .elementor .elementor-element.npa-el-clinical .elementor-widget-heading:not(.npa-el-kicker) .elementor-heading-title,
    html body .elementor .elementor-element.npa-el-about-section .elementor-widget-heading:not(.npa-el-kicker) .elementor-heading-title,
    html body .elementor .elementor-element.npa-el-about-cards-section > .e-con > .elementor-widget-heading:not(.npa-el-kicker) .elementor-heading-title {
        font-size: clamp(2rem, 10vw, 3rem) !important;
    }
}
