/*
Theme Name:   GeneratePress Child
Theme URI:    https://portugalimmigrationlawyers.com
Description:  Child theme of GeneratePress for Immigration Lawyers Portugal.
Author:       Immigration Lawyers Portugal
Template:     generatepress
Version:      1.1.0
Text Domain:  generatepress-child
*/

/* =========================================================================
   PART 1: DESIGN SYSTEM
   Everything visual is built from the tokens in :root below. Change a value
   here and it changes across the whole site.
   ========================================================================= */

:root {
	/* Brand colors. Navy is the brand, terracotta is the one warm accent. */
	--pld-navy: #0f2b4c;
	--pld-navy-dark: #0a1d36;
	--pld-navy-soft: #e9eef5;
	--pld-accent: #b4492d;
	--pld-accent-dark: #963a22;
	--pld-accent-soft: #fbece6;

	/* Neutrals. */
	--pld-text: #1b2a41;
	--pld-text-muted: #52637a;
	--pld-border: #dbe2eb;
	--pld-input-border: #7b8da6;
	--pld-bg: #f5f7fa;
	--pld-surface: #ffffff;

	/* Feedback colors. */
	--pld-success: #1f7a3d;
	--pld-error: #b3261e;

	/* Spacing scale (1rem = 16px). */
	--pld-space-1: 0.25rem;
	--pld-space-2: 0.5rem;
	--pld-space-3: 0.75rem;
	--pld-space-4: 1rem;
	--pld-space-5: 1.5rem;
	--pld-space-6: 2rem;
	--pld-space-7: 3rem;
	--pld-space-8: 4rem;
	--pld-space-9: 6rem;

	/* Corner radius. */
	--pld-radius-sm: 8px;
	--pld-radius-md: 12px;
	--pld-radius-lg: 20px;
	--pld-radius-pill: 999px;

	/* Soft shadows, tinted with the navy so they feel calm. */
	--pld-shadow-sm: 0 1px 2px rgba(15, 43, 76, 0.06), 0 1px 3px rgba(15, 43, 76, 0.08);
	--pld-shadow-md: 0 4px 12px rgba(15, 43, 76, 0.08), 0 2px 4px rgba(15, 43, 76, 0.05);
	--pld-shadow-lg: 0 12px 32px rgba(15, 43, 76, 0.12), 0 4px 8px rgba(15, 43, 76, 0.06);

	/* Type. System fonts only: nothing to download, nothing to license. */
	--pld-font: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;
	--pld-fs-xs: 0.8125rem;
	--pld-fs-sm: 0.9375rem;
	--pld-fs-base: 1.0625rem;
	--pld-fs-lg: 1.1875rem;
	--pld-fs-h6: 0.875rem;
	--pld-fs-h5: 1.0625rem;
	--pld-fs-h4: 1.1875rem;
	--pld-fs-h3: 1.375rem;
	--pld-fs-h2: clamp(1.5rem, 1.2rem + 1.2vw, 2.125rem);
	--pld-fs-h1: clamp(2rem, 1.35rem + 2.6vw, 3.25rem);
	--pld-lh-body: 1.65;
	--pld-lh-heading: 1.2;

	/* Layout widths. */
	--pld-container: 1120px;
	--pld-reading: 68ch;

	/* Keyboard focus ring. Dark on light areas; footer and hero switch to white. */
	--pld-focus: var(--pld-navy);
}

/* ---- Base text ---- */
body {
	font-family: var(--pld-font);
	font-size: var(--pld-fs-base);
	line-height: var(--pld-lh-body);
	color: var(--pld-text);
	background-color: var(--pld-bg);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

body button,
body input,
body select,
body textarea {
	font-family: var(--pld-font);
}

/* ---- Headings ---- */
body h1,
body h2,
body h3,
body h4,
body h5,
body h6,
body .entry-title {
	font-family: var(--pld-font);
	font-weight: 700;
	line-height: var(--pld-lh-heading);
	letter-spacing: -0.01em;
	color: var(--pld-navy);
	margin: 0 0 var(--pld-space-4);
}

body h1,
body .entry-title {
	font-size: var(--pld-fs-h1);
	letter-spacing: -0.02em;
}

body h2 {
	font-size: var(--pld-fs-h2);
	margin-top: var(--pld-space-7);
}

body h3 {
	font-size: var(--pld-fs-h3);
	margin-top: var(--pld-space-6);
}

body h4 {
	font-size: var(--pld-fs-h4);
}

body h5 {
	font-size: var(--pld-fs-h5);
}

body h6 {
	font-size: var(--pld-fs-h6);
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--pld-text-muted);
}

/* A heading straight after another block should not leave a big gap above. */
.entry-content > :first-child,
.entry-content > h1:first-child,
.entry-content > h2:first-child {
	margin-top: 0;
}

/* ---- Body copy ---- */
body p {
	margin: 0 0 var(--pld-space-4);
}

body ul,
body ol {
	margin: 0 0 var(--pld-space-4) var(--pld-space-5);
}

body li {
	margin-bottom: var(--pld-space-2);
}

body strong {
	font-weight: 700;
}

body hr {
	border: 0;
	border-top: 1px solid var(--pld-border);
	margin: var(--pld-space-6) 0;
	background: none;
}

body blockquote {
	margin: var(--pld-space-5) 0;
	padding: var(--pld-space-3) var(--pld-space-5);
	border-left: 4px solid var(--pld-accent);
	background: var(--pld-accent-soft);
	border-radius: 0 var(--pld-radius-sm) var(--pld-radius-sm) 0;
}

body img {
	max-width: 100%;
	height: auto;
}

/* Readable line length for plain text blocks. Wide blocks (cards, columns,
   hero) are left alone so layouts can use the full width. */
.entry-content > :is(p, ul, ol, h2, h3, h4, h5, h6, blockquote) {
	max-width: var(--pld-reading);
}

/* ---- Links ---- */
body a {
	color: var(--pld-accent);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.18em;
}

body a:hover {
	color: var(--pld-accent-dark);
	text-decoration-thickness: 2px;
}

/* Links that are really buttons, menus or cards do not get the underline. */
body a.button,
body a.pld-btn,
body a.wp-block-button__link,
body .main-navigation a,
body .site-branding a {
	text-decoration: none;
}

/* ---- Keyboard focus: one clear ring everywhere ---- */
body :focus {
	outline: none;
}

body :focus-visible {
	outline: 3px solid var(--pld-focus);
	outline-offset: 2px;
	border-radius: 2px;
}

/* ---- Buttons ----
   Primary (terracotta) is the default. Add pld-btn--secondary (navy) or
   pld-btn--outline for the others, and pld-btn--sm or pld-btn--lg for size. */
body .button,
body .pld-btn,
body input[type="submit"],
body input[type="button"],
body button[type="submit"],
body a.wp-block-button__link:not(.has-background),
body .wp-block-button__link:not(.has-background) {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--pld-space-2);
	min-height: 48px;
	padding: var(--pld-space-3) var(--pld-space-5);
	font-family: var(--pld-font);
	font-size: var(--pld-fs-base);
	font-weight: 600;
	line-height: 1.2;
	color: #ffffff;
	background: var(--pld-accent);
	border: 2px solid var(--pld-accent);
	border-radius: var(--pld-radius-md);
	box-shadow: none;
	cursor: pointer;
	text-decoration: none;
	transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}

body .button:hover,
body .pld-btn:hover,
body input[type="submit"]:hover,
body input[type="button"]:hover,
body button[type="submit"]:hover,
body a.wp-block-button__link:not(.has-background):hover,
body .wp-block-button__link:not(.has-background):hover {
	color: #ffffff;
	background: var(--pld-accent-dark);
	border-color: var(--pld-accent-dark);
	box-shadow: var(--pld-shadow-sm);
}

body .button:active,
body .pld-btn:active,
body input[type="submit"]:active,
body button[type="submit"]:active {
	box-shadow: none;
}

body .pld-btn--secondary,
body .pld-btn--secondary:visited {
	color: #ffffff;
	background: var(--pld-navy);
	border-color: var(--pld-navy);
}

body .pld-btn--secondary:hover {
	color: #ffffff;
	background: var(--pld-navy-dark);
	border-color: var(--pld-navy-dark);
}

body .pld-btn--outline,
body .pld-btn--outline:visited,
body .is-style-outline .wp-block-button__link {
	color: var(--pld-navy);
	background: transparent;
	border-color: var(--pld-navy);
}

body .pld-btn--outline:hover,
body .is-style-outline .wp-block-button__link:hover {
	color: #ffffff;
	background: var(--pld-navy);
	border-color: var(--pld-navy);
}

body .pld-btn--sm {
	min-height: 40px;
	padding: var(--pld-space-2) var(--pld-space-4);
	font-size: var(--pld-fs-sm);
}

body .pld-btn--lg {
	min-height: 56px;
	padding: var(--pld-space-4) var(--pld-space-6);
	font-size: var(--pld-fs-lg);
}

body .button[disabled],
body .pld-btn[aria-disabled="true"],
body button[type="submit"][disabled] {
	opacity: 0.5;
	cursor: not-allowed;
}

/* ---- Forms ---- */
body label {
	display: block;
	margin-bottom: var(--pld-space-1);
	font-size: var(--pld-fs-sm);
	font-weight: 600;
	color: var(--pld-text);
}

body input[type="text"],
body input[type="email"],
body input[type="url"],
body input[type="tel"],
body input[type="number"],
body input[type="date"],
body input[type="search"],
body input[type="password"],
body select,
body textarea {
	width: 100%;
	max-width: 100%;
	min-height: 48px;
	padding: var(--pld-space-3) var(--pld-space-4);
	font-size: var(--pld-fs-base);
	line-height: 1.4;
	color: var(--pld-text);
	background-color: var(--pld-surface);
	border: 1px solid var(--pld-input-border);
	border-radius: var(--pld-radius-sm);
	box-shadow: none;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

body textarea {
	min-height: 8rem;
	resize: vertical;
}

body select {
	appearance: none;
	-webkit-appearance: none;
	padding-right: 2.5rem;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%230f2b4c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 1rem center;
}

body input::placeholder,
body textarea::placeholder {
	color: var(--pld-text-muted);
	opacity: 1;
}

body input[type="text"]:focus,
body input[type="email"]:focus,
body input[type="url"]:focus,
body input[type="tel"]:focus,
body input[type="number"]:focus,
body input[type="date"]:focus,
body input[type="search"]:focus,
body input[type="password"]:focus,
body select:focus,
body textarea:focus {
	color: var(--pld-text);
	background-color: var(--pld-surface);
	border-color: var(--pld-navy);
	box-shadow: 0 0 0 1px var(--pld-navy);
}

body input[type="checkbox"],
body input[type="radio"] {
	accent-color: var(--pld-accent);
}

/* ---- Container widths and page surface ---- */
body .grid-container {
	max-width: var(--pld-container);
}

body.separate-containers .inside-article,
body.separate-containers .comments-area,
body.separate-containers .page-header {
	padding: clamp(1.25rem, 4vw, 3rem);
	background: var(--pld-surface);
	border-radius: var(--pld-radius-lg);
	box-shadow: var(--pld-shadow-sm);
}

/* ---- Directory list pages (basic version, restyled in Part 3) ---- */
.pld-archive__header {
	margin-bottom: var(--pld-space-5);
	padding: clamp(1.25rem, 4vw, 2.5rem);
}

.pld-archive__header .entry-title {
	margin-bottom: var(--pld-space-4);
}

.pld-archive__intro p:last-child {
	margin-bottom: 0;
}

.pld-archive__areas {
	margin-top: var(--pld-space-4);
	padding-top: var(--pld-space-4);
	border-top: 1px solid var(--pld-border);
}

.pld-archive__label {
	font-weight: 600;
	margin-right: var(--pld-space-2);
}

.pld-inline-list {
	display: inline;
	margin: 0;
	padding: 0;
	list-style: none;
}

.pld-inline-list li {
	display: inline;
	margin: 0 var(--pld-space-3) 0 0;
}

.pld-archive__count {
	margin: 0 0 var(--pld-space-4);
	font-size: var(--pld-fs-sm);
	color: var(--pld-text-muted);
}

.pld-listing-list {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--pld-space-4);
}

@media (min-width: 768px) {
	.pld-listing-list {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* Initials avatar: shown instead of a photo of a person */
.pld-listing__head {
	display: flex;
	align-items: center;
	gap: var(--pld-space-3);
	margin-bottom: var(--pld-space-2);
}

.pld-avatar {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	font-size: var(--pld-fs-sm);
	font-weight: 700;
	letter-spacing: 0.02em;
	color: var(--pld-navy);
	background: var(--pld-navy-soft);
	border-radius: 50%;
}

.pld-listing__head .pld-listing__title {
	margin: 0;
}

/* A firm logo in place of the initials: shown whole, on white, never cropped. */
.pld-avatar--logo {
	width: 110px;
	height: 48px;
	padding: 4px 8px;
	background: #ffffff;
	border: 1px solid var(--pld-border);
	border-radius: var(--pld-radius-sm);
}

.pld-avatar--logo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.pld-listing-list--rows .pld-avatar.pld-avatar--logo {
	width: 150px;
	height: 64px;
	font-size: inherit;
}

.pld-listing .pld-avatar.pld-avatar--logo {
	flex: 0 0 auto;
}

.pld-avatar--xl.pld-avatar--logo {
	width: 200px;
	height: 96px;
	padding: 8px 12px;
}

@media (max-width: 639px) {
	.pld-avatar--xl.pld-avatar--logo {
		width: 140px;
		height: 72px;
	}
}

@media (min-width: 1024px) {
	.pld-listing-list--home {
		grid-template-columns: repeat(4, 1fr);
	}
}

.pld-listing .pld-listing__title {
	margin: 0 0 var(--pld-space-1);
	font-size: var(--pld-fs-h3);
}

.pld-listing .pld-listing__title a {
	color: var(--pld-navy);
	text-decoration: none;
}

.pld-listing .pld-listing__title a:hover {
	text-decoration: underline;
}

.pld-listing p {
	margin: 0 0 var(--pld-space-3);
}

.pld-listing .pld-listing__firm,
.pld-listing .pld-listing__places {
	color: var(--pld-text-muted);
	font-size: var(--pld-fs-sm);
}

.pld-pills,
.pld-tags {
	display: flex;
	flex-wrap: wrap;
	gap: var(--pld-space-2);
	margin: 0 0 var(--pld-space-3);
	padding: 0;
	list-style: none;
}

.pld-pills li,
.pld-tags li {
	margin: 0;
}

.pld-tag {
	display: inline-block;
	padding: 0.15rem 0.75rem;
	font-size: var(--pld-fs-xs);
	font-weight: 600;
	color: var(--pld-accent-dark);
	background: var(--pld-accent-soft);
	border-radius: var(--pld-radius-sm);
}

.pld-listing .pld-listing__action {
	margin: var(--pld-space-4) 0 0;
}

.pld-empty h2 {
	margin-top: 0;
}

/* Sponsored (featured) listings: a clear label and a warm highlight */
.pld-sponsored-row {
	margin: 0 0 var(--pld-space-2);
}

.pld-sponsored {
	display: inline-block;
	padding: 0.15rem 0.6rem;
	font-size: var(--pld-fs-xs);
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--pld-accent-dark);
	background: var(--pld-accent-soft);
	border: 1px solid #efc7b9;
	border-radius: var(--pld-radius-sm);
}

.pld-listing--featured {
	border-color: #e7b9a8;
	border-top: 4px solid var(--pld-accent);
	box-shadow: var(--pld-shadow-md);
}

/* Claim this listing (profile pages, unclaimed listings only) */
.pld-lawyer .pld-claim {
	margin-top: var(--pld-space-6);
	padding: var(--pld-space-5);
	background: var(--pld-navy-soft);
	border-radius: var(--pld-radius-md);
}

.pld-lawyer .pld-claim .pld-claim__title {
	margin: 0 0 var(--pld-space-2);
	font-size: var(--pld-fs-h4);
}

.pld-lawyer .pld-claim p {
	margin: 0 0 var(--pld-space-3);
}

.pld-lawyer .pld-claim p:last-child {
	margin-bottom: 0;
}

/* Pagination (WordPress core markup) */
.navigation.pagination {
	margin-top: var(--pld-space-6);
}

.navigation.pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: var(--pld-space-2);
	justify-content: center;
}

.navigation.pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	padding: 0 var(--pld-space-3);
	color: var(--pld-navy);
	text-decoration: none;
	background: var(--pld-surface);
	border: 1px solid var(--pld-border);
	border-radius: var(--pld-radius-sm);
}

.navigation.pagination .page-numbers.current {
	color: #ffffff;
	background: var(--pld-navy);
	border-color: var(--pld-navy);
}

.navigation.pagination a.page-numbers:hover {
	background: var(--pld-navy-soft);
}

/* ---- Small building blocks used by later parts ---- */
.pld-card {
	padding: var(--pld-space-5);
	background: var(--pld-surface);
	border: 1px solid var(--pld-border);
	border-radius: var(--pld-radius-lg);
	box-shadow: var(--pld-shadow-sm);
}

.pld-card--raised {
	box-shadow: var(--pld-shadow-md);
}

.pld-pill {
	display: inline-block;
	padding: 0.15rem 0.75rem;
	font-size: var(--pld-fs-xs);
	font-weight: 600;
	color: var(--pld-navy);
	background: var(--pld-navy-soft);
	border-radius: var(--pld-radius-pill);
}

.pld-small,
body p.pld-small {
	font-size: var(--pld-fs-sm);
	color: var(--pld-text-muted);
}

@media (prefers-reduced-motion: reduce) {
	* {
		transition: none !important;
		scroll-behavior: auto !important;
	}
}

/* =========================================================================
   PART 2: HEADER, FOOTER AND HOME PAGE
   ========================================================================= */

/* ---- Header: wordmark on the left, menu on the right ---- */
body .site-header {
	background: var(--pld-surface);
	box-shadow: 0 1px 0 var(--pld-border);
}

body .inside-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--pld-space-4);
	padding: var(--pld-space-3) var(--pld-space-5);
}

body .main-title {
	margin: 0;
	font-size: 1.375rem;
	font-weight: 800;
	letter-spacing: -0.02em;
	line-height: 1.1;
}

body .main-title a,
body .main-title a:hover {
	color: var(--pld-navy);
}

body .main-navigation {
	background: transparent;
}

body .main-navigation .main-nav ul li a {
	padding: 0 var(--pld-space-3);
	font-size: var(--pld-fs-sm);
	font-weight: 500;
	line-height: 44px;
	color: var(--pld-navy);
	background: transparent;
}

body .main-navigation .main-nav ul li:not([class*="current-menu-"]):hover > a,
body .main-navigation .main-nav ul li:not([class*="current-menu-"]):focus > a,
body .main-navigation .main-nav ul li.sfHover:not([class*="current-menu-"]) > a {
	color: var(--pld-accent-dark);
	background: transparent;
}

body .main-navigation .main-nav ul li[class*="current-menu-"] > a {
	color: var(--pld-navy);
	background: transparent;
	box-shadow: inset 0 -3px 0 var(--pld-accent);
}

/* Drop-down panels */
body .main-navigation ul ul {
	padding: var(--pld-space-2);
	background: var(--pld-surface);
	border: 1px solid var(--pld-border);
	border-radius: var(--pld-radius-md);
	box-shadow: var(--pld-shadow-lg);
}

body .main-navigation .main-nav ul ul li a {
	padding: var(--pld-space-2) var(--pld-space-4);
	line-height: 1.4;
	white-space: nowrap;
	border-radius: var(--pld-radius-sm);
	box-shadow: none;
}

body .main-navigation .main-nav ul ul li:hover > a,
body .main-navigation .main-nav ul ul li:focus-within > a {
	background: var(--pld-navy-soft);
	color: var(--pld-navy);
}

/* The highlighted "Find a Lawyer" button in the menu */
body .main-navigation .main-nav ul li.pld-menu-cta > a,
body .main-navigation .main-nav ul li.pld-menu-cta[class*="current-menu-"] > a {
	margin-left: var(--pld-space-3);
	padding: 0 var(--pld-space-5);
	font-weight: 600;
	line-height: 44px;
	color: #ffffff;
	background: var(--pld-accent);
	border-radius: var(--pld-radius-md);
	box-shadow: none;
}

body .main-navigation .main-nav ul li.pld-menu-cta:hover > a,
body .main-navigation .main-nav ul li.pld-menu-cta:not([class*="current-menu-"]):hover > a,
body .main-navigation .main-nav ul li.pld-menu-cta:focus > a {
	color: #ffffff;
	background: var(--pld-accent-dark);
}

/* Phone header: wordmark and menu button share one row */
@media (max-width: 768px) {
	body .inside-header {
		position: relative;
		flex-wrap: wrap;
		padding-right: 64px;
	}

	body .main-title {
		font-size: 1.125rem;
	}

	body .main-navigation {
		flex: 1 0 100%;
		order: 3;
		width: 100%;
	}

	body .main-navigation .menu-toggle {
		position: absolute;
		top: 8px;
		right: var(--pld-space-2);
		width: auto;
		min-height: 44px;
	}

	body a.pld-tile--stack {
		flex-direction: row;
		align-items: center;
	}
}

/* Phone header with the logo: tight, no empty row under it */
@media (max-width: 768px) {
	body .inside-header {
		padding: 10px 64px 10px 20px;
	}

	body .main-navigation:not(.toggled) .inside-navigation {
		min-height: 0;
	}

	body .site-logo img {
		max-width: 220px;
		height: auto;
	}
}

/* Phone menu */
body .main-navigation .menu-toggle {
	font-size: var(--pld-fs-sm);
	font-weight: 600;
	color: var(--pld-navy);
	background: transparent;
}

body .main-navigation.toggled .main-nav ul li a {
	line-height: 48px;
}

body .main-navigation.toggled .main-nav ul li.pld-menu-cta > a {
	margin: var(--pld-space-2) var(--pld-space-4);
	text-align: center;
}

/* ---- Home page: full-width sections ---- */
body.home #page,
body.pld-list-page #page,
body.home .site-content {
	display: block;
	max-width: none;
	padding: 0;
	margin: 0;
}

.pld-wrap {
	max-width: var(--pld-container);
	margin: 0 auto;
	padding-left: var(--pld-space-5);
	padding-right: var(--pld-space-5);
}

.pld-eyebrow,
body p.pld-eyebrow {
	margin: 0 0 var(--pld-space-2);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--pld-accent-dark);
}

.pld-eyebrow--light,
body p.pld-eyebrow--light {
	color: #f3c6b8;
}

/* Hero. To use a photo later, add this to .pld-hero:
   background-image: linear-gradient(90deg, #ffffff 0%, rgba(255,255,255,0.85) 40%, rgba(255,255,255,0) 75%), url("photo.jpg");
   background-size: cover;  and remove the .pld-hero__art waves. */
.pld-hero {
	position: relative;
	overflow: hidden;
	padding: clamp(3rem, 8vw, 5.5rem) 0 clamp(5rem, 11vw, 8rem);
	background:
		radial-gradient(circle at 86% 26%, rgba(180, 73, 45, 0.16) 0, rgba(180, 73, 45, 0) 24%),
		linear-gradient(180deg, #f8fafd 0%, #e9f0f8 100%);
}

.pld-hero__art {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	width: 100%;
	height: clamp(70px, 13vw, 170px);
}

/* Drawn rooftops on the right of the hero. Hidden on small screens. */
.pld-hero__town {
	display: none;
	position: absolute;
	right: max(2vw, 16px);
	bottom: clamp(50px, 9vw, 120px);
	width: min(34%, 440px);
	height: auto;
}

@media (min-width: 1100px) {
	.pld-hero__town {
		display: block;
	}
}

.pld-hero__inner {
	position: relative;
	z-index: 1;
}

.pld-hero h1 {
	max-width: 14em;
	margin: 0 0 var(--pld-space-4);
}

.pld-hero__lead {
	max-width: 36rem;
	margin: 0;
	font-size: var(--pld-fs-lg);
	color: var(--pld-text);
}

/* Search: shared parts */
.pld-search {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--pld-space-3);
}

.pld-search p {
	margin: 0;
}

.pld-search__field {
	position: relative;
}

/* Search: floating bar in the hero */
.pld-search--hero {
	max-width: 42rem;
	margin-top: var(--pld-space-6);
	padding: var(--pld-space-3);
	background: var(--pld-surface);
	border-radius: var(--pld-radius-lg);
	box-shadow: var(--pld-shadow-lg);
}

@media (min-width: 768px) {
	.pld-search--hero {
		grid-template-columns: 1fr 1fr auto;
		align-items: center;
	}
}

.pld-search--hero .pld-search__field::before {
	content: "";
	position: absolute;
	left: 14px;
	top: 50%;
	z-index: 1;
	width: 20px;
	height: 20px;
	transform: translateY(-50%);
	background-repeat: no-repeat;
	background-size: contain;
	pointer-events: none;
}

.pld-search--hero .pld-search__field--city::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230f2b4c' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E");
}

.pld-search--hero .pld-search__field--practice::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230f2b4c' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpolyline points='14 2 14 8 20 8'/%3E%3Cline x1='16' y1='13' x2='8' y2='13'/%3E%3Cline x1='16' y1='17' x2='8' y2='17'/%3E%3C/svg%3E");
}

.pld-search--hero select {
	padding-left: 2.75rem;
	border-color: var(--pld-border);
}

body .pld-search--hero .button {
	width: 100%;
	color: #ffffff;
	background: var(--pld-navy);
	border-color: var(--pld-navy);
}

body .pld-search--hero .button:hover {
	background: var(--pld-navy-dark);
	border-color: var(--pld-navy-dark);
}

@media (min-width: 768px) {
	body .pld-search--hero .button {
		width: auto;
	}
}

/* Search: on the Find a Lawyer page and in the all-three-filters default */
.pld-search--inline,
.pld-search--default {
	margin-top: var(--pld-space-4);
}

@media (min-width: 768px) {
	.pld-search--n3 {
		grid-template-columns: repeat(3, 1fr) auto;
		align-items: end;
	}
}

.pld-search--inline .button,
.pld-search--default .button {
	width: 100%;
}

/* Sections */
.pld-section {
	padding: clamp(2.5rem, 6vw, 4.5rem) 0;
}

.pld-section--white {
	background: var(--pld-surface);
}

.pld-section--tint {
	background: var(--pld-navy-soft);
}

.pld-section h2 {
	margin: 0 0 var(--pld-space-2);
}

.pld-section__head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: var(--pld-space-4);
	margin-bottom: var(--pld-space-6);
}

.pld-section__sub,
body p.pld-section__sub {
	margin: 0;
	color: var(--pld-text-muted);
}

.pld-more {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: var(--pld-fs-sm);
	font-weight: 600;
}

.pld-more .pld-icon {
	width: 18px;
	height: 18px;
}

/* Round icon badge */
.pld-iconwrap {
	display: inline-flex;
	flex: none;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	color: var(--pld-navy);
	background: var(--pld-navy-soft);
	border-radius: 50%;
	transition: background-color 0.15s ease, color 0.15s ease;
}

.pld-iconwrap .pld-icon {
	width: 24px;
	height: 24px;
}

.pld-section--tint .pld-iconwrap,
.pld-hero .pld-iconwrap {
	background: var(--pld-surface);
}

/* Trust strip */
.pld-trust {
	background: var(--pld-surface);
	border-bottom: 1px solid var(--pld-border);
}

.pld-trust__list {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--pld-space-5);
	margin: 0 auto;
	padding-top: var(--pld-space-7);
	padding-bottom: var(--pld-space-7);
	list-style: none;
}

@media (min-width: 640px) {
	.pld-trust__list {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 1000px) {
	.pld-trust__list {
		grid-template-columns: repeat(4, 1fr);
	}
}

.pld-trust__list li {
	margin: 0;
	text-align: center;
}

.pld-trust h2 {
	margin: var(--pld-space-3) 0 var(--pld-space-1);
	font-size: var(--pld-fs-base);
}

.pld-trust p {
	margin: 0 auto;
	max-width: 16rem;
	font-size: var(--pld-fs-sm);
	color: var(--pld-text-muted);
}

/* Card grids and tiles */
.pld-cards {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--pld-space-5);
	margin: 0;
	padding: 0;
	list-style: none;
}

.pld-cards li {
	margin: 0;
}

@media (min-width: 768px) {
	.pld-cards--3 {
		grid-template-columns: repeat(3, 1fr);
	}

	.pld-cards--4 {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 1000px) {
	.pld-cards--4 {
		grid-template-columns: repeat(4, 1fr);
	}
}

body a.pld-tile {
	display: flex;
	align-items: flex-start;
	gap: var(--pld-space-4);
	height: 100%;
	padding: var(--pld-space-5);
	color: var(--pld-text);
	text-decoration: none;
	background: var(--pld-surface);
	border: 1px solid var(--pld-border);
	border-radius: var(--pld-radius-lg);
	box-shadow: var(--pld-shadow-sm);
	transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
}

body a.pld-tile:hover {
	color: var(--pld-text);
	border-color: #c3d0e0;
	box-shadow: var(--pld-shadow-md);
	transform: translateY(-2px);
}

body a.pld-tile:hover .pld-iconwrap {
	color: var(--pld-accent-dark);
	background: var(--pld-accent-soft);
}

body a.pld-tile--stack {
	flex-direction: column;
}

.pld-tile__body {
	display: block;
}

.pld-tile__title {
	display: block;
	font-size: var(--pld-fs-lg);
	font-weight: 700;
	line-height: 1.25;
	color: var(--pld-navy);
}

.pld-tile__text {
	display: block;
	margin-top: var(--pld-space-1);
	font-size: var(--pld-fs-sm);
	color: var(--pld-text-muted);
}

.pld-tile__arrow {
	align-self: center;
	margin-left: auto;
	color: var(--pld-accent);
}

.pld-tile__arrow .pld-icon {
	width: 20px;
	height: 20px;
}

/* How it works */
.pld-how {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--pld-space-6);
	align-items: start;
}

@media (min-width: 900px) {
	.pld-how {
		grid-template-columns: 1fr 2fr;
		gap: var(--pld-space-8);
	}
}

.pld-steps {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--pld-space-5);
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (min-width: 700px) {
	.pld-steps {
		grid-template-columns: repeat(3, 1fr);
		gap: var(--pld-space-6);
	}
}

.pld-steps li {
	position: relative;
	margin: 0;
}

.pld-steps__num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	font-weight: 700;
	color: #ffffff;
	background: var(--pld-navy);
	border-radius: 50%;
}

@media (min-width: 700px) {
	.pld-steps li:not(:last-child)::after {
		content: "";
		position: absolute;
		top: 19px;
		left: 52px;
		right: -12px;
		height: 2px;
		background: #b9cce4;
	}
}

.pld-steps h3 {
	margin: var(--pld-space-3) 0 var(--pld-space-1);
	font-size: var(--pld-fs-base);
}

.pld-steps p {
	margin: 0;
	font-size: var(--pld-fs-sm);
	color: var(--pld-text-muted);
}

/* Call to action for lawyers */
.pld-cta {
	position: relative;
	overflow: hidden;
	padding: clamp(2.5rem, 6vw, 4rem) 0 clamp(4rem, 9vw, 6rem);
	color: #ffffff;
	background:
		radial-gradient(circle at 90% 22%, rgba(180, 73, 45, 0.55) 0, rgba(180, 73, 45, 0) 18%),
		var(--pld-navy);
}

.pld-cta__art {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	width: 100%;
	height: clamp(50px, 9vw, 110px);
}

.pld-cta__inner {
	position: relative;
	z-index: 1;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--pld-space-5);
}

.pld-cta h2 {
	margin: 0 0 var(--pld-space-2);
	color: #ffffff;
}

.pld-cta p {
	margin: 0;
	color: #d3deec;
}

.pld-cta p.pld-eyebrow {
	margin-bottom: var(--pld-space-2);
}

.pld-cta .pld-cta__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--pld-space-3);
}

body .pld-btn--light,
body .pld-btn--light:visited {
	color: var(--pld-navy);
	background: #ffffff;
	border-color: #ffffff;
}

body .pld-btn--light:hover {
	color: var(--pld-navy);
	background: var(--pld-navy-soft);
	border-color: var(--pld-navy-soft);
}

body .pld-btn--ghost,
body .pld-btn--ghost:visited {
	color: #ffffff;
	background: transparent;
	border-color: rgba(255, 255, 255, 0.75);
}

body .pld-btn--ghost:hover {
	color: #ffffff;
	background: rgba(255, 255, 255, 0.14);
	border-color: #ffffff;
}

.pld-cta :focus-visible {
	outline-color: #ffffff;
}

/* ---- Directory list pages: banner, filter box, wide cards ---- */

/* Let the banner run edge to edge, like the Home page sections. */
body.pld-list-page .site-content {
	display: block;
	max-width: none;
	padding: 0;
	margin: 0;
}

body.pld-list-page .content-area {
	width: 100%;
}

body.pld-list-page .site-main,
body.pld-list-page .site-main > * {
	margin-top: 0;
}

.pld-banner {
	position: relative;
	overflow: hidden;
	background: linear-gradient(180deg, #f8fafd 0%, #e9f0f8 100%);
	border-bottom: 1px solid var(--pld-border);
}

/* City photo on the right, fading into the banner colour on the left. */
.pld-banner--photo {
	background:
		linear-gradient(90deg, #f3f7fb 0%, #f3f7fb 42%, rgba(243, 247, 251, 0.55) 62%, rgba(243, 247, 251, 0) 85%),
		var(--pld-banner-photo) right center / cover no-repeat,
		#e9f0f8;
}

/* On phones the text needs the whole width, so the photo is dropped. */
@media (max-width: 767px) {
	.pld-banner--photo {
		background: linear-gradient(180deg, #f8fafd 0%, #e9f0f8 100%);
	}
}

/* The rest of the intro, shown under the listings */
.pld-archive__more {
	margin-top: var(--pld-space-6);
	padding: var(--pld-space-5);
	background: var(--pld-surface);
	border: 1px solid var(--pld-border);
	border-radius: var(--pld-radius-lg);
}

.pld-archive__more p:last-child {
	margin-bottom: 0;
}

.pld-banner__inner {
	position: relative;
	max-width: var(--pld-container);
	margin: 0 auto;
	padding: var(--pld-space-5) var(--pld-space-5) var(--pld-space-6);
}

.pld-banner .entry-title {
	max-width: 22ch;
	margin: var(--pld-space-3) 0 var(--pld-space-3);
	font-size: clamp(1.75rem, 1.2rem + 2.2vw, 2.75rem);
}

.pld-banner__intro {
	max-width: 46rem;
	color: var(--pld-text);
}

.pld-banner__intro p {
	margin: 0 0 var(--pld-space-3);
}

.pld-banner__intro p:last-child {
	margin-bottom: 0;
}

/* The wide intro (3 paragraphs on city pages) stays readable over the photo. */
.pld-banner--photo .pld-banner__intro,
.pld-banner--photo .pld-banner__areas {
	max-width: 40rem;
}

.pld-banner__areas {
	margin-top: var(--pld-space-4);
}

/* Breadcrumb */
.pld-crumbs ol {
	display: flex;
	flex-wrap: wrap;
	gap: 0 var(--pld-space-2);
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: var(--pld-fs-sm);
	color: var(--pld-text-muted);
}

.pld-crumbs li {
	display: inline-flex;
	margin: 0;
}

.pld-crumbs li + li::before {
	content: "/";
	margin-right: var(--pld-space-2);
	color: var(--pld-border);
}

/* Split layout: filter box left, results right */
.pld-archive--split {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--pld-space-5);
	max-width: var(--pld-container);
	margin: 0 auto;
	padding: var(--pld-space-6) var(--pld-space-5);
}

@media (min-width: 900px) {
	.pld-archive--split {
		grid-template-columns: 270px minmax(0, 1fr);
		gap: var(--pld-space-6);
		align-items: start;
	}
}

.pld-filters {
	padding: var(--pld-space-5);
	background: var(--pld-surface);
	border: 1px solid var(--pld-border);
	border-radius: var(--pld-radius-lg);
	box-shadow: var(--pld-shadow-sm);
}

@media (min-width: 900px) {
	.pld-filters {
		position: sticky;
		top: var(--pld-space-5);
	}
}

.pld-filters .pld-filters__title {
	margin: 0 0 var(--pld-space-4);
	font-size: var(--pld-fs-h4);
}

.pld-search--sidebar {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--pld-space-4);
	margin: 0;
}

.pld-search--sidebar p {
	margin: 0;
}

.pld-search--sidebar .button {
	width: 100%;
}

.pld-filters__clear {
	margin: var(--pld-space-3) 0 0;
	text-align: center;
	font-size: var(--pld-fs-sm);
}

.pld-filters__note {
	margin-top: var(--pld-space-5);
	padding-top: var(--pld-space-4);
	border-top: 1px solid var(--pld-border);
	font-size: var(--pld-fs-sm);
	color: var(--pld-text-muted);
}

.pld-filters__note p {
	margin: 0 0 var(--pld-space-2);
}

.pld-filters__note p:last-child {
	margin-bottom: 0;
}

.pld-archive--split .pld-archive__count {
	margin: 0 0 var(--pld-space-4);
	font-weight: 600;
	color: var(--pld-text);
}

/* Wide cards: details on the left, button on the right */
.pld-listing-list--rows {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--pld-space-4);
}

.pld-listing-list--rows .pld-listing {
	display: grid;
	grid-template-columns: 1fr;
	align-content: start;
	padding: var(--pld-space-5);
}

.pld-listing-list--rows .pld-avatar {
	width: 56px;
	height: 56px;
	font-size: var(--pld-fs-base);
}

@media (min-width: 640px) {
	.pld-listing-list--rows .pld-listing {
		grid-template-columns: minmax(0, 1fr) auto;
		column-gap: var(--pld-space-5);
	}

	.pld-listing-list--rows .pld-listing > * {
		grid-column: 1;
	}

	.pld-listing-list--rows .pld-listing > .pld-listing__action {
		grid-column: 2;
		grid-row: 1 / span 6;
		align-self: start;
		margin: 0;
	}
}

.pld-listing-list--rows .pld-listing__title {
	font-size: var(--pld-fs-h3);
}

/* ---- Single lawyer profile ---- */
body.single-lawyer #page,
body.single-lawyer .site-content {
	display: block;
	max-width: none;
	padding: 0;
	margin: 0;
}

body.single-lawyer .content-area {
	width: 100%;
}

body.single-lawyer .site-main,
body.single-lawyer .site-main > * {
	margin-top: 0;
}

/* Dark banner: navy, with the city photo on the right when there is one. */
.pld-pbanner {
	color: #ffffff;
	background: var(--pld-navy);
}

.pld-pbanner--photo {
	background:
		linear-gradient(90deg, var(--pld-navy) 0%, var(--pld-navy) 40%, rgba(15, 43, 76, 0.75) 62%, rgba(15, 43, 76, 0.3) 100%),
		var(--pld-banner-photo) right center / cover no-repeat,
		var(--pld-navy);
}

.pld-pbanner__inner {
	max-width: var(--pld-container);
	margin: 0 auto;
	padding: var(--pld-space-5) var(--pld-space-5) var(--pld-space-6);
}

.pld-pbanner a {
	color: #ffffff;
}

.pld-pbanner__back {
	margin: 0 0 var(--pld-space-4);
	font-size: var(--pld-fs-sm);
}

.pld-pbanner__back a {
	display: inline-flex;
	align-items: center;
	gap: var(--pld-space-2);
	text-decoration: none;
}

.pld-pbanner__back a:hover {
	color: #ffffff;
	text-decoration: underline;
}

.pld-pbanner__back .pld-icon {
	width: 16px;
	height: 16px;
}

.pld-pbanner .entry-title {
	max-width: 24ch;
	margin: 0 0 var(--pld-space-2);
	color: #ffffff;
	font-size: clamp(1.75rem, 1.2rem + 2.2vw, 2.75rem);
}

.pld-pbanner__sub {
	margin: 0 0 var(--pld-space-4);
	font-size: var(--pld-fs-lg);
	color: #dbe6f3;
}

.pld-pbanner__tags {
	display: flex;
	flex-wrap: wrap;
	gap: var(--pld-space-2);
	margin: 0;
	padding: 0;
	list-style: none;
}

.pld-pbanner__tags li {
	margin: 0;
	padding: 0.2rem 0.85rem;
	font-size: var(--pld-fs-sm);
	font-weight: 600;
	color: #ffffff;
	background: rgba(255, 255, 255, 0.16);
	border: 1px solid rgba(255, 255, 255, 0.35);
	border-radius: var(--pld-radius-pill);
}

.pld-pbanner .pld-sponsored {
	color: #ffffff;
	background: var(--pld-accent);
	border-color: var(--pld-accent);
}

.pld-pbanner :focus-visible {
	outline-color: #ffffff;
}

/* Two columns: details left, contact card right. On phones the contact card comes first. */
.pld-profile {
	max-width: var(--pld-container);
	margin: 0 auto;
	padding: var(--pld-space-6) var(--pld-space-5) var(--pld-space-8);
}

.pld-profile__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--pld-space-5);
}

.pld-profile__side {
	order: -1;
	display: grid;
	gap: var(--pld-space-4);
	align-content: start;
}

.pld-profile__main {
	display: grid;
	gap: var(--pld-space-4);
	align-content: start;
	min-width: 0;
}

@media (min-width: 900px) {
	.pld-profile__grid {
		grid-template-columns: minmax(0, 1fr) 340px;
		gap: var(--pld-space-6);
		align-items: start;
	}

	.pld-profile__side {
		order: 0;
		position: sticky;
		top: var(--pld-space-5);
	}
}

.pld-profile__intro {
	display: flex;
	gap: var(--pld-space-5);
	align-items: flex-start;
}

.pld-avatar--xl {
	width: 88px;
	height: 88px;
	font-size: var(--pld-fs-h3);
}

.pld-profile__intro-text {
	min-width: 0;
}

.pld-profile .pld-profile__name {
	margin: 0 0 var(--pld-space-2);
	font-size: var(--pld-fs-h2);
}

.pld-profile__places,
.pld-profile__claimed {
	display: flex;
	align-items: center;
	gap: var(--pld-space-2);
	margin: 0 0 var(--pld-space-2);
	color: var(--pld-text-muted);
}

.pld-profile__claimed {
	color: var(--pld-success);
	font-weight: 600;
}

.pld-profile__places .pld-icon,
.pld-profile__claimed .pld-icon {
	width: 18px;
	height: 18px;
	flex: 0 0 auto;
}

.pld-profile__about {
	margin: var(--pld-space-3) 0 0;
}

.pld-profile .pld-profile__h {
	margin: 0 0 var(--pld-space-3);
	font-size: var(--pld-fs-h4);
}

.pld-profile__section .pld-profile__h:not(:first-child) {
	margin-top: var(--pld-space-5);
}

.pld-profile__section p:last-child {
	margin-bottom: 0;
}

.pld-checklist {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--pld-space-2) var(--pld-space-5);
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (min-width: 600px) {
	.pld-checklist {
		grid-template-columns: 1fr 1fr;
	}
}

.pld-checklist li {
	display: flex;
	align-items: center;
	gap: var(--pld-space-2);
	margin: 0;
}

.pld-checklist .pld-icon {
	width: 18px;
	height: 18px;
	flex: 0 0 auto;
	color: var(--pld-accent);
}

.pld-contactcard__actions {
	display: grid;
	gap: var(--pld-space-3);
	margin-bottom: var(--pld-space-5);
}

body .pld-btn--block {
	display: flex;
	width: 100%;
}

.pld-btn .pld-icon {
	width: 18px;
	height: 18px;
	flex: 0 0 auto;
}

.pld-detaillist {
	display: grid;
	gap: var(--pld-space-4);
	margin: 0;
	padding: 0;
	list-style: none;
}

.pld-detaillist li {
	display: flex;
	gap: var(--pld-space-3);
	margin: 0;
	overflow-wrap: anywhere;
}

.pld-detaillist__label {
	display: block;
	font-size: var(--pld-fs-xs);
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--pld-text-muted);
}

.pld-iconwrap--sm {
	flex: 0 0 auto;
	width: 36px;
	height: 36px;
}

.pld-iconwrap--sm .pld-icon {
	width: 18px;
	height: 18px;
}

.pld-claimcard {
	background: var(--pld-navy-soft);
	border-color: var(--pld-navy-soft);
	box-shadow: none;
}

.pld-claimcard p:last-child {
	margin-bottom: 0;
}

/* ---- Profile page: more colour and depth ---- */
body.single-lawyer {
	background: linear-gradient(180deg, #dfe9f6 0, #eef3fa 480px, #f5f7fa 100%);
}

.pld-pbanner {
	background:
		radial-gradient(circle at 88% 12%, rgba(212, 98, 62, 0.55) 0, rgba(212, 98, 62, 0) 34%),
		linear-gradient(135deg, #081a33 0%, #0f2b4c 45%, #17508f 100%);
}

.pld-pbanner--photo {
	background:
		linear-gradient(90deg, rgba(8, 26, 51, 0.97) 0%, rgba(15, 43, 76, 0.86) 42%, rgba(23, 80, 143, 0.35) 100%),
		var(--pld-banner-photo) right center / cover no-repeat,
		#0f2b4c;
	border-bottom: 5px solid var(--pld-accent);
}

.pld-pbanner__inner {
	padding-top: var(--pld-space-6);
	padding-bottom: var(--pld-space-7);
}

.pld-pbanner__badges {
	display: flex;
	flex-wrap: wrap;
	gap: var(--pld-space-2);
	margin: 0 0 var(--pld-space-3);
}

.pld-typebadge {
	display: inline-block;
	padding: 0.3rem 0.85rem;
	font-size: var(--pld-fs-xs);
	font-weight: 700;
	letter-spacing: 0.09em;
	text-transform: uppercase;
	color: #ffffff;
	background: var(--pld-accent);
	border-radius: var(--pld-radius-pill);
	box-shadow: 0 4px 12px rgba(180, 73, 45, 0.45);
}

.pld-pbanner .entry-title {
	font-size: clamp(2rem, 1.3rem + 2.8vw, 3.25rem);
	text-shadow: 0 2px 18px rgba(0, 0, 0, 0.25);
}

.pld-pbanner__tags li {
	background: rgba(255, 255, 255, 0.16);
	border-color: rgba(255, 255, 255, 0.5);
}

/* Cards: white, a terracotta top edge and a deeper soft shadow. */
.pld-profile .pld-card {
	border: 0;
	border-top: 4px solid var(--pld-accent);
	box-shadow: 0 10px 28px rgba(15, 43, 76, 0.12), 0 2px 6px rgba(15, 43, 76, 0.06);
}

.pld-profile .pld-profile__intro {
	border-top-color: var(--pld-navy);
}

.pld-profile .pld-source {
	border-top-color: #5b86b8;
}

.pld-profile .pld-contactcard {
	border-top: 4px solid var(--pld-navy);
	background: linear-gradient(180deg, #ffffff 0%, #f3f7fc 100%);
}

/* Section headings get a coloured bar. */
.pld-profile .pld-profile__h {
	display: flex;
	align-items: center;
	gap: var(--pld-space-3);
}

.pld-profile .pld-profile__h::before {
	content: "";
	flex: 0 0 auto;
	width: 5px;
	height: 1.15em;
	background: var(--pld-accent);
	border-radius: 3px;
}

/* Coloured icon circles. */
.pld-profile .pld-iconwrap {
	background: var(--pld-accent-soft);
	color: var(--pld-accent);
}

.pld-keyfacts {
	border: 0;
	border-left: 5px solid var(--pld-accent);
	box-shadow: 0 10px 28px rgba(15, 43, 76, 0.12), 0 2px 6px rgba(15, 43, 76, 0.06);
}

.pld-keyfacts li:nth-child(even) .pld-iconwrap {
	background: var(--pld-navy-soft);
	color: var(--pld-navy);
}

/* Buttons: terracotta for the main action, navy outline for the rest. */
.pld-contactcard .pld-btn--secondary,
.pld-contactcard .pld-btn--secondary:visited {
	color: #ffffff;
	background: var(--pld-accent);
	border-color: var(--pld-accent);
	box-shadow: 0 6px 16px rgba(180, 73, 45, 0.35);
}

.pld-contactcard .pld-btn--secondary:hover {
	background: var(--pld-accent-dark);
	border-color: var(--pld-accent-dark);
}

.pld-claimcard {
	background: linear-gradient(135deg, #fbece6 0%, #f4dccf 100%);
	border-top-color: var(--pld-accent-dark);
}

.pld-claimcard .pld-btn--outline {
	background: #ffffff;
}

.pld-profile .pld-pill {
	color: #ffffff;
	background: var(--pld-navy);
}

.pld-checklist li {
	font-weight: 600;
}

.pld-profile__more h2 {
	display: flex;
	align-items: center;
	gap: var(--pld-space-3);
}

.pld-profile__more h2::before {
	content: "";
	width: 6px;
	height: 1.1em;
	background: var(--pld-accent);
	border-radius: 3px;
}

/* Key facts row: only facts we actually have */
.pld-keyfacts {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
	gap: var(--pld-space-4);
	margin: 0;
	padding: var(--pld-space-4) var(--pld-space-5);
	list-style: none;
	background: var(--pld-surface);
	border: 1px solid var(--pld-border);
	border-radius: var(--pld-radius-lg);
}

.pld-keyfacts li {
	display: flex;
	gap: var(--pld-space-3);
	margin: 0;
	overflow-wrap: anywhere;
}

/* Offices */
.pld-officelist {
	display: grid;
	gap: var(--pld-space-3);
	margin: 0;
	padding: 0;
	list-style: none;
}

.pld-officelist li {
	display: flex;
	gap: var(--pld-space-3);
	align-items: flex-start;
	margin: 0;
}

.pld-officelist .pld-icon {
	width: 18px;
	height: 18px;
	flex: 0 0 auto;
	margin-top: 0.2rem;
	color: var(--pld-accent);
}

.pld-profile__more {
	margin-top: var(--pld-space-8);
}

.pld-profile__more h2 {
	margin: 0 0 var(--pld-space-4);
}

.pld-listing-list--three {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--pld-space-4);
}

@media (min-width: 768px) {
	.pld-listing-list--three {
		grid-template-columns: repeat(3, 1fr);
	}
}

/* Two city cards on Home, and a row of links to the other cities */
@media (min-width: 640px) {
	.pld-cards--2 {
		grid-template-columns: repeat(2, 1fr);
	}
}

.pld-section--tight {
	padding-top: 0;
	padding-bottom: var(--pld-space-6);
}

.pld-citychips {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--pld-space-2) var(--pld-space-3);
	margin: 0;
}

.pld-citychips__label {
	font-weight: 700;
	color: var(--pld-navy);
}

.pld-citychip,
.pld-citychip:visited {
	display: inline-block;
	padding: 0.4rem 1rem;
	font-size: var(--pld-fs-sm);
	font-weight: 600;
	color: var(--pld-navy);
	text-decoration: none;
	background: #ffffff;
	border: 1px solid var(--pld-border);
	border-radius: var(--pld-radius-pill);
}

.pld-citychip:hover {
	color: #ffffff;
	background: var(--pld-navy);
	border-color: var(--pld-navy);
}

/* Profile: services list, team, consultations */
.pf-servicelist {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--pld-space-2) var(--pld-space-5);
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (min-width: 700px) {
	.pf-servicelist {
		grid-template-columns: 1fr 1fr;
	}
}

.pf-servicelist li {
	display: flex;
	gap: var(--pld-space-2);
	margin: 0;
}

.pf-servicelist .pld-icon {
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
	margin-top: 0.2rem;
	color: var(--pld-accent);
}

.pf-consult,
.pf-bar {
	margin: var(--pld-space-3) 0 0;
	font-size: var(--pld-fs-sm);
}

/* "Lawyers nearby who also serve" group on city pages */
.pld-nearby {
	margin-top: var(--pld-space-7);
	padding-top: var(--pld-space-5);
	border-top: 2px dashed #cdd8e6;
}

.pld-nearby .pld-nearby__title {
	margin: 0 0 var(--pld-space-2);
	font-size: var(--pld-fs-h3);
}

.pld-nearby__sub {
	margin: 0 0 var(--pld-space-4);
	font-size: var(--pld-fs-sm);
	color: var(--pld-text-muted);
}

/* ---- Profile page, version 3 (classes start with pf-) ---- */
body.single-lawyer {
	background: linear-gradient(180deg, #eaf1fa 0, #f4f7fb 520px, #f7f9fc 100%);
}

.pf {
	--pf-serif: inherit;
	max-width: var(--pld-container);
	margin: 0 auto;
	padding: var(--pld-space-4) var(--pld-space-5) var(--pld-space-8);
}

.pf-crumbs ol {
	display: flex;
	flex-wrap: wrap;
	gap: 0 var(--pld-space-2);
	margin: 0 0 var(--pld-space-5);
	padding: 0;
	list-style: none;
	font-size: var(--pld-fs-sm);
	color: var(--pld-text-muted);
}

.pf-crumbs li {
	display: inline-flex;
	margin: 0;
}

.pf-crumbs li + li::before {
	content: ">";
	margin-right: var(--pld-space-2);
	color: #9aabc0;
}

.pf-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--pld-space-6);
}

@media (min-width: 960px) {
	.pf-grid {
		grid-template-columns: minmax(0, 1fr) 360px;
		align-items: start;
	}

	.pf-side {
		position: sticky;
		top: var(--pld-space-5);
	}
}

.pf-main {
	min-width: 0;
}

.pf-side {
	display: grid;
	gap: var(--pld-space-4);
}

/* Header block: logo card + title */
.pf-head {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--pld-space-5);
	margin-bottom: var(--pld-space-5);
}

@media (min-width: 700px) {
	.pf-head {
		grid-template-columns: 220px minmax(0, 1fr);
		align-items: start;
	}
}

.pf-logo {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 180px;
	padding: var(--pld-space-5);
	background: #ffffff;
	border-radius: var(--pld-radius-lg);
	box-shadow: 0 10px 30px rgba(15, 43, 76, 0.1), 0 2px 6px rgba(15, 43, 76, 0.05);
}

.pf .pf-logo .pld-avatar {
	width: 100%;
	height: 150px;
	padding: 0;
	background: transparent;
	border: 0;
	border-radius: 0;
	font-family: var(--pf-serif);
	font-size: 3rem;
	color: var(--pld-navy);
}

.pf .pf-logo .pld-avatar:not(.pld-avatar--logo) {
	width: 130px;
	height: 130px;
	background: var(--pld-navy-soft);
	border-radius: 50%;
}

.pf .pf-logo .pld-avatar--logo img {
	object-fit: contain;
}

.pf-badges {
	display: flex;
	flex-wrap: wrap;
	gap: var(--pld-space-2);
	margin: 0 0 var(--pld-space-3);
}

.pf-badge {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	padding: 0.25rem 0.8rem;
	font-size: var(--pld-fs-xs);
	font-weight: 700;
	color: var(--pld-accent-dark);
	background: var(--pld-accent-soft);
	border-radius: var(--pld-radius-pill);
}

.pf-badge--ok {
	color: var(--pld-success);
	background: #e3f4ea;
}

.pf-badge .pld-icon {
	width: 14px;
	height: 14px;
}

.pf .pf-title {
	margin: 0 0 var(--pld-space-2);
	font-family: var(--pf-serif);
	font-size: clamp(1.9rem, 1.3rem + 2.4vw, 2.75rem);
	letter-spacing: -0.01em;
	color: var(--pld-navy);
}

.pf-sub {
	margin: 0 0 var(--pld-space-4);
	font-size: var(--pld-fs-lg);
	color: var(--pld-text);
}

.pf-chips,
.pf-tags,
.pf-langs {
	display: flex;
	flex-wrap: wrap;
	gap: var(--pld-space-2);
	margin: 0;
	padding: 0;
	list-style: none;
}

.pf-chips {
	margin-bottom: var(--pld-space-4);
}

.pf-chips li,
.pf-tags li {
	margin: 0;
	padding: 0.35rem 0.9rem;
	font-size: var(--pld-fs-sm);
	color: var(--pld-text);
	background: #e8eef6;
	border-radius: var(--pld-radius-pill);
}

.pf-tags li a {
	color: inherit;
	text-decoration: none;
}

.pf-tags li:hover {
	background: var(--pld-accent-soft);
}

.pf-quicklinks {
	display: flex;
	flex-wrap: wrap;
	gap: var(--pld-space-2) 0;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: var(--pld-fs-sm);
}

.pf-quicklinks li {
	display: inline-flex;
	margin: 0;
	padding: 0 var(--pld-space-4);
	border-left: 1px solid #cdd8e6;
}

.pf-quicklinks li:first-child {
	padding-left: 0;
	border-left: 0;
}

.pf-quicklinks a,
.pf-quicklinks li {
	align-items: center;
	gap: var(--pld-space-2);
	color: var(--pld-text);
	text-decoration: none;
}

.pf-quicklinks a {
	display: inline-flex;
}

.pf-quicklinks a:hover {
	color: var(--pld-accent-dark);
}

.pf-quicklinks .pld-icon {
	width: 18px;
	height: 18px;
	color: var(--pld-navy);
}

/* Tab row: links that jump to the sections below */
.pf-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: var(--pld-space-1) var(--pld-space-5);
	margin-bottom: var(--pld-space-5);
	border-bottom: 1px solid #cdd8e6;
}

.pf-tabs a {
	padding: var(--pld-space-3) var(--pld-space-1);
	font-weight: 600;
	color: var(--pld-text-muted);
	text-decoration: none;
	border-bottom: 3px solid transparent;
	margin-bottom: -1px;
}

.pf-tabs a.is-first {
	color: var(--pld-navy);
	border-bottom-color: var(--pld-navy);
}

.pf-tabs a:hover {
	color: var(--pld-navy);
	border-bottom-color: var(--pld-accent);
}

/* Sections */
.pf-section {
	margin-bottom: var(--pld-space-5);
	padding: var(--pld-space-5);
	background: #ffffff;
	border-radius: var(--pld-radius-lg);
	box-shadow: 0 8px 24px rgba(15, 43, 76, 0.08), 0 1px 3px rgba(15, 43, 76, 0.05);
	scroll-margin-top: var(--pld-space-6);
}

.pf .pf-h {
	margin: 0 0 var(--pld-space-3);
	font-family: var(--pf-serif);
	font-size: var(--pld-fs-h3);
	color: var(--pld-navy);
}

.pf .pf-h--big {
	font-size: var(--pld-fs-h2);
}

.pf-about {
	margin: 0;
	max-width: 62ch;
}

.pf-section p:last-child {
	margin-bottom: 0;
}

.pf-langs li {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	margin: 0;
	padding: 0.35rem 0.9rem;
	font-size: var(--pld-fs-sm);
	font-weight: 600;
	color: #ffffff;
	background: var(--pld-navy);
	border-radius: var(--pld-radius-pill);
}

.pf-langs .pld-icon {
	width: 14px;
	height: 14px;
}

/* Dark "Get in touch" card */
.pf-contact {
	padding: var(--pld-space-5);
	color: #ffffff;
	background:
		linear-gradient(180deg, rgba(8, 26, 51, 0.93) 0%, rgba(11, 36, 66, 0.97) 100%),
		var(--pf-photo, none) center / cover no-repeat,
		var(--pld-navy);
	border-radius: var(--pld-radius-lg);
	box-shadow: 0 16px 40px rgba(8, 26, 51, 0.35);
}

.pf .pf-contact__title {
	margin: 0 0 var(--pld-space-2);
	font-family: var(--pf-serif);
	font-style: italic;
	font-size: var(--pld-fs-h2);
	color: #ffffff;
}

.pf-contact__lead {
	margin: 0 0 var(--pld-space-4);
	font-size: var(--pld-fs-sm);
	color: #d3deec;
}

.pf-callbtn,
.pf-mailbtn {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--pld-space-2);
	min-height: 52px;
	margin-bottom: var(--pld-space-3);
	padding: var(--pld-space-3) var(--pld-space-4);
	font-weight: 700;
	text-decoration: none;
	border-radius: var(--pld-radius-md);
}

.pf-callbtn,
.pf-callbtn:visited {
	color: #ffffff;
	background: var(--pld-accent);
	box-shadow: 0 8px 20px rgba(180, 73, 45, 0.45);
}

.pf-callbtn:hover {
	color: #ffffff;
	background: var(--pld-accent-dark);
}

.pf-mailbtn,
.pf-mailbtn:visited {
	color: #ffffff;
	border: 2px solid rgba(255, 255, 255, 0.6);
}

.pf-mailbtn:hover {
	color: #ffffff;
	background: rgba(255, 255, 255, 0.14);
}

.pf-callbtn .pld-icon,
.pf-mailbtn .pld-icon {
	width: 20px;
	height: 20px;
}

.pf-contact__list {
	display: grid;
	gap: var(--pld-space-4);
	margin: var(--pld-space-4) 0 0;
	padding: var(--pld-space-4) 0 0;
	list-style: none;
	border-top: 1px solid rgba(255, 255, 255, 0.2);
}

.pf-contact__list li {
	display: flex;
	gap: var(--pld-space-3);
	margin: 0;
	overflow-wrap: anywhere;
}

.pf-contact__list .pld-icon {
	flex: 0 0 auto;
	width: 22px;
	height: 22px;
	margin-top: 0.15rem;
	color: #ffffff;
}

.pf-contact a,
.pf-contact a:visited {
	color: #ffffff;
}

.pf-contact a .pld-icon {
	display: inline-block;
	width: 14px;
	height: 14px;
	margin: 0 0 0 0.25rem;
	vertical-align: -1px;
}

.pf-label {
	display: block;
	font-size: var(--pld-fs-xs);
	color: #b9c9de;
}

.pf-contact__note {
	margin: var(--pld-space-4) 0 0;
	font-size: var(--pld-fs-sm);
	color: #d3deec;
}

.pf-contact :focus-visible {
	outline-color: #ffffff;
}

/* Claim card */
.pf-claim {
	display: flex;
	gap: var(--pld-space-3);
	padding: var(--pld-space-5);
	background: linear-gradient(135deg, #fbf1ea 0%, #f6e2d6 100%);
	border-radius: var(--pld-radius-lg);
	box-shadow: 0 8px 24px rgba(15, 43, 76, 0.08);
}

.pf-claim__icon {
	flex: 0 0 auto;
	color: var(--pld-accent);
}

.pf-claim__icon .pld-icon {
	width: 30px;
	height: 30px;
}

.pf .pf-claim__title {
	margin: 0 0 var(--pld-space-2);
	font-family: var(--pf-serif);
	font-size: var(--pld-fs-h4);
	color: var(--pld-navy);
}

.pf-claim p {
	margin: 0 0 var(--pld-space-3);
	font-size: var(--pld-fs-sm);
}

.pf-claim p:last-child {
	margin-bottom: 0;
}

.pf-claim .pld-btn {
	background: #ffffff;
}

/* Quick facts */
.pf-quick {
	padding: var(--pld-space-5);
	background: #ffffff;
	border-radius: var(--pld-radius-lg);
	box-shadow: 0 8px 24px rgba(15, 43, 76, 0.08), 0 1px 3px rgba(15, 43, 76, 0.05);
}

.pf .pf-quick__title {
	display: flex;
	align-items: center;
	gap: var(--pld-space-3);
	margin: 0 0 var(--pld-space-4);
	font-family: var(--pf-serif);
	font-size: var(--pld-fs-h4);
	color: var(--pld-navy);
}

.pf-quick__title .pld-icon {
	width: 24px;
	height: 24px;
}

.pf-quick ul {
	display: grid;
	gap: var(--pld-space-4);
	margin: 0;
	padding: 0;
	list-style: none;
}

.pf-quick li {
	display: flex;
	gap: var(--pld-space-3);
	margin: 0;
}

.pf-quick li .pld-icon {
	flex: 0 0 auto;
	width: 22px;
	height: 22px;
	margin-top: 0.15rem;
	color: var(--pld-navy);
}

.pf-quick .pf-label {
	color: var(--pld-text-muted);
}

.pf-more {
	margin-top: var(--pld-space-8);
}

/* ---- Photos (credits: docs/image-credits.md and the footer) ---- */

/* Hero: the Lisbon photo with a white fade on the left so the text stays readable. */
.pld-hero {
	background:
		linear-gradient(90deg, rgba(255, 255, 255, 0.96) 0%, rgba(255, 255, 255, 0.86) 38%, rgba(255, 255, 255, 0) 72%),
		url("assets/img/hero/lisbon-rooftops-hero.jpg") center / cover no-repeat,
		#e9f0f8;
}

.pld-hero__art,
.pld-hero__town {
	display: none;
}

@media (max-width: 767px) {
	.pld-hero {
		background:
			linear-gradient(180deg, rgba(255, 255, 255, 0.94) 0%, rgba(255, 255, 255, 0.88) 55%, rgba(255, 255, 255, 0.55) 100%),
			url("assets/img/hero/lisbon-rooftops-hero.jpg") 70% center / cover no-repeat,
			#e9f0f8;
	}
}

/* City cards: a photo on top, the name and arrow below. */
.pld-citycard {
	display: block;
	height: 100%;
	overflow: hidden;
	color: inherit;
	text-decoration: none;
	background: var(--pld-surface);
	border: 1px solid var(--pld-border);
	border-radius: var(--pld-radius-lg);
	box-shadow: var(--pld-shadow-sm);
	transition: box-shadow 0.15s ease, transform 0.15s ease;
}

.pld-citycard:hover {
	color: inherit;
	box-shadow: var(--pld-shadow-md);
	transform: translateY(-2px);
}

.pld-citycard img {
	display: block;
	width: 100%;
	height: 180px;
	object-fit: cover;
}

.pld-citycard__body {
	display: flex;
	align-items: center;
	gap: var(--pld-space-3);
	padding: var(--pld-space-4);
}

/* Closing band: the coast photo on the right, fading into navy on the left. */
.pld-cta {
	background:
		linear-gradient(90deg, var(--pld-navy) 0%, var(--pld-navy) 38%, rgba(15, 43, 76, 0.7) 68%, rgba(15, 43, 76, 0.35) 100%),
		url("assets/img/banners/coast-cta.jpg") center / cover no-repeat,
		var(--pld-navy);
}

.pld-cta__art {
	display: none;
}

.pld-cta {
	padding-bottom: clamp(2.5rem, 6vw, 4rem);
}

/* Photo credit line in the footer */
.pld-footer__credits {
	max-width: var(--pld-container);
	margin: 0 auto;
	padding: 0 var(--pld-space-5) var(--pld-space-4);
	font-size: var(--pld-fs-xs);
	color: #b9c6d8;
}

.pld-footer__credits a {
	color: #ffffff;
}

@media (prefers-reduced-motion: reduce) {
	.pld-citycard {
		transition: none;
	}

	.pld-citycard:hover {
		transform: none;
	}
}

/* ---- Footer ---- */
body .site-footer {
	background: var(--pld-navy-dark);
}

.pld-footer {
	padding: clamp(2.5rem, 5vw, 4rem) var(--pld-space-5) var(--pld-space-5);
	color: #b9c6d8;
	background: var(--pld-navy-dark);
}

.pld-footer__inner {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--pld-space-6);
	max-width: var(--pld-container);
	margin: 0 auto;
}

@media (min-width: 640px) {
	.pld-footer__inner {
		grid-template-columns: repeat(2, 1fr);
	}

	.pld-footer__brand {
		grid-column: 1 / -1;
	}
}

@media (min-width: 960px) {
	.pld-footer__inner {
		grid-template-columns: 1.6fr repeat(4, 1fr);
	}

	.pld-footer__brand {
		grid-column: auto;
	}
}

.pld-footer p {
	margin: 0;
}

.pld-footer .pld-footer__name {
	margin-bottom: var(--pld-space-2);
	font-size: var(--pld-fs-lg);
	font-weight: 800;
	letter-spacing: -0.01em;
	color: #ffffff;
}

.pld-footer .pld-footer__title {
	margin: 0 0 var(--pld-space-3);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #ffffff;
}

.pld-footer ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.pld-footer li {
	margin: 0 0 var(--pld-space-2);
}

.pld-footer a {
	color: #ffffff;
	text-decoration: none;
}

.pld-footer a:hover {
	color: #ffffff;
	text-decoration: underline;
}

.pld-footer .pld-footer__legal {
	max-width: var(--pld-container);
	margin: var(--pld-space-6) auto 0;
	padding-top: var(--pld-space-4);
	font-size: var(--pld-fs-sm);
	border-top: 1px solid rgba(255, 255, 255, 0.15);
}

body .site-info {
	color: #b9c6d8;
	background: var(--pld-navy-dark);
	border-top: 1px solid rgba(255, 255, 255, 0.12);
	font-size: var(--pld-fs-sm);
}

body .site-info a {
	color: #ffffff;
}

body .site-footer :focus-visible {
	outline-color: #ffffff;
}

/* ---- Contact form ---- */
.pld-form-wrap {
	max-width: 36rem;
}

/* Spam trap: kept off screen so real visitors never see it. */
.pld-hp {
	position: absolute;
	left: -9999px;
	height: 0;
	overflow: hidden;
}

.pld-notice {
	padding: 0.75rem 1rem;
	border-radius: var(--pld-radius-sm);
	border-left: 4px solid var(--pld-navy);
	background: var(--pld-navy-soft);
}

.pld-notice.pld-ok {
	border-left-color: var(--pld-success);
}

.pld-notice.pld-error {
	border-left-color: var(--pld-error);
}

/* ---- Single lawyer page ---- */
.pld-lawyer .pld-header {
	margin-bottom: 1.5rem;
	padding-bottom: 1rem;
	border-bottom: 3px solid var(--pld-accent);
}

.pld-lawyer .pld-header .entry-title {
	margin: 0;
}

.pld-lawyer .pld-firm {
	margin: 0.5rem 0 0;
	color: var(--pld-text-muted);
	font-size: 1.1rem;
}

.pld-lawyer .pld-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.5rem;
}

@media (min-width: 768px) {
	.pld-lawyer .pld-grid {
		grid-template-columns: 3fr 2fr;
		gap: 2.5rem;
	}
}

.pld-lawyer .pld-heading {
	margin: 0 0 0.75rem;
	font-size: 1.15rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.pld-lawyer .pld-contact {
	align-self: start;
	padding: 1.25rem;
	background: var(--pld-bg);
	border: 1px solid var(--pld-border);
	border-left: 4px solid var(--pld-navy);
	border-radius: var(--pld-radius-md);
	overflow-wrap: anywhere;
}

.pld-lawyer .pld-facts {
	margin: 0;
}

.pld-lawyer .pld-facts dt {
	margin-top: 1rem;
	font-size: 0.85rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--pld-text-muted);
}

.pld-lawyer .pld-facts dt:first-child {
	margin-top: 0;
}

.pld-lawyer .pld-facts dd {
	margin: 0.2rem 0 0;
}

.pld-lawyer .pld-note {
	color: var(--pld-text-muted);
	font-style: italic;
}

.pld-lawyer .pld-source {
	margin-top: 2rem;
	padding-top: 1rem;
	border-top: 1px solid var(--pld-border);
	font-size: 0.875rem;
	color: var(--pld-text-muted);
}

.pld-lawyer .pld-source p {
	margin: 0;
}

/* ---- Profile v4: photo hero, stats, practice cards, photo mini cards ---- */
body.single-lawyer {
	overflow-x: clip;
}

.pf-hero {
	position: relative;
	width: 100vw;
	margin: calc(-1 * var(--pld-space-4)) 0 var(--pld-space-6) calc(50% - 50vw);
	background:
		linear-gradient(90deg, #eaf1fa 0%, rgba(234, 241, 250, 0.96) 42%, rgba(234, 241, 250, 0.1) 78%, rgba(234, 241, 250, 0) 100%),
		var(--pf-photo, none) center / cover no-repeat,
		#eaf1fa;
	border-bottom: 1px solid #d6e0ec;
}

.pf-hero__in {
	max-width: var(--pld-container);
	margin: 0 auto;
	padding: var(--pld-space-4) var(--pld-space-5) var(--pld-space-6);
}

.pf-hero .pf-head {
	margin-bottom: 0;
}

@media (max-width: 699px) {
	.pf-hero {
		background:
			linear-gradient(180deg, rgba(234, 241, 250, 0.97) 0%, rgba(234, 241, 250, 0.93) 100%),
			var(--pf-photo, none) center / cover no-repeat,
			#eaf1fa;
	}
}

/* Facts strip: only real numbers from the listing */
.pf-stats {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
	gap: var(--pld-space-3);
	margin: var(--pld-space-5) 0 0;
	padding: var(--pld-space-4);
	list-style: none;
	background: #eef4fb;
	border-radius: var(--pld-radius-md);
}

.pf-stats li {
	display: grid;
	justify-items: center;
	gap: 2px;
	margin: 0;
	text-align: center;
}

.pf-stats .pld-icon {
	width: 22px;
	height: 22px;
	color: var(--pld-navy);
}

.pf-stats strong {
	font-family: var(--pf-serif);
	font-size: var(--pld-fs-h3);
	color: var(--pld-navy);
	line-height: 1.2;
}

.pf-stats span {
	font-size: var(--pld-fs-sm);
	color: var(--pld-text-muted);
}

/* Practice area cards */
.pf-areacards {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
	gap: var(--pld-space-3);
	margin: 0;
	padding: 0;
	list-style: none;
}

.pf-areacards li {
	margin: 0;
}

.pf-areacard {
	display: grid;
	gap: var(--pld-space-2);
	align-content: start;
	height: 100%;
	padding: var(--pld-space-4);
	color: inherit;
	text-decoration: none;
	background: linear-gradient(160deg, #eaf2fd 0%, #fdf1e8 100%);
	border-radius: var(--pld-radius-md);
	transition: box-shadow 0.15s ease, transform 0.15s ease;
}

a.pf-areacard:hover {
	color: inherit;
	box-shadow: 0 8px 20px rgba(15, 43, 76, 0.12);
	transform: translateY(-2px);
}

.pf-areacard__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	background: #ffffff;
	border-radius: 50%;
	color: var(--pld-navy);
}

.pf-areacard__icon .pld-icon {
	width: 20px;
	height: 20px;
}

.pf-areacard__name {
	font-family: var(--pf-serif);
	font-size: var(--pld-fs-lg);
	font-weight: 700;
	color: var(--pld-navy);
}

.pf-areacard__sub {
	font-size: var(--pld-fs-sm);
	color: var(--pld-text-muted);
}

/* More lawyers: photo cards */
.pf-minis {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--pld-space-4);
}

@media (min-width: 760px) {
	.pf-minis {
		grid-template-columns: repeat(3, 1fr);
	}
}

.pf-mini {
	display: grid;
	grid-template-columns: 110px minmax(0, 1fr);
	gap: var(--pld-space-3);
	padding: var(--pld-space-3);
	background: #ffffff;
	border-radius: var(--pld-radius-lg);
	box-shadow: 0 8px 24px rgba(15, 43, 76, 0.08), 0 1px 3px rgba(15, 43, 76, 0.05);
}

.pf-mini__photo {
	display: block;
	min-height: 110px;
	overflow: hidden;
	background: #dfe8f3;
	border-radius: var(--pld-radius-md);
}

.pf-mini__photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.pf-mini__body {
	display: grid;
	gap: var(--pld-space-2);
	align-content: start;
	min-width: 0;
}

.pf .pf-mini__title {
	margin: 0;
	font-family: var(--pf-serif);
	font-size: var(--pld-fs-lg);
	line-height: 1.25;
}

.pf-mini__title a {
	color: var(--pld-navy);
	text-decoration: none;
}

.pf-mini__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.3rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.pf-mini__chips li {
	margin: 0;
	padding: 0.15rem 0.55rem;
	font-size: var(--pld-fs-xs);
	color: var(--pld-accent-dark, #8a3b21);
	background: #fbe9e1;
	border-radius: 999px;
}

.pf-mini__meta {
	margin: 0;
	font-size: var(--pld-fs-sm);
	color: var(--pld-text-muted);
}

.pf-mini .pld-btn {
	justify-self: start;
}
/* Extra text under list pages */
.pld-about {
	margin-top: var(--pld-space-6);
	padding: var(--pld-space-5);
	background: #ffffff;
	border: 1px solid var(--pld-border);
	border-radius: var(--pld-radius-lg);
}

.pld-about h2 {
	margin: 0 0 var(--pld-space-3);
	font-size: var(--pld-fs-h3);
	color: var(--pld-navy);
}

.pld-about h3 {
	margin: var(--pld-space-5) 0 var(--pld-space-2);
	font-size: var(--pld-fs-lg);
	color: var(--pld-navy);
}

.pld-about p {
	max-width: 70ch;
}

.pld-about__chips,
.pld-about__tips {
	margin: 0;
	padding: 0;
	list-style: none;
}

.pld-about__chips {
	display: flex;
	flex-wrap: wrap;
	gap: var(--pld-space-2);
}

.pld-about__chips li {
	margin: 0;
}

.pld-about__chips a,
.pld-about__chips li:not(:has(a)) {
	display: inline-block;
	padding: 0.3rem 0.8rem;
	font-size: var(--pld-fs-sm);
	font-weight: 600;
	color: var(--pld-navy);
	text-decoration: none;
	background: #eef4fb;
	border-radius: 999px;
}

.pld-about__chips a:hover {
	background: #dce8f6;
}

.pld-about__n {
	margin-left: 0.25rem;
	color: var(--pld-text-muted);
	font-weight: 400;
}

.pld-about__tips li {
	position: relative;
	margin: 0 0 var(--pld-space-2);
	padding-left: 1.4rem;
	max-width: 70ch;
}

.pld-about__tips li::before {
	content: "";
	position: absolute;
	left: 0.2rem;
	top: 0.6em;
	width: 0.5rem;
	height: 0.5rem;
	background: var(--pld-accent);
	border-radius: 50%;
}
/* Profile page: "More lawyers" photo cards */
.pf-minis {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--pld-space-4);
}

@media (min-width: 700px) {
	.pf-minis {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.pf-mini {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	background: #ffffff;
	border-radius: var(--pld-radius-lg);
	box-shadow: 0 8px 24px rgba(15, 43, 76, 0.08), 0 1px 3px rgba(15, 43, 76, 0.05);
}

.pf-mini__photo {
	display: block;
	aspect-ratio: 16 / 9;
	background: #dbe6f3;
	overflow: hidden;
}

.pf-mini__photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.pf-mini__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--pld-space-3);
	padding: var(--pld-space-4);
}

.pf .pf-mini__title {
	margin: 0;
	font-family: var(--pf-serif);
	font-size: var(--pld-fs-lg);
	line-height: 1.25;
}

.pf-mini__title a {
	color: var(--pld-navy);
	text-decoration: none;
}

.pf-mini__chips {
	display: flex;
	flex-wrap: wrap;
	gap: var(--pld-space-2);
	margin: 0;
	padding: 0;
	list-style: none;
}

.pf-mini__chips li {
	margin: 0;
	padding: 0.2rem 0.7rem;
	font-size: var(--pld-fs-xs);
	font-weight: 600;
	color: #8a3a1f;
	background: #fce6dd;
	border-radius: 999px;
}

.pf-mini__meta {
	margin: 0;
	font-size: var(--pld-fs-sm);
	color: var(--pld-text-muted);
}

.pf-mini__body .pld-btn {
	margin-top: auto;
}
/* Profile page: "More lawyers" cards (logo on top, details below) */
.pf-minis {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--pld-space-4);
}

@media (min-width: 700px) {
	.pf-minis {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.pf-mini {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	background: #ffffff;
	border-radius: var(--pld-radius-lg);
	box-shadow: 0 8px 24px rgba(15, 43, 76, 0.08), 0 1px 3px rgba(15, 43, 76, 0.05);
}

.pf-mini__photo {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 130px;
	padding: var(--pld-space-4);
	background: #f4f7fb;
	border-bottom: 1px solid var(--pld-border);
}

.pf .pf-mini__photo .pld-avatar {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	background: transparent;
	border: 0;
	border-radius: 0;
}

.pf .pf-mini__photo .pld-avatar:not(.pld-avatar--logo) {
	width: 72px;
	height: 72px;
	border-radius: 50%;
	background: #e3ecf6;
	font-size: 1.5rem;
	font-weight: 700;
	color: var(--pld-navy);
}

.pf .pf-mini__photo .pld-avatar img {
	display: block;
	width: auto;
	height: auto;
	max-width: 100%;
	max-height: 100px;
	object-fit: contain;
}

.pf-mini__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--pld-space-3);
	padding: var(--pld-space-4);
}

.pf .pf-mini__title {
	margin: 0;
	font-family: var(--pf-serif);
	font-size: var(--pld-fs-lg);
	line-height: 1.25;
}

.pf-mini__title a {
	color: var(--pld-navy);
	text-decoration: none;
}

.pf-mini__chips {
	display: flex;
	flex-wrap: wrap;
	gap: var(--pld-space-2);
	margin: 0;
	padding: 0;
	list-style: none;
}

.pf-mini__chips li {
	margin: 0;
	padding: 0.2rem 0.7rem;
	font-size: var(--pld-fs-xs);
	font-weight: 600;
	color: #8a3a1f;
	background: #fce6dd;
	border-radius: 999px;
}

.pf-mini__meta {
	margin: 0;
	font-size: var(--pld-fs-sm);
	color: var(--pld-text-muted);
}

.pf-mini__body .pld-btn {
	margin-top: auto;
}
/* ================= List pages, version 4 (city page design) ================= */

/* Banner: pill, big city name, stats strip */
body.pld-list-page .pld-banner {
	background:
		linear-gradient(90deg, #f3f7fb 0%, #f3f7fb 38%, rgba(243, 247, 251, 0.6) 58%, rgba(243, 247, 251, 0) 82%),
		var(--pld-banner-photo, none) right center / cover no-repeat,
		linear-gradient(180deg, #f8fafd 0%, #e3edf8 100%);
}

body.pld-list-page .pld-banner__inner {
	padding-top: var(--pld-space-4);
	padding-bottom: var(--pld-space-6);
}

.pld-banner__kicker {
	margin: var(--pld-space-4) 0 0;
}

.pld-banner__kicker span {
	display: inline-block;
	padding: 0.15rem 0.7rem;
	font-size: var(--pld-fs-xs);
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--pld-navy);
	background: rgba(255, 255, 255, 0.8);
	border: 1px solid #b8c7da;
	border-radius: 999px;
}

body.pld-list-page .pld-banner .entry-title.pld-banner__title {
	max-width: 26ch;
	margin: var(--pld-space-3) 0;
	font-family: inherit;
	line-height: 1.05;
	color: var(--pld-navy);
}

.pld-banner__pre {
	display: block;
	font-size: clamp(1.4rem, 1rem + 1.6vw, 2.2rem);
	font-weight: 500;
}

.pld-banner__big {
	display: block;
	font-size: clamp(2.8rem, 1.6rem + 4.6vw, 5rem);
	font-weight: 700;
}

.pld-banner__stats {
	display: flex;
	flex-wrap: wrap;
	gap: var(--pld-space-3) var(--pld-space-5);
	margin: var(--pld-space-5) 0 0;
	padding: 0;
	list-style: none;
}

.pld-banner__stats li {
	display: flex;
	align-items: center;
	gap: var(--pld-space-3);
	margin: 0;
	font-size: var(--pld-fs-sm);
	color: var(--pld-text-muted);
}

.pld-banner__stats li + li {
	padding-left: var(--pld-space-5);
	border-left: 1px solid #b8c7da;
}

.pld-banner__stats .pld-icon {
	width: 38px;
	height: 38px;
	padding: 9px;
	color: var(--pld-navy);
	background: #ffffff;
	border: 1px solid #cdd8e6;
	border-radius: 50%;
}

.pld-banner__stats strong {
	display: block;
	font-size: var(--pld-fs-lg);
	line-height: 1.1;
	color: var(--pld-navy);
}

@media (max-width: 639px) {
	.pld-banner__stats li + li {
		padding-left: 0;
		border-left: 0;
	}
}

/* Two columns: results on the left, cards on the right */
.pld-archive--split {
	grid-template-columns: 1fr;
}

@media (min-width: 960px) {
	.pld-archive--split {
		grid-template-columns: minmax(0, 1fr) 340px;
		gap: var(--pld-space-6);
		align-items: start;
	}
}

/* Filter bar above the results */
.pld-toolbar {
	margin-bottom: var(--pld-space-5);
	padding: var(--pld-space-4);
	background: #ffffff;
	border: 1px solid var(--pld-border);
	border-radius: var(--pld-radius-lg);
	box-shadow: 0 8px 24px rgba(15, 43, 76, 0.07);
}

.pld-search--bar {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: var(--pld-space-3);
	align-items: end;
	margin: 0;
}

.pld-search--bar p {
	margin: 0;
}

.pld-search--bar label {
	display: block;
	margin-bottom: 0.25rem;
	font-size: var(--pld-fs-xs);
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--pld-text-muted);
}

.pld-search--bar select {
	width: 100%;
}

.pld-search--bar .button {
	width: 100%;
}

.pld-toolbar__clear {
	margin: var(--pld-space-3) 0 0;
	font-size: var(--pld-fs-sm);
	text-align: right;
}

.pld-archive--split .pld-archive__count {
	font-family: inherit;
	font-size: var(--pld-fs-h3);
	font-weight: 700;
	color: var(--pld-navy);
}

/* Listing rows: big logo cell | details | button */
.pld-listing {
	display: grid;
	grid-template-columns: 1fr;
	padding: 0;
	overflow: hidden;
}

.pld-listing .pld-listing__logo {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 96px;
	padding: var(--pld-space-4);
	background: #ffffff;
	border-bottom: 1px solid var(--pld-border);
	text-decoration: none;
}

.pld-listing .pld-listing__logo .pld-avatar {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 76px;
	background: transparent;
	border: 0;
	border-radius: 0;
}

.pld-listing .pld-listing__logo .pld-avatar:not(.pld-avatar--logo) {
	width: 68px;
	height: 68px;
	font-size: 1.4rem;
	font-weight: 700;
	color: var(--pld-navy);
	background: #e6eef8;
	border-radius: 50%;
}

.pld-listing .pld-listing__logo .pld-avatar img {
	display: block;
	width: auto;
	height: auto;
	max-width: 100%;
	max-height: 76px;
	object-fit: contain;
}

.pld-listing .pld-listing__body {
	min-width: 0;
	padding: var(--pld-space-4) var(--pld-space-5) var(--pld-space-2);
}

.pld-listing .pld-listing__body > :last-child {
	margin-bottom: 0;
}

.pld-listing .pld-listing__title {
	margin: 0 0 var(--pld-space-1);
	font-size: var(--pld-fs-h4);
}

.pld-listing .pld-listing__action {
	margin: 0;
	padding: 0 var(--pld-space-5) var(--pld-space-4);
}

@media (min-width: 640px) {
	.pld-listing-list--rows .pld-listing {
		grid-template-columns: 210px minmax(0, 1fr) auto;
		align-items: stretch;
		padding: 0;
		column-gap: 0;
	}

	.pld-listing-list--rows .pld-listing > .pld-listing__logo {
		grid-column: 1;
		grid-row: 1;
		border-right: 1px solid var(--pld-border);
		border-bottom: 0;
	}

	.pld-listing-list--rows .pld-listing > .pld-listing__body {
		grid-column: 2;
		grid-row: 1;
		padding: var(--pld-space-4) var(--pld-space-4) var(--pld-space-4) var(--pld-space-5);
	}

	.pld-listing-list--rows .pld-listing > .pld-listing__action {
		grid-column: 3;
		grid-row: 1;
		align-self: center;
		padding: 0 var(--pld-space-5) 0 0;
	}
}

.pld-listing-list--rows .pld-listing__title {
	font-size: var(--pld-fs-h4);
}

/* Right-hand cards */
.pld-side {
	display: grid;
	gap: var(--pld-space-4);
}

@media (min-width: 960px) {
	.pld-side {
		position: sticky;
		top: var(--pld-space-5);
	}
}

.pld-side__city,
.pld-side__promo {
	padding: var(--pld-space-5);
	color: #ffffff;
	border-radius: var(--pld-radius-lg);
	background:
		linear-gradient(180deg, rgba(10, 30, 56, 0.78) 0%, rgba(10, 30, 56, 0.93) 100%),
		var(--pld-side-photo, none) center / cover no-repeat,
		var(--pld-navy);
	box-shadow: 0 12px 30px rgba(15, 43, 76, 0.18);
}

.pld-side__pin {
	display: inline-flex;
	width: 46px;
	height: 46px;
	align-items: center;
	justify-content: center;
	border: 1px solid rgba(255, 255, 255, 0.5);
	border-radius: 50%;
}

.pld-side__pin .pld-icon {
	width: 22px;
	height: 22px;
	color: #ffffff;
}

.pld-side .pld-side__name {
	margin: var(--pld-space-3) 0 0;
	font-family: inherit;
	font-size: var(--pld-fs-h2);
	color: #ffffff;
}

.pld-side__sub {
	margin: 0 0 var(--pld-space-4);
	color: #c9d6e6;
}

.pld-side__facts {
	margin: 0;
	padding: 0;
	list-style: none;
}

.pld-side__facts li {
	display: flex;
	gap: var(--pld-space-3);
	align-items: flex-start;
	margin: 0 0 var(--pld-space-3);
	font-size: var(--pld-fs-sm);
	color: #ffffff;
}

.pld-side__facts .pld-icon {
	flex: none;
	width: 36px;
	height: 36px;
	padding: 8px;
	color: #ffffff;
	border: 1px solid rgba(255, 255, 255, 0.4);
	border-radius: 50%;
}

.pld-side__facts strong {
	display: block;
	margin-bottom: 0.1rem;
	font-size: var(--pld-fs-sm);
	color: #ffffff;
}

.pld-side__help {
	padding: var(--pld-space-5);
	background: linear-gradient(135deg, #fff6f0 0%, #fde9de 100%);
	border: 1px solid #f6d9c8;
	border-radius: var(--pld-radius-lg);
}

.pld-side__icon .pld-icon {
	width: 34px;
	height: 34px;
	color: var(--pld-accent);
}

.pld-side .pld-side__title {
	margin: var(--pld-space-2) 0 var(--pld-space-2);
	font-family: inherit;
	font-size: var(--pld-fs-h4);
	color: var(--pld-navy);
}

.pld-side__promo .pld-side__title {
	color: #ffffff;
	font-size: var(--pld-fs-h3);
}

.pld-side__help p,
.pld-side__promo p {
	margin: 0 0 var(--pld-space-3);
	font-size: var(--pld-fs-sm);
}

.pld-side__help p:last-child,
.pld-side__promo p:last-child {
	margin-bottom: 0;
}

.pld-side__promo p {
	color: #e1eaf5;
}

.pld-btn--dark {
	color: #ffffff;
	background: var(--pld-navy);
	border: 2px solid var(--pld-navy);
	text-align: center;
}

.pld-btn--dark:hover {
	color: #ffffff;
	background: var(--pld-navy-dark);
}

.pld-btn--light {
	color: var(--pld-navy);
	background: #ffffff;
	border: 2px solid #ffffff;
}

.pld-btn--light:hover {
	color: var(--pld-navy);
	background: #eef4fb;
}
/* Filter bar: four dropdowns in one row, button and clear link below */
.pld-toolbar {
	position: relative;
}

@media (min-width: 700px) {
	.pld-search--bar {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.pld-search--bar .pld-search__submit {
		grid-column: 1 / 3;
	}

	.pld-toolbar__clear {
		position: absolute;
		right: var(--pld-space-4);
		bottom: 1.75rem;
		margin: 0;
	}
}

.pld-search--bar select {
	padding-left: 0.65rem;
	padding-right: 1.8rem;
	font-size: var(--pld-fs-sm);
	text-overflow: ellipsis;
}
/* Banner readability: no photo behind the text on phones, a light panel behind the stats */
@media (max-width: 767px) {
	body.pld-list-page .pld-banner {
		background: linear-gradient(180deg, #f8fafd 0%, #e3edf8 100%);
	}
}

.pld-banner__stats {
	width: fit-content;
	max-width: 100%;
	padding: var(--pld-space-3) var(--pld-space-4);
	background: rgba(255, 255, 255, 0.9);
	border: 1px solid #d5e0ee;
	border-radius: var(--pld-radius-lg);
	box-shadow: 0 6px 18px rgba(15, 43, 76, 0.08);
}
/* ---- Text block under the listings ---- */
.pld-end {
	display: grid;
	gap: var(--pld-space-4);
	margin-top: var(--pld-space-7, 3rem);
}

.pld-end__card {
	padding: var(--pld-space-5);
	background: #ffffff;
	border: 1px solid var(--pld-border);
	border-radius: var(--pld-radius-lg);
	box-shadow: 0 8px 24px rgba(15, 43, 76, 0.06);
}

.pld-end h2,
.pld-end h3 {
	font-family: inherit;
	color: var(--pld-navy);
}

.pld-end__icon {
	display: inline-flex;
	flex: none;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	color: var(--pld-navy);
	background: #e6eef8;
	border-radius: 12px;
}

.pld-end__icon .pld-icon {
	width: 22px;
	height: 22px;
}

.pld-end__icon--accent {
	color: var(--pld-accent);
	background: #fde9de;
}

.pld-end__intro {
	display: flex;
	gap: var(--pld-space-4);
	align-items: flex-start;
	border-left: 5px solid var(--pld-accent);
}

.pld-end__intro h2 {
	margin: 0 0 var(--pld-space-2);
	font-size: var(--pld-fs-h3);
}

.pld-end__intro p {
	max-width: 68ch;
	margin: 0 0 var(--pld-space-3);
}

.pld-end__more {
	padding-top: var(--pld-space-3);
	border-top: 1px solid var(--pld-border);
}

.pld-end__more p:last-child {
	margin-bottom: 0;
}

.pld-end__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--pld-space-4);
}

@media (min-width: 760px) {
	.pld-end__grid:not(.pld-end__grid--one) {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		align-items: start;
	}
}

.pld-end .pld-end__h {
	display: flex;
	gap: var(--pld-space-3);
	align-items: center;
	margin: 0 0 var(--pld-space-3);
	font-size: var(--pld-fs-h4);
}

.pld-end__note {
	margin: 0 0 var(--pld-space-3);
	font-size: var(--pld-fs-sm);
	color: var(--pld-text-muted);
}

.pld-end__browse h3 {
	margin: var(--pld-space-4) 0 var(--pld-space-2);
	font-size: var(--pld-fs-base);
}

.pld-end__chips {
	display: flex;
	flex-wrap: wrap;
	gap: var(--pld-space-2);
	margin: 0;
	padding: 0;
	list-style: none;
}

.pld-end__chips li {
	margin: 0;
}

.pld-end__chips a,
.pld-end__chips li:not(:has(a)) {
	display: inline-flex;
	gap: 0.4rem;
	align-items: center;
	padding: 0.3rem 0.8rem;
	font-size: var(--pld-fs-sm);
	font-weight: 600;
	color: var(--pld-navy);
	text-decoration: none;
	background: #eef4fb;
	border-radius: 999px;
}

.pld-end__chips a:hover {
	background: #dce8f6;
}

.pld-end__chips span {
	font-weight: 400;
	color: var(--pld-text-muted);
}

.pld-end__tips ol {
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: tip;
}

.pld-end__tips li {
	position: relative;
	margin: 0 0 var(--pld-space-3);
	padding-left: 2.6rem;
	counter-increment: tip;
}

.pld-end__tips li:last-child {
	margin-bottom: 0;
}

.pld-end__tips li::before {
	content: counter(tip);
	position: absolute;
	left: 0;
	top: -0.1rem;
	display: flex;
	width: 1.9rem;
	height: 1.9rem;
	align-items: center;
	justify-content: center;
	font-size: var(--pld-fs-sm);
	font-weight: 700;
	color: #ffffff;
	background: var(--pld-accent);
	border-radius: 50%;
}

.pld-end__how {
	display: flex;
	flex-wrap: wrap;
	gap: var(--pld-space-4) var(--pld-space-5);
	align-items: center;
	justify-content: space-between;
	padding: var(--pld-space-5);
	color: #ffffff;
	background: linear-gradient(135deg, var(--pld-navy) 0%, #1c3f6e 100%);
	border-radius: var(--pld-radius-lg);
}

.pld-end__how > div {
	flex: 1 1 22rem;
}

.pld-end .pld-end__how h2 {
	margin: 0 0 var(--pld-space-2);
	font-size: var(--pld-fs-h3);
	color: #ffffff;
}

.pld-end__how p {
	margin: 0;
	color: #dbe6f3;
}

.pld-end__links {
	display: flex;
	flex-wrap: wrap;
	gap: var(--pld-space-3);
}

.pld-btn--ghost {
	color: #ffffff;
	background: transparent;
	border: 2px solid rgba(255, 255, 255, 0.7);
}

.pld-btn--ghost:hover {
	color: var(--pld-navy);
	background: #ffffff;
}
/* Page numbers */
body.pld-list-page .pagination {
	margin: var(--pld-space-5) 0 0;
}

body.pld-list-page .pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: var(--pld-space-2);
	align-items: center;
}

body.pld-list-page .pagination .page-numbers {
	display: inline-flex;
	min-width: 2.5rem;
	height: 2.5rem;
	padding: 0 0.8rem;
	align-items: center;
	justify-content: center;
	font-weight: 600;
	color: var(--pld-navy);
	text-decoration: none;
	background: #ffffff;
	border: 1px solid var(--pld-border);
	border-radius: 999px;
}

body.pld-list-page .pagination a.page-numbers:hover {
	background: #eef4fb;
}

body.pld-list-page .pagination .page-numbers.current {
	color: #ffffff;
	background: var(--pld-navy);
	border-color: var(--pld-navy);
}

body.pld-list-page .pagination .page-numbers.dots {
	background: transparent;
	border-color: transparent;
}
/* Page numbers on every list page (also Find a Lawyer) */
.pld-archive .nav-links {
	margin: var(--pld-space-6) 0 0;
	display: flex;
	flex-wrap: wrap;
	gap: var(--pld-space-2);
	align-items: center;
	justify-content: center;
}

.pld-archive .nav-links .page-numbers {
	display: inline-flex;
	min-width: 2.75rem;
	height: 2.75rem;
	padding: 0 1rem;
	align-items: center;
	justify-content: center;
	font-weight: 600;
	color: var(--pld-navy);
	text-decoration: none;
	background: #ffffff;
	border: 1px solid #cdd8e6;
	border-radius: 999px;
	box-shadow: 0 2px 6px rgba(15, 43, 76, 0.06);
	transition: background-color 0.15s ease, color 0.15s ease;
}

.pld-archive .nav-links a.page-numbers:hover {
	color: #ffffff;
	background: var(--pld-navy);
	border-color: var(--pld-navy);
}

.pld-archive .nav-links .page-numbers.current {
	color: #ffffff;
	background: var(--pld-accent);
	border-color: var(--pld-accent);
	box-shadow: 0 4px 10px rgba(184, 75, 42, 0.3);
}

.pld-archive .nav-links .page-numbers.dots {
	min-width: 1.5rem;
	padding: 0;
	background: transparent;
	border-color: transparent;
	box-shadow: none;
}

.pld-archive .nav-links .prev::before {
	content: "\2190";
	margin-right: 0.45rem;
}

.pld-archive .nav-links .next::after {
	content: "\2192";
	margin-left: 0.45rem;
}
/* ================= Profile hero v5: clean blue banner with azulejo pattern ================= */
.pf-hero {
	background:
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='72' height='72' viewBox='0 0 72 72'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.06' stroke-width='1.5'%3E%3Crect x='6' y='6' width='60' height='60' rx='2'/%3E%3Cpath d='M36 6 66 36 36 66 6 36Z'/%3E%3Ccircle cx='36' cy='36' r='11'/%3E%3Cpath d='M36 25v22M25 36h22'/%3E%3C/g%3E%3C/svg%3E") center / 72px 72px,
		linear-gradient(120deg, #0b2a52 0%, #123f7a 55%, #1b5a9a 100%);
	border-bottom: 0;
	color: #ffffff;
}

.pf-hero::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 6px;
	background: linear-gradient(90deg, #046a38 0 40%, #da291c 40% 100%);
}

.pf-hero__in {
	padding-top: var(--pld-space-4);
	padding-bottom: calc(var(--pld-space-6) + 6px);
}

.pf-hero .pf-crumbs ol,
.pf-hero .pf-crumbs li,
.pf-hero .pf-crumbs li + li::before {
	color: #bcd0e8;
}

.pf-hero .pf-crumbs a {
	color: #ffffff;
	text-decoration-color: rgba(255, 255, 255, 0.45);
}

.pf-hero .pf-logo {
	background: #ffffff;
	box-shadow: 0 16px 40px rgba(3, 18, 40, 0.35);
	border: 4px solid rgba(255, 255, 255, 0.9);
}

.pf .pf-hero .pf-title {
	color: #ffffff;
}

.pf-hero .pf-sub {
	color: #d6e4f5;
}

.pf-hero .pf-badge {
	color: #4a3200;
	background: #f6cf62;
}

.pf-hero .pf-badge--ok {
	color: #0d4f2a;
	background: #b9ecd0;
}

.pf-hero .pf-chips li {
	color: #ffffff;
	background: rgba(255, 255, 255, 0.14);
	border: 1px solid rgba(255, 255, 255, 0.28);
}

/* Contact links become buttons */
.pf-hero .pf-quicklinks {
	gap: var(--pld-space-3);
	align-items: center;
}

.pf-hero .pf-quicklinks li,
.pf-hero .pf-quicklinks li:first-child {
	padding: 0;
	border: 0;
	color: #d6e4f5;
}

.pf-hero .pf-quicklinks .pld-icon {
	color: currentColor;
}

.pf-hero .pf-quicklinks a {
	padding: 0.5rem 1.1rem;
	font-weight: 600;
	color: #ffffff;
	background: rgba(255, 255, 255, 0.12);
	border: 1.5px solid rgba(255, 255, 255, 0.55);
	border-radius: 999px;
	transition: background-color 0.15s ease, color 0.15s ease;
}

.pf-hero .pf-quicklinks a:hover {
	color: #0b2a52;
	background: #ffffff;
}

.pf-hero .pf-quicklinks li:has(a[href^="tel"]) a {
	background: var(--pld-accent);
	border-color: var(--pld-accent);
}

.pf-hero .pf-quicklinks li:has(a[href^="tel"]) a:hover {
	color: #ffffff;
	background: var(--pld-accent-dark);
	border-color: var(--pld-accent-dark);
}

@media (max-width: 699px) {
	.pf-hero {
		background:
			url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='72' height='72' viewBox='0 0 72 72'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.06' stroke-width='1.5'%3E%3Crect x='6' y='6' width='60' height='60' rx='2'/%3E%3Cpath d='M36 6 66 36 36 66 6 36Z'/%3E%3Ccircle cx='36' cy='36' r='11'/%3E%3Cpath d='M36 25v22M25 36h22'/%3E%3C/g%3E%3C/svg%3E") center / 72px 72px,
			linear-gradient(160deg, #0b2a52 0%, #123f7a 100%);
	}
}

/* Section headings carry a small flag-colour bar */
.pf .pf-h {
	display: flex;
	align-items: center;
	gap: 0.6rem;
}

.pf .pf-h::before {
	content: "";
	flex: none;
	width: 6px;
	height: 1.15em;
	border-radius: 3px;
	background: linear-gradient(180deg, #046a38 0 50%, #da291c 50% 100%);
}

/* Colourful facts strip */
.pf-stats {
	background: linear-gradient(135deg, #eaf3fd 0%, #fdf1ea 100%);
	border: 1px solid #dbe6f2;
}

.pf-stats li:nth-child(4n+1) .pld-icon { color: #123f7a; }
.pf-stats li:nth-child(4n+2) .pld-icon { color: #046a38; }
.pf-stats li:nth-child(4n+3) .pld-icon { color: #da291c; }
.pf-stats li:nth-child(4n+4) .pld-icon { color: #b8860b; }

.pf-section {
	overflow: hidden;
	background: linear-gradient(90deg, #123f7a, #1b5a9a 60%, #f6cf62) top left / 100% 3px no-repeat, #ffffff;
}
/* ================= Colour system: one colour per practice area ================= */
.area-golden-visa          { --ac: #b8860b; --acs: #fbf0cf; --acd: #7a5600; }
.area-d7-visa              { --ac: #1f7a4d; --acs: #dcf2e5; --acd: #14573a; }
.area-digital-nomad-visa   { --ac: #0e7c86; --acs: #d5f0f2; --acd: #0a5a62; }
.area-work-visa            { --ac: #1d5fa8; --acs: #dbe8f8; --acd: #14457a; }
.area-student-visa         { --ac: #6b46c1; --acs: #ebe3f9; --acd: #4b2e8e; }
.area-family-reunification { --ac: #c2306b; --acs: #fbe0ec; --acd: #8f1f4e; }
.area-business-and-startup { --ac: #c25a14; --acs: #fde5d3; --acd: #8a3d0b; }
.area-citizenship          { --ac: #b3261e; --acs: #fbdedb; --acd: #861a14; }

/* chips on listing cards */
.pld-tag[class*="area-"] {
	color: var(--acd);
	background: var(--acs);
	border: 1px solid color-mix(in srgb, var(--ac) 25%, transparent);
}

/* chips in the profile hero: white pill with a coloured dot */
.pf-hero .pf-chips li[class*="area-"] {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
}

.pf-hero .pf-chips li[class*="area-"]::before {
	content: "";
	width: 0.55rem;
	height: 0.55rem;
	background: var(--acs);
	border: 2px solid var(--ac);
	border-radius: 50%;
}

/* practice area cards on the profile */
.pf-areacards li[class*="area-"] .pf-areacard {
	background: linear-gradient(145deg, var(--acs) 0%, #ffffff 120%);
	border-top: 4px solid var(--ac);
}

.pf-areacards li[class*="area-"] .pf-areacard__icon {
	color: #ffffff;
	background: var(--ac);
}

.pf .pf-areacards li[class*="area-"] .pf-areacard__name {
	color: var(--acd);
}

/* ================= Profile: coloured fact tiles ================= */
.pf-stats {
	grid-template-columns: repeat(auto-fit, minmax(135px, 1fr));
	background: transparent;
	border: 0;
	padding: 0;
	gap: var(--pld-space-3);
}

.pf-stats li {
	position: relative;
	padding: var(--pld-space-4) var(--pld-space-3);
	text-align: center;
	background: var(--tile-soft, #eef4fb);
	border: 1px solid color-mix(in srgb, var(--tile, #123f7a) 22%, transparent);
	border-radius: var(--pld-radius-md);
}

.pf-stat--blue   { --tile: #1d5fa8; --tile-soft: #e3eefb; }
.pf-stat--green  { --tile: #1f7a4d; --tile-soft: #e1f4e9; }
.pf-stat--red    { --tile: #b3261e; --tile-soft: #fce6e3; }
.pf-stat--gold   { --tile: #b8860b; --tile-soft: #fcf3d6; }
.pf-stat--teal   { --tile: #0e7c86; --tile-soft: #daf2f4; }
.pf-stat--purple { --tile: #6b46c1; --tile-soft: #ede6fa; }
.pf-stat--orange { --tile: #c25a14; --tile-soft: #fde8d8; }

.pf-stats .pf-stat__icon {
	display: inline-flex;
	width: 38px;
	height: 38px;
	margin: 0 auto 2px;
	align-items: center;
	justify-content: center;
	color: #ffffff;
	background: var(--tile);
	border-radius: 50%;
}

.pf-stats .pf-stat__icon .pld-icon {
	width: 20px;
	height: 20px;
	color: #ffffff;
}

.pf-stats strong {
	font-family: var(--pf-serif);
	font-size: 1.6rem;
	line-height: 1.1;
	color: var(--tile);
}

.pf-stats .pf-stat__label {
	font-size: var(--pld-fs-sm);
	font-weight: 600;
	color: var(--pld-text);
}

.pf-stats em {
	font-size: var(--pld-fs-xs);
	font-style: normal;
	color: var(--pld-text-muted);
}

/* ================= Profile: where they work ================= */
.pf-cov__label {
	margin: var(--pld-space-3) 0 var(--pld-space-2);
	font-size: var(--pld-fs-sm);
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--pld-text-muted);
}

.pf-cov__label:first-of-type {
	margin-top: 0;
}

.pf-cov {
	display: flex;
	flex-wrap: wrap;
	gap: var(--pld-space-2);
	margin: 0;
	padding: 0;
	list-style: none;
}

.pf-cov li {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	margin: 0;
	padding: 0.4rem 0.95rem;
	font-weight: 600;
	border-radius: 999px;
}

.pf-cov .pld-icon {
	width: 16px;
	height: 16px;
}

.pf-cov--office li {
	color: #ffffff;
	background: linear-gradient(135deg, #123f7a, #1b5a9a);
}

.pf-cov--office a,
.pf-cov--office li {
	color: #ffffff;
	text-decoration: none;
}

.pf-cov--serves li {
	color: #0a5a62;
	background: #d5f0f2;
	border: 1px solid #a9dde1;
}

/* quick facts rows get an accent */
.pf-quick li:nth-child(6n+1) .pld-icon { color: #1d5fa8; }
.pf-quick li:nth-child(6n+2) .pld-icon { color: #b3261e; }
.pf-quick li:nth-child(6n+3) .pld-icon { color: #0e7c86; }
.pf-quick li:nth-child(6n+4) .pld-icon { color: #1f7a4d; }
.pf-quick li:nth-child(6n+5) .pld-icon { color: #b8860b; }
.pf-quick li:nth-child(6n+6) .pld-icon { color: #6b46c1; }
/* fact tiles: fill each row, white icons */
.pf-stats {
	display: flex;
	flex-wrap: wrap;
}

.pf-stats li {
	flex: 1 1 135px;
}

.pf-stats .pf-stat__icon .pld-icon,
.pf-stats .pf-stat__icon svg {
	color: #ffffff !important;
	stroke: #ffffff;
}
/* ================= Home page colour ================= */
.pld-numbers {
	position: relative;
	z-index: 2;
	margin-top: -1.5rem;
	padding-bottom: var(--pld-space-4);
}

.pld-numbers__list {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--pld-space-3);
	margin: 0 auto;
	padding: var(--pld-space-4);
	list-style: none;
	background: #ffffff;
	border-radius: var(--pld-radius-lg);
	box-shadow: 0 16px 40px rgba(15, 43, 76, 0.14);
}

@media (min-width: 760px) {
	.pld-numbers__list {
		grid-template-columns: repeat(6, 1fr);
	}
}

.pld-num {
	display: grid;
	justify-items: center;
	gap: 2px;
	margin: 0;
	padding: var(--pld-space-3) var(--pld-space-2);
	text-align: center;
	font-size: var(--pld-fs-sm);
	font-weight: 600;
	color: var(--pld-text);
	background: var(--num-soft);
	border-radius: var(--pld-radius-md);
}

.pld-num--blue   { --num: #1d5fa8; --num-soft: #e3eefb; }
.pld-num--red    { --num: #b3261e; --num-soft: #fce6e3; }
.pld-num--green  { --num: #1f7a4d; --num-soft: #e1f4e9; }
.pld-num--teal   { --num: #0e7c86; --num-soft: #daf2f4; }
.pld-num--purple { --num: #6b46c1; --num-soft: #ede6fa; }
.pld-num--orange { --num: #c25a14; --num-soft: #fde8d8; }

.pld-num__icon {
	display: inline-flex;
	width: 40px;
	height: 40px;
	align-items: center;
	justify-content: center;
	background: var(--num);
	border-radius: 50%;
}

.pld-num__icon .pld-icon {
	width: 21px;
	height: 21px;
	color: #ffffff !important;
	stroke: #ffffff;
}

.pld-num strong {
	font-family: inherit;
	font-size: 1.9rem;
	line-height: 1.1;
	color: var(--num);
}

/* practice area tiles take the colour of their visa type */
.pld-tile--area {
	border-top: 4px solid var(--ac);
	background: linear-gradient(160deg, var(--acs) 0%, #ffffff 80%);
}

.pld-tile--area .pld-iconwrap {
	background: var(--ac);
}

.pld-tile--area .pld-iconwrap .pld-icon {
	color: #ffffff !important;
	stroke: #ffffff;
}

.pld-tile--area .pld-tile__title {
	color: var(--acd);
}

.pld-tile__count {
	display: block;
	margin-top: 0.35rem;
	font-size: var(--pld-fs-xs);
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--ac, var(--pld-accent-dark));
}

.pld-citycard .pld-tile__count {
	color: var(--pld-accent-dark);
}

.pld-citychip span {
	margin-left: 0.3rem;
	padding: 0.05rem 0.45rem;
	font-size: var(--pld-fs-xs);
	font-weight: 700;
	color: #ffffff;
	background: var(--pld-navy);
	border-radius: 999px;
}

/* language chips */
.pld-langchips {
	display: flex;
	flex-wrap: wrap;
	gap: var(--pld-space-2);
	margin: 0;
	padding: 0;
	list-style: none;
}

.pld-langchips li {
	margin: 0;
}

.pld-langchips a {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	padding: 0.5rem 1rem;
	font-weight: 600;
	color: #0a5a62;
	text-decoration: none;
	background: #d5f0f2;
	border: 1px solid #a9dde1;
	border-radius: 999px;
}

.pld-langchips a:hover {
	color: #ffffff;
	background: #0e7c86;
}

.pld-langchips .pld-icon {
	width: 16px;
	height: 16px;
}

.pld-langchips span {
	padding: 0.05rem 0.5rem;
	font-size: var(--pld-fs-xs);
	color: #ffffff;
	background: #0e7c86;
	border-radius: 999px;
}

/* trust strip icons in colour */
.pld-trust__list li:nth-child(1) .pld-iconwrap { background: #1d5fa8; }
.pld-trust__list li:nth-child(2) .pld-iconwrap { background: #b3261e; }
.pld-trust__list li:nth-child(3) .pld-iconwrap { background: #1f7a4d; }
.pld-trust__list li:nth-child(4) .pld-iconwrap { background: #c25a14; }

.pld-trust__list .pld-iconwrap .pld-icon {
	color: #ffffff !important;
	stroke: #ffffff;
}

/* steps */
.pld-steps__num {
	background: linear-gradient(135deg, #123f7a, #1b5a9a) !important;
	color: #ffffff !important;
	box-shadow: 0 6px 14px rgba(18, 63, 122, 0.35);
}

/* section headings: flag-colour bar */
.pld-section__head h2 {
	display: flex;
	align-items: center;
	gap: 0.6rem;
}

.pld-section__head h2::before {
	content: "";
	flex: none;
	width: 6px;
	height: 1.1em;
	border-radius: 3px;
	background: linear-gradient(180deg, #046a38 0 50%, #da291c 50% 100%);
}
.pld-cards--4 {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--pld-space-4);
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (min-width: 640px) {
	.pld-cards--4 { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 1000px) {
	.pld-cards--4 { grid-template-columns: repeat(4, 1fr); }
}

.pld-cards--4 > li { margin: 0; }

.pld-tile.pld-tile--area {
	height: 100%;
	border-top: 4px solid var(--ac);
	background: linear-gradient(160deg, var(--acs) 0%, #ffffff 85%);
}

.pld-section--tight {
	padding-top: var(--pld-space-6);
	padding-bottom: var(--pld-space-6);
}
/* ================= Ordinary pages: banner + clean cards ================= */
body.page:not(.home):not(.pld-list-page) .site-content {
	display: block;
	max-width: none;
	padding: 0;
	margin: 0;
}

body.page:not(.home):not(.pld-list-page) .content-area {
	width: 100%;
}

.pld-pagehero {
	position: relative;
	color: #ffffff;
	background:
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='72' height='72' viewBox='0 0 72 72'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.06' stroke-width='1.5'%3E%3Crect x='6' y='6' width='60' height='60' rx='2'/%3E%3Cpath d='M36 6 66 36 36 66 6 36Z'/%3E%3Ccircle cx='36' cy='36' r='11'/%3E%3Cpath d='M36 25v22M25 36h22'/%3E%3C/g%3E%3C/svg%3E") center / 72px 72px,
		linear-gradient(120deg, #0b2a52 0%, #123f7a 55%, #1b5a9a 100%);
}

.pld-pagehero::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 6px;
	background: linear-gradient(90deg, #046a38 0 40%, #da291c 40% 100%);
}

.pld-pagehero__in {
	max-width: var(--pld-container);
	margin: 0 auto;
	padding: var(--pld-space-4) var(--pld-space-5) calc(var(--pld-space-6) + 6px);
}

.pld-crumbs--light ol,
.pld-crumbs--light li,
.pld-crumbs--light li + li::before {
	color: #bcd0e8;
}

.pld-crumbs--light a {
	color: #ffffff;
}

.pld-pagehero .entry-title {
	max-width: 22ch;
	margin: var(--pld-space-4) 0 0;
	font-family: inherit;
	font-size: clamp(2.2rem, 1.4rem + 3vw, 3.6rem);
	line-height: 1.05;
	color: #ffffff;
}

.pld-pagebody {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--pld-space-5);
	max-width: var(--pld-container);
	margin: 0 auto;
	padding: var(--pld-space-6) var(--pld-space-5) var(--pld-space-8);
}

@media (min-width: 960px) {
	.pld-pagebody--contact {
		grid-template-columns: minmax(0, 1fr) 340px;
		align-items: start;
	}
}

.pld-pagebody__content {
	min-width: 0;
	padding: var(--pld-space-6);
	background: #ffffff;
	border-radius: var(--pld-radius-lg);
	box-shadow: 0 10px 30px rgba(15, 43, 76, 0.08);
	border-top: 4px solid #123f7a;
}

.pld-pagebody__content > :first-child {
	margin-top: 0;
}

.pld-pagebody__content h2 {
	display: flex;
	align-items: center;
	gap: 0.65rem;
	margin: var(--pld-space-6) 0 var(--pld-space-3);
	font-family: inherit;
	font-size: var(--pld-fs-h3);
	color: var(--pld-navy);
}

.pld-pagebody__content h2::before {
	content: "";
	flex: none;
	width: 6px;
	height: 1.15em;
	border-radius: 3px;
	background: linear-gradient(180deg, #046a38 0 50%, #da291c 50% 100%);
}

.pld-pagebody__content p,
.pld-pagebody__content li {
	max-width: 68ch;
}

.pld-pagebody__content ul {
	list-style: none;
	padding: 0;
}

.pld-pagebody__content ul li {
	position: relative;
	margin: 0 0 var(--pld-space-2);
	padding-left: 1.7rem;
}

.pld-pagebody__content ul li::before {
	content: "";
	position: absolute;
	left: 0.2rem;
	top: 0.55em;
	width: 0.6rem;
	height: 0.6rem;
	background: #1f7a4d;
	border-radius: 50%;
}

.pld-pagebody__content .wp-block-button__link {
	padding: 0.8rem 1.6rem;
	font-weight: 700;
	background: var(--pld-accent);
	border-radius: 999px;
	box-shadow: 0 8px 18px rgba(184, 75, 42, 0.3);
}

/* contact side card */
.pld-contactside {
	padding: var(--pld-space-5);
	background: linear-gradient(160deg, #0b2a52 0%, #123f7a 100%);
	color: #ffffff;
	border-radius: var(--pld-radius-lg);
	box-shadow: 0 12px 30px rgba(15, 43, 76, 0.2);
}

.pld-contactside h2 {
	margin: 0 0 var(--pld-space-4);
	font-family: inherit;
	font-size: var(--pld-fs-h3);
	color: #ffffff;
}

.pld-contactside ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.pld-contactside li {
	display: flex;
	gap: var(--pld-space-3);
	align-items: flex-start;
	margin: 0 0 var(--pld-space-4);
	font-size: var(--pld-fs-sm);
	color: #d6e4f5;
}

.pld-contactside li strong {
	display: block;
	color: #ffffff;
}

.pld-contactside__icon {
	display: inline-flex;
	flex: none;
	width: 38px;
	height: 38px;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
}

.pld-contactside__icon .pld-icon {
	width: 20px;
	height: 20px;
	color: #ffffff !important;
	stroke: #ffffff;
}

.pld-contactside__icon--blue { background: #1d5fa8; }
.pld-contactside__icon--green { background: #1f7a4d; }
.pld-contactside__icon--orange { background: #c25a14; }
.pld-contactside__icon--red { background: #b3261e; }

/* price cards (Advertise page) */
.pld-prices {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--pld-space-4);
	margin: var(--pld-space-4) 0;
}

@media (min-width: 640px) {
	.pld-prices { grid-template-columns: repeat(2, 1fr); }
}

.pld-price {
	padding: var(--pld-space-5);
	text-align: center;
	border-radius: var(--pld-radius-lg);
	border-top: 5px solid var(--pc);
	background: var(--pcs);
}

.pld-price--blue { --pc: #1d5fa8; --pcs: #e3eefb; }
.pld-price--gold { --pc: #b8860b; --pcs: #fcf3d6; }

.pld-pagebody__content .pld-price p {
	max-width: none;
	margin: 0;
}

.pld-price__name {
	font-size: var(--pld-fs-sm);
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--pc);
}

.pld-price__amount {
	font-family: inherit;
	font-size: 3.2rem;
	font-weight: 700;
	line-height: 1.15;
	color: var(--pld-navy);
}

.pld-price__note {
	color: var(--pld-text-muted);
}
/* full-width banner for ordinary pages and 404 */
.pld-pagehero {
	width: 100vw;
	margin-left: calc(50% - 50vw);
}

body.page,
body.error404 {
	overflow-x: clip;
}

body.error404 .site-content {
	display: block;
	max-width: none;
	padding: 0;
	margin: 0;
}

body.error404 .content-area {
	width: 100%;
}

/* 404 */
.pld-404__code {
	margin: var(--pld-space-4) 0 0;
	font-family: inherit;
	font-size: clamp(4rem, 2rem + 8vw, 8rem);
	font-weight: 700;
	line-height: 1;
	color: #f6cf62;
}

.pld-404__lead {
	max-width: 52ch;
	margin: var(--pld-space-3) 0 0;
	color: #d6e4f5;
}

.pld-404 {
	grid-template-columns: 1fr;
}

.pld-404__card {
	padding: var(--pld-space-5);
	background: #ffffff;
	border-radius: var(--pld-radius-lg);
	box-shadow: 0 10px 30px rgba(15, 43, 76, 0.08);
	border-top: 4px solid #123f7a;
}

.pld-404__card h2 {
	margin: 0 0 var(--pld-space-3);
	font-family: inherit;
	font-size: var(--pld-fs-h3);
	color: var(--pld-navy);
}

.pld-404__chips {
	display: flex;
	flex-wrap: wrap;
	gap: var(--pld-space-2);
	margin: 0;
	padding: 0;
	list-style: none;
}

.pld-404__chips li {
	margin: 0;
}

.pld-404__chips a {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0.45rem 1rem;
	font-weight: 600;
	color: var(--acd, #14457a);
	text-decoration: none;
	background: var(--acs, #e3eefb);
	border: 1px solid color-mix(in srgb, var(--ac, #1d5fa8) 30%, transparent);
	border-radius: 999px;
}

.pld-404__chips a:hover {
	color: #ffffff;
	background: var(--ac, #1d5fa8);
}

.pld-404__chips .pld-icon {
	width: 16px;
	height: 16px;
}

.pld-404__home {
	margin: 0;
}
/* footer: flag stripe on top, coloured column titles */
.pld-footer {
	position: relative;
	border-top: 0;
}

.pld-footer::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	height: 6px;
	background: linear-gradient(90deg, #046a38 0 40%, #da291c 40% 100%);
}

.pld-footer .pld-footer__title {
	color: #f6cf62;
}
@media (max-width: 759px) {
	.pld-numbers__list {
		margin-left: var(--pld-space-4);
		margin-right: var(--pld-space-4);
	}
}
/* The right-hand cards are taller than a screen, so they must not stay stuck:
   the bottom card could never be reached. Only the dark summary card sticks. */
@media (min-width: 960px) {
	.pld-side {
		position: static;
	}

	.pld-side__city {
		position: sticky;
		top: var(--pld-space-5);
		z-index: 1;
	}
}
/* Sidebar: the whole thing stays in view. It is two cards now, and scrolls on its own on very short screens. */
@media (min-width: 960px) {
	.pld-side {
		position: sticky;
		top: var(--pld-space-4);
		max-height: calc(100vh - 2 * var(--pld-space-4));
		overflow-y: auto;
		scrollbar-width: thin;
		padding-bottom: 2px;
	}

	.pld-side__city {
		position: static;
	}
}

/* Wide banner for lawyers, under the listings */
.pld-promo {
	display: flex;
	flex-wrap: wrap;
	gap: var(--pld-space-4);
	align-items: center;
	justify-content: space-between;
	margin-top: var(--pld-space-6);
	padding: var(--pld-space-5);
	color: #ffffff;
	background:
		linear-gradient(90deg, rgba(10, 30, 56, 0.94) 0%, rgba(10, 30, 56, 0.8) 100%),
		var(--pld-side-photo, none) center / cover no-repeat,
		var(--pld-navy);
	border-radius: var(--pld-radius-lg);
	box-shadow: 0 12px 30px rgba(15, 43, 76, 0.18);
}

.pld-promo h2 {
	margin: 0 0 var(--pld-space-2);
	font-family: inherit;
	font-size: var(--pld-fs-h3);
	color: #ffffff;
}

.pld-promo p {
	margin: 0;
	color: #dbe6f3;
}

.pld-promo__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--pld-space-3);
}
/* =========================================================================
   PALETTE v6: calm and modern. Navy + one coral accent + soft blue-grey tints.
   No rainbow: every practice area, fact tile and chip uses the same blue tint.
   ========================================================================= */
:root {
	--pld-navy: #0c2340;
	--pld-navy-dark: #081a30;
	--pld-navy-soft: #eaf0f8;
	--pld-accent: #d4502b;
	--pld-accent-dark: #b23e1e;
	--pld-accent-soft: #fdece6;
	--pld-blue: #1e56b8;
	--pld-blue-soft: #eaf1fc;
	--pld-ink: #0c2340;
	--pld-text: #25344a;
	--pld-text-muted: #5b6b82;
	--pld-border: #e1e7ef;
	--pld-bg: #f6f8fb;
}

/* Headings: modern and tight */
body h1,
body h2,
body h3 {
	letter-spacing: -0.02em;
}

/* One tint for every practice area */
.area-golden-visa,
.area-d7-visa,
.area-digital-nomad-visa,
.area-work-visa,
.area-student-visa,
.area-family-reunification,
.area-business-and-startup,
.area-citizenship {
	--ac: #1e56b8;
	--acs: #eaf1fc;
	--acd: #17408a;
}

.pld-tag[class*="area-"] {
	border-color: #d3e1f7;
	font-weight: 600;
}

/* Fact tiles and number tiles: one soft blue style */
.pf-stat--blue, .pf-stat--green, .pf-stat--red, .pf-stat--gold, .pf-stat--teal, .pf-stat--purple, .pf-stat--orange {
	--tile: #1e56b8;
	--tile-soft: #f0f5fd;
}

.pf-stats .pf-stat__icon {
	background: var(--pld-navy);
}

.pf-stats strong {
	color: var(--pld-navy);
}

.pld-num--blue, .pld-num--red, .pld-num--green, .pld-num--teal, .pld-num--purple, .pld-num--orange {
	--num: #0c2340;
	--num-soft: #f0f5fd;
}

/* Coverage chips */
.pf-cov--office li {
	background: var(--pld-navy);
}

.pf-cov--serves li {
	color: #17408a;
	background: #eaf1fc;
	border-color: #d3e1f7;
}

/* Quick-fact icons: one colour */
.pf-quick li .pld-icon {
	color: var(--pld-blue) !important;
}

/* Contact side card icons */
.pld-contactside__icon--blue, .pld-contactside__icon--green, .pld-contactside__icon--orange, .pld-contactside__icon--red {
	background: rgba(255, 255, 255, 0.16);
}

/* Trust strip icons */
.pld-trust__list li:nth-child(n) .pld-iconwrap {
	background: var(--pld-navy);
}

/* Heading bars and stripes: a single accent, no flag colours */
.pf .pf-h::before,
.pld-section__head h2::before,
.pld-pagebody__content h2::before {
	width: 4px;
	background: var(--pld-accent);
}

.pf-hero::after,
.pld-pagehero::after,
.pld-footer::before {
	height: 4px;
	background: var(--pld-accent);
}

/* Cards: calm top line */
.pf-section {
	background: #ffffff;
}

.pld-pagebody__content,
.pld-404__card {
	border-top: 0;
}

/* Gold badge on the profile becomes a clean white badge */
.pf-hero .pf-badge {
	color: var(--pld-navy);
	background: #ffffff;
}

/* Price cards */
.pld-price--blue, .pld-price--gold {
	--pc: #1e56b8;
	--pcs: #f0f5fd;
}

/* 404 big number */
.pld-404__code {
	color: #ffffff;
	opacity: 0.9;
}

/* Footer titles */
.pld-footer .pld-footer__title {
	color: #9fb4d0;
}
/* =========================================================================
   HOME PAGE v6 (classes start with hp-)
   ========================================================================= */
.hp-hero {
	position: relative;
	color: #ffffff;
	background:
		linear-gradient(105deg, rgba(8, 26, 48, 0.97) 0%, rgba(12, 35, 64, 0.9) 48%, rgba(12, 35, 64, 0.5) 100%),
		var(--hp-hero) center / cover no-repeat,
		var(--pld-navy);
}

.hp-hero__in {
	padding-top: clamp(3rem, 7vw, 5.5rem);
	padding-bottom: clamp(3rem, 6vw, 4.5rem);
}

.hp-pill {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	margin: 0 0 var(--pld-space-4);
	padding: 0.35rem 0.9rem;
	font-size: var(--pld-fs-sm);
	font-weight: 600;
	color: #dbe7f6;
	background: rgba(255, 255, 255, 0.1);
	border: 1px solid rgba(255, 255, 255, 0.22);
	border-radius: 999px;
}

.hp-pill .pld-icon {
	width: 16px;
	height: 16px;
	color: #ffffff;
}

.hp-hero h1 {
	max-width: 15ch;
	margin: 0 0 var(--pld-space-4);
	font-size: clamp(2.4rem, 1.4rem + 4vw, 4.2rem);
	font-weight: 800;
	line-height: 1.04;
	letter-spacing: -0.03em;
	color: #ffffff;
}

.hp-hero__lead {
	max-width: 52ch;
	margin: 0 0 var(--pld-space-6);
	font-size: var(--pld-fs-lg);
	color: #cfdcec;
}

/* search card */
.pld-search--hp {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--pld-space-2);
	max-width: 880px;
	margin: 0;
	padding: 10px;
	background: #ffffff;
	border-radius: 18px;
	box-shadow: 0 24px 60px rgba(3, 12, 28, 0.45);
}

@media (min-width: 820px) {
	.pld-search--hp {
		grid-template-columns: repeat(3, 1fr) auto;
		align-items: stretch;
	}
}

.pld-search--hp p {
	margin: 0;
}

.pld-search--hp label {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.pld-search--hp select {
	width: 100%;
	height: 56px;
	padding: 0 2.2rem 0 1rem;
	font-size: var(--pld-fs-base);
	color: var(--pld-ink);
	background-color: #f3f6fb;
	border: 1px solid transparent;
	border-radius: 12px;
}

.pld-search--hp select:focus {
	background-color: #ffffff;
	border-color: var(--pld-blue);
}

.pld-search--hp .button {
	height: 56px;
	padding: 0 2rem;
	font-size: var(--pld-fs-base);
	font-weight: 700;
	color: #ffffff;
	background: var(--pld-accent);
	border: 0;
	border-radius: 12px;
}

.pld-search--hp .button:hover {
	background: var(--pld-accent-dark);
}

.hp-popular {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	align-items: center;
	margin: var(--pld-space-4) 0 0;
	font-size: var(--pld-fs-sm);
	color: #b8c8de;
}

.hp-popular a {
	padding: 0.25rem 0.8rem;
	color: #ffffff;
	text-decoration: none;
	background: rgba(255, 255, 255, 0.1);
	border: 1px solid rgba(255, 255, 255, 0.2);
	border-radius: 999px;
}

.hp-popular a:hover {
	background: rgba(255, 255, 255, 0.22);
}

.hp-facts {
	display: flex;
	flex-wrap: wrap;
	gap: var(--pld-space-3) var(--pld-space-7);
	margin: var(--pld-space-7) 0 0;
	padding: var(--pld-space-5) 0 0;
	list-style: none;
	font-size: var(--pld-fs-sm);
	color: #b8c8de;
	border-top: 1px solid rgba(255, 255, 255, 0.16);
}

.hp-facts li {
	margin: 0;
}

.hp-facts strong {
	display: block;
	font-size: 1.9rem;
	font-weight: 800;
	line-height: 1.1;
	letter-spacing: -0.02em;
	color: #ffffff;
}

/* sections */
.hp-section {
	padding: clamp(3rem, 6vw, 5rem) 0;
}

.hp-section--white {
	background: #ffffff;
}

.hp-section--navy {
	color: #ffffff;
	background: linear-gradient(160deg, #081a30 0%, #0c2340 60%, #123463 100%);
}

.hp-head {
	display: flex;
	flex-wrap: wrap;
	gap: var(--pld-space-3);
	align-items: flex-end;
	justify-content: space-between;
	margin-bottom: var(--pld-space-6);
}

.hp-eyebrow {
	margin: 0 0 var(--pld-space-2);
	font-size: var(--pld-fs-xs);
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--pld-accent);
}

.hp-head h2 {
	margin: 0;
	font-size: clamp(1.7rem, 1.2rem + 1.8vw, 2.5rem);
	font-weight: 800;
	letter-spacing: -0.025em;
	color: var(--pld-ink);
}

.hp-head--light h2 {
	color: #ffffff;
}

.hp-link {
	display: inline-flex;
	gap: 0.4rem;
	align-items: center;
	font-weight: 700;
	color: var(--pld-blue);
	text-decoration: none;
}

.hp-link .pld-icon {
	width: 18px;
	height: 18px;
}

.hp-link:hover {
	color: var(--pld-accent-dark);
}

/* cities */
.hp-cities {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--pld-space-4);
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (min-width: 820px) {
	.hp-cities {
		grid-template-columns: 1.6fr 1fr;
		grid-template-rows: 230px 230px;
	}

	.hp-city--0 {
		grid-row: 1 / span 2;
	}
}

.hp-city {
	position: relative;
	min-height: 220px;
	margin: 0;
	overflow: hidden;
	border-radius: 20px;
	box-shadow: 0 12px 30px rgba(12, 35, 64, 0.14);
}

.hp-city a {
	position: absolute;
	inset: 0;
	display: block;
	color: #ffffff;
	text-decoration: none;
}

.hp-city img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.5s ease;
}

.hp-city a:hover img {
	transform: scale(1.05);
}

.hp-city a::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(8, 26, 48, 0) 35%, rgba(8, 26, 48, 0.82) 100%);
}

.hp-city__label {
	position: absolute;
	left: var(--pld-space-5);
	right: var(--pld-space-5);
	bottom: var(--pld-space-4);
	z-index: 1;
	display: grid;
	gap: 2px;
}

.hp-city__label strong {
	font-size: 1.7rem;
	font-weight: 800;
	letter-spacing: -0.02em;
}

.hp-city--0 .hp-city__label strong {
	font-size: 2.4rem;
}

.hp-city__label span {
	font-size: var(--pld-fs-sm);
	color: #dbe7f6;
}

.hp-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	align-items: center;
	margin: var(--pld-space-5) 0 0;
}

.hp-chips__label {
	margin-right: 0.25rem;
	font-size: var(--pld-fs-sm);
	font-weight: 700;
	color: var(--pld-text-muted);
}

.hp-chips a {
	display: inline-flex;
	gap: 0.45rem;
	align-items: center;
	padding: 0.45rem 1rem;
	font-weight: 600;
	color: var(--pld-ink);
	text-decoration: none;
	background: #ffffff;
	border: 1px solid var(--pld-border);
	border-radius: 999px;
}

.hp-chips a:hover {
	color: var(--pld-accent-dark);
	border-color: var(--pld-accent);
}

.hp-chips a span {
	font-size: var(--pld-fs-xs);
	font-weight: 700;
	color: var(--pld-text-muted);
}

/* practice areas */
.hp-areas {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--pld-space-3);
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (min-width: 620px) {
	.hp-areas { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 1000px) {
	.hp-areas { grid-template-columns: repeat(4, 1fr); }
}

.hp-areas li {
	margin: 0;
}

.hp-areas a {
	display: flex;
	gap: var(--pld-space-3);
	align-items: center;
	height: 100%;
	padding: var(--pld-space-4);
	color: var(--pld-ink);
	text-decoration: none;
	background: #f6f8fb;
	border: 1px solid var(--pld-border);
	border-radius: 16px;
	transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.hp-areas a:hover {
	background: #ffffff;
	border-color: var(--pld-accent);
	box-shadow: 0 10px 24px rgba(12, 35, 64, 0.1);
	transform: translateY(-2px);
}

.hp-areas__icon {
	display: inline-flex;
	flex: none;
	width: 46px;
	height: 46px;
	align-items: center;
	justify-content: center;
	color: var(--pld-navy);
	background: #e4ecf8;
	border-radius: 12px;
}

.hp-areas__icon .pld-icon {
	width: 24px;
	height: 24px;
}

.hp-areas__text {
	display: grid;
	flex: 1;
	min-width: 0;
}

.hp-areas__text strong {
	font-weight: 700;
	line-height: 1.25;
}

.hp-areas__text span {
	font-size: var(--pld-fs-sm);
	color: var(--pld-text-muted);
}

.hp-areas__arrow .pld-icon {
	width: 18px;
	height: 18px;
	color: var(--pld-accent);
}

/* listings */
.hp-listings {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--pld-space-4);
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (min-width: 620px) {
	.hp-listings { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 1000px) {
	.hp-listings { grid-template-columns: repeat(3, 1fr); }
}

.hp-listings li {
	margin: 0;
}

.hp-listing {
	display: grid;
	gap: var(--pld-space-2);
	height: 100%;
	padding: var(--pld-space-4);
	color: var(--pld-ink);
	text-decoration: none;
	background: #ffffff;
	border: 1px solid var(--pld-border);
	border-radius: 18px;
	transition: box-shadow 0.15s ease, transform 0.15s ease;
}

.hp-listing:hover {
	box-shadow: 0 14px 32px rgba(12, 35, 64, 0.12);
	transform: translateY(-2px);
}

.hp-listing__logo {
	display: flex;
	height: 96px;
	align-items: center;
	justify-content: center;
	margin-bottom: var(--pld-space-2);
	background: #f6f8fb;
	border-radius: 12px;
}

.hp-listing__logo .pld-avatar {
	display: flex;
	width: 100%;
	height: 100%;
	align-items: center;
	justify-content: center;
	padding: 10px;
	background: transparent;
	border: 0;
	border-radius: 0;
}

.hp-listing__logo .pld-avatar:not(.pld-avatar--logo) {
	width: 60px;
	height: 60px;
	padding: 0;
	font-weight: 700;
	color: var(--pld-navy);
	background: #e4ecf8;
	border-radius: 50%;
}

.hp-listing__logo img {
	width: auto;
	height: auto;
	max-width: 100%;
	max-height: 76px;
	object-fit: contain;
}

.hp-listing__name {
	font-size: var(--pld-fs-lg);
	font-weight: 700;
	line-height: 1.25;
}

.hp-listing__meta {
	font-size: var(--pld-fs-sm);
	color: var(--pld-text-muted);
}

.hp-listing__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	margin-top: 0.25rem;
}

.hp-listing__tags span {
	padding: 0.2rem 0.7rem;
	font-size: var(--pld-fs-xs);
	font-weight: 600;
	color: #17408a;
	background: #eaf1fc;
	border-radius: 999px;
}

/* steps */
.hp-steps {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--pld-space-4);
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (min-width: 820px) {
	.hp-steps { grid-template-columns: repeat(3, 1fr); }
}

.hp-steps li {
	margin: 0;
	padding: var(--pld-space-5);
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid rgba(255, 255, 255, 0.14);
	border-radius: 18px;
}

.hp-steps__num {
	display: inline-flex;
	width: 44px;
	height: 44px;
	align-items: center;
	justify-content: center;
	margin-bottom: var(--pld-space-3);
	font-size: 1.2rem;
	font-weight: 800;
	color: #ffffff;
	background: var(--pld-accent);
	border-radius: 50%;
}

.hp-steps h3 {
	margin: 0 0 var(--pld-space-2);
	font-size: var(--pld-fs-h3);
	font-weight: 700;
	color: #ffffff;
}

.hp-steps p {
	margin: 0;
	color: #b8c8de;
}

/* call to action */
.hp-cta {
	display: flex;
	flex-wrap: wrap;
	gap: var(--pld-space-4) var(--pld-space-6);
	align-items: center;
	justify-content: space-between;
	padding: clamp(1.75rem, 4vw, 3rem);
	color: #ffffff;
	background: linear-gradient(120deg, #0c2340 0%, #1e56b8 120%);
	border-radius: 24px;
	box-shadow: 0 18px 44px rgba(12, 35, 64, 0.25);
}

.hp-cta h2 {
	margin: 0 0 var(--pld-space-2);
	font-size: clamp(1.6rem, 1.2rem + 1.6vw, 2.3rem);
	font-weight: 800;
	color: #ffffff;
}

.hp-cta p {
	margin: 0;
	color: #cfdcec;
}

.hp-cta__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--pld-space-3);
}
.hp-hero h1 { max-width: 19ch; }

/* fact tiles: equal size, left-aligned rows */
.pf-stats {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(135px, 1fr));
}

.pf-stats li {
	flex: none;
}
/* =========================================================================
   DESIGN v7: warm, calm, credible.
   60% warm cream and white, 30% deep navy, 10% terracotta (buttons only).
   Headlines in Newsreader (serif), everything else in Inter. Both fonts are
   stored in assets/fonts, so nothing is loaded from another website.
   ========================================================================= */
@font-face {
	font-family: "Inter";
	src: url("assets/fonts/inter-latin-wght.woff2") format("woff2");
	font-weight: 100 900;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Newsreader";
	src: url("assets/fonts/newsreader-latin-wght.woff2") format("woff2");
	font-weight: 200 800;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Newsreader";
	src: url("assets/fonts/newsreader-latin-wght-italic.woff2") format("woff2");
	font-weight: 200 800;
	font-style: italic;
	font-display: swap;
}

:root {
	--pld-font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--pld-font-display: "Newsreader", Georgia, "Times New Roman", serif;
	--pld-navy: #10294a;
	--pld-navy-dark: #0b1d36;
	--pld-navy-soft: #ece7de;
	--pld-ink: #10294a;
	--pld-accent: #c4553a;
	--pld-accent-dark: #a64530;
	--pld-accent-soft: #fbeee6;
	--pld-blue: #10294a;
	--pld-blue-soft: #f0ece4;
	--pld-text: #2a3547;
	--pld-text-muted: #5e6a7c;
	--pld-border: #e6e0d6;
	--pld-bg: #faf7f2;
	--pld-surface: #ffffff;
	--pld-shadow-sm: 0 1px 2px rgba(16, 41, 74, 0.05);
	--pld-shadow-md: 0 6px 18px rgba(16, 41, 74, 0.07);
	--pld-shadow-lg: 0 16px 40px rgba(16, 41, 74, 0.1);
}

body {
	background-color: var(--pld-bg);
	font-size: 1.0625rem;
	color: var(--pld-text);
}

/* Headlines: serif, medium weight, calm */
body :is(h1, h2, h3, h4) {
	font-family: var(--pld-font-display) !important;
	font-weight: 500 !important;
	letter-spacing: -0.012em !important;
	color: var(--pld-ink);
}

.pld-btn,
.pld-btn *,
.pld-search select,
.pld-search button,
.pf-tabs a,
.pld-footer .pld-footer__title,
.hp-eyebrow,
.hp2-eyebrow {
	font-family: var(--pld-font);
}

/* Every practice area is the same quiet grey */
.area-golden-visa,
.area-d7-visa,
.area-digital-nomad-visa,
.area-work-visa,
.area-student-visa,
.area-family-reunification,
.area-business-and-startup,
.area-citizenship {
	--ac: #10294a;
	--acs: #f1ede5;
	--acd: #2d3b52;
}

.pld-tag[class*="area-"] {
	border: 1px solid #e3ddd0;
	font-weight: 500;
}

.pf-hero .pf-chips li[class*="area-"]::before {
	background: #ffffff;
	border-color: #ffffff;
}

.pf-areacards li[class*="area-"] .pf-areacard {
	background: #ffffff;
	border: 1px solid var(--pld-border);
	border-top: 1px solid var(--pld-border);
}

.pf-areacards li[class*="area-"] .pf-areacard__icon {
	color: var(--pld-navy);
	background: #f1ede5;
}

.pf-areacards li[class*="area-"] .pf-areacard__icon .pld-icon {
	color: var(--pld-navy) !important;
}

/* Fact tiles: quiet white tiles with a hairline */
.pf-stats li {
	background: #ffffff;
	border: 1px solid var(--pld-border);
}

.pf-stats .pf-stat__icon {
	color: var(--pld-navy);
	background: #f1ede5;
}

.pf-stats .pf-stat__icon .pld-icon,
.pf-stats .pf-stat__icon svg {
	color: var(--pld-navy) !important;
	stroke: var(--pld-navy);
}

.pf-stats strong {
	font-family: var(--pld-font-display);
	font-weight: 500;
	color: var(--pld-navy);
}

.pf-cov--serves li {
	color: var(--pld-text);
	background: #f1ede5;
	border-color: #e3ddd0;
}

.pf-hero .pf-badge {
	color: var(--pld-navy);
	background: #ffffff;
}

/* Page background for profile pages: plain cream, not a blue gradient */
body.single-lawyer {
	background: var(--pld-bg);
}

/* Cards and sections: white, hairline, almost no shadow */
.pf-section,
.pld-pagebody__content,
.pld-404__card {
	background: #ffffff !important;
	border: 1px solid var(--pld-border);
	box-shadow: var(--pld-shadow-sm);
}

.pf-section {
	overflow: visible;
}

.pld-listing,
.pld-toolbar,
.pld-end__card {
	border-color: var(--pld-border);
	box-shadow: var(--pld-shadow-sm);
}

/* One accent line instead of bars and stripes */
.pf .pf-h::before,
.pld-section__head h2::before,
.pld-pagebody__content h2::before {
	display: none;
}

/* Buttons: terracotta is the only accent colour */
.pld-btn--dark {
	background: var(--pld-navy);
	border-color: var(--pld-navy);
}

.pld-btn--light {
	color: var(--pld-navy);
	background: #ffffff;
}
/* =========================================================================
   HOME PAGE v7 (classes start with hp2-)
   ========================================================================= */
.hp2-eyebrow {
	margin: 0 0 var(--pld-space-3);
	font-family: var(--pld-font);
	font-size: var(--pld-fs-xs);
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--pld-accent-dark);
}

/* hero */
.hp2-hero {
	padding: clamp(2.5rem, 5vw, 4.5rem) 0 clamp(2.5rem, 5vw, 4rem);
}

.hp2-hero__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--pld-space-6);
	align-items: center;
}

@media (min-width: 960px) {
	.hp2-hero__grid {
		grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr);
		gap: var(--pld-space-8);
	}
}

.hp2 .hp2-hero h1 {
	margin: 0 0 var(--pld-space-4);
	font-size: clamp(2.6rem, 1.6rem + 3.6vw, 4.6rem);
	line-height: 1.04;
	letter-spacing: -0.02em !important;
	color: var(--pld-ink);
}

.hp2-lead {
	max-width: 50ch;
	margin: 0 0 var(--pld-space-6);
	font-size: var(--pld-fs-lg);
	color: var(--pld-text-muted);
}

.hp2 .pld-search--hp {
	max-width: 640px;
	padding: 8px;
	background: #ffffff;
	border: 1px solid var(--pld-border);
	border-radius: 16px;
	box-shadow: var(--pld-shadow-md);
}

@media (min-width: 820px) {
	.hp2 .pld-search--hp {
		grid-template-columns: 1fr 1fr auto;
	}

	.hp2 .pld-search--hp .pld-search__field--lang {
		display: none;
	}
}

.hp2 .pld-search--hp select {
	background-color: #f6f2ea;
	border-radius: 10px;
}

.hp2 .pld-search--hp .button {
	border-radius: 10px;
}

.hp2-popular {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	align-items: center;
	margin: var(--pld-space-4) 0 0;
	font-size: var(--pld-fs-sm);
	color: var(--pld-text-muted);
}

.hp2-popular a {
	padding: 0.25rem 0.8rem;
	color: var(--pld-ink);
	text-decoration: none;
	background: #ffffff;
	border: 1px solid var(--pld-border);
	border-radius: 999px;
}

.hp2-popular a:hover {
	border-color: var(--pld-ink);
}

.hp2-hero__photo {
	position: relative;
	min-height: 360px;
}

.hp2-hero__photo img {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 360px;
	max-height: 560px;
	object-fit: cover;
	border-radius: 28px;
	box-shadow: var(--pld-shadow-lg);
}

.hp2-hero__badge {
	position: absolute;
	left: var(--pld-space-4);
	bottom: var(--pld-space-4);
	margin: 0;
	padding: 0.7rem 1.1rem;
	font-size: var(--pld-fs-sm);
	color: var(--pld-text);
	background: #ffffff;
	border-radius: 14px;
	box-shadow: var(--pld-shadow-md);
}

.hp2-hero__badge strong {
	font-family: var(--pld-font-display);
	font-size: 1.25rem;
	font-weight: 600;
	color: var(--pld-ink);
}

/* trust strip */
.hp2-trust {
	border-top: 1px solid var(--pld-border);
	border-bottom: 1px solid var(--pld-border);
	background: #ffffff;
}

.hp2-trust__list {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--pld-space-4);
	margin: 0 auto;
	padding-top: var(--pld-space-5);
	padding-bottom: var(--pld-space-5);
	list-style: none;
}

@media (min-width: 700px) {
	.hp2-trust__list { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 1000px) {
	.hp2-trust__list { grid-template-columns: repeat(4, 1fr); }
}

.hp2-trust__list li {
	display: flex;
	gap: var(--pld-space-3);
	align-items: flex-start;
	margin: 0;
	font-size: var(--pld-fs-sm);
	color: var(--pld-text-muted);
}

.hp2-trust__list .pld-icon {
	flex: none;
	width: 26px;
	height: 26px;
	margin-top: 2px;
	color: var(--pld-accent);
}

.hp2-trust__list strong {
	display: block;
	margin-bottom: 2px;
	color: var(--pld-ink);
}

/* sections */
.hp2-section {
	padding: clamp(3rem, 6vw, 5rem) 0;
}

.hp2-section--white {
	background: #ffffff;
	border-top: 1px solid var(--pld-border);
	border-bottom: 1px solid var(--pld-border);
}

.hp2-head {
	display: flex;
	flex-wrap: wrap;
	gap: var(--pld-space-3);
	align-items: flex-end;
	justify-content: space-between;
	margin-bottom: var(--pld-space-6);
}

.hp2 .hp2-head h2 {
	margin: 0;
	font-size: clamp(1.9rem, 1.3rem + 2vw, 2.9rem);
	line-height: 1.1;
}

.hp2-link {
	display: inline-flex;
	gap: 0.4rem;
	align-items: center;
	font-weight: 600;
	color: var(--pld-ink);
	text-decoration: underline;
	text-decoration-color: var(--pld-accent);
	text-underline-offset: 5px;
}

.hp2-link .pld-icon {
	width: 18px;
	height: 18px;
}

/* cities */
.hp2-cities {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--pld-space-5);
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (min-width: 760px) {
	.hp2-cities { grid-template-columns: repeat(3, 1fr); }
}

.hp2-cities li {
	margin: 0;
}

.hp2-cities a {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 0 var(--pld-space-3);
	align-items: center;
	height: 100%;
	overflow: hidden;
	color: var(--pld-ink);
	text-decoration: none;
	background: #ffffff;
	border: 1px solid var(--pld-border);
	border-radius: 20px;
	transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.hp2-cities a:hover {
	box-shadow: var(--pld-shadow-lg);
	transform: translateY(-3px);
}

.hp2-cities__img {
	display: block;
	grid-column: 1 / -1;
	aspect-ratio: 4 / 3;
	overflow: hidden;
}

.hp2-cities__img img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.5s ease;
}

.hp2-cities a:hover img {
	transform: scale(1.04);
}

.hp2-cities__body {
	display: grid;
	gap: 2px;
	padding: var(--pld-space-4) 0 var(--pld-space-4) var(--pld-space-5);
}

.hp2-cities__body strong {
	font-family: var(--pld-font-display);
	font-size: 1.6rem;
	font-weight: 500;
	line-height: 1.15;
}

.hp2-cities__body span {
	font-size: var(--pld-fs-sm);
	color: var(--pld-text-muted);
}

.hp2-cities__arrow {
	padding-right: var(--pld-space-5);
}

.hp2-cities__arrow .pld-icon {
	width: 22px;
	height: 22px;
	color: var(--pld-accent);
}

.hp2-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	align-items: center;
	margin: var(--pld-space-5) 0 0;
}

.hp2-chips__label {
	margin-right: 0.35rem;
	font-size: var(--pld-fs-sm);
	font-weight: 600;
	color: var(--pld-text-muted);
}

.hp2-chips a {
	display: inline-flex;
	gap: 0.45rem;
	align-items: center;
	padding: 0.45rem 1rem;
	font-weight: 500;
	color: var(--pld-ink);
	text-decoration: none;
	background: #ffffff;
	border: 1px solid var(--pld-border);
	border-radius: 999px;
}

.hp2-chips a:hover {
	border-color: var(--pld-ink);
}

.hp2-chips a span {
	font-size: var(--pld-fs-xs);
	color: var(--pld-text-muted);
}

/* practice areas */
.hp2-areas {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0 var(--pld-space-6);
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (min-width: 760px) {
	.hp2-areas { grid-template-columns: repeat(2, 1fr); }
}

.hp2-areas li {
	margin: 0;
	border-bottom: 1px solid var(--pld-border);
}

.hp2-areas a {
	display: flex;
	gap: var(--pld-space-4);
	align-items: center;
	padding: var(--pld-space-4) 0;
	color: var(--pld-ink);
	text-decoration: none;
}

.hp2-areas a > .pld-icon:first-child {
	flex: none;
	width: 28px;
	height: 28px;
	color: var(--pld-navy);
}

.hp2-areas__text {
	display: grid;
	flex: 1;
	min-width: 0;
}

.hp2-areas__text strong {
	font-family: var(--pld-font-display);
	font-size: 1.35rem;
	font-weight: 500;
	line-height: 1.2;
}

.hp2-areas__text span {
	font-size: var(--pld-fs-sm);
	color: var(--pld-text-muted);
}

.hp2-areas a > .pld-icon:last-child {
	flex: none;
	width: 20px;
	height: 20px;
	color: var(--pld-accent);
	transition: transform 0.15s ease;
}

.hp2-areas a:hover > .pld-icon:last-child {
	transform: translateX(4px);
}

/* listings */
.hp2-listings {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--pld-space-4);
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (min-width: 640px) {
	.hp2-listings { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 1000px) {
	.hp2-listings { grid-template-columns: repeat(3, 1fr); }
}

.hp2-listings li {
	margin: 0;
}

.hp2-listing {
	display: grid;
	gap: var(--pld-space-2);
	height: 100%;
	padding: var(--pld-space-4);
	color: var(--pld-ink);
	text-decoration: none;
	background: #ffffff;
	border: 1px solid var(--pld-border);
	border-radius: 18px;
	transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.hp2-listing:hover {
	box-shadow: var(--pld-shadow-lg);
	transform: translateY(-2px);
}

.hp2-listing__logo {
	display: flex;
	height: 96px;
	align-items: center;
	justify-content: center;
	margin-bottom: var(--pld-space-2);
	background: #f6f2ea;
	border-radius: 12px;
}

.hp2-listing__logo .pld-avatar {
	display: flex;
	width: 100%;
	height: 100%;
	align-items: center;
	justify-content: center;
	padding: 10px;
	background: transparent;
	border: 0;
	border-radius: 0;
}

.hp2-listing__logo .pld-avatar:not(.pld-avatar--logo) {
	width: 60px;
	height: 60px;
	padding: 0;
	font-weight: 600;
	color: var(--pld-navy);
	background: #e9e3d8;
	border-radius: 50%;
}

.hp2-listing__logo img {
	width: auto;
	height: auto;
	max-width: 100%;
	max-height: 76px;
	object-fit: contain;
}

.hp2-listing__name {
	font-family: var(--pld-font-display);
	font-size: 1.3rem;
	font-weight: 500;
	line-height: 1.2;
}

.hp2-listing__meta {
	font-size: var(--pld-fs-sm);
	color: var(--pld-text-muted);
}

.hp2-listing__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	margin-top: 0.25rem;
}

.hp2-listing__tags span {
	padding: 0.2rem 0.7rem;
	font-size: var(--pld-fs-xs);
	font-weight: 500;
	color: var(--pld-text);
	background: #f1ede5;
	border-radius: 999px;
}

/* steps */
.hp2-steps {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--pld-space-6);
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (min-width: 820px) {
	.hp2-steps { grid-template-columns: repeat(3, 1fr); gap: var(--pld-space-7); }
}

.hp2-steps li {
	margin: 0;
	padding-top: var(--pld-space-4);
	border-top: 1px solid var(--pld-ink);
}

.hp2-steps__num {
	display: block;
	margin-bottom: var(--pld-space-2);
	font-family: var(--pld-font-display);
	font-size: 2.6rem;
	font-weight: 400;
	line-height: 1;
	color: var(--pld-accent);
}

.hp2 .hp2-steps h3 {
	margin: 0 0 var(--pld-space-2);
	font-size: 1.6rem;
}

.hp2-steps p {
	margin: 0;
	max-width: 34ch;
	color: var(--pld-text-muted);
}

/* call to action: the one navy band */
.hp2-cta {
	color: #ffffff;
	background:
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='72' height='72' viewBox='0 0 72 72'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.05' stroke-width='1.5'%3E%3Crect x='6' y='6' width='60' height='60' rx='2'/%3E%3Cpath d='M36 6 66 36 36 66 6 36Z'/%3E%3Ccircle cx='36' cy='36' r='11'/%3E%3C/g%3E%3C/svg%3E") center / 72px 72px,
		var(--pld-navy);
}

.hp2-cta__in {
	display: flex;
	flex-wrap: wrap;
	gap: var(--pld-space-5) var(--pld-space-7);
	align-items: center;
	justify-content: space-between;
	padding-top: clamp(2.5rem, 5vw, 4rem);
	padding-bottom: clamp(2.5rem, 5vw, 4rem);
}

.hp2 .hp2-cta h2 {
	margin: 0 0 var(--pld-space-2);
	font-size: clamp(2rem, 1.4rem + 2.2vw, 3rem);
	color: #ffffff;
}

.hp2-cta p {
	margin: 0;
	color: #c4d0e0;
}

.hp2-cta__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--pld-space-3);
}
/* header: keep the menu and the Find a Lawyer button on one line with the new font */
@media (min-width: 1025px) {
	body .main-navigation .main-nav ul {
		flex-wrap: nowrap;
	}

	body .main-navigation .main-nav ul li a {
		padding: 0 0.6rem;
		font-size: 0.9rem;
		white-space: nowrap;
	}

	body .main-navigation .main-nav ul li.pld-menu-cta > a {
		padding-left: 1.1rem;
		padding-right: 1.1rem;
	}
}

/* hero: wider text column, taller photo, shorter headline */
@media (min-width: 960px) {
	.hp2-hero__grid {
		grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr);
	}
}

.hp2 .hp2-hero h1 {
	font-size: clamp(2.4rem, 1.5rem + 3vw, 4rem);
	max-width: 14ch;
}

.hp2-hero__photo {
	min-height: 0;
}

.hp2-hero__photo img {
	aspect-ratio: 4 / 5;
	height: auto;
	min-height: 0;
	max-height: 600px;
}
.pld-footer .pld-footer__title { font-family: var(--pld-font) !important; font-weight: 600 !important; letter-spacing: 0.12em !important; }

.hp2-hero__photo img { aspect-ratio: 5 / 6; object-position: 30% 60%; }

/* Hero v2: headline on the left, search on the right, wide photo strip underneath */
.hp2-hero__grid {
	grid-template-columns: 1fr;
	gap: var(--pld-space-6);
}

@media (min-width: 960px) {
	.hp2-hero__grid {
		grid-template-columns: 1fr;
		gap: var(--pld-space-7);
	}

	.hp2-hero__text {
		display: grid;
		grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
		column-gap: var(--pld-space-8);
		align-items: start;
	}

	.hp2-hero__text .hp2-eyebrow {
		grid-column: 1;
		grid-row: 1;
	}

	.hp2 .hp2-hero__text h1 {
		grid-column: 1;
		grid-row: 2 / span 3;
		max-width: none;
		margin: 0;
	}

	.hp2-hero__text .hp2-lead {
		grid-column: 2;
		grid-row: 1 / span 2;
		align-self: end;
		margin: 0 0 var(--pld-space-4);
	}

	.hp2-hero__text .pld-search--hp {
		grid-column: 2;
		grid-row: 3;
		max-width: none;
	}

	.hp2-hero__text .hp2-popular {
		grid-column: 2;
		grid-row: 4;
	}
}

.hp2-hero__photo img {
	aspect-ratio: 16 / 9;
	object-position: 50% 100%;
	max-height: none;
	border-radius: 24px;
}

@media (min-width: 700px) {
	.hp2-hero__photo img {
		aspect-ratio: 4 / 1;
	}
}
/* hero search: two dropdowns, button underneath, so nothing is cut off */
@media (min-width: 820px) {
	.hp2 .pld-search--hp {
		grid-template-columns: 1fr 1fr;
	}

	.hp2 .pld-search--hp .pld-search__submit {
		grid-column: 1 / -1;
	}

	.hp2 .pld-search--hp .button {
		width: 100%;
	}
}
/* =========================================================================
   Hero v3: the photo fills the hero and fades into the cream on the left,
   so the dark text stays easy to read.
   ========================================================================= */
.hp2-hero {
	position: relative;
	padding: clamp(3.5rem, 8vw, 6.5rem) 0 clamp(3.5rem, 8vw, 6rem);
	background:
		linear-gradient(90deg, #faf7f2 0%, #faf7f2 34%, rgba(250, 247, 242, 0.86) 50%, rgba(250, 247, 242, 0.25) 74%, rgba(250, 247, 242, 0) 100%),
		var(--hp2-photo) center 78% / cover no-repeat,
		#faf7f2;
	border-bottom: 1px solid var(--pld-border);
}

.hp2-hero__grid {
	display: block;
}

.hp2-hero__text {
	display: block;
	max-width: 600px;
}

.hp2-hero__text .hp2-eyebrow,
.hp2-hero__text .hp2-lead,
.hp2-hero__text .pld-search--hp,
.hp2-hero__text .hp2-popular {
	grid-column: auto;
	grid-row: auto;
}

.hp2 .hp2-hero__text h1 {
	max-width: 13ch;
	margin: 0 0 var(--pld-space-4);
}

.hp2-hero__text .hp2-lead {
	margin: 0 0 var(--pld-space-6);
}

.hp2 .pld-search--hp {
	max-width: 600px;
}

@media (min-width: 820px) {
	.hp2 .pld-search--hp {
		grid-template-columns: 1fr 1fr auto;
	}

	.hp2 .pld-search--hp .pld-search__submit {
		grid-column: auto;
	}

	.hp2 .pld-search--hp .button {
		width: auto;
	}
}

.hp2-facts {
	margin: var(--pld-space-5) 0 0;
	font-size: var(--pld-fs-sm);
	color: var(--pld-text-muted);
}

.hp2-facts strong {
	font-family: var(--pld-font-display);
	font-size: 1.15rem;
	font-weight: 600;
	color: var(--pld-ink);
}

/* phones: the photo is a soft backdrop only */
@media (max-width: 819px) {
	.hp2-hero {
		background:
			linear-gradient(180deg, rgba(250, 247, 242, 0.94) 0%, rgba(250, 247, 242, 0.9) 60%, rgba(250, 247, 242, 0.6) 100%),
			var(--hp2-photo) 35% bottom / cover no-repeat,
			#faf7f2;
	}
}
@media (max-width: 819px) { .hp2 .pld-search--hp .button { width: 100%; } }

/* =========================================================================
   Hero v4: full-width photo under an even navy tint, white text.
   ========================================================================= */
.hp2-hero {
	color: #ffffff;
	background:
		linear-gradient(180deg, rgba(10, 28, 52, 0.62) 0%, rgba(10, 28, 52, 0.72) 100%),
		var(--hp2-photo) center 70% / cover no-repeat,
		var(--pld-navy);
	border-bottom: 0;
	padding: clamp(4rem, 9vw, 7rem) 0 clamp(4rem, 9vw, 6.5rem);
}

.hp2-hero__text {
	max-width: 720px;
}

.hp2 .hp2-hero__text h1 {
	max-width: 15ch;
	color: #ffffff;
	text-shadow: 0 2px 24px rgba(5, 15, 30, 0.35);
}

.hp2-hero .hp2-eyebrow {
	color: #f1c9b8;
}

.hp2-hero .hp2-lead {
	color: #e1e9f4;
}

.hp2 .hp2-hero .pld-search--hp {
	max-width: 720px;
	border: 0;
	box-shadow: 0 24px 60px rgba(4, 12, 26, 0.5);
}

@media (min-width: 820px) {
	.hp2 .hp2-hero .pld-search--hp {
		grid-template-columns: 1fr 1fr auto;
	}
}

.hp2-hero .hp2-popular {
	color: #c9d7ea;
}

.hp2-hero .hp2-popular a {
	color: #ffffff;
	background: rgba(255, 255, 255, 0.12);
	border-color: rgba(255, 255, 255, 0.3);
}

.hp2-hero .hp2-popular a:hover {
	background: rgba(255, 255, 255, 0.24);
	border-color: #ffffff;
}

.hp2-hero .hp2-facts {
	color: #c9d7ea;
}

.hp2-hero .hp2-facts strong {
	color: #ffffff;
}

@media (max-width: 819px) {
	.hp2-hero {
		background:
			linear-gradient(180deg, rgba(10, 28, 52, 0.7) 0%, rgba(10, 28, 52, 0.82) 100%),
			var(--hp2-photo) 38% center / cover no-repeat,
			var(--pld-navy);
	}
}
.hp2-hero { background: linear-gradient(180deg, rgba(10, 28, 52, 0.46) 0%, rgba(10, 28, 52, 0.7) 100%), var(--hp2-photo) center 70% / cover no-repeat, var(--pld-navy); }
@media (max-width: 819px) { .hp2-hero { background: linear-gradient(180deg, rgba(10, 28, 52, 0.62) 0%, rgba(10, 28, 52, 0.8) 100%), var(--hp2-photo) 38% center / cover no-repeat, var(--pld-navy); } }

/* City tiles: big photo tiles with the name written over the picture */
.hp-cities {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--pld-space-4);
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (min-width: 820px) {
	.hp-cities {
		grid-template-columns: 1.55fr 1fr;
		grid-template-rows: 240px 240px;
	}

	.hp-city--0 {
		grid-row: 1 / span 2;
	}
}

.hp-city {
	position: relative;
	min-height: 230px;
	margin: 0;
	overflow: hidden;
	border-radius: 22px;
	box-shadow: var(--pld-shadow-md);
}

.hp-city a {
	position: absolute;
	inset: 0;
	display: block;
	color: #ffffff;
	text-decoration: none;
}

.hp-city img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.6s ease;
}

.hp-city a:hover img {
	transform: scale(1.05);
}

.hp-city a::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(10, 28, 52, 0) 38%, rgba(10, 28, 52, 0.78) 100%);
}

.hp-city__label {
	position: absolute;
	left: var(--pld-space-5);
	right: var(--pld-space-5);
	bottom: var(--pld-space-4);
	z-index: 1;
	display: grid;
	gap: 2px;
}

.hp-city__label strong {
	font-family: var(--pld-font-display);
	font-size: 1.9rem;
	font-weight: 500;
	line-height: 1.1;
}

.hp-city--0 .hp-city__label strong {
	font-size: 2.8rem;
}

.hp-city__label span {
	font-size: var(--pld-fs-sm);
	color: #e1e9f4;
}
.hp-city--0 img { object-position: 38% 85%; }

/* =========================================================================
   ROLL-OUT v7: the rest of the site matches the home page
   ========================================================================= */

/* List-page banners: city pages use the photo under a navy tint, the others a plain navy band */
body.pld-list-page .pld-banner,
.pld-banner {
	color: #ffffff;
	background:
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='72' height='72' viewBox='0 0 72 72'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.05' stroke-width='1.5'%3E%3Crect x='6' y='6' width='60' height='60' rx='2'/%3E%3Cpath d='M36 6 66 36 36 66 6 36Z'/%3E%3Ccircle cx='36' cy='36' r='11'/%3E%3C/g%3E%3C/svg%3E") center / 72px 72px,
		linear-gradient(120deg, #0b1d36 0%, #10294a 100%);
	border-bottom: 0;
}

body.pld-list-page .pld-banner.pld-banner--photo,
.pld-banner.pld-banner--photo {
	background:
		linear-gradient(180deg, rgba(10, 28, 52, 0.5) 0%, rgba(10, 28, 52, 0.74) 100%),
		var(--pld-banner-photo) center 65% / cover no-repeat,
		var(--pld-navy);
}

.pld-banner .pld-crumbs ol,
.pld-banner .pld-crumbs li,
.pld-banner .pld-crumbs li + li::before {
	color: #c4d2e6;
}

.pld-banner .pld-crumbs a {
	color: #ffffff;
}

.pld-banner__kicker span {
	color: #ffffff;
	background: rgba(255, 255, 255, 0.12);
	border-color: rgba(255, 255, 255, 0.35);
}

body.pld-list-page .pld-banner .entry-title.pld-banner__title,
body.pld-list-page .pld-banner .entry-title {
	color: #ffffff;
	text-shadow: 0 2px 24px rgba(5, 15, 30, 0.3);
}

.pld-banner__pre,
.pld-banner__big {
	color: #ffffff;
}

.pld-banner__intro,
.pld-banner__intro p {
	color: #e1e9f4;
}

.pld-banner__stats {
	border: 0;
	box-shadow: 0 16px 40px rgba(4, 12, 26, 0.3);
}

@media (max-width: 767px) {
	body.pld-list-page .pld-banner,
	body.pld-list-page .pld-banner.pld-banner--photo,
	.pld-banner.pld-banner--photo {
		background:
			url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='72' height='72' viewBox='0 0 72 72'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.05' stroke-width='1.5'%3E%3Crect x='6' y='6' width='60' height='60' rx='2'/%3E%3Cpath d='M36 6 66 36 36 66 6 36Z'/%3E%3C/g%3E%3C/svg%3E") center / 72px 72px,
			linear-gradient(160deg, #0b1d36 0%, #10294a 100%);
	}
}

/* results line and cards */
.pld-archive--split .pld-archive__count {
	font-family: var(--pld-font-display);
	font-weight: 500;
	color: var(--pld-ink);
}

/* Sidebar help card: calm cream instead of peach gradient */
.pld-side__help {
	background: #ffffff;
	border: 1px solid var(--pld-border);
}

.pld-side__icon .pld-icon {
	color: var(--pld-accent);
}

/* Profile header: no accent stripe, tabs on one line, no italic */
.pf-hero::after,
.pld-pagehero::after,
.pld-footer::before {
	display: none;
}

.pf-tabs {
	gap: var(--pld-space-1) var(--pld-space-4);
}

.pf-tabs a {
	padding-left: 0;
	padding-right: 0;
	font-size: var(--pld-fs-sm);
}

.pf .pf-contact__title,
.pf .pf-claim__title,
.pf .pf-quick__title {
	font-style: normal;
}

.pf-claim {
	background: #ffffff;
	border: 1px solid var(--pld-border);
}

/* Page banners (About, Contact, Advertise, 404) */
.pld-pagehero {
	background:
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='72' height='72' viewBox='0 0 72 72'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.05' stroke-width='1.5'%3E%3Crect x='6' y='6' width='60' height='60' rx='2'/%3E%3Cpath d='M36 6 66 36 36 66 6 36Z'/%3E%3Ccircle cx='36' cy='36' r='11'/%3E%3C/g%3E%3C/svg%3E") center / 72px 72px,
		linear-gradient(120deg, #0b1d36 0%, #10294a 100%);
}

.pld-pagehero .entry-title {
	font-size: clamp(2.2rem, 1.4rem + 3vw, 3.4rem);
}

/* Footer */
.pld-footer {
	background:
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='72' height='72' viewBox='0 0 72 72'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.035' stroke-width='1.5'%3E%3Crect x='6' y='6' width='60' height='60' rx='2'/%3E%3Cpath d='M36 6 66 36 36 66 6 36Z'/%3E%3Ccircle cx='36' cy='36' r='11'/%3E%3C/g%3E%3C/svg%3E") center / 72px 72px,
		var(--pld-navy-dark);
}

.pld-footer .pld-footer__name {
	font-family: var(--pld-font-display);
	font-size: 1.5rem;
	font-weight: 500;
}
/* profile header: same navy as the rest of the site */
.pf-hero {
	background:
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='72' height='72' viewBox='0 0 72 72'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.05' stroke-width='1.5'%3E%3Crect x='6' y='6' width='60' height='60' rx='2'/%3E%3Cpath d='M36 6 66 36 36 66 6 36Z'/%3E%3Ccircle cx='36' cy='36' r='11'/%3E%3C/g%3E%3C/svg%3E") center / 72px 72px,
		linear-gradient(120deg, #0b1d36 0%, #10294a 100%);
}
/* =========================================================================
   HEADER v8: slim top strip, sticky white header, soft pill menu
   ========================================================================= */
.pld-topbar {
	color: #c4d2e6;
	background: var(--pld-navy-dark);
	font-size: 0.8125rem;
}

.pld-topbar__in {
	display: flex;
	gap: var(--pld-space-4);
	align-items: center;
	justify-content: space-between;
	max-width: var(--pld-container);
	margin: 0 auto;
	padding: 0.45rem var(--pld-space-5);
}

.pld-topbar p {
	margin: 0;
}

.pld-topbar__links {
	display: flex;
	gap: var(--pld-space-4);
}

.pld-topbar a {
	color: #ffffff;
	text-decoration: none;
}

.pld-topbar a:hover {
	text-decoration: underline;
}

@media (max-width: 700px) {
	.pld-topbar__in > p:first-child { display: none; }
	.pld-topbar__in { justify-content: flex-end; }
}

body .site-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: rgba(255, 255, 255, 0.94);
	backdrop-filter: saturate(160%) blur(10px);
	box-shadow: 0 1px 0 var(--pld-border), 0 8px 24px rgba(16, 41, 74, 0.04);
}

body.admin-bar .site-header { top: 32px; }

body .inside-header {
	padding-top: 0.55rem;
	padding-bottom: 0.55rem;
}

body .main-navigation .main-nav ul li > a {
	border-radius: 10px;
	transition: background-color 0.15s ease, color 0.15s ease;
}

body .main-navigation .main-nav ul li:not(.pld-menu-cta):not([class*="current-menu-"]):hover > a,
body .main-navigation .main-nav ul li.sfHover:not(.pld-menu-cta):not([class*="current-menu-"]) > a {
	color: var(--pld-navy);
	background: #f1ede5;
}

body .main-navigation .main-nav ul li[class*="current-menu-"]:not(.pld-menu-cta) > a {
	color: var(--pld-navy);
	font-weight: 600;
	background: #f1ede5;
	box-shadow: none;
}

body .main-navigation .main-nav ul li.pld-menu-cta > a {
	border-radius: 999px;
	box-shadow: 0 6px 16px rgba(196, 85, 58, 0.28);
}

body .main-navigation .main-nav ul li.pld-menu-cta:hover > a {
	box-shadow: 0 8px 20px rgba(196, 85, 58, 0.38);
}

body .main-navigation ul ul {
	margin-top: 8px;
	padding: 10px;
	min-width: 240px;
	border-radius: 16px;
	box-shadow: 0 18px 44px rgba(16, 41, 74, 0.16);
}

body .main-navigation .main-nav ul ul li a {
	padding: 0.6rem 0.9rem;
	font-weight: 500;
	border-radius: 10px;
}

body .main-navigation .main-nav ul ul li:hover > a,
body .main-navigation .main-nav ul ul li:focus-within > a {
	background: #f1ede5;
}
/* =========================================================================
   FOOTER v8
   ========================================================================= */
@media (min-width: 960px) {
	.pld-footer__inner {
		grid-template-columns: 1.5fr 0.8fr 1.1fr 1.1fr 1fr;
		gap: var(--pld-space-6) var(--pld-space-7);
	}
}

.pld-footer__brand p:not(.pld-footer__name) {
	max-width: 34ch;
	margin-bottom: var(--pld-space-4);
	color: #aebdd3;
}

.pld-footer .pld-footer__name {
	font-size: 1.7rem;
}

.pld-footer a.pld-footer__btn {
	display: inline-block;
	padding: 0.65rem 1.4rem;
	font-weight: 600;
	color: #ffffff;
	text-decoration: none;
	background: var(--pld-accent);
	border-radius: 999px;
}

.pld-footer a.pld-footer__btn:hover {
	background: var(--pld-accent-dark);
	text-decoration: none;
}

.pld-footer .pld-footer__col a {
	color: #dbe6f3;
	font-size: var(--pld-fs-sm);
	text-decoration: none;
}

.pld-footer .pld-footer__col a:hover {
	color: #ffffff;
	text-decoration: underline;
	text-decoration-color: var(--pld-accent);
	text-underline-offset: 4px;
}

.pld-footer .pld-footer__col li {
	margin-bottom: 0.55rem;
}

.pld-footer .pld-footer__legal {
	color: #8fa2bd;
	font-size: var(--pld-fs-xs);
	border-top-color: rgba(255, 255, 255, 0.12);
}

body .site-info {
	font-size: var(--pld-fs-xs);
	color: #8fa2bd;
	background: var(--pld-navy-dark);
	border-top: 1px solid rgba(255, 255, 255, 0.08);
}
@media (min-width: 640px) {
	.pld-footer__col--cities ul { column-count: 2; column-gap: 1.5rem; }
	.pld-footer__col--cities li { break-inside: avoid; }
}
@media (min-width: 960px) { .pld-footer__inner { grid-template-columns: 1.4fr 0.8fr 1.5fr 1.1fr 1fr; } }

body .site-header { background: #ffffff; backdrop-filter: none; }

/* =========================================================================
   MENU FIX: only the dropdown under the pointer is open and highlighted.
   - no open delay, no fade-out lag
   - the leftover "sfHover" class (set by focus/click) no longer keeps anything open
   - no dead gap between a button and its dropdown
   - keyboard users still get the dropdown (focus-visible only)
   ========================================================================= */
@media (min-width: 1025px) {
	body .main-navigation ul ul {
		margin-top: 0 !important;
		transition: none !important;
		transition-delay: 0s !important;
	}

	/* invisible bridge so the pointer can travel from the button to the list */
	body .main-navigation .main-nav > ul > li.menu-item-has-children > ul::before {
		content: "";
		position: absolute;
		left: 0;
		right: 0;
		top: -10px;
		height: 10px;
	}

	body .main-navigation .main-nav > ul > li.menu-item-has-children > ul {
		top: 100%;
	}

	/* closed unless the pointer is on it or a keyboard user is inside it */
	body .main-navigation:not(.toggled) ul li.sfHover:not(:hover):not(:has(:focus-visible)) > ul {
		left: -99999px !important;
		opacity: 0 !important;
		pointer-events: none !important;
		height: 0 !important;
		overflow: hidden !important;
	}

	body .main-navigation:not(.toggled) ul li:hover > ul,
	body .main-navigation:not(.toggled) ul li:has(> a:focus-visible) > ul,
	body .main-navigation:not(.toggled) ul li:has(> ul :focus-visible) > ul {
		transition-delay: 0s !important;
	}

	/* highlights follow the pointer only */
	body .main-navigation .main-nav ul li.sfHover:not(:hover):not(.pld-menu-cta):not([class*="current-menu-"]) > a {
		background: transparent;
	}

	body .main-navigation .main-nav > ul:hover > li[class*="current-menu-"]:not(:hover):not(.pld-menu-cta) > a {
		background: transparent;
	}

	body .main-navigation .main-nav > ul > li > a:focus:not(:focus-visible) {
		outline: none;
		background-color: transparent;
	}

	body .main-navigation .main-nav ul ul li:focus-within:not(:hover) > a {
		background: transparent;
	}

	body .main-navigation .main-nav ul ul li:hover > a,
	body .main-navigation .main-nav ul ul li > a:focus-visible {
		background: #f1ede5;
	}
}
/* menu highlights switch instantly, no fade */
body .main-navigation .main-nav ul li > a,
body .main-navigation .main-nav ul li > a:hover,
body .main-navigation .main-nav ul ul li > a { transition: none !important; }

/* footer links: one line each, tidy hover underline */
.pld-footer .pld-footer__col a {
	display: inline-block;
	line-height: 1.4;
	white-space: nowrap;
	text-decoration: none;
	border-bottom: 1px solid transparent;
}

.pld-footer .pld-footer__col a:hover {
	text-decoration: none;
	border-bottom-color: var(--pld-accent);
}

@media (min-width: 960px) {
	.pld-footer__inner { grid-template-columns: 1.3fr 1fr 1.5fr 1.1fr 1fr; }
}
@media (min-width: 960px) {
	.pld-footer__inner { grid-template-columns: 1.7fr 1fr 1.5fr 1.15fr 1fr; gap: var(--pld-space-6) var(--pld-space-6); }
	.pld-footer .pld-footer__name { line-height: 1.2; }
}

/* full-width banners use 100vw, which includes the scrollbar: never let it scroll sideways */
html { overflow-x: clip; }

.pld-footer__legal-links { display: inline-flex; gap: 1.25rem; margin-left: 1.25rem; }
.pld-footer__legal-links a { color: #dbe6f3; text-decoration: underline; text-underline-offset: 3px; }

.pld-pagebody__content ul li::before { background: var(--pld-navy); }

/* Official information card on the visa pages */
.pld-official h3 {
	margin: var(--pld-space-5) 0 var(--pld-space-2);
	font-size: 1.3rem;
}

.pld-official h3:first-of-type { margin-top: var(--pld-space-3); }

.pld-official ul,
.pld-official ol {
	margin: 0 0 var(--pld-space-3) 1.25rem;
	padding: 0;
}

.pld-official li {
	margin-bottom: 0.45rem;
	max-width: 70ch;
}

.pld-official p {
	max-width: 70ch;
}

.pld-official a {
	color: var(--pld-accent-dark);
	text-underline-offset: 3px;
}

.pld-official__note {
	margin-top: var(--pld-space-5);
	padding: var(--pld-space-3) var(--pld-space-4);
	font-size: var(--pld-fs-sm);
	color: var(--pld-text);
	background: #f6f2ea;
	border-left: 4px solid var(--pld-accent);
	border-radius: 8px;
}
/* Footer: same left and right edges as the header and page content, bottom lines centred */
.pld-footer__inner,
.pld-footer .pld-footer__legal {
	max-width: calc(var(--pld-container) - 2 * var(--pld-space-5));
}

.pld-footer .pld-footer__legal {
	text-align: center;
}

.pld-footer__legal-links {
	justify-content: center;
	margin-left: 0;
	margin-top: var(--pld-space-2);
}

/* Cities menu: 17 cities in a compact three-column panel, not one tall list (desktop only) */
@media (min-width: 1025px) {
	body .main-navigation .main-nav ul li#menu-item-26 > ul.sub-menu {
		display: grid;
		grid-auto-flow: column;
		grid-template-rows: repeat(6, auto);
		grid-template-columns: repeat(3, max-content);
		gap: 0 var(--pld-space-2);
		width: auto;
	}

	body .main-navigation .main-nav ul li#menu-item-26 > ul.sub-menu > li {
		width: auto;
		float: none;
	}

	body .main-navigation .main-nav ul li#menu-item-26 > ul.sub-menu > li > a {
		padding-top: 0.35rem;
		padding-bottom: 0.35rem;
	}
}

/* Home page listing cards: content stays at the top with even gaps when a taller neighbour stretches the card, and tag text is centred in its pill */
.hp2-listing {
	align-content: start;
}

.hp2-listing__tags {
	align-content: flex-start;
	align-items: flex-start;
}

.hp2-listing__tags span {
	display: inline-flex;
	align-items: center;
	line-height: 1.5;
}
/* Phone menu: the open menu scrolls inside the screen, so nothing below Cities can be cut off, and the cities list is two columns */
@media (max-width: 1024px) {
	body .main-navigation.toggled .main-nav {
		max-height: calc(100vh - 150px);
		max-height: calc(100dvh - 150px);
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		overscroll-behavior: contain;
	}

	body .main-navigation .main-nav ul li#menu-item-26 > ul.sub-menu {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	body .main-navigation .main-nav ul li#menu-item-26 > ul.sub-menu[style*="display: none"],
	body .main-navigation .main-nav ul li#menu-item-26:not(.sfHover) > ul.sub-menu:not(.toggled-on) {
		display: none;
	}

	body .main-navigation .main-nav ul li#menu-item-26 > ul.sub-menu.toggled-on {
		display: grid;
	}

	body .main-navigation.toggled .main-nav ul ul li a {
		padding-left: var(--pld-space-4);
		padding-right: var(--pld-space-2);
		white-space: normal;
		line-height: 1.3;
		min-height: 44px;
		display: flex;
		align-items: center;
	}
}
/* Phone header: no empty row under the logo, logo and menu button on the same centre line */
@media (max-width: 768px) {
	body .inside-header {
		row-gap: 0;
		align-items: center;
	}

	body .main-navigation .menu-toggle {
		top: 0.55rem;
		display: flex;
		align-items: center;
		justify-content: center;
		height: 46px;
		min-height: 44px;
		padding: 0 14px;
		line-height: 1;
	}

	body .main-navigation.toggled {
		margin-top: var(--pld-space-2);
	}

	body .main-navigation.toggled .main-nav {
		max-height: calc(100vh - 130px);
		max-height: calc(100dvh - 130px);
	}
}
/* Form confirmation: when the page jumps to the form, leave room for the sticky header so the "message sent" notice is not hidden under it */
#pld-form {
	scroll-margin-top: 110px;
}
/* =========================================================================
   FOOTER: fold the long lists on phones (Cities, Practice areas)
   ========================================================================= */
.pld-footer__fold > summary {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	cursor: pointer;
	list-style: none;
	padding: 0.35rem 0;
}
.pld-footer__fold > summary::-webkit-details-marker { display: none; }
.pld-footer__fold > summary::after {
	content: "";
	width: 0.55rem;
	height: 0.55rem;
	margin-left: 0.7rem;
	border-right: 2px solid #aebdd3;
	border-bottom: 2px solid #aebdd3;
	transform: rotate(45deg);
	transition: transform 0.15s ease;
}
.pld-footer__fold[open] > summary::after { transform: rotate(-135deg); }
.pld-footer__fold > summary:focus-visible { outline: 2px solid var(--pld-accent); outline-offset: 3px; }
@media (max-width: 639px) {
	.pld-footer__col--cities ul { column-count: 2; column-gap: 1.5rem; }
	.pld-footer__col--cities li { break-inside: avoid; }
	.pld-footer__fold > summary { padding: 0.6rem 0; }
}
@media (min-width: 640px) {
	.pld-footer__fold > summary { display: block; pointer-events: none; cursor: default; padding: 0; }
	.pld-footer__fold > summary::after { display: none; }
}
/* =========================================================================
   BLOG: article list page and single article
   ========================================================================= */
.pld-blog__intro {
	max-width: 46rem;
	color: var(--pld-text-muted);
	font-size: var(--pld-fs-lg);
}
.pld-blog__intro p { margin: 0; }
.pld-blog__list {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--pld-space-5);
}
@media (min-width: 760px) {
	.pld-blog__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.pld-postcard {
	display: flex;
	flex-direction: column;
	padding: var(--pld-space-5) var(--pld-space-6);
	background: #ffffff;
	border: 1px solid var(--pld-border);
	border-radius: var(--pld-radius-lg);
	box-shadow: var(--pld-shadow-sm);
}
.pld-postcard__meta {
	margin: 0 0 var(--pld-space-2);
	color: var(--pld-text-muted);
	font-size: var(--pld-fs-xs);
	letter-spacing: 0.04em;
	text-transform: uppercase;
}
.pld-postcard .pld-postcard__title {
	margin: 0 0 var(--pld-space-3);
	color: var(--pld-navy);
	font-size: var(--pld-fs-h3);
	line-height: 1.25;
}
.pld-postcard .pld-postcard__title a {
	color: inherit;
	text-decoration: none;
}
.pld-postcard .pld-postcard__title a:hover { text-decoration: underline; text-underline-offset: 4px; }
.pld-postcard__excerpt {
	margin: 0 0 var(--pld-space-4);
	color: var(--pld-text);
	font-size: var(--pld-fs-sm);
}
.pld-postcard__more { margin: auto 0 0; }
.pld-postcard__more a {
	color: var(--pld-accent);
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 4px;
}
.pld-blog .navigation.pagination { margin-top: var(--pld-space-3); }
.pld-blog .nav-links { display: flex; flex-wrap: wrap; gap: var(--pld-space-2); }
.pld-blog .page-numbers {
	padding: 0.5rem 0.9rem;
	color: var(--pld-navy);
	background: #ffffff;
	border: 1px solid var(--pld-border);
	border-radius: var(--pld-radius-pill);
	text-decoration: none;
}
.pld-blog .page-numbers.current { color: #ffffff; background: var(--pld-navy); border-color: var(--pld-navy); }
.pld-article__meta {
	margin: 0 0 var(--pld-space-4);
	color: var(--pld-text-muted);
	font-size: var(--pld-fs-sm);
}
.pld-article__note {
	margin-top: var(--pld-space-6);
	padding-top: var(--pld-space-4);
	color: var(--pld-text-muted);
	font-size: var(--pld-fs-sm);
	border-top: 1px solid var(--pld-border);
}
.pld-article__back a {
	color: var(--pld-accent);
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 4px;
}
@media (min-width: 960px) {
	.pld-pagebody--article .pld-pagebody__content { max-width: 52rem; margin: 0 auto; width: 100%; }
}

/* Blog list and single article use the same stacked banner + card layout as ordinary pages */
body.blog .site-content,
body.single-post .site-content {
	display: block;
	max-width: none;
	padding: 0;
	margin: 0;
}
body.blog .content-area,
body.single-post .content-area {
	width: 100%;
}

/* Same strength as the ordinary-page rule, so it wins over the theme's flex layout */
body.blog:not(.home):not(.pld-list-page) .site-content,
body.single-post:not(.home):not(.pld-list-page) .site-content {
	display: block;
	max-width: none;
	padding: 0;
	margin: 0;
}
body.blog:not(.home):not(.pld-list-page) .content-area,
body.single-post:not(.home):not(.pld-list-page) .content-area {
	width: 100%;
}

/* Blog list, second pass: featured card, tags, buttons, find-a-lawyer panel */
.pld-blog { gap: var(--pld-space-6); }
.pld-blog__intro { max-width: 40rem; font-size: var(--pld-fs-base); }
.pld-postcard { padding: var(--pld-space-5) var(--pld-space-6) var(--pld-space-6); }
.pld-postcard__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--pld-space-3);
}
.pld-postcard__tag {
	padding: 0.2rem 0.7rem;
	color: var(--pld-navy);
	font-size: var(--pld-fs-xs);
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	background: var(--pld-navy-soft);
	border-radius: var(--pld-radius-pill);
}
.pld-postcard__more { margin-top: auto; }
.pld-postcard .pld-postcard__more a.pld-postcard__btn {
	display: inline-block;
	padding: 0.6rem 1.3rem;
	color: #ffffff;
	font-weight: 600;
	text-decoration: none;
	background: var(--pld-accent);
	border-radius: var(--pld-radius-pill);
}
.pld-postcard .pld-postcard__more a.pld-postcard__btn:hover { background: var(--pld-accent-dark); }
.pld-postcard--featured {
	grid-column: 1 / -1;
	padding: var(--pld-space-6);
	border-left: 5px solid var(--pld-navy);
}
.pld-postcard--featured .pld-postcard__title { font-size: clamp(1.6rem, 1.2rem + 1.4vw, 2.3rem); max-width: 40rem; }
.pld-postcard--featured .pld-postcard__excerpt { max-width: 40rem; font-size: var(--pld-fs-base); }
.pld-blog__cta {
	display: flex;
	flex-direction: column;
	gap: var(--pld-space-4);
	align-items: flex-start;
	padding: var(--pld-space-6);
	color: #ffffff;
	background: var(--pld-navy);
	border-radius: var(--pld-radius-lg);
}
.pld-blog__cta h2 { margin: 0 0 var(--pld-space-2); color: #ffffff; font-size: var(--pld-fs-h3); }
.pld-blog__cta p { margin: 0; color: #dbe6f3; }
.pld-blog__cta a.pld-blog__ctabtn {
	flex: none;
	padding: 0.75rem 1.6rem;
	color: #ffffff;
	font-weight: 600;
	text-decoration: none;
	background: var(--pld-accent);
	border-radius: var(--pld-radius-pill);
}
.pld-blog__cta a.pld-blog__ctabtn:hover { background: var(--pld-accent-dark); }
@media (min-width: 760px) {
	.pld-blog__cta { flex-direction: row; align-items: center; justify-content: space-between; }
}

/* Single article, second pass: banner meta, readable text, side panel */
.pld-pagehero__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--pld-space-2) var(--pld-space-4);
	margin: var(--pld-space-4) 0 var(--pld-space-2);
	color: #dbe6f3;
	font-size: var(--pld-fs-sm);
}
.pld-pagehero__tag {
	padding: 0.2rem 0.75rem;
	color: #ffffff;
	font-size: var(--pld-fs-xs);
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	background: rgba(255, 255, 255, 0.16);
	border-radius: var(--pld-radius-pill);
}
.pld-pagehero--article .entry-title {
	max-width: 22ch;
	font-size: clamp(2rem, 1.4rem + 2vw, 3rem);
	line-height: 1.12;
}
.pld-pagebody--article .pld-pagebody__content {
	padding: var(--pld-space-6) var(--pld-space-5);
	max-width: none;
	margin: 0;
	width: 100%;
}
.pld-pagebody--article .entry-content p,
.pld-pagebody--article .entry-content li {
	font-size: 1.0625rem;
	line-height: 1.75;
}
.pld-pagebody--article .entry-content > p:first-child {
	margin-bottom: var(--pld-space-6);
	color: var(--pld-navy);
	font-size: 1.25rem;
	line-height: 1.6;
}
.pld-pagebody--article .entry-content h2 {
	margin: var(--pld-space-7) 0 var(--pld-space-3);
	padding-top: var(--pld-space-5);
	font-size: var(--pld-fs-h3);
	line-height: 1.25;
	border-top: 1px solid var(--pld-border);
	scroll-margin-top: 7rem;
}
.pld-pagebody--article .entry-content > p:first-child + h2 { margin-top: var(--pld-space-5); }
.pld-pagebody--article .entry-content h2::before { display: none; }
.pld-article__side { display: grid; gap: var(--pld-space-5); }
.pld-article__toc { display: none; }
.pld-article__toc,
.pld-article__find {
	padding: var(--pld-space-5);
	background: #ffffff;
	border: 1px solid var(--pld-border);
	border-radius: var(--pld-radius-lg);
	box-shadow: var(--pld-shadow-sm);
}
.pld-article__toc h2,
.pld-article__find h2 {
	margin: 0 0 var(--pld-space-3);
	color: var(--pld-navy);
	font-size: var(--pld-fs-h5);
	letter-spacing: 0.1em;
	text-transform: uppercase;
}
.pld-article__toc ol { margin: 0; padding: 0; list-style: none; }
.pld-article__toc li { margin: 0 0 var(--pld-space-2); }
.pld-article__toc li::before { display: none; }
.pld-article__toc a {
	color: var(--pld-text);
	font-size: var(--pld-fs-sm);
	text-decoration: none;
}
.pld-article__toc a:hover { color: var(--pld-accent); text-decoration: underline; text-underline-offset: 4px; }
.pld-article__find {
	color: #ffffff;
	background: var(--pld-navy);
	border-color: var(--pld-navy);
}
.pld-article__find h2 { color: #ffffff; font-size: var(--pld-fs-h3); letter-spacing: 0; text-transform: none; }
.pld-article__find p { margin: 0 0 var(--pld-space-4); color: #dbe6f3; }
.pld-article__find a.pld-article__findbtn {
	display: inline-block;
	padding: 0.7rem 1.5rem;
	color: #ffffff;
	font-weight: 600;
	text-decoration: none;
	background: var(--pld-accent);
	border-radius: var(--pld-radius-pill);
}
.pld-article__find a.pld-article__findbtn:hover { background: var(--pld-accent-dark); }
@media (min-width: 640px) {
	.pld-pagebody--article .pld-pagebody__content { padding: var(--pld-space-7) var(--pld-space-7); }
}
@media (min-width: 960px) {
	.pld-pagebody--article {
		grid-template-columns: minmax(0, 1fr) 320px;
		align-items: start;
		gap: var(--pld-space-6);
	}
	.pld-article__side { position: sticky; top: 7rem; }
	.pld-article__toc { display: block; }
}

/* Article photo and blog card photos */
.pld-article__figure { margin: 0 0 var(--pld-space-6); }
.pld-article__figure img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: var(--pld-radius-md);
}
.pld-article__figure figcaption {
	margin-top: var(--pld-space-2);
	color: var(--pld-text-muted);
	font-size: var(--pld-fs-xs);
	line-height: 1.5;
}
.pld-article__figure figcaption a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.pld-postcard { padding: 0; overflow: hidden; }
.pld-postcard__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: var(--pld-space-5) var(--pld-space-6) var(--pld-space-6);
}
.pld-postcard__img { display: block; line-height: 0; }
.pld-postcard__img img { display: block; width: 100%; height: auto; }
.pld-postcard--featured { padding: 0; }
.pld-postcard--featured .pld-postcard__body { padding: var(--pld-space-6); }
@media (min-width: 760px) {
	.pld-postcard--featured { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); }
	.pld-postcard--featured .pld-postcard__img { order: 2; }
	.pld-postcard--featured .pld-postcard__img img { height: 100%; object-fit: cover; }
}

/* Article banner: the title is already the big heading, so the breadcrumb stops at Blog */
.pld-pagehero--article .pld-crumbs li[aria-current="page"] { display: none; }
@media (max-width: 639px) {
	.pld-pagebody--article { padding-left: var(--pld-space-3); padding-right: var(--pld-space-3); }
	.pld-pagebody--article .pld-pagebody__content { padding: var(--pld-space-5) var(--pld-space-4); }
}

/* Photos inside the article text */
.pld-pagebody--article .entry-content figure.wp-block-image { margin: var(--pld-space-6) 0; }
.pld-pagebody--article .entry-content figure.wp-block-image img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: var(--pld-radius-md);
}
.pld-pagebody--article .entry-content figure.wp-block-image figcaption {
	margin: var(--pld-space-2) 0 0;
	color: var(--pld-text-muted);
	font-size: var(--pld-fs-xs);
	line-height: 1.5;
	text-align: left;
}
.pld-pagebody--article .entry-content figure.wp-block-image figcaption a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }

/* Article sections: no divider lines, tighter spacing */
.pld-pagebody--article .entry-content h2 {
	margin: var(--pld-space-6) 0 var(--pld-space-2);
	padding-top: 0;
	border-top: 0;
}
.pld-pagebody--article .entry-content > p:first-child + h2 { margin-top: var(--pld-space-5); }
.pld-pagebody--article .entry-content figure.wp-block-image { margin: var(--pld-space-5) 0; }

/* Article sections: a short divider above each heading */
.pld-pagebody--article .entry-content h2::before {
	content: "";
	display: block;
	position: static;
	width: 2.5rem;
	height: 3px;
	margin: 0 0 var(--pld-space-3);
	background: var(--pld-navy);
	border-radius: 2px;
	transform: none;
}
.pld-pagebody--article .entry-content h2 { margin-top: var(--pld-space-7); }
.pld-pagebody--article .entry-content > p:first-child + h2 { margin-top: var(--pld-space-6); }

/* Make the heading a normal block so the short divider sits above it */
.pld-pagebody--article .entry-content h2 { display: block; }

/* Short divider: centred, same soft grey-blue as the earlier full-width line */
.pld-pagebody--article .entry-content h2::before {
	width: 4rem;
	height: 2px;
	margin: 0 auto var(--pld-space-4);
	background: var(--pld-border);
}

/* =========================================================================
   CLAIM YOUR LISTING form (page /claim-your-listing/)
   ========================================================================= */
.pld-claimform { max-width: 42rem; }
.pld-claimform h2 {
	margin: var(--pld-space-6) 0 var(--pld-space-3);
	font-size: var(--pld-fs-h3);
}
.pld-claimform h2:first-of-type { margin-top: var(--pld-space-4); }
.pld-claimform input[type="checkbox"] {
	flex: none;
	width: 1.15rem;
	height: 1.15rem;
	margin: 0.2rem 0 0;
	accent-color: var(--pld-navy);
}
.pld-claimform .pld-small { display: block; margin-top: var(--pld-space-1); }
.pld-claimform fieldset { margin: 0 0 var(--pld-space-5); padding: 0; border: 0; }
.pld-claimform legend { padding: 0; font-weight: 600; }
.pld-checks {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr));
	gap: var(--pld-space-2) var(--pld-space-4);
	margin-top: var(--pld-space-2);
}
.pld-claimform .pld-checks label,
.pld-claimform .pld-tick,
.pld-claimform .pld-consent {
	display: flex;
	align-items: flex-start;
	gap: 0.6rem;
	font-weight: 400;
}
.pld-claimform .pld-consent { line-height: 1.5; }

/* Form pages: keep the message clear of the sticky header after sending, and use the full width on phones */
#pld-claim,
#pld-form { scroll-margin-top: 6.5rem; }
@media (max-width: 639px) {
	body .pld-pagebody--claim-your-listing,
	body .pld-pagebody--contact { padding-left: 12px; padding-right: 12px; }
	body .pld-pagebody--claim-your-listing .pld-pagebody__content,
	body .pld-pagebody--contact .pld-pagebody__content { padding: 1.25rem 1rem; }
	body #pld-claim > .wp-block-group__inner-container,
	body #pld-form > .wp-block-group__inner-container { padding-left: 0; padding-right: 0; }
}

/* =========================================================================
   CLAIM YOUR LISTING: redesign (cards, two columns, pills, side panel)
   ========================================================================= */
body .pld-pagebody--claim-your-listing .pld-pagebody__content {
	padding: 0;
	background: transparent;
	border: 0;
	box-shadow: none;
}
body .pld-pagebody--claim-your-listing .pld-pagebody__content > p {
	max-width: 46rem;
	color: var(--pld-text-muted);
	font-size: var(--pld-fs-lg);
}
body #pld-claim > .wp-block-group__inner-container {
	max-width: none;
	padding-left: 0;
	padding-right: 0;
}
.pld-claimlayout {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--pld-space-5);
	align-items: start;
	margin-top: var(--pld-space-5);
}
@media (min-width: 960px) {
	.pld-claimlayout { grid-template-columns: minmax(0, 1fr) 19.5rem; gap: var(--pld-space-6); }
	.pld-claimside { position: sticky; top: 7rem; }
}
.pld-claimform { max-width: none; }
.pld-claimform .pld-notice { margin: 0 0 var(--pld-space-5); }

/* Cards */
.pld-claimform .pld-card {
	margin: 0 0 var(--pld-space-5);
	padding: var(--pld-space-5);
	background: #ffffff;
	border: 1px solid var(--pld-border);
	border-radius: var(--pld-radius-lg);
	box-shadow: var(--pld-shadow-sm);
}
.pld-claimform .pld-card h2 {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin: 0 0 var(--pld-space-4);
	font-size: var(--pld-fs-h3);
	line-height: 1.2;
}
.pld-claimform .pld-step {
	display: inline-flex;
	flex: none;
	align-items: center;
	justify-content: center;
	width: 2rem;
	height: 2rem;
	color: #ffffff;
	font-family: var(--pld-font);
	font-size: 0.95rem;
	font-weight: 600;
	background: var(--pld-navy);
	border-radius: 50%;
}
.pld-claimform .pld-lead { margin: -0.5rem 0 var(--pld-space-4); }
.pld-claimform .pld-card p { margin-bottom: var(--pld-space-4); }
.pld-claimform .pld-card p:last-child { margin-bottom: 0; }
.pld-claimform .pld-grid2 {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 0 var(--pld-space-5);
}
@media (min-width: 700px) {
	.pld-claimform .pld-grid2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Tick boxes as pills */
.pld-claimform .pld-checks { gap: var(--pld-space-2); grid-template-columns: repeat(auto-fill, minmax(11.5rem, 1fr)); }
.pld-claimform .pld-checks label {
	align-items: center;
	margin: 0;
	padding: 0.55rem 0.9rem;
	background: #ffffff;
	border: 1px solid var(--pld-border);
	border-radius: var(--pld-radius-pill);
	cursor: pointer;
}
.pld-claimform .pld-checks label:hover { border-color: var(--pld-navy); }
.pld-claimform .pld-checks label:has(input:checked) {
	background: var(--pld-navy-soft);
	border-color: var(--pld-navy);
	font-weight: 600;
}
.pld-claimform .pld-checks input { margin: 0; }
.pld-claimform .pld-checks-wrap { margin-bottom: var(--pld-space-5); }
.pld-claimform .pld-tick span,
.pld-claimform .pld-consent span { flex: 1 1 auto; min-width: 0; }
.pld-claimform .pld-tick { align-items: center; }

/* Send card */
.pld-claimform .pld-card--send { background: var(--pld-navy-soft); border-color: transparent; box-shadow: none; }
.pld-claimform .pld-card--send .button { min-width: 12rem; }
@media (max-width: 639px) {
	.pld-claimform .pld-card { padding: var(--pld-space-4); }
	.pld-claimform .pld-card--send .button { width: 100%; }
}

/* Side panel */
.pld-claimside {
	padding: var(--pld-space-5);
	color: #ffffff;
	background: var(--pld-navy);
	border-radius: var(--pld-radius-lg);
}
.pld-claimside h2 {
	margin: 0 0 var(--pld-space-4);
	color: #ffffff;
	font-size: var(--pld-fs-h3);
}
.pld-claimside ol { margin: 0; padding: 0; list-style: none; counter-reset: pld-s; }
.pld-claimside li {
	position: relative;
	margin: 0 0 var(--pld-space-4);
	padding-left: 2.4rem;
	color: #dbe6f3;
	font-size: var(--pld-fs-sm);
	line-height: 1.5;
	counter-increment: pld-s;
}
.pld-claimside li::before {
	content: counter(pld-s);
	position: absolute;
	left: 0;
	top: 0.05rem;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 1.7rem;
	height: 1.7rem;
	color: var(--pld-navy);
	font-size: 0.85rem;
	font-weight: 600;
	background: #ffffff;
	border-radius: 50%;
}
.pld-claimside li strong { color: #ffffff; }
.pld-claimside__note {
	margin: var(--pld-space-4) 0 0;
	padding-top: var(--pld-space-4);
	color: #aebdd3;
	font-size: var(--pld-fs-xs);
	border-top: 1px solid rgba(255, 255, 255, 0.18);
}

/* Claim page: the theme forces a white box around page text, so beat it to let the cards sit on the cream background */
body .pld-pagebody--claim-your-listing .pld-pagebody__content {
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
}
.pld-claimform .pld-checks-wrap > .pld-small { margin: 0.35rem 0 0.6rem; }
.pld-claimform .pld-checks-wrap legend { margin-bottom: 0; }
.pld-claimform .pld-checks { margin-top: 0; }

@media (max-width: 639px) {
	.pld-claimform .pld-checks { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.5rem; }
	.pld-claimform .pld-checks label { padding: 0.5rem 0.65rem; font-size: var(--pld-fs-sm); gap: 0.45rem; }
}


/* Article page, design 2 (chosen by the owner 2026-10-29): title strip, then contents on the left and the article on the right.
   Classes pld-art*. The older pld-pagebody--article rules above are unused. */
body.single-post .pld-art {
	background: var(--pld-bg);
	padding-bottom: 4rem;
	color: var(--pld-text);
}
.pld-art__head {
	max-width: 68rem;
	margin: 0 auto;
	padding: 2rem 1.5rem 1.75rem;
	border-bottom: 1px solid var(--pld-border);
}
.pld-art__crumbs { display: flex; flex-wrap: wrap; gap: 0.5rem; font-size: 0.875rem; color: var(--pld-text-muted); }
.pld-art__crumbs a { color: var(--pld-text-muted); text-decoration: underline; text-underline-offset: 3px; }
.pld-art__crumbs a:hover { color: var(--pld-navy); }
.pld-art__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem 1rem;
	margin: 1.25rem 0 0;
	font-size: 0.9375rem;
	color: var(--pld-text-muted);
}
.pld-art__tag {
	padding: 0.25rem 0.75rem;
	border-radius: 999px;
	background: var(--pld-navy-soft);
	color: var(--pld-navy);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}
body.single-post .pld-art__title {
	margin: 0.75rem 0 0;
	max-width: 30ch;
	font-family: var(--pld-font-display);
	font-size: clamp(2rem, 1.4rem + 2.4vw, 3rem);
	font-weight: 500;
	line-height: 1.12;
	letter-spacing: -0.01em;
	color: var(--pld-navy);
	text-wrap: balance;
}

.pld-art__grid {
	max-width: 68rem;
	margin: 0 auto;
	padding: 1.75rem 1.5rem 0;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 1.25rem;
}
@media (min-width: 900px) {
	.pld-art__grid.has-toc { grid-template-columns: 14.5rem minmax(0, 1fr); gap: 3rem; padding-top: 2.25rem; }
}

/* Contents: left column on wide screens, collapsed bar on phones */
.pld-art__toc { display: none; }
.pld-art__tocm {
	background: #ffffff;
	border: 1px solid var(--pld-border);
	border-radius: 12px;
	font-size: 1rem;
}
.pld-art__tocm summary {
	padding: 0.85rem 1.1rem;
	cursor: pointer;
	font-weight: 700;
	color: var(--pld-navy);
}
.pld-art__tocm ol { margin: 0; padding: 0 1.1rem 0.9rem 2.2rem; }
.pld-art__tocm li { padding: 0.3rem 0; }
.pld-art__tocm a { color: var(--pld-navy); text-decoration: none; }
.pld-art__tocm a:hover { color: var(--pld-accent-dark); text-decoration: underline; }
@media (min-width: 900px) {
	.pld-art__tocm { display: none; }
	.pld-art__toc {
		display: block;
		position: sticky;
		top: 1.5rem;
		align-self: start;
		max-height: calc(100vh - 3rem);
		overflow-y: auto;
		font-size: 0.9rem;
	}
	.pld-art__toclabel {
		margin: 0 0 0.6rem;
		font-size: 0.75rem;
		font-weight: 700;
		letter-spacing: 0.08em;
		text-transform: uppercase;
		color: var(--pld-text-muted);
	}
	.pld-art__toc a {
		display: block;
		padding: 0.45rem 0 0.45rem 0.85rem;
		border-left: 2px solid var(--pld-border);
		color: var(--pld-text-muted);
		line-height: 1.35;
		text-decoration: none;
	}
	.pld-art__toc a:hover { color: var(--pld-navy); border-left-color: var(--pld-navy); }
	.pld-art__toc a.is-active { border-left-color: var(--pld-navy); color: var(--pld-navy); font-weight: 600; }
}

/* The article */
.pld-art__main { min-width: 0; max-width: 44rem; font-size: 1.0625rem; line-height: 1.75; }
.pld-art__hero { margin: 0 0 1.5rem; }
.pld-art__hero img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 12px; }
.pld-art__hero figcaption,
.pld-art__text figure.wp-block-image figcaption {
	margin-top: 0.5rem;
	font-size: 0.8125rem;
	line-height: 1.5;
	color: var(--pld-text-muted);
}
.pld-art__hero figcaption a,
.pld-art__text figure.wp-block-image figcaption a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }

.pld-art__text p { margin: 0 0 1.2rem; }
.pld-art__lead p:first-child {
	font-family: var(--pld-font-display);
	font-size: 1.3125rem;
	line-height: 1.55;
	color: var(--pld-navy);
}
.pld-art__text a { color: var(--pld-accent-dark); text-decoration: underline; text-underline-offset: 3px; }
.pld-art__text a:hover { color: var(--pld-accent); }
.pld-art__text ul,
.pld-art__text ol { margin: 0 0 1.4rem; padding-left: 1.35rem; }
.pld-art__text li { margin: 0 0 0.55rem; padding-left: 0.25rem; }
.pld-art__text li::marker { color: var(--pld-navy); }

.pld-art__sec h2,
.pld-art__glance h2,
.pld-art__sources h2 {
	display: block;
	margin: 0 0 0.9rem;
	font-family: var(--pld-font-display);
	font-weight: 600;
	line-height: 1.2;
	color: var(--pld-navy);
	scroll-margin-top: 1.5rem;
}
.pld-art__sec h2::before,
.pld-art__glance h2::before,
.pld-art__sources h2::before { display: none; }
.pld-art__sec { margin: 2.25rem 0 0; padding-top: 1.25rem; border-top: 1px solid var(--pld-border); }
.pld-art__sec h2 { font-size: clamp(1.5rem, 1.3rem + 0.8vw, 1.75rem); }

.pld-art__glance {
	margin: 1.5rem 0 0.5rem;
	padding: 1.25rem 1.5rem 0.25rem;
	background: var(--pld-navy-soft);
	border-radius: 12px;
}
.pld-art__glance h2 { font-size: 1.3125rem; margin-bottom: 0.6rem; }
.pld-art__glance ul { font-size: 1rem; line-height: 1.65; }

.pld-art__text figure.wp-block-image { margin: 2rem 0; }
.pld-art__text figure.wp-block-image img { display: block; width: 100%; height: auto; border-radius: 10px; }

.pld-art__sources {
	margin: 2.5rem 0 0;
	padding-top: 1.5rem;
	border-top: 1px solid var(--pld-border);
	font-size: 0.9375rem;
	line-height: 1.65;
	color: var(--pld-text-muted);
}
.pld-art__sources h2 { font-size: 1.25rem; }

.pld-art__note {
	margin: 2rem 0 0;
	padding: 1rem 1.25rem;
	background: var(--pld-navy-soft);
	border-radius: 10px;
	font-size: 0.9375rem;
	line-height: 1.6;
	color: var(--pld-text);
}

.pld-art__cta {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 1.25rem;
	margin: 2.5rem 0 0;
	padding: 1.75rem;
	background: var(--pld-navy);
	border-radius: 16px;
	color: #dbe6f3;
	line-height: 1.6;
}
.pld-art__ctatext h2 {
	margin: 0 0 0.4rem;
	font-family: var(--pld-font-display);
	font-size: 1.5rem;
	font-weight: 600;
	line-height: 1.2;
	color: #ffffff;
}
.pld-art__ctatext h2::before { display: none; }
.pld-art__ctatext p { margin: 0; font-size: 1rem; color: #dbe6f3; }
.pld-art__ctatext a { color: #ffffff; text-decoration: underline; text-underline-offset: 3px; }
a.pld-art__ctabtn {
	display: inline-block;
	flex: none;
	padding: 0.8rem 1.6rem;
	background: var(--pld-accent);
	border-radius: 999px;
	color: #ffffff;
	font-weight: 700;
	text-decoration: none;
}
a.pld-art__ctabtn:hover { background: var(--pld-accent-dark); color: #ffffff; }
@media (min-width: 640px) {
	.pld-art__cta { flex-direction: row; align-items: center; justify-content: space-between; padding: 1.75rem 2rem; }
}

.pld-art__related { max-width: 68rem; margin: 4rem auto 0; padding: 0 1.5rem; }
.pld-art__related h2 {
	margin: 0 0 1.25rem;
	font-family: var(--pld-font-display);
	font-size: 1.625rem;
	font-weight: 600;
	color: var(--pld-navy);
}
.pld-art__related h2::before { display: none; }
.pld-art__relgrid { display: grid; gap: 1.25rem; grid-template-columns: 1fr; }
@media (min-width: 760px) { .pld-art__relgrid { grid-template-columns: repeat(3, 1fr); } }
.pld-art__relcard {
	display: block;
	overflow: hidden;
	background: #ffffff;
	border: 1px solid var(--pld-border);
	border-radius: 14px;
	text-decoration: none;
	color: var(--pld-navy);
}
.pld-art__relcard:hover { border-color: var(--pld-navy); }
.pld-art__relcard img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }
.pld-art__reltitle { display: block; padding: 1rem 1.125rem 1.25rem; font-family: var(--pld-font-display); font-size: 1.1875rem; font-weight: 600; line-height: 1.3; }
.pld-art__back { margin: 1.5rem 0 0; }
.pld-art__back a { color: var(--pld-accent-dark); font-weight: 600; text-decoration: underline; text-underline-offset: 4px; }

@media (max-width: 600px) {
	.pld-art__head { padding: 1.5rem 1.25rem 1.25rem; }
	.pld-art__grid, .pld-art__related { padding-left: 1.25rem; padding-right: 1.25rem; }
	.pld-art__main { font-size: 1rem; }
	.pld-art__lead p:first-child { font-size: 1.1875rem; }
	.pld-art__glance { padding: 1.1rem 1.1rem 0.25rem; }
}
