/* Mira Services — global visual system (Swiss Editorial Architecture). */
:root {
	--mira-header-h: 104px;
	--mira-shell: min(1480px, calc(100vw - clamp(32px, 5vw, 96px)));
	--mira-paper: #f8f8f3;
	--mira-paper-subtle: #f0f2ec;
	--mira-paper-stone: #e4e9e1;
	--mira-surface-warm: #f3eee1;
	--mira-green-wash: #e4eee0;
	--mira-leaf: #287742;
	--mira-moss: #78956b;
	--mira-sun: #d1aa63;
	--mira-ink: #121820;
	--mira-ink-muted: #4e5a6a;
	--mira-dark: #0d1520;
	--mira-rule: rgba(18, 24, 32, 0.1);
	--mira-rule-light: rgba(255, 255, 255, 0.18);
	--mira-ease: cubic-bezier(.22, 1, .36, 1);
	--mira-page-progress: 0;
	--mira-admin-offset: 0px;
}

html {
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--mira-header-h) + 16px);
}
body {
	margin: 0;
	background: var(--mira-paper);
	color: var(--mira-ink);
	font-family: var(--mira-body);
	font-size: 17px;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
}
body.mira-menu-open { overflow: hidden; }
*, *::before, *::after { box-sizing: border-box; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
button { color: inherit; }
h1, h2, h3, h4, p { margin-top: 0; }
h1, h2, h3, h4 { font-family: var(--mira-heading); font-weight: 500; }
[hidden] { display: none !important; }

/* Cursor globale: viene attivato soltanto dopo il bootstrap JS e solo con puntatori precisi. */
.mira-cursor { display: none; }
@media (hover: hover) and (pointer: fine) {
	html.mira-cursor-ready,
	html.mira-cursor-ready body,
	html.mira-cursor-ready body * { cursor: none !important; }
	.mira-cursor {
		position: fixed; top: 0; left: 0; z-index: 2147483647; display: block;
		width: 42px; height: 42px; opacity: 0; pointer-events: none;
		will-change: transform; transition: opacity .18s ease;
	}
	.mira-cursor.is-visible { opacity: 1; }
	.mira-cursor__ring {
		position: absolute; inset: 0; border: 1px solid rgba(18, 24, 32, .65); border-radius: 50%;
		background: rgba(248, 248, 243, .08); -webkit-backdrop-filter: blur(1px); backdrop-filter: blur(1px);
		transform: translate(-50%, -50%); transition: width .25s var(--mira-ease), height .25s var(--mira-ease), border-color .25s, background-color .25s, box-shadow .25s;
	}
	.mira-cursor__dot {
		position: absolute; top: 0; left: 0; width: 6px; height: 6px; border-radius: 50%;
		background: var(--mira-accent); box-shadow: 0 0 0 2px rgba(18, 24, 32, .18); transform: translate(-50%, -50%);
		transition: transform .2s var(--mira-ease), opacity .2s;
	}
	.mira-cursor__crosshair { position: absolute; top: 0; left: 0; width: 16px; height: 16px; transform: translate(-50%, -50%); transition: opacity .2s; }
	.mira-cursor__crosshair::before,
	.mira-cursor__crosshair::after { content: ""; position: absolute; background: rgba(18, 24, 32, .5); }
	.mira-cursor__crosshair::before { top: 7.5px; left: 0; width: 16px; height: 1px; }
	.mira-cursor__crosshair::after { top: 0; left: 7.5px; width: 1px; height: 16px; }
	.mira-cursor__label {
		position: absolute; top: 0; left: 0; display: grid; place-items: center; width: 68px; height: 68px;
		padding: 0 7px; color: #fff; font-family: var(--mira-heading); font-size: 8.5px; font-weight: 700;
		line-height: 1; letter-spacing: .075em; text-align: center; text-shadow: 0 1px 6px rgba(8, 13, 25, .5); white-space: nowrap;
		opacity: 0; transform: translate(-50%, -50%); transition: opacity .18s;
	}
	.mira-cursor.is-hovering .mira-cursor__ring { width: 58px; height: 58px; border-color: var(--mira-primary); background: rgba(248, 248, 243, .12); }
	.mira-cursor.is-active .mira-cursor__ring { width: 34px; height: 34px; }
	.mira-cursor.is-active .mira-cursor__dot { transform: translate(-50%, -50%) scale(.7); }
	.mira-cursor.has-label .mira-cursor__ring {
		width: 68px; height: 68px; border-color: rgba(255, 255, 255, .78);
		background: rgba(11, 20, 95, .38); box-shadow: 0 9px 26px rgba(8, 18, 28, .16), inset 0 0 0 1px rgba(255, 255, 255, .12);
		-webkit-backdrop-filter: blur(4px) saturate(1.15); backdrop-filter: blur(4px) saturate(1.15);
	}
	.mira-cursor.has-label .mira-cursor__label { opacity: 1; }
	.mira-cursor.has-label .mira-cursor__dot,
	.mira-cursor.has-label .mira-cursor__crosshair { opacity: 0; }
	.mira-cursor.is-input .mira-cursor__ring { width: 22px; height: 22px; border-color: var(--mira-primary); background: transparent; }
	.mira-cursor.is-input .mira-cursor__crosshair { opacity: 0; }
}

/* Atmosfera botanica globale: aloni e foglie si muovono lentamente senza intercettare l'interazione. */
.mira-atmosphere {
	position: fixed; inset: 0; z-index: 5; overflow: hidden; pointer-events: none;
	mix-blend-mode: multiply;
}
.mira-atmosphere__halo {
	position: absolute; display: block; width: clamp(220px, 24vw, 430px); aspect-ratio: 1;
	border-radius: 50%; filter: blur(68px); opacity: .14; will-change: transform, opacity;
}
.mira-atmosphere__halo--leaf {
	top: 14%; left: -8%; background: rgba(79, 139, 84, .72);
	animation: mira-halo-leaf 28s ease-in-out infinite;
}
.mira-atmosphere__halo--sun {
	top: 57%; right: -7%; width: clamp(190px, 21vw, 360px); background: rgba(209, 170, 99, .66);
	animation: mira-halo-sun 34s ease-in-out -8s infinite;
}
.mira-atmosphere__halo--sky {
	top: -8%; right: 18%; width: clamp(160px, 17vw, 300px); background: rgba(115, 152, 182, .5);
	animation: mira-halo-sky 38s ease-in-out -16s infinite;
}
.mira-atmosphere__leaf {
	position: absolute; display: block; width: 20px; height: 34px; border: 1px solid rgba(40, 119, 66, .3);
	border-radius: 100% 0 100% 0; opacity: .45; will-change: transform;
}
.mira-atmosphere__leaf--one { top: 31%; left: 5%; animation: mira-leaf-float 22s ease-in-out -4s infinite; }
.mira-atmosphere__leaf--two { top: 76%; right: 8%; animation: mira-leaf-float 27s ease-in-out -13s infinite reverse; }
@keyframes mira-halo-leaf {
	0%, 100% { opacity: .11; transform: translate3d(0, 0, 0) scale(.9); }
	42% { opacity: .18; transform: translate3d(12vw, 8vh, 0) scale(1.08); }
	72% { opacity: .13; transform: translate3d(5vw, -5vh, 0) scale(.98); }
}
@keyframes mira-halo-sun {
	0%, 100% { opacity: .1; transform: translate3d(0, 0, 0) scale(.92); }
	48% { opacity: .17; transform: translate3d(-14vw, -9vh, 0) scale(1.12); }
}
@keyframes mira-halo-sky {
	0%, 100% { opacity: .08; transform: translate3d(0, 0, 0); }
	50% { opacity: .13; transform: translate3d(-9vw, 14vh, 0); }
}
@keyframes mira-leaf-float {
	0%, 100% { transform: translate3d(0, 0, 0) rotate(18deg); }
	50% { transform: translate3d(4vw, -5vh, 0) rotate(48deg); }
}

.mira-shell { width: var(--mira-shell); margin-inline: auto; }
.mira-skip-link {
	position: fixed; top: 10px; left: 10px; z-index: 10000; padding: 12px 20px;
	background: var(--mira-accent); color: var(--mira-ink); font-weight: 600;
	transform: translateY(-160%); transition: transform .25s;
}
.mira-skip-link:focus { transform: translateY(0); }
:focus-visible { outline: 2px solid var(--mira-primary); outline-offset: 3px; }

/* Kickers & Section Headers */
.mira-kicker {
	display: inline-flex; align-items: center; gap: 10px; margin-bottom: 14px;
	color: var(--mira-primary); font-family: var(--mira-heading); font-size: 11px;
	font-weight: 600; letter-spacing: .12em; line-height: 1.2; text-transform: uppercase;
}
.mira-kicker--light { color: var(--mira-accent); }
.mira-kicker::before {
	content: ""; display: inline-block; width: 6px; height: 6px;
	border-radius: 50%; background: currentColor;
}

/* Links & Buttons */
.mira-arrow-link {
	display: inline-flex; gap: 12px; align-items: center; padding-block: 6px 4px;
	border-bottom: 1px solid currentColor; font-family: var(--mira-heading); font-size: 13px;
	font-weight: 600; letter-spacing: .03em; text-transform: uppercase; transition: color .25s, border-color .25s;
}
.mira-arrow-link i { font-style: normal; font-size: 14px; transition: transform .3s var(--mira-ease); }
.mira-arrow-link:hover { color: var(--mira-primary); border-color: var(--mira-primary); }
.mira-arrow-link:hover i { transform: translate(3px, -3px); }

.mira-button {
	position: relative; isolation: isolate; overflow: hidden; display: inline-flex; align-items: center; justify-content: center; gap: 16px;
	padding: 13px 26px; border: 1px solid transparent; border-radius: 2px;
	font-family: var(--mira-heading); font-size: 13px; font-weight: 600; line-height: 1.2;
	letter-spacing: .04em; text-transform: uppercase; cursor: pointer;
	transition: background-color .25s, color .25s, border-color .25s, transform .25s var(--mira-ease);
}
.mira-button::before {
	content: ""; position: absolute; inset: 0; z-index: 0; background: var(--mira-accent);
	transform: scaleX(0); transform-origin: right; transition: transform .38s var(--mira-ease);
}
.mira-button > * { position: relative; z-index: 1; }
.mira-button:hover::before { transform: scaleX(1); transform-origin: left; }
.mira-button i { font-style: normal; font-size: 15px; transition: transform .25s var(--mira-ease); }
.mira-button:hover i { transform: translate(2px, -2px); }
.mira-button--primary {
	background: var(--mira-primary); border-color: var(--mira-primary); color: #fff;
}
.mira-button--primary:hover {
	background: var(--mira-primary); border-color: var(--mira-accent); color: var(--mira-ink);
}
.mira-button--light {
	background: rgba(255, 255, 255, 0.12); border-color: rgba(255, 255, 255, 0.35); color: #fff;
	backdrop-filter: blur(8px);
}
.mira-button--light:hover {
	background: rgba(255, 255, 255, 0.12); border-color: var(--mira-accent); color: var(--mira-ink);
}
.mira-button--outline {
	background: transparent; border-color: var(--mira-rule); color: var(--mira-ink);
}
.mira-button--outline:hover {
	border-color: var(--mira-accent); color: var(--mira-ink); background: transparent;
}

/* ============================================================
   HEADER
   ============================================================ */
.mira-header {
	position: fixed; inset: var(--mira-admin-offset) 0 auto; z-index: 1000; height: var(--mira-header-h); color: #fff;
	transition: background-color .35s, color .35s, box-shadow .35s, height .3s;
}
.mira-header::after {
	content: ""; position: absolute; inset: auto 0 0; height: 1px;
	background: rgba(255, 255, 255, 0.2); transition: background-color .35s;
}
.mira-header.is-scrolled, body:not(.home) .mira-header, .mira-header.is-menu-open {
	background: rgba(251, 252, 251, 0.95); color: var(--mira-ink);
	box-shadow: 0 4px 24px rgba(18, 24, 32, 0.06); backdrop-filter: blur(14px);
	-webkit-backdrop-filter: blur(14px);
}
.mira-header.is-scrolled::after, body:not(.home) .mira-header::after, .mira-header.is-menu-open::after {
	background: var(--mira-rule);
}
.mira-header__inner {
	width: var(--mira-shell); height: 100%; margin-inline: auto;
	display: grid; grid-template-columns: 210px 1fr auto; align-items: center; gap: 32px;
}
.mira-brand {
	display: inline-flex; align-items: center; text-decoration: none; font-weight: 700;
}
.mira-brand img {
	width: auto; height: 56px; object-fit: contain; object-position: left center;
	filter: brightness(0) invert(1); transition: filter .35s, transform .3s var(--mira-ease);
}
.mira-header.is-scrolled .mira-brand img, body:not(.home) .mira-brand img, .mira-header.is-menu-open .mira-brand img {
	filter: none;
}
.mira-brand span {
	font-family: var(--mira-heading); font-size: 20px; font-weight: 700; letter-spacing: -.02em;
}

.mira-nav {
	justify-self: center; display: flex; align-items: center; gap: clamp(20px, 2.4vw, 36px); height: 100%;
}
.mira-nav__link {
	position: relative; display: inline-flex; gap: 6px; align-items: center; height: 100%; padding: 0 4px;
	border: 0; background: none; color: inherit; font-family: var(--mira-heading); font-size: 13px;
	font-weight: 600; letter-spacing: .05em; text-transform: uppercase; cursor: pointer;
	transition: color .25s;
}
.mira-nav__link::after {
	content: ""; position: absolute; right: 0; bottom: 20px; left: 0; height: 2px;
	background: var(--mira-primary); transform: scaleX(0); transform-origin: right;
	transition: transform .3s var(--mira-ease), background-color .3s;
}
.mira-header:not(.is-scrolled):not(.is-menu-open) .mira-nav__link::after {
	background: var(--mira-accent);
}
.mira-nav__link:hover::after, .mira-nav__link.is-active::after, .mira-nav__link[aria-expanded="true"]::after {
	transform: scaleX(1); transform-origin: left;
}
.mira-nav__service-trigger > span { font-size: 16px; font-weight: 400; transition: transform .3s; }
.mira-nav__service-trigger[aria-expanded="true"] > span { transform: rotate(45deg); }

.mira-header__cta {
	display: inline-flex; align-items: center; gap: 12px; padding: 10px 18px;
	border: 1px solid rgba(255, 255, 255, 0.4); border-radius: 2px;
	font-family: var(--mira-heading); font-size: 12px; font-weight: 600;
	letter-spacing: .05em; text-transform: uppercase;
	transition: background-color .25s, border-color .25s, color .25s;
}
.mira-header.is-scrolled .mira-header__cta, body:not(.home) .mira-header__cta, .mira-header.is-menu-open .mira-header__cta {
	border-color: var(--mira-primary); background: var(--mira-primary); color: #fff;
}
.mira-header.is-scrolled .mira-header__cta:hover, body:not(.home) .mira-header__cta:hover {
	background: #001ca8; border-color: #001ca8;
}
.mira-header:not(.is-scrolled):not(.is-menu-open) .mira-header__cta:hover {
	background: rgba(255, 255, 255, 0.15); border-color: #fff;
}
.mira-header__cta span:last-child { font-size: 14px; transition: transform .25s; }
.mira-header__cta:hover span:last-child { transform: translate(2px, -2px); }

.mira-menu-toggle { display: none; border: 0; background: none; cursor: pointer; }

.mira-page-progress { position: fixed; inset: var(--mira-admin-offset) 0 auto; z-index: 1200; height: 3px; pointer-events: none; }
.mira-page-progress span { display: block; width: 100%; height: 100%; background: var(--mira-accent); transform: scaleX(var(--mira-page-progress)); transform-origin: left; will-change: transform; }

/* ============================================================
   MEGA MENU
   ============================================================ */
.mira-mega {
	position: absolute; top: 100%; left: 0; width: 100%; max-height: calc(100vh - var(--mira-header-h));
	overflow: auto; background: rgba(248, 248, 243, .97); color: var(--mira-ink);
	box-shadow: 0 18px 44px rgba(18, 24, 32, 0.1); border-bottom: 1px solid var(--mira-rule);
	-webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px);
	animation: mira-mega-in .3s var(--mira-ease) both;
}
@keyframes mira-mega-in { from { opacity: 0; transform: translateY(-10px); } }
.mira-mega__inner {
	width: var(--mira-shell); margin-inline: auto; padding: 26px 0 30px;
	display: grid; grid-template-columns: 220px minmax(0, 1fr) 280px; gap: clamp(28px, 3vw, 44px);
}
.mira-mega__heading { border-right: 1px solid var(--mira-rule); padding: 8px 28px 8px 0; }
.mira-mega__heading .mira-kicker { margin-bottom: 16px; }
.mira-mega__heading > p:last-child { margin-bottom: 0; font-size: 14px; line-height: 1.55; color: var(--mira-ink-muted); }
.mira-mega__list { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: 1fr 1fr; gap: 0 24px; }
.mira-mega__list li { border-bottom: 1px solid var(--mira-rule); }
.mira-mega__list a {
	display: grid; grid-template-columns: 28px 1fr auto; gap: 10px; align-items: center;
	min-height: 48px; padding: 8px 4px; text-decoration: none;
	transition: background-color .25s, box-shadow .25s;
}
.mira-mega__list a:hover, .mira-mega__list a:focus-visible, .mira-mega__list a[aria-current="true"] {
	background: rgba(40, 119, 66, .055); box-shadow: inset 2px 0 var(--mira-leaf);
}
.mira-mega__list a > span { color: var(--mira-primary); font-family: var(--mira-heading); font-size: 11px; font-weight: 600; }
.mira-mega__list strong { font-family: var(--mira-heading); font-size: 15px; font-weight: 500; transition: color .2s; }
.mira-mega__list i { font-style: normal; opacity: 0; transform: translate(-6px, 6px); transition: .25s; }
.mira-mega__list a:hover i, .mira-mega__list a:focus i, .mira-mega__list a[aria-current="true"] i { opacity: 1; transform: none; }
.mira-mega__list a:hover strong, .mira-mega__list a:focus strong, .mira-mega__list a[aria-current="true"] strong { color: var(--mira-primary); }
.mira-mega__list .is-emergency strong::after {
	content: "24/7"; margin-left: 8px; padding: 2px 6px; border-radius: 2px;
	background: rgba(1, 0, 214, 0.08); color: var(--mira-primary);
	font-family: var(--mira-heading); font-size: 9px; font-weight: 700;
}
.mira-mega__visual { position: relative; min-width: 0; min-height: 230px; }
.mira-mega__visual figure {
	position: absolute; inset: 0; margin: 0; opacity: 0; visibility: hidden; pointer-events: none;
	transition: opacity .3s var(--mira-ease), visibility .3s;
}
.mira-mega__visual figure.is-active {
	position: relative; opacity: 1; visibility: visible; pointer-events: auto;
}
.mira-mega__image { width: 100%; aspect-ratio: 16/9; object-fit: cover; border-radius: 2px; }
.mira-mega__visual figcaption { margin-top: 10px; font-size: 12px; line-height: 1.45; color: var(--mira-ink-muted); }
.mira-mega__desc { display: block; }
.mira-mega__cta {
	display: inline-flex; align-items: center; gap: 8px; margin-top: 10px;
	color: var(--mira-primary); font-family: var(--mira-heading); font-size: 11px;
	font-weight: 600; letter-spacing: .04em; text-transform: uppercase;
}
.mira-mega__cta i { font-style: normal; transition: transform .25s; }
.mira-mega__cta:hover i { transform: translate(2px, -2px); }

/* ============================================================
   MOBILE OVERLAY
   ============================================================ */
.mira-mobile-menu { display: none; }

/* ============================================================
   FOOTER
   ============================================================ */
.mira-footer-bridge {
	position: relative; isolation: isolate; overflow: hidden; min-height: clamp(360px, 42vw, 560px);
	display: flex; align-items: flex-end; background: var(--mira-dark); color: #fff;
}
.mira-footer-bridge__media,
.mira-footer-bridge__media::after { position: absolute; inset: 0; }
.mira-footer-bridge__media { z-index: -2; background: #314136; }
.mira-footer-bridge__media::after {
	content: ""; background: linear-gradient(90deg, rgba(9, 17, 15, .88) 0%, rgba(9, 17, 15, .5) 52%, rgba(9, 17, 15, .7) 100%);
}
.mira-footer-bridge__media img { width: 100%; height: 100%; object-fit: cover; object-position: center 46%; filter: saturate(.74) contrast(1.04); }
.mira-footer-bridge__content {
	display: grid; grid-template-columns: minmax(0, 1.25fr) auto; gap: clamp(36px, 8vw, 132px); align-items: end;
	padding-block: clamp(64px, 8vw, 112px);
}
.mira-footer-bridge h2 {
	max-width: 13ch; margin: 0 0 20px; color: #fff; font-size: clamp(38px, 4.8vw, 72px);
	line-height: .98; letter-spacing: -.035em; text-wrap: balance;
}
.mira-footer-bridge p { max-width: 62ch; margin: 0; color: rgba(255, 255, 255, .78); font-size: clamp(16px, 1.45vw, 20px); line-height: 1.55; }
.mira-footer-bridge__cta {
	display: inline-flex; min-height: 52px; align-items: center; gap: 22px; padding: 14px 20px;
	border: 1px solid rgba(255, 255, 255, .58); color: #fff; font-family: var(--mira-heading);
	font-size: 12px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase;
	transition: color .3s var(--mira-ease), background-color .3s var(--mira-ease), border-color .3s var(--mira-ease);
}
.mira-footer-bridge__cta svg,
.mira-footer__emergency svg,
.mira-footer__back-to-top svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; transition: transform .3s var(--mira-ease); }
.mira-footer-bridge__cta:hover,
.mira-footer-bridge__cta:focus-visible { border-color: var(--mira-accent); background: var(--mira-accent); color: var(--mira-dark); }
.mira-footer-bridge__cta:hover svg,
.mira-footer-bridge__cta:focus-visible svg { transform: translate(3px, -3px); }

.mira-footer {
	--mira-footer-gap-xs: 10px;
	--mira-footer-gap-sm: 20px;
	--mira-footer-gap-md: clamp(32px, 3.4vw, 48px);
	--mira-footer-gap-lg: clamp(52px, 4.5vw, 68px);
	--mira-footer-rule: rgba(255, 255, 255, .16);
	position: relative; isolation: isolate; overflow: hidden; padding: clamp(80px, 6vw, 104px) 0 0;
	background: #0b141e; color: #fff;
}
.mira-footer__inner { position: relative; z-index: 1; isolation: isolate; }
.mira-footer__material {
	position: absolute; z-index: -1; top: 8%; right: -2%; width: min(50vw, 820px); height: calc(100% - 76px);
	opacity: .2; filter: saturate(.62) contrast(.94) brightness(.68); mix-blend-mode: normal;
	-webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, .18) 22%, #000 64%, #000 100%);
	mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, .18) 22%, #000 64%, #000 100%);
}
.mira-footer__material img { width: 100%; height: 100%; object-fit: cover; object-position: 56% center; }
.mira-footer__masthead {
	display: grid; grid-template-columns: minmax(210px, .56fr) minmax(0, 1.44fr); gap: clamp(52px, 7vw, 112px); align-items: center;
	padding-bottom: var(--mira-footer-gap-lg); border-bottom: 1px solid var(--mira-footer-rule);
}
.mira-footer__brand { display: inline-flex; width: max-content; }
.mira-footer__brand img { width: clamp(168px, 13vw, 210px); height: auto; filter: brightness(0) invert(1); }
.mira-footer__brand > span { font-family: var(--mira-heading); font-size: 24px; font-weight: 600; }
.mira-footer__claim h2 {
	max-width: 18ch; margin: 0 0 14px; color: #fff; font-size: clamp(44px, 4vw, 72px);
	line-height: 1; letter-spacing: -.032em; text-transform: uppercase; text-wrap: balance;
}
.mira-footer__claim p { max-width: 52ch; margin: 0; color: rgba(255, 255, 255, .68); font-size: 16px; line-height: 1.55; }
.mira-footer__directory {
	display: grid; grid-template-columns: minmax(220px, 1fr) minmax(420px, 2fr) minmax(180px, 1fr);
	gap: clamp(40px, 5vw, 80px); padding-block: var(--mira-footer-gap-lg);
}
.mira-footer__contacts,
.mira-footer__navigation { padding-top: 0; }
.mira-footer__group h3 {
	margin: 0 0 var(--mira-footer-gap-sm); color: rgba(255, 255, 255, .48); font-size: 11px; font-weight: 700;
	letter-spacing: .13em; text-transform: uppercase;
}
.mira-footer__group ul { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.mira-footer__group li + li { margin-top: 0; }
.mira-footer__group a {
	position: relative; display: inline-flex; align-items: center; min-height: 29px; color: rgba(255, 255, 255, .82);
	font-family: var(--mira-heading); font-size: 15px; line-height: 1.35; transition: color .25s, transform .3s var(--mira-ease);
}
.mira-footer__group a::before {
	content: ""; width: 0; height: 5px; margin-right: 0; border-radius: 50%; background: var(--mira-accent);
	opacity: 0; transition: width .25s var(--mira-ease), margin-right .25s var(--mira-ease), opacity .25s;
}
.mira-footer__group a:hover,
.mira-footer__group a:focus-visible { color: #fff; transform: translateX(4px); }
.mira-footer__group a:hover::before,
.mira-footer__group a:focus-visible::before { width: 5px; margin-right: 9px; opacity: 1; }
.mira-footer__contact-list { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; color: rgba(255, 255, 255, .74); }
.mira-footer__contact-list address { max-width: 25ch; margin: 0; font-style: normal; line-height: 1.55; }
.mira-footer__socials { display: flex; flex-wrap: wrap; gap: 8px 20px; margin-top: var(--mira-footer-gap-sm); }
.mira-footer__socials:empty { display: none; }
.mira-footer__services ul {
	display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: repeat(4, minmax(29px, auto));
	grid-auto-flow: column; gap: 6px clamp(28px, 3.5vw, 58px);
}
.mira-footer__services li { min-width: 0; break-inside: avoid; }
.mira-footer__emergency {
	display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 18px; align-items: center;
	padding-block: 24px; border-top: 1px solid var(--mira-footer-rule); border-bottom: 1px solid var(--mira-footer-rule);
}
.mira-footer__emergency-dot {
	width: 9px; height: 9px; border-radius: 50%; background: var(--mira-accent);
	box-shadow: 0 0 0 5px rgba(0, 232, 63, .14); animation: mira-footer-pulse 2.8s ease-in-out infinite;
}
.mira-footer__emergency strong { display: block; font-family: var(--mira-heading); font-size: 17px; text-transform: uppercase; }
.mira-footer__emergency p { margin: 4px 0 0; color: rgba(255, 255, 255, .6); font-size: 14px; }
.mira-footer__emergency > a {
	display: inline-flex; align-items: center; gap: 16px; color: var(--mira-accent); font-family: var(--mira-heading);
	font-size: clamp(18px, 2vw, 26px); font-weight: 600; letter-spacing: .01em; transition: color .25s;
}
.mira-footer__emergency > a:hover,
.mira-footer__emergency > a:focus-visible { color: #fff; }
.mira-footer__emergency > a:hover svg,
.mira-footer__emergency > a:focus-visible svg { transform: translate(3px, -3px); }
.mira-footer__wordmark {
	position: absolute; z-index: -1; right: -.045em; bottom: 32px; overflow: hidden; margin: 0;
	color: rgba(255, 255, 255, .025); font-family: var(--mira-heading); font-size: clamp(120px, 18vw, 280px);
	font-weight: 700; line-height: .72; letter-spacing: -.06em; white-space: nowrap; pointer-events: none; user-select: none;
}
.mira-footer__bottom {
	position: relative; display: grid; grid-template-columns: 1fr auto auto; gap: clamp(24px, 4vw, 64px); align-items: center;
	min-height: 72px; color: rgba(255, 255, 255, .54); font-size: 12px;
}
.mira-footer__bottom p { margin: 0; }
.mira-footer__legal { display: flex; flex-wrap: wrap; gap: 12px 24px; }
.mira-footer__legal a { color: rgba(255, 255, 255, .68); transition: color .25s; }
.mira-footer__legal a:hover,
.mira-footer__legal a:focus-visible { color: var(--mira-accent); }
.mira-footer__back-to-top {
	display: inline-flex; min-height: 44px; align-items: center; gap: 12px; color: #fff; font-family: var(--mira-heading);
	font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
}
.mira-footer__back-to-top:hover svg,
.mira-footer__back-to-top:focus-visible svg { transform: translateY(-5px); }
@keyframes mira-footer-pulse {
	0%, 100% { box-shadow: 0 0 0 5px rgba(0, 232, 63, .12); }
	50% { box-shadow: 0 0 0 10px rgba(0, 232, 63, 0); }
}

/* Safe styling for WordPress detail pages. */
body:not(.home) main, body:not(.home) .site-main { min-height: 70vh; padding-top: calc(var(--mira-header-h) + 50px); }
body:not(.home) .entry-header, body:not(.home) .entry-content, body:not(.home) .page-header { width: min(880px, calc(100vw - 40px)); margin-inline: auto; }
body:not(.home) .entry-title { color: var(--mira-primary); font-size: clamp(38px, 5.5vw, 68px); line-height: 1.05; }
body:not(.home) .entry-content { padding-bottom: 80px; font-size: 17px; }
body:not(.home) .entry-content h2 { margin-top: 2em; font-size: clamp(24px, 3.2vw, 38px); }
body:not(.home) .entry-content a { color: var(--mira-primary); }

@media (max-width: 1099px) {
	:root { --mira-header-h: 70px; --mira-shell: calc(100vw - 40px); --mira-admin-offset: 0px !important; }
	.mira-header, .mira-header.is-scrolled, body:not(.home) .mira-header { height: var(--mira-header-h); }
	.mira-header, .mira-header.is-scrolled, body:not(.home) .mira-header, .mira-header.is-menu-open {
		background: rgba(251, 252, 249, .97); color: var(--mira-ink);
		box-shadow: 0 4px 22px rgba(18, 24, 32, .065); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px);
	}
	.mira-header::after { background: var(--mira-rule); }
	.mira-header__inner { grid-template-columns: minmax(0, 1fr) auto; gap: 18px; }
	.mira-nav, .mira-header__cta { display: none; }
	.mira-brand img, .mira-header.is-scrolled .mira-brand img, body:not(.home) .mira-brand img, .mira-header.is-menu-open .mira-brand img { height: 44px; filter: none; }
	.mira-menu-toggle {
		display: inline-flex; min-width: 48px; min-height: 48px; align-items: center; justify-content: center; gap: 10px;
		padding: 8px 10px; border: 1px solid var(--mira-rule); border-radius: 2px; background: rgba(255, 255, 255, .62); color: inherit;
	}
	.mira-menu-toggle__label { font-family: var(--mira-heading); font-size: 11px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
	.mira-menu-toggle__icon { position: relative; width: 24px; height: 16px; }
	.mira-menu-toggle__icon i { position: absolute; left: 0; width: 100%; height: 2px; background: currentColor; transition: .3s; }
	.mira-menu-toggle__icon i:first-child { top: 3px; }
	.mira-menu-toggle__icon i:last-child { top: 11px; }
	.mira-menu-toggle[aria-expanded="true"] i:first-child { top: 7px; transform: rotate(45deg); }
	.mira-menu-toggle[aria-expanded="true"] i:last-child { top: 7px; transform: rotate(-45deg); }
	.mira-mega { display: none; }
	.mira-mobile-menu {
		position: fixed; inset: var(--mira-admin-offset) 0 0; z-index: 900; display: block; padding-top: var(--mira-header-h);
		background-color: rgba(248, 248, 243, .985); color: var(--mira-ink);
		background-image: radial-gradient(circle at 8% 20%, rgba(228, 238, 224, .9), transparent 32%), radial-gradient(circle at 92% 86%, rgba(243, 238, 225, .8), transparent 34%);
		visibility: hidden; opacity: 0; transform: translateY(-10px);
		transition: visibility .35s, opacity .35s, transform .4s var(--mira-ease);
	}
	.mira-mobile-menu.is-open { visibility: visible; opacity: 1; transform: none; }
	.mira-mobile-menu__scroll {
		width: min(680px, 100%); height: 100%; margin-inline: auto; overflow-y: auto;
		padding: 18px max(20px, env(safe-area-inset-right)) calc(28px + env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left));
		overscroll-behavior: contain;
	}
	.mira-mobile-menu__primary { margin: 0; padding: 0; list-style: none; }
	.mira-mobile-menu__primary > li { border-bottom: 1px solid var(--mira-rule); }
	.mira-mobile-menu__primary > li > a, .mira-mobile-menu__primary > li > button {
		display: flex; width: 100%; min-height: 58px; align-items: center; justify-content: space-between; gap: 18px; padding: 10px 2px;
		border: 0; background: none; color: inherit; font-family: var(--mira-heading); font-size: clamp(18px, 4.5vw, 23px);
		font-weight: 500; letter-spacing: -.015em; text-align: left; text-decoration: none; cursor: pointer;
	}
	.mira-mobile-menu__primary > li > a:hover, .mira-mobile-menu__primary > li > a:focus-visible,
	.mira-mobile-menu__primary > li > button:hover, .mira-mobile-menu__primary > li > button:focus-visible { color: var(--mira-primary); }
	.mira-mobile-menu__primary i { color: var(--mira-primary); font-style: normal; font-size: 20px; font-weight: 400; transition: transform .3s; }
	.mira-mobile-menu__primary button[aria-expanded="true"] i { transform: rotate(45deg); }
	.mira-mobile-menu__primary ol { margin: 0; padding: 2px 0 16px; list-style: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 18px; }
	.mira-mobile-menu__primary ol li { border-top: 1px solid var(--mira-rule); }
	.mira-mobile-menu__primary ol a {
		display: flex; min-height: 46px; align-items: center; justify-content: space-between; gap: 8px; padding: 8px 2px;
		font-family: var(--mira-heading); font-size: 13px; line-height: 1.25; color: var(--mira-ink-muted);
	}
	.mira-mobile-menu__primary ol a:hover, .mira-mobile-menu__primary ol a:focus-visible { color: var(--mira-primary); }
	.mira-mobile-menu__contact { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 8px 20px; margin-top: 20px; font-size: 13px; color: var(--mira-ink-muted); }
	.mira-mobile-menu__contact a { min-height: 44px; display: inline-flex; align-items: center; }
	.mira-mobile-menu__cta {
		display: flex; min-height: 50px; align-items: center; justify-content: space-between; margin-top: 20px; padding: 12px 18px;
		background: var(--mira-primary); border-radius: 2px; font-family: var(--mira-heading); font-size: 13px;
		font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: #fff;
	}
	.mira-footer { --mira-footer-gap-lg: clamp(46px, 6vw, 58px); padding-top: clamp(68px, 8vw, 86px); }
	.mira-footer__masthead { grid-template-columns: minmax(170px, .72fr) minmax(0, 1.28fr); gap: 48px; }
	.mira-footer__directory { grid-template-columns: minmax(190px, .72fr) minmax(0, 1.28fr); gap: 36px 56px; }
	.mira-footer__contacts { grid-column: 1; grid-row: 1; }
	.mira-footer__services { grid-column: 2; grid-row: 1 / span 2; }
	.mira-footer__navigation { grid-column: 1; grid-row: 2; }
	.mira-footer__material { top: 10%; width: 70vw; height: calc(100% - 70px); opacity: .14; }
}

@media (max-width: 600px) {
	:root { --mira-shell: calc(100vw - 28px); }
	body { font-size: 16px; }
	.mira-brand img { height: 40px; }
	.mira-menu-toggle__label { display: none; }
	.mira-footer-bridge { min-height: 470px; }
	.mira-footer-bridge__content { grid-template-columns: 1fr; gap: 32px; padding-block: 56px; }
	.mira-footer-bridge h2 { font-size: clamp(38px, 12vw, 54px); }
	.mira-footer-bridge__cta { width: 100%; justify-content: space-between; }
	.mira-footer { --mira-footer-gap-lg: 42px; padding-top: 52px; }
	.mira-footer__material { top: 43%; right: -38%; width: 120vw; height: 44%; opacity: .09; }
	.mira-footer__masthead { grid-template-columns: 1fr; gap: 28px; padding-bottom: 40px; }
	.mira-footer__brand img { width: 148px; }
	.mira-footer__claim h2 { max-width: 14ch; margin-bottom: 12px; font-size: clamp(36px, 10vw, 48px); }
	.mira-footer__claim p { font-size: 15px; }
	.mira-footer__directory { grid-template-columns: 1fr; gap: 38px; padding-block: 42px; }
	.mira-footer__contacts,
	.mira-footer__services,
	.mira-footer__navigation { grid-column: auto; grid-row: auto; padding-top: 0; }
	.mira-footer__services ul { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: repeat(4, minmax(32px, auto)); gap: 4px 20px; }
	.mira-footer__group a { min-height: 32px; }
	.mira-footer__emergency { grid-template-columns: auto 1fr; padding-block: 22px; }
	.mira-footer__emergency > a { grid-column: 1 / -1; justify-content: space-between; margin-top: 8px; }
	.mira-footer__wordmark { right: -.04em; bottom: 58px; font-size: 40vw; }
	.mira-footer__bottom { grid-template-columns: 1fr auto; gap: 18px; padding-block: 24px; }
	.mira-footer__legal { grid-column: 1 / -1; grid-row: 1; }
	.mira-footer__bottom p { grid-column: 1; grid-row: 2; }
	.mira-footer__back-to-top { grid-column: 2; grid-row: 2; }
	.mira-atmosphere__halo { filter: blur(54px); opacity: .1; }
	.mira-atmosphere__halo--sky,
	.mira-atmosphere__leaf--two { display: none; }
}

@media (max-width: 359px) {
	.mira-mobile-menu__primary ol,
	.mira-mobile-menu__contact { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after {
		scroll-behavior: auto !important; animation-duration: .01ms !important;
		animation-iteration-count: 1 !important; transition-duration: .01ms !important;
	}
	.mira-atmosphere { opacity: .55; }
	.mira-footer__emergency-dot { animation: none; }
}
