:root {
    --academy-midnight: #0a1628;
    --academy-navy: #1e3a5f;
    --academy-teal: #40d8ae;
    --academy-orange: #ff6b35;
    --academy-paper: #f8f9fa;
    --academy-ink: #152238;
    --academy-muted: #617086;
    --academy-line: #dce3ea;
}

.academy-contact { background: #fff; color: var(--academy-ink); font-family: "IBM Plex Sans", sans-serif; }
.academy-contact *, .academy-contact *::before, .academy-contact *::after { box-sizing: border-box; }
.academy-contact h1, .academy-contact h2, .academy-contact h3 { font-family: "Space Grotesk", sans-serif; }
.academy-contact-hero { padding: 28px 0 0; background: #fff; }
.academy-contact-banner { min-height: 362px; position: relative; overflow: hidden; border-radius: 24px; background: var(--academy-midnight); isolation: isolate; }
.academy-contact-banner::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(10,22,40,.98) 0%, rgba(10,22,40,.93) 42%, rgba(10,22,40,.34) 72%, rgba(10,22,40,.08) 100%); }
.academy-contact-banner-art { position: absolute; inset: 0; z-index: -2; background: url("../img/contact-academy-index-style-v3.webp?v=20260809-4") center right / cover no-repeat; }
.academy-contact-hero-copy { width: min(650px, 58%); padding: 42px 52px 46px; color: #fff; }
.academy-contact-breadcrumb { display: flex; gap: 9px; align-items: center; margin-bottom: 42px; color: rgba(255,255,255,.62); font-size: 13px; }
.academy-contact-breadcrumb a { color: rgba(255,255,255,.82); text-decoration: none; }
.academy-contact-kicker { display: flex; align-items: center; gap: 9px; margin: 0 0 13px; color: var(--academy-teal); font: 700 12px/1 "JetBrains Mono", monospace; letter-spacing: .09em; text-transform: uppercase; }
.academy-contact-kicker i { width: 24px; height: 2px; background: currentColor; border-radius: 8px; }
.academy-contact-hero h1 { max-width: 610px; margin: 0 0 13px; color: #fff; font-size: clamp(35px, 3.3vw, 50px); line-height: 1.02; letter-spacing: -.04em; }
.academy-contact-hero-copy > p:last-child { max-width: 570px; margin: 0; color: rgba(255,255,255,.76); font-size: 17px; line-height: 1.6; }

.academy-contact-main { padding: 78px 0 92px; background: linear-gradient(180deg, #fff 0, var(--academy-paper) 100%); }
.academy-contact-grid { display: grid; grid-template-columns: minmax(0, .88fr) minmax(0, 1.42fr); gap: 54px; align-items: start; }
.academy-contact-aside { padding: 10px 0; }
.academy-contact-kicker-dark { color: #237b68; }
.academy-contact-aside h2 { max-width: 420px; margin: 0 0 14px; color: var(--academy-midnight); font-size: 34px; line-height: 1.1; letter-spacing: -.035em; }
.academy-contact-aside header > p:last-child { max-width: 460px; margin: 0; color: var(--academy-muted); font-size: 15px; line-height: 1.7; }
.academy-contact-channels { display: grid; gap: 10px; margin: 30px 0 32px; }
.academy-contact-channel { display: flex; gap: 13px; align-items: center; padding: 13px 15px; border: 1px solid var(--academy-line); border-radius: 12px; background: rgba(255,255,255,.82); color: var(--academy-ink); text-decoration: none; transition: border-color .2s, transform .2s; }
a.academy-contact-channel:hover { border-color: rgba(64, 216, 174,.62); color: var(--academy-ink); transform: translateY(-1px); }
.academy-contact-channel-icon { display: grid; width: 38px; height: 38px; flex: 0 0 38px; place-items: center; border-radius: 10px; background: #e8f8f4; color: #237b68; font: 700 16px/1 "JetBrains Mono", monospace; }
.academy-contact-channel span:last-child { min-width: 0; }
.academy-contact-channel small, .academy-contact-channel strong { display: block; }
.academy-contact-channel small { margin-bottom: 3px; color: var(--academy-muted); font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; }
.academy-contact-channel strong { overflow-wrap: anywhere; color: var(--academy-midnight); font-size: 14px; font-weight: 600; }
.academy-contact-expectation { display: flex; gap: 14px; padding: 16px 0; border-top: 1px solid var(--academy-line); }
.academy-contact-expectation > span { color: #237b68; font: 700 11px/1.5 "JetBrains Mono", monospace; }
.academy-contact-expectation strong { display: block; margin-bottom: 3px; color: var(--academy-midnight); font-size: 14px; }
.academy-contact-expectation p { margin: 0; color: var(--academy-muted); font-size: 13px; line-height: 1.5; }

.academy-contact-form-card { padding: 34px 36px 36px; border: 1px solid var(--academy-line); border-radius: 18px; background: #fff; box-shadow: 0 22px 60px rgba(10,22,40,.09); }
.academy-contact-form-head { padding-bottom: 23px; border-bottom: 1px solid #e9edf1; }
.academy-contact-form-head > span { color: #237b68; font: 700 11px/1 "JetBrains Mono", monospace; letter-spacing: .08em; text-transform: uppercase; }
.academy-contact-form-head h2 { margin: 8px 0 6px; color: var(--academy-midnight); font-size: 29px; letter-spacing: -.03em; }
.academy-contact-form-head p { margin: 0; color: var(--academy-muted); font-size: 14px; }
.academy-contact-form { display: grid; gap: 20px; padding-top: 25px; }
.academy-contact-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.academy-contact-field label { display: block; margin-bottom: 8px; color: #263750; font-size: 13px; font-weight: 700; }
.academy-contact-field input, .academy-contact-field textarea { width: 100%; min-height: 47px; padding: 12px 14px; border: 1px solid #cfd8e2; border-radius: 9px; outline: 0; background: #fbfcfd; color: var(--academy-midnight); font: 500 14px/1.45 "IBM Plex Sans", sans-serif; transition: border-color .2s, box-shadow .2s, background .2s; }
.academy-contact-field textarea { min-height: 132px; resize: vertical; }
.academy-contact-field input::placeholder, .academy-contact-field textarea::placeholder { color: #8b98aa; font-weight: 400; }
.academy-contact-field input:focus, .academy-contact-field textarea:focus { border-color: #00a67e; background: #fff; box-shadow: 0 0 0 3px rgba(64, 216, 174,.12); }
.academy-contact-field .is-invalid { border-color: #d94343; }
.academy-contact-error { display: block; margin-top: 5px; color: #b42318; font-size: 12px; }
.academy-contact-form-footer { display: flex; gap: 24px; align-items: center; justify-content: space-between; padding-top: 2px; }
.academy-contact-form-footer p { max-width: 270px; margin: 0; color: var(--academy-muted); font-size: 12px; line-height: 1.45; }
.academy-contact-submit { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; gap: 14px; padding: 0 20px; border: 0; border-radius: 9px; background: var(--academy-orange); color: #fff; font: 700 14px/1 "IBM Plex Sans", sans-serif; box-shadow: 0 9px 24px rgba(255,107,53,.22); transition: transform .2s, background .2s; }
.academy-contact-submit:hover { background: #ed5925; transform: translateY(-1px); }
.academy-contact-submit span { font-size: 18px; }
.academy-contact-map { height: 280px; margin-top: 52px; overflow: hidden; border: 1px solid var(--academy-line); border-radius: 18px; background: #e8edf2; }
.academy-contact-map iframe { width: 100%; height: 100%; border: 0; filter: saturate(.72) contrast(.94); }

@media (max-width: 991px) {
    .academy-contact-hero-copy { width: 70%; padding: 38px; }
    .academy-contact-grid { grid-template-columns: 1fr; gap: 34px; }
}

@media (max-width: 767px) {
    .academy-contact-hero { padding-top: 14px; }
    .academy-contact-banner { min-height: 430px; border-radius: 16px; }
    .academy-contact-banner::after { background: linear-gradient(90deg, rgba(10,22,40,.96), rgba(10,22,40,.72)); }
    .academy-contact-banner-art { background-position: 64% center; opacity: .58; }
    .academy-contact-hero-copy { width: 100%; padding: 28px 24px 34px; }
    .academy-contact-breadcrumb { margin-bottom: 78px; }
    .academy-contact-main { padding: 52px 0 66px; }
    .academy-contact-aside h2 { font-size: 29px; }
    .academy-contact-form-card { padding: 26px 20px; }
    .academy-contact-field-row { grid-template-columns: 1fr; }
    .academy-contact-form-footer { align-items: stretch; flex-direction: column; }
    .academy-contact-form-footer p { max-width: none; }
    .academy-contact-submit { width: 100%; }
}
