/**
 * ╔═══════════════════════════════════════════════════════════════════════════╗
 * ║                                                                           ║
 * ║     🎨 LAYOUT 2 COLUMNAS - PRODUCTO PREMIUM                              ║
 * ║     Columna Izquierda: Título, Precio, Descripción, Galería, Acordeones ║
 * ║     Columna Derecha: Calendario de Reservas                              ║
 * ║                                                                           ║
 * ╚═══════════════════════════════════════════════════════════════════════════╝
 */

/* ═══════════════════════════════════════════════════════════════════════════
   RESET Y CONTENEDOR PRINCIPAL
   ═══════════════════════════════════════════════════════════════════════════ */

body.single-product {
    background-color: var(--kenkatsu-bg-off-white) !important;
}

body.single-product #main {
    padding-top: 130px !important;
}

/* Asegurar que las breadcrumbs (migas de pan) sean visibles */
body.single-product .woocommerce-breadcrumb {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    margin: 0 0 30px 0 !important;
    padding: 15px 0 !important;
    font-size: 0.9rem !important;
    color: var(--kenkatsu-gray-500) !important;
    font-family: 'Lato', sans-serif !important;
    line-height: 1.6 !important;
}

body.single-product .woocommerce-breadcrumb a {
    color: var(--kenkatsu-teal) !important;
    text-decoration: none !important;
    font-weight: 500 !important;
    transition: color 0.3s ease !important;
}

body.single-product .woocommerce-breadcrumb a:hover {
    color: var(--kenkatsu-teal-dark) !important;
    text-decoration: underline !important;
}

/* Contenedor de notificaciones de WooCommerce - asegurar visibilidad */
body.single-product .woocommerce-notices-wrapper {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    margin: 30px 0 20px 0 !important;
    padding: 0 !important;
}

/* Ocultar mensajes de error de reserva al cargar la página */
body.single-product .woocommerce-error,
body.single-product .woocommerce-info,
body.single-product .woocommerce-message,
body.single-product [class*="booking-error"],
body.single-product [class*="booking-warning"],
body.single-product [class*="phive-error"],
body.single-product .woocommerce-error ul,
body.single-product .woocommerce-info ul,
body.single-product .woocommerce-message ul {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    line-height: 0 !important;
    font-size: 0 !important;
}

/* Ocultar específicamente el mensaje "Bloques seleccionados no disponibles" */
body.single-product *:contains("Bloques seleccionados"),
body.single-product *:contains("bloques seleccionados"),
body.single-product *:contains("no disponible") {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    height: 0 !important;
}

/* Mostrar mensajes solo si son nuevos (añadidos después de la carga inicial) */
body.single-product .woocommerce-error:not(.kenkatsu-initial-load),
body.single-product .woocommerce-info:not(.kenkatsu-initial-load),
body.single-product .woocommerce-message:not(.kenkatsu-initial-load) {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    height: auto !important;
    margin: 20px 0 !important;
    padding: 20px 25px !important;
    font-size: 1rem !important;
    line-height: 1.6 !important;
    color: #1A1A1A !important;
    background-color: #E6F7F5 !important; /* Fondo verde claro específico para mensajes */
    border: 2px solid var(--kenkatsu-teal) !important;
    border-radius: 12px !important;
    box-shadow: 0 2px 8px rgba(13, 148, 136, 0.1) !important;
}

/* Estilizar específicamente el mensaje de éxito después de añadir al carrito */
body.single-product .woocommerce-message:not(.kenkatsu-initial-load),
body.single-product .woocommerce-message.kenkatsu-success-message {
    background-color: #E6F7F5 !important;
    border-left: 5px solid var(--kenkatsu-teal) !important;
    border-radius: 12px !important;
    padding: 20px 25px !important;
    margin: 30px 0 20px 0 !important; /* Espacio superior para separar del header */
    font-family: 'Lato', sans-serif !important;
    font-size: 1rem !important;
    font-weight: 500 !important;
    color: var(--kenkatsu-teal-dark) !important;
    line-height: 1.8 !important;
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    height: auto !important;
    position: relative !important;
    z-index: 100 !important; /* Alto z-index para asegurar que esté visible */
}

/* Prevenir que se oculte el mensaje de éxito */
body.single-product .woocommerce-message.kenkatsu-success-message {
    animation: fadeInMessage 0.5s ease-in !important;
}

@keyframes fadeInMessage {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Asegurar que el texto dentro del mensaje sea visible */
body.single-product .woocommerce-message:not(.kenkatsu-initial-load) * {
    color: var(--kenkatsu-teal-dark) !important;
    font-size: 1rem !important;
    line-height: 1.8 !important;
    font-weight: 500 !important;
}

/* Botón dentro del mensaje */
body.single-product .woocommerce-message:not(.kenkatsu-initial-load) .button,
body.single-product .woocommerce-message:not(.kenkatsu-initial-load) button,
body.single-product .woocommerce-message:not(.kenkatsu-initial-load) a.button {
    background: var(--kenkatsu-teal) !important;
    color: var(--kenkatsu-bg-white) !important;
    padding: 12px 24px !important;
    border-radius: 8px !important;
    font-weight: 600 !important;
    text-transform: none !important;
    margin-left: 15px !important;
    text-decoration: none !important;
    display: inline-block !important;
}

body.single-product .woocommerce-message:not(.kenkatsu-initial-load) .button:hover,
body.single-product .woocommerce-message:not(.kenkatsu-initial-load) button:hover,
body.single-product .woocommerce-message:not(.kenkatsu-initial-load) a.button:hover {
    background: var(--kenkatsu-teal-dark) !important;
    transform: translateY(-1px) !important;
}

/* Icono de éxito en mensaje de experiencia */
body.single-product .kenkatsu-success-icon,
body.single-product .woocommerce-message .kenkatsu-success-icon {
    display: inline-block !important;
    width: 24px !important;
    height: 24px !important;
    background: var(--kenkatsu-teal) !important;
    color: var(--kenkatsu-bg-white) !important;
    border-radius: 50% !important;
    text-align: center !important;
    line-height: 24px !important;
    font-weight: 700 !important;
    font-size: 16px !important;
    margin-right: 12px !important;
    vertical-align: middle !important;
}

/* Mensaje específico de experiencia añadida */
body.single-product .woocommerce-message.kenkatsu-experience-message {
    background: linear-gradient(135deg, #E6F7F5 0%, #F0FDF4 100%) !important;
    border-left: 5px solid var(--kenkatsu-teal) !important;
    border-radius: 12px !important;
    padding: 25px 30px !important;
    font-size: 1.05rem !important;
    box-shadow: 0 4px 12px rgba(13, 148, 136, 0.15) !important;
}

body.single-product .woocommerce-message.kenkatsu-experience-message strong {
    color: var(--kenkatsu-teal-dark) !important;
    font-weight: 600 !important;
}

/* Contenedor principal del producto — padding responsive para no afectar móvil */
.single-product div.product {
    max-width: 1400px !important;
    margin: 0 auto !important;
    padding: 40px 24px 48px !important;
    display: block !important; /* Evitar que un grid/flex padre coloque relacionados al lado */
}

/* ═══════════════════════════════════════════════════════════════════════════
   LAYOUT 2 COLUMNAS
   ═══════════════════════════════════════════════════════════════════════════ */

/* Solo 2 columnas: producto + calendario. Los relacionados van siempre abajo en el HTML. */
.kenkatsu-product-layout-two-columns {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 24px !important;
    margin: 0 auto !important;
    max-width: 100% !important;
    align-items: start !important;
}

@media (min-width: 992px) {
    .kenkatsu-product-layout-two-columns {
        grid-template-columns: 1fr 1fr !important;
        gap: 40px !important;
        align-items: start !important;
    }
}

/* ═══════════════════════════════════════════════════════════════════════════
   COLUMNA IZQUIERDA: Título, Precio, Descripción, Galería, Acordeones
   ═══════════════════════════════════════════════════════════════════════════ */

.kenkatsu-product-left-column {
    display: flex !important;
    flex-direction: column !important;
    gap: 24px !important;
    order: 1 !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    align-self: start !important;
    margin-top: 0 !important;
    padding-top: 0 !important;
}

@media (min-width: 992px) {
    .kenkatsu-product-left-column {
        padding-top: 0 !important;
        gap: 30px !important;
    }
}

/* Título */
.kenkatsu-product-left-column .kenkatsu-product-title {
    font-family: 'Lora', 'Playfair Display', serif !important;
    font-size: 2.5rem !important;
    font-weight: 500 !important;
    line-height: 1.2 !important;
    color: #1A1A1A !important;
    margin: 0 !important;
    letter-spacing: -0.02em !important;
}

@media (min-width: 768px) {
    .kenkatsu-product-left-column .kenkatsu-product-title {
        font-size: 3.5rem !important;
    }
}

/* Precio: OCULTO en página de producto (solo visible en motor de reservas tras selección en calendario) */
.kenkatsu-product-left-column .kenkatsu-product-price,
body.single-product .kenkatsu-product-price,
body.single-product .kenkatsu-related-price,
body.single-product .kenkatsu-related-info .woocommerce-Price-amount {
    display: none !important;
    visibility: hidden !important;
}

/* Precio - USANDO VARIABLES (mantener estilos por si se usa en otros contextos) */
.kenkatsu-product-left-column .kenkatsu-product-price {
    font-family: 'Lato', sans-serif !important;
    font-size: 1.8rem !important;
    color: var(--kenkatsu-primary) !important;
    font-weight: 400 !important;
    margin: 0 !important;
    letter-spacing: -0.01em !important;
}

@media (min-width: 768px) {
    .kenkatsu-product-left-column .kenkatsu-product-price {
        font-size: 2.2rem !important;
    }
}

.kenkatsu-product-left-column .kenkatsu-product-price del {
    font-size: 1.2rem !important;
    opacity: 0.5 !important;
    margin-right: 10px !important;
}

/* Descripción */
/* ═══════════════════════════════════════════════════════════════════════════
   ACORDEÓN - DESCRIPCIÓN COMPLETA Y CARACTERÍSTICAS
   ═══════════════════════════════════════════════════════════════════════════ */

.kenkatsu-accordion-section {
    margin: 30px 0;
    border: 1px solid rgba(230, 220, 207, 0.3);
    border-radius: 12px;
    overflow: hidden;
    background: #FFFFFF;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
    transition: box-shadow 0.3s ease;
}

.kenkatsu-accordion-section:hover {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.kenkatsu-accordion-header {
    width: 100%;
    padding: 20px 24px;
    background: var(--kenkatsu-teal);
    color: var(--kenkatsu-bg-white);
    border: none;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 16px;
    font-weight: 600;
    text-align: left;
    transition: all 0.3s ease;
    position: relative;
}

.kenkatsu-accordion-header:hover {
    background: var(--kenkatsu-teal-dark);
}

.kenkatsu-accordion-header.active {
    background: var(--kenkatsu-teal);
}

.kenkatsu-accordion-header span {
    flex: 1;
    letter-spacing: 0.3px;
}

.kenkatsu-accordion-icon {
    width: 20px;
    height: 20px;
    transition: transform 0.3s ease;
    flex-shrink: 0;
    margin-left: 12px;
}

.kenkatsu-accordion-header.active .kenkatsu-accordion-icon {
    transform: rotate(180deg);
}

.kenkatsu-accordion-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s ease, padding 0.4s ease;
    background: #FFFFFF;
}

.kenkatsu-accordion-content.active {
    max-height: 2000px;
    padding: 0;
}

.kenkatsu-accordion-body {
    padding: 24px;
    color: #4A4A4A;
    line-height: 1.8;
    font-size: 15px;
}

.kenkatsu-accordion-body p {
    margin-bottom: 16px;
}

.kenkatsu-accordion-body p:last-child {
    margin-bottom: 0;
}

.kenkatsu-accordion-body ul,
.kenkatsu-accordion-body ol {
    margin: 16px 0;
    padding-left: 24px;
}

.kenkatsu-accordion-body li {
    margin-bottom: 8px;
}

.kenkatsu-accordion-body table.woocommerce-product-attributes {
    width: 100%;
    border-collapse: collapse;
}

.kenkatsu-accordion-body table.woocommerce-product-attributes th {
    text-align: left;
    padding: 12px 16px;
    background: #F8F8F8;
    font-weight: 600;
    color: #2C2C2C;
    border-bottom: 1px solid rgba(230, 220, 207, 0.3);
    width: 40%;
}

.kenkatsu-accordion-body table.woocommerce-product-attributes td {
    padding: 12px 16px;
    border-bottom: 1px solid rgba(230, 220, 207, 0.2);
    color: #4A4A4A;
}

.kenkatsu-accordion-body table.woocommerce-product-attributes tr:last-child th,
.kenkatsu-accordion-body table.woocommerce-product-attributes tr:last-child td {
    border-bottom: none;
}

/* Texto fijo debajo de la foto */
.kenkatsu-product-left-column .kenkatsu-product-slogan {
    margin: 30px 0 !important;
    padding: 0 !important;
    text-align: center !important;
}

.kenkatsu-product-left-column .kenkatsu-product-slogan p {
    font-size: 20px !important;
    line-height: 1.6 !important;
    color: #1A1A1A !important;
    font-weight: 500 !important;
    font-style: italic !important;
    margin: 0 !important;
    padding: 0 !important;
}

.kenkatsu-product-left-column .kenkatsu-product-description {
    font-family: 'Lato', sans-serif !important;
    font-size: 1.05rem !important;
    line-height: 1.7 !important;
    color: #4A4A4A !important;
    margin: 0 !important;
}

/* Galería */
.kenkatsu-product-left-column .kenkatsu-product-gallery {
    margin-top: 20px !important;
    width: 100% !important;
}

.kenkatsu-product-left-column .kenkatsu-main-image {
    width: 100% !important;
    height: auto !important;
    border-radius: 12px !important;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.08) !important;
    display: block !important;
}

.kenkatsu-product-left-column .kenkatsu-thumbnail-grid {
    display: flex !important;
    gap: 10px !important;
    margin-top: 15px !important;
    flex-wrap: wrap !important;
}

.kenkatsu-product-left-column .kenkatsu-thumbnail {
    width: 80px !important;
    height: 80px !important;
    object-fit: cover !important;
    border-radius: 8px !important;
    cursor: pointer !important;
    opacity: 0.6 !important;
    transition: opacity 0.3s ease !important;
    border: 2px solid transparent !important;
}

.kenkatsu-product-left-column .kenkatsu-thumbnail:hover,
.kenkatsu-product-left-column .kenkatsu-thumbnail.active {
    opacity: 1 !important;
    border-color: #1F5E6B !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   COLUMNA DERECHA: Calendario de Reservas
   ═══════════════════════════════════════════════════════════════════════════ */

.kenkatsu-product-right-column {
    display: flex !important;
    flex-direction: column !important;
    order: 2 !important;
    width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    align-self: start !important; /* Alinear por arriba desde móvil */
    margin-top: 0 !important; /* Sin margen superior */
    padding-top: 0 !important; /* Sin padding superior */
}

@media (min-width: 992px) {
    .kenkatsu-product-right-column {
        align-self: start !important; /* Alinear por arriba en desktop */
        /* Removido sticky y max-height para evitar scroll y que el calendario se vea completo */
        transform: scale(0.9) !important; /* Reducir toda la columna derecha un 10% */
        transform-origin: top right !important; /* Escalar desde arriba-derecha */
    }
}

/* Formulario de carrito / Calendario */
.kenkatsu-product-right-column form.cart {
    background: #FFFFFF !important;
    padding: 0 20px 20px 20px !important; /* Sin padding superior para alinear con el título */
    padding-top: 0 !important; /* Forzar sin padding superior */
    border-radius: 20px !important;
    box-shadow: 0 30px 60px rgba(31, 94, 107, 0.08) !important;
    border: 1px solid rgba(230, 220, 207, 0.6) !important;
    margin: 0 !important;
    margin-top: 0 !important; /* Sin margen superior */
    width: 100% !important;
    min-width: 100% !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 20px !important;
    /* ASEGURAR VISIBILIDAD */
    visibility: visible !important;
    opacity: 1 !important;
    box-sizing: border-box !important;
    position: relative !important;
    z-index: 1 !important;
    max-width: 100% !important;
}

/* Asegurar que todos los hijos del form.cart ocupen el 100% del ancho */
.kenkatsu-product-right-column form.cart > * {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}

/* OCULTAR ELEMENTOS DUPLICADOS en la columna derecha - Solo título, precio y descripción */
/* Ocultar título duplicado - específico para product_title entry-title */
.kenkatsu-product-right-column .summary.entry-summary h1.product_title,
.kenkatsu-product-right-column .summary.entry-summary h1.entry-title,
.kenkatsu-product-right-column .summary.entry-summary .product_title.entry-title,
.kenkatsu-product-right-column .summary.entry-summary h1.product_title.entry-title {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    opacity: 0 !important;
    line-height: 0 !important;
    font-size: 0 !important;
}

/* Ocultar precio duplicado - específico para p.price */
.kenkatsu-product-right-column .summary.entry-summary p.price,
.kenkatsu-product-right-column .summary.entry-summary .price,
.kenkatsu-product-right-column .summary.entry-summary > p.price {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    opacity: 0 !important;
    line-height: 0 !important;
    font-size: 0 !important;
}

/* Ocultar también el span dentro del precio por si acaso */
.kenkatsu-product-right-column .summary.entry-summary p.price span,
.kenkatsu-product-right-column .summary.entry-summary .price span {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    opacity: 0 !important;
}

/* Ocultar descripción duplicada - específico para woocommerce-product-details__short-description */
.kenkatsu-product-right-column .summary.entry-summary .woocommerce-product-details__short-description {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    opacity: 0 !important;
}

/* Ocultar meta duplicado */
.kenkatsu-product-right-column .summary.entry-summary .product_meta {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    opacity: 0 !important;
}

/* Asegurar que el formulario de carrito y el calendario sean visibles */
.kenkatsu-product-right-column .summary.entry-summary {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    min-width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    flex: 1 1 100% !important;
    align-items: stretch !important;
    margin-top: 0 !important; /* Sin margen superior */
    padding-top: 0 !important; /* Sin padding superior */
}

/* Forzar que todos los hijos directos del summary ocupen el 100% */
.kenkatsu-product-right-column .summary.entry-summary > * {
    width: 100% !important;
    min-width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    flex: 0 0 auto !important;
}

/* Asegurar visibilidad del calendario PluginHive */
.kenkatsu-product-right-column .summary.entry-summary form.cart,
.kenkatsu-product-right-column .summary.entry-summary .phive-book-calendar,
.kenkatsu-product-right-column .summary.entry-summary [class*="phive"],
.kenkatsu-product-right-column .summary.entry-summary [class*="ph-booking"],
.kenkatsu-product-right-column .summary.entry-summary [class*="booking"],
.kenkatsu-product-right-column .summary.entry-summary [class*="ph-calendar"] {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    height: auto !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   CALENDARIO PLUGINHIVE - ESTILOS MÍNIMOS Y VISIBLES
   ═══════════════════════════════════════════════════════════════════════════ */

/* Asegurar que TODOS los elementos del calendario sean visibles */
.kenkatsu-product-right-column .phive-book-calendar,
.kenkatsu-product-right-column .ph-calendar-container,
.kenkatsu-product-right-column .booking-wraper,
.kenkatsu-product-right-column .date-picker-wraper,
.kenkatsu-product-right-column .phive_book_calendar,
.kenkatsu-product-right-column .ph-booking-calendar,
.kenkatsu-product-right-column [class*="phive"],
.kenkatsu-product-right-column [class*="ph-booking"],
.kenkatsu-product-right-column [class*="booking-calendar"],
.kenkatsu-product-right-column [class*="ph-calendar"] {
    width: 100% !important;
    min-width: 100% !important;
    max-width: 100% !important;
    margin: 0 auto !important;
    margin-top: 0 !important; /* Sin margen superior */
    padding: 20px !important;
    padding-top: 0 !important; /* Sin padding superior para alinear con el título */
    background: #FFFFFF !important;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08) !important;
    border: 1px solid rgba(230, 220, 207, 0.6) !important;
    border-radius: 12px !important;
    /* FORZAR VISIBILIDAD */
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: relative !important;
    z-index: 1 !important;
    box-sizing: border-box !important;
}

/* El scale se aplica a toda la columna derecha (.kenkatsu-product-right-column) */
/* No aplicar scale a contenedores individuales para evitar doble escala */

/* ═══════════════════════════════════════════════════════════════════════════
   CORRECCIÓN DE ESTILOS INLINE DEL PLUGIN PLUGINHIVE
   El plugin aplica muchos estilos inline que causan problemas de layout
   ═══════════════════════════════════════════════════════════════════════════ */

/* Contenedor principal del calendario - evitar múltiples contenedores */
.kenkatsu-product-right-column .ph-calendar-container {
    display: block !important;
    position: relative !important;
    width: 100% !important;
    min-width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    border: none !important;
    box-sizing: border-box !important;
}

/* Wrapper de reservas - un solo contenedor */
.kenkatsu-product-right-column .booking-wraper {
    display: block !important;
    width: 100% !important;
    min-width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    margin-top: 0 !important; /* Sin margen superior */
    padding: 0 !important;
    padding-top: 0 !important; /* Sin padding superior */
    box-sizing: border-box !important;
    flex: 1 1 100% !important;
}

/* Forzar que todos los hijos del booking-wraper ocupen el 100% */
.kenkatsu-product-right-column .booking-wraper > * {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}

/* Wrapper del date picker */
.kenkatsu-product-right-column .date-picker-wraper {
    display: block !important;
    width: 100% !important;
    min-width: 100% !important;
    max-width: 100% !important;
    margin: 0 0 20px 0 !important;
    margin-top: 0 !important; /* Sin margen superior */
    padding: 0 !important;
    padding-top: 0 !important; /* Sin padding superior */
    box-sizing: border-box !important;
}

/* Lista de días del calendario - corregir estilos inline */
.kenkatsu-product-right-column .ph-calendar-days,
.kenkatsu-product-right-column .ph-ul-date {
    display: grid !important;
    grid-template-columns: repeat(7, 1fr) !important;
    gap: 8px !important;
    list-style: none !important;
    margin: 0 !important;
    padding: 15px !important;
    width: 100% !important;
    min-width: 100% !important;
    max-width: 100% !important;
    position: relative !important;
    text-align: center !important;
    box-sizing: border-box !important;
    background: #FFFFFF !important;
    border-radius: 12px !important;
}

/* Reducir padding del calendario en móvil */
@media (max-width: 991px) {
    .kenkatsu-product-right-column .ph-calendar-days,
    .kenkatsu-product-right-column .ph-ul-date {
        padding: 10px 8px !important; /* Menos padding en móvil */
        gap: 6px !important; /* Menos gap entre días */
    }
}

@media (max-width: 480px) {
    .kenkatsu-product-right-column .ph-calendar-days,
    .kenkatsu-product-right-column .ph-ul-date {
        padding: 8px 4px !important; /* Aún menos padding en móviles pequeños */
        gap: 4px !important;
    }
}

/* Elementos de fecha del calendario - sobrescribir estilos inline flex */
.kenkatsu-product-right-column .ph-calendar-date {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 56px !important;
    aspect-ratio: 1 / 1 !important;
    margin: 0 !important;
    padding: 8px !important;
    box-sizing: border-box !important;
    flex: 1 1 0 !important;
    /* Solo aplicar fondo blanco si NO está seleccionado */
    background: #FFFFFF !important;
    border: 1px solid rgba(230, 220, 207, 0.6) !important;
    border-radius: 12px !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
    /* ASEGURAR que los clicks funcionen */
    pointer-events: auto !important;
    user-select: none !important; /* Evitar selección de texto, pero permitir clicks */
    -webkit-user-select: none !important;
    -moz-user-select: none !important;
    -ms-user-select: none !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   CORRECCIÓN: ALTURA DE CELDAS DE HORA (Time Picker)
   Las celdas de hora no deben tener aspect-ratio 1:1 ni min-height grande
   ═══════════════════════════════════════════════════════════════════════════ */

/* Celdas de hora específicas - altura reducida (alta especificidad para sobrescribir) */
.kenkatsu-product-right-column .time-picker .ph-calendar-date,
.kenkatsu-product-right-column .time-picker-wraper .ph-calendar-date,
.kenkatsu-product-right-column #ph-calendar-time .ph-calendar-date,
.kenkatsu-product-right-column .ph-calendar-days.ph-ul-time .ph-calendar-date,
.kenkatsu-product-right-column .ph-calendar-days.ph-ul-time li.ph-calendar-date,
.kenkatsu-product-right-column .time-picker #ph-calendar-time .ph-calendar-date,
.kenkatsu-product-right-column .time-picker #ph-calendar-time li.ph-calendar-date,
.kenkatsu-product-right-column .time-picker-wraper #ph-calendar-time .ph-calendar-date,
.kenkatsu-product-right-column .time-picker-wraper #ph-calendar-time li.ph-calendar-date,
.kenkatsu-product-right-column .summary .time-picker .ph-calendar-date,
.kenkatsu-product-right-column .summary .time-picker-wraper .ph-calendar-date,
.kenkatsu-product-right-column .summary #ph-calendar-time .ph-calendar-date,
/* Selectores adicionales para máxima especificidad */
.kenkatsu-product-right-column .time-picker .ph-calendar-days .ph-calendar-date,
.kenkatsu-product-right-column .time-picker-wraper .ph-calendar-days .ph-calendar-date,
.kenkatsu-product-right-column #ph-calendar-time li.ph-calendar-date,
.kenkatsu-product-right-column .time-picker #ph-calendar-time li,
.kenkatsu-product-right-column .time-picker-wraper #ph-calendar-time li,
.kenkatsu-product-right-column .ph-calendar-days.ph-ul-time li {
    min-height: 35px !important; /* Altura reducida para horas */
    height: 35px !important; /* Altura fija pequeña */
    max-height: 40px !important; /* Altura máxima razonable */
    aspect-ratio: auto !important; /* Eliminar aspect-ratio 1:1 */
    padding: 6px 12px !important; /* Padding reducido */
    line-height: 1.2 !important;
    font-size: 13px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: auto !important; /* Permitir que el ancho se ajuste al contenido */
    flex: 0 0 auto !important; /* No crecer ni encogerse automáticamente */
    margin: 2px !important; /* Margen pequeño entre celdas */
}

/* Asegurar que los elementos hijos dentro de las celdas de hora también se ajusten */
.kenkatsu-product-right-column .time-picker .ph-calendar-date *,
.kenkatsu-product-right-column .time-picker-wraper .ph-calendar-date *,
.kenkatsu-product-right-column #ph-calendar-time .ph-calendar-date *,
.kenkatsu-product-right-column .ph-calendar-days.ph-ul-time .ph-calendar-date * {
    line-height: 1.4 !important;
    font-size: 14px !important;
}

/* Contenedor de horas - ajustar layout */
.kenkatsu-product-right-column .time-picker,
.kenkatsu-product-right-column .time-picker-wraper,
.kenkatsu-product-right-column #ph-calendar-time,
.kenkatsu-product-right-column .ph-calendar-days.ph-ul-time {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    align-items: flex-start !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   ESTILOS PARA HORARIOS (TIME SLOTS) - USANDO VARIABLES DEL SISTEMA UNIFICADO
   ═══════════════════════════════════════════════════════════════════════════ */

/* Horarios disponibles/elegibles - USANDO VARIABLES */
.kenkatsu-product-right-column .time-picker .ph-calendar-date:not(.not-available):not(.de-active):not(.booking-disabled),
.kenkatsu-product-right-column .time-picker-wraper .ph-calendar-date:not(.not-available):not(.de-active):not(.booking-disabled),
.kenkatsu-product-right-column #ph-calendar-time .ph-calendar-date:not(.not-available):not(.de-active):not(.booking-disabled),
.kenkatsu-product-right-column .ph-calendar-days.ph-ul-time .ph-calendar-date:not(.not-available):not(.de-active):not(.booking-disabled),
.kenkatsu-product-right-column .ph-calendar-days.ph-ul-time li.ph-calendar-date:not(.not-available):not(.de-active):not(.booking-disabled) {
    background: var(--kenkatsu-calendar-time-available-bg) !important;
    border: 1px solid var(--kenkatsu-calendar-time-available-border) !important;
    color: var(--kenkatsu-calendar-time-available-text) !important;
    cursor: pointer !important;
    transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94) !important;
    box-shadow: var(--kenkatsu-shadow-xs) !important;
}

/* Hover en horarios disponibles - USANDO VARIABLES */
.kenkatsu-product-right-column .time-picker .ph-calendar-date:not(.not-available):not(.de-active):not(.booking-disabled):hover,
.kenkatsu-product-right-column .time-picker-wraper .ph-calendar-date:not(.not-available):not(.de-active):not(.booking-disabled):hover,
.kenkatsu-product-right-column #ph-calendar-time .ph-calendar-date:not(.not-available):not(.de-active):not(.booking-disabled):hover,
.kenkatsu-product-right-column .ph-calendar-days.ph-ul-time .ph-calendar-date:not(.not-available):not(.de-active):not(.booking-disabled):hover,
.kenkatsu-product-right-column .ph-calendar-days.ph-ul-time li.ph-calendar-date:not(.not-available):not(.de-active):not(.booking-disabled):hover {
    background: var(--kenkatsu-calendar-time-available-hover-bg) !important;
    border-color: var(--kenkatsu-calendar-time-available-hover-bg) !important;
    color: var(--kenkatsu-calendar-time-available-hover-text) !important;
    transform: translateY(-2px) !important;
    box-shadow: var(--kenkatsu-shadow-primary-lg) !important;
}

/* Horarios seleccionados - USANDO VARIABLES */
.kenkatsu-product-right-column .time-picker .ph-calendar-date.selected,
.kenkatsu-product-right-column .time-picker .ph-calendar-date.active,
.kenkatsu-product-right-column .time-picker-wraper .ph-calendar-date.selected,
.kenkatsu-product-right-column .time-picker-wraper .ph-calendar-date.active,
.kenkatsu-product-right-column #ph-calendar-time .ph-calendar-date.selected,
.kenkatsu-product-right-column #ph-calendar-time .ph-calendar-date.active,
.kenkatsu-product-right-column .ph-calendar-days.ph-ul-time .ph-calendar-date.selected,
.kenkatsu-product-right-column .ph-calendar-days.ph-ul-time .ph-calendar-date.active,
.kenkatsu-product-right-column .ph-calendar-days.ph-ul-time li.ph-calendar-date.selected,
.kenkatsu-product-right-column .ph-calendar-days.ph-ul-time li.ph-calendar-date.active {
    background: var(--kenkatsu-calendar-time-selected-bg) !important;
    background-color: var(--kenkatsu-calendar-time-selected-bg) !important;
    border-color: var(--kenkatsu-calendar-time-selected-bg) !important;
    border: 2px solid var(--kenkatsu-calendar-time-selected-bg) !important;
    color: var(--kenkatsu-calendar-time-selected-text) !important;
    box-shadow: var(--kenkatsu-shadow-primary) !important;
    font-weight: 700 !important;
    transform: translateY(-2px) !important;
}

/* Horarios deshabilitados - USANDO VARIABLES */
.kenkatsu-product-right-column .time-picker .ph-calendar-date.not-available,
.kenkatsu-product-right-column .time-picker .ph-calendar-date.de-active,
.kenkatsu-product-right-column .time-picker .ph-calendar-date.booking-disabled,
.kenkatsu-product-right-column .time-picker-wraper .ph-calendar-date.not-available,
.kenkatsu-product-right-column .time-picker-wraper .ph-calendar-date.de-active,
.kenkatsu-product-right-column .time-picker-wraper .ph-calendar-date.booking-disabled,
.kenkatsu-product-right-column #ph-calendar-time .ph-calendar-date.not-available,
.kenkatsu-product-right-column #ph-calendar-time .ph-calendar-date.de-active,
.kenkatsu-product-right-column #ph-calendar-time .ph-calendar-date.booking-disabled,
.kenkatsu-product-right-column .ph-calendar-days.ph-ul-time .ph-calendar-date.not-available,
.kenkatsu-product-right-column .ph-calendar-days.ph-ul-time .ph-calendar-date.de-active,
.kenkatsu-product-right-column .ph-calendar-days.ph-ul-time .ph-calendar-date.booking-disabled,
.kenkatsu-product-right-column .ph-calendar-days.ph-ul-time li.ph-calendar-date.not-available,
.kenkatsu-product-right-column .ph-calendar-days.ph-ul-time li.ph-calendar-date.de-active,
.kenkatsu-product-right-column .ph-calendar-days.ph-ul-time li.ph-calendar-date.booking-disabled {
    background: var(--kenkatsu-calendar-time-disabled-bg) !important;
    border: 1px solid var(--kenkatsu-calendar-disabled-border) !important;
    color: var(--kenkatsu-calendar-time-disabled-text) !important;
    cursor: not-allowed !important;
    opacity: var(--kenkatsu-calendar-disabled-opacity) !important;
    pointer-events: none !important;
    box-shadow: none !important;
}

/* EXCLUIR días seleccionados del estilo base - USANDO VARIABLES */
.kenkatsu-product-right-column .ph-calendar-date.kenkatsu-selected-day {
    background: var(--kenkatsu-calendar-selected-bg) !important;
    background-color: var(--kenkatsu-calendar-selected-bg) !important;
}

/* Span dentro de los días del calendario - USANDO VARIABLES */
.kenkatsu-product-right-column .ph_calendar_day {
    display: inline-block !important;
    width: auto !important;
    margin: 0 auto !important;
    text-align: center !important;
    line-height: 1.2 !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    color: var(--kenkatsu-calendar-available-text) !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   ESTILOS VISUALES DEL CALENDARIO PLUGINHIVE
   ═══════════════════════════════════════════════════════════════════════════ */

/* Contenedor del mes y año */
/* Contenedor del mes y año - USANDO VARIABLES */
.kenkatsu-product-right-column .ph-calendar-month {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 20px 0 !important;
    margin-bottom: 15px !important;
    border-bottom: 1px solid var(--kenkatsu-border-secondary) !important;
}

.kenkatsu-product-right-column .ph-month {
    flex: 1 !important;
    text-align: center !important;
}

.kenkatsu-product-right-column .span-month,
.kenkatsu-product-right-column .span-year {
    font-family: 'Lora', 'Playfair Display', serif !important;
    font-size: 1.3rem !important;
    font-weight: 600 !important;
    color: var(--kenkatsu-calendar-month-text) !important;
    text-transform: capitalize !important;
}

/* Controles de navegación (prev/next) - USANDO VARIABLES */
.kenkatsu-product-right-column .ph-prev,
.kenkatsu-product-right-column .ph-next {
    width: 40px !important;
    height: 40px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: var(--kenkatsu-calendar-control-bg) !important;
    border: 1px solid var(--kenkatsu-calendar-control-border) !important;
    border-radius: 8px !important;
    cursor: pointer !important;
    font-size: 18px !important;
    color: var(--kenkatsu-calendar-control-text) !important;
    transition: all 0.3s ease !important;
}

.kenkatsu-product-right-column .ph-prev:hover,
.kenkatsu-product-right-column .ph-next:hover {
    background: var(--kenkatsu-calendar-control-hover-bg) !important;
    color: var(--kenkatsu-calendar-control-hover-text) !important;
    border-color: var(--kenkatsu-primary) !important;
    transform: translateY(-2px) !important;
    box-shadow: var(--kenkatsu-shadow-primary) !important;
}

/* Días de la semana (headers) - USANDO VARIABLES */
.kenkatsu-product-right-column .ph-calendar-weekdays {
    display: grid !important;
    grid-template-columns: repeat(7, 1fr) !important;
    gap: 8px !important;
    margin-bottom: 10px !important;
    padding: 0 15px !important;
}

.kenkatsu-product-right-column .ph-calendar-weekdays li {
    text-align: center !important;
    font-family: 'Lato', sans-serif !important;
    font-size: 0.75rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    color: var(--kenkatsu-calendar-header-text) !important;
    padding: 10px 0 !important;
}

/* Días disponibles/elegibles del calendario - USANDO VARIABLES DEL SISTEMA UNIFICADO */
.kenkatsu-product-right-column .ph-calendar-date:not(.not-available):not(.de-active):not(.booking-disabled):not([class*="disabled"]):not([class*="unavailable"]) {
    background: var(--kenkatsu-calendar-available-bg) !important;
    border: 1px solid var(--kenkatsu-calendar-available-border) !important;
    border-radius: 12px !important;
    cursor: pointer !important;
    transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94) !important;
    box-shadow: var(--kenkatsu-shadow-xs) !important;
    /* ASEGURAR que los clicks funcionen */
    pointer-events: auto !important;
    user-select: none !important;
    -webkit-user-select: none !important;
    -moz-user-select: none !important;
    -ms-user-select: none !important;
    color: var(--kenkatsu-calendar-available-text) !important;
}

.kenkatsu-product-right-column .ph-calendar-date:not(.not-available):not(.de-active):not(.booking-disabled):not([class*="disabled"]):not([class*="unavailable"]):hover {
    background: var(--kenkatsu-calendar-available-hover-bg) !important;
    border-color: var(--kenkatsu-calendar-available-hover-bg) !important;
    color: var(--kenkatsu-calendar-available-hover-text) !important;
    transform: translateY(-2px) !important;
    box-shadow: var(--kenkatsu-shadow-primary-lg) !important;
}

.kenkatsu-product-right-column .ph-calendar-date:not(.not-available):not(.de-active):not(.booking-disabled):not([class*="disabled"]):not([class*="unavailable"]):hover .ph_calendar_day {
    color: var(--kenkatsu-calendar-available-hover-text) !important;
}

/* Día seleccionado - REGLA CON MAYOR ESPECIFICIDAD - USANDO VARIABLES DEL SISTEMA UNIFICADO */
.kenkatsu-product-right-column .ph-calendar-date.selected,
.kenkatsu-product-right-column .ph-calendar-date.active,
.kenkatsu-product-right-column .ph-calendar-date.kenkatsu-selected-day,
.kenkatsu-product-right-column .ph-calendar-date.kenkatsu-selected-by-time {
    background: var(--kenkatsu-calendar-selected-bg) !important;
    background-color: var(--kenkatsu-calendar-selected-bg) !important;
    border-color: var(--kenkatsu-calendar-selected-border) !important;
    border: 2px solid var(--kenkatsu-calendar-selected-border) !important;
    color: var(--kenkatsu-calendar-selected-text) !important;
    box-shadow: var(--kenkatsu-calendar-selected-shadow) !important;
    transform: translateY(-2px) !important;
    font-weight: 700 !important;
}

/* FORZAR el color de fondo verde teal incluso si hay otros estilos - USANDO VARIABLES DEL SISTEMA UNIFICADO */
.kenkatsu-product-right-column form.cart .ph-calendar-date.kenkatsu-selected-day,
.kenkatsu-product-right-column .summary.entry-summary .ph-calendar-date.kenkatsu-selected-day,
.kenkatsu-product-right-column .ph-calendar-days .ph-calendar-date.kenkatsu-selected-day,
.kenkatsu-product-right-column .ph-calendar-days .ph-calendar-date.kenkatsu-selected-by-time {
    background: var(--kenkatsu-calendar-selected-bg) !important;
    background-color: var(--kenkatsu-calendar-selected-bg) !important;
    background-image: none !important;
    border-color: var(--kenkatsu-calendar-selected-border) !important;
}

/* Forzar el color de texto en días seleccionados - USANDO VARIABLES */
.kenkatsu-product-right-column .ph-calendar-date.kenkatsu-selected-day *,
.kenkatsu-product-right-column .ph-calendar-date.kenkatsu-selected-by-time * {
    color: var(--kenkatsu-calendar-selected-text) !important;
}

.kenkatsu-product-right-column .ph-calendar-date.selected .ph_calendar_day,
.kenkatsu-product-right-column .ph-calendar-date.active .ph_calendar_day,
.kenkatsu-product-right-column .ph-calendar-date.kenkatsu-selected-day .ph_calendar_day,
.kenkatsu-product-right-column .ph-calendar-date.kenkatsu-selected-by-time .ph_calendar_day {
    color: var(--kenkatsu-calendar-selected-text) !important;
    font-weight: 700 !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   DÍAS NO SELECCIONABLES/DESHABILITADOS - COLOR GRIS DISTINTIVO
   Usando variables del sistema unificado para máxima consistencia
   ═══════════════════════════════════════════════════════════════════════════ */

.kenkatsu-product-right-column .ph-calendar-date.de-active,
.kenkatsu-product-right-column .ph-calendar-date.booking-disabled,
.kenkatsu-product-right-column .ph-calendar-date.not-available,
.kenkatsu-product-right-column .ph-calendar-date[class*="disabled"],
.kenkatsu-product-right-column .ph-calendar-date[class*="unavailable"] {
    background: var(--kenkatsu-calendar-disabled-bg) !important; /* Gris claro - NO teal */
    border: 1px solid var(--kenkatsu-calendar-disabled-border) !important; /* Borde gris */
    cursor: not-allowed !important;
    opacity: var(--kenkatsu-calendar-disabled-opacity) !important; /* Opacidad reducida */
    pointer-events: none !important;
    box-shadow: none !important; /* Sin sombra para días deshabilitados */
}

.kenkatsu-product-right-column .ph-calendar-date.de-active .ph_calendar_day,
.kenkatsu-product-right-column .ph-calendar-date.booking-disabled .ph_calendar_day,
.kenkatsu-product-right-column .ph-calendar-date.not-available .ph_calendar_day,
.kenkatsu-product-right-column .ph-calendar-date[class*="disabled"] .ph_calendar_day,
.kenkatsu-product-right-column .ph-calendar-date[class*="unavailable"] .ph_calendar_day {
    color: var(--kenkatsu-calendar-disabled-text) !important; /* Gris medio - NO teal */
    font-weight: 400 !important; /* Peso normal para deshabilitados */
}

/* Asegurar que los días no seleccionables NO tengan el color teal en hover */
.kenkatsu-product-right-column .ph-calendar-date.de-active:hover,
.kenkatsu-product-right-column .ph-calendar-date.booking-disabled:hover,
.kenkatsu-product-right-column .ph-calendar-date.not-available:hover,
.kenkatsu-product-right-column .ph-calendar-date[class*="disabled"]:hover,
.kenkatsu-product-right-column .ph-calendar-date[class*="unavailable"]:hover {
    background: var(--kenkatsu-calendar-disabled-bg) !important; /* Mantener gris - NO teal */
    border-color: var(--kenkatsu-calendar-disabled-border) !important;
    color: var(--kenkatsu-calendar-disabled-text) !important;
    transform: none !important; /* Sin animación */
    box-shadow: none !important; /* Sin sombra en hover */
    cursor: not-allowed !important;
}

/* Día de hoy - Borde destacado - USANDO VARIABLES DEL SISTEMA UNIFICADO */
.kenkatsu-product-right-column .ph-calendar-date.today:not(.not-available):not(.de-active):not(.booking-disabled) {
    border: 2px solid var(--kenkatsu-calendar-today-border) !important;
    font-weight: 700 !important;
    box-shadow: var(--kenkatsu-shadow-primary) !important; /* Sombra sutil para destacar */
}

/* Botón de selección de fecha - USANDO VARIABLES */
.kenkatsu-product-right-column .date-picker-wraper button,
.kenkatsu-product-right-column #phive_book_date_selector {
    width: 100% !important;
    padding: 15px 20px !important;
    background: var(--kenkatsu-bg-white) !important;
    border: 2px solid var(--kenkatsu-primary) !important;
    border-radius: 12px !important;
    font-family: 'Lato', sans-serif !important;
    font-size: 1rem !important;
    font-weight: 600 !important;
    color: var(--kenkatsu-primary) !important;
    text-align: center !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
    margin-bottom: 20px !important;
}

.kenkatsu-product-right-column .date-picker-wraper button:hover,
.kenkatsu-product-right-column #phive_book_date_selector:hover {
    background: var(--kenkatsu-primary) !important;
    color: var(--kenkatsu-bg-white) !important;
    transform: translateY(-2px) !important;
    box-shadow: var(--kenkatsu-shadow-primary-lg) !important;
}

/* Texto del resumen de reserva - hacer legible y evitar que se pegue al header */
.kenkatsu-product-right-column .booking-info-wraper,
.kenkatsu-product-right-column [class*="booking-info"],
.kenkatsu-product-right-column [class*="booking-summary"],
.kenkatsu-product-right-column .from_text,
.kenkatsu-product-right-column .to_text,
.kenkatsu-product-right-column .display_time_from,
.kenkatsu-product-right-column .display_time_to,
.kenkatsu-product-right-column .end_time_display,
.kenkatsu-product-right-column [class*="ph_selected_blocks"],
.kenkatsu-product-right-column [id*="booking"],
.kenkatsu-product-right-column [id*="summary"] {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    width: 100% !important;
    padding: 25px 20px !important;
    margin: 30px 0 20px 0 !important; /* Más margen superior para separar del header/calendario */
    background: #F9F9F9 !important;
    border: 2px solid #E6DCCF !important;
    border-radius: 12px !important;
    font-family: 'Lato', sans-serif !important;
    font-size: 1rem !important;
    line-height: 1.8 !important;
    color: #1A1A1A !important;
    font-weight: 500 !important;
    text-align: left !important;
    box-sizing: border-box !important;
    position: relative !important;
    z-index: 10 !important; /* Asegurar que esté sobre otros elementos */
}

/* Texto específico dentro del resumen - USANDO VARIABLES */
.kenkatsu-product-right-column .booking-info-wraper *,
.kenkatsu-product-right-column [class*="booking-info"] *,
.kenkatsu-product-right-column [class*="booking-summary"] * {
    color: var(--kenkatsu-text-primary) !important;
    font-size: 1rem !important;
    line-height: 1.8 !important;
    font-weight: 500 !important;
}

/* Botón "DETALLE" - cambiar a "Finalizar la reserva" */
.kenkatsu-product-right-column button[class*="detail"],
.kenkatsu-product-right-column button:contains("DETALLE"),
.kenkatsu-product-right-column .ph_book_now_button:before,
.kenkatsu-product-right-column input[type="button"][value*="DETALLE"],
.kenkatsu-product-right-column input[type="button"][value*="Detalle"],
.kenkatsu-product-right-column input[type="button"][value*="detail"],
.kenkatsu-product-right-column a[class*="detail"],
.kenkatsu-product-right-column .button[class*="detail"] {
    font-family: 'Lato', sans-serif !important;
}

/* Cambiar texto del botón "DETALLE" a "Finalizar la reserva" usando JavaScript */
/* (Se añadirá en el archivo JS) */

/* Botón de reservar - USANDO VARIABLES DEL SISTEMA UNIFICADO */
.kenkatsu-product-right-column .ph_book_now_button,
.kenkatsu-product-right-column .single_add_to_cart_button {
    width: 100% !important;
    padding: 18px 30px !important;
    background: var(--kenkatsu-primary) !important;
    border: none !important;
    border-radius: 12px !important;
    font-family: 'Lato', sans-serif !important;
    font-size: 1.1rem !important;
    font-weight: 700 !important;
    color: var(--kenkatsu-bg-white) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
    margin-top: 20px !important;
    box-shadow: var(--kenkatsu-shadow-primary) !important;
}

/* Botón habilitado (sin clase disabled) - USANDO VARIABLES */
.kenkatsu-product-right-column .ph_book_now_button:not(.disabled):not([disabled]),
.kenkatsu-product-right-column .single_add_to_cart_button:not(.disabled):not([disabled]) {
    background: var(--kenkatsu-teal) !important;
    opacity: 1 !important;
    cursor: pointer !important;
    pointer-events: auto !important;
}

.kenkatsu-product-right-column .ph_book_now_button:hover:not(.disabled):not([disabled]),
.kenkatsu-product-right-column .single_add_to_cart_button:hover:not(.disabled):not([disabled]) {
    background: var(--kenkatsu-teal-dark) !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 8px 20px rgba(13, 148, 136, 0.35) !important;
}

/* Botón deshabilitado */
.kenkatsu-product-right-column .ph_book_now_button.disabled,
.kenkatsu-product-right-column .ph_book_now_button[disabled],
.kenkatsu-product-right-column .single_add_to_cart_button.disabled,
.kenkatsu-product-right-column .single_add_to_cart_button[disabled] {
    background: #94a3b8 !important;
    opacity: 0.6 !important;
    cursor: not-allowed !important;
    pointer-events: none !important;
}

/* Inputs ocultos del calendario (mes/año) */
.kenkatsu-product-right-column .callender-month,
.kenkatsu-product-right-column .callender-year {
    opacity: 0 !important;
    filter: alpha(opacity=0) !important;
    position: absolute !important;
    left: -9999px !important;
    width: 0 !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
}

/* Overlay del calendario - completamente oculto */
.kenkatsu-product-right-column .ph-calendar-overlay {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    width: 0 !important;
    height: 0 !important;
    /* Asegurar que no bloquee clicks */
    pointer-events: none !important;
    z-index: -1 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    position: absolute !important;
    left: -9999px !important;
    z-index: -1 !important;
}

/* Evitar que se creen múltiples contenedores */
.kenkatsu-product-right-column form.cart > *:not(.ph-calendar-container):not(.booking-wraper):not(.date-picker-wraper) {
    /* Permitir solo los contenedores principales */
}

/* Si el calendario está vacío, mostrar un mensaje */
.kenkatsu-product-right-column form.cart:empty::before {
    content: "Calendario de reservas";
    display: block;
    font-family: 'Lato', sans-serif;
    font-size: 1.1rem;
    color: #4A4A4A;
    text-align: center;
    padding: 40px 20px;
    background: #F9F9F9;
    border-radius: 12px;
    border: 2px dashed #E6DCCF;
}

/* ═══════════════════════════════════════════════════════════════════════════
   PRODUCTOS RELACIONADOS - AL FINAL (FUERA DEL LAYOUT 2 COLUMNAS)
   ═══════════════════════════════════════════════════════════════════════════ */

/* Productos relacionados siempre debajo del layout de 2 columnas, ancho completo */
.kenkatsu-related-section {
    width: 100% !important;
    max-width: 1400px !important;
    margin: 48px auto 0 !important;
    padding: 32px 0 24px !important;
    clear: both !important;
    grid-column: 1 / -1 !important; /* Por si el padre fuera grid, ocupar toda la fila */
    border-top: 1px solid rgba(0, 0, 0, 0.08) !important;
}

.kenkatsu-related-title {
    font-family: 'Lora', 'Playfair Display', serif !important;
    font-size: 2rem !important;
    font-weight: 500 !important;
    color: #1A1A1A !important;
    margin: 0 0 30px 0 !important;
    text-align: center !important;
}

@media (min-width: 768px) {
    .kenkatsu-related-title {
        font-size: 2.5rem !important;
        text-align: left !important;
    }
}

.kenkatsu-related-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)) !important;
    gap: 30px !important;
    width: 100% !important;
}

@media (min-width: 768px) {
    .kenkatsu-related-grid {
        grid-template-columns: repeat(4, 1fr) !important;
    }
}

.kenkatsu-related-card {
    background: #FFFFFF !important;
    border-radius: 12px !important;
    overflow: hidden !important;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08) !important;
    transition: transform 0.3s ease, box-shadow 0.3s ease !important;
    cursor: pointer !important;
}

.kenkatsu-related-card:hover {
    transform: translateY(-5px) !important;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12) !important;
}

.kenkatsu-related-image {
    width: 100% !important;
    height: 200px !important;
    object-fit: cover !important;
    display: block !important;
}

.kenkatsu-related-info {
    padding: 20px !important;
}

.kenkatsu-related-info .kenkatsu-related-title {
    font-family: 'Lato', sans-serif !important;
    font-size: 1.1rem !important;
    font-weight: 500 !important;
    color: #1A1A1A !important;
    margin: 0 0 10px 0 !important;
    text-align: left !important;
}

.kenkatsu-related-price {
    font-family: 'Lato', sans-serif !important;
    font-size: 1.3rem !important;
    color: #1F5E6B !important;
    font-weight: 400 !important;
}

/* Ocultar productos relacionados automáticos de WooCommerce si aparecen */
.single-product .related.products,
.single-product .woocommerce-related-products,
.single-product section.related,
.single-product .products.related,
body.single-product .related.products {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    opacity: 0 !important;
}

/* Ocultar sidebar en páginas de producto (puede mostrar productos relacionados) */
body.single-product #secondary,
body.single-product .woocommerce-sidebar,
body.single-product .sidebar,
body.single-product aside.widget-area,
body.single-product .widget-area {
    display: none !important;
    visibility: hidden !important;
    width: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* Asegurar que los productos relacionados manuales (kenkatsu-related-section) sean visibles y siempre abajo */
.kenkatsu-related-section {
    display: block !important;
    visibility: visible !important;
    height: auto !important;
    opacity: 1 !important;
    order: 999 !important; /* En contextos flex, ir al final */
}

/* ═══════════════════════════════════════════════════════════════════════════
   RESPONSIVE — MÓVIL
   Problema resuelto: los contenedores padre (Kadence) acumulaban ~184px de
   padding lateral en 375px de viewport → el calendario quedaba en 207px.
   Solución: reducir padding de TODOS los contenedores padre en la página
   de producto para que el calendario ocupe el máximo ancho posible.
   ═══════════════════════════════════════════════════════════════════════════ */

/* --- TABLET (hasta 991px) --- */
@media (max-width: 991px) {
    /* ▸ Contenedor principal del producto — menos padding en tablet/móvil */
    .single-product div.product {
        padding: 24px 16px 32px !important;
    }
    /* ▸ Contenedores PADRE de Kadence — reducir padding acumulado */
    .single-product .content-area {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    .single-product .content-container.site-container {
        padding-left: 8px !important;
        padding-right: 8px !important;
        max-width: 100% !important;
    }
    .single-product .site-main {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    /* Kadence aplica padding a .entry-content-wrap — necesitamos sobreescribirlo */
    body.single-product .kenkatsu-product-premium,
    body.single-product .entry-content-wrap,
    body.single-product div.product.kenkatsu-product-premium {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    /* ▸ Layout del producto */
    .kenkatsu-product-layout-two-columns {
        gap: 24px !important;
        padding: 0 !important;
    }

    .kenkatsu-product-left-column {
        width: 100% !important;
        padding: 0 !important;
    }

    .kenkatsu-product-right-column {
        width: 100% !important;
        max-width: 100% !important;
        padding: 0 !important;
        margin: 0 !important;
    }

    /* ▸ Summary y formulario */
    .kenkatsu-product-right-column .summary.entry-summary {
        padding: 0 !important;
        margin: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    .kenkatsu-product-right-column form.cart {
        padding: 16px 12px !important;
        border-radius: 16px !important;
        margin: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    /* ▸ Calendario — contenedores sin padding extra */
    .kenkatsu-product-right-column .ph-calendar-container,
    .kenkatsu-product-right-column .booking-wraper,
    .kenkatsu-product-right-column .date-picker-wraper {
        width: 100% !important;
        max-width: 100% !important;
        padding: 0 !important;
        margin: 0 0 8px 0 !important;
    }

    .kenkatsu-product-right-column .booking-wraper > *,
    .kenkatsu-product-right-column .date-picker-wraper > *,
    .kenkatsu-product-right-column .ph-calendar-container > * {
        padding-left: 0 !important;
        padding-right: 0 !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    /* ▸ Grid de días — aprovechar todo el ancho */
    .kenkatsu-product-right-column .ph-calendar-days,
    .kenkatsu-product-right-column .ph-ul-date {
        gap: 5px !important;
        padding: 8px 2px !important;
        margin: 0 !important;
    }

    .kenkatsu-product-right-column .ph-calendar-date {
        min-width: 38px !important;
        min-height: 38px !important;
        font-size: 15px !important;
        padding: 6px 2px !important;
        border-radius: 10px !important;
    }

    .kenkatsu-product-right-column .ph_calendar_day {
        font-size: 15px !important;
        line-height: 1.2 !important;
    }

    /* ▸ Cabeceras del calendario */
    .kenkatsu-product-right-column .ph-calendar-weekdays {
        gap: 5px !important;
        padding: 0 2px !important;
        margin-bottom: 6px !important;
    }
    .kenkatsu-product-right-column .ph-calendar-weekdays li {
        font-size: 0.7rem !important;
        padding: 6px 0 !important;
    }

    /* ▸ Mes y navegación */
    .kenkatsu-product-right-column .ph-calendar-month {
        padding: 12px 0 !important;
        margin-bottom: 8px !important;
    }

    /* ▸ Texto */
    .kenkatsu-product-left-column .kenkatsu-product-title {
        font-size: 2rem !important;
    }
    .kenkatsu-product-left-column .kenkatsu-product-price {
        font-size: 1.6rem !important;
    }

    /* ▸ Productos relacionados — debajo, ancho completo */
    .kenkatsu-related-grid {
        grid-template-columns: 1fr !important;
        gap: 20px !important;
    }
    .kenkatsu-related-section {
        margin-top: 32px !important;
        padding: 24px 0 16px !important;
    }
    .kenkatsu-related-card {
        width: 100% !important;
        max-width: 100% !important;
    }
}

/* --- MÓVIL (hasta 767px) --- */
@media (max-width: 767px) {
    .single-product div.product {
        padding: 20px 12px 28px !important;
    }
    .single-product .content-container.site-container {
        padding-left: 6px !important;
        padding-right: 6px !important;
    }
    body.single-product .kenkatsu-product-premium,
    body.single-product .entry-content-wrap,
    body.single-product div.product.kenkatsu-product-premium {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .kenkatsu-product-right-column form.cart {
        padding: 14px 8px !important;
        border-radius: 14px !important;
    }

    /* Botón reservar a ancho completo */
    .kenkatsu-product-right-column .single_add_to_cart_button,
    .kenkatsu-product-right-column button[type="submit"] {
        width: 100% !important;
        max-width: 100% !important;
        padding: 16px !important;
        font-size: 1rem !important;
    }

    /* Input de fecha a ancho completo */
    .kenkatsu-product-right-column .date-picker-wraper button,
    .kenkatsu-product-right-column #phive_book_date_selector,
    .kenkatsu-product-right-column .date-picker-wraper input {
        width: 100% !important;
        font-size: 0.95rem !important;
        padding: 12px !important;
    }
}

/* --- MÓVIL PEQUEÑO (hasta 480px) --- */
@media (max-width: 480px) {
    .single-product div.product {
        padding: 16px 10px 24px !important;
    }
    .single-product .content-container.site-container {
        padding-left: 4px !important;
        padding-right: 4px !important;
    }
    body.single-product .kenkatsu-product-premium,
    body.single-product .entry-content-wrap,
    body.single-product div.product.kenkatsu-product-premium {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .kenkatsu-product-layout-two-columns {
        gap: 16px !important;
    }

    .kenkatsu-product-right-column form.cart {
        padding: 12px 6px !important;
        border-radius: 12px !important;
    }

    .kenkatsu-product-right-column .ph-calendar-days,
    .kenkatsu-product-right-column .ph-ul-date {
        gap: 3px !important;
        padding: 6px 0 !important;
    }

    .kenkatsu-product-right-column .ph-calendar-date {
        min-width: 0 !important;
        min-height: 36px !important;
        font-size: 14px !important;
        padding: 5px 1px !important;
        border-radius: 8px !important;
    }

    .kenkatsu-product-right-column .ph_calendar_day {
        font-size: 14px !important;
    }

    .kenkatsu-product-right-column .ph-calendar-weekdays {
        gap: 3px !important;
        padding: 0 !important;
        margin: 0 0 4px 0 !important;
    }
    .kenkatsu-product-right-column .ph-calendar-weekdays li {
        font-size: 0.65rem !important;
        padding: 4px 0 !important;
    }

    .kenkatsu-related-section {
        margin-top: 28px !important;
        padding: 20px 0 12px !important;
    }
    .kenkatsu-related-grid {
        gap: 16px !important;
    }
}
