/* =====================================================================
   GMS Immigration — design system
   Civic-modern dossier: Archivo + IBM Plex Mono, navy/crimson,
   sharp corners, hairline rules, numbered sections, duotone imagery.
   Desktop-first (matching the source design) with responsive fallbacks.
   ===================================================================== */

/* ---------- Layout primitives ---------- */
.gms-container,
.gms-section > .e-con-inner,
.gms-page__body { width: 100%; }

.gms-container {
	max-width: var(--gms-maxw);
	margin-inline: auto;
	padding-inline: 36px;
	box-sizing: border-box;
}

.gms-content { display: block; }
.gms-site { overflow-x: hidden; }

/* Neutralise Elementor's default section padding so the GMS widgets control
   their own rhythm, but keep it sane if a user drops a stock widget. */
.gms-page__body .elementor-widget-gms-heading,
.gms-page__body > .elementor { width: 100%; }

img.gms-duotone,
.gms-duotone img,
.gms-duotone {
	filter: grayscale(1) contrast(1.06);
	mix-blend-mode: luminosity;
}

/* ---------- Buttons ---------- */
.gms-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	border-radius: 0;
	border: 2px solid transparent;
	padding: 16px 28px;
	font-family: var(--gms-sans);
	font-size: 13.5px;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	text-decoration: none;
	cursor: pointer;
	transition: background .15s ease, color .15s ease, border-color .15s ease;
	line-height: 1;
}
.gms-btn--crimson { background: var(--gms-crimson); color: #fff; border-color: var(--gms-crimson); }
.gms-btn--crimson:hover { background: var(--gms-navy); border-color: var(--gms-navy); color: #fff; }
.gms-btn--navy { background: var(--gms-navy); color: #fff; border-color: var(--gms-navy); }
.gms-btn--navy:hover { background: var(--gms-crimson); border-color: var(--gms-crimson); color: #fff; }
.gms-btn--ghost { background: transparent; color: var(--gms-navy); border-color: var(--gms-navy); }
.gms-btn--ghost:hover { background: var(--gms-navy); color: #fff; }
.gms-btn--light { background: transparent; color: #fff; border-color: rgba(255,255,255,.35); }
.gms-btn--light:hover { border-color: #fff; }

.gms-btn--join { border-left: none; }

/* ---------- Mono label / eyebrow ---------- */
.gms-eyebrow {
	font-family: var(--gms-mono);
	font-size: 12.5px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--gms-crimson);
	margin-bottom: 20px;
}
.gms-eyebrow--pink { color: var(--gms-pink); }

/* ---------- Section heading (numbered + rule) ---------- */
.gms-shead {
	display: flex;
	align-items: baseline;
	gap: 24px;
	border-bottom: 2px solid var(--gms-navy);
	padding-bottom: 20px;
}
.gms-shead__num { font-family: var(--gms-mono); font-size: 13px; font-weight: 600; color: var(--gms-crimson); }
.gms-shead__title { font-weight: 800; font-size: 46px; line-height: 1; color: var(--gms-navy); margin: 0; letter-spacing: -0.02em; text-transform: uppercase; }
.gms-shead__meta { margin-left: auto; font-family: var(--gms-mono); font-size: 12.5px; color: var(--gms-slate); text-decoration: none; }
a.gms-shead__meta { color: var(--gms-crimson); font-weight: 600; letter-spacing: .05em; }

.gms-note { font-family: var(--gms-mono); font-size: 12px; color: var(--gms-mute); margin-top: 14px; }

/* ---------- Reveal-on-scroll ---------- */
html.gms-js .gms-reveal { opacity: 0; transform: translateY(20px); }
html.gms-js .gms-reveal.is-in {
	opacity: 1;
	transform: none;
	transition: opacity .6s ease, transform .6s cubic-bezier(.2,.7,.2,1);
}

/* =====================================================================
   TICKER
   ===================================================================== */
.gms-ticker {
	background: var(--gms-navy);
	color: rgba(255,255,255,.85);
	overflow: hidden;
	white-space: nowrap;
	border-bottom: 1px solid rgba(255,255,255,.1);
}
.gms-ticker__track { display: inline-flex; }
.gms-ticker__group {
	display: inline-flex;
	align-items: center;
	padding: 8px 0;
	animation: gmsTick 40s linear infinite;
}
.gms-ticker__item,
.gms-ticker__sep {
	font-family: var(--gms-mono);
	font-size: 11.5px;
	font-weight: 500;
	letter-spacing: 0.08em;
	padding: 0 .5em;
}
.gms-ticker__sep { color: var(--gms-pink); }
@keyframes gmsTick { from { transform: translateX(0); } to { transform: translateX(-100%); } }

/* =====================================================================
   HEADER
   ===================================================================== */
.gms-header {
	position: sticky;
	top: 0;
	z-index: 60;
	background: #fff;
	border-bottom: 2px solid var(--gms-navy);
}
.gms-header__inner {
	max-width: var(--gms-maxw);
	margin: 0 auto;
	padding: 0 36px;
	height: 80px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
}
.gms-header__brand { flex: none; display: flex; align-items: center; }
.gms-logo { display: flex; align-items: center; text-decoration: none; }
.gms-logo img { height: 44px; display: block; width: auto; }
.gms-logo--text { font-weight: 900; font-size: 22px; letter-spacing: .04em; text-transform: uppercase; color: var(--gms-navy); }

.gms-nav { display: flex; align-items: stretch; height: 80px; }
.gms-nav__list { display: flex; align-items: stretch; gap: 0; height: 80px; list-style: none; margin: 0; padding: 0; }
.gms-nav__list li { display: flex; }
.gms-nav__link,
.gms-nav__list a {
	display: flex;
	align-items: center;
	white-space: nowrap;
	padding: 0 18px;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--gms-ink);
	text-decoration: none;
	border-bottom: 3px solid transparent;
	transition: color .15s ease, border-color .15s ease;
}
.gms-nav__link:hover,
.gms-nav__list a:hover { color: var(--gms-crimson); }
.gms-nav__list .current-menu-item > a,
.gms-nav__list .current_page_item > a { color: var(--gms-crimson); border-bottom-color: var(--gms-crimson); }

.gms-header__actions { display: flex; align-items: center; gap: 20px; flex: none; }
.gms-header__phone {
	font-family: var(--gms-mono);
	font-size: 14px;
	font-weight: 600;
	color: var(--gms-ink);
	text-decoration: none;
}
.gms-header__phone:hover { color: var(--gms-crimson); }
.gms-header__cta { padding: 14px 24px; font-size: 13px; }

/* Mobile nav toggle */
.gms-nav-toggle {
	display: none;
	flex-direction: column;
	gap: 5px;
	width: 44px;
	height: 44px;
	align-items: center;
	justify-content: center;
	background: var(--gms-navy);
	border: none;
	cursor: pointer;
	padding: 0;
}
.gms-nav-toggle__bar { display: block; width: 22px; height: 2px; background: #fff; transition: transform .2s ease, opacity .2s ease; }
.gms-nav-toggle[aria-expanded="true"] .gms-nav-toggle__bar:nth-child(2) { opacity: 0; }
.gms-nav-toggle[aria-expanded="true"] .gms-nav-toggle__bar:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.gms-nav-toggle[aria-expanded="true"] .gms-nav-toggle__bar:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* =====================================================================
   HERO (home)
   ===================================================================== */
.gms-hero {
	background: #fff;
	background-image: linear-gradient(var(--gms-grid) 1px, transparent 1px), linear-gradient(90deg, var(--gms-grid) 1px, transparent 1px);
	background-size: 56px 56px;
	border-bottom: 2px solid var(--gms-navy);
}
.gms-hero__inner {
	max-width: var(--gms-maxw);
	margin: 0 auto;
	padding: 0 36px;
	display: grid;
	grid-template-columns: 1.08fr 0.92fr;
	gap: 0;
}
.gms-hero__text { padding: 84px 56px 84px 0; border-right: 1px solid var(--gms-line); }
.gms-hero__title { font-weight: 800; font-size: 66px; line-height: .99; letter-spacing: -0.025em; color: var(--gms-navy); margin: 0 0 26px; text-transform: uppercase; }
.gms-hero__title .hl { color: var(--gms-crimson); }
.gms-hero__lede { font-size: 17.5px; line-height: 1.6; color: var(--gms-slate); margin: 0 0 34px; max-width: 47ch; font-weight: 500; }
.gms-hero__actions { display: flex; align-items: stretch; gap: 0; margin-bottom: 38px; }
.gms-hero__actions .gms-btn { padding: 18px 30px; }
.gms-hero__trust { display: flex; flex-wrap: wrap; gap: 28px; font-family: var(--gms-mono); font-size: 12.5px; font-weight: 500; color: var(--gms-slate); }
.gms-hero__media { position: relative; display: flex; flex-direction: column; }
.gms-hero__frame { flex: 1; position: relative; overflow: hidden; background: var(--gms-navy); min-height: 480px; }
.gms-hero__frame img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.08); mix-blend-mode: luminosity; opacity: .85; }
.gms-hero__arrow { position: absolute; right: 28px; top: 28px; }
.gms-hero__status { position: absolute; left: 0; right: 0; bottom: 0; background: var(--gms-crimson); color: #fff; padding: 14px 24px; display: flex; justify-content: space-between; align-items: center; }
.gms-hero__status-l { font-family: var(--gms-mono); font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.gms-hero__status-r { font-size: 15px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.gms-hero__quote { border-top: 1px solid var(--gms-line); background: #fff; padding: 18px 24px; display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.gms-hero__quote span { font-family: var(--gms-mono); font-size: 12px; color: var(--gms-slate); }
.gms-hero__quote .who { font-weight: 600; color: var(--gms-navy); flex: none; }

/* =====================================================================
   STATS band
   ===================================================================== */
.gms-stats { background: #fff; border-bottom: 1px solid var(--gms-line); }
.gms-stats__inner { max-width: var(--gms-maxw); margin: 0 auto; padding: 0 36px; display: grid; grid-template-columns: repeat(4, 1fr); }
.gms-stat { padding: 44px 32px; border-right: 1px solid var(--gms-line); }
.gms-stat:first-child { padding-left: 0; }
.gms-stat:last-child { padding-right: 0; border-right: none; }
.gms-stat__num { font-size: 64px; font-weight: 900; letter-spacing: -0.03em; color: var(--gms-navy); line-height: 1; }
.gms-stat__num .accent { color: var(--gms-crimson); }
.gms-stat__num--accent { color: var(--gms-crimson); }
.gms-stat__label { font-family: var(--gms-mono); font-size: 12px; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; color: var(--gms-slate); margin-top: 10px; }

/* =====================================================================
   QUIZ (route finder)
   ===================================================================== */
.gms-quiz { background: var(--gms-navy); position: relative; overflow: hidden; }
.gms-quiz__bg { position: absolute; right: -160px; bottom: -160px; opacity: .05; }
.gms-quiz__inner { max-width: var(--gms-maxw); margin: 0 auto; padding: 92px 36px; display: grid; grid-template-columns: 0.85fr 1.15fr; gap: 72px; align-items: start; position: relative; }
.gms-quiz__intro h2 { font-weight: 800; font-size: 46px; line-height: 1.02; color: #fff; margin: 0 0 20px; letter-spacing: -0.02em; text-transform: uppercase; }
.gms-quiz__intro p { font-size: 16px; line-height: 1.65; color: rgba(255,255,255,.66); margin: 0 0 28px; max-width: 42ch; }
.gms-quiz__hint { font-family: var(--gms-mono); font-size: 12.5px; color: rgba(255,255,255,.5); }
.gms-quiz__panel { background: #fff; min-height: 380px; display: flex; flex-direction: column; }
.gms-quiz__bar { display: flex; align-items: center; justify-content: space-between; padding: 18px 28px; border-bottom: 1px solid var(--gms-line); }
.gms-quiz__step { font-family: var(--gms-mono); font-size: 12.5px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--gms-crimson); }
.gms-quiz__dots { display: flex; gap: 5px; }
.gms-quiz__dot { width: 10px; height: 10px; display: inline-block; background: var(--gms-line); transition: background .2s; }
.gms-quiz__dot.on { background: var(--gms-crimson); }
.gms-quiz__body { padding: 26px 28px 30px; display: flex; flex-direction: column; flex: 1; }
.gms-quiz__q { font-size: 22px; font-weight: 800; color: var(--gms-navy); margin: 0 0 18px; letter-spacing: -0.01em; }
.gms-quiz__opts { display: grid; gap: 0; border: 1px solid var(--gms-line); border-bottom: none; }
.gms-quiz__opt { display: flex; align-items: center; gap: 16px; text-align: left; background: #fff; border: none; border-bottom: 1px solid var(--gms-line); padding: 14px 18px; cursor: pointer; transition: background .12s; width: 100%; }
.gms-quiz__opt:hover { background: var(--gms-wash-2); }
.gms-quiz__opt-idx { font-family: var(--gms-mono); font-size: 12px; font-weight: 600; color: var(--gms-crimson); flex: none; }
.gms-quiz__opt-body { flex: 1; }
.gms-quiz__opt-label { display: block; font-size: 15.5px; font-weight: 700; color: var(--gms-navy); }
.gms-quiz__opt-sub { display: block; font-size: 13px; color: var(--gms-slate-2); margin-top: 2px; }
.gms-quiz__opt-arrow { color: var(--gms-crimson); font-weight: 800; flex: none; }
.gms-quiz__restart { margin-top: 16px; align-self: flex-start; background: none; border: none; color: var(--gms-slate-2); font-family: var(--gms-mono); font-size: 12.5px; font-weight: 600; cursor: pointer; padding: 0; letter-spacing: .05em; }
.gms-quiz__restart:hover { color: var(--gms-crimson); }
.gms-quiz__result { border: 2px solid var(--gms-navy); margin-bottom: 20px; }
.gms-quiz__result-top { background: var(--gms-navy); color: #fff; padding: 10px 18px; display: flex; justify-content: space-between; align-items: center; }
.gms-quiz__result-top span { font-family: var(--gms-mono); font-size: 11.5px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.gms-quiz__result-top .match { color: var(--gms-pink); font-weight: 500; }
.gms-quiz__result-body { padding: 20px 18px; }
.gms-quiz__result-name { font-size: 24px; font-weight: 800; color: var(--gms-navy); letter-spacing: -0.01em; margin-bottom: 8px; text-transform: uppercase; }
.gms-quiz__result-why { font-size: 14px; line-height: 1.6; color: var(--gms-slate); margin: 0 0 16px; }
.gms-quiz__result-grid { display: flex; gap: 0; border: 1px solid var(--gms-line); }
.gms-quiz__result-grid span { flex: 1; padding: 10px 14px; font-family: var(--gms-mono); font-size: 12px; color: var(--gms-slate); }
.gms-quiz__result-grid span:first-child { border-right: 1px solid var(--gms-line); }
.gms-quiz__result-grid strong { color: var(--gms-navy); display: block; font-size: 14px; margin-top: 2px; }
.gms-quiz__result-actions { display: flex; align-items: center; gap: 14px; }
.gms-quiz__hidden { display: none; }

/* =====================================================================
   SERVICES grid
   ===================================================================== */
.gms-services { background: #fff; }
.gms-services__inner { max-width: var(--gms-maxw); margin: 0 auto; padding: 92px 36px; }
.gms-services__grid { display: grid; grid-template-columns: repeat(4, 1fr); border-left: 1px solid var(--gms-line); margin-top: 0; }
.gms-svc { display: block; text-decoration: none; border-right: 1px solid var(--gms-line); border-bottom: 1px solid var(--gms-line); background: #fff; transition: background .15s; cursor: pointer; }
.gms-svc:hover { background: var(--gms-wash-2); }
.gms-svc__img { height: 128px; overflow: hidden; background: var(--gms-navy); }
.gms-svc__img img { width: 100%; height: 100%; object-fit: cover; display: block; filter: grayscale(1) contrast(1.05); mix-blend-mode: luminosity; opacity: .8; }
.gms-svc__body { padding: 18px 20px 22px; }
.gms-svc__idx { font-family: var(--gms-mono); font-size: 11.5px; font-weight: 600; color: var(--gms-crimson); margin-bottom: 8px; }
.gms-svc__name { font-size: 16px; font-weight: 800; color: var(--gms-navy); letter-spacing: .01em; text-transform: uppercase; margin-bottom: 7px; }
.gms-svc__desc { font-size: 13px; line-height: 1.55; color: var(--gms-slate-2); }

/* =====================================================================
   PROCESS timeline
   ===================================================================== */
.gms-process { background: var(--gms-wash); border-top: 1px solid var(--gms-line); border-bottom: 1px solid var(--gms-line); }
.gms-process__inner { max-width: var(--gms-maxw); margin: 0 auto; padding: 92px 36px; }
.gms-process__rail { position: relative; margin: 48px 0 40px; }
.gms-process__line { position: absolute; left: 0; right: 0; top: 26px; height: 2px; background: var(--gms-line-2); }
.gms-process__fill { position: absolute; left: 0; top: 26px; height: 2px; background: var(--gms-crimson); transition: width .45s cubic-bezier(.2,.7,.2,1); width: 0; }
.gms-process__steps { position: relative; display: grid; grid-template-columns: repeat(5, 1fr); }
.gms-process__step { background: none; border: none; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 14px; padding: 0; }
.gms-process__node { font-family: var(--gms-mono); width: 52px; height: 52px; display: grid; place-items: center; font-size: 14px; font-weight: 600; transition: all .2s; background: #fff; color: var(--gms-slate-2); border: 2px solid var(--gms-line-2); }
.gms-process__step.is-active .gms-process__node { background: var(--gms-crimson); color: #fff; box-shadow: 4px 4px 0 var(--gms-navy); border-color: var(--gms-crimson); }
.gms-process__step.is-done .gms-process__node { background: var(--gms-navy); color: #fff; border-color: var(--gms-navy); }
.gms-process__label { font-size: 13px; font-weight: 800; max-width: 130px; line-height: 1.3; text-transform: uppercase; letter-spacing: .02em; transition: color .2s; color: var(--gms-mute); }
.gms-process__step.is-active .gms-process__label { color: var(--gms-navy); }
.gms-process__detail { max-width: 820px; margin: 0 auto; background: #fff; border: 2px solid var(--gms-navy); }
.gms-process__detail-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 26px; border-bottom: 1px solid var(--gms-line); }
.gms-process__detail-head h3 { font-size: 21px; font-weight: 800; color: var(--gms-navy); margin: 0; text-transform: uppercase; letter-spacing: .01em; }
.gms-process__dur { font-family: var(--gms-mono); font-size: 12px; font-weight: 600; color: var(--gms-crimson); flex: none; }
.gms-process__desc { font-size: 15px; line-height: 1.65; color: var(--gms-slate); margin: 0; padding: 20px 26px 18px; }
.gms-process__cols { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--gms-line); }
.gms-process__cols > div { padding: 16px 26px; }
.gms-process__cols > div:first-child { border-right: 1px solid var(--gms-line); }
.gms-process__cap { font-family: var(--gms-mono); font-size: 11px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; margin-bottom: 6px; }
.gms-process__cap--you { color: var(--gms-crimson); }
.gms-process__cap--we { color: var(--gms-navy); }
.gms-process__cols p, .gms-process__cols .val { font-size: 13.5px; line-height: 1.55; color: var(--gms-slate); margin: 0; }

/* =====================================================================
   CALCULATOR
   ===================================================================== */
.gms-calc { background: #fff; }
.gms-calc__inner { max-width: var(--gms-maxw); margin: 0 auto; padding: 92px 36px; }
.gms-calc__grid { display: grid; grid-template-columns: 1.15fr 0.85fr; border: 2px solid var(--gms-navy); border-top: none; }
.gms-calc__controls { padding: 36px 40px; border-right: 2px solid var(--gms-navy); }
.gms-calc__caplabel { font-family: var(--gms-mono); font-size: 11.5px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--gms-slate); margin-bottom: 12px; }
.gms-calc__chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 30px; }
.gms-chip { border-radius: 0; padding: 10px 16px; font-size: 13px; font-weight: 700; letter-spacing: .02em; cursor: pointer; transition: all .12s; border: 2px solid var(--gms-line-2); background: #fff; color: var(--gms-navy); }
.gms-chip:hover { border-color: var(--gms-navy); }
.gms-chip.is-on { border-color: var(--gms-navy); background: var(--gms-navy); color: #fff; }
.gms-calc__stepper { display: inline-flex; align-items: center; border: 2px solid var(--gms-navy); vertical-align: middle; }
.gms-calc__stepper button { width: 46px; height: 46px; background: #fff; border: none; font-size: 20px; font-weight: 800; color: var(--gms-navy); cursor: pointer; }
.gms-calc__stepper button:hover { background: var(--gms-wash); }
.gms-calc__count { width: 64px; text-align: center; font-family: var(--gms-mono); font-size: 18px; font-weight: 600; color: var(--gms-navy); border-left: 2px solid var(--gms-navy); border-right: 2px solid var(--gms-navy); line-height: 46px; height: 46px; display: inline-block; }
.gms-calc__hint { font-family: var(--gms-mono); font-size: 12px; color: var(--gms-slate-2); margin-left: 14px; }
.gms-calc__out { background: var(--gms-navy); color: #fff; padding: 36px 40px; display: flex; flex-direction: column; }
.gms-calc__out-label { font-family: var(--gms-mono); font-size: 11.5px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--gms-pink); margin-bottom: 20px; }
.gms-calc__row { display: flex; justify-content: space-between; padding: 12px 0; border-bottom: 1px solid rgba(255,255,255,.14); font-size: 14px; }
.gms-calc__row span:first-child { color: rgba(255,255,255,.65); }
.gms-calc__row .v { font-family: var(--gms-mono); font-weight: 600; }
.gms-calc__total { display: flex; justify-content: space-between; align-items: baseline; padding: 20px 0 4px; }
.gms-calc__total-l { font-family: var(--gms-mono); font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.65); }
.gms-calc__total-v { font-size: 44px; font-weight: 900; letter-spacing: -0.02em; }
.gms-calc__time { font-family: var(--gms-mono); font-size: 12px; color: var(--gms-pink); margin: 4px 0 22px; }
.gms-calc__out .gms-btn { margin-top: auto; background: var(--gms-crimson); color: #fff; border-color: var(--gms-crimson); padding: 15px 24px; font-size: 13px; }
.gms-calc__out .gms-btn:hover { background: #fff; color: var(--gms-navy); border-color: #fff; }
.gms-calc__fine { font-size: 11px; color: rgba(255,255,255,.4); margin-top: 12px; line-height: 1.5; }

/* =====================================================================
   TESTIMONIALS
   ===================================================================== */
.gms-tm { background: var(--gms-wash); border-top: 1px solid var(--gms-line); }
.gms-tm__inner { max-width: var(--gms-maxw); margin: 0 auto; padding: 92px 36px; }
.gms-tm__stage { display: grid; grid-template-columns: 1fr auto; gap: 48px; align-items: end; }
.gms-tm__quote { font-size: 32px; line-height: 1.32; font-weight: 600; letter-spacing: -0.015em; color: var(--gms-navy); margin: 0 0 28px; min-height: 130px; text-wrap: balance; }
.gms-tm__who { display: flex; align-items: center; gap: 16px; }
.gms-tm__avatar { width: 48px; height: 48px; object-fit: cover; border: 2px solid var(--gms-navy); display: block; }
.gms-tm__name { font-size: 15px; font-weight: 800; color: var(--gms-navy); text-transform: uppercase; letter-spacing: .02em; }
.gms-tm__tag { font-family: var(--gms-mono); font-size: 12px; color: var(--gms-crimson); margin-top: 2px; }
.gms-tm__nav { display: flex; gap: 0; }
.gms-tm__nav button { width: 56px; height: 56px; border: 2px solid var(--gms-navy); background: #fff; cursor: pointer; font-size: 18px; color: var(--gms-navy); transition: background .15s, color .15s; }
.gms-tm__nav button:last-child { border-left: none; }
.gms-tm__nav button:hover { background: var(--gms-navy); color: #fff; }

/* =====================================================================
   PROMISES
   ===================================================================== */
.gms-promises { background: #fff; border-top: 1px solid var(--gms-line); }
.gms-promises__inner { max-width: var(--gms-maxw); margin: 0 auto; padding: 92px 36px; }
.gms-promises__grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.gms-promise { padding: 34px 30px 40px; border-right: 1px solid var(--gms-line); }
.gms-promise:first-child { padding-left: 0; }
.gms-promise:last-child { padding-right: 0; border-right: none; }
.gms-promise__idx { font-family: var(--gms-mono); font-size: 12px; font-weight: 600; color: var(--gms-crimson); margin-bottom: 16px; }
.gms-promise__title { font-size: 17px; font-weight: 800; color: var(--gms-navy); margin: 0 0 10px; text-transform: uppercase; letter-spacing: .02em; }
.gms-promise__text { font-size: 14px; line-height: 1.65; color: var(--gms-slate); margin: 0; }
.gms-verify { display: flex; align-items: stretch; gap: 0; border: 2px solid var(--gms-navy); margin-top: 8px; flex-wrap: wrap; }
.gms-verify__tag { background: var(--gms-navy); color: #fff; padding: 16px 22px; font-family: var(--gms-mono); font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; flex: none; display: flex; align-items: center; }
.gms-verify__item { padding: 16px 22px; font-family: var(--gms-mono); font-size: 13px; color: var(--gms-slate); border-right: 1px solid var(--gms-line); flex: 1; display: flex; align-items: center; }
.gms-verify__item:last-child { border-right: none; }
.gms-verify__item strong { color: var(--gms-navy); }

/* =====================================================================
   KNOWLEDGE (home preview list + archive)
   ===================================================================== */
.gms-know { background: #fff; }
.gms-know__inner { max-width: var(--gms-maxw); margin: 0 auto; padding: 0 36px 92px; }
.gms-know__row { display: flex; align-items: center; gap: 24px; text-decoration: none; border-bottom: 1px solid var(--gms-line); padding: 18px 0; transition: background .12s; }
.gms-know__row:hover { background: var(--gms-wash-2); }
.gms-know__idx { font-family: var(--gms-mono); font-size: 12px; font-weight: 600; color: var(--gms-crimson); flex: none; width: 32px; }
.gms-know__title { font-size: 17px; font-weight: 700; color: var(--gms-navy); flex: 1; letter-spacing: -0.005em; }
.gms-know__cat { font-family: var(--gms-mono); font-size: 11px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--gms-slate); border: 1px solid var(--gms-line-2); padding: 5px 10px; flex: none; }
.gms-know__arrow { color: var(--gms-crimson); font-weight: 800; flex: none; }

/* Knowledge archive (full page) */
.gms-karch { background: #fff; }
.gms-karch__inner { max-width: var(--gms-maxw); margin: 0 auto; padding: 64px 36px 92px; }
.gms-karch__head { border-bottom: 2px solid var(--gms-navy); padding-bottom: 28px; margin-bottom: 28px; }
.gms-karch__title { font-weight: 800; font-size: 52px; line-height: 1; color: var(--gms-navy); margin: 0 0 16px; letter-spacing: -0.02em; text-transform: uppercase; max-width: 20ch; }
.gms-karch__lede { font-size: 15.5px; line-height: 1.6; color: var(--gms-slate); margin: 0; }
.gms-karch__chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 28px; }
.gms-karch__list { display: grid; gap: 0; border-top: 1px solid var(--gms-line); }
.gms-kcard { display: grid; grid-template-columns: 200px 44px 1fr auto; gap: 24px; align-items: center; text-decoration: none; border-bottom: 1px solid var(--gms-line); padding: 22px 0; transition: background .12s; }
.gms-kcard.is-hidden { display: none; }
.gms-kcard:hover { background: var(--gms-wash-2); }
.gms-kcard__thumb { height: 110px; overflow: hidden; background: var(--gms-navy); }
.gms-kcard__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; filter: grayscale(1) contrast(1.05); mix-blend-mode: luminosity; opacity: .8; }
.gms-kcard__idx { font-family: var(--gms-mono); font-size: 12px; font-weight: 600; color: var(--gms-crimson); }
.gms-kcard__title { display: block; font-size: 19px; font-weight: 800; line-height: 1.3; color: var(--gms-navy); letter-spacing: -0.005em; margin-bottom: 6px; }
.gms-kcard__desc { display: block; font-size: 13.5px; line-height: 1.55; color: var(--gms-slate-2); max-width: 70ch; }
.gms-kcard__cat { display: inline-block; margin-top: 10px; font-family: var(--gms-mono); font-size: 11px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--gms-slate); border: 1px solid var(--gms-line-2); padding: 4px 9px; }
.gms-kcard__arrow { color: var(--gms-crimson); font-weight: 800; font-size: 20px; padding-right: 8px; }

/* =====================================================================
   CTA band
   ===================================================================== */
.gms-cta { background: var(--gms-navy); position: relative; overflow: hidden; border-top: 6px solid var(--gms-crimson); }
.gms-cta__bg { position: absolute; right: -100px; top: -120px; opacity: .06; }
.gms-cta__inner { max-width: var(--gms-maxw); margin: 0 auto; padding: 88px 36px; display: flex; align-items: center; justify-content: space-between; gap: 56px; position: relative; }
.gms-cta__title { font-weight: 800; font-size: 52px; line-height: 1; color: #fff; margin: 0; letter-spacing: -0.02em; text-transform: uppercase; max-width: 16ch; }
.gms-cta__actions { display: flex; flex-direction: column; gap: 0; flex: none; }
.gms-cta__actions .gms-btn { padding: 19px 36px; font-size: 14px; }
.gms-cta__actions .gms-btn--crimson:hover { background: #fff; color: var(--gms-navy); border-color: #fff; }

/* =====================================================================
   SERVICE PAGE
   ===================================================================== */
.gms-shero { background: var(--gms-navy); border-bottom: 6px solid var(--gms-crimson); }
.gms-shero__inner { max-width: var(--gms-maxw); margin: 0 auto; padding: 0 36px; display: grid; grid-template-columns: 1.05fr 0.95fr; gap: 0; }
.gms-shero__text { padding: 64px 56px 72px 0; }
.gms-shero__crumb { font-family: var(--gms-mono); font-size: 12px; color: rgba(255,255,255,.5); margin-bottom: 22px; }
.gms-shero__crumb a { color: rgba(255,255,255,.5); text-decoration: none; }
.gms-shero__crumb a:hover { color: #fff; }
.gms-shero__crumb .here { color: var(--gms-pink); }
.gms-shero__title { font-weight: 800; font-size: 54px; line-height: .99; color: #fff; margin: 0 0 22px; letter-spacing: -0.02em; text-transform: uppercase; }
.gms-shero__lede { font-size: 16.5px; line-height: 1.65; color: rgba(255,255,255,.72); margin: 0 0 30px; max-width: 48ch; }
.gms-shero__actions { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.gms-shero__note { font-family: var(--gms-mono); font-size: 12.5px; color: rgba(255,255,255,.6); }
.gms-shero__media { position: relative; overflow: hidden; background: var(--gms-navy); min-height: 420px; border-left: 1px solid rgba(255,255,255,.15); }
.gms-shero__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.08); mix-blend-mode: luminosity; opacity: .85; }
.gms-shero__badge { position: absolute; left: 0; bottom: 0; background: #fff; color: var(--gms-navy); padding: 12px 20px; font-family: var(--gms-mono); font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }

.gms-facts { background: #fff; border-bottom: 1px solid var(--gms-line); }
.gms-facts__inner { max-width: var(--gms-maxw); margin: 0 auto; padding: 0 36px; display: grid; grid-template-columns: repeat(4, 1fr); }
.gms-fact { padding: 30px 28px; border-right: 1px solid var(--gms-line); }
.gms-fact:first-child { padding-left: 0; }
.gms-fact:last-child { padding-right: 0; border-right: none; }
.gms-fact__label { font-family: var(--gms-mono); font-size: 11px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--gms-slate-2); margin-bottom: 6px; }
.gms-fact__value { font-size: 24px; font-weight: 900; color: var(--gms-navy); }
.gms-fact__value small { font-family: var(--gms-mono); font-size: 12px; font-weight: 500; color: var(--gms-slate-2); }
.gms-fact__value--accent { color: var(--gms-crimson); }

.gms-elig { background: var(--gms-wash); border-bottom: 1px solid var(--gms-line); }
.gms-elig__inner { max-width: var(--gms-maxw); margin: 0 auto; padding: 84px 36px; display: grid; grid-template-columns: 0.9fr 1.1fr; gap: 56px; align-items: start; }
.gms-elig__intro h2 { font-weight: 800; font-size: 42px; line-height: 1.02; color: var(--gms-navy); margin: 0 0 18px; letter-spacing: -0.02em; text-transform: uppercase; }
.gms-elig__intro p { font-size: 15px; line-height: 1.65; color: var(--gms-slate); margin: 0 0 22px; max-width: 44ch; }
.gms-elig__meter { background: #fff; border: 2px solid var(--gms-navy); }
.gms-elig__meter-top { display: flex; align-items: center; justify-content: space-between; padding: 14px 20px; border-bottom: 1px solid var(--gms-line); }
.gms-elig__meter-label { font-size: 14px; font-weight: 800; color: var(--gms-navy); text-transform: uppercase; letter-spacing: .02em; }
.gms-elig__meter-count { font-family: var(--gms-mono); font-size: 12.5px; font-weight: 600; color: var(--gms-slate-2); }
.gms-elig__meter-body { padding: 18px 20px; }
.gms-elig__track { height: 10px; background: var(--gms-wash); overflow: hidden; margin-bottom: 12px; }
.gms-elig__fill { height: 100%; transition: width .4s cubic-bezier(.2,.7,.2,1), background .3s; width: 0; background: var(--gms-crimson); }
.gms-elig__msg { font-size: 13.5px; line-height: 1.55; color: var(--gms-slate); margin: 0; }
.gms-elig__list { display: grid; gap: 0; border: 1px solid var(--gms-line); border-bottom: none; background: #fff; }
.gms-elig__item { display: flex; gap: 14px; align-items: flex-start; text-align: left; background: #fff; border: none; border-bottom: 1px solid var(--gms-line); padding: 16px 18px; cursor: pointer; transition: background .15s; width: 100%; }
.gms-elig__item.is-on { background: #F4FBF7; }
.gms-elig__box { flex: none; width: 24px; height: 24px; display: grid; place-items: center; margin-top: 1px; transition: all .15s; background: #fff; border: 2px solid var(--gms-line-2); }
.gms-elig__item.is-on .gms-elig__box { background: var(--gms-green); border-color: var(--gms-green); }
.gms-elig__box svg { opacity: 0; }
.gms-elig__item.is-on .gms-elig__box svg { opacity: 1; }
.gms-elig__label { display: block; font-size: 15px; font-weight: 700; color: var(--gms-navy); }
.gms-elig__sub { display: block; font-size: 13px; color: var(--gms-slate-2); margin-top: 3px; line-height: 1.5; }

/* Accordions (doc pack + FAQ) */
.gms-acc { background: #fff; }
.gms-acc__inner { max-width: var(--gms-maxw); margin: 0 auto; padding: 84px 36px; display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: start; }
.gms-acc__col h2 { font-weight: 800; font-size: 34px; line-height: 1.05; color: var(--gms-navy); margin: 0 0 24px; letter-spacing: -0.015em; text-transform: uppercase; }
.gms-acc__list { display: grid; gap: 0; border: 1px solid var(--gms-line); border-bottom: none; }
.gms-acc__item { border-bottom: 1px solid var(--gms-line); }
.gms-acc__q { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 12px; background: #fff; border: none; padding: 16px 20px; cursor: pointer; text-align: left; }
.gms-acc__q:hover { background: var(--gms-wash-2); }
.gms-acc__q-title { font-size: 15px; font-weight: 800; color: var(--gms-navy); text-transform: uppercase; letter-spacing: .01em; }
.gms-acc__q--faq .gms-acc__q-title { font-weight: 700; text-transform: none; }
.gms-acc__chev { font-size: 14px; color: var(--gms-slate-2); transition: transform .2s; }
.gms-acc__item.is-open .gms-acc__chev { transform: rotate(180deg); }
.gms-acc__panel { display: none; }
.gms-acc__item.is-open .gms-acc__panel { display: block; }
.gms-acc__panel ul { margin: 0; padding: 2px 20px 18px 40px; display: grid; gap: 7px; }
.gms-acc__panel li { font-size: 14px; line-height: 1.55; color: var(--gms-slate); }
.gms-acc__panel p { margin: 0; padding: 2px 20px 18px; font-size: 14px; line-height: 1.65; color: var(--gms-slate); }

.gms-strip { background: #fff; padding-bottom: 84px; }
.gms-strip__inner { max-width: var(--gms-maxw); margin: 0 auto; padding: 0 36px; }
.gms-strip__box { border: 2px solid var(--gms-navy); display: flex; align-items: center; justify-content: space-between; gap: 40px; padding: 38px 44px; }
.gms-strip__title { font-weight: 800; font-size: 28px; color: var(--gms-navy); margin: 0 0 8px; letter-spacing: -0.01em; text-transform: uppercase; }
.gms-strip__text { font-size: 14.5px; line-height: 1.6; color: var(--gms-slate); margin: 0; max-width: 62ch; }
.gms-strip__box .gms-btn { flex: none; }

/* =====================================================================
   BOOKING
   ===================================================================== */
.gms-booking { background: var(--gms-wash); min-height: 70vh; }
.gms-booking__inner { max-width: 1020px; margin: 0 auto; padding: 56px 36px 92px; }
.gms-booking__head { text-align: center; margin-bottom: 36px; }
.gms-booking__title { font-weight: 800; font-size: 48px; line-height: 1; color: var(--gms-navy); margin: 0 0 14px; letter-spacing: -0.02em; text-transform: uppercase; }
.gms-booking__sub { font-size: 15.5px; line-height: 1.6; color: var(--gms-slate); margin: 0; }
.gms-booking__steps { display: flex; justify-content: center; gap: 0; margin-bottom: 32px; flex-wrap: wrap; }
.gms-booking__stepitem { display: flex; align-items: center; gap: 10px; }
.gms-booking__sq { font-family: var(--gms-mono); width: 34px; height: 34px; display: grid; place-items: center; font-size: 14px; font-weight: 600; flex: none; background: #fff; color: var(--gms-slate-2); border: 2px solid var(--gms-line-2); }
.gms-booking__stepitem.is-active .gms-booking__sq { background: var(--gms-crimson); color: #fff; border-color: var(--gms-crimson); }
.gms-booking__stepitem.is-done .gms-booking__sq { background: var(--gms-navy); color: #fff; border-color: var(--gms-navy); }
.gms-booking__steplabel { font-size: 13px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; color: var(--gms-mute); }
.gms-booking__stepitem.is-active .gms-booking__steplabel { color: var(--gms-navy); }
.gms-booking__sep { width: 70px; height: 2px; background: var(--gms-line-2); margin: 16px 14px 0; }
.gms-booking__card { background: #fff; border: 2px solid var(--gms-navy); padding: 38px 42px; }
.gms-booking__caplabel { font-family: var(--gms-mono); font-size: 11.5px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--gms-slate); margin-bottom: 14px; }
.gms-booking__chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 32px; }
.gms-booking__modes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; border: 1px solid var(--gms-line); margin-bottom: 32px; }
.gms-booking__mode { text-align: left; padding: 18px; cursor: pointer; transition: all .12s; border: none; border-right: 1px solid var(--gms-line); background: #fff; }
.gms-booking__mode:last-child { border-right: none; }
.gms-booking__mode.is-on { background: var(--gms-wash); box-shadow: inset 0 -3px 0 var(--gms-crimson); }
.gms-booking__mode-label { display: block; font-size: 14.5px; font-weight: 800; color: var(--gms-navy); margin-bottom: 4px; text-transform: uppercase; letter-spacing: .02em; }
.gms-booking__mode-sub { display: block; font-size: 12.5px; color: var(--gms-slate-2); line-height: 1.45; }
.gms-booking__actions { display: flex; justify-content: space-between; }
.gms-booking__actions--end { justify-content: flex-end; }
.gms-booking__days { display: grid; grid-template-columns: repeat(9, 1fr); gap: 6px; margin-bottom: 30px; }
.gms-booking__day { border-radius: 0; padding: 12px 6px; cursor: pointer; text-align: center; transition: all .12s; border: 2px solid var(--gms-line); background: #fff; color: var(--gms-navy); }
.gms-booking__day.is-on { border-color: var(--gms-navy); background: var(--gms-navy); color: #fff; }
.gms-booking__day-dow { display: block; font-family: var(--gms-mono); font-size: 10.5px; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; opacity: .7; }
.gms-booking__day-num { display: block; font-size: 19px; font-weight: 800; margin-top: 3px; }
.gms-booking__day-mon { display: block; font-family: var(--gms-mono); font-size: 10px; font-weight: 500; margin-top: 2px; opacity: .7; }
.gms-booking__slots { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 10px; }
.gms-slot { font-family: var(--gms-mono); border-radius: 0; padding: 11px 20px; font-size: 14px; font-weight: 600; cursor: pointer; transition: all .12s; border: 2px solid var(--gms-line-2); background: #fff; color: var(--gms-navy); }
.gms-slot.is-on { border-color: var(--gms-crimson); background: var(--gms-crimson); color: #fff; }
.gms-booking__minihint { font-family: var(--gms-mono); font-size: 11.5px; color: var(--gms-mute); margin-bottom: 28px; }
.gms-booking__form { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 36px; }
.gms-booking__fields .row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 10px; }
.gms-input { border: 2px solid var(--gms-line-2); border-radius: 0; padding: 13px 15px; font-size: 14.5px; color: var(--gms-navy); outline: none; background: #fff; width: 100%; box-sizing: border-box; margin-bottom: 10px; font-family: var(--gms-sans); }
.gms-booking__fields .row2 .gms-input { margin-bottom: 0; }
.gms-input:focus { border-color: var(--gms-navy); }
textarea.gms-input { resize: vertical; }
.gms-booking__confid { font-family: var(--gms-mono); display: flex; align-items: center; gap: 8px; margin-top: 14px; font-size: 11.5px; color: var(--gms-slate-2); line-height: 1.5; }
.gms-booking__summary { background: var(--gms-wash); border: 1px solid var(--gms-line); padding: 22px 24px; height: fit-content; }
.gms-booking__summary-h { font-family: var(--gms-mono); font-size: 11px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--gms-slate-2); margin-bottom: 14px; }
.gms-booking__summary dl { display: grid; gap: 11px; font-size: 14px; margin: 0; }
.gms-booking__summary dt { font-family: var(--gms-mono); color: var(--gms-mute); font-size: 11px; letter-spacing: .06em; text-transform: uppercase; margin-bottom: 2px; }
.gms-booking__summary dd { font-weight: 700; color: var(--gms-navy); margin: 0; }
.gms-booking__summary .cost { border-top: 1px solid var(--gms-line); padding-top: 11px; display: flex; justify-content: space-between; align-items: baseline; }
.gms-booking__summary .cost .free { font-weight: 800; color: var(--gms-green); font-size: 16px; }
.gms-booking__done { max-width: 640px; margin: 24px auto 0; background: #fff; border: 2px solid var(--gms-navy); padding: 48px 52px; text-align: center; }
.gms-booking__check { width: 72px; height: 72px; margin: 0 auto 22px; background: var(--gms-green); display: grid; place-items: center; }
.gms-booking__done h1 { font-weight: 800; font-size: 36px; color: var(--gms-navy); margin: 0 0 12px; letter-spacing: -0.015em; text-transform: uppercase; }
.gms-booking__ref { font-family: var(--gms-mono); font-size: 13px; line-height: 1.6; color: var(--gms-slate-2); margin: 0 0 26px; }
.gms-booking__ref strong { color: var(--gms-navy); }
.gms-booking__nextbox { background: var(--gms-wash); border: 1px solid var(--gms-line); padding: 22px 26px; text-align: left; margin-bottom: 26px; }
.gms-booking__next-h { font-family: var(--gms-mono); font-size: 11px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--gms-slate-2); margin-bottom: 12px; }
.gms-booking__next-list { display: grid; gap: 10px; font-size: 14px; line-height: 1.55; color: var(--gms-slate); }
.gms-booking__next-list > div { display: flex; gap: 10px; }
.gms-booking__next-list .n { font-family: var(--gms-mono); color: var(--gms-crimson); font-weight: 600; flex: none; }
.gms-booking__step.is-hidden { display: none; }

/* =====================================================================
   FOOTER
   ===================================================================== */
.gms-footer { background: var(--gms-navy-deep); color: rgba(255,255,255,.7); }
.gms-footer__inner { max-width: var(--gms-maxw); margin: 0 auto; padding: 0 36px; }
.gms-footer__top { display: flex; align-items: center; justify-content: space-between; gap: 32px; padding: 34px 0; border-bottom: 1px solid rgba(255,255,255,.12); }
.gms-footer__top .gms-logo img { height: 42px; }
.gms-footer__start { font-weight: 800; font-size: 22px; letter-spacing: .02em; text-transform: uppercase; color: #fff; text-decoration: none; display: flex; align-items: center; gap: 14px; }
.gms-footer__start span { color: var(--gms-crimson); }
.gms-footer__start:hover { color: var(--gms-pink); }
.gms-footer__cols { display: grid; grid-template-columns: 1.3fr 0.8fr 1fr 1fr; gap: 48px; padding: 44px 0; }
.gms-footer__about p { font-size: 13.5px; line-height: 1.7; margin: 0 0 18px; max-width: 40ch; }
.gms-footer__badge { font-family: var(--gms-mono); display: inline-block; border: 1px solid rgba(255,255,255,.25); padding: 10px 14px; font-size: 11.5px; font-weight: 500; letter-spacing: .04em; color: #fff; line-height: 1.6; }
.gms-footer__heading { font-family: var(--gms-mono); font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: #fff; margin-bottom: 16px; }
.gms-footer__links { display: grid; gap: 9px; font-size: 13.5px; list-style: none; margin: 0; padding: 0; }
.gms-footer__links a { color: rgba(255,255,255,.7); text-decoration: none; }
.gms-footer__links a:hover { color: #fff; }
.gms-footer__contact { display: grid; gap: 9px; font-size: 13.5px; line-height: 1.6; }
.gms-footer__contact a { color: rgba(255,255,255,.7); text-decoration: none; }
.gms-footer__contact a:hover { color: #fff; }
.gms-footer__phone { font-family: var(--gms-mono); color: #fff !important; font-weight: 600; }
.gms-footer__bar { padding: 18px 0 22px; border-top: 1px solid rgba(255,255,255,.12); display: flex; align-items: center; justify-content: space-between; font-family: var(--gms-mono); font-size: 11.5px; flex-wrap: wrap; gap: 12px; }
.gms-footer__social { display: flex; gap: 22px; }
.gms-footer__social a { color: rgba(255,255,255,.7); text-decoration: none; }
.gms-footer__social a:hover { color: #fff; }

/* =====================================================================
   WhatsApp float + toast
   ===================================================================== */
.gms-whatsapp { position: fixed; right: 26px; bottom: 26px; z-index: 80; width: 56px; height: 56px; background: var(--gms-green); display: grid; place-items: center; box-shadow: 0 12px 30px rgba(14,27,61,.35); transition: transform .15s; }
.gms-whatsapp:hover { transform: translateY(-3px); }
.gms-toast { position: fixed; left: 50%; bottom: 32px; transform: translateX(-50%) translateY(20px); z-index: 90; background: var(--gms-navy); color: #fff; border: 1px solid rgba(255,255,255,.2); padding: 14px 22px; font-family: var(--gms-mono); font-size: 12.5px; font-weight: 500; box-shadow: 0 16px 40px rgba(0,0,0,.35); max-width: 560px; text-align: center; opacity: 0; pointer-events: none; transition: opacity .25s ease, transform .25s ease; }
.gms-toast.is-show { opacity: 1; transform: translateX(-50%) translateY(0); }

/* =====================================================================
   Generic archive / single / 404 (WordPress fallbacks)
   ===================================================================== */
.gms-archive, .gms-single, .gms-404, .gms-comments { padding-top: 64px; padding-bottom: 64px; }
.gms-archive__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; margin-top: 32px; }
.gms-archive__card { border: 1px solid var(--gms-line); }
.gms-archive__thumb img { display: block; width: 100%; height: auto; }
.gms-archive__body { padding: 20px; }
.gms-archive__cardtitle { font-size: 20px; font-weight: 800; margin: 0 0 10px; text-transform: uppercase; letter-spacing: -0.01em; }
.gms-archive__cardtitle a { color: var(--gms-navy); text-decoration: none; }
.gms-archive__more { font-family: var(--gms-mono); font-size: 12px; font-weight: 600; color: var(--gms-crimson); text-decoration: none; }
.gms-single__title { font-weight: 800; font-size: 44px; line-height: 1.02; color: var(--gms-navy); text-transform: uppercase; letter-spacing: -0.02em; margin: 8px 0 24px; }
.gms-single__meta { font-family: var(--gms-mono); font-size: 12px; color: var(--gms-crimson); text-transform: uppercase; letter-spacing: .08em; }
.gms-single__thumb { margin-bottom: 28px; }
.gms-single__body { font-size: 16.5px; line-height: 1.75; color: var(--gms-slate); max-width: 72ch; }
.gms-single__body h2, .gms-single__body h3 { color: var(--gms-navy); }
.gms-404__title { font-weight: 800; font-size: 52px; text-transform: uppercase; color: var(--gms-navy); letter-spacing: -0.02em; margin: 8px 0 16px; }
.gms-404__eyebrow { font-family: var(--gms-mono); color: var(--gms-crimson); text-transform: uppercase; letter-spacing: .12em; font-size: 12.5px; }
.gms-404__actions { display: flex; gap: 14px; margin: 24px 0; flex-wrap: wrap; }
.gms-empty-front { min-height: 60vh; display: grid; place-items: center; padding: 60px 24px; }
.gms-empty-front__inner { text-align: center; max-width: 560px; }
.gms-empty-front h1 { font-weight: 800; text-transform: uppercase; color: var(--gms-navy); font-size: 34px; }

/* =====================================================================
   RESPONSIVE
   ===================================================================== */
@media (max-width: 1080px) {
	.gms-hero__inner { grid-template-columns: 1fr; }
	.gms-hero__text { padding: 56px 0 40px; border-right: none; border-bottom: 1px solid var(--gms-line); }
	.gms-hero__frame { min-height: 360px; }
	.gms-quiz__inner { grid-template-columns: 1fr; gap: 40px; }
	.gms-calc__grid { grid-template-columns: 1fr; }
	.gms-calc__controls { border-right: none; border-bottom: 2px solid var(--gms-navy); }
	.gms-shero__inner { grid-template-columns: 1fr; }
	.gms-shero__text { padding: 48px 0 40px; }
	.gms-shero__media { min-height: 300px; border-left: none; }
	.gms-elig__inner { grid-template-columns: 1fr; gap: 32px; }
	.gms-acc__inner { grid-template-columns: 1fr; gap: 40px; }
	.gms-cta__inner { flex-direction: column; align-items: flex-start; gap: 32px; }
	.gms-tm__quote { font-size: 26px; min-height: 0; }
	.gms-kcard { grid-template-columns: 140px 32px 1fr auto; gap: 16px; }
}

@media (max-width: 900px) {
	.gms-nav { position: absolute; top: 100%; left: 0; right: 0; height: auto; background: #fff; border-bottom: 2px solid var(--gms-navy); box-shadow: 0 20px 40px rgba(14,27,61,.12); display: none; }
	.gms-nav.is-open { display: block; }
	.gms-nav__list { flex-direction: column; height: auto; }
	.gms-nav__list li { display: block; }
	.gms-nav__link, .gms-nav__list a { height: auto; padding: 16px 36px; border-bottom: 1px solid var(--gms-line); }
	.gms-header { position: relative; }
	.gms-header__inner { padding: 0 20px; gap: 12px; }
	.gms-nav-toggle { display: flex; }
	.gms-header__phone { display: none; }
	.gms-header__cta { padding: 11px 14px; font-size: 11.5px; letter-spacing: .04em; }
	.gms-header__actions { gap: 10px; }
	.gms-services__grid { grid-template-columns: repeat(2, 1fr); }
	.gms-promises__grid { grid-template-columns: repeat(2, 1fr); }
	.gms-promise { padding: 28px 24px 32px; border-right: 1px solid var(--gms-line); }
	.gms-promise:nth-child(2n) { border-right: none; padding-right: 0; }
	.gms-promise:nth-child(2n+1) { padding-left: 0; }
	.gms-stats__inner { grid-template-columns: repeat(2, 1fr); }
	.gms-stat { border-bottom: 1px solid var(--gms-line); }
	.gms-facts__inner { grid-template-columns: repeat(2, 1fr); }
	.gms-fact { border-bottom: 1px solid var(--gms-line); }
	.gms-verify { flex-direction: column; }
	.gms-verify__item { border-right: none; border-bottom: 1px solid var(--gms-line); }
	.gms-process__label { font-size: 11px; }
	.gms-booking__days { grid-template-columns: repeat(5, 1fr); }
	.gms-booking__form { grid-template-columns: 1fr; }
	.gms-archive__grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 640px) {
	.gms-container, .gms-hero__inner, .gms-stats__inner, .gms-quiz__inner, .gms-services__inner,
	.gms-process__inner, .gms-calc__inner, .gms-tm__inner, .gms-promises__inner, .gms-know__inner,
	.gms-karch__inner, .gms-cta__inner, .gms-shero__inner, .gms-facts__inner, .gms-elig__inner,
	.gms-acc__inner, .gms-strip__inner, .gms-booking__inner, .gms-footer__inner { padding-left: 20px; padding-right: 20px; }
	.gms-hero__title { font-size: 42px; }
	.gms-shead__title, .gms-quiz__intro h2 { font-size: 30px; }
	.gms-shero__title { font-size: 36px; }
	.gms-booking__title, .gms-karch__title, .gms-cta__title { font-size: 34px; }
	.gms-stat__num { font-size: 46px; }
	.gms-services__grid { grid-template-columns: 1fr; }
	.gms-promises__grid { grid-template-columns: 1fr; }
	.gms-promise { border-right: none !important; padding: 24px 0 !important; border-bottom: 1px solid var(--gms-line); }
	.gms-stats__inner, .gms-facts__inner { grid-template-columns: 1fr; }
	.gms-stat, .gms-fact { border-right: none; padding-left: 0; padding-right: 0; }
	.gms-hero__actions, .gms-cta__actions { flex-direction: column; }
	.gms-hero__actions .gms-btn { border-left: 2px solid var(--gms-navy); }
	.gms-hero__actions .gms-btn + .gms-btn { border-top: none; }
	.gms-process__steps { grid-template-columns: repeat(5, 1fr); gap: 4px; }
	.gms-process__node { width: 40px; height: 40px; font-size: 12px; }
	.gms-process__label { display: none; }
	.gms-process__cols { grid-template-columns: 1fr; }
	.gms-process__cols > div:first-child { border-right: none; border-bottom: 1px solid var(--gms-line); }
	.gms-tm__stage { grid-template-columns: 1fr; gap: 28px; }
	.gms-tm__quote { font-size: 22px; }
	.gms-kcard { grid-template-columns: 1fr; gap: 10px; }
	.gms-kcard__thumb { height: 160px; }
	.gms-kcard__idx { display: none; }
	.gms-strip__box { flex-direction: column; align-items: flex-start; gap: 20px; padding: 28px 24px; }
	.gms-booking__days { grid-template-columns: repeat(3, 1fr); }
	.gms-booking__modes { grid-template-columns: 1fr; }
	.gms-booking__mode { border-right: none; border-bottom: 1px solid var(--gms-line); }
	.gms-booking__card { padding: 24px 20px; }
	.gms-footer__cols { grid-template-columns: 1fr 1fr; gap: 28px; }
	.gms-footer__about { grid-column: 1 / -1; }
	.gms-footer__top { flex-direction: column; align-items: flex-start; gap: 16px; }
	.gms-archive__grid { grid-template-columns: 1fr; }
}

@media (max-width: 500px) {
	/* Keep the phone header compact: drop the button, keep logo + menu toggle. */
	.gms-header__cta { display: none; }
	.gms-logo img { height: 36px; }
}
