/**
 * Oplus — Property detail v2. Components on top of oplus-ds.css (tokens only,
 * logical properties, RTL-safe). Same shapes and rhythm as the property-type
 * archive so the archive → listing hop feels like one product.
 *
 * Layout
 *   mobile  gallery → head → price/contact card → sections → similar
 *   ≥1024   two columns: head + sections left, sticky contact card right
 */

.pdp .o-i { width: 18px; height: 18px; flex: none; }

/* =============================================================== TOP */

.pdp__top { padding-block: var(--o-s-4) 0; }

.pdp-crumbs ol { display: flex; flex-wrap: wrap; gap: var(--o-s-2); list-style: none; margin: 0 0 var(--o-s-4); padding: 0; font-size: 0.8125rem; }
.pdp-crumbs li { display: inline-flex; align-items: center; gap: var(--o-s-2); color: var(--o-muted); min-width: 0; }
.pdp-crumbs li + li::before { content: "/"; color: var(--o-line-strong); }
.pdp .pdp-crumbs a { color: var(--o-muted); text-decoration: none; }
.pdp .pdp-crumbs a:hover { color: var(--o-brand-600); }
.pdp-crumbs [aria-current] { color: var(--o-ink); font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 46ch; }

/* =========================================================== GALLERY */

.pdp-gallery { position: relative; border-radius: var(--o-r-lg); overflow: hidden; }
.pdp-gallery__track { display: grid; gap: 6px; height: clamp(300px, 34vw, 500px); }
.pdp-gallery--one .pdp-gallery__track { grid-template-columns: 1fr; }
.pdp-gallery--two .pdp-gallery__track { grid-template-columns: 1fr 1fr; }
.pdp-gallery--three .pdp-gallery__track { grid-template-columns: 2fr 1fr; grid-template-rows: 1fr 1fr; }
.pdp-gallery--three .pdp-gallery__tile:first-child { grid-row: 1 / span 2; }
.pdp-gallery--five .pdp-gallery__track { grid-template-columns: 2fr 1fr 1fr; grid-template-rows: 1fr 1fr; }
.pdp-gallery--five .pdp-gallery__tile:first-child { grid-row: 1 / span 2; }

.pdp-gallery__tile { position: relative; display: block; min-width: 0; min-height: 0; overflow: hidden; background: var(--o-surface-2); }
.pdp-gallery__tile img { width: 100%; height: 100%; object-fit: cover; transition: transform 500ms var(--o-ease); }
.pdp-gallery__tile:hover img { transform: scale(1.025); }
.pdp-gallery__tile.is-extra { display: none; }

.pdp-gallery__chips { position: absolute; inset-block-start: var(--o-s-4); inset-inline-start: var(--o-s-4); display: flex; gap: var(--o-s-2); pointer-events: none; }
.pdp-gallery__chip { display: inline-flex; align-items: center; height: 28px; padding-inline: var(--o-s-3); border-radius: var(--o-r-sm); background: var(--o-surface); color: var(--o-ink); font-size: var(--o-fs-xs); font-weight: 700; box-shadow: var(--o-shadow-1); }
.pdp-gallery__chip--status { background: var(--o-brand-600); color: #fff; }

.pdp-gallery__all {
	position: absolute; inset-block-end: var(--o-s-4); inset-inline-end: var(--o-s-4);
	display: inline-flex; align-items: center; gap: var(--o-s-2);
	min-height: 40px; padding-inline: var(--o-s-4);
	border: 0; border-radius: var(--o-r-md); background: var(--o-surface); color: var(--o-ink);
	font: 700 var(--o-fs-sm)/1 sans-serif; font-family: inherit; cursor: pointer; box-shadow: var(--o-shadow-2);
}
.pdp-gallery__all:hover { background: var(--o-surface-2); }
.pdp-gallery__count { display: none; }

/* ============================================================ LAYOUT */

.pdp__layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 380px;
	grid-template-areas: "head panel" "body panel";
	column-gap: var(--o-s-10);
	align-items: start;
	padding-block: var(--o-s-8) var(--o-s-12);
}
.pdp__head { grid-area: head; }
.pdp__panel { grid-area: panel; position: sticky; top: calc(var(--o-header-h) + var(--o-s-4)); }
.pdp__body { grid-area: body; min-width: 0; }

/* ============================================================== HEAD */

.pdp-head__where { display: flex; flex-wrap: wrap; align-items: center; gap: var(--o-s-2); margin: 0 0 var(--o-s-2); font-size: var(--o-fs-sm); color: var(--o-muted); }
.pdp-head__where .o-i { width: 16px; height: 16px; color: var(--o-brand-600); }
.pdp .pdp-head__where a { color: var(--o-text); text-decoration: none; font-weight: 600; }
.pdp .pdp-head__where a:hover { color: var(--o-brand-600); }
.pdp-head__kind { margin: 0 0 var(--o-s-1); font-size: var(--o-fs-sm); font-weight: 600; color: var(--o-brand-600); }
.pdp-head__title { font-size: clamp(1.625rem, 1.2rem + 1.6vw, 2.375rem); font-weight: 800; letter-spacing: -0.02em; }

.pdp-facts { display: flex; flex-wrap: wrap; gap: var(--o-s-3); list-style: none; margin: var(--o-s-5) 0 0; padding: 0; }
.pdp-facts__item { display: grid; grid-template-columns: auto auto; grid-template-rows: auto auto; column-gap: var(--o-s-3); align-items: center; padding: var(--o-s-3) var(--o-s-4); border: 1px solid var(--o-line); border-radius: var(--o-r-md); background: var(--o-surface); }
.pdp-facts__item .o-i { grid-row: 1 / span 2; width: 22px; height: 22px; color: var(--o-muted); }
.pdp-facts__value { font-size: 1.125rem; font-weight: 800; color: var(--o-ink); line-height: 1.2; }
.pdp-facts__label { font-size: var(--o-fs-xs); color: var(--o-muted); font-weight: 600; }

/* ========================================================= CONTACT */

.pdp-card { padding: var(--o-s-6); border: 1px solid var(--o-line); border-radius: var(--o-r-lg); background: var(--o-surface); box-shadow: var(--o-shadow-2); }
.pdp-price__value { font-size: clamp(1.625rem, 1.3rem + 1vw, 2rem); font-weight: 800; color: var(--o-ink); letter-spacing: -0.01em; line-height: 1.15; }
.pdp-price__value--request { font-size: 1.375rem; }
.pdp-price__unit { margin-block-start: var(--o-s-1); font-size: var(--o-fs-sm); color: var(--o-muted); }

.pdp-quick { display: grid; grid-template-columns: 1fr 1fr; gap: var(--o-s-3); margin-block-start: var(--o-s-5); }
.pdp-quick .o-btn { width: 100%; }

.pdp-form { display: grid; gap: var(--o-s-3); margin-block-start: var(--o-s-5); padding-block-start: var(--o-s-5); border-block-start: 1px solid var(--o-line); }
.pdp-form__title { font-weight: 800; color: var(--o-ink); }
.pdp-field { display: grid; gap: 6px; min-width: 0; margin: 0; padding: 0; border: 0; }
.pdp-field > label, .pdp-field > legend { font-size: var(--o-fs-xs); font-weight: 700; color: var(--o-muted); padding: 0; }
.pdp-field input[type="text"], .pdp-field input[type="tel"], .pdp-field input[type="email"], .pdp-field textarea {
	width: 100%; min-height: 46px; padding: var(--o-s-3) var(--o-s-4);
	border: 1px solid var(--o-line-strong); border-radius: var(--o-r-md); background: var(--o-surface); color: var(--o-ink);
	font: 500 1rem/1.4 sans-serif; font-family: inherit;
}
.pdp-field textarea { min-height: 72px; resize: vertical; }
.pdp-field input:focus, .pdp-field textarea:focus { border-color: var(--o-brand-600); outline: 3px solid var(--o-brand-100); outline-offset: 0; }
.pdp-check { display: flex; gap: var(--o-s-2); align-items: flex-start; font-size: var(--o-fs-xs); color: var(--o-muted); }
.pdp-check input { margin-block-start: 2px; width: 16px; height: 16px; accent-color: var(--o-brand-600); }
.pdp-form__submit { width: 100%; }
.pdp .form_messages .alert { margin: 0; padding: var(--o-s-3); border-radius: var(--o-r-md); font-size: var(--o-fs-sm); }
.pdp .form_messages .alert-success { background: var(--o-brand-50); color: var(--o-brand-700); }
.pdp .form_messages .alert-danger { background: #fdecea; color: var(--o-danger); }

.pdp-book-link { display: inline-flex; align-items: center; gap: var(--o-s-2); min-height: 44px; margin-block-start: var(--o-s-2); padding: 0; border: 0; background: none; color: var(--o-brand-600); font: 700 var(--o-fs-sm)/1 sans-serif; font-family: inherit; cursor: pointer; }
.pdp-book-link:hover { color: var(--o-brand-700); text-decoration: underline; }
[dir="rtl"] .pdp-book-link .o-i, [dir="rtl"] .pdp-proj__cta .o-i { transform: scaleX(-1); }

.pdp-tools { display: flex; flex-wrap: wrap; align-items: center; gap: var(--o-s-2); margin-block-start: var(--o-s-4); padding-block-start: var(--o-s-4); border-block-start: 1px solid var(--o-line); }
.pdp-tools__btn { min-height: 36px; padding-inline: var(--o-s-3); border: 1px solid var(--o-line); border-radius: var(--o-r-md); background: var(--o-surface); color: var(--o-ink); font: 600 var(--o-fs-xs)/1 sans-serif; font-family: inherit; cursor: pointer; }
.pdp-tools__btn:hover { border-color: var(--o-ink); }
.pdp-tools__ref { margin-inline-start: auto; font-size: var(--o-fs-xs); color: var(--o-muted); }
.pdp-tools__ref strong { color: var(--o-ink); }

.pdp-docs { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); gap: var(--o-s-3); list-style: none; margin: 0; padding: 0; }
.pdp .pdp-docs a { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: var(--o-s-3); min-height: 56px; padding: var(--o-s-3) var(--o-s-4); border: 1px solid var(--o-line); border-radius: var(--o-r-md); color: var(--o-ink); text-decoration: none; font-size: var(--o-fs-sm); transition: border-color var(--o-t-fast) var(--o-ease); }
.pdp .pdp-docs a:hover { border-color: var(--o-brand-600); }
.pdp-docs__type { display: grid; place-items: center; min-width: 40px; height: 28px; padding-inline: 6px; border-radius: var(--o-r-sm); background: var(--o-brand-50); color: var(--o-brand-700); font-size: 0.6875rem; font-weight: 800; }
.pdp-docs__name { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pdp-docs__meta { color: var(--o-muted); white-space: nowrap; }

/* ============================================================ SECTIONS */

.pdp-nav { position: sticky; top: var(--o-header-h); z-index: 30; margin-block: var(--o-s-8) 0; background: var(--o-surface); border-block-end: 1px solid var(--o-line); }
.pdp-nav__list { display: flex; gap: var(--o-s-6); list-style: none; margin: 0; padding: 0; overflow-x: auto; scrollbar-width: none; }
.pdp-nav__list::-webkit-scrollbar { display: none; }
.pdp .pdp-nav__link { display: inline-flex; align-items: center; min-height: 48px; color: var(--o-text); font-size: var(--o-fs-sm); font-weight: 600; text-decoration: none; white-space: nowrap; border-block-end: 2px solid transparent; }
.pdp .pdp-nav__link:hover, .pdp .pdp-nav__link.is-active { color: var(--o-brand-600); border-block-end-color: var(--o-brand-600); }

.pdp-sec { padding-block: var(--o-s-8); border-block-end: 1px solid var(--o-line); scroll-margin-top: calc(var(--o-header-h) + 64px); }
.pdp-sec:last-child { border-block-end: 0; }
.pdp-sec__head { display: flex; align-items: baseline; justify-content: space-between; gap: var(--o-s-4); margin-block-end: var(--o-s-4); }
.pdp-sec__head .pdp-sec__title { margin: 0; }
.pdp-sec__title { font-size: 1.375rem; font-weight: 800; margin-block-end: var(--o-s-4); }
.pdp-sec__meta { font-size: var(--o-fs-sm); color: var(--o-muted); font-weight: 700; }
.pdp .pdp-sec__link { font-size: var(--o-fs-sm); font-weight: 700; text-decoration: none; }
.pdp .pdp-sec__link:hover { text-decoration: underline; }
.pdp-note { margin-block-start: var(--o-s-3); font-size: 0.8125rem; color: var(--o-muted); }
/* Links inside running text need more than colour to stand out (WCAG 1.4.1). */
.pdp .pdp-note a { color: var(--o-brand-600); font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }

.pdp-prose { color: var(--o-text); line-height: 1.75; }
.pdp-prose p, .pdp-prose ul, .pdp-prose ol { margin: 0 0 var(--o-s-4); }
.pdp-prose h2, .pdp-prose h3, .pdp-prose h4 { font-size: 1.0625rem; font-weight: 800; margin: var(--o-s-6) 0 var(--o-s-2); }
.pdp-prose.is-clipped { max-height: 15rem; overflow: hidden; -webkit-mask-image: linear-gradient(#000 70%, transparent); mask-image: linear-gradient(#000 70%, transparent); }
.pdp-more { min-height: 44px; margin-block-start: var(--o-s-2); padding: 0; border: 0; background: none; color: var(--o-brand-600); font: 700 var(--o-fs-sm)/1 sans-serif; font-family: inherit; cursor: pointer; }
.pdp-more:hover { text-decoration: underline; }

.pdp-dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 var(--o-s-8); margin: 0; }
.pdp-dl__row { display: flex; justify-content: space-between; gap: var(--o-s-4); padding-block: var(--o-s-3); border-block-end: 1px solid var(--o-line); }
.pdp-dl dt { color: var(--o-muted); font-size: var(--o-fs-sm); }
.pdp-dl dd { margin: 0; color: var(--o-ink); font-weight: 700; font-size: var(--o-fs-sm); text-align: end; }

.pdp-amen { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--o-s-3) var(--o-s-6); list-style: none; margin: 0; padding: 0; }
.pdp-amen li { display: flex; align-items: center; gap: var(--o-s-2); font-size: var(--o-fs-sm); color: var(--o-ink); }
.pdp-amen__tick { width: 18px; height: 18px; flex: none; border-radius: 50%; background: var(--o-brand-50); position: relative; }
.pdp-amen__tick::after { content: ""; position: absolute; inset-inline-start: 6px; top: 3px; width: 5px; height: 9px; border: solid var(--o-brand-600); border-width: 0 2px 2px 0; transform: rotate(45deg); }

.pdp-plans { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); gap: var(--o-s-4); list-style: none; margin: 0; padding: 0; }
.pdp-plan { border: 1px solid var(--o-line); border-radius: var(--o-r-lg); overflow: hidden; background: var(--o-surface); }
.pdp-plan__img { display: block; aspect-ratio: 4 / 3; background: var(--o-surface-2); }
.pdp-plan__img img { width: 100%; height: 100%; object-fit: contain; padding: var(--o-s-3); }
.pdp-plan__body { padding: var(--o-s-4); }
.pdp-plan__title { font-weight: 700; color: var(--o-ink); }
.pdp-plan__meta { font-size: var(--o-fs-sm); color: var(--o-muted); margin-block-start: 2px; }
.pdp-plan__text { font-size: var(--o-fs-sm); margin-block-start: var(--o-s-2); }

.pdp-pay__bar { display: flex; gap: 3px; height: 12px; border-radius: var(--o-r-pill); overflow: hidden; }
.pdp-pay__seg--0 { background: var(--o-brand-600); }
.pdp-pay__seg--1 { background: #5aa06c; }
.pdp-pay__seg--2 { background: #9cc8a7; }
.pdp-pay__seg--3 { background: #d3e8da; }
.pdp-pay__list { display: grid; gap: var(--o-s-2); list-style: none; margin: var(--o-s-4) 0 0; padding: 0; }
.pdp-pay__list li { display: flex; align-items: center; gap: var(--o-s-3); font-size: var(--o-fs-sm); }
.pdp-pay__list strong { color: var(--o-ink); min-width: 3.5em; }
.pdp-pay__dot { width: 12px; height: 12px; border-radius: 3px; flex: none; }

.pdp-media { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: var(--o-s-4); }
.pdp-facade { position: relative; display: grid; place-items: center; aspect-ratio: 16 / 9; width: 100%; padding: 0; border: 0; border-radius: var(--o-r-lg); overflow: hidden; background: var(--o-night); color: #fff; cursor: pointer; }
.pdp-facade img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0.85; }
.pdp-facade__play { position: relative; width: 68px; height: 68px; border-radius: 50%; background: rgba(255, 255, 255, 0.92); box-shadow: var(--o-shadow-2); }
.pdp-facade__play::after { content: ""; position: absolute; inset-inline-start: 27px; top: 22px; border-style: solid; border-width: 12px 0 12px 20px; border-color: transparent transparent transparent var(--o-brand-600); }
.pdp-facade--tour { background: linear-gradient(135deg, var(--o-night), var(--o-night-2)); }
.pdp-facade__label { position: relative; font-weight: 800; font-size: 1.0625rem; padding: var(--o-s-4); text-align: center; }
.pdp-facade iframe, .pdp-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

.pdp-trail { display: flex; flex-wrap: wrap; gap: var(--o-s-2); align-items: center; margin: 0 0 var(--o-s-2); font-weight: 600; color: var(--o-muted); }
.pdp .pdp-trail a { color: var(--o-ink); text-decoration: none; }
.pdp .pdp-trail a:hover { color: var(--o-brand-600); }
.pdp-address { margin: 0 0 var(--o-s-4); font-size: var(--o-fs-sm); }
.pdp-map { position: relative; aspect-ratio: 16 / 7; border-radius: var(--o-r-lg); overflow: hidden; background:
	repeating-linear-gradient(0deg, transparent 0 39px, rgba(19, 38, 28, 0.05) 39px 40px),
	repeating-linear-gradient(90deg, transparent 0 39px, rgba(19, 38, 28, 0.05) 39px 40px),
	var(--o-surface-2); border: 1px solid var(--o-line); }
.pdp-map__load { position: absolute; inset: 0; margin: auto; width: max-content; height: 48px; display: inline-flex; align-items: center; gap: var(--o-s-2); padding-inline: var(--o-s-5); border: 0; border-radius: var(--o-r-md); background: var(--o-surface); color: var(--o-ink); font: 700 var(--o-fs-sm)/1 sans-serif; font-family: inherit; cursor: pointer; box-shadow: var(--o-shadow-2); }
.pdp-map__load .o-i { color: var(--o-brand-600); }
.pdp-area { margin-block-start: var(--o-s-5); padding: var(--o-s-5); border-radius: var(--o-r-lg); background: var(--o-surface-2); }
.pdp-area__title { font-size: 1rem; font-weight: 800; margin-block-end: var(--o-s-2); }
.pdp-area p { font-size: var(--o-fs-sm); line-height: 1.7; }

.pdp .pdp-proj { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: var(--o-s-4); align-items: center; padding: var(--o-s-3); border: 1px solid var(--o-line); border-radius: var(--o-r-lg); color: var(--o-ink); text-decoration: none; transition: box-shadow var(--o-t-base) var(--o-ease), border-color var(--o-t-base) var(--o-ease); }
.pdp .pdp-proj:hover { border-color: transparent; box-shadow: var(--o-shadow-2); color: var(--o-ink); }
.pdp-proj__img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--o-r-md); }
.pdp-proj__body { display: grid; gap: 4px; }
.pdp-proj__title { font-weight: 800; font-size: 1.0625rem; }
.pdp-proj__meta { font-size: var(--o-fs-sm); color: var(--o-muted); }
.pdp-proj__cta { display: inline-flex; align-items: center; gap: 6px; font-size: var(--o-fs-sm); font-weight: 700; color: var(--o-brand-600); }

.pdp-mkt { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; border: 1px solid var(--o-line); border-radius: var(--o-r-lg); overflow: hidden; }
.pdp-mkt > div { padding: var(--o-s-4) var(--o-s-5); border-inline-start: 1px solid var(--o-line); }
.pdp-mkt > div:first-child { border-inline-start: 0; }
.pdp-mkt dt { font-size: var(--o-fs-xs); color: var(--o-muted); font-weight: 600; }
.pdp-mkt dd { margin: 2px 0 0; font-size: 1.25rem; font-weight: 800; color: var(--o-ink); white-space: nowrap; }

.pdp-similar .o-head { align-items: baseline; }
.pdp-legal { padding-block: var(--o-s-6); font-size: var(--o-fs-xs); color: var(--o-muted); max-width: 90ch; }

/* ============================================================ DIALOGS */

.pdp-dialog, .pdp-lb { border: 0; padding: 0; max-width: none; max-height: none; }
.pdp-dialog::backdrop { background: rgba(15, 26, 20, 0.55); }
.pdp-dialog { width: min(560px, calc(100% - 24px)); max-height: calc(100dvh - 32px); overflow: auto; border-radius: var(--o-r-lg); background: var(--o-surface); color: var(--o-text); box-shadow: 0 24px 80px rgba(15, 26, 20, 0.3); }
.pdp-form--book { margin: 0; padding: var(--o-s-6); border: 0; }
.pdp-dialog__head { display: flex; align-items: center; justify-content: space-between; gap: var(--o-s-4); }
.pdp-dialog__title { font-size: 1.375rem; font-weight: 800; }
.pdp-dialog__close { display: grid; place-items: center; width: 44px; height: 44px; border: 0; border-radius: var(--o-r-md); background: var(--o-surface-2); color: var(--o-ink); cursor: pointer; }
.pdp-dialog__sub { font-size: var(--o-fs-sm); color: var(--o-muted); margin-block-end: var(--o-s-2); }
.pdp-seg { display: grid; grid-template-columns: 1fr 1fr; gap: var(--o-s-2); }
.pdp-seg label, .pdp-day { position: relative; cursor: pointer; }
.pdp-seg input, .pdp-day input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.pdp-seg span { display: grid; place-items: center; min-height: 44px; border: 1px solid var(--o-line-strong); border-radius: var(--o-r-md); font-weight: 700; font-size: var(--o-fs-sm); color: var(--o-ink); }
.pdp-seg input:checked + span, .pdp-day input:checked + span { border-color: var(--o-brand-600); background: var(--o-brand-50); color: var(--o-brand-700); }
.pdp-seg input:focus-visible + span, .pdp-day input:focus-visible + span { outline: 3px solid var(--o-brand-600); outline-offset: 2px; }
.pdp-days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; }
.pdp-day span { display: grid; justify-items: center; gap: 2px; padding-block: var(--o-s-2); border: 1px solid var(--o-line-strong); border-radius: var(--o-r-md); color: var(--o-ink); }
.pdp-day small { font-size: 0.6875rem; color: var(--o-muted); }
.pdp-day strong { font-size: 1rem; }
.pdp-grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: var(--o-s-3); }

.pdp-lb { width: 100%; height: 100%; background: rgba(10, 16, 13, 0.96); color: #fff; }
.pdp-lb[open] { display: grid; grid-template-columns: 64px minmax(0, 1fr) 64px; grid-template-rows: 64px minmax(0, 1fr) 48px; align-items: center; }
.pdp-lb::backdrop { background: rgba(10, 16, 13, 0.96); }
.pdp-lb__fig { grid-column: 2; grid-row: 2; margin: 0; height: 100%; display: grid; place-items: center; min-height: 0; }
.pdp-lb__fig img { max-width: 100%; max-height: 100%; object-fit: contain; border-radius: var(--o-r-sm); }
.pdp-lb__close { grid-column: 3; grid-row: 1; justify-self: center; }
.pdp-lb__nav--prev { grid-column: 1; grid-row: 2; justify-self: center; }
.pdp-lb__nav--next { grid-column: 3; grid-row: 2; justify-self: center; }
.pdp-lb__close, .pdp-lb__nav { display: grid; place-items: center; width: 48px; height: 48px; border: 0; border-radius: 50%; background: rgba(255, 255, 255, 0.12); color: #fff; cursor: pointer; }
.pdp-lb__close:hover, .pdp-lb__nav:hover { background: rgba(255, 255, 255, 0.22); }
.pdp-lb__nav--prev .o-i { transform: scaleX(-1); }
[dir="rtl"] .pdp-lb__nav--prev .o-i { transform: none; }
[dir="rtl"] .pdp-lb__nav--next .o-i { transform: scaleX(-1); }
.pdp-lb__count { grid-column: 2; grid-row: 3; text-align: center; font-size: var(--o-fs-sm); color: rgba(255, 255, 255, 0.8); }

/* ========================================================= MOBILE BAR */

.pdp-bar { display: none; }

/* ============================================================== CHROME */

.oplus-pdp2 .page-title-wrap, .oplus-pdp2 .property-nav-wrap { display: none; }
.oplus-pdp2 .main-wrap, .oplus-pdp2 .content-wrap { padding-block: 0; }
@media print {
	.pdp-bar, .pdp-quick, .pdp-form, .pdp-book-link, .pdp-tools, .pdp-nav, .pdp-similar, .pdp-map, .fcb-container, header.oplus-header, footer { display: none !important; }
	.pdp__layout { display: block; }
	.pdp-card { box-shadow: none; }
}

/* ========================================================= RESPONSIVE */

@media (max-width: 1100px) {
	.pdp__layout { grid-template-columns: minmax(0, 1fr) 340px; column-gap: var(--o-s-8); }
	.pdp-amen { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 1023px) {
	.pdp__layout { display: block; padding-block: var(--o-s-5) var(--o-s-10); }
	.pdp__panel { position: static; margin-block-start: var(--o-s-5); }
	.pdp-card { box-shadow: none; }
	.pdp-nav { margin-block-start: var(--o-s-6); }
}

@media (max-width: 767px) {
	.pdp__top { padding-block-start: var(--o-s-3); }
	.pdp-crumbs { display: none; }

	/* Gallery becomes a swipe strip: every photo, one at a time. */
	.pdp__top { width: 100%; }
	.pdp-gallery { border-radius: 0; }
	.pdp-gallery__track { display: flex; height: auto; aspect-ratio: 4 / 3; gap: 0; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
	.pdp-gallery__track::-webkit-scrollbar { display: none; }
	.pdp-gallery__tile, .pdp-gallery__tile.is-extra { display: block; flex: 0 0 100%; scroll-snap-align: start; }
	.pdp-gallery__all { display: none; }
	.pdp-gallery__count { display: block; position: absolute; inset-block-end: var(--o-s-3); inset-inline-end: var(--o-s-3); padding: 4px 10px; border-radius: var(--o-r-sm); background: rgba(15, 26, 20, 0.7); color: #fff; font-size: var(--o-fs-xs); font-weight: 700; }
	.pdp-gallery__chips { inset-block-start: var(--o-s-3); inset-inline-start: var(--o-s-3); }

	.pdp-head__title { font-size: 1.5rem; }
	/* A grid, not a wrapping row: three facts sat 1px from wrapping, so the
	   web-font swap re-flowed the page (CLS 0.09). 3 → one row, 4 → 2 × 2. */
	.pdp-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--o-s-2); }
	.pdp-facts:has(> :nth-child(4)), .pdp-facts:has(> :nth-child(2):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.pdp-facts:has(> :only-child) { grid-template-columns: minmax(0, max-content); }
	.pdp-facts__item { min-width: 0; padding: var(--o-s-2) var(--o-s-3); column-gap: var(--o-s-2); }
	.pdp-facts__value { font-size: 1rem; }
	.pdp-facts__label { overflow-wrap: anywhere; }

	.pdp-card { padding: var(--o-s-5); }
	.pdp-sec { padding-block: var(--o-s-6); }
	.pdp-sec__title { font-size: 1.1875rem; }
	.pdp-dl { grid-template-columns: minmax(0, 1fr); }
	.pdp-amen { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--o-s-3); }
	.pdp-mkt { grid-template-columns: minmax(0, 1fr); }
	.pdp-mkt > div { border-inline-start: 0; border-block-start: 1px solid var(--o-line); }
	.pdp-mkt > div:first-child { border-block-start: 0; }
	.pdp .pdp-proj { grid-template-columns: 110px minmax(0, 1fr); }
	.pdp-map { aspect-ratio: 4 / 3; }
	.pdp-days { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.pdp-grid2 { grid-template-columns: minmax(0, 1fr); }

	/* One fixed element instead of three. */
	.oplus-pdp2 .fcb-container { display: none !important; }
	.pdp-bar {
		position: fixed; inset-inline: 0; inset-block-end: 0; z-index: 90;
		display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: var(--o-s-2);
		padding: var(--o-s-2) var(--o-s-3) calc(var(--o-s-2) + env(safe-area-inset-bottom));
		background: var(--o-surface); border-block-start: 1px solid var(--o-line); box-shadow: 0 -6px 24px rgba(19, 38, 28, 0.08);
	}
	.pdp .pdp-bar__btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 48px; border: 1px solid var(--o-line-strong); border-radius: var(--o-r-md); background: var(--o-surface); color: var(--o-ink); font: 700 var(--o-fs-sm)/1 sans-serif; font-family: inherit; text-decoration: none; cursor: pointer; }
	.pdp .pdp-bar__btn--wa { background: var(--o-brand-600); border-color: var(--o-brand-600); color: #fff; }
	.oplus-pdp2 .site-footer { padding-block-end: 72px; }

	.pdp-lb[open] { grid-template-columns: 0 minmax(0, 1fr) 0; grid-template-rows: 56px minmax(0, 1fr) 72px; }
	.pdp-lb__close { grid-column: 2; justify-self: end; margin-inline-end: var(--o-s-3); }
	.pdp-lb__nav--prev, .pdp-lb__nav--next { grid-row: 3; position: static; }
	.pdp-lb__nav--prev { grid-column: 2; justify-self: start; margin-inline-start: var(--o-s-4); }
	.pdp-lb__nav--next { grid-column: 2; justify-self: end; margin-inline-end: var(--o-s-4); }
}
