@layer pages {
	/* -------------------------------------------------------------
	 * 1. Property Hero (Full-bleed, dark veil, header offset)
	 * ------------------------------------------------------------- */
	.cng-property-hero {
		position: relative;
		overflow: hidden;
		background-color: var(--wp--preset--color--navy-deep);
		min-height: clamp(420px, 15vw + 340px, 560px);
		display: flex;
		flex-direction: column;
		justify-content: flex-end;
		padding-top: 76px;
		padding-bottom: var(--wp--preset--spacing--50);
	}

	@media (min-width: 640px) {
		.cng-property-hero {
			padding-top: 108px;
			padding-bottom: var(--wp--preset--spacing--60);
		}
	}

	.cng-property-hero__media {
		position: absolute;
		inset: 0;
		overflow: hidden;
		pointer-events: none;
	}

	.cng-property-hero__media img,
	.cng-property-cover-img {
		position: absolute;
		inset: 0;
		width: 100%;
		height: 100%;
		object-fit: cover;
		object-position: center 45%;
	}

	.cng-property-hero__veil {
		position: absolute;
		inset: 0;
		z-index: 1;
		pointer-events: none;
		background: linear-gradient(180deg, rgba(28, 38, 48, 0.45) 0%, rgba(28, 38, 48, 0.85) 100%);
	}

	.cng-property-hero__inner {
		position: relative;
		z-index: 2;
		width: 100%;
	}

	.cng-property-detail__back {
		display: inline-flex;
		align-items: center;
		gap: var(--wp--preset--spacing--20);
		min-height: 44px;
		color: var(--wp--preset--color--ivory);
		font-family: var(--wp--preset--font-family--sans);
		font-size: var(--wp--preset--font-size--small);
		font-weight: 600;
		text-decoration: none;
		transition: color 0.2s ease;
	}

	.cng-property-detail__back:hover {
		color: var(--wp--preset--color--white);
	}

	.cng-property-detail__back:focus-visible {
		outline: 2px solid var(--wp--preset--color--gold);
		outline-offset: 3px;
	}

	.cng-property-badges {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		gap: var(--wp--preset--spacing--20);
		margin-top: var(--wp--preset--spacing--30);
	}

	.cng-badge {
		display: inline-block;
		font-family: var(--wp--preset--font-family--sans);
		font-size: var(--wp--preset--font-size--kicker);
		font-weight: 600;
		text-transform: uppercase;
		letter-spacing: 0.12em;
		line-height: 1.4;
		padding: 4px 10px;
		border: 1px solid var(--wp--preset--color--ivory);
		color: var(--wp--preset--color--ivory);
	}

	.cng-badge--exclusive {
		background-color: var(--wp--preset--color--gold);
		border-color: var(--wp--preset--color--gold);
		color: var(--wp--preset--color--navy);
	}

	.cng-property-detail__title {
		font-family: var(--wp--preset--font-family--serif);
		font-size: var(--wp--preset--font-size--heading-1);
		font-weight: 600;
		line-height: 1.15;
		color: var(--wp--preset--color--ivory);
		margin: var(--wp--preset--spacing--30) 0 0 0;
		text-wrap: balance;
	}

	.cng-property-facts-list {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		gap: var(--wp--preset--spacing--20) var(--wp--preset--spacing--40);
		margin: var(--wp--preset--spacing--40) 0 0 0;
		padding: 0;
		list-style: none;
		font-family: var(--wp--preset--font-family--sans);
		font-size: var(--wp--preset--font-size--body);
		color: var(--wp--preset--color--lead);
	}

	.cng-property-facts-list li + li::before {
		content: "·" / "";
		margin-right: var(--wp--preset--spacing--40);
		color: var(--wp--preset--color--gold);
	}

	/* -------------------------------------------------------------
	 * 2. Property Body & Two-Column Layout
	 * ------------------------------------------------------------- */
	.cng-property-body {
		padding-top: var(--wp--preset--spacing--70);
		padding-bottom: var(--wp--preset--spacing--80);
	}

	.cng-property-layout {
		display: flex;
		flex-direction: column;
		gap: var(--wp--preset--spacing--70);
	}

	@media (min-width: 960px) {
		.cng-property-layout {
			display: grid;
			grid-template-columns: minmax(0, 1fr) 380px;
			gap: var(--wp--preset--spacing--80);
			align-items: start;
		}
	}

	.cng-property-main {
		min-width: 0;
	}

	.cng-property-section {
		margin-top: var(--wp--preset--spacing--70);
	}

	.cng-property-section:first-child {
		margin-top: 0;
	}

	.cng-property-section__title {
		font-family: var(--wp--preset--font-family--serif);
		font-size: var(--wp--preset--font-size--heading-2);
		font-weight: 600;
		line-height: 1.2;
		color: var(--wp--preset--color--navy);
		margin: 0 0 var(--wp--preset--spacing--40) 0;
	}

	.cng-property-detail__location {
		font-family: var(--wp--preset--font-family--sans);
		font-size: var(--wp--preset--font-size--lead);
		color: var(--wp--preset--color--slate);
		margin: 0;
	}

	.cng-property-detail__content {
		font-family: var(--wp--preset--font-family--sans);
		font-size: var(--wp--preset--font-size--body);
		line-height: 1.65;
		color: var(--wp--preset--color--slate);
	}

	.cng-property-detail__content p {
		margin: 0 0 var(--wp--preset--spacing--40) 0;
	}

	.cng-property-detail__content p:last-child {
		margin-bottom: 0;
	}

	/* -------------------------------------------------------------
	 * 3. Gallery Grid
	 * ------------------------------------------------------------- */
	.cng-property-gallery {
		display: grid;
		grid-template-columns: 1fr;
		gap: var(--wp--preset--spacing--30);
	}

	@media (min-width: 640px) {
		.cng-property-gallery {
			grid-template-columns: repeat(2, 1fr);
			gap: var(--wp--preset--spacing--40);
		}

		.cng-property-gallery-item--wide {
			grid-column: 1 / -1;
		}
	}

	.cng-property-gallery-item {
		margin: 0;
		position: relative;
		overflow: hidden;
		background-color: var(--wp--preset--color--sand);
	}

	.cng-property-gallery__link {
		display: block;
		overflow: hidden;
		line-height: 0;
		text-decoration: none;
	}

	.cng-property-gallery__link:focus-visible {
		outline: 2px solid var(--wp--preset--color--navy);
		outline-offset: 3px;
	}

	.cng-property-gallery-img {
		width: 100%;
		height: 100%;
		aspect-ratio: 4 / 3;
		object-fit: cover;
		transition: transform 0.4s ease;
	}

	@media (hover: hover) {
		.cng-property-gallery__link:hover .cng-property-gallery-img {
			transform: scale(1.03);
		}
	}

	@media (prefers-reduced-motion: reduce) {
		.cng-property-gallery-img {
			transform: none !important;
			transition: none !important;
		}
	}

	.cng-property-gallery-caption {
		position: absolute;
		left: var(--wp--preset--spacing--30);
		bottom: var(--wp--preset--spacing--30);
		padding: 4px var(--wp--preset--spacing--20);
		background-color: rgba(41, 53, 64, 0.88);
		color: var(--wp--preset--color--ivory);
		font-family: var(--wp--preset--font-family--sans);
		font-size: var(--wp--preset--font-size--small);
		line-height: 1.4;
		pointer-events: none;
	}

	.cng-gallery-empty {
		font-family: var(--wp--preset--font-family--sans);
		font-size: var(--wp--preset--font-size--body);
		color: var(--wp--preset--color--slate);
		margin: 0;
	}

	/* -------------------------------------------------------------
	 * 4. Specs Grid
	 * ------------------------------------------------------------- */
	.cng-property-specs {
		display: grid;
		grid-template-columns: 1fr;
		border-top: 1px solid var(--wp--preset--color--sand);
		margin: 0;
	}

	@media (min-width: 640px) {
		.cng-property-specs {
			grid-template-columns: repeat(2, 1fr);
			gap: 0 var(--wp--preset--spacing--60);
		}
	}

	.cng-property-specs__item {
		display: flex;
		justify-content: space-between;
		align-items: baseline;
		gap: var(--wp--preset--spacing--30);
		padding: var(--wp--preset--spacing--30) 0;
		border-bottom: 1px solid var(--wp--preset--color--sand);
		font-size: var(--wp--preset--font-size--body);
	}

	.cng-property-specs__label {
		font-family: var(--wp--preset--font-family--sans);
		color: var(--wp--preset--color--slate);
	}

	.cng-property-specs__value {
		font-family: var(--wp--preset--font-family--sans);
		font-weight: 600;
		color: var(--wp--preset--color--navy);
		text-align: right;
		margin: 0;
	}

	.cng-property-specs__item--other {
		grid-column: 1 / -1;
		flex-direction: column;
		align-items: flex-start;
	}

	.cng-property-specs__item--other .cng-property-specs__value {
		text-align: left;
		font-weight: normal;
		margin-top: var(--wp--preset--spacing--20);
	}

	/* -------------------------------------------------------------
	 * 5. Place (Google Maps Link)
	 * ------------------------------------------------------------- */
	.cng-property-detail__place-text {
		font-family: var(--wp--preset--font-family--sans);
		font-size: var(--wp--preset--font-size--lead);
		color: var(--wp--preset--color--slate);
		margin: 0 0 var(--wp--preset--spacing--30) 0;
	}

	.cng-property-detail__map-link {
		display: inline-flex;
		align-items: center;
		min-height: 44px;
		font-family: var(--wp--preset--font-family--sans);
		font-size: var(--wp--preset--font-size--body);
		font-weight: 600;
		color: var(--wp--preset--color--navy);
		text-decoration: underline;
		text-underline-offset: 4px;
		transition: color 0.2s ease;
	}

	.cng-property-detail__map-link:hover {
		color: var(--wp--preset--color--navy-deep);
	}

	.cng-property-detail__map-link:focus-visible {
		outline: 2px solid var(--wp--preset--color--navy);
		outline-offset: 3px;
	}

	/* -------------------------------------------------------------
	 * 6. Sticky Price Card
	 * ------------------------------------------------------------- */
	aside.cng-price-card {
		background-color: var(--wp--preset--color--white);
		border: 1px solid var(--wp--preset--color--sand);
		border-top: 3px solid var(--wp--preset--color--gold);
		padding: var(--wp--preset--spacing--60);
		box-shadow: 0 10px 30px -18px rgba(28, 38, 48, 0.25);
	}

	@media (min-width: 960px) {
		aside.cng-price-card {
			position: sticky;
			top: 100px;
		}
	}

	.cng-price-card__price {
		font-family: var(--wp--preset--font-family--serif);
		font-size: var(--wp--preset--font-size--heading-3);
		font-weight: 600;
		line-height: 1.15;
		color: var(--wp--preset--color--navy);
		margin: 0;
	}

	.cng-price-card__eur {
		font-family: var(--wp--preset--font-family--sans);
		font-size: var(--wp--preset--font-size--small);
		color: var(--wp--preset--color--slate);
		margin: var(--wp--preset--spacing--20) 0 0 0;
	}

	.cng-price-card__actions {
		display: flex;
		flex-direction: column;
		gap: var(--wp--preset--spacing--30);
		margin-top: var(--wp--preset--spacing--50);
	}

	.cng-btn--visit {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 100%;
		min-height: 48px;
		padding: 0 var(--wp--preset--spacing--40);
		background-color: var(--wp--preset--color--navy);
		color: var(--wp--preset--color--ivory);
		font-family: var(--wp--preset--font-family--sans);
		font-size: var(--wp--preset--font-size--body);
		font-weight: 600;
		text-decoration: none;
		border: 0;
		cursor: pointer;
		transition: background-color 0.2s ease;
	}

	.cng-btn--visit:hover {
		background-color: var(--wp--preset--color--navy-deep);
	}

	.cng-btn--visit:focus-visible {
		outline: 2px solid var(--wp--preset--color--navy);
		outline-offset: 3px;
	}

	.cng-btn--whatsapp-outline {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: var(--wp--preset--spacing--20);
		width: 100%;
		min-height: 48px;
		padding: 0 var(--wp--preset--spacing--40);
		border: 1.5px solid var(--wp--preset--color--navy);
		background-color: transparent;
		color: var(--wp--preset--color--navy);
		font-family: var(--wp--preset--font-family--sans);
		font-size: var(--wp--preset--font-size--body);
		font-weight: 600;
		text-decoration: none;
		transition: background-color 0.2s ease, color 0.2s ease;
	}

	.cng-btn--whatsapp-outline:hover {
		background-color: var(--wp--preset--color--navy);
		color: var(--wp--preset--color--ivory);
	}

	.cng-btn--whatsapp-outline:focus-visible {
		outline: 2px solid var(--wp--preset--color--navy);
		outline-offset: 3px;
	}

	/* -------------------------------------------------------------
	 * 7. Mobile Bar (Sticky bottom below 960px)
	 * ------------------------------------------------------------- */
	.cng-mobile-bar {
		position: sticky;
		bottom: 0;
		z-index: 50;
		background-color: var(--wp--preset--color--ivory);
		border-top: 1px solid var(--wp--preset--color--sand);
		padding-top: var(--wp--preset--spacing--30);
		padding-bottom: max(12px, env(safe-area-inset-bottom));
		box-shadow: 0 -4px 12px rgba(28, 38, 48, 0.08);
		margin-top: var(--wp--preset--spacing--60);
	}

	@media (min-width: 960px) {
		.cng-mobile-bar {
			display: none;
		}
	}

	.cng-mobile-bar__inner {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: var(--wp--preset--spacing--30);
	}

	.cng-mobile-bar__price {
		display: block;
		font-family: var(--wp--preset--font-family--serif);
		font-size: var(--wp--preset--font-size--lead);
		font-weight: 600;
		color: var(--wp--preset--color--navy);
		line-height: 1.2;
	}

	.cng-mobile-bar__eur {
		display: block;
		font-family: var(--wp--preset--font-family--sans);
		font-size: var(--wp--preset--font-size--kicker);
		color: var(--wp--preset--color--slate);
	}

	.cng-mobile-bar .cng-btn--whatsapp {
		display: inline-flex;
		align-items: center;
		gap: var(--wp--preset--spacing--20);
		min-height: 48px;
		padding: 0 var(--wp--preset--spacing--40);
		background-color: var(--wp--preset--color--navy);
		color: var(--wp--preset--color--ivory);
		font-family: var(--wp--preset--font-family--sans);
		font-size: var(--wp--preset--font-size--small);
		font-weight: 600;
		text-decoration: none;
		transition: background-color 0.2s ease;
	}

	.cng-mobile-bar .cng-btn--whatsapp:hover {
		background-color: var(--wp--preset--color--navy-deep);
	}

	.cng-mobile-bar .cng-btn--whatsapp:focus-visible {
		outline: 2px solid var(--wp--preset--color--navy);
		outline-offset: 3px;
	}

	/* -------------------------------------------------------------
	 * 8. Enquiry Band (#demande)
	 * ------------------------------------------------------------- */
	section#demande {
		scroll-margin-top: 120px;
		padding-top: var(--wp--preset--spacing--80);
		padding-bottom: var(--wp--preset--spacing--80);
		background-color: var(--wp--preset--color--navy);
		color: var(--wp--preset--color--ivory);
		border-top: 3px solid var(--wp--preset--color--gold);
	}

	/* -------------------------------------------------------------
	 * 9. Gallery Viewer Modal Dialog
	 * ------------------------------------------------------------- */
	dialog.cng-viewer {
		border: 0;
		padding: var(--wp--preset--spacing--60) var(--wp--preset--spacing--40);
		background-color: var(--wp--preset--color--navy-deep);
		color: var(--wp--preset--color--ivory);
		width: 100vw;
		max-width: 100vw;
		height: 100vh;
		height: 100dvh;
		max-height: 100vh;
		max-height: 100dvh;
		margin: 0;
		position: fixed;
		inset: 0;
		box-sizing: border-box;
	}

	dialog.cng-viewer[open] {
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
	}

	dialog.cng-viewer::backdrop {
		background-color: rgba(28, 38, 48, 0.95);
	}

	.cng-viewer__image {
		max-width: 90vw;
		max-height: 80vh;
		object-fit: contain;
		margin: 0 auto;
		display: block;
	}

	.cng-viewer__close {
		position: absolute;
		top: var(--wp--preset--spacing--40);
		right: var(--wp--preset--spacing--40);
		width: 48px;
		height: 48px;
		border-radius: 50%;
		border: 1.5px solid var(--wp--preset--color--gold);
		background-color: var(--wp--preset--color--navy);
		color: var(--wp--preset--color--ivory);
		display: flex;
		align-items: center;
		justify-content: center;
		cursor: pointer;
		z-index: 10;
		transition: background-color 0.2s ease;
	}

	.cng-viewer__close:hover {
		background-color: rgba(202, 156, 86, 0.2);
	}

	.cng-viewer__close:focus-visible {
		outline: 2px solid var(--wp--preset--color--gold);
		outline-offset: 3px;
	}

	.cng-viewer__prev {
		position: absolute;
		left: var(--wp--preset--spacing--40);
		top: 50%;
		transform: translateY(-50%);
		width: 48px;
		height: 48px;
		border-radius: 50%;
		border: 1.5px solid var(--wp--preset--color--gold);
		background-color: var(--wp--preset--color--navy);
		color: var(--wp--preset--color--ivory);
		display: flex;
		align-items: center;
		justify-content: center;
		cursor: pointer;
		z-index: 10;
		transition: background-color 0.2s ease;
	}

	.cng-viewer__prev:hover {
		background-color: rgba(202, 156, 86, 0.2);
	}

	.cng-viewer__prev:focus-visible {
		outline: 2px solid var(--wp--preset--color--gold);
		outline-offset: 3px;
	}

	.cng-viewer__next {
		position: absolute;
		right: var(--wp--preset--spacing--40);
		top: 50%;
		transform: translateY(-50%);
		width: 48px;
		height: 48px;
		border-radius: 50%;
		border: 1.5px solid var(--wp--preset--color--gold);
		background-color: var(--wp--preset--color--navy);
		color: var(--wp--preset--color--ivory);
		display: flex;
		align-items: center;
		justify-content: center;
		cursor: pointer;
		z-index: 10;
		transition: background-color 0.2s ease;
	}

	.cng-viewer__next:hover {
		background-color: rgba(202, 156, 86, 0.2);
	}

	.cng-viewer__next:focus-visible {
		outline: 2px solid var(--wp--preset--color--gold);
		outline-offset: 3px;
	}

	.cng-viewer__caption {
		margin-top: var(--wp--preset--spacing--30);
		font-family: var(--wp--preset--font-family--sans);
		font-size: var(--wp--preset--font-size--small);
		color: var(--wp--preset--color--ivory);
		text-align: center;
	}

	.cng-viewer__counter {
		margin-top: var(--wp--preset--spacing--10);
		font-family: var(--wp--preset--font-family--sans);
		font-size: var(--wp--preset--font-size--small);
		color: var(--wp--preset--color--lead);
		text-align: center;
	}

	/* -------------------------------------------------------------
	 * 10. Unavailable Detail State
	 * ------------------------------------------------------------- */
	.cng-property-detail--unavailable {
		padding: var(--wp--preset--spacing--80) var(--wp--preset--spacing--40);
	}

	.cng-property-detail__message {
		font-family: var(--wp--preset--font-family--sans);
		font-size: var(--wp--preset--font-size--body);
		color: var(--wp--preset--color--slate);
		margin: 0;
	}
}
