/**
 * 114 Maids V2 — design tokens + shared primitives.
 * Ported from the approved mockup. Scoped under .m114 wrappers so Hello
 * Elementor / Elementor core styles don't collide.
 */

/* Fixed Header V2 is 90px (74px mobile) — offset anchor jumps so targets
   (#enquire, #routes …) don't land hidden under it. */
html {
	scroll-behavior: smooth;
	scroll-padding-top: 100px;
}

@media (max-width: 900px) {
	html {
		scroll-padding-top: 84px;
	}
}

:root {
	--m114-navy: #112e43;
	--m114-red: #bb353b;
	--m114-ink: #163347;
	--m114-muted: #61717b;
	--m114-paper: #faf9f5;
	--m114-line: #dce2e3;
	--m114-green: #245e4b;
}

/* Base block wrapper applied to every widget root so typography is consistent
   even though Hello Elementor sets its own body font. */
.m114 {
	color: var(--m114-ink);
	font-family: 'DM Sans', Arial, sans-serif;
	font-size: 16px;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
	/* Mockup body is paper (#faf9f5); untinted sections inherit it.
	   Tinted sections (process/team/videos/feature/quote) + the navy enquire
	   override this via their own widget CSS, which loads after base.css. */
	background: var(--m114-paper);
}

.m114 *,
.m114 *::before,
.m114 *::after {
	box-sizing: border-box;
}

.m114 a {
	color: inherit;
	text-decoration: none;
}

/* Centered content rail — matches mockup .wrap */
.m114__wrap {
	width: min(1160px, calc(100% - 80px));
	margin-inline: auto;
}

.m114 h1,
.m114 h2,
.m114 h3 {
	font-family: 'Manrope', Arial, sans-serif;
	line-height: 1.15;
	letter-spacing: -1.8px;
	margin: 0;
	font-weight: 700;
}

.m114 h1 {
	font-size: clamp(40px, 4.8vw, 64px);
	letter-spacing: -3px;
}

.m114 h2 {
	font-size: 38px;
	line-height: 1.22;
}

.m114 h3 {
	font-size: 22px;
	letter-spacing: -0.7px;
}

.m114 em {
	font-style: normal;
	color: var(--m114-red);
}

/* Eyebrow / subtitle */
.m114__eyebrow {
	font-size: 10px;
	letter-spacing: 1.6px;
	font-weight: 800;
	margin: 0 0 24px;
	color: var(--m114-red);
	text-transform: uppercase;
}

.m114__eyebrow .dot {
	display: inline-block;
	width: 6px;
	height: 6px;
	background: var(--m114-red);
	border-radius: 50%;
	margin-right: 6px;
	vertical-align: middle;
}

/* Button — mockup .button */
.m114 .button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 32px;
	border: 0;
	border-radius: 6px;
	padding: 16px 23px;
	background: var(--m114-green);
	color: #fff;
	font-size: 14px;
	font-weight: 700;
	font-family: 'DM Sans', Arial, sans-serif;
	cursor: pointer;
	transition: background 0.2s, transform 0.2s;
}

.m114 .button:hover {
	background: #173f33;
	transform: translateY(-2px);
}

.m114 .button span {
	font-size: 21px;
	line-height: 1;
}

.m114 .button.small {
	font-size: 12px;
	padding: 12px 18px;
	gap: 20px;
}

.m114 .text-link {
	font-size: 13px;
	font-weight: 700;
	display: inline-block;
	border-bottom: 1px solid #a4adb1;
	padding-bottom: 4px;
}

.m114 .text-link:hover {
	color: var(--m114-red);
}

/* Section CTAs render as text-links (match mockup) — NOT green buttons.
   Green stays only on: header CTA, hero primary ("Find my helper"), and the
   Enquire form submit ("Continue on WhatsApp"). */
.routes-v2 .button,
.clarity-v2 .button,
.team-v2 .button,
.faq-v2 .button,
.feature-band-v2 .button,
.quote-band-v2 .button,
.enquire-v2__direct .button {
	background: transparent;
	color: var(--m114-ink);
	padding: 0 0 4px;
	border: 0;
	border-bottom: 1px solid #a4adb1;
	border-radius: 0;
	font-size: 13px;
	font-weight: 700;
	gap: 8px;
	transition: color 0.18s;
}

.routes-v2 .button:hover,
.clarity-v2 .button:hover,
.team-v2 .button:hover,
.faq-v2 .button:hover,
.feature-band-v2 .button:hover,
.quote-band-v2 .button:hover,
.enquire-v2__direct .button:hover {
	background: transparent;
	color: var(--m114-red);
	transform: none;
}

.routes-v2 .button span,
.clarity-v2 .button span,
.team-v2 .button span,
.faq-v2 .button span,
.feature-band-v2 .button span,
.quote-band-v2 .button span,
.enquire-v2__direct .button span {
	font-size: 15px;
}

/* On the navy Enquire band the direct link must stay legible */
.enquire-v2__direct .button {
	color: #c0cdd5;
	border-bottom-color: rgba(255, 255, 255, 0.3);
}
.enquire-v2__direct .button:hover {
	color: #fff;
}

/* Section vertical rhythm */
.m114--section {
	padding-top: 85px;
	padding-bottom: 85px;
}

/* Section heading row */
.m114__heading {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 60px;
	margin-bottom: 40px;
}

.m114__heading > p {
	max-width: 340px;
	color: var(--m114-muted);
	font-size: 14px;
	margin: 0 0 3px;
}

.m114__heading .m114__eyebrow {
	margin-bottom: 16px;
}

/* Focus visibility */
.m114 a:focus-visible,
.m114 button:focus-visible,
.m114 select:focus-visible,
.m114 textarea:focus-visible,
.m114 summary:focus-visible {
	outline: 3px solid #cc7749;
	outline-offset: 5px;
}

/* ---- Reveal animation (paired with reveal.js) ---- */
.reveal {
	opacity: 0;
	transition: opacity 0.7s ease, transform 0.7s ease;
	will-change: opacity, transform;
}

.reveal[data-reveal='up'] {
	transform: translateY(24px);
}

.reveal.is-revealed {
	opacity: 1;
	transform: none;
}

@media (prefers-reduced-motion: reduce) {
	.m114 .button {
		transition: none;
	}
	.reveal {
		opacity: 1 !important;
		transform: none !important;
		transition: none;
	}
}

@media (max-width: 1000px) {
	.m114__wrap {
		width: calc(100% - 48px);
	}
	.m114 h1 {
		font-size: 48px;
	}
	.m114__heading {
		gap: 30px;
	}
}

@media (max-width: 700px) {
	.m114__wrap {
		width: calc(100% - 40px);
	}
	.m114--section {
		padding-top: 52px;
		padding-bottom: 52px;
	}
	.m114 h2 {
		font-size: 31px;
		letter-spacing: -1.4px;
	}
	.m114 h1 {
		font-size: 46px;
		letter-spacing: -2.5px;
	}
	.m114__heading {
		display: block;
		margin-bottom: 28px;
	}
	.m114__heading > p {
		margin-top: 18px;
		max-width: none;
		font-size: 13px;
	}
}
