/* One Planet site blocks (replaced the Elementor templates, Ultimate Addons footer and Marquee Addons).
   Tokens come from the site design system (snippet 41); the fallbacks keep blocks right without it. */

.opb {
	--opb-max: var(--op-max, 1132px);
	--opb-page: var(--op-page, #F5F1E8);
	--opb-card: var(--op-card, #FFFFFF);
	--opb-navy: var(--op-navy, #0F172A);
	--opb-gold: var(--op-gold, #ECD98E);
	--opb-gold-deep: var(--op-gold-deep, #B9A65E);
	--opb-ink: var(--op-ink, #111111);
	--opb-body: var(--op-body, #4A4A4A);
	--opb-line: var(--op-line, #E8E0CB);
	--opb-shadow: var(--op-shadow, 0 1px 2px rgba(15, 23, 42, .04), 0 14px 36px rgba(15, 23, 42, .06));
	--opb-r: var(--op-r, 20px);
	--opb-r-lg: var(--op-r-lg, 28px);
	--opb-ui: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	font-family: 'Marcellus', Georgia, serif;
	color: var(--opb-body);
	padding: clamp(56px, 6.5vw, 90px) 24px;
}
.opb *, .opb *::before, .opb *::after { box-sizing: border-box; }
/* !important: Astra's page-builder layout clears max-width on content children (homepage). */
.opb .opb-wrap { max-width: var(--opb-max) !important; margin-left: auto !important; margin-right: auto !important; }
.opb-center { text-align: center; }
.opb .opb-eyebrow {
	margin: 0 0 9px;
	line-height: 22px;
	text-align: center;
	font-size: 13px;
	letter-spacing: 2.4px;
	text-transform: uppercase;
	color: #8a7a3e;
}
.opb .opb-h2 {
	margin: 0;
	font-family: 'Marcellus', Georgia, serif;
	font-weight: 400;
	font-size: clamp(28px, 3vw, 38px);
	line-height: 1.2;
	letter-spacing: .3px;
	color: var(--opb-ink);
}
.opb-lede { margin: 14px 0 0; font-size: clamp(20px, 2.2vw, 26px); line-height: 1.35; color: var(--opb-body); }
.opb-btn, .opb a.opb-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	padding: 13px 30px;
	border: 1px solid var(--opb-gold-deep, #B9A65E);
	border-radius: 999px;
	background: var(--opb-gold, #ECD98E);
	color: var(--opb-ink, #111111);
	font-family: 'Marcellus', Georgia, serif;
	font-size: 16px;
	line-height: 1.2;
	letter-spacing: .4px;
	text-decoration: none;
	white-space: nowrap;
	transition: background-color .2s ease;
}
.opb-btn:hover, .opb a.opb-btn:hover { background: var(--opb-gold-deep, #B9A65E); color: var(--opb-ink, #111111); }
.opb a:focus-visible, .opb button:focus-visible, .opb [tabindex]:focus-visible, .opb-footer a:focus-visible {
	outline: 3px solid var(--opb-gold-deep, #B9A65E);
	outline-offset: 3px;
	border-radius: 6px;
}
.opb a.opb-person, .opb a.opb-person span, .opb a.opb-reviews-summary, .opb a.opb-reviews-summary span, .opb-footer a { text-decoration: none; }
.opb-headrow { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.opb-icon { display: inline-block; width: 1em; height: 1em; flex: 0 0 auto; }

/* Elementor's global heading styles (kit 177), which applied to every page through a body class. Kept the
   same so blog posts, forms and Astra pages look exactly as they did. */
.opm-kit h1 { font-size: 45px; letter-spacing: 2.5px; word-spacing: 0; }
.opm-kit h2 { font-size: 35px; letter-spacing: 2.5px; }
.opm-kit h3, .opm-kit h4, .opm-kit h5, .opm-kit h6 { font-size: 25px; letter-spacing: 2.5px; }

/* Carousels: native horizontal scrolling with snap; site.js adds autoplay, arrows and dots. */
.opb-carousel { position: relative; }
.opb-carousel-track {
	display: flex;
	gap: 18px;
	overflow-x: auto;
	scroll-behavior: smooth;
	scrollbar-width: none;
	overscroll-behavior-x: contain;
}
.opb-carousel-track::-webkit-scrollbar { display: none; }
/* Snapping is switched on by site.js at the first touch or scroll: snap on page load counts as a scroll,
   and Chrome then stops measuring Largest Contentful Paint. */
.opb-carousel-track.is-snap { scroll-snap-type: x mandatory; }
.opb-carousel-track > * { scroll-snap-align: start; }
.opb-dots { display: flex; justify-content: center; gap: 10px; margin-top: 18px; }
.opb-dots button {
	width: 8px;
	height: 8px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: #cfc8b4;
	cursor: pointer;
}
.opb-dots button[aria-current="true"] { background: var(--opb-gold-deep); }
.opb-arrow {
	position: absolute;
	top: 50%;
	z-index: 2;
	display: grid;
	place-items: center;
	width: 34px;
	height: 34px;
	margin-top: -17px;
	padding: 0;
	border: 1px solid var(--opb-line);
	border-radius: 50%;
	background: #fff;
	color: var(--opb-ink);
	box-shadow: 0 2px 8px rgba(15, 23, 42, .12);
	cursor: pointer;
	font-size: 22px;
}
.opb-arrow-prev { left: -8px; }
.opb-arrow-next { right: -8px; }
.opb-arrow:hover { background: var(--opb-gold); }

/* Awards */
.opb-awards { padding-top: clamp(44px, 4.2vw, 60px); padding-bottom: clamp(48px, 4.5vw, 64px); }
.opb-awards .opb-h2 { margin-bottom: 47px; }
.opb-award {
	flex: 0 0 calc((100% - 4 * 18px) / 5);
	display: flex;
	align-items: center;
	justify-content: center;
	height: 150px;
	padding: 18px;
	border: 1px solid var(--opb-line);
	border-radius: var(--opb-r);
	background: var(--opb-card);
}
.opb-award img { width: auto; max-width: 100%; height: auto; max-height: 112px; object-fit: contain; }

/* A lawyer's own badges, under their photo on the profile hero (undoes the hero photo styling) */
.opb-badges { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 14px 18px; max-width: 420px; margin: 22px auto 0; padding: 0; list-style: none; }
.opb-badges li { margin: 0; }
.opm-pg .opm-hero-media .opb-badges img { width: auto; max-width: min(100%, 250px); height: 92px; aspect-ratio: auto; object-fit: contain; border: 0; border-radius: 0; margin: 0; }

/* Google reviews */
.opb-reviews { padding-bottom: clamp(56px, 6vw, 80px); }
.opb-reviews-body {
	display: grid;
	grid-template-columns: 220px minmax(0, 1fr);
	gap: 28px;
	align-items: center;
	margin-top: clamp(28px, 2.8vw, 40px);
}
.opb-reviews-summary {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
	color: var(--opb-ink);
	text-decoration: none;
}
.opb-reviews-word { font-family: var(--opb-ui); font-size: 22px; font-weight: 700; letter-spacing: .5px; text-transform: uppercase; }
.opb-reviews-count { font-family: var(--opb-ui); font-size: 15px; }
.opb-reviews-google { width: 110px; height: auto; margin-top: 4px; }
.opb-stars { display: inline-flex; gap: 2px; color: #F6BB06; font-size: 17px; }
.opb-stars-lg { font-size: 30px; gap: 3px; }
.opb-reviews-carousel { padding: 0 12px; }
.opb-reviews-carousel .opb-carousel-track { gap: 18px; padding: 4px 2px 8px; }
.opb-review {
	position: relative;
	flex: 0 0 calc((100% - 2 * 18px) / 3);
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 20px;
	border: 1px solid var(--opb-line);
	border-radius: var(--opb-r);
	background: var(--opb-card);
	box-shadow: var(--opb-shadow);
}
.opb-review-head { display: flex; align-items: center; gap: 12px; }
.opb-review-head > div { min-width: 0; flex: 1; }
.opb-review-photo { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; }
.opb-review .opb-review-name { margin: 0; font-family: var(--opb-ui); font-size: 15px; font-weight: 600; color: var(--opb-ink); }
.opb-review .opb-review-date { margin: 0; font-family: var(--opb-ui); font-size: 13px; color: #8a8a8a; }
.opb-google-g { width: 20px; height: 20px; align-self: flex-start; }
.opb-review-text p {
	display: -webkit-box;
	margin: 0;
	overflow: hidden;
	font-size: 15px;
	line-height: 1.45;
	color: #222;
	-webkit-line-clamp: 4;
	-webkit-box-orient: vertical;
}
.opb-review.is-open .opb-review-text p { display: block; }
.opb-review-more {
	align-self: flex-start;
	padding: 0;
	border: 0;
	background: none;
	font-family: var(--opb-ui);
	font-size: 14px;
	color: #8a8a8a;
	cursor: pointer;
}
.opb-review-more:hover { color: var(--opb-ink); text-decoration: underline; }

/* Team */
.opb-team { padding-top: clamp(40px, 4vw, 50px); padding-bottom: 20px; }
.opb-team .opb-headrow { margin-bottom: 50px; }
.opb-team-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 19px 22px; padding: 0 10px; }
.opb-person {
	display: flex;
	flex-direction: column;
	align-items: center;
	overflow: hidden;
	padding-bottom: 22px;
	border: 1px solid var(--opb-line);
	border-radius: var(--opb-r);
	background: var(--opb-card);
	box-shadow: var(--opb-shadow);
	color: var(--opb-ink);
	text-align: center;
	text-decoration: none;
	transition: transform .2s ease, box-shadow .2s ease;
}
.opb-person:hover { transform: translateY(-2px); box-shadow: 0 18px 44px rgba(15, 23, 42, .1); }
.opb-person-photo { display: block; width: 100%; }
.opb-person-photo img { display: block; width: 100%; height: auto; aspect-ratio: 355 / 288; object-fit: cover; }
.opb-person-name { margin-top: 22px; padding: 0 16px; font-size: 22px; letter-spacing: .3px; line-height: 1.2; }
.opb-person:hover .opb-person-name { color: #8a7a3e; }
.opb-person-role { margin-top: 10px; padding: 0 16px; font-size: 16px; color: var(--opb-body); }

/* Enquiry */
.opb-enquiry { padding-top: 56px; padding-bottom: 64px; }
.opb-enquiry .opb-h2 { margin-bottom: 20px; }
.opb-enquiry-maps .opb-wrap { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0; align-items: start; }
.opb-maps { display: flex; flex-direction: column; }
.opb-maps iframe { display: block; width: 100%; height: 681px; border: 0; }
.opb-enquiry-maps .opb-enquiry-card { padding: 40px 0 24px; border-radius: var(--opb-r); background: var(--opb-card); }

/* Navy cards: employer testimonials and the call to action */
.opb-testimonials, .opb-cta { padding-top: 24px; padding-bottom: 24px; }
.opb-navy-card {
	border-radius: var(--opb-r-lg);
	background: linear-gradient(160deg, #141E33 0%, #0F172A 60%);
	box-shadow: 0 24px 60px rgba(15, 23, 42, .16);
}
.opb-testimonials .opb-navy-card { padding: clamp(48px, 5.5vw, 82px) clamp(16px, 4.5vw, 70px) clamp(40px, 5vw, 72px); }
.opb-testimonials .opb-h2 { margin-bottom: clamp(36px, 5vw, 72px); color: #fff; }
.opb-quotes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px; }
.opb-quote {
	position: relative;
	margin: 0;
	padding: 30px 30px 72px;
	border: 1px solid rgba(255, 255, 255, .08);
	border-radius: var(--opb-r);
	background: rgba(255, 255, 255, .05);
}
.opb .opb-quote blockquote { margin: 0; padding: 0; border: 0; background: none; font-style: normal; }
.opb .opb-quote blockquote p { margin: 0; font-size: 16px; font-style: normal; line-height: 1.4; color: rgba(255, 255, 255, .86); }
.opb-quote figcaption { margin-top: 24px; }
.opb-quote-name { display: block; font-size: 16px; color: #fff; }
.opb-quote-job { display: block; font-size: 13px; color: rgba(255, 255, 255, .55); }
.opb-quote .opb-icon-quote { position: absolute; right: 22px; bottom: 10px; width: 40px; height: 40px; color: var(--opb-gold); }
.opb-cta-card {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 32px;
	padding: clamp(40px, 5vw, 64px);
}
.opb-cta-card .opb-h2 { margin-bottom: 12px; font-size: clamp(28px, 3.2vw, 40px); color: #fff; }
.opb-cta-card p { max-width: 720px; margin: 0; font-size: 17px; line-height: 1.65; color: rgba(255, 255, 255, .78); }

/* Locations heading row */
.opb-locations { padding-top: clamp(56px, 7.5vw, 110px); padding-bottom: 40px; }

/* Page hero (legal pages, blog page) */
.opb-pagehero {
	padding: clamp(140px, 17vw, 250px) 24px clamp(44px, 4vw, 50px);
	border-radius: 0 0 34px 34px;
	background: linear-gradient(160deg, #141E33 0%, #0F172A 60%);
}
.opb .opb-pagehero-title {
	margin: 0;
	text-align: center;
	font-family: 'Marcellus', Georgia, serif;
	font-weight: 400;
	font-size: clamp(32px, 4vw, 46px);
	line-height: .9;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: #fff;
}

/* Legal text card */
.opb-legal { padding-top: clamp(24px, 3vw, 40px); padding-bottom: 0; }
.opb-legal-card {
	padding: clamp(28px, 5vw, 64px);
	border: 1px solid var(--opb-line);
	border-radius: var(--opb-r-lg);
	background: var(--opb-card);
	box-shadow: var(--opb-shadow);
	overflow-wrap: break-word;
}
/* Text as it was in Elementor's text editor (the terms page tidy-up rules in snippet 41 still apply on top). */
.opb .opb-legal-card h2 { margin: 0; font-family: 'Marcellus', Georgia, serif; font-weight: 400; font-size: 35px; line-height: 1; letter-spacing: 2.5px; color: var(--opb-navy); }
.opb .opb-legal-card p { margin: 0 0 1.75em; }
.opb .opb-legal-card ul, .opb .opb-legal-card ol { margin: 0 0 24px; padding-left: 0; }
.opb .opb-legal-card li { margin: 0; }
.opb .opb-legal-card a { font-weight: inherit; }

/* Homepage hero */
.opb-hero {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 80vh;
	overflow: hidden;
	padding: 300px 40px 240px;
	border-radius: 0 0 34px 34px;
	background: #1d1a12;
	isolation: isolate;
}
.opb-hero-media, .opb-hero-shade { position: absolute; inset: 0; z-index: -1; }
.opb-hero-media img { width: 100%; height: 100%; object-fit: cover; }
.opb-hero-media { container-type: size; overflow: hidden; }
.opb-hero-media iframe { position: absolute; top: 50%; left: 50%; width: max(100cqw, 177.78cqh); height: max(100cqh, 56.25cqw); max-width: none; max-height: none; border: 0; opacity: 0; pointer-events: none; transform: translate(-50%, -50%); transition: opacity .8s ease; }
.opb-hero-media iframe.is-playing { opacity: 1; }
/* Same as the Elementor hero: 62% shade over the still image, 47% over the film. */
.opb-hero-shade { background: rgba(0, 0, 0, .62); transition: background-color .8s ease; }
.opb-hero.is-playing .opb-hero-shade { background: rgba(0, 0, 0, .47); }
.opb-hero-content { position: relative; max-width: 1200px; margin: 0 auto; width: 100%; }
.opb-hero-content .opm-pg { background: transparent !important; }

/* Blog page: search and posts grid */
.opb-blog { padding-top: clamp(24px, 3vw, 40px); }
.opb-search { margin-bottom: 28px; }
.opb .opb-search-title { margin: 0 0 14px; font-family: 'Marcellus', Georgia, serif; font-weight: 400; font-size: 22px; color: var(--opb-ink); }
.opb-search-form {
	display: flex;
	align-items: center;
	overflow: hidden;
	border: 1px solid #DCD2B6;
	border-radius: 999px;
	background: var(--opb-card);
	box-shadow: var(--opb-shadow);
}
.opb-search-form input[type="search"] {
	flex: 1;
	min-width: 0;
	height: 52px;
	padding: 0 8px 0 22px;
	border: 0;
	background: transparent;
	font-family: 'Marcellus', Georgia, serif;
	font-size: 16px;
	color: var(--opb-ink);
	outline: 0;
	box-shadow: none;
}
.opb-search-form button {
	display: grid;
	place-items: center;
	width: 52px;
	height: 52px;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--opb-ink);
	font-size: 17px;
	cursor: pointer;
}
.opb-search-form:focus-within { border-color: var(--opb-gold-deep); }
.opb-posts-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.opb-post-card {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border: 1px solid var(--opb-line);
	border-radius: var(--opb-r);
	background: var(--opb-card);
	box-shadow: var(--opb-shadow);
	transition: transform .2s ease, box-shadow .2s ease;
}
.opb-post-card:hover { transform: translateY(-2px); box-shadow: 0 18px 44px rgba(15, 23, 42, .1); }
.opb-post-image img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }
.opb-post-content { display: flex; flex: 1; flex-direction: column; padding: 20px; }
.opb .opb-post-title { margin: 0 0 10px; font-family: 'Marcellus', Georgia, serif; font-weight: 400; font-size: clamp(19px, 1.7vw, 23px); line-height: 1.3; letter-spacing: .2px; }
.opb .opb-post-title a { color: var(--opb-ink); text-decoration: none; }
.opb-post-title a:hover { color: #8a7a3e; }
.opb-post-meta { margin-bottom: 10px; font-family: var(--opb-ui); font-size: 12px; color: #6b6b6b; }
.opb-post-excerpt { margin-bottom: 14px; font-size: 16px; line-height: 1.55; color: var(--opb-body); }
.opb-read-more { margin-top: auto; color: var(--opb-navy); text-decoration: underline; text-decoration-color: var(--opb-gold-deep); text-underline-offset: 3px; }

/* Footer (inside Astra's #colophon, which the design system pads onto the page background) */
.opb-footer {
	overflow: hidden;
	border-radius: 28px;
	background: #0F172A;
	box-shadow: 0 24px 60px rgba(15, 23, 42, .18);
	font-family: 'Marcellus', Georgia, serif;
}
.opb-footer-main {
	display: grid;
	grid-template-columns: minmax(170px, 200px) minmax(230px, 290px) minmax(150px, 1fr) minmax(190px, 1fr);
	column-gap: clamp(28px, 4.5vw, 64px);
	row-gap: 40px;
	padding: clamp(40px, 5vw, 64px) clamp(24px, 4.5vw, 64px) clamp(80px, 11vw, 168px);
}
.opb-footer-logo img { display: block; width: 104px; height: auto; }
.opb-footer-brand p { margin: 22px 0 32px; font-size: 15px; line-height: 1.65; color: rgba(255, 255, 255, .68); }
.opb-footer .opb-footer-label {
	margin: 4px 0 36px;
	font-family: 'Marcellus', Georgia, serif;
	font-size: 13px;
	font-weight: 400;
	letter-spacing: 2.4px;
	text-transform: uppercase;
	color: #ECD98E;
}
.opb-footer ul { margin: 0; padding: 0; list-style: none; }
.opb-footer li { margin: 0 0 10px; font-size: 15px; line-height: 1.5; color: rgba(255, 255, 255, .78); }
.opb-footer li a { color: rgba(255, 255, 255, .78); text-decoration: none; transition: color .15s ease; }
.opb-footer li a:hover { color: #ECD98E; }
.opb-footer-contact li, .opb-footer-contact li a { display: flex; align-items: flex-start; gap: 12px; }
.opb-footer-contact li { margin-bottom: 16px; }
.opb-footer-contact .opb-icon { width: 18px; height: 18px; margin-top: 3px; color: #ECD98E; }
.opb-footer-btn, .opb-footer .opb-btn {
	display: inline-flex;
	padding: 13px 26px;
	border: 1px solid #B9A65E;
	border-radius: 999px;
	background: #ECD98E;
	color: #111;
	font-family: 'Marcellus', Georgia, serif;
	font-size: 15px;
	letter-spacing: .4px;
	text-decoration: none;
	white-space: nowrap;
}
.opb-footer .opb-btn:hover { background: #B9A65E; color: #111; }
.opb-footer-marquee { overflow: hidden; padding: 16px 0; background: rgba(255, 255, 255, .045); }
.opb-marquee-track { display: flex; width: max-content; animation: opb-marquee 60s linear infinite; }
.opb-marquee-track span { padding-right: 32px; font-size: 14px; letter-spacing: 3px; text-transform: uppercase; white-space: nowrap; color: #ECD98E; }
@keyframes opb-marquee { to { transform: translateX(-50%); } }
.opb-footer-bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: 20px clamp(24px, 4.5vw, 64px) 26px;
}
.opb-footer .opb-footer-legal { max-width: 270px; margin: 0; font-size: 14px; line-height: 1.6; color: rgba(255, 255, 255, .6); }
.opb-footer .op-credit a { color: rgba(255, 255, 255, .75); text-decoration: underline; text-decoration-color: rgba(236, 217, 142, .6); text-underline-offset: 3px; }
.opb-footer .op-credit a:hover { color: #ECD98E; }
.opb-footer-social { display: flex; gap: 6px; }
.opb-footer-social a {
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .08);
	color: #fff;
	font-size: 19px;
	transition: background-color .2s ease, color .2s ease;
}
.opb-footer-social a:hover { background: #ECD98E; color: #0F172A; }
.opb-footer-terms { display: flex; gap: 38px; }
.opb-footer-terms a { font-size: 14px; color: rgba(255, 255, 255, .6); text-decoration: none; }
.opb-footer-terms a:hover { color: #ECD98E; }

@media (prefers-reduced-motion: reduce) {
	.opb-marquee-track { animation: none; }
	.opb-carousel-track { scroll-behavior: auto; }
}

@media (max-width: 1024px) {
	.opb-award { flex-basis: calc((100% - 2 * 18px) / 3); }
	.opb-review { flex-basis: calc((100% - 18px) / 2); }
	.opb-reviews-body { grid-template-columns: minmax(0, 1fr); }
	.opb-team-grid, .opb-quotes, .opb-posts-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.opb-footer-main { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.opb-hero { padding: 180px 32px 0; }
	.opb-enquiry-maps .opb-wrap { grid-template-columns: minmax(0, 1fr); }
	.opb-maps iframe { height: 420px; }
}

@media (max-width: 767px) {
	.opb { padding-left: 16px; padding-right: 16px; }
	.opb-headrow { flex-direction: column; justify-content: center; text-align: center; gap: 24px; }
	.opb-awards { padding-top: 80px; padding-bottom: 118px; }
	.opb-award { flex-basis: 100%; height: 120px; }
	.opm-pg .opm-hero-media .opb-badges img { height: 80px; }
	.opb-reviews-body { gap: 40px; }
	.opb-headrow { gap: 36px; }
	.opb-review { flex-basis: 88%; }
	.opb-reviews-carousel { padding: 0; }
	.opb-reviews-carousel .opb-arrow { display: none; }
	.opb-team-grid, .opb-quotes, .opb-posts-grid { grid-template-columns: minmax(0, 1fr); }
	.opb-team-grid { padding: 0; }
	.opb-posts-grid { gap: 14px; }
	.opb-post-excerpt { font-size: 14.6px; }
	.opb-quotes { gap: 20px; }
	.opb-testimonials, .opb-cta { padding-left: 16px; padding-right: 16px; }
	.opb-cta-card { flex-direction: column; align-items: flex-start; }
	.opb-maps iframe { height: 340px; }
	.opb-pagehero { border-radius: 0 0 24px 24px; }
	.opb-hero { min-height: 100vh; padding: 130px 24px 0; border-radius: 0 0 24px 24px; }
	.opb-footer { border-radius: 22px; }
	.opb-footer-main { grid-template-columns: minmax(0, 1fr); padding: 48px 24px 40px; row-gap: 44px; }
	.opb-footer-bottom { flex-direction: column; text-align: center; gap: 20px; padding-bottom: 32px; }
	.opb-footer .opb-footer-legal { max-width: none; }
	.opb-footer .op-credit { display: block; margin-top: 4px; }
}
