/**
 * Estilos para Promociones
 */

/* Contenedor de promoción individual */
.single-promociones .container {
    max-width: 1280px;
    padding-left: 30px;
    padding-right: 30px;
}

/* Asegurar que el título se superponga correctamente en promociones (igual que servicios) */
.single-promociones .article-title-section,
.post-type-promociones .article-title-section {
    margin-top: -100px;
    margin-bottom: 2rem;
    position: relative;
    z-index: 10;
    background:transparent;
}

/* Contenedor principal transparente para promociones */
.single-promociones .page-main-content,
.post-type-promociones .page-main-content {
    border-radius: 38px 0 0 0 !important;
}

.single-promociones .article-title,
.post-type-promociones .article-title {
    font-family: 'Montserrat', sans-serif;
    font-size: 40px;
    font-weight: 800;
    line-height: 1.2;
    color: #000000;
    margin: 0;
    letter-spacing: -0.8px;
    background: #ffffff !important;
    margin-top: -132px;
    position: relative;
    padding: 20px 30px 0 30px;
    border-radius: 38px 0 0 0;
    overflow: visible;
    z-index: 10;
}

/* Línea decorativa del título */
.single-promociones .page-title-decoration,
.post-type-promociones .page-title-decoration {
    width: 65%;
    height: 5px;
    background-color: #0A9BC7;
    margin: 16px 0 0 0;
    border-radius: 2px;
    transition: all 0.3s ease;
    margin-left: 30px;
}

/* Contenedor del artículo */
.single-promociones .page-main-content {
    border-radius: 0 0 8px 8px;
}

/* Breadcrumb en página individual de promoción */
.single-promociones .article-breadcrumb {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    font-family: 'Montserrat', sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.32;
    margin-bottom: 1.5rem;
    color: #000000;
    padding: 0 30px;
    gap: 0.5rem;
}

/* Contenido de la promoción */
.single-promociones .article-content,
.post-type-promociones .article-content {
    padding: 0 30px;
}

/* Formulario de contacto en promociones */
.single-promociones .promocion-contact-form-section,
.post-type-promociones .promocion-contact-form-section {
    margin-top: 40px;
    margin-bottom: 40px;
}

/* Página de promoción individual */
.single-promociones .promocion-featured-image {
    width: calc(100% - 60px);
    max-width: 100%;
    margin: 0 30px 2rem 30px;
    border-radius: 8px;
    overflow: hidden;
}

.promocion-featured-image {
    width: 100%;
    max-width: 100%;
    margin: 0 0 2rem 0;
    border-radius: 8px;
    overflow: hidden;
}

.promocion-featured-image .promocion-thumbnail {
    width: 100%;
    height: auto;
    display: block;
}

/* Grid de promociones */
.promociones-grid-wrapper {
    width: 100%;
    padding: 2rem 0;
}

.promociones-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem;
    margin-bottom: 2rem;
}

.promociones-grid[data-columns="2"] {
    grid-template-columns: repeat(2, 1fr);
}

.promociones-grid[data-columns="3"] {
    grid-template-columns: repeat(3, 1fr);
}

.promociones-grid[data-columns="4"] {
    grid-template-columns: repeat(4, 1fr);
}

/* Tarjeta de promoción */
.promocion-card {
    position: relative;
    display: block;
    background: transparent;
    border: none;
    border-radius: 8px;
    overflow: hidden;
    transition: all 0.3s ease;
    box-shadow: none;
}

.promocion-card:hover {
    box-shadow: none;
    transform: none;
}

/* Link de la tarjeta - background cover */
.promocion-card-link {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    text-decoration: none;
    overflow: hidden;
    border-radius: 8px;
    margin: 0;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    transition: transform 0.8s ease-out;
    background-color: #f5f5f5;
}

.promocion-card:hover .promocion-card-link {
    transform: scale(1.01);
}

/* Wrapper del título - posicionado en la parte inferior de la imagen */
.promocion-card-title-wrapper {
    position: absolute;
    bottom: 20px;
    left: 1rem;
    background: #ffffff;
    padding: 0.75rem 1rem;
    border-radius: 8px;
    z-index: 5;
    width: fit-content;
    max-width: calc(100% - 2rem);
    margin-bottom: 1rem;
}

/* Título de la card */
.promocion-card-title {
    font-family: 'Montserrat', sans-serif;
    font-size: 0.95rem;
    font-weight: 600;
    line-height: 1.4;
    margin: 0;
    color: #000000;
    text-decoration: none;
    transition: color 0.3s ease;
    display: block;
    text-align: left;
}

.promocion-card-title:hover {
    color: #00b3e3;
}


/* Sin promociones */
.no-promociones {
    text-align: center;
    padding: 3rem 1rem;
    color: #666;
    font-size: 1rem;
}

/* Responsive */
@media (max-width: 1024px) {
    .promociones-grid[data-columns="3"] {
        grid-template-columns: repeat(2, 1fr);
    }

    .promociones-grid[data-columns="4"] {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 768px) {
    /* Header reducido en móvil para promociones individuales */
    .single-promociones .article-header-bg {
        height: 120px !important;
    }
    
    .single-promociones .article-title {
        font-size: 24px;
        line-height: 1.3;
        margin-top: -60px;
    }

    /* Breadcrumb responsive en móvil */
    .single-promociones .article-breadcrumb {
        font-size: 14px;
        padding: 0 15px;
        gap: 0.25rem;
    }

    .single-promociones .article-breadcrumb .breadcrumb-separator {
        margin: 0 0.25rem;
    }

    /* Eliminar padding lateral en móvil */
    .single-promociones .article-content,
    .post-type-promociones .article-content {
        padding: 0 !important;
    }

    .single-promociones .promocion-featured-image,
    .post-type-promociones .promocion-featured-image {
        margin: 0 0 2rem 0 !important;
        width: 100% !important;
    }

    .promociones-grid {
        gap: 1.5rem;
    }

    .promociones-grid[data-columns="2"],
    .promociones-grid[data-columns="3"],
    .promociones-grid[data-columns="4"] {
        grid-template-columns: 1fr;
    }

    .promocion-card-image {
        height: 200px;
    }

    .promocion-card-content {
        padding: 1rem;
    }
}

/* Breadcrumb en página individual - estilos para promociones */
.single-promociones .article-breadcrumb .breadcrumb-link,
.post-type-promociones .article-breadcrumb .breadcrumb-link {
    color: #264067 !important;
    text-decoration: none !important;
    font-weight: 700;
    transition: color 0.2s ease;
}

.single-promociones .article-breadcrumb .breadcrumb-link:hover,
.post-type-promociones .article-breadcrumb .breadcrumb-link:hover {
    color: #0a9bc7 !important;
    text-decoration: none !important;
}

.single-promociones .article-breadcrumb .breadcrumb-current,
.post-type-promociones .article-breadcrumb .breadcrumb-current {
    color: #000000;
}

.single-promociones .article-breadcrumb .breadcrumb-separator,
.post-type-promociones .article-breadcrumb .breadcrumb-separator {
    margin: 0 0.5rem;
    font-weight: 700;
    color: #000000;
}

/* Featured DIV - Disponible en promociones */
.featured-div {
    background: #0A9BC7;
    width: 100%;
    text-align: center;
    font-size: 24px !important;
    color: #FFFFFF !important;
    padding: 20px;
    font-weight: 700;
}

/* ========================================
   CUSTOM COMPONENT CLASSES - ALL INCLUDED AND REASONS
   Pure CSS classes for any Gutenberg blocks
   ======================================== */

/* Section container */
.all-included-section,
.reasons-section {
    padding: 3rem 0;
}

/* Title "ALL INCLUDED" */
.all-included-title {
    font-family: 'Montserrat', sans-serif !important;
    font-size: 2.5rem !important;
    font-weight: 800 !important;
    color: #00396B !important;
    margin-bottom: 3rem !important;
    letter-spacing: -0.5px !important;
    text-transform: uppercase !important;
    text-align: center !important;
}

/* Grid of columns for cards */
.all-included-grid {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 2rem !important;
    margin-bottom: 3rem !important;
}

/* Individual card */
.service-card {
    border: 3px solid #0A9BC7 !important;
    border-radius: 12px !important;
    padding: 2rem !important;
    background: #FFFFFF !important;
    text-align: center !important;
    transition: all 0.3s ease !important;
    min-height: 150px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-direction: column !important;
}

.service-card:hover {
    box-shadow: 0 4px 12px rgba(10, 155, 199, 0.2) !important;
    transform: translateY(-2px) !important;
}

/* Text inside cards */
.service-card p,
.service-card h3 {
    font-family: 'Montserrat', sans-serif !important;
    font-size: 1.3rem !important;
    font-weight: 600 !important;
    color: #0A9BC7 !important;
    margin: 0 !important;
    line-height: 1.4 !important;
}

/* Button "BOOK APPOINTMENT NOW" */
.book-appointment-btn {
    border: none !important;
}

.book-appointment-btn .wp-block-button__link {
    display: inline-block !important;
    padding: 16px 98px !important;
    background: transparent !important;
    color: #264067 !important;
    text-decoration: none !important;
    border-radius: 30px !important;
    font-family: 'Montserrat', sans-serif !important;
    font-size: 1rem !important;
    font-weight: 800 !important;
    text-align: center !important;
    transition: all 0.3s ease !important;
    border: 2px solid #264067 !important;
}

.book-appointment-btn a,
.book-appointment-btn .wp-block-button__link {
    display: inline-block !important;
    padding: 16px 98px !important;
    background: transparent !important;
    color: #264067 !important;
    text-decoration: none !important;
    border-radius: 30px !important;
    font-family: 'Montserrat', sans-serif !important;
    font-size: 1rem !important;
    font-weight: 800 !important;
    text-align: center !important;
    transition: all 0.3s ease !important;
    border: 2px solid #264067 !important;
    margin-top:20px;
}

.book-appointment-btn a:hover,
.book-appointment-btn .wp-block-button__link:hover {
    background: #264067 !important;
    color: #FFFFFF !important;
    border-color: #264067 !important;
    text-decoration: none !important;
}

.book-appointment-btn a:visited {
    text-decoration: none !important;
}

.book-appointment-btn a:link {
    text-decoration: none !important;
}

.book-appointment-btn a:focus,
.book-appointment-btn .wp-block-button__link:focus {
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(38, 64, 103, 0.3) !important;
}

/* Responsive para móvil - Reducir padding */
@media (max-width: 768px) {
    .book-appointment-btn a,
    .book-appointment-btn .wp-block-button__link {
        padding: 12px 40px !important;
        font-size: 1rem !important;
    }

    .book-appointment-btn {
        margin-top: 0 !important;
        margin-bottom: 0 !important;
    }
}

@media (max-width: 768px) {
    .book-appointment-btn {
        margin-top: 0 !important;
        margin-bottom: 0 !important;
    }
}

@media (max-width: 480px) {
    .book-appointment-btn a,
    .book-appointment-btn .wp-block-button__link {
        padding: 10px 24px !important;
        font-size: 21px !important;
    }

    .book-appointment-btn {
        margin-top: 0 !important;
        margin-bottom: 0 !important;
    }
}

.blue-background{
    background:#264067;
    padding: 20px 40px;
}

.border-div{
    border-radius:12px;
}

.featured-div-orange{
    border:2px solid #e18e1b;
    color:#264067;
    padding: 20px 40px;
    font-size:24px;
    font-weight: 400;
}

.featured-text{
    font-size: 27px;
    font-weight: 300;
    line-height: 37px;
}

/* Title "REASONS TO STERILIZE" */
.reasons-title {
    font-family: 'Montserrat', sans-serif !important;
    font-size: 2.2rem !important;
    font-weight: 800 !important;
    color: #00396B !important;
    text-align: center !important;
    margin-bottom: 3rem !important;
    letter-spacing: -0.5px !important;
    text-transform: uppercase !important;
}

/* Container of reasons */
.reasons-list {
    display: flex !important;
    flex-direction: column !important;
    gap: 2rem !important;
}

/* Reason item */
.reason-item {
    display: flex !important;
    gap: 2rem !important;
    align-items: flex-start !important;
    padding: 0 !important;
    margin: 0 !important;
}

.wp-block-group.reason-item{
    margin:0 !important;
}

/* Container for number in reason */
.reason-number-container {
    flex-shrink: 0 !important;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    background-color: #FFF3E0;
    border: 3px solid #FF9800;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'Montserrat', sans-serif;
    font-size: 1.5rem !important;
    font-weight: 800;
    color: #FF9800 !important;
    flex-shrink: 0;
}

.rounded{
	border-radius:20px;
}

/* Content of reason */
.reason-content {
    flex: 1;
    margin-top:10px;
}

/* Reason title */
.reason-title {
    font-family: 'Montserrat', sans-serif !important;
    font-size: 1.1rem !important;
    font-weight: 700 !important;
    color: #FF9800 !important;
    margin: 0 0 0.75rem 0 !important;
    letter-spacing: 0.3px !important;
    text-transform: uppercase !important;
}

/* Reason description */
.reason-description {
    font-family: 'Montserrat', sans-serif !important;
    font-size: 1rem !important;
    font-weight: 400 !important;
    color: #00396B !important;
    margin: 0 !important;
    line-height: 1.6 !important;
}

:root :where(.is-layout-flow) > :last-child{
    margin-left:0 !important;
}

.background-blue{
	background:#273f67;
	padding:40px;
}

.single-promociones img, .single-promociones figure{
	-webkit-box-shadow:none;
	box-shadow:none;
}

/* Responsive for tablet */
@media (max-width: 1024px) {
    .all-included-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 1.5rem !important;
    }
    
    .all-included-title {
        font-size: 2rem !important;
    }
    
    .reasons-title {
        font-size: 1.8rem !important;
    }
}

/* Responsive for mobile */
@media (max-width: 768px) {
    .all-included-section,
    .reasons-section {
        padding: 2rem 0 !important;
    }
    
    .all-included-grid {
        grid-template-columns: 1fr !important;
        gap: 1.25rem !important;
    }
    
    .all-included-title {
        font-size: 1.75rem !important;
        margin-bottom: 2rem !important;
    }
    
    .service-card {
        padding: 1.5rem !important;
        min-height: 120px !important;
    }
    
    .service-card p,
    .service-card h3 {
        font-size: 1.25rem !important;
    }
    
    .book-appointment-btn {
        padding: 0.875rem 2rem !important;
        font-size: 1rem !important;
        margin: 1.5rem 0 !important;
    }
    
    .reasons-title {
        font-size: 1.5rem !important;
        margin-bottom: 2rem !important;
    }
    
    .reason-item {
        gap: 1.5rem !important;
    }
    
    .reason-number-container {
        width: 45px;
        height: 45px;
        font-size: 1.25rem;
    }
    
    .reason-title {
        font-size: 1rem !important;
    }
    
    .reason-description {
        font-size: 0.95rem !important;
    }
    .featured-text{
        font-size: 21px;
        font-weight: 300;
        line-height: 27px;
    }
}

/* Responsive for small mobile */
@media (max-width: 480px) {
    .all-included-title {
        font-size: 1.5rem !important;
    }
    
    .reasons-title {
        font-size: 1.25rem !important;
    }
    
    .reason-item {
        gap: 1rem !important;
    }
    
    .reason-number-container {
        width: 40px;
        height: 40px;
        font-size: 1.1rem;
    }
}
