/* ============================================
   WARMLAND ARTS ACADEMY - Stylesheet
   ============================================ */

:root {
    --ink: #1e3440;
    --paper: #f8f6f1;
    --teal: #3d7f97;
    --gold: #c9a96e;
    --muted: #6e7e85;

    --font-heading: 'Cormorant Garamond', serif;
    --font-body: 'Montserrat', sans-serif;

    --type-step--1: 0.8rem;
    --type-step-0: 1rem;
    --type-step-1: 1.25rem;
    --type-step-2: 1.563rem;
    --type-step-3: 1.953rem;
    --type-step-4: 2.441rem;
    --type-step-5: 3.052rem;
    --type-step-6: 3.815rem;
    --type-hero: clamp(4.5rem, 10vw, 8rem);

    --space-1: 8px;
    --space-2: 16px;
    --space-3: 24px;
    --space-4: 40px;
    --space-5: 64px;
    --space-6: 96px;

    --line-height-body: 1.7;
    --line-height-heading: 1.1;
    --measure-body: 65ch;
    --radius-sm: 8px;
    --radius-md: 16px;
    --radius-lg: 24px;
    --border-soft: 1px solid color-mix(in srgb, var(--muted) 22%, transparent);
    --shadow-soft: 0 18px 48px color-mix(in srgb, var(--ink) 12%, transparent);
    --shadow-card: 0 12px 32px color-mix(in srgb, var(--ink) 8%, transparent);
}

*, *::before, *::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
    scroll-padding-top: var(--space-6);
}

body.nav-open {
    overflow: hidden;
}

.skip-link {
    position: absolute;
    left: var(--space-2);
    top: 0;
    z-index: 1200;
    padding: var(--space-2) var(--space-3);
    border-radius: 0 0 var(--radius-sm) var(--radius-sm);
    background: var(--ink);
    color: var(--paper);
    transform: translateY(-120%);
    transition: transform 180ms ease;
}

.skip-link:focus {
    transform: translateY(0);
}

body {
    font-family: var(--font-body);
    font-size: var(--type-step-0);
    line-height: var(--line-height-body);
    color: var(--ink);
    background: var(--paper);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

img {
    display: block;
    max-width: 100%;
    height: auto;
}

a {
    color: var(--teal);
    text-decoration: none;
    transition: color 180ms ease;
}

a:hover {
    color: color-mix(in srgb, var(--ink) 88%, var(--teal));
}

:focus-visible {
    outline: 2px solid var(--gold);
    outline-offset: 2px;
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-heading);
    line-height: var(--line-height-heading);
    color: var(--ink);
    text-wrap: balance;
}

h1 { font-size: var(--type-hero); }
h2 { font-size: var(--type-step-4); }
h3 { font-size: var(--type-step-2); }
h4 { font-size: var(--type-step-1); }
h5, h6 { font-size: var(--type-step-0); }

p, li, label, input, textarea, button {
    font-family: var(--font-body);
}

.section-subtitle {
    text-align: center;
    color: var(--muted);
    margin-top: var(--space-2);
}

.container {
    width: min(1140px, calc(100% - (var(--space-3) * 2)));
    margin: 0 auto;
}

.top-bar {
    background: var(--ink);
    color: color-mix(in srgb, var(--paper) 82%, transparent);
    padding: var(--space-1) 0;
}

.top-bar-inner,
.nav-inner {
    width: min(1140px, calc(100% - (var(--space-3) * 2)));
    margin: 0 auto;
}

.top-bar-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
}

.top-right {
    display: flex;
    gap: var(--space-3);
}

.top-link {
    font-size: var(--type-step--1);
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: color-mix(in srgb, var(--paper) 82%, transparent);
}

.top-link:hover {
    color: var(--paper);
}

.main-nav {
    position: sticky;
    top: 0;
    z-index: 1000;
    background: color-mix(in srgb, var(--teal) 92%, var(--paper));
    border-bottom: var(--border-soft);
    box-shadow: none;
    transition: transform 260ms ease, box-shadow 260ms ease, background 260ms ease;
}

.main-nav.nav-hidden {
    transform: translateY(-100%);
}

.main-nav.is-scrolled {
    box-shadow: 0 10px 30px color-mix(in srgb, var(--ink) 10%, transparent);
}

.nav-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 76px;
}

.nav-menu {
    display: flex;
    align-items: center;
    gap: var(--space-1);
    list-style: none;
}

.nav-menu a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 0 var(--space-2);
    border-radius: 999px;
    font-size: var(--type-step--1);
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--paper);
    transition: background 180ms ease, color 180ms ease, transform 180ms ease;
}

.nav-menu a:hover {
    background: color-mix(in srgb, var(--paper) 14%, transparent);
    color: var(--paper);
    transform: translateY(-1px);
}

.nav-btn-highlight {
    background: var(--gold);
    color: var(--ink) !important;
}

.nav-btn-highlight:hover {
    background: color-mix(in srgb, var(--gold) 88%, var(--ink));
    color: var(--paper) !important;
}

.nav-toggle {
    display: none;
    flex-direction: column;
    gap: 5px;
    padding: var(--space-1);
    background: none;
    border: 0;
    cursor: pointer;
}

.nav-toggle span {
    width: 28px;
    height: 2px;
    border-radius: 999px;
    background: var(--paper);
    transition: transform 180ms ease, opacity 180ms ease;
}

.nav-toggle.active span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
}

.nav-toggle.active span:nth-child(2) {
    opacity: 0;
}

.nav-toggle.active span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
}

.logo-banner {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: var(--space-4) var(--space-3);
    background: color-mix(in srgb, var(--paper) 90%, var(--teal));
    border-bottom: var(--border-soft);
}

.logo-banner a {
    display: inline-flex;
    justify-content: center;
    width: 100%;
}

.logo-img {
    width: clamp(180px, 18vw, 320px);
    max-width: 100%;
    height: auto;
    max-height: none;
    object-fit: contain;
    margin: 0 auto;
}

.hero {
    position: relative;
    isolation: isolate;
    min-height: min(88vh, 860px);
    display: grid;
    place-items: center;
    overflow: clip;
    background: var(--ink);
}

.hero-bg,
.hero-overlay {
    position: absolute;
    inset: 0;
}

.hero-bg {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transform: scale(1.04);
}

.hero-overlay {
    background: linear-gradient(
        to bottom,
        transparent 0%,
        color-mix(in srgb, var(--ink) 26%, transparent) 32%,
        color-mix(in srgb, var(--ink) 86%, transparent) 100%
    );
}

.hero-content {
    position: relative;
    z-index: 1;
    display: grid;
    gap: var(--space-3);
    justify-items: center;
    text-align: center;
    padding: var(--space-6) var(--space-3);
}

.hero-content h1,
.hero-content .hero-tagline,
.hero-content .btn {
    opacity: 0;
    transform: translateY(24px);
}

body.is-loaded .hero-content h1,
body.is-loaded .hero-content .hero-tagline,
body.is-loaded .hero-content .btn {
    animation: fade-up 700ms ease forwards;
}

body.is-loaded .hero-content .hero-tagline { animation-delay: 120ms; }
body.is-loaded .hero-content .btn { animation-delay: 240ms; }

.hero-content h1 {
    max-width: 12ch;
    color: var(--paper);
    text-shadow: 0 18px 48px color-mix(in srgb, var(--ink) 34%, transparent);
}

.hero-tagline {
    max-width: 42ch;
    font-size: var(--type-step-1);
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: color-mix(in srgb, var(--paper) 90%, transparent);
}

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 54px;
    padding: 0 var(--space-4);
    border: 0;
    border-radius: 999px;
    font-size: var(--type-step--1);
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    transition: transform 180ms ease, box-shadow 180ms ease, background 180ms ease, color 180ms ease;
    cursor: pointer;
}

.btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 30px color-mix(in srgb, var(--ink) 14%, transparent);
}

.btn-gold {
    background: var(--gold);
    color: var(--ink);
}

.btn-gold:hover {
    background: color-mix(in srgb, var(--gold) 90%, var(--ink));
    color: var(--paper);
}

.btn-outline {
    background: transparent;
    color: var(--teal);
    border: 1px solid color-mix(in srgb, var(--teal) 34%, transparent);
}

.btn-outline:hover {
    background: var(--teal);
    color: var(--paper);
}

.section {
    padding: var(--space-6) 0;
}

.section-alt {
    background: color-mix(in srgb, var(--paper) 78%, var(--teal));
}

.section-title {
    text-align: center;
    color: var(--ink);
    max-width: 16ch;
    margin: 0 auto;
}

.title-accent {
    width: 72px;
    height: 3px;
    margin: var(--space-2) auto 0;
    border-radius: 999px;
    background: var(--gold);
}

.section-kicker,
.uniform-heading,
.contact-info h3,
.grad-content h3,
.checklist-content h3 {
    color: var(--ink);
    text-align: center;
}

.section-kicker {
    margin-top: var(--space-4);
}

.welcome-text,
.grad-content > p,
.curriculum-intro,
.cta-section p,
.contact-info > p,
.contact-item p,
.checklist-footer,
.footer p,
.tuition-assistance,
.note,
.uniform-intro,
.tuition-note {
    max-width: var(--measure-body);
    margin-left: auto;
    margin-right: auto;
    font-size: var(--type-step-0);
    line-height: var(--line-height-body);
    color: var(--muted);
}

.welcome-text,
.grad-content > p,
.contact-info > p,
.cta-section p,
.checklist-footer,
.curriculum-intro,
.uniform-intro,
.tuition-assistance {
    text-align: center;
}

.section-lead,
.section-follow,
.section-bridge,
.section-intro,
.flow-space-sm,
.flow-space-md,
.footnote-text,
.note-text {
    margin-top: 0;
}

.section-lead,
.flow-space-sm {
    margin-top: var(--space-2);
}

.section-follow,
.flow-space-md,
.footnote-text {
    margin-top: var(--space-3);
}

.section-bridge {
    margin-top: var(--space-3);
    margin-bottom: var(--space-3);
}

.section-intro {
    margin-bottom: var(--space-4);
}

.footnote-text,
.note-text,
.note,
.tuition-note,
.schedule-note {
    font-size: var(--type-step--1);
    color: var(--muted);
    opacity: 0.9;
}

.footnote-text {
    max-width: 74ch;
}

.day-life-list,
.styled-list,
.styled-sublist {
    max-width: var(--measure-body);
    margin: var(--space-3) auto 0;
    padding: 0;
    list-style: none;
}

.day-life-list li,
.styled-list li,
.styled-sublist li {
    position: relative;
    padding: var(--space-1) 0 var(--space-1) calc(var(--space-3) + var(--space-1));
    color: var(--muted);
}

.day-life-list li::before,
.styled-list li::before,
.styled-sublist li::before {
    content: '';
    position: absolute;
    left: 0;
    top: calc(var(--space-1) + 0.72em);
    width: 10px;
    height: 10px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--teal) 76%, var(--paper));
}

.styled-sublist {
    margin-top: var(--space-2);
}

.learning-approach-section,
.gallery-section,
.leadership-section,
.uniform-section,
.tuition-grid,
.checklist,
.contact-grid,
.schedule-cards,
.footer-grid,
.curriculum-grid {
    margin-top: var(--space-5);
}

.leadership-content,
.contact-grid,
.schedule-cards,
.curriculum-grid,
.footer-grid {
    display: grid;
    gap: var(--space-4);
}

.leadership-content {
    grid-template-columns: minmax(260px, 340px) 1fr;
    align-items: center;
    max-width: 1040px;
    margin-left: auto;
    margin-right: auto;
}

.leadership-photo {
    overflow: hidden;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-soft);
    background: color-mix(in srgb, var(--paper) 82%, var(--teal));
}

.leadership-photo img {
    width: 100%;
    aspect-ratio: 4 / 5;
    object-fit: cover;
}

.leadership-copy {
    display: grid;
    gap: var(--space-3);
}

.leadership-copy .welcome-text {
    text-align: left;
    margin: 0;
}

.gallery-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--space-2);
}

.curriculum-photo-row {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-2);
    margin-top: var(--space-4);
}

.curriculum-photo {
    overflow: hidden;
    border-radius: var(--radius-md);
    background: color-mix(in srgb, var(--paper) 70%, var(--teal));
    box-shadow: var(--shadow-card);
}

.curriculum-photo img {
    width: 100%;
    height: 100%;
    aspect-ratio: 4 / 5;
    object-fit: cover;
}

.gallery-item {
    overflow: hidden;
    aspect-ratio: 1;
    border-radius: var(--radius-md);
    background: color-mix(in srgb, var(--paper) 70%, var(--teal));
    box-shadow: var(--shadow-card);
}

.gallery-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 500ms ease;
}

.gallery-item:hover img {
    transform: scale(1.04);
}

.grad-content {
    display: grid;
    gap: var(--space-3);
    max-width: var(--measure-body);
    margin: var(--space-5) auto 0;
}

.grad-content h3,
.contact-info h3 {
    text-align: left;
}

.contact-info h3 {
    text-align: center;
}

.schedule-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.schedule-card,
.uniform-card,
.tuition-card,
.checklist-step,
.curriculum-card,
.contact-form-wrap {
    background: color-mix(in srgb, var(--paper) 88%, var(--teal));
    border: var(--border-soft);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-card);
}

.schedule-card,
.uniform-card,
.curriculum-card,
.contact-form-wrap {
    padding: var(--space-4);
}

.schedule-card {
    text-align: center;
}

.schedule-card h3,
.uniform-card h4,
.curriculum-card h3,
.footer h4,
.contact-info h3,
.cta-section h2,
.tuition-header,
.faq-question {
    color: var(--ink);
}

.schedule-days,
.contact-item strong,
.form-group label,
.section-subtitle,
.tuition-label,
.tuition-value small,
.footer ul a,
.nav-menu a,
.top-link {
    font-size: var(--type-step--1);
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.schedule-days {
    color: var(--teal);
    margin-top: var(--space-2);
}

.schedule-time {
    margin-top: var(--space-2);
    font-family: var(--font-heading);
    font-size: var(--type-step-1);
}

.schedule-detail,
.schedule-note {
    margin-top: var(--space-2);
    text-align: center;
}

.uniform-section {
    max-width: 1040px;
    margin-left: auto;
    margin-right: auto;
}

.uniform-heading {
    margin-bottom: var(--space-4);
}

.uniform-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-3);
}

.uniform-card {
    display: grid;
    gap: var(--space-2);
}

.note,
.uniform-intro,
.tuition-note,
.checklist-footer {
    margin-top: var(--space-2);
}

.note a,
.checklist-footer a,
.contact-item a,
.footer a {
    color: var(--teal);
}

.tuition-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-3);
    align-items: start;
}

.tuition-card-grad {
    grid-column: 1 / -1;
    max-width: none;
    margin: 0;
}

.tuition-card {
    overflow: hidden;
}

.tuition-header,
.step-number {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 88px;
    padding: var(--space-3);
    background: color-mix(in srgb, var(--teal) 92%, var(--ink));
    color: var(--paper);
    font-family: var(--font-heading);
    font-size: var(--type-step-1);
}

.tuition-body {
    padding: var(--space-4);
    display: grid;
    gap: var(--space-2);
}

.tuition-row {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: var(--space-2);
    align-items: start;
    padding-bottom: var(--space-2);
    border-bottom: var(--border-soft);
}

.tuition-row:last-of-type {
    border-bottom: 0;
    padding-bottom: 0;
}

.tuition-highlight {
    padding: var(--space-2);
    border-radius: var(--radius-sm);
    background: color-mix(in srgb, var(--paper) 82%, var(--teal));
}

.tuition-label {
    color: var(--muted);
}

.tuition-value {
    justify-self: end;
    text-align: right;
    color: var(--ink);
    font-weight: 600;
}

.tuition-note,
.tuition-assistance {
    text-align: center;
}

.tuition-assistance {
    margin-top: var(--space-4);
}

.checklist {
    display: grid;
    gap: var(--space-3);
}

.checklist-step {
    display: grid;
    grid-template-columns: 96px 1fr;
    overflow: hidden;
}

.checklist-content {
    padding: var(--space-4);
}

.checklist-content h3 {
    margin-bottom: var(--space-2);
    text-align: left;
}

.checklist-content .styled-list,
.checklist-content .styled-sublist {
    margin-top: 0;
    max-width: none;
}

.checklist-footer {
    margin-top: var(--space-4);
}

.faq-list {
    max-width: min(860px, 100%);
    margin: var(--space-5) auto 0;
}

.faq-item {
    border-bottom: 1px solid color-mix(in srgb, var(--muted) 24%, transparent);
}

.faq-question {
    width: 100%;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-2) var(--space-3) 0;
    background: transparent;
    border: 0;
    text-align: left;
    cursor: pointer;
    transition: color 180ms ease, transform 180ms ease;
}

.faq-question:hover {
    color: var(--teal);
}

.faq-question::after {
    content: '';
    flex: 0 0 auto;
    width: 12px;
    height: 12px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg);
    transform-origin: center;
    transition: transform 260ms ease;
    color: color-mix(in srgb, var(--teal) 82%, var(--ink));
    margin-right: var(--space-1);
}

.faq-question.active::after {
    transform: rotate(225deg);
}

.faq-answer {
    height: 0;
    overflow: hidden;
    transition: height 320ms ease;
}

.faq-answer p {
    padding: 0 0 var(--space-3);
    max-width: 62ch;
    color: var(--muted);
}

.cta-section {
    text-align: center;
    background:
        linear-gradient(135deg, color-mix(in srgb, var(--ink) 10%, transparent), transparent),
        color-mix(in srgb, var(--teal) 84%, var(--paper));
}

.cta-section h2 {
    color: var(--paper);
    max-width: none;
}

.cta-section p {
    color: color-mix(in srgb, var(--paper) 78%, transparent);
    margin-top: var(--space-2);
}

.cta-buttons {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: var(--space-2);
    margin-top: var(--space-4);
}

.contact-grid {
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    align-items: start;
}

.contact-details {
    display: grid;
    gap: var(--space-3);
    margin-top: var(--space-4);
}

.contact-item strong {
    display: block;
    color: var(--teal);
    margin-bottom: var(--space-1);
}

.contact-form-wrap {
    padding: var(--space-4);
}

.contact-form {
    display: grid;
    gap: var(--space-3);
}

.form-group {
    position: relative;
}

.form-group input,
.form-group textarea {
    width: 100%;
    min-height: 58px;
    padding: 24px 16px 12px;
    border-radius: 18px;
    border: 1px solid color-mix(in srgb, var(--muted) 24%, transparent);
    background: color-mix(in srgb, var(--paper) 92%, var(--teal));
    color: var(--ink);
    transition: border-color 180ms ease, box-shadow 180ms ease, background 180ms ease;
}

.form-group textarea {
    min-height: 160px;
    resize: vertical;
}

.form-group label {
    position: absolute;
    top: 50%;
    left: 16px;
    transform: translateY(-50%);
    color: var(--muted);
    transition: transform 180ms ease, top 180ms ease, color 180ms ease, font-size 180ms ease;
    pointer-events: none;
}

.form-group textarea + label {
    top: 28px;
    transform: none;
}

.form-group input:focus,
.form-group textarea:focus {
    outline: none;
    border-color: var(--teal);
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--teal) 16%, transparent);
    background: var(--paper);
}

.form-group input:focus + label,
.form-group input:not(:placeholder-shown) + label,
.form-group textarea:focus + label,
.form-group textarea:not(:placeholder-shown) + label {
    top: 12px;
    transform: none;
    font-size: var(--type-step--1);
    color: var(--teal);
}

.form-status {
    min-height: 1.5em;
    font-size: var(--type-step--1);
    color: var(--teal);
    text-align: center;
}

.contact-form.is-success .btn-gold {
    background: color-mix(in srgb, var(--teal) 88%, var(--ink));
    color: var(--paper);
}

.footer {
    background: var(--ink);
    color: color-mix(in srgb, var(--paper) 72%, transparent);
    padding: var(--space-5) 0 var(--space-3);
}

.footer-grid {
    grid-template-columns: 2fr 1fr 1fr;
    padding-bottom: var(--space-4);
    border-bottom: 1px solid color-mix(in srgb, var(--paper) 12%, transparent);
}

.footer h4 {
    color: var(--paper);
    margin-bottom: var(--space-2);
}

.footer ul {
    list-style: none;
    display: grid;
    gap: var(--space-1);
}

.footer ul a {
    color: color-mix(in srgb, var(--paper) 70%, transparent);
}

.footer ul a:hover {
    color: var(--paper);
}

.footer-bottom {
    padding-top: var(--space-3);
    text-align: center;
    color: color-mix(in srgb, var(--paper) 58%, transparent);
}

.back-to-top {
    position: fixed;
    right: var(--space-3);
    bottom: var(--space-3);
    z-index: 1100;
    min-height: 48px;
    padding: 0 var(--space-2);
    border: 0;
    border-radius: 999px;
    background: color-mix(in srgb, var(--teal) 92%, var(--ink));
    color: var(--paper);
    font-size: var(--type-step--1);
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    cursor: pointer;
    opacity: 0;
    visibility: hidden;
    transform: translateY(16px);
    box-shadow: var(--shadow-card);
    transition: opacity 220ms ease, transform 220ms ease, visibility 220ms ease, background 180ms ease;
}

.back-to-top.is-visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.back-to-top:hover {
    background: var(--teal);
}

.reveal-in {
    opacity: 0;
    transform: translateY(16px);
    transition: opacity 500ms ease, transform 500ms ease;
}

.reveal-in.is-visible {
    opacity: 1;
    transform: translateY(0);
}

@keyframes fade-up {
    from {
        opacity: 0;
        transform: translateY(24px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes ken-burns {
    from {
        transform: scale(1.04);
    }
    to {
        transform: scale(1.14);
    }
}

body.is-loaded .hero-bg {
    animation: ken-burns 18s ease-out forwards;
}

@media (max-width: 980px) {
    .nav-toggle {
        display: flex;
        position: relative;
        z-index: 1002;
    }

    .nav-menu {
        position: fixed;
        inset: 0;
        z-index: 1001;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: var(--space-2);
        padding: var(--space-6) var(--space-3);
        background: color-mix(in srgb, var(--ink) 82%, var(--teal));
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transition: opacity 220ms ease, visibility 220ms ease;
    }

    .nav-menu.open {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
    }

    .nav-menu a {
        width: min(420px, 100%);
        justify-content: center;
        min-height: 56px;
        font-size: var(--type-step-0);
    }

    .gallery-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .curriculum-photo-row {
        grid-template-columns: 1fr;
    }

    .tuition-grid,
    .schedule-cards,
    .uniform-grid,
    .footer-grid,
    .contact-grid,
    .leadership-content,
    .curriculum-grid {
        grid-template-columns: 1fr;
    }

    .checklist-step {
        grid-template-columns: 1fr;
    }

    .step-number {
        min-height: 72px;
    }
}

@media (max-width: 768px) {
    .top-bar {
        display: none;
    }

    .section {
        padding: var(--space-5) 0;
    }

    .hero-content {
        padding: var(--space-5) var(--space-3);
    }

    .hero-tagline {
        font-size: var(--type-step-0);
    }

    .logo-banner {
        padding: var(--space-3);
    }

    .logo-img {
        width: clamp(160px, 42vw, 240px);
    }

    .faq-question {
        padding-right: var(--space-3);
    }

    .back-to-top {
        right: var(--space-2);
        bottom: var(--space-2);
    }
}

@media (max-width: 560px) {
    .container,
    .top-bar-inner,
    .nav-inner {
        width: min(100% - (var(--space-2) * 2), 1140px);
    }

    .gallery-grid {
        grid-template-columns: 1fr 1fr;
    }

    .tuition-row {
        grid-template-columns: 1fr;
    }

    .tuition-value {
        justify-self: start;
        text-align: left;
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    *, *::before, *::after {
        animation: none !important;
        transition-duration: 0ms !important;
        scroll-behavior: auto !important;
    }

    .reveal-in,
    .hero-content h1,
    .hero-content .hero-tagline,
    .hero-content .btn {
        opacity: 1 !important;
        transform: none !important;
    }
}
