:root {
    --academy-green: #08a66c;
    --academy-green-dark: #063c2e;
    --academy-ink: #10231d;
    --academy-muted: #61716b;
    --academy-bg: #f4f8f6;
    --academy-card: #ffffff;
    --academy-line: #dce8e2;
    --academy-shadow: 0 18px 45px rgba(9, 57, 43, .11);
}

.academy-page { background: var(--academy-bg); color: var(--academy-ink); min-height: 100vh; }
.academy-page main { overflow: hidden; }
.academy-container { width: min(1240px, calc(100% - 32px)); margin: 0 auto; }
.academy-hero { padding: 150px 0 78px; color: #fff; background: radial-gradient(circle at 82% 20%, rgba(17, 190, 125, .55), transparent 32%), linear-gradient(125deg, #051f19 0%, #0a4f3b 58%, #087d55 100%); }
.academy-hero-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(260px, .85fr); align-items: center; gap: 52px; }
.academy-logo-shell { border-radius: 24px; padding: 24px; background: rgba(255,255,255,.96); box-shadow: 0 25px 70px rgba(0,0,0,.25); }
.academy-logo-shell img { display: block; width: 100%; max-width: 100%; height: auto; }
.academy-eyebrow, .academy-pill { display: inline-flex; align-items: center; gap: 8px; padding: 7px 13px; border-radius: 999px; background: rgba(8,166,108,.13); color: var(--academy-green); font-size: .78rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.academy-hero .academy-eyebrow { color: #baffdf; background: rgba(255,255,255,.1); }
.academy-hero h1 { font-size: clamp(2.5rem, 6vw, 5.2rem); line-height: .98; font-weight: 800; margin: 18px 0; }
.academy-hero p { max-width: 700px; font-size: 1.12rem; color: rgba(255,255,255,.82); }
.academy-actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 28px; }
.academy-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 46px; padding: 0 20px; border: 1px solid transparent; border-radius: 999px; background: var(--academy-green); color: #fff; font-weight: 750; text-decoration: none; transition: transform .2s, box-shadow .2s, background .2s; }
.academy-btn:hover { color: #fff; transform: translateY(-2px); box-shadow: 0 12px 24px rgba(8,166,108,.25); }
.academy-btn-outline { border-color: var(--academy-line); background: transparent; color: var(--academy-green-dark); }
.academy-hero .academy-btn-outline { border-color: rgba(255,255,255,.35); color: #fff; }
.academy-shortcuts { position: relative; z-index: 2; margin-top: -30px; }
.academy-shortcut-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; padding: 22px; border: 1px solid var(--academy-line); border-radius: 24px; background: rgba(255,255,255,.97); box-shadow: var(--academy-shadow); }
.academy-shortcut { padding: 20px; border-radius: 18px; color: var(--academy-ink); text-decoration: none; background: #f6fbf8; border: 1px solid transparent; font-weight: 800; }
.academy-shortcut:hover { color: var(--academy-green-dark); border-color: var(--academy-green); }
.academy-section { padding: 68px 0 10px; }
.academy-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 22px; }
.academy-section-heading h2 { margin: 9px 0 0; font-size: clamp(1.65rem, 3vw, 2.3rem); font-weight: 800; }
.academy-rail-controls { display: flex; gap: 8px; }
.academy-rail-button { width: 42px; height: 42px; border: 1px solid var(--academy-line); border-radius: 50%; background: #fff; color: var(--academy-green-dark); }
.academy-rail-button:disabled { opacity: .35; }
.academy-rail { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(270px, 310px); gap: 20px; overflow-x: auto; padding: 8px 2px 28px; scroll-snap-type: x mandatory; scrollbar-width: thin; scrollbar-color: var(--academy-green) transparent; }
.academy-card { display: flex; flex-direction: column; min-height: 100%; overflow: hidden; scroll-snap-align: start; border: 1px solid var(--academy-line); border-radius: 22px; background: var(--academy-card); color: var(--academy-ink); box-shadow: 0 10px 28px rgba(11, 54, 42, .07); }
.academy-card-media { position: relative; aspect-ratio: 16/9; overflow: hidden; background: #dfe9e4; }
.academy-card-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s; }
.academy-card:hover .academy-card-media img { transform: scale(1.035); }
.academy-card-badge { position: absolute; top: 12px; left: 12px; padding: 6px 10px; border-radius: 999px; background: rgba(5,31,25,.88); color: #fff; font-size: .74rem; font-weight: 750; }
.academy-card-body { display: flex; flex: 1; flex-direction: column; padding: 20px; }
.academy-card h3 { margin: 10px 0 8px; font-size: 1.15rem; font-weight: 800; }
.academy-card p { color: var(--academy-muted); font-size: .92rem; }
.academy-card-meta { display: flex; flex-wrap: wrap; gap: 8px 13px; margin: auto 0 15px; color: var(--academy-muted); font-size: .82rem; }
.academy-card-actions { display: flex; gap: 8px; align-items: center; }
.academy-card-actions .academy-btn { flex: 1; min-height: 40px; padding: 0 14px; font-size: .86rem; }
.academy-share { width: 40px; height: 40px; border: 1px solid var(--academy-line); border-radius: 50%; background: #fff; color: var(--academy-green-dark); }
.academy-see-more { display: grid; place-items: center; min-height: 330px; padding: 24px; border: 2px dashed rgba(8,166,108,.4); border-radius: 22px; background: rgba(8,166,108,.04); color: var(--academy-green-dark); text-align: center; text-decoration: none; font-weight: 800; scroll-snap-align: start; }
.academy-message { padding: 18px 20px; border-radius: 14px; background: #fff; border: 1px solid var(--academy-line); color: var(--academy-muted); }
.academy-catalog-hero { padding: 140px 0 56px; color: #fff; background: linear-gradient(120deg, #061f18, #08724f); }
.academy-catalog-hero h1 { font-size: clamp(2.3rem, 5vw, 4.2rem); font-weight: 800; }
.academy-back-link { display:inline-flex; align-items:center; gap:8px; margin-bottom:22px; color:#d9fff0; font-weight:750; text-decoration:none; }
.academy-back-link:hover,.academy-back-link:focus-visible { color:#fff; text-decoration:underline; text-underline-offset:4px; }
.academy-catalog-layout { display: grid; grid-template-columns: 270px minmax(0,1fr); gap: 30px; padding: 54px 0 80px; }
.academy-filters { align-self: start; position: sticky; top: 105px; padding: 22px; border: 1px solid var(--academy-line); border-radius: 20px; background: #fff; }
.academy-field { margin-bottom: 18px; }
.academy-field label { display: block; margin-bottom: 7px; font-weight: 750; }
.academy-field select, .academy-field input[type="text"] { width: 100%; min-height: 44px; border: 1px solid #cadbd3; border-radius: 10px; padding: 8px 10px; background: #fff; }
.academy-toolbar { display: flex; justify-content: space-between; gap: 15px; align-items: center; margin-bottom: 20px; }
.academy-view-buttons { display: flex; gap: 7px; }
.academy-view-buttons a { display:grid; place-items:center; width: 40px; height:40px; border:1px solid var(--academy-line); border-radius:10px; color:var(--academy-green-dark); background:#fff; }
.academy-view-buttons a.active { background:var(--academy-green-dark); color:#fff; }
.academy-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 20px; }
.academy-grid.is-list { grid-template-columns: 1fr; }
.academy-grid.is-list .academy-card { display:grid; grid-template-columns: 260px minmax(0,1fr); }
.academy-pagination { display:flex; justify-content:center; gap:10px; margin-top:35px; }
.academy-detail { padding: 135px 0 80px; }
.academy-detail-top { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(300px,.65fr); gap:26px; align-items:start; }
.academy-video { aspect-ratio:16/9; border:0; width:100%; border-radius:22px; background:#061f18; box-shadow:var(--academy-shadow); }
.academy-detail-card, .academy-content-card { padding:26px; border:1px solid var(--academy-line); border-radius:22px; background:#fff; box-shadow:0 10px 30px rgba(9,57,43,.07); }
.academy-detail-card h1 { font-size:clamp(1.6rem,3vw,2.4rem); font-weight:800; }
.academy-rating { display:flex; gap:4px; margin:18px 0; }
.academy-star { border:0; background:transparent; color:#d5a800; font-size:1.7rem; padding:2px; }
.academy-content-stack { display:grid; gap:22px; margin-top:28px; }
.academy-material-list { display:grid; gap:10px; padding:0; list-style:none; }
.academy-material-list a { display:flex; justify-content:space-between; padding:14px 16px; border:1px solid var(--academy-line); border-radius:12px; color:var(--academy-green-dark); text-decoration:none; }
.academy-short-list { display:grid; gap:22px; }
.academy-short-card { display:grid; grid-template-columns:190px minmax(0,1fr); overflow:hidden; border:1px solid var(--academy-line); border-radius:24px; background:#fff; box-shadow:var(--academy-shadow); }
.academy-short-media { position:relative; width:100%; aspect-ratio:9 / 16; overflow:hidden; background:#dfe9e4; }
.academy-short-media img { width:100%; height:100%; object-fit:cover; }
.academy-short-content { display:flex; flex-direction:column; min-width:0; padding:28px; }
.academy-short-content h3 { margin:16px 0 10px; font-size:clamp(1.35rem,2.4vw,2rem); font-weight:800; }
.academy-short-content > p { max-width:720px; color:var(--academy-muted); }
.academy-short-content .academy-card-actions { margin-top:auto; padding-top:22px; }
.academy-short-taxonomy { display:flex; flex-wrap:wrap; align-items:center; gap:10px; color:var(--academy-muted); font-size:.88rem; }
.academy-short-modal[hidden] { display:none; }
.academy-short-modal { position:fixed; inset:0; z-index:1200; display:grid; place-items:center; padding:20px; }
.academy-short-modal-backdrop { position:absolute; inset:0; width:100%; border:0; background:rgba(2,20,15,.78); backdrop-filter:blur(8px); }
.academy-short-modal-panel { position:relative; display:grid; grid-template-columns:minmax(260px,390px) minmax(260px,1fr); width:min(920px,100%); max-height:calc(100vh - 40px); overflow:auto; border-radius:28px; background:#fff; box-shadow:0 30px 90px rgba(0,0,0,.38); }
.academy-short-player-shell { position:relative; min-height:420px; background:#061f18; }
.academy-short-player { display:block; width:100%; aspect-ratio:9 / 16; border:0; background:#061f18; }
.academy-short-fallback-cover { width:100%; height:100%; object-fit:cover; }
.academy-short-modal-copy { display:flex; flex-direction:column; align-items:flex-start; justify-content:center; padding:42px; }
.academy-short-modal-copy h2 { margin:18px 0 12px; font-size:clamp(1.7rem,3vw,2.7rem); font-weight:800; }
.academy-short-modal-copy p { color:var(--academy-muted); }
.academy-short-modal-copy .academy-btn { margin-top:18px; }
.academy-short-modal-close { position:absolute; top:16px; right:16px; z-index:2; display:grid; place-items:center; width:42px; height:42px; border:1px solid var(--academy-line); border-radius:50%; background:#fff; color:var(--academy-ink); box-shadow:0 8px 24px rgba(0,0,0,.15); }
body.academy-modal-open { overflow:hidden; }

@media (max-width: 992px) {
    .academy-hero-grid, .academy-detail-top { grid-template-columns: minmax(0, 1fr); }
    .academy-logo-shell { max-width: 520px; }
    .academy-catalog-layout { grid-template-columns: 1fr; }
    .academy-filters { position: static; }
    .academy-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 680px) {
    .academy-container { width: min(calc(100% - 22px), 1240px); }
    .academy-hero h1 { overflow-wrap: anywhere; }
    .academy-hero { padding-top: 118px; }
    .academy-shortcut-grid { grid-template-columns: 1fr; }
    .academy-grid { grid-template-columns: 1fr; }
    .academy-grid.is-list .academy-card { display:flex; }
    .academy-toolbar { align-items:flex-start; flex-direction:column; }
    .academy-short-card { grid-template-columns:112px minmax(0,1fr); border-radius:18px; }
    .academy-short-content { padding:18px 16px; }
    .academy-short-content h3 { margin:12px 0 8px; font-size:1.15rem; }
    .academy-short-content > p { display:-webkit-box; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:4; font-size:.88rem; }
    .academy-short-content .academy-card-actions { flex-wrap:wrap; padding-top:12px; }
    .academy-short-modal { padding:10px; }
    .academy-short-modal-panel { grid-template-columns:minmax(0,1fr); max-height:calc(100vh - 20px); border-radius:20px; }
    .academy-short-player-shell { min-height:0; }
    .academy-short-player { max-height:62vh; }
    .academy-short-modal-copy { padding:24px; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior:auto!important; transition:none!important; } }
