/* Homepage hero (the Live demo trip) and the hero previews (?hero=type, ?hero=phone). Loaded on the front page; see
   inc/heroes.php. Flat colour only: no gradients, gloss or glow. Motion uses transform and opacity, plus one short SVG
   stroke. */

@font-face {
	font-family: "Host Grotesk";
	src: url("../fonts/host-grotesk-latin-wght-normal.woff2") format("woff2");
	font-weight: 300 800;
	font-style: normal;
	font-display: swap;
}
/* Overpass (departure board, the face the rest of the homepage uses) and Archivo (aisle signs), self-hosted under their
   own names so the hero never depends on which weights Elementor happens to load. Both SIL OFL 1.1; licences in
   assets/fonts. */
@font-face { font-family: "MX Overpass"; src: url("../fonts/overpass-latin-400-normal.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "MX Overpass"; src: url("../fonts/overpass-latin-700-normal.woff2") format("woff2"); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: "MX Overpass"; src: url("../fonts/overpass-latin-800-normal.woff2") format("woff2"); font-weight: 800; font-style: normal; font-display: swap; }
@font-face { font-family: "MX Overpass"; src: url("../fonts/overpass-latin-900-normal.woff2") format("woff2"); font-weight: 900; font-style: normal; font-display: swap; }
@font-face { font-family: "MX Archivo"; src: url("../fonts/archivo-latin-wdth-normal.woff2") format("woff2"); font-weight: 100 900; font-stretch: 62% 125%; font-style: normal; font-display: swap; }

/* ---------- Preview chrome ---------- */

/* A preview hero takes the place of the homepage hero; everything after it stays. */
.mx-alt [data-elementor-type="wp-page"] .e-con.mx-hero2 { display: none; }
.mxh-saved .e-con.mx-hero__ctas { flex-direction: row; flex-wrap: wrap; }
.mxh-saved .mx-lede p { margin: 0; }

.mxh__pick {
	position: fixed; z-index: 9999; left: 50%; bottom: 16px; transform: translateX(-50%);
	display: flex; align-items: center; gap: 2px; padding: 5px; border-radius: 999px;
	background: #0A0A0A; color: #fff; box-shadow: 0 0 0 1px rgba(255, 255, 255, .2), 0 12px 32px rgba(0, 0, 0, .2);
	font: 600 13px/1 "Host Grotesk", system-ui, sans-serif; white-space: nowrap;
}
.mxh__pick > span { padding: 0 10px 0 12px; color: rgba(255, 255, 255, .62); }
.mxh__pick a { display: inline-flex; align-items: center; min-height: 34px; padding: 1px 14px 0; border-radius: 999px; color: #fff; text-decoration: none; }
.mxh__pick a:hover { color: #fff; background: rgba(255, 255, 255, .14); text-decoration: none; }
.mxh__pick a[aria-current] { background: #fff; color: #0A0A0A; }
@media (max-width: 600px) {
	.mxh__pick > span { display: none; }
	.mxh__pick a { padding: 1px 10px 0; font-size: 12px; }
}

/* ---------- Shared ---------- */

/* Design tokens of the new look: .mxh is a preview hero section, .mx-v2 anything else in the new look (the homepage
   hero container and its trip). */
.mxh, .mx-v2 {
	--ink: #0A0A0A; --paper: #FFFFFF; --mute: #5B606B; --rule: #E2E5E9; --soft: #F1F2F4; --body: #3F434B;
	--web: #0A0A0A; --search: #DD2E29; --ai: #6B4CF2; --local: #0B7F49; --ads: #F28C1B; --social: #E2338E; --email: #1F7CE0;
	--link: #1A4ED8; --star: #F5A524;
	--mkt: #DD2E29; --design: #C2187A; --auto: #6B4CF2; --it: #1F5FD6; --support: #0B7F49;
	--ease: cubic-bezier(.22, .9, .24, 1);
	--snap: cubic-bezier(.75, 0, .2, 1);
	--spring: cubic-bezier(.3, 1.5, .55, 1);
	color: var(--ink);
	font-family: "Host Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;
	-webkit-font-smoothing: antialiased;
}
.mxh {
	position: relative; overflow: hidden;
	padding: clamp(28px, 4vw, 56px) max(var(--mx-gutter, 56px), calc((100% - var(--mx-max, 1328px)) / 2)) clamp(48px, 5.5vw, 80px);
	background: var(--paper);
}
:is(.mxh, .mx-v2) [data-route="search"], .mxh[data-route="search"] { --c: var(--search); }
:is(.mxh, .mx-v2) [data-route="ai"], .mxh[data-route="ai"] { --c: var(--ai); }
:is(.mxh, .mx-v2) [data-route="local"], .mxh[data-route="local"] { --c: var(--local); }
:is(.mxh, .mx-v2) [data-route="ads"] { --c: var(--ads); }
:is(.mxh, .mx-v2) [data-route="social"] { --c: var(--social); }
:is(.mxh, .mx-v2) [data-route="email"] { --c: var(--email); }
:is(.mxh, .mx-v2) [data-route="web"], .mxh[data-route="web"] { --c: var(--web); }
:is(.mxh, .mx-v2) [data-route="mkt"] { --c: var(--mkt); }
:is(.mxh, .mx-v2) [data-route="design"] { --c: var(--design); }
:is(.mxh, .mx-v2) [data-route="auto"] { --c: var(--auto); }
:is(.mxh, .mx-v2) [data-route="it"] { --c: var(--it); }
:is(.mxh, .mx-v2) [data-route="support"] { --c: var(--support); }
:is(.mxh, .mx-v2) [data-next="ai"] { --n: var(--ai); }
:is(.mxh, .mx-v2) [data-next="local"] { --n: var(--local); }
:is(.mxh, .mx-v2) [data-next="web"] { --n: var(--web); }

.mxh .mxh__t {
	margin: 0; padding: 0; font-family: inherit; font-weight: 760; font-size: clamp(42px, 5.5vw, 84px);
	line-height: .95; letter-spacing: -.034em; color: var(--ink); text-wrap: balance;
}
.mxh .mxh__lede { margin: 0; font-size: clamp(16px, 1.3vw, 19px); line-height: 1.5; color: var(--body); text-wrap: pretty; }
.mxh__ctas { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 28px; }
.mxh .mxh__btn {
	display: inline-flex; align-items: center; justify-content: center; min-height: 54px; padding: 2px 26px 0; border-radius: 999px;
	background: var(--ink); color: #fff; box-shadow: none;
	font: 650 17px/1 "Host Grotesk", system-ui, sans-serif; letter-spacing: -.01em; text-decoration: none; white-space: nowrap;
	transition: transform .35s var(--ease), background-color .2s, color .2s, box-shadow .2s;
}
.mxh .mxh__btn:hover, .mxh .mxh__btn:focus { color: #fff; text-decoration: none; }
.mxh .mxh__btn--line { background: transparent; color: var(--ink); box-shadow: inset 0 0 0 2px var(--ink); }
.mxh .mxh__btn--line:hover { background: var(--ink); color: #fff; }
.mxh .mxh__btn--line:focus:not(:hover) { color: var(--ink); }
@media (hover: hover) and (pointer: fine) {
	.mxh .mxh__btn:hover { transform: translateY(-2px); }
}
.mxh .mxh__btn:active { transform: scale(.97); }
:is(.mxh, .mx-v2) .mxh__note { margin: 0; font-size: 13px; line-height: 1.4; color: var(--mute); }

:is(.mxh, .mx-v2) .mxh__pause {
	flex: none; display: inline-grid; place-items: center; width: 40px; height: 40px; min-height: 0; padding: 0;
	border: 0; border-radius: 50%; background: transparent; color: var(--ink); box-shadow: inset 0 0 0 1.5px var(--rule);
	cursor: pointer; transition: box-shadow .2s;
}
:is(.mxh, .mx-v2) .mxh__pause:hover, :is(.mxh, .mx-v2) .mxh__pause:focus { background: transparent; color: var(--ink); box-shadow: inset 0 0 0 1.5px var(--ink); }
:is(.mxh, .mx-v2) .mxh__pause:focus-visible { outline: 3px solid var(--mx-focus, #1C4CC8); outline-offset: 3px; }
.mxh__pause .mxh-i { grid-area: 1 / 1; width: 16px; height: 16px; }
.mxh__pause .mxh-i--play, .is-stopped .mxh__pause .mxh-i--pause { display: none; }
.is-stopped .mxh__pause .mxh-i--play { display: block; }

/* Anything animating stops while the hero is off screen, the tab is hidden or pause is pressed. */
:is(.mxh, .mxst, .mxdk, .mxb, .mxa).is-paused *, :is(.mxh, .mxst, .mxdk, .mxb, .mxa).is-paused *::before, :is(.mxh, .mxst, .mxdk, .mxb, .mxa).is-paused *::after { animation-play-state: paused !important; }

/* ---------- Scenes: one customer's trip (search, AI answer, map, booked) ---------- */

.mxh-i { display: block; width: 1em; height: 1em; flex: none; }
.mxs {
	position: relative; z-index: 1; display: flex; flex-direction: column; gap: .7em; height: 100%;
	padding: 1.1em; font-size: 14px; line-height: 1.35; color: var(--ink); text-align: left;
}
.mxs > * { flex-shrink: 0; }
.mxs :where(p) { margin: 0; padding: 0; }
.mxs b { font-weight: 700; }
.mxs__stars { display: inline-flex; gap: .06em; color: var(--star); }
.mxs__stars .mxh-i { width: .92em; height: .92em; }
.mxs__stars .mxh-i:nth-child(2) { --k: 1; }
.mxs__stars .mxh-i:nth-child(3) { --k: 2; }
.mxs__stars .mxh-i:nth-child(4) { --k: 3; }
.mxs__stars .mxh-i:nth-child(5) { --k: 4; }

/* Search */
.mxs__bar { display: flex; align-items: center; gap: .6em; flex: none; height: 2.9em; padding: 0 1.05em; border-radius: 999px; background: #fff; font-weight: 500; }
.mxs__bar .mxh-i { width: 1.05em; height: 1.05em; color: var(--mute); }
.mxs__q { min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: clip; }
.mxs__bar.is-typing .mxs__q::after {
	content: ""; display: inline-block; width: 2px; height: 1.1em; margin-left: 1px; vertical-align: -.2em;
	background: var(--ink); animation: mxh-caret .9s steps(1) infinite;
}
.mxs__hit { display: flex; flex-direction: column; gap: .42em; padding: .95em 1.05em 1.05em; border-radius: 1em; background: #fff; }
.mxs__site { display: flex; align-items: center; gap: .6em; min-width: 0; }
.mxs__fav {
	flex: none; display: grid; place-items: center; width: 2.2em; height: 2.2em; border-radius: 50%;
	background: var(--search); color: #fff; font-weight: 700; font-size: .82em;
}
.mxs__who { display: flex; flex-direction: column; min-width: 0; line-height: 1.22; }
.mxs__who b { font-size: .86em; font-weight: 650; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mxs__who small { font-size: .78em; color: var(--mute); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mxs__title { font-size: 1.16em; font-weight: 600; line-height: 1.2; letter-spacing: -.01em; color: var(--link); }
.mxs__rate { display: flex; align-items: center; gap: .35em; font-size: .84em; white-space: nowrap; }
.mxs__rate > span:last-child { color: var(--mute); }
.mxs__snip { font-size: .84em; line-height: 1.4; color: var(--body); }
.mxs__ghost { display: flex; flex-direction: column; gap: .7em; }
.mxs__ghost span { display: flex; flex-direction: column; gap: .55em; padding: 1.05em 1.05em 1.1em; border-radius: 1em; background: #fff; opacity: .72; }
.mxs__ghost i { display: block; height: .55em; border-radius: 99px; background: #E4E7EB; }
.mxs__ghost i:nth-child(1) { width: 56%; height: .75em; background: #D3D8E0; }
.mxs__ghost i:nth-child(2) { width: 94%; }
.mxs__ghost i:nth-child(3) { width: 68%; }

/* AI answer */
.mxs__ask {
	align-self: flex-end; max-width: 88%; padding: .62em .95em .58em; border-radius: 1.15em 1.15em .3em 1.15em;
	background: var(--ink); color: #fff; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.mxs__answer { display: flex; flex-direction: column; align-items: flex-start; gap: .65em; padding: 1em 1.05em 1.05em; border-radius: 1em; background: #fff; }
.mxs__aiico { display: grid; place-items: center; width: 2em; height: 2em; border-radius: 50%; background: var(--ai); color: #fff; }
.mxs__aiico .mxh-i { width: 1.1em; height: 1.1em; }
.mxs__say { font-size: .96em; line-height: 1.42; }
.mxs__say .w { display: inline-block; }
.mxs__cite {
	display: inline-flex; align-items: center; gap: .4em; max-width: 100%; padding: .38em .8em .36em .62em; border-radius: 999px;
	background: var(--soft); font-size: .8em; font-weight: 500; color: var(--body);
}
.mxs__cite .mxh-i { width: 1.1em; height: 1.1em; }
.mxs__cite span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mxs__compose, .mxs__add { display: none; }

/* Map */
.mxs__map { position: relative; flex: 1; min-height: 6em; border-radius: 1em; overflow: hidden; background: #E8EBEE; }
.mxs__mapsvg { position: absolute; inset: 0; display: block; width: 100%; height: 100%; }
.mxs__ring { opacity: 0; transform-box: fill-box; transform-origin: center; }
.mxs__pin, .mxs__dots circle { transform-box: fill-box; transform-origin: 50% 100%; }
.mxs__sheet {
	display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: .8em; row-gap: .28em; align-items: center;
	padding: .95em 1em .95em 1.05em; border-radius: 1em; background: #fff;
}
.mxs__sheet > b { grid-column: 1; font-size: 1em; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mxs__meta { grid-column: 1; display: flex; align-items: center; gap: .3em; font-size: .78em; color: var(--body); white-space: nowrap; overflow: hidden; }
.mxs__meta .mxs__stars { display: none; }
.mxs__meta b { font-weight: 600; color: var(--ink); }
.mxs__go {
	grid-column: 2; grid-row: 1 / span 2; padding: .62em .95em .58em; border-radius: 999px;
	background: var(--ink); color: #fff; font-style: normal; font-weight: 600; font-size: .8em; white-space: nowrap;
}

/* Booked */
.mxs--booked { justify-content: center; }
.mxs__ticket { display: flex; flex-direction: column; align-items: flex-start; gap: .28em; padding: 1.15em 1.2em 1.05em; border-radius: 1em; background: #fff; }
.mxs__tick { display: grid; place-items: center; width: 2.7em; height: 2.7em; margin-bottom: .5em; border-radius: 50%; background: var(--ink); color: #fff; }
.mxs__tick .mxh-i { width: 1.5em; height: 1.5em; }
.mxs__done { font-size: 1.8em; line-height: 1; font-weight: 760; letter-spacing: -.035em; }
.mxs__when { margin-top: .2em; font-size: .92em; font-weight: 500; }
.mxs__at { font-size: .92em; font-weight: 700; }
.mxs__conf { width: 100%; margin-top: .65em; padding-top: .7em; border-top: 1.5px dashed var(--rule); font-size: .78em; color: var(--mute); }

/* Each scene plays its moment when it becomes the current stop. */
@keyframes mxs-rise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@keyframes mxs-pop { 0% { opacity: 0; transform: scale(.3); } 60% { opacity: 1; transform: scale(1.14); } 100% { opacity: 1; transform: none; } }
@keyframes mxs-drop { 0% { opacity: 0; transform: translateY(-26px); } 55% { opacity: 1; transform: translateY(2px); } 78% { transform: translateY(-3px); } 100% { opacity: 1; transform: none; } }
@keyframes mxs-ring { 0% { opacity: .32; transform: scale(.5); } 100% { opacity: 0; transform: scale(1.7); } }
@keyframes mxs-march { to { stroke-dashoffset: -18; } }
@keyframes mxs-word { from { opacity: 0; transform: translateY(.4em); } to { opacity: 1; transform: none; } }
@keyframes mxs-draw { from { stroke-dashoffset: 26; } to { stroke-dashoffset: 0; } }
@keyframes mxh-caret { 50% { opacity: 0; } }

.is-live .mxs--search .mxs__hit { animation: mxs-rise .65s var(--ease) both; animation-delay: var(--t-hit, 1.2s); }
.is-live .mxs--search .mxs__stars .mxh-i { animation: mxs-pop .5s var(--spring) both; animation-delay: calc(var(--t-hit, 1.2s) + .3s + var(--k, 0) * 70ms); }
.is-live .mxs--search .mxs__ghost { animation: mxs-rise .65s var(--ease) both; animation-delay: calc(var(--t-hit, 1.2s) + .15s); }

.is-live .mxs--ai .mxs__ask { animation: mxs-rise .5s var(--ease) both; }
.is-live .mxs--ai .mxs__answer { animation: mxs-rise .6s var(--ease) .35s both; }
.is-live .mxs--ai .mxs__aiico { animation: mxs-pop .55s var(--spring) .5s both; }
.is-live .mxs--ai .mxs__say .w { animation: mxs-word .4s var(--ease) both; animation-delay: calc(.7s + var(--k, 0) * 42ms); }
.is-live .mxs--ai .mxs__cite { animation: mxs-rise .5s var(--ease) both; animation-delay: calc(.85s + var(--n, 24) * 42ms); }

.is-live .mxs--map .mxs__dots circle { animation: mxs-drop .6s var(--ease) both; }
.is-live .mxs--map .mxs__dots circle:nth-child(2) { animation-delay: .1s; }
.is-live .mxs--map .mxs__dots circle:nth-child(3) { animation-delay: .2s; }
.is-live .mxs--map .mxs__pin { animation: mxs-drop .75s var(--ease) .4s both; }
.is-live .mxs--map .mxs__ring { animation: mxs-ring 1.8s var(--ease) 1.1s infinite; }
.is-live .mxs--map .mxs__trail { animation: mxs-march 1.1s linear infinite; }
.is-live .mxs--map .mxs__sheet { animation: mxs-rise .65s var(--ease) .65s both; }

.is-live .mxs--booked .mxs__ticket { animation: mxs-rise .6s var(--ease) both; }
.is-live .mxs--booked .mxs__tick { animation: mxs-pop .6s var(--spring) .3s both; }
.is-live .mxs--booked .mxs__checkpath { stroke-dasharray: 26; animation: mxs-draw .5s var(--ease) .65s both; }
.is-live .mxs--booked .mxs__done { animation: mxs-rise .55s var(--ease) .45s both; }
.is-live .mxs--booked .mxs__when, .is-live .mxs--booked .mxs__at { animation: mxs-rise .55s var(--ease) .6s both; }
.is-live .mxs--booked .mxs__conf { animation: mxs-rise .55s var(--ease) .8s both; }
.is-live .mxs--booked .mxs__add { animation: mxs-rise .55s var(--ease) 1s both; }
.is-live .mxs--ai .mxs__compose { animation: mxs-rise .5s var(--ease) .2s both; }

/* ---------- Homepage hero: headline beside one big screen ---------- */

/* Elementor: container .mx-hero2 holds the copy container (.mx-hero__copy: H1 .mx-h1, lede .mx-lede, buttons
   .mx-hero__ctas) and the [mx_trip] shortcode widget (.mx-tripw). Copy on the left, the stage on the right. */
.e-con.mx-hero2 {
	--pl: max(var(--mx-gutter), calc((100% - var(--mx-max)) / 2));
	--padding-top: clamp(40px, 4.5vw, 64px); --padding-bottom: clamp(48px, 5vw, 72px);
	--padding-left: var(--pl); --padding-right: var(--pl);
	--row-gap: 0px; --column-gap: 0px;
	--field: var(--search); --field-next: var(--search); --word: var(--search);
	position: relative; isolation: isolate;
	display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: 40px clamp(40px, 5.5vw, 88px);
	overflow: hidden; background: #fff;
}
/* The right half is a full-height block in the current route's colour. A second layer wipes the next colour up over it
   when the step changes (heroes.js sets --field-next, adds .is-wiping, then makes it the new --field). Every property
   Elementor gives a container's ::before for its background overlay is set here, so nothing of that applies. */
.e-con.mx-hero2::before, .e-con.mx-hero2::after {
	content: ""; display: block; position: absolute; z-index: -1; inset: 0 0 0 50%; width: auto; height: auto;
	border: 0; border-radius: 0; opacity: 1; mix-blend-mode: normal; transition: none;
}
.e-con.mx-hero2::before { background: var(--field); transition: transform .8s var(--snap); }
.e-con.mx-hero2::after { background: var(--field-next); transform: translateY(101%); }
.e-con.mx-hero2.is-wiping::after { transform: none; transition: transform .65s var(--snap); }
/* On load the block rises into place (the script adds .is-on); without the script it is simply there. */
.mxh-js .e-con.mx-hero2:not(.is-on)::before { transform: translateY(101%); }
.e-con.mx-hero2 > .e-con.mx-hero__copy { display: flex; flex-direction: column; align-items: flex-start; gap: 24px; }
.mx-hero2 .mx-h1 .elementor-heading-title {
	font-family: "Host Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif; font-weight: 780; font-size: clamp(44px, 5.4vw, 80px);
	line-height: .94; letter-spacing: -.036em; color: var(--ink); text-wrap: balance;
}
/* "every route" takes the colour of the current step. The six-stripe underline belongs to the previous hero. */
.mx-hero2 .mx-h1 .mx-under { background: none; text-shadow: none; animation: none; white-space: normal; color: var(--word); transition: color .6s var(--ease); }
.mx-hero2 .mx-lede { margin: 0; font-family: "Host Grotesk", system-ui, sans-serif; font-size: clamp(16px, 1.25vw, 18px); line-height: 1.55; color: var(--body); }
.mx-hero2 .mx-lede p { max-width: 31em; margin: 0; text-wrap: pretty; }
.e-con.mx-hero2 .e-con.mx-hero__ctas { margin: 4px 0 0; gap: 10px; }
.mx-hero2 .elementor-widget-button.mx-btn .elementor-button {
	display: inline-flex; align-items: center; justify-content: center; min-height: 54px; padding: 2px 26px 0; border-radius: 999px;
	background: var(--ink); color: #fff; box-shadow: none; font-family: "Host Grotesk", system-ui, sans-serif; font-weight: 650; font-size: 17px; letter-spacing: -.01em;
	transition: transform .35s var(--ease), background-color .2s, color .2s;
}
.mx-hero2 .elementor-widget-button.mx-btn .elementor-button:hover { color: #fff; box-shadow: none; }
.mx-hero2 .elementor-widget-button.mx-btn--outline .elementor-button { background: transparent; color: var(--ink); box-shadow: inset 0 0 0 2px var(--ink); }
.mx-hero2 .elementor-widget-button.mx-btn--outline .elementor-button:hover { background: var(--ink); color: #fff; box-shadow: inset 0 0 0 2px var(--ink); }
.e-con.mx-hero2 > .mx-tripw { width: 100%; min-width: 0; }

/* The stage: the customer's question in a big search bar, then one card per step, stacked like index cards. */
.mxst { --card-h: clamp(380px, 45vh, 424px); --peek: 14px; display: flex; flex-direction: column; gap: 12px; width: 100%; max-width: 580px; margin: 0 auto; }
.mxst__label { margin: 0 0 -2px 4px; font-size: 15px; font-weight: 650; color: #fff; }
.mxst__bar {
	position: relative; display: flex; align-items: center; gap: 14px; height: 66px; padding: 0 22px;
	border-radius: 999px; background: #fff; box-shadow: 0 0 0 1px rgba(10, 10, 10, .08); cursor: text;
}
.mxst__bar:focus-within { outline: 3px solid #fff; outline-offset: 3px; }
.mxst__bar .mxh-i { width: 24px; height: 24px; color: var(--ink); }
:is(.mxh, .mx-v2) .mxst__input {
	flex: 1; min-width: 0; width: auto; height: 100%; margin: 0; padding: 2px 0 0; border: 0; border-radius: 0; outline: 0;
	background: transparent; box-shadow: none; font: 500 20px/1 "Host Grotesk", system-ui, sans-serif; color: var(--ink);
}
:is(.mxh, .mx-v2) .mxst__input::placeholder { color: transparent; opacity: 1; }
:is(.mxh, .mx-v2) .mxst__input:focus::placeholder { color: var(--mute); }
/* The query typing itself, shown over the empty field until the visitor clicks into it. */
.mxst__typed {
	position: absolute; top: 0; bottom: 0; left: 60px; right: 22px; display: flex; align-items: center; padding-top: 2px;
	font-size: 20px; font-weight: 500; color: var(--ink); white-space: nowrap; overflow: hidden; pointer-events: none;
}
.mxst__typed i { flex: none; width: 2px; height: 1.15em; margin: 0 0 1px 2px; background: var(--ink); animation: mxh-caret .9s steps(1) infinite; }
.mxst__bar:focus-within .mxst__typed, .mxst__input:not(:placeholder-shown) + .mxst__typed { visibility: hidden; }

.mxst__deck { position: relative; height: calc(var(--card-h) + var(--peek) * 3); margin-top: 8px; }
.mxst__card {
	position: absolute; top: 0; left: 0; right: 0; height: var(--card-h);
	display: flex; flex-direction: column; gap: 14px; padding: 20px 22px 22px; border-radius: 28px;
	background: var(--c); color: #fff;
	transform-origin: 50% 100%;
	transform: translateY(calc(var(--d, 0) * var(--peek))) scale(calc(1 - var(--d, 0) * .05));
	z-index: calc(10 - var(--d, 0));
	transition: transform .65s var(--spring), opacity .35s var(--ease);
}
/* Swiped off to the right, fully opaque, so two cards' text never blend; the hero clips it at the edge. */
.mxst__card.is-out { z-index: 20; transform: translate(115%, 34px) rotate(9deg); transition: transform .55s cubic-bezier(.55, 0, .75, .3); }
.mxst__card.is-back { opacity: 0; transition: none; }
.mxst__cap { margin: 0; padding: 0 4px; font-size: 17px; font-weight: 700; line-height: 1.3; letter-spacing: -.01em; color: #fff; }
.mxst__screen { position: relative; flex: 1; min-height: 0; border-radius: 20px; background: #fff; color: var(--ink); overflow: hidden; container-type: inline-size; }

/* The scenes at reading size: 14px at the smallest, 18px on a wide screen. */
.mxst .mxs { font-size: clamp(14px, 3.05cqi, 18px); gap: .8em; padding: 1.25em 1.35em; }
.mxst .mxs__bar { display: none; }
.mxst :is(.mxs__hit, .mxs__answer, .mxs__sheet, .mxs__ticket) { padding: 0; border-radius: 0; background: transparent; }
.mxst .mxs__hit { gap: .45em; }
.mxst .mxs__title { font-size: 1.42em; }
.mxst .mxs__rate, .mxst .mxs__snip { font-size: .9em; }
.mxst .mxs__ghost { padding-top: 1em; border-top: 1.5px solid var(--rule); }
.mxst .mxs__ghost { gap: 1.1em; }
.mxst .mxs__ghost span { padding: 0; opacity: 1; background: transparent; }
.mxst .mxs__ask { font-size: .95em; }
.mxst .mxs__answer { gap: .7em; }
.mxst .mxs__say { font-size: 1.06em; line-height: 1.45; }
.mxst .mxs__cite { font-size: .8em; }
.mxst .mxs--map { gap: 1em; }
.mxst .mxs__map { flex: 1; min-height: 8em; }
.mxst .mxs__sheet > b { font-size: 1.1em; }
.mxst .mxs__meta { font-size: .85em; }
.mxst .mxs__go { font-size: .85em; }
.mxst .mxs--booked { justify-content: center; }
.mxst .mxs__done { font-size: 2.3em; }
.mxst .mxs__when, .mxst .mxs__at { font-size: 1em; }
.mxst .mxs__conf { font-size: .82em; }

.mxst__foot { display: flex; align-items: center; gap: 16px; margin-top: 4px; }
.mxst__steps { display: grid; grid-template-columns: repeat(4, 28px); gap: 6px; margin: 0; padding: 0; list-style: none; }
.mxst__steps li { position: relative; height: 4px; border-radius: 2px; background: rgba(255, 255, 255, .35); overflow: hidden; }
.mxst__steps li::after { content: ""; position: absolute; inset: 0; background: #fff; transform: scaleX(0); transform-origin: left; }
.mxst__steps li.is-done::after { transform: none; }
.mxst__steps li.is-on::after { animation: mxh-fill var(--dwell, 4s) linear forwards; }
.mxst__foot .mxh__note { margin-left: auto; text-align: right; color: #fff; }
.mxst__foot .mxh__pause, .mxst__foot .mxh__pause:hover, .mxst__foot .mxh__pause:focus { color: #fff; box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .6); }
.mxst__foot .mxh__pause:hover { box-shadow: inset 0 0 0 1.5px #fff; }
.mxst__foot .mxh__pause:focus-visible { outline-color: #fff; }

/* Opening: the cards are dealt in from the right, back of the stack first. */
.mxh-js .mxst:not(.is-ready) .mxst__card { transform: translate(120%, 24px) rotate(12deg); }
.mxst.is-dealing .mxst__card { transition-delay: calc((3 - var(--d, 0)) * 90ms + 200ms); }

/* Before the script starts, the first card is blank so its first frame is the start of the moment, not the end of it. */
.mxh-js .mxst:not(.is-ready) .mxst__typed .js-q,
.mxh-js .mxst:not(.is-ready) .mxst__card:first-child .mxs__hit,
.mxh-js .mxst:not(.is-ready) .mxst__card:first-child .mxs__ghost { opacity: 0; }

/* ---------- Homepage hero: everything Mixcat does, one card per service group ---------- */

.mxdk { --card-h: clamp(408px, 49vh, 448px); --peek: 14px; display: flex; flex-direction: column; gap: 12px; width: 100%; max-width: 580px; margin: 0 auto; }
.mxdk__label { margin: 0 0 2px 2px; font-size: 15px; font-weight: 650; color: #fff; }
/* The six group tabs always sit on one row; phones get a three-by-two grid instead (see the 600px rule). */
.mxdk__tabs { display: flex; flex-wrap: nowrap; gap: 8px; }
.mx-v2 .mxdk__tabs button {
	min-height: 40px; margin: 0; padding: 2px 16px 0; border: 0; border-radius: 999px; background: transparent; color: #fff;
	box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .7); font: 600 15px/1 "Host Grotesk", system-ui, sans-serif; cursor: pointer;
	transition: background-color .2s, color .2s, box-shadow .2s;
}
.mx-v2 .mxdk__tabs button:hover, .mx-v2 .mxdk__tabs button:focus { background: transparent; color: #fff; box-shadow: inset 0 0 0 1.5px #fff; }
.mx-v2 .mxdk__tabs button[aria-selected="true"], .mx-v2 .mxdk__tabs button[aria-selected="true"]:hover, .mx-v2 .mxdk__tabs button[aria-selected="true"]:focus { background: #fff; color: var(--ink); box-shadow: none; }
.mx-v2 .mxdk__tabs button:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }
.mxdk__deck { margin-top: 6px; }
/* The six cards share one grid cell, so the deck is as tall as its fullest card (Marketing) at every screen size and
   nothing is ever cut off. --card-h is now the smallest a card gets; the peek of the cards behind sits below. */
.mxdk .mxdk__deck { display: grid; height: auto; padding-bottom: calc(var(--peek) * 3); }
.mxdk .mxdk__deck > .mxst__card { position: relative; inset: auto; grid-area: 1 / 1; height: auto; min-height: var(--card-h); }
.mxdk .mxst__card {
	gap: 12px; padding: 20px 22px 22px;
	transform: translateY(calc(min(var(--d, 0), 3) * var(--peek))) scale(calc(1 - min(var(--d, 0), 3) * .05));
}
.mxdk .mxst__card.is-out { transform: translate(115%, 34px) rotate(9deg); }
.mxdk__head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: 0 2px; }
.mxdk__name { margin: 0; font-size: 30px; font-weight: 760; line-height: 1.05; letter-spacing: -.03em; color: #fff; }
.mxdk__count { flex: none; font-size: 15px; font-weight: 600; color: #fff; }
.mxdk__panel {
	flex: 1; min-height: 0; display: flex; flex-direction: column; gap: 14px; padding: 22px 24px; border-radius: 20px;
	background: #fff; color: var(--ink); overflow: hidden; container-type: inline-size;
}
.mxdk__desc { margin: 0; font-size: clamp(15px, 3.3cqi, 17px); line-height: 1.45; color: var(--body); text-wrap: pretty; }
.mxdk__list { margin: 0; padding: 0; list-style: none; border-top: 1.5px solid var(--rule); }
.mxdk__list.is-two { columns: 2; column-gap: 24px; }
.mxdk__list li {
	display: flex; align-items: baseline; gap: 10px; margin: 0; padding: 8px 0 7px; break-inside: avoid;
	font-size: clamp(14px, 3.1cqi, 16px); font-weight: 560; line-height: 1.3; border-bottom: 1px solid var(--rule);
}
.mxdk__list li::before { content: ""; flex: none; width: 8px; height: 8px; border-radius: 2px; background: var(--c); transform: translateY(-1px); }
/* Groups with four services or fewer get a larger single column, so the card reads as full rather than half empty. */
.mxdk__list:not(.is-two) li { gap: 12px; padding: 13px 0 12px; font-size: clamp(17px, 4.1cqi, 22px); font-weight: 600; letter-spacing: -.01em; }
.mxdk__list:not(.is-two) li::before { width: 10px; height: 10px; }
.mxdk .mxst__steps { grid-template-columns: repeat(6, 24px); }
.mxdk .mxst__foot { justify-content: space-between; }
/* A group's services arrive one after another when its card comes to the front. */
.is-live .mxdk__desc { animation: mxs-rise .5s var(--ease) both; animation-delay: var(--t0, .05s); }
.is-live .mxdk__list li { animation: mxs-rise .45s var(--ease) both; animation-delay: calc(var(--t0, .12s) + var(--k, 0) * 32ms); }
/* Picking a group pauses the deck, but its description and list still finish appearing. Only the timer and loops stop. */
.mxdk.is-paused .mxdk__desc, .mxdk.is-paused .mxdk__list li { animation-play-state: running !important; }
/* Opening: the six cards are dealt in from the right, back of the stack first. */
.mxh-js .mxdk:not(.is-ready) .mxst__card { transform: translate(120%, 24px) rotate(12deg); }
.mxdk.is-dealing .mxst__card { transition-delay: calc((5 - var(--d, 0)) * 70ms + 200ms); }
/* Two columns on a small laptop or tablet: the deck column is narrow, so the pills shrink to stay on one row. */
@media (min-width: 901px) and (max-width: 1280px) {
	.mxdk__tabs { gap: 6px; }
	.mx-v2 .mxdk__tabs button { min-height: 36px; padding: 2px 11px 0; font-size: 13.5px; }
}

@media (max-width: 900px) {
	.e-con.mx-hero2 { grid-template-columns: minmax(0, 1fr); }
	.mx-hero2 .mx-lede p { max-width: 36em; }
	/* One column: the colour becomes a full-width band behind the stage, down to the hero's bottom edge. */
	.e-con.mx-hero2::before, .e-con.mx-hero2::after { display: none; }
	:is(.mxst, .mxdk) { position: relative; isolation: isolate; overflow: hidden; width: auto; max-width: none; margin: 8px calc(-1 * var(--pl)) calc(-1 * var(--padding-bottom)); padding: 32px var(--pl) 36px; }
	:is(.mxst, .mxdk) > * { width: 100%; max-width: 600px; margin-left: auto; margin-right: auto; }
	:is(.mxst, .mxdk)::before, :is(.mxst, .mxdk)::after { content: ""; position: absolute; inset: 0; z-index: -1; }
	:is(.mxst, .mxdk)::before { background: var(--field); transition: transform .8s var(--snap); }
	:is(.mxst, .mxdk)::after { background: var(--field-next); transform: translateY(101%); }
	.mx-hero2.is-wiping :is(.mxst, .mxdk)::after { transform: none; transition: transform .65s var(--snap); }
	.mxh-js .mx-hero2:not(.is-on) :is(.mxst, .mxdk)::before { transform: translateY(101%); }
}
@media (max-width: 767px) {
	.mxst { --card-h: 344px; --peek: 10px; }
	.mxdk { --card-h: 470px; --peek: 10px; }
	.mxdk__name { font-size: 26px; }
	.mxdk .mxst__card { padding: 16px 16px 18px; }
	.mxdk__panel { padding: 18px; gap: 12px; }
	.mxdk__list.is-two { column-gap: 16px; }
	.mx-v2 .mxdk__tabs button { min-height: 38px; padding: 2px 13px 0; font-size: 14px; }
	.mxst__bar { height: 58px; gap: 12px; padding: 0 18px; }
	:is(.mxh, .mx-v2) .mxst__input, .mxst__typed { font-size: 17px; }
	.mxst__typed { left: 54px; right: 18px; }
	.mxst__card { gap: 12px; padding: 16px 16px 18px; border-radius: 24px; }
	.mxst__cap { font-size: 16px; }
	.mxst__screen { border-radius: 16px; }
	.mxst .mxs { padding: 1.15em 1.15em; }
	.mxst__foot .mxh__note { font-size: 12.5px; }
	.mxh .mxh__ctas .mxh__btn { flex: 1 1 100%; }
}
@media (max-width: 600px) {
	/* Phones: the six tabs as a tidy three-by-two grid of equal pills. */
	.mxdk__tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
	.mx-v2 .mxdk__tabs button { padding: 2px 6px 0; }
}

/* ---------- Phone journey ---------- */

.mxh--phone .mxh__in { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .82fr); align-items: center; gap: 48px clamp(32px, 5vw, 96px); }
.mxh--phone { padding-bottom: clamp(40px, 4vw, 56px); }
.mxh--phone .mxh__lede { margin-top: 26px; max-width: 31em; }
.mxh__device { position: relative; display: flex; flex-direction: column; align-items: center; padding: 8px 0 0; perspective: 1500px; }
.mxh__rig {
	--rx: 7deg; --ry: -16deg;
	position: relative; width: 296px; height: 606px; transform-style: preserve-3d;
	transform: rotateX(var(--rx)) rotateY(var(--ry)) rotateZ(1.5deg);
}
.mxh__slab {
	--slab: var(--search);
	position: absolute; inset: 0; border-radius: 54px; overflow: hidden; background: var(--slab);
	transform: translate3d(38px, 34px, -80px);
}
.mxh__slab i { position: absolute; inset: 0; transform: translateY(101%); transition: transform .7s var(--snap); }
.mxh__phone { position: absolute; inset: 0; padding: 11px; border-radius: 54px; background: #0A0A0A; transform: translateZ(0); }
.mxh__phone .mxh__screen { position: relative; height: 100%; border-radius: 43px; background: var(--soft); overflow: hidden; container-type: inline-size; }
.mxh__island { position: absolute; top: 22px; left: 50%; width: 90px; height: 26px; margin-left: -45px; border-radius: 99px; background: #0A0A0A; }
.mxh__status { display: flex; align-items: center; justify-content: space-between; height: 46px; padding: 12px 24px 0 30px; font-size: 14px; }
.mxh__status b { font-weight: 650; letter-spacing: -.01em; }
.mxh__sys { display: flex; align-items: center; gap: 5px; }
.mxh__sys i { display: block; height: 10px; border-radius: 2.5px; background: var(--ink); }
.mxh__sys i:nth-child(1) { width: 16px; clip-path: polygon(0 100%, 100% 0, 100% 100%); border-radius: 1px; }
.mxh__sys i:nth-child(2) { width: 14px; height: 10px; border-radius: 10px 10px 2px 2px; clip-path: polygon(50% 100%, 0 0, 100% 0); }
.mxh__sys i:nth-child(3) { width: 24px; height: 11px; border-radius: 3.5px; }
.mxh__bars { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4px; padding: 8px 16px 0; }
.mxh__bars i { position: relative; display: block; height: 3px; border-radius: 2px; background: rgba(10, 10, 10, .14); overflow: hidden; }
.mxh__bars i::after { content: ""; position: absolute; inset: 0; background: var(--ink); transform: scaleX(0); transform-origin: left; }
.mxh__bars i.is-done::after { transform: none; }
.mxh__bars i.is-on::after { animation: mxh-fill var(--dwell, 3.4s) linear forwards; }
@keyframes mxh-fill { to { transform: none; } }
.mxh__scenes { position: absolute; inset: 64px 0 0; }
.mxh__scene { position: absolute; inset: 0; opacity: 0; visibility: hidden; transform: translateX(18px); transition: opacity .4s var(--ease), transform .55s var(--ease), visibility 0s .55s; }
.mxh__scene.is-on { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.mxh__scene .mxs { font-size: clamp(11px, 4.9cqi, 14px); padding: 1em .95em 1.2em; gap: .75em; }
.mxh__scene .mxs--booked { justify-content: center; gap: 1em; padding-bottom: 2.6em; }
.mxh__scene .mxs__compose {
	display: flex; align-items: center; justify-content: space-between; height: 3.1em; margin-top: auto; padding: 0 .4em 0 1.15em;
	border-radius: 999px; background: #fff; color: var(--mute); font-size: .92em;
}
.mxs__compose i { display: grid; place-items: center; width: 2.3em; height: 2.3em; border-radius: 50%; background: var(--ink); color: #fff; }
.mxs__compose .mxh-i { width: 1.1em; height: 1.1em; }
.mxh__scene .mxs__add {
	display: flex; align-items: center; justify-content: center; gap: .5em; height: 3.1em; border-radius: 999px;
	background: var(--ink); color: #fff; font-weight: 600; font-size: .92em;
}
.mxs__add .mxh-i { width: 1.15em; height: 1.15em; }

.mxh__under { display: flex; align-items: center; gap: 14px; margin-top: 38px; }
.mxh__caption { position: relative; height: 1.3em; margin: 0; overflow: hidden; font-size: 22px; font-weight: 700; line-height: 1.3; letter-spacing: -.02em; }
.mxh__caproll { display: flex; flex-direction: column; transform: translateY(calc(var(--i, 0) * -1.3em)); transition: transform .6s var(--snap); }
.mxh__caproll span { display: flex; align-items: center; gap: .45em; height: 1.3em; white-space: nowrap; }
.mxh__caproll span::before { content: ""; flex: none; width: .5em; height: .5em; border-radius: 50%; background: var(--c); }
.mxh--phone .mxh__note { margin-top: 12px; text-align: center; }

.mxh-js .mxh--phone:not(.is-ready) .mxh__scene:first-child .mxs__q,
.mxh-js .mxh--phone:not(.is-ready) .mxh__scene:first-child .mxs__hit,
.mxh-js .mxh--phone:not(.is-ready) .mxh__scene:first-child .mxs__ghost { opacity: 0; }

@media (max-width: 1024px) {
	.mxh--phone .mxh__in { grid-template-columns: minmax(0, 1fr); }
	.mxh__device { margin-top: 8px; }
}
@media (max-width: 767px) {
	.mxh__rig { --rx: 4deg; --ry: -9deg; width: 256px; height: 528px; }
	.mxh__slab { border-radius: 46px; transform: translate3d(24px, 22px, -60px); }
	.mxh__phone { padding: 9px; border-radius: 46px; }
	.mxh__phone .mxh__screen { border-radius: 37px; }
	.mxh__island { top: 18px; width: 78px; height: 22px; margin-left: -39px; }
	.mxh__status { height: 40px; padding: 10px 20px 0 26px; font-size: 13px; }
	.mxh__scenes { inset: 56px 0 0; }
	.mxh__under { margin-top: 34px; }
	.mxh__caption { font-size: 19px; }
	.mxh .mxh__ctas .mxh__btn { flex: 1 1 100%; }
}

/* ---------- Kinetic type ---------- */

.mxh--type {
	--fs: clamp(48px, min(11.6vw, 19.5svh), 180px);
	background: #0A0A0A; color: #fff;
	padding-top: clamp(32px, 4vw, 56px); padding-bottom: clamp(56px, 5.5vw, 80px);
}
.mxh--type .mxh__t { font-size: var(--fs); font-weight: 760; line-height: .9; letter-spacing: -.045em; color: #fff; text-wrap: nowrap; }
.k-line { display: block; white-space: nowrap; }
.k-reel { height: 1.2em; margin: -.15em 0; overflow: hidden; }
.k-track { display: flex; flex-direction: column; align-items: flex-start; transform: translateY(calc(var(--k, 0) * -1.2em)); }
.k-word { display: block; height: 1.2em; line-height: 1.2; color: var(--c); }
.mxh--type .k-word[data-route="web"] { --c: #fff; }
.k-rest { transition: opacity .6s var(--ease); }
.mxh--type.is-spinning .k-rest { opacity: .42; transition-duration: .3s; }
/* Letters are split into spans for the pointer effect; where two touch, their anti-aliased edges leave a hairline seam.
   A same-colour copy 0.6px either side closes it. (A text stroke also closes it but makes Chrome ignore the weight axis.) */
.k-ch { font-weight: inherit; text-shadow: -.6px 0 0 currentColor, .6px 0 0 currentColor; }

.mxh--type .mxh__foot { position: relative; width: min(540px, 47%); margin: calc(var(--fs) * -.78) 0 0 auto; }
.mxh--type .mxh__lede { color: #B9BBC0; }
.mxh--type .mxh__btn { background: #fff; color: #0A0A0A; }
.mxh--type .mxh__btn:hover, .mxh--type .mxh__btn:focus { color: #0A0A0A; }
.mxh--type .mxh__btn--line { background: transparent; color: #fff; box-shadow: inset 0 0 0 2px #fff; }
.mxh--type .mxh__btn--line:hover { background: #fff; color: #0A0A0A; }
.mxh--type .mxh__btn--line:focus:not(:hover) { color: #fff; }

.mxh__stripe { position: absolute; left: 0; right: 0; bottom: 0; display: flex; height: 12px; }
.mxh__stripe i { flex: 1; background: var(--c); transform-origin: 50% 100%; transition: opacity .25s, transform .45s var(--spring); }
.mxh--type .mxh__stripe i[data-route="web"] { --c: #fff; }
.mxh--type.is-spinning .mxh__stripe i { opacity: .22; }
.mxh--type.is-spinning .mxh__stripe i.is-on { opacity: 1; transform: scaleY(2); }
.mxh__stripe i:nth-child(2) { --k: 1; } .mxh__stripe i:nth-child(3) { --k: 2; } .mxh__stripe i:nth-child(4) { --k: 3; }
.mxh__stripe i:nth-child(5) { --k: 4; } .mxh__stripe i:nth-child(6) { --k: 5; } .mxh__stripe i:nth-child(7) { --k: 6; }
.mxh--type.is-landed .mxh__stripe i { animation: mxh-chord .8s var(--ease) both; animation-delay: calc(var(--k, 0) * 55ms); }
@keyframes mxh-chord { 0% { transform: none; } 35% { transform: scaleY(2.6); } 100% { transform: none; } }

@media (max-width: 900px) {
	.mxh--type .mxh__foot { width: 100%; max-width: 560px; margin: 36px 0 0; }
}
@media (max-width: 767px) {
	.mxh--type { --fs: clamp(40px, 13vw, 96px); }
	.mxh--type .mxh__stripe { height: 8px; }
	.mxh--type .mxh__ctas .mxh__btn { flex: 1 1 100%; }
}

/* ---------- Reduced motion: no spins, tilts or replays; the pictures still change, without movement ---------- */
@media (prefers-reduced-motion: reduce) {
	.e-con.mx-hero2::before, .e-con.mx-hero2::after, :is(.mxst, .mxdk)::before, :is(.mxst, .mxdk)::after { transition: none !important; }
	:is(.mxh, .mxst, .mxdk, .mxb-hero, .mxa-hero) *, :is(.mxh, .mxst, .mxdk, .mxb-hero, .mxa-hero) *::before, :is(.mxh, .mxst, .mxdk, .mxb-hero, .mxa-hero) *::after { animation: none !important; transition-duration: .01ms !important; transition-delay: 0s !important; }
	.mxh__rig { --rx: 4deg; --ry: -10deg; }
}


/* =====================================================================
   Hero line-up (2026-11-06): every hero, one after another, on the front page until Ahmad picks one.
   ===================================================================== */

.mxl { --l-ink: #101828; --l-mist: #C9D1DD; --l-amber: #FFB020; font-family: "Host Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif; -webkit-font-smoothing: antialiased; }
.mxl__intro { padding: clamp(32px, 4vw, 56px) max(var(--mx-gutter, 56px), calc((100% - var(--mx-max, 1328px)) / 2)) clamp(28px, 3vw, 44px); background: var(--l-ink); color: #fff; }
.mxl .mxl__t { margin: 0; font-family: inherit; font-weight: 780; font-size: clamp(34px, 3.8vw, 54px); line-height: 1.02; letter-spacing: -.03em; color: #fff; }
.mxl__lede { margin: 14px 0 0; max-width: 44em; font-size: 17px; line-height: 1.5; color: var(--l-mist); text-wrap: pretty; }
.mxl__jump ol { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 2px 28px; margin: 28px 0 0; padding: 0; list-style: none; }
.mxl__jump li { margin: 0; }
.mxl .mxl__jump a { display: flex; align-items: center; gap: 12px; min-height: 44px; padding: 4px 0; border-bottom: 1px solid rgba(255, 255, 255, .1); color: #fff; font-weight: 600; font-size: 16px; line-height: 1.2; text-decoration: none; }
.mxl .mxl__jump a:hover, .mxl .mxl__jump a:focus { color: #fff; }
.mxl__jump a:hover span { text-decoration: underline; text-underline-offset: 4px; }
.mxl__jump b { flex: none; display: inline-grid; place-items: center; width: 30px; height: 30px; border-radius: 8px; background: rgba(255, 255, 255, .1); font-weight: 780; font-size: 14px; }
.mxl__jump em { margin-left: auto; }
.mxl__tag { flex: none; padding: 6px 10px 5px; border-radius: 999px; font-style: normal; font-weight: 650; font-size: 12.5px; line-height: 1; white-space: nowrap; color: var(--l-mist); box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .3); }
.mxl__tag.is-new { background: var(--l-amber); color: var(--l-ink); box-shadow: none; }
.mxl__tag.is-now { background: #fff; color: var(--l-ink); box-shadow: none; }
.mxl__tag.is-passed { color: #A9B1BE; box-shadow: none; text-decoration: line-through; }
.mxl a:focus-visible { outline: 3px solid var(--l-amber); outline-offset: 3px; }
.mxl__opt { scroll-margin-top: 80px; }
.mxl__bar { display: flex; align-items: center; gap: 18px; padding: 18px max(var(--mx-gutter, 56px), calc((100% - var(--mx-max, 1328px)) / 2)); border-top: 1px solid rgba(255, 255, 255, .14); background: var(--l-ink); color: #fff; }
.mxl__n { flex: none; min-width: 1.3em; font-weight: 800; font-size: 40px; line-height: 1; letter-spacing: -.02em; color: var(--l-amber); }
.mxl__what { flex: 1; min-width: 0; }
.mxl .mxl__name { margin: 0; font-family: inherit; font-weight: 760; font-size: 22px; line-height: 1.15; letter-spacing: -.015em; color: #fff; }
.mxl__desc { margin: 4px 0 0; max-width: 62em; font-size: 15px; line-height: 1.45; color: var(--l-mist); }
.mxl .mxl__up { flex: none; color: var(--l-mist); font-weight: 600; font-size: 14px; text-decoration: underline; text-underline-offset: 4px; }
.mxl .mxl__up:hover { color: #fff; }
.mxl__shot { margin: 0; background: #fff; }
.mxl__shot img { display: block; width: 100%; max-width: 1440px; height: auto; margin: 0 auto; }
.mxl__frame { position: relative; width: 100%; max-width: 1440px; margin: 0 auto; aspect-ratio: 1440 / 900; overflow: hidden; background: #fff; }
.mxl__frame iframe { position: absolute; left: 0; top: 0; width: 1440px; height: 900px; border: 0; transform-origin: 0 0; transform: scale(var(--s, 1)); }
@media (max-width: 767px) {
	.mxl__bar { flex-wrap: wrap; gap: 6px 12px; padding: 14px 16px; }
	.mxl__n { font-size: 30px; }
	.mxl__what { flex-basis: calc(100% - 60px); }
	.mxl__tag { margin-left: 50px; }
	.mxl .mxl__up { display: none; }
	.mxl__intro { padding: 28px 16px 24px; }
	.mxl__jump em { display: none; }
}

/* Buttons the theme's reset would otherwise colour pink on hover and focus. */
:is(.mxb-hero, .mxa-hero) .mxh__pause {
	flex: none; display: inline-grid; place-items: center; width: 42px; height: 42px; min-height: 0; margin: 0; padding: 0;
	border: 0; border-radius: 50%; background: transparent; cursor: pointer; transition: box-shadow .2s, background-color .2s;
}
.mxb-hero .mxh__pause, .mxb-hero .mxh__pause:hover, .mxb-hero .mxh__pause:focus { background: transparent; color: #fff; box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .55); }
.mxb-hero .mxh__pause:hover { box-shadow: inset 0 0 0 1.5px #fff; }
.mxa-hero .mxh__pause, .mxa-hero .mxh__pause:hover, .mxa-hero .mxh__pause:focus { background: transparent; color: var(--ink); box-shadow: inset 0 0 0 1.5px #B5BCC6; }
.mxa-hero .mxh__pause:hover { box-shadow: inset 0 0 0 1.5px var(--ink); }

/* =====================================================================
   1. Departure board: a station split-flap board on the concourse. Each service group is a line, each service a stop.
   Same navy, flap tiles and amber as the line-status and calculator sections lower on the page.
   ===================================================================== */

.mxb-hero {
	--navy: #0B1120; --case: #05080F; --tile: #1A2333; --seam: #060B16; --edge: #1E2840; --amber: #FFB020; --mist: #C9D1DD; --dim: #8F98A8;
	--mkt: #DD2E29; --design: #C2187A; --web: #FFFFFF; --auto: #6B4CF2; --it: #1F5FD6; --support: #0B7F49;
	--ease: cubic-bezier(.22, .9, .24, 1);
	position: relative; display: grid; grid-template-columns: minmax(0, .94fr) minmax(0, 1.06fr); align-items: center; gap: clamp(32px, 4.5vw, 72px);
	padding: clamp(40px, 4.4vw, 64px) max(var(--mx-gutter, 56px), calc((100% - var(--mx-max, 1328px)) / 2));
	background: var(--navy); color: #fff;
	font-family: "MX Overpass", Overpass, system-ui, -apple-system, "Segoe UI", sans-serif; -webkit-font-smoothing: antialiased;
}
.mxb-hero ::selection { background: var(--amber); color: var(--navy); }
.mxb-hero [data-route="mkt"] { --c: var(--mkt); }
.mxb-hero [data-route="design"] { --c: var(--design); }
.mxb-hero [data-route="web"] { --c: var(--web); --on: var(--navy); }
.mxb-hero [data-route="auto"] { --c: var(--auto); }
.mxb-hero [data-route="it"] { --c: var(--it); }
.mxb-hero [data-route="support"] { --c: var(--support); }
.mxb-hero .mxb-hero__t { margin: 0; font-family: inherit; font-weight: 900; font-size: clamp(42px, 4.9vw, 74px); line-height: .98; letter-spacing: -.02em; color: #fff; text-wrap: balance; }
.mxb-hero__word { color: var(--amber); }
.mxb-hero__lede { margin: 26px 0 0; max-width: 31em; font-weight: 400; font-size: clamp(16px, 1.25vw, 19px); line-height: 1.55; color: var(--mist); text-wrap: pretty; }
.mxb-hero__ctas { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 34px; }
.mxb-hero .mxb-hero__btn {
	display: inline-flex; align-items: center; justify-content: center; min-height: 56px; padding: 4px 28px 0; border-radius: 8px;
	background: var(--amber); color: var(--navy); font-weight: 800; font-size: 17px; line-height: 1; text-decoration: none; white-space: nowrap;
	transition: background-color .2s, color .2s, box-shadow .2s;
}
.mxb-hero .mxb-hero__btn:hover, .mxb-hero .mxb-hero__btn:focus { background: #fff; color: var(--navy); text-decoration: none; }
.mxb-hero .mxb-hero__btn--line { background: transparent; color: #fff; box-shadow: inset 0 0 0 2px rgba(255, 255, 255, .7); }
.mxb-hero .mxb-hero__btn--line:hover, .mxb-hero .mxb-hero__btn--line:focus { background: #fff; color: var(--navy); box-shadow: inset 0 0 0 2px #fff; }
.mxb-hero :is(a, button):focus-visible { outline: 3px solid var(--amber); outline-offset: 3px; }

.mxb {
	--rh: 31px;
	position: relative; display: flex; flex-direction: column; min-width: 0; padding: 16px 18px 14px; border-radius: 14px;
	background: var(--case); box-shadow: 0 34px 60px -28px rgba(0, 0, 0, .8), 0 0 0 1px var(--edge);
	container-type: inline-size;
}
.mxb__head { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 0 2px 12px; border-bottom: 1px solid var(--edge); }
.mxb__dep { margin: 0; padding-top: 3px; font-weight: 800; font-size: 15px; line-height: 1; letter-spacing: .16em; text-transform: uppercase; color: var(--amber); }
.mxb__clock { display: inline-flex; align-items: center; gap: 3px; }
.mxb__clock i { padding: 3px 1px 0; font-style: normal; font-weight: 800; font-size: 18px; color: var(--amber); }
.mxb__clock .mxb__ch { width: 23px; height: 31px; }
.mxb__ch .mxb__v { justify-content: center; padding: 3px 0 0; font-size: 19px; color: var(--amber); }
.mxb__now { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 14px; padding: 12px 2px; }
.mxb__bullet { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 10px; background: var(--c); color: var(--on, #fff); font-weight: 900; font-size: 27px; line-height: 1; padding-top: 4px; transition: background-color .45s, color .45s; }
.mxb__line { min-width: 0; }
.mxb__name { margin: 0; font-weight: 800; font-size: clamp(20px, 4.4cqi, 28px); line-height: 1.1; color: #fff; }
.mxb__desc { margin: 5px 0 0; font-size: 15px; line-height: 1.4; color: var(--mist); text-wrap: pretty; }
.mxb__count { align-self: start; margin: 0; padding-top: 5px; font-weight: 800; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; color: var(--dim); white-space: nowrap; }
.mxb__count b { margin-right: 4px; font-size: 22px; letter-spacing: 0; color: var(--amber); }
.mxb__now.is-swap .mxb__line, .mxb__now.is-swap .mxb__count { animation: mxb-in .45s var(--ease) both; }
@keyframes mxb-in { from { opacity: 0; transform: translateY(6px); } }

.mxb__panel { min-width: 0; }
.mxb__rows { display: grid; gap: 3px; margin: 0; padding: 0; list-style: none; }
.mxb__row { display: grid; grid-template-columns: calc(var(--rh) * 1.55) minmax(0, 1fr); gap: 3px; height: var(--rh); margin: 0; }
/* One flap tile: the text sits on the tile colour, a dark seam crosses the middle where the two halves hinge. */
.mxb__f { position: relative; display: block; height: 100%; border-radius: 4px; background: var(--tile); perspective: 260px; }
.mxb__f::after { content: ""; position: absolute; z-index: 5; left: 0; right: 0; top: 50%; height: 1px; background: rgba(6, 11, 22, .72); pointer-events: none; }
.mxb__v {
	position: absolute; inset: 0; display: flex; align-items: center; padding: .17em .62em 0; overflow: hidden; border-radius: inherit;
	background: var(--tile); color: #fff; font-weight: 700; font-size: calc(var(--rh) * .53); line-height: 1; white-space: nowrap;
}
.mxb__no .mxb__v { justify-content: center; padding-left: 0; padding-right: 0; color: var(--amber); }
/* While a flap turns: the new text's top half waits behind the falling old top half, and the new bottom half lands last. */
.mxb__v.is-top, .mxb__v.is-a { clip-path: inset(0 0 50% 0); }
.mxb__v.is-b { clip-path: inset(50% 0 0 0); transform: rotateX(90deg); }
.mxb__v.is-top { z-index: 1; }
.mxb__v.is-a { z-index: 2; backface-visibility: hidden; }
.mxb__v.is-b { z-index: 3; backface-visibility: hidden; }
.mxh-js .mxb:not(.is-ready) :is(.mxb__rows, .mxb__clock) .mxb__v { color: transparent; }

.mxb__foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--edge); }
.mxb__lines { display: flex; flex-wrap: wrap; gap: 2px; }
.mxb-hero .mxb__lines button {
	display: inline-flex; align-items: center; gap: 7px; min-height: 40px; margin: 0; padding: 0 9px 0 6px; border: 0; border-radius: 8px;
	background: transparent; color: var(--mist); font: 700 15px/1 "MX Overpass", Overpass, system-ui, sans-serif; cursor: pointer;
	transition: background-color .2s, color .2s;
}
.mxb-hero .mxb__lines button b { display: grid; place-items: center; width: 26px; height: 26px; border-radius: 6px; background: var(--c); color: var(--on, #fff); font-weight: 900; font-size: 15px; line-height: 1; padding-top: 3px; }
.mxb-hero .mxb__lines button span { padding-top: 3px; }
.mxb-hero .mxb__lines button:hover, .mxb-hero .mxb__lines button:focus { background: rgba(255, 255, 255, .07); color: #fff; }
.mxb-hero .mxb__lines button[aria-selected="true"] { background: var(--tile); color: #fff; }

@media (max-width: 1100px) {
	.mxb-hero { grid-template-columns: minmax(0, 1fr); }
	.mxb-hero__copy { max-width: 760px; }
	.mxb { width: 100%; max-width: 760px; }
}
@media (max-width: 767px) {
	.mxb-hero { gap: 28px; padding: 36px 16px 40px; }
	.mxb-hero__ctas .mxb-hero__btn { flex: 1 1 100%; }
	.mxb { --rh: 31px; padding: 12px 12px 10px; }
	.mxb__now { gap: 12px; }
	.mxb__bullet { width: 42px; height: 42px; font-size: 23px; }
	.mxb__desc { font-size: 14px; }
	.mxb__count { display: none; }
	.mxb__foot { flex-wrap: wrap; }
	.mxb-hero .mxb__lines button { padding-right: 9px; font-size: 14px; }
}

/* =====================================================================
   2. Aisle signs: enamel aisle signs hanging from the ceiling and running away down the aisle.
   ===================================================================== */

.mxa-hero {
	--ink: #101828; --body: #3D4656; --steel: #2B313B; --ground: #F4F5F7; --hang: 64px; --beam: 14px;
	--mkt: #DD2E29; --design: #C2187A; --web: #0A0A0A; --auto: #6B4CF2; --it: #1F5FD6; --support: #0B7F49;
	--word: var(--mkt);
	--ease: cubic-bezier(.22, .9, .24, 1);
	position: relative; overflow: hidden; display: grid; grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); gap: clamp(28px, 4vw, 64px);
	padding: 0 max(var(--mx-gutter, 56px), calc((100% - var(--mx-max, 1328px)) / 2));
	background: var(--ground); color: var(--ink);
	font-family: "MX Archivo", Archivo, system-ui, -apple-system, "Segoe UI", sans-serif; font-stretch: 100%; -webkit-font-smoothing: antialiased;
}
.mxa-hero ::selection { background: var(--ink); color: #fff; }
.mxa-hero [data-route="mkt"] { --c: var(--mkt); }
.mxa-hero [data-route="design"] { --c: var(--design); }
.mxa-hero [data-route="web"] { --c: var(--web); }
.mxa-hero [data-route="auto"] { --c: var(--auto); }
.mxa-hero [data-route="it"] { --c: var(--it); }
.mxa-hero [data-route="support"] { --c: var(--support); }
.mxa-hero__copy { align-self: center; padding: clamp(40px, 5vw, 72px) 0; }
.mxa-hero .mxa-hero__t { margin: 0; font-family: inherit; font-weight: 850; font-stretch: 78%; font-size: clamp(50px, 6vw, 92px); line-height: .9; letter-spacing: -.015em; color: var(--ink); text-wrap: balance; }
.mxa-hero__word { color: var(--word); transition: color .6s var(--ease); }
.mxa-hero__lede { margin: 26px 0 0; max-width: 30em; font-weight: 450; font-size: clamp(16px, 1.25vw, 19px); line-height: 1.55; color: var(--body); text-wrap: pretty; }
.mxa-hero__ctas { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 34px; }
.mxa-hero .mxa-hero__btn {
	display: inline-flex; align-items: center; justify-content: center; min-height: 56px; padding: 1px 26px 0; border-radius: 6px;
	background: var(--ink); color: #fff; font-weight: 700; font-stretch: 92%; font-size: 18px; line-height: 1; text-decoration: none; white-space: nowrap;
	transition: background-color .2s, color .2s, box-shadow .2s;
}
.mxa-hero .mxa-hero__btn:hover, .mxa-hero .mxa-hero__btn:focus { background: var(--word); color: #fff; text-decoration: none; }
.mxa-hero .mxa-hero__btn--line { background: transparent; color: var(--ink); box-shadow: inset 0 0 0 2px var(--ink); }
.mxa-hero .mxa-hero__btn--line:hover, .mxa-hero .mxa-hero__btn--line:focus { background: var(--ink); color: #fff; }
.mxa-hero :is(a, button):focus-visible { outline: 3px solid #1C4CC8; outline-offset: 3px; }

.mxa { position: relative; display: flex; flex-direction: column; min-width: 0; padding-bottom: clamp(24px, 3vw, 40px); }
.mxa__store { position: relative; flex: 1; min-height: calc(var(--hang) + var(--sh) + 36px); --sh: 470px; }
/* The ceiling: a steel beam across the top and three light fittings hung under it, smaller as they go down the aisle. */
.mxa__ceiling { position: absolute; z-index: 0; left: -40px; right: calc(-1 * max(var(--mx-gutter, 56px), calc((100vw - var(--mx-max, 1328px)) / 2))); top: 0; height: var(--beam); background: var(--steel); }
.mxa__ceiling i { position: absolute; top: calc(var(--beam) + 10px); height: 12px; border-radius: 6px; background: #fff; box-shadow: 0 0 0 1px #D5DAE1; }
.mxa__ceiling i:nth-child(1) { left: 10%; width: 190px; }
.mxa__ceiling i:nth-child(2) { left: 52%; width: 120px; height: 9px; }
.mxa__ceiling i:nth-child(3) { left: 76%; width: 72px; height: 7px; }
.mxa__stage { position: absolute; inset: 0; }
.mxa__sign {
	position: absolute; left: 0; top: 0; width: min(72%, 480px); height: var(--sh); z-index: calc(10 - var(--d, 0));
	transform-origin: 0 0; transform: translate(var(--x, 0px), var(--y, var(--hang))) scale(var(--s, 1));
	transition: transform .9s var(--ease), opacity .45s var(--ease);
}
.mxa__sign:not(.is-on) { cursor: pointer; }
/* The sign and its two rods swing as one, from the beam. */
.mxa__hang { position: relative; height: 100%; transform-origin: 50% calc(-1 * var(--rod, 50px)); }
.mxa__hang::before, .mxa__hang::after { content: ""; position: absolute; bottom: 100%; width: 3px; height: var(--rod, 50px); background: var(--steel); }
.mxa__hang::before { left: 16%; }
.mxa__hang::after { right: 16%; }
.mxa__plate {
	position: relative; display: flex; flex-direction: column; height: 100%; padding: 28px 28px 26px; overflow: hidden; border-radius: 10px;
	background: var(--c); color: #fff;
	box-shadow: inset 0 0 0 7px var(--c), inset 0 0 0 9.5px rgba(255, 255, 255, .92), 0 26px 40px -24px rgba(16, 24, 40, .5);
}
.mxa__top { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.mxa__name { margin: 0; max-width: 9ch; padding-top: 4px; font-weight: 900; font-stretch: 70%; font-size: 42px; line-height: .9; letter-spacing: .005em; text-transform: uppercase; color: #fff; }
.mxa__no { flex: none; display: grid; place-items: center; width: 86px; height: 86px; border-radius: 8px; background: #fff; color: var(--c); font-weight: 900; font-stretch: 100%; font-size: 64px; line-height: 1; padding-top: 6px; }
.mxa__list { display: grid; gap: 2px 20px; margin: 20px 0 0; padding: 16px 0 0; border-top: 2px solid rgba(255, 255, 255, .55); list-style: none; transition: opacity .35s var(--ease); }
.mxa__list.is-two { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.mxa__list li { display: flex; align-items: baseline; gap: 9px; margin: 0; padding: 5px 0; font-weight: 650; font-stretch: 70%; font-size: 19px; line-height: 1.2; color: #fff; }
.mxa__list li::before { content: ""; flex: none; width: 7px; height: 7px; background: #fff; transform: translateY(-2px); }
.mxa__sign:not(.is-on) .mxa__list { opacity: 0; }
.mxa__sign.is-live .mxa__list li { animation: mxs-rise .45s var(--ease) both; animation-delay: calc(.3s + var(--k, 0) * 35ms); }
.mxa__sign.is-live .mxa__hang { animation: mxa-sway 1.6s var(--ease) both; }
@keyframes mxa-sway { 0% { transform: rotate(2.4deg); } 35% { transform: rotate(-1.4deg); } 65% { transform: rotate(.6deg); } 100% { transform: none; } }
/* Leaving: the sign in front is hoisted up out of sight, then hangs again at the far end of the aisle. */
.mxa__sign.is-out { transform: translate(var(--x, 0px), calc(-100% - 90px)) scale(var(--s, 1)); transition: transform .55s cubic-bezier(.55, 0, .75, .3); }
.mxa__sign.is-back { opacity: 0; transition: none; }
.mxh-js .mxa:not(.is-ready) .mxa__sign { transform: translate(var(--x, 0px), calc(-100% - 90px)) scale(var(--s, 1)); }
.mxa.is-dealing .mxa__sign { transition-delay: calc((5 - var(--d, 0)) * 90ms + 150ms); }

.mxa__foot { position: relative; z-index: 12; display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.mxa__dir { display: flex; flex-wrap: wrap; gap: 6px; }
.mxa-hero .mxa__dir button {
	display: inline-flex; align-items: stretch; gap: 0; min-height: 42px; margin: 0; padding: 0; overflow: hidden; border: 0; border-radius: 6px;
	background: #fff; color: var(--ink); box-shadow: inset 0 0 0 1.5px #CBD1D9; font: 700 15px/1 "MX Archivo", Archivo, system-ui, sans-serif; font-stretch: 90%; cursor: pointer;
	transition: background-color .2s, color .2s, box-shadow .2s;
}
.mxa-hero .mxa__dir button b { display: grid; place-items: center; width: 34px; background: var(--c); color: #fff; font-weight: 900; font-size: 17px; }
.mxa-hero .mxa__dir button span { display: grid; place-items: center; padding: 1px 12px 0 10px; }
.mxa-hero .mxa__dir button:hover, .mxa-hero .mxa__dir button:focus { background: #fff; color: var(--ink); box-shadow: inset 0 0 0 1.5px var(--ink); }
.mxa-hero .mxa__dir button[aria-selected="true"] { background: var(--ink); color: #fff; box-shadow: none; }

@media (max-width: 1100px) {
	.mxa-hero { grid-template-columns: minmax(0, 1fr); }
	.mxa-hero__copy { padding-bottom: 8px; max-width: 760px; }
	.mxa { max-width: 760px; width: 100%; }
}
@media (max-width: 767px) {
	.mxa-hero { padding: 0 16px; gap: 20px; }
	.mxa-hero__copy { padding-top: 36px; }
	.mxa-hero__ctas .mxa-hero__btn { flex: 1 1 100%; }
	.mxa-hero { --hang: 54px; }
	.mxa__store { --sh: 520px; }
	.mxa__sign { width: 82%; }
	.mxa__plate { padding: 22px 20px 20px; }
	.mxa__name { font-size: 34px; }
	.mxa__no { width: 64px; height: 64px; font-size: 46px; }
	.mxa__list.is-two { grid-template-columns: minmax(0, 1fr); }
	.mxa__list li { padding: 3px 0; font-size: 16.5px; }
	.mxa__foot { flex-wrap: wrap; }
}

/* =====================================================================
   3. Plain index: the headline, then every service in six columns. No metaphor.
   ===================================================================== */

.mxi-hero {
	--ink: #0A0A0A; --body: #3F434B; --mute: #5B606B; --rule: #E2E5E9;
	--mkt: #DD2E29; --design: #C2187A; --web: #0A0A0A; --auto: #6B4CF2; --it: #1F5FD6; --support: #0B7F49;
	padding: clamp(36px, 4vw, 56px) max(var(--mx-gutter, 56px), calc((100% - var(--mx-max, 1328px)) / 2)) clamp(40px, 4vw, 56px);
	background: #fff; color: var(--ink);
	font-family: "Host Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif; -webkit-font-smoothing: antialiased;
}
.mxi-hero ::selection { background: var(--ink); color: #fff; }
.mxi-hero [data-route="mkt"] { --c: var(--mkt); }
.mxi-hero [data-route="design"] { --c: var(--design); }
.mxi-hero [data-route="web"] { --c: var(--web); }
.mxi-hero [data-route="auto"] { --c: var(--auto); }
.mxi-hero [data-route="it"] { --c: var(--it); }
.mxi-hero [data-route="support"] { --c: var(--support); }
.mxi-hero__copy { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "t t" "l c"; align-items: end; gap: 28px 56px; }
.mxi-hero .mxi-hero__t { grid-area: t; max-width: 12.5em; margin: 0; font-family: inherit; font-weight: 780; font-size: clamp(44px, 6.1vw, 92px); line-height: .96; letter-spacing: -.035em; color: var(--ink); text-wrap: balance; }
.mxi-hero__lede { grid-area: l; max-width: 40em; margin: 0; font-size: clamp(16px, 1.3vw, 19px); line-height: 1.55; color: var(--body); text-wrap: pretty; }
.mxi-hero__ctas { grid-area: c; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; }
.mxi-hero .mxi-hero__btn {
	display: inline-flex; align-items: center; justify-content: center; min-height: 54px; padding: 2px 26px 0; border-radius: 999px;
	background: var(--ink); color: #fff; font-weight: 650; font-size: 17px; line-height: 1; letter-spacing: -.01em; text-decoration: none; white-space: nowrap;
	transition: background-color .2s, color .2s, box-shadow .2s;
}
.mxi-hero .mxi-hero__btn:hover, .mxi-hero .mxi-hero__btn:focus { background: #2A2D33; color: #fff; text-decoration: none; }
.mxi-hero .mxi-hero__btn--line { background: transparent; color: var(--ink); box-shadow: inset 0 0 0 2px var(--ink); }
.mxi-hero .mxi-hero__btn--line:hover, .mxi-hero .mxi-hero__btn--line:focus { background: var(--ink); color: #fff; }
.mxi-hero :is(a, summary):focus-visible { outline: 3px solid #1C4CC8; outline-offset: 3px; }
.mxi { display: grid; grid-template-columns: minmax(0, 2fr) repeat(5, minmax(0, 1fr)); margin-top: clamp(36px, 4vw, 56px); border-top: 2px solid var(--ink); }
.mxi__grp.is-two .mxi__list { columns: 2; column-gap: 20px; }
.mxi__list li { break-inside: avoid; }
.mxi__grp { min-width: 0; padding: 20px 20px 0 0; }
.mxi__grp + .mxi__grp { padding-left: 20px; border-left: 1px solid var(--rule); }
.mxi__grp > summary { display: flex; align-items: baseline; gap: 10px; min-height: 2.6em; list-style: none; cursor: default; }
.mxi__grp > summary::-webkit-details-marker { display: none; }
.mxi__name { display: flex; align-items: baseline; gap: 10px; font-weight: 750; font-size: 18px; line-height: 1.2; letter-spacing: -.01em; }
.mxi__name::before { content: ""; flex: none; width: 11px; height: 11px; border-radius: 2px; background: var(--c); transform: translateY(-1px); }
.mxi__count { margin-left: auto; font-weight: 650; font-size: 14px; color: var(--mute); font-variant-numeric: tabular-nums; }
.mxi__list { margin: 14px 0 0; padding: 0; list-style: none; }
.mxi__list li { margin: 0; padding: 5px 0; font-size: 17px; line-height: 1.35; color: var(--body); }
@media (max-width: 1100px) {
	.mxi { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.mxi__grp.is-two .mxi__list { columns: 1; }
	.mxi__grp:nth-child(4) { padding-left: 0; border-left: 0; }
	.mxi__grp:nth-child(n + 4) { padding-top: 28px; }
}
@media (max-width: 767px) {
	.mxi-hero { padding: 36px 16px 40px; }
	.mxi-hero__copy { grid-template-columns: minmax(0, 1fr); grid-template-areas: "t" "l" "c"; gap: 22px; }
	.mxi-hero__ctas { justify-content: flex-start; }
	.mxi-hero__ctas .mxi-hero__btn { flex: 1 1 100%; }
}
@media (max-width: 600px) {
	/* Phones: one group per row; tap a group to open its list. */
	.mxi { grid-template-columns: minmax(0, 1fr); }
	.mxi__grp, .mxi__grp + .mxi__grp, .mxi__grp:nth-child(n + 4) { padding: 0; border-left: 0; border-bottom: 1px solid var(--rule); }
	.mxi__grp > summary { min-height: 56px; align-items: center; cursor: pointer; }
	.mxi__grp.is-two .mxi__list { columns: 2; column-gap: 16px; }
	.mxi__grp > summary::after { content: ""; flex: none; width: 9px; height: 9px; margin: -4px 4px 0 0; border-right: 2px solid var(--ink); border-bottom: 2px solid var(--ink); transform: rotate(45deg); transition: transform .25s; }
	.mxi__grp[open] > summary::after { margin-top: 4px; transform: rotate(-135deg); }
	.mxi__list { margin: 0 0 14px; }
}
