/**
 * KLX — theme stylesheet (front end + editor).
 *
 * Only what theme.json cannot express. Every colour, size and radius comes from theme.json
 * tokens (--wp--preset--* / --wp--custom--*), so a style variation (kalaxa.ir) re-brands the
 * whole site without touching this file. RTL first: logical properties throughout.
 *
 * Breakpoints: mobile < 768px · tablet 768–1023px · desktop >= 1024px (artboards: 390 / 1440).
 *
 * Contents
 *  0. Tokens & icons          7. Cards (service, project, post, result)
 *  1. Base                    8. Home / pattern sections (hero, steps, CTA band, FAQ, facts)
 *  2. Utilities               9. Long-form article (klx-article) + tables, quotes, galleries
 *  3. Header                 10. Templates (service, post, project, archives, 404, search)
 *  4. Footer                 11. Forms (core search, Contact Form 7, Forminator, comments)
 *  5. Mobile action bar      12. Reduced motion & print
 *  6. Buttons, links, chips, tags, pagination
 */

/* ==========================================================================
   0. Tokens & icons
   ========================================================================== */

:root {
	--klx-ground: var(--wp--preset--color--ground);
	--klx-surface: var(--wp--preset--color--surface);
	--klx-raised: var(--wp--preset--color--raised);
	--klx-line: var(--wp--preset--color--hairline);
	--klx-line-strong: var(--wp--custom--color--hairline-strong);
	--klx-outline: var(--wp--custom--color--outline);
	--klx-text: var(--wp--preset--color--text);
	--klx-muted: var(--wp--preset--color--muted);
	--klx-accent: var(--wp--preset--color--accent);
	--klx-accent-hover: var(--wp--preset--color--accent-hover);
	--klx-on-accent: var(--wp--preset--color--on-accent);
	--klx-success: var(--wp--preset--color--success);
	--klx-error: var(--wp--preset--color--error);
	--klx-overlay: var(--wp--custom--color--overlay);
	--klx-overlay-strong: var(--wp--custom--color--overlay-strong);
	--klx-overlay-panel: var(--wp--custom--color--overlay-panel);
	--klx-scrim: var(--wp--custom--color--scrim);
	--klx-radius: var(--wp--custom--radius--sm);
	--klx-gutter: var(--wp--custom--gutter);
	--klx-section-y: var(--wp--custom--section-y);
	--klx-grid-gap: var(--wp--custom--grid-gap);
	--klx-touch: var(--wp--custom--touch);
	--klx-control-h: var(--wp--custom--control-height);
	--klx-button-h: var(--wp--custom--button-height);
	--klx-topbar-h: var(--wp--custom--header--topbar);
	--klx-mainbar-h: var(--wp--custom--header--main);
	--klx-mobilebar-h: var(--wp--custom--mobile-bar-height);
	/* Inline padding for full-bleed bars: the gutter, or whatever centres a 1280px row. */
	--klx-pad-inline: max(var(--klx-gutter), calc((100% - var(--wp--style--global--wide-size, 1280px)) / 2));
	/* Distance kept free under the sticky header (anchors, sticky TOC). */
	--klx-sticky-offset: calc(var(--wp-admin--admin-bar--height, 0px) + var(--klx-mainbar-h) + 24px);

	--klx-i-phone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 4h3.5l1.8 4.5-2.3 1.4a11 11 0 0 0 6.1 6.1l1.4-2.3 4.5 1.8V19a2 2 0 0 1-2 2A17 17 0 0 1 3 6a2 2 0 0 1 2-2z'/%3E%3C/svg%3E");
	--klx-i-clock: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7.5V12l3 2'/%3E%3C/svg%3E");
	--klx-i-pin: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6-7-11.5a7 7 0 0 1 14 0C19 15 12 21 12 21z'/%3E%3Ccircle cx='12' cy='9.5' r='2.5'/%3E%3C/svg%3E");
	--klx-i-mail: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='1'/%3E%3Cpath d='M3.5 6l8.5 7 8.5-7'/%3E%3C/svg%3E");
	--klx-i-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 12H5'/%3E%3Cpath d='M11 6l-6 6 6 6'/%3E%3C/svg%3E");
	--klx-i-arrow-back: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='M13 6l6 6-6 6'/%3E%3C/svg%3E");
	--klx-i-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='6.5'/%3E%3Cpath d='M20 20l-4.3-4.3'/%3E%3C/svg%3E");
	--klx-i-instagram: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3.5' y='3.5' width='17' height='17' rx='5'/%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Cpath d='M17 7h.01'/%3E%3C/svg%3E");
	--klx-i-telegram: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 4 3 11l6 2.2 2 5.8 3.2-3.8L19.5 19z'/%3E%3Cpath d='M9 13.2 21 4'/%3E%3C/svg%3E");
	--klx-i-whatsapp: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 20l1.2-3.6A8.5 8.5 0 1 1 7.8 19z'/%3E%3Cpath d='M9.5 8.8c.2 3 2.7 5.5 5.7 5.7l.9-1.6-1.9-1-.9.7a4.5 4.5 0 0 1-1.9-1.9l.7-.9-1-1.9z'/%3E%3C/svg%3E");
	--klx-i-plus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 5v14'/%3E%3Cpath d='M5 12h14'/%3E%3C/svg%3E");
	--klx-i-minus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3C/svg%3E");
	--klx-i-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E");
	--klx-i-info: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 11v5'/%3E%3Cpath d='M12 8h.01'/%3E%3C/svg%3E");
	--klx-i-quote: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 7H6a2 2 0 0 0-2 2v3a2 2 0 0 0 2 2h3v1a3 3 0 0 1-3 3'/%3E%3Cpath d='M20 7h-4a2 2 0 0 0-2 2v3a2 2 0 0 0 2 2h3v1a3 3 0 0 1-3 3'/%3E%3C/svg%3E");
	--klx-i-user: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21a8 8 0 0 1 16 0'/%3E%3C/svg%3E");
	--klx-i-calendar: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3.5' y='5' width='17' height='15.5' rx='1'/%3E%3Cpath d='M3.5 10h17'/%3E%3Cpath d='M8 3v4'/%3E%3Cpath d='M16 3v4'/%3E%3C/svg%3E");
	--klx-i-layers: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3.5 21 8l-9 4.5L3 8z'/%3E%3Cpath d='M3 12.5l9 4.5 9-4.5'/%3E%3Cpath d='M3 16.5l9 4.5 9-4.5'/%3E%3C/svg%3E");
	--klx-i-grid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='4' width='6.5' height='6.5'/%3E%3Crect x='13.5' y='4' width='6.5' height='6.5'/%3E%3Crect x='4' y='13.5' width='6.5' height='6.5'/%3E%3Crect x='13.5' y='13.5' width='6.5' height='6.5'/%3E%3C/svg%3E");
	--klx-i-home: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 11 12 4l8 7'/%3E%3Cpath d='M6 9.5V20h12V9.5'/%3E%3C/svg%3E");
	--klx-i-briefcase: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='7' width='18' height='13' rx='1'/%3E%3Cpath d='M9 7V5a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2'/%3E%3Cpath d='M3 12.5h18'/%3E%3Cpath d='M10.5 12.5v2h3v-2'/%3E%3C/svg%3E");
	--klx-i-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3.5' y='4.5' width='17' height='15' rx='1'/%3E%3Ccircle cx='9' cy='9.5' r='1.5'/%3E%3Cpath d='M20.5 16l-5-5-8.5 8.5'/%3E%3C/svg%3E");
	--klx-i-cube: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l8 4.5v9L12 21l-8-4.5v-9z'/%3E%3Cpath d='M12 12l8-4.5'/%3E%3Cpath d='M12 12v9'/%3E%3Cpath d='M12 12L4 7.5'/%3E%3C/svg%3E");
	--klx-i-home-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 10.5 12 4l8 6.5V20H4z'/%3E%3Cpath d='M9 14l2 2 4-4'/%3E%3C/svg%3E");
	--klx-i-ruler: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 17 17 3l4 4L7 21z'/%3E%3Cpath d='M7 13l2 2'/%3E%3Cpath d='M10 10l2 2'/%3E%3Cpath d='M13 7l2 2'/%3E%3C/svg%3E");
	--klx-i-svc-kitchen: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 3.5h18v5H3z'/%3E%3Cpath d='M12 3.5v5'/%3E%3Cpath d='M2 12h20'/%3E%3Cpath d='M3 12v8.5h18V12'/%3E%3Cpath d='M12 12v8.5'/%3E%3Cpath d='M10 15v2.5'/%3E%3Cpath d='M14 15v2.5'/%3E%3C/svg%3E");
	--klx-i-svc-wardrobe: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='2.5' width='16' height='18' rx='1'/%3E%3Cpath d='M12 2.5v18'/%3E%3Cpath d='M10 10v3'/%3E%3Cpath d='M14 10v3'/%3E%3Cpath d='M6 20.5V22'/%3E%3Cpath d='M18 20.5V22'/%3E%3C/svg%3E");
	--klx-i-svc-living: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 10.5V8a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v2.5'/%3E%3Cpath d='M3 18v-5a2 2 0 0 1 4 0v1.5h10V13a2 2 0 0 1 4 0v5z'/%3E%3Cpath d='M5 18v2'/%3E%3Cpath d='M19 18v2'/%3E%3C/svg%3E");
	--klx-i-svc-shop: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 9 5 4h14l1.5 5'/%3E%3Cpath d='M3.5 9h17'/%3E%3Cpath d='M4.5 9v11h15V9'/%3E%3Cpath d='M10 20v-5.5h4V20'/%3E%3C/svg%3E");
	--klx-i-svc-bath: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12h18v2.5a5.5 5.5 0 0 1-5.5 5.5h-7A5.5 5.5 0 0 1 3 14.5z'/%3E%3Cpath d='M6 12V6a2.5 2.5 0 0 1 5 0'/%3E%3Cpath d='M6.5 20l-1 2'/%3E%3Cpath d='M17.5 20l1 2'/%3E%3C/svg%3E");
	--klx-i-svc-renovation: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='14' height='6' rx='1'/%3E%3Cpath d='M17 6h3.5v5.5H11V14'/%3E%3Crect x='9.5' y='14' width='3' height='7' rx='1'/%3E%3C/svg%3E");
}

@media (max-width: 767.98px) {
	:root {
		--klx-sticky-offset: calc(var(--wp-admin--admin-bar--height, 0px) + var(--wp--custom--header--mobile) + 16px);
	}
}

/* Icon slot: element (or pseudo element) painted with the current colour through an SVG mask. */
.klx-i::before,
.klx-meta-item::before,
.klx-meta-row .wp-block-post-terms__prefix::before,
.klx-post-nav__all a::before {
	content: "";
	display: inline-block;
	flex: none;
	width: 1.125em;
	height: 1.125em;
	background-color: currentColor;
	-webkit-mask: var(--klx-i, var(--klx-i-info)) center / contain no-repeat;
	mask: var(--klx-i, var(--klx-i-info)) center / contain no-repeat;
}

.klx-i-phone { --klx-i: var(--klx-i-phone); }
.klx-i-clock { --klx-i: var(--klx-i-clock); }
.klx-i-pin { --klx-i: var(--klx-i-pin); }
.klx-i-mail { --klx-i: var(--klx-i-mail); }
.klx-i-arrow { --klx-i: var(--klx-i-arrow); }
.klx-i-arrow-back { --klx-i: var(--klx-i-arrow-back); }
.klx-i-search { --klx-i: var(--klx-i-search); }
.klx-i-instagram { --klx-i: var(--klx-i-instagram); }
.klx-i-telegram { --klx-i: var(--klx-i-telegram); }
.klx-i-whatsapp { --klx-i: var(--klx-i-whatsapp); }
.klx-i-plus { --klx-i: var(--klx-i-plus); }
.klx-i-minus { --klx-i: var(--klx-i-minus); }
.klx-i-check { --klx-i: var(--klx-i-check); }
.klx-i-info { --klx-i: var(--klx-i-info); }
.klx-i-quote { --klx-i: var(--klx-i-quote); }
.klx-i-user { --klx-i: var(--klx-i-user); }
.klx-i-calendar { --klx-i: var(--klx-i-calendar); }
.klx-i-layers { --klx-i: var(--klx-i-layers); }
.klx-i-grid { --klx-i: var(--klx-i-grid); }
.klx-i-home { --klx-i: var(--klx-i-home); }
.klx-i-briefcase { --klx-i: var(--klx-i-briefcase); }
.klx-i-image { --klx-i: var(--klx-i-image); }
.klx-i-cube { --klx-i: var(--klx-i-cube); }
.klx-i-home-check { --klx-i: var(--klx-i-home-check); }
.klx-i-ruler { --klx-i: var(--klx-i-ruler); }
.klx-i-svc-kitchen { --klx-i: var(--klx-i-svc-kitchen); }
.klx-i-svc-wardrobe { --klx-i: var(--klx-i-svc-wardrobe); }
.klx-i-svc-living { --klx-i: var(--klx-i-svc-living); }
.klx-i-svc-shop { --klx-i: var(--klx-i-svc-shop); }
.klx-i-svc-bath { --klx-i: var(--klx-i-svc-bath); }
.klx-i-svc-renovation { --klx-i: var(--klx-i-svc-renovation); }

/* Service icon aliases used by patterns (klx-svc-*). */
.klx-svc-kitchen { --klx-i: var(--klx-i-svc-kitchen); }
.klx-svc-wardrobe,
.klx-svc-closet { --klx-i: var(--klx-i-svc-wardrobe); }
.klx-svc-living { --klx-i: var(--klx-i-svc-living); }
.klx-svc-shop { --klx-i: var(--klx-i-svc-shop); }
.klx-svc-bath { --klx-i: var(--klx-i-svc-bath); }
.klx-svc-renovation { --klx-i: var(--klx-i-svc-renovation); }
.klx-svc-design { --klx-i: var(--klx-i-ruler); }
.klx-svc-parquet { --klx-i: var(--klx-i-grid); }
.klx-svc-door { --klx-i: var(--klx-i-home); }
.klx-svc-office { --klx-i: var(--klx-i-briefcase); }

/* ==========================================================================
   1. Base
   ========================================================================== */

html {
	scroll-padding-top: var(--klx-sticky-offset);
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
}

@media (prefers-reduced-motion: no-preference) {
	html {
		scroll-behavior: smooth;
	}
}

body {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
	overflow-wrap: break-word;
}

::selection {
	background: var(--klx-accent);
	color: var(--klx-on-accent);
}

/* Header, main and footer touch each other; sections carry their own spacing. */
.wp-site-blocks > * {
	margin-block: 0;
}

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 2px solid var(--klx-accent);
	outline-offset: 2px;
}

:where(h1, h2, h3, h4, h5, h6) {
	overflow-wrap: break-word;
	text-wrap: balance;
}

:where(p, li, dd, figcaption) {
	text-wrap: pretty;
}

img,
video {
	max-width: 100%;
	height: auto;
}

hr {
	border: 0;
	border-top: 1px solid var(--klx-line);
}

.screen-reader-text,
.klx-visually-hidden {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
	word-wrap: normal !important;
}

.skip-link.screen-reader-text:focus {
	clip: auto;
	clip-path: none;
	width: auto;
	height: auto;
	z-index: 100001;
	padding: 12px 20px;
	background: var(--klx-accent);
	color: var(--klx-on-accent);
	font-weight: 700;
	text-decoration: none;
	inset-inline-start: 12px;
	top: 12px;
}

/* ==========================================================================
   2. Utilities
   ========================================================================== */

/* Eyebrow / kicker: 14/600 accent with a 40px rule before it (28px on mobile). */
.klx-eyebrow,
.klx-kicker,
.is-style-eyebrow {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 14px;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	line-height: 1.6;
	color: var(--klx-accent);
}

.klx-eyebrow::before,
.klx-kicker::before,
.is-style-eyebrow::before {
	content: "";
	flex: none;
	width: 40px;
	height: 1px;
	background: currentColor;
}

.klx-eyebrow a,
.klx-kicker a {
	color: inherit;
	text-decoration: none;
}

:is(.klx-eyebrow, .klx-kicker, .is-style-eyebrow) + :is(h1, h2, h3, .wp-block-post-title, .wp-block-query-title, .wp-block-heading) {
	margin-block-start: 16px;
}

/* Section rhythm (88px desktop → 48px mobile). */
.klx-section {
	padding-block: var(--klx-section-y);
}

.klx-section-head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px 48px;
	margin-block-end: 48px;
}

.klx-section-head.klx-section-head > * {
	margin-block: 0;
}

.klx-section-head :is(h2, .wp-block-heading) {
	margin-block-end: 0;
}

.klx-section-head__aside {
	max-width: 440px;
}

.klx-section-head__aside.klx-section-head__aside > * + * {
	margin-block-start: 12px;
}

.klx-section-head__desc,
.klx-section-head__aside > p:not(.klx-more),
.klx-section-head > p {
	max-width: 440px;
	color: var(--klx-muted);
	line-height: 1.9;
}

/* Front page / full-width pages: stacked full-bleed sections touch each other. */
.klx-flush.klx-flush > .alignfull,
.klx-flush.klx-flush > .alignfull + *,
.klx-flush.klx-flush > :first-child {
	margin-block-start: 0;
}

.klx-flush.klx-flush > .alignfull {
	margin-block-end: 0;
}

/*
 * Per-device visibility carried over from Elementor by the migrator (Elementor breakpoints:
 * tablet 768px, desktop 1025px). `body:not(.editor-styles-wrapper)` keeps everything visible in
 * the editor, where this file is loaded as an editor style.
 */
@media (min-width: 1025px) {
	body:not(.editor-styles-wrapper) .klx-hide-desktop {
		display: none !important;
	}
}

@media (min-width: 768px) and (max-width: 1024.98px) {
	body:not(.editor-styles-wrapper) .klx-hide-tablet {
		display: none !important;
	}
}

@media (max-width: 767.98px) {
	body:not(.editor-styles-wrapper) .klx-hide-mobile {
		display: none !important;
	}
}

/* Generic responsive grid (post templates, link cards). */
.klx-grid {
	--klx-cols: 3;
	display: grid;
	grid-template-columns: repeat(var(--klx-cols), minmax(0, 1fr));
	gap: var(--klx-grid-gap);
	margin: 0;
	padding: 0;
	list-style: none;
}

.klx-grid--feature {
	row-gap: 32px;
}

.klx-grid.klx-grid > * {
	margin: 0;
	min-width: 0;
}

.klx-grid--2 {
	--klx-cols: 2;
	gap: var(--klx-grid-gap);
}

.klx-grid > li,
.klx-grid > .wp-block-post {
	display: flex;
}

.klx-grid > li > *,
.klx-grid > .wp-block-post > * {
	flex: 1 1 auto;
	min-width: 0;
}

@media (min-width: 1024px) {
	.klx-grid--feature > :first-child {
		grid-column: span 2;
	}

	.klx-grid--feature > :first-child .wp-block-post-title {
		font-size: 24px;
		line-height: 1.5;
	}
}

@media (max-width: 1023.98px) {
	.klx-grid--3 {
		--klx-cols: 2;
	}
}

@media (max-width: 767.98px) {
	.klx-grid,
	.klx-grid--2,
	.klx-grid--3 {
		--klx-cols: 1;
		gap: 16px;
	}
}

/* Card link that covers the whole card (put the class on the heading / title block). */
.klx-stretch a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

.klx-stretch a:focus-visible {
	outline: none;
}

.klx-stretch a:focus-visible::after {
	outline: 2px solid var(--klx-accent);
	outline-offset: -2px;
}

/* Links that must stay clickable above a stretched link. */
:is(.klx-card, .klx-project-card, .klx-post-card) :is(.wp-block-post-terms a, .wp-block-read-more, .klx-more a, p a, li a) {
	position: relative;
	z-index: 2;
}

/* Arrow after a link or button (RTL "forward" = pointing left). */
.klx-arrow :is(a, .wp-block-button__link)::after,
a.klx-arrow::after,
.klx-more a::after,
.wp-block-button.is-style-outline > .wp-block-button__link::after,
.wp-block-button.is-style-text-link > .wp-block-button__link::after,
.klx-pagination .wp-block-query-pagination-next::after,
.klx-pagination .wp-block-comments-pagination-next::after {
	content: "";
	display: inline-block;
	flex: none;
	width: 18px;
	height: 18px;
	background-color: currentColor;
	-webkit-mask: var(--klx-i-arrow) center / contain no-repeat;
	mask: var(--klx-i-arrow) center / contain no-repeat;
}

.klx-arrow:not(a):not(:has(a, .wp-block-button__link))::after,
.klx-more:not(:has(a))::after {
	content: "";
	display: inline-block;
	flex: none;
	width: 18px;
	height: 18px;
	background-color: currentColor;
	-webkit-mask: var(--klx-i-arrow) center / contain no-repeat;
	mask: var(--klx-i-arrow) center / contain no-repeat;
}

.klx-arrow:not(a):not(:has(a, .wp-block-button__link)),
.klx-more:not(:has(a)) {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	width: fit-content;
	color: var(--klx-accent);
}

.klx-arrow-back a::before,
.klx-pagination .wp-block-query-pagination-previous::before,
.klx-pagination .wp-block-comments-pagination-previous::before {
	content: "";
	display: inline-block;
	flex: none;
	width: 18px;
	height: 18px;
	background-color: currentColor;
	-webkit-mask: var(--klx-i-arrow-back) center / contain no-repeat;
	mask: var(--klx-i-arrow-back) center / contain no-repeat;
}

.klx-arrow a,
a.klx-arrow,
.klx-arrow-back a,
.klx-more a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

/* Text link (DS .btn-link): 15/600 accent with arrow. */
.klx-more {
	font-size: var(--wp--custom--font-size--card);
	font-weight: 600;
	line-height: 1.6;
}

.klx-more a,
a.klx-arrow,
.klx-arrow a:not(.wp-block-button__link),
.klx-arrow-back a,
.wp-block-read-more {
	min-height: var(--klx-touch);
	color: var(--klx-accent);
	text-decoration: none;
}

.klx-more a:hover,
a.klx-arrow:hover,
.klx-arrow a:not(.wp-block-button__link):hover,
.klx-arrow-back a:hover,
.wp-block-read-more:hover {
	color: var(--klx-accent-hover);
	text-decoration: underline;
	text-underline-offset: 6px;
}

.wp-block-read-more {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	width: fit-content;
}

/* Dot-separated inline list (hero services, card meta). */
.klx-dots {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 18px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.klx-dots > * + *::before {
	content: "";
	display: inline-block;
	width: 4px;
	height: 4px;
	margin-inline-end: 18px;
	border-radius: 50%;
	background: var(--klx-line-strong);
	vertical-align: middle;
}

/* Row of plain links with an accent label ("سایر خدمات", "برخی از خدمات"). */
.klx-link-row,
.klx-services-more {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px 32px;
	margin-block-start: 32px;
	padding-block-start: 24px;
	border-top: 1px solid var(--klx-line);
	font-size: var(--wp--custom--font-size--card);
	line-height: 1.6;
}

.klx-link-row.klx-link-row > *,
.klx-services-more.klx-services-more > * {
	margin: 0;
}

.klx-link-row__label {
	font-weight: 700;
	color: var(--klx-accent);
}

:is(.klx-link-row, .klx-services-more) a {
	color: var(--klx-text);
	text-decoration: none;
}

:is(.klx-link-row, .klx-services-more) a:hover {
	color: var(--klx-accent);
}

@media (max-width: 767.98px) {
	.klx-link-row,
	.klx-services-more {
		gap: 0 20px;
		margin-block-start: 20px;
		padding-block-start: 16px;
	}

	:is(.klx-link-row, .klx-services-more) > :first-child {
		flex-basis: 100%;
		font-size: 14px;
	}

	:is(.klx-link-row, .klx-services-more) a {
		display: inline-flex;
		align-items: center;
		min-height: var(--klx-touch);
	}
}

.klx-empty {
	color: var(--klx-muted);
}

/* ==========================================================================
   3. Header (two rows on desktop: 32px top bar + 96px main bar; 64px on mobile)
   ========================================================================== */

.klx-site-header {
	position: sticky;
	/* The top bar scrolls away, the main bar stays. */
	top: calc(var(--wp-admin--admin-bar--height, 0px) - var(--klx-topbar-h) - 1px);
	z-index: 60;
	background: var(--klx-ground);
}

.klx-site-header.is-scrolled .klx-mainbar {
	box-shadow: 0 1px 0 var(--klx-line), 0 12px 32px -24px rgba(0, 0, 0, 0.8);
}

.klx-header {
	background: var(--klx-ground);
	border-bottom: 1px solid var(--klx-line);
}

.klx-header.klx-header > * {
	margin-block: 0;
}

/* Top bar */
.klx-header .klx-topbar {
	box-sizing: border-box;
	min-height: var(--klx-topbar-h);
	padding-inline: var(--klx-pad-inline);
	background: var(--klx-surface);
	border-bottom: 1px solid var(--klx-line);
	font-size: var(--wp--custom--font-size--meta);
	line-height: 1.6;
	color: var(--klx-muted);
}

.klx-topbar.klx-topbar > * {
	margin: 0;
}

.klx-topbar a {
	color: var(--klx-muted);
	text-decoration: none;
}

.klx-topbar a:hover {
	color: var(--klx-accent);
}

/* Main bar: logo · navigation · call to action */
.klx-header .klx-mainbar {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: 24px;
	box-sizing: border-box;
	min-height: var(--klx-mainbar-h);
	padding-inline: var(--klx-pad-inline);
	background: var(--klx-ground);
}

.klx-mainbar.klx-mainbar > * {
	margin: 0;
}

.klx-mainbar .klx-logo {
	justify-self: start;
}

.klx-header .wp-block-site-logo.klx-logo img {
	display: block;
	width: 95px;
	height: auto;
}

.klx-logo-invert img {
	filter: invert(1);
}

.klx-logo a {
	display: block;
}

.klx-mainbar .klx-nav {
	justify-self: center;
}

.klx-mainbar .klx-header-cta {
	justify-self: end;
	margin: 0;
}

.klx-header-cta .wp-block-button__link {
	min-height: 48px;
	padding: 0 26px;
	font-size: var(--wp--custom--font-size--nav);
}

.klx-mainbar .klx-header-call {
	display: none;
}

/* Navigation (core/navigation) */
.klx-header .klx-nav {
	--klx-nav-gap: 40px;
	font-size: var(--wp--custom--font-size--nav);
	font-weight: 500;
}

.klx-header .klx-nav .wp-block-navigation__container {
	gap: var(--klx-nav-gap);
}

.klx-header .klx-nav :is(.wp-block-navigation__container, .wp-block-page-list) > .wp-block-navigation-item > .wp-block-navigation-item__content {
	padding: 10px 0 8px;
	border-bottom: 2px solid transparent;
	color: var(--klx-text);
	text-decoration: none;
	transition: color 0.15s ease, border-color 0.15s ease;
}

.klx-header .klx-nav .wp-block-navigation-item__content:hover {
	color: var(--klx-accent);
}

/*
 * Current item = the link core marks with aria-current="page" (computed on every request), or the
 * top-level item that contains it. The current-menu-* CLASSES are not used: when core converts the
 * classic menu into a wp_navigation post it freezes the classes of the request that triggered the
 * conversion into className (e.g. "خانه" would look current on every page).
 */
.klx-header .klx-nav :is(.wp-block-navigation__container, .wp-block-page-list) > .wp-block-navigation-item:has([aria-current="page"]) > .wp-block-navigation-item__content {
	border-bottom-color: var(--klx-accent);
	font-weight: 700;
}

/* Sub-menus */
.klx-header .klx-nav.wp-block-navigation .wp-block-navigation__submenu-container {
	min-width: 240px;
	padding-block: 8px;
	background-color: var(--klx-surface);
	border: 1px solid var(--klx-line);
	color: var(--klx-text);
}

.klx-header .klx-nav.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	padding: 10px 20px;
	border: 0;
	color: var(--klx-text);
	font-weight: 500;
}

.klx-header .klx-nav.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
.klx-header .klx-nav.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content[aria-current="page"] {
	background-color: var(--klx-raised);
	color: var(--klx-accent);
}

.klx-header .klx-nav .wp-block-navigation__submenu-icon {
	color: var(--klx-muted);
}

/* Menu button (hamburger) */
.klx-header .klx-nav .wp-block-navigation__responsive-container-open {
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: var(--klx-touch);
	height: var(--klx-touch);
	padding: 0;
	border: 1px solid var(--klx-line);
	border-radius: var(--klx-radius);
	background: transparent;
	color: var(--klx-text);
}

.klx-header .klx-nav .wp-block-navigation__responsive-container-open svg {
	width: 22px;
	height: 22px;
}

/* Overlay menu */
.klx-header .klx-nav .wp-block-navigation__responsive-container.is-menu-open {
	--navigation-layout-justification-setting: flex-start;
	--navigation-layout-justify: flex-start;
	--navigation-layout-align: flex-start;
	padding: calc(var(--wp-admin--admin-bar--height, 0px) + 12px) 20px 32px;
	background-color: var(--klx-ground);
	color: var(--klx-text);
}

.klx-header .klx-nav .is-menu-open .wp-block-navigation__responsive-container-close {
	display: flex;
	align-items: center;
	justify-content: center;
	width: var(--klx-touch);
	height: var(--klx-touch);
	border: 1px solid var(--klx-line);
	border-radius: var(--klx-radius);
	color: var(--klx-text);
}

.klx-header .klx-nav .is-menu-open .wp-block-navigation__responsive-container-content {
	padding-top: 72px;
	align-items: stretch;
}

.klx-header .klx-nav .is-menu-open :is(.wp-block-navigation__container, .wp-block-page-list) {
	--navigation-layout-justification-setting: flex-start;
	--navigation-layout-justify: flex-start;
	--navigation-layout-align: flex-start;
	gap: 0;
	width: 100%;
	align-items: stretch;
}

.klx-header .klx-nav .is-menu-open .wp-block-navigation-item {
	--navigation-layout-justification-setting: flex-start;
	align-items: flex-start;
	text-align: start;
}

.klx-header .klx-nav .is-menu-open :is(.wp-block-navigation__container, .wp-block-page-list) > .wp-block-navigation-item {
	width: 100%;
	border-bottom: 1px solid var(--klx-line);
}

.klx-header .klx-nav .is-menu-open :is(.wp-block-navigation__container, .wp-block-page-list) > .wp-block-navigation-item > .wp-block-navigation-item__content {
	display: flex;
	align-items: center;
	min-height: 56px;
	padding: 8px 0;
	border: 0;
	font-size: 18px;
	font-weight: 600;
}

.klx-header .klx-nav .is-menu-open .wp-block-navigation__submenu-container {
	min-width: 0;
	padding: 0 0 8px;
	padding-inline-start: 16px;
	border: 0;
	background: transparent;
}

.klx-header .klx-nav.wp-block-navigation .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	padding: 10px 0;
	background: transparent;
	color: var(--klx-muted);
	font-size: 16px;
	font-weight: 500;
}

.klx-header .klx-nav .is-menu-open .wp-block-navigation-item__content[aria-current="page"],
.klx-header .klx-nav.wp-block-navigation .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content[aria-current="page"] {
	color: var(--klx-accent);
}

/* Tablet: keep the menu button up to 1023px (core switches at 600px). */
@media (min-width: 600px) and (max-width: 1023.98px) {
	.klx-header .klx-nav .wp-block-navigation__responsive-container-open:not(.always-shown) {
		display: flex;
	}

	.klx-header .klx-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
		display: none;
	}
}

@media (min-width: 1024px) and (max-width: 1199.98px) {
	.klx-header .klx-nav {
		--klx-nav-gap: 24px;
	}
}

@media (max-width: 1023.98px) {
	.klx-header .klx-mainbar {
		display: flex;
		gap: 12px;
	}

	.klx-mainbar .klx-logo {
		margin-inline-end: auto;
	}

	.klx-mainbar .klx-header-cta {
		order: 1;
	}

	.klx-mainbar .klx-nav {
		order: 2;
	}
}

@media (max-width: 767.98px) {
	.klx-site-header {
		top: var(--wp-admin--admin-bar--height, 0px);
	}

	.klx-header .klx-topbar {
		display: none;
	}

	.klx-header .klx-mainbar {
		gap: 8px;
		min-height: var(--wp--custom--header--mobile);
		padding-inline: 16px 12px;
	}

	.klx-header .wp-block-site-logo.klx-logo img {
		width: 63px;
	}

	.klx-mainbar .klx-header-cta {
		display: none;
	}

	/* Round call button (klx/contact-info "mobile-bar" variant; only its call link is shown). */
	.klx-mainbar .klx-header-call {
		display: flex;
		order: 1;
		gap: 0;
	}

	.klx-header-call .klx-ci__cta {
		display: none;
	}

	.klx-header-call .klx-ci__call {
		width: var(--klx-touch);
		height: var(--klx-touch);
		padding: 0;
		border: 0;
		border-radius: 50%;
		background: var(--klx-accent);
		color: var(--klx-on-accent);
	}

	.klx-header-call .klx-ci__call:hover {
		background: var(--klx-accent-hover);
		color: var(--klx-on-accent);
	}

	.klx-header-call .klx-ci__icon {
		color: inherit;
	}

	.klx-header-call .klx-ci__call-text {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip-path: inset(50%);
		white-space: nowrap;
	}
}

@media (max-width: 600px) {
	.admin-bar .klx-site-header {
		top: 0;
	}
}

/* ==========================================================================
   4. Footer
   ========================================================================== */

.klx-footer {
	display: flex;
	flex-direction: column;
	padding: 72px var(--klx-pad-inline) 0;
	background: var(--klx-surface);
	border-top: 1px solid var(--klx-line);
	color: var(--klx-muted);
}

.klx-footer.klx-footer > * {
	margin-block: 0;
}

.klx-footer .klx-footer__grid {
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr;
	gap: 64px;
	margin-block-end: 56px;
}

.klx-footer .klx-footer__grid > * {
	margin: 0;
	min-width: 0;
}

.klx-footer .wp-block-site-logo.klx-logo img {
	display: block;
	width: 116px;
	height: auto;
}

.klx-footer .klx-footer__brand > * {
	margin-block: 0;
}

.klx-footer .klx-footer__tagline {
	margin-block-start: 20px;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.8;
	color: var(--klx-text);
}

.klx-footer .klx-footer__about {
	max-width: 380px;
	margin-block-start: 6px;
	font-size: var(--wp--custom--font-size--card);
	line-height: 1.8;
}

.klx-footer .klx-footer__brand .klx-social {
	margin-block-start: 24px;
}

.klx-footer .klx-footer__col > * {
	margin-block: 0;
}

.klx-footer .klx-footer__title {
	margin: 0 0 20px;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.6;
	color: var(--klx-text);
}

.klx-footer .klx-footer__links {
	display: flex;
	flex-direction: column;
	gap: 14px;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: var(--wp--custom--font-size--card);
	line-height: 1.6;
}

.klx-footer a {
	color: var(--klx-muted);
	text-decoration: none;
}

.klx-footer a:hover {
	color: var(--klx-accent);
}

.klx-footer .klx-footer__bottom {
	margin-block-start: auto;
	padding-block: 24px 28px;
	border-top: 1px solid var(--klx-line);
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.6;
}

.klx-footer .klx-footer__bottom > * {
	margin: 0;
}

@media (max-width: 1023.98px) {
	.klx-footer .klx-footer__grid {
		gap: 40px;
	}
}

@media (max-width: 767.98px) {
	.klx-footer {
		padding-block-start: 44px;
	}

	.klx-footer .klx-footer__grid {
		grid-template-columns: 1fr 1fr;
		gap: 36px 20px;
		margin-block-end: 32px;
	}

	.klx-footer .klx-footer__brand {
		grid-column: 1 / -1;
	}

	.klx-footer .wp-block-site-logo.klx-logo img {
		width: 84px;
	}

	.klx-footer .klx-footer__tagline {
		margin-block-start: 16px;
		font-size: var(--wp--custom--font-size--card);
		line-height: 1.7;
	}

	.klx-footer .klx-footer__about {
		margin-block-start: 4px;
		font-size: var(--wp--preset--font-size--small);
	}

	.klx-footer .klx-footer__brand .klx-social {
		margin-block-start: 20px;
	}

	.klx-footer .klx-footer__title {
		margin-block-end: 8px;
		font-size: var(--wp--custom--font-size--card);
	}

	.klx-footer .klx-footer__links {
		gap: 0;
	}

	.klx-footer .klx-footer__links a {
		display: block;
		padding-block: 10px;
	}

	.klx-footer .klx-contact-info--footer {
		font-size: var(--wp--preset--font-size--small);
		line-height: 1.7;
	}

	.klx-footer .klx-contact-info--footer .klx-ci__list {
		gap: 0;
	}

	.klx-footer .klx-contact-info--footer .klx-ci__item {
		padding-block: 10px;
	}

	.klx-footer .klx-footer__bottom {
		justify-content: center;
		padding-block: 20px 24px;
		font-size: var(--wp--custom--font-size--meta);
		text-align: center;
	}

	.klx-footer .klx-footer__domain {
		display: none;
	}

	.klx-footer .klx-social--boxed .klx-social__link {
		width: var(--klx-touch);
		height: var(--klx-touch);
	}
}

/* ==========================================================================
   5. Mobile action bar (fixed, < 768px only)
   ========================================================================== */

.klx-mobile-bar {
	display: none;
}

@media (max-width: 767.98px) {
	.klx-mobile-bar:has(.klx-contact-info) {
		display: block;
		position: fixed;
		inset-inline: 0;
		bottom: 0;
		z-index: 50;
		box-sizing: border-box;
		margin: 0;
		padding: 12px 16px calc(12px + env(safe-area-inset-bottom, 0px));
		background: var(--klx-raised);
		border-top: 1px solid var(--klx-line);
	}

	.klx-mobile-bar .klx-contact-info {
		margin: 0;
	}

	.wp-site-blocks:has(.klx-mobile-bar .klx-contact-info) {
		padding-bottom: calc(var(--klx-mobilebar-h) + env(safe-area-inset-bottom, 0px));
	}

	html {
		scroll-padding-bottom: calc(var(--klx-mobilebar-h) + 20px);
	}

	html:is(.klx-typing, .klx-menu-open) .klx-mobile-bar {
		display: none;
	}
}

/* ==========================================================================
   6. Buttons, links, chips, tags, pagination
   ========================================================================== */

.wp-element-button,
.wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	box-sizing: border-box;
	min-height: var(--klx-touch);
	text-align: center;
	transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.wp-block-button__link:hover {
	text-decoration: none;
}

.wp-block-buttons.wp-block-buttons {
	gap: 16px;
}

.wp-block-button.has-custom-width .wp-block-button__link,
.wp-block-button__width-100 .wp-block-button__link {
	width: 100%;
}

/* Outline (DS .btn-outline) — border/colour from theme.json; hover here. */
.wp-block-button.is-style-outline > .wp-block-button__link:hover,
.wp-block-button.is-style-outline > .wp-block-button__link:focus-visible {
	background-color: transparent;
	border-color: var(--klx-accent);
	color: var(--klx-accent);
}

/* Text link style for core/button (DS .btn-link). */
.wp-block-button.is-style-text-link > .wp-block-button__link {
	padding: 0;
	background: transparent;
	color: var(--klx-accent);
	font-size: var(--wp--custom--font-size--card);
	font-weight: 600;
	gap: 8px;
}

.wp-block-button.is-style-text-link > .wp-block-button__link:hover {
	background: transparent;
	color: var(--klx-accent-hover);
	text-decoration: underline;
	text-underline-offset: 6px;
}

:is(.wp-element-button, .wp-block-button__link, button, input[type="submit"]):is(:disabled, [aria-disabled="true"]) {
	background-color: var(--klx-raised);
	border: 1px solid var(--klx-line);
	color: var(--klx-muted);
	cursor: not-allowed;
}

/* Chips (filters) and static tags */
.klx-chips-bar {
	gap: 12px;
}

.klx-chips,
.klx-chip-list {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.klx-chip-list {
	gap: 8px;
}

.klx-chips > li,
.klx-chip {
	margin: 0;
	list-style: none;
}

.klx-chip > a,
.klx-chips a {
	display: inline-flex;
	align-items: center;
	box-sizing: border-box;
	min-height: var(--klx-touch);
	padding: 0 22px;
	border: 1px solid var(--klx-line);
	border-radius: var(--klx-radius);
	color: var(--klx-text);
	font-size: var(--wp--custom--font-size--card);
	font-weight: 500;
	line-height: 1.6;
	text-decoration: none;
	transition: border-color 0.15s ease, color 0.15s ease, background-color 0.15s ease;
}

.klx-chip > a:hover,
.klx-chips a:hover {
	border-color: var(--klx-accent);
	color: var(--klx-accent);
}

.klx-chips .current-cat > a,
.klx-chip > a[aria-current],
.klx-chips a[aria-current],
.post-type-archive-portfolio .klx-chip--all > a,
.blog .klx-chip--all > a {
	background: var(--klx-accent);
	border-color: var(--klx-accent);
	color: var(--klx-on-accent);
	font-weight: 700;
}

/* Static chip (no link), e.g. "زمینه‌های فعالیت" */
li.klx-chip:not(:has(> a)),
.klx-chip-list > li:not(:has(> a)) {
	display: inline-flex;
	align-items: center;
	box-sizing: border-box;
	min-height: 36px;
	padding: 0 14px;
	border: 1px solid var(--klx-line);
	border-radius: var(--klx-radius);
	background: var(--klx-ground);
	color: var(--klx-muted);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
	line-height: 1.6;
}

/* Post tags (core/post-terms with .klx-tags) */
.klx-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.klx-tags .wp-block-post-terms__separator {
	display: none;
}

.klx-tags a {
	display: inline-flex;
	align-items: center;
	box-sizing: border-box;
	min-height: 32px;
	padding: 0 12px;
	background: var(--klx-surface);
	border: 1px solid var(--klx-line);
	border-radius: var(--klx-radius);
	color: var(--klx-muted);
	font-size: var(--wp--custom--font-size--meta);
	font-weight: 500;
	text-decoration: none;
}

.klx-tags a:hover {
	border-color: var(--klx-accent);
	color: var(--klx-accent);
}

/* Category chip above a post title */
.klx-chip-terms .wp-block-post-terms__separator {
	display: none;
}

.klx-chip-terms {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.klx-chip-terms a {
	display: inline-flex;
	align-items: center;
	box-sizing: border-box;
	min-height: 32px;
	padding: 0 14px;
	background: var(--klx-surface);
	border: 1px solid var(--klx-line);
	border-radius: var(--klx-radius);
	color: var(--klx-accent);
	font-size: var(--wp--custom--font-size--meta);
	font-weight: 600;
	text-decoration: none;
}

/* Pagination (query + comments) */
.klx-pagination,
.wp-block-query-pagination.klx-pagination {
	flex-wrap: wrap;
	gap: 8px;
	margin-block-start: 56px;
	font-size: var(--wp--custom--font-size--card);
	line-height: 1.6;
}

.klx-pagination :is(.wp-block-query-pagination-numbers, .wp-block-comments-pagination-numbers) {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.klx-pagination :is(.page-numbers, .wp-block-query-pagination-previous, .wp-block-query-pagination-next, .wp-block-comments-pagination-previous, .wp-block-comments-pagination-next) {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	box-sizing: border-box;
	min-width: 48px;
	height: 48px;
	margin: 0;
	padding: 0 14px;
	border: 1px solid var(--klx-line);
	border-radius: var(--klx-radius);
	color: var(--klx-text);
	font-weight: 500;
	text-decoration: none;
}

.klx-pagination :is(.wp-block-query-pagination-previous, .wp-block-query-pagination-next, .wp-block-comments-pagination-previous, .wp-block-comments-pagination-next) {
	padding-inline: 22px;
	font-weight: 600;
}

.klx-pagination :is(a.page-numbers, .wp-block-query-pagination-previous, .wp-block-query-pagination-next, .wp-block-comments-pagination-previous, .wp-block-comments-pagination-next):hover {
	border-color: var(--klx-accent);
	color: var(--klx-accent);
}

.klx-pagination .page-numbers.current {
	background: var(--klx-accent);
	border-color: var(--klx-accent);
	color: var(--klx-on-accent);
	font-weight: 700;
}

.klx-pagination .page-numbers.dots {
	min-width: 28px;
	padding: 0;
	border: 0;
	color: var(--klx-muted);
}

@media (max-width: 767.98px) {
	.klx-pagination,
	.wp-block-query-pagination.klx-pagination {
		margin-block-start: 32px;
	}

	.klx-pagination :is(.page-numbers, .wp-block-query-pagination-previous, .wp-block-query-pagination-next) {
		min-width: var(--klx-touch);
		height: var(--klx-touch);
	}
}

/* ==========================================================================
   7. Cards
   ========================================================================== */

.klx-card {
	position: relative;
	box-sizing: border-box;
	background-color: var(--klx-surface);
	border: 1px solid var(--klx-line);
}

.is-style-card {
	box-sizing: border-box;
	padding: 32px;
	background-color: var(--klx-surface);
	border: 1px solid var(--klx-line);
}

/* --- Service card (DS .card-service) ------------------------------------ */
.klx-service-card {
	--klx-card-pad: 32px;
	display: flex;
	flex-direction: column;
	gap: 20px;
	padding: var(--klx-card-pad);
	color: var(--klx-text);
}

.klx-service-card.klx-service-card {
	align-items: stretch;
}

.klx-service-card.klx-service-card > * {
	margin: 0;
}

/* Icon badge: 56px hairline box with a 28px accent icon (from klx-svc-* / klx-i-*). */
.klx-service-card:is([class*="klx-svc-"], [class*="klx-i-"])::before {
	content: "";
	flex: none;
	order: -2;
	box-sizing: border-box;
	width: 56px;
	height: 56px;
	border: 1px solid var(--klx-line);
}

.klx-service-card:is([class*="klx-svc-"], [class*="klx-i-"])::after {
	content: "";
	position: absolute;
	top: calc(var(--klx-card-pad) + 14px);
	inset-inline-start: calc(var(--klx-card-pad) + 14px);
	width: 28px;
	height: 28px;
	background-color: var(--klx-accent);
	-webkit-mask: var(--klx-i, var(--klx-i-cube)) center / contain no-repeat;
	mask: var(--klx-i, var(--klx-i-cube)) center / contain no-repeat;
	pointer-events: none;
}

.klx-service-card .klx-card__num {
	position: absolute;
	top: var(--klx-card-pad);
	inset-inline-end: var(--klx-card-pad);
	margin: 0;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
	line-height: 1.6;
	color: var(--klx-muted);
}

.klx-service-card :is(h2, h3, h4) {
	margin: 4px 0 0;
	font-size: var(--wp--preset--font-size--h-4);
	font-weight: 700;
	line-height: 1.5;
}

.klx-service-card :is(h2, h3, h4) a {
	color: inherit;
	text-decoration: none;
}

.klx-service-card > p:not(.klx-more):not(.klx-card__num) {
	font-size: var(--wp--custom--font-size--card);
	line-height: 1.9;
	color: var(--klx-muted);
}

.klx-service-card > .klx-more {
	margin-block-start: auto !important;
	align-self: flex-start;
}

.klx-service-card:hover {
	border-color: var(--klx-line-strong);
}

@media (max-width: 767.98px) {
	/* Compact 2-column tiles: icon + title, whole tile is the link. */
	.is-layout-grid:has(> .klx-service-card),
	.klx-services-grid.klx-services-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 12px;
	}

	.klx-service-card {
		--klx-card-pad: 16px;
		gap: 12px;
		min-height: 124px;
		padding: 16px !important;
	}

	.klx-service-card:is([class*="klx-svc-"], [class*="klx-i-"])::before {
		width: 28px;
		height: 28px;
		border: 0;
		background-color: var(--klx-accent);
		-webkit-mask: var(--klx-i, var(--klx-i-cube)) center / contain no-repeat;
		mask: var(--klx-i, var(--klx-i-cube)) center / contain no-repeat;
	}

	.klx-service-card:is([class*="klx-svc-"], [class*="klx-i-"])::after {
		display: none;
	}

	.klx-service-card :is(h2, h3, h4) {
		margin: 0;
		font-size: var(--wp--custom--font-size--card);
		line-height: 1.6;
	}

	.klx-service-card > p:not(.klx-more) {
		display: none;
	}

	.klx-service-card.klx-service-card > .klx-more {
		display: none;
	}

	/* Older markup: title without link, "بیشتر" carries it → stretch that link over the tile. */
	.klx-service-card.klx-service-card:not(:has(:is(h2, h3, h4) a)) > .klx-more:has(a) {
		display: block;
		position: absolute;
		inset: 0;
		margin: 0 !important;
		z-index: 2;
	}

	.klx-service-card:not(:has(:is(h2, h3, h4) a)) > .klx-more a {
		display: block;
		width: 100%;
		height: 100%;
		font-size: 0;
		color: transparent;
	}

	.klx-service-card:not(:has(:is(h2, h3, h4) a)) > .klx-more a::after {
		display: none;
	}
}

/* --- Project card (DS .card-project) ------------------------------------ */
.klx-project-card {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	color: var(--klx-text);
}

.klx-project-card.klx-project-card > * {
	margin: 0;
}

.klx-project-card .wp-block-post-featured-image {
	position: relative;
	margin: 0;
	overflow: hidden;
	background: var(--klx-raised);
}

.klx-project-card .wp-block-post-featured-image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.4s ease;
}

.klx-project-card:hover .wp-block-post-featured-image img {
	transform: scale(1.03);
}

.klx-project-card--stacked .wp-block-post-featured-image {
	height: 300px;
}

.klx-project-card--stacked .wp-block-post-featured-image img {
	aspect-ratio: auto !important;
}

.klx-project-card :is(.klx-project-card__body, .klx-card__body) {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	gap: 10px;
	box-sizing: border-box;
}

.klx-project-card .klx-project-card__body {
	padding: 24px 28px 28px;
}

.klx-project-card :is(.klx-project-card__body, .klx-card__body) > * {
	margin: 0;
}

.klx-project-card .wp-block-post-title {
	margin: 0;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.6;
}

.klx-project-card .wp-block-post-title a {
	color: var(--klx-text);
	text-decoration: none;
}

.klx-project-card .wp-block-read-more {
	display: flex;
	justify-content: space-between;
	width: auto;
	margin-block-start: auto !important;
	padding-block-start: 16px;
	border-top: 1px solid var(--klx-line);
}

/* Overlay variant: caption bar over the image (home gallery / related, desktop only). */
@media (min-width: 768px) {
	.klx-project-card--overlay {
		min-height: 360px;
	}

	.klx-project-card--overlay .wp-block-post-featured-image {
		position: absolute;
		inset: 0;
		height: 100%;
	}

	.klx-project-card--overlay :is(.klx-project-card__body, .klx-card__body) {
		position: absolute;
		inset-inline: 0;
		bottom: 0;
		z-index: 1;
		padding: 18px 22px;
		background: var(--klx-overlay-strong);
	}
}

@media (max-width: 767.98px) {
	.klx-project-card--stacked .wp-block-post-featured-image {
		height: 190px;
	}

	.klx-project-card .klx-project-card__body {
		padding: 14px 16px 16px;
	}

	.klx-project-card .wp-block-post-title {
		font-size: 17px;
		line-height: 1.5;
	}
}

/* --- Post card (DS .card-post) ------------------------------------------ */
.klx-post-card {
	display: flex;
	flex-direction: column;
	overflow: hidden;
}

.klx-post-card.klx-post-card > * {
	margin: 0;
}

.klx-post-card .wp-block-post-featured-image {
	height: 220px;
	margin: 0;
	overflow: hidden;
	background: var(--klx-raised);
}

.klx-post-card .wp-block-post-featured-image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	aspect-ratio: auto !important;
}

.klx-post-card :is(.klx-post-card__body, .klx-card__body) {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	box-sizing: border-box;
	padding: 24px 28px 28px;
}

.klx-post-card :is(.klx-post-card__body, .klx-card__body) > * {
	margin: 0;
}

.klx-post-card__meta {
	align-items: center;
	gap: 10px;
	font-size: var(--wp--custom--font-size--meta);
	line-height: 1.6;
}

.klx-post-card__meta.klx-post-card__meta > * {
	margin: 0;
}

.klx-post-card__meta .wp-block-post-date {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-size: inherit;
}

.klx-post-card__meta .wp-block-post-terms + .wp-block-post-date::before {
	content: "";
	width: 4px;
	height: 4px;
	border-radius: 50%;
	background: var(--klx-line-strong);
}

.klx-post-card__body > .wp-block-post-title {
	margin-block-start: 12px !important;
}

.klx-post-card .wp-block-post-title {
	font-size: 20px;
	font-weight: 700;
	line-height: 1.6;
}

.klx-post-card__body > .wp-block-post-excerpt {
	margin-block-start: 10px !important;
}

.klx-post-card .wp-block-post-excerpt__excerpt {
	display: -webkit-box;
	margin: 0;
	overflow: hidden;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	-webkit-box-orient: vertical;
}

.klx-post-card .wp-block-post-excerpt__more-text {
	display: none;
}

.klx-post-card .wp-block-read-more {
	margin-block-start: auto !important;
	padding-block-start: 20px;
}

@media (max-width: 767.98px) {
	.klx-post-card .wp-block-post-featured-image {
		height: 190px;
	}

	.klx-post-card :is(.klx-post-card__body, .klx-card__body) {
		padding: 18px 20px 20px;
	}

	.klx-post-card .wp-block-post-title {
		font-size: 17px;
	}
}

/* --- Search result card -------------------------------------------------- */
.klx-result {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 28px 32px;
}

.klx-result.klx-result > * {
	margin: 0;
}

.klx-result .wp-block-post-title {
	font-size: 20px;
	font-weight: 700;
	line-height: 1.6;
}

.klx-result .wp-block-read-more {
	margin-block-start: auto !important;
}

.klx-empty-state {
	padding: 40px;
}

.klx-empty-state__title {
	margin-block-start: 0;
	font-size: var(--wp--preset--font-size--h-4);
}

@media (max-width: 767.98px) {
	.klx-result,
	.klx-empty-state {
		padding: 20px;
	}
}

/* ==========================================================================
   8. Home / pattern sections
   ========================================================================== */

/* --- Hero (klx/hero): photo + panel. Mobile: photo on top; desktop: panel over photo. */
.klx-hero {
	position: relative;
	overflow: hidden;
}

.klx-hero.klx-hero {
	padding-inline: 0;
}

.klx-hero.klx-hero > * {
	margin-block: 0;
}

.klx-hero > .wp-block-image,
.klx-hero > figure {
	margin: 0;
	background: var(--klx-raised);
}

.klx-hero > .wp-block-image img {
	display: block;
	width: 100%;
	height: 300px;
	object-fit: cover;
	aspect-ratio: auto !important;
}

.klx-hero :is(.klx-hero__services, .klx-dots) {
	font-size: var(--wp--preset--font-size--small);
	color: var(--klx-muted);
}

.klx-hero :is(.klx-hero__services, .klx-dots) a {
	color: var(--klx-muted);
	text-decoration: none;
}

.klx-hero :is(.klx-hero__services, .klx-dots) a:hover {
	color: var(--klx-accent);
}

@media (min-width: 1024px) {
	.klx-hero {
		display: flex;
		min-height: 760px;
	}

	.klx-hero > .wp-block-image,
	.klx-hero > figure {
		position: absolute;
		inset: 0;
	}

	.klx-hero > .wp-block-image img {
		height: 100% !important;
	}

	.klx-hero .klx-hero__panel {
		position: relative;
		z-index: 1;
		display: flex;
		flex-direction: column;
		justify-content: center;
		box-sizing: border-box;
		width: min(760px, 100%);
		min-height: 760px;
		margin: 0 !important;
		padding-block: 96px 136px !important;
		padding-inline: var(--klx-gutter) 72px !important;
		background-color: var(--klx-overlay) !important;
	}

	.klx-hero .klx-hero__panel > * {
		margin-inline: 0 !important;
	}

	.klx-hero .klx-hero__panel :is(h1, .wp-block-heading) {
		margin-block-start: 28px;
	}

	.klx-hero .klx-hero__panel .wp-block-buttons {
		margin-block-start: 44px;
	}

	.klx-hero .klx-hero__services {
		position: absolute;
		inset-inline: var(--klx-gutter) 80px;
		bottom: 56px;
		margin: 0 !important;
	}
}

/* Stacked, full-width buttons on phones (hero, service intro, CTA band, section heads). */
@media (max-width: 767.98px) {
	:is(.klx-hero, .klx-service-intro, .klx-cta-band) .wp-block-buttons {
		flex-direction: column;
		align-items: stretch;
		gap: 12px;
	}

	:is(.klx-hero, .klx-service-intro, .klx-cta-band) .wp-block-button {
		width: 100%;
	}

	:is(.klx-hero, .klx-service-intro, .klx-cta-band) .wp-block-button__link {
		width: 100%;
		min-height: 52px;
	}

	.klx-section-head.klx-section-head {
		margin-block-end: 24px !important;
		gap: 16px;
	}

	.klx-section-head .wp-block-buttons {
		width: 100%;
	}

	.klx-section-head .wp-block-button,
	.klx-section-head .wp-block-button__link {
		width: 100%;
	}
}

/* --- Process steps (klx/process-steps) -----------------------------------
 * .klx-steps > .klx-steps__item > p.klx-steps__num + h3 + p
 * Desktop: 4 columns, 64px numbered circles joined by a hairline.
 * Mobile/tablet: vertical timeline with 48px circles.
 */
.klx-steps.klx-steps {
	gap: 32px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.klx-steps__item {
	position: relative;
	margin: 0;
}

.klx-steps__item.klx-steps__item > * {
	margin-block: 0;
}

.klx-steps__num {
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: 64px;
	height: 64px;
	border: 1px solid var(--klx-accent);
	border-radius: 50%;
	color: var(--klx-accent);
	font-size: 18px !important;
	font-weight: 600;
	line-height: 1;
}

.klx-steps__item :is(h3, h4) {
	margin-block-start: 28px !important;
	padding-inline-end: 32px;
	font-size: var(--wp--preset--font-size--h-4);
	font-weight: 700;
	line-height: 1.5;
}

.klx-steps__item > p:not(.klx-steps__num) {
	margin-block-start: 10px !important;
	padding-inline-end: 32px;
	color: var(--klx-muted);
	font-size: var(--wp--custom--font-size--card);
	line-height: 1.9;
}

@media (min-width: 1024px) {
	.klx-steps.klx-steps {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.klx-steps__item:not(:last-child)::after {
		content: "";
		position: absolute;
		top: 32px;
		inset-inline-start: 80px;
		inset-inline-end: 16px;
		height: 1px;
		background: var(--klx-line);
	}
}

@media (max-width: 1023.98px) {
	.klx-steps.klx-steps {
		grid-template-columns: minmax(0, 1fr);
		gap: 0;
	}

	.klx-steps__item {
		display: grid;
		grid-template-columns: 48px minmax(0, 1fr);
		column-gap: 16px;
		align-content: start;
		padding-block-end: 28px;
	}

	.klx-steps__item:last-child {
		padding-block-end: 0;
	}

	.klx-steps__num {
		grid-column: 1;
		grid-row: 1 / span 3;
		width: 48px;
		height: 48px;
		font-size: 16px !important;
	}

	.klx-steps__item > :not(.klx-steps__num) {
		grid-column: 2;
		padding-inline-end: 0;
	}

	.klx-steps__item :is(h3, h4) {
		margin-block-start: 10px !important;
		font-size: 18px !important;
	}

	.klx-steps__item > p:not(.klx-steps__num) {
		margin-block-start: 6px !important;
		font-size: var(--wp--preset--font-size--small);
		line-height: 1.8;
	}

	.klx-steps__item:not(:last-child)::after {
		content: "";
		position: absolute;
		top: 56px;
		bottom: 8px;
		inset-inline-start: 24px;
		width: 1px;
		background: var(--klx-line);
	}
}

/* --- Key facts strip (klx/key-facts) --------------------------------------
 * 4 columns with hairline dividers and an icon badge per item.
 */
.klx-key-facts__item {
	position: relative;
	margin: 0;
	padding-inline-end: 32px;
	border-inline-end: 1px solid var(--klx-line);
}

.klx-key-facts__item:last-child {
	border-inline-end: 0;
}

.klx-key-facts__item.klx-key-facts__item > * {
	margin-block: 0;
}

.klx-key-facts__item > :first-child {
	font-size: 17px !important;
	line-height: 1.6;
	color: var(--klx-text);
}

.klx-key-facts__item > * + * {
	margin-block-start: 6px !important;
	line-height: 1.8;
}

.klx-key-facts__item::before {
	content: "";
	display: block;
	box-sizing: border-box;
	width: 48px;
	height: 48px;
	margin-block-end: 20px;
	border: 1px solid var(--klx-line);
}

.klx-key-facts__item::after {
	content: "";
	position: absolute;
	top: 12px;
	inset-inline-start: 12px;
	width: 24px;
	height: 24px;
	background: var(--klx-accent);
	-webkit-mask: var(--klx-i, var(--klx-i-cube)) center / contain no-repeat;
	mask: var(--klx-i, var(--klx-i-cube)) center / contain no-repeat;
}

.klx-key-facts__item:nth-child(4n + 1) { --klx-i: var(--klx-i-cube); }
.klx-key-facts__item:nth-child(4n + 2) { --klx-i: var(--klx-i-home-check); }
.klx-key-facts__item:nth-child(4n + 3) { --klx-i: var(--klx-i-layers); }
.klx-key-facts__item:nth-child(4n + 4) { --klx-i: var(--klx-i-ruler); }

@media (min-width: 1024px) {
	.klx-key-facts__grid.klx-key-facts__grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

@media (min-width: 768px) and (max-width: 1023.98px) {
	.klx-key-facts__grid.klx-key-facts__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.klx-key-facts__item:nth-child(2n) {
		border-inline-end: 0;
	}
}

@media (max-width: 767.98px) {
	.klx-key-facts__grid.klx-key-facts__grid {
		grid-template-columns: minmax(0, 1fr);
		gap: 0;
		border-top: 1px solid var(--klx-line);
	}

	.klx-key-facts__item {
		display: grid;
		grid-template-columns: 44px minmax(0, 1fr);
		column-gap: 14px;
		padding-block: 16px;
		padding-inline-end: 0;
		border-inline-end: 0;
		border-bottom: 1px solid var(--klx-line);
	}

	.klx-key-facts__item::before {
		grid-column: 1;
		grid-row: 1 / span 3;
		width: 44px;
		height: 44px;
		margin: 0;
	}

	.klx-key-facts__item::after {
		top: 26px;
		inset-inline-start: 10px;
	}

	.klx-key-facts__item > * {
		grid-column: 2;
	}

	.klx-key-facts__item > :first-child {
		font-size: 16px !important;
	}

	.klx-key-facts__item > * + * {
		margin-block-start: 2px !important;
		line-height: 1.7;
	}
}

/* --- CTA band (klx/cta-band: core/cover + dark panel) --------------------- */
.klx-cta-band.wp-block-cover {
	align-items: center;
	justify-content: flex-start;
	padding-inline: var(--klx-pad-inline);
}

.klx-cta-band .wp-block-cover__inner-container {
	width: 100%;
}

.klx-cta-band .wp-block-cover__inner-container > .klx-cta-band__panel {
	box-sizing: border-box;
	width: min(640px, 100%);
	margin-inline-start: 0 !important;
	margin-inline-end: auto !important;
	background-color: var(--klx-overlay-panel) !important;
}

.klx-cta-band__panel.klx-cta-band__panel > * {
	margin-block: 0;
}

.klx-cta-band__panel :is(h2, .wp-block-heading) {
	margin-block-start: 16px !important;
}

.klx-cta-band__panel > p:not(.klx-kicker):not(.is-style-eyebrow) {
	margin-block-start: 14px !important;
	font-size: 17px;
	line-height: 1.9;
}

.klx-cta-band__actions {
	gap: 16px 28px;
	margin-block-start: 32px !important;
}

/* Contact info inside CTA boxes: just the phone / WhatsApp link, button-sized. */
:is(.klx-cta-band, .klx-inline-cta) .klx-contact-info--topbar {
	color: var(--klx-text);
	font-size: 16px;
	font-weight: 600;
}

:is(.klx-cta-band, .klx-inline-cta) .klx-ci__item--hours {
	display: none;
}

:is(.klx-cta-band, .klx-inline-cta) .klx-contact-info--topbar .klx-ci__link {
	min-height: var(--klx-touch);
	color: var(--klx-text);
}

:is(.klx-cta-band, .klx-inline-cta) .klx-contact-info--topbar .klx-ci__link:hover {
	color: var(--klx-accent);
}

.klx-inline-cta .klx-contact-info--topbar {
	justify-content: center;
	font-size: var(--wp--custom--font-size--card);
}

@media (max-width: 767.98px) {
	.klx-cta-band.wp-block-cover {
		min-height: 0 !important;
		padding: 40px 20px !important;
	}

	.klx-cta-band .wp-block-cover__inner-container > .klx-cta-band__panel {
		padding: 32px 24px !important;
	}

	.klx-cta-band__panel :is(h2, .wp-block-heading) {
		margin-block-start: 12px !important;
		font-size: 28px !important;
		line-height: 1.35;
	}

	.klx-cta-band__panel > p:not(.klx-kicker):not(.is-style-eyebrow) {
		margin-block-start: 12px !important;
		font-size: var(--wp--custom--font-size--card);
		line-height: 1.8;
	}

	.klx-cta-band .klx-cta-band__actions {
		flex-direction: column;
		align-items: stretch;
		gap: 8px;
		margin-block-start: 24px !important;
	}

	:is(.klx-cta-band, .klx-inline-cta) .klx-contact-info--topbar {
		justify-content: center;
	}
}

/* --- Misc pattern cards ----------------------------------------------------- */
.klx-card > .wp-block-image {
	margin: 0;
	overflow: hidden;
	background: var(--klx-raised);
}

.klx-card > .wp-block-image img {
	display: block;
	width: 100%;
	height: auto;
}

.klx-card__body > .klx-more {
	margin-block-start: auto !important;
}

.klx-stat.klx-stat > * {
	margin: 0;
}

/* ==========================================================================
   9. Long-form article (post content of services and blog posts)
   ========================================================================== */

.klx-article {
	--klx-article-fs: clamp(16px, 15.63px + 0.095vw, 17px);
	--klx-article-lh: 2;
	--klx-h2-fs: clamp(24px, 21.03px + 0.762vw, 32px);
	--klx-h2-mt: clamp(48px, 42.06px + 1.524vw, 64px);
	--klx-h3-fs: clamp(20px, 18.51px + 0.381vw, 24px);
	--klx-h3-mt: clamp(36px, 32.9px + 0.762vw, 44px);
	--klx-h4-fs: clamp(17px, 16.26px + 0.19vw, 19px);
	--klx-h4-mt: clamp(32px, 29px + 0.762vw, 40px);
	font-size: var(--klx-article-fs);
	line-height: var(--klx-article-lh);
	color: var(--klx-muted);
}

.klx-article--post {
	--klx-article-fs: clamp(17px, 16.63px + 0.095vw, 18px);
	--klx-article-lh: 2.1;
	--klx-h2-fs: clamp(23px, 20.4px + 0.667vw, 30px);
	--klx-h2-mt: clamp(44px, 39.54px + 1.143vw, 56px);
	--klx-h3-fs: clamp(19px, 17.89px + 0.286vw, 22px);
	--klx-h3-mt: clamp(28px, 25px + 0.762vw, 36px);
	--klx-h4-fs: clamp(17px, 16.26px + 0.19vw, 19px);
	--klx-h4-mt: clamp(24px, 22.5px + 0.381vw, 28px);
}

.klx-article.klx-article > * + * {
	margin-block-start: 20px;
}

.klx-article > :first-child {
	margin-block-start: 0;
}

/*
 * Migrated sections (full / wide width in the old page builder) stay inside the article column.
 * A full-width constrained group would otherwise take the site gutter (root padding) as inner
 * padding and sit indented in the column; sections with a background keep a modest inset.
 */
.klx-article > :is(.alignfull, .alignwide) {
	max-width: 100%;
	margin-inline: 0;
}

.klx-article > .alignfull.has-global-padding {
	padding-inline: 0;
}

.klx-article > .alignfull.has-global-padding.has-background {
	padding-inline: var(--wp--preset--spacing--60);
}

.klx-article :is(h2, h3, h4, h5, h6),
.klx-article strong,
.klx-article b {
	color: var(--klx-text);
}

.klx-article.klx-article > h2 {
	margin-block: var(--klx-h2-mt) 0;
	font-size: var(--klx-h2-fs);
	font-weight: 800;
	line-height: 1.45;
}

.klx-article.klx-article > h3 {
	margin-block: var(--klx-h3-mt) 0;
	font-size: var(--klx-h3-fs);
	font-weight: 700;
	line-height: 1.5;
}

.klx-article.klx-article > h4 {
	margin-block: var(--klx-h4-mt) 0;
	font-size: var(--klx-h4-fs);
	font-weight: 700;
	line-height: 1.6;
}

.klx-article.klx-article > :is(h2, h3, h4) + * {
	margin-block-start: 16px;
}

.klx-article.klx-article > h2:first-child {
	margin-block-start: 0;
}

.klx-article strong,
.klx-article b {
	font-weight: 700;
}

.klx-article a:where(:not(.wp-element-button):not(.wp-block-button__link)) {
	color: var(--klx-accent);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 5px;
}

.klx-article a:where(:not(.wp-element-button):not(.wp-block-button__link)):hover {
	color: var(--klx-accent-hover);
}

/* Lists: 6px accent squares (services) / check marks (posts) */
.klx-article > ul:not(.is-style-plain):not(.is-style-checks):not(.klx-chip-list),
.klx-article > ol {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin-inline: 0;
	padding: 0;
}

.klx-article > ul:not(.is-style-plain):not(.is-style-checks):not(.klx-chip-list) {
	list-style: none;
}

.klx-article > ul:not(.is-style-plain):not(.is-style-checks):not(.klx-chip-list) > li {
	position: relative;
	padding-inline-start: 20px;
}

.klx-article > ul:not(.is-style-plain):not(.is-style-checks):not(.klx-chip-list) > li::before {
	content: "";
	position: absolute;
	inset-inline-start: 0;
	top: calc(0.5lh - 3px);
	width: 6px;
	height: 6px;
	background: var(--klx-accent);
}

/* Posts (DS Post artboard): 18px check marks, 12px gap. `.klx-article.klx-article--post` outranks the
   service rule above, which would otherwise shrink the mark to a 6px dot. */
.klx-article.klx-article--post > ul:not(.is-style-plain):not(.is-style-checks):not(.klx-chip-list) {
	gap: 12px;
}

.klx-article.klx-article--post > ul:not(.is-style-plain):not(.is-style-checks):not(.klx-chip-list) > li,
ul.is-style-checks > li {
	position: relative;
	padding-inline-start: 30px;
	list-style: none;
}

.klx-article.klx-article--post > ul:not(.is-style-plain):not(.is-style-checks):not(.klx-chip-list) > li::before,
ul.is-style-checks > li::before {
	content: "";
	position: absolute;
	inset-inline-start: 0;
	top: calc(0.5lh - 9px);
	width: 18px;
	height: 18px;
	background: var(--klx-accent);
	-webkit-mask: var(--klx-i-check) center / contain no-repeat;
	mask: var(--klx-i-check) center / contain no-repeat;
}

ul.is-style-checks {
	padding: 0;
	list-style: none;
}

.klx-article > ol {
	list-style: persian;
	padding-inline-start: 1.6em;
}

.klx-article > ol > li::marker {
	color: var(--klx-accent);
	font-weight: 600;
}

.klx-article li > :is(ul, ol) {
	margin-block-start: 10px;
}

ul.is-style-plain {
	margin: 0;
	padding: 0;
	list-style: none;
}

/* Figures & captions (site wide) */
.klx-article > :is(.wp-block-image, figure) {
	margin-block: 36px 0;
	margin-inline: 0;
}

.klx-article > :is(.wp-block-image, figure) + * {
	margin-block-start: 36px;
}

.klx-article .wp-block-image img {
	display: block;
}

.wp-block-image > figcaption,
.wp-block-embed > figcaption,
.wp-block-video > figcaption,
.wp-block-audio > figcaption,
.wp-block-gallery > figcaption,
.wp-block-post-featured-image figcaption {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	margin-block: 14px 0;
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.7;
	color: var(--klx-muted);
	text-align: start;
}

.wp-block-image > figcaption::before,
.wp-block-embed > figcaption::before,
.wp-block-video > figcaption::before,
.wp-block-audio > figcaption::before,
.wp-block-gallery > figcaption::before {
	content: "";
	flex: none;
	width: 24px;
	height: 1px;
	margin-top: 0.85em;
	background: var(--klx-accent);
}

.wp-block-image.is-style-bordered img {
	padding: 8px;
	border: 1px solid var(--klx-line);
	background: var(--klx-surface);
}

/* Galleries: even grid (3 → 2 columns), click opens the core lightbox */
.klx-article .wp-block-gallery.has-nested-images,
.klx-gallery.wp-block-gallery.has-nested-images {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
}

.klx-article .wp-block-gallery.has-nested-images.columns-2,
.klx-gallery.wp-block-gallery.has-nested-images.columns-2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.klx-article .wp-block-gallery.has-nested-images.columns-4,
.klx-gallery.wp-block-gallery.has-nested-images.columns-4 {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.klx-article .wp-block-gallery.has-nested-images figure.wp-block-image,
.klx-gallery.wp-block-gallery.has-nested-images figure.wp-block-image {
	width: auto !important;
	margin: 0 !important;
	background: var(--klx-raised);
}

.klx-article .wp-block-gallery.has-nested-images figure.wp-block-image img,
.klx-gallery.wp-block-gallery.has-nested-images figure.wp-block-image img {
	width: 100%;
	height: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

/* Mosaic variant: first image is large (2 rows) */
@media (min-width: 768px) {
	.klx-gallery.wp-block-gallery.has-nested-images {
		grid-template-columns: 2fr 1fr 1fr;
		grid-auto-rows: 200px;
		grid-auto-flow: dense;
	}

	.klx-gallery.wp-block-gallery.has-nested-images figure.wp-block-image:first-child {
		grid-row: span 2;
	}

	.klx-gallery.wp-block-gallery.has-nested-images figure.wp-block-image img {
		aspect-ratio: auto;
	}
}

@media (max-width: 767.98px) {
	.klx-article .wp-block-gallery.has-nested-images,
	.klx-gallery.wp-block-gallery.has-nested-images {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 10px;
	}
}

/* Quotes */
.wp-block-quote {
	position: relative;
	box-sizing: border-box;
	margin-inline: 0;
}

.wp-block-quote::before,
.wp-block-pullquote blockquote::before {
	content: "";
	display: block;
	width: 36px;
	height: 36px;
	background: var(--klx-accent);
	-webkit-mask: var(--klx-i-quote) center / contain no-repeat;
	mask: var(--klx-i-quote) center / contain no-repeat;
}

.wp-block-quote > p,
.wp-block-pullquote p {
	margin-block: 16px 0;
}

.wp-block-quote cite,
.wp-block-pullquote cite {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-block-start: 20px;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	font-style: normal;
	color: var(--klx-muted);
}

.wp-block-quote cite::before,
.wp-block-pullquote cite::before {
	content: "";
	flex: none;
	width: 24px;
	height: 1px;
	background: var(--klx-accent);
}

.wp-block-quote.is-style-card {
	padding: 40px;
	background: var(--klx-surface);
	border: 1px solid var(--klx-line);
	font-size: var(--wp--preset--font-size--h-4);
	font-weight: 500;
}

.klx-article > :is(.wp-block-quote, .wp-block-pullquote) {
	margin-block: 40px;
}

.wp-block-pullquote {
	margin-inline: 0;
	text-align: start;
}

.wp-block-pullquote blockquote {
	margin: 0;
}

/* Notes: group style "نکته" (and role=note boxes) */
.is-style-note {
	display: grid;
	grid-template-columns: 22px minmax(0, 1fr);
	column-gap: 16px;
	box-sizing: border-box;
	padding: 24px 28px;
	background: var(--klx-surface);
	border: 1px solid var(--klx-line);
	color: var(--klx-muted);
	font-size: var(--wp--custom--font-size--card);
	line-height: 1.9;
}

.is-style-note::before {
	content: "";
	grid-row: 1 / span 20;
	width: 22px;
	height: 22px;
	margin-top: 3px;
	background: var(--klx-accent);
	-webkit-mask: var(--klx-i-info) center / contain no-repeat;
	mask: var(--klx-i-info) center / contain no-repeat;
}

.is-style-note.is-style-note > * {
	grid-column: 2;
	margin: 0;
}

.is-style-note.is-style-note > * + * {
	margin-block-start: 4px;
}

.is-style-note > :first-child:is(p, h2, h3, h4, h5, h6) {
	font-size: 16px;
	font-weight: 700;
	line-height: 1.6;
	color: var(--klx-text);
}

/* Tables */
.wp-block-table {
	margin-inline: 0;
	overflow-x: auto;
}

.wp-block-table table {
	width: 100%;
	border-collapse: collapse;
	border: 1px solid var(--klx-line);
	font-size: var(--wp--custom--font-size--card);
	line-height: 1.8;
	text-align: start;
}

.wp-block-table :is(th, td) {
	padding: 16px 20px;
	border: 0;
	border-bottom: 1px solid var(--klx-line);
	vertical-align: top;
	text-align: start;
}

.wp-block-table :is(th, td):not(:last-child) {
	border-inline-end: 1px solid var(--klx-line);
}

.wp-block-table thead {
	border-bottom: 0;
}

.wp-block-table thead th {
	background: var(--klx-raised);
	color: var(--klx-text);
	font-weight: 700;
	vertical-align: middle;
}

.wp-block-table tbody th {
	color: var(--klx-text);
	font-weight: 600;
}

.wp-block-table td {
	color: var(--klx-muted);
}

.wp-block-table tfoot {
	border-top: 1px solid var(--klx-line);
}

.wp-block-table.is-style-stripes tbody tr:nth-child(odd) {
	background: var(--klx-surface);
}

.wp-block-table.is-style-stripes {
	border-bottom: 0;
}

.wp-block-table figcaption {
	margin-block: 12px 0;
	font-size: var(--wp--custom--font-size--meta);
	line-height: 1.7;
	color: var(--klx-muted);
	text-align: start;
}

@media (max-width: 767.98px) {
	.wp-block-table table {
		font-size: var(--wp--preset--font-size--small);
		line-height: 1.7;
	}

	.wp-block-table :is(th, td) {
		padding: 12px 10px;
	}
}

/* Separator */
.wp-block-separator {
	border: 0;
	border-top: 1px solid var(--klx-line);
	opacity: 1;
}

.wp-block-separator.is-style-dots::before {
	color: var(--klx-line-strong);
}

/* Inline call to action (klx-inline-cta) */
.klx-inline-cta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 32px;
	box-sizing: border-box;
	padding: 36px 40px;
	background: var(--klx-surface);
	border: 1px solid var(--klx-line);
	line-height: 1.8;
}

.klx-inline-cta.klx-inline-cta > * {
	margin: 0;
}

.klx-inline-cta__text {
	max-width: 420px;
}

.klx-inline-cta__text > * {
	margin-block: 0;
}

.klx-inline-cta__title {
	margin-block-start: 12px !important;
	font-size: 22px;
	font-weight: 800;
	line-height: 1.6;
	color: var(--klx-text);
}

.klx-inline-cta__desc {
	margin-block-start: 8px !important;
	color: var(--klx-muted);
	font-size: var(--wp--custom--font-size--card);
}

.klx-inline-cta__actions,
.klx-inline-cta > .wp-block-buttons {
	flex: none;
	flex-direction: column;
	align-items: stretch;
	gap: 8px;
	width: 216px;
}

.klx-inline-cta .wp-block-button__link {
	min-height: 52px;
}

.klx-article .klx-inline-cta,
.klx-service-main > .klx-inline-cta {
	margin-block-start: 40px;
}

@media (max-width: 767.98px) {
	.klx-inline-cta {
		display: block;
		padding: 24px 20px;
	}

	.klx-inline-cta__title {
		font-size: 20px;
	}

	.klx-inline-cta__actions,
	.klx-inline-cta > .wp-block-buttons {
		width: 100%;
		margin-block-start: 20px !important;
	}
}

/* ==========================================================================
   FAQ: core/details (accordion look) + Rank Math FAQ block
   ========================================================================== */

.wp-block-details {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
	border-bottom: 1px solid var(--klx-line);
}

:not(.wp-block-details) + .wp-block-details,
.klx-faq .wp-block-details:first-of-type {
	border-top: 1px solid var(--klx-line);
}

.wp-block-details + .wp-block-details {
	margin-block-start: 0 !important;
	border-top: 0;
}

.wp-block-details > summary {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	box-sizing: border-box;
	min-height: 80px;
	padding: 20px 0;
	list-style: none;
	color: var(--klx-text);
	font-size: clamp(16px, 14.51px + 0.381vw, 19px);
	font-weight: 700;
	line-height: 1.6;
	cursor: pointer;
}

.wp-block-details > summary::-webkit-details-marker {
	display: none;
}

.wp-block-details > summary::marker {
	content: "";
}

/* 40px box (hairline → accent when open) with a plus / minus icon */
.wp-block-details > summary::after {
	content: "";
	flex: none;
	box-sizing: border-box;
	width: 40px;
	height: 40px;
	border: 1px solid var(--klx-line);
	transition: border-color 0.15s ease;
}

.wp-block-details > summary::before {
	content: "";
	position: absolute;
	top: 50%;
	inset-inline-end: 11px;
	width: 18px;
	height: 18px;
	margin-top: -9px;
	background: var(--klx-accent);
	-webkit-mask: var(--klx-i-plus) center / contain no-repeat;
	mask: var(--klx-i-plus) center / contain no-repeat;
}

.wp-block-details[open] > summary::after {
	border-color: var(--klx-accent);
}

.wp-block-details[open] > summary::before {
	-webkit-mask-image: var(--klx-i-minus);
	mask-image: var(--klx-i-minus);
}

.wp-block-details > summary:hover {
	color: var(--klx-accent);
}

.wp-block-details > summary:focus-visible {
	outline: 2px solid var(--klx-accent);
	outline-offset: 4px;
}

.wp-block-details > :not(summary) {
	margin-block: 0;
}

.wp-block-details:not(.klx-article) > :not(summary) {
	padding-inline-end: 64px;
	color: var(--klx-muted);
	font-size: 16px;
	line-height: 1.95;
}

.wp-block-details > :not(summary) + :not(summary) {
	margin-block-start: 12px;
}

.wp-block-details > :last-child:not(summary) {
	padding-block-end: 28px;
}

@media (max-width: 767.98px) {
	.wp-block-details > summary {
		min-height: 64px;
		padding-block: 16px;
		gap: 16px;
	}

	.wp-block-details > summary::after {
		width: 36px;
		height: 36px;
	}

	.wp-block-details > summary::before {
		inset-inline-end: 9px;
	}

	.wp-block-details:not(.klx-article) > :not(summary) {
		padding-inline-end: 0;
		font-size: var(--wp--custom--font-size--card);
		line-height: 1.9;
	}

	.wp-block-details > :last-child:not(summary) {
		padding-block-end: 20px;
	}
}

/* Rank Math FAQ block (keeps its schema; same look, always open) */
.rank-math-block .rank-math-list {
	border-top: 1px solid var(--klx-line);
}

.rank-math-block .rank-math-list-item {
	padding: 20px 0 24px;
	border-bottom: 1px solid var(--klx-line);
}

.rank-math-block .rank-math-question {
	margin: 0 0 8px;
	color: var(--klx-text);
	font-size: clamp(16px, 14.51px + 0.381vw, 19px);
	font-weight: 700;
	line-height: 1.6;
}

.rank-math-block .rank-math-answer {
	color: var(--klx-muted);
	line-height: 1.95;
}

/* FAQ section layout (klx/faq): heading column 400px + accordion */
@media (min-width: 1024px) {
	.klx-faq__layout,
	.klx-faq > .wp-block-columns {
		display: grid;
		grid-template-columns: 400px minmax(0, 1fr);
		gap: 96px;
		align-items: start;
	}

	.klx-faq__layout > *,
	.klx-faq > .wp-block-columns > .wp-block-column {
		margin: 0 !important;
		flex-basis: auto !important;
	}
}

/* ==========================================================================
   10. Templates
   ========================================================================== */

/* --- Page head (pages, archives, blog, search) --------------------------- */
.klx-page-head {
	padding-block: 48px 0;
}

.klx-page-head--bordered {
	padding-block: 56px 64px;
	border-bottom: 1px solid var(--klx-line);
}

.klx-page-head__inner.klx-page-head__inner > * {
	margin-block: 0;
}

.klx-page-head__inner > .klx-breadcrumb + * {
	margin-block-start: 32px;
}

.klx-page-head__row {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px 48px;
}

.klx-page-head__row.klx-page-head__row > * {
	margin: 0;
}

.klx-page-head__titles > * {
	margin-block: 0;
}

.klx-page-title,
.klx-page-head .wp-block-query-title {
	margin-block: 16px 0;
	font-size: clamp(30px, 20.34px + 2.476vw, 56px);
	font-weight: 800;
	line-height: 1.3;
}

.klx-page-head__titles > .klx-page-title:first-child,
.klx-page-head__inner > .klx-page-title {
	margin-block-start: 0;
}

.klx-page-head__inner > .klx-breadcrumb + .klx-page-title {
	margin-block-start: 40px;
}

.klx-page-head__desc,
.klx-page-head .wp-block-term-description {
	max-width: 480px;
	margin: 0;
	color: var(--klx-muted);
	font-size: 16px;
	line-height: 1.9;
}

.klx-page-head .wp-block-term-description > * {
	margin: 0;
}

.klx-page-lead {
	max-width: 720px;
	margin-block-start: 16px !important;
	font-size: var(--wp--preset--font-size--lead);
	line-height: 1.8;
	color: var(--klx-muted);
}

.klx-page-lead p {
	margin: 0;
}

.klx-page-title--search {
	font-size: clamp(26px, 20.43px + 1.429vw, 40px);
}

.klx-page-head__search {
	width: min(100%, 480px);
}

.klx-chips-bar {
	margin-block-start: 48px !important;
	padding-block: 24px;
	border-block: 1px solid var(--klx-line);
}

.klx-chips-bar.klx-chips-bar > * {
	margin: 0;
}

.klx-page-content {
	padding-block: 72px 88px;
}

.klx-archive-body {
	padding-block: 48px 88px;
}

@media (max-width: 767.98px) {
	.klx-page-head {
		padding-block-start: 12px;
	}

	.klx-page-head--bordered {
		padding-block: 12px 32px;
	}

	.klx-page-head__inner > .klx-breadcrumb + * {
		margin-block-start: 12px;
	}

	.klx-page-head__inner > .klx-breadcrumb + .klx-page-title {
		margin-block-start: 12px;
	}

	.klx-page-title,
	.klx-page-head .wp-block-query-title {
		margin-block-start: 10px;
	}

	.klx-page-head__row {
		gap: 12px;
	}

	.klx-page-head__desc,
	.klx-page-head .wp-block-term-description {
		font-size: var(--wp--custom--font-size--card);
		line-height: 1.8;
	}

	.klx-chips-bar {
		margin-block-start: 24px !important;
		padding-block: 16px;
	}

	.klx-chips a,
	.klx-chip > a {
		padding-inline: 16px;
	}

	.klx-page-content {
		padding-block: 40px 56px;
	}

	.klx-archive-body {
		padding-block: 32px 56px;
	}
}

/* --- Service page (page-service) ---------------------------------------- */

/* Breadcrumb strip right above the klx/service-intro pattern (same surface colour). */
.klx-service-crumbs {
	padding-block: 36px 0;
}

.klx-service-crumbs + .klx-service-intro,
.klx-service-crumbs + * > .klx-service-intro:first-child {
	padding-block-start: 40px !important;
}

/* klx/service-intro: title + buttons | featured image (klx-lcp), then key facts. */
.klx-service-intro .wp-block-post-featured-image {
	position: relative;
	margin: 0;
	overflow: hidden;
	background: var(--klx-raised);
}

.klx-service-intro .wp-block-post-featured-image img {
	display: block;
	width: 100%;
	object-fit: cover;
}

.klx-service-intro .wp-block-post-title {
	line-height: 1.35;
}

@media (min-width: 1024px) {
	.klx-service-intro .wp-block-post-featured-image img {
		height: 440px;
		aspect-ratio: auto !important;
	}
}

@media (max-width: 781.98px) {
	.klx-service-crumbs {
		padding-block: 6px;
		border-bottom: 1px solid var(--klx-line);
	}

	.klx-service-crumbs + .klx-service-intro {
		padding-block-start: 0 !important;
	}

	/* Photo first, full bleed, 220px — as in the mobile artboard. */
	.klx-service-intro .wp-block-columns > .wp-block-column:last-child {
		order: -1;
		margin-inline: calc(var(--klx-gutter) * -1);
	}

	.klx-service-intro .wp-block-post-featured-image img {
		height: 220px;
		aspect-ratio: auto !important;
	}
}

.klx-service-body {
	padding-block: 96px;
}

.klx-service-layout {
	display: grid;
	grid-template-columns: minmax(0, 784px) clamp(280px, 26vw, 336px);
	justify-content: space-between;
	align-items: start;
	column-gap: 48px;
}

.klx-service-layout.klx-service-layout > * {
	margin: 0;
}

.klx-service-main > * {
	margin-block: 0;
}

.klx-article-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px 28px;
	margin-block-end: 48px !important;
	padding-block-end: 24px;
	border-bottom: 1px solid var(--klx-line);
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.6;
	color: var(--klx-muted);
}

.klx-meta-item {
	display: flex;
	align-items: center;
	gap: 8px;
	color: var(--klx-muted);
	font-size: var(--wp--preset--font-size--small);
}

.klx-meta-item.klx-meta-item > * {
	margin: 0;
}

/* Hide a label whose dynamic value rendered nothing (e.g. modified date not later than publish date). */
.klx-meta-item.wp-block-group:not(:has(.wp-block-post-date, .wp-block-post-author-name, time, a)) {
	display: none;
}

.klx-meta-item::before {
	color: var(--klx-accent);
	width: 16px;
	height: 16px;
}

.klx-meta-item :is(.wp-block-post-author-name, .wp-block-post-date) {
	font-size: inherit;
	font-weight: 400;
	color: inherit;
}

.klx-meta-item a {
	color: inherit;
	text-decoration: none;
}

.klx-aside {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.klx-aside.klx-aside > * {
	margin: 0;
}

.klx-consult {
	padding: 28px;
	color: var(--klx-muted);
}

.klx-consult.klx-consult > * {
	margin-block: 0;
}

.klx-consult__title {
	margin-block-start: 12px !important;
	font-size: 22px;
	font-weight: 800;
	line-height: 1.5;
	color: var(--klx-text);
}

.klx-consult__desc {
	margin-block-start: 10px !important;
	font-size: var(--wp--custom--font-size--card);
	line-height: 1.85;
}

.klx-consult__actions {
	margin-block-start: 24px !important;
}

.klx-consult__actions .wp-block-button,
.klx-meta-panel__actions .wp-block-button,
.klx-consult__actions .wp-block-button__link,
.klx-meta-panel__actions .wp-block-button__link {
	width: 100%;
}

.klx-consult__actions .wp-block-button__link {
	min-height: 52px;
}

.klx-consult__contact {
	margin-block-start: 20px !important;
	padding-block-start: 16px;
	border-top: 1px solid var(--klx-line);
	font-size: var(--wp--preset--font-size--small) !important;
}

.klx-consult__contact .klx-ci__list {
	gap: 10px;
}

@media (min-width: 1024px) {
	.klx-aside {
		position: sticky;
		top: var(--klx-sticky-offset);
		max-height: calc(100vh - var(--klx-sticky-offset) - 24px);
		overflow-y: auto;
		scrollbar-width: thin;
	}
}

@media (max-width: 1023.98px) {
	.klx-service-layout {
		grid-template-columns: minmax(0, 1fr);
	}

	.klx-aside {
		order: -1;
		margin-block-end: 32px !important;
	}

	.klx-aside .klx-consult {
		display: none;
	}
}

@media (max-width: 767.98px) {
	.klx-service-body {
		padding-block: 24px 48px;
	}

	.klx-aside {
		margin-block-end: 28px !important;
	}

	.klx-article-meta {
		flex-direction: column;
		align-items: flex-start;
		gap: 6px;
		margin-block-end: 32px !important;
		padding-block-end: 20px;
	}
}

/* --- Blog post (single) --------------------------------------------------- */
.klx-post.klx-post > * {
	margin-block: 0;
}

.klx-post-head {
	padding-block-start: 56px;
}

.klx-post-head.klx-post-head > * {
	margin-block: 0;
}

.klx-post-head .klx-chip-terms {
	margin-block-start: 36px;
}

.klx-post-title {
	margin-block-start: 20px !important;
	font-size: clamp(28px, 20.57px + 1.905vw, 48px);
	font-weight: 800;
	line-height: 1.4;
}

.klx-post-lead {
	margin-block-start: 16px !important;
	font-size: var(--wp--preset--font-size--lead);
	line-height: 1.9;
	color: var(--klx-muted);
}

.klx-post-lead p {
	margin: 0;
}

.klx-post-meta {
	align-items: center;
	gap: 10px 18px;
	margin-block-start: 32px !important;
	padding-block: 16px;
	border-block: 1px solid var(--klx-line);
}

.klx-post-meta.klx-post-meta > * {
	margin: 0;
}

.klx-post-meta .klx-meta-item + .klx-meta-item {
	position: relative;
	padding-inline-start: 22px;
}

.klx-post-meta .klx-meta-item + .klx-meta-item::after {
	content: "";
	position: absolute;
	inset-inline-start: 0;
	top: 50%;
	width: 4px;
	height: 4px;
	margin-top: -2px;
	border-radius: 50%;
	background: var(--klx-line-strong);
}

.klx-post-meta .wp-block-post-author-name {
	color: var(--klx-text);
	font-weight: 600;
}

.klx-post-hero {
	position: relative;
	height: 640px;
	margin-block-start: 48px !important;
	overflow: hidden;
	background: var(--klx-surface);
}

.klx-post-hero img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.klx-post-body {
	padding-block: 72px 96px;
}

.klx-post-body.klx-post-body > * {
	margin-block: 0;
}

.klx-post-body > .klx-toc {
	margin-block-end: 48px !important;
}

.klx-post-body > .klx-tags {
	margin-block-start: 56px !important;
	padding-block-start: 28px;
	border-top: 1px solid var(--klx-line);
}

.klx-author-box {
	margin-block-start: 40px !important;
	padding: 28px 32px;
}

.klx-author-box.klx-author-box > * {
	margin-block: 0;
}

.klx-author-box__name {
	margin-block-start: 2px !important;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.6;
}

.klx-author-box__name a {
	color: var(--klx-text);
	text-decoration: none;
}

.klx-author-box__bio {
	margin-block-start: 8px !important;
	color: var(--klx-muted);
	font-size: var(--wp--custom--font-size--card);
	line-height: 1.9;
}

@media (max-width: 767.98px) {
	.klx-post-head {
		padding-block-start: 12px;
	}

	.klx-post-head .klx-chip-terms {
		margin-block-start: 4px;
	}

	.klx-post-title {
		margin-block-start: 8px !important;
		line-height: 1.5;
	}

	.klx-post-lead {
		margin-block-start: 12px !important;
	}

	.klx-post-meta {
		gap: 8px 14px;
		margin-block-start: 20px !important;
		padding-block: 14px;
		font-size: var(--wp--custom--font-size--meta);
	}

	.klx-post-hero {
		height: 240px;
		margin-block-start: 28px !important;
		margin-inline: calc(var(--klx-gutter) * -1) !important;
	}

	.klx-post-body {
		padding-block: 32px 56px;
	}

	.klx-post-body > .klx-toc {
		margin-block-end: 32px !important;
	}

	.klx-post-body > .klx-tags {
		margin-block-start: 44px !important;
		padding-block-start: 24px;
	}

	.klx-author-box {
		padding: 20px;
	}
}

/* --- Project (single-portfolio) ------------------------------------------ */
.klx-project-head {
	padding-block: 40px;
}

.klx-project-head__inner.klx-project-head__inner > * {
	margin-block: 0;
}

.klx-project-head__terms {
	margin-block-start: 32px !important;
}

.klx-project-head__terms .wp-block-post-terms__separator {
	color: var(--klx-muted);
}

.klx-project-title {
	max-width: 1100px;
	margin-block-start: 16px !important;
	font-size: clamp(28px, 19.09px + 2.286vw, 52px);
	font-weight: 800;
	line-height: 1.35;
}

.klx-project-lead {
	max-width: 720px;
	margin-block-start: 18px !important;
	font-size: 18px;
	line-height: 1.8;
	color: var(--klx-muted);
}

.klx-project-lead p {
	margin: 0;
}

.klx-project-media.klx-project-media > * {
	margin-block: 0;
}

.klx-project-hero {
	position: relative;
	height: 680px;
	overflow: hidden;
	background: var(--klx-raised);
}

.klx-project-hero img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.klx-project-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 400px;
	align-items: start;
	gap: 48px 96px;
}

.klx-project-layout.klx-project-layout > * {
	margin: 0;
}

.klx-project-main > * {
	margin-block: 0;
}

.klx-project-main__title {
	margin-block-start: 16px !important;
	font-size: clamp(24px, 20.29px + 0.952vw, 36px);
	font-weight: 800;
	line-height: 1.35;
}

.klx-project-content {
	margin-block-start: 24px !important;
}

.klx-meta-panel {
	box-sizing: border-box;
	padding: 32px;
	background: var(--klx-surface);
	border: 1px solid var(--klx-line);
	color: var(--klx-muted);
}

.klx-meta-panel.klx-meta-panel > * {
	margin-block: 0;
}

.klx-meta-panel__title {
	font-size: 20px;
	font-weight: 700;
	line-height: 1.6;
}

.klx-meta-panel__list {
	margin-block-start: 16px !important;
	border-bottom: 1px solid var(--klx-line);
}

.klx-meta-panel__list:not(:has(.wp-block-post-terms)) {
	display: none;
}

.klx-meta-panel__list.klx-meta-panel__list > * {
	margin: 0;
}

.klx-meta-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-end;
	gap: 6px 0;
	padding-block: 16px;
	border-top: 1px solid var(--klx-line);
	color: var(--klx-text);
	font-size: 16px;
	font-weight: 600;
	line-height: 1.6;
}

.klx-meta-row .wp-block-post-terms__prefix {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin-inline-end: auto;
	padding-inline-end: 16px;
	color: var(--klx-muted);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 400;
}

.klx-meta-row .wp-block-post-terms__separator {
	white-space: pre;
	color: var(--klx-muted);
}

.klx-meta-row .wp-block-post-terms__prefix::before {
	color: var(--klx-accent);
	width: 18px;
	height: 18px;
}

.klx-meta-row a {
	color: var(--klx-text);
	text-decoration: none;
}

.klx-meta-row a:hover {
	color: var(--klx-accent);
}

.klx-meta-panel__note {
	margin-block-start: 24px !important;
	font-size: var(--wp--custom--font-size--card);
	line-height: 1.8;
}

.klx-meta-panel__actions {
	margin-block-start: 16px !important;
}

.klx-meta-panel__actions .wp-block-button__link {
	min-height: 52px;
}

.klx-meta-panel__link {
	margin-block-start: 8px !important;
	text-align: center;
	font-size: var(--wp--custom--font-size--card);
	font-weight: 600;
}

.klx-meta-panel__link a {
	justify-content: center;
	width: 100%;
}

/* Previous / next project */
.klx-post-nav {
	border-block: 1px solid var(--klx-line);
}

.klx-post-nav__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
	align-items: stretch;
}

.klx-post-nav__inner.klx-post-nav__inner > * {
	margin: 0;
	min-width: 0;
}

.klx-post-nav .wp-block-post-navigation-link a {
	position: relative;
	display: grid;
	grid-template-columns: 48px minmax(0, 1fr);
	grid-template-rows: auto auto;
	align-items: center;
	column-gap: 20px;
	height: 100%;
	box-sizing: border-box;
	padding-block: 40px;
	color: var(--klx-text);
	text-decoration: none;
}

.klx-post-nav .klx-post-nav__prev a {
	padding-inline-end: 32px;
}

.klx-post-nav .klx-post-nav__next a {
	grid-template-columns: minmax(0, 1fr) 48px;
	padding-inline-start: 32px;
	text-align: end;
}

.klx-post-nav .wp-block-post-navigation-link a::before {
	content: "";
	grid-row: 1 / span 2;
	box-sizing: border-box;
	width: 48px;
	height: 48px;
	border: 1px solid var(--klx-line);
}

.klx-post-nav .klx-post-nav__next a::before {
	grid-column: 2;
}

.klx-post-nav .wp-block-post-navigation-link a::after {
	content: "";
	position: absolute;
	top: 50%;
	inset-inline-start: 15px;
	width: 18px;
	height: 18px;
	margin-top: -9px;
	background: var(--klx-accent);
	-webkit-mask: var(--klx-i-arrow-back) center / contain no-repeat;
	mask: var(--klx-i-arrow-back) center / contain no-repeat;
}

.klx-post-nav .klx-post-nav__next a::after {
	inset-inline-start: auto;
	inset-inline-end: 15px;
	-webkit-mask-image: var(--klx-i-arrow);
	mask-image: var(--klx-i-arrow);
}

.klx-post-nav .post-navigation-link__label {
	grid-column: 2;
	align-self: end;
	color: var(--klx-muted);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
	line-height: 1.6;
}

.klx-post-nav .post-navigation-link__title {
	grid-column: 2;
	align-self: start;
	margin-block-start: 4px;
	font-size: 18px;
	font-weight: 700;
	line-height: 1.5;
}

.klx-post-nav .klx-post-nav__next :is(.post-navigation-link__label, .post-navigation-link__title) {
	grid-column: 1;
}

.klx-post-nav .wp-block-post-navigation-link a:hover .post-navigation-link__title {
	color: var(--klx-accent);
}

.klx-post-nav .wp-block-post-navigation-link a:hover::before {
	border-color: var(--klx-accent);
}

.klx-post-nav__all {
	display: flex;
	border-inline: 1px solid var(--klx-line);
}

.klx-post-nav__all a {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 24px 48px;
	color: var(--klx-text);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	text-decoration: none;
}

.klx-post-nav__all a::before {
	width: 22px;
	height: 22px;
	color: var(--klx-accent);
}

.klx-post-nav__all a:hover {
	color: var(--klx-accent);
}

@media (max-width: 1023.98px) {
	.klx-project-layout {
		grid-template-columns: minmax(0, 1fr);
	}

	.klx-meta-panel {
		order: -1;
	}

	.klx-project-hero {
		height: 480px;
	}
}

@media (max-width: 767.98px) {
	.klx-project-head {
		padding-block: 8px 28px;
	}

	.klx-project-head__terms {
		margin-block-start: 8px !important;
	}

	.klx-project-title {
		margin-block-start: 12px !important;
		line-height: 1.45;
	}

	.klx-project-lead {
		margin-block-start: 12px !important;
		font-size: var(--wp--custom--font-size--card);
	}

	.klx-project-hero {
		height: 260px;
		margin-inline: calc(var(--klx-gutter) * -1) !important;
	}

	.klx-project-body {
		padding-block: 24px 48px;
	}

	.klx-meta-panel {
		padding: 0;
	}

	.klx-meta-panel__title {
		padding: 14px 16px;
		border-bottom: 1px solid var(--klx-line);
		font-size: var(--wp--custom--font-size--card);
	}

	.klx-meta-panel__list {
		display: grid;
		grid-template-columns: 1fr 1fr;
		margin-block-start: 0 !important;
		border-bottom: 0;
	}

	.klx-meta-row {
		display: block;
		padding: 14px 16px;
		border-top: 0;
		font-size: var(--wp--custom--font-size--card);
	}

	.klx-meta-row + .klx-meta-row {
		border-inline-start: 1px solid var(--klx-line);
	}

	.klx-meta-row .wp-block-post-terms__prefix {
		display: flex;
		margin: 0 0 4px;
		padding: 0;
		font-size: var(--wp--custom--font-size--meta);
	}

	.klx-meta-panel__note,
	.klx-meta-panel__actions {
		display: none;
	}

	.klx-meta-panel__link {
		margin: 0 !important;
		padding: 4px 16px 8px;
		border-top: 1px solid var(--klx-line);
	}

	.klx-post-nav {
		padding-block: 32px;
		border: 0;
	}

	.klx-post-nav__inner {
		grid-template-columns: 1fr 1fr;
		gap: 12px;
	}

	.klx-post-nav .wp-block-post-navigation-link a,
	.klx-post-nav .klx-post-nav__next a {
		display: flex;
		flex-direction: column;
		gap: 8px;
		min-height: 120px;
		padding: 16px;
		background: var(--klx-surface);
		border: 1px solid var(--klx-line);
	}

	.klx-post-nav .klx-post-nav__next a {
		align-items: flex-end;
	}

	.klx-post-nav .wp-block-post-navigation-link a::before,
	.klx-post-nav .wp-block-post-navigation-link a::after {
		display: none;
	}

	.klx-post-nav .post-navigation-link__label {
		font-size: var(--wp--custom--font-size--meta);
	}

	.klx-post-nav .post-navigation-link__title {
		margin: 0;
		font-size: var(--wp--custom--font-size--card);
		line-height: 1.6;
	}

	.klx-post-nav__all {
		grid-column: 1 / -1;
		order: 3;
		border: 0;
	}

	.klx-post-nav__all a {
		flex-direction: row;
		width: 100%;
		min-height: 52px;
		padding: 0;
		border: 1px solid var(--klx-outline);
		border-radius: var(--klx-radius);
		font-size: 16px;
	}
}

/* --- 404 ------------------------------------------------------------------ */
.klx-404 {
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 640px;
	padding-block: 96px;
}

.klx-404__inner.klx-404__inner > * {
	margin-block: 0;
}

.klx-404__panel {
	max-width: 680px;
}

.klx-404__panel > * {
	margin-block: 0;
}

.klx-404__title {
	margin-block-start: 16px !important;
	font-size: clamp(28px, 23.54px + 1.143vw, 40px);
	font-weight: 800;
	line-height: 1.35;
}

.klx-404__title::before {
	content: "۴۰۴";
	content: "۴۰۴" / "";
	display: block;
	margin-block-end: 8px;
	color: var(--klx-accent);
	font-size: clamp(96px, 69.26px + 6.857vw, 168px);
	font-weight: 800;
	line-height: 1.1;
}

.klx-404__lead {
	max-width: 560px;
	margin-block-start: 16px !important;
	font-size: clamp(16px, 15.26px + 0.19vw, 18px);
	line-height: 1.8;
	color: var(--klx-muted);
}

.klx-404__search {
	max-width: 580px;
	margin-block-start: 36px !important;
}

.klx-404__home {
	margin-block-start: 28px !important;
	font-size: var(--wp--custom--font-size--card);
	font-weight: 600;
}

@media (max-width: 767.98px) {
	.klx-404 {
		min-height: 0;
		padding-block: 48px;
	}
}

/* 404 link cards reuse .klx-service-card; keep their text on mobile. */
.klx-404__links .klx-service-card {
	min-height: 0;
}

@media (max-width: 767.98px) {
	.klx-404__links .klx-service-card > p:not(.klx-more) {
		display: block;
	}
}

/* ==========================================================================
   11. Forms
   ========================================================================== */

:where(.wp-site-blocks) :is(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="number"], input[type="search"], input[type="password"], input[type="date"], input:not([type]), select, textarea) {
	box-sizing: border-box;
	width: 100%;
	min-height: var(--klx-control-h);
	margin: 0;
	padding: 0 16px;
	background-color: var(--klx-ground);
	border: 1px solid var(--klx-outline);
	border-radius: var(--klx-radius);
	color: var(--klx-text);
	font-family: inherit;
	font-size: 16px;
	line-height: 1.6;
	color-scheme: dark;
	transition: border-color 0.15s ease;
}

:where(.wp-site-blocks) textarea {
	min-height: 140px;
	padding: 14px 16px;
	line-height: 1.8;
	resize: vertical;
}

:where(.wp-site-blocks) select {
	-webkit-appearance: none;
	appearance: none;
	padding-inline-end: 48px;
	background-image: linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%);
	background-position: left 22px center, left 16px center;
	background-size: 6px 6px, 6px 6px;
	background-repeat: no-repeat;
	cursor: pointer;
}

[dir="ltr"] :where(.wp-site-blocks) select {
	background-position: right 16px center, right 22px center;
}

:where(.wp-site-blocks) :is(input, select, textarea):hover {
	border-color: var(--klx-muted);
}

:where(.wp-site-blocks) :is(input, select, textarea):focus-visible {
	border-color: var(--klx-accent);
	outline: 2px solid var(--klx-accent);
	outline-offset: 2px;
}

:where(.wp-site-blocks) :is(input, select, textarea)::placeholder {
	color: var(--klx-muted);
	opacity: 0.8;
}

:where(.wp-site-blocks) :is(input, select, textarea):disabled {
	background-color: var(--klx-raised);
	border-color: var(--klx-line);
	color: var(--klx-muted);
	cursor: not-allowed;
}

:where(.wp-site-blocks) :is(input, select, textarea)[aria-invalid="true"],
.wpcf7-not-valid {
	border-color: var(--klx-error) !important;
	box-shadow: inset 0 0 0 1px var(--klx-error);
}

:where(.wp-site-blocks) :is(input[type="tel"], input[type="email"], input[type="url"], input[type="number"]) {
	direction: ltr;
	text-align: right;
}

:where(.wp-site-blocks) :is(input[type="checkbox"], input[type="radio"]) {
	width: 20px;
	height: 20px;
	margin: 0;
	accent-color: var(--klx-accent);
	color-scheme: dark;
	cursor: pointer;
}

:where(.wp-site-blocks) label {
	color: var(--klx-text);
	font-size: var(--wp--custom--font-size--card);
	font-weight: 600;
	line-height: 1.6;
}

:where(.wp-site-blocks) :is(input[type="submit"], button[type="submit"]):not(.wp-block-search__button):not(.wp-element-button) {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	min-height: var(--klx-button-h);
	padding: 0 36px;
	border: 0;
	border-radius: var(--klx-radius);
	background-color: var(--klx-accent);
	color: var(--klx-on-accent);
	font-family: inherit;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.6;
	cursor: pointer;
	transition: background-color 0.15s ease;
}

:where(.wp-site-blocks) :is(input[type="submit"], button[type="submit"]):not(.wp-block-search__button):not(.wp-element-button):hover {
	background-color: var(--klx-accent-hover);
}

/* core/search */
.wp-block-search__label {
	display: block;
	margin-block-end: 10px;
	color: var(--klx-text);
	font-size: var(--wp--custom--font-size--card);
	font-weight: 600;
	line-height: 1.6;
}

.wp-block-search .wp-block-search__inside-wrapper {
	gap: 12px;
	padding: 0;
	border: 0;
}

.wp-block-search .wp-block-search__input {
	min-height: var(--klx-button-h);
}

.wp-block-search .wp-block-search__button {
	flex: none;
	min-height: var(--klx-button-h);
	margin: 0;
	padding: 0 28px;
	white-space: nowrap;
}

.wp-block-search .wp-block-search__button::before {
	content: "";
	width: 18px;
	height: 18px;
	background-color: currentColor;
	-webkit-mask: var(--klx-i-search) center / contain no-repeat;
	mask: var(--klx-i-search) center / contain no-repeat;
}

@media (max-width: 479.98px) {
	.wp-block-search .wp-block-search__button {
		padding-inline: 18px;
	}
}

/* Contact Form 7 */
.wpcf7-form > p,
.wpcf7-form .klx-field {
	margin: 0 0 22px;
}

.wpcf7-form label {
	display: block;
}

.wpcf7-form-control-wrap {
	display: block;
	margin-block-start: 10px;
}

.wpcf7-not-valid-tip {
	display: block;
	margin-block-start: 8px;
	color: var(--klx-error);
	font-size: var(--wp--custom--font-size--meta);
	font-weight: 500;
	line-height: 1.7;
}

.wpcf7-list-item {
	display: flex;
	align-items: center;
	gap: 12px;
	min-height: var(--klx-touch);
	margin: 0;
}

.wpcf7-list-item-label {
	color: var(--klx-text);
	font-weight: 400;
}

.wpcf7 form .wpcf7-response-output {
	margin: 24px 0 0;
	padding: 20px 24px;
	background: var(--klx-surface);
	border: 1px solid var(--klx-accent);
	color: var(--klx-text);
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.8;
}

.wpcf7 form.sent .wpcf7-response-output {
	border-color: var(--klx-success);
}

.wpcf7 form:is(.invalid, .unaccepted, .payment-required, .failed, .aborted, .spam) .wpcf7-response-output {
	border-color: var(--klx-error);
}

.wpcf7-spinner {
	margin-inline: 12px 0;
}

/* Forminator (use its "None" design style so these rules apply) */
.forminator-ui.forminator-custom-form .forminator-label {
	color: var(--klx-text);
	font-size: var(--wp--custom--font-size--card);
	font-weight: 600;
}

.forminator-ui.forminator-custom-form .forminator-description {
	color: var(--klx-muted);
	font-size: var(--wp--custom--font-size--meta);
}

.forminator-ui.forminator-custom-form .forminator-error-message {
	color: var(--klx-error);
	font-size: var(--wp--custom--font-size--meta);
}

.forminator-ui.forminator-custom-form .forminator-button {
	min-height: var(--klx-button-h);
	padding: 0 32px;
	border: 0;
	border-radius: var(--klx-radius);
	background: var(--klx-accent);
	color: var(--klx-on-accent);
	font-family: inherit;
	font-weight: 700;
	cursor: pointer;
}

.forminator-ui.forminator-custom-form .forminator-button:hover {
	background: var(--klx-accent-hover);
}

/* Comments */
.klx-comments {
	margin-block-start: 56px !important;
	padding-block-start: 40px;
	border-top: 1px solid var(--klx-line);
}

.klx-comments .wp-block-comments-title,
.klx-comments .comment-reply-title {
	margin-block: 0 16px;
	font-size: clamp(20px, 18.51px + 0.381vw, 24px);
	font-weight: 800;
}

.klx-comment {
	padding-block: 24px;
	border-bottom: 1px solid var(--klx-line);
}

.klx-comment.klx-comment > * {
	margin-block: 0;
}

.klx-comment__meta {
	align-items: baseline;
	gap: 4px 12px;
}

.klx-comment .wp-block-comment-author-name {
	color: var(--klx-text);
	font-weight: 600;
}

.klx-comment .wp-block-comment-date {
	color: var(--klx-muted);
	font-size: var(--wp--custom--font-size--meta);
}

.klx-comment .wp-block-comment-content {
	margin-block-start: 8px !important;
	color: var(--klx-muted);
}

.klx-comment .wp-block-comment-reply-link a {
	color: var(--klx-accent);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	text-decoration: none;
}

.klx-comments .wp-block-comment-template ol {
	padding-inline-start: 24px;
}

.klx-comments .comment-form > p {
	margin-block: 0 20px;
}

.klx-comments .comment-form label {
	display: block;
	margin-block-end: 10px;
}

.klx-comments .comment-form-cookies-consent {
	display: flex;
	align-items: center;
	gap: 12px;
}

.klx-comments .comment-form-cookies-consent label {
	margin: 0;
	font-weight: 400;
}

/* ==========================================================================
   12. Reduced motion & print
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		scroll-behavior: auto !important;
	}
}

@media print {
	.klx-site-header,
	.klx-site-footer,
	.klx-mobile-bar,
	.klx-aside,
	.klx-inline-cta,
	.klx-cta-band {
		display: none !important;
	}

	body {
		background: #fff;
		color: #000;
	}

	.klx-article,
	.klx-article :is(h2, h3, h4, strong) {
		color: #000;
	}
}

/* Embedded iframes (maps, videos) pasted with fixed width/height never overflow their column */
.wp-block-post-content iframe,
.wp-block-column iframe {
	max-width: 100%;
}
.wp-block-post-content iframe[src*="google.com/maps"],
.wp-block-column iframe[src*="google.com/maps"] {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	border: 1px solid var(--wp--preset--color--hairline, #3A352D) !important;
	border-radius: 12px;
}

/* Single project: migrated content columns (details table | gallery) stack instead of squeezing the table;
   smaller type so the details read comfortably */
.single-portfolio .klx-project-title {
	font-size: clamp(26px, 2.2vw + 12px, 34px);
}
.single-portfolio .wp-block-post-content .wp-block-columns {
	flex-wrap: wrap !important;
}
.single-portfolio .wp-block-post-content .wp-block-column {
	flex-basis: 100% !important;
}
.single-portfolio .wp-block-post-content :is(h2, h3) {
	font-size: 20px;
	line-height: 1.6;
}
.single-portfolio .wp-block-post-content h4 {
	font-size: 17px;
}
.single-portfolio .wp-block-post-content p {
	font-size: 15px;
	line-height: 1.9;
}
.single-portfolio .wp-block-post-content table {
	font-size: 14px;
}
.single-portfolio .wp-block-post-content table :is(th, td):first-child {
	white-space: nowrap;
}
.single-portfolio .klx-project-main__title {
	font-size: 22px;
}

/* Card grids never leave a hole in the last row (short last page, small categories) */
@media (min-width: 1024px) {
	/* feature grid: card 1 takes 2 cells, so card i sits in cell i+1 */
	.klx-grid--3.klx-grid--feature > :only-child,
	.klx-grid--3.klx-grid--feature > :last-child:nth-child(3n) {
		grid-column: 1 / -1;
	}
	.klx-grid--3.klx-grid--feature > :last-child:nth-child(3n+1):not(:first-child) {
		grid-column: span 2;
	}
	/* plain 3-column grid */
	.klx-grid--3:not(.klx-grid--feature) > :last-child:nth-child(3n+1) {
		grid-column: 1 / -1;
	}
	.klx-grid--3:not(.klx-grid--feature) > :last-child:nth-child(3n+2) {
		grid-column: span 2;
	}
}
@media (min-width: 768px) and (max-width: 1023.98px) {
	.klx-grid--3 > :last-child:nth-child(odd) {
		grid-column: 1 / -1;
	}
}

/* ==========================================================================
   13. Header & footer blocks of klx-site (owner: header part)
       klx/logo · klx/mega-menu · klx/header-tools · klx/brand-text · footer menu columns
       Everything below only styles markup those blocks print. With the default settings
       (header style "classic", no logo_url, no footer-2..4 / topbar menus) none of it matches,
       so axagroup.ir renders exactly as before.
   ========================================================================== */

/* --- Logo from the "logo_url" setting (light logo, no colour filter) ------- */
.klx-logo--custom a {
	display: block;
}

.klx-logo--custom img {
	display: block;
	width: auto;
	height: auto;
	max-width: var(--klx-logo-w, 160px);
	max-height: var(--klx-logo-h, 64px);
}

.klx-mainbar .klx-logo--custom {
	justify-self: start;
}

/* "logo_plate" setting: a dark word-mark sits on a small light plate; the image is never recoloured. */
.klx-logo--plate a {
	display: inline-block;
	box-sizing: content-box;
	padding: 6px 10px;
	border-radius: var(--klx-radius);
	background: var(--klx-text);
	line-height: 0;
}

.klx-logo--plate a:focus-visible {
	outline: 2px solid var(--klx-accent);
	outline-offset: 3px;
}

@media (max-width: 767.98px) {
	.klx-header .klx-logo--custom img {
		max-width: 112px;
		max-height: 48px;
	}

	.klx-footer .klx-logo--custom img {
		max-width: 140px;
		max-height: 60px;
	}
}

/* --- Mega header: bar layout ------------------------------------------------ */
@media (min-width: 1024px) {
	.klx-header .klx-mainbar:has(> .klx-mm--header) {
		grid-template-columns: auto minmax(0, 1fr) auto auto;
		gap: 24px;
	}

	.klx-mainbar > .klx-mm--header {
		justify-self: center;
		align-self: stretch;
	}
}

@media (min-width: 1024px) and (max-width: 1279.98px) {
	.klx-header .klx-mainbar:has(> .klx-mm--header) {
		gap: 16px;
	}

	.klx-mainbar:has(> .klx-mm--header) .klx-header-cta .wp-block-button__link {
		padding-inline: 18px;
	}

	.klx-mainbar:has(> .klx-mm--header) .klx-logo--custom img {
		max-width: 124px;
		max-height: 52px;
	}
}

@media (min-width: 1024px) and (max-width: 1199.98px) {
	/* Six top-level items + tools leave no room for the button here; the call link stays in the top bar. */
	.klx-header .klx-mainbar:has(> .klx-mm--header) {
		grid-template-columns: auto minmax(0, 1fr) auto;
	}

	.klx-mainbar:has(> .klx-mm--header) .klx-header-cta {
		display: none;
	}
}

@media (max-width: 1023.98px) {
	.klx-mainbar .klx-mm--header {
		order: 2;
	}

	.klx-mainbar .klx-ht {
		order: 1;
	}
}

/* --- Mega menu: shared -------------------------------------------------------- */
.klx-mm {
	font-size: var(--wp--custom--font-size--nav);
	font-weight: 500;
	line-height: 1.6;
}

.klx-mm ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.klx-mm a {
	text-decoration: none;
}

.klx-mm button {
	font-family: inherit;
	cursor: pointer;
}

.klx-mm__burger,
.klx-mm__backdrop,
.klx-mm__drawer-head,
.klx-mm__list--extra,
.klx-mm__drawer-cta,
.klx-mm__subtoggle {
	display: none;
}

.klx-mm__row {
	display: flex;
	align-items: center;
	gap: 2px;
}

.klx-mm__link {
	display: inline-flex;
	align-items: center;
	padding: 10px 0 8px;
	border-bottom: 2px solid transparent;
	color: var(--klx-text);
	white-space: nowrap;
	transition: color 0.15s ease, border-color 0.15s ease;
}

.klx-mm a.klx-mm__link:hover,
.klx-mm__item:hover > .klx-mm__row > .klx-mm__link {
	color: var(--klx-accent);
}

.klx-mm__link.is-label {
	cursor: default;
}

.klx-mm__toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: var(--klx-radius);
	background: transparent;
	color: var(--klx-muted);
}

.klx-mm__toggle:hover {
	color: var(--klx-accent);
}

.klx-mm__toggle svg,
.klx-mm__subtoggle svg {
	display: block;
	transition: transform 0.15s ease;
}

.klx-mm__toggle[aria-expanded="true"] svg,
.klx-mm__subtoggle[aria-expanded="true"] svg {
	transform: rotate(180deg);
}

/* "#" parent: the label is the toggle button. */
.klx-mm__toggle--label {
	width: auto;
	height: auto;
	gap: 4px;
	padding: 10px 0 8px;
	border-bottom: 2px solid transparent;
	border-radius: 0;
	color: var(--klx-text);
	font-size: inherit;
	font-weight: inherit;
	line-height: inherit;
	white-space: nowrap;
}

.klx-mm__toggle--label .klx-mm__chevron {
	color: var(--klx-muted);
}

.klx-mm__chevron {
	display: inline-flex;
}

/* Current page: accent underline on the top-level item that is or contains it. */
.klx-mm__list > .klx-mm__item:is(.is-current, .is-ancestor, :has([aria-current="page"])) > :is(.klx-mm__link, .klx-mm__toggle--label),
.klx-mm__list > .klx-mm__item:is(.is-current, .is-ancestor, :has([aria-current="page"])) > .klx-mm__row > .klx-mm__link {
	border-bottom-color: var(--klx-accent);
	font-weight: 700;
}

.klx-mm__sublink {
	display: block;
	padding: 8px 0;
	color: var(--klx-muted);
	font-size: 14px;
	font-weight: 500;
	line-height: 1.6;
	transition: color 0.15s ease, background-color 0.15s ease;
}

.klx-mm a.klx-mm__sublink:hover,
.klx-mm__sublink[aria-current="page"] {
	color: var(--klx-accent);
}

.klx-mm__heading {
	display: block;
	color: var(--klx-text);
	font-size: 15px;
	font-weight: 700;
	line-height: 1.6;
}

.klx-mm a.klx-mm__heading:hover,
.klx-mm__heading[aria-current="page"] {
	color: var(--klx-accent);
}

.klx-mm .klx-mm__deep {
	margin-block: 2px 6px;
	padding-inline-start: 14px;
	border-inline-start: 1px solid var(--klx-line);
}

.klx-mm__deep .klx-mm__sublink {
	padding-block: 6px;
	font-size: 13px;
}

/* --- Dropdowns: always for the top bar list, from 1024px for the header menu ------ */
.klx-mm--inline .klx-mm__list {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	gap: 20px;
	white-space: nowrap;
}

.klx-mm--inline .klx-mm__item {
	position: relative;
	display: flex;
	align-items: center;
}

.klx-mm--inline .klx-mm__link,
.klx-mm--inline .klx-mm__toggle--label {
	padding: 4px 0;
	border: 0;
	color: var(--klx-muted);
	font-size: var(--wp--custom--font-size--meta);
	font-weight: 500;
}

.klx-mm--inline .klx-mm__list > .klx-mm__item > :is(.klx-mm__link, .klx-mm__toggle--label),
.klx-mm--inline .klx-mm__list > .klx-mm__item > .klx-mm__row > .klx-mm__link {
	border: 0;
	font-weight: 500;
}

.klx-mm--inline .klx-mm__list > .klx-mm__item:is(.is-current, .is-ancestor, :has([aria-current="page"])) > .klx-mm__row > .klx-mm__link,
.klx-mm--inline .klx-mm__list > .klx-mm__item.is-current > .klx-mm__link {
	color: var(--klx-accent);
}

.klx-mm--inline .klx-mm__toggle {
	width: 24px;
	height: 24px;
}

.klx-mm--inline .klx-mm__panel {
	position: absolute;
	top: 100%;
	inset-inline-start: -16px;
	z-index: 20;
	box-sizing: border-box;
	min-width: 220px;
	padding-block: 8px;
	background: var(--klx-surface);
	border: 1px solid var(--klx-line);
	box-shadow: 0 16px 32px -16px rgba(0, 0, 0, 0.8);
	font-size: 14px;
	visibility: hidden;
	opacity: 0;
	transform: translateY(4px);
	transition: opacity 0.15s ease, transform 0.15s ease, visibility 0s linear 0.15s;
}

@media (min-width: 1024px) {
	.klx-mm--header .klx-mm__panel {
		position: absolute;
		top: 100%;
		inset-inline-start: -20px;
		z-index: 20;
		box-sizing: border-box;
		min-width: 240px;
		padding-block: 8px;
		background: var(--klx-surface);
		border: 1px solid var(--klx-line);
		box-shadow: 0 16px 32px -16px rgba(0, 0, 0, 0.8);
		visibility: hidden;
		opacity: 0;
		transform: translateY(4px);
		transition: opacity 0.15s ease, transform 0.15s ease, visibility 0s linear 0.15s;
	}
}

.klx-mm__item:hover > .klx-mm__panel,
.klx-mm__item.is-open > .klx-mm__panel,
.klx-mm:not(.klx-mm--js) .klx-mm__item:focus-within > .klx-mm__panel,
.klx-mm__panel:focus-within {
	z-index: 21;
	visibility: visible;
	opacity: 1;
	transform: none;
	transition-delay: 0s;
}

.klx-mm__sub .klx-mm__sublink {
	padding: 10px 20px;
	color: var(--klx-text);
	font-size: var(--wp--custom--font-size--nav);
}

.klx-mm__sub a.klx-mm__sublink:hover,
.klx-mm__sub .klx-mm__sublink[aria-current="page"] {
	background-color: var(--klx-raised);
	color: var(--klx-accent);
}

.klx-mm__sub .klx-mm__deep {
	margin-inline-start: 20px;
}

@media (min-width: 1024px) {
	.klx-mm--header,
	.klx-mm--header > .klx-mm__drawer {
		height: 100%;
	}

	.klx-mm--header > .klx-mm__drawer > .klx-mm__list:not(.klx-mm__list--extra) {
		display: flex;
		align-items: stretch;
		gap: 32px;
		height: 100%;
	}

	.klx-mm--header .klx-mm__list > .klx-mm__item {
		position: relative;
		display: flex;
		align-items: center;
	}

	/* Wide panel: spans the whole header (the sticky header is the containing block). */
	.klx-mm--header .klx-mm__list > .klx-mm__item.is-mega {
		position: static;
	}

	.klx-mm--header .klx-mm__panel--mega {
		inset-inline: 0;
		min-width: 0;
		max-height: calc(100vh - var(--klx-mainbar-h) - var(--wp-admin--admin-bar--height, 0px) - 24px);
		overflow-y: auto;
		overscroll-behavior: contain;
		padding: 32px var(--klx-pad-inline) 36px;
		border-inline: 0;
	}

	.klx-mm__mega {
		display: flex;
		flex-wrap: wrap;
		align-items: flex-start;
		gap: 32px 56px;
		max-width: var(--wp--style--global--wide-size, 1280px);
		margin-inline: auto;
	}

	.klx-mm__links {
		flex: 0 1 220px;
		column-gap: 40px;
	}

	.klx-mm__links--2 {
		flex-basis: 480px;
		columns: 2;
	}

	.klx-mm__links--3 {
		flex-basis: 740px;
		columns: 3;
	}

	.klx-mm__links > li {
		break-inside: avoid;
	}

	.klx-mm__col {
		flex: 0 1 260px;
		min-width: 200px;
	}

	.klx-mm__col-head {
		margin-block-end: 6px;
		padding-block-end: 10px;
		border-bottom: 1px solid var(--klx-line);
	}
}

@media (min-width: 1024px) and (max-width: 1279.98px) {
	.klx-mm--header {
		font-size: 14px;
	}

	.klx-mm--header > .klx-mm__drawer > .klx-mm__list:not(.klx-mm__list--extra) {
		gap: 18px;
	}
}

/* --- Mega menu below 1024px: off-canvas drawer with accordions --------------------- */
@media (max-width: 1023.98px) {
	.klx-mm__burger {
		display: flex;
		align-items: center;
		justify-content: center;
		box-sizing: border-box;
		width: var(--klx-touch);
		height: var(--klx-touch);
		margin: 0;
		padding: 0;
		border: 1px solid var(--klx-line);
		border-radius: var(--klx-radius);
		background: transparent;
		color: var(--klx-text);
	}

	.klx-mm__burger:hover {
		border-color: var(--klx-muted);
	}

	.klx-mm__backdrop:not([hidden]) {
		display: block;
		position: fixed;
		inset: 0;
		z-index: 99;
		background: var(--klx-scrim);
	}

	.klx-mm__drawer {
		position: fixed;
		inset-block: 0;
		inset-inline-start: 0;
		z-index: 100;
		display: flex;
		flex-direction: column;
		box-sizing: border-box;
		width: min(100%, 420px);
		padding: calc(var(--wp-admin--admin-bar--height, 0px) + 12px) 20px calc(24px + env(safe-area-inset-bottom, 0px));
		overflow-y: auto;
		overscroll-behavior: contain;
		background: var(--klx-ground);
		border-inline-end: 1px solid var(--klx-line);
		color: var(--klx-text);
		visibility: hidden;
		transform: translateX(100%);
		transition: transform 0.25s ease, visibility 0s linear 0.25s;
	}

	[dir="ltr"] .klx-mm__drawer {
		transform: translateX(-100%);
	}

	.klx-mm__drawer.is-open {
		visibility: visible;
		transform: none;
		transition-delay: 0s;
	}

	.klx-mm__drawer-head {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 12px;
		min-height: 56px;
		margin-block-end: 8px;
	}

	.klx-mm__drawer-title {
		color: var(--klx-muted);
		font-size: var(--wp--custom--font-size--meta);
		font-weight: 600;
	}

	.klx-mm__close {
		display: flex;
		align-items: center;
		justify-content: center;
		box-sizing: border-box;
		width: var(--klx-touch);
		height: var(--klx-touch);
		margin: 0;
		padding: 0;
		border: 1px solid var(--klx-line);
		border-radius: var(--klx-radius);
		background: transparent;
		color: var(--klx-text);
	}

	.klx-mm--header .klx-mm__list {
		display: block;
	}

	.klx-mm--header .klx-mm__list > .klx-mm__item {
		display: block;
		border-bottom: 1px solid var(--klx-line);
	}

	.klx-mm--header .klx-mm__row {
		justify-content: space-between;
		gap: 8px;
	}

	.klx-mm--header .klx-mm__list > .klx-mm__item > .klx-mm__link,
	.klx-mm--header .klx-mm__row > .klx-mm__link {
		display: flex;
		flex: 1 1 auto;
		min-height: 56px;
		padding: 8px 0;
		border: 0;
		font-size: 17px;
		font-weight: 600;
		white-space: normal;
	}

	.klx-mm--header .klx-mm__toggle {
		flex: none;
		width: var(--klx-touch);
		height: var(--klx-touch);
		border: 1px solid var(--klx-line);
		color: var(--klx-text);
	}

	.klx-mm--header .klx-mm__toggle--label {
		justify-content: space-between;
		width: 100%;
		height: auto;
		min-height: 56px;
		padding: 8px 0;
		border: 0;
		font-size: 17px;
		font-weight: 600;
		text-align: start;
		white-space: normal;
	}

	.klx-mm--header .klx-mm__list > .klx-mm__item:is(.is-current, .is-ancestor, :has([aria-current="page"])) > :is(.klx-mm__link, .klx-mm__toggle--label),
	.klx-mm--header .klx-mm__list > .klx-mm__item:is(.is-current, .is-ancestor, :has([aria-current="page"])) > .klx-mm__row > .klx-mm__link {
		border: 0;
		color: var(--klx-accent);
	}

	.klx-mm--header .klx-mm__panel {
		display: none;
		padding: 0 0 12px;
		padding-inline-start: 12px;
	}

	.klx-mm--header .klx-mm__item.is-open > .klx-mm__panel {
		display: block;
	}

	.klx-mm--header .klx-mm__sublink,
	.klx-mm--header .klx-mm__sub .klx-mm__sublink {
		padding: 10px 0;
		background: transparent;
		color: var(--klx-muted);
		font-size: 15px;
	}

	.klx-mm--header .klx-mm__deep .klx-mm__sublink {
		font-size: 14px;
	}

	.klx-mm--header .klx-mm__col-head {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 8px;
	}

	.klx-mm--header .klx-mm__heading {
		flex: 1 1 auto;
		padding: 10px 0;
		font-size: 15px;
		font-weight: 600;
	}

	.klx-mm--header .klx-mm__subtoggle {
		display: flex;
		flex: none;
		align-items: center;
		justify-content: center;
		box-sizing: border-box;
		width: var(--klx-touch);
		height: var(--klx-touch);
		margin: 0;
		padding: 0;
		border: 0;
		background: transparent;
		color: var(--klx-muted);
	}

	.klx-mm--header .klx-mm__col-list {
		display: none;
		padding-inline-start: 12px;
	}

	.klx-mm--header .klx-mm__col.is-open > .klx-mm__col-list {
		display: block;
	}

	.klx-mm--header .klx-mm__list--extra {
		display: block;
		margin-block-start: 16px;
	}

	.klx-mm--header .klx-mm__list--extra > .klx-mm__item > .klx-mm__link,
	.klx-mm--header .klx-mm__list--extra .klx-mm__row > .klx-mm__link {
		min-height: 48px;
		color: var(--klx-muted);
		font-size: 15px;
		font-weight: 500;
	}

	.klx-mm__drawer-cta {
		display: block;
		margin-block-start: auto;
		padding-block-start: 24px;
	}

	.klx-mm__cta {
		display: flex;
		align-items: center;
		justify-content: center;
		box-sizing: border-box;
		min-height: 52px;
		padding: 0 16px;
		border-radius: var(--klx-radius);
		background: var(--klx-accent);
		color: var(--klx-on-accent);
		font-size: 16px;
		font-weight: 700;
	}

	.klx-mm a.klx-mm__cta:hover {
		background: var(--klx-accent-hover);
		color: var(--klx-on-accent);
	}

	html.klx-mm-lock,
	html.klx-mm-lock body {
		overflow: hidden;
	}
}

/* --- Header tools: search · account · cart ------------------------------------------ */
.klx-ht {
	display: flex;
	align-items: center;
	gap: 4px;
}

.klx-ht__btn {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: var(--klx-touch);
	height: var(--klx-touch);
	border: 1px solid transparent;
	border-radius: var(--klx-radius);
	background: transparent;
	color: var(--klx-text);
	text-decoration: none;
	cursor: pointer;
	transition: color 0.15s ease, border-color 0.15s ease;
}

.klx-ht__btn:hover,
.klx-ht__search[open] > .klx-ht__btn {
	border-color: var(--klx-line);
	color: var(--klx-accent);
}

.klx-ht__search > summary {
	list-style: none;
}

.klx-ht__search > summary::-webkit-details-marker,
.klx-ht__search > summary::marker {
	display: none;
	content: "";
}

/* The panel spans the header under the bar (the sticky header is the containing block). */
.klx-ht__search-panel {
	position: absolute;
	top: 100%;
	inset-inline: 0;
	z-index: 30;
	box-sizing: border-box;
	padding: 16px var(--klx-pad-inline);
	background: var(--klx-surface);
	border-bottom: 1px solid var(--klx-line);
	box-shadow: 0 16px 32px -16px rgba(0, 0, 0, 0.8);
}

.klx-ht__form {
	display: flex;
	gap: 12px;
	max-width: 760px;
	margin-inline: auto;
}

.klx-ht__form .klx-ht__input {
	flex: 1 1 auto;
	min-width: 0;
}

.klx-ht__submit {
	flex: none;
	min-height: var(--klx-control-h);
	margin: 0;
	padding: 0 28px;
	white-space: nowrap;
}

.klx-ht__count {
	position: absolute;
	top: 3px;
	inset-inline-end: 1px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	min-width: 18px;
	height: 18px;
	padding: 0 5px;
	border-radius: 9px;
	background: var(--klx-accent);
	color: var(--klx-on-accent);
	font-size: 11px;
	font-weight: 700;
	line-height: 1;
}

.klx-ht__count[hidden] {
	display: none;
}

/* WooCommerce mini-cart button in the same 44px slot (its drawer is styled by klx-woo.css). */
.klx-ht__cart--mini .wc-block-mini-cart {
	display: flex;
	margin: 0;
}

.klx-ht__cart--mini .wc-block-mini-cart__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	min-width: var(--klx-touch);
	height: var(--klx-touch);
	padding: 0 6px;
	border: 1px solid transparent;
	border-radius: var(--klx-radius);
	background: transparent;
	color: var(--klx-text);
}

.klx-ht__cart--mini .wc-block-mini-cart__button:hover {
	border-color: var(--klx-line);
	color: var(--klx-accent);
	opacity: 1;
}

.klx-ht__cart--mini .wc-block-mini-cart__icon {
	width: 24px;
	height: 24px;
}

.klx-ht__cart--mini .wc-block-mini-cart__badge {
	border-color: var(--klx-ground);
	background: var(--klx-accent);
	color: var(--klx-on-accent);
	font-weight: 700;
}

@media (max-width: 767.98px) {
	.klx-ht {
		gap: 0;
	}

	.klx-ht__search-panel {
		padding: 12px 16px;
	}

	.klx-ht__submit {
		padding-inline: 18px;
	}
}

@media (max-width: 479.98px) {
	.klx-ht__account {
		display: none;
	}
}

/* --- Footer: menu columns from footer-1..4 (klx/mega-menu "list") -------------------- */
@media (min-width: 1024px) {
	.klx-footer .klx-footer__grid:has(> :nth-child(4):last-child) {
		grid-template-columns: minmax(0, 1.4fr) repeat(3, minmax(0, 1fr));
		gap: 48px;
	}
}

@media (min-width: 1280px) {
	.klx-footer .klx-footer__grid:has(> :nth-child(5):last-child) {
		grid-template-columns: minmax(0, 1.3fr) repeat(4, minmax(0, 1fr));
		gap: 40px;
	}

	.klx-footer .klx-footer__grid:has(> :nth-child(6)) {
		grid-template-columns: minmax(0, 1.2fr) repeat(5, minmax(0, 1fr));
		gap: 32px;
	}
}

/* Tablet / small laptop: the brand takes a full row above the link columns. */
@media (min-width: 768px) and (max-width: 1023.98px) {
	.klx-footer .klx-footer__grid:has(> :nth-child(4)) {
		grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
	}

	.klx-footer .klx-footer__grid:has(> :nth-child(4)) > .klx-footer__brand {
		grid-column: 1 / -1;
	}
}

@media (min-width: 1024px) and (max-width: 1279.98px) {
	.klx-footer .klx-footer__grid:has(> :nth-child(5)) {
		grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
		gap: 40px;
	}

	.klx-footer .klx-footer__grid:has(> :nth-child(5)) > .klx-footer__brand {
		grid-column: 1 / -1;
	}
}

.klx-menu-col__sub {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin: 10px 0 0;
	padding: 0;
	padding-inline-start: 12px;
	border-inline-start: 1px solid var(--klx-line);
	list-style: none;
	font-size: var(--wp--preset--font-size--small);
}

.klx-menu-col .is-label {
	color: var(--klx-text);
	font-weight: 600;
}

@media (max-width: 767.98px) {
	.klx-menu-col__sub {
		gap: 0;
		margin-block-start: 0;
	}
}

@media print {
	.klx-mm__drawer,
	.klx-mm__backdrop,
	.klx-ht {
		display: none !important;
	}
}

/* ==========================================================================
   14. Kalaxa additions: popular category links above the footer (inc/footer-links.php),
       migrated alerts and anchors. No axagroup.ir markup uses these classes.
   ========================================================================== */

.klx-footlinks {
	border-block-start: 1px solid var(--klx-line);
	background: var(--klx-surface);
	color: var(--klx-muted);
}

.klx-footlinks__in {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 4px 12px;
	box-sizing: border-box;
	max-width: var(--wp--style--global--wide-size, 1280px);
	margin-inline: auto;
	padding: 16px var(--klx-gutter);
	font-size: 0.875rem;
	line-height: 1.9;
}

.klx-footlinks__title {
	margin: 0;
	color: var(--klx-text);
	font-weight: 600;
}

.klx-footlinks__list {
	display: flex;
	flex-wrap: wrap;
	gap: 0 4px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.klx-footlinks__list li + li::before {
	content: "|";
	margin-inline-end: 4px;
	color: var(--klx-line);
}

.klx-footlinks__list a {
	display: inline-block;
	min-height: 24px;
	color: var(--klx-muted);
	text-decoration: none;
}

.klx-footlinks__list a:hover,
.klx-footlinks__list a:focus-visible {
	color: var(--klx-accent);
	text-decoration: underline;
}

/* Migrated Elementor alerts (class-klx-migrate: group.klx-note + klx-note--{type}) and anchors. */
.klx-note {
	box-sizing: border-box;
	padding: 16px 20px;
	border: 1px solid var(--klx-line);
	border-inline-start: 4px solid var(--klx-accent);
	border-radius: var(--klx-radius);
	background: var(--klx-surface);
	color: var(--klx-text);
}

.klx-note > :first-child {
	margin-block-start: 0;
}

.klx-note > :last-child {
	margin-block-end: 0;
}

.klx-note--success {
	border-inline-start-color: var(--klx-success);
}

.klx-note--danger {
	border-inline-start-color: var(--klx-error);
}

.klx-anchor {
	display: block;
	height: 0;
	scroll-margin-block-start: var(--klx-sticky-offset, 96px);
}

/* ==========================================================================
   Legacy inline colours inside migrated / classic content (Elementor & classic editor were light-themed).
   Keep the author's emphasis, but make it readable on the dark ground.
   ========================================================================== */
:is(.wp-block-post-content, .klx-article, .woocommerce-Tabs-panel, .term-description, .woocommerce-product-details__short-description) :is([style*="#000000"], [style*="#000;"], [style*="#000\""], [style*="rgb(0, 0, 0)"], [style*="#333333"], [style*="#222222"], [style*="#111111"], font[color="#000000"], font[color="black"]):not([style*="background"]) {
	color: inherit !important;
}
/* dark emphasis colours (navy, blue, purple, plum) -> accent */
:is(.wp-block-post-content, .klx-article, .woocommerce-Tabs-panel, .term-description, .woocommerce-product-details__short-description) :is([style*="#000080"], [style*="#003366"], [style*="#0000ff"], [style*="#800080"], [style*="#993366"], [style*="#1a1a1a"]):not([style*="background"]) {
	color: var(--wp--preset--color--accent, #F4A51C) !important;
}
/* mid colours that are too dark on the ground -> lighter tints of the same hue */
:is(.wp-block-post-content, .klx-article, .woocommerce-Tabs-panel, .term-description, .woocommerce-product-details__short-description) [style*="#ff0000"]:not([style*="background"]) { color: #ff7a6b !important; }
:is(.wp-block-post-content, .klx-article, .woocommerce-Tabs-panel, .term-description, .woocommerce-product-details__short-description) :is([style*="#008000"], [style*="#339966"], [style*="#00b33c"]):not([style*="background"]) { color: #6fd08c !important; }
/* light highlight backgrounds -> subtle accent tint, readable text */
:is(.wp-block-post-content, .klx-article, .woocommerce-Tabs-panel, .term-description, .woocommerce-product-details__short-description) :is([style*="background-color: #ffff99"], [style*="background-color:#ffff99"], [style*="background-color: #ffff00"], [style*="background-color:#ffff00"], [style*="background-color: #ccffcc"], [style*="background-color:#ccffcc"], [style*="background-color: #ccffff"], [style*="background-color:#ccffff"], [style*="background-color: #f0feff"], [style*="background-color:#f0feff"], [style*="background-color: #ffffff"], [style*="background-color:#ffffff"], [style*="background-color: #fff;"], [style*="background: #fff"], [style*="background-color: white"]) {
	background-color: rgba(244, 165, 28, 0.16) !important;
	color: var(--wp--preset--color--text, #F4EFE6) !important;
	border-radius: 4px;
}
:is(.wp-block-post-content, .klx-article, .woocommerce-Tabs-panel, .term-description) :is([style*="background-color: #ffff99"], [style*="background-color: #ccffcc"], [style*="background-color: #ccffff"], [style*="background-color: #f0feff"], [style*="background-color: #ffff00"]) * {
	color: inherit !important;
}
/* table cells pasted with white backgrounds */
:is(.wp-block-post-content, .klx-article, .woocommerce-Tabs-panel) :is(table, tr, td, th)[style*="background"] {
	background: transparent !important;
}


/* ==========================================================================
   Free-order form on a photo background (page: ثبت رایگان سفارش).
   The GF form sat with no card behind it — bare inputs floating on the
   photo. Wrap it in a translucent panel so it reads as one unit.
   ========================================================================== */
.wp-block-cover .klx-form-single_wrapper {
	background: color-mix(in srgb, var(--klx-surface) 92%, transparent);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	border: 1px solid var(--klx-line);
	border-radius: var(--klx-radius-lg, 16px);
	padding: 28px;
	box-shadow: 0 24px 60px -20px rgba(0, 0, 0, 0.65);
}
@media (max-width: 599.98px) {
	.wp-block-cover .klx-form-single_wrapper {
		padding: 18px;
	}
}


/* ==========================================================================
   Vazirmatn ships no italic face, so <em>/<i>/<cite>/<dfn> on Persian text
   get a browser-synthesized (skewed) fake italic — glyphs look distorted,
   like a different, heavier font. Persian script isn't italicised; disable it.
   ========================================================================== */
:where(.wp-site-blocks) :is(em, i, cite, dfn) {
	font-style: normal;
}

/* ==========================================================================
   Gravity Forms outside the shop (e.g. form 486 «ثبت رایگان سفارش»): Gravity's own
   `.gform_wrapper.gravity-theme input[type=…] { font-size: 15px }` beats the
   zero-specificity base rule above, and iOS zooms into any field under 16px.
   Same token as the shop forms in klx-woo.css.
   ========================================================================== */
body .gform_wrapper.gravity-theme :is(input[type="text"], input[type="number"], input[type="email"], input[type="tel"], input[type="url"], input[type="date"], select, textarea) {
	min-height: var(--wp--custom--control-height, 52px);
	font-size: 16px;
}
