/* Single-flat detail page: mobile-first */
.flat-detail-page{--flat-stack-offset:var(--header-height);background:var(--surface);color:var(--foreground);padding:calc(var(--header-height) + 20px) 16px 104px}
.flat-detail-shell{display:flex;flex-direction:column;gap:36px;max-width:1280px;margin:0 auto}
.flat-detail-info{order:1;display:flex;flex-direction:column;align-items:flex-start}
.flat-detail-breadcrumb{display:inline-flex;align-items:center;gap:8px;margin-bottom:26px;color:var(--text-muted);font:600 10px/1 var(--font-text);letter-spacing:.06em;text-decoration:none;text-transform:uppercase}
.flat-detail-breadcrumb:hover,.flat-detail-breadcrumb:focus-visible{color:var(--accent-text)}
.flat-detail-kicker{margin-bottom:18px;color:var(--accent-text);font:600 10px/1 var(--font-text);letter-spacing:.16em;text-transform:uppercase}
.flat-detail-info h1{max-width:620px;margin:0;font:500 clamp(37px,10.5vw,48px)/1.05 var(--font-subheading);letter-spacing:0;color:var(--foreground)}
.flat-detail-location{margin:18px 0 0;color:var(--text-muted);font-size:14px}
.flat-detail-price-row{display:flex;align-items:center;margin:26px 0 0}.flat-enquiry-cta{min-height:48px;padding:0 22px;background:var(--primary);border:1px solid var(--primary);color:var(--primary-foreground);box-shadow:0 10px 22px var(--primary-tint)}.flat-enquiry-cta:hover,.flat-enquiry-cta:focus-visible{background:var(--primary-strong);border-color:var(--accent-text);color:var(--primary-foreground);transform:translateY(-2px)}
.flat-detail-specs{width:100%;max-width:520px;margin:28px 0 0;padding:0;border-top:1px solid var(--line)}.flat-detail-spec{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:18px;padding:14px 0;border-bottom:1px solid var(--line)}.flat-detail-spec dt{color:var(--text-muted);font:600 10px/1.2 var(--font-text);letter-spacing:.08em;text-transform:uppercase}.flat-detail-spec dd{margin:0;color:var(--foreground);font:600 18px/1 var(--font-text);text-align:right}
.flat-detail-description{max-width:590px;margin:28px 0 0;color:var(--text-muted);font-size:15px;line-height:1.75}
.flat-detail-amenities{display:flex;flex-wrap:wrap;gap:8px;margin:24px 0 0;padding:0;list-style:none}.flat-detail-amenities li{padding:8px 10px;border:1px solid var(--line);border-radius:999px;color:var(--text-muted);font:500 10px/1 var(--font-text)}
.flat-detail-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:30px}.flat-detail-actions .button{min-height:48px;background:var(--primary);border:1px solid var(--primary);color:var(--primary-foreground)}.flat-detail-actions .button:hover,.flat-detail-actions .button:focus-visible{background:var(--primary-strong);border-color:var(--accent-text);color:var(--primary-foreground)}.flat-detail-actions .brochure-download{background:var(--card);border-color:var(--accent-text);color:var(--foreground);box-shadow:0 8px 18px var(--primary-tint)}.flat-detail-actions .brochure-download:hover,.flat-detail-actions .brochure-download:focus-visible{background:var(--primary-soft);border-color:var(--accent-text);color:var(--foreground)}.flat-detail-actions .brochure-download .file-download-icon{font-size:1.45em;margin-left:14px;vertical-align:-.3em;color:var(--accent-text)}.flat-detail-actions .text-link{color:var(--foreground)}
.flat-detail-gallery{order:2;padding:8px 0 0}.flat-gallery-track{position:relative;display:flex;flex-direction:column;gap:30px}.flat-stack-card{position:sticky;top:var(--flat-stack-offset);z-index:var(--card-z);margin:0;border:1px solid var(--line);border-radius:8px;background:var(--card);box-shadow:0 12px 24px var(--overlay-subtle);overflow:hidden;opacity:.62;transform:translateY(18px) scale(.985);transition:opacity .5s ease,transform .5s ease,box-shadow .3s ease}.flat-stack-card.is-revealed{opacity:1;transform:none}.flat-stack-card:hover{box-shadow:0 18px 34px var(--overlay-subtle)}.flat-stack-card__top{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 16px;border-bottom:1px solid var(--surface-soft);color:var(--text-muted);font:600 9px/1 var(--font-text);letter-spacing:.1em;text-transform:uppercase}.flat-stack-card__top strong{color:var(--accent-text);font-size:15px}.flat-stack-card img{display:block;width:100%;height:auto;object-fit:contain}.flat-stack-card figcaption{padding:14px 16px;color:var(--text-muted);font-size:12px;line-height:1.5}
.flat-mobile-cta{position:fixed;right:0;bottom:0;left:0;z-index:90;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--surface-soft);background:var(--surface-glass);box-shadow:0 -10px 28px var(--overlay-subtle);backdrop-filter:blur(14px)}.flat-mobile-cta span{color:var(--text-muted);font:600 10px/1 var(--font-text)}.flat-mobile-cta .button{min-height:44px;padding:0 15px;background:var(--primary);border-color:var(--accent-text);color:var(--card)}.flat-mobile-cta .button:hover,.flat-mobile-cta .button:focus-visible{background:var(--primary);border-color:var(--accent-text)}
@media(min-width:768px){
 .flat-detail-page{--flat-stack-offset:calc(var(--header-height) + 10px);padding:calc(var(--header-height) + 20px) var(--page-gutter) 72px}
 .flat-detail-shell{display:grid;grid-template-columns:minmax(280px,.9fr) minmax(0,1.1fr);align-items:start;gap:var(--layout-gap)}
 .flat-detail-info{position:sticky;top:var(--flat-stack-offset);min-height:calc(100vh - 124px);height:auto;justify-content:center}
 .flat-detail-info h1{font-size:clamp(44px,4.6vw,68px)}
 .flat-detail-gallery{padding:16px 0 0}
 .flat-gallery-track{gap:40px}.flat-stack-card{top:var(--flat-stack-offset);margin-bottom:0;display:flex;flex-direction:column;max-height:calc(100svh - var(--flat-stack-offset) - 24px)}.flat-stack-card img{flex:1 1 auto;min-height:0;height:auto;object-fit:contain}.flat-stack-card__top{padding:17px 20px}.flat-stack-card figcaption{padding:16px 20px}
 .flat-mobile-cta{display:none}
 
}
@media(min-width:1200px){.flat-detail-info h1{font-size:68px}}
@media(prefers-reduced-motion:reduce){.flat-stack-card{transition:none}}
/* Long-form property content shared by the 1 BHK and 2 BHK detail pages. */
.flat-gallery-heading{margin:0 0 18px}.flat-gallery-heading>span,.flat-longform__intro>span,.flat-longform__cta span{display:block;color:var(--accent-text);font:700 10px/1 var(--font-text);letter-spacing:.12em;text-transform:uppercase}.flat-gallery-heading h2{max-width:520px;margin:9px 0 8px;color:var(--foreground);font:600 30px/1.08 var(--font-subheading)}.flat-gallery-heading p{max-width:530px;margin:0;color:var(--text-muted);font-size:13px;line-height:1.65}.flat-longform{display:grid;gap:28px;max-width:1280px;margin:54px auto 0;padding-top:48px;border-top:1px solid var(--line)}.flat-longform__intro{display:grid;gap:16px}.flat-longform h2{margin:0;color:var(--foreground);font:600 clamp(30px,4vw,48px)/1.08 var(--font-subheading)}.flat-longform h3{margin:0;color:var(--foreground);font:600 22px/1.15 var(--font-subheading)}.flat-longform p{margin:0;color:var(--text-muted);font-size:15px;line-height:1.75}.flat-longform__intro>div{display:grid;gap:14px;max-width:760px}.flat-longform__block{display:grid;gap:20px;padding-top:28px;border-top:1px solid var(--line)}.flat-content-specs{display:grid;grid-template-columns:1fr;margin:0;border-top:1px solid var(--line)}.flat-content-spec{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:16px;padding:14px 0;border-bottom:1px solid var(--line)}.flat-content-spec dt{color:var(--text-muted);font:700 10px/1.35 var(--font-text);letter-spacing:.08em;text-transform:uppercase}.flat-content-spec dd{margin:0;color:var(--foreground);font:500 14px/1.45 var(--font-text)}.flat-room-grid{display:grid;gap:14px}.flat-room-card{padding:20px;border:1px solid var(--line);background:var(--card)}.flat-room-card p{margin-top:9px;font-size:14px;line-height:1.65}.flat-check-list{display:grid;gap:0;margin:0;padding:0;list-style:none;border-top:1px solid var(--line)}.flat-check-list li{padding:13px 0;border-bottom:1px solid var(--line);color:var(--text-muted);font-size:14px;line-height:1.5}.flat-check-list li::before{content:'+';display:inline-block;width:18px;color:var(--accent-text);font-weight:700}.flat-longform__cta{display:flex;flex-direction:column;align-items:flex-start;gap:22px;padding:28px;background:var(--surface-soft)}.flat-longform__cta h2{margin-top:10px}.flat-longform__cta p{max-width:620px;margin-top:12px}.flat-longform__cta .button{min-height:48px;background:var(--primary);border:1px solid var(--primary);color:var(--primary-foreground)}
.flat-longform__cta-actions{display:flex;flex-wrap:wrap;gap:10px}.flat-longform__cta-actions .button{min-height:44px}
@media(min-width:768px){.flat-gallery-heading h2{font-size:38px}.flat-longform{grid-template-columns:repeat(2,minmax(0,1fr));gap:42px;margin-top:82px;padding-top:64px}.flat-longform__intro,.flat-longform__cta{grid-column:1/-1}.flat-longform__block--specs{grid-column:1/-1}.flat-content-specs{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:30px}.flat-room-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.flat-longform__cta{flex-direction:row;align-items:end;justify-content:space-between;padding:36px}.flat-longform__cta .button{flex:0 0 auto}}
/* Failsafe: never hide detail content via global .reveal animation. script.js now skips these, but keep visible even if .reveal is added. */
.flat-detail-page .reveal,.flat-detail-page section.reveal,.flat-detail-page article.reveal{opacity:1!important;transform:none!important;transition:none}
/* Keep long property summaries readable while preserving the sticky gallery. */
@media(min-width:768px){
 .flat-detail-info{min-height:0;height:auto;justify-content:flex-start;padding-bottom:24px}
 .flat-detail-info h1{font-size:clamp(46px,4vw,60px);line-height:1.02}


}
/* Above 900px header.css keeps --header-height at its 27vh unscrolled value, but the pinned header bar
   shrinks to 88.56px + 10px padding once scrolled. Pin the sticky gallery and info column below that real
   height (plus a small gap) so card images and captions are never pushed past the bottom of the screen. */
@media(min-width:901px){
 .flat-detail-page{--flat-stack-offset:calc(88.56px + 20px)}
}
/* Flat page breadcrumb bookmark (shows the tower the visitor came from) */
.flat-detail-crumb{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:26px;color:var(--text-muted);font:600 10px/1 var(--font-text);letter-spacing:.06em;text-transform:uppercase}
.flat-detail-crumb a{display:inline-flex;align-items:center;gap:8px;padding:8px 0;margin:-8px 0;color:var(--text-muted);text-decoration:none;transition:color .2s ease}
.flat-detail-crumb a:hover,.flat-detail-crumb a:focus-visible{color:var(--ink)}
.flat-detail-crumb__sep{color:var(--text-muted)}
.flat-detail-crumb__current{color:var(--ink)}
/* The fixed mobile enquiry bar sits over the bottom of the page - keep the footer clear of it. */
@media(max-width:767px){.flat-detail-document .site-footer{padding-bottom:calc(124px + env(safe-area-inset-bottom))}}
/* Final sticky-stack contract: every desktop card shares one viewport-safe top. */
@media (min-width:768px){
  .flat-gallery-track{gap:40px;perspective:none}
  .flat-stack-card{
    top:var(--flat-stack-offset);
    z-index:var(--card-z, 1);
    min-height:calc(100svh - var(--flat-stack-offset) - 24px);
    max-height:calc(100svh - var(--flat-stack-offset) - 24px);
    display:flex;
    flex-direction:column;
    opacity:1;
    transform:none;
  }
  .flat-stack-card img{
    flex:1 1 auto;
    min-height:0;
    width:100%;
    height:auto;
    aspect-ratio:auto;
    object-fit:contain;
  }
  .flat-stack-card:hover,.flat-stack-card:focus-within{
    transform:none;
    box-shadow:0 18px 34px var(--overlay-subtle);
  }
}
@media (max-width:767px){
  .flat-gallery-track{gap:20px}
  .flat-stack-card{position:relative;top:auto;min-height:0;max-height:none;opacity:1;transform:none}
  .flat-stack-card img{width:100%;height:auto;aspect-ratio:4 / 3;object-fit:cover}
}