/**
 * Ajustes CSS para contenido dinámico
 * Convierte el layout de cards a CSS Grid fluido
 */

/* ===========================================
   LOGO — hacer clickable (object SVG bloquea clicks)
   =========================================== */

.header-logo1,
.header-logo2 {
    pointer-events: none;
}

/* ===========================================
   CARRITO — hacer clickable (object SVG bloquea clicks)
   =========================================== */

.header-carrito-compra1,
.header-carrito-compra2,
.header-carrito-compra {
    pointer-events: none;
    cursor: pointer;
}

/* ===========================================
   BREADCRUMBS — enlaces clickables
   =========================================== */

.ficha-1-row-text-bread a,
.text-bread-crumbs-row a,
.text-bread-crumbs-contenedor a {
    color: inherit;
    text-decoration: none;
}

.ficha-1-row-text-bread a:hover,
.text-bread-crumbs-row a:hover,
.text-bread-crumbs-contenedor a:hover {
    text-decoration: underline;
    color: var(--verde-vivo);
}

/* ===========================================
   PILLS SELECCIÓN — oculto temporalmente
   =========================================== */
.info-row-seleccion { display: none !important; }

/* ===========================================
   HERO — ocultar flechas y dots (solo 1 slide)
   =========================================== */
.home-hero-arrow,
.home-hero-dots { display: none !important; }

/* ===========================================
   BUSCADOR EN TIEMPO REAL
   =========================================== */

.header-buscador1 {
    position: relative;
}

.header-buscador1 .search-input {
    width: 100%;
    height: 100%;
    border: none;
    background: transparent;
    font-size: 14px;
    color: #333;
    padding-right: 40px;
    outline: none;
}

.header-buscador1 .search-input::placeholder {
    color: #999;
}

.header-buscador1 .header-graphic1 {
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    pointer-events: none;
}

.header-buscador1 .search-results {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: #fff;
    border-radius: 0 0 12px 12px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
    max-height: 400px;
    overflow-y: auto;
    z-index: 1000;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-10px);
    transition: opacity 0.2s, visibility 0.2s, transform 0.2s;
}

.header-buscador1 .search-results.visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.search-result-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    text-decoration: none;
    color: inherit;
    border-bottom: 1px solid #f0f0f0;
    transition: background 0.15s;
}

.search-result-item:last-child {
    border-bottom: none;
}

.search-result-item:hover,
.search-result-item.active {
    background: #f8f9fa;
}

.search-result-image {
    width: 50px;
    height: 50px;
    flex-shrink: 0;
    border-radius: 6px;
    overflow: hidden;
    background: #f0f0f0;
}

.search-result-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.search-result-no-image {
    width: 100%;
    height: 100%;
    background: #e0e0e0;
}

.search-result-info {
    flex: 1;
    min-width: 0;
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between;
    gap: 12px;
}

.search-result-name {
    flex: 1 1 auto;
    font-size: 14px;
    font-weight: 500;
    color: #333;
    line-height: 1.3;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.search-result-price {
    flex: 0 0 auto;
    font-size: 14px;
    font-weight: 700;
    color: var(--verde-vivo);
    white-space: nowrap;
    text-align: right;
}

.search-loading,
.search-no-results,
.search-error {
    padding: 20px;
    text-align: center;
    color: #666;
    font-size: 14px;
}

.search-more {
    padding: 12px;
    text-align: center;
    color: var(--verde-vivo);
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    border-top: 1px solid #f0f0f0;
}

.search-more:hover {
    background: #f8f9fa;
}

/* ===========================================
   CONFIGURADOR - TOGGLE PANEL
   =========================================== */

/* Resumen - animación fade */
.row-configura-resumen {
    transition: opacity 0.3s, transform 0.3s;
}

.row-configura-resumen.hiding {
    opacity: 0;
    transform: translateY(-10px);
}

.row-configura-resumen.hidden {
    display: none !important;
}

/* Panel configurador */
.configurador-panel {
    background: #fff;
    border-radius: 12px;
    padding: 24px;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
    animation: fadeIn 0.3s ease;
}

@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.configurador-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
    padding-bottom: 16px;
    border-bottom: 1px solid #eee;
}

.configurador-title {
    font-size: 1.25rem;
    font-weight: 600;
    color: #333;
    margin: 0;
}

.btn-cerrar-config {
    display: flex;
    align-items: center;
    gap: 6px;
    background: transparent;
    border: 1px solid #ddd;
    border-radius: 6px;
    padding: 8px 12px;
    cursor: pointer;
    font-size: 14px;
    color: #666;
    transition: all 0.2s;
}

.btn-cerrar-config:hover {
    background: #f5f5f5;
    border-color: #ccc;
    color: #333;
}

.configurador-body {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.configurador-info {
    color: #666;
    font-size: 15px;
    line-height: 1.5;
}

/* ===========================================
   MENÚ PRINCIPAL - LINKS
   =========================================== */

.header-menu1 a,
.header-menu2 a {
    text-decoration: none;
    color: inherit;
    transition: opacity 0.2s;
}

.header-menu1 a:hover,
.header-menu2 a:hover {
    opacity: 0.7;
}

/* Estado activo del menú */
.header-menu1 a.menu-active,
.header-menu2 a.menu-active {
    font-weight: 600;
    border-bottom: 2px solid var(--verde-vivo);
    padding-bottom: 18px;
}

/* ===========================================
   SUBCATEGORÍAS - BOTONES
   =========================================== */

/* Neutralizar container query de Figma que fuerza columna demasiado pronto */
@container info-row-categorias (width >= 500px) {
    .row-g {
        flex-direction: row !important;
        align-items: flex-start !important;
        gap: 20px;
    }
    .row-g > .boton1,
    .row-g > .boton2,
    .row-g > .boton3 {
        width: auto !important;
        flex: 1 1 0;
    }
}

/* Columna vertical solo en contenedores realmente estrechos (móvil) */
@container info-row-categorias (width < 500px) {
    .row-g {
        flex-direction: column;
        gap: 10px;
    }
    .row-g > .boton1,
    .row-g > .boton2,
    .row-g > .boton3 {
        width: 100%;
    }
}

.info-row-categorias {
    gap: 10px;
}

.info-row-categorias .row-g {
    max-width: 1020px;
}

.boton-casas-de {
    height: 58px;
    object-fit: cover;
}

a.boton-b {
    text-decoration: none;
    color: inherit;
}

a.boton-b:hover {
    opacity: 0.8;
}

/* ===========================================
   MENÚ LATERAL CATEGORÍAS
   =========================================== */

a.row-e {
    text-decoration: none;
    color: inherit;
    display: flex;
    align-items: center;
}

a.row-e:hover {
    opacity: 0.8;
}

a.card-casas-de-mader-titulo {
    text-decoration: none;
    color: inherit;
}

a.opcion-a {
    text-decoration: none;
    color: inherit;
    display: flex;
    align-items: center;
    gap: 10px;
}

a.opcion-a:hover {
    opacity: 0.8;
}

a.opcion-a.opcion-active .opcion-text1 {
    font-weight: 600;
    color: var(--verde-vivo);
}

/* ===========================================
   FICHA PRODUCTO - GALERÍA
   =========================================== */

.ficha-1-row-col-bottom {
    display: grid !important;
    grid-template-columns: repeat(4, 150px);
    gap: 16px 27px;
    flex-direction: unset !important;
    align-items: unset !important;
}

.ficha-1-row-col-bottom .ficha-1-row-img {
    margin: 0 !important;
    margin-top: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    width: 150px !important;
    max-width: none !important;
    height: 117px;
    object-fit: cover;
    border-radius: 8px;
    cursor: pointer;
}

.ficha-1-row-col-bottom .ficha-1-row-select {
    width: 150px !important;
    height: 117px;
    padding: 0 !important;
    border: 3px solid var(--verde-vivo);
    border-radius: 8px;
    overflow: hidden;
    box-sizing: border-box;
}

.ficha-1-row-col-bottom .ficha-1-row-select img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Thumbnail activo (borde verde, sin wrapper) */
.ficha-1-row-col-bottom .gallery-thumb-active {
    outline: 3px solid var(--verde-vivo);
    outline-offset: -3px;
    border-radius: 8px;
}

.ficha-1-row-col-bottom img:hover {
    opacity: 0.8;
}

/* ── Carousel track (3 slides: prev | current | next) ── */
.gallery-track {
    display: flex;
    width: 100%;
    transform: translateX(-100%);
    touch-action: pan-y;
    user-select: none;
    -webkit-user-select: none;
    cursor: grab;
}
.gallery-track:active {
    cursor: grabbing;
}
.gallery-track.gallery-snapping {
    transition: transform 0.35s cubic-bezier(0.25, 0.1, 0.25, 1);
}
.gallery-slide {
    flex: 0 0 100%;
    width: 100%;
    object-fit: contain;
    object-position: center;
    aspect-ratio: 3 / 2;
    -webkit-user-drag: none;
}

/* ── Flechas de navegación sobre imagen principal ── */
.gallery-main-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 3;
    width: 40px;
    height: 40px;
    border: none;
    border-radius: 50%;
    background: rgba(255,255,255,0.85);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--gris-txt);
    box-shadow: 0 2px 8px rgba(0,0,0,0.15);
    transition: background 0.2s, box-shadow 0.2s;
}
.gallery-main-arrow:hover {
    background: #fff;
    box-shadow: 0 2px 12px rgba(0,0,0,0.25);
}
.gallery-main-prev { left: 12px; }
.gallery-main-next { right: 12px; }

@media (max-width: 768px) {
    .ficha-1-row-col-bottom {
        grid-template-columns: repeat(3, 1fr);
        gap: 10px;
    }

    .ficha-1-row-col-bottom .ficha-1-row-img,
    .ficha-1-row-col-bottom .ficha-1-row-select {
        width: 100% !important;
        height: auto;
        aspect-ratio: 150/117;
    }

    /* Flechas más pequeñas en móvil (swipe es el método principal) */
    .gallery-main-arrow {
        width: 32px;
        height: 32px;
    }
    .gallery-main-prev { left: 8px; }
    .gallery-main-next { right: 8px; }
}

/* ===========================================
   BREADCRUMBS - ALINEACIÓN CON LAYOUT
   =========================================== */

.info-row > .text-bread-crumbs-row {
    width: 100%;
    max-width: 1505px;
    margin: 0 0 30px 0 !important;
    padding-left: 45px;
    box-sizing: border-box;
    text-align: left;
    align-self: center;
}

/* Quitar estilo por defecto de header-text1 (ahora es dinámico) */
.header-text1 {
    font-weight: inherit;
    border-bottom: none;
}

/* ===========================================
   GRID DE PRODUCTOS DESTACADOS
   =========================================== */

/* Contenedor: Grid de 3 columnas */
.row-casa-prefabricadas-casas {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    flex-direction: unset !important;
    align-items: stretch !important;
    margin: 0 auto !important;
    max-width: 1218px;
    justify-content: center;
}

/* Cards: Resetear posicionamiento manual */
.row-casa-prefabricadas-casas .card-c,
.row-casa-prefabricadas-casas .card-c.card10,
.row-casa-prefabricadas-casas .card-c.card11,
.row-casa-prefabricadas-casas .card-c.card12,
.row-casa-prefabricadas-casas .card-c.card13,
.row-casa-prefabricadas-casas .card-c.card14,
.row-casa-prefabricadas-casas .card-c.card15 {
    margin: 0 !important;
    margin-top: 0 !important;
    margin-left: 0 !important;
    width: 100% !important;
    max-width: none !important;
    height: 100%;
    display: flex;
    flex-direction: column;
}

/* Imagen de la card */
.row-casa-prefabricadas-casas .card-c .card-img3 {
    position: relative;
    width: 100%;
    aspect-ratio: 4/3;
    overflow: hidden;
}

.row-casa-prefabricadas-casas .card-c .card-img3 img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Contenido de texto: ocupa espacio restante */
.row-casa-prefabricadas-casas .card-c .card-txt3 {
    flex: 1;
    display: flex;
    flex-direction: column;
    padding: 16px;
}

/* Título del producto - máximo 2 líneas */
.row-casa-prefabricadas-casas .card-c .text-casas-de-madera-a {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    min-height: 48px;
    line-height: 1.4;
}

/* Subtítulo - 1 línea */
.row-casa-prefabricadas-casas .card-c .card-text6 {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Descripción - altura fija */
.row-casa-prefabricadas-casas .card-c .card-descripcion3 {
    flex: 1;
    min-height: 120px;
}

/* Descripción texto - máximo 4 líneas */
.row-casa-prefabricadas-casas .card-c .card-text-casas-de-madera4 {
    display: -webkit-box;
    -webkit-line-clamp: 4;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Precio siempre al fondo */
.row-casa-prefabricadas-casas .card-c .card-precio3 {
    margin-top: auto;
    padding-top: 12px;
}

/* Botón */
.row-casa-prefabricadas-casas .card-c .card-btn3 {
    margin-top: 12px;
    width: 100%;
    text-align: center;
    text-decoration: none;
    display: block;
}

/* ===========================================
   RESPONSIVE
   =========================================== */

/* Tablet: 2 columnas */
@media (max-width: 1023px) {
    .row-casa-prefabricadas-casas {
        grid-template-columns: repeat(2, 1fr);
        max-width: none;
    }
}

/* Móvil: 1 columna */
@media (max-width: 767px) {
    .row-casa-prefabricadas-casas {
        grid-template-columns: 1fr;
        max-width: none;
        gap: 16px;
    }
}

/* ===========================================
   GRID DE PRODUCTOS - PÁGINA CATEGORÍA
   =========================================== */

/* Contenedor de productos en categoría: Grid de 3 columnas */
.casa-prefabricadas .casa-prefabricadas-casas,
.casa-prefabricadas-casas {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 24px !important;
    flex-direction: unset !important;
    align-items: stretch !important;
    margin-top: 0 !important;
}

/* Cards categoría: Resetear posicionamiento manual */
.casa-prefabricadas .casa-prefabricadas-casas .card-b,
.casa-prefabricadas-casas .card-b,
.card-b.card4,
.card-b.card5,
.card-b.card6,
.card-b.card7,
.card-b.card8,
.card-b.card9,
.card-b {
    margin: 0 !important;
    margin-top: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    width: 100% !important;
    max-width: none !important;
    height: 100%;
    display: flex !important;
    flex-direction: column !important;
}

/* Imagen de la card categoría */
.casa-prefabricadas-casas .card-b .card-img2 {
    position: relative;
    width: 100%;
    aspect-ratio: 4/3;
    overflow: hidden;
}

.casa-prefabricadas-casas .card-b .card-img2 img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Contenido de texto categoría */
.casa-prefabricadas-casas .card-b .card-txt2 {
    flex: 1;
    display: flex;
    flex-direction: column;
    padding: 16px;
}

/* Título del producto categoría - máximo 2 líneas */
.casa-prefabricadas-casas .card-b .text-casas-de-madera-a {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    min-height: 48px;
    line-height: 1.4;
}

/* Descripción categoría - altura fija */
.casa-prefabricadas-casas .card-b .card-descripcion2 {
    flex: 1;
    min-height: 100px;
}

/* Descripción texto categoría - máximo 3 líneas */
.casa-prefabricadas-casas .card-b .text-casas-de-madera-b {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Precio siempre al fondo categoría */
.casa-prefabricadas-casas .card-b .card-precio2 {
    margin-top: auto;
    padding-top: 12px;
}

/* Botón categoría */
.casa-prefabricadas-casas .card-b .card-btn2 {
    margin-top: 12px;
    width: 100%;
    text-align: center;
    text-decoration: none;
    display: block;
}

/* ===========================================
   RESPONSIVE CATEGORÍA
   =========================================== */

@media (max-width: 1200px) {
    .casa-prefabricadas-casas {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    .casa-prefabricadas-casas {
        grid-template-columns: 1fr;
        gap: 16px;
    }
}

/* ===========================================
   CARRUSEL DE REVIEWS
   =========================================== */

.info-row-reviews1 {
    display: flex !important;
    align-items: center;
    gap: 16px;
    position: relative;
}

.info-row-reviews2 {
    display: flex !important;
    flex-direction: row !important;
    gap: 20px;
    overflow-x: auto;
    scroll-behavior: smooth;
    scrollbar-width: none; /* Firefox */
    -ms-overflow-style: none; /* IE/Edge */
    flex: 1;
    padding: 10px 0;
}

.info-row-reviews2::-webkit-scrollbar {
    display: none; /* Chrome/Safari */
}

.info-row-reviews2 .card-review {
    flex: 0 0 300px;
    min-width: 300px;
}

/* Botones de navegación */
.reviews-nav {
    background: none;
    border: none;
    cursor: pointer;
    padding: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: opacity 0.2s, transform 0.2s;
    flex-shrink: 0;
}

.reviews-nav:hover {
    opacity: 0.7;
    transform: scale(1.1);
}

.reviews-nav:disabled {
    opacity: 0.3;
    cursor: not-allowed;
    transform: none;
}

.reviews-nav object {
    pointer-events: none;
}

/* Rotar chevron derecho 180° */
.reviews-nav-right object {
    transform: rotate(180deg);
}

/* Responsive */
@media (max-width: 768px) {
    .info-row-reviews2 .card-review {
        flex: 0 0 260px;
        min-width: 260px;
    }

    .reviews-nav {
        padding: 5px;
    }
}

/* ===========================================
   MAS INFO - SECCIÓN DESCRIPCIÓN PRODUCTO
   =========================================== */

/* Contenedor group4 - auto ajuste de altura */
.group4 {
    min-height: auto !important;
    height: auto !important;
}

.group4 .row-info {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
}

/* Título "Más información" - margen inferior */
.column-c.titulo3 {
    margin-bottom: 40px !important;
}

/* Sección descarga ficha técnica */
.row-descarga-ficha {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
    margin: 40px 0;
}

.row-descarga-ficha .row-info-subtitle-descarga-nuestra {
    margin: 0 !important;
}

.row-descarga-ficha .btn-descarga-pdf {
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: 10px;
}

/* Contenedor principal: dos columnas alineadas arriba */
.row-info-contenedor2 {
    display: flex !important;
    align-items: stretch !important;
    gap: 40px;
}

.row-info-contenedor2 .izq-b,
.row-info-contenedor2 .row-info-derch {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 24px;
}

/* Forzar que el primer elemento de cada columna esté arriba */
.row-info-contenedor2 .izq-b > .column-d:first-child,
.row-info-contenedor2 .row-info-derch > .column-d:first-child {
    margin-top: 0 !important;
}

/* Resetear márgenes negativos del CSS original */
.row-info-contenedor2 .izq-b.izq2 {
    margin-top: 0 !important;
}

.row-info-contenedor2 .row-info-derch {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

@media (max-width: 900px) {
    .row-info-contenedor2 {
        flex-direction: column !important;
        gap: 24px;
    }

    .row-info-contenedor2 .izq-b,
    .row-info-contenedor2 .row-info-derch {
        width: 100%;
    }
}

/* ===========================================
   CARD FIJO - POPUP FLOTANTE
   =========================================== */

/* Oculto por defecto, solo posicionamiento fixed */
.card-fijo2 {
    position: fixed !important;
    top: auto !important;
    bottom: 20px !important;
    right: 20px !important;
    left: auto !important;
    z-index: 1000 !important;
    opacity: 0;
    visibility: hidden;
    transform: translateY(20px);
    transition: opacity 0.3s, visibility 0.3s, transform 0.3s;
}

.card-fijo2.visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

/* Contact-only sticky bar (home/category) */
.card-fijo2--contact-only {
    right: 20px !important;
    left: auto !important;
    background: var(--gris-claro, #f8f8f8) !important;
    border-radius: 8px !important;
    padding: 16px 20px !important;
    box-shadow: 0px 2px 15px 0px rgba(0, 0, 0, 0.08) !important;
}
.card-fijo2--contact-only .contacto.contacto3 {
    gap: 24px !important;
}

/* ===========================================
   HOME HERO SLIDER
   =========================================== */

/* --- Hero slide --- */
.home-hero {
    width: 100%;
    margin-top: 0;
}

.home-hero-slide {
    position: relative;
    width: 100%;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    gap: 113px;
    padding: 168px 0 50px;
}

.home-hero-slide > .home-hero-video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
    z-index: 0;
}

/* --- Contenedor principal: flechas + contenido --- */
.home-hero-contenedor {
    position: relative;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 20px;
    z-index: 1;
}

/* --- Bloque de texto (izquierda) --- */
.home-hero-txt {
    backdrop-filter: blur(5px);
    -webkit-backdrop-filter: blur(5px);
    background: rgba(0, 0, 0, 0.2);
    display: flex;
    flex-direction: column;
    gap: 14px;
    align-items: flex-start;
    padding: 20px;
    flex: 0 1 auto;
    max-width: 640px;
}

.home-hero-category {
    font-family: 'Raleway', sans-serif;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.2;
    color: var(--verde-vivo, #65a400);
    text-transform: uppercase;
}

.home-hero-title-wrap {
    border-left: 2px solid #fff;
    padding-left: 10px;
}

.home-hero-title {
    font-family: 'Raleway', sans-serif;
    font-size: clamp(28px, 4vw, 50px);
    font-weight: 700;
    line-height: 1.2;
    color: #fff;
}

.home-hero-subtitle {
    font-family: 'Raleway', sans-serif;
    font-size: clamp(14px, 1.3vw, 18px);
    font-weight: 400;
    line-height: 1.2;
    color: #fff;
    padding-left: 10px;
}

/* --- Bloque de precio (derecha) --- */
.home-hero-price-box {
    backdrop-filter: blur(5px);
    -webkit-backdrop-filter: blur(5px);
    background: rgba(0, 0, 0, 0.5);
    display: flex;
    flex-direction: column;
    gap: 14px;
    align-items: stretch;
    padding: 8px;
    width: 192px;
    flex-shrink: 0;
    text-align: center;
}

.home-hero-price-label {
    font-family: 'Raleway', sans-serif;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.2;
    color: #fff;
    text-transform: uppercase;
}

.home-hero-price-current {
    font-family: 'Raleway', sans-serif;
    font-size: 32px;
    font-weight: 700;
    line-height: 1.2;
    color: #fff;
}

.home-hero-price-old {
    font-family: 'Raleway', sans-serif;
    font-size: 32px;
    font-weight: 400;
    line-height: 1.2;
    color: #fff;
    text-decoration: line-through;
    opacity: 0.5;
}

.home-hero-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 44px;
    background: var(--verde-vivo, #65a400);
    color: #fff;
    font-family: 'Raleway', sans-serif;
    font-size: 14px;
    font-weight: 400;
    text-transform: uppercase;
    text-decoration: none;
    transition: filter 0.2s;
}

.home-hero-btn:hover {
    filter: brightness(1.1);
}

/* --- Flechas de navegación --- */
.home-hero-arrow {
    background: rgba(255, 255, 255, 0.15);
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-radius: 50%;
    width: 57px;
    height: 59px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    flex-shrink: 0;
    transition: background 0.2s;
    z-index: 2;
}

.home-hero-arrow:hover {
    background: rgba(255, 255, 255, 0.3);
}

/* --- Dots selector --- */
.home-hero-dots {
    display: flex;
    gap: 12px;
    z-index: 2;
}

.home-hero-dot {
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.4);
    cursor: pointer;
    transition: background 0.2s;
}

.home-hero-dot--active {
    background: #fff;
}

/* --- Hero responsive --- */
@media (max-width: 1024px) {
    .home-hero-slide {
        padding: 80px 0 40px;
    }
    .home-hero-price-box {
        width: 160px;
    }
    .home-hero-price-current,
    .home-hero-price-old {
        font-size: 24px;
    }
}

@media (max-width: 767px) {
    .home-hero-slide {
        min-height: 400px;
        padding: 60px 0 30px;
        gap: 30px;
    }
    .home-hero-contenedor {
        flex-wrap: wrap;
        justify-content: center;
        gap: 16px;
        padding: 0 16px;
    }
    .home-hero-arrow {
        width: 40px;
        height: 40px;
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
    }
    .home-hero-arrow--prev { left: 8px; }
    .home-hero-arrow--next { right: 8px; }
    .home-hero-txt {
        max-width: 100%;
        padding: 16px;
    }
    .home-hero-title {
        font-size: 24px;
    }
    .home-hero-price-box {
        width: 100%;
        max-width: 280px;
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: center;
        gap: 8px;
        padding: 12px;
    }
    .home-hero-price-label {
        width: 100%;
    }
    .home-hero-price-current,
    .home-hero-price-old {
        font-size: 20px;
    }
    .home-hero-btn {
        width: 100%;
        height: 40px;
    }
}

/* ===========================================
   FAQ DETAILS ELEMENTS
   =========================================== */

.faq-details {
    border-bottom: 1px solid #e5e7eb;
}

.faq-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 19px 0 20px 0;
    cursor: pointer;
    list-style: none;
    gap: 12px;
}

.faq-summary::-webkit-details-marker {
    display: none;
}

.faq-summary::marker {
    display: none;
    content: '';
}

.faq-summary-text {
    flex-grow: 1;
    text-align: left;
    font-family: 'Raleway', sans-serif;
    font-weight: 500;
    font-size: 16px;
    color: var(--gris-txt, #4b5563);
}

.faq-plus {
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    transition: transform 0.2s;
    color: var(--gris-txt, #4b5563);
}

.faq-details[open] .faq-plus {
    transform: rotate(45deg);
}

.faq-content {
    padding: 0 0 20px 0;
    font-weight: 400;
    font-size: 14px;
    line-height: 1.6;
    color: var(--gris-txt, #4b5563);
}

.faq-content p {
    font-size: 14px;
    font-weight: 400;
    line-height: 1.6;
    color: var(--gris-txt, #4b5563);
    margin-bottom: 8px;
}

.faq-content p:last-child {
    margin-bottom: 0;
}

/* ===========================================
   FOOTER LAYOUT — Counter Figma container queries
   Figma queries stack columns at < 1383px container width
   (triggers at any viewport < ~1536px). Override to keep
   row layout on desktop, only stack on mobile.
   =========================================== */

@container footer-container1 (width >= 700px) {
    .menu-footer {
        flex-direction: row !important;
        flex-wrap: wrap;
        gap: 24px;
    }
    .menu-footer > .menu-footer-col,
    .menu-footer > .col2,
    .menu-footer > .col3,
    .menu-footer > .col4 {
        width: auto;
        flex: 1 1 0;
        min-width: 150px;
    }
}

@container footer-container4 (width >= 700px) {
    .footer-menu2 {
        flex-direction: row !important;
        flex-wrap: wrap;
        gap: 24px;
    }
    .footer-menu2 > .footer-col2,
    .footer-menu2 > .col8,
    .footer-menu2 > .col9,
    .footer-menu2 > .col10 {
        width: auto;
        flex: 1 1 0;
        min-width: 150px;
    }
}

/* subcategoria.html uses footer-container6 for its bottom section */
@container footer-container6 (width >= 700px) {
    .footer-menu3 {
        flex-direction: row !important;
        flex-wrap: wrap;
        gap: 24px;
    }
    .footer-menu3 > .footer-col3,
    .footer-menu3 > .col11,
    .footer-menu3 > .col12,
    .footer-menu3 > .col13 {
        width: auto;
        flex: 1 1 0;
        min-width: 150px;
    }
}

/* ===========================================
   FOOTER LINK STYLES
   =========================================== */

.col-c a, .col-d a {
    text-decoration: none;
    color: inherit;
    display: block;
}

.col-c a:hover, .col-d a:hover {
    text-decoration: underline;
    color: var(--verde-vivo, #65a400);
}

/* ===========================================
   CONFIGURA TU PRODUCTO - Redesign
   =========================================== */

.row-configura-resumen {
    background: var(--new-grand-2, #f8fbf5);
    border: none;
    border-radius: 8px;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 30px;
    padding: 30px 60px 20px;
    margin: 0;
}

.row-configura-titulo-principal {
    font-family: 'Raleway', sans-serif;
    font-size: clamp(28px, 3vw, 38px);
    font-weight: 700;
    color: #000;
    text-align: center;
    line-height: 1.2;
}

.row-configura-subtitulo {
    font-size: 16px;
    color: var(--gris-txt, #4b5563);
    text-align: center;
}

.row-configura-icons-grid {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    background: #fff;
    border-radius: 8px;
    padding: 20px;
    width: 100%;
}

.row-configura-icon-item {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 18px;
    padding: 8px 10px;
    cursor: pointer;
    border-radius: 8px;
    transition: background-color 0.2s;
}
.row-configura-icon-item:hover {
    background-color: #f3f4f6;
}

.row-configura-icon-img {
    width: 40px;
    height: 56px;
    object-fit: contain;
}

.row-configura-icon-label {
    font-family: 'Raleway', sans-serif;
    font-weight: 700;
    font-size: 16px;
    color: var(--gris-negro, #141618);
    text-align: center;
    min-height: 64px;
    line-height: 1.5;
}

.row-configura-icon-divider {
    width: 1px;
    align-self: stretch;
    background: var(--gris-fondo, #f0f0f0);
}

.row-configura-icon-circle { display: none; }

@media (max-width: 768px) {
    .row-configura-resumen {
        padding: 20px 16px 16px;
    }
    .row-configura-icons-grid {
        flex-wrap: wrap;
        gap: 16px;
    }
    .row-configura-icon-item {
        min-width: calc(33% - 16px);
    }
    .row-configura-icon-divider {
        display: none;
    }
}

/* ═══════════════════════════════════════════════════════════
   CONFIGURADOR PANEL — Acordeones + Resumen Sticky
   ═══════════════════════════════════════════════════════════ */

/* Layout dos columnas */
.configurador-panel {
    transition: opacity 0.3s, transform 0.3s;
}
.configurador-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 24px;
}
.configurador-title {
    font-family: 'Raleway', sans-serif;
    font-weight: 700;
    font-size: 28px;
    color: #141618;
}
.btn-cerrar-config {
    display: flex;
    align-items: center;
    gap: 8px;
    background: none;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    padding: 8px 16px;
    cursor: pointer;
    font-family: 'Raleway', sans-serif;
    font-size: 14px;
    color: #4b5563;
    transition: border-color 0.2s;
}
.btn-cerrar-config:hover {
    border-color: #4b5563;
}
.configurador-layout {
    display: flex;
    gap: 40px;
    align-items: flex-start;
}
.configurador-accordions {
    flex: 1 1 660px;
    max-width: 700px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.configurador-summary {
    flex: 1 0 280px;
    position: sticky;
    top: 20px;
    align-self: flex-start;
    max-height: calc(100vh - 40px);
    overflow-y: auto;
}

/* ── Secciones acordeón ── */
.cfg-section {
    border: 1px solid #f0f0f0;
    border-radius: 8px;
    overflow: hidden;
}
.cfg-section-header {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 20px;
    cursor: pointer;
    user-select: none;
    transition: background-color 0.2s;
}
.cfg-section-header:hover {
    background-color: #fafafa;
}
.cfg-section-icon {
    width: 30px;
    height: 46px;
    flex-shrink: 0;
    object-fit: contain;
}
.cfg-section-header-text {
    flex: 1;
    min-width: 0;
}
.cfg-section-title {
    font-family: 'Raleway', sans-serif;
    font-weight: 700;
    font-size: 20px;
    color: #141618;
    margin: 0;
}
.cfg-section-subtitle {
    font-family: 'Inter', sans-serif;
    font-size: 13px;
    color: #6b7280;
    margin: 4px 0 0;
}
.cfg-section-arrow {
    flex-shrink: 0;
    transition: transform 0.3s;
}
.cfg-section--open .cfg-section-arrow {
    transform: rotate(180deg);
}

/* Body expandible */
.cfg-section-body {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s ease;
}
.cfg-section--open .cfg-section-body {
    max-height: 2000px;
}
.cfg-section-body-inner {
    padding: 0 20px 20px;
}

/* ── Opciones radio ── */
.cfg-options-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 12px;
}
.cfg-option {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 12px;
    border-radius: 6px;
    cursor: pointer;
    transition: background-color 0.15s;
}
.cfg-option:hover {
    background-color: #f9fafb;
}
.cfg-option-radio {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    border: 2px solid #d1d5db;
    flex-shrink: 0;
    position: relative;
    transition: border-color 0.2s;
}
.cfg-option--selected .cfg-option-radio {
    border-color: var(--verde-vivo, #65a400);
}
.cfg-option--selected .cfg-option-radio::after {
    content: '';
    position: absolute;
    top: 3px;
    left: 3px;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--verde-vivo, #65a400);
}
/* Checkbox for multi-select (Extras) */
.cfg-option-checkbox {
    width: 20px;
    height: 20px;
    border-radius: 4px;
    border: 2px solid #d1d5db;
    flex-shrink: 0;
    position: relative;
    transition: border-color 0.2s, background-color 0.2s;
}
.cfg-option--selected .cfg-option-checkbox {
    border-color: var(--verde-vivo, #65a400);
    background-color: var(--verde-vivo, #65a400);
}
.cfg-option--selected .cfg-option-checkbox::after {
    content: '';
    position: absolute;
    top: 2px;
    left: 6px;
    width: 5px;
    height: 10px;
    border: solid #fff;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}
.cfg-option--multi {
    cursor: pointer;
}
/* Multi-select summary: stacked values */
.cfg-summary-item--multi .cfg-summary-item-left {
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.cfg-summary-item--multi .cfg-summary-item-value {
    font-size: 13px;
    line-height: 1.4;
}
.cfg-summary-item-subprice {
    font-family: 'Inter', sans-serif;
    font-size: 12px;
    color: var(--gris-txt, #4b5563);
    font-weight: 500;
}
.cfg-option-name {
    flex: 1;
    font-family: 'Raleway', sans-serif;
    font-weight: 600;
    font-size: 15px;
    color: #374151;
}
.cfg-option-price {
    font-family: 'Inter', sans-serif;
    font-size: 14px;
    font-weight: 600;
    white-space: nowrap;
}
.cfg-option-price.positive {
    color: var(--verde-vivo, #65a400);
}
.cfg-option-price.negative {
    color: #dc2626;
}
.cfg-option-price.included {
    color: var(--verde-vivo, #65a400);
    font-style: italic;
}
/* Locked defaults — green border, no check, not interactive */
.cfg-color-swatch--locked {
    border-color: var(--verde-vivo, #65a400);
    background-color: #f0fdf4;
    cursor: default;
}
.cfg-color-swatch--locked .cfg-color-swatch-inner {
    border-color: var(--verde-vivo, #65a400);
}
.cfg-option--locked .cfg-option-checkbox {
    border-color: var(--verde-vivo, #65a400);
    background-color: var(--verde-vivo, #65a400);
    cursor: default;
}

/* ── Grid de colores / swatches ── */
.cfg-color-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: 12px;
    margin-top: 8px;
}
.cfg-color-swatch {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    cursor: pointer;
    padding: 8px;
    border-radius: 8px;
    border: 2px solid transparent;
    transition: border-color 0.2s, background-color 0.2s;
}
.cfg-color-swatch:hover {
    background-color: #f9fafb;
}
.cfg-color-swatch--selected {
    border-color: var(--verde-vivo, #65a400);
    background-color: #f0fdf4;
}
.cfg-color-swatch-inner {
    width: 100px;
    height: 100px;
    border-radius: 8px;
    border: 2px solid transparent;
    background-size: cover;
    background-position: center;
    transition: border-color 0.2s, box-shadow 0.2s;
    position: relative;
}
.cfg-color-swatch:hover .cfg-color-swatch-inner {
    border-color: #d1d5db;
}
.cfg-color-swatch--selected .cfg-color-swatch-inner {
    border-color: var(--verde-vivo, #65a400);
}
.cfg-color-swatch--selected .cfg-color-swatch-inner::after {
    content: '✓';
    position: absolute;
    top: 4px;
    right: 4px;
    left: auto;
    transform: none;
    color: white;
    font-size: 14px;
    font-weight: 700;
    background: var(--verde-vivo, #65a400);
    width: 22px;
    height: 22px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    text-shadow: none;
    box-shadow: 0 1px 3px rgba(0,0,0,0.2);
}
.cfg-color-swatch-label {
    font-family: 'Inter', sans-serif;
    font-size: 12px;
    color: #374151;
    text-align: center;
    line-height: 1.3;
    word-break: break-word;
}
.cfg-color-swatch-price {
    font-family: 'Inter', sans-serif;
    font-size: 12px;
    font-weight: 600;
    text-align: center;
    line-height: 1.2;
}
.cfg-color-swatch-price.positive {
    color: var(--verde-vivo, #65a400);
}
.cfg-color-swatch-price.negative {
    color: var(--rojo, #cb0043);
}
.cfg-swatch-tooltip {
    background: #1f2937;
    color: #fff;
    font-family: 'Inter', sans-serif;
    font-size: 12px;
    line-height: 1.4;
    padding: 6px 12px;
    border-radius: 6px;
    box-shadow: 0 4px 12px rgba(0,0,0,.15);
    max-width: 260px;
    white-space: normal;
}

/* ── Resumen sticky ── */
.configurador-summary-inner {
    border: 1px solid #f0f0f0;
    border-radius: 8px;
    padding: 24px;
    background: #fff;
}
.configurador-summary-title {
    font-family: 'Raleway', sans-serif;
    font-weight: 700;
    font-size: 22px;
    color: #141618;
    padding-bottom: 16px;
    border-bottom: 1px solid #f0f0f0;
    margin: 0 0 16px;
}
.cfg-summary-item {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    padding: 10px 0;
    border-bottom: 1px solid #f9fafb;
    gap: 12px;
}
.cfg-summary-item-left {
    display: flex;
    flex-direction: column;
    gap: 2px;
    flex: 1;
    min-width: 0;
}
.cfg-summary-item-group {
    font-family: 'Raleway', sans-serif;
    font-weight: 700;
    font-size: 13px;
    color: #141618;
}
.cfg-summary-item-value {
    font-family: 'Inter', sans-serif;
    font-size: 12px;
    color: #6b7280;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.cfg-summary-item-right {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 2px;
    flex-shrink: 1;
    max-width: 50%;
    text-align: right;
    word-break: break-word;
}
.cfg-summary-item-price {
    font-family: 'Inter', sans-serif;
    font-weight: 600;
    font-size: 14px;
    color: #374151;
}
.cfg-summary-item-modify {
    font-family: 'Raleway', sans-serif;
    font-weight: 700;
    font-size: 10px;
    color: var(--verde-vivo, #65a400);
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.cfg-summary-item-modify:hover {
    text-decoration: underline;
}

/* Total */
.configurador-summary-total {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px 0 12px;
    margin-top: 8px;
    border-top: 2px solid #f0f0f0;
}
.configurador-summary-total span:first-child {
    font-family: 'Raleway', sans-serif;
    font-weight: 700;
    font-size: 18px;
    color: #141618;
}
.configurador-summary-total-price {
    font-family: 'Raleway', sans-serif;
    font-weight: 700;
    font-size: 22px;
    color: var(--verde-vivo, #65a400);
}

/* Botones */
.configurador-summary-buttons {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 16px;
}
.configurador-summary-buttons .btn-a,
.configurador-summary-buttons .btn-b {
    width: 100%;
    text-align: center;
    text-transform: uppercase;
}

/* ── Responsive ── */
@media (max-width: 1024px) {
    .configurador-layout {
        flex-direction: column;
    }
    .configurador-accordions {
        max-width: 100%;
    }
    .configurador-summary {
        flex: 1;
        position: static;
        width: 100%;
    }
}
@media (max-width: 600px) {
    .configurador-title {
        font-size: 22px;
    }
    .cfg-section-title {
        font-size: 17px;
    }
    .cfg-color-grid {
        grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
        gap: 8px;
    }
    .cfg-color-swatch-inner {
        width: 80px;
        height: 80px;
    }
    .cfg-color-swatch {
        padding: 6px;
    }
    .configurador-summary-inner {
        padding: 16px;
    }
}

/* ===========================================
   BOTON PERSONALIZA TU CASA
   =========================================== */

.btn-personaliza {
    background-color: var(--verde-vivo, #65a400) !important;
    color: #fff !important;
    text-transform: uppercase;
    font-weight: 700;
    font-size: 14px;
    letter-spacing: 0.3px;
    padding: 10px 24px;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    transition: filter 0.2s;
    width: 100%;
    text-align: center;
}
.btn-personaliza:hover {
    filter: brightness(1.1);
}

/* ===========================================
   PRESUPUESTO MODAL — Solicitar Presupuesto
   =========================================== */

.presupuesto-overlay {
    position: fixed;
    inset: 0;
    z-index: 2000;
    background: rgba(0, 0, 0, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s, visibility 0.3s;
}
.presupuesto-overlay.presupuesto-visible {
    opacity: 1;
    visibility: visible;
}

.presupuesto-modal {
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 8px 40px rgba(0, 0, 0, 0.15);
    width: 100%;
    max-width: 480px;
    max-height: calc(100vh - 40px);
    overflow-y: auto;
    padding: 28px 32px 32px;
    transform: translateY(20px);
    transition: transform 0.3s, max-width 0.35s ease, min-height 0.35s ease, padding 0.35s ease;
}
.presupuesto-overlay.presupuesto-visible .presupuesto-modal {
    transform: translateY(0);
}
.presupuesto-modal--loading,
.presupuesto-modal--success {
    max-width: 340px;
    min-height: 340px;
    overflow: hidden;
}
.presupuesto-modal--loading .presupuesto-header,
.presupuesto-modal--loading .presupuesto-config-summary,
.presupuesto-modal--loading .presupuesto-form,
.presupuesto-modal--success .presupuesto-header,
.presupuesto-modal--success .presupuesto-config-summary,
.presupuesto-modal--success .presupuesto-form {
    opacity: 0;
    max-height: 0;
    overflow: hidden;
    margin: 0;
    padding: 0;
    pointer-events: none;
}

/* Header */
.presupuesto-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16px;
    margin-bottom: 20px;
    padding-bottom: 16px;
    border-bottom: 1px solid #f0f0f0;
}
.presupuesto-header-text {
    flex: 1;
    min-width: 0;
}
.presupuesto-subtitle {
    font-family: 'Raleway', sans-serif;
    font-weight: 700;
    font-size: 16px;
    color: #141618;
    margin: 0 0 4px;
}
.presupuesto-title {
    font-family: 'Raleway', sans-serif;
    font-weight: 700;
    font-size: 18px;
    color: var(--verde-vivo, #65a400);
    margin: 0;
    line-height: 1.3;
}
.presupuesto-close {
    display: flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: 1px solid #f0f0f0;
    border-radius: 6px;
    width: 36px;
    height: 36px;
    cursor: pointer;
    flex-shrink: 0;
    color: #4b5563;
    transition: background 0.2s, border-color 0.2s;
}
.presupuesto-close:hover {
    background: #f5f5f5;
    border-color: #ddd;
}

/* Config summary */
.presupuesto-config-summary {
    background: #f8fbf5;
    border: 1px solid rgba(101, 164, 0, 0.15);
    border-radius: 8px;
    padding: 14px 16px;
    margin-bottom: 20px;
}
.presupuesto-config-title {
    font-family: 'Raleway', sans-serif;
    font-weight: 700;
    font-size: 13px;
    color: #141618;
    margin: 0 0 8px;
}
.presupuesto-config-list {
    list-style: none;
    padding: 0;
    margin: 0;
}
.presupuesto-config-list li {
    font-family: 'Inter', sans-serif;
    font-size: 12px;
    color: #4b5563;
    padding: 3px 0;
    border-bottom: 1px solid rgba(0, 0, 0, 0.04);
}
.presupuesto-config-list li:last-child {
    border-bottom: none;
}
.presupuesto-config-list li strong {
    color: #141618;
}
.presupuesto-config-sublist {
    list-style: none;
    padding: 2px 0 2px 12px;
    margin: 0;
}
.presupuesto-config-sublist li {
    font-size: 11px;
    color: #6b7280;
    border-bottom: none;
    padding: 1px 0;
}
.presupuesto-config-total {
    margin: 8px 0 0;
    font-family: 'Inter', sans-serif;
    font-size: 14px;
    color: #141618;
    padding-top: 8px;
    border-top: 1px solid rgba(0, 0, 0, 0.08);
}

/* Form */
.presupuesto-form {
    display: flex;
    flex-direction: column;
    gap: 14px;
    transition: opacity 0.25s ease, max-height 0.35s ease, margin 0.35s ease, padding 0.35s ease;
}
.presupuesto-field {
    display: flex;
    flex-direction: column;
}
.presupuesto-input,
.presupuesto-select,
.presupuesto-textarea {
    font-family: 'Inter', sans-serif;
    font-size: 14px;
    color: #333;
    background: #f5f5f5;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    padding: 12px 14px;
    outline: none;
    transition: border-color 0.2s, box-shadow 0.2s;
    width: 100%;
    box-sizing: border-box;
}
.presupuesto-input:focus,
.presupuesto-select:focus,
.presupuesto-textarea:focus {
    border-color: var(--verde-vivo, #65a400);
    box-shadow: 0 0 0 3px rgba(101, 164, 0, 0.1);
    background: #fff;
}
.presupuesto-input::placeholder,
.presupuesto-textarea::placeholder {
    color: rgba(75, 85, 99, 0.55);
}
.presupuesto-select {
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%234b5563' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 14px center;
    background-color: #f5f5f5;
    padding-right: 40px;
    cursor: pointer;
}
.presupuesto-textarea {
    resize: vertical;
    min-height: 70px;
}

/* Checkbox */
.presupuesto-checkbox-label {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-family: 'Inter', sans-serif;
    font-size: 13px;
    color: #4b5563;
    cursor: pointer;
    line-height: 1.4;
}
.presupuesto-checkbox-label input[type="checkbox"] {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    margin-top: 1px;
    accent-color: var(--verde-vivo, #65a400);
    cursor: pointer;
}
.presupuesto-checkbox-label a {
    color: var(--verde-vivo, #65a400);
    text-decoration: underline;
}

/* Feedback */
.presupuesto-feedback {
    font-family: 'Inter', sans-serif;
    font-size: 13px;
    padding: 10px 14px;
    border-radius: 8px;
    line-height: 1.5;
}
.presupuesto-feedback--error {
    background: rgba(203, 0, 67, 0.06);
    color: #cb0043;
    border: 1px solid rgba(203, 0, 67, 0.15);
}
.presupuesto-feedback--success {
    background: #f8fbf5;
    color: #3c5b00;
    border: 1px solid rgba(101, 164, 0, 0.2);
}

/* Submit */
.presupuesto-submit {
    width: 100%;
    background-color: var(--verde-vivo, #65a400);
    font-family: 'Raleway', sans-serif;
    font-size: 14px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    padding: 14px 24px;
    border-radius: 8px;
    border: none;
    color: #fff;
    cursor: pointer;
    transition: filter 0.2s, opacity 0.2s;
}
.presupuesto-submit:hover {
    filter: brightness(1.1);
}
.presupuesto-submit:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

/* Footer message */
.presupuesto-footer-msg {
    font-family: 'Inter', sans-serif;
    font-size: 12px;
    color: #9ca3af;
    text-align: center;
    margin: 0;
}

.presupuesto-state {
    display: none;
    align-items: center;
    justify-content: center;
    min-height: 0;
}

.presupuesto-state--visible {
    display: flex;
    min-height: 276px;
}

.presupuesto-state-card {
    width: 100%;
    min-height: 276px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 14px;
    text-align: center;
}

.presupuesto-spinner {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    border: 6px solid rgba(101, 164, 0, 0.14);
    border-top-color: var(--verde-vivo, #65a400);
    animation: presupuesto-spin 0.8s linear infinite;
}

.presupuesto-check {
    display: none;
    width: 88px;
    height: 88px;
    align-items: center;
    justify-content: center;
}

.presupuesto-check svg {
    width: 88px;
    height: 88px;
}

.presupuesto-check circle,
.presupuesto-check path {
    stroke: var(--verde-vivo, #65a400);
    stroke-width: 4;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.presupuesto-state-title {
    font-family: 'Raleway', sans-serif;
    font-size: 24px;
    font-weight: 800;
    color: #141618;
    margin: 0;
}

.presupuesto-state-text {
    max-width: 240px;
    font-family: 'Inter', sans-serif;
    font-size: 14px;
    line-height: 1.5;
    color: #5d6471;
    margin: 0;
}

.presupuesto-back-btn {
    display: none;
    align-items: center;
    justify-content: center;
    min-width: 132px;
    padding: 12px 18px;
    border-radius: 999px;
    border: none;
    background: var(--verde-vivo, #65a400);
    color: #fff;
    font-family: 'Raleway', sans-serif;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.08em;
    cursor: pointer;
    transition: filter 0.2s ease;
}

.presupuesto-back-btn:hover {
    filter: brightness(1.08);
}

@keyframes presupuesto-spin {
    to {
        transform: rotate(360deg);
    }
}

/* Responsive */
@media (max-width: 600px) {
    .presupuesto-overlay {
        padding: 0;
        align-items: flex-end;
    }
    .presupuesto-modal {
        padding: 20px;
        max-width: 100%;
        border-radius: 16px 16px 0 0;
        max-height: 90vh;
    }
    .presupuesto-modal--loading,
    .presupuesto-modal--success {
        max-width: 100%;
        min-height: 320px;
    }
    .presupuesto-subtitle {
        font-size: 14px;
    }
    .presupuesto-title {
        font-size: 16px;
    }
}


/* ===========================================
   INFORMATE CMS MODAL
   =========================================== */

/* Link in configurador sections */
.cfg-informate-link {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
    margin-top: 12px;
    font-family: 'Inter', sans-serif;
    font-size: 13px;
    font-weight: 600;
    color: var(--verde-vivo, #65a400);
    text-decoration: none;
    cursor: pointer;
    transition: color 0.2s;
}
.cfg-informate-link:hover {
    color: var(--verde, #3c5b00);
    text-decoration: underline;
}
.cfg-informate-link::before {
    content: 'i';
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    border: 1.5px solid currentColor;
    font-size: 12px;
    font-style: italic;
    font-weight: 700;
    line-height: 1;
    flex-shrink: 0;
}

/* Overlay */
.informate-overlay {
    position: fixed;
    inset: 0;
    z-index: 2000;
    background: rgba(0, 0, 0, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s, visibility 0.3s;
}
.informate-overlay.informate-visible {
    opacity: 1;
    visibility: visible;
}

/* Modal box */
.informate-modal {
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 8px 40px rgba(0, 0, 0, 0.15);
    width: 100%;
    max-width: 680px;
    max-height: calc(100vh - 40px);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transform: translateY(20px);
    transition: transform 0.3s;
}
.informate-overlay.informate-visible .informate-modal {
    transform: translateY(0);
}

/* Header — fixed at top */
.informate-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16px;
    padding: 28px 32px 16px;
    border-bottom: 1px solid #f0f0f0;
    flex-shrink: 0;
}
.informate-title {
    font-family: 'Raleway', sans-serif;
    font-weight: 700;
    font-size: 20px;
    color: var(--verde-vivo, #65a400);
    margin: 0;
    line-height: 1.3;
}
.informate-close {
    display: flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: 1px solid #f0f0f0;
    border-radius: 6px;
    width: 36px;
    height: 36px;
    cursor: pointer;
    flex-shrink: 0;
    color: #4b5563;
    transition: background 0.2s, border-color 0.2s;
}
.informate-close:hover {
    background: #f5f5f5;
    border-color: #ddd;
}

/* Body — CMS content, scrollable */
.informate-body {
    font-family: 'Inter', sans-serif;
    font-size: 15px;
    line-height: 1.7;
    color: var(--gris-txt, #4b5563);
    overflow-y: auto;
    padding: 20px 32px 32px;
    flex: 1;
    min-height: 0;
}
.informate-body img {
    max-width: 100%;
    height: auto;
    border-radius: 8px;
    margin: 12px 0;
}
.informate-body h1,
.informate-body h2,
.informate-body h3 {
    font-family: 'Raleway', sans-serif;
    color: #141618;
    margin: 16px 0 8px;
}
.informate-body p {
    margin: 0 0 12px;
}
.informate-body ul,
.informate-body ol {
    padding-left: 20px;
    margin: 0 0 12px;
}

/* Loading state */
.informate-loading {
    text-align: center;
    padding: 40px 20px;
    color: #9ca3af;
    font-size: 14px;
}

/* Error state */
.informate-error {
    text-align: center;
    padding: 40px 20px;
    color: var(--rojo, #cb0043);
    font-size: 14px;
}

/* Responsive */
@media (max-width: 767px) {
    .informate-overlay {
        padding: 0;
        align-items: flex-end;
    }
    .informate-modal {
        max-width: 100%;
        border-radius: 16px 16px 0 0;
        max-height: 90vh;
    }
    .informate-header {
        padding: 20px 20px 12px;
    }
    .informate-body {
        padding: 12px 20px 20px;
    }
    .informate-title {
        font-size: 18px;
    }
}


/* ===========================================
   TABLA DATOS TECNICOS — FIX LAYOUT PARALELO
   =========================================== */

/* El breakpoint original (1379px) es demasiado alto para el container query,
   forzando siempre layout columna. Revertimos a flex-row por defecto y solo
   colapsamos en pantallas muy estrechas (<500px).
   Scoped a ≤1536px para no interferir con Figma a pantalla completa. */
@media (max-width: 1536px) {
    @container row-info-table-sheet (width >= 500px) {
        .table-header-component-a,
        .table-header-component-b,
        .table-header-component-c,
        .table-header-component-d {
            flex-direction: row !important;
            align-items: center !important;
            gap: 0 !important;
        }
        .table-header-component-a > *,
        .table-header-component-b > *,
        .table-header-component-c > *,
        .table-header-component-d > * {
            text-align: left !important;
            width: 50% !important;
        }
    }
}

/* Celdas: label bold a la izq, valor normal a la dcha */
.row-info-table-sheet .text-table-header-cell,
.row-info-table-sheet .table-header-component-text-cell3,
.row-info-table-sheet .table-header-component-text-cell4 {
    padding: 10px 12px;
    min-height: 39px;
    box-sizing: border-box;
}

/* Label (columna izquierda) siempre bold */
.row-info-table-sheet .table-header-component-text-cell1,
.row-info-table-sheet .table-header-component-text-cell3,
.row-info-table-sheet .table-header-component-text-cell5,
.row-info-table-sheet .table-header-component-text-cell7 {
    font-weight: 700;
    border-right: 1px solid var(--gris-claro);
}

/* Valor (columna derecha) */
.row-info-table-sheet .table-header-component-text-cell2,
.row-info-table-sheet .table-header-component-text-cell4,
.row-info-table-sheet .table-header-component-text-cell6,
.row-info-table-sheet .table-header-component-text-cell8 {
    font-weight: 400;
    font-family: 'Inter', sans-serif;
}


/* ===========================================
   GALERIA — VIDEO YOUTUBE THUMBNAIL + EMBED
   =========================================== */

/* Thumbnail de vídeo en la galería */
.ficha-1-row-video-thumb {
    position: relative;
    cursor: pointer;
    display: inline-block;
    border-radius: 4px;
    overflow: hidden;
}

.ficha-1-row-video-thumb img {
    display: block;
    object-fit: cover;
}

/* Icono play superpuesto */
.ficha-1-row-video-thumb .video-play-icon {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    pointer-events: none;
    opacity: 0.85;
    filter: drop-shadow(0 1px 4px rgba(0,0,0,0.4));
    transition: opacity 0.2s;
}

.ficha-1-row-video-thumb:hover .video-play-icon {
    opacity: 1;
}

/* Borde verde cuando vídeo activo */
.ficha-1-row-video-thumb--active {
    outline: 3px solid var(--verde-vivo);
    outline-offset: -3px;
}

/* ===========================================
   GALERIA — CONTENEDOR PRINCIPAL FIJO
   =========================================== */

/* Contenedor de imagen/vídeo principal: tamaño fijo, contenido centrado */
.ficha-1-row-contenedor2 {
    position: relative;
    overflow: hidden;
}

.ficha-1-row-casas {
    width: 100% !important;
    height: auto !important;
    object-fit: cover;
    object-position: center;
}

/* Contenedor con altura fija para que no salte al cambiar imagen */
.ficha-1-row-contenedor2 > .ficha-1-row-casas,
.ficha-1-row-contenedor2 > .gallery-video-embed {
    aspect-ratio: 3 / 2;
}

/* Iframe embed del vídeo: overlay absoluto sobre el track */
.gallery-video-embed {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    aspect-ratio: 3 / 2;
    border: none;
    background: #000;
    z-index: 1;
}

/* ===========================================
   RESPONSIVE — FICHA PRODUCTO REFACTORING
   Overrides container queries de Figma que usan
   breakpoints muy altos (1330-1383px) diseñados
   para canvas de 1536px. El objetivo es mantener
   layout horizontal desde 1024px de viewport.
   =========================================== */

/* --- Paso 0: Header y navegación responsive --- */
/* Ambos headers: header-a (ficha, categoría) y header-b (home)
   Estrategia: media queries por viewport (predecibles) + counter-queries
   mínimas para neutralizar los @container de Figma (1375/1420px). */

/* Neutralizar Figma container queries: mantener row cuando container >= 700px.
   Scoped a ≤1536px para no interferir con Figma a pantalla completa. */
@media (max-width: 1536px) {
    @container header-a (width >= 700px) {
        .header-container1 {
            flex-direction: row !important;
            align-items: center !important;
        }
        .header-menu1 {
            flex-direction: row !important;
            align-items: center !important;
            flex-wrap: wrap;
        }
    }
    @container header-b (width >= 700px) {
        .header-container2 {
            flex-direction: row !important;
            align-items: center !important;
        }
        .header-menu2 {
            flex-direction: row !important;
            align-items: center !important;
            flex-wrap: wrap;
        }
    }
}

/* ≤1400px: header con gap reducido (94px original es demasiado) */
@media (max-width: 1400px) {
    .header-container1,
    .header-container2 {
        gap: 40px !important;
    }
    .header-buscador1.card1 {
        width: auto !important;
        flex: 1 1 300px;
        max-width: 567px;
    }
    .header-buscador1 {
        flex-shrink: 1 !important;
    }
    .header-menu1,
    .header-menu2 {
        gap: 24px !important;
    }
}

/* ≤1023px: header más compacto */
@media (max-width: 1023px) {
    .header-container1,
    .header-container2 {
        gap: 24px !important;
    }
    .header-menu1,
    .header-menu2 {
        gap: 16px !important;
        font-size: 13px !important;
    }
}

/* Móvil <768px: header apilado */
@media (max-width: 767px) {
    .header-container1,
    .header-container2 {
        flex-direction: column !important;
        gap: 12px !important;
    }
    .header-buscador1.card1 {
        width: 100% !important;
        max-width: none;
    }
    .header-menu1,
    .header-menu2 {
        flex-direction: column !important;
        gap: 8px !important;
        padding: 12px 16px !important;
    }
}

/* --- Paso 0b: Header container stretch + buscador min-width --- */
/* A 1110px el header-container se centra con align-self:center y el
   buscador baja a 227px. Forzar stretch para que el flex-grow funcione. */
@media (max-width: 1400px) {
    .header-container1,
    .header-container2 {
        align-self: stretch !important;
        padding-inline: 40px !important;
    }
    .header-buscador1.card1 {
        min-width: 200px;
    }
    /* Contacto también flexible para dejar espacio al buscador */
    .header-contacto1,
    .header-contacto2 {
        flex-shrink: 1 !important;
        min-width: 0;
    }
}
@media (max-width: 1023px) {
    .header-container1,
    .header-container2 {
        padding-inline: 24px !important;
    }
}
@media (max-width: 767px) {
    .header-container1,
    .header-container2 {
        padding-inline: 16px !important;
    }
}

/* --- Paso 0c: HOME — counter-queries para bloques de contenido --- */
/* Todas las container queries de home.css usan thresholds de 1283-1383px.
   A 1110px viewport con 40px padding, los containers son ~1030px → se apila
   todo. Counter-queries restauran layout horizontal. */

/* HOME: counter-queries scoped a ≤1536px.
   A >1536px los containers superan 1383px → Figma mantiene row sin ayuda. */
@media (max-width: 1536px) {
    /* Categorías: izquierda (casas) + derecha (porches+mobiliario) */
    @container row-categorias (width >= 700px) {
        .row-categorias-container {
            flex-direction: row !important;
            align-items: flex-start !important;
            gap: 20px !important;
        }
        .row-categorias-container > .casas-de-madera {
            width: auto !important;
            flex: 1;
        }
        .row-categorias-container > .row-categorias-derch {
            width: auto !important;
            flex: 1;
        }
        .row-categorias-container > * {
            text-align: left !important;
        }
    }

    /* Categorías anidadas: dentro de row-categorias-derch (505px a 1110vw) */
    /* Figma: @container row-categorias-derch (< 681px) apila mobiliario+carpintería */
    @container row-categorias-derch (width >= 400px) {
        .row-categorias-derch-inf {
            flex-direction: row !important;
            align-items: flex-start !important;
            gap: 20px !important;
        }
        .row-categorias-derch-inf > .mobiliario-jardin1,
        .row-categorias-derch-inf > .mobiliario-jardin2 {
            width: auto !important;
            flex: 1;
            min-width: 0;
        }
    }
    /* Figma: @container row-categorias-derch (< 561px) apila porches img+texto */
    @container row-categorias-derch (width >= 400px) {
        .row-categorias-porches {
            flex-direction: row !important;
            align-items: flex-start !important;
        }
        .row-categorias-porches > .row-categorias-img {
            flex: 1;
            min-width: 0;
        }
        .row-categorias-porches > .card-right {
            flex: 1;
            min-width: 0;
        }
    }

    /* Categorías: escalar padding/tamaños internos proporcionalmente */
    .row-categorias-container .card-right {
        padding: 30px 20px 25px 20px !important;
        min-height: auto !important;
    }
    .row-categorias-container .column-txt {
        padding: 16px 16px !important;
    }
    .row-categorias-container .column-text-top,
    .row-categorias-container .mobiliario-jardin1 .column-text-top {
        width: auto !important;
    }
    .row-categorias-container .column-foto {
        width: 100% !important;
        object-fit: cover !important;
    }
    .row-categorias-container .text-new-grand {
        font-size: 14px !important;
    }

    /* Destacados: 2 cards lado a lado */
    @container row-destacados (width >= 700px) {
        .row-destacados-container {
            flex-direction: row !important;
            align-items: stretch !important;
            gap: 0 !important;
        }
        .row-destacados-container > .card-slide-destacado1 {
            width: auto !important;
            flex: 1;
        }
        .row-destacados-container > .card-slide-destacado2 {
            width: auto !important;
            flex: 1;
        }
        .row-destacados-container > * {
            text-align: left !important;
        }
    }

    /* Servicios: 4 columnas de iconos */
    @container servicios-row (width >= 600px) {
        .servicios-row-container {
            flex-direction: row !important;
            align-items: flex-start !important;
            gap: 30px !important;
        }
        .servicios-row-container > .symbol1,
        .servicios-row-container > .servicios-row-symbol,
        .servicios-row-container > .symbol2,
        .servicios-row-container > .symbol3 {
            width: auto !important;
            flex: 1;
            min-width: 0;
            overflow: hidden;
        }
    }

    /* Contenido SEO: izquierda (FAQs) + derecha (texto) */
    @container contenedor-contenido (width >= 700px) {
        .contenedor-contenido-conenidos {
            flex-direction: row !important;
            align-items: flex-start !important;
            gap: 40px !important;
        }
        .contenedor-contenido-conenidos > .izq1 {
            width: auto !important;
            flex: 1;
        }
        .contenedor-contenido-conenidos > .contenedor-contenido-derch {
            width: auto !important;
            flex: 1;
            margin-top: 0 !important;
        }
    }
}

/* Móvil: apilar todo */
@media (max-width: 767px) {
    .row-categorias-container,
    .row-destacados-container,
    .servicios-row-container,
    .contenedor-contenido-conenidos {
        flex-direction: column !important;
    }
}

/* --- Paso 0d: Container para row-casa-prefabricadas --- */
/* Mismo patrón que row-categorias-container / row-destacados-container.
   El container HTML se añadió en index.html para acotar el grid de productos. */
.row-casa-prefabricadas-container {
    width: 100%;
    max-width: 1384px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: clamp(24px, 3vw, 60px);
}

/* Ocultar metros/subtitle y características genéricas de todas las cards */
.card-text6,
.text-gris,
.card-text-2-dormitorios,
.text-2-dormitorios {
    display: none !important;
}

/* --- Paso 1: Padding de secciones por breakpoint --- */
/* Transición gradual para que las container queries de Figma
   no se disparen abruptamente al cambiar de 76px a 24px. */
@media (max-width: 1400px) {
    .section2 { padding-inline: 40px !important; }
    .section4 { padding-inline: 40px !important; }
    .section5 { padding-inline: 40px !important; }
}
@media (max-width: 1023px) {
    .section2 { padding-inline: 24px !important; }
    .section4 { padding-inline: 24px !important; }
    .section5 { padding-inline: 24px !important; }
}
@media (max-width: 767px) {
    .section1 { padding-inline: 16px !important; }
    .section2 { padding-inline: 16px !important; }
    .section4 { padding-inline: 16px !important; }
    .section5 { padding-inline: 16px !important; }
}

/* --- Paso 2: Layout imagen + info flexible --- */

/* Hacer columnas flexibles en vez de ancho fijo */
/* Ratio 0.8:1.2 para que el texto tenga >= 557px a 1110px viewport
   (evita que @container ficha-1-row-txt (< 557px) apile .card-fijo1) */
.ficha-1-row-imagen {
    flex: 0.8 1 350px;
    min-width: 0;
}

.ficha-1-row-txt {
    width: auto !important;
    flex-shrink: 1 !important;
    flex: 1.2 1 400px !important;
    min-width: 340px;
    max-width: 665px;
}

/* Counter-query: mantener horizontal cuando container >= 780px.
   Scoped a ≤1536px para no interferir con Figma a pantalla completa. */
@media (max-width: 1536px) {
    @container ficha-1-row (width >= 780px) {
        .ficha-1-row-contenedor1 {
            flex-direction: row !important;
            align-items: flex-start !important;
            gap: 40px !important;
        }
        .ficha-1-row-contenedor1 > .ficha-1-row-txt {
            width: auto !important;
            max-width: 665px;
        }
        .ficha-1-row-contenedor1 > .ficha-1-row-imagen {
            width: auto !important;
        }
    }
}

/* Stack móvil definitivo */
@media (max-width: 767px) {
    .ficha-1-row-contenedor1 {
        flex-direction: column !important;
        gap: 24px !important;
    }
    .ficha-1-row-txt {
        width: 100% !important;
        max-width: none !important;
        flex: none !important;
        min-width: 0 !important;
    }
    .ficha-1-row-imagen {
        width: 100% !important;
        flex: none !important;
    }
}

/* --- Paso 3: Barra de precio del configurador --- */
@media (max-width: 1536px) {
    @container row-configura-contenedor (width >= 700px) {
        .row-configura-precio2 {
            flex-direction: row !important;
            align-items: center !important;
            gap: 20px !important;
        }
    }
}

@media (max-width: 767px) {
    .row-configura-precio2 {
        flex-direction: column !important;
        align-items: center !important;
    }
    .row-configura-derch {
        flex-direction: column !important;
        align-items: center !important;
    }
}

/* --- Paso 4: Columnas de descripción --- */
@media (max-width: 1536px) {
    @container row-info-contenedor1 (width >= 600px) {
        .row-info-contenedor2 {
            flex-direction: row !important;
            align-items: stretch !important;
            gap: 40px !important;
        }
        .row-info-contenedor2 > .izq2,
        .row-info-contenedor2 > .row-info-derch {
            width: auto !important;
            flex: 1;
        }
    }
}

/* --- Paso 3b: Resumen del configurador --- */
/* El resumen tiene 4 hijos (titulo, subtitulo, boton, icons-grid) que
   NO caben en row a <1400px. Mantenerlo column y evitar overflow. */
.row-configura-contenedor {
    overflow: visible !important;
}
.row-configura-resumen {
    overflow: hidden !important;
}
.row-configura-icons-grid {
    min-width: 0 !important;
    max-width: 100% !important;
    overflow: hidden !important;
    flex-wrap: wrap !important;
}
/* Solo poner en row cuando realmente hay espacio (>= 1300px container) */
@media (max-width: 1536px) {
    @container row-configura-contenedor (width >= 1300px) {
        .row-configura-resumen {
            flex-direction: row !important;
            align-items: center !important;
            gap: 24px !important;
        }
    }
}

/* --- Paso 4b: Tabla de specs --- */
@media (max-width: 1536px) {
    @container row-info-table-sheet (width >= 500px) {
        .table-header-component-a,
        .table-header-component-b {
            flex-direction: row !important;
            align-items: flex-start !important;
            gap: 14px !important;
        }
    }
}

/* --- Paso 5: Grid de productos relacionados responsive --- */

/* card-a (ficha-producto) — ancho flexible en vez de 390px fijo */
.row-casa-prefabricadas-casas .card-a {
    width: 100% !important;
    min-height: auto !important;
    flex-shrink: 1 !important;
}

/* gap ya definido en Paso 0d */

@media (min-width: 1024px) {
    .row-casa-prefabricadas-casas {
        grid-template-columns: repeat(3, 1fr) !important;
        max-width: none !important;
        gap: 24px !important;
    }
}
@media (min-width: 768px) and (max-width: 1023px) {
    .row-casa-prefabricadas-casas {
        grid-template-columns: repeat(2, 1fr) !important;
        max-width: none !important;
        gap: 24px !important;
    }
}
@media (max-width: 767px) {
    .row-casa-prefabricadas-casas {
        grid-template-columns: 1fr !important;
        max-width: none !important;
    }
}

/* --- Paso 2b: Card-fijo (precio+contacto) — mantener 2 columnas --- */
/* La Figma query @container ficha-1-row-txt (< 557px) apila .card-fijo1.
   Counter-query: forzar row cuando el texto tiene >= 450px (suficiente
   para 2 columnas comprimidas). */
.card-fijo1,
.card-fijo2 {
    flex-wrap: wrap !important;
}
.card-fijo1 > .izq-text-bottom,
.card-fijo2 > .izq-text-bottom {
    width: 100%;
    text-align: right;
}
@media (max-width: 1536px) {
    @container ficha-1-row-txt (width >= 450px) {
        .card-fijo1 {
            flex-direction: row !important;
            align-items: flex-start !important;
            gap: 20px !important;
        }
        .card-fijo1 > .izq-a {
            flex: 1 1 0 !important;
            min-width: 0 !important;
        }
        .card-fijo1 > .contacto {
            flex: 0 0 auto !important;
        }
    }
}

/* --- Specs bar (dimensiones, superficie, grosor, estancias, entrega) --- */
.specs-bar {
    display: flex;
    align-items: stretch;
    justify-content: space-between;
    padding: 16px 20px;
    border: 1px solid #f0f0f0;
    border-radius: 8px;
    margin-top: 12px;
    gap: 8px;
}
.specs-bar-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
    flex: 1 1 0;
    min-width: 0;
}
.specs-bar-icon {
    width: 20px;
    height: 20px;
    flex-shrink: 0;
}
.specs-bar-label {
    font-family: 'Raleway', sans-serif;
    font-weight: 700;
    font-size: 9px;
    text-transform: uppercase;
    color: var(--verde-vivo, #65a400);
    text-align: center;
    line-height: 1.2;
}
.specs-bar-value {
    font-family: 'Raleway', sans-serif;
    font-weight: 400;
    font-size: 11px;
    color: var(--gris-txt, #4b5563);
    text-align: center;
    line-height: 1.2;
}
@media (max-width: 767px) {
    .specs-bar {
        padding: 12px 14px;
        gap: 4px;
    }
    .specs-bar-label {
        font-size: 8px;
    }
    .specs-bar-value {
        font-size: 10px;
    }
    .specs-bar-icon {
        width: 18px;
        height: 18px;
    }
}

/* --- Card specs bar (compact version for product listing cards) --- */
.card-specs-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px 12px;
    padding: 8px 0;
    border-top: 1px solid #f0f0f0;
    border-bottom: 1px solid #f0f0f0;
    margin: 6px 0;
}
.card-specs-item {
    display: flex;
    align-items: center;
    gap: 4px;
    white-space: nowrap;
}
.card-specs-icon {
    width: 15px;
    height: 15px;
    flex-shrink: 0;
}
.card-specs-value {
    font-family: 'Inter', sans-serif;
    font-weight: 500;
    font-size: 12px;
    color: var(--gris-txt, #4b5563);
    line-height: 1;
}
@media (max-width: 767px) {
    .card-specs-bar {
        gap: 3px 10px;
        padding: 6px 0;
    }
    .card-specs-icon {
        width: 13px;
        height: 13px;
    }
    .card-specs-value {
        font-size: 11px;
    }
}

/* ===========================================
   PAGINAS CMS — breadcrumbs, titulo, contenido
   =========================================== */

.cms-breadcrumbs {
    width: 100%;
    max-width: 1384px;
    margin: 0 auto;
    padding: 10px 10px;
    box-sizing: border-box;
}

.cms-breadcrumbs-text {
    font-family: 'Raleway', sans-serif;
    font-size: 12px;
    line-height: 1.2;
    color: var(--gris-txt, #4b5563);
}

.cms-breadcrumb-link {
    color: var(--gris-txt, #4b5563);
    text-decoration: none;
}

.cms-breadcrumb-link:hover {
    text-decoration: underline;
    color: var(--verde-vivo, #65a400);
}

.cms-breadcrumb-current {
    font-weight: 600;
}

.cms-content-container {
    width: 100%;
    max-width: 1384px;
    margin: 0 auto;
    border-top: 1px solid var(--gris-fondo, #f0f0f0);
    display: flex;
    flex-direction: column;
    gap: 40px;
    padding-bottom: 30px;
    box-sizing: border-box;
}

.cms-page-title {
    font-family: 'Raleway', sans-serif;
    font-weight: 700;
    font-size: 40px;
    line-height: 1.2;
    color: var(--verde-vivo, #65a400);
    margin: 0;
    padding-top: 10px;
}

.cms-page-body {
    font-family: 'Raleway', sans-serif;
    font-weight: 400;
    font-size: 14px;
    line-height: 1.5;
    color: var(--gris-txt, #4b5563);
}

.cms-page-body h1,
.cms-page-body h2,
.cms-page-body h3 {
    font-family: 'Raleway', sans-serif;
    font-weight: 700;
    color: var(--gris-negro, #141618);
    margin: 0 0 24px 0;
}

.cms-page-body h1 {
    font-size: 26px;
    line-height: 1.2;
}

.cms-page-body h2 {
    font-size: 26px;
    line-height: 1.2;
}

.cms-page-body h3 {
    font-size: 20px;
    line-height: 1.3;
}

.cms-page-body iframe {
    max-width: 100%;
    border: 0;
    border-radius: 8px;
    margin: 12px 0;
}

.cms-page-body p {
    margin: 0 0 6px 0;
}

.cms-page-body ul,
.cms-page-body ol {
    margin: 0 0 12px 21px;
    padding: 0;
}

.cms-page-body ul {
    list-style: disc;
}

.cms-page-body ol {
    list-style: decimal;
}

.cms-page-body li {
    margin-bottom: 6px;
}

.cms-page-body a {
    color: var(--verde-vivo, #65a400);
    text-decoration: underline;
}

.cms-page-body a:hover {
    color: var(--verde, #3c5b00);
}

.cms-page-body strong,
.cms-page-body b {
    font-weight: 700;
}

.cms-page-body img {
    max-width: 100%;
    height: auto;
    border-radius: 4px;
}

.cms-page-body table {
    border-collapse: collapse;
    width: 100%;
    margin: 12px 0;
}

.cms-page-body table td,
.cms-page-body table th {
    border: 1px solid var(--gris-fondo, #f0f0f0);
    padding: 8px 12px;
    text-align: left;
}

.cms-page-body table th {
    background: var(--gris-fondo, #f0f0f0);
    font-weight: 700;
}

@media (max-width: 767px) {
    .cms-breadcrumbs {
        padding: 8px 16px;
    }

    .cms-content-container {
        padding: 0 16px 24px;
        gap: 24px;
    }

    .cms-page-title {
        font-size: 28px;
    }

    .cms-page-body h2 {
        font-size: 22px;
    }

    .cms-page-body h3 {
        font-size: 18px;
    }

    .cms-page-body img {
        max-width: 100%;
    }
}

/* --- Cuenta atrás de oferta --- */
.offer-countdown {
    display: flex;
    align-items: center;
    gap: 3px;
    margin-top: 6px;
    margin-left: auto;
    color: var(--rojo, #cb0043);
    font-size: 13px;
    font-family: 'Inter', sans-serif;
    font-weight: 500;
    line-height: 1;
}
.offer-countdown-icon {
    flex-shrink: 0;
}
.offer-countdown-label {
    margin-right: 4px;
}
.offer-countdown-timer {
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.02em;
}

/* --- Toggle header (Datos técnicos) --- */
.toggle-header {
    cursor: pointer;
    display: flex !important;
    flex-direction: row !important;
    align-items: center;
    justify-content: flex-start !important;
    gap: 8px;
    user-select: none;
    border-bottom: 1px solid #d1d5db;
    padding-bottom: 12px;
}
.toggle-chevron {
    flex-shrink: 0;
    transition: transform 0.25s ease;
    width: 18px;
    height: 18px;
}
.toggle-header.open .toggle-chevron {
    transform: rotate(180deg);
}

/* --- Botón "añadir al carrito" en rojo corporativo (todos) --- */
.btn-a {
    background-color: var(--rojo, #cb0043) !important;
}
.btn-a:hover {
    background-color: #a80038 !important;
}

/* --- Tarjetas de producto clicables --- */
.card-a > a,
.card-b > a,
.card-c > a,
a.card-link {
    display: block;
    text-decoration: none;
    color: inherit;
    cursor: pointer;
}
.card-a > a:hover,
.card-b > a:hover,
.card-c > a:hover,
a.card-link:hover {
    text-decoration: none;
    color: inherit;
}
.card-a,
.card-b,
.card-c {
    cursor: pointer;
    transition: box-shadow 0.2s ease, transform 0.2s ease;
}
.card-a:hover,
.card-b:hover,
.card-c:hover {
    box-shadow: 0 4px 16px rgba(0,0,0,0.10);
    transform: translateY(-2px);
}

/* --- Categoría/Subcategoría: sidebar + productos en horizontal --- */
/* Los container queries de Figma apilan a column en <1427px / <1504px,
   pero sidebar (344px) + gap (25px) + grid caben bien desde ~800px de container */

/* Categoría/Subcategoría: scoped a ≤1536px */
@media (max-width: 1536px) {
    /* Subcategoría (.info-row-container1) */
    @container info-row (width >= 800px) {
        .info-row-container1 {
            flex-direction: row !important;
            align-items: flex-start !important;
            gap: 25px !important;
        }
        .info-row-container1 > .menu-container1 {
            width: 280px !important;
            max-width: 344px;
            flex-shrink: 0;
        }
        .info-row-container1 > .info-row-categoria {
            flex: 1 !important;
            min-width: 0 !important;
            width: auto !important;
        }
    }

    /* Categoría (.info-row-container) */
    @container info-row (width >= 800px) {
        .info-row-container {
            flex-direction: row !important;
            align-items: flex-start !important;
            gap: 25px !important;
            margin-left: 0 !important;
            margin-right: 0 !important;
        }
        .info-row-container > .menu-container1 {
            width: 280px !important;
            max-width: 344px;
            flex-shrink: 0;
        }
        .info-row-container > .info-row-categoria {
            flex: 1 !important;
            min-width: 0 !important;
            width: auto !important;
        }
    }
}

/* Móvil: apilar sidebar + productos */
@media (max-width: 767px) {
    .info-row-container1,
    .info-row-container {
        flex-direction: column !important;
        gap: 32px !important;
    }
    .info-row-container1 > .menu-container1,
    .info-row-container > .menu-container1 {
        width: 100% !important;
        max-width: none !important;
    }
}

/* --- Paso 6: Thumbnails de galería flexibles --- */
/* Siempre usar 1fr en vez de 150px fijo (150x4=600px desborda a <600px) */
.ficha-1-row-col-bottom {
    grid-template-columns: repeat(4, 1fr) !important;
}
.ficha-1-row-col-bottom .ficha-1-row-img,
.ficha-1-row-col-bottom .ficha-1-row-select {
    width: 100% !important;
    height: auto;
    aspect-ratio: 150/117;
}

/* --- Paginación de galería de thumbnails --- */
.gallery-paginated-wrap {
    position: relative;
}
.gallery-page-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
    width: 32px;
    height: 32px;
    border: 1px solid #d1d5db;
    border-radius: 50%;
    background: #fff;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--gris-txt);
    box-shadow: 0 1px 3px rgba(0,0,0,0.1);
    transition: background 0.15s, border-color 0.15s;
}
.gallery-page-btn:hover {
    background: #f3f4f6;
    border-color: #9ca3af;
}
.gallery-page-prev {
    left: -16px;
}
.gallery-page-next {
    right: -16px;
}
.gallery-page-indicator {
    text-align: center;
    margin-top: 8px;
    font-size: 13px;
    color: var(--gris-txt);
    font-family: Inter, sans-serif;
}
@media (max-width: 767px) {
    .gallery-page-prev { left: -12px; }
    .gallery-page-next { right: -12px; }
    .gallery-page-btn { width: 28px; height: 28px; }
}


/* ===========================================
   RESPONSIVE — CATEGORÍA/SUBCATEGORÍA REFACTORING
   Overrides container queries de Figma que usan
   breakpoints muy altos (798-1504px) diseñados
   para canvas de 1536px. El layout en categoría
   debe permanecer proporcional desde ~800px.
   =========================================== */

/* --- Cat Fix 1: .circle-izq desborda (position:absolute left:1014px) --- */
/* Flecha decorativa posicionada a 1014px del container, causa scroll
   horizontal en viewports < ~1100px. Ocultar en viewports medianos. */
@media (max-width: 1400px) {
    .circle-izq {
        display: none !important;
    }
}

/* --- Cat Fix 2: Reducir padding/margin que consumen espacio --- */
/* .info-row: padding-left:76px (asimétrico)
   .info-row-container: margin-left:45px margin-right:-45px (negativo!)
   .info-row-categoria: padding-right:116px
   .info-row-boton: margin-right:-116px
   .text-bread-crumbs-row: margin 30px 96px
   Total perdido: ~300px a cada lado */
@media (max-width: 1400px) {
    .info-row {
        padding-left: 24px !important;
        padding-right: 24px !important;
    }
    .info-row-container,
    .info-row-container1 {
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
    .info-row-categoria {
        padding-right: 0 !important;
    }
    .info-row-boton {
        margin-right: 0 !important;
    }
    .text-bread-crumbs-row {
        margin-left: 24px !important;
        margin-right: 24px !important;
    }
}
@media (max-width: 767px) {
    .info-row {
        padding-left: 10px !important;
        padding-right: 24px !important;
    }
    .text-bread-crumbs-row {
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
}

/* --- Cat Fix 3, 4, 5: counter-queries scoped a ≤1536px --- */
@media (max-width: 1536px) {
    /* Cat Fix 3: .info-row-descripcion2 — mantener 2 columnas (imagen + texto) */
    @container info-row-descripcion1 (width >= 500px) {
        .info-row-descripcion2 {
            flex-direction: row !important;
            align-items: flex-start !important;
            gap: 25px !important;
        }
        .info-row-descripcion2 > .info-row-b {
            width: auto !important;
            max-width: 320px;
            flex-shrink: 0;
        }
        .info-row-descripcion2 > .info-row-a {
            width: auto !important;
            flex: 1;
        }
        .info-row-descripcion2 > * {
            text-align: left !important;
        }
        .info-row-descripcion2 .info-row-btn1 {
            align-self: start !important;
        }
    }

    /* Cat Fix 4: botones de filtro horizontales */
    @container info-row-seleccion (width >= 350px) {
        .info-row-row-bottom {
            flex-direction: row !important;
            align-items: center !important;
            flex-wrap: wrap !important;
            gap: 11px !important;
        }
        .info-row-row-bottom > * {
            margin-right: 0 !important;
            text-align: left !important;
        }
    }

    /* Cat Fix 5: tags horizontales con wrap */
    @container casa-prefabricadas-filtros (width >= 280px) {
        .casa-prefabricadas-eliminar {
            flex-direction: row !important;
            align-items: center !important;
            flex-wrap: wrap !important;
            gap: 10px !important;
        }
    }
}

/* --- Cat Fix 6: Prevenir overflow en containers de categoría --- */
.info-row-seleccion {
    overflow: hidden !important;
}
.info-row-categoria {
    min-width: 0 !important;
    overflow: hidden !important;
}

/* ============================================
   RANGE SLIDER FILTERS
   Uses the same .card-tipo-de-diseno.card3 card
   structure as other sidebar filters.
   ============================================ */

/* Content area below the .titulo row */
.filter-slider-block .filter-slider-content {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding-left: 30px; /* align with text after 20px icon + 10px gap */
}

.filter-slider-block .filter-slider-values {
    display: flex;
    justify-content: space-between;
    font-size: 12px;
    color: var(--gris-txt);
    font-weight: 400;
}

.filter-slider-block .filter-slider-track {
    position: relative;
    height: 32px;
    display: flex;
    align-items: center;
}

.filter-slider-block .filter-slider-track::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    height: 3px;
    transform: translateY(-50%);
    background: var(--gris-fondo, #f0f0f0);
    border-radius: 2px;
    z-index: 0;
}

.filter-slider-block .filter-slider-range {
    position: absolute;
    top: 50%;
    height: 3px;
    transform: translateY(-50%);
    background: var(--verde-vivo);
    border-radius: 2px;
    z-index: 1;
    pointer-events: none;
}

.filter-slider-block .filter-slider-track input[type="range"] {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    -webkit-appearance: none;
    appearance: none;
    background: transparent;
    pointer-events: none;
    z-index: 2;
}

.filter-slider-block .filter-slider-track input[type="range"]::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: var(--verde-vivo);
    border: 2px solid #fff;
    box-shadow: 0 1px 3px rgba(0,0,0,0.2);
    cursor: pointer;
    pointer-events: auto;
    position: relative;
    z-index: 3;
}

.filter-slider-block .filter-slider-track input[type="range"]::-moz-range-thumb {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: var(--verde-vivo);
    border: 2px solid #fff;
    box-shadow: 0 1px 3px rgba(0,0,0,0.2);
    cursor: pointer;
    pointer-events: auto;
}

.filter-slider-block .filter-slider-track input[type="range"]::-moz-range-track {
    background: transparent;
    border: none;
    height: 0;
}

.filter-slider-block .filter-slider-track .filter-range-max {
    z-index: 3;
}

.filter-slider-block .filter-slider-track .filter-range-min {
    z-index: 4;
}

.filter-slider-block .filter-slider-track input[type="range"]:focus::-webkit-slider-thumb {
    box-shadow: 0 0 0 3px rgba(101, 164, 0, 0.15);
}

.filter-slider-block .filter-slider-track input[type="range"]:focus::-moz-range-thumb {
    box-shadow: 0 0 0 3px rgba(101, 164, 0, 0.15);
}

.filter-no-results {
    text-align: center;
    padding: 40px 20px;
    color: var(--gris-txt);
    font-size: 16px;
    grid-column: 1 / -1;
}

/* Collapsible filter cards */
.filter-collapsible .filter-toggle {
    cursor: pointer;
}
.filter-collapsible .filter-body {
    opacity: 1;
}
.filter-collapsible .filter-body.filter-animating {
    overflow: hidden;
    transition: max-height 0.3s ease, opacity 0.3s ease;
}
.filter-collapsible.collapsed .filter-body {
    max-height: 0 !important;
    overflow: hidden;
    opacity: 0;
    padding-top: 0;
    padding-bottom: 0;
    margin: 0;
}
.filter-collapsible.collapsed .filter-chevron-open {
    display: none !important;
}
.filter-collapsible.collapsed .filter-chevron-closed {
    display: block !important;
}
.filter-collapsible:not(.collapsed) .filter-chevron-open {
    display: block;
}
.filter-collapsible:not(.collapsed) .filter-chevron-closed {
    display: none !important;
}

/* Design type filter options */
.filter-design-option {
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 6px 0;
}
.filter-design-option .opcion-circle2 {
    flex-shrink: 0;
    width: auto !important;
    height: auto !important;
    border: none !important;
    border-radius: 0 !important;
    background: none !important;
    min-width: 0 !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
}
.filter-design-option .circle {
    width: 14px;
    height: 14px;
    border-radius: 50%;
    border: 2px solid #c0c0c0;
    background: transparent;
    transition: all 0.2s ease;
    position: relative;
}
.filter-design-option.active .circle {
    border-color: var(--verde-vivo);
    background: var(--verde-vivo);
}
.filter-design-option.active .circle::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: #fff;
}
.filter-design-option:hover .circle {
    border-color: var(--verde-vivo);
}
.filter-design-option .opcion-text3 {
    font-size: 13px;
    color: var(--gris-txt);
    transition: color 0.2s ease;
}
.filter-design-option.active .opcion-text3 {
    color: var(--verde-vivo);
    font-weight: 600;
}

/* --- Selection pills (quick-filter) --- */
.selection-pill.active {
    background: var(--verde-vivo);
    color: white;
}
.selection-pill {
    cursor: pointer;
    transition: background 0.2s ease, color 0.2s ease;
}

/* --- Header logo clickable (object blocks pointer events) --- */
.header-logo1,
.header-logo2 {
    pointer-events: none;
}

/* ═══════════════════════════════════════════════════════════
   Selector de cantidad + descuentos por volumen
   ═══════════════════════════════════════════════════════════ */

.qty-selector {
    display: inline-flex;
    align-items: center;
    border: 1px solid #d1d5db;
    border-radius: 8px;
    overflow: hidden;
    flex-shrink: 0;
    width: 100%;
}

.qty-btn {
    width: 36px;
    height: 36px;
    border: none;
    background: #f3f4f6;
    font-size: 18px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #374151;
    transition: background 0.15s;
    font-family: Inter, sans-serif;
    line-height: 1;
    padding: 0;
}

.qty-btn:hover {
    background: #e5e7eb;
}

.qty-btn:active {
    background: #d1d5db;
}

.qty-input {
    flex: 1;
    min-width: 0;
    height: 36px;
    border: none;
    border-left: 1px solid #d1d5db;
    border-right: 1px solid #d1d5db;
    text-align: center;
    font-size: 16px;
    font-family: Inter, sans-serif;
    color: #1f2937;
    background: #fff;
    -moz-appearance: textfield;
}

.qty-input::-webkit-outer-spin-button,
.qty-input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.qty-input:focus {
    outline: 2px solid var(--verde-vivo);
    outline-offset: -2px;
}

/* Tabla descuentos por volumen */
.qty-discounts-table {
    margin-top: 12px;
    margin-bottom: 8px;
}

.qty-discounts-title {
    font-weight: 600;
    font-size: 13px;
    color: var(--gris-txt);
    margin-bottom: 6px;
    font-family: Inter, sans-serif;
}

.qty-discounts-table table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
    font-family: Inter, sans-serif;
}

.qty-discounts-table th {
    text-align: left;
    padding: 6px 10px;
    color: var(--gris-txt);
    font-weight: 500;
    border-bottom: 1px solid #e5e7eb;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

.qty-discounts-table td {
    padding: 6px 10px;
    border-bottom: 1px solid #f3f4f6;
}

.qty-tier-row {
    transition: background 0.2s;
}

.qty-tier-active {
    background: #f0fdf4;
}

.qty-tier-active td {
    font-weight: 600;
    color: #166534;
}

.qty-tier-savings {
    color: var(--verde-vivo);
    font-weight: 500;
}

/* Aviso cantidad mínima */
.qty-minimum-notice {
    font-size: 13px;
    color: var(--gris-txt);
    margin-top: 8px;
    font-style: italic;
    font-family: Inter, sans-serif;
}

/* Ajuste layout compra para acomodar qty selector */
.compra.compra1 {
    align-items: center;
}

/* --- card-fijo2: qty-selector + buttons uniform block --- */
.card-fijo2 .compra.compra1 .qty-selector,
.card-fijo2 .compra.compra1 .btn-a.btn1,
.card-fijo2 .compra.compra1 .compra-btn {
    width: 222px;
    box-sizing: border-box;
}

.card-fijo2 .qty-input {
    flex: 1;
    min-width: 0;
}

/* Hide volume discount table and minimum notice in sticky card */
.card-fijo2 .qty-discounts-table,
.card-fijo2 .qty-minimum-notice {
    display: none;
}

@media (max-width: 767px) {
    .qty-selector {
        margin-right: 8px;
    }

    .qty-btn {
        width: 32px;
        height: 32px;
        font-size: 16px;
    }

    .qty-input {
        width: 44px;
        height: 32px;
        font-size: 14px;
    }

    .qty-discounts-table {
        margin-top: 8px;
    }
}

/* --- Párrafos con aire --- */
.ficha-1-row-text p + p { margin-top: 24px; }
.info-row-a .text-h + .text-h { margin-top: 16px; }

/* --- Botón "más información" y modal de descripción completa --- */
.btn-mas-info {
    display: block;
    margin-top: 20px;
    margin-left: auto;
    margin-bottom: 8px;
    padding: 8px 20px;
    background: var(--verde-vivo);
    color: #fff;
    border: none;
    border-radius: 6px;
    font-size: 14px;
    font-family: Inter, sans-serif;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.2s;
}
.btn-mas-info:hover { background: var(--verde); }

.modal-descripcion-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.55);
    z-index: 9999;
    justify-content: center;
    align-items: center;
    padding: 24px;
}
.modal-descripcion-overlay.active { display: flex; }

.modal-descripcion {
    background: #fff;
    border-radius: 12px;
    max-width: 800px;
    width: 100%;
    max-height: 85vh;
    display: flex;
    flex-direction: column;
    box-shadow: 0 12px 40px rgba(0,0,0,0.25);
}
.modal-descripcion-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 20px 24px 16px;
    border-bottom: 1px solid #e5e7eb;
}
.modal-descripcion-title {
    font-family: Raleway, sans-serif;
    font-size: 18px;
    font-weight: 700;
    color: var(--gris-negro, #1f2937);
    margin: 0;
    flex: 1;
    padding-right: 16px;
}
.modal-descripcion-close {
    background: none;
    border: none;
    font-size: 28px;
    color: var(--gris-txt);
    cursor: pointer;
    line-height: 1;
    padding: 0 4px;
    flex-shrink: 0;
}
.modal-descripcion-close:hover { color: #1f2937; }
.modal-descripcion-body {
    padding: 20px 24px 24px;
    overflow-y: auto;
    font-family: Inter, sans-serif;
    font-size: 15px;
    line-height: 1.65;
    color: var(--gris-txt);
}
.modal-descripcion-body h2,
.modal-descripcion-body h3 {
    font-family: Raleway, sans-serif;
    font-size: 16px;
    font-weight: 700;
    color: var(--gris-negro, #1f2937);
    margin: 20px 0 8px;
}
.modal-descripcion-body h2:first-child,
.modal-descripcion-body h3:first-child { margin-top: 0; }
.modal-descripcion-body ul { padding-left: 20px; margin: 8px 0; }
.modal-descripcion-body li { margin-bottom: 4px; }
.modal-descripcion-body img { max-width: 100%; height: auto; border-radius: 6px; margin: 12px 0; }

@media (max-width: 767px) {
    .modal-descripcion-overlay { padding: 12px; }
    .modal-descripcion { max-height: 90vh; }
    .modal-descripcion-header { padding: 16px; }
    .modal-descripcion-body { padding: 16px; font-size: 14px; }
    .modal-descripcion-title { font-size: 16px; }
}


/* ===========================================
   CHECKOUT PAGE
   =========================================== */

.ck-main {
    max-width: 1200px;
    margin: 0 auto;
    padding: 24px 20px 60px;
    font-family: Inter, sans-serif;
}
.ck-breadcrumb {
    font-size: 13px;
    color: var(--gris-txt);
    margin-bottom: 16px;
}
.ck-breadcrumb a { color: var(--verde-vivo); text-decoration: none; }
.ck-breadcrumb a:hover { text-decoration: underline; }
.ck-title {
    font-family: Raleway, sans-serif;
    font-size: 28px;
    font-weight: 700;
    color: var(--gris-negro);
    margin-bottom: 24px;
}

/* Empty cart */
.ck-empty {
    text-align: center;
    padding: 60px 20px;
}
.ck-empty-text {
    font-size: 18px;
    color: var(--gris-txt);
    margin-bottom: 24px;
}
.ck-btn-home {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 28px;
}

/* Layout: left (form) + right (summary) */
.ck-content {
    display: grid;
    grid-template-columns: 1fr 400px;
    gap: 32px;
    align-items: start;
}

/* Sections */
.ck-section {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 20px 24px;
    margin-bottom: 20px;
}
.ck-section-header {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 16px;
}
.ck-step-num {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    background: var(--verde-vivo);
    color: #fff;
    border-radius: 50%;
    font-size: 14px;
    font-weight: 700;
    flex-shrink: 0;
}
.ck-section-title {
    font-family: Raleway, sans-serif;
    font-size: 18px;
    font-weight: 700;
    color: var(--gris-negro);
    flex: 1;
}
.ck-info-link {
    font-size: 13px;
    color: var(--verde-vivo);
    text-decoration: none;
}
.ck-info-link:hover { text-decoration: underline; }

/* Login */
.ck-login-toggle {
    background: none;
    border: 1px solid var(--verde-vivo);
    color: var(--verde-vivo);
    padding: 6px 14px;
    border-radius: 6px;
    font-size: 13px;
    cursor: pointer;
    font-family: Inter;
    transition: all 0.2s;
}
.ck-login-toggle:hover { background: var(--verde-vivo); color: #fff; }
.ck-login-toggle.ck-logged-in {
    background: #f0fdf4;
    border-color: #22c55e;
    color: #166534;
    cursor: default;
}
.ck-login-form {
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    padding: 16px;
    margin-bottom: 16px;
}
.ck-login-hint {
    font-size: 12px;
    color: var(--gris-txt);
    margin-top: 8px;
    font-style: italic;
}
.ck-login-error {
    font-size: 13px;
    color: var(--rojo);
    margin-top: 8px;
}
.ck-btn-login {
    margin-top: 12px;
    padding: 8px 20px;
    font-size: 14px;
}

/* Form */
.ck-form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px 16px;
}
.ck-form-row { display: flex; flex-direction: column; gap: 4px; }
.ck-form-row-full { grid-column: 1 / -1; }
.ck-label {
    font-size: 13px;
    font-weight: 500;
    color: var(--gris-txt);
}
.ck-input, .ck-select {
    padding: 8px 12px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 14px;
    font-family: Inter;
    color: var(--gris-negro);
    transition: border-color 0.2s;
}
.ck-input:focus, .ck-select:focus {
    outline: none;
    border-color: var(--verde-vivo);
    box-shadow: 0 0 0 2px rgba(101,164,0,0.15);
}
.ck-input-error {
    border-color: var(--rojo) !important;
    box-shadow: 0 0 0 2px rgba(203,0,67,0.15) !important;
}
.ck-subtitle {
    font-family: Raleway, sans-serif;
    font-size: 15px;
    font-weight: 600;
    color: var(--gris-negro);
    margin: 20px 0 12px;
}
.ck-textarea {
    min-height: 60px;
    resize: vertical;
    width: 100%;
}

/* Carriers */
.ck-transport-notice {
    font-size: 14px;
    color: var(--gris-txt);
    font-style: italic;
    padding: 8px 0;
}
.ck-carrier {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    margin-bottom: 8px;
    cursor: pointer;
    transition: border-color 0.2s, background 0.2s;
}
.ck-carrier:hover { border-color: var(--verde-vivo); }
.ck-carrier:has(input:checked) {
    border-color: var(--verde-vivo);
    background: #f0fdf4;
}
.ck-carrier input[type="radio"] {
    accent-color: var(--verde-vivo);
    width: 18px;
    height: 18px;
    flex-shrink: 0;
}
.ck-carrier-info { flex: 1; }
.ck-carrier-name {
    display: block;
    font-size: 14px;
    font-weight: 600;
    color: var(--gris-negro);
}
.ck-carrier-delay {
    display: block;
    font-size: 12px;
    color: var(--gris-txt);
    margin-top: 2px;
}
.ck-carrier-price {
    font-size: 15px;
    font-weight: 700;
    color: var(--verde-vivo);
    white-space: nowrap;
}
.ck-no-carriers {
    font-size: 14px;
    color: var(--rojo);
    padding: 8px 0;
}

/* Payments */
.ck-payment {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 16px;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    margin-bottom: 8px;
    cursor: pointer;
    transition: border-color 0.2s;
}
.ck-payment:hover { border-color: var(--verde-vivo); }
.ck-payment:has(input:checked) {
    border-color: var(--verde-vivo);
    background: #f0fdf4;
}
.ck-payment input[type="radio"] {
    accent-color: var(--verde-vivo);
    width: 18px;
    height: 18px;
    flex-shrink: 0;
}
.ck-payment-name {
    font-size: 14px;
    font-weight: 500;
    color: var(--gris-negro);
}
.ck-payment-desc {
    font-size: 12px;
    color: var(--gris-txt);
}

/* Summary */
.ck-summary {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 20px 24px;
    position: sticky;
    top: 20px;
}
.ck-summary-title {
    font-family: Raleway, sans-serif;
    font-size: 18px;
    font-weight: 700;
    color: var(--gris-negro);
    margin-bottom: 16px;
    padding-bottom: 12px;
    border-bottom: 2px solid var(--verde-vivo);
}

/* Cart items */
.ck-item {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
    padding: 12px 0;
    border-bottom: 1px solid #f3f4f6;
}
.ck-item-left { display: flex; gap: 10px; flex: 1; min-width: 0; }
.ck-item-img {
    width: 60px;
    height: 60px;
    object-fit: cover;
    border-radius: 6px;
    flex-shrink: 0;
    background: #f3f4f6;
}
.ck-item-img-placeholder { width: 60px; height: 60px; background: #e5e7eb; border-radius: 6px; }
.ck-item-info { min-width: 0; }
.ck-item-name {
    font-size: 13px;
    font-weight: 600;
    color: var(--gris-negro);
    line-height: 1.3;
    margin-bottom: 4px;
}
.ck-item-options {
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin-bottom: 4px;
}
.ck-item-opt {
    font-size: 11px;
    color: var(--gris-txt);
    line-height: 1.3;
}
.ck-item-price {
    font-size: 13px;
    font-weight: 600;
    color: var(--verde-vivo);
}
.ck-item-price-old {
    text-decoration: line-through;
    color: var(--gris-txt);
    font-weight: 400;
    margin-left: 6px;
}
.ck-item-name a {
    color: inherit;
    text-decoration: none;
}
.ck-item-name a:hover {
    color: var(--verde-vivo);
    text-decoration: underline;
}
.ck-item-right {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 6px;
    flex-shrink: 0;
}
.ck-item-qty {
    display: inline-flex;
    align-items: center;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    overflow: hidden;
}
.ck-qty-btn {
    width: 28px;
    height: 28px;
    border: none;
    background: #f3f4f6;
    font-size: 16px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--gris-txt);
}
.ck-qty-btn:hover { background: #e5e7eb; }
.ck-qty-input {
    width: 36px;
    height: 28px;
    border: none;
    border-left: 1px solid #d1d5db;
    border-right: 1px solid #d1d5db;
    text-align: center;
    font-size: 13px;
    font-family: Inter;
    -moz-appearance: textfield;
}
.ck-qty-input::-webkit-outer-spin-button,
.ck-qty-input::-webkit-inner-spin-button { -webkit-appearance: none; }
.ck-item-total {
    font-size: 14px;
    font-weight: 700;
    color: var(--gris-negro);
}
.ck-item-remove {
    background: none;
    border: none;
    color: #9ca3af;
    font-size: 14px;
    cursor: pointer;
    padding: 2px;
}
.ck-item-remove:hover { color: var(--rojo); }

/* Totals */
.ck-summary-totals {
    padding: 12px 0;
    border-top: 1px solid #e5e7eb;
}
.ck-total-row {
    display: flex;
    justify-content: space-between;
    font-size: 14px;
    color: var(--gris-txt);
    padding: 4px 0;
}
.ck-total-row-final {
    font-size: 18px;
    font-weight: 700;
    color: var(--gris-negro);
    padding: 12px 0 4px;
    border-top: 1px solid #e5e7eb;
    margin-top: 8px;
}
.ck-total-final { color: var(--verde-vivo); }

/* Coupon */
.ck-coupon {
    display: flex;
    gap: 8px;
    margin: 12px 0;
}
.ck-coupon-input { flex: 1; }
.ck-coupon-btn {
    padding: 8px 16px;
    background: var(--verde-vivo);
    color: #fff;
    border: none;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 600;
    font-family: Inter;
    cursor: pointer;
    white-space: nowrap;
}
.ck-coupon-btn:hover { background: var(--verde); }

/* Actions */
.ck-actions {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 16px;
}
.ck-btn-buy {
    padding: 14px 20px;
    font-size: 16px;
    font-weight: 700;
    text-align: center;
    justify-content: center;
    width: 100%;
}
.ck-btn-continue {
    padding: 10px 20px;
    background: #fff;
    border: 1px solid #d1d5db;
    border-radius: 8px;
    color: var(--gris-txt);
    font-size: 14px;
    font-family: Inter;
    cursor: pointer;
    text-align: center;
    transition: all 0.2s;
}
.ck-btn-continue:hover { border-color: var(--gris-txt); color: var(--gris-negro); }
.ck-btn-quote {
    padding: 10px 20px;
    background: #fff;
    border: 1px solid var(--verde-vivo);
    border-radius: 8px;
    color: var(--verde-vivo);
    font-size: 14px;
    font-weight: 600;
    font-family: Inter;
    cursor: pointer;
    text-align: center;
    transition: all 0.2s;
}
.ck-btn-quote:hover { background: var(--verde-vivo); color: #fff; }

.ck-legal {
    font-size: 11px;
    color: #9ca3af;
    margin-top: 12px;
    line-height: 1.4;
}

/* Modals */
.ck-modal-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.55);
    z-index: 9999;
    justify-content: center;
    align-items: center;
    padding: 24px;
}
.ck-modal-overlay.ck-modal-visible {
    display: flex;
}
.ck-modal {
    background: #fff;
    border-radius: 16px;
    padding: 40px;
    text-align: center;
    max-width: 440px;
    width: 100%;
    box-shadow: 0 12px 40px rgba(0,0,0,0.25);
}
.ck-modal-sm { max-width: 380px; padding: 32px; }
.ck-modal-icon {
    width: 64px;
    height: 64px;
    background: var(--verde-vivo);
    color: #fff;
    border-radius: 50%;
    font-size: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 20px;
}
.ck-modal-title {
    font-family: Raleway, sans-serif;
    font-size: 22px;
    font-weight: 700;
    color: var(--gris-negro);
    margin-bottom: 12px;
}
.ck-modal-text {
    font-size: 14px;
    color: var(--gris-txt);
    margin-bottom: 24px;
    line-height: 1.5;
}
.ck-modal-btn {
    display: inline-flex;
    padding: 12px 28px;
    font-size: 15px;
}

/* Responsive */
@media (max-width: 900px) {
    .ck-content {
        grid-template-columns: 1fr;
    }
    .ck-summary {
        position: static;
    }
}
@media (max-width: 600px) {
    .ck-form-grid {
        grid-template-columns: 1fr;
    }
    .ck-section { padding: 16px; }
    .ck-main { padding: 16px 12px 40px; }
    .ck-title { font-size: 22px; }
    .ck-item-left { flex-direction: column; }
}

/* ==========================================================================
   RESPONSIVE MÓVIL (≤767px) — Todas las fases
   ========================================================================== */

/* --- Hamburguesa: ocultar en desktop --- */
@media (min-width: 768px) {
    .mobile-nav-toggle,
    .mobile-nav-overlay { display: none !important; }
    .mobile-sidebar-toggle { display: none !important; }
}

@media (max-width: 767px) {

    /* ======================================================================
       HERO — ocultar texto en móvil
       ====================================================================== */
    .home-hero-txt { display: none !important; }

    /* ======================================================================
       FASE 1: Header compacto + Hamburguesa drawer
       ====================================================================== */

    /* Reducir gap del body entre secciones */
    body {
        gap: 24px !important;
    }

    /* Eliminar gap entre header y contenido */
    .header-a,
    .header-b {
        margin-bottom: -24px !important;
    }

    /* Ocultar banner verde */
    .header-top1,
    .header-top2 { display: none; }

    /* Header: sticky glassmorphism (ambos tipos: header-a y header-b) */
    .header-a,
    .header-b {
        position: sticky !important;
        top: 0 !important;
        z-index: 9990 !important;
        background: rgba(255, 255, 255, 0.72) !important;
        -webkit-backdrop-filter: blur(16px) saturate(180%) !important;
        backdrop-filter: blur(16px) saturate(180%) !important;
        border-bottom: 1px solid rgba(255, 255, 255, 0.3) !important;
        box-shadow: 0 1px 8px rgba(0, 0, 0, 0.06) !important;
    }

    /* Header container: fila logo + hamburguesa */
    .header-container1,
    .header-container2 {
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        align-items: center !important;
        justify-content: space-between !important;
        gap: 0 !important;
        padding: 8px 16px !important;
        padding-right: 56px !important; /* espacio para la hamburguesa */
    }

    /* Logo compacto */
    .header-logo1,
    .header-logo2 { width: 140px !important; height: auto !important; }

    /* Ocultar buscador, contacto, carrito en la barra */
    .header-buscador1.card1,
    .header-contacto1,
    .header-contacto2,
    .header-carrito-compra1,
    .header-carrito-compra2 { display: none !important; }

    /* Buscador dentro del drawer: sobreescribir display:none */
    .header-menu1 .header-buscador1.card1,
    .header-menu2 .header-buscador1.card1 {
        display: block !important;
        flex: 0 0 auto !important;
        width: 100% !important;
        max-width: none !important;
        height: auto !important;
        padding: 12px 16px !important;
        border-bottom: 1px solid #f0f0f0;
        box-sizing: border-box;
        position: relative;
    }
    .header-menu1 .header-buscador1 .search-input,
    .header-menu2 .header-buscador1 .search-input {
        display: block !important;
        width: 100% !important;
        height: 40px !important;
        padding: 10px 36px 10px 12px !important;
        border: 1px solid #e5e7eb !important;
        border-radius: 8px !important;
        font-size: 14px !important;
        box-sizing: border-box !important;
        background: #fff !important;
    }
    /* Lupa: reposicionar dentro del input (no del container con padding) */
    .header-menu1 .header-buscador1 .header-graphic1,
    .header-menu2 .header-buscador1 .header-graphic1 {
        right: 26px !important;
    }
    .header-menu1 .header-buscador1 .search-results,
    .header-menu2 .header-buscador1 .search-results {
        position: relative !important;
        top: auto !important;
        box-shadow: none !important;
        border: 1px solid #e5e7eb;
        border-top: none;
    }

    /* Nav como drawer lateral derecho */
    .header-menu1,
    .header-menu2 {
        position: fixed;
        top: 0;
        right: -100%;
        width: 80vw;
        max-width: 320px;
        height: 100vh;
        height: 100dvh;
        background: #fff;
        z-index: 10000;
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
        justify-content: flex-start !important;
        gap: 0 !important;
        padding: 56px 0 24px !important;
        box-shadow: -4px 0 20px rgba(0,0,0,0.15);
        transition: right 0.3s ease;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }

    /* Botón X cerrar dentro del drawer */
    .mobile-drawer-close {
        position: absolute;
        top: 12px;
        right: 12px;
        width: 36px;
        height: 36px;
        background: none;
        border: none;
        cursor: pointer;
        z-index: 1;
        display: flex;
        align-items: center;
        justify-content: center;
    }
    .mobile-drawer-close::before,
    .mobile-drawer-close::after {
        content: '';
        position: absolute;
        width: 20px;
        height: 2px;
        background: var(--gris-negro, #1f2937);
        border-radius: 2px;
    }
    .mobile-drawer-close::before { transform: rotate(45deg); }
    .mobile-drawer-close::after { transform: rotate(-45deg); }
    .header-menu1.mobile-open,
    .header-menu2.mobile-open { right: 0; }

    /* Links dentro del drawer */
    .header-menu1 > a,
    .header-menu2 > a {
        padding: 14px 24px !important;
        border-bottom: 1px solid #f0f0f0;
        font-size: 15px !important;
        text-align: left !important;
        color: var(--gris-negro, #1f2937) !important;
        text-decoration: none;
    }
    .header-menu1 > a:hover,
    .header-menu2 > a:hover {
        background: #f9fafb;
        color: var(--verde-vivo) !important;
    }

    /* Hamburguesa: 3 barras, anclada a la derecha del header, centrada vertical */
    .mobile-nav-toggle {
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        gap: 5px;
        width: 40px;
        height: 40px;
        background: none;
        border: none;
        cursor: pointer;
        padding: 8px;
        z-index: 10001;
        position: absolute;
        right: 12px;
        top: 50%;
        transform: translateY(-50%);
    }
    .mobile-nav-toggle span {
        display: block;
        width: 24px;
        height: 2px;
        background: var(--gris-negro, #1f2937);
        border-radius: 2px;
        transition: transform 0.3s ease, opacity 0.3s ease;
    }
    .mobile-nav-toggle.active span:nth-child(1) {
        transform: translateY(7px) rotate(45deg);
    }
    .mobile-nav-toggle.active span:nth-child(2) { opacity: 0; }
    .mobile-nav-toggle.active span:nth-child(3) {
        transform: translateY(-7px) rotate(-45deg);
    }

    /* Overlay oscuro */
    .mobile-nav-overlay {
        display: none;
        position: fixed;
        inset: 0;
        background: rgba(0,0,0,0.4);
        z-index: 9999;
    }
    .mobile-nav-overlay.active { display: block; }


    /* ======================================================================
       FASE 2: Sidebar → dentro del drawer hamburguesa
       ====================================================================== */

    /* Sidebar dentro del drawer: estilos */
    .header-menu1 .menu-container1,
    .header-menu2 .menu-container1 {
        width: 100% !important;
        max-width: none !important;
        padding: 0 24px !important;
        border-top: 1px solid #e5e7eb;
        box-sizing: border-box;
        gap: 0 !important;
    }

    /* Categorías y filtros: colapsados por defecto */
    .menu-container-categorias,
    .menu-container-filtros {
        max-height: 0;
        overflow: hidden;
        transition: max-height 0.3s ease;
        padding: 0 !important;
        margin: 0 !important;
    }
    .menu-container-categorias.mobile-expanded,
    .menu-container-filtros.mobile-expanded {
        max-height: 5000px;
    }

    /* Títulos duplicados del sidebar (ya están en los toggles) */
    .menu-container-text1,
    .menu-container-text2 { display: none !important; }

    /* Contacto del sidebar: ocultar en móvil */
    .contacto2,
    .card-contacto,
    .menu-container-fijo { display: none !important; }

    /* Ocultar bloque descripción en cards de categoría */
    [class*="card-descripcion"] { display: none !important; }

    /* --- Categoría: corregir márgenes y grid --- */

    /* Breadcrumbs: quitar padding-left asimétrico */
    .text-bread-crumbs-row { padding-left: 0 !important; padding-right: 0 !important; }

    /* Banner: quitar padding-left enorme */
    .banner1 { padding-left: 16px !important; padding-right: 16px !important; }

    /* Secciones internas: igualar padding */
    .info-row-categorias,
    .info-row-faqs,
    .info-row-cierre { padding-left: 0 !important; padding-right: 0 !important; }

    /* Grid de productos: 2 columnas en móvil (especificidad >= línea 589) */
    .casa-prefabricadas .casa-prefabricadas-casas,
    .casa-prefabricadas-casas {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 12px !important;
    }

    /* Toggle buttons inyectados por JS */
    .mobile-sidebar-toggle {
        display: flex;
        align-items: center;
        justify-content: space-between;
        width: 100%;
        padding: 12px 0;
        background: none;
        border: none;
        border-bottom: 1px solid #e5e7eb;
        cursor: pointer;
        font-family: Raleway, sans-serif;
        font-weight: 700;
        font-size: 15px;
        color: var(--verde-vivo, #65a400);
    }
    .mobile-sidebar-toggle::after {
        content: '+';
        font-size: 20px;
        font-weight: 400;
    }
    .mobile-sidebar-toggle.expanded::after {
        content: '\2212';
    }


    /* ======================================================================
       FASE 3: Ficha producto en una columna
       ====================================================================== */

    .ficha-1-row-contenedor1 {
        flex-direction: column !important;
        gap: 24px !important;
    }
    .ficha-1-row-txt {
        width: 100% !important;
        max-width: none !important;
        flex-shrink: 1 !important;
    }
    .ficha-1-row-imagen {
        width: 100% !important;
    }

    /* Card precio+contacto: apilar */
    .card-fijo1,
    .card-fijo2 { flex-direction: column !important; gap: 16px !important; }
    .card-fijo1 > .izq-a,
    .card-fijo2 > .izq-a,
    .card-fijo1 > .contacto,
    .card-fijo2 > .contacto { width: 100% !important; }

    /* Bloque precio: full-width centrado */
    .izq-a.izq1 {
        align-items: stretch !important;
        text-align: center !important;
    }
    .izq-precio {
        width: 100% !important;
        text-align: center !important;
        align-items: center !important;
    }
    .izq-ahorro {
        justify-content: center !important;
    }
    .offer-countdown {
        justify-content: center !important;
    }

    /* Botones CTA: apilar, full-width */
    .compra,
    .compra1 {
        flex-direction: column !important;
        gap: 8px !important;
        width: 100% !important;
    }
    .compra .btn-b,
    .compra .btn-a,
    .compra1 .btn-b,
    .compra1 .btn-a { width: 100% !important; text-align: center; }

    /* Iconos configurador: 2 columnas, quinto centrado, compacto */
    .row-configura-icons-grid {
        display: grid !important;
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 4px !important;
        justify-items: center;
        padding: 10px !important;
    }
    .row-configura-icon-divider { display: none !important; }
    .row-configura-icon-item {
        padding: 4px 8px !important;
        gap: 4px !important;
    }
    .row-configura-icon-img {
        width: 28px !important;
        height: 28px !important;
    }
    .row-configura-icon-label {
        font-size: 12px !important;
        margin-top: 0 !important;
    }
    .row-configura-icon-item:last-child {
        grid-column: 1 / -1;
    }

    /* Galería thumbs: 3 columnas fluidas */
    .ficha-1-row-col-bottom {
        grid-template-columns: repeat(3, 1fr) !important;
        gap: 8px !important;
    }

    /* Título producto */
    .ficha-1-row-subtitle-casa {
        font-size: 20px !important;
        line-height: 1.3 !important;
    }

    /* Sección padding (asimétrico como .info-row) */
    .ficha-1-row.section1 {
        padding-left: 10px !important;
        padding-right: 24px !important;
    }

    /* Iconos transporte/oferta: no desbordar */
    .ficha-1-row-icons {
        flex-wrap: wrap !important;
        gap: 8px !important;
        justify-content: center !important;
    }

    /* Descripción 2 columnas → 1 columna */
    .row-info-contenedor2 {
        flex-direction: column !important;
        gap: 24px !important;
    }

    /* Specs bar: wrap */
    #specs-bar {
        flex-wrap: wrap !important;
        gap: 8px !important;
    }

    /* Sticky card inferior: igual que desktop, full-width bottom */
    .card-fijo2 {
        bottom: 0 !important;
        right: 0 !important;
        left: 0 !important;
        width: 100% !important;
        max-width: none !important;
        border-radius: 12px 12px 0 0 !important;
        padding: 16px !important;
        box-shadow: 0 -2px 10px rgba(0,0,0,0.15) !important;
    }
    /* Precio y descuento en fila, ocultar countdown */
    .card-fijo2 .izq-precio {
        container-type: normal !important;
        flex-direction: row !important;
        flex-wrap: wrap !important;
        align-items: baseline !important;
        gap: 6px 10px !important;
    }
    .card-fijo2 .offer-countdown { display: none !important; }
    /* Botones sticky: Personaliza arriba, Presupuesto + icono carrito en fila debajo */
    .card-fijo2 .compra.compra1 {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: wrap !important;
        gap: 8px !important;
    }
    .card-fijo2 .btn-personaliza {
        flex: 1 0 100% !important;
    }
    .card-fijo2 .compra-btn {
        flex: 1 1 0% !important;
        width: auto !important;
        font-size: 13px !important;
    }
    .card-fijo2 .btn-a.btn1 {
        flex: 0 0 auto !important;
        width: auto !important;
        padding: 10px 16px !important;
    }
    .card-fijo2 .btn-a.btn1 .btn-label1 { display: none !important; }
    .card-fijo2 .btn-a.btn1 .btn-icon1 {
        margin: 0 !important;
    }
    /* Contacto en sticky móvil: ocultar mail, teléfono+whatsapp en fila */
    .card-fijo2 .contacto.contacto3 {
        container-type: normal !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        gap: 16px !important;
    }
    .card-fijo2 .contacto.contacto3 .contacto-mail { display: none !important; }
    .card-fijo2 .contacto.contacto3 .phone-a,
    .card-fijo2 .contacto.contacto3 .whats-app-a {
        flex: 1 !important;
    }

    /* Contact-only sticky bar: full-width bottom on mobile */
    .card-fijo2--contact-only {
        bottom: 0 !important;
        right: 0 !important;
        left: 0 !important;
        width: 100% !important;
        max-width: none !important;
        border-radius: 12px 12px 0 0 !important;
        padding: 12px 16px !important;
    }

    /* Productos relacionados */
    .row-casa-prefabricadas-casas2 {
        flex-direction: column !important;
        gap: 16px !important;
    }
    .row-casa-prefabricadas-casas2 .card-a {
        width: 100% !important;
    }


    /* ======================================================================
       FASE 4: Footer compacto con acordeón
       ====================================================================== */

    .menu-footer,
    .menu-footer2,
    .footer-menu2 {
        flex-direction: column !important;
        gap: 0 !important;
    }

    /* Cada columna: borde inferior */
    .footer-b .menu-footer-col,
    .footer-b .col-a,
    .footer-b .col-b,
    .footer-b .col-c,
    .footer-b .col-d,
    .footer-b .footer-col2,
    .footer-b .col8,
    .footer-b .col9,
    .footer-b .col10 {
        border-bottom: 1px solid #e5e7eb;
        padding: 0 16px !important;
    }

    /* Título como trigger con indicador + */
    .footer-b .text-e {
        padding: 14px 0 !important;
        cursor: pointer;
        position: relative;
        padding-right: 28px !important;
        margin: 0;
    }
    .footer-b .text-e::after {
        content: '+';
        position: absolute;
        right: 0;
        top: 50%;
        transform: translateY(-50%);
        font-size: 18px;
        font-weight: 400;
        color: var(--gris-txt, #4b5563);
    }

    /* Links ocultos por defecto */
    .footer-b .menu-footer-col > a,
    .footer-b .menu-footer-col > .menu-footer-text-caseta,
    .footer-b .col-a > a,
    .footer-b .col-c > a,
    .footer-b .col-d > a,
    .footer-b .footer-col2 > p:not(.text-e),
    .footer-b .footer-col2 > span,
    .footer-b .footer-col2 > .footer-garajes-de2,
    .footer-b .col-b > p:not(.text-e),
    .footer-b .col8 > p:not(.text-e),
    .footer-b .col9 > a,
    .footer-b .col10 > a {
        max-height: 0;
        overflow: hidden;
        padding-top: 0 !important;
        padding-bottom: 0 !important;
        margin: 0;
        transition: max-height 0.3s ease, padding 0.3s ease;
    }

    /* Estado expandido */
    .footer-b .footer-col-expanded > a,
    .footer-b .footer-col-expanded > .menu-footer-text-caseta,
    .footer-b .footer-col-expanded > p:not(.text-e),
    .footer-b .footer-col-expanded > span,
    .footer-b .footer-col-expanded > .footer-garajes-de2 {
        max-height: 500px;
        padding: 8px 10px !important;
    }
    .footer-b .footer-col-expanded > .text-e::after {
        content: '\2212';
    }

    /* Copyright: centrar */
    .footer-tarjetas3 {
        text-align: center;
        padding: 16px !important;
    }
    .footer-tarjetas4 { justify-content: center; }

    /* Secciones footer: padding reducido */
    .footer-container3,
    .footer-container4 { padding: 16px !important; }


    /* ======================================================================
       FASE 5: Home y cards — Polish
       ====================================================================== */

    /* Home categorías: apilar */
    .row-categorias-container {
        flex-direction: column !important;
        gap: 16px !important;
    }
    .row-categorias-container > * { width: 100% !important; }

    /* Imágenes de categoría: contener altura */
    .column-foto img,
    .row-categorias-img img {
        max-height: 200px;
        object-fit: cover;
        width: 100%;
    }

    /* Cards de producto en 1 columna */
    .card-b .card-img2 { aspect-ratio: 16/10 !important; }
    .card-b .card-txt2 { padding: 12px !important; }

    /* Padding general de secciones */
    .section1,
    .section2,
    .section3,
    .section4,
    .section5 { padding-inline: 16px !important; }

    /* Subcategorías grid */
    .row-casa-prefabricadas-casas { gap: 12px !important; }
    .row-casa-prefabricadas-casas .card-a { width: 100% !important; }

    /* Breadcrumbs: reducir margen */
    .text-bread-crumbs-row,
    .ficha-1-row-text-bread { margin: 8px 0 !important; font-size: 12px !important; }

    /* Info row container: sin margen negativo */
    .info-row-container {
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    /* Categoría main content: sin padding derecho */
    .info-row-categoria {
        padding-right: 0 !important;
    }

} /* fin @media (max-width: 767px) */

/* ── Social media links in footer ── */
.footer-rrss-links {
	display: flex;
	align-items: center;
	gap: 16px;
}
.footer-rrss-links a {
	color: var(--gris-txt);
	display: inline-flex;
	align-items: center;
	transition: color 0.2s ease;
}
.footer-rrss-links a:hover {
	color: var(--verde-vivo);
}

/* ===========================================
   STOCK MODAL — Out of stock notification
   =========================================== */
.stock-modal-overlay {
	position: fixed;
	inset: 0;
	z-index: 2000;
	background: rgba(0, 0, 0, 0.5);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.3s, visibility 0.3s;
}
.stock-modal-overlay.stock-modal-visible {
	opacity: 1;
	visibility: visible;
}
.stock-modal {
	background: #fff;
	border-radius: 12px;
	box-shadow: 0 8px 40px rgba(0, 0, 0, 0.15);
	width: 100%;
	max-width: 420px;
	padding: 32px;
	text-align: center;
	transform: translateY(20px);
	transition: transform 0.3s;
	position: relative;
}
.stock-modal-overlay.stock-modal-visible .stock-modal {
	transform: translateY(0);
}
.stock-modal-close {
	position: absolute;
	top: 12px;
	right: 12px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: transparent;
	border: 1px solid #f0f0f0;
	border-radius: 6px;
	width: 36px;
	height: 36px;
	cursor: pointer;
	color: #4b5563;
	transition: background 0.2s;
}
.stock-modal-close:hover {
	background: #f5f5f5;
}
.stock-modal-icon {
	color: var(--rojo, #cb0043);
	margin-bottom: 16px;
}
.stock-modal-title {
	font-family: 'Raleway', sans-serif;
	font-weight: 700;
	font-size: 20px;
	color: #141618;
	margin: 0 0 12px;
}
.stock-modal-text {
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	color: #4b5563;
	margin: 0 0 16px;
	line-height: 1.5;
}
.stock-modal-items {
	list-style: none;
	padding: 12px 16px;
	margin: 0 0 20px;
	background: #fef2f2;
	border: 1px solid rgba(203, 0, 67, 0.15);
	border-radius: 8px;
	text-align: left;
}
.stock-modal-items li {
	font-family: 'Inter', sans-serif;
	font-size: 13px;
	color: #141618;
	padding: 4px 0;
}
.stock-modal-items li + li {
	border-top: 1px solid rgba(203, 0, 67, 0.08);
}
.stock-modal-cta-text {
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	color: #4b5563;
	margin: 0 0 16px;
}
.stock-modal-quote-btn {
	display: inline-block;
	font-family: 'Raleway', sans-serif;
	font-weight: 700;
	font-size: 14px;
	color: #fff;
	background: var(--verde-vivo, #65a400);
	border: none;
	border-radius: 8px;
	padding: 12px 32px;
	cursor: pointer;
	transition: background 0.2s;
}
.stock-modal-quote-btn:hover {
	background: #578c00;
}
@media (max-width: 600px) {
	.stock-modal-overlay {
		padding: 0;
		align-items: flex-end;
	}
	.stock-modal {
		max-width: 100%;
		border-radius: 16px 16px 0 0;
		padding: 24px 20px 32px;
	}
}
