/**
 * Mobile layout rhythm
 *
 * Applies one spacing system to top-level Elementor content sections while
 * preserving slider heroes and allowing explicit per-section exceptions.
 */
@media (max-width: 767.98px) {
	:root {
		--kt-mobile-gutter: 16px;
		--kt-mobile-section-space: 48px;
		--kt-mobile-section-space-compact: 32px;
		--kt-mobile-section-space-spacious: 64px;
		--kt-mobile-card-padding: 20px;
		--kt-mobile-stack-gap: 16px;
	}

	html.ktheme-mobile-menu-open,
	body.ktheme-mobile-menu-open {
		overflow: hidden;
		overscroll-behavior: none;
	}

	body.ktheme-mobile-menu-open {
		position: fixed;
		top: var(--ktheme-mobile-menu-scroll-offset, 0px);
		left: 0;
		right: 0;
		width: 100%;
	}

	:where(.page-content, .ktheme-landing-content) > .elementor > .e-con.e-parent:not(:has(.k-slider-wrapper)) {
		--padding-top: var(--kt-mobile-section-space) !important;
		--padding-bottom: var(--kt-mobile-section-space) !important;
		--padding-left: var(--kt-mobile-gutter) !important;
		--padding-right: var(--kt-mobile-gutter) !important;
	}

	:where(.page-content, .ktheme-landing-content) > .elementor > .e-con.e-parent.kt-mobile-section-compact:not(:has(.k-slider-wrapper)) {
		--padding-top: var(--kt-mobile-section-space-compact) !important;
		--padding-bottom: var(--kt-mobile-section-space-compact) !important;
	}

	:where(.page-content, .ktheme-landing-content) > .elementor > .e-con.e-parent.kt-mobile-section-spacious:not(:has(.k-slider-wrapper)) {
		--padding-top: var(--kt-mobile-section-space-spacious) !important;
		--padding-bottom: var(--kt-mobile-section-space-spacious) !important;
	}

	:where(.page-content, .ktheme-landing-content) > .elementor > .e-con.e-parent.kt-mobile-section-flush {
		--padding-top: 0px !important;
		--padding-bottom: 0px !important;
		--padding-left: 0px !important;
		--padding-right: 0px !important;
	}

	/* Footer: keep the legal links and contact information scannable on one column. */
	footer.footer-type1 > .container,
	footer.footer-type2 > .container,
	footer.footer-type1 > .container-fluid,
	footer.footer-type2 > .container-fluid {
		padding: 48px var(--kt-mobile-gutter) 24px !important;
	}

	footer.footer-type1 .row,
	footer.footer-type2 .row {
		gap: 0;
	}

	footer.footer-type2 .footer_wrap > .row > .col-md-3 {
		order: -1;
	}

	footer .footer_site_name,
	footer .footer_site_name > a {
		margin: 0 !important;
	}

	footer .footer_site_name > a {
		justify-content: flex-start !important;
		padding-left: 0 !important;
	}

	footer .footer_site_name .custom_logo {
		margin: 0;
		max-width: 200px;
		padding-left: 0;
	}

	footer .footer_right {
		text-align: left;
	}

	footer .footer_menu {
		display: flex;
		flex-wrap: wrap;
		gap: 0 16px;
		float: none;
		margin: 0;
		padding: 0;
		text-align: left;
		list-style: none;
	}

	footer .footer_menu li {
		display: block;
		float: none;
		margin: 0;
		padding: 0;
		border: 0;
		line-height: normal;
	}

	footer .footer_menu a {
		display: inline-flex;
		align-items: center;
		min-height: 44px;
		padding: 8px 0;
	}

	footer .footer-moreinfo-box {
		box-sizing: border-box;
		margin: 16px 0 0 !important;
		padding: 16px 0 0;
		border-top: 1px solid rgba(128, 128, 128, 0.25);
		border-radius: 0;
	}

	footer .footer-moreinfo-box address,
	footer .footer-moreinfo-box p,
	footer .copyright {
		margin: 0 0 8px !important;
		text-align: left;
	}

	footer .copyright {
		margin-top: 24px !important;
		font-size: 0.8125rem;
		line-height: 1.5;
	}

	footer #footer-sns {
		display: flex;
		align-items: center;
		gap: 4px;
		float: none;
		margin: 16px 0 0;
		padding: 0;
		list-style: none;
	}

	footer #footer-sns li {
		float: none;
	}

	footer #footer-sns li a {
		display: inline-grid;
		width: 44px;
		height: 44px;
		place-items: center;
		padding: 0;
	}

	footer .footer_menu a:focus-visible,
	footer #footer-sns li a:focus-visible {
		outline: 2px solid #5e6ad2;
		outline-offset: 2px;
	}
}
