/* AIRC theme glue. Design-system short tokens point at WordPress presets,
   so a color changed in AIRC → Colors (or Site Editor → Styles) reaches every component. */
:root {
	--navy: var(--wp--preset--color--navy);
	--ink-muted: var(--wp--preset--color--ink-muted);
	--line: var(--wp--preset--color--line);
	--line-strong: var(--wp--preset--color--line-strong);
	--surface: var(--wp--preset--color--surface);
	--white: var(--wp--preset--color--white);
	--orange: var(--wp--preset--color--orange);
	--orange-600: var(--wp--preset--color--orange-600);
	--orange-700: var(--wp--preset--color--orange-700);
	--orange-50: var(--wp--preset--color--orange-50);
	--blue: var(--wp--preset--color--blue);
	--blue-600: var(--wp--preset--color--blue-600);
	--cyan: var(--wp--preset--color--cyan);
	--green-600: var(--wp--preset--color--green-600);
	--font-heading: var(--wp--preset--font-family--heading);
	--font-body: var(--wp--preset--font-family--body);
	--font-mono: var(--wp--preset--font-family--mono);
	--space-1: var(--wp--preset--spacing--10);
	--space-2: var(--wp--preset--spacing--20);
	--space-3: var(--wp--preset--spacing--30);
	--space-4: var(--wp--preset--spacing--40);
	--space-5: var(--wp--preset--spacing--50);
	--space-6: var(--wp--preset--spacing--60);
	--space-7: var(--wp--preset--spacing--70);
	--space-8: var(--wp--preset--spacing--80);
	--space-9: var(--wp--preset--spacing--90);
	--radius-sm: var(--wp--custom--radius--sm);
	--radius-md: var(--wp--custom--radius--md);
	--radius-pill: var(--wp--custom--radius--pill);
	--shadow-card: var(--wp--preset--shadow--card);
	--shadow-raised: var(--wp--preset--shadow--raised);
	--touch-target: var(--wp--custom--size--touch-target);
	--header-height: var(--wp--custom--size--header-height);
	--content-max: var(--wp--custom--size--content-max);
	--focus-width: var(--wp--custom--size--focus-width);
}

/* ---------- Page frame ---------- */
.wp-site-blocks > main, .wp-site-blocks > footer.wp-block-template-part { margin-block-start: 0; }
.wp-site-blocks > main:has(~ footer) { padding-bottom: var(--space-8); } /* Every page ends with the same room before the footer. */
.airc-page { padding-top: var(--space-6); }

/* ---------- Header (template part) ---------- */
header.wp-block-template-part { position: sticky; top: var(--wp-admin--admin-bar--height, 0px); z-index: 20; }
.airc-header__bar.is-layout-flex { gap: var(--space-3); }
.airc-header__logo { flex: none; }
.airc-menu--header { display: contents; }
.airc-header__nav { order: 1; }
.airc-header .airc-header__actions { order: 2; margin-left: auto; }
.airc-header__menu { order: 3; }
.airc-header__nav a[aria-current] { background: var(--surface); }
.airc-account-signin { display: none; align-items: center; min-height: var(--touch-target); padding: 0 var(--space-2); color: var(--navy); font-weight: 600; text-decoration: none; }
.airc-account-signin:hover { color: var(--blue-600); }
@container (min-width: 900px) { .airc-account-signin { display: inline-flex; } }

/* Phone drawer: native <dialog>, panel on the right (slides in: Motion). */
.airc-menu-dialog { position: fixed; inset: 0; width: 100%; max-width: none; height: 100%; max-height: none; margin: 0; padding: 0; border: 0; background: transparent; }
.airc-menu-dialog::backdrop { background: rgba(3, 19, 39, .45); }
.airc-menu-dialog .airc-drawer__panel { height: 100%; margin-left: auto; }
.airc-drawer__logo { display: inline-flex; }
.airc-drawer__logo img { width: 36px; height: 36px; }
html:has(.airc-menu-dialog[open]) { overflow: hidden; }

/* ---------- Footer (template part) ---------- */
.airc-footer__cols > *, .airc-footer__brand > *, .airc-footer__contact > *, .airc-footer__cols > .wp-block-group > * { margin-block: 0; }
.airc-footer__cols > .wp-block-group { display: grid; gap: var(--space-2); align-content: start; }
.airc-footer p:empty, .airc-footer h2:empty { display: none; }

.airc-footer__contact p { font-size: 15px; }
.airc-footer__base p { margin: 0 auto; }

/* ---------- Buttons: block styles ---------- */
.wp-block-button.is-style-airc-secondary .wp-block-button__link { background: var(--white); color: var(--blue-600); box-shadow: inset 0 0 0 1.5px var(--blue-600); }
.wp-block-button.is-style-airc-secondary .wp-block-button__link:hover { background: var(--surface); color: var(--navy); }
.wp-block-button.is-style-airc-link .wp-block-button__link { background: none; color: var(--blue-600); padding: 0 4px; min-height: var(--touch-target); display: inline-flex; align-items: center; text-decoration: underline; text-underline-offset: 3px; }
.wp-block-button.is-style-airc-link .wp-block-button__link::after { content: "→"; margin-left: 6px; text-decoration: none; }
.wp-block-button.is-style-airc-link .wp-block-button__link:hover { color: var(--navy); }

/* ---------- Home ---------- */
.airc-home { margin-block-start: 0; }
.airc-home > * { margin-block: 0; }
.airc-hero__inner > *, .airc-hero__text > * { margin-block: 0; }
.airc-hero__text { display: grid; gap: var(--space-5); justify-items: start; }
.airc-hero h1 { font-size: var(--wp--preset--font-size--display); }
.airc-hero__media { margin: 0; width: 100%; }
.airc-hero__media img { width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; border-radius: var(--radius-md); }
@container (min-width: 900px) {
	.airc-hero__inner { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; column-gap: var(--space-7); padding-block: var(--space-8); }
}

.airc-trust { container-type: inline-size; border-block: 1px solid var(--line); background: var(--surface); }
.airc-trust__inner { max-width: var(--content-max); margin: 0 auto; padding: var(--space-4); display: grid; gap: var(--space-2); }
.airc-trust__inner > * { margin: 0; }
.airc-trust__item { display: flex; align-items: center; gap: var(--space-3); font-weight: 600; min-height: 36px; }
.airc-trust__item::before { content: ""; flex: none; width: 36px; height: 36px; border-radius: var(--radius-sm); background: var(--white) center / 20px no-repeat; border: 1px solid var(--line); }
.airc-icon-infinity::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230099DD' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 12c-2-2.67-4-4-6-4a4 4 0 1 0 0 8c2 0 4-1.33 6-4Zm0 0c2 2.67 4 4 6 4a4 4 0 0 0 0-8c-2 0-4 1.33-6 4Z'/%3E%3C/svg%3E"); }
.airc-icon-download::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230099DD' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4M7 10l5 5 5-5M12 15V3'/%3E%3C/svg%3E"); }
.airc-icon-mail::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230099DD' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='20' height='16' x='2' y='4' rx='2'/%3E%3Cpath d='m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7'/%3E%3C/svg%3E"); }
@container (min-width: 720px) { .airc-trust__inner { grid-template-columns: repeat(3, 1fr); padding-block: var(--space-5); } }

.airc-section { container-type: inline-size; max-width: var(--content-max); margin-inline: auto !important; padding: var(--space-7) var(--space-4) 0; display: grid; gap: var(--space-5); }
.airc-section > * { margin-block: 0; }
.airc-section__head { align-items: end; }
.airc-section__head > * { margin: 0; }
.airc-grid__items { list-style: none; margin: 0; padding: 0; }
.airc-grid--products .airc-grid__items { grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); }
.airc-card__price .woocommerce-Price-currencySymbol { font: inherit; }
@container (min-width: 720px) { .airc-section { padding: var(--space-8) var(--space-5) 0; } }

.airc-steps__list { counter-reset: step; list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-4); }
.airc-step { counter-increment: step; display: grid; gap: var(--space-2); padding: var(--space-5); border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--white); margin: 0 !important; }
.airc-step::before { content: counter(step); width: 36px; height: 36px; border-radius: var(--radius-sm); background: var(--navy); color: var(--white); display: grid; place-items: center; font: 500 14px/1 var(--font-mono); margin-bottom: var(--space-2); }
.airc-step > * { margin: 0; }
.airc-step__title { font-size: var(--wp--preset--font-size--card-title); }
.airc-step p { color: var(--ink-muted); }
@container (min-width: 720px) { .airc-steps__list { grid-template-columns: repeat(3, 1fr); } }

.airc-faq > .wp-block-details, .airc-faq > .wp-block-buttons { max-width: 880px; width: 100%; }
.airc-faq .wp-block-details { border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--white); margin: 0; }
.airc-faq .wp-block-details + .wp-block-details { margin-top: calc(-1 * var(--space-5) + var(--space-2)); }
.airc-faq summary { min-height: 56px; display: flex; align-items: center; padding: 0 var(--space-5); font-weight: 600; cursor: pointer; }
.airc-faq summary:focus-visible { outline-offset: -4px; }
.airc-faq summary { gap: var(--space-3); justify-content: space-between; }
.airc-faq summary::after { content: ""; flex: none; width: 9px; height: 9px; margin: -4px 4px 0 0; border: solid var(--ink-muted); border-width: 0 2px 2px 0; transform: rotate(45deg); transition: transform .3s, margin .3s; }
.airc-faq details[open] > summary::after { transform: rotate(-135deg); margin-top: 4px; }
.airc-faq .wp-block-details > p { padding: 0 var(--space-5) var(--space-4); margin: 0; color: var(--ink-muted); }

.airc-cta { container-type: inline-size; margin-top: var(--space-8) !important; background: var(--surface); border-top: 1px solid var(--line); }
.airc-cta__inner { max-width: 720px; margin: 0 auto; padding: var(--space-7) var(--space-4); display: grid; gap: var(--space-4); justify-items: center; text-align: center; }
.airc-cta__inner > * { margin: 0; }
.airc-cta p { color: var(--ink-muted); font-size: 18px; }

/* ---------- Course catalog (P02) ---------- */
.airc-section--page { padding-top: var(--space-5); }
.airc-page-intro { display: grid; gap: var(--space-2); }
.airc-page-intro > * { margin: 0; }
.airc-filter { margin-bottom: var(--space-4); }
.airc-filter a { text-decoration: none; min-height: var(--touch-target, 44px); height: auto; }
.airc-pager { margin-top: var(--space-6); }
.airc-pager .nav-links { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--space-2); }
.airc-pager .page-numbers { min-width: 44px; min-height: 44px; display: grid; place-items: center; padding: 0 var(--space-3); border: 1px solid var(--line); border-radius: var(--radius-sm); color: var(--navy); text-decoration: none; }
.airc-pager .page-numbers.current { background: var(--navy); border-color: var(--navy); color: var(--white); }
.airc-empty .airc-btn { margin-top: var(--space-2); }

/* ---------- Course page (P03) ---------- */
.airc-course h1, .airc-course h2, .airc-course p { margin: 0; }
.airc-video > iframe, .airc-video > img { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; object-fit: cover; }
.airc-course__body { display: grid; gap: var(--space-7); min-width: 0; }
.airc-course__section { display: grid; gap: var(--space-4); align-content: start; }
.airc-course__section > .airc-btn { justify-self: start; }
@media (max-height: 940px) { .airc-course .airc-buybox { position: static; } } /* Box taller than the screen: let it scroll with the page so every spec row is reachable. */
.airc-buybox__price .woocommerce-Price-amount, .airc-buybar__price .woocommerce-Price-amount { font: inherit; }
.airc-buybox__price del { font-size: 20px; color: var(--ink-muted); margin-right: var(--space-2); }
.airc-buybox form { margin: 0; }
.airc-prose > * { margin: 0 0 var(--space-3); }
.airc-prose > :last-child { margin-bottom: 0; }
.airc-checks { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-3); }
.airc-checks li { display: grid; grid-template-columns: 24px 1fr; gap: var(--space-3); align-items: start; }
.airc-checks svg.lucide { color: var(--green-600); margin-top: 2px; }
.airc-module__chev { display: grid; transition: transform .3s; }
.airc-lesson .airc-pill { height: 22px; padding: 0 8px; margin-left: var(--space-2); vertical-align: middle; }
.airc-gallery { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--space-3); }
.airc-gallery img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--radius-md); }
@container (min-width: 900px) {
  .airc-course__body { grid-column: 1; }
  .airc-gallery { grid-template-columns: repeat(3, 1fr); }
}

/* Phone buy bar: appears once the buy box scrolled away (view.js). */
.airc-buybar { visibility: hidden; position: fixed; z-index: 20; left: 0; right: 0; bottom: 0; display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); padding: var(--space-3) var(--space-4) calc(var(--space-3) + env(safe-area-inset-bottom)); background: var(--white); border-top: 1px solid var(--line); box-shadow: 0 -8px 24px rgba(3, 19, 39, .08); transform: translateY(110%); transition: transform .2s; }
.airc-buybar.is-visible { visibility: visible; transform: none; }
.airc-buybar__price { font: 700 24px/1 var(--font-heading); color: var(--navy); }
.airc-buybar form { margin: 0; }
@media (max-width: 899px) { body:has(.airc-buybar) { padding-bottom: 80px; } }
@media (min-width: 900px) { .airc-buybar { display: none; } }
@media (prefers-reduced-motion: reduce) { .airc-buybar, .airc-module__chev { transition: none; } }

/* ---------- Sign in / sign up / password (P12–P16) ---------- */
.airc-auth { container-type: inline-size; }
.airc-auth__inner { max-width: var(--content-max); margin: 0 auto; padding: var(--space-5) var(--space-4) var(--space-8); display: grid; gap: var(--space-6); align-items: center; }
.airc-auth__card { width: 100%; max-width: 440px; margin: 0 auto; }
.airc-auth__card .woocommerce, .airc-auth__form { display: grid; gap: var(--space-5); }
.airc-auth__form { gap: var(--space-4); }
.airc-auth__card .woocommerce > *, .airc-auth__form > * { margin: 0; }
.airc-auth__head { display: grid; gap: var(--space-2); }
.airc-auth__head > * { margin: 0; }
.airc-auth__head h1 { font-size: 30px; line-height: 1.15; }
.airc-auth__row { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--space-2); font-size: 15px; }
.airc-check { display: inline-flex; align-items: center; gap: var(--space-2); min-height: var(--touch-target); cursor: pointer; }
.airc-check input { width: 20px; height: 20px; accent-color: var(--navy); }
.airc-auth__legal { font-size: 13px; color: var(--ink-muted); }
.airc-auth__switch { color: var(--ink-muted); }
.airc-auth__switch a, .airc-auth__row a { color: var(--blue-600); font-weight: 600; }
.airc-auth .woocommerce-error, .airc-auth .woocommerce-message, .airc-auth .woocommerce-info { list-style: none; margin: 0; padding: var(--space-3) var(--space-4); border-radius: var(--radius-sm); background: var(--orange-50); color: var(--navy); border-left: 4px solid var(--orange-700); }
.airc-auth .woocommerce-message { background: var(--surface); border-left-color: var(--green-600); }
.airc-auth__media { display: none; margin: 0; }
.airc-auth__media img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--radius-md); display: block; }
@container (min-width: 900px) {
  .airc-auth__inner { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); padding: var(--space-7) var(--space-5) var(--space-8); column-gap: var(--space-8); }
  .airc-auth__card { margin: 0; justify-self: end; }
  .airc-auth__media { display: block; max-width: 520px; }
}

/* ---------- Project gallery (P04) ---------- */
.airc-gallery-page .wp-block-post-title { margin: 0; }
.airc-gallery-block { display: grid; gap: var(--space-4); }
.airc-gallery-block > * { margin: 0; }
.airc-gallery__open { display: block; width: 100%; padding: 0; border: 0; background: none; cursor: zoom-in; border-radius: var(--radius-md); }
.airc-gallery__open:focus-visible { outline: var(--focus-width) solid var(--orange-600); outline-offset: 2px; }
@container (min-width: 600px) { .airc-gallery--page { grid-template-columns: repeat(3, 1fr); } }
@container (min-width: 1100px) { .airc-gallery--page { grid-template-columns: repeat(4, 1fr); } }
/* A project: its images side by side (portrait, 3:4) and its name, two columns wide. */
.airc-gallery__project { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--space-2); align-content: start; }
.airc-gallery__project img, .airc-course__section .airc-gallery img { aspect-ratio: 3 / 4; } /* Project shots are portrait. */
.airc-gallery__open { position: relative; }
.airc-gallery__open[hidden] { display: none; }
.airc-gallery__more { position: absolute; right: var(--space-2); bottom: var(--space-2); padding: 4px 10px; border-radius: var(--radius-pill); background: rgba(3, 19, 39, .78); color: var(--white); font: 600 14px/1.2 var(--font-body); }
.airc-gallery__name { grid-column: 1 / -1; margin: 0; font-weight: 600; color: var(--navy); }
@container (min-width: 600px) { .airc-gallery__project { grid-column: span 3; } }
@container (min-width: 1100px) { .airc-gallery__project { grid-column: span 2; } }
.airc-lightbox { width: 100vw; height: 100dvh; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: rgba(3, 19, 39, .94); color: var(--white); touch-action: pan-y; }
.airc-lightbox[open] { display: grid; place-items: center; }
.airc-lightbox::backdrop { background: transparent; }
.airc-lightbox img { max-width: calc(100vw - 32px); max-height: calc(100dvh - 120px); object-fit: contain; border-radius: var(--radius-md); user-select: none; -webkit-user-drag: none; }
.airc-lightbox__btn { position: absolute; width: 48px; height: 48px; display: grid; place-items: center; border: 0; border-radius: var(--radius-pill); background: rgba(255, 255, 255, .12); color: var(--white); cursor: pointer; }
.airc-lightbox__btn:hover { background: rgba(255, 255, 255, .24); }
.airc-lightbox__close { top: var(--space-3); right: var(--space-3); }
.airc-lightbox__prev { left: var(--space-3); top: 50%; translate: 0 -50%; }
.airc-lightbox__next { right: var(--space-3); top: 50%; translate: 0 -50%; }
.airc-lightbox__count { position: absolute; bottom: var(--space-4); left: 0; right: 0; margin: 0; text-align: center; font: 500 13px/1 var(--font-mono); }
/* Gallery: the enroll bar is always shown. */
.airc-gallery-block .airc-buybar { visibility: visible; transform: none; }
@media (min-width: 900px) { .airc-gallery-block .airc-buybar { display: flex; justify-content: flex-end; gap: var(--space-5); padding-inline: max(var(--space-5), calc((100vw - var(--content-max)) / 2 + var(--space-5))); } }
body:has(.airc-gallery-block .airc-buybar) { padding-bottom: 80px; }

/* ---------- Lesson player (P05) ---------- */
.airc-lesson-page { min-height: 100dvh; background: var(--surface); }
.airc-player h1, .airc-player h2, .airc-player p { margin: 0; }
.airc-player__top { position: sticky; top: 0; z-index: 10; min-height: var(--header-height); padding: 0 var(--space-4); background: var(--white); border-bottom: 1px solid var(--line); }
.airc-player__top > a { min-width: 0; flex: 1; }
.airc-player__course { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.airc-player__stage { min-width: 0; align-content: start; }
.airc-player__actions > .airc-btn:only-child { grid-column: 1 / -1; }
.airc-player__frame > * { position: absolute; inset: 0; width: 100%; height: 100%; }
.airc-player__frame iframe, .airc-player__frame video { width: 100%; height: 100%; border: 0; }
.airc-player__lesson { gap: var(--space-3); }
.airc-player__complete { margin: 0; }
.airc-player__files { display: grid; gap: var(--space-3); padding-top: var(--space-4); border-top: 1px solid var(--line); }
.airc-player__files h2 { font-size: var(--wp--preset--font-size--card-title); }
.airc-files { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-2); }
.airc-files a { display: grid; grid-template-columns: 24px 1fr auto; gap: var(--space-3); align-items: center; min-height: 48px; padding: 0 var(--space-3); border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--white); color: var(--navy); text-decoration: none; }
.airc-files a:hover { border-color: var(--navy); }
.airc-files span:nth-child(2) { overflow-wrap: anywhere; }
/* Course content: drawer on phones, fixed sidebar from 960px (same <dialog>). */
.airc-player__side { width: min(400px, 92vw); height: 100dvh; max-height: none; margin: 0 0 0 auto; padding: 0; border: 0; background: var(--surface); }
.airc-player__side[open] { display: grid; grid-template-rows: auto 1fr; }
.airc-player__side::backdrop { background: rgba(3, 19, 39, .45); }
.airc-player__side-head { display: flex; align-items: center; justify-content: space-between; min-height: var(--header-height); padding: 0 var(--space-2) 0 var(--space-4); background: var(--white); border-bottom: 1px solid var(--line); }
.airc-player__side-head h2 { font-size: var(--wp--preset--font-size--card-title); }
.airc-player__side .airc-lessons { padding: var(--space-3); overflow-y: auto; }
.airc-notice { margin: 0; padding: var(--space-3) var(--space-4); border-radius: var(--radius-sm); background: var(--orange-50); color: var(--navy); border-left: 4px solid var(--orange-700); font-weight: 600; }
@container (min-width: 960px) {
  .airc-player__inner { grid-template-columns: minmax(0, 1fr) 360px; align-items: start; }
  .airc-player__top .airc-player__toc { display: none; }
  .airc-player__side:not([open]) { display: block; position: sticky; top: calc(var(--header-height) + var(--space-4)); width: auto; height: auto; max-height: calc(100dvh - var(--header-height) - var(--space-6)); overflow-y: auto; border: 1px solid var(--line); border-radius: var(--radius-md); }
  .airc-player__side:not([open]) .airc-player__side-head button { display: none; }
}

/* ---------- Account area (P17–P22) ---------- */
.airc-account { background: var(--surface); }
.airc-dash__main > * { margin: 0; }
.airc-dash__main { align-content: start; gap: var(--space-5); min-width: 0; }
.airc-dash__nav svg { width: 18px; height: 18px; flex: none; }
.airc-dash__head { display: grid; gap: var(--space-1); }
.airc-dash__head > * { margin: 0; }
.airc-dash__head h1 { font-size: 30px; line-height: 1.15; }
.airc-resume > *, .airc-panel > *, .airc-mycourse__body > * { margin: 0; }
.airc-resume h2 { font-size: 22px; }
.airc-resume .airc-btn { justify-self: start; }
.airc-link { display: inline-flex; align-items: center; gap: 4px; min-height: var(--touch-target); color: var(--blue-600); font-weight: 600; text-decoration: none; }
.airc-link svg { width: 16px; height: 16px; }
.airc-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-3); margin: 0; padding: 0; list-style: none; }
.airc-stats li { display: grid; gap: 2px; padding: var(--space-4); border-radius: var(--radius-md); background: var(--white); border: 1px solid var(--line); }
.airc-stats strong { font: 700 28px/1.1 var(--font-heading); color: var(--navy); }
.airc-stats span { font-size: 14px; color: var(--ink-muted); }
.airc-mycourses { display: grid; gap: var(--space-4); margin: 0; padding: 0; list-style: none; }
.airc-dash__main > .airc-mycourses > li { padding: var(--space-4); border-radius: var(--radius-md); background: var(--white); border: 1px solid var(--line); }
.airc-mycourse__body { display: grid; gap: var(--space-2); }
.airc-mycourse__body h2 { font-size: 17px; line-height: 1.3; }
.airc-mycourse__body h2 a { color: inherit; text-decoration: none; }
.airc-mycourse__body .airc-btn { justify-self: start; }
.airc-row__icon img { width: 40px; height: 40px; object-fit: cover; border-radius: inherit; }
.airc-row__icon svg { width: 20px; height: 20px; }
.airc-row .airc-btn svg { width: 16px; height: 16px; }
.airc-panel.airc-rows { padding-block: 0; gap: 0; }
.airc-panel.airc-rows .airc-row:first-child { border-top: 0; }
.airc-actions { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.airc-settings { display: grid; gap: var(--space-4); max-width: 720px; }
.airc-settings > .airc-btn { justify-self: start; }
.airc-dash__main > form.airc-panel { max-width: 720px; }
/* WooCommerce screens inside the shell (orders, order detail). */
.airc-dash__woo { display: grid; gap: var(--space-4); }
.airc-dash__woo > *, .airc-dash__woo section > * { margin-top: 0; }
.airc-dash__woo table.shop_table { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius-md); border-collapse: separate; margin: 0; }
.airc-dash__woo table.shop_table th, .airc-dash__woo table.shop_table td { padding: var(--space-3) var(--space-4); border-color: var(--line); }
.airc-dash__woo h2 { font-size: 22px; }
.airc-dash__woo .button { display: inline-flex; align-items: center; min-height: 40px; padding: 0 var(--space-3); border-radius: var(--radius-sm); background: var(--white); color: var(--navy); border: 1.5px solid var(--navy); font-weight: 600; }
/* Status as a pill: green when completed, orange while waiting, muted otherwise. */
.airc-dash__woo .woocommerce-orders-table__cell-order-status { color: var(--ink-muted); font: 600 12px/1.3 var(--font-mono); text-transform: uppercase; letter-spacing: .04em; }
.airc-dash__woo .woocommerce-orders-table__row--status-completed .woocommerce-orders-table__cell-order-status { color: var(--green-600); }
.airc-dash__woo :is(.woocommerce-orders-table__row--status-pending, .woocommerce-orders-table__row--status-on-hold, .woocommerce-orders-table__row--status-processing) .woocommerce-orders-table__cell-order-status { color: var(--orange-700); }
.airc-dash__woo mark { background: none; color: inherit; font-weight: 600; }
.airc-dash__nav { scrollbar-width: none; }
.airc-dash__woo .woocommerce-notices-wrapper:not(:has(*)) { display: none; }
.airc-dash__woo.woocommerce table.shop_table_responsive tr td .button { display: flex; justify-content: center; }
.airc-dash__woo section { display: grid; gap: var(--space-3); margin: 0; }
.airc-dash__woo .airc-actions { margin-bottom: var(--space-2); }
.airc-dash__woo .woocommerce-orders-table__cell-order-status::before { font: 700 15px/1.5 var(--font-body); color: var(--navy); text-transform: none; letter-spacing: 0; }
@container (max-width: 599px) {
  .airc-row { grid-template-columns: 40px minmax(0, 1fr); }
  .airc-row > .airc-btn { grid-column: 2; justify-self: start; }
}
/* WooCommerce hides row headers (the order number) in its phone table; show them like the other cells. */
@media (max-width: 768px) {
  .airc-dash__woo table.shop_table_responsive tbody th { display: block; text-align: right; }
  .airc-dash__woo table.shop_table_responsive tbody th::before { content: attr(data-title) ": "; float: left; font-weight: 700; }
}

/* ---------- 3D files shop (P06/P07) ---------- */
.airc-filterbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-3); margin-bottom: var(--space-4); }
.airc-filterbar .airc-filter { margin: 0; }
.airc-sort { display: flex; align-items: center; gap: var(--space-2); margin: 0; }
.airc-sort label { font-weight: 600; font-size: 15px; }
.airc-sort select { width: auto; min-height: 44px; padding-block: 8px; }
@container (min-width: 1200px) { .airc-grid--products .airc-grid__items { grid-template-columns: repeat(4, 1fr); } }

/* ---------- 3D file page (P08) ---------- */
.airc-product { container-type: inline-size; }
.airc-product__inner { max-width: var(--content-max); margin: 0 auto; padding: var(--space-5) var(--space-4) var(--space-7); display: grid; gap: var(--space-5); }
.airc-product__main { display: grid; gap: var(--space-6); align-content: start; min-width: 0; }
.airc-product h1, .airc-product h2, .airc-product p { margin: 0; }
.airc-product .airc-buybox { grid-column: auto; grid-row: auto; position: static; }
.airc-product__media { min-width: 0; display: grid; gap: var(--space-2); align-content: start; }
/* Images: native swipe (scroll snap), one image per view. */
.airc-media { display: grid; grid-auto-flow: column; grid-auto-columns: 100%; gap: var(--space-3); overflow-x: auto; scroll-snap-type: x mandatory; list-style: none; margin: 0; padding: 0; border-radius: var(--radius-md); scrollbar-width: thin; }
.airc-media li { scroll-snap-align: start; }
.airc-media img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--radius-md); background: var(--surface); }
.airc-media__hint { text-align: center; }
@container (min-width: 960px) {
  .airc-product__inner { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); column-gap: var(--space-7); padding: var(--space-6) var(--space-5) var(--space-8); }
  .airc-product__inner > .wp-block-airc-breadcrumb, .airc-product__related { grid-column: 1 / -1; }
  .airc-product__media { position: sticky; top: calc(var(--header-height) + var(--space-5)); }
  .airc-product h1 { font-size: 40px; }
}

/* ---------- Checkout (P10), cart (P09), order received (P11) ---------- */
.airc-secure { margin: 0; display: inline-flex; align-items: center; gap: var(--space-2); }
.airc-secure::before { content: ""; width: 14px; height: 14px; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='18' height='11' x='3' y='11' rx='2'/%3E%3Cpath d='M7 11V7a5 5 0 0 1 10 0v4'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='18' height='11' x='3' y='11' rx='2'/%3E%3Cpath d='M7 11V7a5 5 0 0 1 10 0v4'/%3E%3C/svg%3E") center / contain no-repeat; }
.airc-checkout { max-width: var(--content-max); margin: 0 auto; padding: var(--space-4) var(--space-4) var(--space-7); }
.airc-checkout__foot { display: grid; gap: var(--space-2); justify-items: center; text-align: center; margin-top: var(--space-5); }
.airc-checkout__foot > * { margin: 0; }
.airc-checkout__foot .airc-menu ul { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--space-1) var(--space-4); margin: 0; padding: 0; list-style: none; font-size: 14px; }
.airc-checkout__foot .airc-menu a { color: var(--ink-muted); }
.airc-received { max-width: 720px; margin: 0 auto; padding: var(--space-7) var(--space-4) var(--space-8); display: grid; gap: var(--space-6); }
.airc-received__head { display: grid; justify-items: center; gap: var(--space-3); text-align: center; }
.airc-received__head > * { margin: 0; }
.airc-received__icon { width: 64px; height: 64px; border-radius: 50%; display: grid; place-items: center; background: var(--green-600); color: var(--white); }
.airc-received__icon svg { width: 32px; height: 32px; }
.airc-received__icon.is-pending { background: var(--surface); color: var(--ink-muted); border: 2px dashed var(--line-strong); }
@media (prefers-reduced-motion: no-preference) { .airc-received__icon.is-pending { animation: airc-spin 2s linear infinite; } }
@keyframes airc-spin { to { transform: rotate(360deg); } }
.airc-received .wc-block-order-confirmation-summary, .airc-received .wc-block-order-confirmation-totals { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius-md); padding: var(--space-4); margin: 0; }

/* ---------- Legal pages (P26–P29), search (P32), 404 (P33) ---------- */
.airc-legal { max-width: var(--content-max); margin: 0 auto; padding: var(--space-6) var(--space-4) 0; display: grid; gap: var(--space-5); }
.airc-legal__head, .airc-legal__text { max-width: 720px; }
.airc-legal__head { display: grid; gap: var(--space-2); }
.airc-legal__head > * { margin: 0; }
.airc-legal__date { font-size: 14px; }
.airc-legal__body { display: grid; gap: var(--space-5); }
.airc-page .wp-block-post-content > *, .airc-article .airc-article__body > *, .airc-legal .airc-legal__text > * { margin-block: 0; }
.airc-page .wp-block-post-content > * + *, .airc-article .airc-article__body > * + *, .airc-legal .airc-legal__text > * + * { margin-top: var(--space-3); }
.airc-page .wp-block-post-content > h2, .airc-article .airc-article__body > h2, .airc-legal .airc-legal__text > h2 { margin-top: var(--space-6); font-size: 24px; line-height: 1.25; scroll-margin-top: calc(var(--header-height) + var(--space-4)); }
.airc-page .wp-block-post-content > h3, .airc-article .airc-article__body > h3, .airc-legal .airc-legal__text > h3 { margin-top: var(--space-5); font-size: 19px; }
.airc-page .wp-block-post-content > :first-child, .airc-article .airc-article__body > :first-child, .airc-legal .airc-legal__text > :first-child { margin-top: 0; }
.airc-toc { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-md); padding: var(--space-4); }
.airc-toc p { margin: 0 0 var(--space-2); }
.airc-toc ol { margin: 0; padding: 0; list-style: none; display: grid; gap: var(--space-2); font-size: 15px; }
.airc-toc a { color: var(--navy); }
@media (min-width: 960px) {
  .airc-legal__head { margin-left: calc(240px + var(--space-7)); }
  .airc-legal__body { grid-template-columns: 240px minmax(0, 720px); gap: var(--space-7); align-items: start; }
  .airc-toc { position: sticky; top: calc(var(--header-height) + var(--space-5)); }
  .airc-legal__body > .airc-legal__text:first-child, .airc-legal__body > .airc-faqpage__main:first-child { grid-column: 2; }
}
.airc-searchpage, .airc-404 { max-width: var(--content-max); margin: 0 auto; padding: var(--space-6) var(--space-4) 0; }
.airc-search { display: grid; gap: var(--space-4); }
.airc-search > h1, .airc-search > p { margin: 0; }
.airc-searchform { display: flex; gap: var(--space-2); max-width: 560px; }
.airc-search__group { display: grid; gap: var(--space-3); margin-top: var(--space-3); }
.airc-search__group h2 { margin: 0; font-size: 22px; }
.airc-404__inner { display: grid; gap: var(--space-5); justify-items: center; text-align: center; }
.airc-404__art { margin: 0; }
.airc-404__art img { width: 240px; height: auto; aspect-ratio: 1; }
.airc-404__text { display: grid; gap: var(--space-3); justify-items: center; width: 100%; max-width: 560px; }
.airc-404__text > * { margin: 0; }
.airc-404__text .airc-search, .airc-404__text .airc-searchform { width: 100%; }
@media (min-width: 900px) {
  .airc-404__inner { grid-template-columns: 240px minmax(0, 560px); justify-content: center; align-items: center; gap: var(--space-7); text-align: left; }
  .airc-404__text { justify-items: start; }
}

/* ---------- About (P23) ---------- */
.airc-about { container-type: inline-size; }
.airc-about__intro { align-items: center; }
.airc-about__text { display: grid; gap: var(--space-4); }
.airc-about__text > *, .airc-about__lead > * { margin-block: 0; }
.airc-about__lead { display: grid; gap: var(--space-3); color: var(--ink-muted); font-size: 18px; }
.airc-about__img { margin: 0; }
.airc-about__img img { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--radius-md); border: 1px solid var(--line); }
.airc-about__stats { grid-template-columns: repeat(2, 1fr); gap: var(--space-3); padding-top: var(--space-6); }
.airc-about__stat { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-md); padding: var(--space-4); display: grid; gap: var(--space-1); }
.airc-about__stat > * { margin: 0; }
.airc-about__value { font: 600 32px/1.1 var(--font-heading); color: var(--navy); }
.airc-about__teach-body { display: grid; gap: var(--space-5); }
.airc-about__teach-body > *, .airc-about__topics > *, .airc-faqpage__main > * { margin-block: 0; }
.airc-about__topics { display: grid; gap: var(--space-3); }
.airc-about__topic { border: 1px solid var(--line); border-radius: var(--radius-md); padding: var(--space-4); display: grid; gap: var(--space-1); }
.airc-about__topic > * { margin: 0; }
.airc-about__topic h3 { font-size: var(--wp--preset--font-size--card-title); }
@container (min-width: 720px) {
  .airc-about__intro { grid-template-columns: 1fr 1fr; gap: var(--space-7); }
  .airc-about__stats { grid-template-columns: repeat(4, 1fr); }
  .airc-about__topics { grid-template-columns: repeat(2, 1fr); }
}
@container (min-width: 1000px) { .airc-about__teach-body { grid-template-columns: 5fr 6fr; align-items: center; } }

/* ---------- Contact (P24) ---------- */
.airc-contactpage { container-type: inline-size; max-width: var(--content-max); margin: 0 auto; padding: var(--space-6) var(--space-4) 0; display: grid; gap: var(--space-6); }
.airc-contactpage__head > * { margin: 0; }
.airc-contactpage__head { display: grid; gap: var(--space-2); }
.airc-contactpage__head .wp-block-post-content > * { margin: 0; font-size: 18px; }
.airc-contact { display: grid; gap: var(--space-6); }
.airc-contact__side { display: grid; gap: var(--space-4); align-content: start; }
.airc-contact__art { width: 120px; height: 120px; }
.airc-contact__cards { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-3); }
.airc-contact__card { display: flex; gap: var(--space-3); align-items: flex-start; padding: var(--space-4); border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--white); }
.airc-contact__card p { margin: 0; }
.airc-contact__icon { flex: none; width: 40px; height: 40px; border-radius: var(--radius-sm); background: var(--surface); color: var(--blue-600); display: grid; place-items: center; }
.airc-contact__icon svg { width: 20px; height: 20px; }
.airc-contact__value { display: flex; flex-wrap: wrap; gap: var(--space-2); align-items: center; font-weight: 600; margin-top: var(--space-1) !important; overflow-wrap: anywhere; }
.airc-contact__value a { color: var(--navy); }
.airc-contact__copy { min-height: 36px; padding: 0 12px; font-size: 14px; gap: 6px; }
.airc-contact__copy svg { width: 16px; height: 16px; }
.airc-contact__copy[hidden] { display: none; }
.airc-contact__form { display: grid; gap: var(--space-4); padding: var(--space-5); border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--surface); scroll-margin-top: calc(var(--header-height) + var(--space-4)); }
.airc-contact__form h2 { margin: 0; font-size: 24px; }
.airc-contact__form textarea { min-height: 144px; resize: vertical; }
.airc-contact__form .airc-btn { justify-self: start; }
.airc-contact__trap { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.airc-notice { margin: 0; padding: var(--space-3) var(--space-4); border-radius: var(--radius-sm); border: 1px solid var(--line); background: var(--white); font-weight: 500; }
.airc-notice--success { border-color: var(--blue-600); }
.airc-notice--error { border-color: var(--orange-700); color: var(--orange-700); }
@container (min-width: 880px) { .airc-contact { grid-template-columns: 5fr 7fr; gap: var(--space-7); align-items: start; } }

/* ---------- FAQ (P25): legal layout with Details accordions ---------- */
.airc-faqpage__main { display: grid; gap: var(--space-6); }
.airc-faqpage .airc-faq .wp-block-details { max-width: none; }
.airc-faqpage .airc-legal__text > .wp-block-details { margin-top: var(--space-2); }
.airc-faqpage .airc-legal__text > h2 + .wp-block-details { margin-top: var(--space-3); }
.airc-faqpage__help { display: flex; gap: var(--space-4); align-items: center; padding: var(--space-5); border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--surface); }
.airc-faqpage__help * { margin-block: 0; }
.airc-faqpage__help .wp-block-group { display: grid; gap: var(--space-2); }
.airc-faqpage__help h2 { font-size: 22px; }
.airc-faqpage__art { flex: none; margin: 0; }
.airc-faqpage__art img { width: 96px !important; height: 96px !important; }
@media (max-width: 599px) { .airc-faqpage__help { flex-direction: column; align-items: flex-start; } }

/* ---------- Blog (P30) and article (P31) ---------- */
.airc-grid__featured .airc-card__title { font-size: 24px; }
@container (min-width: 600px) { .airc-grid__featured { grid-column: span 2; } }
@container (min-width: 960px) {
	.airc-grid__featured { grid-row: span 2; } /* Big card beside two stacked ones: 9 a page fill four full rows. */
	.airc-grid__featured .airc-card__thumb { aspect-ratio: auto; flex: 1; min-height: 280px; }
	.airc-grid__featured .airc-card__body { flex: none; }
	.airc-grid__featured .airc-card__title { font-size: 30px; }
}
.airc-article { padding-top: var(--space-5); }
.airc-article > * { margin-block: 0; }
.airc-article__cover img { border-radius: var(--radius-md); }
.airc-article__head { display: grid; gap: var(--space-2); margin-block: var(--space-5) var(--space-6) !important; }
.airc-article__head > * { margin: 0; }
.airc-article__body .wp-block-code { padding: var(--space-4); border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--surface); overflow-x: auto; font: 14px/1.6 var(--font-mono); }
.airc-article__body .wp-block-code code { white-space: pre; }
.airc-article__course, .airc-article__more { display: grid; gap: var(--space-4); margin-top: var(--space-8) !important; }
.airc-article__course > h2, .airc-article__more > h2 { margin: 0; font-size: 24px; }
.airc-article__course:not(:has(.airc-card)), .airc-article__more:not(:has(.airc-card)) { display: none; }
@container (min-width: 600px) {
	.airc-article__course .airc-grid__items { grid-template-columns: 1fr; }
	.airc-article__course .airc-card { display: grid; grid-template-columns: 2fr 3fr; }
	.airc-article__course .airc-card__thumb { aspect-ratio: auto; height: 100%; }
}

/* ---------- Motion ----------
   Everything moves only for visitors who have not asked for reduced motion; without support a browser just shows the end state.
   Page changes: a cross-document view transition (header stays put, the page fades).
   Loading and scrolling: blocks marked by assets/js/motion.js fade up. Accordions: <details> open and close smoothly. Drawers slide in from the right. */
@media (prefers-reduced-motion: no-preference) {
	html { scroll-behavior: smooth; }
	@view-transition { navigation: auto; }
	header.wp-block-template-part { view-transition-name: airc-header; }
	::view-transition-old(root) { animation: .2s ease-in both airc-fade-out; }
	::view-transition-new(root) { animation: .3s ease-out both airc-fade-in; }

	.airc-motion:not(.airc-motion-ready) main { opacity: 0; }
	.airc-reveal { opacity: 0; translate: 0 24px; transition: opacity .6s ease, translate .6s cubic-bezier(.2, .7, .2, 1); transition-delay: var(--airc-delay, 0ms); }
	.airc-reveal.is-in { opacity: 1; translate: none; }

	@supports selector(::details-content) {
		:root { interpolate-size: allow-keywords; }
		details::details-content { height: 0; opacity: 0; overflow: clip; transition: height .35s cubic-bezier(.2, .7, .2, 1), opacity .35s, content-visibility .35s allow-discrete; }
		details[open]::details-content { height: auto; opacity: 1; }
	}

	.airc-menu-dialog, .airc-lightbox { transition: display .35s allow-discrete, overlay .35s allow-discrete, opacity .35s; }
	:is(.airc-menu-dialog, .airc-player__side)::backdrop { opacity: 0; transition: opacity .35s, display .35s allow-discrete, overlay .35s allow-discrete; }
	:is(.airc-menu-dialog, .airc-player__side)[open]::backdrop { opacity: 1; }
	.airc-drawer__panel, .airc-player__side { transition: translate .35s cubic-bezier(.2, .7, .2, 1); }
	.airc-menu-dialog:not([open]) .airc-drawer__panel { translate: 100% 0; }
	.airc-lightbox:not([open]) { opacity: 0; }
	@starting-style {
		:is(.airc-menu-dialog, .airc-player__side)[open]::backdrop, .airc-lightbox[open] { opacity: 0; }
		.airc-menu-dialog[open] .airc-drawer__panel, .airc-player__side:modal { translate: 100% 0; }
	}
}
@keyframes airc-fade-out { to { opacity: 0; } }
@keyframes airc-fade-in { from { opacity: 0; } }
