/* =========================================================
   SPECTRAVISION — CONTACT V2
   ========================================================= */

.sv-contact-v2{
    min-height:100vh;
    overflow:hidden;
    background:#05030a;
    color:#fff;
}

.sv-contact-v2 *,
.sv-contact-v2 *::before,
.sv-contact-v2 *::after{
    box-sizing:border-box;
}

.sv-contact-container{
    width:min(1380px,92%);
    margin:0 auto;
}


/* HERO */

.sv-contact-hero{
    position:relative;
    min-height:500px;
    display:flex;
    align-items:center;
    overflow:hidden;
    border-bottom:1px solid rgba(255,255,255,.06);
    background:
        radial-gradient(circle at 78% 28%,rgba(182,55,255,.17),transparent 27%),
        radial-gradient(circle at 15% 70%,rgba(101,32,183,.10),transparent 31%),
        linear-gradient(135deg,#08040e 0%,#05030a 58%,#0b0612 100%);
}

.sv-contact-hero::before{
    content:"";
    position:absolute;
    width:580px;
    height:580px;
    right:-120px;
    top:-150px;
    border:1px solid rgba(193,83,255,.10);
    border-radius:50%;
    box-shadow:
        0 0 100px rgba(152,48,236,.08),
        inset 0 0 100px rgba(152,48,236,.04);
}

.sv-contact-hero::after{
    content:"CONTACT";
    position:absolute;
    right:3%;
    bottom:-42px;
    color:rgba(255,255,255,.018);
    font-family:Georgia,"Times New Roman",serif;
    font-size:clamp(7rem,14vw,14rem);
    line-height:1;
    letter-spacing:-.07em;
    pointer-events:none;
}

.sv-contact-hero .sv-contact-container{
    position:relative;
    z-index:2;
    padding:105px 0 70px;
}

.sv-contact-kicker,
.sv-contact-info-kicker{
    display:block;
    margin:0 0 22px;
    color:#c870ff;
    font-size:.68rem;
    font-weight:800;
    letter-spacing:.22em;
}

.sv-contact-hero h1{
    max-width:900px;
    margin:0;
    font-family:Georgia,"Times New Roman",serif;
    font-size:clamp(3.8rem,7.2vw,7.5rem);
    font-weight:400;
    line-height:.86;
    letter-spacing:-.065em;
}

.sv-contact-hero h1 em{
    color:#c96cff;
    font-style:italic;
    text-shadow:0 0 35px rgba(191,69,255,.20);
}

.sv-contact-intro{
    max-width:680px;
    margin:35px 0 0;
    color:#aaa3b2;
    font-size:1rem;
    line-height:1.8;
}


/* CONTENT */

.sv-contact-section{
    padding:82px 0 100px;
    background:
        radial-gradient(circle at 30% 20%,rgba(105,34,168,.06),transparent 30%),
        #06040a;
}

.sv-contact-layout{
    display:grid;
    grid-template-columns:minmax(0,1.55fr) minmax(330px,.72fr);
    gap:24px;
    align-items:start;
}

.sv-contact-panel,
.sv-contact-info{
    border:1px solid rgba(255,255,255,.08);
    border-radius:3px;
    background:
        linear-gradient(145deg,rgba(18,11,27,.94),rgba(8,6,12,.97));
    box-shadow:0 28px 80px rgba(0,0,0,.22);
}

.sv-contact-panel{
    padding:38px;
}

.sv-contact-info{
    position:relative;
    overflow:hidden;
    padding:38px;
}

.sv-contact-info::after{
    content:"02";
    position:absolute;
    right:-8px;
    bottom:-38px;
    color:rgba(191,69,255,.035);
    font-family:Georgia,"Times New Roman",serif;
    font-size:11rem;
    line-height:1;
    pointer-events:none;
}


/* FORM HEADER */

.sv-contact-panel-head{
    display:flex;
    gap:22px;
    align-items:flex-start;
    margin-bottom:35px;
    padding-bottom:28px;
    border-bottom:1px solid rgba(255,255,255,.07);
}

.sv-contact-panel-head > span,
.sv-contact-info-number{
    color:#bd62ef;
    font-size:.68rem;
    font-weight:800;
    letter-spacing:.12em;
}

.sv-contact-panel-head p{
    margin:0 0 8px;
    color:#a760cd;
    font-size:.66rem;
    font-weight:800;
    letter-spacing:.18em;
}

.sv-contact-panel-head h2{
    margin:0;
    font-family:Georgia,"Times New Roman",serif;
    font-size:clamp(1.8rem,3vw,2.6rem);
    font-weight:400;
    line-height:1.05;
}


/* FORM */

.sv-contact-form{
    display:grid;
    gap:23px;
}

.sv-contact-fields{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:19px;
}

.sv-contact-form label > span:first-child{
    display:block;
    margin-bottom:9px;
    color:#c5bfca;
    font-size:.76rem;
    font-weight:700;
    letter-spacing:.025em;
}

.sv-contact-form input[type="text"],
.sv-contact-form input[type="email"],
.sv-contact-form input[type="tel"],
.sv-contact-form select,
.sv-contact-form textarea{
    width:100%;
    border:1px solid rgba(255,255,255,.09);
    border-radius:2px;
    outline:none;
    background:#08060c;
    color:#f6f3f8;
    padding:15px 16px;
    font:inherit;
    transition:
        border-color .2s ease,
        box-shadow .2s ease,
        background .2s ease;
}

.sv-contact-form select{
    appearance:auto;
    min-height:52px;
}

.sv-contact-form textarea{
    min-height:175px;
    resize:vertical;
}

.sv-contact-form input::placeholder,
.sv-contact-form textarea::placeholder{
    color:#625d68;
}

.sv-contact-form input:focus,
.sv-contact-form select:focus,
.sv-contact-form textarea:focus{
    border-color:rgba(197,87,255,.60);
    background:#0b0710;
    box-shadow:0 0 0 3px rgba(182,68,239,.07);
}

.sv-contact-privacy{
    margin:-2px 0 0;
    color:#77717d;
    font-size:.72rem;
    line-height:1.65;
}

.sv-contact-privacy a{
    color:#bd72e5;
    text-decoration:none;
}

.sv-contact-privacy a:hover{
    color:#fff;
}


/* ACTIONS */

.sv-contact-actions{
    display:grid;
    grid-template-columns:1.25fr .75fr;
    gap:12px;
}

.sv-contact-actions button{
    min-height:54px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:15px;
    border-radius:2px;
    padding:0 20px;
    cursor:pointer;
    color:#fff;
    font:inherit;
    font-size:.78rem;
    font-weight:800;
    letter-spacing:.04em;
    transition:
        transform .18s ease,
        border-color .18s ease,
        filter .18s ease;
}

.sv-contact-actions button:hover{
    transform:translateY(-2px);
    filter:brightness(1.08);
}

.sv-contact-send{
    border:1px solid #bb55f1;
    background:
        linear-gradient(135deg,#8b2fc4,#b34ee8);
    box-shadow:0 10px 30px rgba(152,44,211,.15);
}

.sv-contact-whatsapp{
    border:1px solid rgba(255,255,255,.12);
    background:#0d0a11;
}

.sv-contact-whatsapp:hover{
    border-color:rgba(188,86,238,.45);
}


/* INFO */

.sv-contact-info-number{
    display:block;
    margin-bottom:25px;
}

.sv-contact-info h2{
    position:relative;
    z-index:2;
    margin:8px 0 17px;
    font-family:Georgia,"Times New Roman",serif;
    font-size:clamp(2.1rem,3.5vw,3.3rem);
    font-weight:400;
    line-height:.98;
    letter-spacing:-.045em;
}

.sv-contact-info > p:not(.sv-contact-info-kicker){
    position:relative;
    z-index:2;
    margin:0 0 29px;
    color:#918b97;
    font-size:.87rem;
    line-height:1.75;
}

.sv-contact-info-item{
    position:relative;
    z-index:2;
    padding:17px 0;
    border-top:1px solid rgba(255,255,255,.07);
}

.sv-contact-info-item strong{
    display:block;
    margin-bottom:6px;
    color:#a35cc8;
    font-size:.62rem;
    text-transform:uppercase;
    letter-spacing:.16em;
}

.sv-contact-info-item a,
.sv-contact-info-item span{
    color:#eeeaf1;
    font-size:.88rem;
    text-decoration:none;
}

.sv-contact-info-item a:hover{
    color:#cf7aff;
}

.sv-contact-info-line{
    position:relative;
    z-index:2;
    height:1px;
    margin:12px 0 25px;
    background:linear-gradient(
        90deg,
        rgba(190,75,245,.45),
        transparent
    );
}

.sv-contact-project-note{
    position:relative;
    z-index:2;
    display:grid;
    grid-template-columns:30px 1fr;
    gap:13px;
    padding:18px;
    border:1px solid rgba(181,70,235,.16);
    background:rgba(145,43,196,.055);
}

.sv-contact-project-note > span{
    color:#c86cff;
    font-size:1.1rem;
}

.sv-contact-project-note p{
    margin:0;
    color:#89838e;
    font-size:.76rem;
    line-height:1.65;
}

.sv-contact-project-note strong{
    display:block;
    margin-bottom:4px;
    color:#e7e0eb;
}

.sv-contact-siret{
    position:relative;
    z-index:2;
    margin-top:24px;
    color:#615c66;
    font-size:.65rem;
    letter-spacing:.08em;
}


/* MESSAGES */

.sv-contact-success,
.sv-contact-error{
    margin:0 0 24px;
    padding:17px 20px;
    border-radius:2px;
}

.sv-contact-success{
    border:1px solid rgba(34,197,94,.30);
    background:rgba(34,197,94,.07);
    color:#d8ffe4;
}

.sv-contact-success strong,
.sv-contact-success span{
    display:block;
}

.sv-contact-success span{
    margin-top:4px;
    font-size:.75rem;
}

.sv-contact-error{
    border:1px solid rgba(239,68,68,.30);
    background:rgba(239,68,68,.07);
    color:#ffdede;
}

.sv-contact-honeypot{
    position:absolute !important;
    left:-99999px !important;
    width:1px !important;
    height:1px !important;
    overflow:hidden !important;
}


/* RESPONSIVE */

@media(max-width:900px){

    .sv-contact-layout{
        grid-template-columns:1fr;
    }

    .sv-contact-info{
        order:2;
    }

}

@media(max-width:650px){

    .sv-contact-hero{
        min-height:430px;
    }

    .sv-contact-hero .sv-contact-container{
        padding:90px 0 55px;
    }

    .sv-contact-hero h1{
        font-size:clamp(3rem,14vw,4.4rem);
    }

    .sv-contact-section{
        padding:45px 0 70px;
    }

    .sv-contact-panel,
    .sv-contact-info{
        padding:24px 20px;
    }

    .sv-contact-fields,
    .sv-contact-actions{
        grid-template-columns:1fr;
    }

    .sv-contact-panel-head{
        gap:14px;
    }

    .sv-contact-actions button{
        width:100%;
    }

}

/* CONTACT V2 — micro-correction encadré projet */
.sv-contact-project-note{
    grid-template-columns:22px minmax(0,1fr);
    gap:10px;
}

.sv-contact-project-note p{
    min-width:0;
}

.sv-contact-project-note strong{
    white-space:normal;
}
