:root{
    --bg:#f8fafc;
    --surface:#ffffff;
    --muted:#64748b;
    --accent:#4f46e5;
    --accent-dark:#4338ca;
    --accent-600:#6366f1;
    --card:#ffffff;
    --glass:rgba(255,255,255,0.6);
    --max-width:1200px;
    --radius:14px;
    --container-padding:24px;
    --gradient-main:linear-gradient(
        135deg,
        #4f46e5,
        #2563eb,
        #7c3aed
    );
}

.contact-cta-section{
    position:relative;
    padding:130px 72px;

    overflow:hidden;
}

.contact-cta-inner{
    position:relative;
    width:100%;
    max-width:1380px;
    min-height:650px;
    margin:0 auto;
    display:grid;
    grid-template-columns:
        minmax(0,0.9fr)
        minmax(560px,1.1fr);

    gap:80px;
    align-items:center;
    padding:78px 82px;
    border-radius:30px;
    background:
        radial-gradient(
            700px 500px at 10% 15%,
            rgba(79,70,229,0.18),
            transparent 65%
        ),
        radial-gradient(
            600px 500px at 90% 85%,
            rgba(37,99,235,0.12),
            transparent 65%
        ),
        linear-gradient(
            135deg,
            #080d1a 0%,
            #0f172a 55%,
            #111827 100%
        );
    border:1px solid rgba(255,255,255,0.07);
    box-shadow: 0 24px 55px rgba(15, 23, 42, 0.16);
    overflow:hidden;
}

.contact-cta-inner::before{
    content:"";
    position:absolute;
    inset:0;
    background-image:
        linear-gradient(
            rgba(255,255,255,0.025) 1px,
            transparent 1px
        ),
        linear-gradient(
            90deg,
            rgba(255,255,255,0.025) 1px,
            transparent 1px
        );
    background-size:44px 44px;
    mask-image:
        linear-gradient(
            90deg,
            black 0%,
            transparent 90%
        );
    -webkit-mask-image:
        linear-gradient(
            90deg,
            black 0%,
            transparent 90%
        );
    pointer-events:none;
}

.contact-cta-content{
    position:relative;
    z-index:3;
    max-width:580px;
}

.contact-cta-eyebrow{
    display:flex;
    align-items:center;
    gap:10px;
    margin-bottom:22px;
    color:#a5b4fc;
    font-size:10px;
    font-weight:800;
    letter-spacing:2px;
    text-transform:uppercase;
}

.contact-cta-eyebrow span{
    width:30px;
    height:2px;
    border-radius:999px;
    background:
        linear-gradient(
            90deg,
            #6366f1,
            #818cf8
        );
}

.contact-cta-title{
    margin:0 0 26px;
    color:#ffffff;
    font-size:clamp(
        2.8rem,
        4.3vw,
        4.5rem
    );
    line-height:1.02;
    letter-spacing:-2.5px;
    font-weight:800;
}

.contact-cta-title span{
    display:block;
    margin-top:5px;
    background:
        linear-gradient(
            135deg,
            #a5b4fc 0%,
            #6366f1 45%,
            #60a5fa 100%
        );
    -webkit-background-clip:text;
    -webkit-text-fill-color:transparent;
    background-clip:text;
}

.contact-cta-description{
    max-width:560px;
    margin:0;
    color:rgba(255,255,255,0.66);
    font-size:16px;
    line-height:1.8;
}

.contact-cta-meta{
    display:flex;
    flex-direction:column;
    gap:14px;
    margin-top:38px;
}

.contact-cta-meta-item{
    display:flex;
    align-items:center;
    gap:13px;
}

.contact-cta-meta-icon{
    width:40px;
    height:40px;
    flex:0 0 40px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:11px;
    background:
        rgba(99,102,241,0.10);
    border:1px solid
        rgba(129,140,248,0.13);
    color:#818cf8;
    font-size:12px;
}

.contact-cta-meta-item strong{
    display:block;
    margin-bottom:3px;
    color:#ffffff;
    font-size:12px;
    font-weight:700;
}

.contact-cta-meta-item small{
    display:block;
    color:rgba(255,255,255,0.38);
    font-size:10px;
    font-weight:500;
}

.contact-form-wrapper{
    position:relative;
    z-index:4;
    padding:34px;
    border-radius:22px;
    background:
        rgba(255,255,255,0.97);
    border:1px solid
        rgba(255,255,255,0.75);
    box-shadow: 0 20px 45px rgba(0, 0, 0, 0.16);
    color:#0f172a;
}

.contact-form-header{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    margin-bottom:28px;
    padding-bottom:20px;
    border-bottom:1px solid
        rgba(15,23,42,0.07);
}

.contact-form-label{
    display:block;
    margin-bottom:7px;
    color:var(--accent);
    font-size:9px;
    font-weight:800;
    letter-spacing:1.8px;
}

.contact-form-header h3{
    margin:0;
    color:#0f172a;
    font-size:25px;
    font-weight:800;
    letter-spacing:-0.5px;
}

.contact-form-number{
    color:rgba(79,70,229,0.12);
    font-size:42px;
    line-height:1;
    font-weight:800;
    letter-spacing:-2px;
}

.contact-form{
    display:flex;
    flex-direction:column;
    gap:16px;
}

.contact-form-row{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:14px;
}

.contact-field{
    display:flex;
    flex-direction:column;
    gap:7px;
}

.contact-field label{
    color:#475569;
    font-size:10px;
    font-weight:800;
    letter-spacing:.5px;
}

.contact-field input,
.contact-field textarea{
    width:100%;
    padding:13px 15px;
    border-radius:10px;
    border:1px solid
        rgba(15,23,42,0.09);
    background:#ffffff;
    color:#0f172a;
    font-family:inherit;
    font-size:13px;
    outline:none;
    transition: border-color 0.18s ease;
}

.contact-field input{
    height:48px;
}

.contact-field textarea{
    min-height:125px;
    resize:vertical;
}

.contact-field input::placeholder,
.contact-field textarea::placeholder{
    color:#94a3b8;
}

.contact-field input:focus,
.contact-field textarea:focus {
    border-color: rgba(79, 70, 229, 0.65);
    background: #ffffff;
    box-shadow: 0 0 0 2px rgba(79, 70, 229, 0.06);
}

.privacy-row{
    margin-top:1px;
}

.privacy-label{
    display:flex;
    align-items:center;
    gap:8px;
    font-size:11px;
    color:#64748b;
    line-height:1.4;
}

.privacy-label input{
    width:14px;
    height:14px;
    margin:0;
    accent-color:#4f46e5;
    flex-shrink:0;
}

.privacy-label span{
    display:inline;
}

.privacy-label a{
    color:#4f46e5;
    text-decoration:underline;
}

.contact-form-bottom{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    margin-top:5px;
}

.contact-btn{
    position:relative;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:50px;
    padding:
        0 44px
        0 22px;

    border:none;
    border-radius:11px;
    background:
        linear-gradient(
            135deg,
            #4f46e5,
            #4338ca
        );
    color:#ffffff;
    font-family:inherit;
    font-size:13px;
    font-weight:800;
    cursor:pointer;
    transition: transform 0.2s ease;
}

.contact-btn::after{
    content:"";
    position:absolute;
    right:18px;
    top:50%;
    width:7px;
    height:7px;
    border-right:2px solid currentColor;
    border-bottom:2px solid currentColor;
    transform:
        translateY(-50%)
        rotate(-45deg);
    transition:
        transform .25s ease;
}

.contact-btn:hover {
    transform: translateY(-2px);
}

.contact-btn:hover::after{
    transform:
        translateY(-50%)
        rotate(-45deg)
        translateX(4px);
}

.contact-form-note{
    display:flex;
    align-items:center;
    gap:7px;
    max-width:190px;
    color:#94a3b8;
    font-size:9px;
    line-height:1.4;
}

.contact-form-note i{
    flex-shrink:0;
    color:#6366f1;
    font-size:10px;
}

.form-message{
    margin-top:15px;
    padding:12px 14px;
    border-radius:10px;
    font-size:12px;
    display:none;
    opacity:1;
    transition:
        opacity .4s ease;
}

.form-message.hide{
    opacity:0;
}

.form-message.success{
    display:block;
    background:#ecfdf5;
    color:#065f46;
    border:1px solid #a7f3d0;
}

.form-message.error{
    display:block;
    background:#fef2f2;
    color:#991b1b;
    border:1px solid #fecaca;
}

.contact-cta-decoration{
    position:absolute;
    z-index:1;
    right:-95px;
    top:50%;
    width:390px;
    height:390px;
    transform:translateY(-50%);
    pointer-events:none;
    opacity:.75;
}

.decoration-word{
    position:absolute;
    color:rgba(255,255,255,0.035);
    font-size:92px;
    line-height:1;
    font-weight:800;
    letter-spacing:-6px;
}

.decoration-word-top{
    top:15px;
    left:-10px;
}

.decoration-word-bottom{
    bottom:15px;
    left:-55px;
}

.decoration-line{
    position:absolute;
    top:50%;
    left:50%;
    width:300px;
    height:1px;
    transform:
        translate(-50%,-50%)
        rotate(-45deg);
    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(129,140,248,0.28),
            transparent
        );
}

.decoration-orbit{
    position:absolute;
    top:50%;
    left:50%;
    border-radius:50%;
    border:1px solid
        rgba(129,140,248,0.12);
    transform:
        translate(-50%,-50%)
        rotate(-20deg);
}

.decoration-orbit-one{
    width:280px;
    height:120px;
}

.decoration-orbit-two{
    width:280px;
    height:120px;
    transform:
        translate(-50%,-50%)
        rotate(65deg);
}

.decoration-core{
    position:absolute;
    top:50%;
    left:50%;
    width:78px;
    height:78px;
    display:flex;
    align-items:center;
    justify-content:center;
    transform:translate(-50%,-50%);
    border-radius:50%;
    background:
        linear-gradient(
            135deg,
            #6366f1,
            #4338ca
        );
    border:1px solid
        rgba(165,180,252,0.45);
    box-shadow: 0 0 0 8px rgba(99, 102, 241, 0.045);
}

.decoration-core span{
    color:#ffffff;
    font-size:28px;
    font-weight:800;
    letter-spacing:-2px;
}

.contact-toast {
    position: fixed;
    right: 25px;
    bottom: 25px;
    z-index: 999999;

    width: min(420px, calc(100vw - 40px));
    padding: 20px 22px;

    display: flex;
    align-items: flex-start;
    gap: 14px;

    background: #0b1220;
    color: #fff;

    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 14px;

    box-shadow: 0 15px 50px rgba(0, 0, 0, 0.25);

    opacity: 0;
    visibility: hidden;
    transform: translateY(20px);

    transition:
        opacity 0.3s ease,
        transform 0.3s ease,
        visibility 0.3s ease;

    pointer-events: none;
}

.contact-toast.show {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    pointer-events: auto;
}

.contact-toast-icon {
    width: 38px;
    height: 38px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    font-size: 17px;
}

.contact-toast.success .contact-toast-icon {
    background: rgba(34, 197, 94, 0.15);
    color: #4ade80;
}

.contact-toast.error .contact-toast-icon {
    background: rgba(239, 68, 68, 0.15);
    color: #f87171;
}

.contact-toast-content {
    flex: 1;
    min-width: 0;
}

.contact-toast-title {
    display: block;
    margin: 0 0 5px;
    font-size: 15px;
    font-weight: 700;
    color: #fff;
}

.contact-toast-message {
    margin: 0;
    font-size: 13px;
    line-height: 1.6;
    color: #cbd5e1;
    overflow-wrap: anywhere;
}

.contact-toast-close {
    border: none;
    background: transparent;
    color: #94a3b8;
    font-size: 20px;
    line-height: 1;
    cursor: pointer;
    padding: 0;
    margin-left: 4px;
}

.contact-toast-close:hover {
    color: #fff;
}

@media (max-width: 600px) {
    .contact-toast {
        right: 15px;
        bottom: 15px;
        width: calc(100vw - 30px);
    }
}

@media (max-width:1150px){
    .contact-cta-section{
        padding:100px 48px;
    }
    .contact-cta-inner{
        grid-template-columns:
            minmax(0,0.85fr)
            minmax(500px,1.15fr);
        gap:45px;
        padding:65px 55px;
    }
    .contact-cta-decoration{
        right:-160px;
        opacity:.45;
    }
}
@media (max-width:900px){
    .contact-cta-section{
        padding:85px 30px;
    }
    .contact-cta-inner{
        grid-template-columns:1fr;
        gap:55px;
        padding:60px 45px;
    }
    .contact-cta-content{
        max-width:700px;
    }
    .contact-cta-title{
        font-size:3.2rem;
    }
    .contact-form-wrapper{
        width:100%;
    }
    .contact-cta-decoration{
        right:-180px;
        top:160px;
        opacity:.18;
    }
}
@media (max-width:650px){
    .contact-cta-section{
        padding:65px 18px;
    }
    .contact-cta-inner{
        padding:42px 22px;
        border-radius:22px;
        gap:40px;
    }
    .contact-cta-eyebrow{
        font-size:8px;
        letter-spacing:1.4px;
    }
    .contact-cta-title{
        font-size:2.35rem;
        line-height:1.07;
        letter-spacing:-1.2px;
    }
    .contact-cta-description{
        font-size:14px;
        line-height:1.75;
    }
    .contact-cta-meta{
        margin-top:28px;
    }
    .contact-cta-meta-item{
        gap:10px;
    }
    .contact-cta-meta-icon{
        width:36px;
        height:36px;
        flex-basis:36px;
    }
    .contact-cta-meta-item strong{
        font-size:11px;
    }
    .contact-cta-meta-item small{
        font-size:9px;
    }
    .contact-form-wrapper{
        padding:24px 20px;
        border-radius:18px;
    }
    .contact-form-header{
        margin-bottom:22px;
    }
    .contact-form-header h3{
        font-size:21px;
    }
    .contact-form-number{
        font-size:32px;
    }
    .contact-form-row{
        grid-template-columns:1fr;
        gap:14px;
    }
    .contact-form-bottom{
        flex-direction:column;
        align-items:flex-start;
        gap:14px;
    }
    .contact-btn{
        width:100%;
    }
    .contact-form-note{
        max-width:none;
    }
    .contact-cta-decoration{
        display:none;
    }
}