/**
 * Mobile-only layout and typography optimizations (< 768px).
 *
 * @package ALW
 * @since   1.0.0
 */

@media (max-width: 767px) {
	:root {
		--alw-section-padding-y-sm: 48px;
		--alw-section-padding-y-alt: 56px;
		--alw-footer-margin-top: 64px;
		--alw-font-size-h1-sm: 28px;
		--alw-header-height: 64px;
	}

	body {
		font-size: 15px;
		line-height: 1.55;
	}

	.site-container {
		padding-inline: var(--alw-container-padding-x);
	}

	/* —— Sections —— */
	.alw-section--alt {
		padding-block: var(--alw-section-padding-y-alt);
	}

	.alw-section__grid {
		margin-top: 32px;
	}

	.alw-section__actions {
		margin-top: 28px;
	}

	.alw-section__intro {
		margin-top: 10px;
		font-size: 15px;
		line-height: 1.6;
	}

	.alw-section__header {
		max-width: 100%;
	}

	/* —— Typography —— */
	.alw-heading-2 {
		font-size: 26px;
		line-height: 1.2;
	}

	.alw-heading-3 {
		font-size: 17px;
		line-height: 1.45;
	}

	.alw-heading-3-lg {
		font-size: 18px;
	}

	.alw-lead {
		font-size: 15px;
		line-height: 1.55;
	}

	.alw-body-relaxed {
		font-size: 15px;
		line-height: 1.6;
	}

	.alw-text-sm {
		font-size: 13px;
	}

	.alw-badge {
		margin-block-end: 10px;
		font-size: 11px;
	}

	/* —— Home hero —— */
	.hero-home__container {
		align-items: stretch;
		min-height: auto;
		padding: 88px 16px 128px;
	}

	.hero-home__layout {
		display: flex;
		flex-direction: column;
		gap: 28px;
		width: 100%;
		min-width: 0;
	}

	.hero-home__content {
		order: 1;
		width: 100%;
		min-width: 0;
	}

	.hero-home__media {
		order: 2;
		width: 100%;
		min-width: 0;
	}

	.hero-home__map-wrap {
		max-width: 100%;
	}

	.hero-home__map {
		width: 100%;
		max-width: min(100%, 72vw);
		margin-inline: auto;
	}

	.hero-home__content-inner {
		width: 100%;
		max-width: 100%;
		text-align: center;
		margin-inline: auto;
	}

	.hero-home__badge {
		max-width: 100%;
	}

	.hero-home__title {
		margin-top: 16px;
		font-size: var(--alw-font-size-h1-sm);
		line-height: 1.15;
		overflow-wrap: break-word;
	}

	.hero-home__subtitle {
		margin-top: 14px;
		margin-inline: auto;
		max-width: 100%;
		font-size: 15px;
		line-height: 1.55;
	}

	.hero-home__actions {
		justify-content: center;
	}

	.hero-home__actions {
		margin-top: 24px;
		gap: 10px;
	}

	.hero-home__actions .alw-btn {
		min-height: 44px;
		width: 100%;
		max-width: 300px;
	}

	.hero-home__scroll {
		bottom: 20px;
	}

	/* —— CTA banners —— */
	.cta-banner--page-top .alw-cta-banner {
		min-height: 220px;
		padding-block: 32px;
		padding-inline: var(--alw-container-padding-x);
	}

	.cta-banner:not(.cta-banner--page-top) .alw-cta-banner {
		margin-inline: var(--alw-container-padding-x);
		padding: 40px 20px;
	}

	.alw-cta-banner__heading {
		font-size: 26px;
		line-height: 1.2;
	}

	.alw-cta-banner__intro {
		margin-top: 12px;
		font-size: 15px;
		line-height: 1.55;
	}

	.alw-cta-banner__actions {
		margin-top: 24px;
	}

	.cta-banner--page-top .alw-cta-banner__image,
	.alw-cta-banner__image {
		max-width: 36%;
		opacity: 0.72;
	}

	.alw-cta-banner__actions .alw-btn {
		min-height: 44px;
	}

	/* —— Cards & grids —— */
	.alw-feature-card {
		padding: 20px;
	}

	.alw-feature-card:hover,
	.alw-feature-card:focus-within {
		transform: none;
	}

	.alw-feature-card__title {
		margin-top: 16px;
	}

	.alw-feature-grid {
		gap: 16px;
	}

	.alw-promo-card {
		gap: 24px;
		padding: 24px 20px;
	}

	.alw-promo-card__cta .alw-btn {
		width: 100%;
		max-width: 300px;
	}

	.alw-split-left {
		gap: 24px;
	}

	.alw-split__body {
		margin-top: 16px;
	}

	.alw-split__cta {
		margin-top: 24px;
	}

	.alw-split__cta .alw-btn {
		width: 100%;
		max-width: 300px;
	}

	/* —— Subject pills & carousels —— */
	.alw-subject-pill {
		min-height: 140px;
		gap: 12px;
		padding: 20px 12px 16px;
	}

	.alw-subject-pill__icon,
	.alw-subject-pill__svg {
		width: 52px;
		height: 52px;
	}

	.subjects-video-library__grid {
		gap: 20px;
		margin-top: 32px;
	}

	.subjects-video-library__carousel {
		--alw-carousel-gap: 16px;
	}

	.live-classes-grid__icon,
	.live-classes-grid__icon-svg {
		width: 52px;
		height: 52px;
	}

	/* —— About video —— */
	.about-page-video .alw-section__container {
		padding-inline: var(--alw-container-padding-x);
	}

	.alw-about-video-card {
		gap: 24px;
		padding: 24px 20px;
	}

	/* —— Contact page —— */
	.contact-grid__details {
		gap: 20px;
		margin-top: 20px;
	}

	.contact-grid__map-section,
	.contact-grid__social-section {
		margin-top: 24px;
	}

	.contact-grid__success {
		padding: 16px 4px 4px;
	}

	.contact-grid__success-description {
		max-width: none;
	}

	/* —— Levels accordion —— */
	.levels-accordion__items {
		gap: 12px;
	}

	.levels-accordion__summary {
		padding: 16px 18px;
		font-size: 16px;
	}

	/* —— Footer —— */
	.site-footer__newsletter-inner {
		gap: 20px;
		padding: 32px var(--alw-container-padding-x);
	}

	.site-footer__newsletter-title {
		font-size: 18px;
		line-height: 1.35;
	}

	.site-footer__newsletter-text {
		margin-top: 8px;
		font-size: 13px;
	}

	.site-footer__newsletter-submit {
		width: 100%;
		min-height: 44px;
	}

	.site-footer__inner {
		gap: 28px;
		padding: 40px var(--alw-container-padding-x) 32px;
	}

	.site-footer__column-title {
		font-size: 14px;
	}

	.site-footer__tagline {
		margin-top: 12px;
		font-size: 13px;
	}

	.site-footer__out {
		padding: 16px var(--alw-container-padding-x) 20px;
	}

	.site-footer__copyright,
	.site-footer__legal-item {
		font-size: 11px;
	}

	/* —— Video modal —— */
	.alw-video-modal {
		align-items: center;
		padding: 16px;
		padding-top: max(16px, env(safe-area-inset-top));
	}

	.alw-video-modal__close {
		top: -44px;
		width: 44px;
		height: 44px;
	}

	.alw-video-trigger__play::before {
		width: 60px;
		height: 60px;
	}

	/* —— Header —— */
	.site-header--overlay .site-header__main {
		padding-top: 8px;
	}

	.site-header__inner {
		height: 64px;
	}

	/* —— Carousels —— */
	.alw-carousel {
		margin-top: 32px;
	}

	.alw-carousel__controls {
		gap: 8px;
	}

	.alw-carousel__nav {
		width: 40px;
		height: 40px;
	}

	/* —— Page grids —— */
	.testimonials-page-grid__cards {
		gap: 20px;
	}

	.testimonials-page-grid__card {
		padding: 20px;
	}

	.subscriptions-form .alw-contact-form__input,
	.subscriptions-form .alw-contact-form__textarea,
	.subscriptions-form .alw-contact-form__select,
	.subscriptions-form .wpcf7-form-control-wrap input,
	.subscriptions-form .wpcf7-form-control-wrap textarea,
	.subscriptions-form .wpcf7-form-control-wrap select {
		font-size: 16px;
		min-height: 44px;
	}

	.subscriptions-form .alw-contact-form__actions .alw-btn {
		width: 100%;
		min-height: 44px;
	}

	.alw-testimonial-card {
		padding: 20px;
	}

	/* —— Checklist —— */
	.alw-checklist {
		gap: 12px;
	}

	.alw-checklist__item {
		font-size: 15px;
		line-height: 1.55;
	}

	/* —— Contact form —— */
	.contact-grid .alw-contact-form__input,
	.contact-grid .alw-contact-form__textarea,
	.contact-grid .wpcf7-form-control-wrap input,
	.contact-grid .wpcf7-form-control-wrap textarea {
		font-size: 16px;
		min-height: 44px;
	}

	.contact-grid .alw-contact-form__actions .alw-btn {
		width: 100%;
		min-height: 44px;
	}

	.contact-grid__detail-icon {
		width: 44px;
		height: 44px;
	}

	/* —— Buttons (touch targets) —— */
	.alw-btn {
		min-height: 44px;
	}

	.contact-grid__success-button,
	.subscriptions-form__success-button,
	.alw-form-success-modal__button {
		width: 100%;
		min-width: 0;
	}

	.alw-form-success-modal {
		padding: max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));
	}

	.alw-form-success-modal__dialog {
		padding: 28px 20px 24px;
	}

	.site-footer__newsletter-submit.is-subscribed {
		width: 100%;
	}
}

@media (min-width: 768px) and (max-width: 1023px) {
	.hero-home__layout {
		gap: clamp(24px, 3vw, 40px);
	}

	.hero-home__title {
		font-size: clamp(44px, 5vw, 60px);
		line-height: 1.15;
	}

	.site-footer__newsletter-inner {
		gap: 32px;
	}

	.alw-cta-banner__heading {
		font-size: clamp(36px, 4.5vw, 44px);
	}

	.contact-grid .alw-feature-grid,
	.contact-grid__cards {
		gap: 24px;
	}
}

@media (max-width: 399px) {
	.alw-heading-2,
	.alw-cta-banner__heading {
		font-size: 24px;
	}

	.cta-banner--page-top .alw-cta-banner__image {
		display: none;
	}

	.cta-banner--page-top .alw-cta-banner__content {
		max-width: none;
	}
}
