  :root {
            --brand-primary: #C84B0C;
            --brand-secondary: #8B2E00;
            --brand-accent: #F0A040;
            --brand-earth: #4A3728;
            --brand-smoke: #F7F4F0;
            --ink: #1A1208;
            --ink-60: rgba(26, 18, 8, 0.6);
            --ink-20: rgba(26, 18, 8, 0.12);
            --white: #FFFFFF;
            --off-white: #FAF8F5;
            --font-display: 'Oswald', sans-serif;
            --font-hero: 'Bebas Neue', sans-serif;
            --font-body: 'Nunito Sans', sans-serif;
            --radius-sm: 4px;
            --radius-md: 8px;
            --radius-lg: 16px;
            --shadow-warm: 0 4px 24px rgba(200, 75, 12, 0.15);
            --shadow-deep: 0 8px 40px rgba(26, 18, 8, 0.18);
            --ease: cubic-bezier(0.4, 0, 0.2, 1);
            --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
        } 
 .anuncio-modal {
        display: none;
        /* Oculto por defecto */
        position: fixed;
        z-index: 9999;
        left: 0;
        top: 0;
        width: 100%;
        height: 100%;
        background-color: rgba(0, 0, 0, 0.6);
        /* Fondo oscuro */
    }

    .anuncio-contenido {
        position: absolute;
        top: 50%;
        /* Centra verticalmente */
        left: 50%;
        /* Centra horizontalmente */
        transform: translate(-50%, -50%);
        background: transparent;
        border: none;
        width: 80%;
        max-width: 500px;
        text-align: center;
    }

    .anuncio-img {
        width: 100%;
        height: auto;
        border-radius: 10px;
    }

    .cerrar {
        position: absolute;
        top: -15px;
        right: -15px;
        background: white;
        color: black;
        font-size: 24px;
        font-weight: bold;
        border-radius: 50%;
        padding: 5px 10px;
        cursor: pointer;
    }

    .cerrar:hover {
        background: red;
        color: white;
    }

    /* Estilos adicionales para el formulario de contacto */
    .appointment-box {
        background: #ffffff;
        padding: 40px;
        border-radius: 10px;
        box-shadow: 0 5px 30px rgba(0, 0, 0, 0.1);
    }


    .title-box span {
        color: #666;
        font-size: 15px;
        line-height: 1.6;
        display: block;
        margin-bottom: 30px;
    }

    .form-section {
        margin-bottom: 30px;
        padding-bottom: 25px;
        border-bottom: 1px solid #e8e8e8;
    }

    .form-section:last-of-type {
        border-bottom: none;
    }

    .section-title {
        color: #c8402e;
        font-size: 18px;
        font-weight: 600;
        margin-bottom: 20px;
        padding-left: 15px;
        border-left: 4px solid #c8402e;
    }

    .single-box {
        margin-bottom: 20px;
    }

    .single-box input[type="text"],
    .single-box input[type="email"],
    .single-box input[type="tel"],
    .single-box input[type="number"],
    .single-box select,
    .single-box textarea {
        width: 100%;
        padding: 14px 20px;
        border: 1px solid #e0e0e0;
        border-radius: 6px;
        font-size: 15px;
        transition: all 0.1s ease;
        background: #fafafa;
    }

    .single-box label {
        display: block;
        color: #000000ff;
        font-weight: 600;
        margin-bottom: 8px;
        font-size: 14px;
    }

    .help-text {
        display: block;
        color: #999;
        font-size: 12px;
        margin-top: 5px;
        font-style: italic;
    }

    .checkbox-group {
        display: flex;
        flex-wrap: wrap;
        gap: 15px;
    }

    .checkbox-label {
        display: flex;
        align-items: center;
        cursor: pointer;
        padding: 10px 15px;
        border: 1px solid #e0e0e0;
        border-radius: 6px;
        transition: all 0.3s ease;
        background: #fafafa;
        flex: 0 0 calc(50% - 8px);
    }

    .checkbox-label:hover {
        border-color: #c8402e;
        background: #fff;
    }

    .checkbox-label input[type="checkbox"] {
        margin-right: 10px;
        width: 18px;
        height: 18px;
        cursor: pointer;
        accent-color: #c8402e;
    }

    .checkbox-label span {
        font-size: 14px;
        color: #2d2d2d;
        font-weight: 400;
    }

    .privacy-check {
        border: none;
        padding: 0;
        background: transparent;
    }

    .privacy-check span {
        font-size: 13px;
        color: #666;
    }

    .privacy-check a {
        color: #c8402e;
        text-decoration: underline;
    }

    .error-message {
        display: block;
        color: #ae3d02;
        font-size: 12px;
        margin-top: 5px;
    }

    .btn-one {
        background: #ee7827;
        color: #ffffff;
        padding: 15px 40px;
        border: none;
        border-radius: 6px;
        font-size: 16px;
        font-weight: 600;
        cursor: pointer;
        transition: all 0.1s ease;
        display: inline-flex;
        align-items: center;
        gap: 10px;
        width: 100%;
        align-items: center;
    }

    .btn-one-inicio {
        background: #9b5a2e;
        color: #ffffff;
        padding: 15px 40px;
        border: none;
        border-radius: 6px;
        font-size: 16px;
        font-weight: 600;
        cursor: pointer;
        transition: all 0.1s ease;
        display: inline-flex;
        align-items: center;
        gap: 10px;
        width: 80%;
        align-items: center;
    }

    .btn-one:hover {
        background: #ee7827;
        transform: translateY(-2px);
        box-shadow: 0 5px 20px #f4e6c5;
    }

    @media (max-width: 768px) {
        .appointment-box {
            padding: 25px;
        }

        .checkbox-label {
            flex: 0 0 100%;
        }

        .title-box h2 {
            font-size: 24px;
        }
    }

    .appointment-box {
        max-width: 800px;
        margin: auto;
    }

    .appointment-area {
        background-image: url('images/resources/DisenoOscuro.webp');
        background-size: cover;
        background-position: center;
        background-attachment: fixed;
        position: relative;
        padding: 80px 0;
        min-height: 100vh;
    }

    /* Overlay de transparencia sobre el fondo */
    .appointment-area::before {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        background: linear-gradient(135deg, #f4e6c565 0%, #f4e6c598 100%);
        z-index: 0;
    }

    /* Asegurar que el contenido esté sobre el overlay */
    .appointment-area .container-fluid {
        position: relative;
        z-index: 1;
    }

    /* MODIFICAR: Appointment box con sombra mejorada */
    .appointment-box {
        background: #ffffff;
        padding: 0;
        /* Quitar padding aquí */
        border-radius: 20px;
        box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
        max-width: 900px;
        margin: auto;
        overflow: hidden;
        animation: slideInUp 0.8s ease-out;
    }

    @keyframes slideInUp {
        from {
            opacity: 0;
            transform: translateY(50px);
        }

        to {
            opacity: 1;
            transform: translateY(0);
        }
    }

    /* NUEVO: Header del formulario con gradiente */
    .title-box {
        background: linear-gradient(135deg, #ee7827 0%, #ee7827 100%);
        padding: 50px 40px;
        text-align: center;
        position: relative;
        overflow: hidden;
    }

    .title-box::before {
        content: '';
        position: absolute;
        top: -50%;
        right: -50%;
        width: 200%;
        height: 200%;
        animation: pulse 3s ease-in-out infinite;
    }

    @keyframes pulse {

        0%,
        100% {
            transform: scale(1);
        }

        50% {
            transform: scale(1.1);
        }
    }

    /* MODIFICAR: Títulos del header */
    .title-box h2 {
        color: #ffffff !important;
        /* Blanco para contrastar con el gradiente */
        font-size: 42px;
        font-weight: 700;
        margin-bottom: 15px;
        position: relative;
        z-index: 1;
        text-transform: uppercase;
        letter-spacing: 1px;
    }

    .title-box span {
        color: rgba(255, 255, 255, 0.95) !important;
        /* Blanco con opacidad */
        font-size: 18px;
        position: relative;
        z-index: 1;
        display: block;
        max-width: 700px;
        margin: 0 auto;
        line-height: 1.6;
    }

    /* NUEVO: Contenido del formulario con padding */
    .appointment {
        padding: 50px 40px;
        background: #ffffff;
    }

    /* MODIFICAR: Inputs con efectos mejorados */
    .single-box input[type="text"]:focus,
    .single-box input[type="email"]:focus,
    .single-box input[type="tel"]:focus,
    .single-box input[type="number"]:focus,
    .single-box select:focus,
    .single-box textarea:focus {
        outline: none;
        border-color: #ee7827;
        background: #ffffff;
        box-shadow: 0 0 0 4px rgba(13, 71, 161, 0.1);
        transform: translateY(-2px);
    }

    /* MODIFICAR: Checkboxes con mejor hover */
    .checkbox-label:hover {
        border-color: #ee7827;
        background: #f5f5f5;
        transform: translateX(5px);
    }

    /* MODIFICAR: Section titles con color industrial */
    .section-title {
        color: #ee7827 !important;
        /* Azul industrial */
        font-size: 24px;
        font-weight: 700;
        margin-bottom: 30px;
        padding-left: 20px;
        border-left: 5px solid #ee7827;
        text-transform: uppercase;
        letter-spacing: 0.5px;
    }

    /* MODIFICAR: Form sections con mejor espaciado */
    .form-section {
        margin-bottom: 45px;
        padding-bottom: 35px;
        border-bottom: 2px solid #e8eaf6;
    }

    /* NUEVO: Checkbox de privacidad destacado */
    .checkbox-label.privacy-check {
        background: #e3f2fd !important;
        border: 2px solid #f4e6c5 !important;
        padding: 14px 18px !important;
        border-radius: 10px;
    }

    .privacy-check a {
        color: #ee7827 !important;
        text-decoration: none;
        font-weight: 600;
    }

    .privacy-check a:hover {
        text-decoration: underline;
    }

    /* Responsive mejorado */
    @media (max-width: 768px) {
        .appointment-area {
            padding: 40px 0;
        }

        .title-box {
            padding: 35px 25px;
        }

        .title-box h2 {
            font-size: 32px;
        }

        .title-box span {
            font-size: 16px;
        }

        .appointment {
            padding: 35px 25px;
        }

        .section-title {
            font-size: 20px;
        }

        .btn-one {
            padding: 16px 30px;
            font-size: 16px;
        }
    }

    @media (max-width: 480px) {
        .title-box h2 {
            font-size: 26px;
        }
    }

    .main-slider {
        min-height: 700px;
    }
     /* ===== Cotización Rápida — botón flotante ===== */
/* ===== Cotización Rápida — botón flotante ===== */
.gn-qq {
    position: fixed;
    right: 24px;
    bottom: 157px; /* ajustar: bottom del .whatsapp-float + su alto + 16px de separación */
    z-index: 999;
    display: flex;
    align-items: center;
    gap: 12px;
    opacity: 0;
    transform: translateY(16px);
    animation: gn-qq-in 0.6s var(--ease) 1.2s forwards;
}

@keyframes gn-qq-in {
    to { opacity: 1; transform: translateY(0); }
}

.gn-qq__btn {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-secondary) 100%);
    color: var(--white);
    font-size: 1.25rem;
    box-shadow: var(--shadow-deep);
    transition: var(--ease);
    order: 2;
}
     .gn-qq__btn::before {
            content: '';
            position: absolute;
            inset: 0;
            border-radius: 50%;
          
        }
.gn-qq__btn:hover {
    background: linear-gradient(135deg, var(--brand-accent) 0%, var(--brand-earth) 100%);
    transform: translateY(-4px) scale(1.04);
}

.gn-qq__bubble {
 

    display: flex;
    align-items: center;
    gap: 10px;
    background: var(--white);
    border: 1px solid var(--ink-20);
    border-radius: 999px;
    padding: 12px 14px 12px 18px;
    box-shadow: var(--shadow-warm);
    white-space: nowrap;
    font-size: 0.88rem;
    font-weight: 600;
    color: var(--ink);
     transition: opacity .4s ease, transform .4s ease;
}

.gn-qq__bubble.is-hidden{
    opacity:0;
    transform:translateX(12px);
    pointer-events:none;
}
.gn-qq__bubble-close {
    border: none;
    background: var(--off-white);
    color: var(--ink-60);
    width: 24px;
    height: 24px;
    border-radius: 50%;
    font-size: 0.65rem;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    flex-shrink: 0;
    transition: var(--ease);
}

.gn-qq__bubble-close:hover {
    background: var(--ink-20);
    color: var(--ink);
}


/* ===== Modal ===== */
.gn-modal {
    position: fixed;
    inset: 0;
    z-index: 1200;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
}

.gn-modal[hidden] { display: none; }

.gn-modal__overlay {
    position: absolute;
    inset: 0;
    background: rgba(9, 15, 104, 0.55);
    backdrop-filter: blur(3px);
    opacity: 0;
    transition: opacity 0.3s var(--ease);
}

.gn-modal.is-open .gn-modal__overlay { opacity: 1; }

.gn-modal__dialog {
    position: relative;
    background: var(--brand-smoke);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-deep);
    width: 100%;
    max-width: 640px;
    max-height: 90vh;
    overflow-y: auto;
    padding: 44px 40px 36px;
    opacity: 0;
    transform: translateY(24px) scale(0.98);
    transition: opacity 0.35s var(--ease), transform 0.35s var(--ease);
}

.gn-modal.is-open .gn-modal__dialog {
    opacity: 1;
    transform: translateY(0) scale(1);
}

.gn-modal__close {
    position: absolute;
    top: 18px;
    right: 18px;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: 1px solid var(--brand-primary);
    background: var(--brand-smoke);
    color: var(--ink-60);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.25s var(--ease);
}
.gn-modal__close:hover {
    background: var(--brand-accent);
    border-color: var(--brand-accent);
    color: var(--brand-smoke);
    transform: rotate(90deg);
}

.gn-modal__head h3 { color: var(--brand-primary); margin: 8px 0; }
.gn-modal__head p { color: var(--ink-60); margin: 0; font-size: 0.95rem; }

.gn-field-error {
    color: #c0392b;
    font-size: 0.8rem;
    margin-top: 6px;
    min-height: 1em;
}

.gn-submit-btn__spinner { display: inline-flex; align-items: center; gap: 8px; }
.gn-submit-btn[disabled] { opacity: 0.75; cursor: not-allowed; }

.gn-modal__feedback {
    text-align: center;
    padding: 32px 16px;
}

.gn-modal__feedback i {
    font-size: 2.4rem;
    margin-bottom: 12px;
}

.gn-modal__feedback--success i { color: var(--brand-accent); }
.gn-modal__feedback--success h4 { color: var(--brand-primary); margin-bottom: 8px; }
.gn-modal__feedback--error { background: #fdecea; border-radius: var(--radius-sm); color: #c0392b; }
.gn-modal__feedback--error i { color: #c0392b; }

@media (max-width: 575px) {
    .gn-modal__dialog { padding: 32px 22px 28px; }
}