/* GetPulse IDX: every rule is scoped under .gp-idx or a gp- prefixed class (no global selectors). */

.gp-idx {
	--gp-idx-gap: 1rem;
	--gp-idx-border: color-mix(in srgb, currentColor 18%, transparent);
	--gp-idx-muted: color-mix(in srgb, currentColor 68%, transparent);
	--gp-idx-accent: var(--wp--preset--color--primary, #1d4ed8);
	box-sizing: border-box;
}

.gp-idx *,
.gp-idx *::before,
.gp-idx *::after {
	box-sizing: inherit;
}

/* Search bar: one row on wide screens, on its own white surface so it reads
   on hero images. "More filters" is a <details> dropdown. */
.gp-idx-search {
	--gp-idx-field-border: #d4d4d8;
	margin-block-end: calc(var(--gp-idx-gap) * 1.5);
	color: #1f2937;
}

.gp-idx-search__bar {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	padding: 0.5rem;
	background: #fff;
	border: 1px solid var(--gp-idx-field-border);
	border-radius: 0.75rem;
	box-shadow: 0 6px 24px rgb(0 0 0 / 0.08);
}

.gp-idx-search__field {
	flex: 1 1 8.5rem;
	min-width: 0;
}

.gp-idx-search__field--q {
	flex: 3 1 16rem;
}

/* Explicit box-sizing: <details> doesn't pass it on to the panel's fields. */
.gp-idx-search input,
.gp-idx-search select,
.gp-idx-more__toggle {
	box-sizing: border-box;
	display: block;
	width: 100%;
	min-height: 2.75rem;
	margin: 0;
	padding: 0.5rem 0.75rem;
	border: 1px solid var(--gp-idx-field-border);
	border-radius: 0.5rem;
	font: inherit;
	font-size: 0.9375rem;
	line-height: 1.5;
	background: #fff;
	color: inherit;
}

.gp-idx-search input[type="checkbox"] {
	display: inline-block;
	width: auto;
	min-height: 0;
	margin: 0;
	padding: 0;
	accent-color: var(--gp-idx-accent);
}

.gp-idx-search input:focus-visible,
.gp-idx-search select:focus-visible,
.gp-idx-more__toggle:focus-visible,
.gp-idx-sort select:focus-visible,
.gp-idx-view__button:focus-visible,
.gp-idx-button:focus-visible,
.gp-idx a:focus-visible,
.gp-photo-card a:focus-visible {
	outline: 2px solid var(--gp-idx-accent);
	outline-offset: 2px;
}

/* A column flexbox drops the line box Chrome adds after a closed <details>'s summary. */
.gp-idx-more {
	position: relative;
	display: flex;
	flex-direction: column;
	flex: 0 0 auto;
}

.gp-idx-more__toggle {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	width: auto;
	white-space: nowrap;
	cursor: pointer;
	list-style: none;
	user-select: none;
}

.gp-idx-more__toggle::-webkit-details-marker {
	display: none;
}

.gp-idx-more__toggle::after {
	content: "";
	width: 0.45em;
	height: 0.45em;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: translateY(-25%) rotate(45deg);
}

.gp-idx-more[open] .gp-idx-more__toggle::after {
	transform: translateY(25%) rotate(-135deg);
}

.gp-idx-more__count {
	display: inline-grid;
	place-items: center;
	min-width: 1.4em;
	height: 1.4em;
	padding: 0 0.3em;
	border-radius: 999px;
	background: var(--gp-idx-accent);
	color: #fff;
	font-size: 0.75em;
	font-weight: 600;
}

.gp-idx-more__panel {
	position: absolute;
	z-index: 1000;
	inset-block-start: calc(100% + 0.5rem);
	inset-inline-end: 0;
	display: grid;
	gap: 1rem;
	width: min(22rem, 90vw);
	padding: 1rem;
	background: #fff;
	border: 1px solid var(--gp-idx-field-border);
	border-radius: 0.75rem;
	box-shadow: 0 12px 32px rgb(0 0 0 / 0.14);
	text-align: start;
}

.gp-idx-more__group {
	margin: 0;
	padding: 0;
	border: 0;
	min-width: 0;
}

.gp-idx-more__group > label,
.gp-idx-more__group > legend {
	display: block;
	margin: 0 0 0.375rem;
	padding: 0;
	font-size: 0.875rem;
	font-weight: 600;
}

.gp-idx-more__types {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.375rem 0.75rem;
}

.gp-idx-more__types legend {
	grid-column: 1 / -1;
}

.gp-idx-check {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.9375rem;
	cursor: pointer;
}

.gp-idx-button {
	min-height: 2.75rem;
	width: 100%;
	padding: 0.5rem 1.25rem;
	border: 0;
	border-radius: 0.5rem;
	background: var(--gp-idx-accent);
	color: #fff;
	font: inherit;
	font-weight: 600;
	cursor: pointer;
}

.gp-idx-search .gp-idx-search__submit {
	flex: 0 0 auto;
	width: auto;
	padding-inline: 1.75rem;
}

/* Divi module: the module's own Background, Border, Box Shadow and Spacing
   style the bar, so it has none of its own. */
.gp-idx-search--bare {
	margin-block-end: 0;
}

.gp-idx-search--bare .gp-idx-search__bar {
	padding: 0;
	background: none;
	border: 0;
	border-radius: 0;
	box-shadow: none;
}

/* Fields can be given any text colour in Divi (Design > Fields): the
   placeholder follows it, and menu lists keep dark text on white. */
.gp-idx-search--bare .gp-idx-search__field input::placeholder {
	color: currentColor;
	opacity: 0.7;
}

.gp-idx-search--bare .gp-idx-search__field option {
	background: #fff;
	color: #1f2937;
}

/* Phones: the text box and the Search button get their own rows, and the
   More filters panel spans the bar. */
@media (max-width: 640px) {
	.gp-idx-search__field {
		flex-basis: calc(50% - 0.25rem);
	}

	.gp-idx-search .gp-idx-search__field--q,
	.gp-idx-search .gp-idx-search__submit {
		flex-basis: 100%;
	}

	.gp-idx-more {
		position: static;
		flex: 1 1 calc(50% - 0.25rem);
	}

	.gp-idx-more__toggle {
		width: 100%;
		justify-content: space-between;
	}

	.gp-idx-more__panel {
		inset-inline: 0;
		width: auto;
	}
}

/* Results: photo cards with a sticky map beside them. Narrow containers
   (a container query, so it also works in a column) get a List / Map toggle. */
.gp-idx-results {
	container: gp-results / inline-size;
}

.gp-idx-results__bar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem 1.25rem;
	margin-block-end: var(--gp-idx-gap);
}

.gp-idx-results__count {
	margin: 0 auto 0 0;
	padding: 0;
	font-weight: 600;
}

.gp-idx-sort {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin: 0;
	font-size: 0.9375rem;
}

.gp-idx-sort label {
	color: var(--gp-idx-muted);
}

.gp-idx-sort select,
.gp-idx-sort__apply {
	min-height: 2.5rem;
	padding: 0.375rem 0.625rem;
	border: 1px solid var(--gp-idx-border);
	border-radius: 0.5rem;
	font: inherit;
	background: transparent;
	color: inherit;
}

.gp-idx-sort__apply {
	cursor: pointer;
}

.gp-has-js .gp-idx-sort__apply {
	display: none;
}

.gp-idx-view {
	display: none;
	padding: 0.1875rem;
	border: 1px solid var(--gp-idx-border);
	border-radius: 999px;
}

.gp-idx-view__button {
	min-height: 2.25rem;
	padding: 0.25rem 1rem;
	border: 0;
	border-radius: 999px;
	background: transparent;
	color: inherit;
	font: inherit;
	font-size: 0.9375rem;
	cursor: pointer;
}

.gp-idx-view__button[aria-pressed="true"] {
	background: #111;
	color: #fff;
}

.gp-idx-results__body {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 1.5rem;
	align-items: start;
}

.gp-idx-results--map .gp-idx-results__body {
	grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
}

.gp-idx-results__map {
	position: sticky;
	inset-block-start: var(--gp-idx-map-top, 1.5rem);
	height: calc(100vh - var(--gp-idx-map-top, 1.5rem) * 2);
	min-height: 24rem;
	overflow: hidden;
	border: 1px solid var(--gp-idx-border);
	border-radius: 0.75rem;
}

.gp-results-map {
	width: 100%;
	height: 100%;
	background: #e5e7eb;
}

@container gp-results (max-width: 56rem) {
	.gp-idx-results--map .gp-idx-results__body {
		grid-template-columns: minmax(0, 1fr);
	}

	.gp-idx-results--map .gp-idx-results__map {
		display: none;
		position: relative;
		inset-block-start: auto;
		height: 70vh;
	}

	.gp-has-js .gp-idx-results--map .gp-idx-view {
		display: inline-flex;
	}

	.gp-idx-results--map.gp-view-map .gp-idx-results__list {
		display: none;
	}

	.gp-idx-results--map.gp-view-map .gp-idx-results__map {
		display: block;
	}
}

/* Listing grid */
.gp-idx-grid {
	display: grid;
	grid-template-columns: repeat(var(--gp-idx-columns, 3), minmax(0, 1fr));
	gap: 1.5rem;
	margin: 0;
	padding: 0;
}

.gp-idx-grid--1 { --gp-idx-columns: 1; }
.gp-idx-grid--2 { --gp-idx-columns: 2; }
.gp-idx-grid--3 { --gp-idx-columns: 3; }
.gp-idx-grid--4 { --gp-idx-columns: 4; }

@container gp-results (max-width: 56rem) {
	.gp-idx-grid--3,
	.gp-idx-grid--4 {
		--gp-idx-columns: 2;
	}
}

@container gp-results (max-width: 34rem) {
	.gp-idx-grid {
		--gp-idx-columns: 1;
	}
}

/* The photo-first listing card's styles are in includes/css/wp-listings-cards.css
   (shared with local listing grids). */

/* Map price pins and popups */
.gp-price-marker {
	background: none;
	border: 0;
}

.gp-price-pin {
	display: inline-block;
	transform: translate(-50%, -100%);
	padding: 0.25rem 0.5rem;
	border: 2px solid #fff;
	border-radius: 999px;
	background: #111;
	color: #fff;
	font: 600 0.75rem/1.3 system-ui, sans-serif;
	white-space: nowrap;
	box-shadow: 0 2px 6px rgb(0 0 0 / 0.3);
	cursor: pointer;
}

.gp-price-marker.is-active .gp-price-pin,
.gp-price-pin:hover {
	background: var(--gp-idx-accent, #1d4ed8);
}

.gp-map-popup {
	display: grid;
	gap: 0.125rem;
	color: #1f2937;
	font-size: 0.8125rem;
	text-decoration: none;
}

.gp-map-popup strong {
	font-size: 0.9375rem;
}

.gp-map-popup__photo {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 3 / 2;
	margin-block-end: 0.375rem;
	border-radius: 4px;
	object-fit: cover;
	background: #e5e7eb;
}

.gp-idx-pagination {
	display: flex;
	gap: var(--gp-idx-gap);
	justify-content: center;
	align-items: center;
	margin-block-start: calc(var(--gp-idx-gap) * 1.5);
}

.gp-idx-notice {
	padding: 1rem;
	border: 1px solid var(--gp-idx-border);
	border-radius: 0.5rem;
}

/* Consent checkboxes in the IDX lead form (the rest of the form uses the
   shared single-listing styles). */
.gp-inquiry-idx .gp-consent {
	display: flex;
	gap: 0.5rem;
	align-items: flex-start;
	margin: 0.5rem 0;
	font-size: 0.8125em;
	line-height: 1.4;
}

.gp-inquiry-idx .gp-consent input {
	flex: 0 0 auto;
	margin-top: 0.2em;
}

/* Contact form: same field and button look as the search form. */
.gp-contact-form {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
	gap: 0 var(--gp-idx-gap);
}

.gp-contact-form p {
	margin: 0 0 var(--gp-idx-gap);
}

.gp-contact-field--wide {
	grid-column: 1 / -1;
}

.gp-contact-field label {
	display: block;
	font-size: 0.875em;
	margin-block-end: 0.25rem;
}

.gp-contact-field input,
.gp-contact-field textarea {
	width: 100%;
	min-height: 2.75rem;
	padding: 0.5rem 0.75rem;
	border: 1px solid var(--gp-idx-border);
	border-radius: 0.375rem;
	font: inherit;
	background: transparent;
	color: inherit;
}

.gp-contact-field textarea {
	min-height: 8rem;
	resize: vertical;
}

.gp-contact-field input:focus-visible,
.gp-contact-field textarea:focus-visible {
	outline: 2px solid var(--gp-idx-accent);
	outline-offset: 2px;
}

.gp-contact .gp-idx-button {
	width: auto;
}

.gp-contact .gp-hp,
.gp-precon-form .gp-hp {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
}

.gp-contact .gp-inquiry-notice {
	margin: 0 0 var(--gp-idx-gap);
	padding: 0.75rem 1rem;
	border-radius: 0.375rem;
}

.gp-contact .gp-inquiry-notice-success {
	background: #e8f3e8;
	color: #1e4d20;
}

.gp-contact .gp-inquiry-notice-error {
	background: #fbeaea;
	color: #7a1a1a;
}

/* Board attribution under search results (ADR-0008). */
.gp-idx .gp-idx-compliance {
	margin-top: calc(var(--gp-idx-gap) * 2);
	padding: 24px;
	border-radius: 0.5rem;
	background: color-mix(in srgb, currentColor 4%, transparent);
	color: var(--gp-idx-muted);
	font-size: 0.9375em;
	line-height: 1.6;
}

.gp-idx .gp-idx-compliance p {
	margin: 0 0 10px;
}

.gp-idx .gp-idx-compliance .gp-attribution-source {
	color: inherit;
	filter: brightness(0.6);
	font-size: 1.0625em;
}

.gp-idx .gp-attribution-logos {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 18px;
	margin: 4px 0 12px;
}

.gp-idx .gp-attribution-logos img {
	display: block;
	max-width: 100%;
	height: auto;
}

.gp-idx .gp-attribution-notice summary {
	cursor: pointer;
}

.gp-idx .gp-attribution-credit a {
	color: inherit;
}

.gp-idx .gp-attribution-notice {
	margin: 0 0 10px;
}

.gp-idx .gp-sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* The site owner's brokerage (MLS GRID rule 13): full size, normal colour. */
.gp-idx .gp-idx-compliance .gp-attribution-brokerage {
	color: currentColor;
	filter: brightness(0.6);
	font-size: 1.0625em;
}

/* Divi Visual Builder preview: maps and scripts don't run there. */
.gp-divi-preview .gp-results-map:empty {
	display: grid;
	place-items: center;
	color: #6b7280;
	font-size: 0.875rem;
}

.gp-divi-preview .gp-results-map:empty::after {
	content: "Map shows on the live page";
}

.gp-divi-preview .gp-idx-sort__apply {
	display: none;
}

/* Agent contact box (AgentCard): "card" centred with the photo on top,
   "wide" with the photo beside the details. Colours follow the theme. */
.gp-agent-card {
	--gp-agent-photo: 150px;
	display: flex;
	gap: calc(var(--gp-idx-gap) * 1.5);
	line-height: 1.5;
}
.gp-agent-card p {
	margin: 0;
	padding: 0;
}
.gp-agent-card__photo {
	width: var(--gp-agent-photo);
	height: var(--gp-agent-photo);
	flex: none;
	border-radius: 50%;
	object-fit: cover;
}
.gp-agent-card__name {
	font-size: 1.5em;
	line-height: 1.25;
}
.gp-agent-card__title,
.gp-agent-card__address {
	color: var(--gp-idx-muted);
}
.gp-agent-card__brokerage {
	margin-block-start: 0.5em !important;
	font-weight: 600;
}
/* Themes indent and bullet lists in page content, Divi with an ID selector
   (#left-area ul), hence !important on the box's own lists. */
.gp-agent-card ul.gp-agent-card__contacts,
.gp-agent-card ul.gp-agent-card__social {
	list-style: none;
	margin: 0.75em 0 0 !important;
	padding: 0 !important;
}
.gp-agent-card ul.gp-agent-card__contacts > li,
.gp-agent-card ul.gp-agent-card__social > li {
	list-style: none;
}
.gp-agent-card ul > li::marker {
	content: none;
}
.gp-agent-card__contacts li {
	display: flex;
	align-items: center;
	gap: 0.6em;
	margin: 0.3em 0;
	padding: 0;
}
.gp-agent-card__contacts a {
	color: inherit;
	text-decoration: none;
}
.gp-agent-card__contacts a:hover,
.gp-agent-card__contacts a:focus-visible {
	text-decoration: underline;
}
.gp-agent-card__icon,
.gp-agent-card__email-button svg {
	display: inline-flex;
	width: 1.1em;
	height: 1.1em;
	flex: none;
	color: var(--gp-idx-muted);
}
.gp-agent-card__icon svg,
.gp-agent-card__social-link svg {
	display: block;
	width: 100%;
	height: 100%;
}
.gp-agent-card__email-button {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.6em;
	margin-block-start: 1em;
	padding: 0.7em 1.25em;
	border: 1px solid var(--gp-idx-border);
	border-radius: 4px;
	background: color-mix(in srgb, currentColor 7%, transparent);
	color: inherit;
	text-decoration: none;
}
.gp-agent-card__email-button:hover,
.gp-agent-card__email-button:focus-visible {
	background: color-mix(in srgb, currentColor 12%, transparent);
}
.gp-agent-card ul.gp-agent-card__social {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5em;
}
.gp-agent-card__social li {
	margin: 0;
	padding: 0;
}
.gp-agent-card__social-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.1em;
	height: 2.1em;
	padding: 0.45em;
	border: 1px solid var(--gp-idx-border);
	border-radius: 4px;
	color: var(--gp-idx-accent);
}
.gp-agent-card__social-link:hover,
.gp-agent-card__social-link:focus-visible {
	background: var(--gp-idx-accent);
	color: #fff;
}

/* Card: one centred column. */
.gp-agent-card--card {
	flex-direction: column;
	align-items: center;
	text-align: center;
}
.gp-agent-card--card .gp-agent-card__body {
	width: 100%;
}
.gp-agent-card--card .gp-agent-card__contacts li {
	justify-content: center;
}
.gp-agent-card--card ul.gp-agent-card__social {
	justify-content: center;
	margin-block-start: 1em;
}

/* Wide: photo beside the details, stacked on narrow screens. */
.gp-agent-card--wide {
	--gp-agent-photo: 200px;
	align-items: center;
}
@media (max-width: 600px) {
	.gp-agent-card--wide {
		flex-direction: column;
		align-items: flex-start;
	}
}

.gp-agent-notice {
	padding: 0.75em 1em;
	border: 1px dashed var(--gp-idx-border);
	color: var(--gp-idx-muted);
}
.gp-agent-card .screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

/* Pre-construction projects (PreconRenderer): cards, and the project page. */
.gp-precon-card {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border: 1px solid var(--gp-idx-border);
	border-radius: 8px;
	background: #fff;
	color: inherit;
	text-decoration: none;
	transition: box-shadow 0.15s ease;
}
.gp-precon-card:hover,
.gp-precon-card:focus-visible {
	box-shadow: 0 6px 20px rgba(0, 0, 0, 0.12);
}
.gp-precon-card__photo {
	position: relative;
	display: block;
	aspect-ratio: 4 / 3;
	background: color-mix(in srgb, currentColor 8%, transparent);
}
.gp-precon-card__photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.gp-precon-card__status {
	position: absolute;
	top: 0.75em;
	left: 0.75em;
	padding: 0.25em 0.6em;
	border-radius: 4px;
	background: var(--gp-idx-accent);
	color: #fff;
	font-size: 0.8em;
	font-weight: 600;
}
.gp-precon-card__body {
	display: flex;
	flex-direction: column;
	gap: 0.25em;
	padding: 1em;
}
.gp-precon-card__name {
	font-size: 1.15em;
	font-weight: 700;
	line-height: 1.3;
}
.gp-precon-card__meta,
.gp-precon-card__facts {
	color: var(--gp-idx-muted);
	font-size: 0.9em;
}
.gp-precon-card__price {
	font-weight: 600;
}

.gp-precon-page__header {
	margin-block-end: var(--gp-idx-gap);
}
.gp-precon-page__status {
	margin: 0 0 0.25em;
	color: var(--gp-idx-accent);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	font-size: 0.85em;
}
.gp-precon-page__name {
	margin: 0;
	padding: 0;
	line-height: 1.2;
}
.gp-precon-page__place {
	margin: 0.4em 0 0;
	color: var(--gp-idx-muted);
}
.gp-precon-page__price {
	display: block;
	margin-block-start: 0.4em;
	font-size: 1.25em;
	font-weight: 700;
}
.gp-precon-gallery {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 0.5em;
	margin-block-end: calc(var(--gp-idx-gap) * 1.5);
}
.gp-precon-gallery__item {
	display: block;
	overflow: hidden;
	border-radius: 6px;
	aspect-ratio: 4 / 3;
}
.gp-precon-gallery__item--main {
	grid-column: span 4;
	aspect-ratio: 16 / 7;
}
.gp-precon-gallery__item img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.gp-precon-page__columns {
	display: grid;
	grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr);
	gap: calc(var(--gp-idx-gap) * 2);
	align-items: start;
}
.gp-precon-facts {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
	gap: var(--gp-idx-gap);
	margin: 0 0 calc(var(--gp-idx-gap) * 1.5);
	padding: var(--gp-idx-gap);
	border: 1px solid var(--gp-idx-border);
	border-radius: 8px;
}
.gp-precon-facts dt {
	color: var(--gp-idx-muted);
	font-size: 0.85em;
}
.gp-precon-facts dd {
	margin: 0;
	font-weight: 600;
}
.gp-precon-section h2 {
	margin: 1.25em 0 0.5em;
	padding: 0;
	font-size: 1.3em;
}
.gp-precon-section ul {
	margin: 0;
	padding-inline-start: 1.25em;
}
.gp-precon-page__note {
	margin-block-start: 2em;
	color: var(--gp-idx-muted);
	font-size: 0.85em;
}
.gp-precon-page__aside {
	position: sticky;
	top: 2em;
}
.gp-precon-form {
	padding: 1.25em;
	border: 1px solid var(--gp-idx-border);
	border-radius: 8px;
	background: #fff;
}
.gp-precon-form__title {
	margin: 0 0 0.75em;
	padding: 0;
	font-size: 1.25em;
}
.gp-precon-form .gp-contact-form {
	grid-template-columns: 1fr;
}
@media (max-width: 860px) {
	.gp-precon-page__columns {
		grid-template-columns: 1fr;
	}
	.gp-precon-page__aside {
		position: static;
	}
	.gp-precon-gallery {
		grid-template-columns: repeat(2, 1fr);
	}
	.gp-precon-gallery__item--main {
		grid-column: span 2;
		aspect-ratio: 4 / 3;
	}
}
