.tvq-overlay{
    position:fixed;
    inset:0;
    z-index:99999;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:24px;
    background:rgba(2,14,9,.78);
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
    opacity:0;
    visibility:hidden;
    transition:opacity .35s ease,visibility .35s ease;
}
.tvq-overlay.is-open{
    opacity:1;
    visibility:visible;
}

.tvq-modal{
    width:min(920px,100%);
    max-height:min(760px,calc(100vh - 48px));
    overflow:auto;
    position:relative;
    border:1px solid rgba(255,255,255,.14);
    border-radius:26px;
    background:#0a2518;
    color:#fff;
    box-shadow:0 35px 100px rgba(0,0,0,.48);
    transform:translateY(28px) scale(.97);
    transition:transform .45s cubic-bezier(.2,.8,.2,1);
}
.tvq-overlay.is-open .tvq-modal{
    transform:translateY(0) scale(1);
}

/* orange visual strip */
.tvq-modal:before{
    content:"";
    position:absolute;
    left:0;
    top:0;
    width:6px;
    height:100%;
    background:#ff4d24;
    border-radius:26px 0 0 26px;
}

.tvq-close{
    position:absolute;
    right:20px;
    top:20px;
    width:42px;
    height:42px;
    border:1px solid rgba(255,255,255,.16);
    border-radius:50%;
    background:rgba(255,255,255,.06);
    color:#fff;
    font-size:24px;
    line-height:1;
    cursor:pointer;
    z-index:3;
    transition:.25s ease;
}
.tvq-close:hover{
    background:#ff4d24;
    border-color:#ff4d24;
    transform:rotate(90deg);
}

.tvq-layout{
    display:grid;
    grid-template-columns:.82fr 1.18fr;
}

.tvq-intro{
    position:relative;
    overflow:hidden;
    padding:48px 38px;
    background:
        radial-gradient(circle at 20% 20%,rgba(255,77,36,.18),transparent 30%),
        linear-gradient(145deg,#174f2c,#0b2b1b);
}
.tvq-intro:after{
    content:"";
    position:absolute;
    width:260px;
    height:260px;
    right:-145px;
    bottom:-145px;
    border:45px solid #ff4d24;
    border-radius:50%;
    opacity:.7;
}
.tvq-eyebrow{
    display:flex;
    align-items:center;
    gap:9px;
    color:#fff;
    font:800 11px/1 "DM Sans",sans-serif;
    letter-spacing:.14em;
    text-transform:uppercase;
}
.tvq-eyebrow:before{
    content:"";
    width:27px;
    height:3px;
    border-radius:5px;
    background:#ff4d24;
}
.tvq-intro h2{
    margin:22px 0 15px;
    max-width:360px;
    font:800 clamp(2.2rem,4vw,3.7rem)/.98 "Manrope",sans-serif;
    letter-spacing:-.055em;
}
.tvq-intro h2 span{
    color:#ff6a3d
}
.tvq-intro p{
    max-width:360px;
    color:#c8d7cd;
    font:400 15px/1.7 "DM Sans",sans-serif;
}
.tvq-points{
    list-style:none;
    margin-top:28px;
    display:grid;
    gap:11px;
}
.tvq-points li{
    display:flex;
    gap:10px;
    color:#dce6df;
    font-size:13px;
}
.tvq-points li:before{
    content:"✓";
    color:#ff6a3d;
    font-weight:900;
}

.tvq-form-wrap{
    padding:45px 42px 40px;
    background:#f1eee3;
    color:#102019;
}
.tvq-form-title{
    margin-bottom:24px;
}
.tvq-form-title h3{
    font:800 1.55rem/1.1 "Manrope",sans-serif;
    letter-spacing:-.035em;
}
.tvq-form-title p{
    margin-top:6px;
    color:#69746d;
    font-size:13px;
}

.tvq-form{
    display:grid;
    gap:16px;
}
.tvq-row{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:14px;
}
.tvq-field{
    position:relative;
}
.tvq-field label{
    display:block;
    margin:0 0 7px 2px;
    color:#46534b;
    font:700 12px "DM Sans",sans-serif;
}
.tvq-field label span{
    color:#ff4d24
}
.tvq-field input,
.tvq-field select,
.tvq-field textarea{
    width:100%;
    border:1px solid #d2cdbc;
    outline:none;
    border-radius:10px;
    background:#faf8f0;
    color:#102019;
    padding:13px 14px;
    font:500 14px "DM Sans",sans-serif;
    transition:.22s ease;
}
.tvq-field input:focus,
.tvq-field select:focus,
.tvq-field textarea:focus{
    border-color:#236b3c;
    box-shadow:0 0 0 3px rgba(35,107,60,.11);
    background:#fffdf7;
}
.tvq-field textarea{
    min-height:105px;
    resize:vertical;
}
.tvq-submit{
    margin-top:2px;
    width:100%;
    border:0;
    border-radius:10px;
    padding:15px 20px;
    background:#ff4d24;
    color:#fff;
    font:800 14px "DM Sans",sans-serif;
    cursor:pointer;
    box-shadow:0 10px 25px rgba(255,77,36,.2);
    transition:.25s ease;
}
.tvq-submit:hover{
    background:#ff633e;
    transform:translateY(-2px);
}
.tvq-note{
    text-align:center;
    color:#7b847e;
    font-size:11px;
    margin-top:7px;
}

/* Optional trigger button */
.tvq-trigger{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:9px;
    padding:14px 20px;
    border:0;
    border-radius:9px;
    background:#ff4d24;
    color:#fff;
    font:800 14px "DM Sans",sans-serif;
    cursor:pointer;
    transition:.25s ease;
}
.tvq-trigger:hover{
    transform:translateY(-3px);
    background:#ff633e;
}

/* success state */
.tvq-success{
    display:none;
    text-align:center;
    padding:35px 10px 15px;
}
.tvq-success.show{
    display:block
}
.tvq-success-icon{
    width:62px;
    height:62px;
    margin:0 auto 18px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:#236b3c;
    color:#fff;
    font-size:27px;
}
.tvq-success h3{
    font:800 1.6rem "Manrope",sans-serif;
}
.tvq-success p{
    margin:8px auto 0;
    max-width:390px;
    color:#657069;
    font-size:13px;
}

@media(max-width:760px){
    .tvq-overlay{
        padding:12px
    }
    .tvq-modal{
        max-height:calc(100vh - 24px);
        border-radius:20px
    }
    .tvq-layout{
        grid-template-columns:1fr
    }
    .tvq-intro{
        padding:34px 28px
    }
    .tvq-intro h2{
        font-size:2.45rem
    }
    .tvq-points{
        grid-template-columns:1fr 1fr
    }
    .tvq-form-wrap{
        padding:30px 25px
    }
}
@media(max-width:500px){
    .tvq-row{
        grid-template-columns:1fr
    }
    .tvq-points{
        grid-template-columns:1fr
    }
    .tvq-close{
        right:12px;
        top:12px
    }
    .tvq-intro{
        padding-right:55px
    }
}