.ac-page {
    --ac-ink:#17243b;
    --ac-muted:#526077;
    --ac-brand:#4d3ec8;
    max-width:1160px;
    margin:auto;
    padding:32px 24px 72px;
    color:var(--ac-ink);
    line-height:1.6;
    overflow-wrap:anywhere;
}
.ac-page * {
    box-sizing:border-box;
}
.ac-page a {
    color:var(--ac-brand);
}
.ac-breadcrumb {
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    font-size:.88rem;
    margin-bottom:24px;
}
.ac-hero {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:32px;
    padding:44px;
    border:1px solid #dddaf5;
    border-radius:28px;
    background:linear-gradient(120deg,#f1efff,#f7f9ff 70%,#eaf6f5);
    margin-bottom:28px;
}
.ac-eyebrow {
    font-size:.78rem;
    font-weight:700;
    letter-spacing:.1em;
    color:var(--ac-brand);
}
.ac-hero h1 {
    font-size:clamp(2rem,4vw,3.3rem);
    line-height:1.13;
    letter-spacing:-.035em;
    margin:16px 0;
    max-width:680px;
}
.ac-hero p {
    color:var(--ac-muted);
    max-width:580px;
    margin:0;
}
.ac-hero-note {
    flex:0 0 180px;
    padding:24px;
    border:1px solid #d6d1f5;
    border-radius:20px;
    background:#ffffffb8;
}
.ac-hero-note>span {
    display:block;
    font-size:3rem;
    line-height:1.2;
    color:var(--ac-brand);
    font-weight:700;
}
.ac-hero-note strong {
    display:block;
    margin:12px 0 6px;
}
.ac-hero-note p {
    font-size:.85rem;
}
.ac-filters {
    display:flex;
    align-items:end;
    flex-wrap:wrap;
    gap:14px;
    padding:22px;
    border:1px solid #dce2ec;
    border-radius:18px;
    background:#fff;
    margin-bottom:36px;
}
.ac-filters>div {
    flex:1 1 220px;
    min-width:0;
}
.ac-filters label {
    display:block;
    font-size:.87rem;
    font-weight:650;
    margin-bottom:6px;
}
.ac-filters input,.ac-filters select {
    width:100%;
    min-height:48px;
    border:1px solid #8692a6;
    border-radius:10px;
    padding:10px 12px;
    background:#fff;
    color:var(--ac-ink);
    font:inherit;
}
.ac-button {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:48px;
    padding:10px 20px;
    border:1px solid transparent;
    border-radius:10px;
    background:var(--ac-brand);
    color:#fff!important;
    text-decoration:none;
    font:inherit;
    font-weight:650;
    cursor:pointer;
}
.ac-button:hover {
    background:#382b9e;
}
.ac-reset {
    padding:12px 2px;
}
.ac-section-heading {
    display:flex;
    align-items:baseline;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:8px 20px;
    margin:0 0 18px;
}
.ac-section-heading h2 {
    font-size:1.5rem;
    letter-spacing:-.02em;
    margin:0;
}
.ac-section-heading>span {
    font-size:.88rem;
    color:var(--ac-muted);
}
.ac-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:22px;
}
.ac-course {
    min-width:0;
    border:1px solid #dce2ec;
    border-radius:20px;
    overflow:hidden;
    background:#fff;
    box-shadow:0 8px 28px #17243b08;
}
.ac-course-art {
    height:130px;
    position:relative;
    overflow:hidden;
    background:linear-gradient(120deg,#242050,#5546be);
    padding:22px;
    color:#fff;
}
.ac-course:nth-child(3n+2) .ac-course-art {
    background:linear-gradient(120deg,#123f48,#247b86);
}
.ac-course:nth-child(3n+3) .ac-course-art {
    background:linear-gradient(120deg,#45375c,#8864a1);
}
.ac-course-art>span:first-child {
    font-size:.8rem;
    letter-spacing:.14em;
    font-weight:700;
}
.ac-art-orbit {
    position:absolute;
    width:170px;
    height:170px;
    border:24px solid #ffffff24;
    border-radius:50%;
    right:-24px;
    top:20px;
}
.ac-course-body {
    padding:22px;
}
.ac-tag {
    font-size:.8rem;
    color:var(--ac-brand);
    font-weight:650;
}
.ac-course h3,.ac-course h2 {
    font-size:1.25rem;
    line-height:1.35;
    margin:12px 0;
}
.ac-course h3 a {
    color:var(--ac-ink);
    text-decoration:none;
}
.ac-course h3 a:hover {
    text-decoration:underline;
}
.ac-course p {
    color:var(--ac-muted);
    font-size:.9rem;
}
.ac-course-footer {
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    align-items:center;
    justify-content:space-between;
    border-top:1px solid #e7eaf1;
    padding-top:16px;
    margin-top:20px;
    font-size:.8rem;
}
.ac-course-footer>span {
    color:#24654e;
}
.ac-course-footer a {
    font-weight:650;
}
.ac-empty {
    text-align:center;
    border:1px dashed #b5bfd2;
    border-radius:20px;
    background:#f7f9fd;
    padding:40px 24px;
}
.ac-empty h3,.ac-empty h2 {
    margin:12px 0;
    font-size:1.3rem;
}
.ac-empty p {
    color:var(--ac-muted);
    max-width:540px;
    margin:12px auto 24px;
}
.ac-empty-mark {
    display:block;
    font-size:2rem;
    color:var(--ac-brand);
}
.ac-pagination {
    display:flex;
    gap:20px;
    flex-wrap:wrap;
    align-items:center;
    justify-content:center;
    margin:28px 0;
}
.ac-pagination a {
    padding:10px;
}
.ac-subjects {
    margin-top:44px;
}
.ac-subject-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px;
}
.ac-subject {
    display:flex;
    position:relative;
    flex-direction:column;
    gap:6px;
    padding:20px 42px 20px 20px;
    border:1px solid #dce2ec;
    border-radius:14px;
    text-decoration:none;
    background:#fff;
}
.ac-subject strong {
    color:var(--ac-ink);
}
.ac-subject>span {
    font-size:.82rem;
    color:var(--ac-muted);
}
.ac-subject .ac-subject-arrow {
    position:absolute;
    right:20px;
    top:22px;
    font-size:1.25rem;
    color:var(--ac-brand);
}
.ac-payment-note {
    border-left:3px solid #8b80dc;
    margin-top:36px;
    padding:14px 20px;
    background:#f5f3fd;
    border-radius:0 12px 12px 0;
}
.ac-payment-note p {
    font-size:.9rem;
    color:var(--ac-muted);
    margin:6px 0 0;
}
.ac-page a:focus-visible,.ac-page input:focus-visible,.ac-page select:focus-visible,.ac-page button:focus-visible {
    outline:3px solid #b16b00;
    outline-offset:4px;
}
@media(max-width:900px) {
    .ac-grid,.ac-subject-grid {
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .ac-hero {
        padding:30px;
    }
    .ac-hero-note {
        display:none;
    }
}
@media(max-width:540px) {
    .ac-page {
        padding:22px 16px 48px;
    }
    .ac-hero {
        padding:26px 22px;
        border-radius:20px;
    }
    .ac-grid,.ac-subject-grid {
        grid-template-columns:minmax(0,1fr);
    }
    .ac-filters {
        padding:18px;
        gap:16px;
    }
    .ac-filters>div {
        flex-basis:100%;
    }
    .ac-filters .ac-button {
        width:100%;
    }
    .ac-course-art {
        height:115px;
    }
    .ac-section-heading h2 {
        font-size:1.3rem;
    }
    .ac-pagination {
        gap:10px;
    }
}
