/* ==========================================================
   CONTACT PAGE
   Darpan Mishra — Personal Brand
========================================================== */


/* ==========================================================
   CONTACT HERO
========================================================== */

.contact-page-hero{
    position:relative;

    padding:90px 0 105px;

    overflow:hidden;

    isolation:isolate;
}

.contact-page-hero::before{
    content:"";

    position:absolute;

    width:560px;
    height:560px;

    right:-240px;
    top:-280px;

    border-radius:50%;

    background:
        radial-gradient(
            circle,
            rgba(200,161,74,.11),
            transparent 70%
        );

    filter:blur(25px);

    pointer-events:none;

    z-index:-1;
}

.contact-hero-grid{
    display:grid;

    grid-template-columns:
        minmax(0,1fr)
        300px;

    gap:90px;

    align-items:end;
}

.contact-page-label{
    display:block;

    margin-bottom:17px;

    color:var(--accent);

    font-size:.68rem;

    font-weight:800;

    letter-spacing:2.5px;
}

.contact-hero-content{
    max-width:820px;
}

.contact-hero-content h1{
    margin:0 0 25px;

    color:var(--text-primary);

    font-size:
        clamp(3rem,5vw,5.3rem);

    line-height:.99;

    letter-spacing:-.065em;
}

.contact-hero-content h1 span{
    display:block;

    color:var(--accent);
}

.contact-hero-content > p{
    max-width:680px;

    margin:0;

    color:var(--text-secondary);

    font-size:.9rem;

    line-height:1.8;
}


/* ==========================================================
   DIRECT LINKS
========================================================== */

.contact-direct-links{
    display:flex;

    flex-wrap:wrap;

    gap:12px;

    margin-top:32px;
}

.contact-direct-link{
    display:flex;

    align-items:center;

    gap:12px;

    min-width:220px;

    padding:13px 15px;

    border:1px solid var(--border);

    border-radius:14px;

    background:var(--surface);

    color:var(--text-primary);

    text-decoration:none;

    font-size:.69rem;

    font-weight:600;

    transition:
        transform .3s ease,
        border-color .3s ease,
        box-shadow .3s ease;
}

.contact-direct-link:hover{
    transform:translateY(-3px);

    border-color:rgba(200,161,74,.42);

    box-shadow:
        0 12px 30px rgba(15,23,42,.06);
}

.contact-link-icon{
    display:flex;

    align-items:center;
    justify-content:center;

    width:36px;
    height:36px;

    flex:0 0 36px;

    border-radius:10px;

    background:var(--surface-soft);

    color:var(--accent);
}

.contact-link-icon svg{
    width:17px;
    height:17px;
}

.contact-direct-link > span:last-child{
    display:flex;

    flex-direction:column;

    gap:4px;
}

.contact-direct-link small{
    color:var(--accent);

    font-size:.51rem;

    font-weight:800;

    letter-spacing:1.5px;
}


/* ==========================================================
   HERO NOTE
========================================================== */

.contact-hero-note{
    padding:0 0 8px 30px;

    border-left:1px solid var(--border);
}

.contact-hero-note > span{
    display:block;

    margin-bottom:15px;

    color:var(--accent);

    font-size:.61rem;

    font-weight:800;

    letter-spacing:2px;
}

.contact-hero-note strong{
    display:block;

    max-width:200px;

    margin-bottom:15px;

    color:var(--text-primary);

    font-size:1.5rem;

    line-height:1.15;

    letter-spacing:-.035em;
}

.contact-hero-note p{
    max-width:210px;

    margin:0;

    color:var(--text-secondary);

    font-size:.69rem;

    line-height:1.7;
}


/* ==========================================================
   CONTACT WORKSPACE
========================================================== */

.contact-workspace{
    padding:125px 0;

    background:var(--surface-soft);

    border-top:1px solid var(--border);

    border-bottom:1px solid var(--border);
}

.contact-workspace-grid{
    display:grid;

    grid-template-columns:
        minmax(280px,.78fr)
        minmax(0,1.22fr);

    gap:100px;

    align-items:start;
}


/* ==========================================================
   CONTACT INFO
========================================================== */

.contact-info{
    position:sticky;

    top:110px;
}

.contact-section-label{
    display:block;

    margin-bottom:15px;

    color:var(--accent);

    font-size:.64rem;

    font-weight:800;

    letter-spacing:2.5px;
}

.contact-info h2{
    margin:0 0 20px;

    color:var(--text-primary);

    font-size:
        clamp(2.4rem,3.8vw,3.9rem);

    line-height:1.03;

    letter-spacing:-.055em;
}

.contact-info h2 span{
    display:block;

    color:var(--accent);
}

.contact-info > p{
    max-width:450px;

    margin:0 0 38px;

    color:var(--text-secondary);

    font-size:.79rem;

    line-height:1.8;
}


/* ==========================================================
   CONTACT TOPICS
========================================================== */

.contact-topic-list{
    border-top:1px solid var(--border);
}

.contact-topic{
    display:grid;

    grid-template-columns:45px 1fr;

    gap:14px;

    padding:20px 0;

    border-bottom:1px solid var(--border);
}

.contact-topic > span{
    color:var(--accent);

    font-size:.61rem;

    font-weight:800;

    letter-spacing:1.5px;
}

.contact-topic strong{
    display:block;

    margin-bottom:5px;

    color:var(--text-primary);

    font-size:.82rem;
}

.contact-topic p{
    margin:0;

    color:var(--text-secondary);

    font-size:.67rem;

    line-height:1.6;
}


/* ==========================================================
   FORM WRAPPER
========================================================== */

.contact-form-wrapper{
    padding:38px;

    border:1px solid var(--border);

    border-radius:22px;

    background:var(--surface);

    box-shadow:
        0 18px 45px rgba(15,23,42,.04);
}

.contact-form{
    display:grid;

    grid-template-columns:
        repeat(2,minmax(0,1fr));

    gap:22px 18px;
}

.form-field{
    display:flex;

    flex-direction:column;

    gap:8px;
}

.form-field:nth-child(3),
.form-field:nth-child(4),
.form-field:nth-child(5),
.contact-submit-btn,
.form-note{
    grid-column:1 / -1;
}

.form-field label{
    color:var(--text-primary);

    font-size:.63rem;

    font-weight:700;

    letter-spacing:.2px;
}

.form-field label span{
    margin-left:5px;

    color:var(--text-secondary);

    font-size:.53rem;

    font-weight:500;
}

.form-field input,
.form-field select,
.form-field textarea{
    width:100%;

    border:1px solid var(--border);

    border-radius:11px;

    outline:none;

    background:var(--surface-soft);

    color:var(--text-primary);

    font-family:inherit;

    font-size:.72rem;

    transition:
        border-color .25s ease,
        box-shadow .25s ease,
        background .25s ease;
}

.form-field input,
.form-field select{
    height:46px;

    padding:0 14px;
}

.form-field textarea{
    min-height:145px;

    padding:13px 14px;

    resize:vertical;

    line-height:1.65;
}

.form-field input::placeholder,
.form-field textarea::placeholder{
    color:var(--text-secondary);

    opacity:.7;
}

.form-field select{
    cursor:pointer;
}

.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus{
    border-color:var(--accent);

    background:var(--surface);

    box-shadow:
        0 0 0 3px rgba(200,161,74,.09);
}


/* ==========================================================
   FORM SUBMIT
========================================================== */

.contact-submit-btn{
    display:flex;

    align-items:center;
    justify-content:center;

    gap:11px;

    min-height:48px;

    margin-top:3px;

    border:1px solid var(--accent);

    border-radius:999px;

    background:var(--accent);

    color:#111;

    font-family:inherit;

    font-size:.68rem;

    font-weight:800;

    cursor:pointer;

    transition:
        transform .3s ease,
        background .3s ease,
        box-shadow .3s ease;
}

.contact-submit-btn:hover{
    transform:translateY(-2px);

    background:#E2BC4D;

    box-shadow:
        0 10px 25px rgba(200,161,74,.18);
}

.contact-submit-btn span{
    transition:transform .3s ease;
}

.contact-submit-btn:hover span{
    transform:translateX(4px);
}

.form-note{
    margin:0;

    text-align:center;

    color:var(--text-secondary);

    font-size:.56rem;

    line-height:1.6;
}


/* ==========================================================
   CONTACT PROCESS
========================================================== */

.contact-process{
    padding:125px 0;
}

.contact-section-heading{
    max-width:760px;

    margin-bottom:55px;
}

.contact-section-heading > span{
    display:block;

    margin-bottom:15px;

    color:var(--accent);

    font-size:.64rem;

    font-weight:800;

    letter-spacing:2.5px;
}

.contact-section-heading h2{
    margin:0 0 18px;

    color:var(--text-primary);

    font-size:
        clamp(2.6rem,4vw,4.2rem);

    line-height:1;

    letter-spacing:-.055em;
}

.contact-section-heading h2 span{
    display:block;

    color:var(--accent);
}

.contact-section-heading p{
    max-width:600px;

    margin:0;

    color:var(--text-secondary);

    font-size:.79rem;

    line-height:1.75;
}


/* ==========================================================
   PROCESS CARDS
========================================================== */

.contact-process-grid{
    display:grid;

    grid-template-columns:
        repeat(3,minmax(0,1fr));

    gap:15px;
}

.contact-process-card{
    min-height:245px;

    padding:28px;

    display:flex;

    flex-direction:column;

    justify-content:space-between;

    border:1px solid var(--border);

    border-radius:19px;

    background:var(--surface);

    transition:
        transform .3s ease,
        border-color .3s ease,
        box-shadow .3s ease;
}

.contact-process-card:hover{
    transform:translateY(-5px);

    border-color:rgba(200,161,74,.42);

    box-shadow:
        0 18px 40px rgba(15,23,42,.055);
}

.contact-process-card > span{
    color:var(--accent);

    font-size:.63rem;

    font-weight:800;

    letter-spacing:2px;
}

.contact-process-card h3{
    margin:25px 0 12px;

    color:var(--text-primary);

    font-size:1.25rem;
}

.contact-process-card p{
    margin:0;

    color:var(--text-secondary);

    font-size:.7rem;

    line-height:1.75;
}


/* ==========================================================
   DIRECT CONTACT BOX
========================================================== */

.contact-direct{
    padding:0 0 125px;
}

.contact-direct-box{
    display:flex;

    align-items:center;
    justify-content:space-between;

    gap:50px;

    padding:48px 50px;

    border:1px solid var(--border);

    border-radius:21px;

    background:
        linear-gradient(
            135deg,
            rgba(200,161,74,.045),
            var(--surface)
        );
}

.contact-direct-box > div:first-child > span{
    display:block;

    margin-bottom:10px;

    color:var(--accent);

    font-size:.61rem;

    font-weight:800;

    letter-spacing:2px;
}

.contact-direct-box h2{
    margin:0 0 8px;

    color:var(--text-primary);

    font-size:
        clamp(1.7rem,2.5vw,2.5rem);

    letter-spacing:-.04em;
}

.contact-direct-box p{
    margin:0;

    color:var(--text-secondary);

    font-size:.72rem;
}

.contact-direct-actions{
    display:flex;

    align-items:center;

    gap:10px;

    flex-shrink:0;
}

.contact-primary-btn,
.contact-secondary-btn{
    display:inline-flex;

    align-items:center;
    justify-content:center;

    gap:10px;

    min-height:46px;

    padding:0 20px;

    border-radius:999px;

    font-size:.67rem;

    font-weight:700;

    text-decoration:none;

    transition:
        transform .3s ease,
        background .3s ease,
        border-color .3s ease,
        color .3s ease;
}

.contact-primary-btn{
    background:var(--accent);

    border:1px solid var(--accent);

    color:#111;
}

.contact-primary-btn:hover{
    transform:translateY(-2px);

    background:#E2BC4D;
}

.contact-primary-btn span{
    transition:transform .3s ease;
}

.contact-primary-btn:hover span{
    transform:translateX(4px);
}

.contact-secondary-btn{
    background:transparent;

    border:1px solid var(--border);

    color:var(--text-primary);
}

.contact-secondary-btn:hover{
    transform:translateY(-2px);

    border-color:var(--accent);

    color:var(--accent);
}


/* ==========================================================
   FINAL CTA
========================================================== */

.contact-final-cta{
    padding:0 0 120px;
}

.contact-final-box{
    position:relative;

    overflow:hidden;

    padding:80px 50px;

    border:1px solid #263247;

    border-radius:24px;

    background:
        linear-gradient(
            135deg,
            #111827,
            #0B1220
        );

    text-align:center;
}

.contact-final-box::after{
    content:"";

    position:absolute;

    width:430px;
    height:430px;

    right:-220px;
    bottom:-280px;

    border-radius:50%;

    background:
        radial-gradient(
            circle,
            rgba(212,175,55,.12),
            transparent 70%
        );

    pointer-events:none;
}

.contact-final-box > span{
    position:relative;

    z-index:1;

    display:block;

    margin-bottom:17px;

    color:var(--accent);

    font-size:.64rem;

    font-weight:800;

    letter-spacing:2.5px;
}

.contact-final-box h2{
    position:relative;

    z-index:1;

    max-width:820px;

    margin:0 auto 20px;

    color:#fff;

    font-size:
        clamp(2.5rem,4vw,4.2rem);

    line-height:1.03;

    letter-spacing:-.055em;
}

.contact-final-box h2 span{
    display:block;

    color:var(--accent);
}

.contact-final-box > p{
    position:relative;

    z-index:1;

    max-width:600px;

    margin:0 auto 30px;

    color:#AAB4C5;

    font-size:.82rem;

    line-height:1.75;
}

.contact-final-box .contact-primary-btn{
    position:relative;

    z-index:1;
}


/* ==========================================================
   DARK MODE
========================================================== */

html[data-theme="dark"] .contact-workspace{
    background:#0C1321;

    border-color:#263247;
}

html[data-theme="dark"]
.contact-form-wrapper,
html[data-theme="dark"]
.contact-direct-link,
html[data-theme="dark"]
.contact-process-card{
    background:#0F172A;

    border-color:#263247;
}

html[data-theme="dark"]
.contact-direct-link:hover,
html[data-theme="dark"]
.contact-process-card:hover{
    border-color:rgba(212,175,55,.42);
}

html[data-theme="dark"]
.form-field input,
html[data-theme="dark"]
.form-field select,
html[data-theme="dark"]
.form-field textarea{
    background:#111827;

    border-color:#263247;
}

html[data-theme="dark"]
.form-field input:focus,
html[data-theme="dark"]
.form-field select:focus,
html[data-theme="dark"]
.form-field textarea:focus{
    background:#0F172A;

    border-color:var(--accent);
}

html[data-theme="dark"] .contact-direct-box{
    background:
        linear-gradient(
            135deg,
            rgba(212,175,55,.055),
            #0F172A
        );

    border-color:#263247;
}


/* ==========================================================
   FORM VALIDATION
========================================================== */

.form-field input:invalid:not(:placeholder-shown),
.form-field textarea:invalid:not(:placeholder-shown){
    border-color:rgba(190,70,70,.55);
}

.form-field input:valid:not(:placeholder-shown),
.form-field textarea:valid:not(:placeholder-shown){
    border-color:rgba(80,150,100,.35);
}


/* ==========================================================
   REDUCED MOTION
========================================================== */

@media (prefers-reduced-motion:reduce){

    .contact-page-hero *,
    .contact-workspace *,
    .contact-process *,
    .contact-direct *,
    .contact-final-cta *{

        animation:none !important;

        transition:none !important;

    }

}

/* ==========================================================
   FORM STATUS
========================================================== */

.form-status{
    display:none;

    grid-column:1 / -1;

    border-radius:14px;

    text-align:center;
}


/* ==========================================================
   SUCCESS STATE
========================================================== */

.form-success{
    padding:45px 30px;

    border:1px solid rgba(200,161,74,.35);

    background:
        linear-gradient(
            135deg,
            rgba(200,161,74,.08),
            transparent
        );
}

.form-success-icon{
    display:flex;

    align-items:center;
    justify-content:center;

    width:52px;
    height:52px;

    margin:0 auto 18px;

    border-radius:50%;

    background:var(--accent);

    color:#111;

    font-size:1.4rem;

    font-weight:800;
}

.form-success h3{
    margin:0 0 10px;

    color:var(--text-primary);

    font-size:1.35rem;

    letter-spacing:-.03em;
}

.form-success p{
    margin:0;

    color:var(--text-secondary);

    font-size:.72rem;

    line-height:1.7;
}


/* ==========================================================
   ERROR STATE
========================================================== */

.form-error{
    padding:13px 15px;

    border:1px solid rgba(190,70,70,.35);

    background:rgba(190,70,70,.06);

    color:#C85C5C;

    font-size:.65rem;

    line-height:1.6;
}


/* ==========================================================
   FIELD ERRORS
========================================================== */

.field-error{
    display:none;

    margin-top:-2px;

    color:#C85C5C;

    font-size:.55rem;

    line-height:1.5;
}


/* ==========================================================
   LOADING STATE
========================================================== */

.contact-form.is-loading
.contact-submit-btn{
    opacity:.7;

    cursor:wait;

    pointer-events:none;
}

.contact-form.is-loading
.submit-text::after{
    content:" ...";
}


/* ==========================================================
   SUCCESS — HIDE FORM CONTENT
========================================================== */

.contact-form.is-success
.form-field,
.contact-form.is-success
.contact-submit-btn,
.contact-form.is-success
.form-note,
.contact-form.is-success
.form-error{

    display:none;

}

.contact-form.is-success
.form-success{

    display:block;

}


/* ==========================================================
   ERROR MESSAGE ACTIVE
========================================================== */

.form-error[data-fs-active]{
    display:block;
}

.field-error[data-fs-active]{
    display:block;
}


/* ==========================================================
   DARK MODE
========================================================== */

html[data-theme="dark"]
.form-success{

    background:
        linear-gradient(
            135deg,
            rgba(212,175,55,.07),
            #0F172A
        );

    border-color:
        rgba(212,175,55,.3);
}

html[data-theme="dark"]
.form-error{

    background:
        rgba(190,70,70,.08);

    border-color:
        rgba(190,70,70,.3);
}


/* ==========================================================
   MOBILE
========================================================== */

@media (max-width:768px){

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

    .form-field:nth-child(3),
    .form-field:nth-child(4),
    .form-field:nth-child(5),
    .contact-submit-btn,
    .form-note{
        grid-column:1;
    }

}