/* ===========================
   INDEX (home) — Carrusel Hero
   =========================== */

:root{
    --ga-red: #e10600;
    --ga-overlay-1: rgba(0,0,0,.65);
    --ga-overlay-2: rgba(0,0,0,.45);

    /* Tamaño/espacios logos y ancho del bloque */
    --brandH: 70px;        /* altura del banner de logos (todo.png) en escritorio */
    --brandGap: 55px;      /* separación vertical logos → título */
    --captionMax: 650px;   /* ancho máx. de la caja del hero */

    /* Alineación con el menú */
    --menu-gutter: var(--bs-gutter-x, 0.75rem); /* gutter Bootstrap por lado = 0.75rem */
    --nav-left-pad: .85rem;                     /* padding horizontal del .nav-link */
    --hero-left-adjust: -12rem;                 /* ajuste fino (negativo = más a la izq.) */
}

/* Slide base */
#heroCarousel .hero-slide{ position:relative; height:calc(56vh + 90px); min-height:360px; }
#heroCarousel .hero-slide > img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; }
#heroCarousel .hero-overlay{ position:absolute; inset:0; z-index:1; background:linear-gradient(180deg,var(--ga-overlay-1),var(--ga-overlay-2)); }

/* Caption */
#heroCarousel .hero-caption{
    position:absolute; inset:0; z-index:2;
    display:flex; align-items:center; justify-content:flex-start;
    text-align:left; padding:clamp(1rem,4vw,3rem);
}
/* mantenemos el gutter estándar para alinear con el navbar */
#heroCarousel .hero-caption .container{
    max-width:980px;
    padding-left: var(--menu-gutter) !important;
    padding-right: var(--menu-gutter) !important;
}

/* ===== Layout de 2 columnas (bloque + formulario) ===== */
.hero-duo{
    display: grid;
    grid-template-columns: minmax(0, var(--captionMax)) minmax(280px, 360px);
    gap: 24px;
    align-items: start;
}
@media (max-width: 991.98px){
    .hero-duo{ grid-template-columns: 1fr; }
}
/* Alinear el conjunto con el inicio del menú (lg+) */
@media (min-width: 992px){
    .hero-duo{
        margin-left: calc(var(--menu-gutter) + var(--nav-left-pad) + var(--hero-left-adjust)) !important;
    }
}

/* ===== Caja de contenido (izquierda) ===== */
#heroCarousel .caption-box{
    color:#fff; background:rgba(0,0,0,.34); backdrop-filter:blur(2px);
    border:1px solid rgba(255,255,255,.18); border-radius:12px; box-shadow:0 10px 30px rgba(0,0,0,.35);

    display:grid;
    grid-template-columns:1fr;
    grid-template-areas:
    "logos"
    "title"
    "lead"
    "cta";
    row-gap: var(--brandGap);

    padding: clamp(.9rem, 2.6vw, 1.2rem) clamp(1rem, 3.2vw, 2rem);
    max-width: var(--captionMax);
    align-items:start;
}

/* Fila 1: LOGOS (banner único centrado) */
#heroCarousel .caption-box > .brand-strip{
    grid-area: logos;
    display: grid !important;         /* ignora flex previos */
    place-items: center !important;   /* centra horizontal y vertical */
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 0 !important;
    justify-self: center !important;  /* centra el grid-item en la columna */
    text-align: center !important;
}
#heroCarousel .caption-box > .brand-strip img{
    display: inline-block !important;
    height: var(--brandH) !important;
    width: auto !important;
    object-fit: contain !important;
    filter: drop-shadow(0 0 2px rgba(0,0,0,.35));
    margin-left: 150px;
    margin-top: 20px;
}


/* Fila 2: Título */
#heroCarousel .caption-box > .hero-title{
    grid-area: title;
    font-weight:800; font-size:clamp(2rem,3.8vw,3.25rem); line-height:1;
    text-shadow:0 2px 10px rgba(0,0,0,.35);
    margin-top: 25px;
}
#heroCarousel .text-ga-red{ color:var(--ga-red); }

/* Fila 3: Lead */
#heroCarousel .caption-box > .hero-lead{
    grid-area: lead;
    font-size:clamp(1rem,1.15vw,1.125rem); color:rgba(255,255,255,.94);
    text-shadow:0 1px 6px rgba(0,0,0,.3);
    max-width:62ch;
    margin-top: -20px;       /* acercada al título como pediste */
}

/* Fila 4: Botón */
#heroCarousel .caption-box > .btn.btn-light{
    grid-area: cta;
    border:2px solid #fff; font-weight:600; justify-self:start;
    margin-top: -20px;
}



/* Inputs claros dentro del HERO */
.hero-presupuesto .form-control,
.hero-presupuesto .form-select {
    background-color: #fff !important;
    color: #212529 !important;
    border-color: rgba(0,0,0,.2) !important;
}
.hero-presupuesto .form-control::placeholder { color: #6c757d; }

/* Opciones del desplegable */
.hero-presupuesto .form-select option {
    background-color: #fff;
    color: #212529;
}

/* Enfoque bonito */
.hero-presupuesto .form-control:focus,
.hero-presupuesto .form-select:focus {
    border-color: #86b7fe !important;
    box-shadow: 0 0 0 .25rem rgba(13,110,253,.25) !important;
}








/* ===== Formulario (derecha) ===== */
.form-box{
    color:#fff;
    background: rgba(0,0,0,.34);
    backdrop-filter: blur(2px);
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 12px;
    box-shadow: 0 10px 30px rgba(0,0,0,.35);
    padding: 1rem 1rem 1.1rem;
    min-width: 0; /* evita overflow en grid */
}
.form-title{ color:#fff; }
.form-box .form-label{ color:rgba(255,255,255,.9); }
.form-box .form-control,
.form-box .form-select{
    background-color: rgba(255,255,255,.05);
    border-color: rgba(255,255,255,.25);
    color: #fff;
}
.form-box .form-control:focus,
.form-box .form-select:focus{
    background-color: rgba(255,255,255,.07);
    border-color: rgba(255,255,255,.6);
    box-shadow: 0 0 0 0.2rem rgba(13,110,253,.25); /* Bootstrap primary */
}
.form-box .btn-primary{
    border-width: 2px;
    box-shadow: 0 6px 16px rgba(0,0,0,.35);
}

/* Controles carrusel */
#heroCarousel .carousel-control-prev-icon,
#heroCarousel .carousel-control-next-icon{ filter:drop-shadow(0 0 4px rgba(0,0,0,.6)); }

/* Seguridad: oculta posibles H1/P sueltos dentro del slide */
#heroCarousel .hero-slide > h1, #heroCarousel .hero-slide > p{ display:none !important; }

/* Aumentar espacio inferior del título del formulario del hero */
.hero-slide .form-title {
    margin-bottom: 25px !important; /* 16px (mb-3) + 10px extra */
}


/* ===========================
   Alineación exacta con el texto "Inicio"
   =========================== */
@media (min-width: 992px){ /* lg+ */
    /* si tenías alguna regla previa que movía .caption-box, la anulamos: */
    #heroCarousel .caption-box{ margin-left: 0 !important; }
}

/* Confianza */
.confianza{ background:#0f172a; color:#e5e7eb; }
.confianza-metricas strong{ font-size:1.05rem; }
.confianza-logos img{ filter: grayscale(100%); }

/* Píldoras */
.valor-pildoras{ background:#f8f9fa; }
.valor-pildoras .pildora{ border-radius:14px; transition:.15s; }
.valor-pildoras .pildora:hover{ transform:translateY(-2px); box-shadow:0 12px 28px rgba(15,23,42,.08); }
.valor-pildoras .icon-wrap{
    width:46px;height:46px;display:flex;align-items:center;justify-content:center;
    border-radius:12px;background:rgba(225,6,0,.10);color:var(--ga-red);font-size:1.25rem;
}

/* Proceso */
.proceso-line{ position:relative; }
@media (min-width:768px){
    .proceso-line::before{
        content:""; position:absolute; left:20px; right:20px; top:18px; height:2px; background:rgba(13,110,253,.25);
    }
}
.proceso-item{ background:#fff; border:1px solid #eef2f7; border-radius:12px; padding:.75rem .9rem; box-shadow:0 4px 12px rgba(15,23,42,.04); }

/* Calculadora */
.calc .card{ border-radius:12px; }
.calc-resultado .h5{ font-weight:700; }

/* Garantías */
.garantias .card{ border-radius:12px; }

/* FAQ */
.faq .accordion-button{ font-weight:600; }
.faq .accordion-button:not(.collapsed){ color:#0d6efd; background:rgba(13,110,253,.06); }

/* Mapa */
.mapa iframe{ border:0; }

/* CTA final */
.cta-final{ background:#f8fafc; }
.cta-card{ border-radius:18px; }


/* ---------------------- MINI BANNER  -----------------*/
.mini-hero{ position:relative; border-radius:16px; overflow:hidden; }
.mini-hero img{ width:100%; height:280px; object-fit:cover; display:block; }
.mini-hero__overlay{
    position:absolute; inset:0;
    background:linear-gradient(90deg,rgba(0,0,0,.55),rgba(0,0,0,.15) 55%,transparent);
    display:flex; align-items:center; color:#fff;
}
.mini-hero h3{ font-weight:800; margin-bottom:.25rem; }
.mini-hero p{ margin-bottom:.6rem; color:rgba(255,255,255,.9); }
@media (max-width: 576px){
    .mini-hero img{ height:220px; }
}

/* Bandas recordatorio de propósito */
.brand-breaker{
    background:#111827; color:#fff; border-radius:14px;
    padding:.9rem 1rem; box-shadow:0 6px 24px rgba(0,0,0,.12);
}
.brand-breaker .brand-lead{ color:rgba(255,255,255,.85); font-size:.95rem; }
.brand-breaker--light{
    background:#1f2937; /* un tono distinto para alternar */
    border:1px solid rgba(255,255,255,.06);
}
@media (max-width: 768px){
    .brand-breaker .container{ gap:.75rem; }
}
.trust-strip{ background:#111827; border-radius:12px; padding:.7rem 1rem; }

.trust-strip {
    background: #050404;
    border-radius: 12px;
    padding: 1.5rem 1rem; /* antes .7rem */
}

.trust-strip img{ opacity:.9; filter:grayscale(30%); transition:.2s; }
.trust-strip img:hover{ opacity:1; filter:none; }

/* Aumenta tamaño de la 1ª y 5ª imagen */
.trust-strip img:first-child {
    transform: scale(1.5) translateX(-35px);
    transform-origin: left center;
}



.trust-strip img:nth-child(5) {
    transform: scale(1.5);
}


/* Efecto hover (opcional, mismo zoom en todas) */
.trust-strip img:hover {
    transform: scale(1.25);
}


/* FIN MINI BANNER */


/* ===========================
   Responsive
   =========================== */
@media (max-width: 991.98px){
    :root{ --brandH: 38px; --captionMax: 620px; }
}


/* ------------------- VERSIÓN MÓVIL (<=575.98px) ------------------- */
@media (max-width: 575.98px){

    /* Ajusta aquí el “aire” bajo el caption+form */
    :root{
        --brandH: 28px;
        --brandGap: 6px;
        --captionMax: 92vw;
        --hero-extra: 380px;  /* ↑ súbelo si aún falta imagen: 340/360 */
    }

    /* ===== HERO ===== */

    /* El slide crece por padding (reserva para el form) */
    #heroCarousel .carousel-item{
        position: relative;
        padding-bottom: var(--hero-extra) !important;
        min-height: 58dvh !important;
        overflow: hidden;
        background: none !important;
    }

    #heroCarousel .hero-title br { display: none !important; }
    #heroCarousel .carousel-control-prev,
    #heroCarousel .carousel-control-next{
        display: none !important;
    }


    /* Movemos el subtítulo a justo debajo del título */
    .hero-subtitle-mobile{
        position: absolute;
        top: calc(100% - 64%);  /* prueba visual inicial, ajustamos luego */
        left: 0;
        right: 0;
        text-align: center;
        font-size: 1.15rem;
        font-weight:500;
        color: #fff;
        line-height:1.2;
        opacity:.95;

    }

    /* La IMAGEN se extiende por debajo del slide:
       top:0 y bottom:-hero-extra => altura = slide + reserva  */
    #heroCarousel .carousel-item > img{
        position: absolute;
        top: 0; left: 0; right: 0;
        bottom: calc(-1 * var(--hero-extra));
        width: 100%;
        height: auto;                      /* dejamos que se calcule con top/bottom */
        object-fit: cover !important;      /* rellena y recorta bordes */
        object-position: 50% 42% !important; /* ajusta el encuadre si hace falta */
        display: block;
    }

    /* Overlay que también cubra la extensión inferior de la imagen */
    #heroCarousel .carousel-item::before{
        content: "";
        position: absolute;
        top: 0; left: 0; right: 0;
        bottom: calc(-1 * var(--hero-extra));
        z-index: 1;
        background: linear-gradient(180deg, rgba(0,0,0,.15), rgba(0,0,0,.35));
        pointer-events: none;
    }

    /* Caja del caption */
    #heroCarousel .caption-box{
        position: relative; z-index: 2;
        padding: .9rem 1rem !important;
        row-gap: 8px !important;
        max-width: var(--captionMax) !important;
        background: rgba(0,0,0,.28) !important;
        backdrop-filter: blur(1px) !important;
        border-radius: 12px;
        margin-bottom: 16px !important; /* el resto lo aporta --hero-extra */
    }

    /* Tipos y CTA */
    #heroCarousel .caption-box > .hero-title{
        white-space: nowrap !important;        /* fuerza una sola línea */
        font-size: 1.5rem !important;          /* reduce un poco para que quepa */
        letter-spacing: -.3px;                 /* compensa el ajuste */
        text-align: center;                    /* opcional, más equilibrado */
        line-height: 1.1 !important;
    }
    #heroCarousel .caption-box > .hero-lead{
        font-size: .95rem !important;
        margin-top: 1.5rem !important;
        max-width: 100% !important;
    }
    #heroCarousel .caption-box > .btn.btn-light{
        width: 100% !important;
        margin-top: .35rem !important;

    }

    /* Más aire bajo la tira de marcas */
    #heroCarousel .caption-box > .brand-strip{
        margin-bottom: 60px !important; /* ajusta 8–16 según veas */
    }

    /* Tira de marcas */
    #heroCarousel .caption-box > .brand-strip img{
        height: 60px !important;
        margin-left: 0 !important;
        margin-top: 10px !important;

    }

    /* Grid del hero */
    .hero-duo{
        grid-template-columns: 1fr !important;
        gap: 12px !important;
    }

    /* Form cómodo */
    #heroCarousel .hero-form, .hero-form{
        width: 100% !important;
        max-width: 100% !important;
        margin-top: .5rem !important;
    }
    .hero-form .form-control{ height: 48px !important; }
    .hero-form .btn{ height: 48px !important; width: 100% !important; }

    /* LOGOS DE TIRA DE COCHES */



}

/* --- ESCRITORIO (≥768px): evita doble marco en el hero --- */
@media (min-width: 768px){
    /* el bloque del form que vive dentro del hero */
    #presupuesto-desktop.form-box{
        background: transparent !important;
        border: 0 !important;
        box-shadow: none !important;
        padding: 0 !important;
    }
}




/* ===== Divisores mejorados — SOLO MÓVIL ===== */
@media (max-width: 576px){

    /* --- Brand breaker (bloque oscuro con icono) --- */
    .brand-breaker .container{
        background:#0f172a;              /* azul/gris oscuro corporativo */
        color:#f8fafc;
        border-radius:16px;
        padding:14px 16px;
        box-shadow:0 4px 18px rgba(0,0,0,.08);
        flex-direction: column !important;
        align-items: flex-start !important;
        gap:12px !important;
    }
    .brand-breaker img{
        background: rgba(255, 255, 255, 0.08); /* halo sutil claro */
        border: 1px solid rgba(255, 255, 255, 0.15);
        border-radius: 12px;                   /* esquinas suaves */
        padding: 6px;                          /* espacio interior */
        width: 44px; height: 44px;
        box-shadow: 0 2px 10px rgba(255, 0, 0, 0.15); /* reflejo del rojo */
        object-fit: contain;                   /* evita deformación */
    }

    /* Opcional: aumenta contraste del texto para equilibrar */
    .brand-breaker h3{
        color: #fff !important;
    }
    .brand-breaker .brand-lead{
        color: #e5e7eb !important;
    }
    /* Haz visible el botón en móvil y a ancho completo */
    .brand-breaker .btn{
        display:inline-flex !important;      /* sobrescribe d-none en XS */
        width:100%;
        justify-content:center;
        font-weight:600;
        border-radius:999px;
        padding:.55rem 1rem;
    }

    /* --- Mini hero (banner con foto) --- */
    .mini-hero{
        position:relative;
        border-radius:16px;
        overflow:hidden;
        box-shadow:0 4px 18px rgba(0,0,0,.08);
    }
    .mini-hero picture,
    .mini-hero img{
        display:block; width:100%;
        height:220px;                         /* 200–260 según te guste */
        object-fit:cover; object-position:center;
    }
    .mini-hero__overlay{
        position:absolute; inset:0;
        display:flex; align-items:flex-end;   /* texto abajo */
        background:linear-gradient(180deg, rgba(0,0,0,.15), rgba(0,0,0,.55));
        padding:14px;
    }
    .mini-hero__overlay .container{         /* usa el container como wrapper de texto */
        padding:0 !important; margin:0 !important; width:100%;
    }
    .mini-hero__overlay h3{
        color:#fff; font-size:1.15rem; font-weight:800; margin:0 0 4px 0;
    }
    .mini-hero__overlay p{
        color:#eef2f7; font-size:.95rem; line-height:1.35; margin:0 0 10px 0;
    }
    .mini-hero__overlay .btn{
        background:#fff; color:#111; border:0;
        padding:.4rem .9rem; font-size:.9rem; border-radius:999px;
        box-shadow:0 2px 8px rgba(0,0,0,.12);
    }
}


/* ===== Especialistas — MÓVIL ===== */
.especialistas-banner--m{
    position:relative; border-radius:16px; overflow:hidden;
    box-shadow:0 4px 18px rgba(0,0,0,.08);
}
.especialistas-banner--m picture,
.especialistas-banner--m img{
    display:block; width:100%;
    height: clamp(180px, 24dvh, 220px);
    object-fit:cover; object-position:center;
}
.especialistas-banner--m .especialistas-banner__overlay{
    position:absolute; inset:0;
    display:flex; align-items:flex-end; justify-content:center;
    padding:18px 14px;
    background:linear-gradient(180deg, rgba(0,0,0,.10) 0%, rgba(0,0,0,.25) 40%, rgba(0,0,0,.58) 100%);
}
.especialistas-banner--m .especialistas-banner__overlay .container{
    padding:0; margin:0; text-align:center;
}
.especialistas-banner--m h3{
    color:#fff; font-size:1.2rem; font-weight:800; margin:0 0 6px 0;
    text-shadow:0 1px 2px rgba(0,0,0,.25);
}
.especialistas-banner--m p{
    color:#eaf0f7; font-size:.95rem; line-height:1.38; margin:0 0 12px 0;
    text-shadow:0 1px 1px rgba(0,0,0,.2);
}
.especialistas-banner--m .btn{
    background:#fff; color:#111; border:0; border-radius:999px;
    padding:.46rem 1rem; font-size:.9rem; font-weight:600;
    box-shadow:0 2px 8px rgba(0,0,0,.14);
}

/* ===== TRUST STRIP (logos TÜV, DEKRA, etc.) ===== */
.trust-strip{
    /*background:#0f172a;*/
    border-radius:16px;
    padding:22px 18px;                   /* altura desktop */
    box-shadow:0 4px 18px rgba(0,0,0,.08);
}
.trust-strip .container{
    gap:34px;                            /* separación desktop */
    justify-content:center;
    align-items:center;
}
.trust-strip img{
    height:34px;                         /* restaura tamaño original */
    width:auto;
    filter:brightness(0) invert(1) opacity(.95);
    transition:filter .25s ease, transform .25s ease;
}

/* --- Móvil --- */
@media (max-width: 576px){
    .trust-strip{
        padding:18px 12px;
        border-radius:14px;
    }
    .trust-strip .container{
        gap:18px;
    }
    .trust-strip img{
        height:26px;                      /* tamaño más pequeño */
        filter:none !important;
        transform:none !important;
        transition:none !important;
        pointer-events:none !important;   /* sin hover, sin efectos */
    }
}


@media (min-width: 577px){
    .trust-strip{
        /*background:#0f172a;*/
        border-radius:16px;
        padding:22px 18px;                 /* altura desktop */
        box-shadow:0 4px 18px rgba(0,0,0,.08);
    }
    .trust-strip .container{
        gap:34px;
        justify-content:center;
        align-items:center;
    }
    .trust-strip img{
        height:34px;
        width:auto;
        filter:none !important;            /* colores originales */
        transform:none !important;
        transition:none !important;        /* sin hover ni flashes */
        display:block;
    }
}


/* ----------------- FIN VERSIÓN MÓVIL ------------------- */

/* ====== FIX GLOBAL: quitar cola negra del hero (desktop + móvil) ====== */

/* 0) Si usas esta variable para “reservar” hueco: anúlala globalmente */
:root{ --hero-extra: 0 !important; }

/* 1) El carrusel no debe añadir altura extra por abajo */
#heroCarousel,
#heroCarousel .carousel-inner{
    margin-bottom: 0 !important;
}
#heroCarousel .carousel-item{
    padding-bottom: 0 !important;
    overflow: hidden !important;
}

/* 2) Alturas razonables por viewport */
@media (min-width: 768px){               /* Escritorio / tablet grande */
    #heroCarousel .carousel-item{
        min-height: 64vh !important;         /* ajusta 58–70vh si quieres */
    }
}
@media (max-width: 767.98px){            /* Móvil / tablet pequeña */
    #heroCarousel .carousel-item{
        min-height: 56vh !important;         /* ajusta 54–60vh si quieres */
    }
}

/* 3) La imagen y el overlay llegan hasta el borde inferior del slide */
#heroCarousel .carousel-item > img{
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center 35% !important;  /* sube encuadre si queda negro abajo */
    bottom: 0 !important;
}
#heroCarousel .carousel-item::before{
    bottom: 0 !important;
}

/* 4) La caja de texto del hero no empuja hacia abajo */
.hero .caption-box{
    margin-bottom: 8px !important;        /* menos aire bajo el botón */
    padding-bottom: .7rem !important;
}
.hero .caption-box .btn{ margin-bottom: 0 !important; }

/* 5) El propio bloque hero no añade margen/padding inferior */
.hero, .hero .container{
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
}

/* 6) La sección siguiente empieza pegada (pero con un pelín de aire) */
.hero + .hero-strip-wrap,
#heroCarousel + section{
    margin-top: 8px !important;           /* reduce o sube a tu gusto */
}
