:root {
	--pbn-background: var(--pbn-colors-background);
	--pbn-surface: var(--pbn-colors-surface);
	--pbn-surface-alt: var(--pbn-colors-surface-alt);
	--pbn-text: var(--pbn-colors-text);
	--pbn-muted: var(--pbn-colors-muted);
	--pbn-accent: var(--pbn-colors-accent);
	--pbn-border: var(--pbn-colors-border);
	--pbn-overlay: var(--pbn-colors-overlay);
	--pbn-display-font: var(--pbn-typography-display-family), Georgia, "Times New Roman", serif;
	--pbn-body-font: var(--pbn-typography-body-family), Inter, ui-sans-serif, system-ui, sans-serif;
	--pbn-base-size: calc(var(--pbn-typography-base-size-px) * 1px);
	--pbn-space: var(--pbn-space-unit);
	--pbn-desktop-gutter: var(--pbn-gutter-min);
	--pbn-mobile-gutter: calc(var(--pbn-spacing-mobile-gutter-px) * 1px);
	--pbn-sidebar-width: var(--pbn-sidebar-min);
	--pbn-catalog-gap: var(--pbn-catalog-gap-min);
	--pbn-section-gap: var(--pbn-section-gap-max);
	--pbn-radius: calc(var(--pbn-spacing-radius-px) * 1px);
}

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

html { scroll-behavior: smooth; }
body {
	margin: 0;
	background: var(--pbn-background);
	color: var(--pbn-text);
	font: 400 var(--pbn-base-size)/1.6 var(--pbn-body-font);
}
body.is-locked { overflow: hidden; }
button,
input,
textarea { font: inherit; }
button,
a { touch-action: manipulation; }
a { color: inherit; }
img,
video { max-width: 100%; }
[hidden] { display: none !important; }
.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.site-frame {
	width: min(var(--pbn-content-max), calc(100% - (var(--pbn-desktop-gutter) * 2)));
	margin-inline: auto;
	padding-inline: var(--pbn-desktop-gutter);
}
.site-header {
	display: grid;
	grid-template-columns: minmax(180px, 1fr) auto minmax(180px, 1fr);
	align-items: center;
	min-height: 104px;
	padding-inline: var(--pbn-desktop-gutter);
	border-bottom: 1px solid var(--pbn-border);
}
.site-header__utility--end { text-align: right; }
.site-header__utility--start {
	display: flex;
	align-items: center;
	gap: 8px;
}
.country-context {
	font-size: 11px;
	color: var(--pbn-muted);
	text-decoration: none;
}
.site-brand {
	display: inline-grid;
	justify-items: center;
	text-decoration: none;
	line-height: 1;
}
.site-brand__mark {
	color: var(--pbn-accent);
	font-family: var(--pbn-display-font);
	font-size: 14px;
}
.site-brand__name {
	font-family: var(--pbn-display-font);
	font-size: clamp(22px, 3vw, 36px);
	font-weight: 600;
}
.site-tagline {
	grid-column: 1 / -1;
	margin: -16px 0 16px;
	text-align: center;
	color: var(--pbn-muted);
	font-size: 13px;
}
.city-trigger,
.menu-toggle,
.profile-search button,
.filter-toggle,
[data-phone],
.contact-console a,
.profile-report button {
	min-height: var(--pbn-control-height);
	border: 1px solid var(--pbn-text);
	border-radius: var(--pbn-radius);
	padding: 8px 14px;
	background: transparent;
	color: var(--pbn-text);
	cursor: pointer;
	text-decoration: none;
}
.menu-toggle { display: none; }
.primary-navigation {
	grid-column: 1 / -1;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: 12px 0;
	border-top: 1px solid var(--pbn-border);
}
.primary-navigation ul {
	display: flex;
	flex-wrap: wrap;
	gap: 20px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.primary-navigation a { text-decoration-thickness: 1px; text-underline-offset: 4px; }
.profile-search { display: flex; }
.profile-search input {
	min-height: var(--pbn-control-height);
	width: min(240px, 28vw);
	border: 1px solid var(--pbn-border);
	border-right: 0;
	border-radius: var(--pbn-radius) 0 0 var(--pbn-radius);
	padding: 8px 12px;
	background: var(--pbn-surface);
	color: var(--pbn-text);
}
.profile-search button { border-radius: 0 var(--pbn-radius) var(--pbn-radius) 0; }

h1,
h2,
h3 {
	font-family: var(--pbn-display-font);
	font-weight: 600;
	line-height: 1.08;
}
.catalog-prologue,
.archive-heading {
	max-width: 820px;
	padding: clamp(48px, 7vw, 88px) 0 24px;
}
.catalog-prologue h1,
.archive-heading h1,
.profile-intro h1 {
	margin: 8px 0 16px;
	font-size: clamp(42px, 7vw, 88px);
	letter-spacing: -.045em;
}
.eyebrow,
.section-index {
	margin: 0;
	color: var(--pbn-accent);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
}

.catalog-shell {
	display: grid;
	grid-template-columns: var(--pbn-sidebar-width) minmax(0, 1fr);
	align-items: start;
	gap: var(--pbn-catalog-gap);
	padding-top: min(24px, var(--pbn-catalog-gap));
}
.catalog-results { min-width: 0; }
.profile-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--pbn-catalog-gap);
}
.profile-card {
	display: grid;
	grid-template-columns: minmax(180px, 42%) minmax(0, 1fr);
	grid-template-rows: auto 1fr auto;
	max-width: 720px;
	max-height: 350px;
	overflow: hidden;
	border: 1px solid var(--pbn-border);
	background: var(--pbn-surface);
}
.profile-card__source-zone { display: contents; }
.profile-card__media {
	grid-column: 1;
	grid-row: 1 / 4;
	display: block;
	align-self: start;
	line-height: 0;
	min-width: 0;
	background: var(--pbn-surface-alt);
}
.profile-card__media img {
	display: block;
	width: 100%;
	height: auto;
	max-height: 330px;
	object-fit: contain;
}
.profile-card__identity,
.profile-card__facts,
.profile-card__action { grid-column: 2; padding-inline: 16px; }
.profile-card__identity {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 10px;
	padding-top: 14px;
}
.profile-card__identity h2 { margin: 0; font-size: clamp(20px, 2.2vw, 28px); }
.profile-card__identity a { text-decoration: none; }
.profile-card__ordinal { color: var(--pbn-accent); font-size: 11px; }
.profile-card__facts {
	display: grid;
	align-content: start;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 5px 12px;
	margin: 12px 0;
}
.profile-card__facts div { min-width: 0; }
.profile-card__facts dt { color: var(--pbn-muted); font-size: 10px; text-transform: uppercase; }
.profile-card__facts dd { margin: 0; overflow-wrap: anywhere; font-size: 13px; }
.profile-card__action {
	display: flex;
	align-items: center;
	gap: 8px;
	padding-bottom: 14px;
	font-size: 12px;
}
.profile-card__action a { color: var(--pbn-accent); font-weight: 700; }
.profile-card__action button { min-height: 36px; padding: 5px 8px; }
.empty-state { grid-column: 1 / -1; }

.catalog-filters {
	position: sticky;
	top: 16px;
	max-height: calc(100vh - 32px);
	overflow: auto;
	border-top: 3px solid var(--pbn-text);
	padding-top: 14px;
	scrollbar-width: thin;
}
.catalog-filters__header { display: flex; justify-content: space-between; align-items: center; }
.catalog-filters__header h2 { margin: 0; font-size: 24px; }
.catalog-filters__header button,
.filter-toggle { display: none; }
.filter-group { border-bottom: 1px solid var(--pbn-border); padding: 14px 0; }
.filter-group summary { cursor: pointer; font-weight: 700; }
.filter-group ul { margin: 10px 0 0; padding: 0; list-style: none; }
.filter-group a {
	display: flex;
	justify-content: space-between;
	gap: 10px;
	padding: 4px 0;
	color: var(--pbn-muted);
	text-decoration: none;
}
.filter-group a:hover { color: var(--pbn-accent); }
.catalog-pagination {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 36px 0 var(--pbn-section-gap);
}
.catalog-pagination [data-pagination-zone] {
	display: flex;
	align-items: center;
	gap: 6px;
	min-height: 44px;
}
.catalog-pagination .page-numbers {
	display: grid;
	place-items: center;
	min-width: 44px;
	min-height: 44px;
	border-bottom: 1px solid var(--pbn-border);
	text-decoration: none;
}
.catalog-pagination .current { border-color: var(--pbn-accent); color: var(--pbn-accent); }
.seo-editorial {
	max-height: 360px;
	overflow: auto;
	margin: 0 0 var(--pbn-section-gap);
	padding: 32px 0;
	border-top: 1px solid var(--pbn-border);
}

.profile-detail { padding: clamp(48px, 7vw, 92px) 0; }
.profile-intro {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: end;
	gap: 28px;
	margin-bottom: var(--pbn-section-gap);
}
.profile-intro .eyebrow,
.profile-intro h1 { grid-column: 1; }
.contact-console {
	grid-column: 2;
	grid-row: 1 / 3;
	display: flex;
	flex-wrap: wrap;
	justify-content: end;
	gap: 8px;
}
.profile-gallery {
	display: grid;
	grid-template-columns: repeat(12, 1fr);
	gap: var(--pbn-catalog-gap);
	margin-bottom: var(--pbn-section-gap);
}
.gallery-chapter { grid-column: 1 / 10; margin: 0; }
.gallery-chapter--1 { grid-column: 4 / 13; }
.gallery-chapter--2 { grid-column: 2 / 12; }
.gallery-chapter button {
	display: block;
	width: 100%;
	border: 0;
	padding: 0;
	background: none;
	cursor: zoom-in;
}
.gallery-chapter img,
.gallery-chapter video { display: block; width: 100%; height: auto; }
.profile-ledger {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--pbn-section-gap) var(--pbn-catalog-gap);
}
.profile-ledger > section { border-top: 1px solid var(--pbn-text); padding-top: 16px; }
.profile-copy { grid-column: 1 / -1; columns: 2; column-gap: var(--pbn-catalog-gap); }
.profile-copy h2,
.profile-copy .section-index { column-span: all; }
.definition-ledger { margin: 0; }
.definition-ledger div,
.price-ledger > div {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
	padding: 9px 0;
	border-bottom: 1px solid var(--pbn-border);
}
.definition-ledger dd { margin: 0; text-align: right; }
.price-ledger > div { grid-template-columns: minmax(0, 1fr) auto auto; }
.services-index ul { columns: 2; margin: 0; padding-left: 20px; }
.profile-report textarea {
	display: block;
	width: 100%;
	min-height: 120px;
	margin: 8px 0 12px;
	border: 1px solid var(--pbn-border);
	background: var(--pbn-surface);
}

.site-footer {
	display: grid;
	grid-template-columns: 1fr auto auto;
	align-items: end;
	gap: 28px;
	margin-top: var(--pbn-section-gap);
	padding: 32px var(--pbn-desktop-gutter);
	border-top: 1px solid var(--pbn-text);
}
.site-footer p { margin: 4px 0 0; color: var(--pbn-muted); }
.site-footer__zone { min-width: 0; }
.city-dialog,
.phone-dialog,
.gallery-lightbox {
	position: fixed;
	z-index: 1000;
	inset: 0;
	background: color-mix(in srgb, var(--pbn-overlay) 92%, transparent);
	color: #fff;
}
.city-dialog,
.phone-dialog { display: grid; place-items: center; padding: 20px; }
.city-dialog__panel,
.phone-dialog > div {
	width: min(760px, 100%);
	max-height: min(760px, calc(100vh - 40px));
	overflow: auto;
	padding: 28px;
	background: var(--pbn-surface);
	color: var(--pbn-text);
}
.city-dialog__panel header { display: flex; justify-content: space-between; align-items: center; }
.city-dialog__panel header button,
.phone-dialog button {
	width: 44px;
	height: 44px;
	border: 0;
	background: transparent;
	font-size: 28px;
	cursor: pointer;
}
.city-dialog__panel input { width: 100%; min-height: 44px; margin: 8px 0 20px; }
.city-dialog__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.city-dialog__grid a { min-height: 44px; padding: 9px; border-bottom: 1px solid var(--pbn-border); }
.gallery-lightbox {
	display: grid;
	grid-template-columns: 52px minmax(0, 1fr) 52px;
	place-items: center;
	gap: 12px;
	padding: 28px;
}
.gallery-lightbox > [data-gallery-close] {
	position: absolute;
	top: 16px;
	right: 16px;
}
.gallery-lightbox button {
	width: 48px;
	height: 48px;
	border: 1px solid #fff;
	background: transparent;
	color: #fff;
	font-size: 28px;
	cursor: pointer;
}
.gallery-lightbox figure { margin: 0; text-align: center; }
.gallery-lightbox img { display: block; max-height: calc(100vh - 80px); object-fit: contain; }

@media (max-width: 1080px) {
	.site-frame { padding-inline: 24px; }
	.profile-card { grid-template-columns: minmax(160px, 44%) minmax(0, 1fr); }
	.profile-card__facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 960px) {
	.menu-toggle { display: inline-block; }
	.primary-navigation {
		display: none;
		align-items: stretch;
		flex-direction: column;
	}
	.primary-navigation.is-open { display: flex; }
	.primary-navigation ul { flex-direction: column; }
	.profile-search input { width: 100%; }
	.site-tagline { display: none; }
	.catalog-shell { grid-template-columns: 1fr; }
	.filter-toggle { display: inline-flex; width: max-content; margin-bottom: 16px; }
	.catalog-filters {
		position: fixed;
		z-index: 900;
		inset: 0;
		display: none;
		max-height: none;
		padding: 24px;
		background: var(--pbn-surface);
	}
	.catalog-filters.is-open { display: block; }
	.catalog-filters__header button { display: block; min-width: 44px; min-height: 44px; }
	.profile-card { grid-template-columns: minmax(145px, 44%) minmax(0, 1fr); }
	.profile-card__action { flex-direction: column; align-items: start; }
}

@media (max-width: 720px) {
	.site-frame { width: min(var(--pbn-content-max), calc(100% - (var(--pbn-mobile-gutter) * 2))); padding-inline: var(--pbn-mobile-gutter); }
	.site-header { grid-template-columns: 1fr auto 1fr; min-height: 84px; padding-inline: var(--pbn-mobile-gutter); }
	.site-brand__name { font-size: 22px; }
	.city-trigger { max-width: 112px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
	.profile-grid { grid-template-columns: 1fr; }
	.profile-card { grid-template-columns: minmax(180px, 42%) minmax(0, 1fr); }
	.profile-intro { grid-template-columns: 1fr; }
	.contact-console { grid-column: 1; grid-row: auto; justify-content: start; }
	.profile-gallery { display: block; }
	.gallery-chapter { margin-bottom: 16px; }
	.profile-ledger { grid-template-columns: 1fr; }
	.profile-copy { grid-column: 1; columns: 1; }
	.site-footer { grid-template-columns: 1fr; align-items: start; padding-inline: var(--pbn-mobile-gutter); }
	.city-dialog__grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 520px) {
	.site-header__utility--start .city-trigger { min-width: 48px; width: 48px; padding: 8px 12px; }
	.site-header__utility--start .city-trigger span { font-size: 0; }
	.site-header__utility--start .city-trigger span::after { content: "⌖"; font-size: 18px; }
	.city-trigger--secondary { min-width: 48px; width: 48px; padding: 8px 12px; overflow: hidden; }
	.city-trigger--secondary span { font-size: 0; }
	.city-trigger--secondary span::after { content: "⌖"; font-size: 18px; }
	.profile-card {
		display: grid;
		grid-template-columns: minmax(140px, 42%) minmax(0, 1fr);
	}
	.profile-card__media { grid-row: 1 / 4; }
	.profile-card__media img { width: 100%; height: auto; max-height: 330px; object-fit: contain; }
	.profile-card__facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.profile-card__identity,
	.profile-card__facts,
	.profile-card__action { padding-inline: 10px; }
	.profile-card__identity { gap: 6px; padding-top: 10px; }
	.profile-card__identity h2 { font-size: 18px; }
	.profile-card__facts { gap: 2px 8px; margin: 6px 0; }
	.profile-card__facts dt { font-size: 8px; }
	.profile-card__facts dd { font-size: 11px; }
	.profile-card__action { flex-direction: row; padding-bottom: 8px; font-size: 10px; }
	.profile-card__action button { min-height: 32px; }
	.city-dialog__grid { grid-template-columns: 1fr; }
	.gallery-lightbox { grid-template-columns: 40px minmax(0, 1fr) 40px; padding: 12px; gap: 4px; }
	.gallery-lightbox button { width: 40px; height: 44px; }
}
