
        /* --- 1. Layout General y Mejoras --- */
        .contact-layout {
            display: grid;
            grid-template-columns: 1fr;
            gap: 3rem;
            margin-top: 1rem;
        }

        /* --- 2. Información de Contacto con Iconos --- */
        .contact-info h3 {
            margin-bottom: 2rem;
        }
        .info-item {
            display: flex;
            align-items: flex-start;
            gap: 1rem;
            margin-bottom: 1.5rem;
        }
        .info-item svg {
            width: 24px;
            height: 24px;
            color: var(--color-accent);
            flex-shrink: 0; /* Evita que el icono se encoja */
            margin-top: 4px;
        }
        .info-item a {
            color: var(--color-primary);
            font-weight: 700;
        }
        .info-item a:hover {
            color: var(--color-accent);
            text-decoration: underline;
        }
        
        /* --- 3. Mapa Estilizado --- */
        .map-container {
            width: 100%;
            height: 250px;
            margin-top: 2rem;
            border-radius: 8px;
            overflow: hidden; /* Clave para que el iframe respete el borde redondeado */
            box-shadow: 0 4px 15px rgba(0,0,0,0.1);
        }
        .map-container iframe {
            width: 100%;
            height: 100%;
            border: 0;
            filter: grayscale(1); /* Tono sobrio que encaja con la web */
            transition: filter 0.4s ease;
        }
        .map-container:hover iframe {
            filter: grayscale(0); /* Revela el color al pasar el mouse */
        }

        /* --- 4. Formulario con Etiquetas Flotantes --- */
        .contact-form-container h3 {
            margin-bottom: 2rem;
        }
        .form-group.floating-label {
            position: relative;
            margin-bottom: 2rem;
        }
        .floating-label input,
        .floating-label textarea {
            width: 100%;
            padding: 1rem 0.8rem 0.5rem 0.8rem;
            border: 1px solid var(--color-border);
            border-radius: 5px;
            font-family: var(--font-body);
            font-size: 1rem;
            background-color: #fdfdfd;
            transition: border-color 0.3s ease;
        }
        .floating-label label {
            position: absolute;
            top: 0.8rem;
            left: 0.8rem;
            font-size: 1rem;
            color: #aaa;
            pointer-events: none;
            transition: all 0.2s ease-out;
        }
        .floating-label input:focus,
        .floating-label textarea:focus,
        .floating-label input:not(:placeholder-shown),
        .floating-label textarea:not(:placeholder-shown) {
            outline: none;
            border-color: var(--color-accent);
        }
        .floating-label input:focus + label,
        .floating-label textarea:focus + label,
        .floating-label input:not(:placeholder-shown) + label,
        .floating-label textarea:not(:placeholder-shown) + label {
            top: -1rem;
            left: 0;
            font-size: 0.85rem;
            font-weight: 700;
            color: var(--color-primary);
        }
        
        /* --- 5. Botón Mejorado --- */
        .btn-full { width: 100%; }
        .btn-icon {
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 0.75rem;
            font-size: 1.1rem;
            padding: 1rem 1.8rem;
            background-image: linear-gradient(to right, var(--color-accent) 0%, #c09015 100%);
            border: none;
            color: var(--color-primary);
        }
        .btn-icon:hover {
            transform: translateY(-4px);
            box-shadow: 0 6px 20px rgba(212, 160, 23, 0.4);
            opacity: 1; /* Sobrescribir hover general */
        }
        .btn-icon:active {
            transform: translateY(-1px);
            box-shadow: 0 3px 10px rgba(212, 160, 23, 0.3);
        }
        
        /* --- Media Query para el layout --- */
        @media (min-width: 992px) {
            .contact-layout {
                grid-template-columns: 1fr 1.5fr;
                gap: 4rem;
            }
        }


        /* Estilo para el campo inválido */
    .form-group .is-invalid {
        border-color: #e74c3c !important; /* Rojo para errores */
    }

    /* Estilo para el mensaje de error */
    .error-message {
        color: #e74c3c;
        font-size: 0.85rem;
        font-weight: 600;
        margin-top: 6px;
        margin-left: 2px;
    }

    /* Estilo para el botón deshabilitado */
    .btn:disabled {
        opacity: 0.6;
        cursor: not-allowed;
        transform: none !important;
        box-shadow: none !important;
    }
    
    /* Animación del spinner para el botón de envío */
    .spinner {
        animation: rotate 2s linear infinite;
        width: 20px;
        height: 20px;
    }
    .spinner .path {
        stroke: var(--color-primary);
        stroke-linecap: round;
        animation: dash 1.5s ease-in-out infinite;
    }
    @keyframes rotate { 100% { transform: rotate(360deg); } }
    @keyframes dash {
        0% { stroke-dasharray: 1, 150; stroke-dashoffset: 0; }
        50% { stroke-dasharray: 90, 150; stroke-dashoffset: -35; }
        100% { stroke-dasharray: 90, 150; stroke-dashoffset: -124; }
    }

    /* Estilo para el mensaje de éxito */
    .form-success {
        border: 2px solid var(--color-accent);
        background-color: #f8f9fa;
        padding: 2rem;
        text-align: center;
        border-radius: 8px;
    }
    .form-success h3 {
        color: var(--color-primary);
        margin-bottom: 1rem;
    }