/* ==========================================================================
   ZMS Dynamics: landing page composition
   Loaded only on the landing page. Relies on tokens from zms-site.css.
   `html.zms-motion` is set in <head> when motion is allowed; it only adds the
   pre-reveal states GSAP animates from. Without it every section renders static.
   ========================================================================== */

/* ---------------------------------------------------------------- section shells */

.zms .zms-sec {
	display: grid;
	grid-template-columns: var(--zms-cols);
	row-gap: clamp(44px, 6vw, 84px);
	padding: var(--zms-sec-y) 0;
	position: relative;
}
.zms .zms-sec > * { grid-column: main; }
.zms .zms-sec--paper { background: var(--zms-paper); color: var(--zms-text); }
.zms .zms-sec--ink { background: var(--zms-ink); color: var(--zms-on-dark); }
.zms .zms-sec--navy {
	background:
		radial-gradient(1200px 600px at 85% 0%, rgba(23, 103, 255, 0.18), transparent 60%),
		linear-gradient(180deg, var(--zms-navy) 0%, #0a1629 100%);
	color: var(--zms-on-dark);
}
.zms .zms-sec--ink .zms-lead,
.zms .zms-sec--navy .zms-lead { color: var(--zms-on-dark-2); }
.zms .zms-sec--ink .zms-sub,
.zms .zms-sec--navy .zms-sub { color: var(--zms-sky); }
.zms .zms-sec--ink .zms-h2 .elementor-heading-title,
.zms .zms-sec--navy .zms-h2 .elementor-heading-title { color: #fff; }

.zms .zms-split {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
	align-items: end;
	gap: 22px clamp(32px, 6vw, 96px);
}
.zms .zms-split .zms-h2 .elementor-heading-title { max-width: 13ch; }
@media (max-width: 767px) {
	.zms .zms-split { grid-template-columns: minmax(0, 1fr); align-items: start; }
}

/* ---------------------------------------------------------------- 1. hero */

.zms .zms-hero {
	position: relative;
	isolation: isolate;
	display: grid;
	grid-template-columns: var(--zms-cols);
	grid-template-rows: 1fr auto;
	min-height: max(640px, 100svh);
	padding-top: calc(var(--zms-header-h) + 40px);
	background: var(--zms-ink);
	color: #fff;
	overflow: hidden;
}
.zms .zms-hero > * { grid-column: main; }
.zms .zms-hero__mediawrap { position: absolute; inset: 0; z-index: -1; grid-column: full; }
.zms .zms-hero__media { position: absolute; inset: 0; overflow: hidden; background: #0a0f17; transform-origin: 60% 50%; }
.zms .zms-hero__media picture,
.zms .zms-hero__img,
.zms .zms-hero__glass {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	display: block;
}
.zms .zms-hero__img { object-fit: cover; object-position: 50% 50%; max-width: none; }
.zms .zms-hero__glass { opacity: 0; transition: opacity 1.4s var(--zms-ease); pointer-events: none; }
.zms .zms-hero__glass.is-live { opacity: 1; }
.zms .zms-hero__shade {
	position: absolute;
	inset: 0;
	pointer-events: none;
	background:
		linear-gradient(90deg, rgba(7, 11, 18, 0.9) 0%, rgba(7, 11, 18, 0.62) 30%, rgba(7, 11, 18, 0.12) 58%, rgba(7, 11, 18, 0) 72%),
		linear-gradient(0deg, rgba(7, 11, 18, 0.92) 0%, rgba(7, 11, 18, 0) 34%),
		linear-gradient(180deg, rgba(7, 11, 18, 0.55) 0%, rgba(7, 11, 18, 0) 22%);
}
.zms .zms-hero__content {
	align-self: center;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 26px;
	max-width: 780px;
	padding: 24px 0 clamp(36px, 6vh, 72px);
}
.zms .zms-hero__title .elementor-heading-title {
	font-family: var(--zms-font-display);
	font-stretch: 116%;
	font-weight: 760;
	/* width-driven, but capped by height so short laptop screens keep the car in view */
	font-size: min(clamp(2.85rem, 1.15rem + 6.1vw, 7.2rem), 11.5svh);
	line-height: 0.92;
	letter-spacing: -0.038em;
	color: #fff;
	max-width: 11ch;
	text-wrap: balance;
}
.zms .zms-hero__lead {
	font-size: clamp(1.06rem, 0.98rem + 0.45vw, 1.34rem);
	line-height: 1.55;
	color: rgba(238, 242, 248, 0.8);
	max-width: 33em;
}
.zms .zms-hero__ctas { display: flex; flex-flow: row wrap; gap: 12px; margin-top: 6px; }
.zms .zms-hero__login { font-size: 0.97rem; color: var(--zms-on-dark-2); }
.zms .zms-hero__login a { color: #fff; }

.zms .zms-hero__factswrap { align-self: end; }
.zms .zms-hero__facts {
	list-style: none;
	margin: 0;
	padding: 22px 0 30px;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
	border-top: 1px solid rgba(255, 255, 255, 0.16);
}
.zms .zms-hero__facts li { display: grid; gap: 2px; }
.zms .zms-hero__facts strong { font-family: var(--zms-font-display); font-stretch: 108%; font-weight: 640; font-size: 1.04rem; color: #fff; }
.zms .zms-hero__facts span { font-size: 0.94rem; color: var(--zms-on-dark-2); }

@media (max-width: 767px), (max-aspect-ratio: 4/5) {
	.zms .zms-hero { grid-template-rows: auto 1fr auto; min-height: max(620px, 100svh); padding-top: calc(var(--zms-header-h) + 18px); }
	.zms .zms-hero__content { align-self: start; gap: 20px; padding-top: 6px; padding-bottom: 28px; }
	.zms .zms-hero__title .elementor-heading-title { font-size: clamp(2.45rem, 10.4vw, 3.4rem); max-width: 12ch; }
	.zms .zms-hero__shade {
		background:
			linear-gradient(180deg, rgba(7, 11, 18, 0.9) 0%, rgba(7, 11, 18, 0.72) 38%, rgba(7, 11, 18, 0.1) 66%, rgba(7, 11, 18, 0.55) 100%);
	}
	.zms .zms-hero__ctas { flex-direction: column; align-self: stretch; }
	.zms .zms-hero__ctas .elementor-button { width: 100%; }
	.zms .zms-hero__factswrap { grid-row: 3; }
	.zms .zms-hero__facts { grid-template-columns: 1fr 1fr 1fr; gap: 10px; padding: 16px 0 20px; }
	.zms .zms-hero__facts strong { font-size: 0.86rem; }
	.zms .zms-hero__facts span { font-size: 0.78rem; line-height: 1.35; }
}
@media (max-width: 380px) {
	.zms .zms-hero__facts span { display: none; }
}

/* ---------------------------------------------------------------- 2. booking choice */

.zms .zms-choice { padding-bottom: clamp(56px, 7vw, 110px); }
.zms .zms-choice__panels {
	display: flex;
	flex-direction: row;
	gap: 16px;
	height: clamp(560px, 74vh, 780px);
}
.zms .zms-panel {
	position: relative;
	isolation: isolate;
	flex: 1 1 0;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	border-radius: var(--zms-radius-lg);
	overflow: hidden;
	color: #fff;
	transition: flex-grow 0.9s var(--zms-ease-out);
	background: var(--zms-ink);
}
@media (hover: hover) and (min-width: 1025px) {
	.zms .zms-choice__panels:hover .zms-panel { flex-grow: 0.78; }
	.zms .zms-choice__panels .zms-panel:hover { flex-grow: 1.28; }
}
.zms .zms-panel__img { position: absolute; inset: 0; z-index: -2; }
.zms .zms-panel__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transform: scale(1.02);
	transition: transform 1.4s var(--zms-ease-out);
}
.zms .zms-panel:hover .zms-panel__img img { transform: scale(1.07); }
.zms .zms-panel::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(180deg, rgba(7, 11, 18, 0) 30%, rgba(7, 11, 18, 0.55) 55%, rgba(7, 11, 18, 0.94) 100%);
}
.zms .zms-panel--work::before {
	background: linear-gradient(180deg, rgba(13, 29, 53, 0) 26%, rgba(13, 29, 53, 0.6) 52%, rgba(9, 20, 38, 0.96) 100%);
}
.zms .zms-panel__body {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 14px;
	padding: clamp(24px, 3.2vw, 44px);
	max-width: 560px;
}
.zms .zms-panel__sub {
	display: inline-flex;
	padding: 7px 14px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.12);
	border: 1px solid rgba(255, 255, 255, 0.2);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
	font-size: 0.9rem;
	line-height: 1.2;
}
.zms .zms-panel__title .elementor-heading-title {
	font-family: var(--zms-font-display);
	font-stretch: 114%;
	font-weight: 720;
	font-size: clamp(1.75rem, 1.2rem + 1.8vw, 2.9rem);
	line-height: 1;
	letter-spacing: -0.025em;
}
.zms .zms-panel__text { color: rgba(238, 242, 248, 0.8); max-width: 30em; }
.zms .zms-panel__ctas { display: flex; flex-flow: row wrap; align-items: center; gap: 10px 14px; margin-top: 8px; }

@media (max-width: 900px) {
	.zms .zms-choice__panels { flex-direction: column; height: auto; gap: 14px; }
	.zms .zms-panel { min-height: clamp(500px, 128vw, 640px); }
}

/* ---------------------------------------------------------------- 3. intro statement */

.zms .zms-intro { row-gap: clamp(56px, 8vw, 110px); }
.zms .zms-intro__statement .elementor-heading-title {
	font-family: var(--zms-font-display);
	font-stretch: 104%;
	font-weight: 520;
	font-size: clamp(1.65rem, 0.95rem + 2.7vw, 3.55rem);
	line-height: 1.12;
	letter-spacing: -0.022em;
	color: #fff;
	max-width: 1180px;
	text-wrap: pretty;
}
.zms .zms-intro__statement .zms-word { display: inline; }
.zms .zms-intro__facts {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0 clamp(24px, 4vw, 64px);
	border-top: 1px solid var(--zms-line-dark);
}
.zms .zms-fact { display: flex; flex-direction: column; gap: 10px; padding-top: 28px; }
.zms .zms-fact__title .elementor-heading-title {
	font-family: var(--zms-font-display);
	font-stretch: 110%;
	font-weight: 660;
	font-size: clamp(1.2rem, 1rem + 0.6vw, 1.5rem);
	color: #fff;
}
.zms .zms-fact__title .elementor-heading-title::before {
	content: "";
	display: block;
	width: 22px;
	height: 15px;
	margin-bottom: 18px;
	background: var(--zms-blue);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 15'%3E%3Cpath d='M2 7.2 11 1.6l9 5.6M2 13.4 11 7.8l9 5.6' fill='none' stroke='%23000' stroke-width='2.4'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 15'%3E%3Cpath d='M2 7.2 11 1.6l9 5.6M2 13.4 11 7.8l9 5.6' fill='none' stroke='%23000' stroke-width='2.4'/%3E%3C/svg%3E") center / contain no-repeat;
}
.zms .zms-fact__text { color: var(--zms-on-dark-2); max-width: 24em; }
@media (max-width: 767px) {
	.zms .zms-intro__facts { grid-template-columns: 1fr; border-top: 0; }
	.zms .zms-fact { padding: 24px 0; border-top: 1px solid var(--zms-line-dark); }
}

/* ---------------------------------------------------------------- 4. how it works */

.zms .zms-steps__track {
	position: relative;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(20px, 3vw, 44px);
	padding-top: 48px;
}
.zms .zms-steps__linewrap { position: absolute; inset: 0 0 auto 0; height: 2px; top: 13px; }
.zms .zms-steps__line { position: absolute; inset: 0; background: var(--zms-line-light); border-radius: 2px; overflow: hidden; }
.zms .zms-steps__line span { position: absolute; inset: 0; background: var(--zms-blue); transform-origin: 0 50%; transform: scaleX(1); }
.zms .zms-step { position: relative; display: flex; flex-direction: column; gap: 12px; }
.zms .zms-step::before {
	content: "";
	position: absolute;
	top: -42px;
	left: 0;
	width: 14px;
	height: 14px;
	border-radius: 50%;
	background: var(--zms-paper);
	border: 2px solid var(--zms-blue);
	box-shadow: 0 0 0 6px var(--zms-paper);
	transition: background-color 0.4s, transform 0.4s var(--zms-ease);
}
.zms .zms-step.is-active::before { background: var(--zms-blue); transform: scale(1.15); }
.zms .zms-step__num {
	font-family: var(--zms-font-display);
	font-stretch: 122%;
	font-weight: 780;
	font-size: clamp(3rem, 2rem + 3vw, 5rem);
	line-height: 0.9;
	letter-spacing: -0.04em;
	color: transparent;
	-webkit-text-stroke: 1.3px rgba(11, 18, 32, 0.32);
	transition: color 0.6s var(--zms-ease), -webkit-text-stroke-color 0.6s;
}
.zms .zms-step.is-active .zms-step__num { color: var(--zms-blue); -webkit-text-stroke-color: var(--zms-blue); }
.zms .zms-step__title .elementor-heading-title {
	font-family: var(--zms-font-display);
	font-stretch: 108%;
	font-weight: 660;
	font-size: clamp(1.18rem, 1rem + 0.5vw, 1.42rem);
	line-height: 1.15;
	color: var(--zms-text);
	margin-top: 8px;
}
.zms .zms-step__text { color: var(--zms-text-2); font-size: 1rem; }
.zms .zms-steps__ctas { display: flex; flex-flow: row wrap; gap: 12px; }

@media (max-width: 900px) {
	.zms .zms-steps__track { grid-template-columns: 1fr; padding-top: 0; padding-left: 42px; gap: 40px; }
	.zms .zms-steps__linewrap { inset: 6px auto 6px 6px; width: 2px; height: auto; top: 6px; }
	.zms .zms-steps__line span { transform-origin: 50% 0; }
	.zms .zms-step::before { top: 4px; left: -42px; }
	.zms .zms-step__num { font-size: 2.6rem; }
}

/* ---------------------------------------------------------------- 5. workplace */

.zms .zms-work {
	grid-template-columns: var(--zms-cols);
}
.zms .zms-work > .zms-work__media,
.zms .zms-work > .zms-work__body { grid-row: 1; }
.zms .zms-work__media { grid-column: full-start / main-end; width: 58%; display: flex; flex-direction: column; gap: 14px; }
.zms .zms-work__body {
	grid-column: main;
	justify-self: end;
	width: 44%;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 22px;
	align-self: center;
}
.zms .zms-work__img { border-radius: 0 var(--zms-radius-lg) var(--zms-radius-lg) 0; overflow: hidden; }
.zms .zms-work__img img { width: 100%; aspect-ratio: 5 / 4.4; object-fit: cover; object-position: 50% 50%; display: block; }
.zms .zms-work__caption { color: var(--zms-on-dark-2); font-size: 0.92rem; padding-left: var(--zms-gutter); }

.zms .zms-points { list-style: none; margin: 6px 0 4px; padding: 0; display: grid; }
.zms .zms-points li {
	position: relative;
	padding: 16px 0 16px 38px;
	border-top: 1px solid var(--zms-line-dark);
	color: var(--zms-on-dark-2);
	font-size: 1rem;
	line-height: 1.55;
}
.zms .zms-points li:last-child { border-bottom: 1px solid var(--zms-line-dark); }
.zms .zms-points li::before,
.zms .zms-ticks li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 21px;
	width: 20px;
	height: 14px;
	background: var(--zms-sky);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 15'%3E%3Cpath d='M2 7.2 11 1.6l9 5.6M2 13.4 11 7.8l9 5.6' fill='none' stroke='%23000' stroke-width='2.4'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 15'%3E%3Cpath d='M2 7.2 11 1.6l9 5.6M2 13.4 11 7.8l9 5.6' fill='none' stroke='%23000' stroke-width='2.4'/%3E%3C/svg%3E") center / contain no-repeat;
	transform: rotate(90deg);
}
.zms .zms-points strong { color: #fff; font-weight: 600; }

@media (max-width: 1024px) {
	.zms .zms-work > .zms-work__media { grid-row: 1; width: auto; grid-column: full-start / main-end; }
	.zms .zms-work > .zms-work__body { grid-row: 2; width: auto; justify-self: stretch; }
	.zms .zms-work__img { margin-right: 0; }
}

/* ---------------------------------------------------------------- 6. home detailing */

.zms .zms-home {
	grid-template-columns: var(--zms-cols);
}
.zms .zms-home > .zms-home__body,
.zms .zms-home > .zms-home__media { grid-row: 1; grid-column: main; }
.zms .zms-home__body { width: 46%; display: flex; flex-direction: column; align-items: flex-start; gap: 22px; align-self: center; }
.zms .zms-home__media { width: 47%; justify-self: end; position: relative; padding-bottom: 60px; }
.zms .zms-home__img { border-radius: var(--zms-radius-lg); overflow: hidden; }
.zms .zms-home__img img { width: 100%; aspect-ratio: 4 / 4.8; object-fit: cover; display: block; }
.zms .zms-home__inset {
	position: absolute;
	left: -18%;
	bottom: 0;
	width: 42%;
	border-radius: var(--zms-radius);
	overflow: hidden;
	border: 8px solid var(--zms-paper);
	box-shadow: 0 30px 60px -30px rgba(7, 11, 18, 0.45);
}
.zms .zms-home__inset img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; display: block; }

.zms .zms-ticks { list-style: none; margin: 4px 0; padding: 0; display: grid; gap: 0; }
.zms .zms-ticks li { position: relative; padding: 12px 0 12px 36px; border-top: 1px solid var(--zms-line-light); }
.zms .zms-ticks li:last-child { border-bottom: 1px solid var(--zms-line-light); }
.zms .zms-ticks li::before { background: var(--zms-blue); top: 17px; }

@media (max-width: 1024px) {
	.zms .zms-home > .zms-home__media { grid-row: 1; width: 100%; padding-bottom: 50px; padding-left: 12%; }
	.zms .zms-home > .zms-home__body { grid-row: 2; width: auto; }
	.zms .zms-home__inset { left: 0; width: 38%; }
}

/* ---------------------------------------------------------------- 7. rinse (signature water effect) */

.zms .zms-rinse { position: relative; background: var(--zms-ink); color: #fff; }
.zms .zms-rinse__sticky {
	position: relative;
	height: max(560px, 100svh);
	overflow: hidden;
	display: grid;
	grid-template-columns: var(--zms-cols);
	align-items: end;
}
.zms-motion .zms .zms-rinse { height: 280vh; }
.zms-motion .zms .zms-rinse__sticky { position: sticky; top: 0; height: 100svh; min-height: 560px; }

.zms .zms-rinse__stagewrap { position: absolute; inset: 0; }
.zms .zms-rinse__stage { position: absolute; inset: 0; --p: 50%; }
.zms .zms-rinse__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; max-width: none; }
.zms .zms-rinse__dirty { position: absolute; inset: 0; clip-path: inset(0 0 0 var(--p)); will-change: clip-path; }
.zms .zms-rinse__edge {
	position: absolute;
	top: 0;
	bottom: 0;
	left: var(--p);
	width: 120px;
	margin-left: -60px;
	pointer-events: none;
	background:
		linear-gradient(90deg, rgba(190, 220, 255, 0) 0%, rgba(190, 220, 255, 0.16) 46%, rgba(255, 255, 255, 0.85) 50%, rgba(190, 220, 255, 0.16) 54%, rgba(190, 220, 255, 0) 100%);
	mix-blend-mode: screen;
	opacity: var(--edge, 1);
}
.zms .zms-rinse__mist { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.zms .zms-rinse__stage::after {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	background: linear-gradient(0deg, rgba(7, 11, 18, 0.88) 0%, rgba(7, 11, 18, 0.25) 42%, rgba(7, 11, 18, 0) 60%), linear-gradient(180deg, rgba(7, 11, 18, 0.5) 0%, rgba(7, 11, 18, 0) 20%);
}
.zms .zms-rinse__labels {
	position: absolute;
	inset: auto var(--zms-gutter) auto var(--zms-gutter);
	top: calc(var(--zms-header-h) + 30px);
	display: flex;
	justify-content: space-between;
	font-family: var(--zms-font-display);
	font-stretch: 106%;
	font-weight: 600;
	font-size: 0.95rem;
	z-index: 2;
}
.zms .zms-rinse__labels span { padding: 7px 14px; border-radius: 999px; background: rgba(7, 11, 18, 0.45); border: 1px solid rgba(255, 255, 255, 0.18); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.zms .zms-rinse__copy {
	grid-column: main;
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	gap: 18px;
	max-width: 620px;
	padding-bottom: clamp(40px, 8vh, 96px);
}
.zms .zms-rinse__copy .zms-h2 .elementor-heading-title { color: #fff; }
.zms .zms-rinse__copy .zms-lead { color: rgba(238, 242, 248, 0.8); }
@media (max-width: 767px) {
	.zms .zms-rinse__img { object-position: 58% 50%; }
	.zms .zms-rinse__labels { top: calc(var(--zms-header-h) + 14px); }
}

/* ---------------------------------------------------------------- 8. services */

.zms .zms-services__intro { display: flex; flex-direction: column; gap: 18px; }
.zms .zms-svc-list { position: relative; display: flex; flex-direction: column; border-bottom: 1px solid var(--zms-line-light); }
.zms .zms-svc {
	position: relative;
	display: grid;
	grid-template-columns: 76px minmax(0, 1fr) minmax(200px, 260px) auto;
	align-items: center;
	gap: 16px clamp(18px, 3vw, 48px);
	padding: clamp(22px, 2.6vw, 34px) 0;
	border-top: 1px solid var(--zms-line-light);
	transition: background-color 0.4s;
}
.zms .zms-svc__img { display: none; }
.zms .zms-svc__num {
	font-family: var(--zms-font-display);
	font-stretch: 118%;
	font-weight: 640;
	font-size: 1.05rem;
	color: var(--zms-blue);
}
.zms .zms-svc__main { display: flex; flex-direction: column; gap: 6px; transition: transform 0.6s var(--zms-ease-out); }
.zms .zms-svc__name .elementor-heading-title {
	font-family: var(--zms-font-display);
	font-stretch: 112%;
	font-weight: 680;
	font-size: clamp(1.4rem, 1.05rem + 1.3vw, 2.25rem);
	line-height: 1.04;
	letter-spacing: -0.022em;
	color: var(--zms-text);
}
.zms .zms-svc__desc { color: var(--zms-text-2); max-width: 36em; font-size: 1rem; }
.zms .zms-svc__pricetext p { display: grid; gap: 2px; }
.zms .zms-svc__pricetext strong { font-family: var(--zms-font-display); font-stretch: 104%; font-weight: 600; font-size: 0.98rem; color: var(--zms-text); }
.zms .zms-svc__pricetext span { font-size: 0.88rem; color: var(--zms-text-2); }
@media (hover: hover) and (min-width: 1025px) {
	.zms .zms-svc:hover .zms-svc__main { transform: translateX(10px); }
}
.zms .zms-svc-preview {
	position: absolute;
	top: 0;
	left: 0;
	width: 220px;
	aspect-ratio: 4 / 5;
	border-radius: var(--zms-radius);
	overflow: hidden;
	pointer-events: none;
	z-index: 3;
	opacity: 0;
	transform: scale(0.85);
	box-shadow: 0 40px 70px -30px rgba(7, 11, 18, 0.55);
	background: var(--zms-ink);
}
.zms .zms-svc-preview img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity 0.35s; }
.zms .zms-svc-preview img.is-on { opacity: 1; }

.zms .zms-svc-corp {
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: space-between;
	gap: 24px 40px;
	padding: clamp(28px, 3.4vw, 44px);
	border-radius: var(--zms-radius-lg);
	background: linear-gradient(120deg, var(--zms-ink) 0%, var(--zms-navy-2) 100%);
	color: #fff;
}
.zms .zms-svc-corp__text { display: flex; flex-direction: column; gap: 8px; max-width: 560px; }
.zms .zms-svc-corp__title .elementor-heading-title { font-family: var(--zms-font-display); font-stretch: 112%; font-weight: 700; font-size: clamp(1.45rem, 1.1rem + 1vw, 2rem); color: #fff; }
.zms .zms-svc-corp__p { color: var(--zms-on-dark-2); }

@media (max-width: 1024px) {
	.zms .zms-svc { grid-template-columns: 96px minmax(0, 1fr); align-items: start; }
	.zms .zms-svc__img { display: block; grid-row: 1 / span 3; border-radius: 14px; overflow: hidden; }
	.zms .zms-svc__img img { width: 100%; aspect-ratio: 1; object-fit: cover; display: block; }
	.zms .zms-svc__num { display: none; }
	.zms .zms-svc__price, .zms .zms-svc__book { grid-column: 2; }
	.zms .zms-svc-corp { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 520px) {
	.zms .zms-svc { grid-template-columns: 72px minmax(0, 1fr); gap: 12px 16px; }
}

/* ---------------------------------------------------------------- 9. why */

.zms .zms-why { grid-template-columns: var(--zms-cols); }
.zms .zms-why > .zms-why__head,
.zms .zms-why > .zms-why__list { grid-row: 1; grid-column: main; }
.zms .zms-why__head {
	width: 38%;
	align-self: start;
	position: sticky;
	top: 130px;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 22px;
}
.zms .zms-why__list { width: 56%; justify-self: end; counter-reset: zmswhy; display: flex; flex-direction: column; }
.zms .zms-why__item {
	counter-increment: zmswhy;
	display: grid;
	grid-template-columns: 64px minmax(0, 1fr);
	grid-template-rows: auto auto;
	column-gap: 18px;
	row-gap: 8px;
	padding: 30px 0;
	border-top: 1px solid var(--zms-line-dark);
}
.zms .zms-why__item:last-child { border-bottom: 1px solid var(--zms-line-dark); }
.zms .zms-why__item > .elementor-element { grid-column: 2; }
.zms .zms-why__item::before {
	content: counter(zmswhy, decimal-leading-zero);
	grid-column: 1;
	grid-row: 1 / span 2;
	font-family: var(--zms-font-display);
	font-stretch: 118%;
	font-weight: 640;
	font-size: 1.02rem;
	color: var(--zms-sky);
	padding-top: 4px;
}
.zms .zms-why__title .elementor-heading-title {
	font-family: var(--zms-font-display);
	font-stretch: 110%;
	font-weight: 660;
	font-size: clamp(1.25rem, 1.05rem + 0.6vw, 1.6rem);
	line-height: 1.15;
	color: #fff;
}
.zms .zms-why__text { color: var(--zms-on-dark-2); max-width: 34em; }
@media (max-width: 1024px) {
	.zms .zms-why > .zms-why__head { position: static; width: auto; }
	.zms .zms-why > .zms-why__list { grid-row: 2; width: auto; justify-self: stretch; }
	.zms .zms-why__item { grid-template-columns: 46px minmax(0, 1fr); }
}

/* ---------------------------------------------------------------- 10. multi-vehicle */

.zms .zms-multi > .zms-multi__visual,
.zms .zms-multi > .zms-multi__body { grid-row: 1; grid-column: main; }
.zms .zms-multi__visual { width: 54%; position: relative; padding-bottom: 70px; }
.zms .zms-multi__body { width: 40%; justify-self: end; align-self: center; display: flex; flex-direction: column; align-items: flex-start; gap: 22px; }
.zms .zms-multi__img { border-radius: var(--zms-radius-lg); overflow: hidden; }
.zms .zms-multi__img img { width: 100%; aspect-ratio: 4 / 3.5; object-fit: cover; object-position: 50% 60%; display: block; }
.zms .zms-multi__cart { position: absolute; right: -36px; bottom: 0; width: min(390px, 82%); }

.zms .zms-cart {
	background: #fff;
	color: var(--zms-text);
	border-radius: 22px;
	padding: 20px;
	box-shadow: 0 50px 80px -40px rgba(7, 11, 18, 0.5), 0 0 0 1px rgba(11, 18, 32, 0.06);
	font-size: 0.95rem;
}
.zms .zms-cart__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-bottom: 14px; }
.zms .zms-cart__title { font-family: var(--zms-font-display); font-stretch: 110%; font-weight: 700; font-size: 1.1rem; }
.zms .zms-cart__slot { font-size: 0.82rem; font-weight: 600; color: var(--zms-blue); background: rgba(23, 103, 255, 0.1); border-radius: 999px; padding: 6px 11px; }
.zms .zms-cart__lines { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.zms .zms-cart__line {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 12px 14px;
	border-radius: 14px;
	background: var(--zms-paper);
}
.zms .zms-cart__car { display: grid; gap: 1px; min-width: 0; }
.zms .zms-cart__car b { font-family: var(--zms-font-display); font-stretch: 106%; font-weight: 640; }
.zms .zms-cart__car i { font-style: normal; font-size: 0.82rem; color: var(--zms-text-2); }
.zms .zms-cart__svc { font-size: 0.82rem; font-weight: 600; background: #fff; border: 1px solid var(--zms-line-light); border-radius: 999px; padding: 6px 10px; white-space: nowrap; }
.zms .zms-cart__qty { display: inline-flex; align-items: center; gap: 10px; }
.zms .zms-cart__step { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; border: 1px solid var(--zms-line-light); background: #fff; font-weight: 600; line-height: 1; }
.zms .zms-cart__count { min-width: 1.4em; text-align: center; font-family: var(--zms-font-display); font-weight: 720; font-size: 1.1rem; font-variant-numeric: tabular-nums; }
.zms .zms-cart__foot { display: flex; justify-content: space-between; gap: 10px; padding-top: 14px; margin-top: 12px; border-top: 1px dashed var(--zms-line-light); font-size: 0.84rem; color: var(--zms-text-2); }
.zms .zms-cart__foot span:first-child { color: var(--zms-text); font-weight: 600; }

@media (max-width: 1024px) {
	.zms .zms-multi > .zms-multi__visual { width: auto; grid-row: 1; padding-bottom: 0; }
	.zms .zms-multi > .zms-multi__body { width: auto; grid-row: 2; justify-self: stretch; }
	.zms .zms-multi__cart { position: relative; right: auto; bottom: auto; width: auto; margin: -70px 14px 0; }
}

/* ---------------------------------------------------------------- 11. coverage */

.zms .zms-coverage {
	position: relative;
	isolation: isolate;
	display: grid;
	grid-template-columns: var(--zms-cols);
	align-items: center;
	min-height: clamp(600px, 92vh, 940px);
	padding: var(--zms-sec-y) 0;
	color: #fff;
	overflow: hidden;
	background: var(--zms-ink);
}
.zms .zms-coverage__img { position: absolute; inset: -8% 0; z-index: -2; }
.zms .zms-coverage__img img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 60%; display: block; }
.zms .zms-coverage::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(90deg, rgba(7, 11, 18, 0.88) 0%, rgba(7, 11, 18, 0.55) 40%, rgba(7, 11, 18, 0.1) 75%), linear-gradient(0deg, rgba(7, 11, 18, 0.5), rgba(7, 11, 18, 0) 40%);
}
.zms .zms-coverage__inner { grid-column: main; }
.zms .zms-coverage__card {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 20px;
	max-width: 600px;
}
.zms .zms-coverage__card .zms-h2 .elementor-heading-title { color: #fff; }
.zms .zms-coverage__card .zms-lead { color: rgba(238, 242, 248, 0.82); }
.zms .zms-coverage__card .zms-sub { color: var(--zms-sky); }
@media (max-width: 767px) {
	.zms .zms-coverage { align-items: end; }
	.zms .zms-coverage::before { background: linear-gradient(0deg, rgba(7, 11, 18, 0.95) 0%, rgba(7, 11, 18, 0.6) 55%, rgba(7, 11, 18, 0.2) 100%); }
}

/* ---------------------------------------------------------------- 12. faq */

.zms .zms-faq > .zms-faq__head,
.zms .zms-faq > .zms-faq__listwrap { grid-row: 1; grid-column: main; }
.zms .zms-faq__head { width: 34%; align-self: start; position: sticky; top: 130px; display: flex; flex-direction: column; gap: 20px; }
.zms .zms-faq__listwrap { width: 60%; justify-self: end; }
.zms .zms-faq__list { border-bottom: 1px solid var(--zms-line-light); }
.zms .zms-faq__item { border-top: 1px solid var(--zms-line-light); }
.zms .zms-faq__item summary {
	list-style: none;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: 24px 0;
	cursor: pointer;
	font-family: var(--zms-font-display);
	font-stretch: 106%;
	font-weight: 620;
	font-size: clamp(1.08rem, 1rem + 0.4vw, 1.32rem);
	line-height: 1.3;
	color: var(--zms-text);
}
.zms .zms-faq__item summary::-webkit-details-marker { display: none; }
.zms .zms-faq__item summary i {
	position: relative;
	flex: 0 0 34px;
	height: 34px;
	border-radius: 50%;
	border: 1px solid var(--zms-line-light);
	transition: background-color 0.3s, border-color 0.3s, transform 0.5s var(--zms-ease);
}
.zms .zms-faq__item summary i::before,
.zms .zms-faq__item summary i::after {
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	width: 12px;
	height: 1.6px;
	margin: -0.8px 0 0 -6px;
	background: currentColor;
	border-radius: 2px;
	transition: transform 0.5s var(--zms-ease);
}
.zms .zms-faq__item summary i::after { transform: rotate(90deg); }
.zms .zms-faq__item[open] summary i { background: var(--zms-blue); border-color: var(--zms-blue); color: #fff; }
.zms .zms-faq__item[open] summary i::after { transform: rotate(0deg); }
.zms .zms-faq__item summary:hover i { border-color: var(--zms-text); }
.zms .zms-faq__a { padding: 0 60px 26px 0; color: var(--zms-text-2); max-width: 46em; }
@media (max-width: 1024px) {
	.zms .zms-faq > .zms-faq__head { position: static; width: auto; }
	.zms .zms-faq > .zms-faq__listwrap { grid-row: 2; width: auto; justify-self: stretch; }
	.zms .zms-faq__a { padding-right: 0; }
}

/* ---------------------------------------------------------------- 13. final cta */

.zms .zms-final {
	position: relative;
	isolation: isolate;
	display: grid;
	grid-template-columns: var(--zms-cols);
	align-items: center;
	min-height: clamp(620px, 96vh, 980px);
	padding: var(--zms-sec-y) 0;
	color: #fff;
	overflow: hidden;
	background: var(--zms-ink);
}
.zms .zms-final__img { position: absolute; inset: 0; z-index: -2; }
.zms .zms-final__img img { width: 100%; height: 100%; object-fit: cover; object-position: 30% 50%; display: block; }
.zms .zms-final::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(270deg, rgba(7, 11, 18, 0.92) 0%, rgba(7, 11, 18, 0.7) 42%, rgba(7, 11, 18, 0.05) 80%);
}
.zms .zms-final__inner {
	grid-column: main;
	justify-self: end;
	width: min(640px, 100%);
	display: flex;
	flex-direction: column;
	gap: 22px;
}
.zms .zms-final__title .elementor-heading-title {
	font-family: var(--zms-font-display);
	font-stretch: 118%;
	font-weight: 760;
	font-size: clamp(2.8rem, 1.4rem + 5vw, 6.4rem);
	line-height: 0.92;
	letter-spacing: -0.038em;
	color: #fff;
	text-wrap: balance;
}
.zms .zms-final .zms-lead { color: rgba(238, 242, 248, 0.8); }
.zms .zms-final__choices { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 8px; }
.zms .zms-final__choice {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 6px;
	min-height: 150px;
	padding: 22px 64px 22px 22px;
	border-radius: var(--zms-radius);
	border: 1px solid rgba(255, 255, 255, 0.18);
	background: rgba(255, 255, 255, 0.06);
	-webkit-backdrop-filter: blur(16px);
	backdrop-filter: blur(16px);
	color: #fff;
	text-decoration: none;
	transition: transform 0.5s var(--zms-ease-out), background-color 0.4s, border-color 0.4s;
}
.zms .zms-final__choice--home { background: var(--zms-blue); border-color: var(--zms-blue); }
.zms .zms-final__choice:hover { transform: translateY(-4px); border-color: rgba(255, 255, 255, 0.5); }
.zms .zms-final__choice--home:hover { background: var(--zms-blue-deep); }
.zms .zms-final__choicetitle { font-family: var(--zms-font-display); font-stretch: 110%; font-weight: 680; font-size: 1.18rem; line-height: 1.15; margin-top: auto; }
.zms .zms-final__choicesub { font-size: 0.92rem; color: rgba(255, 255, 255, 0.78); }
.zms .zms-final__arrow {
	position: absolute;
	top: 20px;
	right: 20px;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.14);
}
.zms .zms-final__arrow::after {
	content: "";
	position: absolute;
	inset: 11px;
	background: #fff;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 13 13 3M5 3h8v8' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 13 13 3M5 3h8v8' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
	transition: transform 0.45s var(--zms-ease-out);
}
.zms .zms-final__choice:hover .zms-final__arrow::after { transform: translate(2px, -2px); }
.zms .zms-final__login { color: var(--zms-on-dark-2); font-size: 0.97rem; }
.zms .zms-final__login a { color: #fff; }
@media (max-width: 767px) {
	.zms .zms-final { align-items: end; }
	.zms .zms-final::before { background: linear-gradient(0deg, rgba(7, 11, 18, 0.96) 0%, rgba(7, 11, 18, 0.7) 55%, rgba(7, 11, 18, 0.25) 100%); }
	.zms .zms-final__inner { justify-self: stretch; }
	.zms .zms-final__choices { grid-template-columns: 1fr; }
	.zms .zms-final__choice { min-height: 0; padding-right: 70px; }
}

/* ---------------------------------------------------------------- mobile booking bar */

.zms .zms-mbar-host { position: static; }
.zms .zms-mbar { display: none; }
@media (max-width: 767px) {
	.zms .zms-mbar {
		position: fixed;
		left: 10px;
		right: 10px;
		bottom: calc(10px + env(safe-area-inset-bottom));
		z-index: 90;
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 8px;
		padding: 8px;
		border-radius: 999px;
		background: rgba(9, 14, 23, 0.82);
		border: 1px solid rgba(255, 255, 255, 0.12);
		-webkit-backdrop-filter: blur(18px) saturate(150%);
		backdrop-filter: blur(18px) saturate(150%);
		box-shadow: 0 20px 40px -20px rgba(0, 0, 0, 0.7);
		transform: translateY(calc(100% + 30px));
		transition: transform 0.6s var(--zms-ease-out);
	}
	.zms .zms-mbar.is-visible { transform: none; }
	.zms .zms-mbar__btn {
		display: grid;
		place-items: center;
		min-height: 48px;
		border-radius: 999px;
		background: rgba(255, 255, 255, 0.08);
		color: #fff;
		text-decoration: none;
		font-family: var(--zms-font-display);
		font-stretch: 106%;
		font-weight: 640;
		font-size: 0.98rem;
	}
	.zms .zms-mbar__btn--primary { background: var(--zms-blue); }
}

/* ---------------------------------------------------------------- motion pre-states (only with html.zms-motion) */

.zms-motion .zms .zms-r { opacity: 0; transform: translate3d(0, 34px, 0); }
.zms-motion .zms .zms-ri { clip-path: inset(12% 8% 12% 8% round var(--zms-radius-lg)); }
.zms-motion .zms .zms-hero__title,
.zms-motion .zms .zms-hero__lead,
.zms-motion .zms .zms-hero__login,
.zms-motion .zms .zms-hero__facts { opacity: 0; animation: zms-show 0.6s ease 2.4s forwards; }
/* Safety net: on slow connections the hero copy appears by itself if the intro has not started. */
@keyframes zms-show { to { opacity: 1; } }
.zms-motion .zms .zms-panel { opacity: 0; transform: translate3d(0, 60px, 0); }
.zms-motion .zms .zms-steps__line span { transform: scaleX(0); }
@media (max-width: 900px) { .zms-motion .zms .zms-steps__line span { transform: scaleY(0); } }
.zms-motion .zms .zms-intro__statement .zms-word { opacity: 0.16; }

/* Word splitting helpers (hero title masks each word) */
.zms .zms-wmask { display: inline-block; overflow: hidden; vertical-align: top; padding: 0 0.04em 0.1em; margin: 0 -0.04em -0.1em; }
.zms .zms-wmask > span { display: inline-block; will-change: transform; }

@media (prefers-reduced-motion: reduce) {
	.zms .zms-panel, .zms .zms-panel__img img, .zms .zms-svc__main, .zms .zms-final__choice { transition: none; }
}

/* ==========================================================================
   v2 (Oct 2026): live service menu, technology, partners
   ========================================================================== */

/* ---- live package menu (rendered by [zms_services_menu]) */
.zms .zms-services__menu { grid-column: main; }
.zms .zms-live-menu { display: grid; gap: clamp(36px, 5vw, 64px); }
.zms .zms-pkgs { display: flex; flex-direction: column; border-bottom: 1px solid var(--zms-line-light); }
.zms .zms-pkg {
	position: relative;
	display: grid;
	grid-template-columns: 64px minmax(0, 1fr) auto auto;
	align-items: center;
	gap: 14px clamp(18px, 3vw, 44px);
	padding: clamp(22px, 2.6vw, 32px) clamp(0px, 1.4vw, 22px);
	border-top: 1px solid var(--zms-line-light);
	transition: background-color 0.4s var(--zms-ease);
}
.zms .zms-pkg:hover { background: #fff; }
.zms .zms-pkg--top { background: var(--zms-ink); color: #fff; border-radius: var(--zms-radius); border-top-color: transparent; }
.zms .zms-pkg--top:hover { background: var(--zms-navy); }
.zms .zms-pkg__num { font-family: var(--zms-font-display); font-stretch: 118%; font-weight: 640; font-size: 1.05rem; color: var(--zms-blue); }
.zms .zms-pkg--top .zms-pkg__num { color: var(--zms-sky); }
.zms .zms-pkg__name { margin: 0 0 6px; font-family: var(--zms-font-display); font-stretch: 112%; font-weight: 680; font-size: clamp(1.35rem, 1.05rem + 1.2vw, 2.1rem); line-height: 1.05; letter-spacing: -0.022em; color: inherit; }
.zms .zms-pkg__desc { margin: 0; color: var(--zms-text-2); max-width: 40em; font-size: 0.98rem; }
.zms .zms-pkg--top .zms-pkg__desc { color: var(--zms-on-dark-2); }
.zms .zms-pkg__price { text-align: right; }
.zms .zms-pkg__price strong { display: block; font-family: var(--zms-font-display); font-stretch: 112%; font-weight: 740; font-size: clamp(1.8rem, 1.3rem + 1.6vw, 2.8rem); line-height: 1; letter-spacing: -0.03em; }
.zms .zms-pkg__price span { font-size: 0.85rem; color: var(--zms-text-2); }
.zms .zms-pkg--top .zms-pkg__price span { color: var(--zms-on-dark-2); }
.zms .zms-pkg__book {
	display: inline-flex; align-items: center; justify-content: center; min-height: 46px; padding: 0 20px; border-radius: 999px;
	border: 1px solid rgba(11, 18, 32, 0.24); font-family: var(--zms-font-display); font-stretch: 106%; font-weight: 620; font-size: 0.95rem;
	color: var(--zms-text); text-decoration: none; transition: background-color 0.3s, color 0.3s, border-color 0.3s;
}
.zms .zms-pkg__book:hover { background: var(--zms-text); color: #fff; border-color: var(--zms-text); }
.zms .zms-pkg--top .zms-pkg__book { background: var(--zms-blue); border-color: var(--zms-blue); color: #fff; }
.zms .zms-pkg--top .zms-pkg__book:hover { background: var(--zms-blue-deep); }
.zms .zms-addons { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 2fr); gap: 24px clamp(32px, 5vw, 80px); }
.zms .zms-addons__head h3 { margin: 0 0 8px; font-family: var(--zms-font-display); font-stretch: 112%; font-weight: 700; font-size: clamp(1.4rem, 1.1rem + 1vw, 2rem); letter-spacing: -0.02em; color: var(--zms-text); }
.zms .zms-addons__head p { color: var(--zms-text-2); margin: 0; }
.zms .zms-addons__list { list-style: none; margin: 0; padding: 0; columns: 2; column-gap: clamp(24px, 4vw, 56px); }
.zms .zms-addons__list li { break-inside: avoid; display: flex; align-items: baseline; gap: 10px; padding: 11px 0; border-bottom: 1px solid var(--zms-line-light); font-size: 0.98rem; }
.zms .zms-addons__list li span { flex: 1; }
.zms .zms-addons__list li strong { font-family: var(--zms-font-display); font-stretch: 106%; font-weight: 650; color: var(--zms-blue); white-space: nowrap; }
.zms .zms-live-menu--empty { padding: 24px; border: 1px dashed var(--zms-line-light); border-radius: var(--zms-radius); }
@media (max-width: 900px) {
	.zms .zms-pkg { grid-template-columns: 40px minmax(0, 1fr) auto; }
	.zms .zms-pkg__book { grid-column: 2 / -1; justify-self: start; }
	.zms .zms-addons { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
	.zms .zms-pkg { grid-template-columns: minmax(0, 1fr) auto; padding-left: 14px; padding-right: 14px; }
	.zms .zms-pkg__num { display: none; }
	.zms .zms-pkg__book { grid-column: 1 / -1; }
	.zms .zms-addons__list { columns: 1; }
}

/* ---- technology */
.zms .zms-tech__stats .zms-stats {
	margin: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0;
	border-top: 1px solid var(--zms-line-light); border-bottom: 1px solid var(--zms-line-light);
}
.zms .zms-stats > div { padding: clamp(22px, 3vw, 36px) clamp(12px, 2vw, 28px); border-left: 1px solid var(--zms-line-light); display: flex; flex-direction: column-reverse; gap: 8px; }
.zms .zms-stats > div:first-child { border-left: 0; padding-left: 0; }
.zms .zms-stats dt { color: var(--zms-text-2); font-size: 0.95rem; }
.zms .zms-stats dd { margin: 0; white-space: nowrap; font-family: var(--zms-font-display); font-stretch: 112%; font-weight: 760; font-size: clamp(2rem, 1.2rem + 2.2vw, 3.3rem); line-height: 1; letter-spacing: -0.035em; color: var(--zms-text); font-variant-numeric: tabular-nums; }
.zms .zms-stats dd small { font-size: 0.32em; font-weight: 600; letter-spacing: 0; margin-left: 6px; color: var(--zms-blue); }
.zms .zms-tech__grid { display: grid; grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); gap: clamp(32px, 5vw, 84px); align-items: center; }
.zms .zms-tech__unit { display: flex; flex-direction: column; gap: 12px; }
.zms .zms-tech__img { border-radius: var(--zms-radius-lg); overflow: hidden; }
.zms .zms-tech__img img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; display: block; }
.zms .zms-tech__caption { font-size: 0.9rem; color: var(--zms-text-2); }
.zms .zms-tech__body { display: flex; flex-direction: column; gap: 28px; }
.zms .zms-tech__list { list-style: none; margin: 0; padding: 0; display: grid; }
.zms .zms-tech__list li { position: relative; padding: 18px 0 18px 38px; border-top: 1px solid var(--zms-line-light); color: var(--zms-text-2); }
.zms .zms-tech__list li:last-child { border-bottom: 1px solid var(--zms-line-light); }
.zms .zms-tech__list strong { color: var(--zms-text); font-weight: 650; }
.zms .zms-tech__list li::before {
	content: ""; position: absolute; left: 0; top: 24px; width: 20px; height: 14px; background: var(--zms-blue); transform: rotate(90deg);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 15'%3E%3Cpath d='M2 7.2 11 1.6l9 5.6M2 13.4 11 7.8l9 5.6' fill='none' stroke='%23000' stroke-width='2.4'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 15'%3E%3Cpath d='M2 7.2 11 1.6l9 5.6M2 13.4 11 7.8l9 5.6' fill='none' stroke='%23000' stroke-width='2.4'/%3E%3C/svg%3E") center / contain no-repeat;
}
.zms .zms-tech__products { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 20px; align-items: center; padding: 16px; border-radius: var(--zms-radius); background: var(--zms-ink); color: var(--zms-on-dark-2); }
.zms .zms-tech__productimg { border-radius: 12px; overflow: hidden; }
.zms .zms-tech__productimg img { width: 100%; aspect-ratio: 1; object-fit: cover; display: block; }
.zms .zms-tech__producttext { font-size: 0.95rem; }
@media (max-width: 900px) {
	.zms .zms-tech__stats .zms-stats { grid-template-columns: 1fr 1fr; }
	.zms .zms-stats > div:nth-child(3) { border-left: 0; padding-left: 0; }
	.zms .zms-stats > div:nth-child(n+3) { border-top: 1px solid var(--zms-line-light); }
	.zms .zms-tech__grid { grid-template-columns: 1fr; }
	.zms .zms-tech__unit { max-width: 440px; }
}
@media (max-width: 520px) { .zms .zms-tech__products { grid-template-columns: 1fr; } }

/* ---- partners (mirror of the workplace section) */
.zms .zms-partner > .zms-partner__media,
.zms .zms-partner > .zms-partner__body { grid-row: 1; }
.zms .zms-partner__media { grid-column: main-start / full-end; justify-self: end; width: 58%; }
.zms .zms-partner__body { grid-column: main; width: 44%; display: flex; flex-direction: column; align-items: flex-start; gap: 22px; align-self: center; }
.zms .zms-partner__img { border-radius: var(--zms-radius-lg) 0 0 var(--zms-radius-lg); overflow: hidden; }
.zms .zms-partner__img img { width: 100%; aspect-ratio: 5 / 4.4; object-fit: cover; display: block; }
.zms .zms-sectors { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.zms .zms-sectors li { padding: 8px 14px; border-radius: 999px; border: 1px solid rgba(255, 255, 255, 0.18); background: rgba(255, 255, 255, 0.05); font-size: 0.92rem; color: var(--zms-on-dark); }
@media (max-width: 1024px) {
	.zms .zms-partner > .zms-partner__media { grid-row: 1; width: auto; grid-column: main-start / full-end; }
	.zms .zms-partner > .zms-partner__body { grid-row: 2; width: auto; }
}
