/* Goldsmiths Solicitors, 2026 design. Loaded only while gs26_active() (see inc/gs-2026.php).
   Flatsome prints its own typography inline after this file, so base rules are scoped to
   body.gs26 to out-rank it. */

@font-face { font-family: "Inter"; font-style: normal; font-weight: 300 700; font-display: swap; src: url(fonts/inter-normal.woff2) format("woff2"); }
@font-face { font-family: "Plus Jakarta Sans"; font-style: normal; font-weight: 400 800; font-display: swap; src: url(fonts/jakarta-normal.woff2) format("woff2"); }

:root {
	--gs-ic-bg: linear-gradient(145deg, #fdfaf3 0%, #f7f0e1 100%);
	--gs-ic-bg-hover: linear-gradient(145deg, #fbf4e3 0%, #f1e4c6 100%);
	--gs-ic-fg: #a67c32;
	--gs-ic-border: rgba(201, 164, 92, .22);
	--gs-ink: #0f1c2e;
	--gs-ink-2: #172840;
	--gs-ink-3: #243651;
	--gs-gold: #c9a45c;
	--gs-gold-hi: #d9b56b;
	--gs-gold-ink: #8a6421;
	--gs-gold-soft: #f4ecdb;
	--gs-paper: #f8f6f1;
	--gs-line: #e7e1d5;
	--gs-text: #1d2633;
	--gs-muted: #5b6474;
	--gs-on-ink: #c3cad6;
	--gs-white: #fff;
	--gs-serif: "Plus Jakarta Sans", "Inter", system-ui, -apple-system, "Segoe UI", sans-serif; /* display face (name kept for the existing rules) */
	--gs-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--gs-wrap: 1240px;
	--gs-gutter: clamp(16px, 4vw, 32px);
	--gs-r: 16px;
	--gs-r-sm: 10px;
	--gs-shadow: 0 1px 2px rgba(15, 28, 46, .06), 0 8px 24px -8px rgba(15, 28, 46, .12);
	--gs-shadow-lg: 0 2px 4px rgba(15, 28, 46, .05), 0 24px 48px -16px rgba(15, 28, 46, .22);
	--gs-util-h: 40px;
	--gs-bar-h: 84px;
}

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

html { scroll-padding-top: calc(var(--gs-bar-h) + 16px); }
body.gs26 {
	background: var(--gs-white);
	color: var(--gs-text);
	font-family: var(--gs-sans);
	font-size: 17px;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	font-feature-settings: "cv11", "ss01";
}
body.gs26 #wrapper, body.gs26 #main { background: var(--gs-white); }
body.gs26 ::selection { background: var(--gs-gold-soft); color: var(--gs-ink); }
body.gs26 :focus-visible { outline: 3px solid var(--gs-gold); outline-offset: 2px; border-radius: 4px; }
body.gs26 a { color: var(--gs-gold-ink); text-underline-offset: .18em; text-decoration-thickness: 1px; }
body.gs26 a:hover { color: var(--gs-ink); }
body.gs26 h1, body.gs26 h2, body.gs26 h3, body.gs26 h4, body.gs26 h5, body.gs26 .heading-font {
	font-family: var(--gs-serif);
	font-weight: 700;
	letter-spacing: -.022em;
	color: var(--gs-ink);
	text-wrap: balance;
}
body.gs26 h6 { font-family: var(--gs-sans); }
body.gs26 p, body.gs26 li { text-wrap: pretty; }
body.gs26 .gs-i { flex: none; vertical-align: middle; }
body.gs26 .page-wrapper { padding-top: 0; padding-bottom: 0; }

.gs-wrap { width: 100%; max-width: calc(var(--gs-wrap) + 2 * var(--gs-gutter)); margin: 0 auto; padding: 0 var(--gs-gutter); }
.gs-eyebrow {
	font: 600 .78rem/1.2 var(--gs-sans) !important;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--gs-gold-ink) !important;
	margin: 0 0 .9rem !important;
	display: inline-flex;
	align-items: center;
	gap: .6rem;
}
.gs-eyebrow::before { content: ""; width: 28px; height: 1px; background: currentColor; }
.gs-link { display: inline-flex; align-items: center; gap: .4rem; font-weight: 600; text-decoration: none !important; }
.gs-link .gs-i { transition: transform .2s; }
.gs-link:hover .gs-i { transform: translateX(3px); }
.gs-small { font-size: .85rem; color: var(--gs-muted); }

/* Buttons */
.gs-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: .55rem;
	min-height: 48px; padding: .7rem 1.35rem;
	font: 600 .97rem/1.1 var(--gs-sans);
	letter-spacing: 0; text-transform: none;
	border-radius: 999px; border: 1.5px solid transparent;
	text-decoration: none !important; white-space: nowrap; cursor: pointer;
	transition: background-color .2s, color .2s, border-color .2s, transform .2s, box-shadow .2s;
}
.gs-btn:active { transform: translateY(1px); }
.gs-btn-lg { min-height: 56px; padding: .9rem 1.7rem; font-size: 1.02rem; }
.gs-btn-block { width: 100%; }
body.gs26 .gs-btn-gold { background: var(--gs-gold); color: var(--gs-ink); }
body.gs26 .gs-btn-gold:hover { background: var(--gs-gold-hi); color: var(--gs-ink); box-shadow: 0 8px 20px -8px rgba(201, 164, 92, .7); }
body.gs26 .gs-btn-ink { background: var(--gs-ink); color: #fff; }
body.gs26 .gs-btn-ink:hover { background: var(--gs-ink-3); color: #fff; }
body.gs26 .gs-btn-ghost { background: rgba(255, 255, 255, .06); color: #fff; border-color: rgba(255, 255, 255, .45); }
body.gs26 .gs-btn-ghost:hover { background: #fff; color: var(--gs-ink); border-color: #fff; }
body.gs26 .gs-btn-line { background: transparent; color: var(--gs-ink); border-color: var(--gs-line); }
body.gs26 .gs-btn-line:hover { border-color: var(--gs-ink); color: var(--gs-ink); }

/* ---------------------------------------------------------------- header */

body.gs26 #header.header {
	position: sticky;
	top: calc(-1 * var(--gs-util-h));
	z-index: 1100;
	background: #fff;
	min-height: 0;
}
body.gs26.admin-bar #header.header { top: calc(32px - var(--gs-util-h)); }
@media (max-width: 782px) { body.gs26.admin-bar #header.header { top: calc(46px - var(--gs-util-h)); } }
body.gs26 #header .header-wrapper { max-width: none; background: transparent; box-shadow: none; }
/* Flatsome's own sticky script still runs (has-sticky sticky-jump) and pins .header-wrapper as a
   105px fixed layer with the utility bar showing, covering anything sticky below the header.
   Our #header is already position: sticky, so cancel Flatsome's version. */
body.gs26 #header .header-wrapper.stuck { position: relative !important; top: auto !important; left: auto !important; transform: none !important; animation: none !important; box-shadow: none !important; }
body.gs26 #header.has-sticky { height: auto !important; }

.gs-util { background: var(--gs-ink); color: var(--gs-on-ink); font-size: .82rem; height: var(--gs-util-h); }
.gs-util-in { display: flex; align-items: center; justify-content: space-between; gap: 1rem; height: 100%; }
.gs-util p, .gs-util-alert { margin: 0; display: flex; align-items: center; gap: .5rem; white-space: nowrap; overflow: hidden; min-width: 0; }
.gs-util-alert .gs-i { color: var(--gs-gold-hi); }
body.gs26 .gs-util a { color: var(--gs-on-ink); text-decoration: none; }
body.gs26 .gs-util-alert u { color: #fff; text-decoration-color: rgba(217, 181, 107, .7); text-underline-offset: .2em; }
body.gs26 .gs-util a:hover, body.gs26 .gs-util a:hover u { color: var(--gs-gold-hi); }
.gs-util-alert > span { overflow: hidden; text-overflow: ellipsis; }
.gs-util-meta { gap: 1.4rem !important; }
.gs-util-meta > * { display: inline-flex; align-items: center; gap: .4rem; white-space: nowrap; }
body.gs26 .gs-util-meta a { text-decoration: none; }

.gs-bar { background: rgba(255, 255, 255, .97); border-bottom: 1px solid var(--gs-line); transition: box-shadow .25s; }
@supports (backdrop-filter: blur(8px)) { .gs-bar { background: rgba(255, 255, 255, .88); backdrop-filter: saturate(1.4) blur(12px); } }
.gs-scrolled .gs-bar { box-shadow: 0 6px 24px -12px rgba(15, 28, 46, .25); }
.gs-bar-in { display: flex; align-items: center; gap: 1.5rem; height: var(--gs-bar-h); }

.gs-logo { display: inline-flex; align-items: center; gap: .75rem; text-decoration: none !important; color: var(--gs-ink) !important; flex: none; }
.gs-mark {
	display: inline-flex; align-items: center; gap: 7px;
	height: 46px; padding: 0 11px; border-radius: 8px;
	background: var(--gs-ink); color: #fff;
	font: 700 1.55rem/1 var(--gs-serif);
}
.gs-mark i { width: 1.5px; height: 26px; background: var(--gs-gold); }
.gs-word { display: flex; flex-direction: column; line-height: 1.05; }
.gs-word-1 { font: 700 1.32rem/1.05 var(--gs-serif); letter-spacing: -.01em; }
.gs-word-2 { font: 600 .68rem/1.4 var(--gs-sans); letter-spacing: .26em; text-transform: uppercase; color: var(--gs-muted); }

.gs-nav { margin-left: auto; }
.gs-nav-list { display: flex; align-items: center; gap: .15rem; margin: 0; padding: 0; list-style: none; }
.gs-nav-item { position: relative; display: flex; align-items: center; margin: 0 !important; }
body.gs26 .gs-nav-link {
	display: block; padding: .55rem .75rem; border-radius: 8px;
	font: 500 .95rem/1.2 var(--gs-sans); color: var(--gs-ink); text-decoration: none;
	text-transform: none; letter-spacing: 0;
}
body.gs26 .gs-nav-link:hover, .gs-nav-item.is-current > .gs-nav-link { color: var(--gs-gold-ink); }
.gs-nav-item.is-current > .gs-nav-link { box-shadow: inset 0 -2px 0 var(--gs-gold); border-radius: 0; }
.has-sub > .gs-nav-link { padding-right: .2rem; }
.gs-sub-toggle {
	display: inline-grid; place-items: center; width: 22px; height: 32px; margin: 0; padding: 0;
	background: none; border: 0; color: var(--gs-muted); cursor: pointer; min-height: 0; box-shadow: none;
}
.gs-sub-toggle .gs-i { transition: transform .2s; }
.gs-sub {
	position: absolute; top: calc(100% + 10px); left: 0; z-index: 5;
	min-width: 250px; margin: 0; padding: .5rem; list-style: none;
	background: #fff; border: 1px solid var(--gs-line); border-radius: 14px; box-shadow: var(--gs-shadow-lg);
	opacity: 0; visibility: hidden; transform: translateY(6px);
	transition: opacity .18s, transform .18s, visibility 0s .18s;
}
.gs-sub::before { content: ""; position: absolute; left: 0; right: 0; top: -12px; height: 12px; }
.gs-sub li { margin: 0 !important; }
body.gs26 .gs-sub a { display: block; padding: .6rem .8rem; border-radius: 8px; color: var(--gs-ink); font-size: .93rem; font-weight: 500; text-decoration: none; }
body.gs26 .gs-sub a:hover, body.gs26 .gs-sub a[aria-current] { background: var(--gs-paper); color: var(--gs-gold-ink); }
.has-sub:hover > .gs-sub, .has-sub:focus-within > .gs-sub, .has-sub.is-open > .gs-sub {
	opacity: 1; visibility: visible; transform: none; transition: opacity .18s, transform .18s;
}
.has-sub:hover .gs-sub-toggle .gs-i, .has-sub.is-open .gs-sub-toggle .gs-i { transform: rotate(180deg); }

.gs-bar-cta { display: flex; align-items: center; gap: 1rem; flex: none; }
body.gs26 .gs-phone { display: inline-flex; align-items: center; gap: .6rem; text-decoration: none; color: var(--gs-ink); }
.gs-phone-ic { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--gs-gold-soft); color: var(--gs-gold-ink); }
.gs-phone-tx { display: flex; flex-direction: column; line-height: 1.15; }
.gs-phone-tx small { font-size: .72rem; color: var(--gs-muted); font-weight: 500; }
.gs-phone-tx strong { font-size: 1.02rem; font-weight: 700; letter-spacing: .01em; }
body.gs26 .gs-phone:hover strong { color: var(--gs-gold-ink); }
.gs-bar-btn { min-height: 46px; }
.gs-burger {
	display: none; place-items: center; width: 46px; height: 46px; margin: 0; padding: 0;
	border: 1px solid var(--gs-line); border-radius: 12px; background: #fff; color: var(--gs-ink); cursor: pointer; min-height: 0;
}

/* Drawer (phones and tablets) */
.gs-drawer { position: fixed; inset: 0; z-index: 1000; background: rgba(15, 28, 46, .5); }
.gs-drawer[hidden] { display: none; }
.gs-drawer-panel {
	position: absolute; top: 0; right: 0; bottom: 0; width: min(420px, 100%);
	background: #fff; overflow-y: auto; padding: 1rem 1.25rem 2rem; display: flex; flex-direction: column;
	animation: gs-slide .25s ease-out;
}
@keyframes gs-slide { from { transform: translateX(100%); } to { transform: none; } }
.gs-drawer-head { display: flex; align-items: center; justify-content: space-between; padding-bottom: 1rem; border-bottom: 1px solid var(--gs-line); }
.gs-drawer-close { display: grid; place-items: center; width: 44px; height: 44px; margin: 0; padding: 0; background: var(--gs-paper); border: 0; border-radius: 12px; color: var(--gs-ink); cursor: pointer; min-height: 0; }
.gs-dnav { list-style: none; margin: .5rem 0 0; padding: 0; }
.gs-dnav > li { margin: 0 !important; border-bottom: 1px solid var(--gs-line); }
body.gs26 .gs-dnav a, .gs-dnav summary {
	display: flex; align-items: center; justify-content: space-between;
	padding: 1rem .25rem; font: 500 1.08rem/1.3 var(--gs-sans); color: var(--gs-ink); text-decoration: none; cursor: pointer; list-style: none;
}
.gs-dnav summary::-webkit-details-marker { display: none; }
.gs-dnav details[open] summary .gs-i { transform: rotate(180deg); }
.gs-dnav details ul { list-style: none; margin: 0 0 .75rem; padding: 0 0 0 .75rem; border-left: 2px solid var(--gs-gold-soft); }
.gs-dnav details li { margin: 0 !important; }
body.gs26 .gs-dnav details a { padding: .6rem .5rem; font-size: 1rem; color: var(--gs-muted); }
.gs-drawer-cta { margin-top: auto; padding-top: 1.5rem; display: grid; gap: .75rem; }
.gs-drawer-cta p { margin: .5rem 0 0; font-size: .88rem; color: var(--gs-muted); text-align: center; }
body.gs-lock { overflow: hidden; }

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

body.gs26 #footer.footer-wrapper { background: var(--gs-ink); color: var(--gs-on-ink); }
.gs-cta-band { background: linear-gradient(120deg, var(--gs-ink-2), var(--gs-ink) 60%); border-bottom: 1px solid rgba(255, 255, 255, .08); position: relative; overflow: hidden; }
.gs-cta-band::after {
	content: ""; position: absolute; right: -120px; top: -160px; width: 480px; height: 480px; border-radius: 50%;
	background: radial-gradient(circle, rgba(201, 164, 92, .22), transparent 65%); pointer-events: none;
}
.gs-cta-in { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding-top: clamp(40px, 6vw, 64px); padding-bottom: clamp(40px, 6vw, 64px); position: relative; z-index: 1; }
body.gs26 .gs-cta-band h2 { color: #fff; font-size: clamp(1.6rem, 3vw, 2.2rem); margin: 0 0 .4rem; }
.gs-cta-band p { margin: 0; color: var(--gs-on-ink); max-width: 560px; }
.gs-cta-actions { display: flex; gap: .75rem; flex-wrap: wrap; flex: none; }

.gs-foot { padding: clamp(48px, 7vw, 80px) 0 2rem; font-size: .94rem; }
.gs-foot-grid { display: grid; grid-template-columns: 1.3fr 1fr 2fr; gap: 2.5rem; }
.gs-foot-wide ul { display: block !important; columns: 2; column-gap: 2rem; }
.gs-foot-wide li { break-inside: avoid; margin: 0 0 .55rem !important; }
body.gs26 .gs-foot .gs-logo { color: #fff !important; }
.gs-foot .gs-mark { background: #fff; color: var(--gs-ink); }
.gs-foot .gs-word-2 { color: var(--gs-on-ink); }
.gs-foot address { font-style: normal; margin: 1.4rem 0 1rem; line-height: 1.6; color: var(--gs-on-ink); }
.gs-foot-contact { list-style: none; margin: 0; padding: 0; display: grid; gap: .55rem; }
.gs-foot-contact li { display: flex; align-items: center; gap: .6rem; margin: 0 !important; }
.gs-foot-contact .gs-i { color: var(--gs-gold-hi); }
body.gs26 .gs-foot a { color: #fff; text-decoration: none; }
body.gs26 .gs-foot a:hover { color: var(--gs-gold-hi); text-decoration: underline; }
body.gs26 .gs-foot h3 { font: 600 .78rem/1.2 var(--gs-sans); letter-spacing: .14em; text-transform: uppercase; color: var(--gs-gold-hi); margin: .4rem 0 1.1rem; }
.gs-foot-col ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .55rem; }
.gs-foot-col li { margin: 0 !important; }
body.gs26 .gs-foot-col a { color: var(--gs-on-ink); }
.gs-badges {
	display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem;
	margin-top: 3rem; padding: 1.5rem; border-radius: var(--gs-r); background: #fff;
}
.gs-sra { width: 190px; flex: none; }
.gs-badge img { display: block; height: 64px; width: auto; }
.gs-badge-wide img { height: 56px; }
.gs-badge-sq img { height: 84px; border-radius: 8px; }
.gs-legal { margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid rgba(255, 255, 255, .1); font-size: .82rem; color: #97a2b4; display: flex; justify-content: space-between; gap: 2rem; }
.gs-legal p { margin: 0; max-width: 820px; }
body.gs26 .back-to-top { background: var(--gs-gold) !important; border-color: var(--gs-gold) !important; color: var(--gs-ink) !important; }

/* -------------------------------------------------------------- sections */

.gs-sec { padding: clamp(56px, 8vw, 104px) 0; }
.gs-sec-tight { padding: clamp(28px, 4vw, 48px) 0; }
.gs-sec-paper { background: var(--gs-paper); }
.gs-sec-ink { background: var(--gs-ink); color: var(--gs-on-ink); }
body.gs26 .gs-sec-ink h2, body.gs26 .gs-sec-ink h3, body.gs26 .gs-sec-ink strong { color: #fff; }
.gs-sec-ink .gs-eyebrow { color: var(--gs-gold-hi) !important; }
.gs-sec-head { max-width: 720px; margin-bottom: clamp(32px, 4vw, 52px); }
body.gs26 .gs-sec-head h2, body.gs26 .gs-split h2, body.gs26 .gs-faq-wrap h2, body.gs26 .gs-visit h2 { font-size: clamp(1.85rem, 3.3vw, 2.6rem); line-height: 1.12; margin: 0 0 1rem; letter-spacing: -.028em; }
.gs-sec-head > p:not(.gs-eyebrow) { font-size: 1.1rem; color: var(--gs-muted); margin: 0; }
.gs-sec-head-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 1.5rem; max-width: none; flex-wrap: wrap; }
.gs-sec-head-row h2 { margin-bottom: 0 !important; }

/* ------------------------------------------------------------------ home */

.gs-hero { position: relative; isolation: isolate; color: #fff; overflow: hidden; background: var(--gs-ink); }
.gs-hero-bg { position: absolute; inset: 0; z-index: -1; }
.gs-hero-bg img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 40%; }
.gs-hero-bg::after {
	content: ""; position: absolute; inset: 0;
	background:
		linear-gradient(90deg, rgba(15, 28, 46, .96) 0%, rgba(15, 28, 46, .86) 42%, rgba(15, 28, 46, .45) 100%),
		linear-gradient(0deg, rgba(15, 28, 46, .6), transparent 40%);
}
.gs-hero-in { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 3rem; align-items: center; padding-top: clamp(56px, 9vw, 120px); padding-bottom: clamp(56px, 9vw, 120px); }
.gs-hero .gs-eyebrow { color: var(--gs-gold-hi) !important; }
body.gs26 .gs-hero h1 { color: #fff; font-size: clamp(2.4rem, 5.4vw, 4.2rem); line-height: 1.04; letter-spacing: -.035em; margin: 0 0 1.3rem; max-width: 13ch; font-weight: 750; }
.gs-hero h1 em { font-style: normal; color: var(--gs-gold-hi); font-weight: inherit; }
.gs-hero-lede { font-size: clamp(1.06rem, 1.6vw, 1.22rem); line-height: 1.6; color: #dfe4ec; max-width: 580px; margin: 0 0 2rem; }
.gs-hero-actions { display: flex; flex-wrap: wrap; gap: .8rem; }
.gs-proof { list-style: none; margin: 2.4rem 0 0; padding: 1.4rem 0 0; display: flex; flex-wrap: wrap; gap: .7rem 1.6rem; border-top: 1px solid rgba(255, 255, 255, .14); }
.gs-proof li { display: flex; align-items: center; gap: .5rem; margin: 0 !important; font-size: .9rem; color: #dfe4ec; }
.gs-proof .gs-i { color: var(--gs-gold-hi); }
.gs-hero-card { background: rgba(255, 255, 255, .97); color: var(--gs-text); border-radius: 20px; overflow: hidden; box-shadow: 0 30px 60px -20px rgba(0, 0, 0, .55); }
.gs-hero-award { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; }
.gs-hero-card-body { padding: 1.3rem 1.4rem 1.4rem; }
.gs-hero-card-k { margin: 0; font-size: .72rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--gs-muted); }
.gs-hero-card-v { margin: .15rem 0 .8rem; font-weight: 600; color: var(--gs-ink); }

.gs-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
body.gs26 .gs-card {
	position: relative; display: flex; flex-direction: column; gap: .3rem;
	padding: 1.8rem 1.7rem 1.6rem; border-radius: var(--gs-r);
	background: #fff; border: 1px solid var(--gs-line); color: var(--gs-text); text-decoration: none;
	transition: transform .25s, box-shadow .25s, border-color .25s;
}
body.gs26 .gs-card:hover { transform: translateY(-4px); box-shadow: var(--gs-shadow-lg); border-color: transparent; color: var(--gs-text); }
.gs-card-ic { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 14px; background: var(--gs-gold-soft); color: var(--gs-gold-ink); margin-bottom: 1rem; transition: background .25s, color .25s; }
.gs-card:hover .gs-card-ic { background: var(--gs-ink); color: var(--gs-gold-hi); }
body.gs26 .gs-card h3 { font-size: 1.45rem; margin: 0 0 .35rem; }
.gs-card p { margin: 0 0 1.2rem; color: var(--gs-muted); font-size: .97rem; }
.gs-card-more { margin-top: auto; display: inline-flex; align-items: center; gap: .4rem; font-weight: 600; font-size: .93rem; color: var(--gs-gold-ink); }
.gs-card:hover .gs-card-more .gs-i { transform: translateX(3px); }
.gs-card-more .gs-i { transition: transform .2s; }

.gs-split { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: clamp(32px, 6vw, 88px); align-items: start; }
.gs-split-copy p:not(.gs-eyebrow) { font-size: 1.08rem; }
.gs-why { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; }
.gs-why li { display: flex; gap: 1rem; margin: 0 !important; padding: 1.3rem 1.4rem; border-radius: var(--gs-r); background: rgba(255, 255, 255, .04); border: 1px solid rgba(255, 255, 255, .09); }
.gs-why .gs-i { color: var(--gs-gold-hi); margin-top: 2px; }
.gs-why strong { display: block; font: 650 1.2rem/1.3 var(--gs-serif); margin-bottom: .25rem; }
.gs-why span { font-size: .95rem; }

.gs-team { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
body.gs26 .gs-person { display: flex; flex-direction: column; gap: 1rem; padding: 1.8rem; border-radius: var(--gs-r); border: 1px solid var(--gs-line); background: #fff; text-decoration: none; color: var(--gs-text); }
.gs-mono { display: grid; place-items: center; width: 64px; height: 64px; border-radius: 50%; background: var(--gs-ink); color: var(--gs-gold-hi); font: 650 1.4rem/1 var(--gs-serif); letter-spacing: .02em; }
body.gs26 .gs-person h3 { font-size: 1.5rem; margin: 0; }
.gs-role { margin: .1rem 0 .7rem; font-size: .85rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--gs-gold-ink); }
.gs-person p:last-child { margin: 0; color: var(--gs-muted); font-size: .97rem; }
body.gs26 .gs-person-join { background: var(--gs-paper); border-style: dashed; transition: border-color .2s, background .2s; }
body.gs26 .gs-person-join:hover { border-color: var(--gs-gold); background: var(--gs-gold-soft); color: var(--gs-text); }
.gs-person-join .gs-mono { background: var(--gs-gold); color: var(--gs-ink); }

.gs-fees { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; margin: 2rem 0 1rem; }
body.gs26 .gs-fee { display: flex; flex-direction: column; gap: .35rem; padding: 1.6rem; border-radius: var(--gs-r); background: #fff; border: 1px solid var(--gs-line); text-decoration: none; color: var(--gs-text); transition: transform .25s, box-shadow .25s; }
body.gs26 .gs-fee:hover { transform: translateY(-3px); box-shadow: var(--gs-shadow-lg); color: var(--gs-text); }
.gs-fee-ic { color: var(--gs-gold-ink); }
.gs-fee-t { font-weight: 600; color: var(--gs-ink); margin-top: .4rem; }
.gs-fee-p { font: 650 1.65rem/1.2 var(--gs-serif); color: var(--gs-ink); }
.gs-fee-p small { font: 500 .8rem var(--gs-sans); color: var(--gs-muted); }
.gs-fee-l { margin-top: .6rem; display: inline-flex; align-items: center; gap: .35rem; font-size: .9rem; font-weight: 600; color: var(--gs-gold-ink); }
.gs-fees-note { font-size: .9rem; color: var(--gs-muted); margin: 0; }

.gs-lenders { padding: 2.5rem 0; border-top: 1px solid var(--gs-line); border-bottom: 1px solid var(--gs-line); overflow: hidden; }
.gs-lenders p { text-align: center; font-size: .8rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--gs-muted); margin: 0 0 1.4rem; }
.gs-marquee { mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.gs-marquee-track { display: flex; align-items: center; gap: 56px; width: max-content; animation: gs-marquee 60s linear infinite; }
.gs-marquee:hover .gs-marquee-track { animation-play-state: paused; }
.gs-marquee img { height: 52px; width: auto; max-width: none; filter: grayscale(1); opacity: .75; transition: filter .3s, opacity .3s; }
.gs-marquee img:hover { filter: none; opacity: 1; }
@keyframes gs-marquee { to { transform: translateX(-50%); } }

.gs-rev-links { display: flex; gap: .6rem; flex-wrap: wrap; }
.gs-reviews { min-height: 120px; }

.gs-faq-wrap { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(32px, 6vw, 88px); }
.gs-faq-wrap > div > p:not(.gs-eyebrow) { color: var(--gs-muted); font-size: 1.08rem; }
.gs-faq details { border-bottom: 1px solid var(--gs-line); }
.gs-faq details:first-child { border-top: 1px solid var(--gs-line); }
.gs-faq summary {
	display: flex; justify-content: space-between; align-items: center; gap: 1rem;
	padding: 1.3rem 0; cursor: pointer; list-style: none;
	font: 650 1.25rem/1.35 var(--gs-serif); color: var(--gs-ink);
}
.gs-faq summary::-webkit-details-marker { display: none; }
.gs-faq summary::after {
	content: ""; flex: none; width: 30px; height: 30px; border-radius: 50%;
	background: var(--gs-gold-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a67c32' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E") center/16px no-repeat;
	transition: transform .25s;
}
.gs-faq details[open] summary::after { transform: rotate(45deg); }
.gs-faq details p { margin: 0 0 1.4rem; color: var(--gs-muted); max-width: 640px; }

.gs-visit { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(32px, 5vw, 72px); align-items: center; }
.gs-dl { margin: 1.6rem 0 2rem; display: grid; gap: .9rem; }
.gs-dl div { display: grid; grid-template-columns: 90px 1fr; gap: 1rem; padding-bottom: .9rem; border-bottom: 1px solid var(--gs-line); }
.gs-dl dt { font-size: .78rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--gs-muted); padding-top: .2rem; }
.gs-dl dd { margin: 0; font-weight: 500; color: var(--gs-ink); text-transform: none; letter-spacing: 0; }
.gs-map { border-radius: 20px; overflow: hidden; box-shadow: var(--gs-shadow-lg); aspect-ratio: 4 / 3; background: var(--gs-paper); }
.gs-map iframe { display: block; width: 100%; height: 100%; border: 0; }
.gs-map .gs-cmedia { height: 100%; min-height: 0; }
.gs-map-tall { aspect-ratio: 16 / 11; border-radius: var(--gs-r) var(--gs-r) 0 0; box-shadow: none; }

/* Homepage: specialist areas, excellence band, quote */
.gs-areas .gs-wrap { display: grid; gap: clamp(40px, 6vw, 80px); }
.gs-area { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 72px); align-items: center; }
.gs-area-flip .gs-area-img { order: -1; }
body.gs26 .gs-area h2 { font-size: clamp(1.9rem, 3.2vw, 2.6rem); line-height: 1.1; margin: 0 0 1rem; }
.gs-area-copy p:not(.gs-eyebrow) { color: var(--gs-muted); font-size: 1.05rem; }
.gs-area-img { border-radius: 20px; overflow: hidden; aspect-ratio: 4 / 3; box-shadow: var(--gs-shadow-lg); }
.gs-area-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gs-excel { position: relative; isolation: isolate; color: #fff; text-align: center; overflow: hidden; }
.gs-excel-bg { position: absolute; inset: 0; z-index: -1; }
.gs-excel-bg img { width: 100%; height: 100%; object-fit: cover; }
.gs-excel-bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(15, 28, 46, .88), rgba(15, 28, 46, .8)); }
.gs-excel-in { padding-top: clamp(64px, 9vw, 112px); padding-bottom: clamp(64px, 9vw, 112px); max-width: 860px; }
.gs-excel-in > .gs-i { color: var(--gs-gold-hi); margin-bottom: 1rem; }
body.gs26 .gs-excel h2 { color: #fff; font-size: clamp(2rem, 4vw, 3rem); margin: 0 0 1.2rem; }
.gs-excel p { color: #dfe4ec; font-size: clamp(1.05rem, 1.6vw, 1.2rem); margin: 0 0 .8rem; }
.gs-excel .gs-excel-tag { font: 700 1.35rem/1.4 var(--gs-serif); color: var(--gs-gold-hi); margin-top: 1.4rem; }
.gs-quote { background: var(--gs-paper); padding: clamp(48px, 7vw, 88px) 0; text-align: center; border-top: 1px solid var(--gs-line); border-bottom: 1px solid var(--gs-line); }
.gs-quote blockquote { margin: 0; padding: 0; border: 0; }
.gs-quote blockquote p { font: 700 clamp(1.8rem, 4vw, 3rem)/1.2 var(--gs-serif); color: var(--gs-ink); margin: 0 0 .8rem; }
.gs-quote cite { font: 600 .8rem/1 var(--gs-sans); letter-spacing: .14em; text-transform: uppercase; color: var(--gs-gold-ink); font-style: normal; }
.gs-visit-addr { font-style: normal; font-size: 1.1rem; line-height: 1.6; color: var(--gs-ink); margin: .2rem 0 0; }

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

.gs-phero {
	position: relative; overflow: hidden; color: var(--gs-on-ink);
	background:
		radial-gradient(700px 300px at 85% 0%, rgba(201, 164, 92, .18), transparent 70%),
		linear-gradient(135deg, var(--gs-ink-2), var(--gs-ink));
	padding: clamp(40px, 6vw, 72px) 0 clamp(44px, 6vw, 76px);
}
.gs-phero::after {
	content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .5;
	background-image: linear-gradient(rgba(255, 255, 255, .035) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .035) 1px, transparent 1px);
	background-size: 48px 48px;
	mask-image: linear-gradient(90deg, transparent 30%, #000);
}
.gs-phero .gs-wrap { position: relative; z-index: 1; }
body.gs26 .gs-phero h1 { color: #fff; font-size: clamp(2rem, 4.2vw, 3.2rem); line-height: 1.08; margin: .9rem 0 .9rem; max-width: 24ch; letter-spacing: -.03em; }
.gs-phero-lede { font-size: clamp(1.02rem, 1.5vw, 1.18rem); max-width: 660px; margin: 0; color: #d6dce6; }
.gs-crumbs ol { display: flex; flex-wrap: wrap; gap: .3rem; list-style: none; margin: 0; padding: 0; font-size: .85rem; }
.gs-crumbs li { margin: 0 !important; display: flex; align-items: center; gap: .3rem; color: #aab4c3; }
.gs-crumbs li + li::before { content: "/"; color: rgba(255, 255, 255, .3); }
body.gs26 .gs-crumbs a { color: #d6dce6; text-decoration: none; }
body.gs26 .gs-crumbs a:hover { color: var(--gs-gold-hi); }

.gs-ways { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; margin-top: calc(-1 * clamp(28px, 4vw, 48px) - 36px); position: relative; z-index: 2; }
body.gs26 .gs-way { display: flex; flex-direction: column; gap: .2rem; padding: 1.6rem; border-radius: var(--gs-r); background: #fff; border: 1px solid var(--gs-line); box-shadow: var(--gs-shadow); text-decoration: none; color: var(--gs-text); transition: transform .25s, box-shadow .25s; min-width: 0; }
body.gs26 .gs-way:hover { transform: translateY(-3px); box-shadow: var(--gs-shadow-lg); color: var(--gs-text); }
.gs-way-ic { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 12px; background: var(--gs-gold-soft); color: var(--gs-gold-ink); margin-bottom: .8rem; }
.gs-way-k { font-size: .75rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--gs-muted); }
.gs-way-v { font: 650 1.4rem/1.25 var(--gs-serif); color: var(--gs-ink); }
.gs-way-email { font-size: 1.02rem; font-family: var(--gs-sans); font-weight: 600; }
.gs-way-s { font-size: .9rem; color: var(--gs-muted); }

.gs-contact-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: 1.5rem; align-items: start; }
.gs-formcard { padding: clamp(24px, 4vw, 44px); border-radius: 20px; background: var(--gs-paper); border: 1px solid var(--gs-line); scroll-margin-top: calc(var(--gs-bar-h) + 16px); }
body.gs26 .gs-formcard h2 { font-size: clamp(1.7rem, 3vw, 2.2rem); margin: 0 0 .6rem; }
.gs-formcard > p:not(.gs-eyebrow):not(.gs-small) { color: var(--gs-muted); margin-bottom: 1.6rem; }
.gs-findus { border-radius: 20px; border: 1px solid var(--gs-line); background: #fff; overflow: hidden; position: sticky; top: calc(var(--gs-bar-h) + 20px); }
.gs-findus-body { padding: 1.6rem 1.7rem 1.8rem; }
body.gs26 .gs-findus h2 { font-size: 1.7rem; margin: 0 0 .8rem; }
body.gs26 .gs-findus h3 { font-size: 1.2rem; margin: 1.8rem 0 .6rem; }
.gs-findus address { font-style: normal; line-height: 1.6; margin-bottom: .8rem; }
.gs-findus p { color: var(--gs-muted); font-size: .95rem; }
.gs-findus-actions { display: flex; flex-wrap: wrap; gap: .6rem; }
.gs-hours { width: 100%; border-collapse: collapse; margin: 0; font-size: .95rem; }
.gs-hours th, .gs-hours td { padding: .65rem 0; border-bottom: 1px solid var(--gs-line); text-align: left; font-weight: 500; }
.gs-hours td { text-align: right; color: var(--gs-ink); font-weight: 600; }
.gs-intro h2 { font-size: clamp(1.8rem, 3vw, 2.4rem); margin: 0 0 1.2rem; }
.gs-intro-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; color: var(--gs-muted); }
.gs-findus-hours { display: flex; align-items: center; gap: .5rem; font-weight: 600; color: var(--gs-ink) !important; }
body.gs26 a.gs-notice { color: var(--gs-text); text-decoration: none; align-items: center; font-weight: 500; }
body.gs26 a.gs-notice:hover { border-color: var(--gs-gold); color: var(--gs-ink); }
.gs-notice { display: flex; gap: 1.2rem; padding: 1.6rem 1.8rem; border-radius: var(--gs-r); background: #fff8eb; border: 1px solid #ecd9ae; }
.gs-notice-ic { color: var(--gs-gold-ink); flex: none; }
body.gs26 .gs-notice h2 { font-size: 1.4rem; margin: 0 0 .4rem; }
.gs-notice p { margin: 0 0 .7rem; }
.gs-company { margin-top: 2rem; max-width: 820px; }
body.gs26 .gs-company h2 { font-size: 1.25rem; margin: 0 0 .4rem; }
.gs-company p { color: var(--gs-muted); font-size: .93rem; }

/* WPForms enquiry form */
body.gs26 .wpforms-container { margin: 0 !important; }
body.gs26 .wpforms-container .wpforms-field { padding: 0 0 1.1rem !important; }
body.gs26 .wpforms-container .wpforms-field-label, body.gs26 .wpforms-container .wpforms-field-sublabel { font-family: var(--gs-sans) !important; color: var(--gs-ink) !important; }
body.gs26 .wpforms-container .wpforms-field-label { font-size: .92rem !important; font-weight: 600 !important; margin-bottom: .4rem !important; }
body.gs26 .wpforms-container .wpforms-field-sublabel { font-size: .8rem !important; color: var(--gs-muted) !important; }
body.gs26 .wpforms-container input:not([type=submit]):not([type=checkbox]):not([type=radio]),
body.gs26 .wpforms-container select,
body.gs26 .wpforms-container textarea {
	width: 100% !important; max-width: none !important; min-height: 50px;
	padding: .7rem .9rem !important; border-radius: var(--gs-r-sm) !important;
	border: 1px solid #d5cdbd !important; background: #fff !important; box-shadow: none !important;
	font: 400 1rem/1.4 var(--gs-sans) !important; color: var(--gs-text) !important;
	transition: border-color .2s, box-shadow .2s;
}
body.gs26 .wpforms-container textarea { min-height: 130px !important; }
body.gs26 .wpforms-container input:focus, body.gs26 .wpforms-container select:focus, body.gs26 .wpforms-container textarea:focus {
	border-color: var(--gs-gold-ink) !important; box-shadow: 0 0 0 4px rgba(201, 164, 92, .25) !important; outline: 0 !important;
}
body.gs26 .wpforms-container .wpforms-field-medium { max-width: none !important; }
body.gs26 .wpforms-container button[type=submit], body.gs26 .wpforms-container .wpforms-submit {
	background: var(--gs-ink) !important; color: #fff !important; border: 0 !important;
	border-radius: 999px !important; min-height: 54px !important; padding: .85rem 2rem !important;
	font: 600 1rem/1 var(--gs-sans) !important; cursor: pointer; width: 100%; text-transform: none !important;
}
body.gs26 .wpforms-container button[type=submit]:hover { background: var(--gs-ink-3) !important; }
body.gs26 .wpforms-container .wpforms-required-label { color: #b4232a !important; }
body.gs26 div.wpforms-container-full .wpforms-confirmation-container-full { background: #eef7ef !important; border-color: #b6dbbb !important; border-radius: var(--gs-r-sm); color: var(--gs-text); }

/* Contact Form 7 (callback forms on the family pages) */
body.gs26 .wpcf7 label { display: block; font-weight: 600; font-size: .92rem; color: var(--gs-ink); margin-bottom: .9rem; }
body.gs26 .wpcf7 input:not([type=submit]):not([type=checkbox]):not([type=radio]), body.gs26 .wpcf7 select, body.gs26 .wpcf7 textarea {
	width: 100%; min-height: 48px; margin-top: .35rem; padding: .65rem .9rem; border-radius: var(--gs-r-sm);
	border: 1px solid #d5cdbd; background: #fff; box-shadow: none; font: 400 1rem/1.4 var(--gs-sans); color: var(--gs-text);
}
body.gs26 .wpcf7 textarea { min-height: 120px; }
body.gs26 .wpcf7 input:focus, body.gs26 .wpcf7 textarea:focus { border-color: var(--gs-gold-ink); box-shadow: 0 0 0 4px rgba(201, 164, 92, .25); outline: 0; }
body.gs26 .wpcf7 input[type=submit] {
	background: var(--gs-ink) !important; color: #fff !important; border: 0; border-radius: 999px; min-height: 50px; padding: .8rem 2rem;
	font: 600 1rem/1 var(--gs-sans); text-transform: none; letter-spacing: 0; cursor: pointer; margin: .5rem 0 0;
}
body.gs26 .wpcf7 input[type=submit]:hover { background: var(--gs-ink-3) !important; }

/* ------------------------------------------------------- prose pages */

body.gs26-prose #content.page-wrapper { padding: clamp(36px, 5vw, 64px) 0 clamp(56px, 7vw, 96px); }
body.gs26-prose #content > .row-main { max-width: calc(820px + 2 * var(--gs-gutter)); padding: 0 var(--gs-gutter); }
body.gs26-prose #content > .row-main > .col { padding: 0; }
body.gs26-prose .entry-content, body.gs26-prose #content .col-inner { font-size: 1.06rem; line-height: 1.75; }
body.gs26-prose #content .col-inner > p:first-child { margin-top: 0; }
body.gs26-prose #content h2 { font-size: clamp(1.6rem, 2.6vw, 2.05rem); line-height: 1.15; margin: 2.6rem 0 .9rem; }
body.gs26-prose #content h3 { font-size: clamp(1.3rem, 2vw, 1.55rem); line-height: 1.25; margin: 2.2rem 0 .7rem; }
body.gs26-prose #content h4 { font-size: 1.2rem; margin: 1.8rem 0 .6rem; }
body.gs26-prose #content p { margin: 0 0 1.15rem; }
body.gs26-prose #content p, body.gs26-prose #content li, body.gs26-prose #content a { overflow-wrap: anywhere; }
body.gs26-prose #content ul, body.gs26-prose #content ol { margin: 0 0 1.4rem; padding-left: 1.3rem; }
body.gs26-prose #content ul li { list-style: none; position: relative; margin: 0 0 .5rem; }
body.gs26-prose #content ul li::before { content: ""; position: absolute; left: -1.15rem; top: .72em; width: 7px; height: 7px; border-radius: 50%; background: var(--gs-gold); }
body.gs26-prose #content ol li { margin: 0 0 .5rem; }
body.gs26-prose #content .row-main .row { margin-left: 0; margin-right: 0; max-width: none; width: auto; }
body.gs26-prose #content .row-main .row > .col { max-width: 100%; flex-basis: 100%; padding: 0; }
body.gs26-prose #content img { border-radius: var(--gs-r-sm); height: auto; }
body.gs26-prose #content strong u, body.gs26-prose #content u strong { text-decoration: none; }
body.gs26-prose #content .section { padding-left: 0 !important; padding-right: 0 !important; }
body.gs26-prose #content .section-bg { border-radius: var(--gs-r); }

.gs-table { overflow-x: auto; margin: 1.4rem 0 1.8rem; border: 1px solid var(--gs-line); border-radius: var(--gs-r-sm); }
body.gs26 .gs-table table { width: 100% !important; height: auto !important; margin: 0; border-collapse: collapse; font-size: .95rem; }
body.gs26 .gs-table td, body.gs26 .gs-table th { width: auto !important; height: auto !important; padding: .75rem 1rem !important; border: 0; border-bottom: 1px solid var(--gs-line); text-align: left; color: var(--gs-text); }
body.gs26 .gs-table tr:first-child td { background: var(--gs-paper); font-weight: 600; color: var(--gs-ink); }
body.gs26 .gs-table tr:last-child td { border-bottom: 0; }
body.gs26 .gs-table td p { margin: 0 !important; }
body.gs26 .gs-table span[style] { font-size: inherit !important; }

/* -------------------------------------------- UX Builder pages, restyled */

body.gs26-built #content.page-wrapper { padding: 0; }
body.gs26-built #content > .row-main { max-width: none; padding: 0; margin: 0; }
body.gs26-built #content > .row-main > .col { padding: 0; }
body.gs26 #content .row:not(.row-main):not(.row-full-width):not(.row-collapse) { max-width: calc(var(--gs-wrap) + 30px); }
/* Builder pages sit inside Flatsome's row-main column, so their own rows inherit the nested-row
   negative margins and hug the window edge. Centre the top-level ones again. */
body.gs26-built #content .section-content > .row,
body.gs26-built #content > .row-main > .col > .col-inner > .row { margin-left: auto !important; margin-right: auto !important; width: 100%; }
/* Text placed straight into a builder page (not inside a row) gets the same column and gutter as rows. */
body.gs26-built #content > .row-main > .col > .col-inner > :is(p, h1, h2, h3, h4, h5, h6, ul, ol, blockquote, table, .gs-table),
body.gs26-built #content .section-content > :is(p, h1, h2, h3, h4, h5, h6, ul, ol, blockquote) {
	box-sizing: border-box; max-width: calc(var(--gs-wrap) + 2 * var(--gs-gutter)); margin-left: auto; margin-right: auto;
	padding-left: var(--gs-gutter); padding-right: var(--gs-gutter);
}
body.gs26-built #content .section-content > .row-full-width,
body.gs26-built #content > .row-main > .col > .col-inner > .row-full-width { max-width: none; }

body.gs26 #content h1, body.gs26 #content h2, body.gs26 #content h3, body.gs26 #content h4 { color: var(--gs-ink); }
body.gs26 #content .dark h1, body.gs26 #content .dark h2, body.gs26 #content .dark h3, body.gs26 #content .dark h4,
body.gs26 #content .dark h5, body.gs26 #content .dark h6, body.gs26 #content .dark p, body.gs26 #content .dark li { color: #fff; }
body.gs26 #content .dark h6 { color: var(--gs-gold-hi); }

/* Inline sizes from the old builder content would fight the type scale. */
body.gs26-built #content h1[style], body.gs26-built #content h1 { font-size: clamp(2.3rem, 5vw, 3.8rem) !important; line-height: 1.05 !important; letter-spacing: -.022em; margin-bottom: 1rem; }
body.gs26-built #content h2 { font-size: clamp(1.8rem, 3.2vw, 2.6rem); line-height: 1.12; }
body.gs26-built #content h2[style] { font-size: clamp(1.8rem, 3.2vw, 2.6rem) !important; }
body.gs26-built #content h3 { font-size: clamp(1.35rem, 2.2vw, 1.75rem); line-height: 1.22; }
body.gs26-built #content h4 { font-size: 1.3rem; line-height: 1.3; }
body.gs26 #content h1 span[style*="font-size"], body.gs26 #content h2 span[style*="font-size"],
body.gs26 #content h3 span[style*="font-size"], body.gs26 #content p span[style*="font-size"] { font-size: inherit !important; }
body.gs26 #content span[style*="#d83131"], body.gs26 #content span[style*="#fd6f5e"] { color: var(--gs-gold-ink) !important; }
body.gs26 #content h6 {
	font: 600 .78rem/1.3 var(--gs-sans) !important; letter-spacing: .14em !important;
	text-transform: uppercase; color: var(--gs-gold-ink); margin-bottom: .8rem;
}
body.gs26-built #content p { font-size: 1.04rem; }

body.gs26-built #content .section.dark .section-bg-overlay { background: linear-gradient(90deg, rgba(15, 28, 46, .92), rgba(15, 28, 46, .55)) !important; }
body.gs26-built #content > .row-main .col-inner > .section:first-child { min-height: 0 !important; }
body.gs26-built #content > .row-main .col-inner > .section:first-child .section-content { padding-top: clamp(24px, 5vw, 56px); padding-bottom: clamp(24px, 5vw, 56px); }
body.gs26-built #content .scroll-for-more { display: none; }
body.gs26-built #content .is-divider { background-color: var(--gs-gold); height: 2px !important; max-width: 48px; opacity: 1; }
body.gs26-built #content .section[style*="rgb(247, 245, 244)"], body.gs26-built #content .section-bg.bg-loaded[style*="rgb(247, 245, 244)"] { background-color: var(--gs-paper) !important; }

/* Feature boxes become cards on light sections. */
body.gs26-built #content .section:not(.dark) .col > .col-inner > .icon-box.featured-box {
	height: 100%; padding: 1.8rem 1.5rem; border-radius: var(--gs-r); background: #fff; border: 1px solid var(--gs-line);
	transition: transform .25s, box-shadow .25s;
}
body.gs26-built #content .section:not(.dark) .col > .col-inner > .icon-box.featured-box:hover { transform: translateY(-3px); box-shadow: var(--gs-shadow-lg); }
body.gs26-built #content .icon-box-img img { filter: sepia(1) saturate(2.2) hue-rotate(-12deg) brightness(.75); }
body.gs26-built #content .icon-box h4 { margin-top: .6rem; }
body.gs26-built #content .icon-box p { color: var(--gs-muted); font-size: .97rem; }

/* Flatsome buttons. Flatsome prints colours inline later, hence !important. */
body.gs26 #content .button {
	border-radius: 999px !important; text-transform: none !important; letter-spacing: 0 !important;
	font: 600 .97rem/1.2 var(--gs-sans) !important; min-height: 48px; padding: .75rem 1.4rem !important;
	display: inline-flex; align-items: center; justify-content: center; gap: .5rem; box-shadow: none !important;
	transition: background-color .2s, color .2s, border-color .2s;
}
body.gs26 #content .button.is-large { min-height: 54px; }
body.gs26 #content .button:not(.is-outline):not(.is-link):not(.is-underline):not(.white) { background-color: var(--gs-ink) !important; color: #fff !important; border-color: var(--gs-ink) !important; }
body.gs26 #content .dark .button:not(.is-outline):not(.is-link):not(.is-underline):not(.white) { background-color: var(--gs-gold) !important; color: var(--gs-ink) !important; border-color: var(--gs-gold) !important; }
body.gs26 #content .button:not(.is-outline):not(.is-link):not(.is-underline):not(.white):hover { background-color: var(--gs-ink-3) !important; }
body.gs26 #content .dark .button:not(.is-outline):not(.is-link):not(.is-underline):not(.white):hover { background-color: var(--gs-gold-hi) !important; }
body.gs26 #content .button.white:not(.is-outline), body.gs26 #content .button.is-outline {
	background: transparent !important; color: var(--gs-ink) !important; border: 1.5px solid var(--gs-ink) !important;
}
body.gs26 #content .dark .button.white:not(.is-outline), body.gs26 #content .dark .button.is-outline { color: #fff !important; border-color: rgba(255, 255, 255, .6) !important; background: rgba(255, 255, 255, .06) !important; }
body.gs26 #content .dark .button.white:hover, body.gs26 #content .dark .button.is-outline:hover { background: #fff !important; color: var(--gs-ink) !important; }
body.gs26 #content .button.is-link, body.gs26 #content .button.is-underline {
	background: none !important; border: 0 !important; color: var(--gs-gold-ink) !important; padding: .4rem 0 !important; min-height: 0;
	text-decoration: underline; text-decoration-color: var(--gs-gold); text-underline-offset: .3em;
}
body.gs26 #content .dark .button.is-link, body.gs26 #content .dark .button.is-underline { color: var(--gs-gold-hi) !important; }
body.gs26 #content .button.is-underline::before, body.gs26 #content .button.is-underline::after { display: none; }

/* Accordions */
body.gs26 #content .accordion { border-top: 1px solid var(--gs-line); }
body.gs26 #content .accordion-item { border-bottom: 1px solid var(--gs-line); }
body.gs26 #content .accordion-title {
	border: 0 !important; padding: 1.15rem 2.6rem 1.15rem 0 !important; background: none !important;
	font: 650 1.2rem/1.35 var(--gs-serif) !important; color: var(--gs-ink) !important; position: relative;
}
body.gs26 #content .accordion-title .toggle { left: auto !important; right: 0; top: 50% !important; transform: translateY(-50%); width: 30px; height: 30px; border-radius: 50%; background: var(--gs-gold-soft); color: var(--gs-gold-ink); display: grid; place-items: center; margin: 0 !important; }
body.gs26 #content .accordion-title.active { color: var(--gs-gold-ink) !important; }
body.gs26 #content .accordion-inner { padding: 0 0 1.3rem !important; color: var(--gs-muted); }

/* The firm's logo PNG has black lettering; on dark sections it needs a light plate. */
body.gs26 #content .dark img[src*="gslogo"], body.gs26 #content .section-bg-overlay ~ * img[src*="gslogo"] {
	background: #fff; padding: 10px 14px; border-radius: 12px; box-sizing: border-box;
}
body.gs26 #content .dark .img:has(img[src*="gslogo"]) { max-width: 240px; }

/* Image boxes and images */
body.gs26-built #content .box-image img, body.gs26-built #content .img-inner img { border-radius: var(--gs-r-sm); }
body.gs26-built #content .image-box .box-image { width: 72px !important; }
body.gs26-built #content .image-box .box-image img { border-radius: 50%; }

/* Old floating callback / share widgets inside content */
body.gs26 #content .social-icons.share-icons { display: none; }

/* Trustpilot micro TrustBox, injected into the footer by the Trustpilot plugin */
body.gs26 #footer [id^="trustpilot-widget-trustbox"][id$="-wrapper"] {
	width: fit-content; min-width: 300px; margin: 0 0 2.5rem !important; padding: 10px 18px;
	background: #fff; border-radius: 999px; position: relative; z-index: 1 !important;
	/* The plugin injects it outside .gs-wrap: line it up with the footer column. */
	margin-left: max(var(--gs-gutter), calc((100% - var(--gs-wrap)) / 2)) !important;
	max-width: calc(100% - 2 * var(--gs-gutter)); box-sizing: border-box;
}
/* Underlined emphasis in headings (e.g. "Here for You and Your Family"). */
.gs-u { text-decoration: underline; text-decoration-color: var(--gs-gold); text-decoration-thickness: .1em; text-underline-offset: .16em; text-decoration-skip-ink: none; }


/* --------------------------------------------------------- responsive */

@media (max-width: 1180px) {
	.gs-phone-tx small { display: none; }
	body.gs26 .gs-nav-link { padding: .5rem .55rem; font-size: .92rem; }
	.gs-bar-in { gap: 1rem; }
}
@media (max-width: 1060px) {
	.gs-util-meta { display: none !important; }
	.gs-util-alert { width: 100%; }
	/* Builder pages: drop Flatsome's 30px section side padding so there is one gutter. */
	body.gs26-built #content .section { padding-left: 0 !important; padding-right: 0 !important; }
	body.gs26-built #content .section { padding-top: 56px !important; padding-bottom: 56px !important; }
	body.gs26 #content .button { white-space: nowrap; }
	.gs-nav, .gs-bar-btn { display: none; }
	.gs-burger { display: grid; }
	.gs-bar-cta { margin-left: auto; }
	.gs-hero-in { grid-template-columns: 1fr; }
	.gs-hero-card { display: none; }
	.gs-cards, .gs-team, .gs-fees { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.gs-foot-grid { grid-template-columns: 1fr 1fr; }
	.gs-foot-wide { grid-column: 1 / -1; }
	.gs-split, .gs-faq-wrap, .gs-visit, .gs-contact-grid, .gs-area, .gs-intro-cols { grid-template-columns: 1fr; }
	.gs-area-flip .gs-area-img { order: 0; }
	.gs-findus { position: static; }
	.gs-cta-in { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 760px) {
	:root { --gs-util-h: 36px; --gs-bar-h: 68px; }
	body.gs26 { font-size: 16px; }
	.gs-util-meta { display: none !important; }
	.gs-util-alert { font-size: .78rem; }
	.gs-util-alert u { display: none; }
	.gs-mark { height: 40px; padding: 0 9px; font-size: 1.3rem; }
	.gs-mark i { height: 22px; }
	.gs-word-1 { font-size: 1.12rem; }
	.gs-word-2 { font-size: .6rem; letter-spacing: .22em; }
	.gs-phone-tx { display: none; }
	.gs-phone-ic { width: 46px; height: 46px; border-radius: 12px; }
	.gs-cards, .gs-team, .gs-fees, .gs-ways { grid-template-columns: 1fr; }
	.gs-foot-grid { grid-template-columns: 1fr; gap: 2rem; }
	.gs-legal { flex-direction: column; gap: .6rem; }
	.gs-hero-actions .gs-btn, .gs-cta-actions .gs-btn { width: 100%; }
	.gs-cta-actions { width: 100%; }
	.gs-proof { gap: .6rem; }
	.gs-sec-head-row { align-items: flex-start; }
	.gs-badges { justify-content: center; }
	.gs-ways { margin-top: -28px; }
	.gs-notice { flex-direction: column; gap: .6rem; padding: 1.3rem; }
}


/* ------------------------------------------------------------- careers */
.gs-chero { position: relative; isolation: isolate; overflow: hidden; color: #fff; background: var(--gs-ink); }
.gs-chero-bg { position: absolute; inset: 0; z-index: -1; }
.gs-chero-bg img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 60%; }
.gs-chero-bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(100deg, rgba(15, 28, 46, .96) 0%, rgba(15, 28, 46, .86) 50%, rgba(15, 28, 46, .6) 100%); }
.gs-chero-in { padding-top: clamp(40px, 6vw, 72px); padding-bottom: clamp(48px, 7vw, 88px); }
.gs-chero .gs-crumbs { margin-bottom: 1.6rem; }
.gs-chero .gs-eyebrow { color: var(--gs-gold-hi) !important; }
body.gs26 .gs-chero h1 { color: #fff; font-size: clamp(2.3rem, 5.2vw, 3.9rem); line-height: 1.05; letter-spacing: -.035em; margin: 0 0 1rem; font-weight: 750; }
.gs-chero-lede { font-size: clamp(1.05rem, 1.6vw, 1.2rem); color: #dfe4ec; margin: 0 0 2rem; max-width: 560px; }
.gs-chero-roles { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: .9rem; max-width: 820px; }
.gs-chero-roles li { margin: 0 !important; }
body.gs26 .gs-chero-roles a {
	display: flex; align-items: center; gap: .9rem; padding: 1rem 1.1rem; border-radius: 16px; text-decoration: none; color: #fff;
	background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .16); backdrop-filter: blur(6px);
	transition: background .2s, border-color .2s, transform .2s;
}
body.gs26 .gs-chero-roles a:hover { background: rgba(255, 255, 255, .13); border-color: var(--gs-gold); transform: translateY(-2px); color: #fff; }
.gs-chero-role-ic { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; background: var(--gs-gold); color: var(--gs-ink); flex: none; }
.gs-chero-role-t { display: flex; flex-direction: column; flex: 1; font: 650 1.2rem/1.25 var(--gs-serif); }
.gs-chero-role-t small { font: 500 .85rem/1.4 var(--gs-sans); color: var(--gs-gold-hi); margin-top: .15rem; }
.gs-chero-roles .gs-i-arrow { color: var(--gs-gold-hi); flex: none; }

.gs-cwhy { padding: clamp(48px, 7vw, 88px) 0; }
.gs-cwhy-in { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: clamp(28px, 5vw, 72px); align-items: center; }
body.gs26 .gs-cwhy h2 { font-size: clamp(1.9rem, 3.4vw, 2.7rem); line-height: 1.1; margin: 0 0 1rem; }
.gs-cwhy-copy p:not(.gs-eyebrow) { font-size: 1.08rem; color: var(--gs-muted); }
.gs-cwhy-awards { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.gs-cwhy-awards img { width: 100%; height: auto; border-radius: 16px; box-shadow: var(--gs-shadow-lg); }

.gs-croles .gs-wrap { display: grid; gap: 1.6rem; }
.gs-job { background: #fff; border: 1px solid var(--gs-line); border-radius: 22px; overflow: hidden; box-shadow: var(--gs-shadow); scroll-margin-top: calc(var(--gs-bar-h) + 16px); }
.gs-job-head { display: grid; grid-template-columns: auto 1fr auto; gap: 1.2rem; align-items: center; padding: 1.8rem 2rem; border-bottom: 1px solid var(--gs-line); background: linear-gradient(180deg, #fff, var(--gs-paper)); }
.gs-job-ic { display: grid; place-items: center; width: 60px; height: 60px; border-radius: 16px; background: var(--gs-ink); color: var(--gs-gold-hi); }
body.gs26 .gs-job h2 { font-size: clamp(1.6rem, 2.8vw, 2.1rem); margin: 0 0 .6rem; line-height: 1.15; }
.gs-job-meta { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.gs-job-meta li { display: inline-flex; align-items: center; gap: .5rem; margin: 0 !important; padding: .4rem .8rem; border-radius: 999px; background: var(--gs-gold-soft); color: var(--gs-ink); font-size: .9rem; font-weight: 600; }
.gs-job-meta .gs-i { color: var(--gs-gold-ink); }
.gs-job-meta small { font-weight: 500; color: var(--gs-muted); margin-right: .35rem; }
.gs-job-body { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 2rem; padding: 2rem; align-items: start; }
.gs-job-main > p { font-size: 1.04rem; margin: 0 0 1rem; }
.gs-job-sec { margin-top: 1.6rem; padding-top: 1.4rem; border-top: 1px dashed var(--gs-line); }
.gs-job-lead { font: 650 1.18rem/1.4 var(--gs-serif); color: var(--gs-ink); margin: 0 0 .9rem !important; }
.gs-job-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .55rem; }
.gs-job-list li { display: flex; gap: .7rem; margin: 0 !important; line-height: 1.55; }
.gs-job-list .gs-i { flex: none; margin-top: .25rem; width: 20px; height: 20px; padding: 3px; border-radius: 50%; background: var(--gs-ink); color: var(--gs-gold-hi); box-sizing: border-box; }
.gs-job-cta { position: sticky; top: calc(var(--gs-bar-h) + 20px); padding: 1.5rem; border-radius: 18px; background: var(--gs-paper); border: 1px solid var(--gs-line); }
.gs-job-cta p { margin: 0 0 1.1rem; font-size: .97rem; overflow-wrap: anywhere; }
.gs-job-cta .gs-job-ref { margin: .9rem 0 0; font-size: .85rem; color: var(--gs-muted); text-align: center; }
.gs-cnote { display: flex; gap: .8rem; align-items: flex-start; margin: .4rem 0 0; padding: 1.2rem 1.4rem; border-radius: 16px; background: #fff; border: 1px solid var(--gs-line); color: var(--gs-muted); font-size: .95rem; }
.gs-cnote .gs-i { color: var(--gs-gold-ink); margin-top: .15rem; }

@media (max-width: 1060px) {
	.gs-job-body { grid-template-columns: 1fr; }
	.gs-job-cta { position: static; }
	.gs-cwhy-in { grid-template-columns: 1fr; }
	.gs-cwhy-awards { max-width: 420px; }
}
@media (max-width: 760px) {
	body.gs26 .gs-chero h1 { font-size: 2.6rem; }
	.gs-chero-roles { grid-template-columns: 1fr; }
	.gs-job { border-radius: 18px; }
	.gs-job-head { grid-template-columns: auto 1fr; padding: 1.3rem 1.1rem; gap: .9rem; align-items: start; }
	.gs-job-ic { width: 48px; height: 48px; border-radius: 14px; }
	.gs-job-apply-top { grid-column: 1 / -1; width: 100%; }
	.gs-job-meta li { font-size: .82rem; padding: .35rem .7rem; }
	.gs-job-body { padding: 1.3rem 1.1rem; gap: 1.3rem; }
	.gs-job-lead { font-size: 1.08rem; }
}


/* -------------------------------------------------------- property page */
.gs-prop-hero { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 3rem; align-items: center; }
.gs-prop-marks { display: grid; gap: 1rem; justify-items: center; }
.gs-prop-award { width: 100%; height: auto; border-radius: 18px; box-shadow: 0 30px 60px -20px rgba(0, 0, 0, .6); }
.gs-prop-cqs { display: block; background: #fff; border-radius: 14px; padding: 10px 16px; }
.gs-prop-cqs img { display: block; height: 58px; width: auto; }

.gs-prop-conf { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(32px, 5vw, 80px); align-items: center; }
.gs-prop-conf-media { position: relative; }
.gs-prop-conf-media > img { width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 22px; box-shadow: var(--gs-shadow-lg); display: block; }
.gs-prop-conf-badge {
	position: absolute; left: -18px; bottom: 28px; display: flex; gap: .8rem; align-items: center; max-width: 290px;
	padding: 1rem 1.2rem; border-radius: 16px; background: var(--gs-ink); color: #fff; box-shadow: var(--gs-shadow-lg);
}
.gs-prop-conf-badge .gs-i { color: var(--gs-gold-hi); flex: none; }
.gs-prop-conf-badge span { display: flex; flex-direction: column; font-size: .9rem; line-height: 1.35; color: var(--gs-on-ink); }
.gs-prop-conf-badge strong { font: 650 1.1rem/1.2 var(--gs-serif); color: #fff; }
body.gs26 .gs-prop-conf h2 { font-size: clamp(2rem, 3.6vw, 2.9rem); line-height: 1.08; margin: 0 0 1.1rem; }
.gs-prop-conf p:not(.gs-eyebrow) { font-size: 1.04rem; }
.gs-prop-reviews { padding: 1rem 1.2rem; border-radius: 14px; background: var(--gs-paper); border: 1px solid var(--gs-line); font-size: .97rem !important; }

.gs-prop-main3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
body.gs26 .gs-prop-svc {
	position: relative; display: flex; flex-direction: column; padding: 2rem 1.8rem 1.7rem; border-radius: 20px; overflow: hidden;
	background: var(--gs-ink); color: var(--gs-on-ink); text-decoration: none; transition: transform .25s, box-shadow .25s;
}
body.gs26 .gs-prop-svc::after { content: ""; position: absolute; right: -60px; top: -60px; width: 180px; height: 180px; border-radius: 50%; background: radial-gradient(circle, rgba(201, 164, 92, .28), transparent 70%); }
body.gs26 .gs-prop-svc:hover { transform: translateY(-4px); box-shadow: var(--gs-shadow-lg); color: var(--gs-on-ink); }
.gs-prop-num { font: 650 2.4rem/1 var(--gs-serif); color: var(--gs-gold-hi); margin-bottom: 1rem; }
body.gs26 .gs-prop-svc h3 { color: #fff; font-size: 1.5rem; margin: 0 0 .5rem; }
.gs-prop-svc p { margin: 0 0 1.4rem; font-size: .97rem; }
.gs-prop-svc .gs-card-more { color: var(--gs-gold-hi); }
body.gs26 .gs-prop-extra-h { font-size: clamp(1.3rem, 2.2vw, 1.6rem); margin: 2.6rem 0 1.1rem; }
.gs-prop-extra { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
body.gs26 .gs-prop-extra a {
	display: flex; flex-direction: column; gap: .3rem; padding: 1.3rem; border-radius: 16px; background: #fff; border: 1px solid var(--gs-line);
	text-decoration: none; color: var(--gs-text); transition: transform .2s, box-shadow .2s, border-color .2s;
}
body.gs26 .gs-prop-extra a:hover { transform: translateY(-3px); box-shadow: var(--gs-shadow-lg); border-color: transparent; color: var(--gs-text); }
.gs-prop-extra .gs-card-ic { width: 44px; height: 44px; border-radius: 12px; margin: 0 0 .6rem; }
.gs-prop-extra strong { font: 650 1.15rem/1.25 var(--gs-serif); color: var(--gs-ink); }
.gs-prop-extra small { font-size: .9rem; color: var(--gs-muted); line-height: 1.45; }

.gs-prop-layout { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: clamp(28px, 4vw, 56px); align-items: start; }
.gs-prop-nav { position: sticky; top: calc(var(--gs-bar-h) + 24px); }
.gs-prop-nav ul { list-style: none; margin: 0 0 1.2rem; padding: 0; border-left: 2px solid var(--gs-line); }
.gs-prop-nav li { margin: 0 !important; }
body.gs26 .gs-prop-nav a:not(.gs-btn) {
	display: block; padding: .55rem 0 .55rem 1rem; margin-left: -2px; border-left: 2px solid transparent;
	color: var(--gs-muted); text-decoration: none; font-size: .95rem; font-weight: 500; transition: color .2s, border-color .2s;
}
body.gs26 .gs-prop-nav a:not(.gs-btn):hover, body.gs26 .gs-prop-nav a.is-on { color: var(--gs-ink); border-left-color: var(--gs-gold); }
body.gs26 .gs-prop-nav a.is-on { font-weight: 600; }
.gs-prop-panels { display: grid; gap: 1.4rem; }
.gs-prop-panel {
	position: relative; padding: clamp(24px, 3.5vw, 40px); border-radius: 22px; background: #fff; border: 1px solid var(--gs-line);
	scroll-margin-top: calc(var(--gs-bar-h) + 24px);
}
.gs-prop-panel-ic { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 14px; background: var(--gs-gold-soft); color: var(--gs-gold-ink); margin-bottom: 1rem; }
body.gs26 .gs-prop-panel h2 { font-size: clamp(1.6rem, 2.8vw, 2.1rem); line-height: 1.15; margin: 0 0 1rem; }
body.gs26 .gs-prop-panel h3 { font-size: 1.3rem; margin: 1.8rem 0 .7rem; }
.gs-prop-panel p { font-size: 1.02rem; line-height: 1.72; margin: 0 0 1rem; }
.gs-prop-panel-links .gs-link { padding: .55rem 0; }
.gs-prop-panel-links { display: flex; flex-wrap: wrap; gap: 0 1.6rem; margin-top: 1.2rem; padding-top: 1.1rem; border-top: 1px dashed var(--gs-line); }
.gs-prop-callout { display: flex; gap: .7rem; align-items: flex-start; padding: 1rem 1.2rem; border-radius: 14px; background: #fff8eb; border: 1px solid #ecd9ae; font-size: .98rem !important; }
.gs-prop-callout .gs-i { color: var(--gs-gold-ink); flex: none; margin-top: .2rem; }

.gs-steps { counter-reset: st; list-style: none; margin: 1.2rem 0 0; padding: 0; display: grid; gap: 0; }
.gs-steps li { counter-increment: st; position: relative; margin: 0 !important; padding: 0 0 1.1rem 3.2rem; line-height: 1.6; }
.gs-steps li::before {
	content: counter(st); position: absolute; left: 0; top: -2px; width: 2.1rem; height: 2.1rem; border-radius: 50%;
	display: grid; place-items: center; background: var(--gs-ink); color: var(--gs-gold-hi); font: 600 .9rem/1 var(--gs-sans);
}
.gs-steps li::after { content: ""; position: absolute; left: 1.03rem; top: 2.1rem; bottom: .2rem; width: 2px; background: var(--gs-line); }
.gs-steps li:last-child::after { display: none; }

.gs-stages { list-style: none; margin: 1.2rem 0 1.6rem; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .6rem; counter-reset: none; }
.gs-stages li {
	position: relative; margin: 0 !important; padding: 1rem .9rem; border-radius: 14px; background: var(--gs-paper); border: 1px solid var(--gs-line);
	font-weight: 600; color: var(--gs-ink); display: flex; flex-direction: column; gap: .5rem; font-size: .97rem;
}
.gs-stages b { display: block; font-weight: 600; }
.gs-stages b::first-letter { text-transform: uppercase; }
.gs-stages li span { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--gs-gold); color: var(--gs-ink); font-weight: 700; }
.gs-stages li:not(:last-child)::after { content: ""; position: absolute; right: -.45rem; top: 50%; width: .3rem; height: 2px; background: var(--gs-gold); }

.gs-ticks { list-style: none; margin: .6rem 0 1.2rem; padding: 0; display: grid; gap: .55rem; }
.gs-ticks li { display: flex; gap: .7rem; margin: 0 !important; line-height: 1.55; }
.gs-ticks .gs-i { flex: none; margin-top: .2rem; width: 20px; height: 20px; padding: 3px; border-radius: 50%; background: var(--gs-ink); color: var(--gs-gold-hi); box-sizing: border-box; }

.gs-acc { border-top: 1px solid var(--gs-line); margin-top: 1.2rem; }
.gs-acc details { border-bottom: 1px solid var(--gs-line); }
.gs-acc summary { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1.1rem 0; cursor: pointer; list-style: none; font: 650 1.15rem/1.35 var(--gs-serif); color: var(--gs-ink); }
.gs-acc summary::-webkit-details-marker { display: none; }
.gs-acc summary::after {
	content: ""; flex: none; width: 28px; height: 28px; border-radius: 50%;
	background: var(--gs-gold-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a67c32' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E") center/15px no-repeat;
	transition: transform .25s;
}
.gs-acc details[open] summary::after { transform: rotate(45deg); }
.gs-acc details p { color: var(--gs-muted); }

.gs-person-role { margin: .1rem 0 .7rem !important; font-size: .82rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--gs-gold-ink); }
.gs-prop-team .gs-person p:not(.gs-person-role) { color: var(--gs-muted); font-size: .96rem; margin: 0 0 .7rem; }
.gs-prop-contact { margin: 1.6rem 0 0; padding: 1.2rem 1.4rem; border-radius: 16px; background: var(--gs-paper); border: 1px solid var(--gs-line); }

@media (max-width: 1060px) {
	.gs-prop-hero { grid-template-columns: 1fr; }
	.gs-prop-marks { grid-template-columns: auto auto; justify-content: start; align-items: center; }
	.gs-prop-award { width: 130px; border-radius: 12px; }
	.gs-prop-conf { grid-template-columns: 1fr; }
	.gs-prop-conf-media > img { aspect-ratio: 16 / 9; }
	.gs-prop-conf-badge { left: 14px; bottom: 14px; }
	.gs-prop-main3 { grid-template-columns: 1fr; }
	.gs-prop-extra { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	/* Section menu becomes a sticky, scrollable chip bar */
	.gs-prop-layout { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
	.gs-prop-nav, .gs-prop-panels { min-width: 0; }
	.gs-prop-nav { position: sticky; top: calc(var(--gs-bar-h) + 1px); z-index: 20; margin: 0 calc(-1 * var(--gs-gutter)); padding: .6rem var(--gs-gutter); background: rgba(255, 255, 255, .94); backdrop-filter: blur(10px); border-bottom: 1px solid var(--gs-line); }
	.gs-prop-nav ul { display: flex; gap: .5rem; overflow-x: auto; margin: 0; border: 0; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
	.gs-prop-nav ul::-webkit-scrollbar { display: none; }
	body.gs26 .gs-prop-nav a:not(.gs-btn) { white-space: nowrap; padding: .5rem .9rem; margin: 0; border: 1px solid var(--gs-line); border-radius: 999px; font-size: .88rem; background: #fff; }
	body.gs26 .gs-prop-nav a.is-on { background: var(--gs-ink); color: #fff; border-color: var(--gs-ink); }
	.gs-prop-nav-cta { display: none; }
	.gs-prop-panel { scroll-margin-top: calc(var(--gs-bar-h) + 70px); }
}
@media (max-width: 760px) {
	.gs-prop-cqs img { height: 44px; }
	.gs-prop-award { width: 104px; }
	.gs-prop-extra { grid-template-columns: 1fr; }
	body.gs26 .gs-prop-extra a { display: grid; grid-template-columns: 44px 1fr; column-gap: 14px; padding: 16px; }
	.gs-prop-extra .gs-card-ic { grid-row: 1 / span 2; margin: 0; }
	body.gs26 .gs-prop-svc { padding: 1.4rem 1.3rem; }
	.gs-prop-num { font-size: 1.8rem; margin-bottom: .6rem; }
	.gs-prop-panel { border-radius: 18px; padding: 20px 18px; }
	.gs-stages { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.gs-stages li:nth-child(2)::after { display: none; }
	.gs-steps li { padding-left: 2.8rem; }
	.gs-prop-conf-badge { position: static; margin-top: -2rem; margin-left: 12px; margin-right: 12px; position: relative; max-width: none; }
}


/* ----------------------------------------------------------- family pages */
.gs-fam-note { margin: 1rem 0 0; font-size: .88rem; color: #c3cad6; }
.gs-fam-tabs { display: inline-flex; gap: .3rem; margin-top: 2rem; padding: .3rem; border-radius: 999px; background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .14); }
body.gs26 .gs-fam-tabs a { padding: .55rem 1.1rem; border-radius: 999px; color: #dfe4ec; text-decoration: none; font-size: .9rem; font-weight: 600; white-space: nowrap; }
body.gs26 .gs-fam-tabs a:hover { color: #fff; background: rgba(255, 255, 255, .08); }
body.gs26 .gs-fam-tabs a[aria-current] { background: var(--gs-gold); color: var(--gs-ink); }
.gs-fam-cards-wrap { position: relative; z-index: 2; margin-top: -48px; }
.gs-fam-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.gs-fam-card { padding: 1.6rem; border-radius: 18px; background: #fff; border: 1px solid var(--gs-line); box-shadow: var(--gs-shadow-lg); }
.gs-fam-card .gs-card-ic { margin-bottom: .9rem; }
body.gs26 .gs-fam-card h2 { font-size: 1.3rem; margin: 0 0 .4rem; }
.gs-fam-card p { margin: 0; color: var(--gs-muted); font-size: .96rem; }
.gs-sec-tight-top { padding-top: clamp(40px, 5vw, 64px); }
.gs-fam-award { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: clamp(28px, 4vw, 56px); align-items: center; }
.gs-fam-award-img { width: 100%; height: auto; border-radius: 18px; box-shadow: var(--gs-shadow-lg); }
body.gs26 .gs-fam-award h2 { font-size: clamp(1.8rem, 3vw, 2.4rem); margin: 0 0 1rem; }
.gs-fam-award p { font-size: 1.04rem; }
.gs-fam-award-links { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1.2rem; }
.gs-fam-head { max-width: 860px; }
.gs-fam-head > p:not(.gs-eyebrow) { margin: 0 0 .9rem !important; }
.gs-fam-text { max-width: 860px; color: var(--gs-muted); }
.gs-fam-powers { list-style: none; margin: 0 0 1.4rem; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .8rem; }
.gs-fam-powers li { margin: 0 !important; display: flex; flex-direction: column; gap: .6rem; padding: 1.1rem; border-radius: 14px; background: #fff; border: 1px solid var(--gs-line); }
.gs-fam-powers span { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--gs-ink); color: var(--gs-gold-hi); font-weight: 700; font-size: .9rem; }
.gs-fam-powers b { font-weight: 600; color: var(--gs-ink); }
.gs-fam-powers b::first-letter { text-transform: uppercase; }
.gs-fam-block { margin: 0 0 1.4rem; padding: clamp(22px, 3vw, 34px); border-radius: 20px; background: #fff; border: 1px solid var(--gs-line); }
body.gs26 .gs-fam-block h3 { font-size: 1.45rem; margin: 0 0 .6rem; }
.gs-fam-timeline { list-style: none; margin: 1.2rem 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; counter-reset: none; }
.gs-fam-timeline li { position: relative; margin: 0 !important; padding: 1.2rem; border-radius: 16px; background: var(--gs-paper); border: 1px solid var(--gs-line); }
.gs-fam-timeline li:not(:last-child)::after { content: ""; position: absolute; right: -1rem; top: 2.1rem; width: 1rem; height: 2px; background: var(--gs-gold); }
.gs-fam-tl-w { display: inline-block; padding: .35rem .8rem; border-radius: 999px; background: var(--gs-ink); color: var(--gs-gold-hi); font: 600 .95rem/1 var(--gs-sans); margin-bottom: .7rem; }
.gs-fam-timeline p { margin: 0; font-size: .95rem; line-height: 1.6; }
.gs-fam-callout { display: flex; gap: .7rem; align-items: flex-start; padding: 1rem 1.2rem; border-radius: 14px; background: #fff8eb; border: 1px solid #ecd9ae; margin: 0; }
.gs-fam-callout .gs-i { color: var(--gs-gold-ink); flex: none; margin-top: .15rem; }
.gs-fam-fees { display: grid; grid-template-columns: repeat(2, minmax(0, 260px)); gap: 1rem; margin: 1rem 0 1.2rem; }
.gs-fam-fee { display: flex; flex-direction: column; padding: 1.2rem 1.3rem; border-radius: 16px; background: var(--gs-ink); color: var(--gs-on-ink); }
.gs-fam-fee strong { font: 650 2.2rem/1 var(--gs-serif); color: #fff; }
.gs-fam-fee small { color: var(--gs-gold-hi); font-weight: 600; margin: .3rem 0 .5rem; }
.gs-fam-fee span { font-size: .92rem; }
.gs-fam-foot { font-size: .85rem; color: var(--gs-muted); margin: 0; }
.gs-fam-acc { margin-top: 1rem; background: #fff; border: 1px solid var(--gs-line); border-radius: 20px; padding: 0 1.4rem; border-top: 1px solid var(--gs-line); }
.gs-fam-acc details:last-child { border-bottom: 0; }
.gs-fam-acc details p { margin: 0 0 1rem; }
.gs-fam-acc-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 2rem; }
.gs-fam-acc-grid details { border-bottom: 1px solid var(--gs-line) !important; }
.gs-fam-cb { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(28px, 4vw, 64px); align-items: start; }
body.gs26 .gs-fam-cb h2 { font-size: clamp(1.9rem, 3.2vw, 2.6rem); margin: 0 0 1rem; }
.gs-fam-cb-copy p:not(.gs-eyebrow) { color: var(--gs-muted); font-size: 1.04rem; }
body.gs26 .gs-fam-cb-phone { display: inline-flex; align-items: center; gap: .7rem; margin: 0 0 .6rem; padding: .5rem 0; min-height: 48px; font: 650 2rem/1.1 var(--gs-serif); color: var(--gs-ink); text-decoration: none; }
.gs-fam-cb-phone .gs-i { color: var(--gs-gold-ink); }
body.gs26 .gs-fam-cb-phone:hover { color: var(--gs-gold-ink); }
.gs-fam-form { scroll-margin-top: calc(var(--gs-bar-h) + 20px); }
.gs-fam-bottom { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: clamp(28px, 4vw, 64px); }
body.gs26 .gs-fam-bottom-h { font-size: clamp(1.6rem, 2.6vw, 2.1rem); margin: 0 0 1rem; }
.gs-fam-articles { display: grid; gap: .8rem; }
body.gs26 .gs-fam-articles a { display: grid; grid-template-columns: 44px 1fr auto; gap: 1rem; align-items: center; padding: 1.1rem 1.2rem; border-radius: 16px; border: 1px solid var(--gs-line); background: #fff; text-decoration: none; color: var(--gs-ink); transition: transform .2s, box-shadow .2s; }
body.gs26 .gs-fam-articles a:hover { transform: translateY(-2px); box-shadow: var(--gs-shadow-lg); color: var(--gs-ink); }
.gs-fam-articles .gs-card-ic { width: 44px; height: 44px; margin: 0; border-radius: 12px; }
.gs-fam-articles strong { font: 650 1.12rem/1.3 var(--gs-serif); }
.gs-fam-articles .gs-i-arrow { color: var(--gs-gold-ink); }
.gs-muted { color: var(--gs-muted); }
.gs-fam-reviews { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.gs-fam-reviews figure { margin: 0; padding: 1.4rem; border-radius: 18px; background: var(--gs-paper); border: 1px solid var(--gs-line); display: flex; flex-direction: column; justify-content: space-between; gap: 1rem; }
.gs-fam-reviews blockquote { margin: 0; padding: 0; border: 0; font: 700 1.08rem/1.5 var(--gs-serif); color: var(--gs-ink); }
.gs-fam-reviews blockquote::before { content: "\201C"; display: block; font: 700 2.6rem/0.8 var(--gs-serif); color: var(--gs-gold); margin-bottom: .2rem; }
.gs-fam-reviews figcaption { display: flex; align-items: center; gap: .8rem; }
.gs-fam-reviews .gs-mono { width: 44px; height: 44px; font-size: 1rem; }
.gs-fam-reviews figcaption span:last-child { display: flex; flex-direction: column; font-size: .85rem; color: var(--gs-muted); }
.gs-fam-reviews strong { color: var(--gs-ink); font-size: .95rem; }

@media (max-width: 1060px) {
	.gs-fam-cards { grid-template-columns: 1fr; }
	.gs-fam-award { grid-template-columns: 160px minmax(0, 1fr); }
	.gs-fam-powers { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.gs-fam-timeline { grid-template-columns: 1fr; }
	.gs-fam-timeline li:not(:last-child)::after { right: auto; left: 2rem; top: auto; bottom: -1rem; width: 2px; height: 1rem; }
	.gs-fam-acc-grid { grid-template-columns: 1fr; }
	.gs-fam-cb, .gs-fam-bottom { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
	.gs-fam-tabs { display: flex; width: 100%; overflow-x: auto; scrollbar-width: none; }
	.gs-fam-tabs::-webkit-scrollbar { display: none; }
	body.gs26 .gs-fam-tabs a { flex: 1; text-align: center; padding: .55rem .7rem; font-size: .85rem; }
	.gs-fam-cards-wrap { margin-top: -28px; }
	.gs-fam-card { display: grid; grid-template-columns: 44px 1fr; column-gap: 14px; padding: 16px; }
	.gs-fam-card .gs-card-ic { grid-row: 1 / span 2; width: 44px; height: 44px; margin: 0; }
	body.gs26 .gs-fam-card h2 { font-size: 1.12rem; }
	.gs-fam-card p { font-size: .92rem; }
	.gs-fam-award { grid-template-columns: 1fr; }
	.gs-fam-award-img { width: 150px; }
	.gs-fam-award-links .gs-btn { width: 100%; justify-content: space-between; }
	.gs-fam-powers { grid-template-columns: 1fr; }
	.gs-fam-powers li { flex-direction: row; align-items: center; padding: .9rem 1rem; }
	.gs-fam-block { padding: 18px; border-radius: 16px; }
	.gs-fam-fees { grid-template-columns: 1fr 1fr; gap: .6rem; }
	.gs-fam-fee strong { font-size: 1.8rem; }
	.gs-fam-acc { padding: 0 1rem; border-radius: 16px; }
	body.gs26 .gs-fam-cb-phone { font-size: 1.6rem; }
	.gs-fam-reviews { grid-template-columns: 1fr; }
}


/* ------------------------------------------------ homepage: specialist areas */
.gs-spec { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(20px, 2.5vw, 32px); }
.gs-spec-col { display: flex; flex-direction: column; gap: .9rem; }
body.gs26 .gs-spec-hero {
	position: relative; display: block; min-height: 300px; border-radius: 22px; overflow: hidden; isolation: isolate;
	text-decoration: none; color: #fff; background: var(--gs-ink); box-shadow: var(--gs-shadow);
}
.gs-spec-hero > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform .6s ease; }
.gs-spec-hero::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(15, 28, 46, .15) 0%, rgba(15, 28, 46, .55) 45%, rgba(15, 28, 46, .94) 100%); }
body.gs26 .gs-spec-hero:hover { color: #fff; }
.gs-spec-hero:hover > img, .gs-spec-hero:focus-visible > img { transform: scale(1.05); }
.gs-spec-hero-in { position: absolute; left: 0; right: 0; bottom: 0; display: flex; flex-direction: column; gap: .35rem; padding: clamp(20px, 2.5vw, 30px); }
.gs-spec-hero-ic { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 13px; background: var(--gs-gold); color: var(--gs-ink); margin-bottom: .5rem; }
.gs-spec-hero-t { font: 650 clamp(1.6rem, 2.6vw, 2.1rem)/1.1 var(--gs-serif); letter-spacing: -.01em; }
.gs-spec-hero-p { color: #dfe4ec; font-size: 1rem; max-width: 420px; }
.gs-spec-hero-more { display: inline-flex; align-items: center; gap: .4rem; margin-top: .5rem; font-weight: 600; font-size: .93rem; color: var(--gs-gold-hi); }
.gs-spec-hero-more .gs-i, .gs-spec-go .gs-i { transition: transform .2s; }
.gs-spec-hero:hover .gs-spec-hero-more .gs-i { transform: translateX(4px); }

.gs-spec-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .6rem; }
.gs-spec-list li { margin: 0 !important; }
body.gs26 .gs-spec-list a {
	display: grid; grid-template-columns: 44px minmax(0, 1fr) 36px; gap: 1rem; align-items: center;
	padding: 1rem 1.1rem; border-radius: 16px; background: #fff; border: 1px solid var(--gs-line);
	text-decoration: none; color: var(--gs-text); transition: border-color .2s, box-shadow .2s, transform .2s;
}
body.gs26 .gs-spec-list a:hover { border-color: var(--gs-gold); box-shadow: var(--gs-shadow); transform: translateX(3px); color: var(--gs-text); }
.gs-spec-ic { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; background: var(--gs-gold-soft); color: var(--gs-gold-ink); transition: background .2s, color .2s; }
.gs-spec-list a:hover .gs-spec-ic { background: var(--gs-ink); color: var(--gs-gold-hi); }
.gs-spec-tx { display: flex; flex-direction: column; gap: .15rem; min-width: 0; }
.gs-spec-tx strong { font: 650 1.12rem/1.25 var(--gs-serif); color: var(--gs-ink); }
.gs-spec-tx small { font-size: .9rem; line-height: 1.45; color: var(--gs-muted); }
.gs-spec-go { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; border: 1px solid var(--gs-line); color: var(--gs-gold-ink); transition: background .2s, border-color .2s, color .2s; }
.gs-spec-list a:hover .gs-spec-go { background: var(--gs-gold); border-color: var(--gs-gold); color: var(--gs-ink); }
.gs-spec-list a:hover .gs-spec-go .gs-i { transform: translateX(2px); }

@media (max-width: 900px) {
	.gs-spec { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
	body.gs26 .gs-spec-hero { min-height: 230px; border-radius: 18px; }
	.gs-spec-hero-ic { width: 40px; height: 40px; }
	.gs-spec-hero-p { font-size: .95rem; }
	body.gs26 .gs-spec-list a { grid-template-columns: 40px minmax(0, 1fr) 28px; gap: .8rem; padding: .85rem .9rem; border-radius: 14px; }
	.gs-spec-ic { width: 40px; height: 40px; }
	.gs-spec-go { width: 28px; height: 28px; border: 0; }
	.gs-spec-tx strong { font-size: 1.05rem; }
	.gs-spec-tx small { font-size: .86rem; }
	body.gs26 .gs-spec-list a:hover { transform: none; }
}
@media (prefers-reduced-motion: reduce) { .gs-spec-hero > img { transition: none; } }


/* ---------------------------------------------------- commercial property */
.gs-com-svc-wrap { position: relative; z-index: 2; margin-top: -56px; }
.gs-com-svc { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.gs-com-card { display: flex; flex-direction: column; border-radius: 20px; overflow: hidden; background: #fff; border: 1px solid var(--gs-line); box-shadow: var(--gs-shadow-lg); }
.gs-com-card-img { aspect-ratio: 16 / 9; overflow: hidden; background: var(--gs-paper); }
.gs-com-card-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gs-com-card-in { position: relative; padding: 2.1rem 1.6rem 1.6rem; }
.gs-com-card-ic { position: absolute; top: -26px; left: 1.6rem; display: grid; place-items: center; width: 52px; height: 52px; border-radius: 14px; background: var(--gs-ink); color: var(--gs-gold-hi); box-shadow: var(--gs-shadow); }
body.gs26 .gs-com-card h2 { font-size: 1.5rem; margin: 0 0 .3rem; }
.gs-com-card-sub { margin: 0 0 .9rem !important; font-size: .82rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--gs-gold-ink); line-height: 1.45; }
.gs-com-card p:not(.gs-com-card-sub) { margin: 0; color: var(--gs-muted); font-size: .98rem; line-height: 1.68; }
.gs-com-intro { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(28px, 5vw, 72px); align-items: start; }
.gs-com-intro-head { position: sticky; top: calc(var(--gs-bar-h) + 24px); }
body.gs26 .gs-com-intro h2, body.gs26 .gs-com-spec h2 { font-size: clamp(1.85rem, 3.3vw, 2.6rem); line-height: 1.12; margin: 0 0 1rem; letter-spacing: -.028em; }
.gs-com-lead { font: 650 1.3rem/1.45 var(--gs-serif); color: var(--gs-ink); margin: 0; }
.gs-com-lead-dark { color: #fff !important; margin-bottom: 1.2rem !important; }
.gs-com-intro-body > p { font-size: 1.05rem; color: var(--gs-muted); }
.gs-com-two { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-top: 1.4rem; }
.gs-com-pt { padding: 1.4rem; border-radius: 18px; background: var(--gs-paper); border: 1px solid var(--gs-line); }
.gs-com-pt .gs-card-ic { margin-bottom: .8rem; }
.gs-com-pt p { margin: 0; font-size: .97rem; }
.gs-com-spec { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, .7fr); gap: clamp(28px, 5vw, 72px); align-items: center; }
body.gs26 .gs-com-spec a:not(.gs-btn) { color: var(--gs-gold-hi); }
.gs-com-towns { list-style: none; margin: 1.4rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.gs-com-towns li { margin: 0 !important; display: inline-flex; align-items: center; gap: .35rem; padding: .4rem .8rem; border-radius: 999px; background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .14); color: #dfe4ec; font-size: .88rem; }
.gs-com-towns .gs-i { color: var(--gs-gold-hi); }
.gs-com-addr { display: grid; gap: .8rem; padding: 1.8rem; border-radius: 22px; background: rgba(255, 255, 255, .05); border: 1px solid rgba(255, 255, 255, .12); }
.gs-com-addr .gs-logo { color: #fff !important; }
.gs-com-addr .gs-mark { background: #fff; color: var(--gs-ink); }
.gs-com-addr .gs-word-2 { color: var(--gs-on-ink); }
.gs-com-addr address { font-style: normal; color: #dfe4ec; line-height: 1.6; margin: .4rem 0 .6rem; }

/* ----------------------------------------------------------- reviews page */
.gs-rev-hero-in { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 3rem; align-items: center; }
body.gs26 .gs-rev-score {
	display: flex; flex-direction: column; align-items: center; gap: .5rem; padding: 1.8rem 1.4rem; border-radius: 22px;
	background: #fff; color: var(--gs-ink); text-decoration: none; box-shadow: 0 30px 60px -20px rgba(0, 0, 0, .55); text-align: center;
}
body.gs26 .gs-rev-score:hover { color: var(--gs-ink); transform: translateY(-2px); }
.gs-rev-score-g, .gs-rev-card-g, .gs-rev-pl-g { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; font: 700 1.2rem/1 var(--gs-sans); color: #fff; background: conic-gradient(#ea4335 0 25%, #fbbc05 0 50%, #34a853 0 75%, #4285f4 0); }
.gs-rev-score-n { font: 650 3.6rem/1 var(--gs-serif); letter-spacing: -.02em; }
.gs-stars { display: inline-flex; gap: 2px; color: #f5a623; }
.gs-rev-score-c { font-size: .92rem; color: var(--gs-muted); }
.gs-rev-score-l { display: inline-flex; align-items: center; gap: .3rem; font-weight: 600; font-size: .9rem; color: var(--gs-gold-ink); }
.gs-rev-platforms-wrap { position: relative; z-index: 2; margin-top: -36px; }
.gs-rev-platforms { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
body.gs26 .gs-rev-platforms a {
	display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; gap: .9rem; align-items: center; padding: 1.1rem 1.2rem;
	border-radius: 18px; background: #fff; border: 1px solid var(--gs-line); box-shadow: var(--gs-shadow); text-decoration: none; color: var(--gs-ink);
	transition: transform .2s, box-shadow .2s;
}
body.gs26 .gs-rev-platforms a:hover { transform: translateY(-3px); box-shadow: var(--gs-shadow-lg); color: var(--gs-ink); }
.gs-rev-pl-ic { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; background: var(--gs-gold-soft); color: var(--gs-gold-ink); }
.gs-rev-pl-ic.gs-rev-pl-g { border-radius: 50%; color: #fff; font: 700 1.2rem/1 var(--gs-sans); background: conic-gradient(#ea4335 0 25%, #fbbc05 0 50%, #34a853 0 75%, #4285f4 0); }
.gs-rev-pl-tp { background: #00b67a; color: #fff; }
.gs-rev-platforms strong { display: block; font: 650 1.15rem/1.2 var(--gs-serif); }
.gs-rev-platforms small { color: var(--gs-muted); font-size: .86rem; }
.gs-rev-platforms .gs-i-arrow { color: var(--gs-gold-ink); }
.gs-rev-grid { columns: 3 300px; column-gap: 1.25rem; }
.gs-rev-card { break-inside: avoid; margin: 0 0 1.25rem; padding: 1.5rem; border-radius: 20px; background: #fff; border: 1px solid var(--gs-line); box-shadow: var(--gs-shadow); display: flex; flex-direction: column; gap: 1rem; }
.gs-rev-card-top { display: flex; justify-content: space-between; align-items: center; }
.gs-rev-card-g { width: 28px; height: 28px; font-size: .85rem; }
.gs-rev-card blockquote { margin: 0; padding: 0; border: 0; font-size: 1rem; line-height: 1.65; color: var(--gs-text); white-space: pre-line; }
.gs-rev-card figcaption { display: flex; align-items: center; gap: .8rem; padding-top: .9rem; border-top: 1px solid var(--gs-line); }
.gs-rev-card .gs-mono { width: 42px; height: 42px; font-size: .95rem; }
.gs-rev-card figcaption span:last-child { display: flex; flex-direction: column; }
.gs-rev-card strong { color: var(--gs-ink); font-size: .97rem; }
.gs-rev-card time, .gs-rev-card-meta { color: var(--gs-muted); font-size: .84rem; }
.gs-rev-card strong a { color: var(--gs-ink); text-decoration: none; }
.gs-rev-card-h { margin: 0; font: 650 1.12rem/1.3 var(--gs-serif); color: var(--gs-ink); }
.gs-rev-src { display: grid; place-items: center; min-width: 28px; height: 28px; padding: 0 6px; border-radius: 999px; font: 700 .72rem/1 var(--gs-sans); color: #fff; }
.gs-rev-src-g { background: conic-gradient(#ea4335 0 25%, #fbbc05 0 50%, #34a853 0 75%, #4285f4 0); font-size: .85rem; border-radius: 50%; }
.gs-rev-src-rs { background: var(--gs-ink); color: var(--gs-gold-hi); letter-spacing: .04em; }
.gs-rev-sum { display: flex; align-items: center; gap: .5rem; margin: .4rem 0 0 !important; color: var(--gs-muted); font-size: .95rem; }
.gs-rev-sum strong { color: var(--gs-ink); }
.gs-home-rev { margin-top: .5rem; }
.gs-home-rev blockquote { display: -webkit-box; -webkit-line-clamp: 7; -webkit-box-orient: vertical; overflow: hidden; }
.gs-rev-tp { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 2rem; align-items: center; }
body.gs26 .gs-rev-tp h2 { font-size: clamp(1.8rem, 3vw, 2.4rem); margin: 0 0 1.2rem; }
.gs-rev-tp-img { display: block; border-radius: 20px; overflow: hidden; box-shadow: var(--gs-shadow-lg); }
.gs-rev-tp-img img { display: block; width: 100%; height: auto; }

@media (max-width: 1060px) {
	.gs-com-svc { grid-template-columns: 1fr; max-width: 640px; }
	.gs-com-intro, .gs-com-spec { grid-template-columns: 1fr; }
	.gs-com-intro-head { position: static; }
	.gs-rev-hero-in { grid-template-columns: 1fr; }
	body.gs26 .gs-rev-score { flex-direction: row; flex-wrap: wrap; justify-content: center; max-width: 520px; }
	.gs-rev-platforms { grid-template-columns: 1fr; }
	.gs-rev-tp { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
	.gs-com-svc-wrap { margin-top: -28px; }
	.gs-com-card { border-radius: 16px; }
	.gs-com-card-in { padding: 1.9rem 1.2rem 1.3rem; }
	.gs-com-card-ic { left: 1.2rem; width: 46px; height: 46px; top: -23px; }
	.gs-com-two { grid-template-columns: 1fr; }
	.gs-com-lead { font-size: 1.15rem; }
	.gs-com-addr { padding: 1.3rem; }
	body.gs26 .gs-rev-score { padding: 1.1rem; gap: .4rem .8rem; }
	.gs-rev-score-n { font-size: 2.6rem; }
	.gs-rev-platforms-wrap { margin-top: 1.4rem; }
	.gs-rev-card { padding: 1.2rem; border-radius: 16px; }
}


/* ------------------------------------------------ family law areas explorer */
.gs-ax { display: grid; grid-template-columns: 320px minmax(0, 1fr); gap: 1.4rem; align-items: start; margin-top: .6rem; }
.gs-ax-nav { display: grid; gap: .35rem; padding: .5rem; border-radius: 20px; background: #fff; border: 1px solid var(--gs-line); position: sticky; top: calc(var(--gs-bar-h) + 20px); }
.gs-ax-nav [role="tab"] {
	display: grid; grid-template-columns: 26px 34px minmax(0, 1fr) 16px; gap: .6rem; align-items: center; width: 100%; margin: 0;
	padding: .65rem .8rem; border: 0; border-radius: 12px; background: transparent; color: var(--gs-text); text-align: left;
	font: 500 .97rem/1.3 var(--gs-sans); text-transform: none; letter-spacing: 0; cursor: pointer; min-height: 0; box-shadow: none;
	transition: background .2s, color .2s;
}
.gs-ax-nav [role="tab"]:hover { background: var(--gs-paper); }
.gs-ax-nav [role="tab"][aria-selected="true"] { background: var(--gs-ink); color: #fff; }
.gs-ax-num { font: 600 .78rem/1 var(--gs-sans); color: var(--gs-muted); letter-spacing: .04em; }
.gs-ax-nav [aria-selected="true"] .gs-ax-num { color: var(--gs-gold-hi); }
.gs-ax-ic { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 10px; background: var(--gs-gold-soft); color: var(--gs-gold-ink); flex: none; }
.gs-ax-nav [aria-selected="true"] .gs-ax-ic { background: rgba(255, 255, 255, .1); color: var(--gs-gold-hi); }
.gs-ax-nav .gs-i-arrow { opacity: 0; transform: translateX(-4px); transition: opacity .2s, transform .2s; }
.gs-ax-nav [aria-selected="true"] .gs-i-arrow, .gs-ax-nav [role="tab"]:hover .gs-i-arrow { opacity: 1; transform: none; }
.gs-ax-panel { border-radius: 22px; background: #fff; border: 1px solid var(--gs-line); box-shadow: var(--gs-shadow); }
.gs-ax-head { margin: 0 !important; }
.gs-ax-toggle {
	display: flex; align-items: center; gap: 1rem; width: 100%; margin: 0; padding: 1.6rem 1.8rem 0; border: 0; background: none;
	text-align: left; color: var(--gs-ink); cursor: default; min-height: 0; box-shadow: none; text-transform: none; letter-spacing: 0;
}
.gs-ax-toggle .gs-ax-ic { width: 54px; height: 54px; border-radius: 15px; background: var(--gs-ink); color: var(--gs-gold-hi); }
.gs-ax-title { display: flex; flex-direction: column; font: 650 clamp(1.6rem, 2.6vw, 2.1rem)/1.15 var(--gs-serif); letter-spacing: -.01em; }
.gs-ax-title small { font: 600 .78rem/1.4 var(--gs-sans); letter-spacing: .14em; color: var(--gs-gold-ink); margin-bottom: .2rem; }
.gs-ax-plus { display: none; }
.gs-ax-body { padding: 1rem 1.8rem 1.8rem; }
.gs-ax-body p { font-size: 1.06rem; line-height: 1.75; color: var(--gs-text); margin: 0 0 1rem; }
.gs-ax-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .7rem 1rem; margin-top: 1.4rem; padding-top: 1.3rem; border-top: 1px dashed var(--gs-line); }
.gs-ax-actions .gs-link { margin-right: auto; padding: .4rem 0; }
/* With JS on wide screens only the selected panel shows. Without JS all panels stack. */
@media (min-width: 901px) {
	.gs-ax.is-js .gs-ax-panel:not(.is-open) { display: none; }
	.gs-ax.is-js .gs-ax-panel.is-open { animation: gs-ax-in .25s ease; }
}
@keyframes gs-ax-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
@media (max-width: 900px) {
	.gs-ax { grid-template-columns: 1fr; gap: .7rem; }
	.gs-ax-nav { display: none; }
	.gs-ax-panels { display: grid; gap: .7rem; }
	.gs-ax-panel { border-radius: 16px; box-shadow: none; }
	.gs-ax-toggle { padding: 1rem 1.1rem; gap: .8rem; cursor: pointer; }
	.gs-ax-toggle .gs-ax-ic { width: 42px; height: 42px; border-radius: 12px; }
	.gs-ax-title { font-size: 1.2rem; flex: 1; }
	.gs-ax-title small { font-size: .7rem; }
	.gs-ax-plus {
		display: block; flex: none; width: 30px; height: 30px; border-radius: 50%;
		background: var(--gs-gold-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a67c32' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E") center/15px no-repeat;
		transition: transform .25s;
	}
	.gs-ax-panel.is-open .gs-ax-plus { transform: rotate(45deg); }
	.gs-ax.is-js .gs-ax-panel:not(.is-open) .gs-ax-body { display: none; }
	.gs-ax-body { padding: 0 1.1rem 1.2rem; }
	.gs-ax-body p { font-size: 1rem; }
	.gs-ax-actions .gs-btn { flex: 1 1 100%; }
	.gs-ax-actions .gs-link { margin-right: 0; }
}
@media (prefers-reduced-motion: reduce) { .gs-ax-panel.is-open { animation: none !important; } }


/* ------------------------------------------------------ price information */
.gs-price-cards-wrap { position: relative; z-index: 2; margin-top: -64px; padding-bottom: clamp(48px, 7vw, 88px); }
.gs-price-pick { display: inline-block; margin: 0 0 1rem !important; padding: .55rem 1rem; border-radius: 999px; background: #fff; border: 1px solid var(--gs-line); box-shadow: var(--gs-shadow); font-weight: 600; font-size: .95rem; color: var(--gs-ink); }
.gs-price-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; margin-bottom: 1rem; }
body.gs26 .gs-price-card {
	display: flex; flex-direction: column; gap: .5rem; padding: 1.8rem 1.6rem 1.5rem; border-radius: 22px;
	background: #fff; border: 1px solid var(--gs-line); box-shadow: var(--gs-shadow-lg); text-decoration: none; color: var(--gs-text);
	transition: transform .25s, border-color .25s;
}
body.gs26 .gs-price-card:hover { transform: translateY(-4px); border-color: var(--gs-gold); color: var(--gs-text); }
.gs-price-card .gs-card-ic { margin-bottom: .4rem; }
.gs-price-card-t { font: 650 1.2rem/1.3 var(--gs-serif); color: var(--gs-ink); letter-spacing: -.015em; }
.gs-price-card-p { font: 750 clamp(1.6rem, 2.4vw, 2rem)/1.15 var(--gs-serif); color: var(--gs-ink); letter-spacing: -.03em; margin: .2rem 0 .3rem; }
.gs-price-card-p small { display: block; margin-top: .2rem; font: 500 .85rem var(--gs-sans); color: var(--gs-muted); letter-spacing: 0; }
.gs-price-card-c { font-size: .95rem; line-height: 1.6; color: var(--gs-muted); flex: 1; }
.gs-price-card-meta { display: flex; align-items: center; gap: .6rem; margin-top: .6rem; padding: .7rem .9rem; border-radius: 12px; background: var(--gs-paper); color: var(--gs-ink); font-weight: 600; font-size: .95rem; }
.gs-price-card-meta .gs-i { color: var(--gs-ic-fg); }
.gs-price-card-meta small { display: block; font-size: .72rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--gs-muted); }
.gs-price-card-more { display: inline-flex; align-items: center; gap: .4rem; margin-top: .5rem; font-weight: 600; font-size: .93rem; color: var(--gs-gold-ink); }
.gs-price-card-more .gs-i { transition: transform .2s; }
.gs-price-card:hover .gs-price-card-more .gs-i { transform: translateX(4px); }
.gs-price-info { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.gs-price-info-card { padding: 1.6rem; border-radius: 20px; background: #fff; border: 1px solid var(--gs-line); }
.gs-price-info-card .gs-card-ic { margin-bottom: .9rem; }
body.gs26 .gs-price-info-card h3 { font-size: 1.25rem; margin: 0 0 .6rem; }
.gs-price-info-card p { font-size: .96rem; line-height: 1.65; color: var(--gs-muted); margin: 0 0 .8rem; }
.gs-price-info-card p:last-child { margin-bottom: 0; }
.gs-price-est { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: clamp(28px, 5vw, 72px); align-items: center; }
body.gs26 .gs-price-est h2 { font-size: clamp(1.85rem, 3.2vw, 2.5rem); margin: 0 0 1rem; }
.gs-price-est p { color: var(--gs-muted); font-size: 1.04rem; }
.gs-price-est-card { display: grid; gap: .7rem; padding: 1.8rem; border-radius: 22px; background: var(--gs-ink); box-shadow: var(--gs-shadow-lg); }
.gs-price-est-card .gs-btn { white-space: normal; overflow-wrap: anywhere; }
.gs-price-est-card p { display: flex; align-items: center; justify-content: center; gap: .5rem; margin: .4rem 0 0; color: var(--gs-on-ink); font-size: .9rem; }
.gs-price-est-card p .gs-i { color: var(--gs-gold-hi); }
@media (max-width: 1060px) {
	.gs-price-cards, .gs-price-info { grid-template-columns: 1fr; }
	.gs-price-cards { max-width: 640px; }
	.gs-price-est { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
	.gs-price-cards-wrap { margin-top: -36px; }
	.gs-price-pick { font-size: .88rem; border-radius: 14px; }
	body.gs26 .gs-price-card { padding: 1.3rem 1.2rem; border-radius: 18px; }
	.gs-price-est-card { padding: 1.3rem; }
}


/* ------------------------------------------------------------ contact page */
.gs-ct-hero .gs-chero-in { padding-bottom: clamp(72px, 9vw, 120px); }
.gs-ct-ways-wrap { position: relative; z-index: 2; margin-top: -64px; }
.gs-ct-ways-wrap .gs-ways { margin-top: 0; }
body.gs26 .gs-way { position: relative; padding-right: 3.6rem; }
.gs-way-go { position: absolute; top: 1.5rem; right: 1.4rem; display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; border: 1px solid var(--gs-line); color: var(--gs-gold-ink); transition: background .2s, border-color .2s, transform .2s; }
.gs-way:hover .gs-way-go, .gs-notice:hover .gs-way-go { background: var(--gs-gold); border-color: var(--gs-gold); color: var(--gs-ink); transform: translateX(2px); }
.gs-ct-main { padding-top: clamp(40px, 5vw, 64px); }
.gs-ct-form h2 { margin-bottom: .6rem !important; }
.gs-ct-assure { list-style: none; margin: 0 0 1.6rem; padding: 0; display: grid; gap: .6rem; }
.gs-ct-assure li { display: flex; gap: .8rem; align-items: flex-start; margin: 0 !important; padding: .8rem .9rem; border-radius: 14px; background: #fff; border: 1px solid var(--gs-line); font-size: .92rem; line-height: 1.5; color: var(--gs-text); }
.gs-ct-assure .gs-card-ic { width: 34px; height: 34px; border-radius: 10px; margin: 0; flex: none; }
.gs-ct-hours { margin-top: 1.6rem; padding-top: 1.3rem; border-top: 1px dashed var(--gs-line); }
.gs-ct-hours-h { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem; margin: 0 0 .8rem !important; font-weight: 600; color: var(--gs-ink) !important; }
.gs-ct-hours-h .gs-i { color: var(--gs-ic-fg); }
.gs-ct-now { margin-left: auto; padding: .25rem .7rem; border-radius: 999px; font-size: .78rem; font-weight: 700; letter-spacing: .03em; }
.gs-ct-now.is-open { background: #e7f6ec; color: #1d7a3e; }
.gs-ct-now.is-closed { background: #f6efe4; color: var(--gs-gold-ink); }
.gs-ct-hours table { width: 100%; border-collapse: collapse; margin: 0; font-size: .93rem; }
.gs-ct-hours th, .gs-ct-hours td { padding: .5rem .6rem; border: 0; border-bottom: 1px solid var(--gs-line); text-align: left; font-weight: 500; color: var(--gs-muted); }
.gs-ct-hours td { text-align: right; color: var(--gs-ink); }
.gs-ct-hours tr:last-child th, .gs-ct-hours tr:last-child td { border-bottom: 0; }
.gs-ct-hours tr.is-today th, .gs-ct-hours tr.is-today td { background: var(--gs-paper); color: var(--gs-ink); font-weight: 700; }
.gs-ct-hours tr.is-today th { border-radius: 10px 0 0 10px; }
.gs-ct-hours tr.is-today td { border-radius: 0 10px 10px 0; }
.gs-ct-intro { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, .7fr); gap: clamp(28px, 5vw, 72px); align-items: center; }
body.gs26 .gs-ct-intro h2 { font-size: clamp(1.85rem, 3.2vw, 2.5rem); margin: 0 0 1rem; }
.gs-ct-intro p:not(.gs-eyebrow) { color: var(--gs-muted); font-size: 1.04rem; }
.gs-ct-awards { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.gs-ct-awards img { width: 100%; height: auto; border-radius: 16px; box-shadow: var(--gs-shadow-lg); }
.gs-ct-bottom { display: grid; gap: 1.4rem; }
body.gs26 .gs-ct-bottom .gs-notice { position: relative; padding-right: 4rem; }
.gs-ct-bottom .gs-notice .gs-way-go { top: 50%; transform: translateY(-50%); }
.gs-ct-bottom .gs-notice:hover .gs-way-go { transform: translateY(-50%) translateX(2px); }
.gs-ct-bottom .gs-company { margin-top: 0; }
@media (max-width: 1060px) {
	.gs-ct-intro { grid-template-columns: 1fr; }
	.gs-ct-awards { max-width: 380px; }
}
@media (max-width: 760px) {
	.gs-ct-ways-wrap { margin-top: -36px; }
	body.gs26 .gs-way { padding-right: 16px; }
	.gs-way-go { display: none; }
	.gs-ct-assure li { font-size: .88rem; }
	body.gs26 .gs-ct-bottom .gs-notice { padding-right: 1.3rem; }
	.gs-ct-bottom .gs-notice .gs-way-go { display: none; }
}


/* ------------------------------------------------- document & fee pages */
.gs-doc-chips { list-style: none; margin: 1.6rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: .7rem; }
.gs-doc-chips li { margin: 0 !important; display: flex; align-items: center; gap: .7rem; padding: .7rem 1.1rem .7rem .7rem; border-radius: 16px; background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .16); color: #fff; font-weight: 700; font-size: 1.05rem; }
.gs-doc-chips small { display: block; font-size: .72rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--gs-gold-hi); }
.gs-doc-chip-ic { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 12px; background: var(--gs-gold); color: var(--gs-ink); }
.gs-doc-layout { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: clamp(28px, 4vw, 56px); align-items: start; }
.gs-doc-side { position: sticky; top: calc(var(--gs-bar-h) + 24px); display: grid; gap: 1rem; max-height: calc(100vh - var(--gs-bar-h) - 48px); overflow-y: auto; scrollbar-width: thin; }
.gs-doc-toc-h { margin: 0 0 .7rem !important; font-size: .74rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--gs-muted); }
.gs-doc-toc ol { list-style: none; margin: 0; padding: 0; border-left: 2px solid var(--gs-line); }
.gs-doc-toc li { margin: 0 !important; }
body.gs26 .gs-doc-toc a { display: block; padding: .42rem 0 .42rem .9rem; margin-left: -2px; border-left: 2px solid transparent; color: var(--gs-muted); font-size: .9rem; line-height: 1.35; text-decoration: none; }
body.gs26 .gs-doc-toc a:hover, body.gs26 .gs-doc-toc a.is-on { color: var(--gs-ink); border-left-color: var(--gs-gold); }
body.gs26 .gs-doc-toc a.is-on { font-weight: 600; }
.gs-doc-cta { display: grid; gap: .6rem; padding: 1.1rem; border-radius: 18px; background: var(--gs-ink); }
.gs-doc-cta .gs-btn { min-height: 46px; font-size: .92rem; }
.gs-doc-main { display: grid; gap: 1.1rem; min-width: 0; }
.gs-doc-sec { padding: clamp(22px, 3vw, 36px); border-radius: 20px; background: #fff; border: 1px solid var(--gs-line); scroll-margin-top: calc(var(--gs-bar-h) + 20px); }
body.gs26 .gs-doc-sec h2 { font-size: clamp(1.35rem, 2.2vw, 1.7rem); line-height: 1.2; margin: 0 0 1rem; letter-spacing: -.02em; }
.gs-doc-sec p { font-size: 1.02rem; line-height: 1.75; margin: 0 0 1rem; color: var(--gs-text); }
.gs-doc-sec > *:last-child { margin-bottom: 0 !important; }
.gs-doc-lead { font-weight: 600; color: var(--gs-ink) !important; }
.gs-doc-list { list-style: none; margin: 0 0 1.1rem; padding: 0; display: grid; gap: .6rem; }
.gs-doc-list li { display: flex; gap: .75rem; margin: 0 !important; line-height: 1.65; }
.gs-doc-list li > .gs-i { flex: none; margin-top: .3rem; width: 20px; height: 20px; padding: 4px; border-radius: 50%; background: var(--gs-ic-bg); color: var(--gs-ic-fg); box-shadow: inset 0 0 0 1px var(--gs-ic-border); box-sizing: border-box; stroke-width: 2.4; }
.gs-doc-ol { counter-reset: d; }
.gs-doc-ol li { counter-increment: d; }
.gs-doc-ol li::before { content: counter(d); flex: none; display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--gs-paper); border: 1px solid var(--gs-line); font-size: .8rem; font-weight: 700; color: var(--gs-gold-ink); margin-top: .1rem; }
.gs-doc-prices { margin: 0 0 1.1rem; border: 1px solid var(--gs-line); border-radius: 14px; overflow: hidden; }
.gs-doc-price { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; padding: .8rem 1.1rem; border-bottom: 1px solid var(--gs-line); font-size: .98rem; }
.gs-doc-price:nth-child(even) { background: #fcfaf6; }
.gs-doc-price:last-child { border-bottom: 0; }
.gs-doc-price strong { flex: none; font: 700 1rem/1.3 var(--gs-serif); color: var(--gs-ink); white-space: nowrap; text-align: right; }
.gs-doc-price-note span { color: var(--gs-muted); font-size: .94rem; }
.gs-doc-table { margin: 0 0 1.1rem; }
body.gs26 .gs-doc-table th { background: var(--gs-ink) !important; color: #fff !important; font-weight: 600; }
body.gs26 .gs-doc-table tr:nth-child(even) td { background: #fcfaf6; }
body.gs26 .gs-doc-table td:not(:first-child), body.gs26 .gs-doc-table th:not(:first-child) { text-align: right; }
.gs-doc-related { padding: 1.4rem; border-radius: 20px; background: var(--gs-paper); border: 1px solid var(--gs-line); }
.gs-doc-related > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; }
body.gs26 .gs-doc-related a { display: grid; grid-template-columns: 38px 1fr auto; gap: .8rem; align-items: center; padding: .9rem 1rem; border-radius: 14px; background: #fff; border: 1px solid var(--gs-line); color: var(--gs-ink); text-decoration: none; font-weight: 600; font-size: .95rem; }
body.gs26 .gs-doc-related a:hover { border-color: var(--gs-gold); color: var(--gs-ink); }
.gs-doc-related .gs-card-ic { width: 38px; height: 38px; border-radius: 10px; margin: 0; }
.gs-doc-related .gs-i-arrow { color: var(--gs-gold-ink); }

/* complaints page */
.gs-cp-pdf { margin-top: 1.4rem; }
.gs-cp-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: clamp(28px, 4vw, 56px); align-items: start; }
.gs-cp-main { display: grid; gap: 1.1rem; min-width: 0; }
.gs-cp-free { display: flex; align-items: center; gap: .7rem; padding: .9rem 1.1rem; border-radius: 14px; background: #e9f6ee; color: #1d5e36 !important; }
.gs-cp-free .gs-i { flex: none; color: #1d7a3e; }
.gs-cp-steps { list-style: none; margin: 0 0 1.2rem; padding: 0; display: grid; gap: 0; }
.gs-cp-steps li { position: relative; display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 1rem; margin: 0 !important; padding: 0 0 1.3rem; }
.gs-cp-steps li:not(:last-child)::after { content: ""; position: absolute; left: 19px; top: 42px; bottom: 4px; width: 2px; background: var(--gs-line); }
.gs-cp-num { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--gs-ink); color: var(--gs-gold-hi); font-weight: 700; }
.gs-cp-steps p { margin: 0 !important; padding-top: .45rem; }
.gs-cp-when { display: inline-flex; align-items: center; gap: .35rem; margin: .4rem 0 .2rem; padding: .2rem .65rem; border-radius: 999px; background: var(--gs-gold-soft); color: var(--gs-gold-ink); font-size: .8rem; font-weight: 700; }
.gs-cp-when + p { padding-top: .2rem; }
.gs-cp-side { position: sticky; top: calc(var(--gs-bar-h) + 24px); display: grid; gap: 1rem; }
.gs-cp-card { display: grid; gap: .5rem; padding: 1.3rem; border-radius: 18px; background: #fff; border: 1px solid var(--gs-line); }
.gs-cp-card p { margin: 0 !important; color: var(--gs-text); font-size: .95rem; line-height: 1.55; }
body.gs26 .gs-cp-card a { display: flex; align-items: center; gap: .5rem; color: var(--gs-ink); text-decoration: none; font-weight: 600; font-size: .93rem; overflow-wrap: anywhere; padding: .2rem 0; }
.gs-cp-card a .gs-i { color: var(--gs-ic-fg); flex: none; }
.gs-cp-card-dark { background: var(--gs-ink); border-color: var(--gs-ink); }
.gs-cp-card-dark .gs-doc-toc-h { color: var(--gs-gold-hi); }
.gs-cp-card-dark p { color: var(--gs-on-ink) !important; }
body.gs26 .gs-cp-card-dark a { color: #fff; }
.gs-cp-card-dark a .gs-i { color: var(--gs-gold-hi); }

@media (max-width: 1060px) {
	.gs-doc-layout, .gs-cp-layout { grid-template-columns: 1fr; }
	.gs-doc-side, .gs-cp-side { position: static; max-height: none; overflow: visible; }
	.gs-doc-toc ol { columns: 2; column-gap: 1.5rem; }
	.gs-doc-toc li { break-inside: avoid; }
	.gs-doc-related > div { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
	.gs-doc-toc ol { columns: 1; }
	.gs-doc-toc { padding: 1.1rem; border-radius: 16px; background: #fff; border: 1px solid var(--gs-line); }
	.gs-doc-sec { border-radius: 16px; padding: 18px; }
	.gs-doc-sec p { font-size: .98rem; }
	.gs-doc-price { flex-direction: column; gap: .2rem; }
	.gs-doc-price strong { text-align: left; white-space: normal; }
	.gs-doc-chips li { flex: 1 1 100%; }
}

/* ------------------------------------------------------- phones (<=760px) */

.gs-mbar { display: none; }
@media (max-width: 760px) {
	/* Bottom action bar: call and callback always one tap away. */
	.gs-mbar {
		display: grid; grid-template-columns: 1.15fr 1fr; gap: 8px;
		position: fixed; left: 0; right: 0; bottom: 0; z-index: 1050;
		padding: 8px 10px calc(8px + env(safe-area-inset-bottom));
		background: rgba(255, 255, 255, .96); border-top: 1px solid var(--gs-line);
		box-shadow: 0 -8px 24px -12px rgba(15, 28, 46, .25);
	}
	@supports (backdrop-filter: blur(8px)) { .gs-mbar { background: rgba(255, 255, 255, .85); backdrop-filter: saturate(1.4) blur(12px); } }
	body.gs26 .gs-mbar a {
		display: inline-flex; align-items: center; justify-content: center; gap: .45rem;
		min-height: 48px; border-radius: 999px; font: 600 .9rem/1.1 var(--gs-sans); text-decoration: none; white-space: nowrap;
	}
	body.gs26 .gs-mbar-call { background: var(--gs-ink); color: #fff; }
	body.gs26 .gs-mbar-cb { background: var(--gs-gold); color: var(--gs-ink); }
	body.gs26 { padding-bottom: calc(66px + env(safe-area-inset-bottom)); }
	body.gs-lock .gs-mbar { display: none; }


	/* Hero: fits a phone screen with both buttons visible. */
	.gs-hero-in { padding-top: 36px; padding-bottom: 40px; gap: 0; }
	.gs-hero .gs-eyebrow { font-size: .68rem !important; letter-spacing: .1em; }
	.gs-hero .gs-eyebrow::before { display: none; }
	body.gs26 .gs-hero h1 { font-size: 2.35rem; margin-bottom: 1rem; }
	.gs-hero-lede { font-size: 1rem; margin-bottom: 1.5rem; }
	.gs-hero-actions { gap: .6rem; }
	.gs-btn-lg { min-height: 52px; padding: .8rem 1.3rem; }
	.gs-proof { margin-top: 1.6rem; padding-top: 1.1rem; gap: .45rem; }
	.gs-proof li { font-size: .82rem; }

	/* Sections and headings */
	.gs-sec { padding: 48px 0; }
	.gs-sec-tight { padding: 22px 0; }
	.gs-sec-head { margin-bottom: 24px; }
	body.gs26 .gs-sec-head h2, body.gs26 .gs-visit h2, body.gs26 .gs-area h2 { font-size: 1.85rem; }
	.gs-sec-head > p:not(.gs-eyebrow) { font-size: 1rem; }

	/* Service cards: compact rows (icon left), the whole card is the link. */
	.gs-cards { gap: .7rem; }
	body.gs26 .gs-card { display: grid; grid-template-columns: 44px 1fr; column-gap: 14px; row-gap: 2px; padding: 16px; align-items: start; }
	.gs-card-ic { grid-row: 1 / span 2; width: 44px; height: 44px; border-radius: 12px; margin: 0; }
	.gs-card-ic .gs-i { width: 20px; height: 20px; }
	body.gs26 .gs-card h3 { font-size: 1.15rem; margin: 0; line-height: 1.25; }
	.gs-card p { margin: 0; font-size: .92rem; line-height: 1.5; }
	.gs-card-more { display: none; }
	body.gs26 .gs-card:hover { transform: none; }

	/* Specialist areas: picture first, shorter. */
	.gs-areas .gs-wrap { gap: 44px; }
	.gs-area { gap: 18px; }
	.gs-area .gs-area-img, .gs-area-flip .gs-area-img { order: -1; aspect-ratio: 16 / 9; border-radius: 14px; }
	.gs-area-copy p:not(.gs-eyebrow) { font-size: 1rem; }

	/* Fees */
	.gs-fees { gap: .7rem; margin-top: 1.2rem; }
	body.gs26 .gs-fee { padding: 1.1rem 1.2rem; }
	.gs-fee-p { font-size: 1.3rem; }
	.gs-fee-l { margin-top: .3rem; }

	.gs-excel-in { padding-top: 52px; padding-bottom: 52px; }
	.gs-excel .gs-excel-tag { font-size: 1.15rem; }
	.gs-marquee img { height: 40px; }
	.gs-marquee-track { gap: 36px; }
	.gs-quote blockquote p { font-size: 1.7rem; }
	.gs-map { aspect-ratio: 4 / 3.2; border-radius: 14px; }
	.gs-dl div { grid-template-columns: 70px 1fr; }
	.gs-dl dd { overflow-wrap: anywhere; }
	.gs-area .gs-link, .gs-findus .gs-link, .gs-notice .gs-link { padding: .65rem 0; }
	body.gs26 .gs-dl dd a { display: inline-block; padding: .55rem 0; }
	.gs-dl div { padding-bottom: .3rem; align-items: center; }

	/* Contact: compact cards */
	.gs-ways { gap: .7rem; }
	body.gs26 .gs-way { display: grid; grid-template-columns: 44px 1fr; column-gap: 14px; padding: 16px; }
	.gs-way-ic { grid-row: 1 / span 3; width: 44px; height: 44px; margin: 0; }
	.gs-way-v { font-size: 1.2rem; }
	.gs-way-email { font-size: .95rem; }
	.gs-formcard { padding: 22px 18px; border-radius: 16px; }
	.gs-findus-body { padding: 1.2rem 1.2rem 1.4rem; }
	.gs-findus-actions .gs-btn { flex: 1 1 100%; }

	/* Page hero: the current page is already the H1 just below. */
	.gs-crumbs li:last-child { display: none; }
	.gs-crumbs li:nth-last-child(2)::after { content: ""; }
	body.gs26 .gs-phero h1 { font-size: 2rem; }

	/* Footer */
	.gs-cta-in { gap: 1.2rem; }
	.gs-foot { padding-top: 40px; }
	.gs-foot-wide ul { columns: 1; }
	body.gs26 .gs-foot-col a { display: inline-block; padding: .3rem 0; }
	.gs-foot-col li, .gs-foot-wide li { margin: 0 !important; }
	.gs-badges { padding: 1.1rem; gap: .9rem 1.1rem; }
	.gs-sra { width: 160px; }
	.gs-badge img { height: 50px; }
	.gs-badge-sq img { height: 68px; }

	/* UX Builder pages: one gutter, edge-to-edge sections, sane vertical rhythm. */
	body.gs26-built #content .section { padding-left: 0 !important; padding-right: 0 !important; padding-top: 44px !important; padding-bottom: 44px !important; }
	body.gs26-built #content > .row-main .col-inner > .section:first-child { padding-top: 40px !important; padding-bottom: 40px !important; }
	body.gs26-built #content .section .section-content > .row > .col,
	body.gs26-built #content > .row-main > .col > .col-inner > .row > .col { padding-left: var(--gs-gutter) !important; padding-right: var(--gs-gutter) !important; }
	body.gs26-built #content .row-inner > .col, body.gs26-built #content .row .row > .col { padding-left: 0 !important; padding-right: 0 !important; }
	/* Nested rows keep Flatsome's -15px side margins; with the inner gutters removed they hugged the screen edge. */
	body.gs26-built #content .row .row, body.gs26-prose #content .row .row { margin-left: 0 !important; margin-right: 0 !important; width: auto !important; }
	body.gs26-built #content .col { padding-bottom: 18px; }
	body.gs26-built #content .section:not(.dark) .col > .col-inner > .icon-box.featured-box { padding: 1.3rem 1.1rem; }
	body.gs26-built #content .gap-element { max-height: 24px; }
	/* Property page hero background is a banner with text baked in; cropped on a phone it reads as noise. */
	body.page-id-123 #content > .row-main .col-inner > .section:first-child .section-bg { background-image: none !important; }
	body.gs26-built #content .button { width: 100%; }
	body.gs26-built #content .button.is-link, body.gs26-built #content .button.is-underline { width: auto; }
	body.gs26-built #content .text-center p:not(.icon-box p), body.gs26-built #content p[style*="center"]:not(.icon-box p) { text-align: left !important; }
}

@media (max-width: 400px) {
	.gs-word-2 { display: none; }
}

@media (prefers-reduced-motion: reduce) {
	.gs-marquee-track { animation: none; flex-wrap: wrap; justify-content: center; width: auto; }
	.gs-marquee-track img[aria-hidden="true"] { display: none; }
	.gs-drawer-panel { animation: none; }
	body.gs26 * { transition: none !important; }
}

@media print {
	.gs-util, .gs-bar-cta, .gs-nav, .gs-cta-band, .gs-drawer, .gs-map { display: none !important; }
	body.gs26 #header.header { position: static; }
}


/* ------------------------------------------------------------ icon chips
   One light style for every pale icon tile on the site: near-white warm gradient, a faint gold
   edge and a softer gold stroke (3.3:1 or better against the tile). Hover deepens the tile a
   little instead of flipping to navy. */
.gs-card-ic, .gs-spec-ic, .gs-way-ic, .gs-phone-ic, .gs-prop-panel-ic, .gs-ax-nav [aria-selected="false"] .gs-ax-ic,
.gs-rev-pl-ic:not(.gs-rev-pl-g):not(.gs-rev-pl-tp), .gs-fam-articles .gs-card-ic, .gs-prop-extra .gs-card-ic {
	background: var(--gs-ic-bg) !important;
	color: var(--gs-ic-fg) !important;
	box-shadow: inset 0 0 0 1px var(--gs-ic-border), inset 0 1px 0 rgba(255, 255, 255, .9) !important;
}
.gs-card:hover .gs-card-ic, .gs-spec-list a:hover .gs-spec-ic, .gs-prop-extra a:hover .gs-card-ic,
.gs-fam-articles a:hover .gs-card-ic, .gs-way:hover .gs-way-ic, .gs-ax-nav [aria-selected="false"]:hover .gs-ax-ic {
	background: var(--gs-ic-bg-hover) !important;
	color: var(--gs-gold-ink) !important;
}
.gs-fee-ic, .gs-notice-ic, .gs-cnote .gs-i, .gs-prop-callout .gs-i, .gs-fam-callout .gs-i { color: var(--gs-ic-fg); }
.gs-faq summary::after, .gs-acc summary::after, .gs-ax-plus {
	background-color: #f9f3e6 !important;
	box-shadow: inset 0 0 0 1px var(--gs-ic-border);
}

/* Modern type: no italic serif accents anywhere. */
body.gs26 blockquote, body.gs26 blockquote p { font-style: normal; }
.gs-quote blockquote p { letter-spacing: -.025em; }
.gs-fam-reviews blockquote { font: 500 1.02rem/1.6 var(--gs-sans) !important; }
.gs-excel .gs-excel-tag { letter-spacing: -.01em; }
.gs-word-1 { letter-spacing: -.02em; }
.gs-mark { letter-spacing: 0; }

/* Tick bullets (careers lists, property page lists): light chip instead of navy. */
.gs-job-list .gs-i, .gs-ticks .gs-i {
	width: 22px !important; height: 22px !important; padding: 4px !important; border-radius: 50%;
	background: var(--gs-ic-bg) !important; color: var(--gs-ic-fg) !important;
	box-shadow: inset 0 0 0 1px var(--gs-ic-border);
	stroke-width: 2.2;
}
.gs-job-list li, .gs-ticks li { gap: .75rem; }

/* Specialist areas: fixed card sizes so every row and both photo cards line up exactly. */
body.gs26 .gs-spec-hero { height: 300px; min-height: 0; }
body.gs26 .gs-spec-list a { height: 108px; padding-top: 0; padding-bottom: 0; align-items: center; box-sizing: border-box; }
.gs-spec-tx { justify-content: center; }
.gs-spec-tx strong { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gs-spec-tx small { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: calc(2 * 1.45em); }
@media (max-width: 760px) {
	body.gs26 .gs-spec-hero { height: 240px; }
	body.gs26 .gs-spec-list a { height: 158px; grid-template-columns: 40px minmax(0, 1fr); }
	body.gs26 .gs-spec-list a > .gs-spec-go { display: none; }
	.gs-spec-tx small { -webkit-line-clamp: 3; min-height: calc(3 * 1.45em); }
	.gs-spec-tx strong { white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
	/* Phones: titles may wrap, so pin the text block to the top for matching title positions. */
	body.gs26 .gs-spec-list a { align-items: start; padding-top: 18px; }
	body.gs26 .gs-spec-list a > .gs-spec-ic, body.gs26 .gs-spec-list a > .gs-spec-go { align-self: center; }
	.gs-spec-tx { justify-content: flex-start; }
}

.gs-doc-sec p, .gs-doc-sec li, .gs-doc-price span, .gs-cp-main p { overflow-wrap: anywhere; }
body.gs26 .gs-cp-card a { min-height: 40px; padding: .45rem 0; }

/* ------------------------------------------- privacy policy sub-headings */
body.gs26 .gs-doc-sub { font: 600 1.05rem/1.3 var(--gs-serif); color: var(--gs-ink); margin: 1.5rem 0 .5rem; padding-top: 1.2rem; border-top: 1px solid var(--gs-line); letter-spacing: -.01em; }
body.gs26 .gs-doc-sec h2 + .gs-doc-sub { margin-top: .4rem; padding-top: 0; border-top: 0; }

/* -------------------------------------------- security notice (/communications/) */
.gs-secn-alert {
	display: flex; align-items: center; gap: .9rem; max-width: 660px; margin: 1.6rem 0 0 !important; padding: 1rem 1.2rem;
	border-radius: 16px; background: rgba(255, 255, 255, .07); border: 1px solid rgba(201, 164, 92, .45); color: #fff;
}
.gs-secn-alert strong { font-weight: 600; line-height: 1.45; }
.gs-secn-alert-ic { flex: none; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; background: var(--gs-gold); color: var(--gs-ink); }
.gs-secn-letter p:first-child { font-weight: 600; color: var(--gs-ink); }
.gs-secn-letter p:last-child, .gs-secn-sign p:last-child { margin-bottom: 0 !important; }
.gs-secn-cards { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.1rem; }
.gs-secn-card { margin: 0 !important; padding: clamp(20px, 2.4vw, 28px); border-radius: 20px; background: #fff; border: 1px solid var(--gs-line); min-width: 0; }
.gs-secn-card-top { display: flex; align-items: flex-start; justify-content: space-between; }
.gs-secn-card .gs-card-ic { margin-bottom: .9rem; }
.gs-secn-num { font: 700 2rem/1 var(--gs-serif); color: var(--gs-gold-soft); -webkit-text-stroke: 1px var(--gs-gold); }
body.gs26 .gs-secn-card h2 { font: 700 1.15rem/1.3 var(--gs-serif); color: var(--gs-ink); margin: 0 0 .7rem; letter-spacing: -.01em; }
.gs-secn-card ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .55rem; }
.gs-secn-card li { display: flex; gap: .65rem; margin: 0 !important; line-height: 1.6; overflow-wrap: anywhere; }
.gs-secn-card li > .gs-i { flex: none; margin-top: .3rem; width: 20px; height: 20px; padding: 4px; border-radius: 50%; background: var(--gs-ic-bg); color: var(--gs-ic-fg); box-shadow: inset 0 0 0 1px var(--gs-ic-border); box-sizing: border-box; stroke-width: 2.4; }
body.gs26 .gs-secn-card a { color: var(--gs-ink); text-decoration: underline; text-decoration-color: var(--gs-gold); text-underline-offset: 3px; }
.gs-secn-team { font-weight: 600; color: var(--gs-ink); }
.gs-secn-date { margin-top: 1rem !important; padding-top: .9rem; border-top: 1px solid var(--gs-line); font-size: .88rem; color: var(--gs-muted) !important; }
.gs-cp-card p .gs-i { vertical-align: -2px; margin-right: .3rem; }
@media (max-width: 700px) {
	.gs-secn-cards { grid-template-columns: 1fr; }
	.gs-secn-alert { align-items: flex-start; }
}
body.gs26 .gs-cp-card a.gs-secn-mail { font-size: .84rem; overflow-wrap: normal; word-break: normal; }

/* Footer credit: deliberately quiet. */
.gs-credit { margin-left: .35rem; color: #7d889b; white-space: nowrap; }
body.gs26 .gs-foot .gs-credit a { color: #97a2b4; text-decoration: none; }
body.gs26 .gs-foot .gs-credit a:hover { color: var(--gs-gold-hi); text-decoration: underline; }
.gs-credit::before { content: "\00b7"; margin-right: .35rem; }
@media (max-width: 700px) {
	.gs-credit { display: block; margin: .3rem 0 0; }
	.gs-credit::before { content: none; }
}
@media (min-width: 701px) { .gs-legal p:first-child { flex: none; } }

/* Specialist area rows: more air between title and description (5 Oct). */
.gs-spec-list { gap: .85rem; }
body.gs26 .gs-spec-list a { height: 128px; padding-left: 1.4rem; padding-right: 1.3rem; gap: 1.2rem; }
.gs-spec-tx { gap: .65rem; }
.gs-spec-tx small { line-height: 1.55; min-height: calc(2 * 1.55em); }
@media (max-width: 760px) {
	body.gs26 .gs-spec-list a { height: 158px; padding: 22px 1.1rem 0; gap: 1rem; }
	.gs-spec-tx { gap: .6rem; }
	.gs-spec-tx small { min-height: calc(3 * 1.55em); }
}

/*
 * Specialist area rows, 5 Oct: one shared top line. Icon, heading and arrow sit on the same row in
 * every card, and the description always starts at the same height below the heading. Before, the icon
 * was centred on the card while the text was pinned to the top, so one-line descriptions looked off-centre.
 */
body.gs26 .gs-spec-list a { align-items: start; padding-top: 20px; }
body.gs26 .gs-spec-list a > .gs-spec-ic { align-self: start; }
body.gs26 .gs-spec-list a > .gs-spec-go { align-self: start; margin-top: 4px; }
.gs-spec-tx { justify-content: flex-start; padding-top: calc((44px - 1.12rem * 1.25) / 2); }
@media (max-width: 760px) {
	body.gs26 .gs-spec-list a { padding-top: 20px; }
	body.gs26 .gs-spec-list a > .gs-spec-ic { align-self: start; }
	.gs-spec-tx { padding-top: calc((40px - 1.05rem * 1.25) / 2); }
}

/* Icon starts level with the top of the heading (5 Oct, owner request). Arrow stays on the icon's line. */
.gs-spec-tx { padding-top: 0; }
body.gs26 .gs-spec-list a > .gs-spec-ic { margin-top: 2px; }
body.gs26 .gs-spec-list a > .gs-spec-go { margin-top: 6px; }
body.gs26 .gs-spec-list a { height: 120px; }
@media (max-width: 760px) {
	.gs-spec-tx { padding-top: 0; }
	body.gs26 .gs-spec-list a { height: 146px; }
}
body.gs26 .gs-spec-list a > .gs-spec-ic { margin-top: 5px; }
body.gs26 .gs-spec-list a > .gs-spec-go { margin-top: 9px; }
@media (max-width: 760px) { body.gs26 .gs-spec-list a > .gs-spec-ic { margin-top: 4px; } }
@media (max-width: 760px) { body.gs26 .gs-spec-list a { height: 158px; } }

/*
 * One link-box system (5 Oct). The homepage specialist rows are the reference: 44px icon tile level with the
 * heading, 36px arrow circle, 16px radius, the same padding. .gs-spec-grid lays those rows out two across
 * (property page extras). Title-only lists (family articles, fee-page links) use the same tile, arrow and
 * padding, with every box in a list as tall as the tallest one.
 */
.gs-spec-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .85rem 1.1rem; margin: 0; padding: 0; }
@media (max-width: 760px) { .gs-spec-grid { grid-template-columns: 1fr; } }

.gs-fam-articles, .gs-doc-related > div { grid-auto-rows: 1fr; }
body.gs26 .gs-fam-articles a, body.gs26 .gs-doc-related a {
	grid-template-columns: 44px minmax(0, 1fr) 36px; gap: 1.2rem; align-items: center; box-sizing: border-box;
	min-height: 88px; height: 100%; padding: 14px 1.3rem 14px 1.4rem; border-radius: 16px; border: 1px solid var(--gs-line); background: #fff;
}
.gs-fam-articles .gs-card-ic, .gs-doc-related .gs-card-ic { width: 44px; height: 44px; border-radius: 12px; margin: 0; }
.gs-fam-articles strong, body.gs26 .gs-doc-related a > span:not(.gs-card-ic) { font: 650 1.12rem/1.25 var(--gs-serif); color: var(--gs-ink); }
.gs-fam-articles a > .gs-i-arrow, .gs-doc-related a > .gs-i-arrow {
	width: 36px; height: 36px; padding: 8px; box-sizing: border-box; border-radius: 50%; border: 1px solid var(--gs-line); color: var(--gs-gold-ink);
	transition: background .2s, border-color .2s, color .2s;
}
.gs-fam-articles a:hover > .gs-i-arrow, .gs-doc-related a:hover > .gs-i-arrow { background: var(--gs-gold); border-color: var(--gs-gold); color: var(--gs-ink); }
@media (max-width: 760px) {
	body.gs26 .gs-fam-articles a, body.gs26 .gs-doc-related a { grid-template-columns: 40px minmax(0, 1fr) 28px; gap: 1rem; padding: 14px 1.1rem; border-radius: 14px; }
	.gs-fam-articles .gs-card-ic, .gs-doc-related .gs-card-ic { width: 40px; height: 40px; }
	.gs-fam-articles a > .gs-i-arrow, .gs-doc-related a > .gs-i-arrow { width: 28px; height: 28px; padding: 5px; border: 0; }
	.gs-fam-articles strong, body.gs26 .gs-doc-related a > span:not(.gs-card-ic) { font-size: 1.05rem; }
}
