/* =========================================================
   PROPERTY PAGE - hero + Page Theme additions (prefix pt-)
   Loaded by resources/views/properties/show.blade.php after /css/style.css.
   Colours come from the per-property variables the page sets on
   .property-detail (admin > Property > Page Theme):
     --pt-brand / --pt-brand-rgb / --pt-on-brand, --pt-accent / --pt-accent-rgb
   No blur anywhere: the banner is always sharp.
   ========================================================= */

.property-detail .pt-hero {
    position: relative;
    isolation: isolate;
    display: flex;
    min-height: clamp(520px, 78svh, 780px);
    overflow: hidden;
    background: var(--pt-brand, #292929);
    color: #fff;
}

.pt-hero__media {
    position: absolute;
    inset: 0;
    z-index: -2;
}

.pt-hero__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scale(1.04);
    animation: pt-settle 2.4s cubic-bezier(0.22, 1, 0.36, 1) both;
}

/* the project's brand colour as the shade: strong at the bottom-left, clear top-right */
.pt-hero__shade {
    position: absolute;
    inset: 0;
    z-index: -1;
    background:
        linear-gradient(0deg, rgba(var(--pt-brand-rgb, 41, 41, 41), 0.92) 0%, rgba(var(--pt-brand-rgb, 41, 41, 41), 0.45) 34%, rgba(var(--pt-brand-rgb, 41, 41, 41), 0) 62%),
        linear-gradient(90deg, rgba(var(--pt-brand-rgb, 41, 41, 41), 0.6) 0%, rgba(var(--pt-brand-rgb, 41, 41, 41), 0.15) 55%, rgba(var(--pt-brand-rgb, 41, 41, 41), 0) 80%),
        linear-gradient(180deg, rgba(0, 0, 0, 0.28) 0%, rgba(0, 0, 0, 0) 22%);
}

.pt-hero__inner {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 28px;
    padding-top: clamp(24px, 4vh, 40px);
    padding-bottom: 140px; /* room for the price bar that overlaps the hero */
}

.pt-hero--no-bar .pt-hero__inner {
    padding-bottom: clamp(40px, 7vh, 72px);
}

.pt-crumbs {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    min-height: 20px;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.pt-crumbs a {
    color: rgba(255, 255, 255, 0.82);
    text-decoration: none;
    transition: color 0.3s ease;
}

.pt-crumbs a:hover {
    color: #fff;
}

.pt-crumbs span {
    color: rgba(255, 255, 255, 0.45);
}

.pt-hero__main {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 28px 48px;
}

.pt-hero__text {
    max-width: 760px;
    animation: pt-rise 1.1s cubic-bezier(0.22, 1, 0.36, 1) 0.15s both;
}

.pt-status {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 18px;
    padding: 8px 16px;
    border: 1px solid rgba(255, 255, 255, 0.4);
    border-radius: 999px;
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: #fff;
}

.pt-status i {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--pt-accent, #b79a63);
    box-shadow: 0 0 0 4px rgba(var(--pt-accent-rgb, 183, 154, 99), 0.3);
}

.property-detail .pt-title {
    margin: 0;
    font-family: "Playfair Display", Georgia, serif;
    font-size: clamp(2.4rem, 1.2rem + 3.4vw, 4.6rem);
    font-weight: 500;
    line-height: 1.02;
    letter-spacing: -0.025em;
    color: #fff;
    text-shadow: 0 2px 30px rgba(0, 0, 0, 0.25);
}

.pt-loc {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 16px 0 0;
    font-size: 16px;
    color: rgba(255, 255, 255, 0.86);
}

.pt-loc i {
    color: var(--pt-accent, #b79a63);
}

/* key facts: a clean row with thin dividers (no frosted glass) */
.pt-facts {
    display: flex;
    flex-wrap: wrap;
    margin: 0;
    padding: 0;
    animation: pt-rise 1.1s cubic-bezier(0.22, 1, 0.36, 1) 0.35s both;
}

.pt-facts__item {
    padding: 4px 26px;
    border-left: 1px solid rgba(255, 255, 255, 0.28);
}

.pt-facts__item:first-child {
    padding-left: 0;
    border-left: 0;
}

.pt-facts dt {
    margin-bottom: 6px;
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.62);
}

.pt-facts dd {
    margin: 0;
    font-family: "Playfair Display", Georgia, serif;
    font-size: 1.25rem;
    color: #fff;
}

/* sales contacts under the enquiry form */
.pt-contact {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 18px;
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px solid var(--pd-line, #e5e5e5);
    font-size: 14px;
}

.pt-contact span {
    flex-basis: 100%;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--pd-muted, #555);
}

.property-detail .pt-contact a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: 600;
    color: var(--pd-ink, #292929);
    text-decoration: none;
}

.pt-contact a i {
    color: var(--pt-accent, #b79a63);
}

/* a project's own logo is shown exactly as uploaded (the header flips the Hsquare logo to white) */
.hx-header .hx-brand img.is-custom-logo {
    filter: none;
    max-width: 220px;
    object-fit: contain;
}

/* microsite header: the single Enquire button */
.hx-cta--microsite span:first-child {
    white-space: nowrap;
}

@media (max-width: 767.98px) {
    .property-detail .pt-hero {
        min-height: 520px;
    }

    .pt-hero__inner {
        padding-bottom: 110px;
    }

    .pt-facts {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 16px 0;
        width: 100%;
    }

    .pt-facts__item:nth-child(odd) {
        padding-left: 0;
        border-left: 0;
    }

    .pt-facts__item:nth-child(even) {
        padding-left: 18px;
    }
}

@keyframes pt-settle {
    from { transform: scale(1.12); }
    to { transform: scale(1.04); }
}

@keyframes pt-rise {
    from { opacity: 0; transform: translateY(24px); }
    to { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: reduce) {
    .pt-hero__media img,
    .pt-hero__text,
    .pt-facts {
        animation: none;
    }
}

/* =========================================================
   PROPERTY BODY - portal layout (round 28)
   ========================================================= */

.property-detail {
    --pt-r: 20px;
    --pt-ink: var(--pd-ink, #292929);
    --pt-body: var(--pd-muted, #555);
    --pt-soft: var(--pd-cream, #f7f6f3);
    --pt-line: rgba(var(--pt-brand-rgb, 41, 41, 41), 0.1);
    --pt-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

/* sticky section tabs */
.pt-tabs {
    position: sticky;
    top: var(--hx-header-h, 80px);
    z-index: 20;
    margin-top: 28px;
    background: rgba(255, 255, 255, 0.96);
    box-shadow: 0 1px 0 var(--pt-line), 0 12px 24px -22px rgba(0, 0, 0, 0.4);
}

.pt-tabs__inner {
    display: flex;
    gap: 6px;
    overflow-x: auto;
    scrollbar-width: none;
}

.pt-tabs__inner::-webkit-scrollbar {
    display: none;
}

.property-detail .pt-tabs__link {
    position: relative;
    flex: none;
    padding: 18px 16px;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.04em;
    color: var(--pt-body);
    text-decoration: none;
    transition: color 0.3s ease;
}

.property-detail .pt-tabs__link::after {
    content: "";
    position: absolute;
    left: 16px;
    right: 16px;
    bottom: 0;
    height: 2px;
    background: var(--pt-accent, #b79a63);
    transform: scaleX(0);
    transition: transform 0.4s var(--pt-ease);
}

.property-detail .pt-tabs__link:hover,
.property-detail .pt-tabs__link.is-active {
    color: var(--pt-ink);
}

.property-detail .pt-tabs__link.is-active::after {
    transform: scaleX(1);
}

/* layout */
.pt-body {
    padding-top: 32px;
    padding-bottom: 70px;
}

.pt-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(300px, 380px);
    align-items: start;
    gap: 28px;
}

.pt-main {
    display: flex;
    flex-direction: column;
    gap: 24px;
    min-width: 0;
}

html {
    scroll-padding-top: calc(var(--hx-header-h, 80px) + 70px);
}

/* cards + headings */
.pt-card {
    padding: clamp(22px, 2.6vw, 38px);
    border: 1px solid var(--pt-line);
    border-radius: var(--pt-r);
    background: #fff;
    box-shadow: 0 20px 44px -36px rgba(0, 0, 0, 0.35);
}

.pt-card__head {
    margin-bottom: 22px;
}

.pt-card__head--row {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
}

.property-detail .pt-eyebrow {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0 0 8px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    color: var(--pt-accent, #b79a63);
}

.property-detail .pt-eyebrow::before {
    content: "";
    width: 26px;
    height: 1px;
    background: currentColor;
}

.property-detail .pt-h2 {
    margin: 0;
    font-family: "Playfair Display", Georgia, serif;
    font-size: clamp(1.5rem, 1.1rem + 1vw, 2.1rem);
    font-weight: 500;
    letter-spacing: -0.015em;
    color: var(--pt-ink);
}

.property-detail .pt-h3 {
    margin: 26px 0 14px;
    font-family: "Playfair Display", Georgia, serif;
    font-size: 1.3rem;
    font-weight: 500;
    color: var(--pt-ink);
}

.property-detail .pt-h4 {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 18px 0 10px;
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--pt-body);
}

.pt-h4 i {
    font-size: 14px;
    color: var(--pt-accent, #b79a63);
}

.pt-sub {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 10px 0 0;
    font-size: 14.5px;
    color: var(--pt-body);
}

.pt-sub i {
    color: var(--pt-accent, #b79a63);
}

.property-detail .pt-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 13.5px;
    font-weight: 600;
    color: var(--pt-ink);
    text-decoration: none;
    border-bottom: 1px solid currentColor;
    padding-bottom: 3px;
    transition: color 0.3s ease, gap 0.4s var(--pt-ease);
}

.property-detail .pt-link:hover {
    gap: 12px;
    color: var(--pt-accent, #b79a63);
}

.pt-count {
    padding: 7px 14px;
    border-radius: 999px;
    background: var(--pt-soft);
    font-size: 12.5px;
    font-weight: 600;
    color: var(--pt-ink);
}

/* at a glance */
.pt-glance {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    margin: 0 0 26px;
    overflow: hidden;
    border: 1px solid var(--pt-line);
    border-radius: 16px;
    background: var(--pt-line);
}

.pt-glance__item {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    grid-template-rows: auto auto;
    column-gap: 12px;
    padding: 16px 18px;
    background: #fff;
}

.pt-glance__item i {
    grid-row: span 2;
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 10px;
    background: rgba(var(--pt-accent-rgb, 183, 154, 99), 0.14);
    font-size: 15px;
    color: var(--pt-accent, #b79a63);
}

.pt-glance dt {
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--pt-body);
    opacity: 0.85;
}

.pt-glance dd {
    margin: 2px 0 0;
    font-size: 15px;
    font-weight: 600;
    color: var(--pt-ink);
    overflow-wrap: anywhere;
}

/* description */
.pt-prose {
    position: relative;
    font-size: 15.5px;
    line-height: 1.8;
    color: var(--pt-body);
}

.pt-prose.is-collapsed {
    max-height: 260px;
    overflow: hidden;
}

.pt-prose.is-collapsed::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 90px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0), #fff);
}

.pt-prose h2,
.pt-prose h3,
.pt-prose h4 {
    font-family: "Playfair Display", Georgia, serif;
    font-weight: 500;
    color: var(--pt-ink);
}

.pt-more {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 10px;
    padding: 0;
    border: 0;
    background: none;
    font-size: 13.5px;
    font-weight: 600;
    color: var(--pt-ink);
    cursor: pointer;
}

/* highlights */
.pt-highlights {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 22px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.pt-highlights li {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 12px 0;
    border-bottom: 1px solid var(--pt-line);
    font-size: 14.5px;
    color: var(--pt-ink);
}

.pt-highlights i {
    display: grid;
    flex: none;
    place-items: center;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--pt-brand, #292929);
    font-size: 13px;
    color: var(--pt-on-brand, #fff);
}

/* gallery mosaic */
.pt-mosaic {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-auto-rows: clamp(110px, 12vw, 170px);
    gap: 10px;
}

.pt-mosaic__item {
    position: relative;
    overflow: hidden;
    padding: 0;
    border: 0;
    border-radius: 14px;
    background: var(--pt-soft);
    cursor: zoom-in;
}

.pt-mosaic__item:first-child {
    grid-column: span 2;
    grid-row: span 2;
}

.pt-mosaic--1 .pt-mosaic__item:first-child {
    grid-column: 1 / -1;
}

.pt-mosaic--2 .pt-mosaic__item {
    grid-column: span 2;
    grid-row: span 2;
}

.pt-mosaic--3 .pt-mosaic__item:not(:first-child) {
    grid-column: span 2;
}

.pt-mosaic__item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 1.2s var(--pt-ease);
}

.pt-mosaic__item:hover img {
    transform: scale(1.05);
}

.pt-mosaic__more {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    background: rgba(var(--pt-brand-rgb, 41, 41, 41), 0.62);
    font-size: 15px;
    font-weight: 700;
    color: #fff;
}

.pt-video {
    position: relative;
    margin-top: 16px;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    border-radius: 14px;
    background: #000;
}

.pt-video iframe,
.pt-map iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

/* configurations */
.pt-configs {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 14px;
}

.pt-config {
    display: flex;
    flex-direction: column;
    padding: 20px;
    border: 1px solid var(--pt-line);
    border-radius: 16px;
    background: var(--pt-soft);
    transition: border-color 0.3s ease, transform 0.5s var(--pt-ease);
}

.pt-config:hover {
    border-color: var(--pt-accent, #b79a63);
    transform: translateY(-3px);
}

.property-detail .pt-config__type {
    margin: 0 0 14px;
    font-family: "Playfair Display", Georgia, serif;
    font-size: 1.4rem;
    font-weight: 500;
    color: var(--pt-ink);
}

.pt-config__specs {
    display: grid;
    gap: 10px;
    margin: 0 0 16px;
}

.pt-config__specs dt {
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--pt-body);
}

.pt-config__specs dd {
    margin: 2px 0 0;
    font-size: 16px;
    font-weight: 600;
    color: var(--pt-ink);
}

.pt-config__specs small {
    font-size: 12px;
    font-weight: 500;
    color: var(--pt-body);
}

.pt-config__foot {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-top: auto;
    padding-top: 14px;
    border-top: 1px solid var(--pt-line);
}

.pt-config__foot strong {
    font-size: 15px;
    color: var(--pt-accent, #b79a63);
}

.pt-config__foot .pt-config__ask {
    color: var(--pt-ink);
}

/* specifications */
.pt-specs {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 28px;
    margin: 0;
}

.pt-specs__row {
    display: grid;
    grid-template-columns: minmax(110px, 0.8fr) minmax(0, 1.2fr);
    gap: 14px;
    padding: 13px 0;
    border-bottom: 1px solid var(--pt-line);
}

.pt-specs dt {
    font-size: 13.5px;
    font-weight: 600;
    color: var(--pt-ink);
}

.pt-specs dd {
    margin: 0;
    font-size: 14px;
    color: var(--pt-body);
}

/* amenities */
.pt-amenities {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.pt-amenities li {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
    padding: 16px;
    border: 1px solid var(--pt-line);
    border-radius: 14px;
    background: #fff;
    font-size: 13.5px;
    font-weight: 600;
    color: var(--pt-ink);
    transition: border-color 0.3s ease, background-color 0.3s ease;
}

.pt-amenities li:hover {
    border-color: var(--pt-accent, #b79a63);
    background: var(--pt-soft);
}

.pt-amenities i {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    border-radius: 12px;
    background: rgba(var(--pt-accent-rgb, 183, 154, 99), 0.14);
    font-size: 17px;
    color: var(--pt-accent, #b79a63);
}

/* plans */
.pt-plans {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 14px;
}

.pt-plan {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    padding: 0;
    border: 1px solid var(--pt-line);
    border-radius: 16px;
    background: #fff;
    text-align: left;
    cursor: zoom-in;
}

.pt-plan img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: contain;
    padding: 12px;
    background: var(--pt-soft);
}

.pt-plan span {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 16px;
    font-size: 13.5px;
    font-weight: 600;
    color: var(--pt-ink);
}

/* location */
.pt-location {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
    gap: 24px;
}

.pt-location--nomap {
    grid-template-columns: minmax(0, 1fr);
}

.pt-places ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.pt-places li {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 0;
    border-bottom: 1px dashed var(--pt-line);
    font-size: 14.5px;
    color: var(--pt-ink);
}

.pt-places li b {
    flex: none;
    padding: 3px 10px;
    border-radius: 999px;
    background: var(--pt-soft);
    font-size: 12px;
    font-weight: 700;
    color: var(--pt-ink);
}

.pt-map {
    position: relative;
    min-height: 320px;
    overflow: hidden;
    border-radius: 16px;
    background: var(--pt-soft);
}

/* construction timeline */
.pt-timeline {
    margin: 0;
    padding: 0 0 0 26px;
    list-style: none;
    border-left: 1px solid var(--pt-line);
}

.pt-timeline li {
    position: relative;
    padding: 0 0 26px;
}

.pt-timeline li::before {
    content: "";
    position: absolute;
    left: -32px;
    top: 4px;
    width: 11px;
    height: 11px;
    border-radius: 50%;
    background: var(--pt-accent, #b79a63);
    box-shadow: 0 0 0 4px #fff;
}

.pt-timeline__date {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--pt-accent, #b79a63);
}

.property-detail .pt-timeline__title {
    margin: 4px 0 6px;
    font-size: 16px;
    font-weight: 600;
    color: var(--pt-ink);
}

.pt-timeline p {
    margin: 0 0 10px;
    font-size: 14.5px;
    color: var(--pt-body);
}

.pt-timeline__photos {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.pt-timeline__photos img {
    width: 110px;
    height: 80px;
    object-fit: cover;
    border-radius: 10px;
}

/* RERA + downloads */
.pt-card--split {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 28px;
}

.pt-card--split .pt-h3 {
    margin-top: 0;
}

.pt-rera ul,
.pt-docs ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.pt-rera li {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 0;
    border-bottom: 1px solid var(--pt-line);
}

.pt-rera li > i {
    font-size: 20px;
    color: var(--pt-accent, #b79a63);
}

.pt-rera li span {
    display: flex;
    flex: 1;
    flex-direction: column;
}

.pt-rera small {
    font-size: 11.5px;
    color: var(--pt-body);
}

.pt-rera strong {
    font-size: 15px;
    letter-spacing: 0.02em;
    color: var(--pt-ink);
}

.property-detail .pt-docs a {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    margin-bottom: 8px;
    border: 1px solid var(--pt-line);
    border-radius: 12px;
    font-size: 14px;
    font-weight: 600;
    color: var(--pt-ink);
    text-decoration: none;
    transition: border-color 0.3s ease, background-color 0.3s ease;
}

.property-detail .pt-docs a:hover {
    border-color: var(--pt-accent, #b79a63);
    background: var(--pt-soft);
}

.pt-docs a span {
    flex: 1;
}

.pt-docs a i {
    color: var(--pt-accent, #b79a63);
}

/* FAQs */
.pt-faq {
    border-bottom: 1px solid var(--pt-line);
}

.pt-faq summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 18px 0;
    font-size: 15.5px;
    font-weight: 600;
    color: var(--pt-ink);
    list-style: none;
    cursor: pointer;
}

.pt-faq summary::-webkit-details-marker {
    display: none;
}

.pt-faq summary i {
    flex: none;
    transition: transform 0.35s var(--pt-ease);
    color: var(--pt-accent, #b79a63);
}

.pt-faq[open] summary i {
    transform: rotate(45deg);
}

.pt-faq p {
    margin: 0;
    padding: 0 0 18px;
    font-size: 14.5px;
    line-height: 1.75;
    color: var(--pt-body);
}

/* sidebar */
/* the aside itself sticks (a grid item with align-items:start is only as tall as its content) */
.pt-side {
    position: sticky;
    top: calc(var(--hx-header-h, 80px) + 76px);
}

.property-detail .pt-enquiry {
    overflow: hidden;
    border: 1px solid var(--pt-line);
    border-radius: var(--pt-r);
    background: #fff;
    box-shadow: 0 30px 60px -40px rgba(0, 0, 0, 0.45);
}

.pt-enquiry__head {
    padding: 24px 26px 20px;
    background: var(--pt-brand, #292929);
    color: var(--pt-on-brand, #fff);
}

.property-detail .pt-enquiry__head .pt-eyebrow {
    color: var(--pt-accent, #b79a63);
}

.property-detail .pt-enquiry__head .pt-h3 {
    margin: 0 0 6px;
    color: var(--pt-on-brand, #fff);
}

.pt-enquiry__head p {
    margin: 0;
    font-size: 13.5px;
    line-height: 1.6;
    opacity: 0.8;
}

/* similar properties */
.pt-related {
    margin-top: 50px;
}

.pt-related__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 18px;
}

.property-detail .pt-rel {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid var(--pt-line);
    border-radius: var(--pt-r);
    background: #fff;
    color: var(--pt-ink);
    text-decoration: none;
    transition: transform 0.5s var(--pt-ease), box-shadow 0.5s var(--pt-ease);
}

.property-detail .pt-rel:hover {
    transform: translateY(-4px);
    box-shadow: 0 30px 50px -34px rgba(0, 0, 0, 0.45);
}

.pt-rel__media {
    position: relative;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background: var(--pt-soft);
}

.pt-rel__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 1.2s var(--pt-ease);
}

.pt-rel:hover .pt-rel__media img {
    transform: scale(1.05);
}

.pt-rel__tag {
    position: absolute;
    top: 12px;
    left: 12px;
    padding: 6px 11px;
    border-radius: 999px;
    background: #fff;
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--pt-ink);
}

.pt-rel__body {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 18px 20px 20px;
}

.pt-rel__type {
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--pt-accent, #b79a63);
}

.property-detail .pt-rel h3 {
    margin: 0;
    font-family: "Playfair Display", Georgia, serif;
    font-size: 1.3rem;
    font-weight: 500;
    color: var(--pt-ink);
}

.pt-rel__loc {
    font-size: 13.5px;
    color: var(--pt-body);
}

.pt-rel__price {
    margin-top: 6px;
    padding-top: 12px;
    border-top: 1px solid var(--pt-line);
    font-size: 14px;
    font-weight: 600;
    color: var(--pt-ink);
}

/* lightbox */
.pt-lightbox {
    position: fixed;
    inset: 0;
    z-index: 2000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 60px 70px;
    background: rgba(10, 10, 10, 0.92);
}

.pt-lightbox[hidden] {
    display: none;
}

.pt-lightbox figure {
    margin: 0;
    max-width: 100%;
    max-height: 100%;
    text-align: center;
}

.pt-lightbox img {
    max-width: 100%;
    max-height: calc(100svh - 160px);
    border-radius: 10px;
    object-fit: contain;
}

.pt-lightbox figcaption {
    margin-top: 12px;
    font-size: 13.5px;
    color: rgba(255, 255, 255, 0.75);
}

.pt-lightbox button {
    position: absolute;
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-radius: 50%;
    background: transparent;
    font-size: 18px;
    color: #fff;
    cursor: pointer;
}

.pt-lightbox button:hover {
    background: #fff;
    color: #111;
}

.pt-lightbox__close {
    top: 20px;
    right: 20px;
}

.pt-lightbox__nav--prev {
    left: 16px;
    top: 50%;
}

.pt-lightbox__nav--next {
    right: 16px;
    top: 50%;
}

.property-detail a:focus-visible,
.property-detail button:focus-visible,
.property-detail summary:focus-visible,
.pt-lightbox button:focus-visible {
    outline: 2px solid var(--pt-accent, #b79a63);
    outline-offset: 3px;
}

/* responsive */
@media (max-width: 991.98px) {
    .pt-layout {
        grid-template-columns: minmax(0, 1fr);
    }

    .pt-side {
        position: static;
    }

    .pt-location {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 767.98px) {
    .pt-glance {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .pt-highlights,
    .pt-specs {
        grid-template-columns: minmax(0, 1fr);
    }

    .pt-hero__inner {
        padding-left: 20px;
        padding-right: 20px;
    }

    .pt-amenities,
    .pt-plans {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .pt-amenities li {
        padding: 14px;
    }

    .pt-mosaic {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-auto-rows: 120px;
    }

    .pt-mosaic__item:nth-child(n + 4) {
        display: none;
    }

    .pt-mosaic__item:nth-child(3) {
        position: relative;
    }

    .pt-lightbox {
        padding: 60px 12px;
    }

    .pt-lightbox__nav--prev,
    .pt-lightbox__nav--next {
        top: auto;
        bottom: 16px;
    }

    .pt-tabs {
        margin-top: 18px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .pt-mosaic__item img,
    .pt-rel,
    .pt-rel__media img,
    .pt-config,
    .pt-faq summary i {
        transition: none;
    }
}
/* =========================================================
   PROPERTY PAGE - full-bleed showcase (round 31)
   Full-width wrapper (1800px column like the home page), hero call-to-actions,
   facts bar, boxless sections with hairline dividers, USP tiles, developer band,
   closing call-back strip. Colours come from the per-property theme variables.
   ========================================================= */

.pt-wrap {
    width: 100%;
    max-width: calc(1800px + 2 * var(--hx-gutter, 40px));
    margin: 0 auto;
    padding-left: var(--hx-gutter, 40px);
    padding-right: var(--hx-gutter, 40px);
}

/* buttons */
.pt-btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 14px 24px;
    border: 1px solid transparent;
    border-radius: 999px;
    font-family: inherit;
    font-size: 13.5px;
    font-weight: 600;
    letter-spacing: 0.03em;
    line-height: 1;
    text-decoration: none;
    cursor: pointer;
    transition: background-color 0.3s var(--pt-ease, ease), color 0.3s var(--pt-ease, ease), border-color 0.3s var(--pt-ease, ease), transform 0.4s var(--pt-ease, ease);
}

.pt-btn:hover {
    transform: translateY(-2px);
}

/* on photos / dark backgrounds */
.pt-btn--solid {
    background: #fff;
    color: #141414;
}

.pt-btn--solid:hover {
    background: var(--pt-accent, #b79a63);
    color: #141414;
}

.pt-btn--ghost {
    border-color: rgba(255, 255, 255, 0.55);
    background: transparent;
    color: #fff;
}

.pt-btn--ghost:hover {
    border-color: #fff;
    background: #fff;
    color: #141414;
}

/* on light backgrounds */
.pt-factbar .pt-btn--solid,
.pt-callback .pt-btn--solid {
    background: var(--pt-brand, #292929);
    color: var(--pt-on-brand, #fff);
}

.pt-factbar .pt-btn--solid:hover,
.pt-callback .pt-btn--solid:hover {
    background: var(--pt-accent, #b79a63);
    color: #141414;
}

.pt-btn--line {
    border-color: var(--pt-line, rgba(0, 0, 0, 0.18));
    border-color: rgba(var(--pt-brand-rgb, 41, 41, 41), 0.3);
    background: transparent;
    color: var(--pt-ink, #292929);
}

.pt-btn--line:hover {
    border-color: var(--pt-brand, #292929);
    background: var(--pt-brand, #292929);
    color: var(--pt-on-brand, #fff);
}

.pt-callback .pt-btn--ghost {
    border-color: rgba(var(--pt-brand-rgb, 41, 41, 41), 0.3);
    color: var(--pt-ink, #292929);
}

.pt-callback .pt-btn--ghost:hover {
    border-color: var(--pt-brand, #292929);
    background: var(--pt-brand, #292929);
    color: var(--pt-on-brand, #fff);
}

/* hero: bigger, with actions; the facts bar below replaces the old floating price card */
.property-detail .pt-hero {
    min-height: clamp(540px, 82svh, 820px);
}

.pt-hero__inner,
.pt-hero--no-bar .pt-hero__inner {
    padding-bottom: clamp(40px, 7vh, 80px);
}

.property-detail .pt-title {
    font-size: clamp(2.6rem, 1.1rem + 4.2vw, 5.6rem);
}

.pt-hero__cta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    margin-top: 26px;
}

.pt-rera-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 16px;
    border-radius: 999px;
    background: rgba(var(--pt-accent-rgb, 183, 154, 99), 0.22);
    border: 1px solid rgba(var(--pt-accent-rgb, 183, 154, 99), 0.7);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #fff;
}

.pt-rera-badge i {
    color: var(--pt-accent, #b79a63);
    font-size: 14px;
}

/* facts bar */
.pt-factbar {
    background: #fff;
    border-bottom: 1px solid var(--pt-line, rgba(0, 0, 0, 0.1));
}

.pt-factbar__inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 20px 48px;
    padding-top: 22px;
    padding-bottom: 22px;
}

.pt-factbar__facts {
    display: flex;
    flex-wrap: wrap;
    gap: 16px 0;
    margin: 0;
}

.pt-factbar__item {
    padding: 2px 32px;
    border-left: 1px solid var(--pt-line, rgba(0, 0, 0, 0.1));
}

.pt-factbar__item:first-child {
    padding-left: 0;
    border-left: 0;
}

.pt-factbar__item dt {
    margin-bottom: 4px;
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--pt-body, #555);
}

.pt-factbar__item dd {
    margin: 0;
    font-family: "Playfair Display", Georgia, serif;
    font-size: 1.15rem;
    color: var(--pt-ink, #292929);
}

.pt-factbar__item--price dd {
    font-size: 1.5rem;
    color: var(--pt-accent, #b79a63);
}

.pt-factbar__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

/* tabs + body: full width */
.pt-tabs {
    margin-top: 0;
}

.pt-body {
    padding-top: 0;
    padding-bottom: clamp(30px, 4vw, 60px);
}

.pt-layout {
    grid-template-columns: minmax(0, 1fr) minmax(340px, 420px);
    gap: clamp(32px, 4vw, 72px);
}

.pt-main {
    gap: 0;
}

/* sections: no boxes, hairline dividers */
.pt-card {
    padding: clamp(36px, 4.2vw, 68px) 0;
    border: 0;
    border-top: 1px solid var(--pt-line, rgba(0, 0, 0, 0.1));
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.pt-main > .pt-card:first-child {
    border-top: 0;
}

.pt-card__head {
    margin-bottom: 28px;
}

.property-detail .pt-h2 {
    font-size: clamp(1.7rem, 1.1rem + 1.4vw, 2.6rem);
}

.pt-glance {
    background: var(--pt-line, rgba(0, 0, 0, 0.1));
}

/* USP tiles */
.pt-usps {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 18px;
}

.pt-usp {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: 22px;
    border: 1px solid var(--pt-line, rgba(0, 0, 0, 0.1));
    border-radius: 18px;
    background: #fff;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.4;
    color: var(--pt-ink, #292929);
    transition: transform 0.5s var(--pt-ease, ease), box-shadow 0.5s var(--pt-ease, ease);
}

.pt-usp:hover {
    transform: translateY(-4px);
    box-shadow: 0 26px 40px -30px rgba(0, 0, 0, 0.45);
}

.pt-usp i {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: var(--pt-brand, #292929);
    font-size: 18px;
    color: var(--pt-on-brand, #fff);
}

/* gallery: taller mosaic on wide screens */
.pt-mosaic {
    grid-auto-rows: clamp(120px, 14vw, 230px);
}

/* developer + Hsquare band (full bleed) */
.pt-band {
    background: var(--pt-brand, #292929);
    color: var(--pt-on-brand, #fff);
}

.pt-band__inner {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(32px, 6vw, 110px);
    padding-top: clamp(50px, 6vw, 96px);
    padding-bottom: clamp(50px, 6vw, 96px);
}

.property-detail .pt-eyebrow--light {
    color: var(--pt-accent, #b79a63);
}

.pt-band__logo {
    display: block;
    height: 64px;
    width: auto;
    max-width: 240px;
    margin: 6px 0 16px;
    padding: 10px 16px;
    border-radius: 12px;
    background: #fff;
    object-fit: contain;
}

.property-detail .pt-band__title {
    margin: 0 0 14px;
    font-family: "Playfair Display", Georgia, serif;
    font-size: clamp(1.6rem, 1.1rem + 1.4vw, 2.5rem);
    font-weight: 500;
    line-height: 1.12;
    color: inherit;
}

.pt-band__text {
    max-width: 56ch;
    margin: 0;
    font-size: 15.5px;
    line-height: 1.8;
    opacity: 0.82;
}

.pt-band__list {
    margin: 22px 0 0;
    padding: 0;
    list-style: none;
}

.pt-band__list li {
    display: flex;
    gap: 16px;
    padding: 16px 0;
    border-top: 1px solid color-mix(in srgb, currentColor 18%, transparent);
    font-size: 15px;
    line-height: 1.55;
}

.pt-band__list li:last-child {
    border-bottom: 1px solid color-mix(in srgb, currentColor 18%, transparent);
}

.pt-band__list i {
    flex: none;
    margin-top: 2px;
    font-size: 20px;
    color: var(--pt-accent, #b79a63);
}

.pt-band__list strong {
    display: block;
    font-size: 16px;
}

.pt-band__list span {
    opacity: 0.85;
}

/* similar properties + call-back */
.pt-after {
    padding-bottom: clamp(30px, 4vw, 60px);
}

.pt-related {
    margin-top: clamp(40px, 5vw, 80px);
}

.pt-callback {
    border-top: 1px solid var(--pt-line, rgba(0, 0, 0, 0.1));
    background: var(--pt-soft, #f7f6f3);
}

.pt-callback__inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 24px 48px;
    padding-top: clamp(36px, 4vw, 60px);
    padding-bottom: clamp(36px, 4vw, 60px);
}

.pt-callback h2 {
    margin: 0 0 6px;
    font-family: "Playfair Display", Georgia, serif;
    font-size: clamp(1.5rem, 1rem + 1.4vw, 2.3rem);
    font-weight: 500;
    color: var(--pt-ink, #292929);
}

.pt-callback p {
    margin: 0;
    font-size: 15px;
    color: var(--pt-body, #555);
}

.pt-callback__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

@media (max-width: 1199.98px) {
    .pt-usps {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .pt-factbar__item {
        padding: 2px 22px;
    }
}

@media (max-width: 991.98px) {
    .pt-band__inner {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 767.98px) {
    .pt-factbar__facts {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        width: 100%;
        gap: 16px 0;
    }

    .pt-factbar__item,
    .pt-factbar__item:first-child {
        padding: 2px 16px 2px 0;
        border-left: 0;
    }

    .pt-factbar__item--price {
        grid-column: 1 / -1;
    }

    .pt-factbar__actions .pt-btn {
        flex: 1 1 auto;
        justify-content: center;
    }

    .pt-usps {
        grid-template-columns: minmax(0, 1fr);
    }

    .pt-hero__cta .pt-btn {
        padding: 13px 18px;
    }

    .pt-callback__actions .pt-btn {
        flex: 1 1 auto;
        justify-content: center;
    }
}

@media (prefers-reduced-motion: reduce) {
    .pt-usp,
    .pt-btn {
        transition: none;
    }
}
.pt-band__inner--single {
    grid-template-columns: minmax(0, 1fr);
}

.pt-band__inner--single .pt-band__col {
    max-width: 980px;
}

/* small screens: single column again (this must stay after the wide grid rule above) */
@media (max-width: 991.98px) {
    .pt-layout {
        grid-template-columns: minmax(0, 1fr);
    }

    .pt-side {
        position: static;
    }

    .pt-location {
        grid-template-columns: minmax(0, 1fr);
    }
}
/* At-a-glance grid: hairlines on the cells (not a grey container showing through),
   so an odd number of facts leaves a clean white cell instead of a grey block */
.pt-glance {
    gap: 0;
    background: #fff;
}

.pt-glance__item {
    border-top: 1px solid var(--pt-line, rgba(0, 0, 0, 0.1));
    border-left: 1px solid var(--pt-line, rgba(0, 0, 0, 0.1));
}

.pt-glance__item:nth-child(-n + 3) {
    border-top: 0;
}

.pt-glance__item:nth-child(3n + 1) {
    border-left: 0;
}

@media (max-width: 767.98px) {
    .pt-glance__item:nth-child(3) {
        border-top: 1px solid var(--pt-line, rgba(0, 0, 0, 0.1));
    }

    .pt-glance__item:nth-child(-n + 2) {
        border-top: 0;
    }

    .pt-glance__item:nth-child(3n + 1) {
        border-left: 1px solid var(--pt-line, rgba(0, 0, 0, 0.1));
    }

    .pt-glance__item:nth-child(2n + 1) {
        border-left: 0;
    }
}
/* =========================================================
   PROPERTY PAGE - clean & formal (round 32)
   Calm, editorial, one accent (the property's theme colour).
   White page, small 6px radius everywhere, no shadows, no numbering, no
   overlays on photos. Each section = a plain heading in a left column and its
   content on the right (stacks on small screens). These rules come last on
   purpose and replace the rounder round 28 / 31 look.
   ========================================================= */

.property-detail {
    --pt-r: 6px;
    background: var(--pt-page, #fff) !important;
}

/* hero: still image, headline, location, two buttons */
.property-detail .pt-hero {
    min-height: clamp(440px, 68svh, 700px);
}

.pt-hero__media img {
    animation: none !important;
    transform: none !important;
}

.pt-hero__shade {
    background:
        linear-gradient(0deg, rgba(var(--pt-brand-rgb, 41, 41, 41), 0.84) 0%, rgba(var(--pt-brand-rgb, 41, 41, 41), 0.3) 42%, rgba(var(--pt-brand-rgb, 41, 41, 41), 0.05) 100%),
        linear-gradient(180deg, rgba(0, 0, 0, 0.25) 0%, rgba(0, 0, 0, 0) 24%);
}

.pt-facts,
.pt-crumbs {
    display: none;
}

.pt-hero__inner {
    justify-content: flex-end;
}

.pt-status {
    margin-bottom: 16px;
    padding: 7px 12px;
    border-radius: 4px;
    font-size: 11px;
    letter-spacing: 0.14em;
}

.property-detail .pt-title {
    font-size: clamp(2.3rem, 1.1rem + 3.2vw, 4.4rem);
    letter-spacing: -0.02em;
}

.pt-btn {
    padding: 15px 24px;
    border-radius: 6px;
    font-size: 13px;
    letter-spacing: 0.04em;
}

.pt-btn:hover {
    transform: none;
}

/* facts bar + tabs */
.pt-factbar__item dd {
    font-size: 1.05rem;
}

.pt-factbar__item--price dd {
    font-size: 1.3rem;
}

.pt-tabs {
    background: #fff;
    box-shadow: none;
    border-bottom: 1px solid var(--pt-line, rgba(0, 0, 0, 0.1));
}

.property-detail .pt-tabs__link {
    font-size: 13.5px;
    letter-spacing: 0.02em;
    text-transform: none;
}

/* sections: heading column + content column */
.pt-card {
    display: grid;
    grid-template-columns: minmax(150px, 210px) minmax(0, 1fr);
    column-gap: clamp(28px, 4vw, 64px);
    padding: clamp(44px, 5vw, 80px) 0;
}

.pt-card > :not(.pt-card__head) {
    grid-column: 2;
}

.pt-card__head,
.pt-card__head--row {
    display: block;
    grid-column: 1;
    grid-row: 1 / span 40;
    align-self: start;
    position: sticky;
    top: calc(var(--hx-header-h, 80px) + 84px);
    margin: 0;
}

.property-detail .pt-card__head .pt-h2 {
    font-size: clamp(1.4rem, 1rem + 0.9vw, 1.9rem);
    line-height: 1.2;
}

.pt-card__head .pt-count {
    display: block;
    margin-top: 8px;
    padding: 0;
    background: none;
    font-size: 13px;
    font-weight: 400;
    color: var(--pt-body, #555);
}

.pt-card--split {
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}

.pt-card--split > :not(.pt-card__head) {
    grid-column: auto;
}

/* overview: facts as three quiet columns, no icons, no lines */
.pt-glance {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px 32px;
    margin-bottom: 30px;
    border: 0;
    border-radius: 0;
    background: none;
}

.pt-glance__item,
.pt-glance__item:nth-child(n) {
    display: block;
    padding: 0;
    border: 0;
    background: none;
}

.pt-glance__item i {
    display: none;
}

.pt-glance dt {
    margin: 0 0 4px;
    font-size: 12px;
    letter-spacing: 0.04em;
    text-transform: none;
    font-weight: 500;
    opacity: 1;
}

.pt-glance dd {
    margin: 0;
    font-size: 16px;
    font-weight: 600;
    text-align: left;
}

/* highlights: plain statements with a short accent rule above */
.pt-usps {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px clamp(24px, 4vw, 56px);
    counter-reset: none;
}

.pt-usp {
    display: block;
    padding: 16px 0 14px;
    border: 0;
    border-top: 1px solid var(--pt-line, rgba(0, 0, 0, 0.1));
    border-radius: 0;
    background: none;
    font-size: 15px;
    font-weight: 500;
    line-height: 1.5;
    counter-increment: none;
}

.pt-usp:hover {
    transform: none;
    box-shadow: none;
}

.pt-usp i {
    display: none;
}

.pt-usp::before {
    content: none;
}

/* media: small radius */
.pt-mosaic__item,
.pt-plan,
.pt-video,
.pt-map,
.pt-rel,
.pt-rel__media {
    border-radius: 6px;
}

.pt-mosaic {
    gap: 8px;
}

/* configurations: a clear table */
.pt-configs {
    display: block;
    border-top: 1px solid var(--pt-line, rgba(0, 0, 0, 0.1));
}

.pt-config {
    display: grid;
    grid-template-columns: minmax(100px, 0.5fr) minmax(0, 1.5fr) auto;
    align-items: center;
    gap: 12px 36px;
    padding: 20px 0;
    border: 0;
    border-bottom: 1px solid var(--pt-line, rgba(0, 0, 0, 0.1));
    border-radius: 0;
    background: none;
}

.pt-config:hover {
    transform: none;
}

.property-detail .pt-config__type {
    margin: 0;
    font-size: 1.25rem;
}

.pt-config__specs {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 40px;
    margin: 0;
}

.pt-config__specs dt {
    text-transform: none;
    letter-spacing: 0.02em;
    font-size: 12px;
    font-weight: 500;
}

.pt-config__foot {
    gap: 22px;
    margin: 0;
    padding: 0;
    border: 0;
}

/* specifications: two columns, spacing instead of lines */
.pt-h3 {
    margin-top: 40px;
}

.pt-specs {
    gap: 0 clamp(24px, 4vw, 56px);
}

.pt-specs__row {
    padding: 9px 0;
    border: 0;
}

.pt-specs dt {
    font-weight: 500;
    color: var(--pt-body, #555);
}

.pt-specs dd {
    color: var(--pt-ink, #292929);
    font-weight: 500;
}

/* amenities: a plain three-column list, no boxes, no lines */
.pt-amenities {
    display: block;
    column-count: 3;
    column-gap: clamp(24px, 4vw, 56px);
}

.pt-amenities li {
    display: flex;
    align-items: center;
    gap: 12px;
    break-inside: avoid;
    padding: 9px 0;
    border: 0;
    border-radius: 0;
    background: none;
    font-weight: 500;
}

.pt-amenities li:hover {
    background: none;
}

.pt-amenities i {
    width: auto;
    height: auto;
    background: none;
    font-size: 17px;
}

/* location: quiet list */
.pt-places li {
    border: 0;
    padding: 8px 0;
}

.pt-places li b {
    padding: 0;
    background: none;
    font-weight: 600;
}

/* sidebar enquiry: formal card */
.property-detail .pt-enquiry {
    border-radius: 6px;
    box-shadow: none;
}

/* similar properties, band, call-back */
.property-detail .pt-rel:hover {
    transform: none;
    box-shadow: none;
    border-color: var(--pt-ink, #292929);
}

.pt-rel:hover .pt-rel__media img {
    transform: none;
}

.pt-rel__type {
    text-transform: none;
    letter-spacing: 0.02em;
    font-size: 12.5px;
    font-weight: 500;
}

.pt-band__list li {
    border: 0;
    padding: 12px 0;
}

.pt-band__list li:last-child {
    border: 0;
}

.pt-callback {
    background: #fff;
}

/* gentle reveal as sections scroll into view (hierarchy only; off for reduced motion) */
@media (prefers-reduced-motion: no-preference) {
    @supports (animation-timeline: view()) {
        .pt-card,
        .pt-band__col,
        .pt-related,
        .pt-callback__inner {
            animation: pt-fade linear both;
            animation-timeline: view();
            animation-range: entry 0% entry 30%;
        }
    }
}

@keyframes pt-fade {
    from {
        opacity: 0;
        transform: translateY(22px);
    }

    to {
        opacity: 1;
        transform: none;
    }
}

@media (max-width: 991.98px) {
    .pt-card {
        display: block;
    }

    .pt-card__head,
    .pt-card__head--row {
        position: static;
        margin-bottom: 22px;
    }

    .pt-config {
        grid-template-columns: minmax(0, 1fr);
        gap: 10px;
    }

    .pt-amenities {
        column-count: 2;
    }
}

@media (max-width: 575.98px) {
    .pt-glance,
    .pt-usps {
        grid-template-columns: minmax(0, 1fr);
    }

    .pt-amenities {
        column-count: 1;
    }

    .pt-specs {
        grid-template-columns: minmax(0, 1fr);
    }
}
/* mobile sticky bar (partials/sticky-cta.blade.php): the property's own colours, not the site green */
.d-lg-none.position-fixed .btn-brand,
.d-lg-none.position-fixed .btn-brand:hover {
    background: var(--pt-accent, #B79A63);
    border-color: var(--pt-accent, #B79A63);
    color: #111;
}
/* =========================================================
   PROPERTY PAGE - round 33: competitor parity
   White header on property pages, key-facts strip under the hero, tabbed
   gallery with "Artist's impression" labels, plan filter + blurred plans
   until the visitor leaves their details, RERA QR codes, gate popup.
   ========================================================= */

/* header: white with dark text on property pages (nav.blade.php adds the class) */
.hx-header--light {
    --hx-bg: #ffffff;
    --hx-ink: #1a1a1a;
    --hx-ink-soft: rgba(26, 26, 26, 0.72);
    --hx-ink-mute: rgba(26, 26, 26, 0.5);
    --hx-line: rgba(0, 0, 0, 0.1);
    background: #fff;
    border-bottom-color: rgba(0, 0, 0, 0.1);
}

.hx-header--light .hx-brand img {
    filter: none;
}

.hx-header--light .hx-nav__link:hover,
.hx-header--light .hx-nav__link.is-active,
.hx-header--light .hx-cta:hover {
    color: #111;
}

.hx-header--light .hx-cta__icon {
    border-color: rgba(0, 0, 0, 0.22);
}

.hx-header--light .hx-burger {
    color: #1a1a1a;
}

body.lead-popup-open {
    overflow: hidden;
}

/* key facts strip: sits on the hero's bottom edge */
.property-detail .pt-hero {
    display: flex;
    flex-direction: column;
}

.pt-hero__inner {
    flex: 1;
}

.pt-hero__stats {
    position: relative;
    z-index: 2;
    background: rgba(255, 255, 255, 0.96);
    border-top: 1px solid var(--pt-line, rgba(0, 0, 0, 0.1));
}

.pt-stats {
    display: flex;
    flex-wrap: wrap;
    margin: 0;
    padding-top: 18px;
    padding-bottom: 18px;
}

.pt-stats__item {
    padding: 4px 40px 4px 0;
    margin-right: 40px;
    border-right: 1px solid var(--pt-line, rgba(0, 0, 0, 0.1));
}

.pt-stats__item:last-child {
    margin-right: 0;
    padding-right: 0;
    border-right: 0;
}

.pt-stats__item dd {
    margin: 0;
    font-family: "Playfair Display", Georgia, serif;
    font-size: clamp(1.25rem, 1rem + 0.8vw, 1.7rem);
    line-height: 1.1;
    color: var(--pt-ink, #292929);
}

.pt-stats__item dt {
    margin-top: 4px;
    font-size: 12px;
    font-weight: 500;
    color: var(--pt-body, #555);
}

.pt-factbar__item dd small,
.pt-config__foot strong small {
    display: inline-block;
    margin-left: 6px;
    font-family: "Plus Jakarta Sans", system-ui, sans-serif;
    font-size: 12px;
    font-weight: 500;
    color: var(--pt-body, #555);
}

/* gallery tabs */
.pt-gtabs {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin-bottom: 18px;
    border-bottom: 1px solid var(--pt-line, rgba(0, 0, 0, 0.1));
}

.pt-gtabs__btn {
    position: relative;
    padding: 10px 14px 12px;
    border: 0;
    background: none;
    font: inherit;
    font-size: 13.5px;
    font-weight: 500;
    color: var(--pt-body, #555);
    cursor: pointer;
}

.pt-gtabs__btn span {
    margin-left: 4px;
    font-size: 12px;
    opacity: 0.7;
}

.pt-gtabs__btn::after {
    content: "";
    position: absolute;
    left: 14px;
    right: 14px;
    bottom: -1px;
    height: 2px;
    background: var(--pt-ink, #292929);
    opacity: 0;
}

.pt-gtabs__btn.is-active {
    color: var(--pt-ink, #292929);
}

.pt-gtabs__btn.is-active::after {
    opacity: 1;
}

.pt-gpane[hidden] {
    display: none;
}

.pt-mosaic__tag {
    position: absolute;
    left: 0;
    bottom: 0;
    padding: 5px 10px;
    border-top-right-radius: 6px;
    background: rgba(0, 0, 0, 0.55);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.02em;
    color: #fff;
}

/* payment plan */
.pt-payplan {
    margin-top: 28px;
    padding: 20px 24px;
    border-radius: 6px;
    background: var(--pt-soft, #f7f6f3);
}

.pt-payplan .pt-h4 {
    margin: 0 0 8px;
}

.pt-payplan p {
    margin: 0;
    font-size: 14.5px;
    line-height: 1.6;
}

/* amenities by category */
.pt-amenity-groups {
    display: grid;
    gap: 28px;
}

.pt-amenity-group .pt-h4 {
    margin: 0 0 6px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--pt-line, rgba(0, 0, 0, 0.1));
}

/* plan filter chips */
.pt-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 18px;
}

.pt-chip {
    padding: 8px 14px;
    border: 1px solid var(--pt-line, rgba(0, 0, 0, 0.12));
    border-radius: 6px;
    background: #fff;
    font: inherit;
    font-size: 13px;
    font-weight: 500;
    color: var(--pt-ink, #292929);
    cursor: pointer;
}

.pt-chip.is-active {
    border-color: var(--pt-ink, #292929);
    background: var(--pt-ink, #292929);
    color: var(--pt-on-brand, #fff);
}

/* plans: blurred until unlocked */
.pt-plans {
    position: relative;
}

.pt-plan[hidden] {
    display: none;
}

.pt-plan__cap {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 12px 16px;
    font-size: 13.5px;
    color: var(--pt-ink, #292929);
}

.pt-plan__cap small {
    font-size: 12px;
    font-weight: 400;
    color: var(--pt-body, #555);
}

.pt-plans.is-locked .pt-plan {
    cursor: pointer;
}

.pt-plans.is-locked .pt-plan img {
    filter: blur(9px);
    transform: scale(1.04);
    user-select: none;
    pointer-events: none;
}

.pt-plans__lock {
    position: absolute;
    inset: 0;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 16px;
    padding: 24px;
    text-align: center;
}

.pt-plans__lock[hidden] {
    display: none;
}

.pt-plans__lock p {
    display: flex;
    flex-direction: column;
    gap: 4px;
    max-width: 320px;
    margin: 0;
    padding: 18px 22px 0;
    font-size: 14px;
    color: var(--pt-body, #555);
}

.pt-plans__lock p strong {
    font-family: "Playfair Display", Georgia, serif;
    font-size: 1.3rem;
    color: var(--pt-ink, #292929);
}

.pt-plans__lock > * {
    position: relative;
}

.pt-plans__lock::before {
    content: "";
    position: absolute;
    inset: auto;
    width: min(100%, 380px);
    height: 190px;
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.96);
    border: 1px solid var(--pt-line, rgba(0, 0, 0, 0.1));
}

/* location note */
.pt-note {
    margin: 14px 0 0;
    font-size: 12.5px;
    color: var(--pt-body, #555);
}

/* RERA with QR */
.pt-rera {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 16px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.pt-rera__item {
    display: flex;
    align-items: center;
    gap: 18px;
    padding: 18px 20px;
    border: 1px solid var(--pt-line, rgba(0, 0, 0, 0.1));
    border-radius: 6px;
    background: #fff;
}

.pt-rera__qr {
    flex-shrink: 0;
    width: 88px;
    height: 88px;
    background: #fff;
}

.pt-rera__qr img,
.pt-rera__qr canvas {
    display: block;
    width: 88px;
    height: 88px;
}

.pt-rera__text {
    display: flex;
    flex-direction: column;
    gap: 3px;
    min-width: 0;
}

.pt-rera__text small {
    font-size: 11.5px;
    color: var(--pt-body, #555);
}

.pt-rera__text strong {
    font-size: 15px;
    letter-spacing: 0.02em;
    word-break: break-all;
    color: var(--pt-ink, #292929);
}

.pt-rera__text .pt-link {
    margin-top: 4px;
    font-size: 13px;
}

.pt-docs--after {
    margin-top: 28px;
}

.pt-docs .pt-h4 {
    margin: 0 0 10px;
}

.property-detail .pt-docs a {
    border-radius: 6px;
}

/* gate popup */
.pt-modal {
    position: fixed;
    inset: 0;
    z-index: 2001;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    background: rgba(10, 10, 10, 0.6);
}

.pt-modal[hidden] {
    display: none;
}

.pt-modal__box {
    position: relative;
    width: min(100%, 440px);
    max-height: calc(100svh - 40px);
    overflow: auto;
    padding: 32px 32px 26px;
    border-radius: 6px;
    background: #fff;
    color: var(--pt-ink, #292929);
}

.pt-modal__close {
    position: absolute;
    top: 12px;
    right: 12px;
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border: 0;
    border-radius: 50%;
    background: transparent;
    font-size: 16px;
    color: var(--pt-ink, #292929);
    cursor: pointer;
}

.pt-modal__close:hover {
    background: var(--pt-soft, #f7f6f3);
}

.pt-modal__form[hidden],
.pt-modal__done[hidden],
.pt-modal__error[hidden],
[data-pt-modal-download][hidden] {
    display: none;
}

.pt-modal__title {
    margin: 0 28px 6px 0;
    font-family: "Playfair Display", Georgia, serif;
    font-size: 1.5rem;
    line-height: 1.2;
}

.pt-modal__text {
    margin: 0 0 20px;
    font-size: 14px;
    color: var(--pt-body, #555);
}

.pt-modal__field {
    display: block;
    margin-bottom: 14px;
}

.pt-modal__field span {
    display: block;
    margin-bottom: 6px;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--pt-body, #555);
}

.pt-modal__field input {
    width: 100%;
    padding: 12px 14px;
    border: 1px solid var(--pt-line, rgba(0, 0, 0, 0.14));
    border-radius: 6px;
    background: #fff;
    font: inherit;
    font-size: 15px;
    color: var(--pt-ink, #292929);
}

.pt-modal__field input:focus {
    outline: 2px solid var(--pt-accent, #b79a63);
    outline-offset: 1px;
    border-color: transparent;
}

.pt-modal__error {
    margin: 0 0 12px;
    font-size: 13.5px;
    color: #a4322b;
}

.pt-modal__submit {
    width: 100%;
    justify-content: center;
    margin-top: 6px;
}

.pt-modal__fine {
    margin: 14px 0 0;
    font-size: 12px;
    color: var(--pt-body, #555);
}

.pt-modal__done {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
}

.pt-modal__done > i {
    font-size: 36px;
    line-height: 1;
    color: var(--pt-accent, #b79a63);
}

.pt-modal__done .pt-modal__text {
    margin-bottom: 8px;
    font-size: 15px;
}

.pt-modal__done .pt-btn {
    width: 100%;
    justify-content: center;
}

@media (prefers-reduced-motion: no-preference) {
    .pt-modal__box {
        animation: pt-modal-in 0.3s cubic-bezier(0.16, 1, 0.3, 1);
    }
}

@keyframes pt-modal-in {
    from {
        transform: translateY(14px);
    }

    to {
        transform: none;
    }
}

@media (max-width: 767.98px) {
    .pt-stats {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 14px 24px;
    }

    .pt-stats__item {
        margin: 0;
        padding: 0;
        border: 0;
    }

    .pt-rera {
        grid-template-columns: minmax(0, 1fr);
    }

    .pt-modal {
        align-items: flex-end;
        padding: 0;
    }

    .pt-modal__box {
        width: 100%;
        max-height: calc(100svh - 24px);
        border-radius: 6px 6px 0 0;
        padding: 28px 22px 24px;
    }
}
/* round 33 fixes: amenity rows read left to right; RERA link hugs its text */
.pt-amenities li {
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    text-align: left;
}

.pt-rera__text .pt-link {
    align-self: flex-start;
}
/* =========================================================
   PAGE THEME FIX: surfaces follow the page colour.
   The price bar, section tabs, facts strip and call-back strip were hard
   white, so a tinted page looked like two different pages. Headings and body
   text now come from PropertyTheme::$ink / $body, which fall back to black
   or white when the chosen colours are too close to the page colour.
   ========================================================= */
.pt-factbar,
.pt-tabs,
.pt-hero__stats,
.pt-callback {
    background: var(--pt-page, #fff);
}

.pt-tabs {
    background: color-mix(in srgb, var(--pt-page, #fff) 96%, transparent);
}

.property-detail .pt-tabs__link,
.property-detail .pt-factbar__item dt,
.property-detail .pt-stats__item dt,
.property-detail .pt-callback p,
.property-detail .pt-note,
.property-detail .pt-sub,
.property-detail .pt-count {
    color: var(--pt-body, #555);
}

.property-detail .pt-tabs__link.is-active,
.property-detail .pt-factbar__item dd,
.property-detail .pt-stats__item dd,
.property-detail .pt-callback h2,
.property-detail .pt-h2,
.property-detail .pt-h3,
.property-detail .pt-h4,
.property-detail .pt-glance dd,
.property-detail .pt-usp,
.property-detail .pt-config__type,
.property-detail .pt-specs dd,
.property-detail .pt-amenities li,
.property-detail .pt-places li,
.property-detail .pt-faq summary,
.property-detail .pt-related h3 {
    color: var(--pt-ink, #292929);
}

.property-detail .pt-prose,
.property-detail .pt-glance dt,
.property-detail .pt-specs dt,
.property-detail .pt-faq p,
.property-detail .pt-timeline p {
    color: var(--pt-body, #555);
}

/* white cards keep their own dark text whatever the page colour */
.pt-rera__item,
.pt-rera__item strong,
.pt-plan__cap,
.pt-plan__cap strong,
.pt-rel__body h3,
.pt-modal__box,
.pt-enquiry .pd-enquiry__body,
.pt-plans__lock p strong {
    color: #1a1a1a;
}

.pt-rera__item small,
.pt-plan__cap small,
.pt-rel__type,
.pt-rel__loc,
.pt-plans__lock p,
.pt-enquiry .form-label,
.pt-modal__text,
.pt-modal__fine {
    color: #555;
}
/* enquiry form on a tinted theme: white card, dark labels, white inputs */
.property-detail .pt-enquiry {
    background: #fff;
}

.property-detail .pt-enquiry .pd-enquiry__body label,
.property-detail .pt-enquiry .pd-enquiry__body .form-label {
    color: #333;
}

.property-detail .pt-enquiry .form-control {
    background: #fff;
    border: 1px solid rgba(0, 0, 0, 0.14);
    color: #1a1a1a;
}

.property-detail .pt-enquiry .form-control::placeholder {
    color: #777;
}

.property-detail .pt-contact span {
    color: #555;
}
/* =========================================================
.pt-layout--single .pt-main {
    width: 100%;
}

/* buttons follow the property's button colour */
.property-detail .pt-btn--solid,
.property-detail .pt-factbar .pt-btn--solid,
.property-detail .pt-callback .pt-btn--solid {
    border: 1px solid var(--pt-btn);
    background: var(--pt-btn);
    color: var(--pt-btn-text);
}

.property-detail .pt-btn--solid:hover {
    background: color-mix(in srgb, var(--pt-btn) 86%, #000);
    border-color: color-mix(in srgb, var(--pt-btn) 86%, #000);
    color: var(--pt-btn-text);
}

.property-detail .pt-btn--line {
    border-color: color-mix(in srgb, var(--pd-ink) 45%, transparent);
    background: transparent;
    color: var(--pd-ink);
}

.property-detail .pt-btn--line:hover {
    border-color: var(--pd-ink);
    background: color-mix(in srgb, var(--pd-ink) 8%, transparent);
    color: var(--pd-ink);
}

.property-detail .pt-chip.is-active {
    border-color: var(--pt-btn);
    background: var(--pt-btn);
    color: var(--pt-btn-text);
}

.pt-tabs__inner {
    display: flex;
    align-items: center;
}

.pt-tabs__cta {
    margin-left: auto;
    flex-shrink: 0;
    padding: 10px 18px;
    white-space: nowrap;
}

/* cards, popup and plan tiles follow the card colour */
.property-detail .pt-rera__item,
.property-detail .pt-plan,
.property-detail .pt-rel,
.property-detail .pt-plans__lock::before,
.property-detail .pt-docs a {
    background: var(--pt-card);
    color: var(--pt-card-ink);
}

.property-detail .pt-rera__item strong,
.property-detail .pt-plan__cap,
.property-detail .pt-plan__cap strong,
.property-detail .pt-rel__body h3,
.property-detail .pt-plans__lock p strong,
.property-detail .pt-docs a {
    color: var(--pt-card-ink);
}

.property-detail .pt-rera__item small,
.property-detail .pt-plan__cap small,
.property-detail .pt-rel__type,
.property-detail .pt-rel__loc,
.property-detail .pt-plans__lock p {
    color: var(--pt-card-mute);
}

.property-detail .pt-plan img {
    background: color-mix(in srgb, var(--pt-card-ink) 6%, var(--pt-card));
}

.pt-modal__box {
    background: var(--pt-card);
    color: var(--pt-card-ink);
}

.pt-modal__title,
.pt-modal__close {
    color: var(--pt-card-ink);
}

.pt-modal__text,
.pt-modal__fine,
.pt-modal__field span {
    color: var(--pt-card-mute);
}

.pt-modal__field span em {
    font-style: normal;
    text-transform: none;
    letter-spacing: 0;
}

.pt-modal__field input {
    border-color: color-mix(in srgb, var(--pt-card-ink) 22%, transparent);
    background: color-mix(in srgb, var(--pt-card-ink) 5%, var(--pt-card));
    color: var(--pt-card-ink);
}

.pt-modal__field[hidden] {
    display: none;
}

.pt-modal__done .pt-btn--line {
    border-color: color-mix(in srgb, var(--pt-card-ink) 40%, transparent);
    color: var(--pt-card-ink);
}

/* the body of every layout is the page colour; bands only exist in Showcase */
.property-detail .pt-body {
    background: transparent;
}

.pt-payplan {
    background: var(--pt-band);
}

/* ---------- SHOWCASE: landing-page composition ---------- */
.property-detail.pt-lay-showcase .pt-card {
    display: block;
    padding: clamp(52px, 6vw, 96px) 0;
    border: 0;
}

/* every second section sits on the band colour, full width (shadow + clip, no horizontal scroll) */
.property-detail.pt-lay-showcase .pt-card:nth-of-type(even) {
    background: var(--pt-band);
    box-shadow: 0 0 0 100vmax var(--pt-band);
    clip-path: inset(0 -100vmax);
}

.property-detail.pt-lay-showcase .pt-card__head,
.property-detail.pt-lay-showcase .pt-card__head--row {
    position: static;
    display: block;
    margin: 0 auto clamp(28px, 3.5vw, 48px);
    text-align: center;
}

.property-detail.pt-lay-showcase .pt-card__head .pt-h2 {
    font-size: clamp(1.9rem, 1.2rem + 1.8vw, 2.9rem);
    line-height: 1.1;
}

.property-detail.pt-lay-showcase .pt-card__head .pt-sub,
.property-detail.pt-lay-showcase .pt-card__head .pt-count {
    display: block;
    margin-top: 10px;
}

.property-detail.pt-lay-showcase .pt-gtabs,
.property-detail.pt-lay-showcase .pt-chips {
    justify-content: center;
}

/* overview: text on the left, facts card on the right */
@media (min-width: 992px) {
    .property-detail.pt-lay-showcase #pt-overview {
        display: grid;
        grid-template-columns: minmax(0, 1.5fr) minmax(300px, 1fr);
        column-gap: clamp(32px, 5vw, 80px);
    }

    .property-detail.pt-lay-showcase #pt-overview > .pt-card__head {
        grid-column: 1 / -1;
    }

    .property-detail.pt-lay-showcase #pt-overview > .pt-glance {
        grid-column: 2;
        grid-row: 2 / span 6;
        align-self: start;
        grid-template-columns: 1fr;
        gap: 0;
        margin: 0;
        padding: 10px 28px;
        border: 1px solid color-mix(in srgb, var(--pt-card-ink) 12%, transparent);
        border-radius: 6px;
        background: var(--pt-card);
    }

    .property-detail.pt-lay-showcase #pt-overview > :not(.pt-card__head):not(.pt-glance) {
        grid-column: 1;
    }
}

.property-detail.pt-lay-showcase .pt-glance__item {
    padding: 14px 0;
    border-bottom: 1px solid color-mix(in srgb, var(--pt-card-ink) 10%, transparent);
}

.property-detail.pt-lay-showcase .pt-glance__item:last-child {
    border-bottom: 0;
}

.property-detail.pt-lay-showcase .pt-glance dt {
    color: var(--pt-card-mute);
}

.property-detail.pt-lay-showcase .pt-glance dd {
    color: var(--pt-card-ink);
}

/* highlights as cards */
.property-detail.pt-lay-showcase .pt-usps {
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 14px;
}

.property-detail.pt-lay-showcase .pt-usp {
    padding: 18px 20px;
    border: 1px solid color-mix(in srgb, var(--pt-card-ink) 12%, transparent);
    border-left: 3px solid var(--pt-accent);
    border-radius: 6px;
    background: var(--pt-card);
    color: var(--pt-card-ink);
}

/* configurations as cards */
.property-detail.pt-lay-showcase .pt-configs {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(290px, 1fr));
    gap: 20px;
    border: 0;
}

.property-detail.pt-lay-showcase .pt-config {
    display: flex;
    flex-direction: column;
    gap: 18px;
    padding: 28px;
    border: 1px solid color-mix(in srgb, var(--pt-card-ink) 12%, transparent);
    border-radius: 6px;
    background: var(--pt-card);
    color: var(--pt-card-ink);
}

.property-detail.pt-lay-showcase .pt-config .pt-config__type {
    color: var(--pt-card-ink);
}

.property-detail.pt-lay-showcase .pt-config__specs dt {
    color: var(--pt-card-mute);
}

.property-detail.pt-lay-showcase .pt-config__specs dd,
.property-detail.pt-lay-showcase .pt-config__foot strong {
    color: var(--pt-card-ink);
}

.property-detail.pt-lay-showcase .pt-config__foot {
    justify-content: space-between;
    margin-top: auto;
    padding-top: 16px;
    border-top: 1px solid color-mix(in srgb, var(--pt-card-ink) 10%, transparent);
}

.property-detail.pt-lay-showcase .pt-specs {
    padding: 8px 28px;
    border-radius: 6px;
    background: var(--pt-card);
}

.property-detail.pt-lay-showcase .pt-specs dt {
    color: var(--pt-card-mute);
}

.property-detail.pt-lay-showcase .pt-specs dd {
    color: var(--pt-card-ink);
}

/* amenities as tiles */
.property-detail.pt-lay-showcase .pt-amenity-groups {
    gap: 36px;
}

.property-detail.pt-lay-showcase .pt-amenity-group .pt-h4 {
    text-align: center;
    border: 0;
}

.property-detail.pt-lay-showcase .pt-amenities {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
    gap: 12px;
    column-count: auto;
}

.property-detail.pt-lay-showcase .pt-amenities li {
    padding: 16px 18px;
    border: 1px solid color-mix(in srgb, var(--pt-card-ink) 12%, transparent);
    border-radius: 6px;
    background: var(--pt-card);
    color: var(--pt-card-ink);
}

.property-detail.pt-lay-showcase .pt-amenities li:hover {
    background: var(--pt-card);
    border-color: var(--pt-accent);
}

/* location: list + map side by side */
.property-detail.pt-lay-showcase .pt-places li {
    border-bottom: 1px solid color-mix(in srgb, var(--pd-ink) 12%, transparent);
}

.property-detail.pt-lay-showcase .pt-faqs {
    max-width: 900px;
    margin: 0 auto;
}

.property-detail.pt-lay-showcase .pt-timeline {
    max-width: 900px;
    margin: 0 auto;
}

/* ---------- SIMPLE: one narrow reading column ---------- */
/* ---------- CLASSIC keeps the label column set in the round 32 / 33 blocks ---------- */

@media (max-width: 991.98px) {
    .pt-tabs__cta {
        display: none;
    }

    .property-detail.pt-lay-showcase .pt-card__head {
        text-align: left;
    }

    .property-detail.pt-lay-showcase .pt-gtabs,
    .property-detail.pt-lay-showcase .pt-chips {
        justify-content: flex-start;
    }
}

@media (max-width: 575.98px) {
.property-detail.pt-lay-showcase .pt-amenities {
        grid-template-columns: minmax(0, 1fr);
    }
}
/* round 35 fixes */
.property-detail.pt-lay-showcase #pt-overview > .pt-card__head {
    grid-row: auto;
    position: static;
}

.property-detail.pt-lay-showcase .pt-config {
    align-items: stretch;
    text-align: left;
}

.property-detail.pt-lay-showcase .pt-config__specs {
    justify-content: flex-start;
}

.property-detail.pt-lay-showcase .pt-config__foot {
    width: 100%;
    margin-top: auto;
    align-items: center;
}

.property-detail.pt-lay-showcase .pt-amenity-group .pt-h4 {
    text-align: left;
}
/* mobile sticky bar follows the button colour */
.d-lg-none.position-fixed .btn-brand,
.d-lg-none.position-fixed .btn-brand:hover {
    background: var(--pt-btn, #292929);
    border-color: var(--pt-btn, #292929);
    color: var(--pt-btn-text, #fff);
}
/* =========================================================
   ROUND 36: smoother scrolling + footer logo size
   ========================================================= */

/* a project's own footer logo is capped (it is often a huge bitmap); the default Hsquare logo is untouched */
.site-footer .footer-logo--custom {
    display: block;
    width: auto;
    height: auto;
    max-width: 240px;
    max-height: 64px;
    object-fit: contain;
}

/* full-bleed section bands are painted by a plain pseudo-element and the page clips the overflow,
   instead of a 100vmax box-shadow + clip-path (which repainted a huge area on every scroll frame) */
.property-detail {
    overflow-x: clip;
}

.property-detail.pt-lay-showcase .pt-card {
    position: relative;
    isolation: isolate;
}

.property-detail.pt-lay-showcase .pt-card:nth-of-type(even) {
    background: none;
    box-shadow: none;
    clip-path: none;
}

.property-detail.pt-lay-showcase .pt-card:nth-of-type(even)::before {
    content: "";
    position: absolute;
    z-index: -1;
    top: 0;
    bottom: 0;
    left: 50%;
    width: 100vw;
    margin-left: -50vw;
    background: var(--pt-band);
}

/* no scroll-linked fades on whole sections: they promoted every large section to its own layer */
.property-detail .pt-card,
.property-detail .pt-band__col,
.property-detail .pt-related,
.property-detail .pt-callback__inner {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
}

/* =========================================================
   ROUND 37: steady scrolling on trackpads
   ========================================================= */

/* The site header used to slide away on scroll-down and back on the slightest scroll-up (0.6 s),
   which on a Mac trackpad (inertia reverses direction constantly) looked like jitter, and the
   pinned section bar jumped around under it. On property pages the header just stays. */
.hx-header--light.is-hidden {
    transform: none;
}

/* the pinned section bar is opaque, so the photo under it is never re-blended while it moves */
.pt-tabs {
    background: var(--pt-page, #fff);
}

/* on wide screens the bar has nothing to scroll, so it must not be a scroll container
   (a nested overflow-x:auto element can swallow the wheel / trackpad gesture) */
@media (min-width: 992px) {
    .pt-tabs__inner {
        overflow: visible;
    }
}

.pt-tabs__inner {
    overscroll-behavior-x: contain;
}
/* =========================================================
   ROUND 38: Showcase layout, structured
   One rhythm for the whole page: a centred heading with a short accent bar, then a grid that
   uses the full width. Sections alternate between the page and band colours.
   ========================================================= */

.property-detail.pt-lay-showcase .pt-card__head {
    margin-bottom: clamp(32px, 4vw, 56px);
}

.property-detail.pt-lay-showcase .pt-card__head .pt-h2::after {
    content: "";
    display: block;
    width: 44px;
    height: 3px;
    margin: 18px auto 0;
    border-radius: 2px;
    background: var(--pt-accent);
}

/* ---------- Overview: text + facts card side by side, highlights as a full-width row ---------- */
@media (min-width: 992px) {
    .property-detail.pt-lay-showcase #pt-overview {
        grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
        align-items: start;
    }

    .property-detail.pt-lay-showcase #pt-overview > .pt-glance {
        grid-column: 2;
        grid-row: 2 / span 2;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        column-gap: 28px;
        padding: 14px 28px;
    }

    .property-detail.pt-lay-showcase #pt-overview > .pt-prose {
        grid-column: 1;
        grid-row: 2;
    }

    .property-detail.pt-lay-showcase #pt-overview > .pt-more {
        grid-column: 1;
        grid-row: 3;
        justify-self: start;
    }

    .property-detail.pt-lay-showcase #pt-overview > .pt-h3,
    .property-detail.pt-lay-showcase #pt-overview > .pt-usps {
        grid-column: 1 / -1;
    }
}

.property-detail.pt-lay-showcase #pt-overview > .pt-h3 {
    margin: clamp(40px, 5vw, 64px) 0 24px;
    text-align: center;
}

.property-detail.pt-lay-showcase .pt-glance__item:nth-last-child(-n+2):nth-child(odd),
.property-detail.pt-lay-showcase .pt-glance__item:last-child {
    border-bottom: 0;
}

.property-detail.pt-lay-showcase .pt-usps {
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
}

/* ---------- Configurations: cards, then payment plan and specifications as one block ---------- */
.property-detail.pt-lay-showcase .pt-payplan {
    margin-top: 24px;
    border: 1px solid color-mix(in srgb, var(--pd-ink) 12%, transparent);
    background: var(--pt-card);
    color: var(--pt-card-ink);
}

.property-detail.pt-lay-showcase .pt-payplan .pt-h4,
.property-detail.pt-lay-showcase .pt-payplan p {
    color: var(--pt-card-ink);
}

.property-detail.pt-lay-showcase #pt-config > .pt-h3 {
    margin: clamp(36px, 4vw, 56px) 0 20px;
    text-align: center;
}

/* ---------- Amenities: one card per category, flowing into balanced columns ---------- */
.property-detail.pt-lay-showcase .pt-amenity-groups {
    display: block;
    column-count: 3;
    column-gap: 24px;
}

.property-detail.pt-lay-showcase .pt-amenity-group {
    display: inline-block;
    width: 100%;
    margin: 0 0 24px;
    padding: 24px 26px 18px;
    break-inside: avoid;
    border: 1px solid color-mix(in srgb, var(--pt-card-ink) 12%, transparent);
    border-radius: 6px;
    background: var(--pt-card);
}

.property-detail.pt-lay-showcase .pt-amenity-group .pt-h4 {
    margin: 0 0 14px;
    padding: 0 0 12px;
    border-bottom: 1px solid color-mix(in srgb, var(--pt-card-ink) 12%, transparent);
    color: var(--pt-card-ink);
}

.property-detail.pt-lay-showcase .pt-amenity-group .pt-amenities {
    display: block;
    column-count: 1;
}

.property-detail.pt-lay-showcase .pt-amenity-group .pt-amenities li {
    padding: 8px 0;
    border: 0;
    border-radius: 0;
    background: none;
    color: var(--pt-card-ink);
}

.property-detail.pt-lay-showcase .pt-amenity-group .pt-amenities li:hover {
    border: 0;
    background: none;
}

/* ---------- Plans: an even row across the width ---------- */
.property-detail.pt-lay-showcase .pt-plans {
    grid-template-columns: repeat(auto-fit, minmax(240px, 360px));
    justify-content: center;
    gap: 20px;
}

/* ---------- Location: list on the left, a real map on the right ---------- */
.property-detail.pt-lay-showcase .pt-location {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
    gap: clamp(28px, 4vw, 56px);
    align-items: stretch;
}

.property-detail.pt-lay-showcase .pt-location--nomap {
    grid-template-columns: minmax(0, 760px);
    justify-content: center;
}

.property-detail.pt-lay-showcase .pt-map {
    min-height: 460px;
    overflow: hidden;
    border-radius: 6px;
    background: var(--pt-card);
}

.property-detail.pt-lay-showcase .pt-map iframe {
    width: 100%;
    height: 100%;
    min-height: 460px;
    border: 0;
}

/* ---------- Construction updates, RERA, FAQs: centred blocks ---------- */
.property-detail.pt-lay-showcase .pt-timeline {
    max-width: 760px;
}

.property-detail.pt-lay-showcase .pt-rera {
    grid-template-columns: repeat(auto-fit, minmax(300px, 420px));
    justify-content: center;
}

.property-detail.pt-lay-showcase .pt-docs {
    max-width: 760px;
    margin-left: auto;
    margin-right: auto;
}

/* ---------- Developer / guidance band: heading centred, points in a row ---------- */
.property-detail.pt-lay-showcase .pt-band__inner--single {
    display: block;
}

.property-detail.pt-lay-showcase .pt-band__inner--single .pt-band__title {
    margin-bottom: 36px;
    text-align: center;
}

.property-detail.pt-lay-showcase .pt-band__inner--single .pt-band__list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
    gap: 28px 40px;
}

/* ---------- Similar properties + call-back strip ---------- */
.property-detail.pt-lay-showcase .pt-related > .pt-card__head--row {
    margin-bottom: 36px;
}

/* ---------- Phone ---------- */
@media (max-width: 991.98px) {
    .property-detail.pt-lay-showcase .pt-amenity-groups {
        column-count: 2;
    }

    .property-detail.pt-lay-showcase .pt-location {
        grid-template-columns: minmax(0, 1fr);
    }

    .property-detail.pt-lay-showcase .pt-map,
    .property-detail.pt-lay-showcase .pt-map iframe {
        min-height: 320px;
    }

    .property-detail.pt-lay-showcase .pt-card__head .pt-h2::after {
        margin-left: 0;
    }
}

@media (max-width: 575.98px) {
    .property-detail.pt-lay-showcase .pt-amenity-groups {
        column-count: 1;
    }

    .property-detail.pt-lay-showcase .pt-glance {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
/* round 38 touch-ups */
@media (min-width: 992px) {
    /* the facts card spans the text rows plus a spare flexible row, so extra height never opens a gap between text and "Read more" */
    .property-detail.pt-lay-showcase #pt-overview {
        grid-template-rows: auto auto auto 1fr auto auto;
    }

    .property-detail.pt-lay-showcase #pt-overview > .pt-glance {
        grid-row: 2 / span 3;
    }

    .property-detail.pt-lay-showcase #pt-overview > .pt-h3 {
        grid-row: 5;
    }

    .property-detail.pt-lay-showcase #pt-overview > .pt-usps {
        grid-row: 6;
    }
}

.property-detail.pt-lay-showcase .pt-plans {
    grid-template-columns: repeat(auto-fit, minmax(220px, 300px));
}

.property-detail.pt-lay-showcase .pt-band__inner--single .pt-band__col {
    max-width: none;
    width: 100%;
}

.property-detail.pt-lay-showcase .pt-band__inner--single .pt-band__list li {
    border-top: 0;
    padding: 0;
}
/* round 38: specificity fixes (an older id-based rule kept these two in column 1) */
@media (min-width: 992px) {
    .property-detail.pt-lay-showcase section#pt-overview.pt-card > .pt-h3,
    .property-detail.pt-lay-showcase section#pt-overview.pt-card > .pt-usps {
        grid-column: 1 / -1;
    }
}

.property-detail.pt-lay-showcase .pt-related__grid {
    grid-template-columns: repeat(auto-fit, minmax(260px, 380px));
    justify-content: center;
    gap: 20px;
}
/* round 38: amenity categories fill the row evenly instead of flowing into uneven columns */
.property-detail.pt-lay-showcase .pt-amenity-groups {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(270px, 1fr));
    gap: 24px;
    align-items: start;
    column-count: auto;
}

.property-detail.pt-lay-showcase .pt-amenity-group {
    display: block;
    margin: 0;
}

@media (max-width: 575.98px) {
    .property-detail.pt-lay-showcase .pt-amenity-groups {
        grid-template-columns: minmax(0, 1fr);
    }
}
/* =========================================================
   ROUND 39: nothing is pinned beside the content
   - No layout keeps a heading (or anything else) stuck in a left column while the right side scrolls.
     Only the section bar under the header stays pinned.
   - Classic = the same structured grids as Showcase, with left-aligned headings, no coloured bands and
     a hairline between sections.
   ========================================================= */
.property-detail .pt-card__head,
.property-detail .pt-card__head--row {
    position: static !important;
    top: auto !important;
}

/* =========================================================
   ROUND 40: Overview = photo + facts card side by side, description as its own row below
   The photo stretches to the height of the facts card, so the left side is never empty,
   with or without a description.
   ========================================================= */
.pt-overview__media {
    position: relative;
    margin: 0 0 28px;
    overflow: hidden;
    border-radius: 6px;
    background: var(--pt-band);
    aspect-ratio: 16 / 10;
}

.pt-overview__media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

@media (min-width: 992px) {
    .property-detail.pt-lay-showcase section#pt-overview.pt-card {
        grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
        grid-template-rows: auto auto auto auto auto auto;
        column-gap: clamp(32px, 4vw, 64px);
        align-items: stretch;
    }

    .property-detail.pt-lay-showcase section#pt-overview.pt-card > .pt-overview__media {
        grid-column: 1;
        grid-row: 2;
        margin: 0;
        aspect-ratio: auto;
        min-height: 380px;
    }

    .property-detail.pt-lay-showcase section#pt-overview.pt-card > .pt-glance {
        grid-column: 2;
        grid-row: 2;
        align-self: stretch;
    }

    .property-detail.pt-lay-showcase section#pt-overview.pt-card > .pt-prose {
        grid-column: 1 / -1;
        grid-row: 3;
        max-width: 900px;
        margin-top: 36px;
    }

    .property-detail.pt-lay-showcase section#pt-overview.pt-card > .pt-more {
        grid-column: 1 / -1;
        grid-row: 4;
        justify-self: start;
    }

    .property-detail.pt-lay-showcase section#pt-overview.pt-card > .pt-h3 {
        grid-row: 5;
    }

    .property-detail.pt-lay-showcase section#pt-overview.pt-card > .pt-usps {
        grid-row: 6;
    }

    .property-detail.pt-lay-showcase section#pt-overview.pt-card > .pt-prose,
    .property-detail.pt-lay-showcase section#pt-overview.pt-card > .pt-more {
        justify-self: center;
    }

    .property-detail.pt-lay-showcase section#pt-overview.pt-card > .pt-prose {
        width: 100%;
    }
}

@media (max-width: 991.98px) {
    .property-detail section#pt-overview.pt-card > .pt-overview__media {
        order: -1;
    }
}
/* =========================================================
   ROUND 41: Location, redesigned
   Map across the full width first, then one column per category (icon, title, a short accent rule,
   the places). No box per category and no line under every row, so it reads differently from Amenities.
   ========================================================= */
.property-detail .pt-location {
    display: flex;
    flex-direction: column;
    gap: clamp(32px, 4vw, 52px);
}

.property-detail .pt-location .pt-map {
    order: -1;
    width: 100%;
    min-height: 0;
    height: clamp(300px, 36vw, 460px);
    overflow: hidden;
    border-radius: 6px;
    background: var(--pt-band);
}

.property-detail .pt-location .pt-map iframe {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 0;
    border: 0;
}

.property-detail .pt-places {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: clamp(28px, 3vw, 44px) clamp(28px, 4vw, 56px);
}

.property-detail .pt-places .pt-place-group {
    min-width: 0;
}

.property-detail .pt-places .pt-place-group .pt-h4 {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 18px;
    padding: 0;
    border: 0;
    font-size: 12px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--pd-ink);
}

.property-detail .pt-places .pt-place-group .pt-h4 i {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 6px;
    background: color-mix(in srgb, var(--pt-accent) 16%, transparent);
    font-size: 16px;
    color: var(--pt-accent);
}

.property-detail .pt-places .pt-place-group .pt-h4::after {
    content: none;
}

.property-detail .pt-places .pt-place-group ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.property-detail .pt-places .pt-place-group li {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
    padding: 7px 0;
    border: 0;
    font-size: 15px;
    line-height: 1.45;
    color: var(--pd-ink);
}

.property-detail .pt-places .pt-place-group li b {
    flex-shrink: 0;
    padding: 0;
    background: none;
    font-size: 13.5px;
    font-weight: 600;
    white-space: nowrap;
    color: var(--pt-accent-ink, var(--pd-ink));
}

/* one short accent rule above each category column */
.property-detail .pt-places .pt-place-group {
    padding-top: 22px;
    border-top: 2px solid color-mix(in srgb, var(--pt-accent) 55%, transparent);
}

.property-detail .pt-location .pt-note {
    grid-column: 1 / -1;
    margin: 0;
}

/* without a map the columns simply start the section */
.property-detail .pt-location--nomap {
    gap: 0;
}

@media (max-width: 575.98px) {
    .property-detail .pt-places {
        grid-template-columns: minmax(0, 1fr);
    }

    .property-detail .pt-location .pt-map {
        height: 280px;
    }
}
/* =========================================================
   ROUND 42: Location, side by side, as one panel
   Left: the places grouped by category in a tidy two-column list (name, time). Right: the map, filling
   the full height of the panel. One border around both, one divider between categories.
   ========================================================= */
.property-detail .pt-location {
    display: grid;
    grid-template-columns: minmax(300px, 5fr) minmax(0, 7fr);
    gap: 0;
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--pt-card-ink) 14%, transparent);
    border-radius: 6px;
    background: var(--pt-card);
    color: var(--pt-card-ink);
}

.property-detail .pt-location .pt-places {
    display: block;
    padding: clamp(24px, 2.8vw, 40px);
}

.property-detail .pt-location .pt-map {
    order: 0;
    position: relative;
    height: auto;
    min-height: 460px;
    border-radius: 0;
    background: color-mix(in srgb, var(--pt-card-ink) 6%, var(--pt-card));
}

.property-detail .pt-location .pt-map iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    min-height: 0;
}

.property-detail .pt-location .pt-places .pt-place-group {
    margin: 0;
    padding: 0;
    border: 0;
}

.property-detail .pt-location .pt-places .pt-place-group + .pt-place-group {
    margin-top: 26px;
    padding-top: 26px;
    border-top: 1px solid color-mix(in srgb, var(--pt-card-ink) 12%, transparent);
}

.property-detail .pt-location .pt-places .pt-place-group .pt-h4 {
    margin: 0 0 12px;
    color: var(--pt-card-ink);
}

.property-detail .pt-location .pt-places .pt-place-group li {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 16px;
    padding: 8px 0;
    color: var(--pt-card-ink);
}

.property-detail .pt-location .pt-places .pt-place-group li b {
    min-width: 62px;
    padding: 4px 10px;
    border-radius: 4px;
    background: color-mix(in srgb, var(--pt-accent) 14%, transparent);
    font-size: 12.5px;
    text-align: center;
    color: var(--pt-card-ink);
}

.property-detail .pt-location .pt-note {
    margin: 26px 0 0;
    font-size: 12.5px;
    color: var(--pt-card-mute);
}

/* no map: the groups use the panel's width as columns */
.property-detail .pt-location--nomap {
    grid-template-columns: minmax(0, 1fr);
}

.property-detail .pt-location--nomap .pt-places {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 28px 44px;
}

.property-detail .pt-location--nomap .pt-places .pt-place-group + .pt-place-group {
    margin-top: 0;
    padding-top: 0;
    border-top: 0;
}

.property-detail .pt-location--nomap .pt-note {
    grid-column: 1 / -1;
    margin-top: 0;
}

@media (max-width: 991.98px) {
    .property-detail .pt-location {
        grid-template-columns: minmax(0, 1fr);
    }

    .property-detail .pt-location .pt-map {
        order: -1;
        min-height: 320px;
    }
}
/* round 42b: each category is one compact row: label on the left, its places on the right */
.property-detail .pt-location {
    grid-template-columns: minmax(340px, 6fr) minmax(0, 7fr);
}

.property-detail .pt-location .pt-places .pt-place-group {
    display: grid;
    grid-template-columns: 124px minmax(0, 1fr);
    gap: 6px 20px;
    align-items: start;
}

.property-detail .pt-location .pt-places .pt-place-group .pt-h4 {
    flex-direction: column;
    align-items: flex-start;
    gap: 9px;
    margin: 0;
    line-height: 1.3;
}

.property-detail .pt-location .pt-places .pt-place-group + .pt-place-group {
    margin-top: 20px;
    padding-top: 20px;
}

.property-detail .pt-location .pt-places .pt-place-group li {
    padding: 5px 0;
}

.property-detail .pt-location .pt-places .pt-place-group li:first-child {
    padding-top: 0;
}

.property-detail .pt-location .pt-note {
    margin-top: 22px;
}

@media (max-width: 575.98px) {
    .property-detail .pt-location .pt-places .pt-place-group {
        grid-template-columns: minmax(0, 1fr);
        gap: 12px;
    }

    .property-detail .pt-location .pt-places .pt-place-group .pt-h4 {
        flex-direction: row;
        align-items: center;
    }
}
/* round 42c: icon + title on one line, aligned with the first place of the row */
.property-detail .pt-location .pt-places .pt-place-group .pt-h4 {
    flex-direction: row;
    align-items: flex-start;
    gap: 8px;
    line-height: 22px;
}

.property-detail .pt-location .pt-places .pt-place-group .pt-h4 i {
    flex-shrink: 0;
    display: block;
    width: auto;
    height: 22px;
    border-radius: 0;
    background: none;
    font-size: 15px;
    line-height: 22px;
    color: var(--pt-accent);
}

@media (max-width: 575.98px) {
    .property-detail .pt-location .pt-places .pt-place-group .pt-h4 {
        align-items: center;
    }
}
/* =========================================================
   ROUND 43: key-facts band (replaces the hero stats strip + the separate price bar)
   One row: price | one grid of facts | actions. One type system: small muted labels, 600-weight values,
   lining numerals in the price. The price is set in the heading colour (the gold failed contrast on white).
   ========================================================= */
.property-detail .pt-fb {
    background: var(--pt-page);
    border-bottom: 1px solid color-mix(in srgb, var(--pd-ink) 12%, transparent);
}

.property-detail .pt-fb__inner {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: clamp(24px, 3.2vw, 56px);
    padding-top: clamp(24px, 2.6vw, 34px);
    padding-bottom: clamp(24px, 2.6vw, 34px);
}

.property-detail .pt-fb__inner--nopricing {
    grid-template-columns: minmax(0, 1fr);
}

.property-detail .pt-fb__price {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding-right: clamp(24px, 3.2vw, 56px);
    border-right: 1px solid color-mix(in srgb, var(--pd-ink) 14%, transparent);
}

.property-detail .pt-fb__label,
.property-detail .pt-fb__cell dt {
    font-size: 12.5px;
    font-weight: 500;
    letter-spacing: 0.01em;
    text-transform: none;
    color: var(--pd-muted);
}

.property-detail .pt-fb__price strong {
    font-family: "Playfair Display", Georgia, serif;
    font-size: clamp(1.55rem, 1.1rem + 1.1vw, 2.15rem);
    font-weight: 600;
    font-variant-numeric: lining-nums;
    line-height: 1.1;
    color: var(--pd-ink);
}

.property-detail .pt-fb__price small {
    font-size: 13px;
    color: var(--pd-muted);
}

.property-detail .pt-fb__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 22px clamp(20px, 2.6vw, 40px);
    margin: 0;
}

.property-detail .pt-fb__cell {
    min-width: 0;
}

.property-detail .pt-fb__cell dd {
    margin: 3px 0 0;
    font-size: 16.5px;
    font-weight: 600;
    line-height: 1.35;
    overflow-wrap: anywhere;
    color: var(--pd-ink);
}

.property-detail .pt-fb__actions {
    display: flex;
    flex-direction: column;
    gap: 10px;
    width: clamp(200px, 17vw, 250px);
}

.property-detail .pt-fb__actions .pt-btn {
    justify-content: center;
    width: 100%;
    white-space: nowrap;
}

@media (max-width: 1199.98px) {
    .property-detail .pt-fb__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 991.98px) {
    .property-detail .pt-fb__inner {
        grid-template-columns: minmax(0, 1fr);
        gap: 24px;
    }

    .property-detail .pt-fb__price {
        padding-right: 0;
        border-right: 0;
    }

    .property-detail .pt-fb__grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .property-detail .pt-fb__actions {
        flex-direction: row;
        flex-wrap: wrap;
        width: 100%;
    }

    .property-detail .pt-fb__actions .pt-btn {
        flex: 1 1 180px;
        width: auto;
    }
}

@media (max-width: 767.98px) {
    .property-detail .pt-fb__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
/* round 43b: give the facts grid more room so values like "Under Construction" stay on one line */
.property-detail .pt-fb__inner {
    gap: clamp(20px, 2.4vw, 40px);
}

.property-detail .pt-fb__price {
    padding-right: clamp(20px, 2.4vw, 40px);
}

.property-detail .pt-fb__price strong {
    font-size: clamp(1.5rem, 1.1rem + 0.9vw, 1.95rem);
}

.property-detail .pt-fb__grid {
    gap: 22px clamp(16px, 1.8vw, 28px);
}

.property-detail .pt-fb__cell dd {
    font-size: 16px;
}

.property-detail .pt-fb__actions {
    width: clamp(190px, 14.5vw, 220px);
}
/* =========================================================
   ROUND 44: banner as tall as the home banner, key-facts card overlapping its bottom edge
   Same recipe as the home page search bar (.hm-search__bar): solid white card, 20px radius, soft shadow,
   pulled up over the banner. Banner + the white header = exactly one screen.
   ========================================================= */
.property-detail .pt-hero {
    min-height: max(620px, calc(100svh - var(--hx-header-h, 80px)));
}

.property-detail .pt-hero__inner {
    padding-bottom: clamp(120px, 13vw, 170px);
}

.property-detail .pt-fb {
    position: relative;
    z-index: 6;
    margin-top: clamp(-96px, -7vw, -64px);
    padding-bottom: clamp(24px, 3vw, 40px);
    background: transparent;
    border-bottom: 0;
}

.property-detail .pt-fb__inner {
    padding: clamp(20px, 2.2vw, 30px) clamp(22px, 2.6vw, 38px);
    border-radius: 20px;
    background: var(--pt-card, #fff);
    box-shadow: 0 0 0 1px rgba(26, 22, 18, 0.06), 0 30px 60px -32px rgba(26, 22, 18, 0.45);
}

.property-detail .pt-fb__price strong,
.property-detail .pt-fb__cell dd {
    color: var(--pt-card-ink, var(--pd-ink));
}

.property-detail .pt-fb__label,
.property-detail .pt-fb__cell dt,
.property-detail .pt-fb__price small {
    color: var(--pt-card-mute, var(--pd-muted));
}

.property-detail .pt-fb__actions .pt-btn {
    border-radius: 14px;
}

@media (max-width: 991.98px) {
    .property-detail .pt-hero {
        min-height: max(560px, calc(100svh - var(--hx-header-h, 72px)));
    }

    .property-detail .pt-fb {
        margin-top: -44px;
    }

    .property-detail .pt-fb__inner {
        border-radius: 16px;
    }
}
@media (max-width: 991.98px) {
    .property-detail .pt-fb__actions {
        width: 100%;
    }
}
/* =========================================================
   ROUND 45: Construction updates + RERA side by side (one section, two columns)
   Each column keeps its own heading and anchor (#pt-progress, #pt-rera). A hairline separates them on desktop;
   they stack on small screens. With only one of them, it is centred at a readable width.
   ========================================================= */
.property-detail .pt-duo {
    display: block;
}

.property-detail .pt-duo__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(32px, 4vw, 72px);
    align-items: start;
}

.property-detail .pt-duo__grid--one {
    grid-template-columns: minmax(0, 760px);
    justify-content: center;
}

.property-detail .pt-duo__col {
    min-width: 0;
}

.property-detail .pt-duo__col + .pt-duo__col {
    padding-left: clamp(32px, 4vw, 72px);
    margin-left: calc(clamp(32px, 4vw, 72px) * -1);
    border-left: 1px solid color-mix(in srgb, var(--pd-ink) 14%, transparent);
}

.property-detail .pt-duo__col .pt-card__head {
    margin: 0 0 clamp(24px, 3vw, 36px);
    text-align: left;
}

.property-detail .pt-duo__col .pt-card__head .pt-h2::after {
    margin-left: 0;
}

.property-detail .pt-duo__col .pt-timeline,
.property-detail .pt-duo__col .pt-docs {
    max-width: none;
    margin-left: 0;
    margin-right: 0;
}

.property-detail .pt-duo__col .pt-rera {
    grid-template-columns: minmax(0, 1fr);
    justify-content: stretch;
}

.property-detail .pt-duo__grid--one .pt-card__head {
    text-align: center;
}

.property-detail .pt-duo__grid--one .pt-card__head .pt-h2::after {
    margin-left: auto;
}

@media (max-width: 991.98px) {
    .property-detail .pt-duo__grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .property-detail .pt-duo__col + .pt-duo__col {
        padding-left: 0;
        margin-left: 0;
        padding-top: clamp(32px, 6vw, 48px);
        border-left: 0;
        border-top: 1px solid color-mix(in srgb, var(--pd-ink) 14%, transparent);
    }
}
/* =========================================================
   ROUND 46: three genuinely different layouts
   - Showcase (default): landing page. Overlap facts card, alternating colour bands, cards, centred headings.
   - Classic: formal prospectus. Square corners, thin rules instead of cards, serif headings aligned left,
     a ruled fact strip under the banner, amenities as plain lists. Nothing pinned beside the content.
   - Simple: minimal and quiet. Short banner, one narrow column, all-sans type, soft rounded shapes,
     amenities as small pills, map above the list.
   Each block resets what the shared base styles set, so the three never inherit each other.
   ========================================================= */

/* =============================== CLASSIC =============================== */
.property-detail.pt-lay-classic {
    --pt-cl-rule: color-mix(in srgb, var(--pd-ink) 22%, transparent);
    --pt-cl-hair: color-mix(in srgb, var(--pd-ink) 12%, transparent);
}

/* banner: shorter, text bottom-left, no overlap card */
.property-detail.pt-lay-classic .pt-hero {
    min-height: clamp(520px, 74svh, 760px);
}

.property-detail.pt-lay-classic .pt-hero__inner {
    padding-bottom: clamp(48px, 6vw, 84px);
}

.property-detail.pt-lay-classic .pt-title {
    font-weight: 500;
    letter-spacing: -0.01em;
}

.property-detail.pt-lay-classic .pt-status,
.property-detail.pt-lay-classic .pt-btn,
.property-detail.pt-lay-classic .pt-hero__cta .pt-btn {
    border-radius: 0;
}

.property-detail.pt-lay-classic .pt-btn {
    padding: 14px 24px;
    font-size: 12.5px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

/* facts: a ruled strip directly under the banner, flat, square */
.property-detail.pt-lay-classic .pt-fb {
    margin-top: 0;
    padding: 0;
    background: var(--pt-page);
    border-bottom: 1px solid var(--pt-cl-rule);
}

.property-detail.pt-lay-classic .pt-fb__inner {
    padding: clamp(22px, 2.4vw, 32px) 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.property-detail.pt-lay-classic .pt-fb__price strong,
.property-detail.pt-lay-classic .pt-fb__cell dd {
    color: var(--pd-ink);
}

.property-detail.pt-lay-classic .pt-fb__label,
.property-detail.pt-lay-classic .pt-fb__cell dt,
.property-detail.pt-lay-classic .pt-fb__price small {
    color: var(--pd-muted);
}

.property-detail.pt-lay-classic .pt-fb__cell {
    padding-left: clamp(14px, 1.6vw, 24px);
    border-left: 1px solid var(--pt-cl-hair);
}

.property-detail.pt-lay-classic .pt-fb__actions .pt-btn {
    border-radius: 0;
}

/* sections: one heading rule across the width, no cards, no bands */
.property-detail.pt-lay-classic .pt-card {
    display: block;
    padding: clamp(48px, 5.5vw, 84px) 0;
    border: 0;
    border-top: 1px solid var(--pt-cl-hair);
    background: none;
}

.property-detail.pt-lay-classic .pt-main > .pt-card:first-child {
    border-top: 0;
}

.property-detail.pt-lay-classic .pt-card > :not(.pt-card__head) {
    grid-column: auto;
}

.property-detail.pt-lay-classic .pt-card__head,
.property-detail.pt-lay-classic .pt-card__head--row {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 6px 24px;
    margin: 0 0 clamp(26px, 3vw, 40px);
    padding-bottom: 16px;
    border-bottom: 1px solid var(--pt-cl-rule);
    text-align: left;
}

.property-detail.pt-lay-classic .pt-card__head .pt-h2 {
    margin: 0;
    font-size: clamp(1.55rem, 1.2rem + 1vw, 2.1rem);
    font-weight: 500;
}

.property-detail.pt-lay-classic .pt-card__head .pt-h2::after {
    content: none;
}

.property-detail.pt-lay-classic .pt-card__head .pt-sub,
.property-detail.pt-lay-classic .pt-card__head .pt-count {
    margin: 0;
    padding: 0;
    background: none;
    font-size: 13.5px;
    color: var(--pd-muted);
}

/* overview: wide photo, then description left and a ruled fact list right */
.property-detail.pt-lay-classic #pt-overview {
    display: grid;
    grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
    column-gap: clamp(32px, 5vw, 80px);
}

.property-detail.pt-lay-classic #pt-overview > .pt-card__head,
.property-detail.pt-lay-classic #pt-overview > .pt-overview__media,
.property-detail.pt-lay-classic #pt-overview > .pt-h3,
.property-detail.pt-lay-classic #pt-overview > .pt-usps {
    grid-column: 1 / -1;
}

.property-detail.pt-lay-classic .pt-overview__media {
    margin: 0 0 clamp(28px, 3.4vw, 48px);
    border-radius: 0;
    aspect-ratio: 21 / 8;
}

.property-detail.pt-lay-classic #pt-overview > .pt-prose {
    grid-column: 1;
    grid-row: 3;
}

.property-detail.pt-lay-classic #pt-overview > .pt-more {
    grid-column: 1;
    grid-row: 4;
    justify-self: start;
}

.property-detail.pt-lay-classic #pt-overview > .pt-glance {
    grid-column: 2;
    grid-row: 3 / span 2;
    align-self: start;
    display: block;
    margin: 0;
    padding: 0;
    border: 0;
    border-top: 1px solid var(--pt-cl-rule);
    background: none;
}

.property-detail.pt-lay-classic .pt-glance__item {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 20px;
    padding: 11px 0;
    border: 0;
    border-bottom: 1px solid var(--pt-cl-hair);
    background: none;
}

.property-detail.pt-lay-classic .pt-glance dt {
    margin: 0;
    font-size: 13.5px;
    color: var(--pd-muted);
}

.property-detail.pt-lay-classic .pt-glance dd {
    margin: 0;
    font-size: 14.5px;
    font-weight: 600;
    text-align: right;
    color: var(--pd-ink);
}

.property-detail.pt-lay-classic #pt-overview > .pt-h3 {
    margin: clamp(36px, 4vw, 56px) 0 18px;
    text-align: left;
}

/* highlights: plain two-column list with a small square marker */
.property-detail.pt-lay-classic .pt-usps {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 clamp(32px, 5vw, 80px);
}

.property-detail.pt-lay-classic .pt-usp {
    position: relative;
    padding: 9px 0 9px 22px;
    border: 0;
    border-radius: 0;
    background: none;
    font-size: 15px;
    font-weight: 400;
    color: var(--pd-ink);
}

.property-detail.pt-lay-classic .pt-usp::before {
    content: "";
    position: absolute;
    top: 17px;
    left: 0;
    width: 7px;
    height: 7px;
    background: var(--pt-accent);
}

/* gallery, plans, media: square */
.property-detail.pt-lay-classic .pt-mosaic__item,
.property-detail.pt-lay-classic .pt-plan,
.property-detail.pt-lay-classic .pt-video,
.property-detail.pt-lay-classic .pt-map,
.property-detail.pt-lay-classic .pt-rel,
.property-detail.pt-lay-classic .pt-rel__media,
.property-detail.pt-lay-classic .pt-plans__lock::before,
.property-detail.pt-lay-classic .pt-chip {
    border-radius: 0;
}

.property-detail.pt-lay-classic .pt-gtabs {
    justify-content: flex-start;
}

/* configurations: a table with a rule above and below each line */
.property-detail.pt-lay-classic .pt-configs {
    display: block;
    border-top: 1px solid var(--pt-cl-rule);
}

.property-detail.pt-lay-classic .pt-config {
    display: grid;
    grid-template-columns: minmax(110px, 0.7fr) minmax(0, 2fr) auto;
    align-items: center;
    gap: 12px 40px;
    padding: 20px 0;
    border: 0;
    border-bottom: 1px solid var(--pt-cl-hair);
    border-radius: 0;
    background: none;
}

.property-detail.pt-lay-classic .pt-config__foot {
    margin: 0;
    padding: 0;
    border: 0;
}

.property-detail.pt-lay-classic .pt-payplan {
    margin-top: 24px;
    padding: 18px 0 0;
    border: 0;
    border-top: 1px solid var(--pt-cl-rule);
    border-radius: 0;
    background: none;
}

.property-detail.pt-lay-classic #pt-config > .pt-h3 {
    margin: clamp(36px, 4vw, 56px) 0 18px;
    text-align: left;
}

.property-detail.pt-lay-classic .pt-specs {
    padding: 0;
    background: none;
}

/* amenities: plain lists under a ruled category title, square bullet instead of icons */
.property-detail.pt-lay-classic .pt-amenity-groups {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(28px, 3vw, 44px) clamp(28px, 4vw, 64px);
}

.property-detail.pt-lay-classic .pt-amenity-group {
    padding: 0;
    border: 0;
    border-radius: 0;
    background: none;
}

.property-detail.pt-lay-classic .pt-amenity-group .pt-h4 {
    margin: 0 0 12px;
    padding: 0 0 10px;
    border-bottom: 1px solid var(--pt-cl-rule);
    font-size: 12px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    text-align: left;
    color: var(--pd-ink);
}

.property-detail.pt-lay-classic .pt-amenities {
    display: block;
    column-count: 1;
}

.property-detail.pt-lay-classic .pt-amenities li {
    position: relative;
    padding: 6px 0 6px 20px;
    border: 0;
    border-radius: 0;
    background: none;
    font-size: 15px;
    font-weight: 400;
    color: var(--pd-ink);
}

.property-detail.pt-lay-classic .pt-amenities li i {
    display: none;
}

.property-detail.pt-lay-classic .pt-amenities li::before {
    content: "";
    position: absolute;
    top: 14px;
    left: 0;
    width: 6px;
    height: 6px;
    background: var(--pt-accent);
}

/* location: list left, map right, no frame around them */
.property-detail.pt-lay-classic .pt-location {
    display: grid;
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    gap: clamp(28px, 4vw, 64px);
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: none;
}

.property-detail.pt-lay-classic .pt-location .pt-places {
    padding: 0;
}

.property-detail.pt-lay-classic .pt-location .pt-map {
    min-height: 440px;
}

.property-detail.pt-lay-classic .pt-location .pt-places .pt-place-group + .pt-place-group {
    margin-top: 18px;
    padding-top: 18px;
    border-top: 1px solid var(--pt-cl-hair);
}

.property-detail.pt-lay-classic .pt-location .pt-places .pt-place-group li b {
    padding: 0;
    border-radius: 0;
    background: none;
    min-width: 0;
    color: var(--pd-ink);
}

.property-detail.pt-lay-classic .pt-location .pt-places .pt-place-group li {
    color: var(--pd-ink);
}

.property-detail.pt-lay-classic .pt-location .pt-places .pt-place-group .pt-h4,
.property-detail.pt-lay-classic .pt-location .pt-note {
    color: var(--pd-ink);
}

.property-detail.pt-lay-classic .pt-location .pt-places .pt-place-group .pt-h4 i {
    color: var(--pt-accent);
}

/* construction + RERA, FAQ, related */
.property-detail.pt-lay-classic .pt-duo__col .pt-card__head {
    display: block;
    padding-bottom: 16px;
}

.property-detail.pt-lay-classic .pt-rera__item,
.property-detail.pt-lay-classic .pt-docs a {
    border-radius: 0;
    background: none;
}

.property-detail.pt-lay-classic .pt-faqs {
    max-width: none;
    margin: 0;
}

@media (max-width: 991.98px) {
    .property-detail.pt-lay-classic #pt-overview {
        display: block;
    }

    .property-detail.pt-lay-classic .pt-usps,
    .property-detail.pt-lay-classic .pt-amenity-groups {
        grid-template-columns: minmax(0, 1fr);
    }

    .property-detail.pt-lay-classic .pt-location {
        grid-template-columns: minmax(0, 1fr);
    }

    .property-detail.pt-lay-classic .pt-location .pt-map {
        order: -1;
        min-height: 300px;
    }

    .property-detail.pt-lay-classic .pt-config {
        grid-template-columns: minmax(0, 1fr);
        gap: 8px;
    }

    .property-detail.pt-lay-classic .pt-fb__cell {
        padding-left: 0;
        border-left: 0;
    }

    .property-detail.pt-lay-classic .pt-overview__media {
        aspect-ratio: 16 / 10;
    }
}

/* =============================== SIMPLE =============================== */
.property-detail.pt-lay-simple {
    --pt-sm-hair: color-mix(in srgb, var(--pd-ink) 12%, transparent);
}

.property-detail.pt-lay-simple .pt-title,
.property-detail.pt-lay-simple .pt-h2,
.property-detail.pt-lay-simple .pt-h3,
.property-detail.pt-lay-simple .pt-fb__price strong,
.property-detail.pt-lay-simple .pt-modal__title {
    font-family: "Plus Jakarta Sans", system-ui, sans-serif;
}

/* banner: short, calm, no overlap card */
.property-detail.pt-lay-simple .pt-hero {
    min-height: clamp(300px, 44svh, 460px);
}

.property-detail.pt-lay-simple .pt-hero__inner {
    padding-bottom: clamp(28px, 4vw, 48px);
}

.property-detail.pt-lay-simple .pt-title {
    font-size: clamp(2rem, 1.3rem + 2.4vw, 3.2rem);
    font-weight: 700;
    letter-spacing: -0.02em;
}

.property-detail.pt-lay-simple .pt-status {
    border-radius: 999px;
}

.property-detail.pt-lay-simple .pt-btn,
.property-detail.pt-lay-simple .pt-fb__actions .pt-btn,
.property-detail.pt-lay-simple .pt-chip {
    border-radius: 999px;
}

/* facts: one soft panel in the narrow column, price first, then the grid, then the buttons in a row */
.property-detail.pt-lay-simple .pt-fb {
    margin-top: 0;
    padding: clamp(24px, 3vw, 36px) 0 0;
    background: transparent;
    border: 0;
}

.property-detail.pt-lay-simple .pt-fb > .pt-wrap {
    max-width: 880px;
}

.property-detail.pt-lay-simple .pt-fb__inner {
    grid-template-columns: minmax(0, 1fr);
    gap: 22px;
    padding: clamp(22px, 3vw, 32px);
    border-radius: 18px;
    background: var(--pt-band);
    box-shadow: none;
}

.property-detail.pt-lay-simple .pt-fb__price {
    padding: 0;
    border: 0;
}

.property-detail.pt-lay-simple .pt-fb__price strong,
.property-detail.pt-lay-simple .pt-fb__cell dd {
    color: var(--pd-ink);
}

.property-detail.pt-lay-simple .pt-fb__label,
.property-detail.pt-lay-simple .pt-fb__cell dt,
.property-detail.pt-lay-simple .pt-fb__price small {
    color: var(--pd-muted);
}

.property-detail.pt-lay-simple .pt-fb__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.property-detail.pt-lay-simple .pt-fb__actions {
    flex-direction: row;
    flex-wrap: wrap;
    width: 100%;
}

.property-detail.pt-lay-simple .pt-fb__actions .pt-btn {
    flex: 1 1 180px;
    width: auto;
}

/* section bar: just the links and the button, softened */
.property-detail.pt-lay-simple .pt-tabs {
    margin-top: clamp(24px, 3vw, 36px);
}

/* body: one narrow column, headings in plain sans, space instead of lines */
.property-detail.pt-lay-simple .pt-main {
    max-width: 880px;
    margin: 0 auto;
}

.property-detail.pt-lay-simple .pt-card {
    display: block;
    padding: clamp(32px, 4vw, 52px) 0;
    border: 0;
    background: none;
}

.property-detail.pt-lay-simple .pt-card > :not(.pt-card__head) {
    grid-column: auto;
}

.property-detail.pt-lay-simple .pt-card__head,
.property-detail.pt-lay-simple .pt-card__head--row {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 4px 14px;
    margin: 0 0 20px;
    text-align: left;
}

.property-detail.pt-lay-simple .pt-card__head .pt-h2 {
    margin: 0;
    font-size: 1.3rem;
    font-weight: 700;
    letter-spacing: -0.01em;
}

.property-detail.pt-lay-simple .pt-card__head .pt-h2::after {
    content: none;
}

.property-detail.pt-lay-simple .pt-card__head .pt-sub,
.property-detail.pt-lay-simple .pt-card__head .pt-count {
    margin: 0;
    padding: 0;
    background: none;
    font-size: 13.5px;
    color: var(--pd-muted);
}

.property-detail.pt-lay-simple .pt-overview__media {
    margin: 0 0 26px;
    border-radius: 18px;
    aspect-ratio: 16 / 9;
}

.property-detail.pt-lay-simple .pt-glance {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px 28px;
    margin: 0 0 22px;
    padding: 0;
    border: 0;
    background: none;
}

.property-detail.pt-lay-simple .pt-glance__item {
    padding: 0;
    border: 0;
    background: none;
}

.property-detail.pt-lay-simple .pt-usps {
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
}

.property-detail.pt-lay-simple .pt-usp {
    padding: 6px 0 6px 18px;
    border: 0;
    border-radius: 0;
    background: none;
    position: relative;
    font-size: 15px;
    font-weight: 400;
}

.property-detail.pt-lay-simple .pt-usp::before {
    content: "";
    position: absolute;
    top: 15px;
    left: 0;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--pt-accent);
}

.property-detail.pt-lay-simple .pt-mosaic__item,
.property-detail.pt-lay-simple .pt-plan,
.property-detail.pt-lay-simple .pt-video,
.property-detail.pt-lay-simple .pt-rel,
.property-detail.pt-lay-simple .pt-rel__media {
    border-radius: 14px;
}

.property-detail.pt-lay-simple .pt-gtabs__btn {
    border-radius: 999px;
}

/* configurations: one line each, light */
.property-detail.pt-lay-simple .pt-configs {
    display: block;
    border: 0;
}

.property-detail.pt-lay-simple .pt-config {
    display: grid;
    grid-template-columns: minmax(70px, 0.5fr) minmax(0, 1.6fr) auto;
    align-items: center;
    gap: 8px 24px;
    padding: 14px 0;
    border: 0;
    border-top: 1px solid var(--pt-sm-hair);
    border-radius: 0;
    background: none;
}

.property-detail.pt-lay-simple .pt-config:first-child {
    border-top: 0;
}

.property-detail.pt-lay-simple .pt-config__foot {
    margin: 0;
    padding: 0;
    border: 0;
}

.property-detail.pt-lay-simple .pt-payplan {
    margin-top: 18px;
    border: 0;
    border-radius: 14px;
    background: var(--pt-band);
}

.property-detail.pt-lay-simple #pt-config > .pt-h3 {
    margin: 30px 0 14px;
    font-size: 1.05rem;
    text-align: left;
}

.property-detail.pt-lay-simple .pt-specs {
    padding: 0;
    background: none;
}

/* amenities: small pills, category titles in muted sans */
.property-detail.pt-lay-simple .pt-amenity-groups {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 20px;
}

.property-detail.pt-lay-simple .pt-amenity-group {
    padding: 0;
    border: 0;
    background: none;
}

.property-detail.pt-lay-simple .pt-amenity-group .pt-h4 {
    margin: 0 0 8px;
    padding: 0;
    border: 0;
    font-size: 12.5px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: none;
    text-align: left;
    color: var(--pd-muted);
}

.property-detail.pt-lay-simple .pt-amenities {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    column-count: 1;
}

.property-detail.pt-lay-simple .pt-amenities li {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 7px 14px;
    border: 1px solid var(--pt-sm-hair);
    border-radius: 999px;
    background: none;
    font-size: 14px;
    font-weight: 500;
    color: var(--pd-ink);
}

.property-detail.pt-lay-simple .pt-amenities li i {
    width: auto;
    height: auto;
    background: none;
    font-size: 14px;
    color: var(--pt-accent);
}

/* location: map on top, plain lines below, no frame */
.property-detail.pt-lay-simple .pt-location {
    display: flex;
    flex-direction: column;
    gap: 22px;
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: none;
}

.property-detail.pt-lay-simple .pt-location .pt-map {
    order: -1;
    min-height: 320px;
    border-radius: 18px;
}

.property-detail.pt-lay-simple .pt-location .pt-places {
    padding: 0;
}

.property-detail.pt-lay-simple .pt-location .pt-places .pt-place-group {
    display: block;
}

.property-detail.pt-lay-simple .pt-location .pt-places .pt-place-group .pt-h4 {
    margin: 0 0 6px;
    font-size: 12.5px;
    letter-spacing: 0.04em;
    text-transform: none;
    color: var(--pd-muted);
}

.property-detail.pt-lay-simple .pt-location .pt-places .pt-place-group + .pt-place-group {
    margin-top: 16px;
    padding-top: 0;
    border: 0;
}

.property-detail.pt-lay-simple .pt-location .pt-places .pt-place-group li {
    display: flex;
    justify-content: space-between;
    padding: 5px 0;
    color: var(--pd-ink);
}

.property-detail.pt-lay-simple .pt-location .pt-places .pt-place-group li b {
    padding: 0;
    border-radius: 0;
    background: none;
    min-width: 0;
    color: var(--pd-ink);
}

.property-detail.pt-lay-simple .pt-location .pt-places .pt-place-group .pt-h4 i {
    display: none;
}

.property-detail.pt-lay-simple .pt-location .pt-note {
    color: var(--pd-muted);
}

/* two-up sections stack in the narrow column */
.property-detail.pt-lay-simple .pt-duo__grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 36px;
}

.property-detail.pt-lay-simple .pt-duo__col + .pt-duo__col {
    padding: 36px 0 0;
    margin: 0;
    border-left: 0;
    border-top: 1px solid var(--pt-sm-hair);
}

.property-detail.pt-lay-simple .pt-rera__item,
.property-detail.pt-lay-simple .pt-docs a {
    border-radius: 14px;
}

.property-detail.pt-lay-simple .pt-faqs {
    max-width: none;
    margin: 0;
}

@media (max-width: 767.98px) {
    .property-detail.pt-lay-simple .pt-fb__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .property-detail.pt-lay-simple .pt-glance {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .property-detail.pt-lay-simple .pt-config {
        grid-template-columns: minmax(0, 1fr);
    }
}
/* round 46 fixes */
/* (restored: the cleanup of the old classic/simple rules removed these two by mistake) */
.pt-layout--single {
    display: block;
}

.pt-layout--single .pt-main {
    width: 100%;
}

/* the old label-column layout gave every section head grid-row 1 / span 40: reset it for Classic's overview grid */
.property-detail.pt-lay-classic #pt-overview > .pt-card__head {
    grid-row: 1;
}

.property-detail.pt-lay-classic #pt-overview > .pt-overview__media {
    grid-row: 2;
}

.property-detail.pt-lay-classic #pt-overview > .pt-h3 {
    grid-row: 5;
}

.property-detail.pt-lay-classic #pt-overview > .pt-usps {
    grid-row: 6;
}

.property-detail.pt-lay-classic .pt-card__head,
.property-detail.pt-lay-classic .pt-card__head--row,
.property-detail.pt-lay-simple .pt-card__head,
.property-detail.pt-lay-simple .pt-card__head--row {
    grid-row: auto;
}