/* =========================================================
   LENORA RESIDENCES — by Sai Siddha Associates
   Design tokens
   Ink navy   #14213D   Signal red #C8202F   Stone #8A8D93
   Paper      #F0EEE7   Charcoal  #201F1E    Brass #A9822E
   Display type: Cormorant  |  UI/body type: Jost
   ========================================================= */

:root{
  --ink:        #14213D;
  --ink-2:      #1D2E52;
  --red:        #C8202F;
  --red-dark:   #A11722;
  --stone:      #8A8D93;
  --stone-light:#D8D4C9;
  --paper:      #F0EEE7;
  --paper-2:    #E7E2D5;
  --charcoal:   #201F1E;
  --brass:      #A9822E;
  --white:      #FFFFFF;

  --font-display: 'Cormorant', Georgia, serif;
  --font-body:    'Jost', 'Segoe UI', Arial, sans-serif;

  --container: 1240px;
}

*{ box-sizing: border-box; }

html{ scroll-behavior: smooth; }

body{
  font-family: var(--font-body);
  color: var(--charcoal);
  background: var(--paper);
  font-size: 16px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}

h1,h2,h3,h4,.font-display{
  font-family: var(--font-display);
  font-weight: 600;
  color: var(--ink);
  line-height: 1.12;
  letter-spacing: 0.005em;
}

h1{ font-size: clamp(2.6rem, 5vw, 4.6rem); font-weight: 600; }
h2{ font-size: clamp(2rem, 3.2vw, 3rem); }
h3{ font-size: clamp(1.4rem, 2vw, 1.9rem); }

p{ color: var(--charcoal); }

a{ color: var(--ink); text-decoration: none; }
a:hover{ color: var(--red); }

::selection{ background: var(--red); color: var(--white); }

.container{ max-width: var(--container); }

/* focus visibility */
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible{
  outline: 2px solid var(--red);
  outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce){
  *{ animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; transition-duration: 0.001ms !important; scroll-behavior: auto !important; }
}

/* -----------------------------------------
   Small type utilities
----------------------------------------- */
.label-line{
  display: inline-flex;
  align-items: center;
  gap: .6rem;
  font-family: var(--font-body);
  font-size: .78rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--stone);
  font-weight: 500;
}
.label-line::before{
  content:"";
  width: 28px;
  height: 1px;
  background: var(--red);
  display:inline-block;
}
.label-line.center{ justify-content:center; }
.label-line.on-dark{ color: var(--stone-light); }

.lede{
  font-family: var(--font-display);
  font-size: clamp(1.15rem, 1.6vw, 1.45rem);
  color: var(--ink);
  font-weight: 500;
  line-height: 1.5;
  max-width: 62ch;
}

.rule{
  border: none;
  border-top: 1px solid var(--stone-light);
  margin: 0;
}

/* -----------------------------------------
   Buttons
----------------------------------------- */
.btn{
  font-family: var(--font-body);
  font-size: .92rem;
  font-weight: 500;
  letter-spacing: .03em;
  padding: .85rem 1.9rem;
  border-radius: 0;
  border: 1px solid transparent;
  transition: background .25s ease, color .25s ease, border-color .25s ease;
}
.btn-primary-lenora{
  background: var(--red);
  border-color: var(--red);
  color: var(--white);
}
.btn-primary-lenora:hover{
  background: var(--red-dark);
  border-color: var(--red-dark);
  color: var(--white);
}
.btn-outline-lenora{
  background: transparent;
  border-color: rgba(255,255,255,.55);
  color: var(--white);
}
.btn-outline-lenora:hover{
  background: var(--white);
  color: var(--ink);
  border-color: var(--white);
}
.btn-outline-ink{
  background: transparent;
  border-color: var(--ink);
  color: var(--ink);
}
.btn-outline-ink:hover{
  background: var(--ink);
  color: var(--white);
}

/* -----------------------------------------
   Navbar
----------------------------------------- */
.site-nav{
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 1030;
  padding: 18px 0;
  background: transparent;
  transition: background .35s ease, padding .35s ease, box-shadow .35s ease;
}
.site-nav.is-scrolled{
  background: rgba(20,33,61,.96);
  padding: 10px 0;
  box-shadow: 0 6px 24px rgba(0,0,0,.18);
}
.site-nav .navbar-brand img{
  height: 72px;
  width: auto;
  background: #fff;
  transition: height .3s ease;
  display:block;
}
.site-nav.is-scrolled .navbar-brand img{ height: 56px; }
.site-nav .nav-link{
  color: var(--white);
  font-size: .86rem;
  letter-spacing: .06em;
  text-transform: uppercase;
  font-weight: 500;
  padding: .5rem 1rem !important;
  opacity: .92;
}
.site-nav .nav-link:hover, .site-nav .nav-link.active{
  color: var(--white);
  opacity: 1;
}
.site-nav .nav-link.active{ border-bottom: 1px solid var(--red); }
.site-nav .nav-cta{
  margin-left: .5rem;
}
.navbar-toggler{
  border: none;
  color: var(--white);
  padding: .25rem .5rem;
}
.navbar-toggler:focus{ box-shadow: none; }
.site-nav.not-home:not(.is-scrolled){
  background: rgba(20,33,61,.96);
}

/* -----------------------------------------
   Page header (interior pages hero band)
----------------------------------------- */
.page-header{
  position: relative;
  min-height: 46vh;
  display: flex;
  align-items: flex-end;
  background-size: cover;
  background-position: center;
  color: var(--white);
  padding-top: 120px;
}
.page-header::after{
  content:"";
  position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(20,33,61,.55) 0%, rgba(20,33,61,.86) 100%);
}
.page-header .container{ position: relative; z-index: 2; padding-bottom: 4rem; }
.page-header h1{ color: var(--white); }
.page-header .lede{ color: var(--stone-light); }

/* -----------------------------------------
   Hero (home)
----------------------------------------- */
.hero{
  position: relative;
  min-height: 100vh;
  display: flex;
  align-items: center;
  background-size: cover;
  background-position: center;
  color: var(--white);
  overflow: hidden;
}
.hero::after{
  content:"";
  position:absolute; inset:0;
  background: linear-gradient(100deg, rgba(15,24,45,.78) 0%, rgba(15,24,45,.45) 42%, rgba(15,24,45,.2) 75%);
}
.hero .container{ position: relative; z-index: 2; }
.hero-eyebrow{
  font-size: clamp(.95rem, 1.1vw, 1.05rem);
  font-weight: 600;
  letter-spacing: .24em;
  text-transform: uppercase;
  color: var(--white);
  margin-bottom: 1.6rem;
  display:block;
  text-shadow: 0 2px 10px rgba(0,0,0,.55);
}
.hero h1{
  color: var(--white);
  max-width: 14ch;
  text-shadow: 0 4px 18px rgba(0,0,0,.45);
}
.hero .tagline{
  font-family: var(--font-display);
  font-style: italic;
  font-size: clamp(1.3rem,1.9vw,1.65rem);
  font-weight: 500;
  color: var(--white);
  margin-top: 1.2rem;
  max-width: 40ch;
  text-shadow: 0 2px 12px rgba(0,0,0,.5);
}
.hero-meta{
  margin-top: 2.6rem;
  display:flex;
  gap: 2.4rem;
  flex-wrap: wrap;
}
.hero-meta div{ border-left: 2px solid var(--red); padding-left: 1rem; }
.hero-meta .num{ font-family: var(--font-display); font-weight:600; font-size: clamp(1.6rem,2.1vw,2.1rem); color:var(--white); display:block; text-shadow: 0 2px 10px rgba(0,0,0,.5); }
.hero-meta .cap{ font-size: .8rem; font-weight:600; letter-spacing: .09em; text-transform: uppercase; color: var(--white); text-shadow: 0 2px 8px rgba(0,0,0,.55); }
.hero-actions{ margin-top: 2.6rem; display:flex; gap: 1rem; flex-wrap: wrap; }
.scroll-cue{
  position:absolute;
  bottom: 2.2rem; left: 50%;
  transform: translateX(-50%);
  z-index: 2;
  color: var(--stone-light);
  font-size: .7rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  display:flex; flex-direction:column; align-items:center; gap:.5rem;
}
.scroll-cue .line{ width:1px; height:36px; background: rgba(255,255,255,.5); position:relative; overflow:hidden; }
.scroll-cue .line::after{
  content:"";
  position:absolute; top:-100%; left:0; width:100%; height:100%;
  background: var(--red);
  animation: scrollLine 2.2s ease-in-out infinite;
}
@keyframes scrollLine{ 0%{ top:-100%; } 60%{ top:100%; } 100%{ top:100%; } }

/* -----------------------------------------
   Sections
----------------------------------------- */
section{ padding: 6.5rem 0; }
.section-tight{ padding: 4rem 0; }
.bg-ink{ background: var(--ink); color: var(--white); }
.bg-ink h2, .bg-ink h3, .bg-ink h4{ color: var(--white); }
.bg-ink p{ color: rgba(255,255,255,.78); }
.bg-paper-2{ background: var(--paper-2); }
.bg-white{ background: var(--white); }

/* Director / quote section */
.quote-mark{
  font-family: var(--font-display);
  font-size: 5rem;
  line-height: .6;
  color: var(--red);
  display:block;
  margin-bottom: 1rem;
}
.pull-quote{
  font-family: var(--font-display);
  font-style: italic;
  font-size: clamp(1.5rem, 2.4vw, 2.1rem);
  color: var(--ink);
  line-height: 1.35;
}
.pull-quote cite{
  display:block;
  margin-top: 1.2rem;
  font-family: var(--font-body);
  font-style: normal;
  font-size: .8rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--stone);
}

/* Stat strip */
.stat-strip{
  border-top: 1px solid var(--stone-light);
  border-bottom: 1px solid var(--stone-light);
}
.stat-strip .stat{
  padding: 2rem 1rem;
  text-align:center;
  border-right: 1px solid var(--stone-light);
}
.stat-strip .col:last-child .stat{ border-right:none; }
.stat .num{ font-family: var(--font-display); font-size: 2.4rem; color: var(--ink); display:block; }
.stat .cap{ font-size: .74rem; letter-spacing: .08em; text-transform: uppercase; color: var(--stone); margin-top:.3rem; display:block; }

/* Feature / lifestyle tiles (asymmetric editorial grid, no card-kit shadows) */
.tile{
  position: relative;
  display:block;
  overflow:hidden;
  background: var(--ink);
}
.tile img{
  width:100%; height:100%; object-fit:cover;
  display:block;
  transition: transform .7s ease;
}
.tile:hover img{ transform: scale(1.05); }
.tile .tile-overlay{
  position:absolute; inset:0;
  background: linear-gradient(0deg, rgba(15,24,45,.9) 0%, rgba(15,24,45,0) 55%);
}
.tile .tile-caption{
  position:absolute; left:0; right:0; bottom:0;
  padding: 1.6rem;
  color: var(--white);
  z-index:2;
}
.tile .tile-caption h4{ color: var(--white); margin-bottom:.2rem; }
.tile .tile-caption p{ color: rgba(255,255,255,.78); font-size:.9rem; margin:0; }
.tile.ratio-tall{ aspect-ratio: 3/4; }
.tile.ratio-wide{ aspect-ratio: 16/10; }
.tile.ratio-square{ aspect-ratio: 1/1; }

/* Amenity checklist */
.check-list{ list-style:none; padding:0; margin:0; }
.check-list li{
  padding: .55rem 0 .55rem 1.9rem;
  border-bottom: 1px solid var(--stone-light);
  position: relative;
  font-size: .96rem;
}
.check-list li::before{
  content:"";
  position:absolute; left:0; top: 1rem;
  width:9px; height:9px;
  border: 1px solid var(--red);
}

/* Numbered legend (master layout) — legitimate sequence use */
.legend-list{ list-style:none; padding:0; margin:0; columns:1; }
.legend-list li{
  display:flex; gap: .9rem; align-items:flex-start;
  padding: .6rem 0;
  border-bottom: 1px solid var(--stone-light);
}
.legend-list .n{
  font-family: var(--font-display);
  color: var(--red);
  font-size: 1.05rem;
  min-width: 1.6rem;
}

/* Specification table */
.spec-table{ width:100%; border-collapse: collapse; }
.spec-table th, .spec-table td{
  text-align:left;
  padding: .85rem 1rem;
  border-bottom: 1px solid var(--stone-light);
  vertical-align: top;
}
.spec-table th{
  width: 220px;
  font-family: var(--font-body);
  font-size: .78rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--red);
  font-weight: 600;
}
.spec-table td{ font-size: .95rem; }

/* Location distance list */
.dist-card{
  border: 1px solid var(--stone-light);
  background: var(--white);
  height: 100%;
}
.dist-card .dist-photo{ aspect-ratio: 16/10; overflow:hidden; }
.dist-card .dist-photo img{ width:100%; height:100%; object-fit:cover; }
.dist-card .dist-body{ padding: 1.3rem 1.4rem 1.5rem; }
.dist-card h4{ font-size: 1.15rem; margin-bottom:.7rem; }
.dist-card ul{ list-style:none; padding:0; margin:0; }
.dist-card li{
  display:flex; justify-content:space-between; gap:1rem;
  font-size: .88rem;
  padding: .35rem 0;
  border-bottom: 1px dashed var(--stone-light);
  color: var(--charcoal);
}
.dist-card li:last-child{ border-bottom:none; }
.dist-card li b{ color: var(--ink); font-weight:600; white-space:nowrap; }

/* Floor plan cards */
.plan-card{ border: 1px solid var(--stone-light); background: var(--white); }
.plan-card .plan-img{ overflow:hidden; }
.plan-card .plan-img img{ width:100%; display:block; }
.plan-card .plan-body{ padding: 1.6rem; }

/* Gallery (bootstrap grid + lightbox-less masonry feel) */
.gallery-item{ overflow:hidden; margin-bottom: 1.5rem; position:relative; cursor:pointer; }
.gallery-item img{ width:100%; display:block; transition: transform .6s ease; }
.gallery-item:hover img{ transform: scale(1.06); }
.gallery-item .g-cap{
  position:absolute; left:0; right:0; bottom:0;
  padding: .8rem 1rem;
  background: linear-gradient(0deg, rgba(15,24,45,.85), transparent);
  color:#fff; font-size:.82rem; letter-spacing:.04em;
  opacity:0; transition: opacity .3s ease;
}
.gallery-item:hover .g-cap{ opacity:1; }

/* Filter pills (bootstrap-free custom, used with JS) */
.filter-pills{ display:flex; flex-wrap:wrap; gap:.6rem; }
.filter-pills button{
  font-family: var(--font-body);
  font-size: .8rem;
  letter-spacing:.05em;
  text-transform:uppercase;
  padding: .5rem 1.1rem;
  background: transparent;
  border: 1px solid var(--stone-light);
  color: var(--stone);
}
.filter-pills button.active{
  background: var(--ink);
  border-color: var(--ink);
  color: var(--white);
}

/* CTA band */
.cta-band{
  background: var(--ink);
  color: var(--white);
  position: relative;
  overflow:hidden;
}
.cta-band h2{ color: var(--white); }

/* Contact / enquiry form */
.form-lenora label{
  font-size: .78rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--stone);
  margin-bottom: .4rem;
  display:block;
}
.form-lenora .form-control, .form-lenora .form-select{
  border-radius:0;
  border: 1px solid var(--stone-light);
  padding: .75rem .9rem;
  background: var(--white);
  font-family: var(--font-body);
}
.form-lenora .form-control:focus, .form-lenora .form-select:focus{
  border-color: var(--red);
  box-shadow: none;
}
.form-note{ font-size: .82rem; color: var(--stone); }

/* Footer */
.site-footer{
  background: var(--ink);
  color: rgba(255,255,255,.72);
  padding-top: 4.5rem;
}
.site-footer h5{
  color: var(--white);
  font-family: var(--font-body);
  font-size: .82rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  margin-bottom: 1.2rem;
}
.site-footer a{ color: rgba(255,255,255,.72); }
.site-footer a:hover{ color: var(--white); }
.site-footer .flogo{ height: 52px; margin-bottom: 1rem; filter: brightness(0) invert(1); opacity:.95; }
.site-footer ul{ list-style:none; padding:0; margin:0; }
.site-footer li{ margin-bottom: .6rem; font-size:.92rem; }
.footer-bottom{
  margin-top: 3rem;
  border-top: 1px solid rgba(255,255,255,.12);
  padding: 1.4rem 0;
  font-size: .8rem;
  color: rgba(255,255,255,.5);
}
.social-row a{
  display:inline-flex; align-items:center; justify-content:center;
  width:36px; height:36px;
  border: 1px solid rgba(255,255,255,.25);
  margin-right:.5rem;
}
.social-row a:hover{ border-color: var(--red); background: var(--red); }

/* Breadcrumb-ish RERA line */
.legal-line{
  font-size: .78rem;
  color: rgba(255,255,255,.55);
}

/* Back to top */
.to-top{
  position: fixed;
  right: 1.4rem; bottom: 1.4rem;
  width: 44px; height: 44px;
  background: var(--ink);
  color: var(--white);
  display:flex; align-items:center; justify-content:center;
  opacity:0; visibility:hidden;
  transition: opacity .3s ease, visibility .3s ease;
  z-index: 1020;
  border:none;
}
.to-top.show{ opacity:1; visibility:visible; }
.to-top:hover{ background: var(--red); }

/* Utility */
.text-red{ color: var(--red) !important; }
.text-stone{ color: var(--stone) !important; }
.border-stone{ border-color: var(--stone-light) !important; }
.rounded-0{ border-radius:0 !important; }

@media (max-width: 991.98px){
  section{ padding: 4.5rem 0; }
  .site-nav .navbar-collapse{
    background: var(--ink);
    margin-top: 1rem;
    padding: 1rem 1.2rem;
  }
  .hero-meta{ gap:1.4rem; }
  .stat-strip .stat{ border-right:none; border-bottom:1px solid var(--stone-light); }
}

/* Footer text legibility: paragraphs must inherit the light footer colour */
.site-footer p{ color: rgba(255,255,255,.72); }
.site-footer .legal-line p{ color: rgba(255,255,255,.6); }
.site-footer .legal-line a{ color: rgba(255,255,255,.85); text-decoration: underline; }

/* Building image slider (home) */
#buildingSlider .carousel-item img{ aspect-ratio: 16/8; object-fit: cover; background: var(--ink); }
#buildingSlider .carousel-caption-lenora{
  position:absolute; left:0; right:0; bottom:0;
  padding: 3.2rem 2rem 2.6rem;
  background: linear-gradient(0deg, rgba(15,24,45,.85), rgba(15,24,45,0));
  color:#fff; display:flex; flex-direction:column;
}
#buildingSlider .carousel-caption-lenora span{ font-family:var(--font-display); font-style:italic; font-size:1.2rem; color:var(--stone-light); }
#buildingSlider .carousel-caption-lenora strong{ font-family:var(--font-display); font-weight:600; font-size:clamp(1.5rem,3vw,2.4rem); line-height:1.1; }
#buildingSlider .carousel-control-prev, #buildingSlider .carousel-control-next{ width:8%; }
#buildingSlider .carousel-indicators{ margin-bottom:.8rem; }
#buildingSlider .carousel-indicators [data-bs-target]{ width:28px; height:3px; border:0; background:#fff; }
@media (max-width: 767.98px){
  #buildingSlider .carousel-item img{ aspect-ratio: 4/3; }
  #buildingSlider .carousel-caption-lenora{ padding: 2rem 1.2rem 2.2rem; }
}

@media (max-width: 991.98px){ .site-nav .navbar-brand img{ height: 56px; } .site-nav.is-scrolled .navbar-brand img{ height: 48px; } }

/* Lenora logo replaces the text heading in the home hero */
.hero h1.hero-logo{ max-width:none; line-height:0; margin:0; }
.hero h1.hero-logo img{ width: clamp(240px, 36vw, 460px); height:auto; display:block; filter: drop-shadow(0 2px 12px rgba(0,0,0,.35)); }

/* Footer: show the real Sai Siddha logo (white badge), not a white silhouette */
.site-footer .flogo{ height: 72px; width:auto; background:#fff; filter:none; opacity:1; margin-bottom:1.2rem; display:block; }

/* WhatsApp floating action button */
.whatsapp-fab{
  position: fixed;
  left: 1.4rem; bottom: 1.4rem;
  width: 56px; height: 56px;
  background: #25D366;
  color: #fff;
  border-radius: 50%;
  display:flex; align-items:center; justify-content:center;
  font-size: 1.7rem;
  box-shadow: 0 6px 18px rgba(0,0,0,.28);
  z-index: 1020;
  transition: transform .2s ease, box-shadow .2s ease;
}
.whatsapp-fab:hover{ color:#fff; transform: scale(1.08); box-shadow: 0 8px 22px rgba(0,0,0,.34); }
.whatsapp-fab i{ line-height:1; }
@media (max-width: 575.98px){
  .whatsapp-fab{ width:50px; height:50px; font-size:1.5rem; left:1rem; bottom:1rem; }
  .to-top{ right:1rem; bottom:1rem; }
}

/* Gallery lightbox */
.gallery-item{ cursor: zoom-in; }
#galleryLightbox .modal-dialog{ max-width: 92vw; }
#galleryLightbox .modal-content{ background: transparent; border: none; }
#galleryLightbox .modal-body{ padding: 0; position: relative; text-align:center; }
#galleryLightbox img{ max-width: 100%; max-height: 84vh; object-fit: contain; display:inline-block; }
#galleryLightbox .lb-caption{
  color:#fff; text-align:center; margin-top: .9rem; font-family: var(--font-body);
  font-size: .9rem; letter-spacing:.03em;
}
#galleryLightbox .btn-close{ filter: invert(1); opacity:.9; position:absolute; top:-2.6rem; right:0; }
#galleryLightbox .lb-nav{
  position:absolute; top:50%; transform:translateY(-50%);
  background: rgba(20,33,61,.55); color:#fff; border:none;
  width:48px; height:48px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; font-size:1.4rem;
}
#galleryLightbox .lb-nav:hover{ background: var(--red); }
#galleryLightbox .lb-prev{ left:-1rem; }
#galleryLightbox .lb-next{ right:-1rem; }
@media (max-width: 767.98px){
  #galleryLightbox .lb-nav{ width:40px; height:40px; font-size:1.2rem; }
  #galleryLightbox .lb-prev{ left:-.3rem; }
  #galleryLightbox .lb-next{ right:-.3rem; }
}

/* Gallery zoom hint icon */
.gallery-item{ position:relative; }
.g-zoom{
  position:absolute; top:.7rem; right:.7rem;
  width:34px; height:34px; border-radius:50%;
  background: rgba(20,33,61,.55); color:#fff;
  display:flex; align-items:center; justify-content:center;
  font-size:.9rem; opacity:0; transition:opacity .25s ease;
}
.gallery-item:hover .g-zoom{ opacity:1; }

/* FAQ accordion (home page, AEO section) */
.accordion-lenora .accordion-item{
  background: transparent;
  border: none;
  border-bottom: 1px solid var(--stone-light);
  border-radius: 0;
}
.accordion-lenora .accordion-button{
  background: transparent;
  font-family: var(--font-display);
  font-size: 1.15rem;
  font-weight: 600;
  color: var(--ink);
  padding: 1.3rem 0;
  box-shadow: none;
  border-radius: 0 !important;
}
.accordion-lenora .accordion-button:not(.collapsed){ color: var(--red); background: transparent; box-shadow:none; }
.accordion-lenora .accordion-button:focus{ box-shadow:none; }
.accordion-lenora .accordion-button::after{ filter: none; }
.accordion-lenora .accordion-body{ padding: 0 0 1.5rem; color: var(--charcoal); }
