/* AXW global roles. Page composition and full-bleed media stay authored in Elementor. */
:root {
	--axw-color-ink: #11100f;
	--axw-color-paper: #f0ede7;
	--axw-color-muted: #a9a49d;
	--axw-color-copy: #c8c3bb;
	--axw-color-surface: #1c1a18;
	--axw-color-champagne: #cdbb9c;
	--axw-font-display: "Intro", Arial, sans-serif;
	--axw-font-personality: "Cochin", Georgia, serif;
	--axw-font-functional: Arial, Helvetica, sans-serif;
	--axw-gutter: 24px;
	--axw-frame-max: 2320px;
	--axw-content-max: calc(var(--axw-frame-max) - 2 * var(--axw-gutter));
	--axw-frame-inset: max(var(--axw-gutter), calc((100vw - var(--axw-content-max)) / 2));
}
@media (min-width: 768px) { :root { --axw-gutter: 40px; } }
@media (min-width: 1200px) { :root { --axw-gutter: 64px; } }
@media (min-width: 1800px) { :root { --axw-gutter: 80px; } }

/* Explicit frame helpers for shared utility content, never full-width media. */
.axw-frame { width: 100%; max-width: var(--axw-frame-max); margin-inline: auto; padding-inline: var(--axw-gutter); }
.axw-frame-content { width: 100%; max-width: var(--axw-content-max); margin-inline: auto; }
.axw-frame-gutter { padding-inline: var(--axw-frame-inset); }

/* Font roles, not layout rules. Local homepage and booking composition are left alone. */
body:not(.page-id-68) :is(.axw-single-class, .axw-archive--classes) :is(.axw-single__title, .axw-single__section-title, .axw-single__booking-title) .elementor-heading-title,
body:not(.page-id-68) .axw-archive-index__item--class .axw-archive-index__name a,
.axw-content-page__title .elementor-heading-title,
.axw-content-page__content :is(h2, h3),
.axw-404__title .elementor-heading-title,
.axw-shell-review-content__inner h1,
.axw-type-display .elementor-heading-title { font-family: var(--axw-font-display); }

body:not(.page-id-68) .axw-single-instructor .axw-single__title .elementor-heading-title,
body:not(.page-id-68) .axw-archive-index--instructors .axw-archive-index__name a,
.axw-type-personality .elementor-heading-title,
.axw-type-personality { font-family: var(--axw-font-personality); letter-spacing: -.025em; }

.axw-type-functional,
.axw-type-functional .elementor-heading-title,
.axw-content-page__eyebrow .elementor-heading-title,
.axw-404__code .elementor-heading-title,
.axw-404__description .elementor-heading-title { font-family: var(--axw-font-functional); }

/* Utility defaults remove Hello's pink links/buttons without overriding authored widgets. */
.axw-content-page__content a:hover { color: var(--axw-color-champagne); }
.axw-content-page__content :is(table, th, td),
.axw-content-page__content h4 { font-family: var(--axw-font-functional); }

/* Action labels share a casing rule; body copy and ordinary text links keep their case. */
:is(.axw-site-header, .axw-site-footer, .axw-home, .axw-secondary, .axw-enquiry, .axw-404) .elementor-button,
.axw-journey-button, .axw-journey-link, .axw-booking-nav :is(a, button),
.axw-site-menu__map-link, .axw-booking-context a { text-transform: uppercase; letter-spacing: .06em; }

/* Repeat the editorial voice in people and place; keep movement headings in Intro. */
.elementor-68 :is(.axw-home-intro__line, .axw-home-instructors__title, .axw-home-instructor__name, .axw-home-studio__title, .axw-home-social__handle) .elementor-heading-title,
.elementor-68 .axw-home-instructors__information::before,
body .axw-secondary .axw-archive--instructors__title .elementor-heading-title,
body .axw-secondary.axw-destination--studio .axw-destination__title .elementor-heading-title,
body .axw-secondary.axw-destination--studio .axw-destination__atmosphere .axw-destination__subhead .elementor-heading-title,
body .axw-secondary.axw-destination--studio .axw-destination__founder .axw-destination__subhead .elementor-heading-title,
body :is(.axw-enquiry,.axw-faq) .elementor-heading-title { font-family:var(--axw-font-personality) !important; font-weight:400; }
/* Text-editor widgets must inherit functional copy, rather than a display-font container. */
:is(.axw-home,.axw-secondary,.axw-site-footer,.axw-site-menu,.axw-enquiry,.axw-faq) .elementor-widget-text-editor,
:is(.axw-home,.axw-secondary,.axw-site-footer,.axw-site-menu,.axw-enquiry,.axw-faq) .elementor-widget-text-editor p { font-family:var(--axw-font-functional); }
:is(.axw-home,.axw-secondary,.axw-enquiry,.axw-faq,.axw-site-footer) :is(input,textarea,select,button,.elementor-button),
.axw-site-menu__nav .elementor-heading-title,
.axw-home-timetable__row .elementor-heading-title,
.axw-booking-page :is(.axw-booking-page__pricing-title,.axw-booking-page__price-name,.axw-booking-page__price-value,.axw-booking-page__price-detail),
body .axw-secondary.axw-destination--studio .axw-destination__location .elementor-heading-title { font-family:var(--axw-font-functional) !important; }
body .axw-booking-page { font-family:var(--axw-font-functional); }
body .axw-booking-page :is(.axw-booking-page__title .elementor-heading-title,.axw-booking-page__section-title) { font-family:var(--axw-font-display) !important; }

/* Editorial section titles add a human counterpoint to the movement display. */
body .axw-single-class .axw-single__section-title .elementor-heading-title,
body .axw-404__title .elementor-heading-title,
body .axw-site-footer__mailing .axw-site-footer__column-title .elementor-heading-title {
 font-family:var(--axw-font-personality) !important; font-weight:400 !important;
}
body .axw-site-footer__mailing .axw-site-footer__column-title .elementor-heading-title { font-size:clamp(24px,2vw,36px) !important; line-height:1.1 !important; letter-spacing:-.025em !important; }

/* Filled actions and editorial text actions share tracking and tactile focus. */
:is(.axw-home,.axw-secondary,.axw-enquiry,.axw-faq,.axw-404,.axw-site-header,.axw-site-footer) .elementor-button,
.axw-journey-button,.axw-journey-link,.axw-booking-nav :is(a,button),
.axw-site-menu__map-link,.axw-booking-context a,
.axw-home-class__actions a,.axw-home-instructor__profile a,
.axw-home-timetable__action a,.axw-home-studio__action a,
.axw-archive-index__profile a {
 letter-spacing:.1em !important; text-transform:uppercase;
 transition:color 180ms ease,background-color 180ms ease,border-color 180ms ease;
}
.axw-site-header .elementor-button,.axw-site-menu__map-link { letter-spacing:.13em !important; }
:is(.axw-home,.axw-secondary,.axw-enquiry,.axw-faq,.axw-404,.axw-site-header,.axw-site-footer) :is(a,button,input,textarea,summary):focus-visible {
 outline:2px solid var(--axw-color-champagne); outline-offset:5px;
}
:is(.axw-journey-link,.axw-home-instructor__profile a,.axw-home-timetable__action a,.axw-home-studio__action a,.axw-archive-index__profile a,.axw-site-menu__map-link):hover { color:var(--axw-color-champagne); border-color:var(--axw-color-champagne); }
@media(max-width:767px) {
 :is(.axw-home,.axw-secondary,.axw-enquiry,.axw-site-footer) .elementor-button,
 .axw-journey-button,.axw-journey-link { letter-spacing:.08em !important; }
}
@media(prefers-reduced-motion:reduce) {
 :is(.axw-home,.axw-secondary,.axw-enquiry,.axw-faq,.axw-site-footer) :is(a,button,.elementor-button) { transition:none !important; }
}
