:root {
    --academy-navy: #062d64;
    --academy-blue: #0876bd;
    --academy-cyan: #16a9df;
    --academy-green: #16863b;
    --academy-ink: #16375f;
    --academy-muted: #5d7391;
    --academy-line: #d7e5f0;
    --academy-soft: #eef7fd;
}

.academy-page { overflow: hidden; background: #fff; color: var(--academy-ink); }
.academy-hero { position: relative; padding: clamp(58px, 8vw, 108px) 18px 80px; background: radial-gradient(circle at 88% 10%, rgba(22,169,223,.2), transparent 28%), linear-gradient(135deg, #f5fbff 0%, #eaf6fc 100%); }
.academy-hero::before, .academy-hero::after { position: absolute; border-radius: 50%; content: ""; pointer-events: none; }
.academy-hero::before { width: 420px; height: 420px; right: -210px; bottom: -230px; border: 55px solid rgba(8,118,189,.08); }
.academy-hero::after { width: 180px; height: 180px; left: -95px; top: 30px; background: rgba(22,169,223,.08); }
.academy-wrap { position: relative; z-index: 1; width: min(1180px, 100%); margin: auto; }
.academy-hero-grid { display: grid; grid-template-columns: minmax(0, 1.04fr) minmax(320px, .96fr); gap: clamp(35px, 7vw, 92px); align-items: center; }
.academy-eyebrow, .academy-section-label { display: inline-flex; align-items: center; gap: 9px; color: var(--academy-blue); font-size: 12px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.academy-eyebrow::before, .academy-section-label::before { width: 9px; height: 9px; border-radius: 50%; background: var(--academy-cyan); box-shadow: 0 0 0 5px rgba(22,169,223,.14); content: ""; }
.academy-hero h1 { max-width: 760px; margin: 18px 0 18px; color: var(--academy-navy); font-size: clamp(37px, 5.6vw, 70px); font-weight: 900; letter-spacing: -.05em; line-height: 1.02; }
.academy-hero h1 strong { color: var(--academy-blue); }
.academy-hero-lead { max-width: 680px; margin: 0; color: var(--academy-muted); font-size: clamp(17px, 2vw, 20px); line-height: 1.7; }
.academy-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.academy-button { display: inline-flex; min-height: 49px; align-items: center; justify-content: center; padding: 12px 21px; border-radius: 11px; font-weight: 900; text-decoration: none; transition: transform .18s ease, box-shadow .18s ease, background .18s ease; }
.academy-button:hover { transform: translateY(-2px); }
.academy-button-primary { background: var(--academy-blue); color: #fff !important; box-shadow: 0 13px 28px rgba(8,118,189,.22); }
.academy-button-primary:hover { background: var(--academy-navy); }
.academy-button-secondary { border: 1px solid #bdd3e4; background: #fff; color: var(--academy-navy) !important; }
.academy-hero-card { position: relative; overflow: hidden; min-height: 410px; border-radius: 26px; background: linear-gradient(150deg, var(--academy-navy), #0a5a98 68%, var(--academy-blue)); box-shadow: 0 28px 65px rgba(6,45,100,.2); }
.academy-hero-card::after { position: absolute; right: -80px; bottom: -110px; width: 300px; height: 300px; border: 45px solid rgba(255,255,255,.12); border-radius: 50%; content: ""; }
.academy-hero-card img { position: absolute; right: 0; bottom: 0; width: 92%; height: 68%; object-fit: cover; object-position: center; opacity: .78; mix-blend-mode: screen; }
.academy-hero-card-content { position: relative; z-index: 1; padding: 29px; color: #fff; }
.academy-hero-card-content small { color: #9deafa; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.academy-hero-card-content h2 { max-width: 310px; margin: 12px 0 13px; color: #fff; font-size: 31px; line-height: 1.08; }
.academy-hero-card-content p { max-width: 300px; margin: 0; color: #d9effc; line-height: 1.65; }
.academy-pill { display: inline-flex; margin-top: 23px; padding: 8px 12px; border: 1px solid rgba(255,255,255,.25); border-radius: 999px; color: #fff; font-size: 12px; font-weight: 800; }
.academy-strip { padding: 20px 18px; background: var(--academy-navy); color: #fff; }
.academy-strip-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.academy-strip-item { display: flex; gap: 12px; align-items: center; justify-content: center; min-height: 54px; text-align: left; }
.academy-strip-item strong { display: block; color: #fff; font-size: 14px; }
.academy-strip-item span { display: block; margin-top: 3px; color: #bcd6e8; font-size: 12px; }
.academy-strip-icon { display: grid; width: 38px; height: 38px; flex: 0 0 38px; place-items: center; border-radius: 11px; background: rgba(22,169,223,.2); color: #8be4f7; font-size: 18px; }
.academy-section { padding: clamp(58px, 8vw, 98px) 18px; }
.academy-section-soft { background: #f7fbfe; }
.academy-section-head { max-width: 700px; margin: 0 auto 38px; text-align: center; }
.academy-section-head h2 { margin: 13px 0 13px; color: var(--academy-navy); font-size: clamp(29px, 4vw, 46px); font-weight: 900; letter-spacing: -.04em; line-height: 1.08; }
.academy-section-head p { margin: 0; color: var(--academy-muted); font-size: 16px; line-height: 1.7; }
.academy-courses { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 17px; }
.academy-course { display: flex; min-width: 0; flex-direction: column; padding: 25px; border: 1px solid var(--academy-line); border-radius: 17px; background: #fff; box-shadow: 0 10px 28px rgba(6,45,100,.06); }
.academy-course-icon { display: grid; width: 48px; height: 48px; place-items: center; border-radius: 14px; background: var(--academy-soft); color: var(--academy-blue); font-size: 23px; }
.academy-course h3 { margin: 19px 0 9px; color: var(--academy-navy); font-size: 20px; }
.academy-course p { min-height: 70px; margin: 0; color: var(--academy-muted); font-size: 14px; line-height: 1.65; }
.academy-course ul { display: grid; gap: 8px; margin: 20px 0 0; padding: 0; color: var(--academy-ink); font-size: 13px; list-style: none; }
.academy-course li::before { margin-right: 8px; color: var(--academy-green); content: "✓"; font-weight: 900; }
.academy-process { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 34px; counter-reset: academy-step; }
.academy-step { position: relative; padding: 27px 25px 25px; border-top: 3px solid var(--academy-cyan); background: #fff; box-shadow: 0 10px 26px rgba(6,45,100,.06); counter-increment: academy-step; }
.academy-step::before { display: grid; width: 38px; height: 38px; place-items: center; margin-bottom: 18px; border-radius: 50%; background: var(--academy-navy); color: #fff; content: counter(academy-step, decimal-leading-zero); font-size: 12px; font-weight: 900; }
.academy-step h3 { margin: 0 0 8px; color: var(--academy-navy); font-size: 18px; }
.academy-step p { margin: 0; color: var(--academy-muted); font-size: 14px; line-height: 1.65; }
.academy-cta { padding: clamp(37px, 6vw, 58px); border-radius: 23px; background: linear-gradient(135deg, var(--academy-navy), var(--academy-blue)); color: #fff; box-shadow: 0 20px 50px rgba(6,45,100,.18); }
.academy-cta-grid { display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.academy-cta h2 { margin: 0 0 10px; color: #fff; font-size: clamp(26px, 4vw, 42px); line-height: 1.08; }
.academy-cta p { max-width: 690px; margin: 0; color: #d8edfb; line-height: 1.65; }
.academy-cta .academy-button { flex: 0 0 auto; background: #68defb; color: var(--academy-navy) !important; }
.academy-faq { display: grid; gap: 10px; max-width: 820px; margin: auto; }
.academy-faq details { border: 1px solid var(--academy-line); border-radius: 11px; background: #fff; }
.academy-faq summary { padding: 17px 19px; color: var(--academy-navy); cursor: pointer; font-weight: 900; }
.academy-faq p { margin: 0; padding: 0 19px 18px; color: var(--academy-muted); line-height: 1.65; }

@media (max-width: 900px) {
    .academy-hero-grid { grid-template-columns: 1fr; }
    .academy-hero-card { min-height: 330px; }
    .academy-courses, .academy-process { grid-template-columns: 1fr 1fr; }
    .academy-course:last-child, .academy-step:last-child { grid-column: 1 / -1; }
}

@media (max-width: 600px) {
    .academy-hero { padding-top: 48px; }
    .academy-actions, .academy-actions .academy-button { width: 100%; }
    .academy-hero-card { min-height: 360px; }
    .academy-strip-grid, .academy-courses, .academy-process { grid-template-columns: 1fr; }
    .academy-course:last-child, .academy-step:last-child { grid-column: auto; }
    .academy-strip-item { justify-content: flex-start; }
    .academy-cta-grid { align-items: flex-start; flex-direction: column; }
    .academy-cta .academy-button { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
    .academy-button { transition: none; }
}

/* Linguagem visual da página pública Formação e Serviços SoftBengui. */
.academy-page { background: #fff; }
.academy-hero {
    padding: 0 18px 86px;
    background: #061f3c;
    color: #fff;
}
.academy-hero::before {
    top: -165px;
    right: -145px;
    bottom: auto;
    width: 490px;
    height: 490px;
    border: 1px solid rgba(64, 211, 239, .2);
    box-shadow: 0 0 0 110px rgba(64, 211, 239, .035), 0 0 0 220px rgba(64, 211, 239, .025);
}
.academy-hero::after {
    top: 0;
    left: auto;
    right: 10%;
    width: 160px;
    height: 160px;
    background: transparent;
    border: 1px solid rgba(64, 211, 239, .13);
}
.academy-topbar {
    position: relative;
    z-index: 2;
    display: flex;
    min-height: 76px;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    border-bottom: 1px solid rgba(186, 226, 244, .13);
}
.academy-brand {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: #fff !important;
    font-size: 18px;
    font-weight: 950;
    letter-spacing: .02em;
    text-decoration: none;
    white-space: nowrap;
}
.academy-brand > span:last-child span { color: #36d2e8; }
.academy-brand-mark {
    display: grid;
    width: 36px;
    height: 36px;
    place-items: center;
    border-radius: 10px;
    background: linear-gradient(135deg, #23d3df, #1473d6);
    color: #fff;
    font-size: 20px;
    font-weight: 950;
}
.academy-top-lookup {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    gap: 9px;
    padding: 0 16px;
    border: 1px solid rgba(126, 224, 245, .55);
    border-radius: 10px;
    background: rgba(14, 118, 178, .34);
    color: #fff !important;
    font-size: 13px;
    font-weight: 850;
    text-decoration: none;
    white-space: nowrap;
    transition: background .18s ease, border-color .18s ease, transform .18s ease;
}
.academy-top-lookup span:first-child { color: #62e1f0; font-size: 21px; line-height: 1; }
.academy-top-lookup:hover, .academy-top-lookup:focus-visible { border-color: #72e5f3; background: rgba(28, 145, 204, .58); color: #fff !important; transform: translateY(-1px); }
.academy-topnav { display: flex; align-items: center; gap: clamp(15px, 2.5vw, 34px); }
.academy-topnav a { color: #dcecf6 !important; font-size: 13px; text-decoration: none; transition: color .18s ease; }
.academy-topnav a:hover { color: #4ce0f2 !important; }
.academy-top-cta {
    display: inline-flex;
    min-height: 48px;
    align-items: center;
    gap: 12px;
    padding: 0 20px;
    border-radius: 11px;
    background: linear-gradient(135deg, #18b9dc, #176fd0);
    color: #fff !important;
    font-size: 14px;
    font-weight: 900;
    text-decoration: none;
    white-space: nowrap;
}
.academy-top-cta span { font-size: 21px; line-height: 1; }
.academy-hero-grid {
    position: relative;
    z-index: 1;
    grid-template-columns: minmax(0, 1.03fr) minmax(350px, .97fr);
    gap: clamp(38px, 7vw, 90px);
    padding-top: clamp(65px, 8vw, 105px);
}
.academy-eyebrow { color: #43d8ed; }
.academy-eyebrow::before { display: none; }
.academy-hero h1 {
    max-width: 680px;
    margin-top: 22px;
    color: #fff;
    font-size: clamp(45px, 6.4vw, 74px);
    font-weight: 500;
    letter-spacing: -.065em;
    line-height: .99;
}
.academy-hero h1 strong { color: #fff; font-weight: 500; }
.academy-hero-lead { max-width: 665px; color: #cde4f3; font-size: clamp(16px, 1.8vw, 19px); line-height: 1.7; }
.academy-actions { margin-top: 31px; }
.academy-button-primary { background: linear-gradient(135deg, #16b8d6, #1478d4); box-shadow: 0 13px 28px rgba(0, 0, 0, .2); }
.academy-button-primary:hover { background: #22c7df; }
.academy-button-primary span { margin-left: 9px; font-size: 16px; }
.academy-button-secondary { border-color: rgba(197, 225, 242, .38); background: transparent; color: #fff !important; }
.academy-button-secondary:hover { border-color: #43d8ed; background: rgba(255, 255, 255, .08); }
.academy-hero-card {
    min-height: 385px;
    transform: rotate(2.4deg);
    border: 1px solid rgba(194, 231, 244, .22);
    border-radius: 25px;
    background: linear-gradient(145deg, rgba(92, 144, 177, .34), rgba(23, 58, 88, .58));
    box-shadow: 0 24px 55px rgba(0, 0, 0, .2), inset 0 1px 0 rgba(255, 255, 255, .12);
    backdrop-filter: blur(9px);
}
.academy-hero-card::after { right: -90px; bottom: -130px; border-width: 42px; border-color: rgba(69, 212, 237, .13); }
.academy-hero-card-content { padding: 39px 31px 26px; }
.academy-card-topline { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.academy-hero-card-content small { color: #b4d5e4; font-size: 11px; letter-spacing: .11em; }
.academy-card-topline > span {
    padding: 7px 11px;
    border: 1px solid rgba(67, 216, 237, .38);
    border-radius: 999px;
    color: #54ddec;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .09em;
    text-transform: uppercase;
}
.academy-cap-icon { display: block; width: 62px; margin: 40px 0 12px; color: #49d6e9; line-height: .6; }
.academy-cap-icon svg { display: block; width: 62px; height: 62px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 3; }
.academy-hero-card-content h2 { max-width: none; margin: 0 0 13px; font-size: clamp(28px, 3vw, 35px); font-weight: 500; }
.academy-hero-card-content p { color: #c1d9e8; }
.academy-hero-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: 27px; padding-top: 22px; border-top: 1px solid rgba(207, 237, 247, .2); }
.academy-hero-stats strong, .academy-hero-stats span { display: block; }
.academy-hero-stats strong { color: #fff; font-size: 20px; }
.academy-hero-stats span { margin-top: 6px; color: #b4d2e1; font-size: 11px; }
.academy-hero-card img { width: 100%; height: 58%; opacity: .12; mix-blend-mode: screen; }
.academy-pill { display: none; }
.academy-strip { background: #082c54; }
.academy-simulator { padding-top: clamp(52px, 7vw, 80px); padding-bottom: clamp(48px, 6vw, 70px); background: #f7fbfe; }
.academy-simulator .academy-section-head { margin-bottom: 27px; }
.academy-simulator-box {
    display: grid;
    grid-template-columns: minmax(0, 1.3fr) minmax(240px, .9fr) auto;
    gap: 22px;
    align-items: end;
    padding: 25px;
    border: 1px solid #d8e9f2;
    border-radius: 17px;
    background: #fff;
    box-shadow: 0 13px 34px rgba(6, 45, 100, .07);
}
.academy-simulator-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }
.academy-simulator label { display: grid; gap: 8px; color: var(--academy-navy); font-size: 13px; font-weight: 900; }
.academy-simulator select, .academy-simulator input { width: 100%; min-height: 46px; padding: 0 13px; border: 1px solid #c9dce9; border-radius: 9px; background: #fff; color: var(--academy-ink); font: inherit; font-weight: 600; }
.academy-estimate { min-height: 82px; padding: 13px 17px; border-radius: 11px; background: #eaf7fb; }
.academy-estimate small, .academy-estimate strong, .academy-estimate span { display: block; }
.academy-estimate small { color: var(--academy-blue); font-size: 11px; font-weight: 900; text-transform: uppercase; }
.academy-estimate strong { margin: 5px 0 4px; color: var(--academy-navy); font-size: 18px; }
.academy-estimate span { color: var(--academy-muted); font-size: 12px; }
.academy-simulator-box > .academy-button { min-width: 174px; }

@media (max-width: 900px) {
    .academy-topnav { display: none; }
    .academy-hero-grid { grid-template-columns: 1fr; }
    .academy-hero-card { width: min(540px, 100%); margin: 12px auto 0; }
    .academy-simulator-box { grid-template-columns: 1fr 1fr; }
    .academy-simulator-box > .academy-button { grid-column: 1 / -1; }
}

@media (max-width: 600px) {
    .academy-hero { padding-right: 15px; padding-left: 15px; }
    .academy-topbar { min-height: 69px; }
    .academy-top-lookup { min-height: 41px; padding: 0 10px; font-size: 11px; }
    .academy-top-lookup span:first-child { font-size: 18px; }
    .academy-top-cta { min-height: 41px; padding: 0 12px; font-size: 12px; }
    .academy-hero-grid { padding-top: 57px; }
    .academy-hero h1 { font-size: clamp(42px, 13vw, 59px); }
    .academy-hero-card { min-height: 360px; transform: rotate(0); }
    .academy-simulator-box, .academy-simulator-fields { grid-template-columns: 1fr; }
    .academy-simulator-box > .academy-button { width: 100%; grid-column: auto; }
}

.academy-purchase { background: #fff; }
.academy-purchase-form { display: grid; gap: 18px; max-width: 1040px; margin: auto; }
.academy-purchase-main { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(270px, .8fr); gap: 18px; align-items: stretch; }
.academy-service-picker, .academy-purchase-summary, .academy-purchase-details { min-width: 0; padding: 23px; border: 1px solid var(--academy-line); border-radius: 16px; background: #fff; box-shadow: 0 10px 28px rgba(6,45,100,.055); }
.academy-service-picker { margin: 0; }
.academy-service-picker legend { margin-bottom: 15px; color: var(--academy-navy); font-size: 18px; font-weight: 900; }
.academy-service-options { display: grid; gap: 9px; }
.academy-service-option { display: grid; grid-template-columns: 22px minmax(0,1fr) auto; gap: 11px; align-items: center; min-height: 61px; padding: 10px 11px; border: 1px solid #e0ebf2; border-radius: 11px; color: var(--academy-navy); cursor: pointer; transition: border-color .18s ease, background .18s ease, transform .18s ease; }
.academy-service-option:hover { border-color: #7bd9ed; background: #f5fcfe; transform: translateY(-1px); }
.academy-service-option input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.academy-service-option input:focus-visible + .academy-service-check { outline: 3px solid rgba(22,169,223,.32); outline-offset: 2px; }
.academy-service-option input:checked ~ .academy-service-check { border-color: #0876bd; background: #0876bd; color: #fff; }
.academy-service-option:has(input:checked) { border-color: #55cbe4; background: #f1fbfe; }
.academy-service-check { display: grid; width: 21px; height: 21px; place-items: center; border: 1px solid #b6cddc; border-radius: 6px; color: transparent; font-size: 13px; font-weight: 900; }
.academy-service-option b, .academy-service-option small { display: block; }
.academy-service-option b { font-size: 14px; }
.academy-service-option small { margin-top: 3px; color: var(--academy-muted); font-size: 11px; line-height: 1.35; }
.academy-service-option > strong { color: var(--academy-blue); font-size: 12px; white-space: nowrap; }
.academy-purchase-summary { background: #f5fbfe; }
.academy-purchase-summary > div:first-child { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; color: var(--academy-navy); }
.academy-purchase-summary > div:first-child span { font-size: 12px; font-weight: 800; text-transform: uppercase; }
.academy-purchase-summary > div:first-child b { font-size: 13px; }
.academy-purchase-summary ul { display: grid; gap: 9px; min-height: 89px; margin: 18px 0; padding: 0; color: var(--academy-muted); font-size: 13px; list-style: none; }
.academy-purchase-summary li::before { margin-right: 7px; color: var(--academy-green); content: "✓"; font-weight: 900; }
.academy-purchase-total { display: grid; gap: 4px; padding-top: 15px; border-top: 1px solid #d8eaf2; }
.academy-purchase-total span { color: var(--academy-muted); font-size: 12px; }
.academy-purchase-total strong { color: var(--academy-navy); font-size: 23px; }
.academy-purchase-details h3 { margin: 0 0 18px; color: var(--academy-navy); font-size: 19px; }
.academy-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 16px; }
.academy-form-grid label { display: grid; gap: 7px; color: var(--academy-navy); font-size: 13px; font-weight: 850; }
.academy-form-grid input, .academy-form-grid select, .academy-form-grid textarea { width: 100%; min-height: 45px; padding: 10px 12px; border: 1px solid #c9dce9; border-radius: 9px; background: #fff; color: var(--academy-ink); font: inherit; font-weight: 500; }
.academy-form-grid textarea { resize: vertical; }
.academy-field-wide { grid-column: 1 / -1; }
.academy-terms { display: flex; gap: 9px; align-items: flex-start; margin-top: 18px; color: var(--academy-muted); font-size: 12px; line-height: 1.5; cursor: pointer; }
.academy-terms input { width: 18px; height: 18px; flex: 0 0 18px; margin: 0; accent-color: var(--academy-blue); }
.academy-purchase-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; padding: 4px 2px; }
.academy-purchase-actions small { color: var(--academy-muted); font-size: 12px; }
.academy-form-alert { display: grid; gap: 5px; max-width: 1040px; margin: 0 auto 18px; padding: 16px 18px; border-radius: 12px; font-size: 13px; line-height: 1.5; }
.academy-form-alert a { color: inherit; font-weight: 900; }
.academy-form-alert-error { border: 1px solid #f1c9d1; background: #fff3f5; color: #a62540; }
.academy-form-alert-success { border: 1px solid #bce8cf; background: #f0fbf4; color: #176c43; }
.academy-form-alert-success strong { font-size: 16px; }

@media (max-width: 760px) {
    .academy-purchase-main, .academy-form-grid { grid-template-columns: 1fr; }
    .academy-field-wide { grid-column: auto; }
    .academy-purchase-actions { align-items: flex-start; flex-direction: column; }
    .academy-purchase-actions .academy-button { width: 100%; }
}

@media (max-width: 480px) {
    .academy-service-option { grid-template-columns: 22px minmax(0,1fr); }
    .academy-service-option > strong { grid-column: 2; }
    .academy-service-picker, .academy-purchase-summary, .academy-purchase-details { padding: 18px; }
}

/* Percursos de formação: cards interativos e programa detalhado */
.academy-course { position: relative; cursor: pointer; transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.academy-course:hover, .academy-course:focus-visible { border-color: #5bcce6; box-shadow: 0 16px 34px rgba(6,45,100,.12); transform: translateY(-2px); }
.academy-course:focus-visible { outline: 3px solid rgba(22,169,223,.36); outline-offset: 4px; }
.academy-course-tag { display: inline-flex; align-items: center; width: fit-content; margin-bottom: 12px; padding: 5px 9px; border-radius: 999px; background: #e9f8fc; color: var(--academy-blue); font-size: 10px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.academy-course-actions { display: flex; flex-wrap: wrap; gap: 9px; align-items: center; margin-top: 22px; }
.academy-course-actions button, .academy-course-actions a { display: inline-flex; min-height: 38px; align-items: center; justify-content: center; padding: 9px 13px; border-radius: 9px; font: inherit; font-size: 12px; font-weight: 850; text-decoration: none; cursor: pointer; transition: background .18s ease, color .18s ease, border-color .18s ease; }
.academy-course-actions button { border: 1px solid var(--academy-blue); background: var(--academy-blue); color: #fff; }
.academy-course-actions button:hover { background: var(--academy-navy); border-color: var(--academy-navy); }
.academy-course-actions a { border: 1px solid #c9e2eb; color: var(--academy-blue); background: #fff; }
.academy-course-actions a:hover { border-color: var(--academy-blue); background: #f0fbfe; }
.academy-course-modal[hidden] { display: none; }
.academy-course-modal { position: fixed; z-index: 1100; inset: 0; display: grid; place-items: center; padding: 20px; background: rgba(5,26,61,.64); }
.academy-course-dialog { width: min(940px, 100%); max-height: min(820px, calc(100vh - 40px)); overflow: auto; border: 1px solid #d4e7f0; border-radius: 20px; background: #fff; box-shadow: 0 24px 70px rgba(3,25,63,.28); }
.academy-course-dialog-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding: 25px 28px 21px; border-bottom: 1px solid #e3eef3; background: linear-gradient(135deg, #f5fcfe, #fff); }
.academy-course-dialog-heading { display: flex; gap: 15px; align-items: center; min-width: 0; }
.academy-course-dialog-icon { display: grid; width: 52px; height: 52px; flex: 0 0 52px; place-items: center; border-radius: 15px; background: var(--academy-soft); color: var(--academy-blue); font-size: 25px; }
.academy-course-dialog-kicker { display: block; margin-bottom: 5px; color: var(--academy-blue); font-size: 10px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.academy-course-dialog h2 { margin: 0; color: var(--academy-navy); font-size: clamp(24px, 3vw, 34px); line-height: 1.1; }
.academy-course-dialog-close { display: grid; width: 38px; height: 38px; flex: 0 0 38px; place-items: center; border: 1px solid #cbdfe8; border-radius: 50%; background: #fff; color: var(--academy-navy); font-size: 25px; line-height: 1; cursor: pointer; }
.academy-course-dialog-close:hover, .academy-course-dialog-close:focus-visible { border-color: var(--academy-blue); background: #eefaff; color: var(--academy-blue); }
.academy-course-dialog-body { padding: 25px 28px; }
.academy-course-dialog-description { margin: 0 0 22px; color: var(--academy-muted); font-size: 16px; line-height: 1.65; }
.academy-course-dialog-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(260px, .75fr); gap: 24px; }
.academy-course-dialog-section { min-width: 0; }
.academy-course-dialog-section h3 { margin: 0 0 12px; color: var(--academy-navy); font-size: 17px; }
.academy-course-program { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 18px; margin: 0; padding: 0; color: var(--academy-ink); font-size: 13px; list-style: none; }
.academy-course-program li { position: relative; padding-left: 19px; line-height: 1.5; }
.academy-course-program li::before { position: absolute; top: 0; left: 0; color: var(--academy-green); content: "✓"; font-weight: 900; }
.academy-course-objectives { display: grid; gap: 8px; margin: 0 0 24px; padding: 0; color: var(--academy-muted); font-size: 13px; list-style: none; }
.academy-course-objectives li { position: relative; padding-left: 19px; line-height: 1.5; }
.academy-course-objectives li::before { position: absolute; top: 0; left: 0; color: var(--academy-blue); content: "→"; font-weight: 900; }
.academy-course-meta { display: grid; gap: 10px; margin: 0; padding: 17px; border: 1px solid #dbeaf1; border-radius: 13px; background: #f6fcfe; }
.academy-course-meta div { display: grid; grid-template-columns: 116px minmax(0,1fr); gap: 10px; }
.academy-course-meta dt { color: var(--academy-muted); font-size: 12px; font-weight: 700; }
.academy-course-meta dd { margin: 0; color: var(--academy-navy); font-size: 12px; font-weight: 850; }
.academy-course-enrollment { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 18px; padding: 17px; border: 1px solid #bfe9f1; border-radius: 13px; background: #f0fbfe; }
.academy-course-enrollment label { display: grid; gap: 6px; color: var(--academy-navy); font-size: 12px; font-weight: 850; }
.academy-course-enrollment select, .academy-course-enrollment input { width: 100%; min-height: 40px; padding: 8px 10px; border: 1px solid #c7dfe8; border-radius: 8px; background: #fff; color: var(--academy-ink); font: inherit; font-size: 13px; }
.academy-course-total { grid-column: 1 / -1; display: flex; justify-content: space-between; gap: 10px; padding-top: 12px; border-top: 1px solid #cfe9ef; color: var(--academy-muted); font-size: 12px; }
.academy-course-total strong { color: var(--academy-navy); font-size: 18px; }
.academy-course-travel { grid-column: 1 / -1; margin: 0; color: #92601d; font-size: 11px; line-height: 1.45; }
.academy-course-dialog-footer { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; padding: 18px 28px 24px; border-top: 1px solid #e3eef3; }
.academy-course-dialog-footer button, .academy-course-dialog-footer a { min-height: 42px; padding: 10px 15px; border-radius: 9px; font: inherit; font-size: 12px; font-weight: 850; text-decoration: none; cursor: pointer; }
.academy-course-dialog-footer .academy-course-enroll { border: 1px solid var(--academy-blue); background: var(--academy-blue); color: #fff; }
.academy-course-dialog-footer .academy-course-custom { border: 1px solid #c9e2eb; background: #fff; color: var(--academy-blue); }
.academy-course-dialog-footer [data-course-close] { border: 1px solid #cbdfe8; background: #fff; color: var(--academy-navy); }
.academy-course-dialog-footer button:hover, .academy-course-dialog-footer a:hover { filter: brightness(.97); transform: translateY(-1px); }
.academy-enrollment-selection[hidden] { display: none; }
.academy-enrollment-selection { display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); gap: 12px; margin-bottom: 18px; padding: 17px 19px; border: 1px solid #9de1ed; border-radius: 14px; background: #f0fbfe; }
.academy-enrollment-selection div { display: grid; gap: 4px; }
.academy-enrollment-selection span { color: var(--academy-muted); font-size: 10px; font-weight: 800; text-transform: uppercase; }
.academy-enrollment-selection strong { color: var(--academy-navy); font-size: 13px; }
body.academy-course-modal-open { overflow: hidden; }
@media (max-width: 760px) {
    .academy-course-dialog-grid { grid-template-columns: 1fr; }
    .academy-course-program { grid-template-columns: 1fr; }
    .academy-enrollment-selection { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 480px) {
    .academy-course-dialog { max-height: calc(100vh - 20px); border-radius: 14px; }
    .academy-course-dialog-header, .academy-course-dialog-body, .academy-course-dialog-footer { padding-right: 18px; padding-left: 18px; }
    .academy-course-enrollment { grid-template-columns: 1fr; }
    .academy-course-total, .academy-course-travel { grid-column: auto; }
    .academy-course-dialog-footer { justify-content: stretch; }
    .academy-course-dialog-footer button, .academy-course-dialog-footer a { width: 100%; text-align: center; }
    .academy-enrollment-selection { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
    .academy-course, .academy-course-actions button, .academy-course-actions a, .academy-course-dialog-footer button, .academy-course-dialog-footer a { transition: none; }
}
