/**
 * Guidon Legal — site styles.
 *
 * Colours, fonts, type sizes and buttons come from theme.json (CSS custom
 * properties --wp--preset--*). This file covers layout and components:
 *
 *   1. Base            6. Page builder (rows, columns, blocks)
 *   2. Utilities       7. Components (cards, team, FAQ, video, contact)
 *   3. Buttons         8. Home page sections
 *   4. Header          9. Articles and listings
 *   5. Hero           10. Footer
 *                     11. Content written for the previous theme
 *                     12. Motion and print
 */

/* ==========================================================================
   1. Base
   ========================================================================== */

:root {
	--gl-navy: var(--wp--preset--color--primary, #004c79);
	--gl-blue: var(--wp--preset--color--brand, #156e90);
	--gl-gold: var(--wp--preset--color--accent, #e0a433);
	--gl-light: var(--wp--preset--color--light, #ebf9fe);
	--gl-text: var(--wp--preset--color--contrast, #111);
	--gl-muted: var(--wp--preset--color--muted, #5e5e5e);
	--gl-border: var(--wp--preset--color--border, #e2e2e2);
	--gl-wide: var(--wp--style--global--wide-size, 1280px);
	--gl-gutter: var(--wp--style--root--padding-left, clamp(1rem, 4vw, 2rem));
	--gl-section: clamp(3rem, 7vw, 5rem);
	--gl-shadow: 0 2px 12px rgba(0, 35, 60, 0.1);
	--gl-focus: 3px solid var(--gl-gold);
}

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

html {
	scroll-padding-top: 1rem;
}

body {
	min-width: 320px;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	margin-top: 0;
	margin-bottom: 0.6em;
	overflow-wrap: break-word;
}

p {
	margin-top: 0;
	margin-bottom: 1.25em;
}

img,
video,
iframe {
	max-width: 100%;
}

img {
	height: auto;
}

a {
	text-underline-offset: 0.15em;
	text-decoration-thickness: 1px;
}

:focus-visible {
	outline: var(--gl-focus);
	outline-offset: 2px;
}

.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important;
}

.skip-link.screen-reader-text:focus {
	clip: auto !important;
	clip-path: none;
	background: #fff;
	color: var(--gl-navy);
	display: block;
	font-weight: 700;
	height: auto;
	left: 6px;
	padding: 1rem 1.5rem;
	top: 6px;
	width: auto;
	z-index: 100000;
}

.wp-site-blocks {
	padding-top: 0;
	padding-bottom: 0;
}

/* Block templates: no gap between header, main and footer. */
.wp-site-blocks > * + *,
.gl-main > * + * {
	margin-block-start: 0;
}

.gl-main {
	margin: 0;
	padding: 0;
}

/* ==========================================================================
   2. Utilities (class names used in page content and the page builder)
   ========================================================================== */

.text-center,
.has-text-align-center { text-align: center !important; }
.text-left { text-align: left; }
.text-right { text-align: right; }
.text-white,
.text-white * { color: #fff !important; }
.text-dark { color: #000; }
.font-italic { font-style: italic; }
.d-block { display: block !important; }
.d-none { display: none !important; }
.d-flex { display: flex !important; flex-wrap: wrap; }
.mx-auto { margin-left: auto; margin-right: auto; }
.w-100 { width: 100%; }
.h-100 { height: 100%; }
.m-0 { margin: 0 !important; }
.mt-0 { margin-top: 0 !important; }
.mt-3 { margin-top: 10px !important; }
.mt-4 { margin-top: 15px !important; }
.mt-5 { margin-top: 30px !important; }
.mb-0 { margin-bottom: 0 !important; }
.mb-3 { margin-bottom: 10px !important; }
.mb-4 { margin-bottom: 15px !important; }
.mb-5 { margin-bottom: 30px !important; }
.my-3 { margin-top: 10px !important; margin-bottom: 10px !important; }
.p-0 { padding: 0 !important; }
.pt-0 { padding-top: 0 !important; }
.pb-0 { padding-bottom: 0 !important; }
.pt-4 { padding-top: 15px !important; }
.pt-5 { padding-top: 30px !important; }
.pb-4 { padding-bottom: 15px !important; }
.pb-5 { padding-bottom: 30px !important; }
.py-0 { padding-top: 0 !important; padding-bottom: 0 !important; }
.position-relative { position: relative; }
.position-absolute { position: absolute; }
.align-items-start { align-items: flex-start !important; }
.align-items-center { align-items: center !important; }
.justify-content-center { justify-content: center !important; }
.justify-content-space-between { justify-content: space-between !important; }
.bg-white { background-color: #fff; }

.alignleft {
	float: left;
	margin: 0.3em 1.5em 1em 0;
}

.alignright {
	float: right;
	margin: 0.3em 0 1em 1.5em;
}

.aligncenter {
	display: block;
	margin-left: auto;
	margin-right: auto;
}

@media (max-width: 599px) {
	.alignleft,
	.alignright {
		float: none;
		display: block;
		margin: 0 auto 1.25em;
	}
}

/* ==========================================================================
   3. Buttons
   theme.json styles .wp-element-button (white, gold border, black text;
   blue on hover). The page builder adds .button + a style and size.
   ========================================================================== */

.wp-element-button,
.wp-block-button__link,
.button,
input[type="submit"],
button[type="submit"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5em;
	min-height: 48px;
	cursor: pointer;
	text-align: center;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.button {
	background-color: #fff;
	border: 1px solid var(--gl-gold);
	border-radius: 0;
	color: var(--gl-text);
	font-family: var(--wp--preset--font-family--lato);
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.4;
	padding: 0.8rem 2.2rem;
	text-decoration: none;
}

.button:hover,
.button:focus-visible {
	background-color: var(--gl-blue);
	border-color: var(--gl-blue);
	color: #fff;
}

.button-sm { min-width: 160px; }
.button-md { min-width: 200px; }
.button-lg { min-width: 240px; font-size: 1.125rem; }

/* Outline white: for dark backgrounds. */
.button.button-owhite,
.has-dark-bg .button.button-default {
	background-color: transparent;
	border-color: #fff;
	color: #fff;
}

.button.button-owhite:hover,
.button.button-owhite:focus-visible,
.has-dark-bg .button.button-default:hover,
.has-dark-bg .button.button-default:focus-visible {
	background-color: #fff;
	border-color: #fff;
	color: var(--gl-navy);
}

.gl-buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	justify-content: inherit;
}

.text-center > .gl-buttons { justify-content: center; }
.text-left > .gl-buttons { justify-content: flex-start; }
.text-right > .gl-buttons { justify-content: flex-end; }

/* Forms. */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="url"],
input[type="search"],
input[type="number"],
input[type="password"],
textarea,
select {
	background: #fff;
	border: 1px solid #949494;
	border-radius: 0;
	color: var(--gl-text);
	font: inherit;
	min-height: 48px;
	padding: 0.6rem 0.9rem;
	width: 100%;
}

.wp-block-search__inside-wrapper {
	gap: 0.5rem;
}

.wp-block-search__button {
	margin-left: 0;
}

/* ==========================================================================
   4. Header
   ========================================================================== */

.gl-site-header {
	background: #fff;
	position: relative;
	z-index: 50;
}

.gl-header__inner {
	align-items: center;
	display: flex;
	gap: 1.5rem;
	justify-content: space-between;
	margin: 0 auto;
	max-width: min(90%, 1600px);
	padding: clamp(0.9rem, 2vw, 1.875rem) 0;
}

.gl-logo {
	display: block;
	flex: 0 1 386px;
	line-height: 0;
}

.gl-logo__img {
	display: block;
	height: auto;
	width: 100%;
	max-width: 386px;
}

.gl-logo__text {
	color: var(--gl-navy);
	font-family: var(--wp--preset--font-family--abhaya-libre);
	font-size: 1.75rem;
	line-height: 1.2;
}

.gl-nav__list,
.gl-nav__submenu {
	list-style: none;
	margin: 0;
	padding: 0;
}

.gl-nav__link {
	color: #333;
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 1rem;
	letter-spacing: 0.02em;
	line-height: 1.2;
	min-height: 48px;
	padding: 0 0.75rem;
	text-decoration: none;
	text-transform: uppercase;
}

.gl-nav__link:hover,
.gl-nav__link:focus-visible,
.gl-nav__item.is-current > .gl-nav__link,
.gl-nav__item.is-current-ancestor > .gl-nav__link {
	color: var(--gl-navy);
	text-decoration: underline;
	text-decoration-color: var(--gl-gold);
	text-decoration-thickness: 2px;
	text-underline-offset: 0.4em;
}

.gl-nav__item.is-outline > .gl-nav__link,
.gl-nav__item.is-cta > .gl-nav__link {
	border: 1px solid var(--gl-gold);
	padding: 0 1rem;
}

.gl-nav__item.is-cta > .gl-nav__link {
	border-color: var(--gl-blue);
	color: #111;
	font-family: var(--wp--preset--font-family--lato);
	padding: 0 1.5rem;
}

.gl-nav__item.is-outline > .gl-nav__link:hover,
.gl-nav__item.is-outline > .gl-nav__link:focus-visible,
.gl-nav__item.is-cta > .gl-nav__link:hover,
.gl-nav__item.is-cta > .gl-nav__link:focus-visible {
	background: var(--gl-blue);
	border-color: var(--gl-blue);
	color: #fff;
	text-decoration: none;
}

.gl-nav__item.is-cta .gl-icon {
	color: var(--gl-blue);
	height: 1.1em;
	width: 1.1em;
}

.gl-nav__item.is-cta > .gl-nav__link:hover .gl-icon,
.gl-nav__item.is-cta > .gl-nav__link:focus-visible .gl-icon {
	color: #fff;
}

.gl-nav__toggle {
	align-items: center;
	background: none;
	border: 0;
	color: inherit;
	cursor: pointer;
	display: inline-flex;
	height: 48px;
	justify-content: center;
	padding: 0;
	width: 32px;
}

.gl-nav__toggle .gl-icon {
	height: 18px;
	transition: transform 0.2s ease;
	width: 18px;
}

.gl-nav__toggle[aria-expanded="true"] .gl-icon {
	transform: rotate(180deg);
}

.gl-header__menu-button {
	align-items: center;
	background: none;
	border: 1px solid var(--gl-border);
	color: var(--gl-navy);
	cursor: pointer;
	display: none;
	font: 700 0.875rem/1 var(--wp--preset--font-family--lato);
	gap: 0.5rem;
	min-height: 48px;
	padding: 0 0.9rem;
	text-transform: uppercase;
}

.gl-header__icon-close {
	display: none;
}

.gl-header.is-menu-open .gl-header__icon-open {
	display: none;
}

.gl-header.is-menu-open .gl-header__icon-close {
	display: inline;
}

/* Desktop. */
@media (min-width: 1100px) {
	.gl-nav__list {
		align-items: center;
		display: flex;
		flex-wrap: wrap;
		gap: 0.5rem 0.75rem;
		justify-content: flex-end;
	}

	.gl-nav__item {
		align-items: center;
		display: flex;
		position: relative;
	}

	.gl-nav__submenu {
		background: #fff;
		border-top: 3px solid var(--gl-gold);
		box-shadow: var(--gl-shadow);
		display: none;
		left: 0;
		min-width: 260px;
		padding: 0.5rem 0;
		position: absolute;
		top: 100%;
		z-index: 60;
	}

	.gl-nav__item.is-open > .gl-nav__submenu,
	.gl-header:not(.is-js) .gl-nav__item:hover > .gl-nav__submenu,
	.gl-header:not(.is-js) .gl-nav__item:focus-within > .gl-nav__submenu {
		display: block;
	}

	.gl-nav__submenu .gl-nav__link {
		min-height: 44px;
		padding: 0 1.25rem;
		text-transform: none;
	}
}

@media (min-width: 1100px) {
	.gl-logo { min-width: 220px; }
	.gl-nav__list { flex-wrap: nowrap; }
	.gl-nav__link { white-space: nowrap; }
}

@media (min-width: 1100px) and (max-width: 1499px) {
	.gl-header__inner { gap: 1rem; max-width: calc(100% - 2 * var(--gl-gutter)); }
	.gl-logo { flex-basis: 300px; }
	.gl-nav__list { gap: 0.25rem 0.4rem; }
	.gl-nav__link { font-size: 0.9375rem; padding: 0 0.55rem; }
	.gl-nav__item.is-outline > .gl-nav__link { padding: 0 0.8rem; }
	.gl-nav__item.is-cta > .gl-nav__link { padding: 0 1rem; }
}

@media (min-width: 1100px) and (max-width: 1239px) {
	.gl-logo { flex-basis: 240px; }
	.gl-nav__link { font-size: 0.875rem; padding: 0 0.45rem; }
}

/* Mobile: menu button opens a full-screen panel. */
@media (max-width: 1099px) {
	.gl-header__inner {
		max-width: none;
		padding-left: var(--gl-gutter);
		padding-right: var(--gl-gutter);
	}

	.gl-logo {
		flex-basis: 260px;
	}

	.gl-header.is-js .gl-header__menu-button {
		display: inline-flex;
		flex: none;
	}

	/* Without JavaScript the menu stays visible below the logo. */
	.gl-header:not(.is-js) .gl-header__inner {
		flex-wrap: wrap;
	}

	.gl-header:not(.is-js) .gl-nav {
		flex-basis: 100%;
	}

	.gl-header.is-js .gl-nav {
		background: #fff;
		display: none;
		inset: var(--gl-menu-top, 0) 0 0 0;
		overflow-y: auto;
		padding: 5.5rem var(--gl-gutter) 2rem;
		position: fixed;
		z-index: 40;
	}

	.gl-header.is-js.is-menu-open .gl-nav {
		display: block;
	}

	.gl-header.is-menu-open .gl-logo,
	.gl-header.is-menu-open .gl-header__menu-button {
		position: relative;
		z-index: 45;
	}

	.gl-nav__item {
		align-items: center;
		border-bottom: 1px solid var(--gl-border);
		display: flex;
		flex-wrap: wrap;
	}

	.gl-nav__item > .gl-nav__link {
		flex: 1;
		font-size: 1.125rem;
		min-height: 56px;
	}

	.gl-nav__item.is-outline,
	.gl-nav__item.is-cta {
		border-bottom: 0;
		margin-top: 1rem;
	}

	.gl-nav__item.is-outline > .gl-nav__link,
	.gl-nav__item.is-cta > .gl-nav__link {
		justify-content: center;
	}

	.gl-nav__submenu {
		display: none;
		flex-basis: 100%;
		padding: 0 0 0.75rem 1rem;
	}

	.gl-nav__item.is-open > .gl-nav__submenu,
	.gl-header:not(.is-js) .gl-nav__submenu {
		display: block;
	}

	.gl-nav__submenu .gl-nav__item {
		border: 0;
	}

	.gl-nav__submenu .gl-nav__link {
		font-size: 1rem;
		min-height: 44px;
		text-transform: none;
	}

	.gl-menu-open,
	.gl-menu-open body {
		overflow: hidden;
	}
}

@media (max-width: 480px) {
	.gl-logo { flex-basis: 210px; }
	.gl-header__menu-label { display: none; }
}

/* ==========================================================================
   5. Hero
   ========================================================================== */

.gl-hero {
	align-items: center;
	background-color: var(--gl-navy);
	color: #fff;
	display: flex;
	isolation: isolate;
	justify-content: center;
	min-height: clamp(220px, 32vw, 460px);
	overflow: hidden;
	padding: clamp(2.5rem, 6vw, 5rem) var(--gl-gutter);
	position: relative;
	text-align: center;
}

.gl-hero__img {
	height: 100% !important;
	inset: 0;
	object-fit: cover;
	position: absolute;
	width: 100%;
	z-index: -2;
}

/* A light navy wash keeps the white title readable on any photo. */
.gl-hero.has-image::after {
	background: linear-gradient(180deg, rgba(0, 40, 66, 0.25), rgba(0, 40, 66, 0.45));
	content: "";
	inset: 0;
	position: absolute;
	z-index: -1;
}

.gl-hero__inner {
	max-width: 960px;
}

.gl-hero__title {
	color: #fff;
	font-size: var(--wp--preset--font-size--xx-large);
	margin: 0;
	text-shadow: 0 1px 12px rgba(0, 0, 0, 0.35);
}

.gl-hero__eyebrow {
	font-size: 0.875rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	margin: 0 0 0.75rem;
	text-transform: uppercase;
}

.gl-hero__eyebrow a {
	color: #fff;
	text-decoration-color: var(--gl-gold);
	text-decoration-thickness: 2px;
}

.gl-hero__eyebrow a:hover,
.gl-hero__eyebrow a:focus-visible {
	color: var(--gl-gold);
}

/* Pages with text above the page builder. */
.gl-page__content:not(:empty) {
	padding-bottom: var(--gl-section);
	padding-top: var(--gl-section);
}

.gl-page__content:empty {
	display: none;
}

.gl-page--no-hero .gl-page__header {
	padding-top: var(--gl-section);
}

.gl-page--no-hero .gl-page__title {
	color: var(--gl-navy);
	margin-bottom: 0;
}

.gl-page--no-hero .gl-page__content:not(:empty) {
	padding-top: 2rem;
}

/* ==========================================================================
   6. Page builder: rows, columns, blocks
   ========================================================================== */

.sec-row {
	padding: var(--gl-section) 0;
	position: relative;
}

.sec-row.has-bg-image {
	background-position: center;
	background-size: cover;
}

.sec-row.has-parallax {
	background-attachment: fixed;
}

@media (hover: none), (prefers-reduced-motion: reduce) {
	.sec-row.has-parallax {
		background-attachment: scroll;
	}
}

.sec-bg-opacity {
	inset: 0;
	position: absolute;
}

.section-anchor,
.block-anchor {
	display: block;
	position: relative;
	top: -1rem;
}

.container-wrapper {
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--gl-gutter);
	padding-right: var(--gl-gutter);
	position: relative;
	z-index: 1;
}

.container-wrapper.container { max-width: calc(var(--gl-wide) + 2 * var(--gl-gutter)); }
.container-wrapper.container-sm { max-width: calc(840px + 2 * var(--gl-gutter)); }
.container-wrapper.container-lg { max-width: calc(1750px + 2 * var(--gl-gutter)); }
.container-wrapper.container-fluid { max-width: none; }

.row {
	display: flex;
	flex-wrap: wrap;
	margin-left: -15px;
	margin-right: -15px;
	row-gap: 1.5rem;
}

[class*="col-lg-"],
.col-sm-6 {
	min-height: 1px;
	padding-left: 15px;
	padding-right: 15px;
	position: relative;
	width: 100%;
}

@media (min-width: 640px) {
	.col-sm-6 { flex: 0 0 50%; max-width: 50%; }
}

@media (min-width: 992px) {
	.col-lg-1 { flex: 0 0 8.333333%; max-width: 8.333333%; }
	.col-lg-2 { flex: 0 0 16.666667%; max-width: 16.666667%; }
	.col-lg-3 { flex: 0 0 25%; max-width: 25%; }
	.col-lg-4 { flex: 0 0 33.333333%; max-width: 33.333333%; }
	.col-lg-5 { flex: 0 0 41.666667%; max-width: 41.666667%; }
	.col-lg-6 { flex: 0 0 50%; max-width: 50%; }
	.col-lg-7 { flex: 0 0 58.333333%; max-width: 58.333333%; }
	.col-lg-8 { flex: 0 0 66.666667%; max-width: 66.666667%; }
	.col-lg-9 { flex: 0 0 75%; max-width: 75%; }
	.col-lg-10 { flex: 0 0 83.333333%; max-width: 83.333333%; }
	.col-lg-11 { flex: 0 0 91.666667%; max-width: 91.666667%; }
	.col-lg-12 { flex: 0 0 100%; max-width: 100%; }
}

/* Text on dark section backgrounds. */
.has-dark-bg,
.has-dark-bg h1,
.has-dark-bg h2,
.has-dark-bg h3,
.has-dark-bg h4,
.has-dark-bg p,
.has-dark-bg li {
	color: #fff;
}

.has-dark-bg a:not(.button) {
	color: #fff;
}

.block-inner > :last-child,
.block-text__content > :last-child {
	margin-bottom: 0;
}

.block-heading .block-heading__title {
	margin-bottom: 0;
}

.sub-heading {
	font-family: var(--wp--preset--font-family--abhaya-libre);
	font-size: 1.125rem;
	line-height: 1.4;
	margin-bottom: 0;
}

.block-heading + .block-text,
.block-heading + .block-recent-posts,
.block-heading + .block-html {
	margin-top: 0.5rem;
}

.block-text__content {
	font-size: 1rem;
}

.block-text__content > * + h2,
.block-text__content > * + h3 {
	margin-top: 1.75rem;
}

.block-image .img-wrapper.text-center img,
.block-image .text-center > .img-wrapper img {
	margin-left: auto;
	margin-right: auto;
}

.block-separator hr {
	border: 0;
	border-top: 4px solid var(--gl-navy);
	margin: 0;
}

.block-spacer {
	height: clamp(calc(var(--gl-spacer, 60px) * 0.5), 6vw, var(--gl-spacer, 60px));
	padding: 0;
}

.block-html iframe:not(.gl-map) {
	display: block;
	margin-left: auto;
	margin-right: auto;
}

/* ==========================================================================
   7. Components
   ========================================================================== */

/* Link cards: Practice Areas, Resources, Video Responses (Image grid block). */
.gl-cards {
	display: flex;
	flex-wrap: wrap;
	gap: clamp(1rem, 2vw, 1.5rem);
	justify-content: center;
}

.gl-link-card {
	align-items: center;
	background: var(--gl-blue);
	color: #fff;
	display: flex;
	flex: 1 1 100%;
	isolation: isolate;
	justify-content: center;
	min-height: clamp(240px, 26vw, 350px);
	overflow: hidden;
	padding: clamp(2rem, 4vw, 3rem) clamp(1.5rem, 4vw, 3rem);
	position: relative;
	text-align: center;
}

@media (min-width: 768px) {
	.gl-link-card {
		flex-basis: calc((100% - (var(--gl-cards-columns, 2) - 1) * 1.5rem) / var(--gl-cards-columns, 2));
		flex-grow: 0;
	}
}

.gl-link-card__img {
	height: 100% !important;
	inset: 0;
	object-fit: cover;
	object-position: left center; /* Keeps the gold edge drawn into the card photos. */
	position: absolute;
	transition: transform 0.4s ease;
	width: 100%;
	z-index: -1;
}

.gl-link-card.is-linked:hover .gl-link-card__img,
.gl-link-card.is-linked:focus-within .gl-link-card__img {
	transform: scale(1.04);
}

.gl-link-card__body {
	max-width: 32rem;
}

.gl-link-card__title {
	color: #fff;
	font-size: clamp(1.5rem, 1.2rem + 1vw, 1.875rem);
	margin-bottom: 0.5rem;
}

.gl-link-card__title a {
	color: #fff;
	text-decoration: none;
}

/* The whole card is clickable; the heading link is the one link screen readers hear. */
.gl-link-card__title a::after {
	content: "";
	inset: 0;
	position: absolute;
	z-index: 1;
}

.gl-link-card__title a:focus-visible {
	outline: none;
}

.gl-link-card:focus-within {
	outline: var(--gl-focus);
	outline-offset: 3px;
}

.gl-link-card__text {
	color: #fff;
	margin: 0;
	text-shadow: 0 1px 6px rgba(0, 0, 0, 0.3);
}

/* Article cards (Recent posts block, related articles). */
.gl-post-cards {
	display: grid;
	gap: clamp(1.25rem, 3vw, 2.5rem);
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr));
	list-style: none;
	margin: 0;
	padding: 0;
}

@media (min-width: 992px) {
	.gl-post-cards {
		grid-template-columns: repeat(var(--gl-cards-columns, 3), minmax(0, 1fr));
	}
}

.gl-post-card {
	background: #fff;
	box-shadow: 3px 3px 9px 3px #efefef;
	display: flex;
	flex-direction: column;
	height: 100%;
	position: relative;
	text-align: left;
	transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.gl-post-card:hover,
.gl-post-card:focus-within {
	box-shadow: 0 8px 24px rgba(0, 35, 60, 0.16);
	transform: translateY(-2px);
}

.gl-post-card__media {
	aspect-ratio: 10 / 7;
	background: var(--gl-light);
	overflow: hidden;
}

.gl-post-card__media img,
.gl-post-card__placeholder {
	display: block;
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.gl-post-card__placeholder {
	background: linear-gradient(135deg, var(--gl-navy), var(--gl-blue));
}

.gl-post-card__body {
	align-items: flex-start;
	display: flex;
	flex: 1;
	gap: 0.75rem;
	justify-content: space-between;
	padding: 1.25rem 1.25rem 1.5rem;
}

.gl-post-card__title {
	font-size: 1.25rem;
	line-height: 1.35;
	margin: 0;
}

.gl-post-card__title a {
	color: var(--gl-navy);
	text-decoration: none;
}

.gl-post-card__title a::after {
	content: "";
	inset: 0;
	position: absolute;
}

.gl-post-card__title a:focus-visible {
	outline: none;
}

.gl-post-card:focus-within {
	outline: var(--gl-focus);
	outline-offset: 3px;
}

.gl-post-card__arrow {
	background: var(--gl-blue);
	border-radius: 50%;
	color: #fff;
	flex: none;
	height: 28px;
	padding: 5px;
	width: 28px;
}

/* Team cards (CTA box block). */
.block-cta-box .block-inner {
	height: 100%;
}

.gl-person {
	margin: 0;
	text-align: center;
}

.gl-person__photo {
	aspect-ratio: 4 / 5;
	background: var(--gl-light);
	margin: 0 auto 1rem;
	max-width: 320px;
	overflow: hidden;
}

.gl-person__photo img {
	display: block;
	height: 100%;
	object-fit: cover;
	object-position: center top;
	width: 100%;
}

.gl-person__name {
	color: var(--gl-navy);
	font-size: 1.375rem;
	margin-bottom: 0.25rem;
}

.gl-person__role {
	color: var(--gl-muted);
}

.gl-person__role > :last-child {
	margin-bottom: 0;
}

.gl-person__link {
	margin-top: 1rem;
}

.block-cta-box-overlay .gl-person {
	position: relative;
}

.block-cta-box-overlay .gl-person__caption {
	background: rgba(0, 76, 121, 0.88);
	bottom: 0;
	color: #fff;
	left: 0;
	padding: 1rem;
	position: absolute;
	right: 0;
}

.block-cta-box-overlay .gl-person__name,
.block-cta-box-overlay .gl-person__role {
	color: #fff;
}

/* Icon grid. */
.block-grid-icon .block-grid-item .img-wrapper img {
	margin: 0 auto;
	max-height: 96px;
	width: auto;
}

.block-grid-item__title {
	font-size: 1.375rem;
}

.block-grid-item__title a {
	color: var(--gl-navy);
	text-decoration: none;
}

/* Media and text. */
.gl-media-text {
	align-items: center;
	display: grid;
	gap: clamp(1.5rem, 4vw, 3.5rem);
}

@media (min-width: 768px) {
	.gl-media-text { grid-template-columns: 1fr 1fr; }
	.gl-media-text.has-media-on-the-right .gl-media-text__media { order: 2; }
	.gl-media-text.has-no-media { grid-template-columns: 1fr; }
}

.gl-media-text__media {
	margin: 0;
}

.gl-media-text.is-image-fill .gl-media-text__media,
.gl-media-text.is-image-fill .gl-media-text__media img {
	height: 100%;
	object-fit: cover;
}

/* FAQ (Easy Accordion data rendered as <details>). */
.gl-faq {
	display: grid;
	gap: 0.625rem;
	text-align: left;
}

.gl-faq__item {
	background: #fff;
	border: 1px solid #c8d3da;
}

.gl-faq__question {
	align-items: stretch;
	cursor: pointer;
	display: flex;
	font-size: 1.125rem;
	font-weight: 700;
	gap: 1rem;
	line-height: 1.4;
	list-style: none;
	min-height: 52px;
}

.gl-faq__question::-webkit-details-marker {
	display: none;
}

.gl-faq__question-text {
	align-self: center;
	color: #333;
	flex: 1;
	order: 2;
	padding: 0.75rem 1rem 0.75rem 0;
}

.gl-faq__icon {
	background: var(--gl-blue);
	flex: none;
	order: 1;
	position: relative;
	width: 52px;
}

.gl-faq__icon::before,
.gl-faq__icon::after {
	background: #fff;
	content: "";
	height: 2px;
	left: 50%;
	position: absolute;
	top: 50%;
	transform: translate(-50%, -50%);
	transition: transform 0.2s ease;
	width: 16px;
}

.gl-faq__icon::after {
	transform: translate(-50%, -50%) rotate(90deg);
}

.gl-faq__item[open] .gl-faq__icon::after {
	transform: translate(-50%, -50%) rotate(0deg);
}

.gl-faq__question:hover .gl-faq__question-text {
	color: var(--gl-navy);
}

.gl-faq__question:focus-visible {
	outline: var(--gl-focus);
	outline-offset: 2px;
}

.gl-faq__answer {
	border-top: 1px solid #e3eaee;
	color: #333;
	padding: 1rem 1.25rem 1.25rem calc(52px + 1rem);
}

.gl-faq__answer > :last-child {
	margin-bottom: 0;
}

@media (max-width: 599px) {
	.gl-faq__question { font-size: 1rem; }
	.gl-faq__icon { width: 44px; }
	.gl-faq__answer { padding-left: 1rem; }
}

/* Video embeds. */
.gl-embed,
.gl-video iframe,
.block-html iframe[src*="youtube"] {
	aspect-ratio: 16 / 9;
	border: 0;
	display: block;
	height: auto !important;
	width: 100% !important;
}

.gl-video {
	margin: 0 auto 1.5rem;
	max-width: 960px;
}

.gl-video figcaption {
	color: var(--gl-navy);
	font-family: var(--wp--preset--font-family--abhaya-libre);
	font-size: 1.25rem;
	line-height: 1.35;
	margin-top: 0.75rem;
}

.gl-video-grid {
	display: grid;
	gap: clamp(1.5rem, 3vw, 2.5rem);
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 26rem), 1fr));
	text-align: left;
}

.gl-video-grid .gl-video {
	margin: 0;
	max-width: none;
}

/* Contact page. */
.gl-contact {
	display: grid;
	gap: clamp(2rem, 5vw, 4rem);
}

@media (min-width: 900px) {
	.gl-contact { grid-template-columns: 1fr 1fr; }
}

.gl-contact__office h2 {
	color: var(--gl-navy);
	font-size: var(--wp--preset--font-size--large);
}

.gl-map {
	aspect-ratio: 4 / 3;
	border: 0;
	display: block;
	height: auto;
	width: 100%;
}

/* Badges (Super Lawyers, Avvo). */
.gl-badges {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 1.5rem 3rem;
	justify-content: center;
}

.gl-badges img {
	display: block;
	height: auto;
	max-height: 120px;
	width: auto;
}

/* Gold divider image under headings. */
.gl-divider,
.news-divider {
	line-height: 0;
	margin: 1rem 0 !important;
}

.gl-divider img,
.news-divider img {
	margin: 0 auto;
	max-width: min(100%, 360px);
}

/* ==========================================================================
   8. Home page sections (classes set in the page builder)
   ========================================================================== */

/* ==========================================================================
   Home hero (replaces Smart Slider): photos fade into each other while each
   slowly zooms in or out. Each photo shows for 5 seconds.
   ========================================================================== */

.gl-home-hero {
	align-items: center;
	background: #0d3b4d;
	color: #fff;
	display: flex;
	height: clamp(300px, 47vw, 700px);
	isolation: isolate;
	justify-content: center;
	overflow: hidden;
	position: relative;
	text-align: center;
}

.gl-home-hero__slides {
	inset: 0;
	position: absolute;
	z-index: -2;
}

/* The slider's blue tint (#156d8e at 60%). */
.gl-home-hero::before {
	background: rgba(21, 109, 142, 0.6);
	content: "";
	inset: 0;
	position: absolute;
	z-index: -1;
}

.gl-home-hero__slide {
	height: 100% !important;
	inset: 0;
	object-fit: cover;
	opacity: 0;
	position: absolute;
	transform-origin: center;
	width: 100%;
	will-change: opacity, transform;
	animation-delay: calc(var(--i, 0) * 5s - 0.75s);
	animation-duration: calc(var(--gl-slides, 3) * 5s);
	animation-fill-mode: backwards;
	animation-iteration-count: infinite;
	animation-timing-function: linear;
}

.gl-home-hero__slide:first-child {
	opacity: 1;
	object-position: 30% center;
}

/* One photo: a slow zoom in and out. */
.gl-home-hero[style*="--gl-slides:1"] .gl-home-hero__slide {
	animation: gl-hero-breathe 20s ease-in-out infinite alternate;
	opacity: 1;
}

.gl-home-hero[style*="--gl-slides:2"] .gl-home-hero__slide { animation-name: gl-hero-fade-2, gl-hero-zoom-in-2; }
.gl-home-hero[style*="--gl-slides:2"] .gl-home-hero__slide:nth-child(even) { animation-name: gl-hero-fade-2, gl-hero-zoom-out-2; }
.gl-home-hero[style*="--gl-slides:3"] .gl-home-hero__slide { animation-name: gl-hero-fade-3, gl-hero-zoom-in-3; }
.gl-home-hero[style*="--gl-slides:3"] .gl-home-hero__slide:nth-child(even) { animation-name: gl-hero-fade-3, gl-hero-zoom-out-3; }
.gl-home-hero[style*="--gl-slides:4"] .gl-home-hero__slide { animation-name: gl-hero-fade-4, gl-hero-zoom-in-4; }
.gl-home-hero[style*="--gl-slides:4"] .gl-home-hero__slide:nth-child(even) { animation-name: gl-hero-fade-4, gl-hero-zoom-out-4; }
.gl-home-hero[style*="--gl-slides:5"] .gl-home-hero__slide { animation-name: gl-hero-fade-5, gl-hero-zoom-in-5; }
.gl-home-hero[style*="--gl-slides:5"] .gl-home-hero__slide:nth-child(even) { animation-name: gl-hero-fade-5, gl-hero-zoom-out-5; }

.gl-home-hero.is-paused .gl-home-hero__slide {
	animation-play-state: paused;
}

@keyframes gl-hero-breathe {
	from { transform: scale(1); }
	to { transform: scale(1.12); }
}

@keyframes gl-hero-fade-2 {
	0% { opacity: 0; }
	7.5% { opacity: 1; }
	50% { opacity: 1; }
	57.5% { opacity: 0; }
	100% { opacity: 0; }
}
@keyframes gl-hero-zoom-in-2 {
	0% { transform: scale(1); }
	57.5% { transform: scale(1.12); }
	100% { transform: scale(1.12); }
}
@keyframes gl-hero-zoom-out-2 {
	0% { transform: scale(1.12); }
	57.5% { transform: scale(1); }
	100% { transform: scale(1); }
}

@keyframes gl-hero-fade-3 {
	0% { opacity: 0; }
	5% { opacity: 1; }
	33.333% { opacity: 1; }
	38.333% { opacity: 0; }
	100% { opacity: 0; }
}
@keyframes gl-hero-zoom-in-3 {
	0% { transform: scale(1); }
	38.333% { transform: scale(1.12); }
	100% { transform: scale(1.12); }
}
@keyframes gl-hero-zoom-out-3 {
	0% { transform: scale(1.12); }
	38.333% { transform: scale(1); }
	100% { transform: scale(1); }
}

@keyframes gl-hero-fade-4 {
	0% { opacity: 0; }
	3.75% { opacity: 1; }
	25% { opacity: 1; }
	28.75% { opacity: 0; }
	100% { opacity: 0; }
}
@keyframes gl-hero-zoom-in-4 {
	0% { transform: scale(1); }
	28.75% { transform: scale(1.12); }
	100% { transform: scale(1.12); }
}
@keyframes gl-hero-zoom-out-4 {
	0% { transform: scale(1.12); }
	28.75% { transform: scale(1); }
	100% { transform: scale(1); }
}

@keyframes gl-hero-fade-5 {
	0% { opacity: 0; }
	3% { opacity: 1; }
	20% { opacity: 1; }
	23% { opacity: 0; }
	100% { opacity: 0; }
}
@keyframes gl-hero-zoom-in-5 {
	0% { transform: scale(1); }
	23% { transform: scale(1.12); }
	100% { transform: scale(1.12); }
}
@keyframes gl-hero-zoom-out-5 {
	0% { transform: scale(1.12); }
	23% { transform: scale(1); }
	100% { transform: scale(1); }
}

.gl-home-hero__content {
	max-width: 900px;
	padding: 2rem var(--gl-gutter);
}

.gl-home-hero__text {
	color: #fff;
	font-family: var(--wp--preset--font-family--abhaya-libre);
	font-size: clamp(1.625rem, 0.9rem + 2.6vw, 3rem);
	font-weight: 700;
	line-height: 1.3;
	margin: 0;
	text-shadow: 0 2px 16px rgba(0, 0, 0, 0.35);
}

.gl-home-hero__pause {
	align-items: center;
	background: rgba(0, 0, 0, 0.35);
	border: 1px solid rgba(255, 255, 255, 0.7);
	border-radius: 50%;
	bottom: 1rem;
	color: #fff;
	cursor: pointer;
	display: inline-flex;
	height: 40px;
	justify-content: center;
	padding: 0;
	position: absolute;
	right: 1rem;
	width: 40px;
}

.gl-home-hero__pause:hover,
.gl-home-hero__pause:focus-visible {
	background: rgba(0, 0, 0, 0.6);
}

/* Pause icon (two bars); play icon (triangle) when paused. */
.gl-home-hero__pause-icon {
	border-left: 3px solid currentColor;
	border-right: 3px solid currentColor;
	height: 12px;
	width: 10px;
}

.gl-home-hero.is-paused .gl-home-hero__pause-icon {
	border-bottom: 7px solid transparent;
	border-left: 11px solid currentColor;
	border-right: 0;
	border-top: 7px solid transparent;
	height: 0;
	margin-left: 3px;
	width: 0;
}

@media (prefers-reduced-motion: reduce) {
	.gl-home-hero__slide {
		animation: none !important;
		transform: none !important;
	}

	.gl-home-hero__slide:not(:first-child) {
		display: none;
	}

	.gl-home-hero__pause {
		display: none;
	}
}

/* Home page text above the page builder (empty once the slider shortcode is removed). */
.gl-front__intro {
	margin: 0;
}

.gl-front__intro > * {
	margin-block: 0;
}

.gl-front__intro:empty {
	display: none;
}

/* Slide text is sized by the slider (262.5% of its base); on phones that
   made the tagline five lines tall over the photo. */
@media (max-width: 767px) {
	div[id^="n2-ss-"] .n2-ss-item-content.n2-ss-text {
		font-size: 150% !important;
	}
}

/* Welcome. */
#home-intro {
	padding-bottom: clamp(2rem, 5vw, 3.5rem);
}

#home-intro h1 {
	font-size: var(--wp--preset--font-size--x-large);
	margin-bottom: 0.4rem;
}

#home-intro .block-text__content {
	color: #474747;
	margin: 0 auto;
	max-width: 900px;
}

.about-btn {
	margin-top: 1.25rem;
}

/* Recent posts. */
.recent-posts .block-heading__title,
.faq-head .block-heading__title,
.newsletter-form .block-heading__title {
	text-align: center;
}

.recent-posts .gl-post-cards {
	margin-top: 1rem;
}

.all-posts,
.faq-btn {
	margin-top: 1.5rem;
	text-align: center;
}

.all-posts .gl-buttons,
.faq-btn .gl-buttons {
	justify-content: center;
}

/* Newsletter band. */
.newsletter-form {
	text-align: center;
}

/* FAQ. */
.faq-head {
	margin-bottom: 1.5rem;
}

/* Get in Touch band (over the city photo). */
.contact-home {
	padding: clamp(3rem, 8vw, 6rem) 0;
}

.gl-cta-band {
	align-items: center;
	display: grid;
	gap: 1.5rem 3rem;
}

@media (min-width: 900px) {
	.gl-cta-band { grid-template-columns: 2fr 3fr; }
}

.gl-cta-band__title {
	color: #fff;
	font-size: var(--wp--preset--font-size--xx-large);
	margin: 0;
	text-align: center;
	text-shadow: 0 1px 12px rgba(0, 0, 0, 0.3);
}

@media (min-width: 900px) {
	.gl-cta-band__title { text-align: right; }
}

.gl-cta-band__panel {
	background: var(--gl-blue);
	color: #fff;
	padding: clamp(1.75rem, 4vw, 3rem);
}

.gl-cta-band__panel p {
	color: #fff;
	font-size: 1.125rem;
}

.gl-cta-band__panel p:last-child {
	margin-bottom: 0;
}

@media (max-width: 899px) {
	.gl-cta-band__panel { text-align: center; }
}

/* Team heading on About. */
.team-head .block-heading__title {
	border-bottom: 1px solid var(--gl-navy);
	color: var(--gl-navy);
	font-size: var(--wp--preset--font-size--x-large);
	margin-bottom: 1.5rem;
	padding-bottom: 1.5rem;
	text-align: center;
}

/* ==========================================================================
   9. Articles and listings
   ========================================================================== */

.gl-article__body {
	padding-bottom: var(--gl-section);
	padding-top: var(--gl-section);
}

.gl-article__body::after {
	clear: both;
	content: "";
	display: table;
}

.gl-article__image {
	margin-bottom: 1.5rem;
}

.gl-article__image img {
	display: block;
	width: 100%;
}

@media (min-width: 900px) {
	.gl-article__body > .gl-article__image {
		float: right;
		margin: 0.25rem 0 1.5rem 2rem;
		max-width: 45%;
	}
}

.gl-prose h2,
.gl-prose h3 {
	color: var(--gl-navy);
	margin-top: 2rem;
}

.gl-prose > :first-child {
	margin-top: 0;
}

.gl-prose ul,
.gl-prose ol {
	padding-left: 1.5rem;
}

.gl-prose li + li {
	margin-top: 0.35rem;
}

.gl-related {
	background: var(--gl-light);
	padding: var(--gl-section) var(--gl-gutter);
}

.gl-related__inner {
	margin: 0 auto;
	max-width: var(--gl-wide);
}

.gl-related__title {
	text-align: center;
}

.gl-related__more {
	margin: 2rem 0 0;
	text-align: center;
}

/* Blog, archives. */
.gl-posts {
	padding-bottom: var(--gl-section);
	padding-top: var(--gl-section);
}

.gl-posts .wp-block-post-template {
	gap: clamp(1.5rem, 3vw, 2.5rem);
}

.gl-query-card {
	background: #fff;
	box-shadow: 3px 3px 9px 3px #efefef;
	display: flex;
	flex-direction: column;
	height: 100%;
	position: relative;
}

.gl-query-card__image {
	margin: 0;
}

.gl-query-card__image img {
	display: block;
}

.gl-query-card__body {
	padding: 1.25rem 1.25rem 1.5rem;
}

.gl-query-card__title {
	font-size: 1.375rem;
	line-height: 1.3;
	margin: 0 0 0.6rem;
}

.gl-query-card__title a::after {
	content: "";
	inset: 0;
	position: absolute;
}

.gl-query-card:focus-within {
	outline: var(--gl-focus);
	outline-offset: 3px;
}

.gl-query-card__title a:focus-visible {
	outline: none;
}

.gl-query-card__excerpt,
.gl-result .wp-block-post-excerpt {
	color: #444;
	margin: 0;
}

.gl-query-card__excerpt p,
.gl-result .wp-block-post-excerpt p {
	margin: 0;
}

.wp-block-query-pagination {
	margin-top: 2.5rem;
}

.wp-block-query-pagination a,
.wp-block-query-pagination .page-numbers {
	color: var(--gl-navy);
	padding: 0.5rem 0.25rem;
}

.wp-block-query-pagination .current {
	border-bottom: 2px solid var(--gl-gold);
}

/* Search and 404. */
.gl-search__form,
.gl-404__body {
	padding-top: var(--gl-section);
}

.gl-404__body {
	padding-bottom: var(--gl-section);
}

.gl-404__body > * + * {
	margin-top: 1.5rem;
}

.gl-results {
	padding-bottom: var(--gl-section);
	padding-top: 2rem;
}

.gl-result {
	border-bottom: 1px solid var(--gl-border);
	padding: 1.5rem 0;
}

.gl-result__title {
	font-size: 1.5rem;
	margin: 0 0 0.5rem;
}

/* ==========================================================================
   10. Footer
   ========================================================================== */

.gl-site-footer {
	margin: 0;
}

.gl-footer {
	border-top: 1px solid #efefef;
	font-size: 1rem;
	padding: clamp(2.5rem, 6vw, 4rem) var(--gl-gutter) 2rem;
}

.gl-footer__widgets {
	display: grid;
	gap: 2.5rem 2rem;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr));
	margin: 0 auto;
	max-width: var(--gl-wide);
}

@media (min-width: 992px) {
	.gl-footer__widgets {
		grid-template-columns: 1.4fr 1.2fr 1fr 0.8fr;
	}
}

.gl-footer .widget-title {
	font-size: 1.25rem;
	margin-bottom: 0.75rem;
}

.gl-footer .widget p {
	margin-bottom: 0.75rem;
}

.gl-footer a {
	color: var(--wp--preset--color--secondary);
}

.gl-footer a:hover,
.gl-footer a:focus-visible {
	color: var(--gl-navy);
}

.gl-footer ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.gl-footer li {
	margin-bottom: 0.4rem;
}

.gl-footer li .sub-menu {
	margin: 0.4rem 0 0 1rem;
}

.gl-footer li .sub-menu li {
	list-style: disc;
}

.gl-footer .widget_media_image img {
	max-width: 280px;
	width: 100%;
}

/* Social icons (images in the Connect widget). */
.gl-footer__col--4 a {
	display: inline-block;
	margin-right: 0.5rem;
}

.gl-footer__col--4 img {
	display: block;
	height: 38px;
	width: 38px;
}

.gl-footer__bottom {
	border-top: 1px solid #efefef;
	margin: 2.5rem auto 0;
	max-width: var(--gl-wide);
	padding-top: 1.5rem;
}

.copyrights-text {
	color: #666;
	font-size: 0.9375rem;
	text-align: center;
}

.copyrights-text a {
	color: #666;
}

.copyrights-text .sep {
	margin: 0 0.6rem;
}

@media (max-width: 640px) {
	.gl-footer {
		text-align: center;
	}

	.gl-footer li .sub-menu {
		margin-left: 0;
	}

	.gl-footer li .sub-menu li {
		list-style: none;
	}

	.gl-footer .widget_media_image img {
		margin: 0 auto;
	}

	.copyrights-text {
		line-height: 2;
	}

	.copyrights-text .sep2 {
		display: block;
		height: 0;
		overflow: hidden;
	}
}

/* ==========================================================================
   11. Content written for the previous theme
   Hand-coded layouts with inline widths and floats. "Tidy page layouts" in
   Appearance › Guidon Theme converts them; until then these rules keep them
   usable on phones.
   ========================================================================== */

.overlay > a {
	color: #fff;
	text-decoration: none;
}

.overlay .vdb,
.overlay .resources {
	align-items: center;
	background-position: center;
	background-size: cover;
	color: #fff !important;
	display: flex;
	flex-direction: column;
	justify-content: center;
	margin-bottom: 1rem;
	padding: 2rem;
	text-align: center;
}

.overlay .vdb h3,
.overlay .resources h3 {
	color: #fff;
	font-size: 1.75rem;
}

@media (max-width: 767px) {
	.overlay .vdb,
	.overlay .resources {
		float: none !important;
		height: auto !important;
		margin: 0 0 1rem !important;
		min-height: 260px;
		width: 100% !important;
	}
}

.team-mem {
	display: inline-block;
	padding: 1rem;
	vertical-align: top;
	width: 24%;
}

@media (max-width: 991px) {
	.team-mem { width: 48% !important; }
}

@media (max-width: 599px) {
	.team-mem { width: 100% !important; }
}

.team-mem img {
	aspect-ratio: 4 / 5;
	height: auto !important;
	object-fit: cover;
}

@media (max-width: 767px) {
	.contact-home .block-text__content > div,
	.page-id-201 .entry-content > div > div {
		float: none !important;
		height: auto !important;
		margin: 0 0 1.5rem !important;
		text-align: center !important;
		width: 100% !important;
	}

	.contact-home .block-text__content h3 {
		font-size: 2.25rem !important;
		text-align: center !important;
	}
}

.badges a {
	display: inline-block;
	margin: 0.5rem 1rem !important;
}

.badges img {
	transform: none !important;
	vertical-align: middle;
}

/* The pages' old Site Editor template used a cover block for the title. */
.wp-block-cover .wp-block-cover__background.has-background-dim-40 {
	opacity: 0.25;
}

/* ==========================================================================
   13. Cookie banner, preferences and click-to-load embeds
   ========================================================================== */

.gl-link-button {
	background: none;
	border: 0;
	color: inherit;
	cursor: pointer;
	font: inherit;
	padding: 0;
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.gl-link-button:hover,
.gl-link-button:focus-visible {
	color: var(--gl-navy);
}

.gl-footer__privacy {
	color: #666;
	font-size: 0.9375rem;
	margin: 0.75rem 0 0;
	text-align: center;
}

.gl-consent {
	background: var(--gl-navy);
	border-top: 4px solid var(--gl-gold);
	bottom: 0;
	box-shadow: 0 -6px 24px rgba(0, 20, 40, 0.25);
	color: #fff;
	left: 0;
	position: fixed;
	right: 0;
	z-index: 1000;
}

.gl-consent[hidden] {
	display: none;
}

.gl-consent__inner {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 1rem 2rem;
	justify-content: space-between;
	margin: 0 auto;
	max-width: var(--gl-wide);
	padding: 1.25rem var(--gl-gutter);
}

.gl-consent__text {
	flex: 1 1 32rem;
}

.gl-consent__title {
	color: #fff;
	font-size: 1.375rem;
	margin: 0 0 0.35rem;
}

.gl-consent p {
	color: #fff;
	font-size: 0.9375rem;
	margin: 0;
}

.gl-consent a {
	color: #fff;
	text-decoration-color: var(--gl-gold);
}

.gl-consent__gpc {
	margin-top: 0.4rem !important;
	opacity: 0.9;
}

.gl-consent__actions,
.gl-consent-dialog__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
}

.gl-consent__btn {
	background: #fff;
	border: 1px solid var(--gl-gold);
	border-radius: 0;
	color: var(--gl-text);
	cursor: pointer;
	font: 700 0.9375rem/1.2 var(--wp--preset--font-family--lato);
	min-height: 44px;
	padding: 0.7rem 1.25rem;
}

.gl-consent__btn:hover,
.gl-consent__btn:focus-visible {
	background: var(--gl-gold);
	border-color: var(--gl-gold);
	color: #111;
}

.gl-consent__btn--link {
	background: transparent;
	border-color: #fff;
	color: #fff;
}

.gl-consent :focus-visible,
.gl-consent-dialog :focus-visible {
	outline: 3px solid var(--gl-gold);
	outline-offset: 2px;
}

@media (max-width: 640px) {
	.gl-consent__actions {
		width: 100%;
	}

	.gl-consent__btn {
		flex: 1 1 auto;
	}
}

/* Leave room so the banner never covers the end of the page. */
.gl-consent-open body {
	padding-bottom: 12rem;
}

.gl-consent-dialog {
	border: 0;
	border-top: 4px solid var(--gl-gold);
	box-shadow: 0 12px 48px rgba(0, 20, 40, 0.35);
	color: var(--gl-text);
	max-height: calc(100vh - 2rem);
	max-width: min(640px, calc(100vw - 2rem));
	padding: 0;
	width: 100%;
}

.gl-consent-dialog::backdrop {
	background: rgba(0, 25, 45, 0.6);
}

.gl-consent-dialog__inner {
	padding: clamp(1.25rem, 4vw, 2rem);
}

.gl-consent-dialog__head {
	align-items: center;
	display: flex;
	justify-content: space-between;
	margin-bottom: 0.5rem;
}

.gl-consent-dialog__head h2 {
	color: var(--gl-navy);
	font-size: 1.75rem;
	margin: 0;
}

.gl-consent-dialog__close {
	background: none;
	border: 0;
	color: var(--gl-text);
	cursor: pointer;
	font-size: 2rem;
	height: 44px;
	line-height: 1;
	width: 44px;
}

.gl-consent-dialog p {
	font-size: 0.9375rem;
}

.gl-consent__cat {
	border-top: 1px solid var(--gl-border);
	padding: 1rem 0;
}

.gl-consent__cat-head {
	align-items: center;
	display: flex;
	gap: 1rem;
	justify-content: space-between;
}

.gl-consent__cat-title {
	font-family: var(--wp--preset--font-family--lato);
	font-size: 1.0625rem;
	font-weight: 700;
	margin: 0;
}

.gl-consent__cat-text {
	color: #444;
	margin: 0.35rem 0 0 !important;
}

.gl-consent__always {
	color: var(--wp--preset--color--secondary);
	font-size: 0.875rem;
	font-weight: 700;
}

.gl-consent-dialog__actions {
	border-top: 1px solid var(--gl-border);
	justify-content: flex-end;
	padding-top: 1.25rem;
}

.gl-consent-dialog .gl-consent__btn:last-child {
	background: var(--gl-blue);
	border-color: var(--gl-blue);
	color: #fff;
}

/* Toggle switch. */
.gl-switch {
	cursor: pointer;
	display: inline-flex;
	flex: none;
	position: relative;
}

.gl-switch input {
	height: 100%;
	inset: 0;
	margin: 0;
	opacity: 0;
	position: absolute;
	width: 100%;
	z-index: 1;
	cursor: pointer;
}

.gl-switch__track {
	background: #8a8f94;
	border-radius: 999px;
	display: block;
	height: 28px;
	position: relative;
	transition: background-color 0.2s ease;
	width: 50px;
}

.gl-switch__track::after {
	background: #fff;
	border-radius: 50%;
	content: "";
	height: 22px;
	left: 3px;
	position: absolute;
	top: 3px;
	transition: transform 0.2s ease;
	width: 22px;
}

.gl-switch input:checked + .gl-switch__track {
	background: var(--gl-blue);
}

.gl-switch input:checked + .gl-switch__track::after {
	transform: translateX(22px);
}

.gl-switch input:focus-visible + .gl-switch__track {
	outline: 3px solid var(--gl-gold);
	outline-offset: 2px;
}

.gl-switch input:disabled + .gl-switch__track {
	opacity: 0.5;
}

/* Click-to-load embeds. */
.gl-embed-gate {
	background: linear-gradient(135deg, var(--gl-navy), var(--gl-blue));
	color: #fff;
	margin: 0 auto 1.5rem;
	max-width: 960px;
}

.gl-embed-gate--video {
	aspect-ratio: 16 / 9;
}

.gl-embed-gate--map {
	aspect-ratio: 4 / 3;
}

.gl-embed-gate.is-loaded {
	background: none;
}

.gl-embed-gate__placeholder {
	align-items: center;
	display: flex;
	flex-direction: column;
	height: 100%;
	justify-content: center;
	padding: 1.5rem;
	text-align: center;
}

.gl-embed-gate__placeholder p {
	color: #fff;
	margin: 0 0 0.5rem;
}

.gl-embed-gate__title {
	font-family: var(--wp--preset--font-family--abhaya-libre);
	font-size: clamp(1.125rem, 1rem + 0.6vw, 1.5rem);
	line-height: 1.3;
	max-width: 36rem;
}

.gl-embed-gate__note {
	font-size: 0.875rem;
	opacity: 0.9;
}

.gl-embed-gate__actions {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 1.25rem;
	justify-content: center;
	margin-top: 0.5rem !important;
}

.gl-embed-gate__load {
	background: #fff;
	border: 1px solid var(--gl-gold);
	color: #111;
	cursor: pointer;
	font: 700 1rem/1.2 var(--wp--preset--font-family--lato);
	min-height: 44px;
	padding: 0.7rem 1.5rem;
}

.gl-embed-gate__load:hover,
.gl-embed-gate__load:focus-visible {
	background: var(--gl-gold);
}

.gl-embed-gate__actions a {
	color: #fff;
	font-size: 0.875rem;
}

.gl-video .gl-embed-gate,
.gl-video-grid .gl-embed-gate {
	margin: 0;
	max-width: none;
}

.gl-embed-gate.is-loaded iframe {
	display: block;
}

/* ==========================================================================
   14. Privacy Policy (contents beside the text)
   ========================================================================== */

.gl-policy {
	padding: var(--gl-section) var(--gl-gutter);
}

.gl-policy__wrap {
	margin: 0 auto;
	max-width: 1120px;
}

@media (min-width: 1000px) {
	.gl-policy.has-toc .gl-policy__wrap {
		align-items: start;
		display: grid;
		gap: 3.5rem;
		grid-template-columns: 260px minmax(0, 1fr);
	}

	.gl-policy__toc {
		position: sticky;
		top: 1.5rem;
	}
}

.gl-policy__toc {
	margin-bottom: 2rem;
}

.gl-policy__toc details {
	background: var(--gl-light);
	border-left: 4px solid var(--gl-gold);
	padding: 1rem 1.25rem;
}

.gl-policy__toc summary {
	color: var(--gl-navy);
	cursor: pointer;
	font-weight: 700;
}

.gl-policy__toc ol {
	margin: 0.75rem 0 0;
	padding-left: 1.25rem;
}

.gl-policy__toc li {
	font-size: 0.9375rem;
	margin: 0.35rem 0;
}

.gl-policy__toc a {
	color: var(--gl-navy);
	text-decoration: none;
}

.gl-policy__toc a:hover,
.gl-policy__toc a:focus-visible {
	text-decoration: underline;
}

.gl-policy__body {
	max-width: 780px;
}

.gl-policy__body h2 {
	border-top: 1px solid var(--gl-border);
	color: var(--gl-navy);
	font-size: var(--wp--preset--font-size--large);
	margin-top: 2.5rem;
	padding-top: 2rem;
	scroll-margin-top: 1.5rem;
}

.gl-policy__body h3 {
	font-family: var(--wp--preset--font-family--lato);
	font-size: 1.125rem;
	font-weight: 700;
	margin: 1.5rem 0 0.5rem;
}

.gl-policy__body ul {
	padding-left: 1.25rem;
}

.gl-policy__body li + li {
	margin-top: 0.4rem;
}

.gl-policy-date {
	color: var(--gl-muted);
	font-size: 0.9375rem;
}

.gl-policy-lede {
	font-size: 1.125rem;
}

.gl-policy-glance {
	background: var(--gl-light);
	border-left: 4px solid var(--gl-gold);
	margin: 2rem 0;
	padding: 1.5rem 1.75rem;
}

.gl-policy__body .gl-policy-glance h2 {
	border: 0;
	font-size: 1.5rem;
	margin: 0 0 0.75rem;
	padding: 0;
}

.gl-policy-glance > :last-child {
	margin-bottom: 0;
}

.gl-policy-button {
	background: var(--gl-blue);
	border: 1px solid var(--gl-blue);
	color: #fff;
	cursor: pointer;
	display: inline-block;
	font: 700 1rem/1.2 var(--wp--preset--font-family--lato);
	padding: 0.8rem 1.5rem;
	text-decoration: none;
}

.gl-policy-button:hover,
.gl-policy-button:focus-visible {
	background: var(--gl-navy);
	color: #fff;
}

.gl-policy-cards {
	display: grid;
	gap: 1rem;
	margin: 1.25rem 0;
}

.gl-policy-card {
	border: 1px solid var(--gl-border);
	border-left: 4px solid var(--gl-blue);
	padding: 1.25rem 1.5rem;
}

.gl-policy-card h3 {
	color: var(--gl-navy);
	margin-top: 0 !important;
}

.gl-policy-card dl {
	display: grid;
	gap: 0.25rem 1rem;
	grid-template-columns: max-content 1fr;
	margin: 0.75rem 0 0;
}

.gl-policy-card dt {
	color: var(--gl-muted);
	font-size: 0.875rem;
	font-weight: 700;
}

.gl-policy-card dd {
	font-size: 0.9375rem;
	margin: 0;
}

@media (max-width: 599px) {
	.gl-policy-card dl {
		grid-template-columns: 1fr;
	}

	.gl-policy-card dd {
		margin-bottom: 0.5rem;
	}
}

.gl-policy-table {
	border-collapse: collapse;
	font-size: 0.9375rem;
	margin: 1rem 0;
	width: 100%;
}

.gl-policy-table th,
.gl-policy-table td {
	border-bottom: 1px solid var(--gl-border);
	padding: 0.6rem 0.75rem 0.6rem 0;
	text-align: left;
	vertical-align: top;
}

.gl-policy-table th {
	color: var(--gl-navy);
}

.gl-policy-note {
	background: #fff8ea;
	border-left: 4px solid var(--gl-gold);
	padding: 1rem 1.25rem;
}

@media print {
	.gl-consent,
	.gl-consent-dialog,
	.gl-policy__toc,
	.gl-policy-button {
		display: none !important;
	}
}

/* ==========================================================================
   12. Motion and print
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}
}

@media print {
	.gl-site-header,
	.gl-site-footer,
	.gl-related,
	.gl-header__menu-button {
		display: none !important;
	}

	.gl-hero {
		background: none;
		color: #000;
		min-height: 0;
		padding: 0 0 1rem;
	}

	.gl-hero__img,
	.gl-hero::after {
		display: none;
	}

	.gl-hero__title {
		color: #000;
		text-shadow: none;
	}

	a[href^="http"]::after {
		content: " (" attr(href) ")";
		font-size: 0.8em;
	}
}

@media (max-width: 600px) {
	.gl-policy-table thead {
		clip: rect(0 0 0 0);
		height: 1px;
		overflow: hidden;
		position: absolute;
		width: 1px;
	}

	.gl-policy-table,
	.gl-policy-table tbody,
	.gl-policy-table tr,
	.gl-policy-table td {
		display: block;
		width: 100%;
	}

	.gl-policy-table tr {
		border-bottom: 1px solid var(--gl-border);
		padding: 0.5rem 0;
	}

	.gl-policy-table td {
		border: 0;
		padding: 0.15rem 0;
	}

	.gl-policy-table td:first-child {
		color: var(--gl-navy);
		font-weight: 700;
	}

	.gl-policy-table td:not(:first-child)[data-label]::before {
		content: attr(data-label) ": ";
		font-weight: 700;
	}
}
