/**
 * Mohamed Ali Law Theme — main frontend stylesheet
 *
 * Modern luxury Egyptian legal firm. Editorial, calm, authoritative.
 * Arabic-first. CSS logical properties. No purple / glass / glow.
 *
 * @package Mohamed_Ali_Law
 */

/* ==========================================================================
   1. Minimal reset / normalize
   ========================================================================== */

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
	scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}
}

body,
h1, h2, h3, h4, h5, h6,
p, figure, blockquote, dl, dd,
ul, ol, menu {
	margin: 0;
}

ul, ol {
	padding: 0;
	list-style: none;
}

img, picture, video, canvas, svg {
	display: block;
	max-width: 100%;
	height: auto;
}

img {
	border-style: none;
}

svg {
	flex-shrink: 0;
}

iframe {
	max-width: 100%;
	border: 0;
}

input, button, textarea, select {
	font: inherit;
	color: inherit;
	letter-spacing: inherit;
}

button {
	cursor: pointer;
	background: none;
	border: 0;
	padding: 0;
}

a {
	color: inherit;
	text-decoration-skip-ink: auto;
}

table {
	border-collapse: collapse;
	border-spacing: 0;
}

:focus {
	outline: none;
}

:focus-visible {
	outline: 2px solid var(--mal-color-accent);
	outline-offset: 2px;
}

/* ==========================================================================
   2. Design tokens
   ========================================================================== */

:root {
	/* Colors */
	--mal-color-primary: #0B1F33;
	--mal-color-secondary: #142D46;
	--mal-color-ivory: #F7F3EB;
	--mal-color-white: #FFFFFF;
	--mal-color-accent: #B18A4A;
	--mal-color-text: #17202A;
	--mal-color-text-muted: #5C6670;
	--mal-color-border: #DDD7CC;
	--mal-color-success: #1F7A4D;
	--mal-color-footer-bg: #0B1F33;
	--mal-color-overlay: rgba(11, 31, 51, 0.55);
	--mal-color-surface: var(--mal-color-white);
	--mal-color-surface-alt: var(--mal-color-ivory);
	--mal-admin-bar-height: 0px;

	/* Typography — Arabic-first system stacks */
	--mal-font-sans: "IBM Plex Sans Arabic", "Noto Sans Arabic", "Segoe UI", Tahoma, Arial, sans-serif;
	--mal-font-en: "Source Sans 3", "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
	--mal-font-body: var(--mal-font-sans);
	--mal-fs-xs: clamp(0.75rem, 0.72rem + 0.15vw, 0.8125rem);
	--mal-fs-sm: clamp(0.875rem, 0.84rem + 0.2vw, 0.9375rem);
	--mal-fs-base: clamp(1rem, 0.96rem + 0.2vw, 1.0625rem);
	--mal-fs-md: clamp(1.0625rem, 1rem + 0.3vw, 1.125rem);
	--mal-fs-lg: clamp(1.125rem, 1.05rem + 0.4vw, 1.25rem);
	--mal-fs-xl: clamp(1.35rem, 1.15rem + 0.9vw, 1.75rem);
	--mal-fs-2xl: clamp(1.75rem, 1.4rem + 1.4vw, 2.5rem);
	--mal-fs-3xl: clamp(2.1rem, 1.6rem + 2vw, 3.25rem);
	--mal-lh-tight: 1.25;
	--mal-lh-snug: 1.35;
	--mal-lh-base: 1.7;
	--mal-lh-relaxed: 1.85;
	--mal-fw-regular: 400;
	--mal-fw-medium: 500;
	--mal-fw-semibold: 600;
	--mal-fw-bold: 700;

	/* Spacing */
	--mal-space-3xs: 0.25rem;
	--mal-space-2xs: 0.5rem;
	--mal-space-xs: 0.75rem;
	--mal-space-sm: 1rem;
	--mal-space-md: 1.5rem;
	--mal-space-lg: 2.5rem;
	--mal-space-xl: 4rem;
	--mal-space-2xl: 6rem;
	--mal-space-section: clamp(3rem, 2.2rem + 3vw, 6rem);
	--mal-gutter: clamp(1rem, 0.7rem + 1.5vw, 1.75rem);

	/* Layout */
	--mal-container: 1280px;
	--mal-content: 760px;
	--mal-narrow: 640px;
	--mal-header-height: 4.5rem;
	--mal-utility-height: 2.5rem;
	--mal-mobile-bar-height: 3.75rem;
	--mal-z-header: 1000;
	--mal-z-overlay: 1100;
	--mal-z-offcanvas: 1200;
	--mal-z-search: 1300;
	--mal-z-mobile-bar: 900;
	--mal-z-float: 950;
	--mal-z-skip: 10000;

	/* Radii — editorial, 2–4px max */
	--mal-radius-sm: 2px;
	--mal-radius: 3px;
	--mal-radius-md: 4px;

	/* Shadows — subtle only */
	--mal-shadow-sm: 0 1px 2px rgba(11, 31, 51, 0.06);
	--mal-shadow: 0 2px 8px rgba(11, 31, 51, 0.08);
	--mal-shadow-md: 0 4px 16px rgba(11, 31, 51, 0.1);

	/* Transitions */
	--mal-ease: cubic-bezier(0.25, 0.1, 0.25, 1);
	--mal-duration-fast: 150ms;
	--mal-duration: 220ms;
	--mal-duration-slow: 320ms;

	/* Safe areas */
	--mal-safe-bottom: env(safe-area-inset-bottom, 0px);
	--mal-safe-top: env(safe-area-inset-top, 0px);
	--mal-safe-inline: env(safe-area-inset-left, 0px) env(safe-area-inset-right, 0px);
}

html[lang^="en"] {
	--mal-font-body: var(--mal-font-en);
}

/* ==========================================================================
   3. Base
   ========================================================================== */

body {
	font-family: var(--mal-font-body);
	font-size: var(--mal-fs-base);
	font-weight: var(--mal-fw-regular);
	line-height: var(--mal-lh-base);
	color: var(--mal-color-text);
	background-color: var(--mal-color-ivory);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-align: start;
}

body.mal-menu-open,
body.mal-search-open {
	overflow: hidden;
	touch-action: none;
}

body.mal-has-mobile-bar {
	padding-bottom: calc(var(--mal-mobile-bar-height) + var(--mal-safe-bottom));
}

.mal-site,
#page {
	min-height: 100vh;
	display: flex;
	flex-direction: column;
}

.mal-site-content,
#content,
.site-content {
	flex: 1 0 auto;
	width: 100%;
}

/* ==========================================================================
   4. Typography
   ========================================================================== */

h1, h2, h3, h4, h5, h6,
.mal-h1, .mal-h2, .mal-h3, .mal-h4 {
	font-family: var(--mal-font-body);
	font-weight: var(--mal-fw-bold);
	line-height: var(--mal-lh-tight);
	color: var(--mal-color-primary);
	text-wrap: balance;
}

h1, .mal-h1 { font-size: var(--mal-fs-3xl); }
h2, .mal-h2 { font-size: var(--mal-fs-2xl); }
h3, .mal-h3 { font-size: var(--mal-fs-xl); font-weight: var(--mal-fw-semibold); line-height: var(--mal-lh-snug); }
h4, .mal-h4 { font-size: var(--mal-fs-lg); font-weight: var(--mal-fw-semibold); line-height: var(--mal-lh-snug); }
h5 { font-size: var(--mal-fs-md); font-weight: var(--mal-fw-semibold); }
h6 { font-size: var(--mal-fs-base); font-weight: var(--mal-fw-semibold); }

p {
	margin-block: 0 var(--mal-space-sm);
}

p:last-child {
	margin-block-end: 0;
}

.mal-lead {
	font-size: var(--mal-fs-lg);
	line-height: var(--mal-lh-relaxed);
	color: var(--mal-color-text-muted);
}

.mal-eyebrow {
	display: inline-block;
	font-size: var(--mal-fs-xs);
	font-weight: var(--mal-fw-semibold);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--mal-color-accent);
	margin-block-end: var(--mal-space-2xs);
}

.mal-text-muted {
	color: var(--mal-color-text-muted);
}

strong, b {
	font-weight: var(--mal-fw-semibold);
}

small, .mal-small {
	font-size: var(--mal-fs-sm);
}

blockquote {
	margin-block: var(--mal-space-md);
	margin-inline: 0;
	padding-inline-start: var(--mal-space-md);
	border-inline-start: 3px solid var(--mal-color-accent);
	color: var(--mal-color-text-muted);
	font-size: var(--mal-fs-lg);
	line-height: var(--mal-lh-relaxed);
}

hr {
	border: 0;
	border-block-start: 1px solid var(--mal-color-border);
	margin-block: var(--mal-space-lg);
}

/* ==========================================================================
   5. Links & buttons
   ========================================================================== */

a {
	color: var(--mal-color-primary);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.18em;
	transition: color var(--mal-duration-fast) var(--mal-ease);
}

a:hover {
	color: var(--mal-color-accent);
}

a:where(:not(.mal-btn):not(.mal-nav__link):not(.mal-logo):not(.wp-block-button__link)) {
	text-decoration-color: color-mix(in srgb, var(--mal-color-accent) 40%, transparent);
}

a:where(:not(.mal-btn):not(.mal-nav__link):not(.mal-logo):not(.wp-block-button__link)):hover {
	text-decoration-color: var(--mal-color-accent);
}

.mal-btn,
.wp-block-button__link,
.wp-element-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--mal-space-2xs);
	min-height: 2.75rem;
	padding-block: 0.7rem;
	padding-inline: 1.35rem;
	font-size: var(--mal-fs-sm);
	font-weight: var(--mal-fw-semibold);
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	border: 1px solid transparent;
	border-radius: var(--mal-radius-sm);
	transition:
		background-color var(--mal-duration-fast) var(--mal-ease),
		color var(--mal-duration-fast) var(--mal-ease),
		border-color var(--mal-duration-fast) var(--mal-ease),
		box-shadow var(--mal-duration-fast) var(--mal-ease);
	cursor: pointer;
	white-space: nowrap;
}

.mal-btn:hover,
.wp-block-button__link:hover,
.wp-element-button:hover {
	text-decoration: none;
}

.mal-btn:disabled,
.mal-btn[aria-disabled="true"] {
	opacity: 0.55;
	cursor: not-allowed;
	pointer-events: none;
}

.mal-btn--primary,
.wp-block-button__link,
.wp-element-button {
	background-color: var(--mal-color-primary);
	color: var(--mal-color-white);
	border-color: var(--mal-color-primary);
}

.mal-btn--primary:hover,
.wp-block-button__link:hover,
.wp-element-button:hover {
	background-color: var(--mal-color-secondary);
	border-color: var(--mal-color-secondary);
	color: var(--mal-color-white);
}

.mal-btn--secondary {
	background-color: transparent;
	color: var(--mal-color-primary);
	border-color: var(--mal-color-primary);
}

.mal-btn--secondary:hover {
	background-color: var(--mal-color-primary);
	color: var(--mal-color-white);
}

.mal-btn--ghost {
	background-color: transparent;
	color: var(--mal-color-primary);
	border-color: transparent;
	padding-inline: 0.75rem;
}

.mal-btn--ghost:hover {
	color: var(--mal-color-accent);
	background-color: transparent;
}

.mal-btn--whatsapp {
	background-color: var(--mal-color-success);
	color: var(--mal-color-white);
	border-color: var(--mal-color-success);
}

.mal-btn--whatsapp:hover {
	background-color: color-mix(in srgb, var(--mal-color-success) 88%, #000);
	border-color: color-mix(in srgb, var(--mal-color-success) 88%, #000);
	color: var(--mal-color-white);
}

.mal-btn--sm {
	min-height: 2.25rem;
	padding-block: 0.45rem;
	padding-inline: 0.9rem;
	font-size: var(--mal-fs-xs);
}

.mal-btn--lg {
	min-height: 3.15rem;
	padding-block: 0.9rem;
	padding-inline: 1.75rem;
	font-size: var(--mal-fs-base);
}

.mal-btn--block {
	width: 100%;
}

.mal-btn-group {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--mal-space-xs);
}

/* ==========================================================================
   6. Layout primitives
   ========================================================================== */

.mal-container {
	width: min(100% - (var(--mal-gutter) * 2), var(--mal-container));
	margin-inline: auto;
}

.mal-container--narrow {
	width: min(100% - (var(--mal-gutter) * 2), var(--mal-content));
}

.mal-container--tight {
	width: min(100% - (var(--mal-gutter) * 2), var(--mal-narrow));
}

.mal-section {
	padding-block: var(--mal-space-section);
}

.mal-section--flush {
	padding-block: 0;
}

.mal-section--ivory {
	background-color: var(--mal-color-ivory);
}

.mal-section--white {
	background-color: var(--mal-color-white);
}

.mal-section--navy {
	background-color: var(--mal-color-primary);
	color: color-mix(in srgb, var(--mal-color-white) 88%, transparent);
}

.mal-section--navy h1,
.mal-section--navy h2,
.mal-section--navy h3,
.mal-section--navy h4,
.mal-section--navy .mal-section-heading__title {
	color: var(--mal-color-white);
}

.mal-section--navy .mal-section-heading__text,
.mal-section--navy .mal-lead,
.mal-section--navy .mal-text-muted {
	color: color-mix(in srgb, var(--mal-color-white) 72%, transparent);
}

.mal-grid {
	display: grid;
	gap: var(--mal-space-md);
}

.mal-grid--2 {
	grid-template-columns: 1fr;
}

.mal-grid--3 {
	grid-template-columns: 1fr;
}

.mal-grid--4 {
	grid-template-columns: 1fr;
}

.mal-stack {
	display: flex;
	flex-direction: column;
	gap: var(--mal-space-sm);
}

.mal-cluster {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--mal-space-xs);
}

.mal-split {
	display: grid;
	gap: var(--mal-space-lg);
	align-items: center;
}

/* ==========================================================================
   7. Skip link
   ========================================================================== */

.mal-skip-link,
.skip-link {
	position: absolute;
	inset-block-start: var(--mal-space-sm);
	inset-inline-start: var(--mal-space-sm);
	z-index: var(--mal-z-skip);
	padding: var(--mal-space-2xs) var(--mal-space-sm);
	background: var(--mal-color-primary);
	color: var(--mal-color-white);
	font-weight: var(--mal-fw-semibold);
	text-decoration: none;
	border-radius: var(--mal-radius-sm);
	transform: translateY(-160%);
	transition: transform var(--mal-duration-fast) var(--mal-ease);
}

.mal-skip-link:focus,
.skip-link:focus {
	transform: translateY(0);
	color: var(--mal-color-white);
	outline-offset: 3px;
}

/* ==========================================================================
   8. Header — utility, nav, sticky, dropdown, search, off-canvas
   ========================================================================== */

.mal-site-header,
.mal-header {
	position: relative;
	z-index: var(--mal-z-header);
	background-color: var(--mal-color-white);
	border-block-end: 1px solid var(--mal-color-border);
	transition: box-shadow var(--mal-duration) var(--mal-ease);
}

/* Sticky from the start when enabled — avoids layout shift from fixed toggling. */
.mal-site-header--sticky,
.mal-header--sticky {
	position: sticky;
	inset-block-start: 0;
}

body.admin-bar .mal-site-header--sticky,
body.admin-bar .mal-header--sticky {
	inset-block-start: var(--mal-admin-bar-height);
}

.mal-site-header.is-sticky,
.mal-header.is-sticky {
	box-shadow: var(--mal-shadow-sm);
}

/* Utility bar */
.mal-utility-bar {
	background-color: var(--mal-color-primary);
	color: color-mix(in srgb, var(--mal-color-white) 82%, transparent);
	font-size: var(--mal-fs-xs);
	min-height: var(--mal-utility-height);
}

.mal-utility-bar__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--mal-space-2xs) var(--mal-space-md);
	padding-block: 0.4rem;
	min-height: var(--mal-utility-height);
}

.mal-utility-bar a {
	color: inherit;
	text-decoration: none;
}

.mal-utility-bar a:hover {
	color: var(--mal-color-accent);
}

.mal-utility-bar__contacts {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--mal-space-sm);
}

.mal-utility-bar__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--mal-space-sm);
}

/* Main header row */
.mal-header__bar {
	background-color: var(--mal-color-white);
}

.mal-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--mal-space-md);
	min-height: var(--mal-header-height);
	padding-block: var(--mal-space-2xs);
}

.mal-logo {
	display: inline-flex;
	align-items: center;
	gap: var(--mal-space-2xs);
	text-decoration: none;
	color: var(--mal-color-primary);
	flex-shrink: 0;
	max-width: min(280px, 55vw);
}

.mal-logo:hover {
	color: var(--mal-color-primary);
	opacity: 0.92;
}

.mal-logo img {
	width: auto;
	height: clamp(2.25rem, 2rem + 1vw, 3.25rem);
	object-fit: contain;
}

.mal-logo__text {
	font-size: var(--mal-fs-lg);
	font-weight: var(--mal-fw-bold);
	line-height: var(--mal-lh-tight);
	letter-spacing: -0.01em;
}

.mal-header__actions {
	display: flex;
	align-items: center;
	gap: var(--mal-space-2xs);
	margin-inline-start: auto;
}

.mal-header__cta {
	display: none;
}

/* Icon buttons (search / menu) */
.mal-icon-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	color: var(--mal-color-primary);
	border-radius: var(--mal-radius-sm);
	transition: background-color var(--mal-duration-fast) var(--mal-ease), color var(--mal-duration-fast) var(--mal-ease);
}

.mal-icon-btn:hover {
	background-color: var(--mal-color-ivory);
	color: var(--mal-color-accent);
}

.mal-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	line-height: 0;
}

.mal-icon svg {
	width: 1.15em;
	height: 1.15em;
}

/* Primary navigation */
.mal-nav,
.mal-primary-nav {
	display: none;
}

.mal-nav__list {
	display: flex;
	align-items: center;
	gap: 0.15rem;
}

.mal-nav__item {
	position: relative;
}

.mal-nav__link {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	padding-block: 0.65rem;
	padding-inline: 0.85rem;
	font-size: var(--mal-fs-sm);
	font-weight: var(--mal-fw-medium);
	color: var(--mal-color-primary);
	text-decoration: none;
	border-radius: var(--mal-radius-sm);
	transition: color var(--mal-duration-fast) var(--mal-ease), background-color var(--mal-duration-fast) var(--mal-ease);
}

.mal-nav__link:hover,
.mal-nav__item:hover > .mal-nav__link,
.mal-nav__item.is-open > .mal-nav__link,
.mal-nav__item.current-menu-item > .mal-nav__link,
.mal-nav__item.current-menu-ancestor > .mal-nav__link {
	color: var(--mal-color-accent);
	background-color: transparent;
}

.mal-nav__chevron {
	opacity: 0.65;
	transition: transform var(--mal-duration-fast) var(--mal-ease);
}

.mal-nav__item.is-open > .mal-nav__link .mal-nav__chevron,
.mal-nav__item:focus-within > .mal-nav__link .mal-nav__chevron {
	transform: rotate(180deg);
}

/* Dropdown */
.mal-nav__submenu,
.mal-nav .sub-menu {
	position: absolute;
	inset-block-start: 100%;
	inset-inline-start: 0;
	min-width: 14rem;
	padding-block: 0.4rem;
	background: var(--mal-color-white);
	border: 1px solid var(--mal-color-border);
	border-radius: var(--mal-radius);
	box-shadow: var(--mal-shadow);
	opacity: 0;
	visibility: hidden;
	transform: translateY(0.35rem);
	transition:
		opacity var(--mal-duration-fast) var(--mal-ease),
		visibility var(--mal-duration-fast) var(--mal-ease),
		transform var(--mal-duration-fast) var(--mal-ease);
	z-index: 20;
}

.mal-nav__item:hover > .mal-nav__submenu,
.mal-nav__item:hover > .sub-menu,
.mal-nav__item:focus-within > .mal-nav__submenu,
.mal-nav__item:focus-within > .sub-menu,
.mal-nav__item.is-open > .mal-nav__submenu,
.mal-nav__item.is-open > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.mal-nav__submenu .mal-nav__link,
.mal-nav .sub-menu a {
	display: block;
	width: 100%;
	padding-block: 0.55rem;
	padding-inline: 0.9rem;
	font-weight: var(--mal-fw-regular);
	border-radius: 0;
}

.mal-nav__submenu .mal-nav__link:hover,
.mal-nav .sub-menu a:hover {
	background-color: var(--mal-color-ivory);
}

/* Language switcher */
.mal-lang-switcher {
	display: inline-flex;
	align-items: center;
	gap: 0.15rem;
	font-size: var(--mal-fs-xs);
	font-weight: var(--mal-fw-medium);
}

.mal-lang-switcher a,
.mal-lang-switcher span {
	display: inline-flex;
	align-items: center;
	padding-block: 0.2rem;
	padding-inline: 0.45rem;
	text-decoration: none;
	color: inherit;
	border-radius: var(--mal-radius-sm);
}

.mal-lang-switcher a:hover {
	color: var(--mal-color-accent);
}

.mal-lang-switcher .current-lang,
.mal-lang-switcher [aria-current="true"] {
	color: var(--mal-color-accent);
	font-weight: var(--mal-fw-semibold);
}

.mal-utility-bar .mal-lang-switcher a:hover,
.mal-utility-bar .mal-lang-switcher .current-lang {
	color: var(--mal-color-accent);
}

/* Search panel */
.mal-search-panel {
	position: fixed;
	inset-inline: 0;
	inset-block-start: 0;
	z-index: calc(var(--mal-z-header) + 5);
	background: var(--mal-color-white);
	border-block-end: 1px solid var(--mal-color-border);
	box-shadow: var(--mal-shadow);
	padding-block: var(--mal-space-md);
	padding-block-start: calc(var(--mal-space-md) + var(--mal-admin-bar-height));
	transform: translateY(-0.75rem);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition:
		opacity var(--mal-duration) var(--mal-ease),
		visibility var(--mal-duration) var(--mal-ease),
		transform var(--mal-duration) var(--mal-ease);
}

.mal-search-panel.is-open {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: translateY(0);
}

.mal-search-panel__backdrop {
	position: fixed;
	inset: 0;
	z-index: -1;
	background: var(--mal-color-overlay);
}

.mal-search-panel__form {
	display: flex;
	gap: var(--mal-space-2xs);
	max-width: 40rem;
	margin-inline: auto;
}

.mal-search-panel__input {
	flex: 1 1 auto;
	min-height: 2.75rem;
	padding-block: 0.6rem;
	padding-inline: 0.9rem;
	border: 1px solid var(--mal-color-border);
	border-radius: var(--mal-radius-sm);
	background: var(--mal-color-ivory);
}

.mal-search-panel__input:focus-visible {
	border-color: var(--mal-color-accent);
	background: var(--mal-color-white);
}

/* Overlay */
.mal-overlay {
	position: fixed;
	inset: 0;
	z-index: var(--mal-z-overlay);
	background: var(--mal-color-overlay);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity var(--mal-duration) var(--mal-ease), visibility var(--mal-duration) var(--mal-ease);
}

.mal-overlay.is-visible {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

/* Off-canvas mobile menu */
.mal-offcanvas[hidden],
.mal-search-panel[hidden] {
	display: none !important;
}

.mal-offcanvas {
	position: fixed;
	inset: 0;
	z-index: var(--mal-z-offcanvas);
	display: flex;
	pointer-events: none;
}

.mal-offcanvas.is-open {
	display: flex;
	pointer-events: auto;
}

.mal-offcanvas__backdrop {
	position: absolute;
	inset: 0;
	background: var(--mal-color-overlay);
	opacity: 0;
	transition: opacity var(--mal-duration) var(--mal-ease);
	border: 0;
	cursor: pointer;
}

.mal-offcanvas.is-open .mal-offcanvas__backdrop {
	opacity: 1;
	pointer-events: auto;
}

.mal-offcanvas__panel {
	position: absolute;
	inset-block: 0;
	inset-inline-end: 0;
	inset-inline-start: auto;
	width: min(22rem, 92vw);
	max-width: 100%;
	background: var(--mal-color-white);
	box-shadow: var(--mal-shadow-md);
	transform: translateX(100%);
	transition: transform var(--mal-duration-slow) var(--mal-ease);
	display: flex;
	flex-direction: column;
	overflow: auto;
	-webkit-overflow-scrolling: touch;
	padding-block-end: calc(var(--mal-space-md) + var(--mal-safe-bottom));
	pointer-events: auto;
}

[dir="rtl"] .mal-offcanvas__panel {
	inset-inline-start: 0;
	inset-inline-end: auto;
	transform: translateX(-100%);
}

.mal-offcanvas.is-open .mal-offcanvas__panel,
[dir="rtl"] .mal-offcanvas.is-open .mal-offcanvas__panel {
	transform: translateX(0);
}

.mal-offcanvas__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--mal-space-sm);
	padding: var(--mal-space-sm) var(--mal-space-md);
	border-block-end: 1px solid var(--mal-color-border);
	position: sticky;
	inset-block-start: 0;
	background: var(--mal-color-white);
	z-index: 1;
}

.mal-offcanvas__title {
	font-size: var(--mal-fs-sm);
	font-weight: var(--mal-fw-semibold);
	color: var(--mal-color-primary);
	margin: 0;
}

.mal-offcanvas__body {
	padding: var(--mal-space-md);
	flex: 1 1 auto;
}

.mal-offcanvas__nav .mal-nav__list,
.mal-offcanvas .menu {
	display: flex;
	flex-direction: column;
	gap: 0;
}

.mal-offcanvas__nav .mal-nav__link,
.mal-offcanvas .menu a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	padding-block: 0.85rem;
	padding-inline: 0.25rem;
	border-block-end: 1px solid var(--mal-color-border);
	text-decoration: none;
	font-weight: var(--mal-fw-medium);
	color: var(--mal-color-primary);
}

.mal-offcanvas__nav .sub-menu,
.mal-offcanvas__nav .mal-nav__submenu {
	position: static;
	opacity: 1;
	visibility: visible;
	transform: none;
	box-shadow: none;
	border: 0;
	padding-inline-start: var(--mal-space-sm);
	min-width: 0;
	background: transparent;
}

.mal-offcanvas__footer {
	padding: var(--mal-space-md);
	border-block-start: 1px solid var(--mal-color-border);
	display: flex;
	flex-direction: column;
	gap: var(--mal-space-sm);
}

/* ==========================================================================
   9. Mobile sticky action bar + floating WhatsApp
   ========================================================================== */

.mal-mobile-bar,
.mal-mobile-sticky-bar {
	position: fixed;
	inset-inline: 0;
	inset-block-end: 0;
	z-index: var(--mal-z-mobile-bar);
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	min-height: calc(var(--mal-mobile-bar-height) + var(--mal-safe-bottom));
	padding-block-end: var(--mal-safe-bottom);
	background: var(--mal-color-primary);
	border-block-start: 1px solid color-mix(in srgb, var(--mal-color-white) 12%, transparent);
	box-shadow: 0 -2px 10px rgba(11, 31, 51, 0.12);
	transform: translateY(0);
	transition: transform var(--mal-duration) var(--mal-ease);
}

.mal-mobile-bar.is-hidden,
.mal-mobile-sticky-bar.is-hidden {
	transform: translateY(110%);
}

.mal-mobile-bar__action {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.2rem;
	padding-block: 0.55rem;
	padding-inline: 0.35rem;
	color: color-mix(in srgb, var(--mal-color-white) 90%, transparent);
	text-decoration: none;
	font-size: var(--mal-fs-xs);
	font-weight: var(--mal-fw-medium);
	min-height: var(--mal-mobile-bar-height);
	border-inline-end: 1px solid color-mix(in srgb, var(--mal-color-white) 10%, transparent);
}

.mal-mobile-bar__action:last-child {
	border-inline-end: 0;
}

.mal-mobile-bar__action:hover,
.mal-mobile-bar__action:focus-visible {
	color: var(--mal-color-white);
	background: color-mix(in srgb, var(--mal-color-white) 6%, transparent);
}

.mal-mobile-bar__action--whatsapp {
	color: #c8efd8;
}

.mal-mobile-bar__action .mal-icon {
	font-size: 1.15rem;
}

.mal-mobile-sticky-bar__item {
	display: flex;
	flex: 1;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.2rem;
	min-height: var(--mal-mobile-bar-height);
	padding: 0.35rem 0.5rem;
	font-size: 0.75rem;
	font-weight: 600;
	color: var(--mal-color-white);
	text-decoration: none;
	border-inline-end: 1px solid rgba(255, 255, 255, 0.12);
}

.mal-mobile-sticky-bar__item:last-child {
	border-inline-end: 0;
}

.mal-mobile-sticky-bar__item--whatsapp {
	background: rgba(31, 122, 77, 0.35);
}

.mal-mobile-sticky-bar__item--cta {
	background: rgba(177, 138, 74, 0.28);
}

@media (min-width: 768px) {
	.mal-mobile-bar,
	.mal-mobile-sticky-bar {
		display: none;
	}

	body.mal-has-mobile-bar {
		padding-bottom: 0;
	}
}

/* Floating WhatsApp — unobtrusive */
.mal-whatsapp-float {
	position: fixed;
	inset-block-end: calc(1.25rem + var(--mal-safe-bottom));
	inset-inline-end: 1.25rem;
	z-index: var(--mal-z-float);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 3.25rem;
	height: 3.25rem;
	border-radius: var(--mal-radius-md);
	background: var(--mal-color-success);
	color: var(--mal-color-white);
	text-decoration: none;
	box-shadow: var(--mal-shadow);
	transition: background-color var(--mal-duration-fast) var(--mal-ease), transform var(--mal-duration-fast) var(--mal-ease);
}

.mal-whatsapp-float:hover {
	background: color-mix(in srgb, var(--mal-color-success) 88%, #000);
	color: var(--mal-color-white);
	transform: translateY(-1px);
}

body.mal-has-mobile-bar .mal-whatsapp-float {
	inset-block-end: calc(var(--mal-mobile-bar-height) + var(--mal-safe-bottom) + 0.75rem);
}

@media (min-width: 768px) {
	body.mal-has-mobile-bar .mal-whatsapp-float {
		inset-block-end: calc(1.25rem + var(--mal-safe-bottom));
	}
}

/* ==========================================================================
   10. Homepage sections
   ========================================================================== */

/* Hero — full-bleed editorial (navy field + restrained gold detail) */
.mal-hero {
	position: relative;
	isolation: isolate;
	min-height: clamp(26rem, 62vh, 36rem);
	display: flex;
	align-items: center;
	color: var(--mal-color-white);
	background-color: var(--mal-color-primary);
	background-image:
		radial-gradient(ellipse 80% 60% at 100% 0%, rgba(177, 138, 74, 0.12), transparent 55%),
		linear-gradient(160deg, var(--mal-color-primary) 0%, var(--mal-color-secondary) 100%);
	overflow: hidden;
}

.mal-hero__media {
	position: absolute;
	inset: 0;
	z-index: -2;
	aspect-ratio: 16 / 9;
	min-height: 100%;
}

.mal-hero__placeholder {
	position: absolute;
	inset: 0;
	background:
		repeating-linear-gradient(
			-12deg,
			transparent,
			transparent 48px,
			rgba(255, 255, 255, 0.015) 48px,
			rgba(255, 255, 255, 0.015) 49px
		);
}

.mal-hero__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.mal-hero__overlay {
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		linear-gradient(
			105deg,
			rgba(11, 31, 51, 0.94) 0%,
			rgba(11, 31, 51, 0.72) 48%,
			rgba(11, 31, 51, 0.45) 100%
		);
}

.mal-hero__content {
	position: relative;
	width: min(100% - (var(--mal-gutter) * 2), var(--mal-container));
	margin-inline: auto;
	padding-block: clamp(3.25rem, 7vw, 5.5rem);
	max-width: 42rem;
}

.mal-hero__brand {
	display: block;
	font-size: clamp(1.85rem, 1.25rem + 2.4vw, 3rem);
	font-weight: var(--mal-fw-bold);
	line-height: var(--mal-lh-tight);
	color: var(--mal-color-white);
	margin-block-end: var(--mal-space-sm);
	letter-spacing: -0.015em;
}

.mal-hero__brand::after {
	content: "";
	display: block;
	width: 2.5rem;
	height: 2px;
	margin-block-start: var(--mal-space-sm);
	background: var(--mal-color-accent);
}

.mal-hero__title {
	font-size: clamp(1.2rem, 1.05rem + 0.85vw, 1.55rem);
	font-weight: var(--mal-fw-semibold);
	line-height: var(--mal-lh-snug);
	color: color-mix(in srgb, var(--mal-color-white) 94%, transparent);
	margin-block-end: var(--mal-space-sm);
	max-width: 28ch;
}

.mal-hero__text {
	font-size: var(--mal-fs-md);
	line-height: var(--mal-lh-relaxed);
	color: color-mix(in srgb, var(--mal-color-white) 78%, transparent);
	margin-block-end: var(--mal-space-md);
	max-width: 36rem;
}

.mal-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--mal-space-xs);
}

.mal-hero .mal-btn--secondary {
	border-color: color-mix(in srgb, var(--mal-color-white) 70%, transparent);
	color: var(--mal-color-white);
}

.mal-hero .mal-btn--secondary:hover {
	background: var(--mal-color-white);
	color: var(--mal-color-primary);
	border-color: var(--mal-color-white);
}

.mal-hero .mal-btn--primary {
	background: var(--mal-color-accent);
	border-color: var(--mal-color-accent);
	color: var(--mal-color-primary);
}

.mal-hero .mal-btn--primary:hover {
	background: color-mix(in srgb, var(--mal-color-accent) 88%, #fff);
	border-color: color-mix(in srgb, var(--mal-color-accent) 88%, #fff);
	color: var(--mal-color-primary);
}

/* Trust strip */
.mal-trust-strip {
	background: var(--mal-color-white);
	border-block: 1px solid var(--mal-color-border);
	padding-block: var(--mal-space-md);
}

.mal-trust-strip__list {
	display: grid;
	gap: var(--mal-space-md);
	grid-template-columns: 1fr;
}

.mal-trust-strip__item {
	display: flex;
	align-items: flex-start;
	gap: var(--mal-space-xs);
	text-align: start;
}

.mal-trust-strip__icon {
	color: var(--mal-color-accent);
	margin-block-start: 0.15rem;
}

.mal-trust-strip__title {
	font-size: var(--mal-fs-sm);
	font-weight: var(--mal-fw-semibold);
	color: var(--mal-color-primary);
	margin-block-end: 0.15rem;
}

.mal-trust-strip__text {
	font-size: var(--mal-fs-xs);
	color: var(--mal-color-text-muted);
	margin: 0;
	line-height: var(--mal-lh-base);
}

/* Services */
.mal-services__grid {
	display: grid;
	gap: var(--mal-space-md);
	grid-template-columns: 1fr;
}

/* Process */
.mal-process__list {
	display: grid;
	gap: var(--mal-space-md);
	counter-reset: mal-step;
}

.mal-process__item {
	position: relative;
	display: grid;
	gap: var(--mal-space-xs);
	padding: var(--mal-space-md);
	background: var(--mal-color-white);
	border: 1px solid var(--mal-color-border);
	border-radius: var(--mal-radius);
	counter-increment: mal-step;
}

.mal-process__number,
.mal-process__item::before {
	font-size: var(--mal-fs-sm);
	font-weight: var(--mal-fw-bold);
	color: var(--mal-color-accent);
	letter-spacing: 0.04em;
}

.mal-process__item::before {
	content: counter(mal-step, decimal-leading-zero);
}

.mal-process__title {
	font-size: var(--mal-fs-lg);
	margin: 0;
}

.mal-process__text {
	margin: 0;
	color: var(--mal-color-text-muted);
	font-size: var(--mal-fs-sm);
}

.mal-process__connector {
	display: none;
}

/* Guides / nationality */
.mal-guides__grid,
.mal-nationality__grid {
	display: grid;
	gap: var(--mal-space-md);
	grid-template-columns: 1fr;
}

.mal-nationality__chip,
.mal-nationality-link {
	display: inline-flex;
	align-items: center;
	gap: var(--mal-space-2xs);
	padding-block: 0.65rem;
	padding-inline: 0.9rem;
	background: var(--mal-color-white);
	border: 1px solid var(--mal-color-border);
	border-radius: var(--mal-radius-sm);
	text-decoration: none;
	color: var(--mal-color-primary);
	font-size: var(--mal-fs-sm);
	font-weight: var(--mal-fw-medium);
	transition: border-color var(--mal-duration-fast) var(--mal-ease), color var(--mal-duration-fast) var(--mal-ease);
}

.mal-nationality__chip:hover,
.mal-nationality-link:hover {
	border-color: var(--mal-color-accent);
	color: var(--mal-color-accent);
}

.mal-nationality__list {
	display: flex;
	flex-wrap: wrap;
	gap: var(--mal-space-2xs);
}

/* Why us */
.mal-why-us__grid {
	display: grid;
	gap: var(--mal-space-lg);
}

.mal-why-us__item {
	padding-block: var(--mal-space-sm);
	border-block-start: 1px solid var(--mal-color-border);
}

.mal-why-us__item:first-child {
	border-block-start: 0;
	padding-block-start: 0;
}

.mal-why-us__title {
	font-size: var(--mal-fs-lg);
	margin-block-end: var(--mal-space-2xs);
}

.mal-why-us__text {
	margin: 0;
	color: var(--mal-color-text-muted);
}

/* Attorney spotlight */
.mal-attorney-spotlight {
	display: grid;
	gap: var(--mal-space-lg);
	align-items: center;
}

.mal-attorney-spotlight__media img {
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	border-radius: var(--mal-radius);
}

.mal-attorney-spotlight__role {
	font-size: var(--mal-fs-sm);
	color: var(--mal-color-accent);
	font-weight: var(--mal-fw-semibold);
	margin-block-end: var(--mal-space-2xs);
}

.mal-attorney-spotlight__bio {
	color: var(--mal-color-text-muted);
	margin-block: var(--mal-space-sm);
}

/* Testimonials */
.mal-testimonials__grid {
	display: grid;
	gap: var(--mal-space-md);
}

/* FAQ */
.mal-faq {
	display: flex;
	flex-direction: column;
	border-block-start: 1px solid var(--mal-color-border);
}

.mal-faq__item {
	border-block-end: 1px solid var(--mal-color-border);
}

.mal-faq__question,
.mal-faq__button {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--mal-space-sm);
	width: 100%;
	padding-block: 1.15rem;
	padding-inline: 0;
	text-align: start;
	font-size: var(--mal-fs-md);
	font-weight: var(--mal-fw-semibold);
	color: var(--mal-color-primary);
	line-height: var(--mal-lh-snug);
}

.mal-faq__icon {
	flex-shrink: 0;
	width: 1.25rem;
	height: 1.25rem;
	position: relative;
}

.mal-faq__icon::before,
.mal-faq__icon::after {
	content: "";
	position: absolute;
	inset-block-start: 50%;
	inset-inline-start: 50%;
	background: currentColor;
	transform: translate(-50%, -50%);
	transition: transform var(--mal-duration-fast) var(--mal-ease), opacity var(--mal-duration-fast) var(--mal-ease);
}

.mal-faq__icon::before {
	width: 100%;
	height: 1.5px;
}

.mal-faq__icon::after {
	width: 1.5px;
	height: 100%;
}

.mal-faq__button[aria-expanded="true"] .mal-faq__icon::after {
	opacity: 0;
	transform: translate(-50%, -50%) rotate(90deg);
}

.mal-faq__answer {
	display: none;
	padding-block-end: 1.15rem;
	color: var(--mal-color-text-muted);
	font-size: var(--mal-fs-sm);
	line-height: var(--mal-lh-relaxed);
}

.mal-faq__answer.is-open,
.mal-faq__button[aria-expanded="true"] + .mal-faq__answer {
	display: block;
}

.mal-faq__answer > *:last-child {
	margin-block-end: 0;
}

/* FAQ item BEM used by template-parts/components/faq-item.php */
.mal-faq-list {
	display: flex;
	flex-direction: column;
	border-block-start: 1px solid var(--mal-color-border);
}

.mal-faq-item {
	border-block-end: 1px solid var(--mal-color-border);
}

.mal-faq-item__question {
	margin: 0;
	font-size: inherit;
	font-weight: inherit;
}

.mal-faq-item__button {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--mal-space-sm);
	width: 100%;
	padding-block: 1.15rem;
	padding-inline: 0;
	text-align: start;
	font-size: var(--mal-fs-md);
	font-weight: var(--mal-fw-semibold);
	color: var(--mal-color-primary);
	line-height: var(--mal-lh-snug);
	background: transparent;
	border: 0;
	cursor: pointer;
}

.mal-faq-item__button:focus-visible {
	outline: 2px solid var(--mal-color-accent);
	outline-offset: 2px;
}

.mal-faq-item__icon {
	flex-shrink: 0;
	transition: transform var(--mal-duration-fast) var(--mal-ease);
}

.mal-faq-item__button[aria-expanded="true"] .mal-faq-item__icon {
	transform: rotate(180deg);
}

.mal-faq-item__panel {
	padding-block-end: 1.15rem;
	color: var(--mal-color-text-muted);
	font-size: var(--mal-fs-sm);
	line-height: var(--mal-lh-relaxed);
}

.mal-faq-item__panel[hidden] {
	display: none;
}

.mal-faq-item__answer > *:last-child {
	margin-block-end: 0;
}

/* Latest guides */
.mal-latest-guides__grid {
	display: grid;
	gap: var(--mal-space-md);
}

/* Consultation CTA */
.mal-consultation-cta,
.mal-cta-band {
	position: relative;
	background:
		linear-gradient(
			160deg,
			var(--mal-color-primary) 0%,
			var(--mal-color-secondary) 100%
		);
	color: color-mix(in srgb, var(--mal-color-white) 88%, transparent);
	padding-block: clamp(2.5rem, 4vw, 4rem);
	overflow: hidden;
}

.mal-consultation-cta::before,
.mal-cta-band::before {
	content: "";
	position: absolute;
	inset-block: 0;
	inset-inline-end: 0;
	width: min(40%, 28rem);
	background: linear-gradient(to start, transparent, color-mix(in srgb, var(--mal-color-accent) 12%, transparent));
	pointer-events: none;
}

.mal-consultation-cta__inner,
.mal-cta-band__inner {
	position: relative;
	display: grid;
	gap: var(--mal-space-md);
	align-items: center;
}

.mal-consultation-cta__title,
.mal-cta-band__title {
	color: var(--mal-color-white);
	margin: 0;
	font-size: var(--mal-fs-2xl);
}

.mal-consultation-cta__text,
.mal-cta-band__text {
	margin: 0;
	max-width: 36rem;
}

.mal-consultation-cta .mal-btn--primary {
	background: var(--mal-color-accent);
	border-color: var(--mal-color-accent);
	color: var(--mal-color-primary);
}

.mal-consultation-cta .mal-btn--primary:hover {
	background: color-mix(in srgb, var(--mal-color-accent) 88%, #fff);
	border-color: color-mix(in srgb, var(--mal-color-accent) 88%, #fff);
}

/* ==========================================================================
   11. Cards — editorial, not generic icon boxes
   ========================================================================== */

.mal-card,
.mal-service-card,
.mal-guide-card,
.mal-attorney-card,
.mal-testimonial-card {
	display: flex;
	flex-direction: column;
	background: transparent;
	border: 0;
	border-block-end: 1px solid var(--mal-color-border);
	border-radius: 0;
	overflow: hidden;
	height: 100%;
	transition: border-color var(--mal-duration-fast) var(--mal-ease);
}

a.mal-card,
a.mal-service-card,
a.mal-guide-card,
a.mal-attorney-card {
	text-decoration: none;
	color: inherit;
}

.mal-card:hover,
.mal-service-card:hover,
.mal-guide-card:hover,
.mal-attorney-card:hover {
	border-color: var(--mal-color-accent);
	box-shadow: none;
}

.mal-card__media,
.mal-service-card__media,
.mal-guide-card__media,
.mal-attorney-card__media {
	overflow: hidden;
	background: var(--mal-color-secondary);
}

.mal-card__media img,
.mal-service-card__media img,
.mal-guide-card__media img,
.mal-attorney-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	aspect-ratio: 16 / 10;
	transition: transform var(--mal-duration-slow) var(--mal-ease);
}

.mal-card:hover .mal-card__media img,
.mal-service-card:hover .mal-service-card__media img,
.mal-guide-card:hover .mal-guide-card__media img {
	transform: scale(1.02);
}

.mal-attorney-card__media img {
	aspect-ratio: 4 / 5;
}

.mal-card__body,
.mal-service-card__body,
.mal-guide-card__body,
.mal-attorney-card__body,
.mal-testimonial-card__body {
	display: flex;
	flex-direction: column;
	gap: var(--mal-space-2xs);
	padding: var(--mal-space-md);
	flex: 1 1 auto;
}

.mal-card__meta,
.mal-guide-card__meta,
.mal-service-card__meta {
	font-size: var(--mal-fs-xs);
	color: var(--mal-color-accent);
	font-weight: var(--mal-fw-semibold);
	letter-spacing: 0.02em;
}

.mal-card__title,
.mal-service-card__title,
.mal-guide-card__title,
.mal-attorney-card__title {
	font-size: var(--mal-fs-lg);
	margin: 0;
	color: var(--mal-color-primary);
	line-height: var(--mal-lh-snug);
}

.mal-card__excerpt,
.mal-service-card__excerpt,
.mal-guide-card__excerpt,
.mal-attorney-card__excerpt {
	margin: 0;
	font-size: var(--mal-fs-sm);
	color: var(--mal-color-text-muted);
	flex: 1 1 auto;
}

.mal-card__link,
.mal-service-card__link,
.mal-guide-card__link {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	margin-block-start: var(--mal-space-2xs);
	font-size: var(--mal-fs-sm);
	font-weight: var(--mal-fw-semibold);
	color: var(--mal-color-primary);
	text-decoration: none;
}

.mal-card__link:hover,
.mal-service-card__link:hover,
.mal-guide-card__link:hover {
	color: var(--mal-color-accent);
}

/* Service card with optional thin accent rule (not icon-box) */
.mal-service-card--text {
	border-block-start: 3px solid var(--mal-color-accent);
}

.mal-service-card__icon {
	color: var(--mal-color-accent);
	margin-block-end: var(--mal-space-2xs);
}

/* Attorney card */
.mal-attorney-card__role {
	font-size: var(--mal-fs-sm);
	color: var(--mal-color-text-muted);
	margin: 0;
}

/* Testimonial — editorial quote, not star-rating chrome */
.mal-testimonial-card {
	padding: var(--mal-space-md);
	background: var(--mal-color-white);
}

.mal-testimonial-card__quote {
	margin: 0;
	font-size: var(--mal-fs-md);
	line-height: var(--mal-lh-relaxed);
	color: var(--mal-color-text);
	border: 0;
	padding: 0;
}

.mal-testimonial-card__quote::before {
	content: "“";
	display: block;
	font-size: 2rem;
	line-height: 1;
	color: var(--mal-color-accent);
	margin-block-end: var(--mal-space-2xs);
	font-family: Georgia, "Times New Roman", serif;
}

.mal-testimonial-card__author {
	margin-block-start: var(--mal-space-md);
	padding-block-start: var(--mal-space-sm);
	border-block-start: 1px solid var(--mal-color-border);
	font-size: var(--mal-fs-sm);
	font-weight: var(--mal-fw-semibold);
	color: var(--mal-color-primary);
}

.mal-testimonial-card__meta {
	display: block;
	font-weight: var(--mal-fw-regular);
	color: var(--mal-color-text-muted);
	font-size: var(--mal-fs-xs);
	margin-block-start: 0.15rem;
}

/* ==========================================================================
   12. Components
   ========================================================================== */

/* Section heading */
.mal-section-heading {
	margin-block-end: var(--mal-space-lg);
	max-width: 40rem;
}

.mal-section-heading--center {
	text-align: center;
	margin-inline: auto;
}

.mal-section-heading__title {
	margin-block-end: var(--mal-space-2xs);
}

.mal-section-heading__text {
	margin: 0;
	color: var(--mal-color-text-muted);
	font-size: var(--mal-fs-md);
}

.mal-section-heading__actions {
	margin-block-start: var(--mal-space-md);
}

/* Breadcrumbs */
.mal-breadcrumbs {
	font-size: var(--mal-fs-xs);
	color: var(--mal-color-text-muted);
	padding-block: var(--mal-space-sm);
}

.mal-breadcrumbs__list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.35rem;
}

.mal-breadcrumbs__item {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
}

.mal-breadcrumbs__link {
	color: var(--mal-color-text-muted);
	text-decoration: none;
}

.mal-breadcrumbs__link:hover {
	color: var(--mal-color-accent);
}

.mal-breadcrumbs__current {
	color: var(--mal-color-primary);
	font-weight: var(--mal-fw-medium);
}

.mal-breadcrumbs__sep {
	opacity: 0.55;
	speak: never;
}

/* Pagination */
.mal-pagination,
.navigation.pagination,
.posts-navigation,
.post-navigation {
	margin-block: var(--mal-space-lg);
}

.mal-pagination .nav-links,
.navigation.pagination .nav-links,
.posts-navigation .nav-links,
.post-navigation .nav-links {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--mal-space-sm);
}

.mal-pagination a,
.mal-pagination span,
.navigation.pagination a,
.navigation.pagination span,
.posts-navigation a,
.post-navigation a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 2.5rem;
	padding-inline: 0.9rem;
	border: 1px solid var(--mal-color-border);
	border-radius: var(--mal-radius-sm);
	background: var(--mal-color-white);
	color: var(--mal-color-primary);
	text-decoration: none;
	font-size: var(--mal-fs-sm);
	font-weight: var(--mal-fw-medium);
}

.mal-pagination a:hover,
.navigation.pagination a:hover,
.posts-navigation a:hover,
.post-navigation a:hover {
	border-color: var(--mal-color-accent);
	color: var(--mal-color-accent);
}

.mal-pagination .current,
.navigation.pagination .current {
	background: var(--mal-color-primary);
	border-color: var(--mal-color-primary);
	color: var(--mal-color-white);
}

/* Empty state */
.mal-empty-state {
	text-align: center;
	padding-block: var(--mal-space-xl);
	padding-inline: var(--mal-space-md);
	background: var(--mal-color-white);
	border: 1px dashed var(--mal-color-border);
	border-radius: var(--mal-radius);
}

.mal-empty-state__title {
	margin-block-end: var(--mal-space-2xs);
}

.mal-empty-state__text {
	color: var(--mal-color-text-muted);
	margin-block-end: var(--mal-space-md);
	max-width: 28rem;
	margin-inline: auto;
}

/* Legal disclaimer */
.mal-legal-disclaimer {
	margin-block: var(--mal-space-lg);
	padding: var(--mal-space-md);
	background: var(--mal-color-ivory);
	border: 1px solid var(--mal-color-border);
	border-inline-start: 3px solid var(--mal-color-accent);
	border-radius: var(--mal-radius);
	font-size: var(--mal-fs-sm);
	color: var(--mal-color-text-muted);
	line-height: var(--mal-lh-relaxed);
}

.mal-legal-disclaimer p:last-child {
	margin-block-end: 0;
}

.mal-official-source {
	margin-block: var(--mal-space-md);
	padding: var(--mal-space-sm) var(--mal-space-md);
	background: var(--mal-color-white);
	border: 1px solid var(--mal-color-border);
	border-radius: var(--mal-radius);
	font-size: var(--mal-fs-sm);
}

/* Social links */
.mal-social-links {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--mal-space-2xs);
}

.mal-social-links a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.35rem;
	height: 2.35rem;
	border: 1px solid color-mix(in srgb, currentColor 25%, transparent);
	border-radius: var(--mal-radius-sm);
	color: inherit;
	text-decoration: none;
	transition: color var(--mal-duration-fast) var(--mal-ease), border-color var(--mal-duration-fast) var(--mal-ease), background-color var(--mal-duration-fast) var(--mal-ease);
}

.mal-social-links a:hover {
	color: var(--mal-color-accent);
	border-color: var(--mal-color-accent);
}

/* Contact items */
.mal-contact-item {
	display: flex;
	align-items: flex-start;
	gap: var(--mal-space-xs);
	font-size: var(--mal-fs-sm);
}

.mal-contact-item__icon {
	color: var(--mal-color-accent);
	margin-block-start: 0.15rem;
}

.mal-contact-item__label {
	display: block;
	font-size: var(--mal-fs-xs);
	color: var(--mal-color-text-muted);
	margin-block-end: 0.1rem;
}

.mal-contact-item a {
	text-decoration: none;
	font-weight: var(--mal-fw-medium);
}

.mal-contact-item a:hover {
	color: var(--mal-color-accent);
}

.mal-contact-list {
	display: flex;
	flex-direction: column;
	gap: var(--mal-space-sm);
}

/* ==========================================================================
   13. Footer
   ========================================================================== */

.mal-site-footer,
.mal-footer {
	background: var(--mal-color-footer-bg);
	color: color-mix(in srgb, var(--mal-color-white) 78%, transparent);
	padding-block-start: var(--mal-space-xl);
	margin-block-start: auto;
}

.mal-footer__grid {
	display: grid;
	gap: var(--mal-space-lg);
	grid-template-columns: 1fr;
	padding-block-end: var(--mal-space-lg);
}

.mal-footer__brand {
	max-width: 22rem;
}

.mal-footer__logo {
	display: inline-block;
	margin-block-end: var(--mal-space-sm);
	text-decoration: none;
}

.mal-footer__logo img {
	height: 2.5rem;
	width: auto;
}

.mal-footer__tagline {
	font-size: var(--mal-fs-sm);
	line-height: var(--mal-lh-relaxed);
	margin-block-end: var(--mal-space-md);
}

.mal-footer__title,
.mal-footer-widget__title {
	font-size: var(--mal-fs-sm);
	font-weight: var(--mal-fw-semibold);
	color: var(--mal-color-white);
	margin-block-end: var(--mal-space-sm);
	letter-spacing: 0.02em;
}

.mal-footer a {
	color: color-mix(in srgb, var(--mal-color-white) 78%, transparent);
	text-decoration: none;
}

.mal-footer a:hover {
	color: var(--mal-color-accent);
}

.mal-footer__menu,
.mal-footer .menu {
	display: flex;
	flex-direction: column;
	gap: 0.45rem;
}

.mal-footer__menu a,
.mal-footer .menu a {
	font-size: var(--mal-fs-sm);
}

.mal-footer__bottom {
	border-block-start: 1px solid color-mix(in srgb, var(--mal-color-white) 12%, transparent);
	padding-block: var(--mal-space-md);
}

.mal-footer__bottom-inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--mal-space-sm);
	font-size: var(--mal-fs-xs);
}

.mal-footer__legal {
	display: flex;
	flex-wrap: wrap;
	gap: var(--mal-space-sm);
}

.mal-footer .mal-social-links a {
	border-color: color-mix(in srgb, var(--mal-color-white) 22%, transparent);
}

.mal-footer-widget {
	margin-block-end: var(--mal-space-md);
}

/* ==========================================================================
   14. Single / archive content
   ========================================================================== */

.mal-page-header,
.mal-archive-header {
	padding-block: var(--mal-space-lg) var(--mal-space-md);
	background: var(--mal-color-white);
	border-block-end: 1px solid var(--mal-color-border);
}

.mal-page-header__title,
.mal-archive-header__title {
	margin-block-end: var(--mal-space-2xs);
}

.mal-page-header__desc,
.mal-archive-header__desc {
	color: var(--mal-color-text-muted);
	max-width: 40rem;
	margin: 0;
}

.mal-entry-header {
	margin-block-end: var(--mal-space-md);
}

.mal-entry-meta,
.mal-posted-on,
.mal-posted-by,
.mal-cat-links,
.mal-tags-links {
	font-size: var(--mal-fs-xs);
	color: var(--mal-color-text-muted);
}

.mal-entry-meta {
	display: flex;
	flex-wrap: wrap;
	gap: var(--mal-space-xs);
	margin-block-start: var(--mal-space-xs);
}

.mal-post-thumbnail {
	display: block;
	margin-block-end: var(--mal-space-md);
	overflow: hidden;
	border-radius: var(--mal-radius);
}

.mal-post-thumbnail img {
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
}

.mal-entry-content,
.entry-content,
.mal-prose {
	font-size: var(--mal-fs-base);
	line-height: var(--mal-lh-relaxed);
	max-width: var(--mal-content);
}

.mal-entry-content > * + *,
.entry-content > * + *,
.mal-prose > * + * {
	margin-block-start: 1.1em;
}

.mal-entry-content h2,
.entry-content h2,
.mal-prose h2 {
	margin-block-start: 1.75em;
	margin-block-end: 0.5em;
}

.mal-entry-content h3,
.entry-content h3,
.mal-prose h3 {
	margin-block-start: 1.5em;
	margin-block-end: 0.45em;
}

.mal-entry-content ul,
.mal-entry-content ol,
.entry-content ul,
.entry-content ol,
.mal-prose ul,
.mal-prose ol {
	padding-inline-start: 1.25rem;
	list-style: revert;
}

.mal-entry-content li + li,
.entry-content li + li,
.mal-prose li + li {
	margin-block-start: 0.35em;
}

.mal-entry-content a,
.entry-content a,
.mal-prose a {
	text-decoration-thickness: 1px;
}

.mal-entry-footer {
	display: flex;
	flex-wrap: wrap;
	gap: var(--mal-space-sm);
	margin-block-start: var(--mal-space-lg);
	padding-block-start: var(--mal-space-md);
	border-block-start: 1px solid var(--mal-color-border);
	font-size: var(--mal-fs-sm);
}

.mal-edit-link a {
	font-size: var(--mal-fs-xs);
}

.mal-layout-with-sidebar {
	display: grid;
	gap: var(--mal-space-lg);
}

.mal-sidebar .mal-widget {
	padding: var(--mal-space-md);
	background: var(--mal-color-white);
	border: 1px solid var(--mal-color-border);
	border-radius: var(--mal-radius);
	margin-block-end: var(--mal-space-md);
}

.mal-widget__title {
	font-size: var(--mal-fs-sm);
	margin-block-end: var(--mal-space-sm);
}

.mal-archive-grid {
	display: grid;
	gap: var(--mal-space-md);
	grid-template-columns: 1fr;
}

/* Short answer box */
.mal-short-answer {
	margin-block: 0 var(--mal-space-lg);
	padding: var(--mal-space-md);
	background: var(--mal-color-white);
	border: 1px solid var(--mal-color-border);
	border-inline-start: 3px solid var(--mal-color-primary);
	border-radius: var(--mal-radius);
}

.mal-short-answer__label {
	display: block;
	font-size: var(--mal-fs-xs);
	font-weight: var(--mal-fw-semibold);
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--mal-color-accent);
	margin-block-end: var(--mal-space-2xs);
}

.mal-short-answer__text {
	margin: 0;
	font-size: var(--mal-fs-md);
	line-height: var(--mal-lh-relaxed);
	color: var(--mal-color-text);
}

/* Table of contents */
.mal-toc {
	margin-block: 0 var(--mal-space-lg);
	padding: var(--mal-space-md);
	background: var(--mal-color-ivory);
	border: 1px solid var(--mal-color-border);
	border-radius: var(--mal-radius);
}

.mal-toc__title {
	font-size: var(--mal-fs-sm);
	font-weight: var(--mal-fw-semibold);
	margin-block-end: var(--mal-space-xs);
}

.mal-toc__list {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
	padding: 0;
	margin: 0;
	list-style: none;
}

.mal-toc__list a {
	font-size: var(--mal-fs-sm);
	text-decoration: none;
	color: var(--mal-color-primary);
}

.mal-toc__list a:hover {
	color: var(--mal-color-accent);
}

.mal-toc__list ol,
.mal-toc__list ul {
	padding-inline-start: var(--mal-space-sm);
	margin-block-start: 0.35rem;
	list-style: none;
}

.mal-reading-time {
	font-size: var(--mal-fs-xs);
	color: var(--mal-color-text-muted);
}

/* ==========================================================================
   15. Forms
   ========================================================================== */

.mal-form label,
.wpcf7-form label,
.gform_wrapper label,
.wpforms-field-label,
.ff-el-input--label,
.nf-form-content label {
	display: block;
	font-size: var(--mal-fs-sm);
	font-weight: var(--mal-fw-medium);
	color: var(--mal-color-primary);
	margin-block-end: 0.35rem;
}

.mal-form input[type="text"],
.mal-form input[type="email"],
.mal-form input[type="tel"],
.mal-form input[type="url"],
.mal-form input[type="search"],
.mal-form input[type="number"],
.mal-form input[type="date"],
.mal-form select,
.mal-form textarea,
.wpcf7-form input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
.wpcf7-form select,
.wpcf7-form textarea,
.gform_wrapper input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
.gform_wrapper select,
.gform_wrapper textarea,
.wpforms-form input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
.wpforms-form select,
.wpforms-form textarea,
.search-form input[type="search"],
.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form input[type="url"],
.comment-form textarea {
	width: 100%;
	min-height: 2.75rem;
	padding-block: 0.6rem;
	padding-inline: 0.85rem;
	border: 1px solid var(--mal-color-border);
	border-radius: var(--mal-radius-sm);
	background: var(--mal-color-white);
	color: var(--mal-color-text);
	transition: border-color var(--mal-duration-fast) var(--mal-ease);
}

.mal-form textarea,
.wpcf7-form textarea,
.gform_wrapper textarea,
.wpforms-form textarea,
.comment-form textarea {
	min-height: 8rem;
	resize: vertical;
}

.mal-form input:focus-visible,
.mal-form select:focus-visible,
.mal-form textarea:focus-visible,
.wpcf7-form input:focus-visible,
.wpcf7-form select:focus-visible,
.wpcf7-form textarea:focus-visible,
.search-form input:focus-visible,
.comment-form input:focus-visible,
.comment-form textarea:focus-visible {
	border-color: var(--mal-color-accent);
}

.mal-form .mal-field,
.mal-form .form-row {
	margin-block-end: var(--mal-space-sm);
}

.mal-form input[type="submit"],
.wpcf7-submit,
.gform_button,
.wpforms-submit,
.comment-form .submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 2.75rem;
	padding-block: 0.7rem;
	padding-inline: 1.35rem;
	background: var(--mal-color-primary);
	color: var(--mal-color-white);
	border: 1px solid var(--mal-color-primary);
	border-radius: var(--mal-radius-sm);
	font-weight: var(--mal-fw-semibold);
	cursor: pointer;
}

.mal-form input[type="submit"]:hover,
.wpcf7-submit:hover,
.gform_button:hover,
.wpforms-submit:hover,
.comment-form .submit:hover {
	background: var(--mal-color-secondary);
	border-color: var(--mal-color-secondary);
}

.search-form {
	display: flex;
	gap: var(--mal-space-2xs);
}

/* ==========================================================================
   16. Tables — overflow
   ========================================================================== */

.mal-table-wrap,
.mal-entry-content .wp-block-table,
.entry-content .wp-block-table,
.mal-prose table {
	display: block;
	width: 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	margin-block: var(--mal-space-md);
}

.mal-entry-content table,
.entry-content table,
.mal-prose table,
.mal-table {
	width: 100%;
	min-width: 32rem;
	border: 1px solid var(--mal-color-border);
	background: var(--mal-color-white);
	font-size: var(--mal-fs-sm);
}

.mal-entry-content th,
.mal-entry-content td,
.entry-content th,
.entry-content td,
.mal-prose th,
.mal-prose td,
.mal-table th,
.mal-table td {
	padding: 0.75rem 0.9rem;
	border: 1px solid var(--mal-color-border);
	text-align: start;
	vertical-align: top;
}

.mal-entry-content th,
.entry-content th,
.mal-prose th,
.mal-table th {
	background: var(--mal-color-ivory);
	font-weight: var(--mal-fw-semibold);
	color: var(--mal-color-primary);
}

/* ==========================================================================
   17. Admin bar offset
   ========================================================================== */

body.admin-bar {
	/* Compatibility CSS may also set --mal-admin-bar-height */
}

@media screen and (min-width: 783px) {
	body.admin-bar {
		--mal-admin-bar-height: 32px;
	}
}

@media screen and (max-width: 782px) {
	body.admin-bar {
		--mal-admin-bar-height: 46px;
	}
}

/* ==========================================================================
   18. Screen reader / focus utilities
   ========================================================================== */

.screen-reader-text,
.mal-sr-only {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	word-wrap: normal !important;
}

.screen-reader-text:focus,
.mal-sr-only:focus {
	background-color: var(--mal-color-white);
	border-radius: var(--mal-radius-sm);
	box-shadow: var(--mal-shadow);
	clip: auto !important;
	clip-path: none;
	color: var(--mal-color-primary);
	display: block;
	font-size: var(--mal-fs-sm);
	font-weight: var(--mal-fw-semibold);
	height: auto;
	inset-inline-start: var(--mal-space-sm);
	inset-block-start: var(--mal-space-sm);
	line-height: normal;
	padding: var(--mal-space-2xs) var(--mal-space-sm);
	text-decoration: none;
	width: auto;
	z-index: var(--mal-z-skip);
}

/* ==========================================================================
   19. Align / WP block helpers
   ========================================================================== */

.alignwide {
	max-width: var(--mal-container);
	margin-inline: auto;
}

.alignfull {
	width: 100vw;
	max-width: 100vw;
	margin-inline: calc(50% - 50vw);
}

.wp-block-image img {
	border-radius: var(--mal-radius);
}

.wp-block-quote {
	border-inline-start: 3px solid var(--mal-color-accent);
	padding-inline-start: var(--mal-space-md);
}

.wp-block-separator {
	border: 0;
	border-block-start: 1px solid var(--mal-color-border);
}

.wp-block-buttons {
	display: flex;
	flex-wrap: wrap;
	gap: var(--mal-space-xs);
}

/* ==========================================================================
   20. Utility classes (sparingly)
   ========================================================================== */

.mal-u-mt-0 { margin-block-start: 0 !important; }
.mal-u-mb-0 { margin-block-end: 0 !important; }
.mal-u-mt-sm { margin-block-start: var(--mal-space-sm); }
.mal-u-mb-sm { margin-block-end: var(--mal-space-sm); }
.mal-u-mt-md { margin-block-start: var(--mal-space-md); }
.mal-u-mb-md { margin-block-end: var(--mal-space-md); }
.mal-u-mt-lg { margin-block-start: var(--mal-space-lg); }
.mal-u-mb-lg { margin-block-end: var(--mal-space-lg); }

.mal-u-text-center { text-align: center; }
.mal-u-text-start { text-align: start; }
.mal-u-text-end { text-align: end; }

.mal-u-hidden { display: none !important; }
.mal-u-block { display: block; }
.mal-u-flex { display: flex; }

.mal-u-visually-balanced {
	text-wrap: balance;
}

@media (max-width: 767px) {
	.mal-u-hide-mobile { display: none !important; }
}

@media (min-width: 768px) {
	.mal-u-hide-desktop { display: none !important; }
}

/* ==========================================================================
   21. Responsive breakpoints: 360 / 768 / 1024 / 1280
   ========================================================================== */

/* ≥360 — small phones (base already mobile-first) */
@media (min-width: 360px) {
	.mal-trust-strip__list {
		grid-template-columns: 1fr;
	}
}

/* ≥768 — tablet */
@media (min-width: 768px) {
	.mal-grid--2,
	.mal-services__grid,
	.mal-guides__grid,
	.mal-nationality__grid,
	.mal-latest-guides__grid,
	.mal-testimonials__grid,
	.mal-archive-grid,
	.mal-process__list {
		grid-template-columns: repeat(2, 1fr);
	}

	.mal-trust-strip__list {
		grid-template-columns: repeat(2, 1fr);
	}

	.mal-split,
	.mal-attorney-spotlight,
	.mal-consultation-cta__inner,
	.mal-cta-band__inner,
	.mal-why-us__grid {
		grid-template-columns: 1fr 1fr;
	}

	.mal-header__cta {
		display: inline-flex;
	}

	.mal-utility-bar__contacts {
		gap: var(--mal-space-md);
	}

	.mal-footer__grid {
		grid-template-columns: 1.4fr 1fr 1fr;
	}

	.mal-hero__content {
		max-width: 44rem;
	}
}

/* ≥1024 — desktop nav */
@media (min-width: 1024px) {
	.mal-nav,
	.mal-primary-nav {
		display: block;
	}

	.mal-menu-toggle {
		display: none;
	}

	.mal-header__inner {
		gap: var(--mal-space-lg);
	}

	.mal-header__actions .mal-header__cta {
		margin-inline-start: var(--mal-space-2xs);
	}

	.mal-grid--3,
	.mal-services__grid,
	.mal-guides__grid,
	.mal-latest-guides__grid,
	.mal-process__list {
		grid-template-columns: repeat(3, 1fr);
	}

	.mal-trust-strip__list {
		grid-template-columns: repeat(4, 1fr);
	}

	.mal-grid--4 {
		grid-template-columns: repeat(2, 1fr);
	}

	.mal-layout-with-sidebar {
		grid-template-columns: minmax(0, 1fr) min(18rem, 28%);
		align-items: start;
	}

	.mal-footer__grid {
		grid-template-columns: 1.5fr 1fr 1fr 1fr;
	}

	.mal-consultation-cta__inner,
	.mal-cta-band__inner {
		grid-template-columns: 1fr auto;
	}

	.mal-attorney-spotlight {
		grid-template-columns: min(22rem, 38%) 1fr;
	}
}

/* ≥1280 — wide */
@media (min-width: 1280px) {
	.mal-grid--4,
	.mal-testimonials__grid {
		grid-template-columns: repeat(4, 1fr);
	}

	.mal-hero {
		min-height: clamp(32rem, 72vh, 44rem);
	}

	.mal-process__list {
		grid-template-columns: repeat(4, 1fr);
	}
}

/* ==========================================================================
   22. Reduced motion
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}

	.mal-card:hover .mal-card__media img,
	.mal-service-card:hover .mal-service-card__media img,
	.mal-guide-card:hover .mal-guide-card__media img {
		transform: none;
	}

	.mal-whatsapp-float:hover {
		transform: none;
	}
}
