/* Home Services template — design tokens and shared primitives.
   Loaded only on pages using template-home-services.php. */

.ggd-page,
.ggd-scope {
	--ggd-navy: #10234c;
	--ggd-gold: #c2d62e;
	--ggd-blue: #3c87ff;
	--ggd-panel: #F2F4F7;
	--ggd-body: #344054;
	--ggd-muted: #667085;
	--ggd-ink: #101828;
	--ggd-max: 1440px;
	--ggd-pad: clamp(20px, 5vw, 80px);

	font-family: Arial, system-ui, sans-serif;
	color: var(--ggd-navy);
	background: #fff;
	overflow-x: hidden;
}

/* The parent theme's mobile nav (.mean-bar, MeanMenu) is a full-width
   `float: left` that escapes the header because the header never contains it.
   `overflow-x: hidden` above makes .ggd-page a block formatting context, and a
   BFC shrinks to avoid overlapping floats — against a full-width float it
   collapses to width:0 and the whole template renders blank. This only happens
   below the theme's mobile breakpoint, where .mean-bar exists.
   Clearing keeps the overflow guard and puts the content below the nav, which
   is where it belongs anyway. Do not remove without re-testing at <768px. */
.ggd-page { clear: both; }

.ggd-page *,
.ggd-page *::before,
.ggd-page *::after,
.ggd-scope *,
.ggd-scope *::before,
.ggd-scope *::after { box-sizing: border-box; }

.ggd-page a,
.ggd-scope a { text-decoration: none; }
.ggd-page img,
.ggd-scope img { max-width: 100%; }

/* The editor renders each block standalone; keep headings and paragraphs from
   inheriting the admin theme's own margins and fonts. */
.ggd-scope h1, .ggd-scope h2, .ggd-scope h3,
.ggd-scope p, .ggd-scope ul, .ggd-scope li {
	font-family: inherit;
}

.ggd-wrap {
	max-width: var(--ggd-max);
	margin: 0 auto;
	padding-inline: var(--ggd-pad);
}

/* Eyebrow: uppercase label with a 3px gold underline. */
.ggd-eyebrow {
	margin: 0 0 10px;
	font-weight: 800;
	font-size: 13px;
	letter-spacing: 0.09em;
	color: var(--ggd-navy);
	width: fit-content;
	padding-bottom: 7px;
	border-bottom: 3px solid var(--ggd-gold);
}

.ggd-eyebrow--center { margin-inline: auto; }
.ggd-eyebrow--on-dark { color: var(--ggd-gold); }

/* Headings */
.ggd-h2 {
	margin: 12px 0 10px;
	font-weight: 800;
	font-size: clamp(26px, 2.6vw, 35px);
	letter-spacing: -0.015em;
	color: var(--ggd-navy);
}

.ggd-h2--on-dark { color: #fff; }

/* Buttons: square corners, colour-only hover. */
.ggd-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	border: 0;
	border-radius: 0;
	padding: 16px 28px;
	font-weight: 800;
	font-size: 18px;
	line-height: 1.2;
	cursor: pointer;
	transition: background .18s ease, filter .18s ease, color .18s ease;
}

.ggd-btn--blue { background: var(--ggd-blue); color: #fff; }
.ggd-btn--blue:hover { filter: brightness(0.88); color: #fff; }

.ggd-btn--navy { background: var(--ggd-navy); color: #fff; }
.ggd-btn--navy:hover { background: var(--ggd-blue); color: #fff; }

.ggd-btn--white { background: #fff; color: var(--ggd-navy); }
.ggd-btn--white:hover { background: var(--ggd-blue); color: #fff; }

.ggd-btn--outline { border: 1.5px solid var(--ggd-navy); color: var(--ggd-navy); background: transparent; }
.ggd-btn--outline:hover { background: var(--ggd-blue); border-color: var(--ggd-blue); color: #fff; }

.ggd-btns { display: flex; flex-wrap: wrap; gap: 16px; }

/* Panels: the recurring elevated-panel motif. */
.ggd-panel {
	background: var(--ggd-panel);
	border-radius: 20px;
	padding: 56px clamp(20px, 4vw, 60px);
}

.ggd-section-head { text-align: center; margin-bottom: 42px; }
.ggd-section-head .ggd-eyebrow { margin-inline: auto; }
.ggd-lede { margin: 0; font-size: 16px; color: var(--ggd-body); }
.ggd-lede--on-dark { color: #D0D5DD; }

/* Custom uploaded icons sit in the same slots as the named SVGs. */
.ggd-icon-img {
	display: block;
	object-fit: contain;
	max-width: 100%;
	max-height: 100%;
}

/* Rich-text content -----------------------------------------------------
   Editors can now produce bold, italic, links and lists in prose fields.
   `:not([class])` protects the template's own lists (pricing features, the
   services grid) which set their own list-style. */
.ggd-scope ul:not([class]),
.ggd-scope ol:not([class]) {
	margin: 0 0 1em;
	padding-left: 1.3em;
	list-style: disc;
	text-align: left;
}

.ggd-scope ol:not([class]) { list-style: decimal; }
.ggd-scope li:not([class]) { margin-bottom: .35em; }

.ggd-scope p { margin: 0 0 1em; }
.ggd-scope p:last-child,
.ggd-scope ul:last-child,
.ggd-scope ol:last-child { margin-bottom: 0; }

.ggd-scope strong, .ggd-scope b { font-weight: 800; }
.ggd-scope em, .ggd-scope i { font-style: italic; }

/* Links inside prose need to be visible without inheriting button styles. */
.ggd-scope a:not([class]) {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 2px;
}
.ggd-scope a:not([class]):hover { color: var(--ggd-blue); }

/* Dark sections need their prose links legible against navy/blue. */
.ggd-pricing a:not([class]):hover,
.ggd-referral a:not([class]):hover,
.ggd-financing a:not([class]):hover { color: var(--ggd-gold); }

/* Cards lift on hover; no elevation at rest. */
.ggd-card-hover { transition: transform .2s ease, box-shadow .2s ease; }
.ggd-card-hover:hover { transform: translateY(-4px); box-shadow: 0 14px 30px rgba(16, 35, 76, .12); }

@media (prefers-reduced-motion: reduce) {
	.ggd-page *, .ggd-scope * { transition: none !important; }
	.ggd-card-hover:hover { transform: none; }
}

/* Block-canvas corrections. These live here rather than in editor.css because
   this file is the one copied into the iframed editor canvas; editor.css stays
   in the parent document. `.editor-styles-wrapper` never exists on the front
   end, so these rules are inert there. */
.editor-styles-wrapper .wp-block[data-type^="ggd/"],
.block-editor-block-list__layout .wp-block[data-type^="ggd/"] {
	margin-block: 0 !important;
	max-width: none !important;
}

.editor-styles-wrapper .wp-block[data-type^="ggd/"] > .ggd-scope { margin-block: 0; }

/* The iframed canvas has no page wrapper, so give it the same base as .ggd-page. */
.editor-styles-wrapper { background: #fff; }

/* Auto-fit grids must never force a column wider than the viewport, hence
   minmax(min(Npx, 100%), 1fr) rather than the design's bare minmax(Npx, 1fr). */

/* 1 — Hero ------------------------------------------------------------ */
.ggd-hero { position: relative; }

/* The scrim is its own element rather than a gradient stacked on the photo:
   wp_kses_post() drops a background-image carrying both a gradient and a url,
   which stripped the hero background entirely on production. */
.ggd-hero__scrim {
	position: absolute;
	inset: 0;
	pointer-events: none;
}

.ggd-hero__grid {
	position: relative;
	padding-block: 72px;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(420px, 100%), 1fr));
	gap: 56px;
	align-items: center;
}
.ggd-hero__eyebrow { margin: 0 0 18px; font-weight: 700; font-size: 14px; color: #fff; }
.ggd-hero__title {
	margin: 0 0 22px;
	font-weight: 800;
	font-size: clamp(34px, 3.4vw, 47px);
	line-height: 1.16;
	letter-spacing: -0.015em;
	color: #fff;
	text-wrap: pretty;
}
.ggd-hero__sub { margin: 0 0 30px; font-size: 17px; line-height: 1.5; color: #fff; }
.ggd-hero__rule { height: 1px; background: #B7BEC9; margin: 30px 0 20px; max-width: 665px; }
.ggd-hero__rating { display: flex; align-items: center; gap: 16px; }
.ggd-hero__rating-logo { height: 30px; width: auto; display: block; }
.ggd-hero__rating-text { display: flex; flex-direction: column; gap: 6px; }
.ggd-hero__stars { color: var(--ggd-gold); font-size: 22px; letter-spacing: 2px; line-height: 1; }
.ggd-hero__reviews { font-size: 12.5px; font-weight: 600; color: #fff; line-height: 1; }
/* With no side image the panel is not rendered at all, so the copy would
   otherwise stretch the full 1440px. Cap it at a readable measure. */
.ggd-hero__grid--solo { grid-template-columns: minmax(0, 1fr); }
.ggd-hero__grid--solo .ggd-hero__copy { max-width: 820px; }

/* The grey is a placeholder behind the image while it loads; it is never seen
   on its own because the panel only renders when an image is set. */
.ggd-hero__media {
	width: 100%;
	aspect-ratio: 512 / 435;
	min-height: 300px;
	background: #C4C4C4;
	border-radius: 18px;
	overflow: hidden;
}
.ggd-hero__media img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* 2 — Trust bar ------------------------------------------------------- */
.ggd-trust { background: var(--ggd-blue); }
.ggd-trust__row { padding-block: 16px; }

.ggd-trust__track { display: flex; align-items: center; width: 100%; }

.ggd-trust__run {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 20px 34px;
	flex: 1 1 auto;
}

/* The duplicate run only exists to make the mobile ticker loop seamlessly. */
.ggd-trust__run[aria-hidden="true"] { display: none; }

.ggd-trust__item { display: flex; align-items: center; gap: 12px; }

/* Mobile: the bar becomes a continuously scrolling ticker, because five items
   stacked vertically pushed the whole page down on small screens. */
@media (max-width: 782px) {
	.ggd-trust__row { overflow: hidden; }

	.ggd-trust__track {
		width: max-content;
		animation: ggd-ticker 30s linear infinite;
	}

	.ggd-trust__run {
		flex: 0 0 auto;
		flex-wrap: nowrap;
		justify-content: flex-start;
		gap: 34px;
		padding-right: 34px;
	}

	.ggd-trust__run[aria-hidden="true"] { display: flex; }

	.ggd-trust__item { flex: 0 0 auto; white-space: nowrap; }

	/* Let people stop it to read. */
	.ggd-trust:hover .ggd-trust__track,
	.ggd-trust:focus-within .ggd-trust__track { animation-play-state: paused; }
}

@keyframes ggd-ticker {
	from { transform: translateX(0); }
	to   { transform: translateX(-50%); }
}

/* Motion-sensitive users get a manually scrollable strip instead. */
@media (prefers-reduced-motion: reduce) {
	.ggd-trust__track { animation: none !important; width: 100%; }
	.ggd-trust__row { overflow-x: auto; }
	.ggd-trust__run[aria-hidden="true"] { display: none; }
}
.ggd-trust__icon {
	width: 30px; height: 30px;
	border-radius: 7px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
}
.ggd-trust__label { color: #fff; font-weight: 700; font-size: 16px; }

/* 3 — Benefits -------------------------------------------------------- */
.ggd-benefits { padding: 40px 0; }
.ggd-benefits__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr));
	gap: 26px;
}
.ggd-benefit { background: #fff; border-radius: 10px; padding: 24px; }
.ggd-benefit__icon {
	display: inline-flex;
	width: 36px; height: 36px;
	border-radius: 9px;
	background: var(--ggd-navy);
	align-items: center;
	justify-content: center;
}
.ggd-benefit__title { margin: 18px 0 10px; font-weight: 800; font-size: 21px; color: var(--ggd-navy); }
.ggd-benefit__body { margin: 0 0 20px; font-size: 15.5px; line-height: 1.5; color: var(--ggd-muted); }
.ggd-btn--sm { padding: 10px 18px; font-size: 14.5px; font-weight: 700; }

/* 4 — Pricing --------------------------------------------------------- */
.ggd-pricing { background: var(--ggd-navy); padding: 78px 0; }
.ggd-pricing__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(290px, 100%), 1fr));
	gap: 34px;
	align-items: start;
}
.ggd-plan { background: #fff; border-radius: 14px; padding: 32px 30px; position: relative; }
.ggd-plan.is-featured { border: 2px solid var(--ggd-gold); }
.ggd-plan__badge {
	position: absolute;
	top: -15px; left: 50%;
	transform: translateX(-50%);
	background: var(--ggd-gold);
	padding: 7px 14px;
	font-weight: 800;
	font-size: 11.5px;
	letter-spacing: 0.06em;
	color: var(--ggd-navy);
	white-space: nowrap;
}
.ggd-plan__title { margin: 0 0 8px; font-weight: 800; font-size: 23px; color: var(--ggd-navy); }
.ggd-plan__subtitle { margin: 0 0 14px; font-weight: 700; font-size: 15px; line-height: 1.35; color: var(--ggd-navy); }
.ggd-plan__price { margin: 0 0 4px; font-weight: 800; font-size: 40px; letter-spacing: -0.02em; color: var(--ggd-navy); }
.ggd-plan__unit { font-size: 17px; font-weight: 600; color: #475467; }
.ggd-plan__note { margin: 0 0 24px; font-size: 14px; color: var(--ggd-muted); }
.ggd-plan__features { list-style: none; margin: 0 0 28px; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.ggd-plan__features li { display: flex; gap: 12px; align-items: flex-start; font-size: 15.5px; color: var(--ggd-ink); }
.ggd-plan__features svg { flex: 0 0 auto; margin-top: 2px; color: var(--ggd-navy); }
.ggd-plan__cta { display: flex; width: 100%; padding: 13px; font-size: 16px; font-weight: 700; }

/* 5 — Commitment ------------------------------------------------------ */
.ggd-commitment { padding: 80px 0; }
.ggd-commitment__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(420px, 100%), 1fr));
	gap: 60px;
	align-items: center;
}
.ggd-commitment__media {
	background: #F1F1F1 center / cover no-repeat;
	aspect-ratio: 610 / 560;
	min-height: 320px;
	display: flex;
	align-items: center;
	justify-content: center;
}
.ggd-play {
	width: 62px; height: 62px;
	border-radius: 50%;
	background: var(--ggd-gold);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: transform .2s ease;
}
.ggd-play:hover { transform: scale(1.08); }
.ggd-h2--lg { font-size: clamp(28px, 2.8vw, 37px); }
.ggd-h2--xl { font-size: clamp(30px, 3vw, 42px); }
.ggd-h2--underlined { width: fit-content; margin-inline: auto; padding-bottom: 10px; border-bottom: 3px solid var(--ggd-gold); }
.ggd-subtitle { margin: 0 0 20px; font-weight: 800; font-size: 20px; color: var(--ggd-navy); }
.ggd-prose { margin: 0 0 20px; font-size: 16.5px; line-height: 1.6; color: var(--ggd-body); }

/* 6 — Our Promise ----------------------------------------------------- */
.ggd-promise { padding: 0 0 40px; }
.ggd-promise__head { text-align: center; max-width: 640px; margin: 0 auto 46px; }
.ggd-promise__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr));
	gap: 34px;
}
.ggd-value__tile {
	background: var(--ggd-navy);
	border-radius: 8px;
	min-height: 200px;
	padding: 30px 20px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 18px;
}
.ggd-value__title { margin: 0; font-weight: 800; font-size: 21px; color: #fff; text-align: center; }
.ggd-value__body { margin: 22px 0 0; font-size: 16px; line-height: 1.55; color: var(--ggd-body); text-align: center; }

/* 7 — Financing banner ------------------------------------------------ */
.ggd-financing { padding: 0 0 20px; }
.ggd-financing__banner {
	background: linear-gradient(100deg, #a6b3b4 0%, #3c87ff 32%, #10234c 100%);
	border-radius: 16px;
	padding: 34px clamp(24px, 3vw, 44px);
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 28px;
}
.ggd-financing__price { margin: 0; font-weight: 800; font-size: 44px; letter-spacing: -0.02em; color: var(--ggd-gold); flex: 0 0 auto; }
.ggd-financing__unit { font-size: 19px; font-weight: 600; color: #fff; }
.ggd-financing__copy { flex: 1 1 380px; min-width: min(280px, 100%); }
.ggd-financing__title { margin: 0 0 8px; font-weight: 800; font-size: 25px; color: #fff; }
.ggd-financing__body { margin: 0; font-size: 16px; line-height: 1.5; color: #E4E7EC; }

/* 8 — Services list --------------------------------------------------- */
.ggd-services { padding: 60px 0 80px; }
.ggd-services__grid {
	list-style: none;
	max-width: 1000px;
	margin: 0 auto;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(320px, 100%), 1fr));
	gap: 14px 60px;
}
.ggd-service { display: flex; align-items: center; gap: 14px; }
.ggd-service__check { flex: 0 0 auto; display: inline-flex; color: var(--ggd-gold); }
.ggd-service__label { font-weight: 700; font-size: 17px; color: var(--ggd-ink); }
a.ggd-service__label:hover { color: var(--ggd-blue); }

/* 9 — Referral banner ------------------------------------------------- */
.ggd-referral { padding: 0 0 70px; }
.ggd-referral__panel {
	background: var(--ggd-navy);
	border-radius: 20px;
	padding: 60px clamp(24px, 4vw, 60px);
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(360px, 100%), 1fr));
	gap: 50px;
	align-items: center;
}
.ggd-referral__body { margin: 0 0 20px; font-size: 16.5px; line-height: 1.6; color: #E4E7EC; }
.ggd-referral__image { width: 100%; border-radius: 14px; display: block; }

/* 10 — FAQ ------------------------------------------------------------ */
.ggd-faq { padding: 30px 0 90px; }
.ggd-faq__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(360px, 100%), 1fr));
	gap: 60px;
	align-items: start;
}
.ggd-faq__lead { margin: 0 0 32px; font-weight: 700; font-size: 20px; line-height: 1.45; color: var(--ggd-muted); }
.ggd-faq__list { display: flex; flex-direction: column; gap: 14px; }
.ggd-faq__item { background: var(--ggd-panel); border-radius: 10px; overflow: hidden; }
.ggd-faq__item[open] { background: #DCE1E9; }
.ggd-faq__q {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	padding: 22px 26px;
	font-size: 17px;
	color: var(--ggd-ink);
	cursor: pointer;
	list-style: none;
}
.ggd-faq__q::-webkit-details-marker { display: none; }
.ggd-faq__q:focus-visible { outline: 3px solid var(--ggd-blue); outline-offset: -3px; }
.ggd-faq__sign { flex: 0 0 auto; font-size: 24px; font-weight: 500; line-height: 1; color: var(--ggd-ink); }
.ggd-faq__sign::before { content: '+'; }
.ggd-faq__item[open] .ggd-faq__sign::before { content: '\2212'; }
.ggd-faq__a { padding: 20px 26px 24px; border-top: 1px solid rgba(16, 35, 76, .12); font-size: 16.5px; line-height: 1.55; color: var(--ggd-body); }

/* 11 — Locations ------------------------------------------------------ */
.ggd-locations { background: #D0D5DD; padding: 90px 0; }
.ggd-locations__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr));
	gap: 40px;
}
.ggd-location {
	position: relative;
	border-radius: 12px;
	overflow: hidden;
	min-height: 265px;
	background-color: var(--ggd-navy);
	background-size: cover;
	background-position: center;
}
.ggd-location__scrim { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(16, 35, 76, .88), rgba(16, 35, 76, .80)); }
.ggd-location__body { position: relative; padding: 26px; }
.ggd-location__city { margin: 0 0 12px; font-weight: 800; font-size: 22px; letter-spacing: 0.02em; color: #fff; }
.ggd-location__line { margin: 0 0 12px; font-weight: 700; font-size: 16px; line-height: 1.4; color: #fff; }
.ggd-location__line a { color: #fff; }
.ggd-location__line a:hover,
.ggd-location__map:hover { color: var(--ggd-gold); }
.ggd-location__map { font-weight: 700; font-size: 16px; color: #fff; }

/* 12 — Contact + booking form ----------------------------------------- */
.ggd-contact { padding: 80px 0; }
.ggd-contact__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(400px, 100%), 1fr));
	gap: 60px;
	align-items: start;
}
/* The real Form Maker form is much taller than the design mockup's, which
   would leave ~900px of empty left column. Pin the copy so it stays in view
   beside the form instead. */
@media (min-width: 900px) {
	.ggd-contact__grid > :first-child { position: sticky; top: 24px; }
}

.ggd-form { background: var(--ggd-blue); border-radius: 24px; padding: 36px clamp(20px, 3vw, 40px); }
.ggd-form__title { margin: 0 0 4px; text-align: center; font-weight: 800; font-size: clamp(26px, 2.4vw, 33px); color: var(--ggd-gold); }
.ggd-form__desc { margin: 0 0 24px; text-align: center; font-weight: 700; font-size: 16px; color: #fff; }
.ggd-form__notice { background: rgba(255, 255, 255, .15); border-radius: 8px; padding: 16px; color: #fff; font-size: 14px; margin: 0; }

/* Restyle the embedded Form Maker form to match the design.
   Form Maker's fm-style-3.css is enqueued when the shortcode runs, so it loads
   AFTER this file and its rules are (0,4,0) with !important — e.g.
   `.fm-form-container.fm-theme3 .fm-form .button-submit`. Overrides therefore
   have to out-specify it rather than rely on document order. The FM_ prefix
   below is (0,5,0), making each override (0,6,0). Selectors were read off the
   rendered form, not guessed. */
.ggd-scope .ggd-form__embed .fm-form-container.fm-theme3 .fm-form .wdform-page-and-images,
.ggd-scope .ggd-form__embed .fm-form-container.fm-theme3 .fm-form .wdform_page,
.ggd-scope .ggd-form__embed .fm-form-container.fm-theme3 .fm-form .wdform_section,
.ggd-scope .ggd-form__embed .fm-form-container.fm-theme3 .fm-form {
	background: transparent !important;
	background-color: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	padding: 0 !important;
	width: 100% !important;
	max-width: 100% !important;
	color: #fff !important;
}

.ggd-scope .ggd-form__embed .fm-form-container.fm-theme3 .fm-form .wdform-label,
.ggd-scope .ggd-form__embed .fm-form-container.fm-theme3 .fm-form label {
	color: #fff !important;
	font-weight: 700 !important;
	font-size: 15px !important;
}

.ggd-scope .ggd-form__embed .fm-form-container.fm-theme3 .fm-form input[type="text"],
.ggd-scope .ggd-form__embed .fm-form-container.fm-theme3 .fm-form input[type="email"],
.ggd-scope .ggd-form__embed .fm-form-container.fm-theme3 .fm-form input[type="tel"],
.ggd-scope .ggd-form__embed .fm-form-container.fm-theme3 .fm-form input[type="number"],
.ggd-scope .ggd-form__embed .fm-form-container.fm-theme3 .fm-form textarea,
.ggd-scope .ggd-form__embed .fm-form-container.fm-theme3 .fm-form select {
	border-radius: 8px !important;
	border: 0 !important;
	padding: 14px 16px !important;
	font-size: 16px !important;
	font-family: Arial, system-ui, sans-serif !important;
	color: var(--ggd-ink) !important;
	background-color: #fff !important;
	box-shadow: none !important;
}

.ggd-scope .ggd-form__embed .fm-form-container.fm-theme3 .fm-form input:focus,
.ggd-scope .ggd-form__embed .fm-form-container.fm-theme3 .fm-form textarea:focus,
.ggd-scope .ggd-form__embed .fm-form-container.fm-theme3 .fm-form select:focus {
	box-shadow: 0 0 0 3px var(--ggd-gold) !important;
}

.ggd-scope .ggd-form__embed .fm-form-container.fm-theme3 .fm-form .button-submit,
.ggd-scope .ggd-form__embed .fm-form-container.fm-theme3 .fm-form button.button-submit,
.ggd-scope .ggd-form__embed .fm-form-container.fm-theme3 .fm-form input[type="submit"] {
	background-color: var(--ggd-navy) !important;
	border: 0 !important;
	border-radius: 0 !important;
	padding: 16px 34px !important;
	font-weight: 800 !important;
	font-size: 19px !important;
	color: #fff !important;
	margin-top: 18px !important;
	cursor: pointer;
	transition: filter .18s ease;
}

.ggd-scope .ggd-form__embed .fm-form-container.fm-theme3 .fm-form .button-submit:hover {
	filter: brightness(1.5);
}

/* Lower-specificity baseline, kept so the panel still reads correctly if Form
   Maker's theme number changes and the fm-theme3 selectors stop matching. */
.ggd-form__embed .fm-form-container,
.ggd-form__embed .fm-form,
.ggd-form__embed .wdform_page,
.ggd-form__embed .wdform-page-and-images,
.ggd-form__embed .wdform_section,
.ggd-form__embed .wdform_column,
.ggd-form__embed .wdform_row {
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	padding: 0 !important;
	margin-inline: 0 !important;
	width: 100% !important;
	max-width: 100% !important;
}

.ggd-form__embed .wdform_row { margin-bottom: 14px !important; }

.ggd-form__embed .wdform-label,
.ggd-form__embed label {
	color: #fff !important;
	font-weight: 700 !important;
	font-size: 15px !important;
}
.ggd-form__embed .wdform-required { color: var(--ggd-gold) !important; }

.ggd-form__embed input[type="text"],
.ggd-form__embed input[type="email"],
.ggd-form__embed input[type="tel"],
.ggd-form__embed input[type="number"],
.ggd-form__embed input[type="password"],
.ggd-form__embed textarea,
.ggd-form__embed select {
	width: 100% !important;
	border: 0 !important;
	border-radius: 8px !important;
	padding: 14px 16px !important;
	font-size: 16px !important;
	font-family: Arial, system-ui, sans-serif !important;
	color: var(--ggd-ink) !important;
	background: #fff !important;
	outline: none !important;
	box-shadow: none !important;
}
.ggd-form__embed textarea { resize: vertical !important; min-height: 96px !important; }

.ggd-form__embed input:focus,
.ggd-form__embed textarea:focus,
.ggd-form__embed select:focus { box-shadow: 0 0 0 3px var(--ggd-gold) !important; }

.ggd-form__embed input[type="checkbox"],
.ggd-form__embed input[type="radio"] { accent-color: var(--ggd-gold); }

/* Field captions ("Street Address", "City"…) sit under inputs on the blue panel. */
.ggd-form__embed .wdform-element-section span,
.ggd-form__embed .wdform_address span { color: #E4E7EC !important; font-size: 12.5px !important; }

.ggd-form__embed input[type="submit"],
.ggd-form__embed button[type="submit"],
.ggd-form__embed .button-submit {
	border: 0 !important;
	border-radius: 0 !important;
	background: var(--ggd-navy) !important;
	padding: 16px 34px !important;
	font-weight: 800 !important;
	font-size: 19px !important;
	color: #fff !important;
	cursor: pointer;
	transition: filter .18s ease;
}
.ggd-form__embed input[type="submit"]:hover,
.ggd-form__embed button[type="submit"]:hover,
.ggd-form__embed .button-submit:hover { filter: brightness(1.4); }

/* Form Maker centres its submit row; keep that but give it breathing room. */
.ggd-form__embed .fm-submit-btn,
.ggd-form__embed .wdform_row:last-child { margin-top: 20px !important; }

/* Screen-reader-only utility (the parent theme does not define one). */
.ggd-scope .screen-reader-text {
	position: absolute;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}
