/*
 * polpress-custom.css
 * Mejoras UI/UX — psicologoshoy.com
 *
 * Este archivo se carga DESPUES de todos los estilos del tema.
 * No modificar style.css ni color.css: todos los overrides van aqui.
 *
 * NOTA: El sitio usa Elementor Header & Footer Builder para header,
 * nav y footer. Los selectores del tema nativo (.main-menu, .header-upper,
 * .footer-bottom, .sticky-header) NO existen en el DOM.
 * Solo incluir reglas que matcheen selectores reales.
 *
 * v1.2 — 2026-03-05: Limpieza de reglas muertas, solo selectores activos
 */


/* =====================================================================
   0. CSS CUSTOM PROPERTIES — paleta centralizada
   ===================================================================== */

:root {
    --color-primary: #efa286;
    --color-dark: #202135;
    --color-navy: #52547c;
    --color-text: #5a5b6e;
    --color-text-light: #83838b;
    --color-footer-bg: #202135;
    --color-white: #ffffff;
    --font-heading: 'Playfair Display', serif;
    --font-body: 'Open Sans', sans-serif;
    --transition-fast: 300ms ease;
    --transition-normal: 400ms ease;
}


/* =====================================================================
   1. TIPOGRAFIA — escala tipografica coherente
   Playfair Display = headings solamente
   Open Sans = body, UI
   ===================================================================== */

body,
p {
    font-family: var(--font-body);
    color: var(--color-text);
    line-height: 1.7;
}

/* Headings Elementor: Playfair Display */
.elementor-heading-title,
.elementor h1,
.elementor h2,
.elementor h3,
.elementor-widget-heading .elementor-heading-title {
    font-family: var(--font-heading) !important;
}

.elementor-heading-title.elementor-size-xl,
.elementor-heading-title.elementor-size-xxl,
.elementor-heading-title.elementor-size-large {
    font-weight: 700 !important;
    line-height: 1.2 !important;
}

/* Elementor body text */
.elementor-widget-text-editor,
.elementor-widget-text-editor p,
.elementor-text-editor p {
    font-family: var(--font-body);
    color: var(--color-text);
}


/* =====================================================================
   2. SKILL BARS / PIECHARTS — ocultar
   Patron de diseno obsoleto, confuso para pacientes.
   ===================================================================== */

.single-progress-box,
.skills-percentage-box,
.progress-box,
.piechart-box {
    display: none !important;
}


/* =====================================================================
   3. ACCESIBILIDAD — foco visible en elementos interactivos
   ===================================================================== */

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
    outline: 2px solid var(--color-navy) !important;
    outline-offset: 3px !important;
    border-radius: 2px;
}

a:focus:not(:focus-visible),
button:focus:not(:focus-visible) {
    outline: none;
}


/* =====================================================================
   4. IMAGENES — prevenir desbordamiento
   ===================================================================== */

.elementor-widget-image img,
.elementor-image img,
img {
    max-width: 100%;
}


/* =====================================================================
   5. HEADER — Propuesta A: top bar slim + nav compacta
   Elementor header ID 6306
   ===================================================================== */

/* --- 5a. Top bar: fondo navy oscuro, slim --- */
.elementor-6306 .elementor-element-2a09596 {
    background-color: var(--color-dark) !important;
    padding: 0 40px !important;
    min-height: 38px;
}

/* Columnas top bar: centrar verticalmente */
.elementor-6306 .elementor-element-2a09596 .elementor-column > .elementor-widget-wrap {
    align-items: center !important;
}

/* Texto dias (Lun a Vie, Sab): blanco, mas pequeno */
.elementor-6306 .elementor-element-0862bbb .elementor-icon-list-text {
    color: rgba(255,255,255,0.85) !important;
    font-family: var(--font-body) !important;
    font-size: 13px !important;
    font-weight: 600 !important;
}

/* Texto horas (8:00-20:00, 9:00-13:00): salmon claro */
.elementor-6306 .elementor-element-bebdceb .elementor-icon-list-text {
    color: var(--color-primary) !important;
    font-family: var(--font-body) !important;
    font-size: 13px !important;
    font-weight: 600 !important;
}

/* Iconos top bar: salmon */
.elementor-6306 .elementor-element-0862bbb .elementor-icon-list-icon i,
.elementor-6306 .elementor-element-bebdceb .elementor-icon-list-icon i {
    color: var(--color-primary) !important;
    font-size: 12px !important;
}
.elementor-6306 .elementor-element-0862bbb .elementor-icon-list-icon svg,
.elementor-6306 .elementor-element-bebdceb .elementor-icon-list-icon svg {
    fill: var(--color-primary) !important;
    width: 12px !important;
    height: 12px !important;
}

/* --- 5b. Nav principal: fondo blanco, sombra sutil --- */
.elementor-6306 .elementor-element-502629c {
    background-color: var(--color-white) !important;
    box-shadow: 0 2px 20px rgba(0,0,0,0.06);
    padding: 0 40px !important;
}

/* Logo: tamano controlado */
.elementor-6306 .elementor-element-e6b8075 img {
    width: auto !important;
    height: 58px !important;
    max-width: none !important;
}

/* Nav links: Open Sans, mas legible */
.elementor-6306 .elementor-element-eef9362 .elementor-nav-menu .elementor-item {
    font-family: var(--font-body) !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    color: var(--color-dark) !important;
    transition: color var(--transition-fast) !important;
}

/* Hover: salmon con underline animado */
.elementor-6306 .elementor-element-eef9362 .elementor-nav-menu--main .elementor-item:hover,
.elementor-6306 .elementor-element-eef9362 .elementor-nav-menu--main .elementor-item.elementor-item-active,
.elementor-6306 .elementor-element-eef9362 .elementor-nav-menu--main .elementor-item:focus {
    color: var(--color-primary) !important;
}

.elementor-6306 .elementor-element-eef9362 .elementor-nav-menu--main:not(.e--pointer-framed) .elementor-item::before,
.elementor-6306 .elementor-element-eef9362 .elementor-nav-menu--main:not(.e--pointer-framed) .elementor-item::after {
    background-color: var(--color-primary) !important;
    height: 2px !important;
}

/* --- 5c. Boton CTA: pill con gradiente --- */
.elementor-6306 .elementor-element-3692b29 .elementor-button {
    background: linear-gradient(135deg, var(--color-primary), #e8896a) !important;
    font-family: var(--font-body) !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    letter-spacing: 1.2px !important;
    text-transform: uppercase !important;
    padding: 12px 28px !important;
    border-radius: 50px !important;
    box-shadow: 0 4px 15px rgba(239, 162, 134, 0.35);
    transition: all var(--transition-fast) !important;
}

.elementor-6306 .elementor-element-3692b29 .elementor-button:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 25px rgba(239, 162, 134, 0.5);
}

/* CTA mobile (top bar): mismo estilo pill */
.elementor-6306 .elementor-element-834b270 .elementor-button {
    background: linear-gradient(135deg, var(--color-primary), #e8896a) !important;
    font-family: var(--font-body) !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    letter-spacing: 1px !important;
    text-transform: uppercase !important;
    padding: 10px 20px !important;
    border-radius: 50px !important;
    box-shadow: 0 4px 15px rgba(239, 162, 134, 0.35);
}


/* =====================================================================
   5d. STICKY HEADER — al scroll, top bar se oculta y nav queda fija
   JS agrega clase .header-sticky al superar el scroll threshold
   ===================================================================== */

.elementor-location-header {
    position: sticky;
    top: 0;
    z-index: 1000;
    width: 100%;
}

/* Transicion suave para la top bar */
.elementor-6306 .elementor-element-2a09596 {
    transition: max-height 0.35s ease, opacity 0.25s ease, padding 0.35s ease;
    overflow: hidden;
    max-height: 60px;
}

/* Cuando sticky: ocultar top bar */
.header-sticky .elementor-6306 .elementor-element-2a09596,
.elementor-location-header.header-sticky .elementor-element-2a09596 {
    max-height: 0 !important;
    opacity: 0;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    min-height: 0 !important;
}

/* Nav en sticky: sombra mas pronunciada, backdrop blur */
.header-sticky .elementor-6306 .elementor-element-502629c,
.elementor-location-header.header-sticky .elementor-element-502629c {
    box-shadow: 0 2px 20px rgba(0,0,0,0.1) !important;
    background: rgba(255,255,255,0.97) !important;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

/* Logo un poco mas chico en sticky */
.header-sticky .elementor-6306 .elementor-element-e6b8075 img,
.elementor-location-header.header-sticky .elementor-element-e6b8075 img {
    height: 46px !important;
    transition: height 0.3s ease;
}


/* =====================================================================
   6. FOOTER — tipografia legible y mejor contraste
   Elementor footer: .elementor-location-footer
   ===================================================================== */

/* Footer link text: Open Sans instead of Playfair, better readability */
.elementor-location-footer .elementor-element-2109292 .elementor-icon-list-text {
    font-family: var(--font-body) !important;
    font-size: 14px !important;
    color: var(--color-text) !important;
}

/* Footer link hover */
.elementor-location-footer .elementor-element-2109292 .elementor-icon-list-item a:hover .elementor-icon-list-text {
    color: var(--color-primary) !important;
}

/* Footer column headings: keep Playfair but ensure legibility */
.elementor-location-footer .elementor-element-2109292 .elementor-heading-title {
    font-family: var(--font-heading) !important;
}

/* Footer contact info text */
.elementor-location-footer .elementor-element-2109292 .elementor-icon-list-icon i,
.elementor-location-footer .elementor-element-2109292 .elementor-icon-list-icon svg {
    color: var(--color-primary) !important;
    fill: var(--color-primary) !important;
}

/* Footer bottom bar: slightly tighter */
.elementor-location-footer .elementor-element-d015b1b {
    padding: 15px 0 !important;
}

.elementor-location-footer .elementor-element-d015b1b .elementor-heading-title {
    font-family: var(--font-body) !important;
    font-size: 13px !important;
    color: var(--color-text-light) !important;
}


/* =====================================================================
   7. MOBILE MENU — transicion rapida
   ===================================================================== */

.elementor-nav-menu--dropdown {
    transition: max-height 300ms ease, opacity 200ms ease !important;
}

.elementor-nav-menu--dropdown .elementor-item {
    font-family: var(--font-body) !important;
    font-size: 15px !important;
}


/* =====================================================================
   8. RESPONSIVE
   ===================================================================== */

/* Mobile landscape */
@media (max-width: 767px) {
    .elementor-heading-title.elementor-size-xl {
        font-size: clamp(1.8rem, 6vw, 2.5rem) !important;
    }

    .elementor-heading-title.elementor-size-xxl {
        font-size: clamp(2rem, 7vw, 3rem) !important;
    }

    /* Top bar: mas compacta en mobile */
    .elementor-6306 .elementor-element-2a09596 {
        padding: 0 15px !important;
        min-height: 32px;
    }

    /* Nav section en mobile */
    .elementor-6306 .elementor-element-502629c {
        padding: 10px 15px !important;
    }
}


/* =====================================================================
   9. LOGOS ISAPRES — grayscale uniforme, alta resolución
   ===================================================================== */

/* Mostrar banner hero antes de que Owl Carousel inicialice (evita FOUC) */
.banner-carousel.owl-carousel:not(.owl-loaded) {
    display: block !important;
    overflow: hidden;
    min-height: 650px;
}

.banner-carousel.owl-carousel:not(.owl-loaded) .slide-item {
    min-height: 650px;
}

.banner-carousel.owl-carousel:not(.owl-loaded) .slide-item ~ .slide-item {
    display: none;
}

/* Evitar flash de logos grandes antes de que Swiper inicialice */
.elementor-element-1471b09b .swiper:not(.swiper-initialized) {
    overflow: hidden;
    max-height: 130px;
}

.elementor-element-1471b09b .swiper:not(.swiper-initialized) .swiper-wrapper {
    display: flex;
    overflow: hidden;
}

.elementor-element-1471b09b .swiper:not(.swiper-initialized) .swiper-slide {
    flex-shrink: 0;
    width: 33%;
}

figure.clients-logo-box img,
.clients-section .clients-logo-box img {
    filter: grayscale(100%) brightness(1.5) contrast(0.6) opacity(0.55) !important;
    -webkit-filter: grayscale(100%) brightness(1.5) contrast(0.6) opacity(0.55) !important;
}

figure.clients-logo-box img:hover,
.clients-section .clients-logo-box img:hover {
    filter: grayscale(0%) brightness(1) contrast(1) opacity(1) !important;
    -webkit-filter: grayscale(0%) brightness(1) contrast(1) opacity(1) !important;
}


/* =====================================================================
   10. TEAM PRICING — tags Isapre/Fonasa en tarjetas del equipo
   ===================================================================== */

.team-pricing {
    display: flex;
    gap: 8px;
    margin: 12px 0 14px;
}

.team-pricing .price-tag {
    flex: 1;
    padding: 8px 10px;
    border-radius: 6px;
    font-family: var(--font-body);
    line-height: 1.3;
}

.team-pricing .price-tag.isapre {
    background: #f0f3fa;
    color: #6b7db3;
}

.team-pricing .price-tag.fonasa {
    background: #edf7f5;
    color: #4a9e8e;
}

.team-pricing .price-label {
    display: block;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-weight: 600;
}

.team-pricing .price-value {
    display: block;
    font-size: 14px;
    font-weight: 700;
}

@media (max-width: 767px) {
    .team-pricing {
        gap: 6px;
    }
    .team-pricing .price-value {
        font-size: 13px;
    }
}


/* =====================================================================
   11. AMELIA BOOKING — contraste texto en sidebar oscuro
   El sidebar de Amelia (.am-fs-sb) usa fondo gris oscuro pero el texto
   de los pasos queda en color similar al fondo, haciendolo ilegible.
   ===================================================================== */

/* Headings de cada paso: blanco para maximo contraste */
.am-fs-sb .am-fs-sb__step-heading {
    color: #ffffff !important;
}

/* Texto general dentro del sidebar */
.am-fs-sb .am-fs-sb__menu-text {
    color: #ffffff !important;
}


/* =====================================================================
   12. BANNER — h1.h1 y h2.h1 heredan estilos visuales del heading original
   El primer slide del banner usa <h1>, los demas <h2 class="h1">.
   ===================================================================== */

.banner-section .content-box h1.h1,
.banner-section .content-box h2.h1,
.banner-style-two .content-box h1.h1,
.banner-style-two .content-box h2.h1,
.banner-style-three .content-box h1.h1,
.banner-style-three .content-box h2.h1 {
    font-size: inherit;
    font-weight: inherit;
    line-height: inherit;
    color: inherit;
    margin: 0;
}


/* =====================================================================
   13. FOOTER HEADINGS — divs con clase .h3/.h6 mantienen estilo visual
   Cambiados de <h3>/<h6> semanticos a <div>/<span> para SEO
   ===================================================================== */

.footer-top .text div.h3 {
    font-family: var(--font-heading);
    font-size: 24px;
    font-weight: 700;
    line-height: 1.4;
    color: inherit;
}

.footer-widget .widget-title div.h3 {
    font-size: 22px;
    font-weight: 700;
    line-height: 1.4;
    color: inherit;
    margin-bottom: 15px;
    font-family: var(--font-heading);
}

.footer-widget .info-list span.h6 {
    display: block;
    font-size: 16px;
    font-weight: 600;
    color: inherit;
    margin-bottom: 2px;
}


/* =====================================================================
   14. PAGINA NOSOTROS — layout custom, 3 secciones
   ===================================================================== */

/* Hide breadcrumb/page-title on this page */
.page-id-6420 .page-title,
.page-id-6596 .page-title,
body.page-nosotros .page-title {
    display: none !important;
}

/* --- Container base --- */
.nosotros-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 24px;
}

.nosotros-container--narrow {
    max-width: 800px;
}

/* --- Eyebrow label --- */
.nosotros-eyebrow {
    display: block;
    font-family: var(--font-body);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 2.5px;
    text-transform: uppercase;
    color: var(--color-primary);
    margin-bottom: 18px;
}

/* --- Titles --- */
.nosotros-title {
    font-family: var(--font-heading);
    font-size: 40px;
    font-weight: 600;
    line-height: 1.2;
    color: #52547c;
    margin-bottom: 32px;
}

.nosotros-subtitle {
    font-family: var(--font-heading);
    font-size: 34px;
    font-weight: 400;
    line-height: 1.25;
    color: #52547c;
    margin: 0;
}

.nosotros-subtitle a {
    color: inherit;
    text-decoration: none;
}

.nosotros-subtitle a:hover {
    text-decoration: underline;
}

/* --- Section 1: Por que --- */
.nosotros-why {
    background: #fff;
    padding: 100px 24px 80px;
    text-align: left;
}

.nosotros-why p {
    font-family: var(--font-body);
    font-size: 16px;
    color: var(--color-text);
    line-height: 1.7;
    margin-bottom: 18px;
}

.nosotros-why p:last-child {
    margin-bottom: 0;
}

.nosotros-why strong {
    color: var(--color-dark);
    font-weight: 600;
}

/* --- Section 2: Que encontraras --- */
.nosotros-what {
    background: #f5f5f5;
    padding: 80px 24px 90px;
}

.nosotros-section-header {
    text-align: center;
    margin-bottom: 52px;
}

.nosotros-cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
}

.nosotros-card {
    background: #fff;
    border-radius: 14px;
    padding: 44px 32px 36px;
    text-align: center;
    box-shadow: 0 1px 4px rgba(0,0,0,0.03), 0 6px 20px rgba(0,0,0,0.04);
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.nosotros-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 30px rgba(0,0,0,0.08);
}

.nosotros-card__icon {
    width: 60px;
    height: 60px;
    background: #f5f0ee;
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 22px;
}

.nosotros-card__icon svg {
    width: 28px;
    height: 28px;
    color: var(--color-primary);
}

.nosotros-card h3 {
    font-family: var(--font-heading);
    font-size: 20px;
    font-weight: 600;
    color: #52547c;
    margin-bottom: 12px;
}

.nosotros-card p {
    font-family: var(--font-body);
    font-size: 15px;
    color: var(--color-text);
    line-height: 1.7;
    margin: 0;
}

/* --- Section 3: Fundadora --- */
.nosotros-founder {
    background: #fff;
    padding: 100px 24px;
}

.nosotros-founder__grid {
    display: grid;
    grid-template-columns: 0.85fr 1.15fr;
    gap: 60px;
    align-items: center;
}

.nosotros-founder__photo-wrap {
    position: relative;
}

.nosotros-founder__photo-wrap::before {
    content: '';
    position: absolute;
    top: -10px;
    left: -10px;
    right: 10px;
    bottom: 10px;
    border: 2px solid var(--color-primary);
    border-radius: 18px;
    opacity: 0.25;
}

.nosotros-founder__photo-wrap::after {
    content: '';
    position: absolute;
    bottom: -16px;
    right: -16px;
    width: 80px;
    height: 80px;
    background: linear-gradient(135deg, var(--color-primary), #e8896a);
    border-radius: 18px;
    opacity: 0.12;
    z-index: 0;
}

.nosotros-founder__photo {
    width: 100%;
    aspect-ratio: 4 / 5;
    object-fit: cover;
    border-radius: 14px;
    display: block;
    position: relative;
    z-index: 1;
    box-shadow: 0 12px 40px rgba(0,0,0,0.08);
}

.nosotros-founder__role {
    font-family: var(--font-body);
    font-size: 16px;
    color: var(--color-primary);
    font-weight: 600;
    margin: 6px 0 28px;
}

.nosotros-founder__message {
    border: none;
    margin: 0 0 8px;
    padding: 0;
    position: relative;
}

.nosotros-founder__message::before {
    content: '\201C';
    font-family: var(--font-heading);
    font-size: 56px;
    color: var(--color-primary);
    opacity: 0.3;
    line-height: 1;
    display: block;
    margin-bottom: 4px;
}

.nosotros-founder__message p {
    font-family: var(--font-body);
    font-size: 16px;
    color: var(--color-text);
    line-height: 1.7;
    margin-bottom: 14px;
}

.nosotros-founder__message p:last-child {
    margin-bottom: 0;
}

.nosotros-founder__signature {
    font-family: var(--font-heading);
    font-style: italic;
    font-size: 18px;
    color: #52547c;
    margin: 24px 0 32px;
}

/* --- CTA button --- */
.nosotros-cta {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: linear-gradient(135deg, var(--color-primary), #e8896a);
    color: #fff !important;
    font-family: var(--font-body);
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.5px;
    padding: 15px 30px;
    border-radius: 50px;
    text-decoration: none !important;
    box-shadow: 0 4px 15px rgba(239, 162, 134, 0.35);
    transition: all var(--transition-fast);
}

.nosotros-cta:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 25px rgba(239, 162, 134, 0.5);
    color: #fff !important;
}

.nosotros-cta svg {
    transition: transform 0.2s ease;
}

.nosotros-cta:hover svg {
    transform: translateX(3px);
}

/* --- Responsive --- */
@media (max-width: 768px) {
    .nosotros-why {
        padding: 64px 20px 56px;
    }

    .nosotros-title {
        font-size: 30px;
    }

    .nosotros-subtitle {
        font-size: 26px;
    }

    .nosotros-why p {
        font-size: 16px;
    }

    .nosotros-what {
        padding: 56px 20px 64px;
    }

    .nosotros-cards {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .nosotros-card {
        padding: 32px 24px 28px;
    }

    .nosotros-founder {
        padding: 64px 20px;
    }

    .nosotros-founder__grid {
        grid-template-columns: 1fr;
        gap: 36px;
        text-align: center;
    }

    .nosotros-founder__photo-wrap {
        max-width: 280px;
        margin: 0 auto;
    }

    .nosotros-founder__message::before {
        margin: 0 auto 4px;
    }

    .nosotros-cta {
        justify-content: center;
    }
}


/* =====================================================================
   15. TESTIMONIOS HOME — reducir espacio excesivo
   Original: padding 115px 0 120px 0. Ademas el carousel toma la altura
   del slide mas alto, generando whitespace debajo de slides cortos.
   ===================================================================== */

.testimonial-section {
    padding: 60px 0 30px 0 !important;
}

.testimonial-section .sec-title {
    margin-bottom: 30px !important;
}

.testimonial-section .testimonial-block-one .inner-box {
    padding: 30px 25px !important;
}

.testimonial-section .testimonial-block-one .inner-box h3 {
    font-size: 15px !important;
    line-height: 1.6 !important;
}

.testimonial-section .owl-stage-outer {
    max-height: 500px;
    overflow: hidden;
}


/* =====================================================================
   16. CHECKOUT — rediseño para servicio de psicoterapia
   ===================================================================== */

/* --- Reducir espacio entre header y contenido del checkout --- */
.woocommerce-checkout .elementor-section,
.woocommerce-checkout .e-con,
.woocommerce-checkout .elementor-top-section {
    padding-top: 0 !important;
}
.woocommerce-checkout .blog-details {
    padding-top: 24px !important;
}

/* --- Layout general: single column, 540px max (tipo Stripe) --- */
.woocommerce-checkout .woocommerce {
    max-width: 540px !important;
    margin: 16px auto !important;
    padding: 0 20px 60px !important;
}

/* Forzar single column: anular grid 2-col de Elementor Checkout widget */
.woocommerce-checkout .e-checkout__container {
    display: flex !important;
    flex-direction: column !important;
    grid-template-columns: none !important;
}

.woocommerce-checkout .e-checkout__column {
    width: 100% !important;
    max-width: 100% !important;
}

/* Forzar single column: anular el float 48%/48% de WooCommerce */
.woocommerce-checkout .col2-set {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
}

.woocommerce-checkout .col2-set .col-1,
.woocommerce-checkout .col2-set .col-2 {
    width: 100% !important;
    float: none !important;
    max-width: 100% !important;
    margin-bottom: 8px;
}

/* --- Encabezados de sección --- */
.woocommerce-checkout h3,
.woocommerce-checkout h3#order_review_heading {
    font-family: var(--font-heading);
    font-size: 22px;
    font-weight: 600;
    color: #52547c;
    display: inline-block;
    border-bottom: 2.5px solid var(--color-primary);
    padding-bottom: 10px;
    margin-bottom: 12px;
}

/* --- Ocultar asteriscos y "(opcional)" — reducir ruido --- */
.woocommerce-checkout .form-row .required,
.woocommerce-checkout .form-row .optional {
    display: none !important;
}

/* --- Ocultar nice-select (ghost text debajo de SelectWoo) --- */
.woocommerce-checkout .nice-select {
    display: none !important;
}

/* --- Ocultar sección "additional fields" vacía --- */
.woocommerce-checkout .woocommerce-additional-fields {
    display: none !important;
}

/* --- Inputs y selects --- */
.woocommerce-checkout .form-row input.input-text,
.woocommerce-checkout .form-row textarea,
.woocommerce-checkout .form-row select,
.woocommerce-checkout .select2-container--default .select2-selection--single {
    border: 1.5px solid #e0ddd9;
    border-radius: 10px;
    background: #fafafa;
    padding: 13px 14px;
    font-family: var(--font-body);
    font-size: 15px;
    color: var(--color-dark);
    transition: border-color 0.2s, box-shadow 0.2s;
}

.woocommerce-checkout .form-row input.input-text:focus,
.woocommerce-checkout .form-row textarea:focus,
.woocommerce-checkout .form-row select:focus {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px rgba(239, 162, 134, 0.15);
    outline: none;
    background: #fff;
}

.woocommerce-checkout .form-row input.input-text::placeholder {
    color: #b5b3b0;
}

.woocommerce-checkout .select2-container--default .select2-selection--single {
    height: 46px;
    display: flex;
    align-items: center;
}

.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered {
    line-height: normal;
    padding-left: 14px;
    font-family: var(--font-body);
    font-size: 15px;
    color: var(--color-dark);
}

.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 100%;
}

/* --- Fix texto fantasma SelectWoo (Paso 1) --- */
.woocommerce-checkout select.select2-hidden-accessible {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    clip: rect(0,0,0,0) !important;
    overflow: hidden !important;
}

/* --- Labels --- */
.woocommerce-checkout .form-row label {
    display: block;
    font-family: var(--font-body);
    font-size: 13px;
    font-weight: 600;
    color: var(--color-dark);
    margin-bottom: 6px;
}

/* --- Región + Comuna side-by-side --- */
.woocommerce-checkout #billing_state_field,
.woocommerce-checkout #billing_city_field {
    width: 48% !important;
    display: inline-block !important;
    float: none !important;
    vertical-align: top;
}

.woocommerce-checkout #billing_state_field {
    margin-right: 4% !important;
}

/* --- Mensaje de facturación (pseudo-campo) --- */
.psh-billing-notice {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    background: #f0eefc;
    border-radius: 10px;
    padding: 14px 16px;
    margin-bottom: 20px;
    font-family: var(--font-body);
    font-size: 13px;
    color: #52547c;
    line-height: 1.5;
}

.psh-billing-notice svg {
    flex-shrink: 0;
    margin-top: 1px;
}

/* Ocultar el wrapper del pseudo-campo para que no añada margen extra */
#billing_notice_separator_field {
    margin: 0 !important;
    padding: 0 !important;
}

/* --- Order review: fondo warm --- */
.woocommerce-checkout #order_review,
.woocommerce-checkout .woocommerce-checkout-review-order {
    background: #f9f7f5;
    border-radius: 14px;
    padding: 24px;
}

/* --- Tabla de productos: sin bordes genéricos --- */
.woocommerce-checkout .woocommerce-checkout-review-order-table {
    border: none !important;
    background: transparent;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table th,
.woocommerce-checkout .woocommerce-checkout-review-order-table td {
    border: none !important;
    padding: 10px 0;
    font-family: var(--font-body);
}

/* Ocultar header de tabla (Producto / Subtotal) */
.woocommerce-checkout .woocommerce-checkout-review-order-table thead {
    display: none;
}

/* Ocultar fila subtotal (redundante cuando = total) */
.woocommerce-checkout .woocommerce-checkout-review-order-table .cart-subtotal {
    display: none;
}

/* Total */
.woocommerce-checkout .woocommerce-checkout-review-order-table .order-total th,
.woocommerce-checkout .woocommerce-checkout-review-order-table .order-total td {
    font-size: 20px;
    font-weight: 700;
    color: var(--color-dark);
    padding-top: 14px;
    border-top: 1px solid #e0ddd9 !important;
}

/* --- Booking card --- */
.psh-booking-card {
    padding: 4px 0;
}

.psh-booking-card__title {
    font-family: var(--font-heading);
    font-size: 17px;
    font-weight: 600;
    color: #52547c;
    margin-bottom: 12px;
}

.psh-booking-card__row {
    display: flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font-body);
    font-size: 14px;
    color: var(--color-text);
    margin-bottom: 6px;
}

.psh-booking-card__row svg {
    color: var(--color-primary);
    flex-shrink: 0;
}

.psh-booking-card__row:last-child {
    margin-bottom: 0;
}

/* --- Trust signals --- */
.psh-trust-signals {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin: 16px 0;
    padding: 16px 18px;
    background: #f0faf6;
    border-radius: 10px;
}

.psh-trust-signals__item {
    display: flex;
    align-items: center;
    gap: 10px;
    font-family: var(--font-body);
    font-size: 13px;
    color: #2d6b5e;
}

.psh-trust-signals__item svg {
    flex-shrink: 0;
}

/* --- Botón CTA: gradient salmon, full width, pill --- */
.woocommerce-checkout #place_order {
    background: linear-gradient(135deg, var(--color-primary), #e8896a) !important;
    color: #fff !important;
    font-family: var(--font-body) !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    letter-spacing: 0.3px;
    text-transform: none !important;
    width: 100%;
    padding: 16px 32px !important;
    border: none !important;
    border-radius: 50px !important;
    box-shadow: 0 4px 15px rgba(239, 162, 134, 0.35);
    cursor: pointer;
    transition: transform 0.2s, box-shadow 0.2s;
}

.woocommerce-checkout #place_order:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 25px rgba(239, 162, 134, 0.5);
}

/* --- Payment section: mismo estilo card --- */
.woocommerce-checkout .woocommerce-checkout-payment {
    background: #f9f7f5 !important;
    border-radius: 14px !important;
    border: none !important;
    padding: 20px 24px !important;
    margin-bottom: 20px;
}

.woocommerce-checkout .woocommerce-checkout-payment ul.payment_methods {
    border-bottom: none !important;
    padding-bottom: 0 !important;
    margin-bottom: 0;
}

.woocommerce-checkout .woocommerce-checkout-payment ul.payment_methods li {
    font-family: var(--font-body);
    font-weight: 600;
    font-size: 14px;
    color: var(--color-dark);
}

/* --- Texto de privacidad bajo el botón --- */
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper,
.woocommerce-checkout .woocommerce-privacy-policy-text {
    text-align: center;
    font-size: 12px;
    color: #83838b;
    line-height: 1.5;
    margin-top: 14px;
}

.woocommerce-checkout .woocommerce-privacy-policy-text a {
    color: #52547c;
    text-decoration: underline;
}

/* --- Cupón en checkout --- */
/* Ocultar la posición original (sección hidden-desktop de Elementor) */
.woocommerce-checkout .woocommerce-form-coupon-toggle,
.woocommerce-checkout .elementor-hidden-desktop:has(.woocommerce-form-coupon-toggle) {
    display: none !important;
}

/* Sección inyectada entre resumen y trust signals */
.psh-coupon-section {
    margin: 0 0 8px;
}

.psh-coupon-section__title {
    font-family: var(--font-body);
    font-size: 13px;
    font-weight: 600;
    color: var(--color-dark);
    margin: 0 0 8px;
}

.psh-coupon-form__row {
    display: flex;
    gap: 8px;
    align-items: center;
}

.psh-coupon-form__row input[type="text"] {
    flex: 1;
    height: 42px;
    padding: 0 14px;
    border: 1.5px solid #dddde8;
    border-radius: 8px;
    font-family: var(--font-body);
    font-size: 14px;
    color: var(--color-dark);
    background: #fff;
    outline: none;
    transition: border-color 0.2s;
}

.psh-coupon-form__row input[type="text"]:focus {
    border-color: var(--color-navy);
    box-shadow: 0 0 0 3px rgba(82, 84, 124, 0.1);
}

.psh-coupon-form__btn {
    height: 42px;
    padding: 0 18px !important;
    background: var(--color-navy) !important;
    color: #fff !important;
    border-radius: 8px !important;
    font-family: var(--font-body) !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    border: none !important;
    cursor: pointer;
    white-space: nowrap;
    flex-shrink: 0;
    line-height: 42px !important;
}

.psh-coupon-form__btn:hover {
    opacity: 0.9;
}

/* --- Ocultar aviso de login (recuadro vacío) --- */
.woocommerce-checkout .woocommerce-form-login-toggle,
.woocommerce-checkout .woocommerce-form-login {
    display: none !important;
}

/* --- Mobile --- */
@media (max-width: 600px) {
    .woocommerce-checkout .woocommerce {
        margin-top: 16px;
        padding: 0 16px 40px;
    }

    .woocommerce-checkout .col2-set .col-1,
    .woocommerce-checkout .col2-set .col-2 {
        width: 100% !important;
        float: none !important;
    }

    /* Región + Comuna stacked en mobile */
    .woocommerce-checkout #billing_state_field,
    .woocommerce-checkout #billing_city_field {
        width: 100% !important;
        display: block !important;
        margin-right: 0 !important;
    }

    .woocommerce-checkout h3,
    .woocommerce-checkout h3#order_review_heading {
        font-size: 20px;
    }

    .woocommerce-checkout #order_review,
    .woocommerce-checkout .woocommerce-checkout-review-order {
        padding: 20px 16px;
    }

    .psh-billing-notice {
        font-size: 12px;
        padding: 12px 14px;
    }

    .psh-booking-card__title {
        font-size: 16px;
    }
}

/* --- Issue 2: Ocultar descripción cruda de Amelia/LatePoint --- */
.woocommerce-checkout .woocommerce-checkout-review-order-table .variation,
.woocommerce-checkout .woocommerce-checkout-review-order-table dl.variation,
.woocommerce-checkout .woocommerce-checkout-review-order-table td.product-name dl {
    display: none !important;
}

/* --- Issue 4: Logo Flow oversized — ocultar imagen, solo texto --- */
.woocommerce-checkout .wc_payment_method label img {
    display: none !important;
}

.woocommerce-checkout .payment_method_flowpayment .payment_box p,
.woocommerce-checkout .wc_payment_method .payment_box p {
    font-size: 13px;
    color: #83838b;
}

/* --- Issue 5: Botón CTA antes del texto de privacidad --- */
.woocommerce-checkout .form-row.place-order {
    display: flex !important;
    flex-direction: column !important;
}

.woocommerce-checkout .form-row.place-order #place_order {
    order: 1 !important;
}

.woocommerce-checkout .form-row.place-order .woocommerce-terms-and-conditions-wrapper {
    order: 2 !important;
}

/* --- Issue 6: Badge SSL --- */
.psh-secure-badge {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    margin-top: 20px;
    font-size: 12px;
    color: #83838b;
    font-family: var(--font-body);
}


/* =====================================================================
   17. PAGINA CONTACTO — rediseño mockup v3
   ===================================================================== */

/* --- Reducir padding general de la sección --- */
.contact-section {
    padding: 60px 0 80px !important;
}

/* --- Bloque info: fondo claro, contiene header + items + WhatsApp --- */
.content_block_6 .content-box .contact-info {
    background-color: #f9f7f5 !important;
    padding: 36px 30px 30px !important;
    border-radius: 12px;
    text-align: left;
}

/* Header inyectado dentro del bloque crema */
.psh-contact-header {
    margin-bottom: 20px;
    padding-bottom: 0;
    border-bottom: none;
}

.psh-contact-eyebrow {
    display: block;
    font-family: var(--font-body);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--color-primary);
    margin-bottom: 10px;
}

.psh-contact-title {
    font-family: var(--font-heading) !important;
    font-size: 26px !important;
    font-weight: 600 !important;
    color: var(--color-navy) !important;
    line-height: 1.2 !important;
    margin: 0 !important;
}

.psh-contact-desc {
    font-family: var(--font-body);
    font-size: 14px;
    color: var(--color-text);
    line-height: 1.6;
    margin: 0;
}

/* --- Items de contacto con iconos --- */
.content_block_6 .content-box .contact-info .info-list li {
    margin-bottom: 0 !important;
    padding: 16px 0;
    border-bottom: 1px solid #e8e8ef;
    display: flex;
    align-items: flex-start;
    gap: 14px;
}

.content_block_6 .content-box .contact-info .info-list li:first-child {
    padding-top: 0;
}

.content_block_6 .content-box .contact-info .info-list li:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

/* Icono circular */
.psh-contact-icon {
    width: 38px;
    height: 38px;
    min-width: 38px;
    background: #fff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 1px 4px rgba(0,0,0,0.06);
    margin-top: 2px;
}

.psh-contact-icon svg {
    color: var(--color-primary);
    stroke: var(--color-primary);
}

.content_block_6 .content-box .contact-info .info-list li h3 {
    color: var(--color-navy) !important;
    font-size: 11px !important;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    font-family: var(--font-body) !important;
    font-weight: 700;
    margin-bottom: 4px !important;
    line-height: 1.4 !important;
}

.content_block_6 .content-box .contact-info .info-list li p {
    color: #444 !important;
    font-size: 14px !important;
    line-height: 1.5 !important;
    margin-bottom: 0;
}

.content_block_6 .content-box .contact-info .info-list li p a {
    color: #444 !important;
    transition: color var(--transition-fast);
}

.content_block_6 .content-box .contact-info .info-list li p a:hover {
    color: var(--color-primary) !important;
}

/* --- Alinear columnas --- */
.contact-section .row.clearfix {
    align-items: flex-start;
}

.contact-section .right-column .inner-box {
    padding-top: 0;
}

/* --- Ocultar mapa (no está en el mockup) --- */
.contact-section .google-map-area {
    display: none !important;
}

/* --- Formulario --- */
.contact-section .form-inner h3 {
    font-size: 24px !important;
    line-height: 1.3 !important;
    margin-bottom: 24px !important;
    font-family: var(--font-heading);
    color: var(--color-navy);
}

/* Labels inyectados por JS */
.psh-form-label {
    display: block;
    font-family: var(--font-body);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    color: var(--color-navy);
    margin-bottom: 6px;
}

/* CF7 inputs */
.contact-section .wpcf7 input[type='text'],
.contact-section .wpcf7 input[type='email'],
.contact-section .wpcf7 input[type='tel'],
.contact-section .wpcf7 textarea {
    border-radius: 8px !important;
    border: 1.5px solid #ddd !important;
    padding: 12px 16px;
    font-family: var(--font-body);
    font-size: 14px;
    width: 100%;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.contact-section .wpcf7 input[type='text']:focus,
.contact-section .wpcf7 input[type='email']:focus,
.contact-section .wpcf7 input[type='tel']:focus,
.contact-section .wpcf7 textarea:focus {
    border-color: var(--color-primary) !important;
    box-shadow: 0 0 0 3px rgba(239, 162, 134, 0.15);
    outline: none;
}

/* Nombre + Email side-by-side (mockup muestra 2-col) */
.contact-section .wpcf7-form > .psh-form-row-2col {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

/* Botón submit */
.contact-section .wpcf7 input[type='submit'],
.contact-section .wpcf7 .wpcf7-submit {
    background: linear-gradient(135deg, var(--color-primary), #e8896a) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 50px !important;
    padding: 14px 32px !important;
    font-family: var(--font-body) !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    letter-spacing: 0.3px;
    cursor: pointer;
    box-shadow: 0 4px 15px rgba(239, 162, 134, 0.35);
    transition: transform 0.2s, box-shadow 0.2s;
    width: 100%;
}

.contact-section .wpcf7 input[type='submit']:hover,
.contact-section .wpcf7 .wpcf7-submit:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 25px rgba(239, 162, 134, 0.5);
}

/* --- Botón WhatsApp CTA (dentro del bloque crema) --- */
.psh-contact-whatsapp {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    background: #25D366;
    color: #fff !important;
    font-family: var(--font-body);
    font-size: 15px;
    font-weight: 700;
    padding: 14px 28px;
    border-radius: 50px;
    text-decoration: none !important;
    margin-top: 24px;
    transition: background 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
    box-shadow: 0 4px 15px rgba(37, 211, 102, 0.3);
}

.psh-contact-whatsapp:hover {
    background: #1fb855;
    transform: translateY(-2px);
    box-shadow: 0 6px 25px rgba(37, 211, 102, 0.4);
    color: #fff !important;
}

.psh-contact-whatsapp svg {
    flex-shrink: 0;
}

/* --- Responsive contacto --- */
@media (max-width: 991px) {
    .contact-section {
        padding: 40px 0 60px !important;
    }

    .content_block_6 .content-box .contact-info {
        padding: 28px 24px !important;
    }

    .psh-contact-whatsapp {
        width: 100%;
        justify-content: center;
    }

    .psh-contact-title {
        font-size: 22px !important;
    }
}


/* =====================================================================
   18. TEAM CARDS — diseño unificado con sombra, imágenes uniformes, botón
   ===================================================================== */

/* --- Card container: sombra, padding, bordes redondeados --- */
.team-block-one .inner-box {
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.06), 0 8px 24px rgba(0,0,0,0.07) !important;
    padding: 20px;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
    margin-bottom: 30px;
    overflow: visible !important;
}
.team-block-one .inner-box:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 30px rgba(0,0,0,0.12) !important;
}

/* --- Imágenes uniformes: misma altura, object-fit cover --- */
.team-block-one .inner-box .image-box {
    height: 280px;
    border-radius: 8px;
}
.team-block-one .inner-box .image-box img {
    height: 100%;
    object-fit: cover;
    border-radius: 8px;
}

/* --- Nombre profesional en coral --- */
.team-block-one .inner-box .text h4 a {
    color: var(--color-primary);
}

/* --- Botón AGENDAR CITA (con !important para vencer Elementor Custom CSS) --- */
.team-block-one .btn-agenda,
.team-block .btn-agenda,
a.btn-agenda {
    display: block !important;
    width: 100% !important;
    background: var(--color-primary) !important;
    color: #fff !important;
    text-align: center !important;
    padding: 12px 20px !important;
    border-radius: 8px !important;
    font-family: var(--font-body);
    font-size: 14px !important;
    font-weight: 700 !important;
    letter-spacing: 1px;
    text-transform: uppercase !important;
    text-decoration: none !important;
    margin-top: auto !important;
    transition: all 0.25s ease;
    box-sizing: border-box;
}
.team-block-one .btn-agenda:hover,
a.btn-agenda:hover {
    background: #e8896a !important;
    transform: translateY(-1px);
}

/* --- Descripción sin viñetas, centrada (como el home) --- */
.team-block-one .inner-box .text ul {
    list-style: none;
    padding-left: 0;
    margin: 0;
    text-align: center;
}
.team-block-one .inner-box .text ul li {
    list-style: none;
    font-family: var(--font-body);
    font-size: 14px;
    color: var(--color-text);
    line-height: 1.5;
}

/* --- Ocultar badge de designación (Ps. Adulto, etc.) --- */
.team-block-one .inner-box .designation {
    display: none;
}

/* --- Nombre centrado --- */
.team-block-one .inner-box .text h4 {
    text-align: center;
}

/* --- Cards misma altura con flexbox --- */
.team-section .row {
    display: flex;
    flex-wrap: wrap;
}
.team-section .row .team-block {
    display: flex;
}
.team-block-one {
    display: flex;
    flex-direction: column;
    height: 100%;
}
.team-block-one .inner-box {
    display: flex;
    flex-direction: column;
    flex: 1;
}
.team-block-one .inner-box .text {
    flex: 1;
    display: flex;
    flex-direction: column;
}
/* Button wrapper pushed to bottom of flex column */
.team-block-one .inner-box .text > div:last-child {
    margin-top: auto;
}

/* --- Precios centrados --- */
.team-block-one .team-pricing {
    text-align: center;
}
/* Pricing inside broken ul (cards with unclosed list tags) */
.team-block-one .inner-box .text ul .team-pricing {
    text-align: center;
}
/* Button inside broken ul should also push to bottom */
.team-block-one .inner-box .text ul .btn-agenda {
    margin-top: 14px !important;
}

/* --- Responsive: imágenes más bajas en mobile --- */
@media (max-width: 767px) {
    .team-block-one .inner-box .image-box {
        height: 220px;
    }
    .team-section .row {
        display: block;
    }
}


/* =====================================================================
   19. LANDING EMDR — eliminar padding superior del wrapper blog-details
   ===================================================================== */

.page-id-4294 .blog-details {
    padding-top: 0;
    padding-bottom: 0;
}

/* Sección morada "Agenda tus sesiones" — full width + separación superior */
.page-id-4294 .elementor-element-7530a0f8 {
    margin-top: 40px !important;
    margin-left: -15px;
    margin-right: -15px;
    width: calc(100% + 30px);
}

/* Breakout: permitir que elementos escapen el contenedor */
body.page-id-4294 {
    overflow-x: hidden !important;
}
.page-id-4294 .blog-text-main {
    overflow: visible !important;
}

/* Sección CTA "El primer paso es el más importante" — full width breakout */
.page-id-4294 .elementor-element-mmxy6do4 {
    width: 100vw !important;
    position: relative !important;
    left: 50% !important;
    margin-left: -50vw !important;
    margin-bottom: 0;
}


/* =====================================================================
   LANDING PSICOTERAPIA  (.pst-*)
   ===================================================================== */

/* Container */
.pst-container {
    max-width: 1140px;
    margin: 0 auto;
    padding: 0 20px;
}

/* Shared section elements */
.pst-section-title {
    text-align: center;
    font-family: var(--font-heading);
    font-size: 40px;
    font-weight: 400;
    color: var(--color-navy);
    line-height: 1.2;
    margin-bottom: 6px;
}

.pst-separator {
    width: 80px;
    height: 2px;
    background: var(--color-primary);
    margin: 16px auto 0;
}

p.pst-section-sub {
    text-align: center !important;
    font-family: var(--font-body);
    color: var(--color-text-light);
    margin-top: 16px;
    margin-bottom: 48px;
    font-size: 15px;
    font-weight: 400;
}

/* Buttons */
.pst-btn {
    display: inline-block;
    background: var(--color-primary);
    color: #fff;
    padding: 10px 30px;
    border: 1px solid var(--color-primary);
    border-radius: 0;
    font-size: 14px;
    font-weight: 400;
    font-family: var(--font-body);
    text-decoration: none;
    transition: all var(--transition-normal);
    cursor: pointer;
}
.pst-btn:hover {
    background: #fff;
    color: var(--color-primary);
}

.pst-btn--outline {
    background: transparent;
    color: #fff;
    border: 1px solid rgba(255,255,255,0.5);
}
.pst-btn--outline:hover {
    background: rgba(255,255,255,0.15);
    border-color: #fff;
    color: #fff;
}

.pst-btn--bar {
    background: transparent;
    border: 1px solid #fff;
    color: #fff;
}
.pst-btn--bar:hover {
    background: #fff;
    color: var(--color-navy);
}

.pst-btn--card {
    display: block;
    width: 100%;
    text-align: center;
    padding: 12px 20px;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    box-sizing: border-box;
}
.pst-btn--card:hover {
    background: #e8896a;
    border-color: #e8896a;
    color: #fff;
    transform: translateY(-1px);
}

.pst-btn--final {
    background: #fff;
    color: var(--color-navy);
    border-color: #fff;
}
.pst-btn--final:hover {
    background: transparent;
    color: #fff;
    border-color: #fff;
}

/* HERO */
.pst-hero {
    background: var(--color-navy);
    background-image: url('https://psicologoshoy.com/wp-content/uploads/2023/07/3.png');
    background-size: cover;
    background-position: center;
    position: relative;
    color: #fff;
    padding: 100px 0 80px;
    text-align: center;
}
.pst-hero::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(82, 84, 124, 0.82);
}
.pst-hero .pst-container { position: relative; z-index: 1; }
.pst-hero h1 {
    font-family: var(--font-heading);
    font-size: 40px;
    font-weight: 600;
    color: #fff;
    line-height: 1.2;
    margin-bottom: 20px;
}
.pst-hero__subtitle {
    font-family: var(--font-body);
    font-size: 16px;
    font-weight: 400;
    color: rgba(255,255,255,0.88);
    max-width: 650px;
    margin: 0 auto 36px;
    line-height: 1.7;
    text-align: center !important;
}
.pst-hero__ctas {
    display: flex;
    gap: 14px;
    justify-content: center;
    flex-wrap: wrap;
    margin-bottom: 12px;
}
.pst-hero__microcopy {
    font-size: 12px;
    color: rgba(255,255,255,0.5);
    margin-top: 18px;
    font-family: var(--font-body);
    text-align: center !important;
}

/* TRUST BAR */
.pst-trust {
    background: #f5f5f5;
    padding: 30px 0;
    border-bottom: 1px solid #eee;
}
.pst-trust__items {
    display: flex;
    justify-content: center;
    gap: 56px;
    flex-wrap: wrap;
}
.pst-trust__item {
    text-align: center;
    font-family: var(--font-body);
    font-size: 13px;
    color: var(--color-text-light);
}
.pst-trust__number {
    display: block;
    font-family: var(--font-heading);
    font-size: 28px;
    font-weight: 400;
    color: var(--color-navy);
    margin-bottom: 2px;
}

/* PROBLEMS */
.pst-problems {
    padding: 70px 0;
    background: #fff;
}
.pst-problems__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 24px;
}
.pst-problems__card {
    background: var(--color-navy);
    border-left: 4px solid #7eb8c9;
    border-radius: 4px;
    padding: 35px 30px;
    min-height: 200px;
    color: #fff;
    transition: all var(--transition-normal);
    box-shadow: 0 4px 12px rgba(0,0,0,0.08);
}
.pst-problems__card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 25px rgba(0,0,0,0.2);
}
.pst-problems__card h3 {
    font-family: var(--font-heading);
    font-size: 20px;
    font-weight: 400;
    color: #fff;
    margin-bottom: 10px;
}
.pst-problems__card p {
    font-family: var(--font-body);
    color: rgba(255,255,255,0.78);
    font-size: 14px;
    line-height: 1.7;
}

/* PROCESS */
.pst-process {
    background: var(--color-navy);
    color: #fff;
    padding: 70px 0;
}
.pst-process__steps {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 32px;
    text-align: center;
}
.pst-process__number {
    width: 56px;
    height: 56px;
    background: var(--color-primary);
    color: #fff;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-heading);
    font-size: 22px;
    font-weight: 600;
    margin-bottom: 18px;
}
.pst-process__step h3 {
    font-family: var(--font-heading);
    font-size: 18px;
    font-weight: 400;
    color: #fff;
    margin-bottom: 8px;
}
.pst-process__step p {
    font-family: var(--font-body);
    font-size: 13px;
    color: rgba(255,255,255,0.7);
    line-height: 1.65;
}

/* WHY US */
.pst-whyus {
    padding: 70px 0;
    background: #fff;
}
.pst-whyus__content {
    max-width: 800px;
    margin: 0 auto;
}
.pst-whyus__content h3 {
    font-family: var(--font-heading);
    font-size: 22px;
    font-weight: 400;
    color: var(--color-navy);
    margin: 32px 0 8px;
}
.pst-whyus__content h3:first-of-type { margin-top: 0; }
.pst-whyus__content p {
    font-family: var(--font-body);
    font-size: 16px;
    line-height: 1.7;
    color: var(--color-text);
}

/* TESTIMONIALS */
.pst-testimonials {
    padding: 70px 0;
    background: #f5f5f5;
}
.pst-testimonials__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 24px;
}
.pst-testimonials__card {
    background: #fff;
    border-radius: 4px;
    padding: 30px 24px;
    box-shadow: 0 2px 10px rgba(0,0,0,0.06);
}
.pst-testimonials__stars {
    color: var(--color-primary);
    font-size: 16px;
    margin-bottom: 14px;
    letter-spacing: 2px;
}
.pst-testimonials__card blockquote {
    font-family: var(--font-body);
    font-size: 14px;
    color: var(--color-text);
    font-style: italic;
    line-height: 1.7;
    margin-bottom: 18px;
}
.pst-testimonials__card blockquote strong {
    color: var(--color-navy);
    font-style: normal;
    font-weight: 600;
}
.pst-testimonials__author {
    display: flex;
    align-items: center;
    gap: 12px;
}
.pst-testimonials__avatar {
    width: 42px;
    height: 42px;
    background: #7eb8c9;
    color: #fff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-body);
    font-size: 13px;
    font-weight: 600;
    flex-shrink: 0;
}
.pst-testimonials__info {
    font-family: var(--font-body);
    font-size: 14px;
    color: var(--color-navy);
    font-weight: 600;
}
.pst-testimonials__info span {
    display: block;
    font-weight: 400;
    color: var(--color-text-light);
    font-size: 12px;
}

/* AGENDA BAR */
.pst-agenda-bar {
    background: linear-gradient(135deg, var(--color-navy) 0%, var(--color-primary) 100%);
    padding: 40px 0;
    position: relative;
    overflow: hidden;
}
.pst-agenda-bar::before {
    content: 'PSICOLOGOS';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-family: var(--font-heading);
    font-size: 120px;
    font-weight: 700;
    color: rgba(255,255,255,0.06);
    white-space: nowrap;
    pointer-events: none;
}
.pst-agenda-bar .pst-container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    position: relative;
    z-index: 1;
}
.pst-agenda-bar h2 {
    font-family: var(--font-heading);
    font-size: 40px;
    font-weight: 400;
    color: #fff;
    line-height: 1.2;
}
.pst-agenda-bar__ctas {
    display: flex;
    gap: 12px;
}

/* TEAM */
.pst-team {
    padding: 70px 0;
    background: #f9f9fb;
}
.pst-team__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
    max-width: 1200px;
    margin: 0 auto;
}
.pst-team__card {
    background: #fff;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 2px 12px rgba(0,0,0,0.06);
    transition: all var(--transition-fast);
    display: flex;
    flex-direction: column;
}
.pst-team__card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 25px rgba(0,0,0,0.12);
}
.pst-team__img {
    width: 100%;
    aspect-ratio: 3 / 3.5;
    object-fit: cover;
    display: block;
}
.pst-team__body {
    padding: 20px 16px;
    text-align: center;
    display: flex;
    flex-direction: column;
    flex: 1;
}
.pst-team__body h4 {
    font-family: var(--font-heading);
    font-size: 18px;
    font-weight: 600;
    color: var(--color-navy);
    margin: 0 0 6px;
}
.pst-team__body h4 a {
    color: var(--color-navy);
    text-decoration: none;
}
.pst-team__body h4 a:hover { color: var(--color-primary); }
.pst-team__desc {
    font-family: var(--font-body);
    font-size: 13px;
    color: var(--color-text-light);
    line-height: 1.5;
    margin-bottom: 12px;
}
.pst-team__pricing {
    display: flex;
    gap: 8px;
    margin: 0 0 14px;
    margin-top: auto;
}
.pst-team__price {
    flex: 1;
    padding: 8px 10px;
    border-radius: 6px;
    line-height: 1.3;
}
.pst-team__price--isapre {
    background: #f0f3fa;
    color: #6b7db3;
}
.pst-team__price--fonasa {
    background: #edf7f5;
    color: #4a9e8e;
}
.pst-team__price-label {
    display: block;
    font-family: var(--font-body);
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-weight: 600;
}
.pst-team__price-value {
    display: block;
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 700;
}
.pst-team__cta {
    text-align: center;
    margin-top: 48px;
}
.pst-team__cta a {
    display: inline-block;
    background: var(--color-primary);
    color: #fff;
    font-family: var(--font-body);
    font-size: 16px;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    text-decoration: none;
    padding: 16px 48px;
    border-radius: 8px;
    transition: all 0.25s ease;
}
.pst-team__cta a:hover {
    background: #e8896a;
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(239,162,134,0.4);
}

/* FAQ */
.pst-faq {
    padding: 70px 0;
    background: #fff;
}
.pst-faq__list {
    max-width: 800px;
    margin: 0 auto;
}
.pst-faq__item {
    border-bottom: 1px solid #eee;
}
.pst-faq__question {
    font-family: var(--font-heading);
    font-size: 18px;
    font-weight: 400;
    color: var(--color-navy);
    padding: 20px 0;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin: 0;
}
.pst-faq__question::after {
    content: '+';
    font-family: var(--font-body);
    font-size: 20px;
    color: var(--color-primary);
    font-weight: 300;
    flex-shrink: 0;
    margin-left: 16px;
}
.pst-faq__item--open .pst-faq__question::after { content: '\2212'; }
.pst-faq__answer {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease, padding 0.3s ease;
    font-family: var(--font-body);
    font-size: 14px;
    color: var(--color-text);
    line-height: 1.75;
    padding: 0;
}
.pst-faq__item--open .pst-faq__answer {
    max-height: 300px;
    padding: 0 0 20px;
}

/* FINAL CTA */
.pst-final-cta {
    background: linear-gradient(135deg, var(--color-navy) 0%, var(--color-primary) 100%);
    color: #fff;
    padding: 70px 0;
    text-align: center;
    position: relative;
    overflow: hidden;
}
.pst-final-cta::before {
    content: 'PSICOLOGOS';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-family: var(--font-heading);
    font-size: 120px;
    font-weight: 700;
    color: rgba(255,255,255,0.06);
    white-space: nowrap;
    pointer-events: none;
}
.pst-final-cta .pst-container { position: relative; z-index: 1; }
.pst-final-cta p {
    font-family: var(--font-body);
    font-size: 16px;
    color: rgba(255,255,255,0.85);
    max-width: 580px;
    margin: 0 auto 32px;
    line-height: 1.7;
}
.pst-final-cta__microcopy {
    font-size: 12px;
    color: rgba(255,255,255,0.45);
    margin-top: 16px;
    font-family: var(--font-body);
}

/* RESPONSIVE — Psicoterapia */
@media (max-width: 992px) {
    .pst-team__grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 768px) {
    .pst-hero { padding: 72px 0 56px; }
    .pst-hero h1 { font-size: 30px; }
    .pst-section-title { font-size: 32px; }
    .pst-trust__items { gap: 28px; }
    .pst-problems__grid { grid-template-columns: 1fr; }
    .pst-process__steps { grid-template-columns: 1fr 1fr; gap: 24px; }
    .pst-testimonials__grid { grid-template-columns: 1fr; }
    .pst-hero__ctas { flex-direction: column; align-items: center; }
    .pst-agenda-bar .pst-container { flex-direction: column; text-align: center; gap: 20px; }
    .pst-agenda-bar h2 { font-size: 30px; }
    .pst-team__grid { grid-template-columns: 1fr 1fr; gap: 16px; }
    .pst-team__body { padding: 16px 12px; }
    .pst-team__price-value { font-size: 13px; }
}

@media (max-width: 480px) {
    .pst-process__steps { grid-template-columns: 1fr; }
    .pst-trust__items { gap: 20px; }
    .pst-hero h1 { font-size: 26px; }
    .pst-section-title { font-size: 28px; }
}


/* Espacio entre última sección de equipo y footer - página /equipo/ */
.page-id-441 .elementor-top-section:last-child {
    padding-bottom: 80px !important;
}

/* =====================================================================
   FIN polpress-custom.css
   ===================================================================== */

/* SEO: H1 visible en artículos con breadcrumb desactivado */
.entry-title-main {
    font-size: 2rem;
    margin-bottom: 1.5rem;
    color: #1a1a2e;
    line-height: 1.3;
}

/* Agenda una cita - reducir márgenes ~60% */
.page-id-1194 .blog-details {
    padding-top: 20px !important;
}
.page-id-1194 .elementor-section {
    padding-top: 10px !important;
    padding-bottom: 10px !important;
    margin-top: 0 !important;
}
.page-id-1194 .elementor-column {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}
.page-id-1194 .elementor-widget-heading:first-child {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}
.page-id-1194 .am-fs__wrapper {
    margin-top: 0 !important;
}

/* Flow payment error debug detail */
.woocommerce-error .flow-error-detail {
    display: block;
    margin-top: 6px;
    font-size: 10px;
    font-family: 'SF Mono', Menlo, Consolas, monospace;
    color: #c0c0c0;
    opacity: 0.6;
    word-break: break-all;
    line-height: 1.4;
}
