/* =====================================================================
   Academy page — overrides scoped to body.page--academy
   Matches designs/assets/pages/academy.html
   ===================================================================== */

/* ---------- Academy hero (dark purple, image right) ---------- */
.page--academy .hero {
    padding-block: 80px 64px;
}

.page--academy .hero__title {
    line-height: 1;
}

.page--academy .hero__title .accent { display: inline; color: inherit; }

@media (min-width: 1024px) {
    .page--academy .hero {
        padding-block: 96px 80px;
    }

    .page--academy .hero__inner.has-media {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
        gap: 64px;
    }

    .page--academy .hero__inner.has-media .hero__media {
        margin-right: 0;
        aspect-ratio: 4 / 3;
    }

    .page--academy .hero__inner.has-media .hero__media img {
        border-radius: 12px;
    }
}

/* ---------- Academy stats (purple-700 bg, 3-col, centered) ---------- */
.page--academy main > section.stats-row__section {
    background: var(--c-purple-700);
    padding-block: 56px;
}

.page--academy .stats-row__grid {
    display: grid;
    margin-top: 0;
    grid-template-columns: 1fr;
    gap: 32px;
}

.page--academy .stats-row__grid .stat {
    text-align: center;
}

.page--academy .stats-row__grid .stat__value {
    display: block;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 32px;
    line-height: 1.25;
    letter-spacing: -0.32px;
    color: #fff;
}

.page--academy .stats-row__grid .stat__label {
    display: block;
    font-family: var(--font-body);
    font-weight: 600;
    font-size: 16px;
    line-height: 1.5;
    color: #fff;
    margin-top: 4px;
}

.page--academy .stat__desc {
    font-size: 14px;
    line-height: 1.375;
    color: rgba(255, 255, 255, 0.6);
    margin-top: 8px;
    max-width: 280px;
    margin-inline: auto;
}

@media (min-width: 768px) {
    .page--academy .stats-row__grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 24px;
    }
}

/* ---------- Programmes (restyle pricing-grid as programme cards) ---------- */
.page--academy section.pricing-grid {
    background: var(--c-purple-50);
    padding-block: 96px;
}

@media (max-width: 767px) {
    .page--academy section.pricing-grid {
        padding-block: 64px;
    }
}

.page--academy .pricing-grid__list {
    margin-top: 56px;
    gap: 24px;
    align-items: stretch;
}

.page--academy .price-card {
    border-radius: 12px;
    border-color: var(--c-border);
}

.page--academy .price-card:hover,
.page--academy .price-card.is-link:hover {
    background: #fff;
    border-color: var(--c-purple-600);
    box-shadow: var(--shadow-md);
}

/* Tag — light purple bg, purple text, with star icon */
.page--academy .price-card__tag {
    background: var(--c-purple-50);
    color: var(--c-purple-600);
    padding: 4px 10px;
    margin-bottom: 0;
    font-size: 12px;
    line-height: 1.33;
    gap: 6px;
}

.page--academy .price-card__tag::before {
    content: '';
    width: 14px;
    height: 14px;
    background-color: currentColor;
    -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14' fill='none'><path d='M7 1.75L8.66 5.13l3.72.54-2.69 2.62.64 3.71L7 10.25l-3.33 1.75.64-3.71L1.62 5.67l3.72-.54L7 1.75z' stroke='currentColor' stroke-width='1.2' stroke-linejoin='round' fill='none'/></svg>") center/contain no-repeat;
            mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14' fill='none'><path d='M7 1.75L8.66 5.13l3.72.54-2.69 2.62.64 3.71L7 10.25l-3.33 1.75.64-3.71L1.62 5.67l3.72-.54L7 1.75z' stroke='currentColor' stroke-width='1.2' stroke-linejoin='round' fill='none'/></svg>") center/contain no-repeat;
}

.page--academy .price-card__name {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 20px;
    line-height: 1.25;
    color: var(--c-ink);
    margin-top: 16px;
    letter-spacing: -0.2px;
}

.page--academy .price-card__copy {
    font-size: 14px;
    line-height: 1.625;
    color: var(--c-text);
    margin-top: 12px;
}

.page--academy .price-card__copy strong {
    display: block;
    font-size: 12px;
    font-weight: 600;
    color: var(--c-ink);
    margin-top: 24px;
}

.page--academy .price-card__list {
    margin-top: 12px;
    margin-bottom: 0;
    gap: 10px;
}

.page--academy .price-card__list li {
    font-size: 14px;
    line-height: 1.375;
    color: var(--c-text);
}

/* Turn the bottom CTA from a full-width primary button into a text+arrow link */
.page--academy .price-card__cta {
    margin-top: 24px;
    width: auto;
    background: transparent;
    border-radius: 0;
    padding: 0;
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 14px;
    color: var(--c-purple-600);
    box-shadow: none;
    justify-content: flex-start;
    gap: 8px;
}

.page--academy .price-card__cta .icon {
    width: 14px;
    height: 14px;
    transition: transform var(--t-fast) var(--ease-out);
}

.page--academy a.price-card:hover .price-card__cta .icon,
.page--academy .price-card.is-link:hover .price-card__cta .icon {
    transform: translateX(4px);
}

@media (min-width: 768px) {
    .page--academy .pricing-grid__list {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 1024px) {
    .page--academy .pricing-grid__list {
        grid-template-columns: repeat(3, 1fr);
        gap: 28px;
    }
}

/* ---------- Gallery ---------- */
.page--academy .image-gallery .section-header {
    text-align: left;
}

.page--academy .image-gallery .section-header .eyebrow { margin-inline: 0; }

.page--academy .image-gallery__list {
    margin-top: 56px;
}

/* ---------- FAQ accordion (compact, design style) ---------- */
.page--academy .faq-accordion.section {
    background: var(--c-bg-soft);
    padding-block: 80px;
}

@media (min-width: 1024px) {
    .page--academy .faq-accordion.section {
        padding-block: 96px;
    }
}

.page--academy .faq-accordion .container { max-width: 800px; }

.page--academy .faq-accordion .section-header { text-align: center; }
.page--academy .faq-accordion .section-header .eyebrow { justify-content: center; }

.page--academy .faq-accordion__list {
    margin-top: 40px;
    max-width: none;
    gap: 8px;
}

.page--academy .faq-item__question {
    padding: 16px 24px;
    font-family: var(--font-body);
    font-weight: 600;
    font-size: 14px;
}

.page--academy .faq-item__icon {
    background: transparent;
    width: 16px;
    height: 16px;
}

.page--academy .faq-item__icon svg { width: 16px; height: 16px; }

.page--academy .faq-item__answer {
    padding: 0 24px 20px;
    font-size: 14px;
    line-height: 1.625;
}

/* ---------- Flat dark final CTA (override rounded panel) ---------- */
.page--academy .final-cta {
    padding-block: 0;
    background: var(--c-purple-deep);
    color: #fff;
}

.page--academy .final-cta__panel {
    background: var(--c-purple-deep);
    border-radius: 0;
    padding-block: 72px;
    text-align: center;
}

.page--academy .final-cta__inner {
    padding: 0 24px;
    max-width: 720px;
    margin-inline: auto;
}

.page--academy .final-cta__title {
    font-size: clamp(28px, 4vw, 36px);
    line-height: 1.1;
    letter-spacing: -1.08px;
    margin-top: 16px;
}

.page--academy .final-cta__copy {
    font-size: 18px;
    line-height: 1.555;
    color: rgba(255, 255, 255, 0.7);
    margin-top: 24px;
}

.page--academy .final-cta__buttons {
    margin-top: 32px;
}
