/**
 * Custom-Components — structural styles.
 *
 * Layout, resets and fallbacks only. Colors, typography and spacing come from each
 * widget's Style tab (Elementor writes those with higher specificity), so anything
 * below is overridable in the editor.
 */

/* ------------------------------------------------------------------ base */

.gses-section {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: center;
	overflow: hidden;
	box-sizing: border-box;
	font-family: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

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

/*
 * The `hidden` attribute is only `display: none` in the UA stylesheet, so any
 * author rule that sets `display` beats it — our list items set `display: flex`
 * and stayed visible after being hidden. This restores the attribute's meaning
 * everywhere inside our sections.
 */
.gses-section [hidden] {
	display: none !important;
}

.gses-section .gses-container {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: 1200px;
	margin-left: auto;
	margin-right: auto;
}

/* Neutralise theme margins / list styles on our own elements. */
.gses-section .gses-title,
.gses-section .gses-desc,
.gses-section .gses-card__title,
.gses-section .gses-card__desc,
.gses-section .gses-card__list,
.gses-section .gses-card__list li,
.gses-section .gses-hero__trust,
.gses-section .gses-hero__trust-item,
.gses-section .gses-step__title,
.gses-section .gses-step__desc,
.gses-section .gses-hiw__caption-title,
.gses-section .gses-hiw__caption-text,
.gses-section .gses-tst__quote {
	margin: 0;
	padding: 0;
	list-style: none;
}

.gses-section .gses-title,
.gses-section .gses-card__title,
.gses-section .gses-step__title {
	font-family: Literata, Georgia, "Times New Roman", serif;
}

.gses-section img {
	display: block;
	max-width: 100%;
}

/* ------------------------------------------------------------------ rich text */

/*
 * An answer pasted as text can be several paragraphs and a list of steps, so
 * it ships as real markup rather than one paragraph. Themes vary wildly on
 * list defaults, so the bullets and numbers are stated here.
 */
.gses-section .gses-rt > * {
	margin: 0;
	padding: 0;
}

.gses-section .gses-rt > * + * {
	margin-top: 10px;
}

.gses-section .gses-rt ul,
.gses-section .gses-rt ol {
	padding-left: 20px;
}

.gses-section .gses-rt ul {
	list-style: disc outside;
}

.gses-section .gses-rt ol {
	list-style: decimal outside;
}

.gses-section .gses-rt li {
	list-style: inherit;
}

.gses-section .gses-rt li + li {
	margin-top: 4px;
}

/* ------------------------------------------------------------------ icons */

.gses-section .gses-icon {
	display: inline-flex;
	flex-shrink: 0;
	align-items: center;
	justify-content: center;
	font-size: 18px;
	line-height: 1;
}

.gses-section .gses-icon i {
	font-size: inherit;
	line-height: 1;
	color: inherit;
}

.gses-section .gses-icon svg {
	width: 1em;
	height: 1em;
	fill: currentColor;
}

/* ------------------------------------------------------------------ pills / heading block */

.gses-section .gses-pill {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	border-radius: 999px;
}

.gses-section .gses-eyebrow {
	padding: 4px 12px;
	font-size: 11px;
	font-weight: 700;
	line-height: 14px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.gses-section .gses-intro {
	max-width: 672px;
	margin-bottom: 48px;
}

.gses-section .gses-intro .gses-title {
	display: block;
	margin-top: 12px;
}

.gses-section .gses-intro .gses-desc {
	margin-top: 8px;
	margin-left: var(--gses-ml, 0);
	margin-right: var(--gses-mr, auto);
}

/* ------------------------------------------------------------------ buttons */

.gses-section .gses-buttons {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
}

.gses-section .gses-btn,
.gses-section a.gses-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 12px 24px;
	border: 0 solid transparent;
	border-radius: 12px;
	text-decoration: none;
	line-height: 1.35;
	white-space: nowrap;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.gses-section a.gses-btn:hover,
.gses-section a.gses-btn:focus {
	text-decoration: none;
}

.gses-section .gses-btn:focus-visible,
.gses-section .gses-card__link:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 3px;
}

/* ------------------------------------------------------------------ hero */

.gses-section.gses-hero {
	color: #fff;
}

.gses-hero .gses-hero__glow {
	position: absolute;
	z-index: 0;
	border-radius: 50%;
	filter: blur(64px);
	pointer-events: none;
}

.gses-hero .gses-hero__glow--a {
	top: -128px;
	left: -96px;
	width: 384px;
	height: 384px;
}

.gses-hero .gses-hero__glow--b {
	top: 50%;
	right: 40px;
	width: 500px;
	height: 500px;
}

.gses-hero .gses-hero__grid {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 48px;
}

.gses-hero .gses-hero__content {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	flex: 0 1 50%;
	align-items: flex-start;
	gap: 24px;
	min-width: 0;
	max-width: 50%;
}

.gses-hero .gses-hero__buttons,
.gses-hero .gses-hero__trust {
	justify-content: var(--gses-justify, flex-start);
}

.gses-hero .gses-hero__trust {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	padding-top: 16px;
}

.gses-hero .gses-hero__media {
	position: relative;
	flex: 1 1 0%;
	width: 100%;
	min-width: 0;
}

.gses-hero .gses-hero__frame {
	position: relative;
	margin-left: auto;
	margin-right: auto;
}

.gses-hero .gses-hero__backdrop {
	position: absolute;
	inset: -8px;
	border-radius: 16px;
	background: linear-gradient(to top right, var(--gses-backdrop-a, rgba(164, 238, 255, 0.2)), var(--gses-backdrop-b, rgba(123, 247, 231, 0.3)));
	filter: blur(16px);
	transform: rotate(1deg);
	pointer-events: none;
}

.gses-hero .gses-hero__image {
	position: relative;
	overflow: hidden;
	border-radius: 16px;
	background: #fff;
}

.gses-section .gses-hero__image img {
	width: 100%;
	max-width: none;
	height: 500px;
	object-fit: cover;
	object-position: center;
	transition: transform 0.7s ease;
}

.gses-hero .gses-hero__image.is-zoom:hover img {
	transform: scale(1.02);
}

.gses-hero .gses-hero__match {
	position: absolute;
	right: 16px;
	bottom: 16px;
	left: 16px;
	z-index: 2;
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px;
	border-radius: 12px;
	color: #1c1c1a;
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
}

.gses-hero .gses-hero__match-icon {
	display: flex;
	flex-shrink: 0;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
}

.gses-hero .gses-hero__match-text {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.gses-hero .gses-hero__match-title,
.gses-hero .gses-hero__match-desc {
	display: block;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

/* ------------------------------------------------------------------ grids */

.gses-section .gses-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	align-items: stretch;
	gap: 24px;
}

/* ------------------------------------------------------------------ audience cards */

.gses-cards .gses-card {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border-radius: 16px;
	background-color: var(--gses-card-bg, #fff);
	transition: box-shadow 0.3s ease, transform 0.3s ease, border-color 0.3s ease;
}

.gses-cards .gses-card__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	padding: 16px 24px;
	background-color: var(--gses-header-bg, #1a4d5c);
	color: var(--gses-header-text, #fff);
}

.gses-cards .gses-card__label {
	display: flex;
	align-items: center;
	gap: 8px;
	min-width: 0;
}

.gses-cards .gses-card__header-icon {
	color: var(--gses-header-icon, #a4eeff);
}

.gses-cards .gses-card__side-icon {
	color: var(--gses-side-icon, rgba(255, 255, 255, 0.8));
}

.gses-cards .gses-card__body {
	display: flex;
	flex-direction: column;
	flex-grow: 1;
	justify-content: space-between;
	padding: 24px;
}

.gses-cards .gses-card__list {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

/*
 * Bullets carry whole paragraphs, not short phrases, so the tick is centred
 * against the block of text and must not shrink as the text wraps.
 */
.gses-cards .gses-card__list li {
	display: flex;
	align-items: center;
	gap: 10px;
}

.gses-cards .gses-card__list li > span {
	min-width: 0;
}

.gses-cards .gses-card__list .gses-icon {
	flex-shrink: 0;
	color: var(--gses-bullet, #0b6876);
}

/* ---- card as a toggle ---- */

/*
 * Cards that toggle size to their own content. With the grid's default
 * `stretch`, opening one card stretched all three to its height and left the
 * closed ones with a large void above their button.
 */
.gses-section .gses-cards__grid--toggle {
	align-items: start;
}

.gses-cards .gses-card--toggle {
	cursor: pointer;
}

/* The heading row is a real button, stripped back to look like the heading. */
.gses-cards .gses-card__toggle {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
	width: 100%;
	min-width: 0;
	padding: 0;
	border: 0;
	background: none;
	font: inherit;
	color: inherit;
	text-align: left;
	cursor: pointer;
}

/*
 * A flex item defaults to `min-width: auto`, which refuses to shrink below the
 * text's own width — the heading then runs past the card edge and shoves the
 * arrow out of sight. `min-width: 0` lets it wrap; the rest defends against a
 * theme forcing `nowrap` or a single very long word.
 */
.gses-cards .gses-card__toggle .gses-card__title {
	flex: 1 1 auto;
	min-width: 0;
	white-space: normal;
	overflow-wrap: break-word;
	word-break: break-word;
}

.gses-cards .gses-card__chevron {
	position: relative;
	flex: 0 0 auto;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background-color: #f3f0ec;
	transition: transform 0.25s ease;
}

.gses-cards .gses-card__chevron::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 7px;
	height: 7px;
	margin: -5px 0 0 -4px;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(45deg);
	color: #0b6876;
}

.gses-cards .gses-card--toggle.is-open .gses-card__chevron {
	transform: rotate(180deg);
}

.gses-cards .gses-card__panel {
	margin-top: 12px;
}

/* Keeps the button on the card's bottom edge however long the list is. */
.gses-cards .gses-card__footer {
	margin-top: auto;
}

.gses-cards .gses-card__footer {
	padding-top: 16px;
}

/*
 * The card call to action is a button. Its colours come from the per-card
 * custom properties, so each card in the repeater can carry its own pair
 * without a separate stylesheet rule.
 */
.gses-section a.gses-card__link,
.gses-section .gses-card__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 12px 22px;
	border-radius: 10px;
	border: 0 solid var(--gses-link-border, transparent);
	background-color: var(--gses-link-bg, #1a4d5c);
	color: var(--gses-link, #ffffff);
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease,
		box-shadow 0.2s ease, transform 0.2s ease;
}

.gses-section a.gses-card__link:hover,
.gses-section a.gses-card__link:focus {
	background-color: var(--gses-link-hover-bg, #0b6876);
	color: var(--gses-link-hover, #ffffff);
	text-decoration: none;
}

/* Only the icon travels on hover, so the button itself stays put. */
.gses-section .gses-card__link .gses-icon {
	transition: transform 0.2s ease;
}

/* ------------------------------------------------------------------ how it works */

.gses-hiw .gses-hiw__grid {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 48px;
}

.gses-hiw .gses-hiw__steps {
	display: flex;
	flex-direction: column;
	flex: 0 1 58%;
	gap: 32px;
	min-width: 0;
	max-width: 58%;
}

.gses-hiw .gses-hiw__media {
	flex: 1 1 0%;
	width: 100%;
	min-width: 0;
}

.gses-hiw .gses-step {
	display: flex;
	align-items: flex-start;
	gap: 16px;
}

.gses-hiw .gses-step__marker {
	display: flex;
	flex-direction: column;
	flex-shrink: 0;
	align-items: center;
	align-self: stretch;
}

.gses-hiw .gses-step__number {
	display: flex;
	flex-shrink: 0;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background-color: var(--gses-step-bg, #1a4d5c);
	color: var(--gses-step-color, #a4eeff);
	line-height: 1;
}

.gses-hiw .gses-step__line {
	display: block;
	flex-grow: 1;
	width: 2px;
	min-height: 80px;
	margin: 4px 0;
	background-color: rgba(192, 200, 203, 0.6);
}

.gses-hiw .gses-step__body {
	min-width: 0;
	padding-top: 4px;
}

.gses-hiw .gses-hiw__card {
	position: relative;
	overflow: hidden;
	border-radius: 16px;
}

.gses-section .gses-hiw__image img {
	width: 100%;
	max-width: none;
	height: 384px;
	object-fit: cover;
	object-position: center;
}

.gses-hiw .gses-hiw__caption {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding: 16px;
}

.gses-hiw .gses-hiw__caption .gses-icon {
	margin-top: 1px;
}

.gses-hiw .gses-hiw__caption-body {
	min-width: 0;
}

/* ------------------------------------------------------------------ testimonials */

.gses-tst .gses-tst__header {
	display: flex;
	flex-direction: row;
	align-items: flex-end;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 48px;
}

.gses-tst .gses-tst__header .gses-intro {
	margin-bottom: 0;
}

.gses-tst .gses-rating {
	display: inline-flex;
	flex-shrink: 0;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	padding: 8px 16px;
	border-radius: 999px;
}

.gses-tst .gses-tst__card {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	padding: 32px;
	border-radius: 16px;
	transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.gses-tst .gses-stars {
	display: flex;
	align-items: center;
	gap: 6px;
	margin-bottom: 12px;
}

.gses-tst .gses-tst__author {
	display: flex;
	align-items: center;
	gap: 12px;
	padding-top: 12px;
}

.gses-section .gses-tst__avatar {
	flex-shrink: 0;
	width: 48px;
	height: 48px;
	max-width: none;
	border-radius: 50%;
	object-fit: cover;
}

.gses-tst .gses-tst__author-text {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

/* ------------------------------------------------------------------ consultation cta */

.gses-cta .gses-cta__box {
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: space-between;
	gap: 32px;
	padding: 48px;
	border-radius: 16px;
	color: #fff;
}

.gses-cta .gses-cta__content {
	min-width: 0;
	max-width: 672px;
}

.gses-cta .gses-cta__eyebrow {
	display: block;
}

.gses-cta .gses-cta__actions {
	flex-shrink: 0;
}

/* ------------------------------------------------------------------ motion preference */

@media (prefers-reduced-motion: reduce) {
	.gses-section *,
	.gses-section *::before,
	.gses-section *::after {
		transition: none !important;
	}
}

/* ==================================================================
 * Split hero blocks — caregiver (.gses-crg), families (.gses-fam),
 * companies (.gses-cmp). Structure only; the Style tab owns the rest.
 * ================================================================== */

.gses-crg :where(h1, h2, h3, h4, h5, h6, p, ul, ol, li),
.gses-fam :where(h1, h2, h3, h4, h5, h6, p, ul, ol, li),
.gses-cmp :where(h1, h2, h3, h4, h5, h6, p, ul, ol, li) {
	margin: 0;
	padding: 0;
	list-style: none;
}

.gses-crg .gses-title,
.gses-fam .gses-title,
.gses-cmp .gses-title,
.gses-crg .gses-step__title,
.gses-crg .gses-crg__highlight-title,
.gses-crg .gses-overlay__title,
.gses-fam .gses-overlay__title,
.gses-cmp .gses-overlay__title {
	font-family: Literata, Georgia, "Times New Roman", serif;
}

/* ------------------------------------------------------------ split */

.gses-section .gses-split {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 48px;
}

.gses-section .gses-split__content {
	position: relative;
	z-index: 1;
	display: flex;
	flex: 0 1 58%;
	flex-direction: column;
	align-items: flex-start;
	gap: 24px;
	min-width: 0;
	max-width: 58%;
}

.gses-section .gses-split__media {
	position: relative;
	z-index: 1;
	flex: 1 1 0%;
	width: 100%;
	min-width: 0;
}

/* ------------------------------------------------------------ ambient glows */

.gses-section .gses-glow {
	position: absolute;
	z-index: 0;
	border-radius: 50%;
	filter: blur(64px);
	pointer-events: none;
}

.gses-section .gses-glow--a {
	top: -96px;
	left: -80px;
	width: 384px;
	height: 384px;
}

.gses-section .gses-glow--b {
	top: 50%;
	right: 0;
	width: 480px;
	height: 480px;
}

/* ------------------------------------------------------------ shared bits */

.gses-section .gses-dot {
	display: block;
	flex-shrink: 0;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background-color: currentColor;
}

.gses-section .gses-dot--pulse {
	animation: gses-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

@keyframes gses-pulse {
	0%,
	100% {
		opacity: 1;
	}
	50% {
		opacity: 0.35;
	}
}

.gses-section .gses-note {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

.gses-section .gses-trust-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 24px;
}

.gses-section .gses-trust-row__item {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.gses-section .gses-trust-row__sep {
	display: inline-block;
	user-select: none;
}

/* Shared media frame (photo + overlays, optional footer strip). */
.gses-section .gses-frame {
	position: relative;
	overflow: hidden;
	border-radius: 16px;
	background-color: #fff;
}

.gses-section .gses-frame__image {
	position: relative;
	overflow: hidden;
}

.gses-section .gses-frame__image img {
	width: 100%;
	max-width: none;
	height: 500px;
	object-fit: cover;
	object-position: center;
	transition: transform 0.7s ease;
}

.gses-section .gses-frame__image.is-zoom:hover img {
	transform: scale(1.02);
}

.gses-section .gses-frame__scrim {
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	background-image: linear-gradient(to top, var(--gses-scrim, rgba(0, 54, 67, 0.75)), transparent 55%);
}

/* Floating overlay card shared by all three blocks. */
.gses-section .gses-overlay {
	position: absolute;
	z-index: 2;
	right: 16px;
	bottom: 16px;
	left: 16px;
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding: 16px;
	border-radius: 12px;
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
}

.gses-section .gses-overlay__icon {
	display: flex;
	flex-shrink: 0;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
}

.gses-section .gses-overlay__body {
	min-width: 0;
}

.gses-section .gses-decor {
	position: absolute;
	z-index: 0;
	pointer-events: none;
	border-radius: 24px;
}

/* ------------------------------------------------------------ caregiver */

.gses-crg .gses-crg__head {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.gses-crg .gses-crg__steps {
	width: 100%;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 16px;
}

.gses-crg .gses-step {
	display: flex;
	flex-direction: column;
	padding: 16px;
	border-radius: 12px;
	background-color: #fff;
	transition: box-shadow 0.3s ease, transform 0.3s ease;
}

.gses-crg .gses-step__top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	margin-bottom: 12px;
}

.gses-crg .gses-step__badge {
	display: flex;
	flex-shrink: 0;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 8px;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.gses-crg .gses-step__title {
	margin-bottom: 4px;
}

.gses-crg .gses-crg__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 16px;
}

.gses-crg .gses-crg__buttons {
	margin: 0;
}

.gses-crg .gses-crg__verify {
	position: absolute;
	z-index: 2;
	top: 16px;
	left: 16px;
	padding: 6px 14px;
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
}

.gses-crg .gses-crg__metrics {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 16px;
}

.gses-crg .gses-crg__metrics-left {
	display: flex;
	align-items: center;
	gap: 12px;
	min-width: 0;
}

.gses-crg .gses-crg__avatars {
	display: flex;
	flex-shrink: 0;
}

.gses-crg .gses-crg__avatar {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	margin-left: -8px;
	border-radius: 50%;
	font-size: 11px;
	font-weight: 600;
	line-height: 1;
}

.gses-crg .gses-crg__avatar:first-child {
	margin-left: 0;
}

.gses-crg .gses-crg__rating {
	display: inline-flex;
	flex-shrink: 0;
	align-items: center;
	gap: 4px;
}

.gses-crg .gses-crg__highlights {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin-top: 48px;
}

.gses-crg .gses-crg__highlight {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	padding: 24px;
	border-radius: 12px;
}

.gses-crg .gses-crg__highlight-icon {
	display: flex;
	flex-shrink: 0;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
}

.gses-crg .gses-crg__highlight-body {
	min-width: 0;
}

.gses-crg .gses-crg__highlight-title {
	margin-bottom: 4px;
}

.gses-crg .gses-crg__decor {
	right: -24px;
	bottom: -24px;
	width: 192px;
	height: 192px;
	transform: rotate(3deg);
}

/* ------------------------------------------------------------ families */

.gses-fam .gses-fam__head {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.gses-fam .gses-fam__pillars {
	width: 100%;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 12px;
}

.gses-fam .gses-fam__pillar {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 12px;
	border-radius: 12px;
}

.gses-fam .gses-fam__decor {
	left: -16px;
	bottom: -16px;
	width: 112px;
	height: 112px;
	filter: blur(16px);
}

/* ------------------------------------------------------------ companies */

.gses-cmp .gses-cmp__head {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 16px;
}

/* ------------------------------------------------------------------ faq */

.gses-faq .gses-faq__list {
	display: flex;
	flex-direction: column;
	gap: 16px;
	max-width: 768px;
	margin: 0 auto;
}

.gses-faq .gses-faq__item {
	background-color: #ffffff;
	border: 1px solid #e5e2de;
	border-radius: 16px;
	padding: 24px;
	box-shadow: 0 1px 2px rgba(28, 28, 26, 0.04);
}

/*
 * `min-width: auto` on a flex item refuses to shrink below the text's own
 * width, so a long question ran past the card edge and shoved the chevron out
 * with it. `min-width: 0` lets it wrap; the rest defends against a theme
 * forcing `nowrap` or a single very long word.
 */
.gses-faq .gses-faq__head {
	display: flex;
	flex: 1 1 auto;
	min-width: 0;
	align-items: center;
	gap: 12px;
	text-align: left;
}

.gses-faq .gses-faq__question {
	min-width: 0;
	white-space: normal;
	overflow-wrap: break-word;
	word-break: break-word;
}

.gses-faq .gses-faq__icon {
	flex-shrink: 0;
	color: #0b6876;
	font-size: 20px;
	line-height: 1;
}

.gses-faq .gses-faq__question {
	margin: 0;
	color: #1a4d5c;
}

/* Indented to the question text, so the answer reads as belonging to it. */
.gses-faq .gses-faq__answer {
	margin: 8px 0 0;
	padding-left: 32px;
	color: #5b6b70;
}

/* ---- accordion ---- */

.gses-faq .gses-faq__trigger {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	width: 100%;
	padding: 0;
	background: none;
	border: 0;
	font: inherit;
	color: inherit;
	cursor: pointer;
	text-align: left;
}

.gses-faq .gses-faq__chevron {
	flex-shrink: 0;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background-color: #f3f0ec;
	position: relative;
	transition: transform 0.2s ease, background-color 0.2s ease;
}

.gses-faq .gses-faq__chevron::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 7px;
	height: 7px;
	margin: -5px 0 0 -4px;
	border-right: 2px solid #1a4d5c;
	border-bottom: 2px solid #1a4d5c;
	transform: rotate(45deg);
}

.gses-faq .gses-faq__item.is-open .gses-faq__chevron {
	transform: rotate(180deg);
}

/*
 * Collapsed by height rather than `display`, so the panel can animate and so
 * its text still counts as page content for search engines.
 */
.gses-faq--accordion .gses-faq__panel {
	overflow: hidden;
	max-height: 0;
	opacity: 0;
	transition: max-height 0.28s ease, opacity 0.2s ease;
}

.gses-faq--accordion .gses-faq__item.is-open .gses-faq__panel {
	max-height: 60rem;
	opacity: 1;
}

/* Without JS every answer stays visible instead of being unreachable. */
.gses-faq--accordion .gses-faq__panel.no-js,
html.no-js .gses-faq--accordion .gses-faq__panel {
	max-height: none;
	opacity: 1;
}

/* ---- search + filters ---- */

.gses-faq .gses-faq__search {
	position: relative;
	max-width: 620px;
	margin: 0 auto 20px;
}

.gses-faq .gses-faq__search-icon {
	position: absolute;
	top: 50%;
	left: 18px;
	transform: translateY(-50%);
	color: #8a9aa0;
	pointer-events: none;
}

.gses-faq .gses-faq__search-input {
	width: 100%;
	padding: 14px 18px 14px 46px;
	border: 1px solid #e5e2de;
	border-radius: 999px;
	background-color: #ffffff;
	font: inherit;
	color: #1c1c1a;
	outline: none;
}

.gses-faq .gses-faq__search-input:focus {
	border-color: #0b6876;
	box-shadow: 0 0 0 3px rgba(11, 104, 118, 0.15);
}

.gses-faq .gses-faq__filters {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	margin-bottom: 24px;
}

.gses-faq .gses-faq__filter {
	padding: 8px 16px;
	border: 0;
	border-radius: 999px;
	background-color: #f3f0ec;
	color: #5b6b70;
	font: inherit;
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.gses-faq .gses-faq__filter:hover {
	background-color: #e5e2de;
}

.gses-faq .gses-faq__filter.is-active {
	background-color: #1a4d5c;
	color: #ffffff;
}

.gses-faq .gses-faq__empty {
	margin: 24px auto 0;
	text-align: center;
	color: #8a9aa0;
}

.gses-faq .gses-faq__cta {
	display: flex;
	justify-content: center;
	margin-top: 40px;
}

@media (max-width: 640px) {
	.gses-faq .gses-faq__item {
		padding: 18px;
	}

	.gses-faq .gses-faq__answer {
		padding-left: 0;
	}
}

/* ---- faq: two-column page layout ---- */

.gses-faq .gses-faq__body--split {
	display: grid;
	grid-template-columns: 2fr 1fr;
	align-items: start;
	gap: 40px;
}

/* The list centres itself when alone; beside an aside it fills its column. */
.gses-faq .gses-faq__body--split .gses-faq__list {
	max-width: none;
	margin: 0;
}

.gses-faq .gses-faq__aside {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.gses-faq .gses-faq__aside-card {
	background-color: #ffffff;
	border-radius: 16px;
	overflow: hidden;
	box-shadow: 0 1px 2px rgba(28, 28, 26, 0.06);
}

.gses-faq .gses-faq__aside-figure {
	position: relative;
	margin: 0;
	height: 224px;
}

.gses-faq .gses-faq__aside-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* Scrim so the caption stays readable whatever the photo is. */
.gses-faq .gses-faq__aside-figure::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(26, 77, 92, 0.85), transparent 60%);
}

.gses-faq .gses-faq__aside-caption {
	position: absolute;
	right: 16px;
	bottom: 16px;
	left: 16px;
	z-index: 1;
	color: #ffffff;
}

.gses-faq .gses-faq__aside-eyebrow {
	display: block;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #a4eeff;
}

.gses-faq .gses-faq__aside-title {
	margin: 2px 0 0;
	font-size: 18px;
	font-weight: 600;
	line-height: 1.3;
	color: #ffffff;
}

.gses-faq .gses-faq__aside-text {
	margin: 0;
	padding: 20px;
	font-size: 14px;
	line-height: 1.6;
	color: #5b6b70;
}

.gses-faq .gses-faq__badges {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin: 0;
	padding: 20px;
	list-style: none;
	background-color: #f3f0ec;
	border-radius: 16px;
}

.gses-faq .gses-faq__badge {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 14px;
	color: #1c1c1a;
}

.gses-faq .gses-faq__badge-icon {
	flex-shrink: 0;
	color: #0b6876;
	font-size: 18px;
}

/* ---- faq: call-to-action panel ---- */

.gses-faq .gses-faq__band {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	margin-top: 48px;
	padding: 32px;
	background-color: #ffffff;
	border-radius: 16px;
	box-shadow: 0 1px 2px rgba(28, 28, 26, 0.06);
}

.gses-faq .gses-faq__band-body {
	flex: 1 1 24rem;
	min-width: 0;
}

.gses-faq .gses-faq__band-eyebrow {
	display: block;
	margin-bottom: 4px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #0b6876;
}

.gses-faq .gses-faq__band-title {
	margin: 0 0 6px;
	font-size: 22px;
	line-height: 1.3;
	color: #1a4d5c;
}

.gses-faq .gses-faq__band-text {
	margin: 0;
	color: #5b6b70;
}

@media (max-width: 1024px) {
	.gses-faq .gses-faq__body--split {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 640px) {
	.gses-faq .gses-faq__band {
		padding: 24px;
	}
}

/* ------------------------------------------------------------------ steps grid */

/*
 * Own class namespace rather than reusing `.gses-step*`. Those rules style the
 * split layout of GS How It Works — a flex row whose marker stretches for the
 * connector line — and sharing them would couple two widgets that should be
 * free to change independently.
 */
.gses-sgrid .gses-sgrid__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 20px;
}

.gses-sgrid .gses-sgrid__card {
	display: flex;
	flex-direction: column;
	padding: 24px;
	border-radius: 16px;
	border: 1px solid #e5e2de;
	background-color: var(--gses-sg-card-bg, #ffffff);
	box-shadow: 0 1px 2px rgba(28, 28, 26, 0.04);
}

.gses-sgrid .gses-sgrid__num {
	display: flex;
	flex-shrink: 0;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	margin-bottom: 16px;
	border-radius: 50%;
	background-color: var(--gses-sg-marker-bg, #1a4d5c);
	color: var(--gses-sg-marker-color, #ffffff);
	line-height: 1;
}

.gses-sgrid .gses-sgrid__title,
.gses-sgrid .gses-sgrid__desc {
	margin: 0;
	padding: 0;
}

.gses-sgrid .gses-sgrid__title {
	margin-bottom: 6px;
	font-family: Literata, Georgia, "Times New Roman", serif;
	color: #1a4d5c;
}

.gses-sgrid .gses-sgrid__desc {
	color: #5b6b70;
}

.gses-sgrid .gses-sgrid__cta {
	display: flex;
	justify-content: center;
	margin-top: 40px;
}

.gses-sgrid .gses-sgrid__btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 14px 28px;
	border-radius: 12px;
	background-color: #a4eeff;
	color: #1a4d5c;
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.gses-sgrid .gses-sgrid__btn .gses-icon {
	transition: transform 0.2s ease;
}

.gses-sgrid .gses-sgrid__btn:hover .gses-icon {
	transform: translateX(3px);
}

@media (max-width: 1024px) {
	.gses-sgrid .gses-sgrid__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 640px) {
	.gses-sgrid .gses-sgrid__grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* ------------------------------------------------------------------ trust strip */

.gses-ts .gses-ts__list {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 16px;
}

.gses-ts .gses-ts__item {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	color: #1c1c1a;
}

.gses-ts .gses-ts__icon {
	flex-shrink: 0;
	color: var(--gses-ts-icon, #0b6876);
}

/* ------------------------------------------------------------------ values */

.gses-val .gses-val__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
	max-width: 880px;
	margin: 0 auto;
}

.gses-val .gses-val__card {
	display: flex;
	flex-direction: column;
	padding: 28px;
	border-radius: 16px;
	border: 1px solid #e5e2de;
	background-color: #ffffff;
}

.gses-val .gses-val__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	margin-bottom: 16px;
	border-radius: 12px;
	background-color: var(--gses-val-icon-bg, #dfeff1);
	color: var(--gses-val-icon, #0b6876);
}

.gses-val .gses-val__title,
.gses-val .gses-val__text {
	margin: 0;
	padding: 0;
}

.gses-val .gses-val__title {
	margin-bottom: 6px;
	font-family: Literata, Georgia, "Times New Roman", serif;
	color: #1a4d5c;
}

.gses-val .gses-val__text {
	color: #5b6b70;
}

/* ------------------------------------------------------------------ about */

.gses-about .gses-about__panel {
	max-width: 880px;
	margin: 0 auto;
	padding: 48px;
	border-radius: 20px;
	background-color: #ffffff;
	text-align: center;
}

.gses-about .gses-about__eyebrow {
	display: inline-block;
	margin-bottom: 8px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #0b6876;
}

.gses-about .gses-about__title,
.gses-about .gses-about__body {
	margin: 0;
	padding: 0;
}

.gses-about .gses-about__title {
	margin-bottom: 14px;
	font-family: Literata, Georgia, "Times New Roman", serif;
	color: #1a4d5c;
}

.gses-about .gses-about__body {
	color: #5b6b70;
}

.gses-about .gses-about__actions {
	margin-top: 20px;
}

.gses-about .gses-about__link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: #0b6876;
	font-weight: 600;
	text-decoration: none;
}

.gses-about .gses-about__link:hover {
	text-decoration: underline;
}

/* ------------------------------------------------------------------ contact */

.gses-contact .gses-contact__grid {
	display: grid;
	grid-template-columns: 38% minmax(0, 1fr);
	align-items: start;
	gap: 24px;
}

.gses-contact .gses-contact__info {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.gses-contact .gses-contact__card {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding: 20px;
	border-radius: 16px;
	background-color: #ffffff;
	border: 1px solid #e5e2de;
}

.gses-contact .gses-contact__card-icon {
	flex-shrink: 0;
	margin-top: 2px;
	color: #0b6876;
}

.gses-contact .gses-contact__card-title,
.gses-contact .gses-contact__card-line {
	margin: 0;
	padding: 0;
}

.gses-contact .gses-contact__card-title {
	margin-bottom: 4px;
	font-weight: 600;
	color: #1a4d5c;
}

.gses-contact .gses-contact__card-line {
	font-size: 14px;
	line-height: 20px;
	color: #5b6b70;
}

/*
 * The form column. Empty by design — drop your own form in, or paste its
 * shortcode in the widget. The dashed outline only shows while it is empty,
 * so an editor can see the slot without it appearing on the live page.
 */
.gses-contact .gses-contact__form {
	min-height: 360px;
	padding: 28px;
	border-radius: 16px;
	background-color: #ffffff;
	border: 1px solid #e5e2de;
}

.gses-contact .gses-contact__form:empty {
	border: 1px dashed #c0c8cb;
	background-color: transparent;
}

/* ------------------------------------------------------------------ footer */

.gses-footer .gses-footer__grid {
	display: grid;
	grid-template-columns: 30% repeat(auto-fit, minmax(0, 1fr));
	gap: 32px;
}

.gses-footer .gses-footer__logo {
	display: block;
	height: 36px;
	width: auto;
	margin-bottom: 14px;
}

.gses-footer .gses-footer__text,
.gses-footer .gses-footer__line,
.gses-footer .gses-footer__col-title,
.gses-footer .gses-footer__copy {
	margin: 0;
	padding: 0;
}

.gses-footer .gses-footer__text {
	font-size: 14px;
	line-height: 22px;
	color: rgba(255, 255, 255, 0.72);
}

.gses-footer .gses-footer__badge {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: 16px;
	padding: 6px 12px;
	border-radius: 999px;
	background-color: rgba(255, 255, 255, 0.1);
	color: #a4eeff;
	font-size: 12px;
	font-weight: 600;
}

.gses-footer .gses-footer__col-title {
	margin-bottom: 12px;
	font-weight: 700;
	color: #ffffff;
}

.gses-footer .gses-footer__list,
.gses-footer .gses-footer__legal-links {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.gses-footer .gses-footer__link {
	color: rgba(255, 255, 255, 0.82);
	font-size: 14px;
	text-decoration: none;
	transition: color 0.2s ease;
}

.gses-footer .gses-footer__link:hover {
	color: #a4eeff;
}

.gses-footer .gses-footer__line {
	font-size: 13px;
	line-height: 20px;
	color: rgba(255, 255, 255, 0.72);
}

.gses-footer .gses-footer__support {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.gses-footer .gses-footer__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin-bottom: 8px;
	padding: 10px 18px;
	border-radius: 10px;
	background-color: #a4eeff;
	color: #1a4d5c;
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
	align-self: flex-start;
}

.gses-footer .gses-footer__legal {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-top: 40px;
	padding-top: 20px;
	border-top: 1px solid rgba(255, 255, 255, 0.15);
	color: rgba(255, 255, 255, 0.6);
	font-size: 13px;
}

.gses-footer .gses-footer__legal-links {
	flex-direction: row;
	flex-wrap: wrap;
	gap: 18px;
}

@media (max-width: 1024px) {
	.gses-footer .gses-footer__grid,
	.gses-contact .gses-contact__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 640px) {
	.gses-ts .gses-ts__list,
	.gses-val .gses-val__grid,
	.gses-footer .gses-footer__grid,
	.gses-contact .gses-contact__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.gses-about .gses-about__panel {
		padding: 28px 20px;
	}
}

/* ------------------------------------------------------------------ expandable cards */

.gses-ec .gses-ec__grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 16px;
}

/* Cards in a row share a height, and the title sits at the bottom of that
   height, so a one-line title lines up with a three-line one beside it. */
.gses-ec .gses-ec__card {
	display: flex;
	flex-direction: column;
	padding: 18px;
	border-radius: 16px;
	background-color: #ffffff;
	border: 1px solid #e5e2de;
	box-shadow: 0 1px 2px rgba(28, 28, 26, 0.04);
	transition: box-shadow 0.2s ease;
}

.gses-ec .gses-ec__card:hover {
	box-shadow: 0 4px 14px rgba(28, 28, 26, 0.08);
}

.gses-ec .gses-ec__summary {
	display: flex;
	flex: 0 0 auto;
	align-items: stretch;
	justify-content: space-between;
	gap: 8px;
	cursor: pointer;
	list-style: none;
}

/*
 * The icon sits at the top of this area and the title at its bottom, so giving
 * the area one height across the row lines up every title, divider and body
 * paragraph however many lines a title runs to. `--gses-ec-head` is measured
 * per row by gses-company.js; `--gses-ec-head-min` is the floor set in the
 * Style tab, which is what a visitor without JavaScript gets.
 */
.gses-ec.gses-cmp__cards .gses-ec__summary {
	min-height: max(var(--gses-ec-head-min, 112px), var(--gses-ec-head, 0px));
}

/* Cleared while the row is measured, or each pass could only ever grow it. */
.gses-ec.gses-cmp__cards.is-measuring .gses-ec__summary {
	min-height: 0;
}

/* Safari draws its own triangle unless this is removed. */
.gses-ec .gses-ec__summary::-webkit-details-marker {
	display: none;
}

.gses-ec .gses-ec__head {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	justify-content: space-between;
	gap: 10px;
	min-width: 0;
}

.gses-ec .gses-ec__icon {
	display: flex;
	flex: 0 0 auto;
	align-self: flex-start;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 12px;
	background-color: var(--gses-ec-icon-bg, #dfeff1);
	color: var(--gses-ec-icon, #0b6876);
}

.gses-ec .gses-ec__title {
	margin: 0;
	padding: 0;
	min-width: 0;
	white-space: normal;
	word-break: break-word;
	overflow-wrap: break-word;
	font-family: Literata, Georgia, "Times New Roman", serif;
	color: #1a4d5c;
}

.gses-ec .gses-ec__chevron {
	position: relative;
	flex: 0 0 auto;
	align-self: flex-start;
	width: 18px;
	height: 18px;
	margin-top: 2px;
	color: #8a9aa0;
	transition: transform 0.2s ease;
}

.gses-ec .gses-ec__chevron::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 7px;
	height: 7px;
	margin: -5px 0 0 -4px;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(45deg);
}

.gses-ec .gses-ec__card[open] .gses-ec__chevron {
	transform: rotate(180deg);
}

.gses-ec .gses-ec__text {
	margin: 12px 0 0;
	padding: 12px 0 0;
	border-top: 1px solid #e5e2de;
	color: #5b6b70;
}

/* ------------------------------------------------------------------ service packages */

.gses-pkg .gses-pkg__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}

.gses-pkg .gses-pkg__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 14px 16px;
	border-radius: 12px;
	background-color: #fcf9f5;
	border: 1px solid #e5e2de;
}

.gses-pkg .gses-pkg__left {
	display: flex;
	align-items: center;
	gap: 10px;
	min-width: 0;
}

.gses-pkg .gses-pkg__icon {
	flex-shrink: 0;
	color: #0b6876;
}

.gses-pkg .gses-pkg__label {
	min-width: 0;
	font-weight: 600;
	color: #1a4d5c;
}

.gses-pkg .gses-pkg__badge {
	flex-shrink: 0;
	padding: 5px 10px;
	border-radius: 8px;
	background-color: #f0ede9;
	color: #5b6b70;
	font-size: 12px;
	font-weight: 600;
	white-space: nowrap;
}

.gses-pkg .gses-pkg__badge--own {
	background-color: #1a4d5c;
	color: #ffffff;
}

.gses-pkg .gses-pkg__note {
	margin: 20px 0 0;
	padding: 14px 18px;
	border-left: 3px solid #0b6876;
	border-radius: 0 12px 12px 0;
	background-color: #fcf9f5;
	color: #5b6b70;
}

/* ------------------------------------------------------------------ feature panel */

.gses-fp .gses-fp__panel {
	border-radius: 20px;
	overflow: hidden;
	background-color: #ffffff;
	box-shadow: 0 1px 2px rgba(28, 28, 26, 0.06);
}

.gses-fp .gses-fp__grid {
	display: grid;
	grid-template-columns: 55% minmax(0, 1fr);
	align-items: stretch;
}

/* Puts the photo first without reordering the markup, so the reading order
   stays text-then-image for anyone not seeing the layout. */
.gses-fp .gses-fp__grid--flip .gses-fp__text {
	order: 2;
}

.gses-fp .gses-fp__text {
	padding: 36px;
}

.gses-fp .gses-fp__eyebrow {
	display: inline-block;
	margin-bottom: 10px;
	padding: 5px 12px;
	border-radius: 999px;
	background-color: #dfeff1;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: #0b6876;
}

.gses-fp .gses-fp__title,
.gses-fp .gses-fp__lead,
.gses-fp .gses-fp__para,
.gses-fp .gses-fp__note-title,
.gses-fp .gses-fp__note-text,
.gses-fp .gses-fp__caption-text {
	margin: 0;
	padding: 0;
}

.gses-fp .gses-fp__title {
	margin-bottom: 8px;
	font-family: Literata, Georgia, "Times New Roman", serif;
	color: #1a4d5c;
}

.gses-fp .gses-fp__lead {
	margin-bottom: 10px;
	font-weight: 600;
	color: #1a4d5c;
}

.gses-fp .gses-fp__para + .gses-fp__para {
	margin-top: 10px;
}

.gses-fp .gses-fp__actions {
	margin-top: 18px;
}

.gses-fp .gses-fp__btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 12px 22px;
	border-radius: 10px;
	background-color: #1a4d5c;
	color: #ffffff;
	font-weight: 600;
	text-decoration: none;
}

.gses-fp .gses-fp__note {
	margin-top: 20px;
	padding: 16px 18px;
	border-radius: 12px;
	background-color: #fcf9f5;
	border: 1px solid #e5e2de;
}

.gses-fp .gses-fp__note-title {
	margin-bottom: 4px;
	font-weight: 600;
	color: #1a4d5c;
}

.gses-fp .gses-fp__note-text {
	font-size: 13px;
	line-height: 20px;
	color: #5b6b70;
}

.gses-fp .gses-fp__figure {
	position: relative;
	margin: 0;
	min-height: 300px;
}

.gses-fp .gses-fp__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.gses-fp .gses-fp__caption {
	position: absolute;
	right: 14px;
	bottom: 14px;
	left: 14px;
	padding: 12px 14px;
	border-radius: 12px;
	background-color: rgba(255, 255, 255, 0.94);
	backdrop-filter: blur(4px);
}

.gses-fp .gses-fp__caption-head {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 2px;
	font-size: 13px;
	font-weight: 700;
	color: #1a4d5c;
}

.gses-fp .gses-fp__caption-text {
	font-size: 12px;
	line-height: 17px;
	color: #5b6b70;
}

@media (max-width: 1024px) {
	.gses-ec .gses-ec__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.gses-fp .gses-fp__grid,
	.gses-pkg .gses-pkg__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.gses-fp .gses-fp__grid--flip .gses-fp__text {
		order: 0;
	}
}

@media (max-width: 640px) {
	.gses-ec .gses-ec__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.gses-pkg .gses-pkg__row {
		flex-direction: column;
		align-items: flex-start;
	}
}

/* ---- company block: the page sections below the hero ---- */

.gses-cmp .gses-cmp__module {
	margin-top: 56px;
}

.gses-cmp .gses-cmp__block-intro {
	margin-bottom: 24px;
}

/* FAQs reuse the expandable card, stacked full width instead of in a grid. */
.gses-ec .gses-ec__grid--stack {
	grid-template-columns: minmax(0, 1fr);
	gap: 12px;
}

.gses-ec .gses-ec__head--row {
	flex-direction: row;
	align-items: center;
	justify-content: flex-start;
	gap: 10px;
}

.gses-ec .gses-ec__icon-inline {
	flex-shrink: 0;
	color: #0b6876;
}

@media (max-width: 640px) {
	.gses-cmp .gses-cmp__module {
		margin-top: 40px;
	}
}
