.contact-page-shell{
    display:grid;
    gap:24px;
}

.contact-hero-card{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(260px,360px);
    gap:24px;
    align-items:center;
    padding:30px;
    border:1px solid rgba(19,34,57,.10);
    border-radius:24px;
    background:linear-gradient(145deg,#06142b 0%,#063f9f 100%);
    color:#fff;
    box-shadow:0 18px 45px rgba(6,20,43,.18);
}

.contact-hero-card .eyebrow{
    color:rgba(255,255,255,.78);
}

.contact-hero-card h1{
    margin:0 0 12px;
    max-width:820px;
    font-size:clamp(30px,4vw,48px);
    line-height:1.12;
    letter-spacing:-.03em;
    font-weight:700;
}

.contact-hero-card p{
    margin:0;
    max-width:760px;
    color:rgba(255,255,255,.84);
}

.contact-hero-card__meta{
    display:flex;
    flex-wrap:wrap;
    justify-content:flex-end;
    gap:10px;
}

.contact-hero-card__meta span{
    display:inline-flex;
    align-items:center;
    min-height:36px;
    padding:8px 12px;
    border:1px solid rgba(255,255,255,.22);
    border-radius:999px;
    background:rgba(255,255,255,.10);
    color:#fff;
    font-size:14px;
    font-weight:600;
}

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

.contact-main-card,
.contact-side-card{
    border:1px solid var(--border);
    border-radius:24px;
    background:#fff;
    box-shadow:var(--shadow);
}

.contact-main-card{
    padding:22px;
}

.contact-side-card{
    position:sticky;
    top:96px;
    padding:22px;
}

.contact-side-card h2{
    margin:0 0 14px;
    font-size:20px;
    line-height:1.3;
    font-weight:700;
    color:#0f172a;
}

.contact-side-card ul{
    margin:0;
    padding-left:20px;
    color:var(--muted);
}

.contact-side-card li + li{
    margin-top:8px;
}

.contact-side-card__note{
    margin-top:18px;
    padding:14px;
    border:1px solid #cfe0ff;
    border-radius:16px;
    background:#f2f7ff;
    color:#23406a;
    line-height:1.55;
}

.contact-side-card__note strong{
    font-weight:700;
}

.contact-mode-tabs{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
    margin-bottom:18px;
}

.contact-mode-tab{
    display:grid;
    gap:5px;
    min-height:88px;
    padding:16px;
    border:1px solid var(--border);
    border-radius:18px;
    background:#f8fbff;
    color:#152033;
    transition:border-color .18s ease,background .18s ease,box-shadow .18s ease,transform .18s ease;
}

.contact-mode-tab:hover{
    color:#152033;
    border-color:#b7cef7;
    background:#f2f7ff;
    transform:translateY(-1px);
}

.contact-mode-tab.is-active{
    border-color:#156ff7;
    background:#edf4ff;
    box-shadow:0 12px 28px rgba(21,111,247,.12);
}

.contact-mode-tab__title{
    font-size:18px;
    line-height:1.3;
    font-weight:700;
}

.contact-mode-tab__desc{
    color:var(--muted);
    font-size:14px;
    line-height:1.45;
}

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

.contact-form-grid label > span,
.contact-full-field > span,
.contact-upload-field > span,
.contact-fieldset legend{
    color:#334155;
    font-weight:700;
}

.contact-form-grid label strong,
.contact-full-field strong,
.contact-fieldset legend strong{
    color:#d92d20;
    font-weight:700;
}

.contact-full-field,
.contact-upload-field{
    display:grid;
    gap:8px;
    color:var(--muted);
    font-size:14px;
}

.contact-full-field textarea{
    min-height:150px;
}

.contact-fieldset{
    margin:0;
    padding:16px;
    border:1px solid var(--border);
    border-radius:18px;
    background:#fbfdff;
}

.contact-fieldset legend{
    padding:0 8px;
}

.contact-choice-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
}

.contact-choice-grid--compact{
    grid-template-columns:repeat(3,minmax(0,1fr));
}

.contact-choice{
    position:relative;
    display:block;
    cursor:pointer;
}

.contact-choice input{
    position:absolute;
    opacity:0;
    pointer-events:none;
}

.contact-choice span{
    display:flex;
    align-items:center;
    min-height:44px;
    padding:10px 12px;
    border:1px solid #d7dfeb;
    border-radius:14px;
    background:#fff;
    color:#334155;
    font-size:14px;
    line-height:1.35;
    font-weight:600;
    transition:border-color .18s ease,background .18s ease,color .18s ease,box-shadow .18s ease;
}

.contact-choice input:checked + span{
    border-color:#156ff7;
    background:#edf4ff;
    color:#124db2;
    box-shadow:0 8px 18px rgba(21,111,247,.10);
}

.contact-choice input:focus-visible + span{
    outline:3px solid rgba(21,111,247,.22);
    outline-offset:2px;
}

.contact-upload-field small{
    color:var(--muted);
    line-height:1.45;
}

.contact-actions{
    justify-content:flex-start;
    flex-wrap:wrap;
}

.contact-alert ul{
    margin:8px 0 0;
    padding-left:20px;
}

.contact-alert li + li{
    margin-top:4px;
}

@media (max-width: 991px){
    .contact-hero-card,
    .contact-layout{
        grid-template-columns:1fr;
    }

    .contact-hero-card__meta{
        justify-content:flex-start;
    }

    .contact-side-card{
        position:static;
    }
}

@media (max-width: 720px){
    .contact-main-card,
    .contact-side-card,
    .contact-hero-card{
        border-radius:20px;
        padding:18px;
    }

    .contact-mode-tabs,
    .contact-form-grid,
    .contact-choice-grid,
    .contact-choice-grid--compact{
        grid-template-columns:1fr;
    }

    .contact-actions .btn{
        width:100%;
    }
}
