.nav-academy { position: relative; }
.academy-menu-toggle { display: inline-flex; align-items: center; gap: 7px; color: inherit; font-family: inherit; }
.academy-submenu { position: absolute; left: -20px; top: calc(100% + 12px); width: 260px; padding: 12px; list-style: none; background: #171714; border: 1px solid #39382e; box-shadow: 0 20px 40px #0008; }
.academy-submenu::before { content: ''; position: absolute; height: 16px; left: 0; right: 0; bottom: 100%; }
.academy-submenu[hidden] { display: none; }
.academy-submenu a { display: block; padding: 10px 12px; font-size: 14px; color: #e4e1d7; }
.academy-submenu a:hover, .academy-submenu a:focus-visible { color: var(--accent-yellow); background: #ffffff08; }
.academy-submenu-events { margin-top: 8px; padding-top: 8px; border-top: 1px solid #ffffff24; }
.nav-link[aria-current="page"], .nav-link[aria-current="true"] { color: var(--accent-yellow); }
.public-page :is(a, button, summary):focus-visible, .nav-academy :is(a, button):focus-visible, .academy-mode:focus-visible { outline: 2px solid var(--accent-yellow); outline-offset: 5px; }
.public-page .site-header { background: #11110fee; }
.public-page .logo-link, .public-page .header-actions { flex-shrink: 0; }
.public-main { width: min(1240px, calc(100% - 64px)); margin: 0 auto; padding: 112px 0 88px; }
.public-breadcrumb { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 52px; font-size: 12px; color: #aaa99f; }
.public-breadcrumb a:hover { color: #fff; }
.public-heading { max-width: 900px; margin-bottom: 52px; }
.public-eyebrow, .academy-mode > span { color: var(--accent-yellow); font-size: 12px; font-weight: 650; letter-spacing: .12em; text-transform: uppercase; }
.public-heading h1 { max-width: 20ch; margin: 16px 0 22px; font-size: clamp(34px, 4.8vw, 62px); line-height: 1.05; text-wrap: balance; }
.public-lead { max-width: 65ch; color: #c7c5ba; font-size: clamp(17px, 1.7vw, 21px); line-height: 1.6; text-wrap: pretty; }
.academy-hub-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; background: #36362d; border: 1px solid #36362d; }
.academy-mode { display: flex; flex-direction: column; align-items: flex-start; min-width: 0; padding: clamp(24px, 3.2vw, 44px); background: #141411; text-align: left; }
.academy-mode :is(h2, h3) { font-size: clamp(22px, 2.1vw, 30px); line-height: 1.2; margin: 22px 0 16px; text-wrap: balance; }
.academy-mode p { max-width: 60ch; color: #b7b6ac; line-height: 1.7; margin-bottom: 30px; }
.academy-mode strong { color: #edeade; margin-top: auto; font-size: 13px; font-weight: 600; }
.academy-mode:hover { background: #202019; }
.academy-mode:hover strong { color: var(--accent-yellow); }
.academy-mode-events { grid-column: 1 / -1; background: #252216; border-left: 4px solid var(--accent-yellow); }
.academy-home-hub { width: min(1120px, calc(100% - 48px)); margin: 0 auto 64px; }
.academy-intro { color: #c7c5ba; font-size: 18px; margin-top: 16px; padding-inline: 24px; }
.academy-preview-title { color: #c7c5ba; font-size: 13px; text-transform: uppercase; letter-spacing: .12em; text-align: center; }
.public-category-nav { display: flex; flex-wrap: wrap; gap: 12px 24px; padding-bottom: 28px; margin-bottom: 36px; border-bottom: 1px solid #ffffff26; font-size: 14px; }
.public-category-nav [aria-current] { color: var(--accent-yellow); }
.public-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
.public-card { min-width: 0; border-bottom: 1px solid #ffffff26; }
.public-card > a { display: flex; height: 100%; flex-direction: column; }
.public-card-image { aspect-ratio: 4 / 3; overflow: hidden; background: #1b1b18; }
.public-card-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .25s; }
.public-card-image.is-poster img { object-fit: contain; }
.public-card:hover .public-card-image img { transform: scale(1.025); }
.public-card-copy { padding: 24px 0 30px; display: flex; flex-direction: column; flex: 1; }
.public-card-copy h2 { font-size: 23px; line-height: 1.25; margin: 12px 0; text-wrap: balance; }
.public-card-copy > p:not(.public-eyebrow) { font-size: 14px; color: #b7b6ac; margin-bottom: 20px; }
.public-card-copy strong { color: var(--accent-yellow); font-size: 13px; margin-top: auto; }
.public-detail { display: grid; grid-template-columns: minmax(0, .86fr) minmax(0, 1.14fr); gap: clamp(28px, 5vw, 72px); align-items: start; }
.public-detail-media { position: sticky; top: 104px; min-width: 0; }
.public-detail-media img { width: 100%; max-height: calc(100dvh - 132px); object-fit: contain; background: #141411; }
.public-detail-media figcaption { color: #a7a699; font-size: 12px; margin-top: 12px; }
.public-detail-copy { min-width: 0; }
.public-detail-copy h1 { font-size: clamp(30px, 3.3vw, 47px); line-height: 1.1; margin: 16px 0 20px; text-wrap: balance; }
.public-detail-copy > p { margin-bottom: 24px; color: #c7c5ba; }
.public-detail-section { margin: 36px 0; padding-top: 30px; border-top: 1px solid #ffffff26; }
.public-detail-section h2 { font-size: 21px; margin-bottom: 20px; }
.public-learning-list { padding-left: 25px; }
.public-learning-list li { color: #e7e4d8; padding: 10px 0 10px 6px; border-bottom: 1px solid #ffffff0d; }
.public-learning-list li::marker { color: var(--accent-yellow); }
.public-benefits { list-style: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.public-benefits li { display: flex; align-items: center; gap: 12px; padding: 16px; background: #1a1a16; font-size: 13px; }
.public-benefits li > span { flex-shrink: 0; font-size: 20px; }
.public-highlight { border-left: 3px solid var(--accent-yellow); background: #242115; padding: 24px; margin: 24px 0; line-height: 1.7; color: #e5dfca; }
.public-commerce { display: flex; flex-wrap: wrap; gap: 20px; align-items: center; margin-top: 32px; padding-top: 24px; border-top: 1px solid #ffffff26; }
.public-commerce > strong { font-size: 24px; }
.public-button { display: inline-flex; align-items: center; justify-content: center; gap: 14px; padding: 16px 22px; background: var(--accent-yellow); color: #15140b; font-size: 14px; line-height: 1.4; font-weight: 750; text-align: center; }
.public-button:hover { background: #ffe47a; }
.public-button:active { transform: translateY(1px); }
.public-detail-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 24px; }
.public-specifications { display: grid; grid-template-columns: 1fr 2fr; gap: 16px 24px; margin: 30px 0; font-size: 14px; }
.public-specifications dt { color: #a7a699; }
.public-specifications dd { margin: 0; }
.public-product-images { display: flex; flex-wrap: wrap; gap: 12px; }
.public-product-images img { width: 100px; height: 120px; object-fit: contain; background: #191916; }
.public-article { display: block; max-width: 820px; margin-inline: auto; }
.public-article .public-detail-media { position: static; margin-bottom: 36px; }
.public-article .public-detail-media img { max-height: 540px; }
.public-post-meta { font-size: 13px; }
.public-rich-text { color: #d7d4ca; line-height: 1.85; }
.public-rich-text p { margin-bottom: 22px; }
.public-rich-text :is(h2, h3) { margin: 38px 0 20px; line-height: 1.3; color: #fff; }
.public-rich-text :is(ul, ol) { padding-left: 24px; margin-bottom: 24px; }
.public-rich-text blockquote { margin: 24px 0; padding: 20px 24px; border-left: 3px solid var(--accent-yellow); background: #1c1c17; }
.public-rich-text img { width: 100%; height: auto; }
.public-rich-text figcaption { font-size: 12px; }
.public-events { display: grid; grid-template-columns: minmax(0, .7fr) minmax(0, 1fr); align-items: center; gap: clamp(28px, 6vw, 80px); }
.public-events img { width: 100%; height: auto; max-height: 660px; object-fit: cover; object-position: center 30%; }
.public-events h2 { font-size: clamp(28px, 3vw, 40px); line-height: 1.2; margin: 16px 0 28px; text-wrap: balance; }
.public-events p { margin: 20px 0; color: #c7c5ba; }
.public-event-list { list-style: none; display: flex; flex-wrap: wrap; gap: 10px 22px; padding: 20px 0; border-block: 1px solid #ffffff26; }
.public-events .public-contact-note { font-size: 12px; overflow-wrap: anywhere; }
.public-empty { max-width: 700px; background: #181814; padding: clamp(24px, 5vw, 48px); }
.public-empty p { color: #c7c5ba; margin: 18px 0 28px; }
.public-contact-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 48px; }
.public-contact-grid p { margin: 20px 0; overflow-wrap: anywhere; }
.public-contact-extra { margin-top: 40px; padding-top: 28px; border-top: 1px solid #ffffff26; color: #c7c5ba; }
.public-contact-extra a { display: inline-block; margin-top: 16px; color: var(--accent-yellow); }
.public-principles { margin-top: 64px; border-top: 1px solid #ffffff26; }
.public-principles article { display: grid; grid-template-columns: 1fr 2fr; gap: 32px; padding: 28px 0; border-bottom: 1px solid #ffffff26; }
.public-principles h2 { font-size: 22px; }
.public-principles p { color: #c7c5ba; }
.public-quantity { display: flex; align-items: center; gap: 12px; font-size: 13px; }
.public-quantity input { width: 72px; padding: 10px; background: #1a1a16; color: #fff; border: 1px solid #ffffff40; font: inherit; }
.public-share { display: flex; flex-wrap: wrap; gap: 14px 28px; align-items: center; border-top: 1px solid #ffffff26; padding-top: 28px; margin-top: 64px; font-size: 13px; color: #c7c5ba; }
.public-share button { color: var(--accent-yellow); font-size: inherit; }
.public-share input { max-width: 100%; background: #222; color: #fff; border: 1px solid #777; padding: 10px; }
.public-module { padding: 18px 0; border-bottom: 1px solid #ffffff26; }
.public-module summary { cursor: pointer; font-weight: 600; }
.public-module p, .public-module ul { color: #c7c5ba; margin-top: 16px; }
.public-module ul { padding-left: 22px; }
.public-footer { padding-inline: max(32px, calc((100% - 1240px) / 2)); }
.public-footer p { font-size: 14px; }
.public-footer-stat { color: var(--accent-yellow); margin: 16px 0 24px; }
.public-footer-nav { display: flex; flex-wrap: wrap; gap: 18px 28px; margin-top: 32px; font-size: 13px; }
.home-section-link { display: inline-flex; margin-top: 18px; color: var(--accent-yellow); font-size: 14px; font-weight: 600; }
.course-modal-visual.is-poster .course-modal-cover { object-fit: contain; }
.course-modal-visual.is-poster .course-modal-cover-shade { display: none; }
@media (max-width: 1280px) {
    .academy-submenu { position: static; width: 100%; padding: 6px 0 0 8px; margin-top: 6px; background: transparent; border: 0; box-shadow: none; }
    .academy-submenu::before { display: none; }
    .academy-submenu a { padding: 10px 0; font-size: 13px; }
    .academy-menu-toggle { width: 100%; justify-content: space-between; font-size: 15px; padding: 8px 0; letter-spacing: .08em; }
    .mobile-menu-toggle.active span:nth-child(1) { transform: rotate(45deg) translate(5px, 5px); }
    .mobile-menu-toggle.active span:nth-child(2) { opacity: 0; }
    .mobile-menu-toggle.active span:nth-child(3) { transform: rotate(-45deg) translate(5px, -5px); }
}
@media (max-width: 900px) { .public-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 768px) {
    body.has-mobile-commerce { --site-bottom-bar-height: calc(112px + env(safe-area-inset-bottom, 0px)); padding-bottom: var(--site-bottom-bar-height); }
    .has-mobile-commerce .public-commerce[data-mobile-commerce] {
        position: fixed;
        inset: auto 0 0;
        z-index: 90;
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1.35fr);
        align-items: center;
        gap: 8px 16px;
        margin: 0;
        padding: 14px max(20px, env(safe-area-inset-right, 0px)) calc(14px + env(safe-area-inset-bottom, 0px)) max(20px, env(safe-area-inset-left, 0px));
        background: #141410;
        border-top: 1px solid #ffffff30;
        box-shadow: 0 -8px 28px #0005;
    }
    .has-mobile-commerce .public-commerce > strong { min-width: 0; font-size: clamp(18px, 5vw, 22px); line-height: 1.3; }
    .has-mobile-commerce .public-commerce .public-button { width: 100%; min-height: 52px; padding: 12px; gap: 8px; font-size: 14px; line-height: 1.3; }
    .has-mobile-commerce .public-commerce > p { font-size: 13px; line-height: 1.4; color: #c7c5ba; }
    .has-mobile-commerce .public-commerce-quantity > strong { grid-column: 1; grid-row: 1; }
    .has-mobile-commerce .public-commerce-quantity .public-quantity { grid-column: 1; grid-row: 2; gap: 8px; font-size: 11px; }
    .has-mobile-commerce .public-commerce-quantity input { width: 54px; min-height: 44px; padding: 8px; font-size: 16px; }
    .has-mobile-commerce .public-commerce-quantity .public-button { grid-column: 2; grid-row: 1 / span 2; }
    .public-main { width: calc(100% - 40px); padding-top: 90px; }
    .public-breadcrumb { margin-bottom: 32px; }
    .public-heading { margin-bottom: 36px; }
    .public-detail, .public-events { grid-template-columns: minmax(0, 1fr); }
    .public-detail-media { position: static; max-width: 470px; margin-inline: auto; }
    .public-detail-media img { max-height: none; }
    .public-events img { max-height: 480px; }
    .watch-now-btn { font-size: 12px; padding-inline: 20px; letter-spacing: .08em; }
}
@media (max-width: 560px) {
    .academy-hub-grid, .public-grid, .public-contact-grid { grid-template-columns: minmax(0, 1fr); }
    .public-grid { gap: 32px; }
    .public-principles article { grid-template-columns: minmax(0, 1fr); gap: 14px; }
    .public-card-image { aspect-ratio: 4 / 3; }
    .public-benefits { grid-template-columns: minmax(0, 1fr); }
    .public-footer { padding-inline: 24px; }
    .public-commerce .public-button { width: 100%; }
    .stat-number { font-size: 24px; }
}
@media (prefers-reduced-motion: reduce) { .public-card-image img { transition: none; } }
