: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-faq { background: #fff; color: var(--academy-ink); font-family: "IBM Plex Sans", sans-serif; }
.academy-faq *, .academy-faq *::before, .academy-faq *::after { box-sizing: border-box; }
.academy-faq h1, .academy-faq h2, .academy-faq h3 { font-family: "Space Grotesk", sans-serif; }
.academy-faq-hero { padding: 28px 0 0; }
.academy-faq-banner { min-height: 370px; position: relative; overflow: hidden; border-radius: 24px; background: var(--academy-midnight); isolation: isolate; }
.academy-faq-banner::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(10,22,40,.98) 0%, rgba(10,22,40,.94) 44%, rgba(10,22,40,.38) 72%, rgba(10,22,40,.08) 100%); }
.academy-faq-banner-art { position: absolute; inset: 0; z-index: -2; background: url("../img/faq-academy-index-style-v3.webp?v=20260809-4") center right / cover no-repeat; }
.academy-faq-hero-copy { width: min(690px, 61%); padding: 42px 52px 47px; color: #fff; }
.academy-faq-breadcrumb { display: flex; gap: 9px; align-items: center; margin-bottom: 42px; color: rgba(255,255,255,.62); font-size: 13px; }
.academy-faq-breadcrumb a { color: rgba(255,255,255,.82); text-decoration: none; }
.academy-faq-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-faq-kicker i { width: 24px; height: 2px; background: currentColor; border-radius: 8px; }
.academy-faq-hero h1 { margin: 0 0 14px; color: #fff; font-size: clamp(35px, 3.25vw, 49px); line-height: 1.03; letter-spacing: -.04em; }
.academy-faq-hero-copy > p:last-child { max-width: 590px; margin: 0; color: rgba(255,255,255,.76); font-size: 17px; line-height: 1.6; }

.academy-faq-main { padding: 78px 0 92px; background: linear-gradient(180deg, #fff 0, var(--academy-paper) 100%); }
.academy-faq-grid { display: grid; grid-template-columns: minmax(290px, .75fr) minmax(0, 1.45fr); gap: 64px; align-items: start; }
.academy-faq-guide { position: sticky; top: 100px; padding: 8px 0; }
.academy-faq-kicker-dark { color: #237b68; }
.academy-faq-guide > h2 { margin: 0 0 14px; color: var(--academy-midnight); font-size: 34px; line-height: 1.1; letter-spacing: -.035em; }
.academy-faq-guide > p { margin: 0; color: var(--academy-muted); font-size: 15px; line-height: 1.7; }
.academy-faq-guide-card { display: grid; grid-template-columns: 40px 1fr; gap: 14px; margin-top: 30px; padding: 20px; border: 1px solid rgba(0,166,126,.22); border-radius: 14px; background: #eefaf7; }
.academy-faq-guide-card > span { display: grid; width: 40px; height: 40px; place-items: center; border-radius: 10px; background: var(--academy-midnight); color: var(--academy-teal); font: 700 18px/1 "JetBrains Mono", monospace; }
.academy-faq-guide-card strong { display: block; margin: 1px 0 4px; color: var(--academy-midnight); font-size: 14px; }
.academy-faq-guide-card p { margin: 0; color: var(--academy-muted); font-size: 13px; line-height: 1.5; }
.academy-faq-guide-card a { grid-column: 2; color: #237b68; font-size: 13px; font-weight: 700; text-decoration: none; }
.academy-faq-guide-card a b { margin-left: 8px; font-size: 16px; }
.academy-faq-list { display: grid; gap: 12px; }
.academy-faq-item { overflow: hidden; border: 1px solid var(--academy-line); border-radius: 13px; background: #fff; box-shadow: 0 7px 24px rgba(10,22,40,.035); transition: border-color .2s, box-shadow .2s; }
.academy-faq-item.is-open { border-color: rgba(0,166,126,.42); box-shadow: 0 12px 34px rgba(10,22,40,.07); }
.academy-faq-item h3 { margin: 0; }
.academy-faq-item button { display: grid; width: 100%; grid-template-columns: 37px 1fr 24px; gap: 14px; align-items: center; padding: 20px 22px; border: 0; background: transparent; color: var(--academy-midnight); text-align: left; }
.academy-faq-number { color: #237b68; font: 700 11px/1 "JetBrains Mono", monospace; }
.academy-faq-question { font: 600 16px/1.4 "Space Grotesk", sans-serif; }
.academy-faq-toggle { width: 18px; height: 18px; position: relative; }
.academy-faq-toggle::before, .academy-faq-toggle::after { content: ""; position: absolute; top: 8px; left: 2px; width: 14px; height: 2px; border-radius: 5px; background: #526277; transition: transform .22s, background .22s; }
.academy-faq-toggle::after { transform: rotate(90deg); }
.academy-faq-item.is-open .academy-faq-toggle::after { transform: rotate(0); }
.academy-faq-item.is-open .academy-faq-toggle::before, .academy-faq-item.is-open .academy-faq-toggle::after { background: #237b68; }
.academy-faq-answer { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .28s ease; }
.academy-faq-answer > p { min-height: 0; overflow: hidden; margin: 0; padding: 0 73px 0; color: var(--academy-muted); font-size: 14px; line-height: 1.72; transition: padding .28s ease; }
.academy-faq-item.is-open .academy-faq-answer { grid-template-rows: 1fr; }
.academy-faq-item.is-open .academy-faq-answer > p { padding-bottom: 22px; }
.academy-faq-empty { padding: 42px; border: 1px solid var(--academy-line); border-radius: 14px; background: #fff; text-align: center; }
.academy-faq-empty > span { color: #237b68; font: 700 11px/1 "JetBrains Mono", monospace; letter-spacing: .12em; }
.academy-faq-empty h3 { margin: 12px 0 8px; color: var(--academy-midnight); font-size: 24px; }
.academy-faq-empty p { margin: 0 0 20px; color: var(--academy-muted); }
.academy-faq-empty a { color: #237b68; font-weight: 700; text-decoration: none; }

.academy-faq-cta { padding: 0 0 86px; background: var(--academy-paper); }
.academy-faq-cta-inner { display: flex; align-items: center; justify-content: space-between; gap: 36px; padding: 32px 38px; border-radius: 17px; background: var(--academy-midnight); color: #fff; }
.academy-faq-cta h2 { max-width: 660px; margin: 0; color: #fff; font-size: 29px; line-height: 1.15; letter-spacing: -.03em; }
.academy-faq-cta a { display: inline-flex; min-height: 48px; flex: 0 0 auto; align-items: center; gap: 15px; padding: 0 21px; border-radius: 9px; background: var(--academy-orange); color: #fff; font-size: 14px; font-weight: 700; text-decoration: none; box-shadow: 0 10px 28px rgba(255,107,53,.2); }
.academy-faq-cta a:hover { background: #ed5925; color: #fff; }
.academy-faq-cta a span { font-size: 18px; }

@media (max-width: 991px) {
    .academy-faq-hero-copy { width: 72%; padding: 38px; }
    .academy-faq-grid { grid-template-columns: 1fr; gap: 38px; }
    .academy-faq-guide { position: static; }
}

@media (max-width: 767px) {
    .academy-faq-hero { padding-top: 14px; }
    .academy-faq-banner { min-height: 440px; border-radius: 16px; }
    .academy-faq-banner::after { background: linear-gradient(90deg, rgba(10,22,40,.96), rgba(10,22,40,.7)); }
    .academy-faq-banner-art { background-position: 63% center; opacity: .58; }
    .academy-faq-hero-copy { width: 100%; padding: 28px 24px 34px; }
    .academy-faq-breadcrumb { margin-bottom: 80px; }
    .academy-faq-main { padding: 52px 0 66px; }
    .academy-faq-guide > h2 { font-size: 29px; }
    .academy-faq-item button { grid-template-columns: 28px 1fr 20px; gap: 9px; padding: 18px 16px; }
    .academy-faq-answer > p { padding-left: 53px; padding-right: 48px; }
    .academy-faq-cta { padding-bottom: 58px; }
    .academy-faq-cta-inner { align-items: stretch; flex-direction: column; padding: 26px 22px; }
    .academy-faq-cta a { justify-content: center; }
}
