/* ============================================================
   GREEN VISTAS — styles.css  v1.0
   Premium Apartment Builder | Kochi, Kerala
   Logo Colors: Red #C0392B · Blue #2980B9
   Fonts: Cormorant Garamond (headings) · Manrope (body)
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@300;400;500;600&family=Manrope:wght@300;400;500;600&display=swap');

/* ── 1. Variables ── */
:root {
  --ribbon-h:     34px;
  --red:          #C0392B;
  --red-dark:     #A93226;
  --red-hover:    #E74C3C;
  --red-light:    rgba(192,57,43,0.08);
  --blue:         #2980B9;
  --blue-dark:    #1A5276;
  --blue-light:   #5DADE2;
  --blue-faint:   rgba(41,128,185,0.08);
  --gold:         #2980B9;
  --green-accent: #27AE60;

  --white:        #FFFFFF;
  --off-white:    #F9FAFB;
  --light-gray:   #F2F4F7;
  --gray-1:       #E8EAED;
  --gray-2:       #C5CAD0;
  --gray-3:       #8E99A4;
  --gray-4:       #5A6470;
  --dark:         #111827;
  --dark-2:       #1F2937;
  --dark-3:       #374151;

  --text-heading: #111827;
  --text-body:    #4B5563;
  --text-light:   #6B7280;

  --sh-xs:  0 1px 6px rgba(0,0,0,0.05);
  --sh-sm:  0 4px 16px rgba(0,0,0,0.08);
  --sh-md:  0 8px 32px rgba(0,0,0,0.10);
  --sh-lg:  0 16px 56px rgba(0,0,0,0.13);
  --sh-xl:  0 32px 80px rgba(0,0,0,0.18);

  --font-body: 'Manrope', system-ui, -apple-system, sans-serif;
  --font-head: 'Cormorant Garamond', Georgia, serif;

  --ease:     all .28s cubic-bezier(.4,0,.2,1);
  --ease-out: cubic-bezier(.16,1,.3,1);

  --header-h: 68px;
  --max-w:    1440px;
  --r-sm:     6px;
  --r:        10px;
  --r-lg:     16px;
  --r-xl:     24px;
}

/* ── 2. Reset & Base ── */
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0 }
html { font-size:18px; scroll-behavior:smooth; overflow-x:clip }
body {
  font-family:var(--font-body);
  background:var(--white);
  color:var(--text-body);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:clip;
}
a { text-decoration:none; color:inherit; transition:var(--ease) }
img { display:block; max-width:100%; height:auto }
button { cursor:pointer; font-family:var(--font-body); border:none; background:none }
ul,ol { list-style:none }
::selection { background:var(--red); color:var(--white) }
::-webkit-scrollbar { width:4px }
::-webkit-scrollbar-track { background:transparent }
::-webkit-scrollbar-thumb { background:var(--red); border-radius:0 }

/* ── 3. Typography ── */
h1,h2,h3,h4,h5,h6 {
  font-family:var(--font-head);
  font-weight:600;
  line-height:1.2;
  letter-spacing:-.01em;
  color:var(--text-heading);
}
p { color:var(--text-body); line-height:1.75 }

/* ── 4. Layout ── */
.container {
  width:100%;
  max-width:var(--max-w);
  margin:0 auto;
  padding:0 clamp(15px,5vw,64px);
}
.section          { padding:96px 0 }
.section--gray    { background:var(--light-gray) }
.section--dark    { background:var(--dark) }
.text-center      { text-align:center }

.section-label {
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-family:var(--font-body);
  font-size:0.65rem;
  font-weight:700;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--blue);
  margin-bottom:14px;
}
.section-label::before { display:none }
.text-center .section-label { justify-content:center }
.section-heading {
  font-size:clamp(1.7rem,3vw,2.8rem);
  font-weight:600;
  color:var(--text-heading);
  margin-bottom:14px;
  line-height:1.18;
}
.section-subtext {
  font-size:0.9rem;
  color:var(--text-light);
  max-width:600px;
  line-height:1.78;
}
.text-center .section-subtext { margin:0 auto }

/* ── 5. Reveal Animations ── */
.reveal {
  opacity:0;
  transform:translateY(28px);
  transition:opacity .7s var(--ease-out), transform .7s var(--ease-out);
}
.reveal.visible      { opacity:1; transform:none }
.reveal-delay-1      { transition-delay:.1s }
.reveal-delay-2      { transition-delay:.2s }
.reveal-delay-3      { transition-delay:.3s }
.reveal-delay-4      { transition-delay:.4s }
.reveal-delay-5      { transition-delay:.5s }
.reveal-delay-6      { transition-delay:.6s }


/* ============================================================
   5b. ANNOUNCEMENT RIBBON
   ============================================================ */
.announcement-ribbon {
  position:fixed; top:0; left:0; right:0; z-index:1001;
  height:var(--ribbon-h); overflow:hidden;
  background:linear-gradient(90deg, #1a3a5c 0%, #1e4976 50%, #1a3a5c 100%);
  border-bottom:1px solid rgba(255,255,255,0.06);
}
.announcement-track { width:100%; height:100%; overflow:hidden; display:flex; align-items:center }
.announcement-inner {
  display:flex; align-items:center; gap:32px;
  white-space:nowrap;
  animation:ribbonScroll 35s linear infinite;
  will-change:transform;
}
.announcement-ribbon:hover .announcement-inner { animation-play-state:paused }
.announcement-item {
  display:inline-flex; align-items:center; gap:7px;
  font-size:0.9rem; font-weight:500; letter-spacing:.02em;
  color:rgba(255,255,255,0.75);
}
.announcement-item svg { flex-shrink:0; color:var(--red); opacity:.9 }
.announcement-sep { color:rgba(255,255,255,0.2); font-size:0.65rem; flex-shrink:0 }
@keyframes ribbonScroll {
  0%   { transform:translateX(0) }
  100% { transform:translateX(-50%) }
}

/* ============================================================
   6. HEADER
   ============================================================ */
.site-header {
  position:fixed;
  top:0; left:0; right:0;
  z-index:1000;
  height:var(--header-h);
  overflow:visible;
  transition:background .35s ease, box-shadow .35s ease, border-color .35s ease;
}
.site-header--transparent {
  background:transparent;
  border-bottom:1px solid rgba(255,255,255,0.1);
}
.site-header--solid {
  background:#fff;
  box-shadow:0 1px 0 rgba(0,0,0,0.06), var(--sh-sm);
  border-bottom:1px solid rgba(0,0,0,0.06);
}
.header-inner {
  display:flex;
  align-items:center;
  justify-content:space-between;
  height:100%;
  max-width:1440px;
  margin:0 auto;
  padding:0 clamp(20px,4vw,56px);
  gap:24px;
  position:relative;
}

/* Logo */
.header-logo { display:flex; align-items:center; flex-shrink:0 }
.header-logo img { height:64px; width:auto; display:block; object-fit:contain }

/* Desktop Nav */
.header-nav { display:flex; align-items:center; gap:10px }
.nav-link {
  font-size:0.75rem;
  font-weight:500;
  color:rgba(255,255,255,0.82);
  padding:8px 14px;
  border-radius:0;
  letter-spacing:.08em;
  text-transform:uppercase;
  position:relative;
  transition:var(--ease);
  white-space:nowrap;
}
.nav-link::after {
  content:'';
  position:absolute;
  bottom:5px; left:14px; right:14px;
  height:1px;
  background:var(--text-heading);
  transform:scaleX(0);
  transform-origin:center;
  border-radius:0;
  transition:transform .25s var(--ease-out);
}
.nav-link:hover::after        { transform:scaleX(1) }
.nav-link.active::after       { display:none }
.nav-link:hover               { color:var(--white); background:rgba(255,255,255,0.1) }
.nav-link.active {
  color: var(--white);
  background-color: rgba(255,255,255,0.15);
  background-image: radial-gradient(circle, rgba(255,255,255,.1) 1px, transparent 1px);
  background-size: 5px 5px;
}
.site-header--solid .nav-link       { color:var(--text-body) }
.site-header--solid .nav-link:hover { color:var(--text-heading); background:var(--off-white) }
.site-header--solid .nav-link.active{
  color: #fff;
  background-color: var(--text-heading);
  background-image: radial-gradient(circle, rgba(255,255,255,.05) 1px, transparent 1px);
  background-size: 5px 5px;
}
.nav-cta {
  display:inline-flex; align-items:center; gap:8px;
  font-family: 'Manrope', sans-serif;
  font-size:0.75rem;
  font-weight:500;
  color:var(--text-heading) !important;
  background:transparent;
  padding:10px 22px;
  border:1px solid var(--text-heading);
  border-radius:0;
  letter-spacing:.08em;
  text-transform:uppercase;
  margin-left:10px;
  white-space:nowrap;
  transition:background .2s ease, color .2s ease;
}
.nav-cta svg { transition:transform .2s ease; flex-shrink:0; }
.nav-cta:hover { background:var(--text-heading); color:var(--white) !important; }
.nav-cta:hover svg { transform:translateX(4px); }
.nav-cta::after { display:none !important }

/* Dropdown */
.nav-dropdown { position:static }
.nav-dropdown-toggle { display:flex; align-items:center; gap:5px; border:none; cursor:pointer; font-family:inherit }
.nav-dropdown-toggle svg { transition:transform .25s ease }
.nav-dropdown.open .nav-dropdown-toggle svg { transform:rotate(180deg) }
.nav-dropdown-menu {
  position:absolute; top:calc(100% - 10px); right:0; left:auto;
  background:#fff; border:1px solid var(--gray-1); border-radius:0;
  box-shadow:var(--sh-lg); padding:20px; width:680px;
  display:grid; grid-template-columns:1fr 1fr 1fr; gap:0;
  opacity:0; visibility:hidden; transform:translateX(-200px) translateY(-6px);
  transition:opacity .22s ease, transform .22s ease, visibility .22s;
  z-index:200;
}
.nav-dropdown.open .nav-dropdown-menu,
.nav-dropdown:hover .nav-dropdown-menu { opacity:1; visibility:visible; transform:translateX(-200px) translateY(0) }
.nav-dropdown:hover .nav-dropdown-toggle svg { transform:rotate(180deg) }
.nav-dropdown-col { display:flex; flex-direction:column; padding:0 14px }
.nav-dropdown-col + .nav-dropdown-col { border-left:1px solid var(--gray-1) }
.nav-dropdown-col-title {
  font-size:0.65rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase;
  color:var(--blue); margin-bottom:10px; padding-bottom:8px;
  border-bottom:1px solid var(--gray-1);
  text-decoration:none;
}
.nav-dropdown-col-title:hover { color:var(--text-heading); }
.nav-dropdown-item {
  display:flex; align-items:center; gap:9px; padding:8px 10px;
  font-size:0.75rem; font-weight:500; color:var(--text-body);
  border-radius:0; transition:all .18s ease; white-space:nowrap;
}
.nav-dropdown-item:hover { background:var(--off-white); color:var(--text-heading) }
.nav-dropdown-item svg { flex-shrink:0; color:var(--text-heading); opacity:.4 }
.nav-dropdown-item:hover svg { opacity:1 }
.nav-dropdown-group-name {
  display:block; font-size:0.62rem; font-weight:700; letter-spacing:.06em;
  color:var(--gray-3); text-transform:uppercase; padding:6px 10px 2px;
}
.nav-dropdown-group-name:first-child { padding-top:0; }
.nav-dropdown-item--nested { padding-left:18px; }

/* Mobile nav group */
.mobile-nav-group { display:flex; flex-direction:column }
.mobile-nav-group-toggle { display:flex; align-items:center; justify-content:space-between; border:none; cursor:pointer; font-family:inherit; width:100%; text-align:left; background:none; gap:0 }
.mobile-nav-group-toggle svg:first-child { display:none }
.mobile-nav-group-toggle svg { transition:transform .25s ease; flex-shrink:0; color:var(--text-light); margin-left:0 }
.mobile-nav-group-toggle svg:last-child { margin-left:auto; display:block; }
.mobile-nav-group.open .mobile-nav-group-toggle svg:last-child { transform:rotate(180deg) }
.mobile-nav-sub { height:0; overflow:hidden; transition:height .3s ease; padding-left:16px }
.mobile-nav-sub-heading {
  display:block; font-size:0.65rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase;
  color:var(--blue); padding:10px 16px 4px; border-left:2px solid transparent;
  text-decoration:none;
}
.mobile-nav-sub-heading:hover { color:var(--text-heading); }
.mobile-nav-sub-link {
  display:block; padding:8px 16px; font-size:0.75rem; font-weight:400;
  letter-spacing:.05em;
  color:var(--text-body); border-left:1px solid var(--gray-1);
  transition:all .2s ease;
}
.mobile-nav-sub-link:hover { color:var(--text-heading); border-color:var(--text-heading) }
.mobile-nav-sub-group {
  display:block; font-size:0.62rem; font-weight:700; letter-spacing:.06em;
  color:var(--gray-3); text-transform:uppercase; padding:8px 16px 2px;
  border-left:1px solid var(--gray-1);
}
.mobile-nav-sub-link--nested { padding-left:26px; }

/* Hamburger */
.header-mobile-actions { display:none; align-items:center; gap:6px }
.header-quick-btn {
  display:flex; align-items:center; justify-content:center;
  width:36px; height:36px; border-radius:0;
  background:var(--off-white); border:1px solid var(--gray-1);
  color:var(--blue); transition:var(--ease);
}
.header-quick-btn svg { width:17px; height:17px }
.header-quick-btn:hover { background:var(--blue); color:var(--white); border-color:var(--blue) }
.header-quick-btn--wa { color:#25D366 }
.header-quick-btn--wa:hover { background:#25D366; color:var(--white); border-color:#25D366 }

.header-hamburger {
  display:none;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  gap:5px;
  width:44px;
  height:44px;
  border:none;
  background:transparent;
  cursor:pointer;
  padding:0;
  flex-shrink:0;
  transition:var(--ease);
}
.header-hamburger span {
  display:block;
  height:1.5px;
  background:var(--white);
  border-radius:0;
  transition:transform .3s ease, opacity .3s ease, width .3s ease;
}
.header-hamburger span:nth-child(1) { width:22px }
.header-hamburger span:nth-child(2) { width:14px }
.header-hamburger span:nth-child(3) { width:18px }
.site-header--solid .header-hamburger span { background:var(--dark) }
.header-hamburger.active span:nth-child(1) { transform:translateY(7px) rotate(45deg); width:20px }
.header-hamburger.active span:nth-child(2) { opacity:0; width:0 }
.header-hamburger.active span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); width:20px }


/* ============================================================
   7. MOBILE MENU — 75% width, full height, slides from right
   ============================================================ */
.mobile-nav-overlay {
  position:fixed;
  inset:0;
  background:rgba(0,0,0,0.55);
  z-index:1998;
  opacity:0;
  pointer-events:none;
  transition:opacity .4s ease;
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
}
.mobile-nav-overlay.open { opacity:1; pointer-events:all }

.mobile-nav {
  position:fixed;
  top:0; right:0;
  width:75%;
  max-width:380px;
  height:100vh;
  height:100dvh;
  background:var(--white);
  z-index:1999;
  transform:translateX(100%);
  transition:transform .44s cubic-bezier(.16,1,.3,1);
  display:flex;
  flex-direction:column;
  box-shadow:-8px 0 56px rgba(0,0,0,0.2);
  overflow-y:auto;
}
.mobile-nav.open { transform:translateX(0) }

/* Close button — top right */
.mobile-nav-close {
  position:absolute;
  top:18px; right:18px;
  width:40px; height:40px;
  border-radius:0;
  background:var(--light-gray);
  border:none;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--dark);
  transition:var(--ease);
  z-index:1;
}
.mobile-nav-close:hover { background:var(--dark); color:var(--white) }
.mobile-nav-close svg { width:18px; height:18px }

/* Logo in menu */
.mobile-nav-header {
  display:flex;
  align-items:center;
  padding:22px 24px 18px;
  border-bottom:1px solid var(--gray-1);
}
.mobile-nav-header img { height:44px; width:auto }

/* Nav links */
.mobile-nav-links {
  flex:1;
  padding:20px 16px;
  display:flex;
  flex-direction:column;
  gap:2px;
}
.mobile-nav-link {
  display:flex;
  align-items:center;
  gap:10px;
  font-size:0.9rem;
  font-weight:500;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--text-body);
  padding:13px 16px;
  border-radius:0;
  transition:var(--ease);
}
.mobile-nav-link svg { display:none; }
.mobile-nav-link:hover        { color:var(--text-heading); background:var(--off-white); }
.mobile-nav-link.active {
  color: #fff;
  background-color: var(--text-heading);
  background-image: radial-gradient(circle, rgba(255,255,255,.05) 1px, transparent 1px);
  background-size: 5px 5px;
}

.mobile-nav-phone {
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 16px 0;
  font-size:0.9rem;
  color:var(--text-light);
}
.mobile-nav-phone svg { width:16px; height:16px; color:var(--blue); flex-shrink:0 }
.mobile-nav-phone a   { color:var(--blue); font-weight:700 }

/* Send Enquiry at bottom */
.mobile-nav-footer {
  padding:16px 16px 36px;
  border-top:1px solid var(--gray-1);
  display:flex; flex-direction:column; gap:10px;
}
.mobile-nav-book {
  display:flex; align-items:center; justify-content:center; gap:8px;
  width:100%; padding:10px 18px;
  background:transparent; color:var(--text-heading);
  font-family:'Manrope', sans-serif;
  font-size:0.75rem; font-weight:500;
  letter-spacing:.08em; text-transform:uppercase;
  border:1px solid var(--text-heading); border-radius:0;
  transition:background .2s ease, color .2s ease;
}
.mobile-nav-book:hover { background:var(--text-heading); color:var(--white); }
.mobile-nav-book svg { width:14px; height:14px; transition:transform .2s ease; }
.mobile-nav-book:hover svg { transform:translateX(4px); }
.mobile-nav-enquiry {
  display:flex; align-items:center; justify-content:center; gap:8px;
  width:100%; padding:10px 18px;
  background:transparent; color:var(--text-heading);
  font-family:'Manrope', sans-serif;
  font-size:0.75rem; font-weight:500;
  letter-spacing:.08em; text-transform:uppercase;
  border:1px solid var(--gray-3); border-radius:0;
  transition:background .2s ease, color .2s ease, border-color .2s ease;
}
.mobile-nav-enquiry:hover { background:var(--text-heading); color:var(--white); border-color:var(--text-heading); }
.mobile-nav-enquiry svg { width:14px; height:14px; transition:transform .2s ease; }

/* ============================================================
   8. HERO SLIDER — fullscreen
   ============================================================ */
.hero {
  position:relative;
  height:100vh;
  min-height:620px;
  overflow:hidden;
  background:var(--dark);
}
.hero-slides { position:relative; width:100%; height:100% }

.hero-slide {
  position:absolute;
  inset:0;
  opacity:0;
  transition:opacity 1.1s ease;
  z-index:1;
}
.hero-slide.active { opacity:1; z-index:2 }

.hero-slide-bg {
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  will-change:transform;
}
.hero-slide.active .hero-slide-bg { animation:kenburns 12s ease-out both }
@keyframes kenburns {
  from { transform:scale(1.07) }
  to   { transform:scale(1) }
}

.hero-slide-overlay {
  position:absolute;
  inset:0;
  background:linear-gradient(108deg, rgba(17,24,39,.82) 0%, rgba(17,24,39,.5) 55%, rgba(17,24,39,.2) 100%);
  z-index:1;
}

.hero .container {
  max-width:1440px;
  padding-left:clamp(20px,4vw,56px);
  padding-right:clamp(20px,4vw,56px);
}

.hero-slide-body {
  position:relative;
  z-index:2;
  height:100%;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:flex-start;
  padding-top:calc(var(--header-h) + var(--ribbon-h) + 20px);
  padding-bottom:80px;
  max-width:580px;
}

/* Animated entrance */
.hero-tagline,
.hero-title,
.hero-desc,
.hero-bullets,
.hero-actions,
.hero-desktop-apt,
.hero-trust { opacity:0; transform:translateY(22px) }

.hero-slide.active .hero-tagline { animation:heroIn .65s .15s var(--ease-out) both }
.hero-slide.active .hero-title   { animation:heroIn .75s .35s var(--ease-out) both }
.hero-slide.active .hero-desc         { animation:heroIn .65s .52s var(--ease-out) both }
.hero-slide.active .hero-desktop-apt  { animation:heroIn .65s .64s var(--ease-out) both }
.hero-slide.active .hero-bullets { animation:heroIn .65s .62s var(--ease-out) both }
.hero-slide.active .hero-actions { animation:heroIn .65s .76s var(--ease-out) both }
.hero-slide.active .hero-trust   { animation:heroIn .65s .90s var(--ease-out) both }

@keyframes heroIn {
  to { opacity:1; transform:translateY(0) }
}

.hero-tagline {
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-size:0.75rem;
  font-weight:700;
  letter-spacing:.22em;
  text-transform:uppercase;
  background: none;
  color: var(--text-heading);
  margin-bottom:12px;
}
.hero-tagline-dot { display:none }
@keyframes dotPulse {
  0%,100% { opacity:1; transform:scale(1) }
  50%      { opacity:.4; transform:scale(.65) }
}

.hero-title {
  font-family:var(--font-head);
  font-size:clamp(2rem,3.8vw,4rem);
  font-weight:600;
  color:var(--white);
  line-height:1.12;
  letter-spacing:-.02em;
  margin-bottom:14px;
}
.hero-desc {
  font-size:1rem;
  color:rgba(255,255,255,0.78);
  line-height:1.72;
  margin-bottom:20px;
  max-width:520px;
}

/* 4 bullet points */
.hero-bullets {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px 24px;
  margin-bottom:28px;
  max-width:100%;
}
.hero-bullet {
  display:flex;
  align-items:center;
  gap:10px;
  font-size:0.9rem;
  font-weight:600;
  color:rgba(255,255,255,0.88);
}
.hero-bullet-check {
  width:20px; height:20px;
  border-radius:0;
  background:var(--red);
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0;
}
.hero-bullet-check svg { width:11px; height:11px; color:var(--white) }

.hero-actions {
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  margin-bottom:0;
}
.btn-hero-primary {
  display:inline-flex; align-items:center; gap:8px;
  padding:10px 20px;
  background:var(--red); color:var(--white);
  font-weight:700; font-size:0.5rem; border-radius:0; letter-spacing:.02em;
  box-shadow:0 6px 24px rgba(192,57,43,0.45); transition:var(--ease); white-space:nowrap;
}
.btn-hero-primary:hover { background:var(--red-dark); color:var(--white); transform:translateY(-2px); box-shadow:0 10px 32px rgba(192,57,43,0.55) }
.btn-hero-outline {
  display:inline-flex; align-items:center; gap:8px;
  padding:14px 26px;
  border:2px solid rgba(255,255,255,0.45); color:var(--white);
  font-weight:700; font-size:0.5rem; border-radius:0; letter-spacing:.02em;
  transition:var(--ease); backdrop-filter:blur(8px); white-space:nowrap;
}
.btn-hero-outline:hover { background:rgba(255,255,255,0.12); border-color:rgba(255,255,255,0.85); color:var(--white) }
.btn-hero-outline svg { width:16px; height:16px }

/* Trust badges row */
.hero-trust {
  display:flex;
  align-items:center;
  gap:0;
  flex-wrap:wrap;
}
.hero-trust-divider {
  width:1px; height:18px;
  background:rgba(255,255,255,0.2);
  margin:0 16px; flex-shrink:0;
}
.hero-trust-badge {
  display:flex;
  align-items:center;
  gap:7px;
  font-size:0.9rem;
  font-weight:700;
  color:rgba(255,255,255,0.7);
  letter-spacing:.08em;
  text-transform:uppercase;
}
.hero-trust-badge svg { width:14px; height:14px; color:var(--blue-light) }

/* KPI trust bar — desktop only, sits above hero-nav */
.hero-kpi-bar { display:none }
@media (min-width:960px) {
  .hero-kpi-bar {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px 32px;
    position:absolute;
    bottom:calc(36px + 40px + 24px);
    left:max(clamp(20px,4vw,56px), calc(50% - 720px + clamp(20px,4vw,56px)));
    z-index:10;
  }
  .trust-bar { display:none }
}
.hero-kpi-item {
  display:flex;
  align-items:center;
  gap:11px;
}
.hero-kpi-icon {
  color:var(--red);
  flex-shrink:0;
  opacity:.95;
}
.hero-kpi-icon svg { width:16px; height:16px; display:block }
.hero-kpi-sep { display:none }
.hero-kpi-label {
  font-size:0.95rem;
  font-weight:600;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:rgba(255,255,255,0.75);
  white-space:nowrap;
}
@media (min-width:960px) {
  .hero-kpi-bar .hero-kpi-item:nth-child(1) { animation:heroIn .65s .80s var(--ease-out) both }
  .hero-kpi-bar .hero-kpi-item:nth-child(3) { animation:heroIn .65s .95s var(--ease-out) both }
  .hero-kpi-bar .hero-kpi-item:nth-child(5) { animation:heroIn .65s 1.10s var(--ease-out) both }
  .hero-kpi-bar .hero-kpi-item:nth-child(7) { animation:heroIn .65s 1.25s var(--ease-out) both }
}

/* Nav cluster — bottom right */
.hero-nav {
  position:absolute;
  bottom:36px; right:clamp(20px,4vw,56px);
  z-index:10;
  display:flex; align-items:center; gap:10px;
}

/* Dots */
.hero-dots { display:flex; align-items:center; gap:8px; }
.hero-dot {
  width:8px; height:8px; border-radius:0;
  background:rgba(255,255,255,0.3); cursor:pointer; transition:var(--ease);
  border:none; padding:0;
}
.hero-dot.active { width:28px; background:var(--red) }
.hero-dot:hover  { background:rgba(255,255,255,0.7) }

/* Arrows */
.hero-prev, .hero-next {
  width:40px; height:40px;
  border-radius:0;
  background:rgba(255,255,255,0.1);
  border:1.5px solid rgba(255,255,255,0.22);
  color:var(--white);
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; transition:var(--ease); backdrop-filter:blur(8px);
}
.hero-prev:hover, .hero-next:hover { background:var(--red); border-color:var(--red) }
.hero-prev svg, .hero-next svg { width:18px; height:18px }


/* ============================================================
   8b. HERO FLAT PANEL
   ============================================================ */
.hero-flat-panel {
  position:absolute;
  right:clamp(40px,5vw,100px);
  top:calc(50% + var(--header-h) / 2);
  transform:translateY(-50%);
  z-index:6;
  width:420px;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:14px;
}
.hero-flat-slider {
  display:grid;
  width:100%;
}
.hero-flat-card {
  grid-row:1; grid-column:1;
  position:relative;
  border-radius:0; overflow:hidden;
  opacity:0;
  pointer-events:none;
  transition:opacity 1.2s ease;
  box-shadow:0 24px 60px rgba(0,0,0,0.55), 0 0 0 1px rgba(255,255,255,0.08);
}
.hero-flat-card.active {
  opacity:1;
  pointer-events:all; z-index:2;
}
.hero-flat-card.exiting {
  opacity:0;
  transition:opacity 1s ease;
  z-index:1;
}
.hero-flat-img {
  display:block;
  width:100%; height:auto;
}
.hero-flat-gradient {
  position:absolute; inset:0;
  background:linear-gradient(to bottom, rgba(0,0,0,0.05) 35%, rgba(0,0,0,0.82) 100%);
}
/* Completed tag */
.hero-flat-tag { display:none }
.hero-flat-card.active .hero-flat-tag { display:none }
/* Info block */
.hero-flat-info {
  position:absolute; bottom:0; left:0; right:0; z-index:3;
  padding:20px 16px 18px;
}
.hero-flat-name {
  font-family:var(--font-head); font-size:clamp(1.1rem,1.6vw,1.4rem); font-weight:600;
  color:#fff; margin:0 0 8px;
  opacity:0; transform:translateY(12px);
  transition:opacity .45s .35s ease, transform .45s .35s ease;
}
.hero-flat-card.active .hero-flat-name { opacity:1; transform:translateY(0) }
.hero-flat-loc {
  display:flex; align-items:center; gap:4px;
  font-size:0.9rem; color:rgba(255,255,255,0.55); margin-top:9px;
  opacity:0; transform:translateY(6px);
  transition:opacity .45s .6s ease, transform .45s .6s ease;
}
.hero-flat-card.active .hero-flat-loc { opacity:1; transform:translateY(0) }
.hero-flat-loc svg { width:11px; height:11px; flex-shrink:0 }
.hero-flat-btn {
  display:inline-flex; align-items:center; gap:8px;
  margin-top:16px;
  font-size:0.75rem; font-weight:500; letter-spacing:0.08em; text-transform:uppercase;
  color:#fff;
  padding:10px 22px;
  border-radius:0;
  background:rgba(255,255,255,0.08);
  border:1px solid rgba(255,255,255,0.3);
  backdrop-filter:blur(10px);
  text-decoration:none;
  opacity:0; transform:translateY(6px);
  transition:opacity .45s .72s ease, transform .45s .72s ease, background .3s ease, border-color .3s ease, gap .3s ease;
}
.hero-flat-card.active .hero-flat-btn { opacity:1; transform:translateY(0) }
.hero-flat-btn:hover {
  background:rgba(255,255,255,0.18);
  border-color:rgba(255,255,255,0.7);
  gap:12px;
}
.hero-flat-btn svg { width:14px; height:14px; flex-shrink:0; transition:transform .3s ease }
.hero-flat-btn:hover svg { transform:translateX(3px) }
/* Flat dots */
/* Desktop apt info — shown in slide body, hidden on mobile */
.hero-desktop-apt {
  display:none;
  flex-direction:column;
  margin-bottom:20px;
  padding-bottom:16px;
  border-bottom:1px solid rgba(255,255,255,0.12);
}
@media (min-width:960px) {
  .hero-desktop-apt { display:flex }
}
.hero-desktop-apt-name {
  font-family:var(--font-head);
  font-size:clamp(1.1rem,1.6vw,1.4rem); font-weight:600;
  color:#fff; margin:0 0 6px;
}
.hero-desktop-apt-loc {
  display:flex; align-items:center; gap:5px;
  font-size:0.9rem; color:rgba(255,255,255,0.65);
}
.hero-desktop-apt-loc svg { width:12px; height:12px; flex-shrink:0 }

/* Mobile hero body — hidden on desktop, shown on mobile via media query */
.hero-mobile-body { display:none }
.hero-mobile-apt  { display:none }
.hero-mobile-learn { display:none }

/* Styles (applied when shown on mobile) */
.hero-mobile-apt-name {
  font-family:var(--font-head);
  font-size:clamp(1.1rem,1.6vw,1.4rem); font-weight:600;
  color:#fff; margin:0 0 6px;
}
.hero-mobile-apt-loc {
  display:flex; align-items:center; gap:5px;
  font-size:0.9rem; color:rgba(255,255,255,0.6);
}
.hero-mobile-apt-loc svg { width:12px; height:12px; flex-shrink:0 }
.hero-mobile-learn {
  display:none;
  align-items:center; gap:8px; margin-top:12px;
  font-size:0.65rem; font-weight:700; letter-spacing:1.5px; text-transform:uppercase;
  color:#fff; padding:10px 20px; border-radius:0;
  background:rgba(255,255,255,0.08);
  border:1px solid rgba(255,255,255,0.3);
  backdrop-filter:blur(10px);
  text-decoration:none;
  transition:background .3s ease, border-color .3s ease;
}
.hero-mobile-learn svg { width:13px; height:13px; flex-shrink:0 }
.hero-mobile-learn:hover { background:rgba(255,255,255,0.18); border-color:rgba(255,255,255,0.7) }

.hero-flat-dots { display:flex; align-items:center; gap:6px }
.hero-flat-dot {
  width:6px; height:6px; border-radius:0;
  background:rgba(255,255,255,0.25); border:none; cursor:pointer;
  transition:var(--ease); padding:0;
}
.hero-flat-dot.active { width:20px; background:#fff }
.hero-flat-dot:hover  { background:rgba(255,255,255,0.6) }

/* ============================================================
   9. TRUST BAR
   ============================================================ */
.trust-bar { background:var(--dark); border-bottom:1px solid rgba(255,255,255,0.05) }
.trust-bar-inner { display:flex; align-items:stretch }
.trust-item {
  flex:1;
  display:flex; align-items:center; justify-content:center; gap:12px;
  padding:20px 16px;
  border-right:1px solid rgba(255,255,255,0.06);
}
.trust-item:last-child { border-right:none }
.trust-item-icon {
  width:38px; height:38px; border-radius:0;
  background:var(--red-light);
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0; color:var(--red);
}
.trust-item-icon svg { width:18px; height:18px }
.trust-item-text { font-size:0.9rem; font-weight:700; color:rgba(255,255,255,0.85); letter-spacing:.04em; text-transform:uppercase; line-height:1.3; display:block }
.trust-item-sub  { font-size:0.9rem; color:rgba(255,255,255,0.38); display:block; margin-top:2px }


/* ============================================================
   10. ABOUT SECTION
   ============================================================ */
.about-grid { display:grid; grid-template-columns:1fr 1fr; gap:72px; align-items:center }
.about-desc { font-size:0.9rem; color:var(--text-body); line-height:1.82; margin-bottom:14px }
.about-features { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:32px; margin-bottom:32px }
.about-feature {
  display:flex; align-items:flex-start; gap:14px;
  padding:20px 18px;
  background:
    repeating-linear-gradient(45deg,  rgba(255,255,255,0.025) 0px, rgba(255,255,255,0.025) 1px, transparent 1px, transparent 14px),
    repeating-linear-gradient(-45deg, rgba(255,255,255,0.025) 0px, rgba(255,255,255,0.025) 1px, transparent 1px, transparent 14px),
    linear-gradient(145deg, #252525 0%, #0f0f0f 100%);
  border-radius:0;
  border:1px solid rgba(255,255,255,0.08);
}
.about-feature-icon {
  flex-shrink:0; color:var(--red); margin-top:2px;
}
.about-feature-icon svg { width:20px; height:20px; display:block }
.about-feature-title {
  font-family:var(--font-head); font-size:clamp(1.1rem,1.6vw,1.4rem); font-weight:600;
  color:var(--white); margin:0 0 5px;
}
.about-feature-desc {
  font-size:0.9rem; color:rgba(255,255,255,0.5); line-height:1.6; margin:0;
}
.about-btns { display:flex; align-items:center; gap:14px; flex-wrap:wrap }
.about-btns--mobile { display:none }
.about-btns--desktop { display:flex }
.about-image-wrap  { position:relative; padding-bottom:24px; padding-left:24px }
.about-image-main  { width:100%; height:620px; object-fit:cover; border-radius:0; box-shadow:var(--sh-lg); display:block }
.about-image-accent {
  position:absolute; bottom:0; left:0;
  width:52%; height:200px; object-fit:cover;
  border-radius:0; border:4px solid var(--white); box-shadow:var(--sh-lg); display:block;
}
.about-badge {
  position:absolute; top:20px; right:-16px;
  background:var(--blue); color:var(--white);
  padding:18px 22px; border-radius:0; text-align:center; box-shadow:var(--sh-md); min-width:110px;
}
.about-badge-number { font-family:var(--font-head); font-size:2.2rem; font-weight:600; line-height:1; display:block }
.about-badge-text   { font-size:0.65rem; font-weight:700; text-transform:uppercase; letter-spacing:.1em; opacity:.85; margin-top:4px; display:block }
.about-image-label {
  position:absolute; bottom:35px; right:15px;
  text-align:right;
}
.about-image-label-name {
  font-family:var(--font-head); font-size:clamp(1.1rem,1.6vw,1.4rem); font-weight:600;
  color:#fff; margin:0 0 4px;
  text-shadow:0 1px 8px rgba(0,0,0,0.8);
}
.about-image-label-loc {
  display:flex; align-items:center; justify-content:flex-end; gap:4px;
  font-size:0.9rem; color:rgba(255,255,255,0.85);
  text-shadow:0 1px 6px rgba(0,0,0,0.8);
}
.about-image-label-loc svg { width:11px; height:11px; flex-shrink:0 }

/* Shared buttons */
.btn-primary {
  display:inline-flex; align-items:center; gap:8px;
  padding:13px 24px; background:var(--red); color:var(--white);
  font-weight:700; font-size:0.5rem; border-radius:0; letter-spacing:.02em;
  box-shadow:0 4px 14px rgba(192,57,43,0.3); transition:var(--ease);
}
.btn-primary:hover { background:var(--red-dark); color:var(--white); transform:translateY(-2px); box-shadow:0 8px 22px rgba(192,57,43,0.4) }
.btn-learn {
  display:inline-flex; align-items:center; gap:8px;
  padding:13px 24px; background:var(--blue); color:var(--white);
  font-weight:700; font-size:0.5rem; border-radius:0; letter-spacing:.02em;
  border:2px solid var(--blue); white-space:nowrap; transition:var(--ease);
}
.btn-learn:hover { background:#2471a3; border-color:#2471a3; color:var(--white); transform:translateY(-2px); box-shadow:0 8px 22px rgba(41,128,185,0.4) }
.btn-secondary {
  display:inline-flex; align-items:center; gap:8px;
  padding:12px 22px; border:2px solid var(--blue); color:var(--blue);
  font-weight:700; font-size:0.5rem; border-radius:0; letter-spacing:.02em; transition:var(--ease);
}
.btn-secondary:hover { background:var(--blue); color:var(--white); transform:translateY(-2px) }
.btn-primary svg, .btn-secondary svg { width:16px; height:16px }


/* ============================================================
   11. WHY CHOOSE US
   ============================================================ */
.why-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0;
  margin-top:56px;
  border:1px solid var(--gray-1);
  border-radius:0;
  overflow:hidden;
  background:var(--white);
  box-shadow:var(--sh-sm);
}
.why-card {
  display:flex;
  align-items:flex-start;
  gap:0;
  padding:0;
  background:var(--white);
  border-right:1px solid var(--gray-1);
  border-bottom:1px solid var(--gray-1);
  position:relative;
  transition:background .25s ease;
  overflow:hidden;
}
.why-card:nth-child(2n)  { border-right:none }
.why-card:nth-child(5),
.why-card:nth-child(6)   { border-bottom:none }
@media (max-width:768px) {
  .why-card              { border-right:none }
  .why-card:nth-child(5) { border-bottom:1px solid var(--gray-1) }
  .why-card:last-child   { border-bottom:none }
}
.why-card:hover { background:var(--off-white) }

/* Left accent: number + colored bar */
.why-card-left {
  flex-shrink:0;
  width:72px;
  align-self:stretch;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  padding-top:28px;
  background:var(--light-gray);
  border-right:1px solid var(--gray-1);
  position:relative;
  transition:background .25s ease;
}
.why-card:hover .why-card-left { background:var(--gray-1) }
.why-card-left::after {
  content:'';
  position:absolute;
  top:0; left:0; right:0;
  height:3px;
  background:var(--red);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .38s var(--ease-out);
}
.why-card:hover .why-card-left::after { transform:scaleX(1) }

.why-card-num {
  font-family:var(--font-head);
  font-size:.72rem;
  font-weight:800;
  color:var(--red);
  letter-spacing:.12em;
  line-height:1;
  writing-mode:vertical-rl;
  text-orientation:mixed;
  transform:rotate(180deg);
  margin-top:8px;
}

/* Right: icon + content */
.why-card-body {
  flex:1;
  padding:28px 24px 24px 22px;
  display:flex;
  flex-direction:column;
  position:relative;
}
.why-icon {
  position:absolute;
  bottom:20px; right:20px;
  display:flex; align-items:center; justify-content:center;
  color:var(--red);
  opacity:.18;
  transition:opacity .25s ease;
  pointer-events:none;
}
.why-icon svg { width:36px; height:36px }
.why-card:hover .why-icon { opacity:.35 }
.why-title { font-family:var(--font-head); font-size:clamp(1.1rem,1.6vw,1.4rem); font-weight:600; color:var(--text-heading); margin-bottom:8px }
.why-desc  { font-size:0.9rem; color:var(--text-light); line-height:1.72; margin:0; padding-right:40px }


/* ============================================================
   12. APARTMENTS
   ============================================================ */
.apt-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; margin-top:56px }
.apt-card { border-radius:0; overflow:hidden; box-shadow:var(--sh-md); background:var(--white); border:1px solid var(--gray-1); transition:var(--ease) }
.apt-card:hover { transform:translateY(-6px); box-shadow:var(--sh-xl) }

/* Image area — grid overlap for room switcher */
.apt-image { position:relative; height:260px; overflow:hidden; display:grid }
.apt-room-img {
  grid-row:1; grid-column:1;
  width:100%; height:100%; object-fit:cover;
  opacity:0; transition:opacity .55s ease, transform .6s ease;
  display:block;
}
.apt-room-img.active { opacity:1; z-index:1 }
.apt-card:hover .apt-room-img.active { transform:scale(1.05) }

/* Portrait thumbnail — bottom right */
.apt-thumb {
  position:absolute; bottom:14px; right:14px; z-index:4;
  width:64px; height:80px;
  border-radius:0;
  object-fit:cover;
  border:2px solid rgba(255,255,255,0.8);
  box-shadow:0 4px 14px rgba(0,0,0,0.35);
  transition:transform .25s ease, box-shadow .25s ease;
}
.apt-card:hover .apt-thumb { transform:scale(1.06); box-shadow:0 6px 20px rgba(0,0,0,0.45) }

/* Location badge */
.apt-badge {
  position:absolute; top:14px; left:14px; z-index:4;
  display:flex; align-items:center; gap:5px;
  background:rgba(17,24,39,0.72); color:var(--white);
  font-size:0.65rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
  padding:5px 12px; border-radius:0;
  backdrop-filter:blur(8px); border:1px solid rgba(255,255,255,0.15);
}
.apt-badge svg { width:10px; height:10px; flex-shrink:0 }

/* Room tabs ribbon */
.apt-room-tabs {
  position:absolute; bottom:0; left:0; right:0; z-index:4;
  display:flex; gap:6px;
  background: var(--text-heading);
  backdrop-filter:blur(6px);
  padding:10px 12px;
  overflow-x:auto;
  scrollbar-width:none;
  -ms-overflow-style:none;
}
.apt-room-tabs::-webkit-scrollbar { display:none }
.apt-room-tab {
  flex-shrink:0; padding:6px 12px;
  font-size:0.65rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
  color:rgba(255,255,255,0.6);
  background:transparent;
  border:1px solid rgba(255,255,255,0.2);
  border-radius:0;
  cursor:pointer; font-family:var(--font-body);
  transition:all .2s ease;
  white-space:nowrap;
}
.apt-room-tab.active { background:rgba(255,255,255,0.22); color:#fff; border-color:rgba(255,255,255,0.55) }
.apt-room-tab:hover  { color:#fff; border-color:rgba(255,255,255,0.35) }

/* Card body */
.apt-body  { padding:24px 26px 26px }
.apt-name  { font-family:var(--font-head); font-size:clamp(1.1rem,1.6vw,1.4rem); font-weight:600; color:var(--text-heading); margin-bottom:3px }
.apt-type  { font-size:0.95rem; font-weight:700; color:var(--text-light); letter-spacing:.08em; text-transform:uppercase; margin-bottom:10px }
.apt-desc  { font-size:0.9rem; color:var(--text-light); margin-bottom:18px; line-height:1.7 }

/* Bullet features */
.apt-features { display:grid; grid-template-columns:1fr 1fr; gap:6px 12px; margin-bottom:20px }
.apt-feature { display:flex; align-items:center; gap:9px; font-size:0.9rem; font-weight:500; color:var(--text-body) }
.apt-feature-dot { width:3px; height:14px; border-radius:0; background:var(--red); flex-shrink:0 }

.apt-ctas { display:flex; align-items:center; gap:10px; flex-wrap:wrap }
.apt-cta {
  display:inline-flex; align-items:center; gap:8px;
  padding:10px 22px; background:var(--red); color:var(--white);
  font-weight:500; font-size:0.75rem; border-radius:0; transition:var(--ease);
  white-space:nowrap;
}
.apt-cta:hover { background:var(--red-dark); color:var(--white); transform:translateY(-1px) }
.apt-cta svg { width:15px; height:15px; transition:transform .25s ease }
.apt-cta:hover svg { transform:translateX(3px) }
.apt-cta-outline {
  display:inline-flex; align-items:center; gap:8px;
  padding:10px 22px; background:var(--blue); color:var(--white);
  font-weight:500; font-size:0.75rem; border-radius:0;
  border:1.5px solid var(--blue); transition:var(--ease); white-space:nowrap;
}
.apt-cta-outline:hover { background:#2471a3; border-color:#2471a3; color:var(--white); transform:translateY(-1px) }
.apt-cta-outline svg { width:15px; height:15px; transition:transform .25s ease }
.apt-cta-outline:hover svg { transform:translateX(3px) }


/* ============================================================
   13. AMENITIES
   ============================================================ */
.amenities-split {
  display:grid; grid-template-columns:1fr 1fr;
  gap:32px; margin-top:56px; align-items:start;
}
.amenities-list {
  display:grid; grid-template-columns:1fr 1fr; gap:8px;
}
.amenity-item {
  display:flex; align-items:center; gap:12px;
  padding:13px 15px;
  background:var(--white); border-radius:0;
  border:1px solid var(--gray-1);
  cursor:pointer; transition:all .22s ease;
}
.amenity-item:hover  { background:var(--off-white); border-color:var(--gray-2) }
.amenity-item.active { background:var(--dark); border-color:var(--dark) }
.amenity-icon {
  width:36px; height:36px; border-radius:0;
  background:rgba(192,57,43,0.08); color:var(--red);
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0; transition:all .22s ease;
}
.amenity-icon svg { width:18px; height:18px }
.amenity-item:hover .amenity-icon  { background:var(--red); color:var(--white) }
.amenity-item.active .amenity-icon { background:var(--red); color:var(--white) }
.amenity-name {
  font-size:0.9rem; font-weight:600; color:var(--text-heading);
  line-height:1.3; transition:color .22s ease;
}
.amenity-item:hover .amenity-name  { color:var(--text-heading) }
.amenity-item.active .amenity-name { color:var(--white) }

/* Slider */
.amenities-slider {
  position:sticky; top:calc(var(--header-h) + 24px);
  border-radius:0; overflow:hidden;
  height:530px; box-shadow:var(--sh-lg);
}
.amenities-slides { position:relative; width:100%; height:100%; overflow:hidden }
.amenity-slide {
  position:absolute; inset:0;
  opacity:0; pointer-events:none; z-index:1;
}
.amenity-slide.active { opacity:1; z-index:2; pointer-events:all }
.amenity-slide img { width:100%; height:100%; object-fit:cover; display:block }
.amenity-slide-overlay {
  position:absolute; inset:0;
  background:linear-gradient(to top, rgba(17,24,39,.72) 0%, transparent 55%);
  z-index:1; pointer-events:none;
}
.amenity-slide-label {
  position:absolute; bottom:20px; right:20px; z-index:3;
  background:rgba(17,24,39,0.72); color:#fff;
  padding:7px 16px; border-radius:0;
  font-size:0.65rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  backdrop-filter:blur(8px); border:1px solid rgba(255,255,255,0.15);
  pointer-events:none;
}
.amenity-prev, .amenity-next {
  position:absolute; bottom:20px; z-index:5;
  width:40px; height:40px; border-radius:0;
  background:rgba(255,255,255,0.12); border:1.5px solid rgba(255,255,255,0.3);
  color:#fff; display:flex; align-items:center; justify-content:center;
  cursor:pointer; backdrop-filter:blur(8px); transition:all .22s ease;
}
.amenity-prev { left:20px }
.amenity-next { left:68px }
.amenity-prev:hover, .amenity-next:hover { background:var(--red); border-color:var(--red) }
.amenity-prev svg, .amenity-next svg { width:18px; height:18px }


/* ============================================================
   14. LOCATION
   ============================================================ */
.location-grid { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:start }
.location-map  { position:relative; border-radius:0; overflow:hidden; box-shadow:var(--sh-lg); background:var(--light-gray) }
.location-map img { width:100%; height:400px; object-fit:cover; display:block }
.location-map-overlay { position:absolute; inset:0; background:linear-gradient(to bottom, transparent 50%, rgba(17,24,39,.5) 100%) }
.location-map-pin {
  position:absolute; bottom:20px; left:50%; transform:translateX(-50%);
  background:var(--red); color:var(--white);
  padding:10px 22px; border-radius:0; font-size:0.5rem; font-weight:700;
  letter-spacing:.05em; box-shadow:var(--sh-md); white-space:nowrap;
  display:flex; align-items:center; gap:8px;
}
.location-map-pin svg { width:14px; height:14px }
.location-nearby { margin-top:32px; display:flex; flex-direction:column; gap:12px }
.nearby-item {
  display:flex; align-items:center; gap:14px; padding:14px 18px;
  background:var(--white); border-radius:0; border:1px solid var(--gray-1); transition:var(--ease);
}
.nearby-item:hover { border-color:var(--blue); box-shadow:var(--sh-sm); transform:translateX(4px) }
.nearby-icon { width:36px; height:36px; border-radius:0; background:var(--blue-faint); display:flex; align-items:center; justify-content:center; flex-shrink:0; color:var(--blue); transition:var(--ease) }
.nearby-item:hover .nearby-icon { background:var(--blue); color:var(--white) }
.nearby-icon svg { width:17px; height:17px }
.nearby-text { font-size:0.9rem; font-weight:600; color:var(--text-body) }


/* ============================================================
   15. FLOOR PLANS CTA
   ============================================================ */
.floor-plans-banner {
  background:linear-gradient(135deg, var(--dark) 0%, var(--dark-2) 100%);
  padding:80px 0; position:relative; overflow:hidden;
}
.floor-plans-banner::before { content:''; position:absolute; top:-60%; right:-8%; width:500px; height:500px; border-radius:0; background:rgba(192,57,43,0.07); pointer-events:none }
.floor-plans-banner::after  { content:''; position:absolute; bottom:-40%; left:5%; width:320px; height:320px; border-radius:0; background:rgba(41,128,185,0.05); pointer-events:none }
.floor-plans-inner { position:relative; z-index:1; text-align:center }
.floor-plans-inner .section-label { color:var(--gold); justify-content:center }
.floor-plans-inner .section-label::before { background:var(--gold) }
.floor-plans-inner .section-heading { color:var(--white) }
.floor-plans-inner .section-subtext { color:rgba(255,255,255,0.58); margin:0 auto 36px }
.btn-white {
  display:inline-flex; align-items:center; gap:10px;
  padding:15px 30px; background:var(--white); color:var(--red);
  font-weight:700; font-size:0.5rem; border-radius:0; letter-spacing:.02em;
  box-shadow:0 4px 20px rgba(0,0,0,0.18); transition:var(--ease);
}
.btn-white:hover { transform:translateY(-2px); box-shadow:0 8px 32px rgba(0,0,0,0.28); color:var(--red-dark) }
.btn-white svg { width:16px; height:16px }


/* ============================================================
   16. GALLERY
   ============================================================ */
.gallery-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:48px }
.gallery-item { position:relative; border-radius:0; overflow:hidden; aspect-ratio:4/3; cursor:zoom-in; box-shadow:var(--sh-sm) }
.gallery-item:nth-child(1) { grid-row:span 2; aspect-ratio:auto }
.gallery-item:nth-child(5) { grid-column:span 2; aspect-ratio:16/9 }
.gallery-item img { width:100%; height:100%; object-fit:cover; transition:transform .6s ease }
.gallery-item:hover img { transform:scale(1.07) }
.gallery-item-overlay {
  position:absolute; inset:0;
  background:linear-gradient(to top, rgba(17,24,39,.75) 0%, transparent 55%);
  opacity:0; transition:opacity .35s ease;
  display:flex; align-items:flex-end; padding:16px 18px;
}
.gallery-item:hover .gallery-item-overlay { opacity:1 }
.gallery-item-label { font-size:0.65rem; font-weight:700; color:var(--white); text-transform:uppercase; letter-spacing:.1em }
.gallery-cta-wrap  { margin-top:40px; text-align:center }


/* ============================================================
   17. CONSTRUCTION QUALITY
   ============================================================ */
.promise-grid { columns:2; column-gap:16px; margin-top:56px }
.promise-item { break-inside:avoid; background:var(--white); border:1px solid var(--gray-1); border-radius:0; overflow:hidden; transition:border-color .22s ease, box-shadow .22s ease; margin-bottom:16px }
.promise-item:hover { border-color:var(--gray-2); box-shadow:var(--sh-sm) }
.promise-item.open { box-shadow:var(--sh-sm) }
.promise-q {
  width:100%; display:flex; align-items:center; gap:16px; padding:20px 22px;
  background:transparent; border:none; cursor:pointer; text-align:left; font-family:inherit;
}
.promise-q:hover { background:var(--off-white) }
.promise-item.open .promise-q { background:var(--off-white) }
.promise-num { width:36px; height:36px; border-radius:0; background:var(--red); color:var(--white); font-size:.72rem; font-weight:800; display:flex; align-items:center; justify-content:center; flex-shrink:0; font-family:var(--font-head); letter-spacing:.04em }
.promise-q span { flex:1; font-family:var(--font-head); font-size:clamp(1.1rem,1.6vw,1.4rem); font-weight:600; color:var(--text-heading); line-height:1.35 }
.promise-icon { width:18px; height:18px; flex-shrink:0; color:var(--text-light); transition:transform .3s ease }
.promise-item.open .promise-icon { transform:rotate(180deg); color:var(--red) }
.promise-body { height:0; overflow:hidden; transition:height .32s ease }
.promise-body p { margin:0; padding:12px 22px 20px 74px; font-size:0.9rem; color:var(--text-light); line-height:1.75 }


/* ============================================================
   18. TESTIMONIALS
   ============================================================ */
/* Outer layout: cards top, video bottom */
.testimonials-layout { display:flex; flex-direction:column; gap:32px; margin-top:56px }

/* 3-col card grid */
.testimonials-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px }

/* Video panel — full width below */
.testimonials-video { display:flex; flex-direction:column; gap:16px }
.testimonials-video-label { display:flex; align-items:center; gap:8px; font-size:0.65rem; font-weight:700; color:var(--text-heading); letter-spacing:.06em; text-transform:uppercase }
.testimonials-video-embed { position:relative; width:100%; padding-bottom:42%; border-radius:0; overflow:hidden; box-shadow:var(--sh-lg) }
.testimonials-video-embed iframe { position:absolute; inset:0; width:100%; height:100%; border:none }
.testimonials-video-caption { font-size:0.9rem; color:var(--text-light); line-height:1.6; text-align:left }
.testimonial-card {
  padding:32px 28px; background:var(--white); border-radius:0; box-shadow:var(--sh-sm);
  border:1px solid var(--gray-1); position:relative; transition:var(--ease);
}
.testimonial-card:hover { transform:translateY(-5px); box-shadow:var(--sh-lg) }
.testimonial-quote-mark {
  position:absolute; top:18px; right:20px;
  font-size:5rem; font-family:var(--font-head); color:var(--red); opacity:.07;
  line-height:1; user-select:none; pointer-events:none;
}
.testimonial-stars { display:flex; gap:3px; justify-content:center; margin:16px 0 20px }
.star-filled { width:16px; height:16px; color:var(--gold) }
.star-empty  { width:16px; height:16px; color:var(--gray-1) }
.testimonial-text   { font-size:0.9rem; color:var(--text-body); line-height:1.78; font-style:italic; margin-bottom:24px }
.testimonial-author { display:flex; align-items:center; gap:12px }
.testimonial-avatar {
  width:46px; height:46px; border-radius:0;
  background:var(--text-heading);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-head); font-size:1.1rem; font-weight:700; color:var(--white); overflow:hidden; flex-shrink:0;
}
.testimonial-avatar img { width:100%; height:100%; object-fit:cover }
.testimonial-name    { font-weight:700; font-size:clamp(1.1rem,1.6vw,1.4rem); color:var(--text-heading); text-align:left }
.testimonial-caption { font-size:0.95rem; color:var(--text-light); margin-top:2px; text-align:left }


/* ============================================================
   19. OFFER BANNER
   ============================================================ */
.offer-banner { background:linear-gradient(135deg, var(--red) 0%, var(--red-dark) 100%); padding:80px 0; position:relative; overflow:hidden }
.offer-banner-decor { position:absolute; pointer-events:none; color:#fff; opacity:.05 }
.offer-banner-decor--right { right:-40px; top:50%; transform:translateY(-50%); width:320px; height:320px }
.offer-banner-decor--left  { left:-20px; top:50%; transform:translateY(-50%); width:180px; height:180px; opacity:.04 }
.offer-inner { position:relative; z-index:1; text-align:center }
.offer-inner .section-label { color:rgba(255,255,255,0.65); justify-content:center }
.offer-inner .section-label::before { background:rgba(255,255,255,0.5) }
.offer-heading { font-family:var(--font-head); font-size:clamp(1.7rem,3vw,2.8rem); font-weight:600; color:var(--white); margin-bottom:14px; line-height:1.15 }
.offer-text    { color:rgba(255,255,255,0.8); margin-bottom:32px; font-size:0.9rem; max-width:560px; margin-left:auto; margin-right:auto }
.offer-actions { display:flex; align-items:center; justify-content:center; gap:16px; flex-wrap:wrap }
.btn-offer-white {
  display:inline-flex; align-items:center; gap:8px; padding:15px 28px;
  background:var(--white); color:var(--red); font-weight:700; font-size:0.5rem; border-radius:0;
  box-shadow:0 4px 20px rgba(0,0,0,0.15); transition:var(--ease);
}
.btn-offer-white:hover { transform:translateY(-2px); box-shadow:0 8px 28px rgba(0,0,0,0.2); color:var(--red-dark) }
.btn-offer-outline {
  display:inline-flex; align-items:center; gap:8px; padding:14px 26px;
  border:2px solid rgba(255,255,255,0.45); color:var(--white); font-weight:700; font-size:0.5rem; border-radius:0;
  transition:var(--ease); backdrop-filter:blur(8px);
}
.btn-offer-outline:hover { background:rgba(255,255,255,0.12); border-color:rgba(255,255,255,0.9); color:var(--white); transform:translateY(-2px) }


/* ============================================================
   20. FAQ
   ============================================================ */
#faq .section-label { color:rgba(255,255,255,0.55) }
#faq .section-label::before { background:rgba(255,255,255,0.4) }
#faq .section-heading { color:var(--white) }
#faq .section-subtext { color:rgba(255,255,255,0.5) }
.faq-list { margin:52px auto 0; display:grid; grid-template-columns:1fr 1fr; gap:12px; align-items:start; text-align:left }
.faq-item { border:1px solid rgba(255,255,255,0.08); border-radius:0; overflow:hidden; background:rgba(255,255,255,0.04); box-shadow:none; transition:border-color .25s ease }
.faq-item.open { border-color:rgba(255,255,255,0.15) }
.faq-question {
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  width:100%; padding:22px 24px;
  background:none; border:none; cursor:pointer;
  font-size:0.9rem; font-weight:700; color:rgba(255,255,255,0.88); text-align:left; font-family:var(--font-body); transition:color .25s ease;
}
.faq-question:hover     { color:var(--white) }
.faq-item.open .faq-question { color:var(--white) }
.faq-icon { width:30px; height:30px; border-radius:0; background:rgba(255,255,255,0.08); display:flex; align-items:center; justify-content:center; flex-shrink:0; transition:transform .32s ease, background .25s ease, color .25s ease; color:rgba(255,255,255,0.5) }
.faq-icon svg { width:14px; height:14px }
.faq-item.open .faq-icon { transform:rotate(180deg); background:var(--red); color:var(--white) }
.faq-answer { height:0; overflow:hidden; transition:height .38s var(--ease-out) }
.faq-answer-inner { padding:0 24px 22px; font-size:0.9rem; color:rgba(255,255,255,0.5); line-height:1.78; border-top:1px solid rgba(255,255,255,0.06); padding-top:16px }


/* ============================================================
   21. LEAD FORM
   ============================================================ */
.lead-grid { display:grid; grid-template-columns:1fr 1.25fr; gap:64px; align-items:start }
.lead-info-points { margin-top:32px; display:flex; flex-direction:column; gap:18px }
.lead-info-point  { display:flex; align-items:flex-start; gap:14px }
.lip-icon { width:38px; height:38px; border-radius:0; background:rgba(192,57,43,0.08); display:flex; align-items:center; justify-content:center; flex-shrink:0; margin-top:2px; color:var(--red) }
.lip-icon svg { width:18px; height:18px }
.lip-text strong { font-size:0.9rem; font-weight:700; color:var(--text-heading); display:block; margin-bottom:3px }
.lip-text span   { font-size:0.9rem; color:var(--text-light) }
.lead-form { background:var(--white); border-radius:0; padding:40px; box-shadow:var(--sh-lg); border:1px solid var(--gray-1) }
.lead-form-title { font-family:var(--font-head); font-size:clamp(1.7rem,3vw,2.8rem); font-weight:600; color:var(--text-heading); margin-bottom:6px }
.lead-form-note  { font-size:0.9rem; color:var(--text-light); margin-bottom:28px }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px }
.form-group      { display:flex; flex-direction:column; gap:6px }
.form-group.full { grid-column:1/-1 }
.form-label      { font-size:0.9rem; font-weight:700; color:var(--text-heading); letter-spacing:.02em }
.form-input, .form-select, .form-textarea {
  width:100%; padding:13px 16px;
  border:1.5px solid var(--gray-1); border-radius:0;
  font-family:var(--font-body); font-size:0.9rem; color:var(--text-heading); background:var(--white);
  transition:var(--ease); outline:none; -webkit-appearance:none;
}
.form-input::placeholder, .form-textarea::placeholder { color:var(--gray-3) }
.form-input:focus, .form-select:focus, .form-textarea:focus { border-color:var(--gray-2); box-shadow:none; outline:none }
.form-textarea { resize:vertical; min-height:110px }
.form-select {
  appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='2' stroke='%236B7280'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='m19.5 8.25-7.5 7.5-7.5-7.5'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 12px center; background-size:16px; padding-right:40px;
}
.form-submit {
  width:100%; padding:16px; background:var(--red); color:var(--white);
  font-weight:700; font-size:0.5rem; border-radius:0; border:none; cursor:pointer;
  letter-spacing:.02em; box-shadow:0 4px 16px rgba(192,57,43,0.3); transition:var(--ease);
  font-family:var(--font-body); margin-top:8px;
}
.form-submit:hover { background:var(--red-dark); transform:translateY(-2px); box-shadow:0 8px 24px rgba(192,57,43,0.4) }
.form-disclaimer { margin-top:12px; font-size:0.9rem; color:var(--text-light); text-align:center; line-height:1.5 }
.field-error { font-size:0.9rem; color:#EF4444; margin-top:4px }
.alert { padding:14px 18px; border-radius:0; margin-bottom:20px; font-size:0.9rem }
.alert-success { background:#F0FDF4; border:1px solid #BBF7D0; color:#166534 }
.alert-error   { background:#FEF2F2; border:1px solid #FECACA; color:#B91C1C }


/* ============================================================
   22. FOOTER  — luxury real estate
   ============================================================ */
.gv-footer {
  background: #0e0e0e;
  color: rgba(255,255,255,0.55);
  font-family: var(--font-body);
}

/* Top — logo + tagline */
.gv-footer-top {
  border-bottom: 1px solid rgba(255,255,255,0.08);
  padding: 56px 0 48px;
}
.gv-footer-top-inner {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 clamp(15px, 4vw, 80px);
  display: flex;
  align-items: center;
  gap: 40px;
}
.gv-footer-logo img {
  height: 52px;
  width: auto;
  filter: brightness(0) invert(1);
  opacity: .9;
}
.gv-footer-tagline {
  font-family: var(--font-head);
  font-size: 1.1rem;
  font-style: italic;
  font-weight: 400;
  color: rgba(255,255,255,0.45);
  letter-spacing: .02em;
  margin: 0;
}

/* Main — 4 col grid */
.gv-footer-main {
  padding: 64px 0 56px;
  border-bottom: 1px solid rgba(255,255,255,0.08);
}
.gv-footer-main-inner {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 clamp(15px, 4vw, 80px);
  display: grid;
  grid-template-columns: 1.6fr 1fr 1fr 1.2fr;
  gap: 48px 56px;
}

/* Column */
.gv-footer-col-title {
  font-family: var(--font-body);
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.28);
  margin: 0 0 24px;
}

/* About text */
.gv-footer-brand-name {
  display: block; margin-bottom: 16px;
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 1.8rem; font-weight: 500; letter-spacing: .02em;
  color: #fff; text-decoration: none;
}
.gv-footer-about {
  font-size: 0.9rem;
  line-height: 1.85;
  color: rgba(255,255,255,0.45);
  margin: 0 0 28px;
  max-width: 300px;
}

/* Social icons */
.gv-footer-social {
  display: flex;
  gap: 12px;
  margin-top: 20px;
}
.gv-footer-social a {
  width: 34px;
  height: 34px;
  border: none;
  background: var(--text-heading);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  transition: var(--ease);
}
.gv-footer-social a:hover {
  background: var(--text-heading);
  color: #fff;
}

/* Nav links */
.gv-footer-nav {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.gv-footer-nav a {
  font-size: 0.9rem;
  color: rgba(255,255,255,0.5);
  letter-spacing: .02em;
  transition: var(--ease);
  position: relative;
  padding-left: 0;
}
.gv-footer-nav a::before {
  content: '';
  display: inline-block;
  width: 0;
  height: 1px;
  background: rgba(255,255,255,0.6);
  vertical-align: middle;
  margin-right: 0;
  transition: width .25s ease, margin-right .25s ease;
}
.gv-footer-nav a:hover { color: rgba(255,255,255,0.9); }
.gv-footer-nav a:hover::before { width: 14px; margin-right: 8px; }

/* Contact block */
.gv-footer-contact {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.gv-footer-contact p {
  font-size: 0.9rem;
  line-height: 1.75;
  color: rgba(255,255,255,0.45);
  margin: 0;
}
.gv-footer-contact a {
  font-size: 0.9rem;
  color: rgba(255,255,255,0.5);
  transition: var(--ease);
  display: block;
}
.gv-footer-contact a:hover { color: rgba(255,255,255,0.9); }
/* Contact strip */
.gv-footer-contacts-strip {
  border-top: 1px solid rgba(255,255,255,0.08);
  padding: 28px 0;
}
.gv-footer-contacts-inner {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 clamp(15px,5vw,64px);
  display: flex;
  flex-wrap: wrap;
  gap: 32px 48px;
  align-items: flex-start;
}
.gv-footer-contacts-group {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.gv-footer-contacts-head {
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.28);
  margin-bottom: 2px;
}
.gv-footer-contacts-group a {
  font-size: .85rem;
  color: rgba(255,255,255,0.5);
  transition: color .2s;
  white-space: nowrap;
}
.gv-footer-contacts-group a:hover { color: rgba(255,255,255,0.9); }
.gv-footer-contacts-divider {
  width: 1px;
  align-self: stretch;
  background: rgba(255,255,255,0.1);
}
@media (max-width: 640px) {
  .gv-footer-contacts-inner { gap: 20px 32px; }
  .gv-footer-contacts-divider { display: none; }
}

/* Bottom bar */
.gv-footer-bottom {
  padding: 22px 0;
}
.gv-footer-bottom-inner {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 clamp(15px, 4vw, 80px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}
.gv-footer-copy {
  font-size: 0.9rem;
  color: rgba(255,255,255,0.25);
  margin: 0;
  letter-spacing: .03em;
}
.gv-footer-legal {
  display: flex;
  gap: 24px;
}
.gv-footer-legal a {
  font-size: 0.9rem;
  color: rgba(255,255,255,0.25);
  letter-spacing: .05em;
  text-transform: uppercase;
  transition: var(--ease);
}
.gv-footer-legal a:hover { color: rgba(255,255,255,0.6); }


/* ============================================================
   23. FLOATING BUTTONS
   ============================================================ */
.call-float-btn {
  position:fixed; bottom:150px; right:24px; z-index:990;
  width:54px; height:54px; border-radius:0; background:var(--blue); color:var(--white);
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 4px 20px rgba(41,128,185,0.45);
  opacity:0; transform:translateY(16px); pointer-events:none;
  transition:opacity .35s ease, transform .35s ease, box-shadow .25s ease;
}
.call-float-btn svg { width:26px; height:26px }
.call-float-btn.visible { opacity:1; transform:translateY(0); pointer-events:all }
.call-float-btn:hover { transform:scale(1.1); box-shadow:0 8px 28px rgba(41,128,185,0.55) }

.whatsapp-btn {
  position:fixed; bottom:84px; right:24px; z-index:990;
  width:54px; height:54px; border-radius:0; background:#25D366; color:var(--white);
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 4px 20px rgba(37,211,102,0.45);
  opacity:0; transform:translateY(16px); pointer-events:none;
  transition:opacity .35s ease, transform .35s ease, box-shadow .25s ease;
}
.whatsapp-btn.visible { opacity:1; transform:translateY(0); pointer-events:all }
.whatsapp-btn:hover   { transform:scale(1.1); box-shadow:0 8px 28px rgba(37,211,102,0.55) }
.whatsapp-btn svg { width:28px; height:28px }

.back-to-top {
  position:fixed; bottom:24px; right:24px; z-index:990;
  width:46px; height:46px; border-radius:0; background:var(--blue); color:var(--white);
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 4px 16px rgba(41,128,185,0.35); cursor:pointer; border:none;
  opacity:0; transform:translateY(16px); pointer-events:none;
  transition:opacity .3s ease, transform .3s ease, background .25s ease;
}
.back-to-top.visible { opacity:1; transform:translateY(0); pointer-events:all }
.back-to-top:hover   { background:#2471a3; transform:translateY(-2px) }
.back-to-top svg     { width:18px; height:18px }


/* ============================================================
   24. RESPONSIVE
   ============================================================ */
@media (min-width:960px) {
  .hero-nav { right:auto; left:clamp(20px,4vw,56px) }
}
@media (max-width:959px) {
  /* Background slider hidden — flat panel becomes the hero */
  .hero-slides { display:none }
  .hero-nav    { display:none }
  .hero        { height:auto; min-height:unset; padding-top:calc(var(--header-h) + var(--ribbon-h)) }

  /* Panel: natural flow, width 100%, relative so overlays work */
  .hero-flat-panel {
    display:block;
    position:relative;
    inset:auto;
    right:auto; left:auto; top:auto; bottom:auto;
    width:100%;
    transform:none;
    gap:0;
  }

  /* Slider keeps grid layout — image sets the height naturally */
  /* .hero-flat-slider already display:grid — no override needed */
  /* .hero-flat-card already grid-row:1/col:1 + position:relative */
  /* .hero-flat-img already width:100%; height:auto */

  /* Darker overlay for text readability */
  .hero-flat-gradient {
    background:linear-gradient(108deg, rgba(17,24,39,.82) 0%, rgba(17,24,39,.5) 55%, rgba(17,24,39,.18) 100%);
  }

  /* Hide card-specific details */
  .hero-flat-info,
  .hero-flat-tag { display:none }

  /* Show mobile-only elements */
  .hero-mobile-apt   { display:block; margin-bottom:16px; padding-bottom:16px; border-bottom:1px solid rgba(255,255,255,0.12) }
  .hero-mobile-learn { display:inline-flex }

  /* Stack CTA buttons vertically */
  .hero-mobile-body .hero-actions { flex-direction:column; align-items:flex-start; gap:10px }

  /* Hero content overlay — sits over the image */
  .hero-mobile-body {
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:flex-start;
    position:absolute;
    top:0; left:0; right:0; bottom:0;
    z-index:10;
    padding:24px 15px 60px;
  }
  /* Exit — quick fade up */
  .hero-mobile-body.exiting .hero-tagline,
  .hero-mobile-body.exiting .hero-title,
  .hero-mobile-body.exiting .hero-desc,
  .hero-mobile-body.exiting .hero-actions {
    opacity:0; transform:translateY(-10px);
    transition:opacity .2s ease, transform .2s ease;
  }
  /* Enter — heroIn re-triggered each time .playing is added */
  .hero-mobile-body.playing .hero-tagline  { animation:heroIn .6s .08s var(--ease-out) both }
  .hero-mobile-body.playing .hero-title    { animation:heroIn .6s .20s var(--ease-out) both }
  .hero-mobile-body.playing .hero-desc     { animation:heroIn .6s .32s var(--ease-out) both }

  .hero-mobile-body.playing .hero-actions  { animation:heroIn .6s .54s var(--ease-out) both }

  /* Dots at bottom-centre of the panel */
  .hero-flat-dots {
    position:absolute;
    bottom:20px;
    left:50%;
    transform:translateX(-50%);
    z-index:11;
  }
}
@media (max-width:1100px) {
  .amenities-split { grid-template-columns:1fr }
  .footer-grid     { grid-template-columns:1fr 1fr; gap:32px }
}
@media (max-width:900px) {
  .section { padding:72px 0 }
  .about-grid, .location-grid, .lead-grid { grid-template-columns:1fr; gap:40px }
  .promise-grid { columns:1 }
  .about-image-wrap { padding:0 }
  .about-btns--desktop { display:none }
  .about-btns--mobile { display:flex; margin-top:8px }
  .about-image-accent { display:none }
  .about-badge  { top:16px; right:16px }
  .about-image-label { bottom:15px; right:15px }
  .testimonials-grid { grid-template-columns:1fr 1fr; gap:20px }
  .apt-grid     { grid-template-columns:1fr 1fr }
  .gallery-grid { grid-template-columns:repeat(2,1fr) }
  .gallery-item:nth-child(1), .gallery-item:nth-child(5) { grid-row:auto; grid-column:auto; aspect-ratio:4/3 }
  .lead-form    { padding:28px }
}
@media (max-width:768px) {
  .header-inner    { padding:0 12px }
  .header-nav      { display:none }
  .header-hamburger{ display:flex }
  .header-mobile-actions { display:flex }
  .why-grid        { grid-template-columns:1fr }
  .faq-list        { grid-template-columns:1fr }
  .amenities-slider { height:320px; position:relative; top:auto }
  .hero-nav         { right:clamp(16px,4vw,24px); bottom:24px }
  .hero-bullets    { grid-template-columns:1fr }
  .trust-bar-inner { flex-wrap:wrap }
  .trust-item      { flex:none; width:50%; border-bottom:1px solid rgba(255,255,255,0.06) }
  .trust-item:nth-child(even) { border-right:none }
  .trust-item:nth-child(3), .trust-item:nth-child(4) { border-bottom:none }
  .footer-grid     { grid-template-columns:1fr; gap:36px }
  .footer-desc     { max-width:100% }
  .form-grid       { grid-template-columns:1fr }
  .form-group.full { grid-column:auto }
}
@media (max-width:480px) {
  .container, .hero .container { padding:0 15px }
  .section { padding:56px 0 }
  /* .hero-title — clamp() handles responsiveness */
  .apt-grid   { grid-template-columns:1fr }
  .amenities-grid { grid-template-columns:repeat(2,1fr) }
  .testimonials-grid { grid-template-columns:1fr }
  .testimonials-video-embed { padding-bottom:70% }
  .gallery-grid { grid-template-columns:1fr }
  .about-features { grid-template-columns:1fr }
  .footer-bottom { flex-direction:column; text-align:center }
  .apt-features  { grid-template-columns:1fr }
}

/* gv-footer responsive */
@media (max-width:1100px) {
  .gv-footer-main-inner { grid-template-columns:1fr 1fr; gap:40px 48px }
}
@media (max-width:768px) {
  .gv-footer-top-inner { flex-direction:column; align-items:flex-start; gap:20px }
  .gv-footer-tagline   { width:100% }
  .gv-footer-main-inner { grid-template-columns:1fr 1fr; gap:36px 32px }
  .gv-footer-about { max-width:100% }
}
@media (max-width:480px) {
  .gv-footer-main-inner { grid-template-columns:1fr }
  .gv-footer-bottom-inner { flex-direction:column; align-items:flex-start; gap:12px }
  .gv-footer-legal { flex-wrap:wrap; gap:16px }
}


/* ══════════════════════════════════════════════
   HERO — fullscreen fade slider
══════════════════════════════════════════════ */
/* Cinematic pan keyframes */
@keyframes gv-pan-1 {
  0%   { transform: scale(1.1) translate(1.5%, 0.5%); }
  100% { transform: scale(1.02) translate(-1.5%, -0.5%); }
}
@keyframes gv-pan-2 {
  0%   { transform: scale(1.1) translate(-1.5%, -0.5%); }
  100% { transform: scale(1.02) translate(1.5%, 0.5%); }
}
@keyframes gv-pan-3 {
  0%   { transform: scale(1.1) translate(0, 1.5%); }
  100% { transform: scale(1.02) translate(0, -1.5%); }
}

.gv-hero {
  position: relative;
  width: 100%;
  aspect-ratio: 1993 / 789;
  overflow: hidden;
  background: #0a0a0a;
  margin-top: var(--header-h);
}
@media (max-width: 640px) {
  .gv-hero {
    aspect-ratio: unset;
    height: calc(65vh - var(--header-h));
  }
}

/* Plain video hero */
.gv-video-hero {
  position: relative;
  width: 100%;
  overflow: hidden;
  background: #0a0a0a;
  margin-top: var(--header-h);
}
.gv-video-hero-video {
  display: block;
  width: 100%;
  height: auto;
}
.gv-video-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,.35) 0%, rgba(0,0,0,.1) 40%, rgba(0,0,0,.45) 100%);
  pointer-events: none;
}
/* Masks the loop restart with a brief fade-through-black, timed to the 10s video */
.gv-video-hero-fade {
  position: absolute;
  inset: 0;
  background: #0a0a0a;
  pointer-events: none;
  opacity: 1;
  animation: gv-video-loop-fade 10s linear infinite;
}
@keyframes gv-video-loop-fade {
  0%   { opacity: 1; }
  6%   { opacity: 0; }
  94%  { opacity: 0; }
  100% { opacity: 1; }
}

/* Slides */
.gv-hero-slides { position: absolute; inset: 0; }

.gv-hero-slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 1.8s cubic-bezier(.4,0,.2,1);
}
.gv-hero-slide.active { opacity: 1; }

.gv-hero-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  will-change: transform;
}
/* Pre-position each bg at its animation's start — no jump when animation fires */
.gv-hero-slide:nth-child(3n+1) .gv-hero-bg { transform: scale(1.1) translate(1.5%, 0.5%); }
.gv-hero-slide:nth-child(3n+2) .gv-hero-bg { transform: scale(1.1) translate(-1.5%, -0.5%); }
.gv-hero-slide:nth-child(3n+3) .gv-hero-bg { transform: scale(1.1) translate(0, 1.5%); }

.gv-hero-slide.active:nth-child(3n+1) .gv-hero-bg { animation: gv-pan-1 14s ease-in-out forwards; }
.gv-hero-slide.active:nth-child(3n+2) .gv-hero-bg { animation: gv-pan-2 14s ease-in-out forwards; }
.gv-hero-slide.active:nth-child(3n+3) .gv-hero-bg { animation: gv-pan-3 14s ease-in-out forwards; }

/* Rich dark gradient overlay */
.gv-hero-overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(to top,  rgba(0,0,0,.85) 0%, rgba(0,0,0,.5) 45%, rgba(0,0,0,.25) 70%),
    linear-gradient(to right, rgba(0,0,0,.65) 0%, rgba(0,0,0,.2) 60%, transparent 85%);
}

/* Content — left aligned, container width */
.gv-hero-content {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: flex-end;
  pointer-events: none;
  padding: 0;
}
.gv-hero-content-inner {
  width: 100%;
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 clamp(15px, 4vw, 80px) clamp(80px, 8vw, 120px);
  pointer-events: none;
}

@keyframes gv-hero-enter {
  0%   { opacity: 0; transform: translateY(24px); }
  100% { opacity: 1; transform: translateY(0); }
}

/* Location eyebrow */
.gv-hero-location {
  font-family: var(--font-body);
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: rgba(255,255,255,.55);
  margin: 0 0 14px;
  animation: gv-hero-enter 1.2s cubic-bezier(.4,0,.2,1) 0.3s both;
}

/* Short description */
.gv-hero-desc {
  font-family: var(--font-body);
  font-size: 1rem;
  font-weight: 300;
  color: rgba(255,255,255,0.65);
  line-height: 1.75;
  margin: 14px 0 0;
  max-width: 540px;
  animation: gv-hero-enter 1.2s cubic-bezier(.4,0,.2,1) 0.9s both;
}

/* Headline */
.gv-hero-headline {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(2.4rem, 4.4vw, 5rem);
  font-weight: 400;
  line-height: 1.15;
  letter-spacing: -0.01em;
  color: #ffffff;
  text-align: left;
  max-width: 680px;
  margin: 0;
  animation: gv-hero-enter 1.2s cubic-bezier(.4,0,.2,1) 0.6s both;
}

/* Enquire Now CTA */
.gv-hero-cta {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-top: 28px;
  padding: 10px 22px;
  border: 1px solid rgba(255,255,255,0.35);
  font-family: var(--font-body);
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #fff;
  background: transparent;
  pointer-events: all;
  animation: gv-hero-enter 1.2s cubic-bezier(.4,0,.2,1) 1.1s both;
  transition: background .25s ease, border-color .25s ease;
}
.gv-hero-cta:hover { background: rgba(255,255,255,0.12); border-color: #fff; }
.gv-hero-cta svg { width: 14px; height: 14px; transition: transform .2s ease; }
.gv-hero-cta:hover svg { transform: translateX(4px); }

@media (max-width: 640px) {
  /* .gv-hero-headline — clamp() handles responsiveness */
  .gv-hero-desc { max-width: 100%; }
  .gv-hero-cta { margin-top: 20px; padding: 10px 22px; }
}

/* Dot indicators */
.gv-hero-dots {
  position: absolute;
  bottom: 36px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 10px;
  z-index: 10;
}
.gv-hero-dot {
  width: 28px;
  height: 2px;
  background: rgba(255,255,255,0.35);
  border: none;
  border-radius: 0;
  cursor: pointer;
  transition: background 0.4s ease, width 0.4s ease;
  padding: 0;
}
.gv-hero-dot.active {
  background: #ffffff;
  width: 48px;
}

@media (max-width: 640px) {
  .gv-hero-content-inner {
    padding: 0 clamp(20px, 6vw, 36px) clamp(20px, 5vw, 32px);
  }
  .gv-hero-headline {
    font-size: clamp(1.8rem, 6vw, 2.4rem);
    white-space: normal;
    text-align: left;
    letter-spacing: 0.005em;
    max-width: 100%;
    line-height: 1.25;
  }
  .gv-hero-cta {
    margin-top: 12px;
    padding: 10px 22px;
    font-size: 0.75rem;
  }
}


/* ══════════════════════════════════════════════
   FEATURED PROJECTS
══════════════════════════════════════════════ */
.gv-projects {
  padding: 80px 0 48px;
  background: #fff;
}
.gv-projects-wrap {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 48px;
}

/* Header */
.gv-projects-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: 32px;
}
.gv-projects-eyebrow {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  background: none; color: rgba(0,0,0,.45); padding: 0;
  margin-bottom: 8px;
}
.gv-projects-heading {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(1.85rem, 3.4vw, 3.6rem);
  font-weight: 400;
  color: var(--text-heading);
  letter-spacing: -0.01em;
  line-height: 1.2;
}

/* Arrows */
.gv-projects-arrows {
  display: flex;
  gap: 8px;
  margin-top: 24px;
  justify-content: flex-start;
}
.gv-proj-arrow {
  width: 44px;
  height: 44px;
  border: 1px solid var(--gray-2);
  border-radius: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--text-heading);
  cursor: pointer;
  transition: all .2s ease;
  background: #fff;
}
.gv-proj-arrow svg { width: 18px; height: 18px; }
.gv-proj-arrow:hover { background: var(--text-heading); color: #fff; border-color: var(--text-heading); }
.gv-proj-arrow:disabled { opacity: 0.3; pointer-events: none; }

/* Filter tabs */
.gv-projects-tabs {
  display: flex;
  gap: 8px;
  margin-bottom: 32px;
  overflow-x: auto;
  scrollbar-width: none;
}
.gv-projects-tabs::-webkit-scrollbar { display: none; }
.gv-proj-tab {
  flex-shrink: 0;
  padding: 11px 32px;
  font-size: 0.9rem;
  font-weight: 500;
  color: var(--text-heading);
  border: 1px solid var(--gray-3);
  background: transparent;
  border-radius: 0;
  cursor: pointer;
  transition: all .2s ease;
}
.gv-proj-tab:hover { border-color: var(--text-heading); }
.gv-proj-tab.active { color: #fff; background: var(--text-heading); border-color: var(--text-heading); }
.gv-proj-tab-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  height: 20px;
  padding: 0 6px;
  margin-left: 6px;
  font-size: 0.65rem;
  font-weight: 600;
  border-radius: 0;
  border: 1px solid currentColor;
  background: transparent;
  color: inherit;
  vertical-align: middle;
}


/* Slider */
.gv-projects-slider {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 80px 64px;
}
.gv-proj-card:nth-child(4n+1) { grid-column: span 3; }
.gv-proj-card:nth-child(4n+2) { grid-column: span 2; }
.gv-proj-card:nth-child(4n+3) { grid-column: span 2; }
.gv-proj-card:nth-child(4n+4) { grid-column: span 3; }
.gv-proj-card {
  display: block;
}
.gv-projects-arrows { display: none; }

/* Full-width image */
.gv-proj-img {
  position: relative;
  overflow: hidden;
  aspect-ratio: 4 / 3;
}
.gv-proj-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 8s ease;
}
.gv-proj-card.active .gv-proj-img img { transform: scale(1.05); }

/* Dark gradient overlay */
.gv-proj-img-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    rgba(0,0,0,0.82) 0%,
    rgba(0,0,0,0.4) 45%,
    rgba(0,0,0,0.08) 100%
  );
}

/* Type badge top-left */
.gv-proj-type-badge {
  position: absolute;
  top: 32px;
  left: 40px;
  font-size: 0.65rem;
  font-weight: 300;
  letter-spacing: 0.04em;
  color: rgba(255,255,255,0.85);
}

/* Overlay — name + location only */
.gv-proj-overlay-content {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 32px 36px;
  gap: 6px;
}
.gv-proj-name {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(1.1rem, 1.6vw, 1.4rem);
  font-weight: 300;
  color: #fff;
  letter-spacing: -0.01em;
  line-height: 1.2;
  margin: 0;
}
.gv-proj-location {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 0.9rem;
  color: rgba(255,255,255,0.6);
  margin: 0;
}
.gv-proj-location svg { width: 12px; height: 12px; flex-shrink: 0; }

/* Below-card body */
.gv-proj-body {
  padding: 24px 0 32px;
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.gv-proj-desc {
  font-size: 0.9rem;
  color: var(--text-body);
  line-height: 1.78;
}
.gv-proj-highlights {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0;
}
.gv-proj-highlight {
  font-size: 0.65rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--text-light);
  padding-right: 16px;
  margin-right: 16px;
  border-right: 1px solid var(--gray-1);
  line-height: 1;
}
.gv-proj-highlight:last-child { border-right: none; padding-right: 0; margin-right: 0; }

/* CTAs */
.gv-proj-ctas {
  display: flex;
  gap: 12px;
  align-items: center;
}
.gv-proj-btn-primary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 22px;
  background: transparent;
  color: var(--text-heading);
  font-family: 'Manrope', sans-serif;
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border: 1px solid var(--text-heading);
  transition: background .2s ease, color .2s ease;
}
.gv-proj-btn-primary:hover { background: var(--text-heading); color: #fff; }
.gv-proj-btn-ghost {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 22px;
  background: transparent;
  color: var(--text-light);
  font-family: 'Manrope', sans-serif;
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border: 1px solid var(--gray-2);
  transition: color .2s ease, border-color .2s ease;
}
.gv-proj-btn-ghost:hover { color: var(--text-heading); border-color: var(--text-heading); }
.gv-proj-btn-primary svg,
.gv-proj-btn-ghost svg { width: 13px; height: 13px; flex-shrink: 0; transition: transform .2s ease; }
.gv-proj-btn-primary:hover svg,
.gv-proj-btn-ghost:hover svg { transform: translateX(3px); }


@media (max-width: 900px) {
  .gv-projects-wrap { padding: 0 15px; }
  .gv-projects { padding: 64px 0; }
  .gv-projects-slider { grid-template-columns: 1fr 1fr; gap: 48px 24px; }
  .gv-proj-card:nth-child(n) { grid-column: span 1; }
  .gv-proj-overlay-content { padding: 20px 24px; }
  .gv-proj-type-badge { top: 16px; left: 20px; /* font-size: clamp handles */ }
}
@media (max-width: 600px) {
  .gv-projects-slider { grid-template-columns: 1fr; gap: 56px; }
  .gv-proj-card:nth-child(n) { grid-column: span 1; }
  .gv-proj-img { aspect-ratio: unset; height: auto; }
  .gv-proj-img img { height: auto; object-fit: unset; object-position: unset; }
  .gv-proj-body { padding: 20px 0 28px; }
  .gv-proj-ctas { flex-direction: column; align-items: flex-start; gap: 10px; }
  .gv-proj-btn-primary, .gv-proj-btn-ghost { width: 100%; justify-content: center; }
}


/* ══════════════════════════════════════════════
   MILESTONES
══════════════════════════════════════════════ */
/* ============================================================
   MILESTONES v2 — centered headline + stats/collage grid
   ============================================================ */
/* ── Property Search Form ── */
.psf-wrap {
  position: relative;
  z-index: 10;
  max-width: var(--max-w);
  margin: -40px auto 0;
  padding: 0 clamp(15px, 4vw, 80px);
}
.psf {
  display: flex;
  align-items: stretch;
  background: #fff;
  border: 1px solid var(--gray-1);
  box-shadow: 0 8px 40px rgba(0,0,0,.10);
}
.psf-field {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 20px 28px;
  min-width: 0;
}
.psf-label {
  font-family: 'Manrope', sans-serif;
  font-size: 0.65rem;
  font-weight: 500;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: var(--gray-3);
  margin-bottom: 4px;
}
.psf-select {
  font-family: 'Manrope', sans-serif;
  font-size: 0.9rem;
  font-weight: 300;
  color: var(--text-heading);
  background: transparent;
  border: none;
  outline: none;
  width: 100%;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
}
.psf-sep {
  width: 1px;
  background: var(--gray-1);
  align-self: stretch;
}
.psf-btn {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0 40px;
  margin: -1px -1px -1px 0;
  background: var(--text-heading);
  color: #fff;
  font-family: 'Manrope', sans-serif;
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border: none;
  outline: none;
  cursor: pointer;
  white-space: nowrap;
  transition: background .2s;
  flex-shrink: 0;
}
.psf-btn svg { width: 16px; height: 16px; }
.psf-btn:hover { background: var(--red); }
@media (max-width: 768px) {
  .psf-wrap { margin-top: 32px; }
  .psf { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--gray-1); }
  .psf-sep { display: none; }
  .psf-field { background: #fff; padding: 14px 16px; }
  .psf-btn { grid-column: 1 / -1; margin: 0; padding: 14px 16px; justify-content: center; }
}

.gv-ms2 {
  padding: 64px 0 96px;
}
.gv-ms2-inner {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 clamp(15px, 4vw, 80px);
}

/* Centered headline */
.gv-ms2-head {
  text-align: center;
  margin-bottom: 72px;
}
.gv-ms2-eyebrow {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  background: none; color: rgba(0,0,0,.45); padding: 0;
  margin-bottom: 18px;
}
.gv-ms2-heading {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(1.85rem, 3.4vw, 3.6rem);
  font-weight: 400;
  line-height: 1.3;
  color: var(--text-heading);
  letter-spacing: -0.01em;
  max-width: 640px;
  margin: 0 auto;
}

/* Two-column body */
.gv-ms2-body {
  display: grid;
  grid-template-columns: 1fr 1.5fr;
  gap: 64px;
  align-items: start;
}

/* Left: stats — 2×2 grid */
.gv-ms2-stats {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
}
.gv-ms2-stat {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 36px 32px;
  border-bottom: 1px solid var(--gray-1);
  border-right: 1px solid var(--gray-1);
}
.gv-ms2-stat:nth-child(2n) {
  border-right: none;
}
.gv-ms2-stat:nth-last-child(-n+2):not(.gv-ms2-cta) {
  border-bottom: none;
}
.gv-ms2-cta {
  grid-column: 1;
  justify-self: start;
}
.gv-ms2-num {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(2.8rem, 4vw, 4.8rem);
  font-weight: 200;
  color: var(--text-heading);
  line-height: 1;
  letter-spacing: -0.03em;
}
.gv-ms2-num sup {
  font-size: 0.45em;
  font-weight: 300;
  vertical-align: super;
  letter-spacing: 0;
}
.gv-ms2-lbl {
  font-size: 0.65rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--gray-3);
}
.gv-ms2-cta {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-top: 36px;
  padding: 10px 22px;
  font-family: 'Manrope', sans-serif;
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-heading);
  background: transparent;
  border: 1px solid var(--text-heading);
  text-decoration: none;
  transition: background .2s, color .2s;
  align-self: flex-start;
  white-space: nowrap;
}
.gv-ms2-cta svg {
  width: 15px;
  height: 15px;
  transition: transform .2s;
  flex-shrink: 0;
}
.gv-ms2-cta:hover { background: var(--text-heading); color: #fff; }
.gv-ms2-cta:hover svg { transform: translateX(4px); }

/* Right: 2-image overlapping collage
   [        A (top-right)       ]
   [ B (bottom-left, overlaps A, in front) ]
*/
.gv-ms2-collage-2 {
  position: relative;
  height: 560px;
}
.gv-ms2-c2-a {
  position: absolute;
  top: 0;
  right: 0;
  width: 74%;
  height: 66%;
  overflow: hidden;
  z-index: 1;
}
.gv-ms2-c2-b {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 60%;
  height: 56%;
  overflow: hidden;
  z-index: 2;
  box-shadow: 0 24px 50px rgba(0,0,0,0.18);
}
.gv-ms2-collage-2 img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.7s ease;
}
.gv-ms2-collage-2 > div:hover img {
  transform: scale(1.04);
}

@media (max-width: 1000px) {
  .gv-ms2-body {
    grid-template-columns: 1fr;
    gap: 48px;
  }
  .gv-ms2-collage-2 { height: 460px; }
}
@media (max-width: 600px) {
  .gv-ms2 { padding: 64px 0; }
  .gv-ms2-head { margin-bottom: 48px; }

  .gv-ms2-collage-2 { height: 360px; }
  .gv-ms2-c2-a { width: 82%; height: 62%; }
  .gv-ms2-c2-b { width: 68%; height: 52%; }
}

/* ============================================================
   FEATURED PROJECT — GREEN VISTAS PRAKRITTI
   ============================================================ */
.gv-prak {
  padding: 96px 0;
  background: var(--off-white);
}
.gv-prak-inner {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 clamp(15px, 4vw, 80px);
}
.gv-prak-body {
  display: grid;
  grid-template-columns: 42% 58%;
  gap: 64px;
  align-items: stretch;
}

/* Left: content */
.gv-prak-eyebrow {
  display: inline-block;
  font-family: var(--font-body);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--gold);
  padding-bottom: 12px;
  margin-bottom: 18px;
  border-bottom: 1px solid var(--gold);
}
.gv-prak-heading {
  font-family: var(--font-head);
  font-size: clamp(2.1rem, 3.6vw, 3.4rem);
  font-weight: 400;
  color: var(--text-heading);
  letter-spacing: -0.01em;
  line-height: 1.1;
  margin-bottom: 14px;
}
.gv-prak-meta {
  font-family: var(--font-body);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--gray-4);
  margin-bottom: 24px;
}
.gv-prak-desc {
  font-family: var(--font-body);
  font-size: 1rem;
  font-weight: 300;
  line-height: 1.85;
  color: var(--text-body);
  max-width: 480px;
  margin-bottom: 32px;
}

.gv-prak-features {
  list-style: none;
  margin: 0 0 40px;
  padding: 0;
}
.gv-prak-features li {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 15px 6px;
  font-family: var(--font-body);
  font-size: 0.92rem;
  font-weight: 500;
  line-height: 1.4;
  color: var(--text-heading);
  letter-spacing: 0.01em;
  transition: padding-left .3s var(--ease-out), background .3s var(--ease-out);
}
.gv-prak-features li:hover {
  padding-left: 12px;
  background: linear-gradient(90deg, rgba(201,168,76,0.07), rgba(201,168,76,0));
}
.gv-prak-features-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  flex-shrink: 0;
  border-radius: 50%;
  border: 1px solid var(--gold);
  background: transparent;
  transition: background .3s var(--ease-out), transform .3s var(--ease-out);
}
.gv-prak-features-icon svg {
  width: 13px;
  height: 13px;
  color: var(--gold);
  transition: color .3s var(--ease-out);
}
.gv-prak-features li:hover .gv-prak-features-icon {
  background: var(--gold);
  transform: scale(1.08);
}
.gv-prak-features li:hover .gv-prak-features-icon svg {
  color: #fff;
}

.gv-prak-actions {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
}
.gv-prak-cta-primary {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 28px;
  background: var(--text-heading);
  color: #fff;
  font-family: var(--font-body);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none;
  transition: background .2s ease;
}
.gv-prak-cta-primary svg { width: 15px; height: 15px; transition: transform .2s ease; flex-shrink: 0; }
.gv-prak-cta-primary:hover { background: var(--gold); }
.gv-prak-cta-primary:hover svg { transform: translateX(4px); }
.gv-prak-cta-secondary {
  display: inline-flex;
  align-items: center;
  padding: 14px 28px;
  border: 1px solid var(--gray-2);
  color: var(--text-heading);
  font-family: var(--font-body);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none;
  transition: border-color .2s ease, background .2s ease;
}
.gv-prak-cta-secondary:hover { border-color: var(--text-heading); background: #fff; }

/* Right: single-image fade slider with slow zoom — matches left content height */
.gv-prak-gallery {
  position: relative;
  height: 100%;
  min-height: 420px;
  overflow: hidden;
  background: #0a0a0a;
}
.gv-prak-slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  overflow: hidden;
  transition: opacity 3s cubic-bezier(.4,0,.2,1);
}
.gv-prak-slide.active {
  opacity: 1;
  z-index: 1;
}
.gv-prak-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1);
}
.gv-prak-slide.active img {
  animation: gv-prak-zoom 9s ease-in-out forwards;
}
@keyframes gv-prak-zoom {
  0%   { transform: scale(1); }
  100% { transform: scale(1.06); }
}

/* Bottom-left caption badge, white-to-transparent gradient */
.gv-prak-badge {
  position: absolute;
  left: 0;
  bottom: 0;
  z-index: 2;
  width: 82%;
  max-width: 420px;
  padding: 30px clamp(30px, 6vw, 60px) 26px 28px;
  background: linear-gradient(90deg, rgba(255,255,255,0.97) 0%, rgba(255,255,255,0.88) 42%, rgba(255,255,255,0) 100%);
}
.gv-prak-badge-eyebrow {
  display: block;
  font-family: var(--font-body);
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 8px;
}
.gv-prak-badge-title {
  display: block;
  font-family: var(--font-head);
  font-size: 1.4rem;
  font-weight: 500;
  color: var(--text-heading);
  line-height: 1.2;
}

@media (max-width: 1000px) {
  .gv-prak-body { grid-template-columns: 1fr; gap: 48px; }
  .gv-prak-desc { max-width: 100%; }
  .gv-prak-gallery { height: 420px; }
}
@media (max-width: 600px) {
  .gv-prak { padding: 64px 0; }
  .gv-prak-facts { grid-template-columns: 1fr 1fr; gap: 20px 16px; }
  .gv-prak-gallery { height: 340px; }
  .gv-prak-actions { flex-direction: column; align-items: stretch; }
  .gv-prak-cta-primary, .gv-prak-cta-secondary { justify-content: center; }
}

/* ============================================================
   THE GREEN VISTA LIFE — Brand Emotional Section
   ============================================================ */
.gv-life {
  padding: 64px 0 96px;
  background: #fff;
}
.gv-life-inner {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 clamp(15px, 4vw, 80px);
}
/* Intro */
.gv-life-intro {
  text-align: center;
  max-width: 680px;
  margin: 0 auto 56px;
}
.gv-life-heading {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(1.85rem, 3.4vw, 3.6rem);
  font-weight: 400;
  color: var(--text-heading);
  letter-spacing: -0.02em;
  line-height: 1.15;
  margin-bottom: 28px;
}
.gv-life-subtext {
  font-family: 'Manrope', sans-serif;
  font-size: 1rem;
  font-weight: 300;
  color: var(--gray-4);
  line-height: 1.85;
}

/* Split layout */
.gv-life-split {
  display: grid;
  grid-template-columns: 44% 56%;
  gap: 64px;
  align-items: center;
}
.gv-life-split-img {
  overflow: hidden;
  aspect-ratio: 3 / 4;
  border-radius: 0;
}
.gv-life-split-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}
.gv-life-split-points {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.gv-life-point {
  display: flex;
  gap: 28px;
  align-items: flex-start;
  padding: 36px 0;
}
.gv-life-point-num {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 1.6rem;
  font-weight: 300;
  color: var(--gray-2);
  line-height: 1;
  flex-shrink: 0;
  padding-top: 4px;
  min-width: 32px;
}
.gv-life-point-title {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(1.1rem, 1.6vw, 1.4rem);
  font-weight: 500;
  color: var(--text-heading);
  line-height: 1.3;
  margin-bottom: 10px;
  letter-spacing: -0.01em;
}
.gv-life-point-body {
  font-family: 'Manrope', sans-serif;
  font-size: 0.9rem;
  font-weight: 300;
  color: var(--gray-4);
  line-height: 1.8;
}

@media (max-width: 768px) {
  .gv-life-split {
    grid-template-columns: 1fr;
    gap: 40px;
  }
  .gv-life-split-img { aspect-ratio: 4 / 3; }
  .gv-life { padding: 64px 0 72px; }
  .gv-life-intro { margin-bottom: 48px; }
}

/* ============================================================
   THE GREEN VISTA LIFE — V1 Hub Layout
   ============================================================ */

/* Section background */
.gv-life-hub-wrap {
  background: #f5f3ef;
  padding: 72px clamp(15px, 4vw, 80px);
}

.gv-life-hub {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 0;
  align-items: center;
  max-width: var(--max-w);
  margin: 0 auto;
}

/* Stacked image group */
.gv-life-hub-stack {
  position: relative;
  width: 280px;
  flex-shrink: 0;
  padding-bottom: 28px;
}

.gv-life-hub-img {
  aspect-ratio: 3 / 4;
  overflow: hidden;
  width: 100%;
}
.gv-life-hub-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

/* Back images peeking behind */
.gv-life-hub-img--back2,
.gv-life-hub-img--back1 {
  position: absolute;
  top: 0;
  width: 100%;
}
.gv-life-hub-img--back2 {
  transform: translate(28px, 28px);
  z-index: 1;
  opacity: 0.6;
  filter: brightness(0.85);
}
.gv-life-hub-img--back1 {
  transform: translate(14px, 14px);
  z-index: 2;
  opacity: 0.8;
  filter: brightness(0.92);
}
.gv-life-hub-img--front {
  position: relative;
  z-index: 3;
  box-shadow: 0 20px 56px rgba(0,0,0,0.22);
}

/* Line below stack — margin accounts for back image overflow (28px) */
.gv-life-hub-underline {
  display: block;
  width: 100%;
  height: 1px;
  background: var(--gray-3);
  margin-top: 20px;
  position: relative;
  z-index: 4;
}

/* Soft radial glow behind stack */
.gv-life-hub-stack::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 160%;
  height: 130%;
  background: radial-gradient(ellipse at center, rgba(180,160,130,0.2) 0%, transparent 70%);
  z-index: 0;
  pointer-events: none;
}

/* Left / right columns */
.gv-life-hub-col {
  display: flex;
  flex-direction: column;
  height: 100%;
}
.gv-life-hub-col--left {
  justify-content: space-between;
  padding: 48px 0;
}
.gv-life-hub-col--right {
  justify-content: center;
  padding-left: 20px;
}

/* Individual points — horizontal flex row with growing line */
.gv-life-hub-point {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 0;
}
.gv-life-hub-col--left .gv-life-hub-point { flex-direction: row; }
.gv-life-hub-col--right .gv-life-hub-point { flex-direction: row; }

/* Text block */
.gv-life-hub-text {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.gv-life-hub-col--left .gv-life-hub-text { align-items: flex-end; text-align: right; padding-right: 0; margin-right: 16px; }
.gv-life-hub-col--right .gv-life-hub-text { align-items: flex-start; text-align: left; padding-left: 0; margin-left: 16px; }

/* Growing connector line */
.gv-life-hub-line {
  flex: 1;
  height: 1px;
  background: linear-gradient(to right, transparent, var(--gray-3));
  display: block;
  min-width: 24px;
}
.gv-life-hub-col--right .gv-life-hub-line {
  background: linear-gradient(to right, var(--gray-3), transparent);
}

.gv-life-hub-num {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 0.65rem;
  font-weight: 400;
  letter-spacing: 0.22em;
  color: var(--gray-3);
}
.gv-life-hub-title {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(1.1rem, 1.6vw, 1.4rem);
  font-weight: 500;
  color: var(--text-heading);
  line-height: 1.3;
  letter-spacing: -0.01em;
}

/* Mobile: image top, vertical line descends to all points */
@media (max-width: 768px) {
  .gv-life-hub-wrap { padding: 48px 24px; }

  .gv-life-hub {
    grid-template-columns: 1fr;
    gap: 0;
    position: relative;
  }

  /* Reorder: image first */
  .gv-life-hub-stack  { order: 1; width: calc(100% - 28px); padding-bottom: 28px; overflow: visible; }
  .gv-life-hub-col--left  { order: 2; }
  .gv-life-hub-col--right { order: 3; }

  /* Natural image height */
  .gv-life-hub-img { aspect-ratio: unset; height: auto; }
  .gv-life-hub-img img { height: auto; width: 100%; }

  /* Vertical line runs down left edge of both columns */
  .gv-life-hub-col {
    flex-direction: column;
    gap: 0;
    height: auto;
    padding: 0 0 0 48px;
    border-left: 1px solid var(--gray-3);
    margin-left: 24px;
    justify-content: flex-start;
  }
  .gv-life-hub-col--left {
    padding-top: 12px;
    position: relative;
  }
  /* Extend vertical line upward to connect to image bottom */
  .gv-life-hub-col--left::before {
    content: '';
    position: absolute;
    left: -1px;
    top: -40px;
    width: 1px;
    height: 40px;
    background: var(--gray-3);
  }
  .gv-life-hub-col--right { padding-bottom: 12px; }

  /* Hide horizontal flex lines */
  .gv-life-hub-line { display: none; }

  /* Points with horizontal tick from vertical line */
  .gv-life-hub-col--left .gv-life-hub-point,
  .gv-life-hub-col--right .gv-life-hub-point {
    flex-direction: row;
    align-items: flex-start;
    width: 100%;
    padding: 20px 0;
    position: relative;
  }
  .gv-life-hub-col--left .gv-life-hub-point::before,
  .gv-life-hub-col--right .gv-life-hub-point::before {
    content: '';
    position: absolute;
    left: -48px;
    top: 28px;
    width: 36px;
    height: 1px;
    background: linear-gradient(to right, var(--gray-3), transparent);
  }

  .gv-life-hub-col--left .gv-life-hub-text,
  .gv-life-hub-col--right .gv-life-hub-text {
    align-items: flex-start;
    text-align: left;
    margin: 0;
  }
}

/* ============================================================
   LATEST UPDATES
   ============================================================ */
.gv-updates {
  padding: 96px 0;
  background: #fff;
}
.gv-updates-inner {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 clamp(15px, 4vw, 80px);
}
.gv-updates-header {
  margin-bottom: 48px;
}
.gv-updates-heading {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(1.85rem, 3.4vw, 3.6rem);
  font-weight: 400;
  color: var(--text-heading);
  letter-spacing: -0.02em;
  line-height: 1.2;
}

/* ════ LAYOUT F — Alternating horizontal rows with bg number ════ */
.gv-upd-f-list { display: flex; flex-direction: column; gap: 0; }
.gv-upd-f-row {
  display: grid;
  grid-template-columns: 420px 1fr;
  grid-auto-rows: minmax(280px, auto);
  gap: 0;
  border-bottom: 1px solid var(--gray-1);
  text-decoration: none; color: inherit;
  overflow: hidden;
  transition: background .25s;
}
.gv-upd-f-row:first-child { border-top: 1px solid var(--gray-1); }
.gv-upd-f-row:hover { background: #f0ede8; }
.gv-upd-f-row:nth-child(even) { direction: rtl; }
.gv-upd-f-row:nth-child(even) > * { direction: ltr; }
.gv-upd-f-img { overflow: hidden; position: relative; }
.gv-upd-f-img img { position: absolute; inset: 0; width:100%; height:100%; object-fit:cover; display:block; transition:transform .7s ease; }
.gv-upd-f-row:hover .gv-upd-f-img img { transform:scale(1.04); }
.gv-upd-f-content {
  position: relative;
  display: flex; align-items: center;
  padding: 36px 48px;
  overflow: hidden;
}
.gv-upd-f-bgnum {
  position: absolute;
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 9rem; font-weight: 200;
  color: rgba(26,26,24,.05);
  line-height: 1; letter-spacing: -.05em;
  right: 24px; bottom: -8px;
  pointer-events: none; user-select: none;
}
.gv-upd-f-text { display: flex; flex-direction: column; gap: 8px; position: relative; z-index: 1; }
.gv-upd-f-date {
  align-self: flex-start;
  font-size: 0.65rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase;
  background: none;
  color: var(--text-heading);
}
.gv-upd-f-title {
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:clamp(1.3rem, 2.1vw, 2rem); font-weight:400; color:var(--text-heading); line-height:1.3; letter-spacing:-.01em;
}
.gv-upd-f-desc { font-size:1rem; font-weight:300; color:var(--gray-4); line-height:1.8; margin:8px 0 4px; }
.gv-upd-f-read { font-size:0.65rem; font-weight:500; letter-spacing:.1em; text-transform:uppercase; color:var(--gray-3); margin-top:4px; }
.gv-upd-f-row:hover .gv-upd-f-read { color:var(--text-heading); }

@media (max-width: 900px) {
  .gv-upd-f-row { grid-template-columns: 1fr; grid-auto-rows: auto; }
  .gv-upd-f-row:nth-child(even) { direction: ltr; }
  .gv-upd-f-bgnum { font-size: 5rem; }
  .gv-updates { padding: 64px 0; }
  .gv-upd-f-img { aspect-ratio: 16/9; height: auto; position: relative; }
  .gv-upd-f-img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
  .gv-upd-f-content { padding: 24px 20px; }
}

/* ============================================================
   ENQUIRY STRIPE
   ============================================================ */
.gv-enquiry-stripe {
  background: #fff;
  padding: 64px clamp(15px, 4vw, 80px) 64px;
}
.gv-enquiry-stripe-inner {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: clamp(32px, 4vw, 56px) clamp(32px, 5vw, 72px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 64px;
  border: 1px solid var(--gray-2);
}
.gv-enquiry-stripe-left {
  flex-shrink: 0;
  max-width: 480px;
}
.gv-enquiry-stripe-heading {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(1.85rem, 3.4vw, 3.6rem);
  font-weight: 400;
  color: var(--text-heading);
  line-height: 1.2;
  letter-spacing: -0.01em;
  margin-bottom: 10px;
}
.gv-enquiry-stripe-sub {
  font-family: 'Manrope', sans-serif;
  font-size: 1rem;
  font-weight: 300;
  color: var(--gray-4);
  line-height: 1.6;
}

/* Form */
.gv-enquiry-stripe-form {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.gv-enquiry-stripe-row {
  display: flex;
  gap: 12px;
  align-items: center;
}
.gv-enquiry-stripe-input {
  flex: 1;
  min-width: 160px;
  height: 48px;
  padding: 0 16px;
  background: transparent;
  border: 1px solid var(--gray-2);
  border-radius: 0;
  color: var(--text-heading);
  font-family: 'Manrope', sans-serif;
  font-size: 0.9rem;
  font-weight: 300;
  outline: none;
  transition: border-color .2s ease;
}
.gv-enquiry-stripe-input::placeholder { color: var(--gray-3); }
.gv-enquiry-stripe-input:focus { border-color: var(--text-heading); }
.gv-enquiry-stripe-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 48px;
  padding: 0 28px;
  background: transparent;
  color: var(--text-heading);
  font-family: 'Manrope', sans-serif;
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border: 1px solid var(--text-heading);
  border-radius: 0;
  cursor: pointer;
  flex-shrink: 0;
  transition: background .2s ease, color .2s ease;
}
.gv-enquiry-stripe-btn svg { width: 13px; height: 13px; transition: transform .2s ease; }
.gv-enquiry-stripe-btn:hover { background: var(--text-heading); color: #fff; }
.gv-enquiry-stripe-btn:hover svg { transform: translateX(3px); }

@media (max-width: 900px) {
  .gv-enquiry-stripe-inner { flex-direction: column; align-items: flex-start; gap: 32px; }
  .gv-enquiry-stripe-left { max-width: 100%; }
  .gv-enquiry-stripe-form { width: 100%; }
  .gv-enquiry-stripe-row { flex-wrap: wrap; }
  .gv-enquiry-stripe-input { min-width: calc(50% - 6px); flex: 1 1 calc(50% - 6px); }
  .gv-enquiry-stripe-btn { width: 100%; justify-content: center; }
}


/* ============================================================
   V2 — Hero + Milestone split layout
   ============================================================ */

.gv-hero-milestone-wrap {
  display: flex;
  flex-direction: row;
  margin-top: var(--header-h);
  height: calc(100vh - var(--header-h));
}

/* Milestone panel — 40% */
.gv-hero-milestone-panel {
  flex: 0 0 40%;
  width: 40%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(40px, 5vw, 72px) clamp(28px, 4vw, 56px);
  background: #faf9f7;
  border-left: 1px solid var(--gray-1);
  overflow-y: auto;
}

.gv-hmp-heading {
  font-family: var(--font-head);
  font-size: clamp(1.7rem, 3vw, 2.8rem);
  font-weight: 400;
  line-height: 1.35;
  letter-spacing: -0.01em;
  color: var(--text-heading);
  margin: 0 0 40px;
}

/* Stats 2×2 grid */
.gv-hmp-stats {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  margin-bottom: 40px;
}

.gv-hmp-stat {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 28px 24px;
  border-left: 1px solid var(--gray-1);
  border-bottom: 1px solid var(--gray-1);
}
.gv-hmp-stat:nth-child(2n+1) { border-left: none; }
.gv-hmp-stat:nth-child(3),
.gv-hmp-stat:nth-child(4)    { border-bottom: none; }

.gv-hmp-number {
  font-family: var(--font-head);
  font-size: clamp(1.8rem, 2.8vw, 2.8rem);
  font-weight: 600;
  color: var(--text-heading);
  line-height: 1;
  letter-spacing: -0.02em;
}

.gv-hmp-suffix {
  font-size: .65em;
  vertical-align: super;
  font-weight: 400;
}

.gv-hmp-label {
  font-family: var(--font-body);
  font-size: 0.65rem;
  font-weight: 500;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--gray-3);
}

.gv-hmp-cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 24px;
  border: 1px solid var(--text-heading);
  font-family: var(--font-body);
  font-size: 0.9rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--text-heading);
  background: transparent;
  transition: background .2s ease, color .2s ease;
  align-self: flex-start;
}
.gv-hmp-cta svg { width: 14px; height: 14px; transition: transform .2s ease; }
.gv-hmp-cta:hover { background: var(--text-heading); color: #fff; }
.gv-hmp-cta:hover svg { transform: translateX(3px); }

/* Responsive */
@media (max-width: 960px) {
  .gv-hero-milestone-wrap {
    flex-direction: column;
    height: auto;
  }
  .gv-hero {
    flex: none !important;
    width: 100% !important;
    aspect-ratio: 16 / 9;
  }
  .gv-hero-milestone-panel {
    flex: none;
    width: 100%;
    border-left: none;
    border-top: 1px solid var(--gray-1);
    padding: 48px clamp(20px, 5vw, 48px);
  }
}

@media (max-width: 480px) {
  .gv-hmp-stats { gap: 20px 16px; }
  .gv-hmp-cta { width: 100%; justify-content: center; }
}


/* ============================================================
   PROJECT LAYOUT PREVIEWS — A, B, C
   ============================================================ */

.gv-proj-preview {
  padding: 80px 0;
  border-top: 4px solid var(--gray-1);
}
.gv-proj-preview-label {
  max-width: var(--max-w);
  margin: 0 auto 48px;
  padding: 0 clamp(15px,4vw,80px);
  font-family: var(--font-body);
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--gray-3);
}

/* ── LAYOUT A — Horizontal split rows ── */
.gv-proj-a-wrap {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 clamp(15px,4vw,80px);
}
.gv-proj-a-row {
  display: grid;
  grid-template-columns: 55% 45%;
  min-height: 480px;
  margin-bottom: 4px;
}
.gv-proj-a-row--flip { direction: rtl; }
.gv-proj-a-row--flip > * { direction: ltr; }
.gv-proj-a-img {
  position: relative;
  overflow: hidden;
}
.gv-proj-a-img img { width:100%; height:100%; object-fit:cover; display:block; transition: transform .8s ease; }
.gv-proj-a-row:hover .gv-proj-a-img img { transform: scale(1.04); }
.gv-proj-a-overlay { position:absolute; inset:0; background: rgba(0,0,0,0.18); }
.gv-proj-a-status {
  position: absolute; top: 24px; left: 28px;
  font-size: 0.65rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase;
  color: #fff; background: rgba(0,0,0,0.45); padding: 5px 12px;
}
.gv-proj-a-content {
  display: flex; flex-direction: column; justify-content: center;
  padding: 56px clamp(32px,4vw,64px);
  background: #faf9f7;
  border: 1px solid var(--gray-1);
  border-left: none;
  gap: 16px;
}
.gv-proj-a-row--flip .gv-proj-a-content { border-left: 1px solid var(--gray-1); border-right: none; }
.gv-proj-a-type { display:inline-block; font-size:0.65rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; background:none; color:var(--text-heading); }
.gv-proj-a-name { font-family:var(--font-head); font-size:clamp(1.2rem,2vw,1.8rem); font-weight:400; line-height:1.2; color:var(--text-heading); margin:0; }
.gv-proj-a-location { display:flex; align-items:center; gap:5px; font-size:0.9rem; color:var(--text-light); margin:0; }
.gv-proj-a-location svg { width:13px; height:13px; }
.gv-proj-a-desc { font-size:0.9rem; line-height:1.8; color:var(--text-body); margin:0; }
.gv-proj-a-highlights { display:flex; flex-wrap:wrap; gap:0; }
.gv-proj-a-highlight { font-size:0.65rem; font-weight:500; letter-spacing:.08em; text-transform:uppercase; color:var(--text-light); padding-right:14px; margin-right:14px; border-right:1px solid var(--gray-1); line-height:1; }
.gv-proj-a-highlight:last-child { border-right:none; }
.gv-proj-a-ctas { display:flex; align-items:center; gap:20px; margin-top:4px; }
.gv-proj-a-btn { display:inline-flex; align-items:center; gap:8px; padding:10px 22px; border:1px solid var(--text-heading); font-size:0.75rem; font-weight:500; letter-spacing:0.08em; text-transform:uppercase; color:var(--text-heading); transition:background .2s,color .2s; }
.gv-proj-a-btn:hover { background:var(--text-heading); color:#fff; }
.gv-proj-a-btn svg { width:13px; height:13px; transition:transform .2s; }
.gv-proj-a-btn:hover svg { transform:translateX(3px); }
.gv-proj-a-link { font-size:0.9rem; font-weight:500; color:var(--text-light); text-decoration:underline; text-underline-offset:3px; transition:color .2s; }
.gv-proj-a-link:hover { color:var(--text-heading); }

@media (max-width:768px) {
  .gv-proj-a-row { grid-template-columns:1fr; min-height:auto; }
  .gv-proj-a-row--flip { direction:ltr; }
  .gv-proj-a-img { aspect-ratio:4/3; }
  .gv-proj-a-content { border:none; border-top:1px solid var(--gray-1); }
}

/* ── LAYOUT B — Editorial list ── */
.gv-proj-b-wrap {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 clamp(15px,4vw,80px);
}
.gv-proj-b-row {
  display: grid;
  grid-template-columns: 80px 1fr 220px auto;
  align-items: center;
  gap: 0 40px;
  padding: 40px 0;
  border-bottom: 1px solid var(--gray-1);
  transition: background .2s;
}
.gv-proj-b-row:first-child { border-top: 1px solid var(--gray-1); }
.gv-proj-b-row:hover { background: #faf9f7; margin: 0 -40px; padding: 40px; }
.gv-proj-b-index {
  font-family: var(--font-head);
  font-size: clamp(2.4rem,4vw,4.5rem);
  font-weight: 200;
  color: var(--gray-1);
  line-height: 1;
  letter-spacing: -0.03em;
}
.gv-proj-b-meta { display:flex; align-items:center; gap:12px; margin-bottom:10px; }
.gv-proj-b-type { display:inline-block; font-size:0.65rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; background:var(--text-heading); color:#fff; padding:5px 14px; }
.gv-proj-b-status { font-size:0.65rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; padding:3px 10px; border:1px solid var(--gray-2); color:var(--text-light); }
.gv-proj-b-status--ongoing { border-color:#2ecc71; color:#27ae60; }
.gv-proj-b-status--upcoming { border-color:#e67e22; color:#d35400; }
.gv-proj-b-name { font-family:var(--font-head); font-size:clamp(1.3rem, 2.1vw, 2rem); font-weight:400; line-height:1.2; color:var(--text-heading); margin:0 0 8px; }
.gv-proj-b-location { display:flex; align-items:center; gap:5px; font-size:0.85rem; color:var(--text-light); margin:0; }
.gv-proj-b-location svg { width:13px; height:13px; }
.gv-proj-b-thumb { aspect-ratio:3/2; overflow:hidden; }
.gv-proj-b-thumb picture { display:block; width:100%; height:100%; }
.gv-proj-b-thumb img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s ease; }
.gv-proj-b-row:hover .gv-proj-b-thumb img { transform:scale(1.06); }
.gv-proj-b-cta { display:inline-flex; align-items:center; gap:6px; justify-content:flex-end; font-size:0.75rem; font-weight:500; letter-spacing:0.08em; text-transform:uppercase; color:var(--text-heading); border-bottom:1px solid var(--text-heading); padding-bottom:2px; transition:gap .2s; white-space:nowrap; }
.gv-proj-b-cta svg { width:13px; height:13px; transition:transform .2s; }
.gv-proj-b-cta:hover { gap:10px; }
.gv-proj-b-cta:hover svg { transform:translateX(3px); }

/* ── LAYOUT C — Hero + grid ── */
.gv-proj-c-wrap {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 clamp(15px,4vw,80px);
}
.gv-proj-c-hero {
  position: relative;
  aspect-ratio: 21/9;
  overflow: hidden;
  margin-bottom: 4px;
}
.gv-proj-c-hero img { width:100%; height:100%; object-fit:cover; display:block; transition:transform 10s ease; }
.gv-proj-c-hero:hover img { transform:scale(1.03); }
.gv-proj-c-hero-overlay { position:absolute; inset:0; background:linear-gradient(to top, rgba(0,0,0,.75) 0%, rgba(0,0,0,.2) 50%, transparent 100%); }
.gv-proj-c-hero-content { position:absolute; bottom:0; left:0; right:0; padding:56px 64px; display:flex; flex-direction:column; gap:12px; }
.gv-proj-c-hero-type { display:inline-block; font-size:0.65rem; font-weight:600; letter-spacing:.18em; text-transform:uppercase; background:none; color:var(--text-heading); }
.gv-proj-c-hero-name { font-family:var(--font-head); font-size:clamp(2rem,3.8vw,4rem); font-weight:400; color:#fff; line-height:1.15; margin:0; letter-spacing:-0.02em; }
.gv-proj-c-hero-location { display:flex; align-items:center; gap:5px; font-size:0.9rem; color:rgba(255,255,255,.6); margin:0; }
.gv-proj-c-hero-location svg { width:13px; height:13px; }
.gv-proj-c-hero-ctas { display:flex; align-items:center; gap:16px; margin-top:8px; }
.gv-proj-c-btn { display:inline-flex; align-items:center; gap:8px; padding:10px 22px; border:1px solid rgba(255,255,255,.7); font-size:0.75rem; font-weight:500; letter-spacing:0.08em; text-transform:uppercase; color:#fff; transition:background .2s,border-color .2s; }
.gv-proj-c-btn:hover { background:rgba(255,255,255,.15); border-color:#fff; }
.gv-proj-c-btn svg { width:13px; height:13px; transition:transform .2s; }
.gv-proj-c-btn:hover svg { transform:translateX(3px); }
.gv-proj-c-link { font-size:0.9rem; font-weight:500; color:rgba(255,255,255,.65); text-decoration:underline; text-underline-offset:3px; }
.gv-proj-c-link:hover { color:#fff; }
.gv-proj-c-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:4px; }
.gv-proj-c-card { overflow:hidden; }
.gv-proj-c-img { position:relative; aspect-ratio:3/2; overflow:hidden; }
.gv-proj-c-img img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .7s ease; }
.gv-proj-c-card:hover .gv-proj-c-img img { transform:scale(1.06); }
.gv-proj-c-overlay { position:absolute; inset:0; background:rgba(0,0,0,.18); }
.gv-proj-c-body { padding:20px 24px; background:#faf9f7; border:1px solid var(--gray-1); border-top:none; }
.gv-proj-c-type { display:block; font-size:0.65rem; font-weight:600; letter-spacing:.15em; text-transform:uppercase; background:none; color:var(--text-heading); margin-bottom:6px; }
.gv-proj-c-name { font-family:var(--font-head); font-size:clamp(1.1rem,1.6vw,1.4rem); font-weight:400; color:var(--text-heading); margin:0 0 8px; line-height:1.25; }
.gv-proj-c-location { display:flex; align-items:center; gap:4px; font-size:0.9rem; color:var(--text-light); margin:0; }
.gv-proj-c-location svg { width:12px; height:12px; }

@media (max-width:900px) {
  .gv-proj-c-hero { aspect-ratio:16/9; }
  .gv-proj-c-hero-content { padding:32px 32px; }
  .gv-proj-c-grid { grid-template-columns:1fr 1fr; }
}
@media (max-width:600px) {
  .gv-proj-c-hero { aspect-ratio:4/3; }
  .gv-proj-c-hero-content { padding:24px; }
  .gv-proj-c-grid { grid-template-columns:1fr; }
}


/* ============================================================
   FEATURED PROJECTS — Layout B (editorial list, final)
   ============================================================ */

.gv-proj-b-outer {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 clamp(15px,4vw,80px);
}

.gv-proj-b-list { margin-top: 8px; }

.gv-proj-b-row {
  display: grid;
  grid-template-columns: 80px 1fr 240px auto;
  align-items: center;
  gap: 0 40px;
  padding: 36px 0;
  border-bottom: 1px solid var(--gray-1);
  cursor: pointer;
  transition: background .2s;
}
.gv-proj-b-row:first-child { border-top: 1px solid var(--gray-1); }
.gv-proj-b-row:hover { background: #faf9f7; padding-left: 20px; padding-right: 20px; margin: 0 -20px; }

.gv-proj-b-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 18px;
}
.gv-proj-b-enquire {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 10px 22px;
  background: transparent;
  color: var(--text-heading);
  font-family: 'Manrope', sans-serif;
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border: 1px solid rgba(0,0,0,0.5);
  white-space: nowrap;
  transition: background .2s ease, border-color .2s ease, color .2s ease;
}
.gv-proj-b-enquire:hover { background: var(--text-heading); color: #fff; border-color: var(--text-heading); }
.gv-proj-b-wa {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 22px;
  background: transparent;
  color: var(--text-heading);
  font-family: 'Manrope', sans-serif;
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border: 1px solid rgba(0,0,0,0.5);
  white-space: nowrap;
  transition: background .2s ease, border-color .2s ease, color .2s ease;
}
.gv-proj-b-wa svg { width: 15px; height: 15px; flex-shrink: 0; }
.gv-proj-b-wa:hover { background: var(--text-heading); color: #fff; border-color: var(--text-heading); }
.gv-proj-b-ctas {
  display: flex;
  align-items: center;
  justify-content: flex-end;
}
.gv-proj-b-mob-only { display: none; }

@media (max-width: 900px) {
  .gv-proj-b-row { grid-template-columns: 56px 1fr 160px; }
  .gv-proj-b-ctas { display: none; }
  .gv-proj-b-actions { margin-top: 14px; }
}
@media (max-width: 600px) {
  .gv-proj-b-row {
    grid-template-columns: 44px 1fr;
    gap: 0 16px;
    padding: 28px 0;
  }
  .gv-proj-b-row:hover { padding-left: 12px; padding-right: 12px; margin: 0 -12px; }
  .gv-proj-b-thumb {
    grid-column: 1 / -1;
    margin-top: 16px;
    aspect-ratio: unset;
    overflow: hidden;
  }
  .gv-proj-b-thumb img { width: 100%; height: auto; object-fit: unset; object-position: unset; display: block; }
  .gv-proj-b-actions { display: none; }
  .gv-proj-b-ctas {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-start;
    gap: 20px 12px;
    grid-column: 1 / -1;
    margin-top: 20px;
  }
  .gv-proj-b-mob-only { display: inline-flex; }
}


/* ============================================================
   HOME GALLERY — premium exhibition style
   Dark bg · numbered frames · always-visible captions
   ============================================================ */

/* ── Option review label ── */
.gv-opt-label {
  display: block; text-align: center; padding: 10px 20px;
  font-family: 'Manrope', sans-serif; font-size: 0.65rem;
  font-weight: 700; letter-spacing: .2em; text-transform: uppercase;
  color: var(--gray-3); border: 1px dashed var(--gray-1);
  margin-bottom: 0;
}

/* ══════════════════════════════════════════════
   GALLERY A — CURTAIN REVEAL
   Dark curtain slides away on hover · theatrical
══════════════════════════════════════════════ */
.gv-curtain-grid {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 3px; margin-top: 56px; background: #0a0a0a;
}
.gv-curtain-item:nth-child(5) { grid-column: 1 / 3; }
.gv-curtain-item {
  position: relative; overflow: hidden; height: 400px;
  cursor: pointer; background: #0a0a0a;
}
.gv-curtain-item:nth-child(5) { height: 260px; }
.gv-curtain-item img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform 1.1s cubic-bezier(.16,1,.3,1);
}
.gv-curtain-item:hover img { transform: scale(1.07); }

/* The sliding curtain */
.gv-curtain-item::before {
  content: ''; position: absolute; inset: 0; z-index: 2;
  background: #0a0a0a;
  transform: translateX(0);
  transition: transform .95s cubic-bezier(.16,1,.3,1);
}
.gv-curtain-item:hover::before { transform: translateX(-100%); }

.gv-curtain-over {
  position: absolute; bottom: 0; left: 0; right: 0; z-index: 3;
  padding: 28px 32px;
  background: linear-gradient(to top, rgba(0,0,0,.8) 0%, transparent 100%);
  display: flex; flex-direction: column; gap: 5px; pointer-events: none;
}
.gv-curtain-num {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 0.65rem; font-weight: 400; letter-spacing: .2em;
  color: rgba(255,255,255,.38);
}
.gv-curtain-title {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(1.1rem,1.6vw,1.4rem); font-weight: 400;
  color: #fff; line-height: 1.3;
}
@media (max-width: 640px) {
  .gv-curtain-grid { grid-template-columns: 1fr; }
  .gv-curtain-item:nth-child(5) { grid-column: 1; }
  .gv-curtain-item { height: 280px; }
}


/* ══════════════════════════════════════════════
   GALLERY B — FRAMED GALLERY WALL
   Matted frames on black · museum lift on hover
══════════════════════════════════════════════ */
.gv-wall-section {
  margin-top: 56px; background: #040404;
  padding: 64px clamp(15px,4vw,80px);
}
.gv-wall-grid {
  display: grid;
  grid-template-columns: 1.8fr 1fr 1fr;
  grid-auto-rows: auto;
  gap: 24px;
  max-width: var(--max-w); margin: 0 auto;
  align-items: start;
}
.gv-wall-item:nth-child(1) { grid-row: 1 / 3; }

.gv-wall-frame {
  display: block; position: relative;
  padding: 7px; background: #161616;
  border: 1px solid rgba(255,255,255,.07);
  box-shadow: 0 16px 48px rgba(0,0,0,.55), 0 2px 8px rgba(0,0,0,.4);
  transition: transform .45s cubic-bezier(.16,1,.3,1), box-shadow .45s;
}
.gv-wall-frame:hover {
  transform: translateY(-7px);
  box-shadow: 0 28px 72px rgba(0,0,0,.75), 0 0 0 1px rgba(255,255,255,.06);
}
.gv-wall-img-wrap { overflow: hidden; }
.gv-wall-item:nth-child(1) .gv-wall-img-wrap { height: 520px; }
.gv-wall-item:not(:nth-child(1)) .gv-wall-img-wrap { height: 228px; }
.gv-wall-img-wrap img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  filter: brightness(.85) saturate(.88);
  transition: transform .9s cubic-bezier(.16,1,.3,1), filter .5s;
}
.gv-wall-frame:hover .gv-wall-img-wrap img {
  transform: scale(1.07); filter: brightness(1) saturate(1.05);
}
.gv-wall-caption {
  padding: 10px 7px 5px;
  display: flex; align-items: center; justify-content: space-between;
}
.gv-wall-caption-title {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 0.9rem; font-weight: 400; color: rgba(255,255,255,.5); letter-spacing: .02em;
}
.gv-wall-caption-num {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 0.65rem; font-weight: 300; color: rgba(255,255,255,.2); letter-spacing: .1em;
}
@media (max-width: 900px) {
  .gv-wall-grid { grid-template-columns: 1fr 1fr; }
  .gv-wall-item:nth-child(1) { grid-row: auto; }
  .gv-wall-item .gv-wall-img-wrap { height: 220px !important; }
}
@media (max-width: 560px) {
  .gv-wall-grid { grid-template-columns: 1fr; }
}


/* ══════════════════════════════════════════════
   GALLERY C — MAGAZINE SPLIT
   Light bg · large portrait left · editorial right
══════════════════════════════════════════════ */
.gv-mag-wrap {
  margin-top: 56px; display: grid;
  grid-template-columns: 1fr 1fr; gap: 0;
  background: #faf9f7; min-height: 700px;
}
.gv-mag-left { position: relative; overflow: hidden; min-height: 700px; }
.gv-mag-left img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform 1.2s cubic-bezier(.16,1,.3,1);
}
.gv-mag-left:hover img { transform: scale(1.04); }
.gv-mag-left-over {
  position: absolute; bottom: 0; left: 0; right: 0;
  padding: 32px 36px;
  background: linear-gradient(to top, rgba(0,0,0,.65) 0%, transparent 55%);
  pointer-events: none;
}
.gv-mag-left-num {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 0.65rem; letter-spacing: .2em; color: rgba(255,255,255,.45); display: block; margin-bottom: 6px;
}
.gv-mag-left-title {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(1.1rem,1.6vw,1.4rem); font-weight: 400; color: #fff; line-height: 1.3;
}

.gv-mag-right {
  display: flex; flex-direction: column;
  padding: 56px 52px; border-left: 1px solid var(--gray-1);
  justify-content: space-between; gap: 32px;
}
.gv-mag-eyebrow {
  font-family: 'Manrope', sans-serif; font-size: 0.75rem;
  font-weight: 600; letter-spacing: .2em; text-transform: uppercase;
  background: none; color: rgba(0,0,0,.45); padding: 0;
  margin-bottom: 16px; display: inline-block;
}
.gv-mag-heading {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(1.7rem,3vw,2.8rem); font-weight: 300;
  color: var(--text-heading); line-height: 1.15; letter-spacing: -.02em; margin-bottom: 20px;
}
.gv-mag-rule { height: 1px; background: var(--gray-1); margin-bottom: 20px; }
.gv-mag-sub {
  font-family: 'Manrope', sans-serif; font-size: 0.9rem;
  font-weight: 300; color: var(--gray-4); line-height: 1.82;
}
.gv-mag-images {
  display: grid; grid-template-columns: 1fr 1fr; gap: 8px;
}
.gv-mag-img-item { position: relative; overflow: hidden; aspect-ratio: 4/3; }
.gv-mag-img-item img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform .85s cubic-bezier(.16,1,.3,1);
}
.gv-mag-img-item:hover img { transform: scale(1.08); }

@media (max-width: 900px) {
  .gv-mag-wrap { grid-template-columns: 1fr; }
  .gv-mag-left { min-height: 420px; }
  .gv-mag-right { padding: 36px 28px; border-left: none; border-top: 1px solid var(--gray-1); }
}
@media (max-width: 480px) {
  .gv-mag-images { grid-template-columns: 1fr; }
}

/* Grid */
.gv-glr-grid { display: flex; flex-direction: column; gap: 3px; }
.gv-glr-row  { display: flex; gap: 3px; }

/* Every item */
.gv-glr-item {
  position: relative; overflow: hidden; flex-shrink: 0;
  background: #111;
}
.gv-glr-item img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform 1s cubic-bezier(.16,1,.3,1);
  filter: brightness(.92);
}
.gv-glr-item:hover img {
  transform: scale(1.06);
  filter: brightness(1);
}

/* Overlay — always visible */
.gv-glr-over {
  position: absolute; inset: 0;
  display: flex; flex-direction: column; justify-content: space-between;
  padding: 22px 26px;
  background:
    linear-gradient(to top,  rgba(0,0,0,.70) 0%,  transparent 45%),
    linear-gradient(to bottom, rgba(0,0,0,.25) 0%, transparent 30%);
  pointer-events: none;
}

/* Large faded index number — top right */
.gv-glr-over-num {
  align-self: flex-end;
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 3.5rem; font-weight: 200; line-height: 1;
  color: rgba(255,255,255,.15); letter-spacing: -.03em;
  transition: color .5s ease;
}
.gv-glr-item:hover .gv-glr-over-num { color: rgba(255,255,255,.28); }

/* Bottom info */
.gv-glr-over-info {
  display: flex; flex-direction: column; gap: 4px;
}
.gv-glr-over-title {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(1.1rem,1.6vw,1.4rem); font-weight: 400;
  color: #fff; letter-spacing: .02em; line-height: 1.3;
}
.gv-glr-over-cat {
  font-family: 'Manrope', sans-serif;
  font-size: 0.65rem; font-weight: 500; letter-spacing: .18em;
  text-transform: uppercase; color: rgba(255,255,255,.45);
}

/* Row 1: wide (65%) + portrait (35%) */
.gv-glr-row:nth-child(1) .gv-glr-item:nth-child(1) { flex: 65; height: 540px; }
.gv-glr-row:nth-child(1) .gv-glr-item:nth-child(2) { flex: 35; height: 540px; }

/* Row 2: narrow (30%) + wide (40%) + narrow (30%) */
.gv-glr-row:nth-child(2) .gv-glr-item:nth-child(1) { flex: 30; height: 360px; }
.gv-glr-row:nth-child(2) .gv-glr-item:nth-child(2) { flex: 40; height: 360px; }
.gv-glr-row:nth-child(2) .gv-glr-item:nth-child(3) { flex: 30; height: 360px; }

/* Inset inside Latest Updates */
.gv-glr-grid--inset { margin-top: 64px; }

/* Centered View All button */
.gv-glr-viewall-wrap { text-align: center; margin-top: 48px; }
.gv-glr-viewall-btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 14px 40px;
  font-family: 'Manrope', sans-serif; font-size: 0.9rem;
  font-weight: 600; letter-spacing: .1em; text-transform: uppercase;
  color: var(--text-heading); background: transparent;
  border: 1px solid var(--text-heading);
  transition: background .22s ease, color .22s ease;
}
.gv-glr-viewall-btn svg { width: 13px; height: 13px; transition: transform .2s ease; }
.gv-glr-viewall-btn:hover { background: var(--text-heading); color: #fff; }
.gv-glr-viewall-btn:hover svg { transform: translateX(4px); }

@media (max-width: 960px) {
  .gv-glr-row:nth-child(1) .gv-glr-item { height: 380px; }
  .gv-glr-row:nth-child(2) .gv-glr-item { height: 260px; }
  .gv-glr-over-num { font-size: 2.5rem; }
}
@media (max-width: 640px) {
  .gv-glr-row { flex-direction: column; }
  .gv-glr-row .gv-glr-item { flex: none !important; height: 280px !important; }
}


/* ============================================================
   WHY CHOOSE US
   Full-width bg image · dark overlay · large heading · paragraphs · 2 CTAs
   ============================================================ */
.gv-why {
  position: relative;
  padding: 160px 0 140px;
  overflow: hidden;
  background: #0d1b2a;
}
.gv-why-bg {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  background-repeat: no-repeat;
}
.gv-why-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(
    105deg,
    rgba(5,15,30,.92) 0%,
    rgba(5,15,30,.78) 55%,
    rgba(5,15,30,.45) 100%
  );
}
.gv-why-inner {
  position: relative; z-index: 1;
  max-width: var(--max-w); margin: 0 auto;
  padding: 0 clamp(32px,8vw,160px);
}
.gv-why-content { max-width: 820px; }

.gv-why-badge {
  display: inline-block;
  font-family: 'Manrope', sans-serif;
  font-size: 0.65rem; font-weight: 600; letter-spacing: .22em; text-transform: uppercase;
  color: rgba(255,255,255,.6);
  margin-bottom: 20px;
}

.gv-why-heading {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(1.85rem, 3.4vw, 3.6rem);
  font-weight: 400;
  color: #fff;
  line-height: 1.1;
  letter-spacing: -.01em;
  text-transform: uppercase;
  margin: 0 0 40px;
}

.gv-why-body {
  display: flex; flex-direction: column; gap: 22px;
  margin-bottom: 52px;
}
.gv-why-body p {
  font-family: 'Manrope', sans-serif;
  font-size: 1rem;
  font-weight: 300;
  color: rgba(255,255,255,.70);
  line-height: 1.9;
  margin: 0;
}

.gv-why-advantages {
  margin-top: 4px;
}
.gv-why-adv-title {
  font-family: 'Manrope', sans-serif;
  font-size: .8rem;
  font-weight: 500;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(255,255,255,.45);
  margin: 0 0 14px;
}
.gv-why-adv-list {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: 1fr 1fr; gap: 12px 14px;
}
.gv-why-adv-list li {
  display: flex; align-items: center; gap: 12px;
  padding: 14px 16px;
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 10px;
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  font-family: 'Manrope', sans-serif;
  font-size: .85rem; font-weight: 400;
  color: rgba(255,255,255,.85);
  line-height: 1.45;
  transition: background .25s var(--ease-out), border-color .25s var(--ease-out), transform .25s var(--ease-out);
}
.gv-why-adv-list li:hover {
  background: rgba(255,255,255,.09);
  border-color: rgba(201,168,76,.55);
  transform: translateY(-3px);
}
.gv-why-adv-icon {
  display: inline-flex; align-items: center; justify-content: center;
  width: 26px; height: 26px;
  flex-shrink: 0;
  border-radius: 50%;
  background: var(--gold);
  color: #1a1a1a;
}

.gv-why-ctas {
  display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
}
.gv-why-btn-primary {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 10px 22px;
  background: transparent; color: #fff;
  font-family: 'Manrope', sans-serif;
  font-size: 0.75rem; font-weight: 500;
  letter-spacing: 0.08em; text-transform: uppercase;
  border: 1px solid rgba(255,255,255,.55);
  white-space: nowrap;
  transition: background .25s ease, border-color .25s ease;
}
.gv-why-btn-primary:hover { background: rgba(255,255,255,.1); border-color: #fff; color: #fff; }

.gv-why-btn-ghost {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 10px 22px;
  background: transparent; color: #fff;
  font-family: 'Manrope', sans-serif;
  font-size: 0.75rem; font-weight: 500;
  letter-spacing: 0.08em; text-transform: uppercase;
  border: 1px solid rgba(255,255,255,.55);
  white-space: nowrap;
  transition: background .25s ease, border-color .25s ease;
}
.gv-why-btn-ghost:hover { background: rgba(255,255,255,.1); border-color: #fff; color: #fff; }

@media (max-width: 900px) {
  .gv-why { padding: 100px 0; }
  .gv-why-inner { padding: 0 clamp(24px,6vw,64px); }
  .gv-why-content { max-width: 100%; }
  .gv-why-overlay { background: rgba(5,15,30,.82); }
}
@media (max-width: 480px) {
  .gv-why { padding: 80px 0; }
  .gv-why-inner { padding: 0 24px; }
  .gv-why-ctas { flex-direction: column; align-items: flex-start; }
  .gv-why-btn-primary, .gv-why-btn-ghost { width: 100%; justify-content: center; }
}


/* ============================================================
   ABOUT PAGE — ab-* namespace
   ============================================================ */

/* ── HERO ── */
@keyframes ab-hero-settle { from{transform:scale(1.1)} to{transform:scale(1.02)} }
@keyframes ab-grid-drift  { 0%{background-position:0 0} 100%{background-position:56px 56px} }
@keyframes ab-float-1     { 0%,100%{transform:translateY(0) translateX(0)} 50%{transform:translateY(-22px) translateX(-8px)} }
@keyframes ab-float-2     { 0%,100%{transform:rotate(0deg) translateY(0)} 50%{transform:rotate(3deg) translateY(-14px)} }
@keyframes ab-spin-slow   { from{transform:rotate(0deg)} to{transform:rotate(360deg)} }
@keyframes ab-fade-up     { from{opacity:0;transform:translateY(30px)} to{opacity:1;transform:translateY(0)} }
@keyframes ab-scroll-pulse{ 0%,100%{opacity:1;transform:scaleY(1)} 50%{opacity:.4;transform:scaleY(.5)} }

.ab-hero {
  position:relative; height:100vh; min-height:680px;
  overflow:hidden; background:#050505;
  display:flex; align-items:flex-end;
}
.ab-hero-bg {
  position:absolute; inset:0;
  background-size:cover; background-position:center;
  transform:scale(1.06);
  animation:ab-hero-settle 14s ease-out forwards;
}
.ab-hero-overlay {
  display: none;
}

/* Moving watermark */
.ab-hero-watermark {
  display: none;
}
@keyframes ab-wm-drift {
  0%   { transform:translate(-50%,-50%) translateX(0); }
  33%  { transform:translate(-50%,-50%) translateX(40px); }
  66%  { transform:translate(-50%,-50%) translateX(-28px); }
  100% { transform:translate(-50%,-50%) translateX(0); }
}

/* Animated construction elements */
.ab-hero-anim { display: none; }
.ab-anim-grid {
  position:absolute; inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
  background-size:56px 56px;
  animation:ab-grid-drift 28s linear infinite;
}
.ab-anim-building {
  position:absolute; right:4%; top:50%; transform:translateY(-50%);
  color:rgba(255,255,255,.08);
  animation:ab-float-1 12s ease-in-out infinite;
}
.ab-anim-plan {
  position:absolute; right:26%; bottom:8%;
  color:rgba(255,255,255,.055);
  animation:ab-float-2 16s ease-in-out infinite;
}
.ab-anim-compass {
  position:absolute; right:16%; top:12%;
  color:rgba(255,255,255,.045);
  animation:ab-spin-slow 35s linear infinite;
}
/* Floating dot particles */
.ab-anim-dots {
  position:absolute; inset:0;
  background-image:radial-gradient(circle, rgba(255,255,255,.08) 1px, transparent 1px);
  background-size:72px 72px;
  animation:ab-grid-drift 40s linear infinite reverse;
}

/* Hero content */
.ab-hero-inner {
  position:relative; z-index:2;
  width:100%; max-width:var(--max-w); margin:0 auto;
  padding:0 clamp(15px,4vw,80px);
  padding-top:var(--header-h);
  display:flex; justify-content:flex-start;
}
.ab-hero-content {
  max-width:720px; width:100%;
  text-align:left;
  display:flex; flex-direction:column; align-items:flex-start;
}

.ab-hero-eyebrow {
  display: none;
}

.ab-hero-heading {
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:clamp(2.4rem,4.4vw,5rem); font-weight:400;
  color:#fff; line-height:1.05; letter-spacing:-.02em;
  max-width:760px; margin:0 0 26px;
  text-shadow: 0 2px 20px rgba(0,0,0,.5), 0 1px 4px rgba(0,0,0,.4);
  animation:ab-fade-up .9s .25s cubic-bezier(.16,1,.3,1) both;
}
.ab-hero-sub {
  display: none;
}
.ab-hero-ctas {
  display:flex; gap:14px; flex-wrap:wrap; margin-bottom:60px;
  justify-content:flex-start;
  animation:ab-fade-up .9s .58s cubic-bezier(.16,1,.3,1) both;
}
.ab-hero-btn-primary {
  display:inline-flex; align-items:center; gap:8px;
  padding:10px 22px; background:#fff; color:var(--dark);
  font-family:'Manrope',sans-serif; font-size:0.75rem; font-weight:500;
  letter-spacing:.08em; text-transform:uppercase;
  border:1px solid #fff; transition:background .22s,color .22s;
}
.ab-hero-btn-primary:hover { background:transparent; color:#fff; }
.ab-hero-btn-ghost {
  display:inline-flex; align-items:center; gap:8px;
  padding:10px 22px; background:transparent; color:#fff;
  font-family:'Manrope',sans-serif; font-size:0.75rem; font-weight:500;
  letter-spacing:.08em; text-transform:uppercase;
  border:1px solid rgba(255,255,255,.35);
  transition:border-color .22s,background .22s;
}
.ab-hero-btn-ghost:hover { border-color:#fff; background:rgba(255,255,255,.08); color:#fff; }

.ab-hero-stats {
  display: none;
}
.ab-hero-stat { display:flex; flex-direction:column; gap:4px; padding:0 30px; }
.ab-hero-stat:first-child { padding-left:0; }
.ab-hero-stat-num {
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:2.2rem; font-weight:200; color:#fff; line-height:1; letter-spacing:-.02em;
}
.ab-hero-stat-num sup { font-size:.5em; vertical-align:super; }
.ab-hero-stat-lbl {
  font-family:'Manrope',sans-serif; font-size:0.65rem; font-weight:600;
  letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.38);
}
.ab-hero-stat-div { width:1px; height:36px; background:rgba(255,255,255,.14); flex-shrink:0; }

/* Scroll cue */
.ab-hero-scroll {
  display: none;
}
.ab-hero-scroll-line {
  width:1px; height:44px; transform-origin:top;
  background:linear-gradient(to bottom, rgba(255,255,255,.5), transparent);
  animation:ab-scroll-pulse 2.2s ease-in-out infinite;
}
.ab-hero-scroll span {
  font-family:'Manrope',sans-serif; font-size:0.65rem; font-weight:600;
  letter-spacing:.2em; text-transform:uppercase; color:rgba(255,255,255,.3);
}

/* ── ABOUT CONTENT ── */
.ab-about { background:#fff; }
.ab-about-inner {
  max-width:var(--max-w); margin:0 auto;
  padding:104px clamp(15px,4vw,80px) 104px;
  text-align:center;
}
.ab-about-box {
  padding: 64px clamp(28px, 5vw, 80px);
  background:
    linear-gradient(135deg, rgba(192,57,43,.18) 0%, rgba(41,128,185,.18) 100%),
    linear-gradient(rgba(255,255,255,.82), rgba(255,255,255,.82)),
    url('/img/building01.png') center / cover no-repeat;
  box-shadow: 8px 20px 56px rgba(192,57,43,.18), -8px 20px 56px rgba(41,128,185,.18), 0 4px 16px rgba(0,0,0,.08);
}

.ab-about-eyebrow {
  display:inline-block; font-family:'Manrope',sans-serif;
  font-size:0.75rem; font-weight:600; letter-spacing:.22em; text-transform:uppercase;
  background: none; color: var(--blue); padding: 0;
  margin-bottom:22px;
}
.ab-about-heading {
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:clamp(1.85rem, 3.4vw, 3.6rem); font-weight:400;
  color:var(--text-heading); line-height:1.2; letter-spacing:0;
  max-width:780px; margin:0 auto 52px;
}
.ab-about-text {
  display:grid; grid-template-columns:1fr; gap:24px;
  max-width:1000px; margin:0 auto; text-align:left;
}
.ab-about-text p {
  font-family:'Manrope',sans-serif; font-size:1rem; font-weight:300;
  color:var(--gray-4); line-height:1.92; margin:0;
}

/* ── Shared stroke text mixin ── */
.ab-m-s1-num, .ab-m-s2-feat-num, .ab-m-s2-num, .ab-m-s3-num {
  font-family:'Cormorant Garamond',Georgia,serif; font-weight:200; line-height:1;
  -webkit-text-stroke:1px var(--text-heading); color:transparent; letter-spacing:-.03em;
}
.ab-m-s1-num sup, .ab-m-s2-feat-num sup, .ab-m-s2-num sup, .ab-m-s3-num sup {
  font-size:.42em; vertical-align:super;
}

/* Layout 1 removed */

/* ── LAYOUT 2: Featured hero + 2×2 grid ── */
.ab-m-s2 {
  display:grid; grid-template-columns:1fr 1fr;
  gap:0 64px; margin-top:64px; align-items:center;
}
.ab-m-s2-featured {
  display:flex; flex-direction:column; align-items:center;
  gap:14px; padding:32px 0;
  border-right:1px solid var(--gray-1);
  padding-right:64px;
}
.ab-m-s2-feat-num { font-size:clamp(5rem,8vw,9rem); }
.ab-m-s2-feat-lbl {
  font-family:'Manrope',sans-serif; font-size:0.65rem; font-weight:600;
  letter-spacing:.2em; text-transform:uppercase; color:var(--gray-3); text-align:center;
}
.ab-m-s2-grid {
  display:grid; grid-template-columns:1fr 1fr; gap:32px 24px;
}
.ab-m-s2-cell {
  display:flex; flex-direction:column; align-items:flex-start; gap:8px;
}
.ab-m-s2-num { font-size:clamp(2.2rem,3vw,3.4rem); }
.ab-m-s2-lbl {
  font-family:'Manrope',sans-serif; font-size:0.65rem; font-weight:600;
  letter-spacing:.18em; text-transform:uppercase; color:var(--gray-3);
}

/* Layout 3 removed */

@media(max-width:768px) {
  .ab-m-s1 { flex-wrap:wrap; gap:32px; }
  .ab-m-s1-item { min-width:calc(50% - 16px); }
  .ab-m-s1-item--down { transform:none; }
  .ab-m-s2 { grid-template-columns:1fr; gap:40px; margin-left:0; }
  .ab-m-s2-featured { border-right:none; padding:0 0 40px; border-bottom:1px solid var(--gray-1); }
  .ab-m-s2-grid { justify-items:center; gap:32px 0; width:100%; }
  .ab-m-s2-cell { align-items:center; text-align:center; width:100%; }
  .ab-m-s3-num { width:140px; font-size:clamp(2rem,6vw,2.8rem); }
}

/* Options A/B/C removed */

/* ── TIMELINE — Building Elevation ── */
.ab-timeline { background:#040404; padding:104px 0; }
.ab-tl-inner {
  max-width:960px; margin:0 auto;
  padding:0 clamp(15px,4vw,80px);
}
.ab-tl-header { text-align:center; margin-bottom:64px; }
.ab-tl-eyebrow {
  display:inline-block; font-family:'Manrope',sans-serif;
  font-size:0.75rem; font-weight:600; letter-spacing:.22em; text-transform:uppercase;
  background: none; color: rgba(255,255,255,.55); padding: 0;
  margin-bottom:16px;
}
.ab-tl-heading {
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:clamp(1.7rem,3vw,2.8rem); font-weight:300;
  color:#fff; line-height:1.15; letter-spacing:-.02em;
}

/* The building frame */
.ab-tl-roof {
  display:none;


  overflow:hidden;
}

.ab-tl-floor {
  display:grid; grid-template-columns:48px 130px 1fr;



  transition:background .25s;
  position:relative;
}
.ab-tl-floor:hover { background:rgba(255,255,255,.02); }

/* Floor level indicator — vertical rotated text */
.ab-tl-level {
  display:flex; align-items:center; justify-content:center;

  font-family:'Manrope',sans-serif; font-size:0.65rem; font-weight:700;
  letter-spacing:.08em; color:rgba(255,255,255,.18);
  writing-mode:vertical-rl; text-orientation:mixed;
  user-select:none;
}

/* Year column */
.ab-tl-year-col {
  padding:32px 20px 32px 28px;

  display:flex; flex-direction:column; justify-content:center; gap:4px;
}
.ab-tl-year {
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:clamp(1.1rem,1.6vw,1.4rem); font-weight:200; color:rgba(255,255,255,.4);
  line-height:1; letter-spacing:-.03em;
}
.ab-tl-year-tag {
  display:inline-block; font-family:'Manrope',sans-serif;
  font-size:0.65rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:rgba(255,255,255,.18); padding:2px 8px;
 align-self:flex-start;
  margin-top:6px;
}

/* Content column */
.ab-tl-content-col {
  padding:32px 36px;
  display:flex; flex-direction:column; justify-content:center; gap:8px;
}
.ab-tl-milestone {
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:clamp(1.4rem,2.4vw,2.2rem); font-weight:500;
  color:#fff; line-height:1.3; margin:0;
}
.ab-tl-desc {
  font-family:'Manrope',sans-serif; font-size:1rem; font-weight:300;
  color:rgba(255,255,255,.38); line-height:1.75; margin:0;
}

/* Foundation */
.ab-tl-foundation {
  height:10px;




}

/* ── FOUNDER + TEAM ── */
.ab-team { background:#faf9f7; padding:104px 0; }
.ab-team-inner { max-width:var(--max-w); margin:0 auto; padding:0 clamp(15px,4vw,80px); }

/* Founder */
.ab-founder {
  display:grid; grid-template-columns:1fr 1fr; gap:0;
  background:#fff; box-shadow:var(--sh-xl); margin-bottom:88px;
  overflow:hidden;
}
.ab-founder-img { position:relative; overflow:hidden; aspect-ratio:3/4; background:var(--light-gray); }
.ab-founder-img img {
  width:100%; height:100%; object-fit:cover; display:block;
  filter:grayscale(.15) brightness(.92);
  transition:transform .85s cubic-bezier(.16,1,.3,1), filter .5s;
}
.ab-founder:hover .ab-founder-img img { transform:scale(1.06); filter:grayscale(0) brightness(1); }
.ab-founder-content {
  padding:64px 56px; display:flex;
  flex-direction:column; justify-content:center; gap:18px;
}
.ab-founder-role {
  font-family:'Manrope',sans-serif; font-size:0.65rem; font-weight:600;
  letter-spacing:.22em; text-transform:uppercase;
  display: inline-block; align-self: flex-start;
  background: var(--text-heading);
  color: #fff; padding: 5px 14px;
}
.ab-founder-name {
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:clamp(1.85rem,3.4vw,3.6rem); font-weight:400;
  color:var(--text-heading); line-height:1.12; letter-spacing:-.02em;
}
.ab-founder-rule { width:56px; height:1px; background:var(--red); }
.ab-founder-bio {
  font-family:'Manrope',sans-serif; font-size:1rem; font-weight:300;
  color:var(--gray-4); line-height:1.9; max-width:440px;
}
.ab-founder-sig-wrap { margin-top:8px; display:flex; flex-direction:column; gap:5px; }
.ab-founder-sig {
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:clamp(1.1rem,1.6vw,1.4rem); font-weight:400; font-style:italic;
  color:var(--text-heading); letter-spacing:.02em;
}
.ab-founder-sig-role {
  font-family:'Manrope',sans-serif; font-size:0.65rem; font-weight:600;
  letter-spacing:.18em; text-transform:uppercase; color:var(--gray-3);
}

/* Team grid */
.ab-team-head { text-align:center; margin-bottom:52px; }
.ab-team-eyebrow {
  display:inline-block; font-family:'Manrope',sans-serif;
  font-size:0.75rem; font-weight:600; letter-spacing:.22em; text-transform:uppercase;
  background: none; color: var(--blue); padding: 0;
  margin-bottom:14px;
}
.ab-team-heading {
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:clamp(1.85rem,3.4vw,3.6rem); font-weight:400;
  color:var(--text-heading); letter-spacing:-.02em; line-height:1.2;
}
.ab-team-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--gray-1); }
.ab-team-card { display:flex; flex-direction:column; background:#faf9f7; }
.ab-team-card-img { overflow:hidden; aspect-ratio:3/4; position:relative; background:var(--light-gray); }
.ab-team-card-img img {
  width:100%; height:100%; object-fit:cover; display:block;
  filter:grayscale(.15) brightness(.92);
  transition:transform .85s cubic-bezier(.16,1,.3,1), filter .5s;
}
.ab-team-card:hover .ab-team-card-img img { transform:scale(1.06); filter:grayscale(0) brightness(1); }
.ab-team-avatar {
  width:100%; aspect-ratio:3/4;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(140deg, #1a1a2e 0%, #0f0f1a 100%);
}
.ab-team-avatar-init {
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:3.5rem; font-weight:200; color:rgba(255,255,255,.25); letter-spacing:.08em;
}
.ab-team-card-info { padding:20px 22px 24px; border-top:1px solid var(--gray-1); }
.ab-team-card-name {
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:clamp(1.1rem,1.6vw,1.4rem); font-weight:500; color:var(--text-heading); margin:0 0 4px;
}
.ab-team-card-role {
  font-family:'Manrope',sans-serif; font-size:0.65rem; font-weight:600;
  letter-spacing:.15em; text-transform:uppercase; color:var(--gray-3);
}

/* ── VISION MISSION VALUES ── */
.ab-vmv { background:#050505; padding:104px 0; }
.ab-vmv-inner { max-width:var(--max-w); margin:0 auto; padding:0 clamp(15px,4vw,80px); }
.ab-vmv-header { text-align:center; margin-bottom:72px; }
.ab-vmv-eyebrow {
  display:inline-block; font-family:'Manrope',sans-serif;
  font-size:0.75rem; font-weight:600; letter-spacing:.22em; text-transform:uppercase;
  background: none; color: rgba(255,255,255,.55); padding: 0;
  margin-bottom:16px;
}
.ab-vmv-heading {
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:clamp(1.85rem,3.4vw,3.6rem); font-weight:400;
  color:#fff; line-height:1.15; letter-spacing:-.02em;
}

/* 3-card grid */
.ab-vmv-grid {
  display:grid; grid-template-columns:repeat(3,1fr); gap:16px;
}
.ab-vmv-card {
  padding:56px 48px; position:relative;
  background:rgba(255,255,255,.04);
  transition:background .3s;
  overflow:hidden;
}
.ab-vmv-card:hover { background:rgba(255,255,255,.07); }

/* Big decorative number */
.ab-vmv-card-bg-num {
  position:absolute; top:-10px; right:20px;
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:9rem; font-weight:200; color:rgba(255,255,255,.03);
  line-height:1; letter-spacing:-.04em; pointer-events:none; user-select:none;
}
.ab-vmv-icon { color:rgba(255,255,255,.35); margin-bottom:28px; transition:color .3s; }
.ab-vmv-card:hover .ab-vmv-icon { color:var(--gold); }
.ab-vmv-icon svg { width:36px; height:36px; }
.ab-vmv-label {
  display:block; font-family:'Manrope',sans-serif;
  font-size:0.65rem; font-weight:600; letter-spacing:.22em; text-transform:uppercase;
  color:rgba(255,255,255,.25); margin-bottom:14px;
}
.ab-vmv-title {
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:clamp(1.3rem,2.1vw,2rem); font-weight:400;
  color:#fff; line-height:1.25; letter-spacing:-.01em; margin:0 0 16px;
}
.ab-vmv-text {
  font-family:'Manrope',sans-serif; font-size:1rem; font-weight:300;
  color:rgba(255,255,255,.4); line-height:1.85;
}

/* Core Values — below VMV cards */
.ab-values { margin-top:48px; padding-top:48px; }
.ab-values-head {
  display:flex; align-items:center; justify-content:center;
  margin-bottom:28px;
}
.ab-values-heading {
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:clamp(1.85rem,3.4vw,3.6rem); font-weight:400; color:#ffffff;
  letter-spacing:-.01em;
}
.ab-values-list { display:grid; grid-template-columns:repeat(2,1fr); gap:2px; }
.ab-value-item {
  background:rgba(255,255,255,.04);
  border-radius:4px;
}
.ab-value-item--open { background:rgba(255,255,255,.07); }
.ab-value-trigger {
  width:100%; display:flex; align-items:center; gap:20px;
  padding:24px 20px; background:none; border:none; cursor:pointer;
  text-align:left;
}
.ab-value-icon {
  flex-shrink:0; width:40px; height:40px;
  display:flex; align-items:center; justify-content:center;
  color:rgba(255,255,255,.6);
}
.ab-value-icon svg { width:24px; height:24px; }
.ab-value-item--open .ab-value-icon { color:#fff; }
.ab-value-title {
  flex:1;
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:clamp(1.3rem,2.1vw,2rem); font-weight:400;
  color:rgba(255,255,255,.7); line-height:1.3;
}
.ab-value-item--open .ab-value-title { color:#fff; }
.ab-value-chevron {
  flex-shrink:0; width:18px; height:18px;
  color:rgba(255,255,255,.4);
  transition:transform .3s ease;
}
.ab-value-item--open .ab-value-chevron { transform:rotate(180deg); color:#fff; }
.ab-value-body {
  overflow:hidden;
  max-height:0;
  transition:max-height .35s ease, padding .35s ease;
  padding:0 0 0 60px;
}
.ab-value-item--open .ab-value-body {
  max-height:120px;
  padding:0 0 22px 60px;
}
.ab-value-text {
  font-family:'Manrope',sans-serif; font-size:1rem; font-weight:300;
  color:rgba(255,255,255,.55); line-height:1.8; margin:0;
}

/* ── PROJECTS CTA ── */
.ab-proj-cta { position:relative; overflow:hidden; }
.ab-proj-cta-bg {
  position:absolute; inset:0;
  background-size:cover; background-position:center;
  transform:scale(1.02);
  transition:transform 8s ease;
}
.ab-proj-cta:hover .ab-proj-cta-bg { transform:scale(1.06); }
.ab-proj-cta-overlay {
  position:absolute; inset:0;
  background:linear-gradient(to bottom, rgba(0,0,0,.72) 0%, rgba(0,0,0,.82) 100%);
}
.ab-proj-cta-inner {
  position:relative; z-index:1;
  text-align:center;
  padding:140px clamp(15px,4vw,80px);
  max-width:var(--max-w); margin:0 auto;
}
.ab-proj-cta-eyebrow {
  display:inline-block; font-family:'Manrope',sans-serif;
  font-size:0.75rem; font-weight:600; letter-spacing:.22em; text-transform:uppercase;
  background: none; color: rgba(255,255,255,.55); padding: 0;
  margin-bottom:24px;
}
.ab-proj-cta-heading {
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:clamp(1.85rem,3.4vw,3.6rem); font-weight:400;
  color:#fff; line-height:1.1; letter-spacing:-.02em; margin:0 auto 12px;
  max-width:760px;
}
.ab-proj-cta-desc {
  font-family:'Manrope',sans-serif; font-size:1rem; font-weight:300;
  color:rgba(255,255,255,.7); line-height:1.8; max-width:560px;
  margin:0 auto 36px; text-align:center;
}
.ab-proj-cta-btns { display:flex; align-items:center; justify-content:center; gap:16px; flex-wrap:wrap; }
.ab-proj-cta-btn-primary {
  display:inline-flex; align-items:center; gap:8px;
  padding:10px 22px; background:#fff; color:var(--dark);
  font-family:'Manrope',sans-serif; font-size:0.75rem; font-weight:500;
  letter-spacing:.08em; text-transform:uppercase;
  border:1px solid #fff; transition:background .22s,color .22s;
}
.ab-proj-cta-btn-primary:hover { background:transparent; color:#fff; }
.ab-proj-cta-btn-primary svg { width:14px; height:14px; transition:transform .2s; }
.ab-proj-cta-btn-primary:hover svg { transform:translateX(5px); }
.ab-proj-cta-btn-ghost {
  display:inline-flex; align-items:center; gap:8px;
  padding:10px 22px; background:transparent; color:#fff;
  font-family:'Manrope',sans-serif; font-size:0.75rem; font-weight:500;
  letter-spacing:.08em; text-transform:uppercase;
  border:1px solid rgba(255,255,255,.35);
  transition:border-color .22s,background .22s;
}
.ab-proj-cta-btn-ghost:hover { border-color:#fff; background:rgba(255,255,255,.08); color:#fff; }

/* ── RESPONSIVE ── */
@media (max-width:960px) {
  /* .ab-hero-heading — clamp() handles responsiveness */
  .ab-anim-building, .ab-anim-compass, .ab-anim-plan { display:none; }
  .ab-about-text { grid-template-columns:1fr; gap:24px; }
  .ab-metrics-inner { flex-wrap:wrap; }
  .ab-metric { flex:none; width:50%; padding:40px 20px; border-bottom:1px solid rgba(255,255,255,.06); }
  .ab-metric:nth-child(even) { border-right:none; }
  .ab-tl-floor { grid-template-columns:36px 100px 1fr; }
  /* .ab-tl-year — clamp() handles responsiveness */
  .ab-founder { grid-template-columns:1fr; }
  .ab-founder-img { aspect-ratio:3/4; }
  .ab-founder-content { padding:44px 36px; }
  .ab-team-grid { grid-template-columns:1fr 1fr; }
  .ab-vmv-grid { grid-template-columns:1fr; }
  .ab-values-list { grid-template-columns:1fr; gap:2px; }
}
@media (max-width:640px) {
  .ab-hero-stats { flex-wrap:wrap; gap:20px; }
  .ab-hero-stat-div { display:none; }
  .ab-tl-floor { grid-template-columns:1fr; }
  .ab-tl-level { display:none; }
  .ab-tl-year-col { border-right:none; border-bottom:1px solid rgba(255,255,255,.07); padding:20px 20px 12px; }
  .ab-tl-content-col { padding:16px 20px 28px; }
  .ab-team-grid { grid-template-columns:1fr 1fr; }
  .ab-value-body.ab-value-item--open { padding-left: 0; }
  .ab-vmv-card { padding:36px 28px; }
}
@media (max-width:480px) {
  .ab-team-grid { grid-template-columns:1fr; }
}


/* ============================================================
   GLOBAL CONTENT FONT SIZE INCREASE
   ============================================================ */

/* Base paragraph — T5 */
p { font-size: 0.9rem; }

/* ── Homepage sections — T2/T3/T5 already set above; these override specificity ── */
.gv-life-subtext       { font-size: 1rem; }
.gv-ms2-heading        { font-size: clamp(1.85rem, 3.4vw, 3.6rem); }
.gv-upd-f-desc         { font-size: 1rem; }
.gv-upd-f-title        { font-size: clamp(1.3rem, 2.1vw, 2rem); }
.gv-proj-b-name        { font-size: clamp(1.3rem, 2.1vw, 2rem); }
.gv-proj-b-location    { font-size: 0.85rem; }
.gv-proj-b-type        { display:inline-block; font-size: 0.65rem; background:var(--text-heading); color:#fff; padding:5px 14px; }
.gv-why-body p         { font-size: 1rem; }
.gv-enquiry-stripe-sub { font-size: 1rem; }
.gv-enquiry-stripe-heading { font-size: clamp(1.85rem, 3.4vw, 3.6rem); }
.gv-ms2-lbl            { font-size: 0.65rem; }
.gv-updates-heading    { font-size: clamp(1.85rem, 3.4vw, 3.6rem); }
.gv-life-hub-title     { font-size: clamp(1.1rem, 1.6vw, 1.4rem); }

/* ── About page sections ── */
.ab-about-text p   { font-size: 1rem; }
.ab-tl-desc        { font-size: 1rem; }
.ab-tl-milestone   { font-size: clamp(1.3rem, 2.1vw, 2rem); }
.ab-vmv-text       { font-size: 1rem; }
.ab-vmv-title      { font-size: clamp(1.3rem, 2.1vw, 2rem); }
.ab-founder-bio    { font-size: 1rem; }
.ab-value-text     { font-size: 1rem; }
.ab-value-title    { font-size: clamp(1.3rem, 2.1vw, 2rem); }
.ab-hero-sub       { font-size: 1rem; }
.ab-about-heading  { font-size: clamp(1.85rem, 3.4vw, 3.6rem); }

/* ── Footer ── */
.gv-footer-about   { font-size: 0.9rem; }
.gv-footer-nav a   { font-size: 0.9rem; }
.gv-footer-contact p,
.gv-footer-contact a { font-size: 0.9rem; }


/* ============================================================
   OUR JOURNEY — Premium bento card grid
   Black + red + blue radial gradient background
   ============================================================ */
.ab-journey {
  padding: 104px 0;
  background: #050505;
  position: relative; overflow: hidden;
}

/* Subtle noise/grain overlay for depth */
.ab-journey::before {
  content: '';
  position: absolute; inset: 0; z-index: 0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");
  background-size: 200px 200px;
  pointer-events: none;
}

.ab-journey-inner {
  position: relative; z-index: 1;
  max-width: var(--max-w); margin: 0 auto;
  padding: 0 clamp(15px,4vw,80px);
}

.ab-journey-header {
  text-align: center; margin-bottom: 64px;
}
.ab-journey-eyebrow {
  display: inline-block; font-family: 'Manrope', sans-serif;
  font-size: 0.75rem; font-weight: 600; letter-spacing: .22em; text-transform: uppercase;
  background: none; color: rgba(255,255,255,.55); padding: 0;
  margin-bottom: 16px;
}
.ab-journey-heading {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(1.85rem,3.4vw,3.6rem); font-weight: 400;
  color: #fff; line-height: 1.15; letter-spacing: -.02em;
}

/* Bento grid — 3 cols, creative spanning */
.ab-journey-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}

/* Default card */
.ab-journey-card {
  position: relative; overflow: hidden;
  background: rgba(255,255,255,.04);
  padding: 40px 36px;
  display: flex; flex-direction: column; gap: 20px;
  transition: background .35s;
  cursor: default;
}
.ab-journey-card:hover { background: rgba(255,255,255,.07); }

/* Creative spanning — 7 cards */
.ab-journey-card:nth-child(1) { grid-column: 1 / 3; }          /* Founded — wide */
.ab-journey-card:nth-child(4) { grid-column: 2 / 4; }          /* Bangalore — wide right */
.ab-journey-card:nth-child(5) { grid-column: 1 / 3; }          /* Award — wide */
.ab-journey-card:nth-child(7) { grid-column: 1 / 4; }          /* Latest — full width */

/* Large faded year watermark */
.ab-journey-card-year {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(3.5rem,6vw,7rem); font-weight: 200;
  line-height: 1; letter-spacing: -.04em;
  color: rgba(255,255,255,.12);
  transition: color .35s;
  flex-shrink: 0;
}
.ab-journey-card:hover .ab-journey-card-year { color: rgba(255,255,255,.22); }

/* Full-width card — year inline */
.ab-journey-card:nth-child(7) {
  flex-direction: row; align-items: center; gap: 48px;
}
.ab-journey-card:nth-child(7) .ab-journey-card-year {
  font-size: clamp(4rem,7vw,8rem);
  flex-shrink: 0;
}

.ab-journey-card-body {
  display: flex; flex-direction: column; gap: 10px;
}
.ab-journey-card-tag {
  display: inline-block; align-self: flex-start; font-family: 'Manrope', sans-serif;
  font-size: 0.65rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase;
  color: rgba(255,255,255,.35);
}
.ab-journey-card-title {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(1.3rem,2.1vw,2rem); font-weight: 400;
  color: #fff; line-height: 1.3; letter-spacing: -.01em; margin: 0;
}
.ab-journey-card-desc {
  font-family: 'Manrope', sans-serif;
  font-size: 1rem; font-weight: 300;
  color: rgba(255,255,255,.42); line-height: 1.8; margin: 0;
}

@media (max-width: 960px) {
  .ab-journey-grid { grid-template-columns: 1fr 1fr; }
  .ab-journey-card:nth-child(n) { grid-column: auto; }
  .ab-journey-card:nth-child(7) { flex-direction: column; gap: 20px; }
}
@media (max-width: 580px) {
  .ab-journey-grid { grid-template-columns: 1fr; }
  .ab-journey-card:nth-child(7) { align-items: flex-start; }
}

/* ── Journey background decoration ── */
.ab-jdeco {
  position: absolute; inset: 0; z-index: 0;
  pointer-events: none; overflow: hidden;
}
.ab-jdeco-dots {
  position: absolute; inset: 0;
  background-image: radial-gradient(circle, rgba(255,255,255,.07) 1px, transparent 1px);
  background-size: 26px 26px;
}
.ab-jdeco-plus {
  position: absolute; display: block; width: 10px; height: 10px;
}
.ab-jdeco-plus::before,
.ab-jdeco-plus::after {
  content: ''; position: absolute; background: rgba(255,255,255,.16);
}
.ab-jdeco-plus::before { width: 1px; height: 100%; left: 50%; top: 0; transform: translateX(-50%); }
.ab-jdeco-plus::after  { height: 1px; width: 100%; top: 50%; left: 0; transform: translateY(-50%); }
.ab-jdeco-diamond {
  position: absolute; display: block;
  width: 5px; height: 5px;
  background: rgba(255,255,255,.13);
  transform: rotate(45deg);
}
.ab-jdeco-ring {
  position: absolute; display: block;
  width: 14px; height: 14px;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 50%;
}


/* ============================================================
   PROJECTS CATEGORY PAGE — gvpc-* namespace
   ============================================================ */

/* ── Hero ── */
.gvpc-hero {
  position: relative; height: 56vh; min-height: 420px;
  overflow: hidden; background: #050505;
  display: flex; align-items: flex-end;
}
.gvpc-hero-bg {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  animation: gvpc-settle 14s ease-out forwards;
}
@keyframes gvpc-settle {
  from { transform: scale(1.07); }
  to   { transform: scale(1.02); }
}
.gvpc-hero-overlay {
  display: none;
}
.gvpc-hero-content {
  position: relative; z-index: 2;
  width: 100%; max-width: var(--max-w); margin: 0 auto;
  padding: calc(var(--header-h) + 20px) clamp(15px,4vw,80px) 56px;
  text-align: left;
}
.gvpc-hero-eyebrow {
  display: none;
}
.gvpc-hero-heading {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(2.4rem, 4.4vw, 5rem); font-weight: 400;
  color: #fff; line-height: 1.05; letter-spacing: -.02em;
  max-width: 760px; margin: 0 0 18px;
  text-shadow: 0 2px 20px rgba(0,0,0,.5), 0 1px 4px rgba(0,0,0,.4);
  animation: ab-fade-up .9s .25s cubic-bezier(.16,1,.3,1) both;
}
.gvpc-hero-sub {
  display: none;
}
.page-projects .gvpc-hero-sub,
.page-project-listing .gvpc-hero-sub,
.page-project-category .gvpc-hero-sub,
.page-project-folders .gvpc-hero-sub {
  display: block;
  font-family: 'Manrope', sans-serif; font-size: clamp(0.95rem, 1.3vw, 1.15rem);
  font-weight: 300; color: rgba(255,255,255,.85); line-height: 1.5;
  max-width: 560px; margin: 0 0 24px;
  text-shadow: 0 1px 12px rgba(0,0,0,.5);
  animation: ab-fade-up .9s .4s cubic-bezier(.16,1,.3,1) both;
}

/* ── Category cards section ── */
.gvpc-section {
  background: var(--off-white);
  padding: 72px clamp(15px,4vw,80px);
}

.gvpc-grid {
  max-width: var(--max-w); margin: 0 auto;
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px;
}
.gvpc-grid--1 { grid-template-columns: 1fr; }
.gvpc-grid--2 { grid-template-columns: repeat(2, 1fr); }
.gvpc-grid--3 { grid-template-columns: repeat(3, 1fr); }

/* ── Each category card ── */
.gvpc-card {
  position: relative; overflow: hidden;
  display: flex; flex-direction: column; justify-content: space-between;
  min-height: 580px; cursor: pointer; text-decoration: none;
  background: #111;
}

/* Image */
.gvpc-card-img {
  position: absolute; inset: 0;
}
.gvpc-card-img img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  filter: brightness(.75) saturate(.8);
  transition: transform 1.4s cubic-bezier(.16,1,.3,1), filter .7s;
}
.gvpc-card:hover .gvpc-card-img img {
  transform: scale(1.06);
  filter: brightness(.95) saturate(1);
}

/* Overlay */
.gvpc-card-overlay {
  position: absolute; inset: 0;
  background:
    linear-gradient(to top, rgba(0,0,0,.92) 0%, rgba(0,0,0,.45) 50%, rgba(0,0,0,.1) 100%);
  transition: background .4s;
}
.gvpc-card:hover .gvpc-card-overlay {
  background:
    linear-gradient(to top, rgba(0,0,0,.95) 0%, rgba(0,0,0,.55) 55%, rgba(0,0,0,.15) 100%);
}

/* Top: clipped-corner status badge */
.gvpc-card-top {
  position: relative; z-index: 2;
  padding: 24px 24px 0;
}
.gvpc-card-badge {
  position: relative;
  display: inline-block;
  padding: 5px 14px;
  background: var(--text-heading);
  font-family: 'Manrope', sans-serif; font-size: 0.65rem; font-weight: 700;
  letter-spacing: .18em; text-transform: uppercase;
  color: #fff;
  transition: background .3s;
}
.gvpc-card:hover .gvpc-card-badge { background: var(--text-heading); }


/* Bottom: content */
.gvpc-card-body {
  position: relative; z-index: 2;
  padding: 0 28px 32px;
  display: flex; flex-direction: column; gap: 10px;
}
.gvpc-card-count {
  display: inline-block; align-self: flex-start;
  font-family: 'Manrope', sans-serif; font-size: 0.65rem; font-weight: 600;
  letter-spacing: .18em; text-transform: uppercase;
  color: rgba(255,255,255,.5);
}
.gvpc-card-title {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(1.3rem, 2.1vw, 2rem); font-weight: 400;
  color: #fff; line-height: 1.1; letter-spacing: -.02em; margin: 0;
}
.gvpc-card-tagline {
  font-family: 'Manrope', sans-serif; font-size: 1rem; font-weight: 300;
  color: rgba(255,255,255,.65); line-height: 1.8; margin: 0;
  max-width: 420px;
  opacity: 1; transform: translateY(0);
  transition: opacity .35s, transform .35s;
}

.gvpc-card-cta {
  display: inline-flex; align-items: center; gap: 8px;
  font-family: 'Manrope', sans-serif; font-size: 0.75rem; font-weight: 500;
  letter-spacing: .1em; text-transform: uppercase; color: #fff;
  padding: 12px 0; border-bottom: 1px solid rgba(255,255,255,.25);
  width: fit-content;
  transition: gap .2s, border-color .2s;
}
.gvpc-card:hover .gvpc-card-cta { gap: 14px; border-color: rgba(255,255,255,.7); }
.gvpc-card-cta svg { width: 13px; height: 13px; transition: transform .2s; }
.gvpc-card:hover .gvpc-card-cta svg { transform: translateX(4px); }

/* ── Breadcrumb ── */
.gvpc-bc {
  background: var(--off-white);
  border-bottom: 1px solid var(--gray-1);
}
.gvpc-bc-inner {
  max-width: var(--max-w); margin: 0 auto;
  padding: 14px clamp(15px,4vw,80px);
  display: flex; align-items: center; gap: 6px; flex-wrap: wrap;
}
.gvpc-bc-link {
  font-family: 'Manrope', sans-serif; font-size: 0.9rem; font-weight: 500;
  color: var(--text-light); transition: color .2s;
}
.gvpc-bc-link:hover { color: var(--text-heading); }
.gvpc-bc-sep { display: flex; align-items: center; color: var(--gray-2); }
.gvpc-bc-sep svg { width: 12px; height: 12px; }
.gvpc-bc-current {
  font-family: 'Manrope', sans-serif; font-size: 0.9rem; font-weight: 600;
  color: var(--text-heading);
}

/* ── Responsive ── */
@media (max-width: 960px) {
  .gvpc-grid,
  .gvpc-grid--1,
  .gvpc-grid--2,
  .gvpc-grid--3 { grid-template-columns: 1fr; gap: 16px; }
  .gvpc-card { min-height: 580px; }
  .gvpc-card-tagline { opacity: 1; transform: none; }
}
@media (max-width: 640px) {
  .gvpc-card { min-height: 580px; }
  .gvpc-section { padding: 48px clamp(15px,4vw,40px); }
}


/* ============================================================
   PROJECT DETAIL PAGE — gvpd-* namespace
   ============================================================ */

/* ── Shared section typography ── */
.gvpd-section-eyebrow {
  display: inline-block; font-family: 'Manrope', sans-serif;
  font-size: 0.75rem; font-weight: 600; letter-spacing: .22em; text-transform: uppercase;
  background: none; color: var(--blue); padding: 0;
  margin-bottom: 14px;
}
.gvpd-section-eyebrow--light {
  background: none; color: rgba(255,255,255,.55);
}
.gvpd-section-heading {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(1.85rem, 3.4vw, 3.6rem); font-weight: 400;
  color: var(--text-heading); line-height: 1.1; letter-spacing: -.02em; margin: 0;
}
.gvpd-section-heading--light { color: #fff; }
.gvpd-section-header { margin-bottom: 56px; }
.gvpd-section-header--light .gvpd-section-heading { color: #fff; }

/* ── 1. Hero ── */
.gvpd-hero {
  position: relative; height: 92vh; min-height: 640px;
  overflow: hidden; background: #050505;
  display: flex; align-items: flex-end;
}
.gvpd-hero-bg {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  animation: gvpd-settle 16s ease-out forwards;
}
@keyframes gvpd-settle {
  from { transform: scale(1.07); }
  to   { transform: scale(1.02); }
}
.gvpd-hero-overlay {
  display: none;
}
.gvpd-hero-content {
  position: relative; z-index: 2; width: 100%;
  max-width: var(--max-w); margin: 0 auto;
  padding: calc(var(--header-h) + 60px) clamp(15px,4vw,80px) 110px;
  text-align: left;
}
.gvpd-hero-eyebrow {
  display: none;
}
.gvpd-hero-heading {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(2.4rem, 4.4vw, 5rem); font-weight: 400;
  color: #fff; line-height: 1.02; letter-spacing: -.02em;
  max-width: 760px; margin: 0 0 16px;
  text-shadow: 0 2px 20px rgba(0,0,0,.5), 0 1px 4px rgba(0,0,0,.4);
  animation: ab-fade-up .9s .25s cubic-bezier(.16,1,.3,1) both;
}
.gvpd-hero-tagline {
  font-family: 'Manrope', sans-serif; font-size: clamp(0.95rem, 1.3vw, 1.15rem);
  font-weight: 300; color: rgba(255,255,255,.85); line-height: 1.5;
  max-width: 560px; margin: 0 0 24px;
  text-shadow: 0 1px 12px rgba(0,0,0,.5);
  animation: ab-fade-up .9s .4s cubic-bezier(.16,1,.3,1) both;
}
.gvpd-hero-meta {
  display: flex; align-items: center; flex-wrap: wrap; gap: 12px;
  margin: 0 0 24px;
}
.gvpd-hero-type {
  font-family: 'Manrope', sans-serif; font-size: 0.65rem; font-weight: 600;
  letter-spacing: .12em; text-transform: uppercase;
  color: rgba(255,255,255,.7);
}
.gvpd-hero-sep { width: 4px; height: 4px; border-radius: 50%; background: rgba(255,255,255,.25); flex-shrink: 0; }
.gvpd-hero-price {
  font-family: 'Cormorant Garamond', Georgia, serif; font-size: clamp(1.1rem,1.6vw,1.4rem);
  font-weight: 400; color: #fff;
}
.gvpd-hero-status {
  display: inline-flex; align-items: center; gap: 7px;
  font-family: 'Manrope', sans-serif; font-size: 0.65rem; font-weight: 700;
  letter-spacing: .16em; text-transform: uppercase; color: rgba(255,255,255,.7);
}
.gvpd-status-dot { width: 5px; height: 5px; border-radius: 50%; flex-shrink: 0; }
.gvpd-hero-status--ongoing   .gvpd-status-dot { background: var(--blue-light); }
.gvpd-hero-status--completed .gvpd-status-dot { background: #4ade80; }
.gvpd-hero-status--upcoming  .gvpd-status-dot { background: var(--gold); }

.gvpd-hero-ctas { display: flex; align-items: center; justify-content: flex-start; gap: 12px; flex-wrap: wrap; margin-bottom: 40px; animation: ab-fade-up .9s .72s cubic-bezier(.16,1,.3,1) both; }
.gvpd-hero-btn-primary {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 10px 22px; background: #fff; color: var(--dark);
  font-family: 'Manrope', sans-serif; font-size: 0.75rem; font-weight: 500;
  letter-spacing: .08em; text-transform: uppercase;
  border: 1px solid #fff; transition: background .22s, color .22s;
}
.gvpd-hero-btn-primary:hover { background: transparent; color: #fff; }
.gvpd-hero-btn-primary svg { width: 13px; height: 13px; transition: transform .2s; }
.gvpd-hero-btn-primary:hover svg { transform: translateX(4px); }
.gvpd-hero-btn-ghost {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 10px 22px; background: transparent; color: #fff;
  font-family: 'Manrope', sans-serif; font-size: 0.75rem; font-weight: 500;
  letter-spacing: .08em; text-transform: uppercase;
  border: 1px solid rgba(255,255,255,.35);
  transition: border-color .22s, background .22s;
}
.gvpd-hero-btn-ghost:hover { border-color: #fff; background: rgba(255,255,255,.08); }

/* Stats bar */
.gvpd-hero-statsbar {
  position: absolute; left: 0; right: 0; bottom: 0; z-index: 2;
  background: rgba(5,5,5,.55);
  backdrop-filter: blur(6px);
}
.gvpd-hero-statsbar-inner {
  max-width: var(--max-w); margin: 0 auto;
  padding: 0 clamp(15px,4vw,80px); display: flex;
}
.gvpd-hero-stat {
  flex: 1; padding: 20px 0;
  display: flex; flex-direction: column; align-items: center; gap: 5px;
  border-right: 1px solid rgba(255,255,255,.07);
}
.gvpd-hero-stat:last-child { border-right: none; }
.gvpd-hero-stat-v {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(1.1rem,1.6vw,1.4rem); font-weight: 300; color: #fff; line-height: 1;
}
.gvpd-hero-stat-l {
  font-family: 'Manrope', sans-serif; font-size: 0.65rem; font-weight: 600;
  letter-spacing: .16em; text-transform: uppercase; color: rgba(255,255,255,.32);
}

/* ── 2. Sticky nav ── */
.gvpd-nav {
  background: #fff; border-bottom: 1px solid var(--gray-1);
  position: sticky; top: var(--header-h); z-index: 900;
  box-shadow: 0 2px 16px rgba(0,0,0,.05);
}
.gvpd-nav-inner {
  max-width: var(--max-w); margin: 0 auto;
  padding: 0 clamp(15px,4vw,80px);
  display: flex; align-items: center; overflow-x: auto;
  scrollbar-width: none;
}
.gvpd-nav-inner::-webkit-scrollbar { display: none; }
.gvpd-nav-link {
  flex-shrink: 0; display: inline-flex; align-items: center;
  padding: 6px 12px;
  margin: 7px 3px;
  font-family: 'Manrope', sans-serif; font-size: 0.72rem; font-weight: 500;
  letter-spacing: .08em; text-transform: uppercase; color: var(--text-light);
  transition: color .2s, background .2s; white-space: nowrap;
}
.gvpd-nav-link:hover { color: var(--text-heading); background: var(--light-gray); }
.gvpd-nav-link.active { background: var(--text-heading); color: #fff; }
.gvpd-nav-enquire {
  flex-shrink: 0; margin-left: auto;
  display: inline-flex; align-items: center;
  padding: 7px 18px; background: var(--text-heading); color: #fff;
  font-family: 'Manrope', sans-serif; font-size: 0.72rem; font-weight: 600;
  letter-spacing: .08em; text-transform: uppercase;
  border: 1px solid var(--text-heading); white-space: nowrap;
  transition: background .2s, color .2s;
}
.gvpd-nav-enquire:hover { background: transparent; color: var(--text-heading); }

/* ── 3. Key facts — pill format ── */
.gvpd-facts {
  background: var(--off-white); border-bottom: 1px solid var(--gray-1);
  padding: 24px clamp(15px,4vw,80px);
}
.gvpd-facts-inner {
  max-width: var(--max-w); margin: 0 auto;
  display: flex; flex-wrap: wrap; gap: 12px;
}
.gvpd-fact {
  display: flex; flex-direction: column; gap: 4px;
  padding: 12px 20px;
  background: #fff;
  box-shadow: 0 2px 12px rgba(0,0,0,.06), 0 1px 3px rgba(0,0,0,.04);
}
.gvpd-fact-label {
  font-family: 'Manrope', sans-serif; font-size: 0.65rem; font-weight: 600;
  letter-spacing: .18em; text-transform: uppercase; color: var(--gray-3);
}
.gvpd-fact-value {
  font-family: 'Manrope', sans-serif; font-size: 0.9rem; font-weight: 600;
  color: var(--text-heading); line-height: 1.3; white-space: nowrap;
}
.gvpd-fact-value--ongoing   { color: var(--blue); }
.gvpd-fact-value--completed { color: #16a34a; }
.gvpd-fact-value--upcoming  { color: var(--gold); }

/* ── 4. Overview ── */
.gvpd-overview { background: #fff; padding: 104px 0; }
.gvpd-overview-inner {
  max-width: var(--max-w); margin: 0 auto;
  padding: 0 clamp(15px,4vw,80px);
  display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center;
}
.gvpd-overview-rule { width: 48px; height: 1px; background: var(--red); margin: 28px 0 28px; }
.gvpd-overview-para {
  font-family: 'Manrope', sans-serif; font-size: 1rem; font-weight: 300;
  color: var(--text-body); line-height: 1.92; margin-bottom: 16px;
}
.gvpd-overview-tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 28px 0 32px; }
.gvpd-tag {
  display: inline-block; padding: 6px 14px;
  font-family: 'Manrope', sans-serif; font-size: 0.65rem; font-weight: 600;
  letter-spacing: .12em; text-transform: uppercase;
  border: 1px solid var(--gray-1); color: var(--text-body);
}
.gvpd-overview-cta {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 10px 22px; background: var(--text-heading); color: #fff;
  font-family: 'Manrope', sans-serif; font-size: 0.75rem; font-weight: 500;
  letter-spacing: .08em; text-transform: uppercase;
  border: 1px solid var(--text-heading); transition: background .22s, color .22s;
}
.gvpd-overview-cta:hover { background: transparent; color: var(--text-heading); }
.gvpd-overview-cta svg { width: 13px; height: 13px; transition: transform .2s; }
.gvpd-overview-cta:hover svg { transform: translateX(4px); }

.gvpd-overview-img { position: relative; }
.gvpd-overview-img img {
  width: 100%; height: 600px; object-fit: cover; display: block;
  box-shadow: var(--sh-xl);
}
.gvpd-overview-img-badge {
  position: absolute; bottom: -24px; left: -24px;
  background: var(--text-heading); padding: 22px 28px;
  display: flex; flex-direction: column; gap: 4px;
  box-shadow: var(--sh-lg);
}
.gvpd-oib-num {
  font-family: 'Cormorant Garamond', Georgia, serif; font-size: clamp(1.1rem,1.6vw,1.4rem);
  font-weight: 400; color: #fff; line-height: 1;
}
.gvpd-oib-lbl {
  font-family: 'Manrope', sans-serif; font-size: 0.65rem; font-weight: 600;
  letter-spacing: .16em; text-transform: uppercase; color: rgba(255,255,255,.45);
}

/* ── 5. Amenities — shadow cards ── */
.gvpd-amenities { background: var(--off-white); padding: 104px 0; }
.gvpd-amenities-inner {
  max-width: var(--max-w); margin: 0 auto; padding: 0 clamp(15px,4vw,80px);
}
.gvpd-amen-grid {
  display: grid; grid-template-columns: repeat(6, 1fr); gap: 16px;
}
.gvpd-amen-item {
  background: #fff; padding: 28px 16px;
  display: flex; flex-direction: column; align-items: center; gap: 12px;
  box-shadow: 0 4px 18px rgba(0,0,0,.07), 0 1px 4px rgba(0,0,0,.04);
  transition: box-shadow .25s, transform .25s;
}
.gvpd-amen-item:hover {
  box-shadow: 0 8px 32px rgba(0,0,0,.11), 0 2px 8px rgba(0,0,0,.06);
  transform: translateY(-2px);
}
.gvpd-amen-item svg {
  width: 26px; height: 26px; transition: opacity .2s;
  background: #fff; padding: 10px; box-sizing: content-box;
  border-radius: 0; box-shadow: 0 2px 8px rgba(0,0,0,.08);
}
.gvpd-amen-item svg, .gvpd-amen-item svg * { stroke: url(#amenity-grad); color: unset; }
.gvpd-amen-item:hover svg { opacity: 1; }
.gvpd-amen-label {
  font-family: 'Manrope', sans-serif; font-size: 0.65rem; font-weight: 600;
  letter-spacing: .08em; text-transform: uppercase; color: var(--text-body);
  text-align: center; line-height: 1.4;
}

/* ── 6. Specification — cards ── */
.gvpd-spec {
  padding: 104px 0;
  background: #050505;
  position: relative; overflow: hidden;
}
.gvpd-spec::before {
  content: '';
  position: absolute; inset: 0; z-index: 0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");
  background-size: 200px 200px;
  pointer-events: none;
}
.gvpd-spec-inner {
  position: relative; z-index: 1;
  max-width: var(--max-w); margin: 0 auto; padding: 0 clamp(15px,4vw,80px);
}
.gvpd-spec-list { margin-top: 8px; display: flex; flex-direction: column; gap: 10px; }
.gvpd-spec-item {
  background: rgba(255,255,255,.04);
  box-shadow: 0 2px 16px rgba(0,0,0,.3);
}
.gvpd-spec-toggle {
  width: 100%; display: flex; align-items: center; justify-content: space-between;
  padding: 22px 24px; background: none; border: none; cursor: pointer;
  font-family: inherit; text-align: left; gap: 16px;
  transition: padding .3s;
}
.gvpd-spec-item.open .gvpd-spec-toggle { padding-bottom: 8px; }
.gvpd-spec-title {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(1.3rem, 2.1vw, 2rem); font-weight: 400;
  color: rgba(255,255,255,.75); letter-spacing: -.01em; line-height: 1.3;
  transition: color .25s;
}
.gvpd-spec-item.open .gvpd-spec-title,
.gvpd-spec-toggle:hover .gvpd-spec-title { color: #fff; }
.gvpd-spec-icon { flex-shrink: 0; color: rgba(255,255,255,.35); }
.gvpd-spec-icon svg { width: 16px; height: 16px; display: block; }
.gvpd-spec-plus  { display: block; }
.gvpd-spec-minus { display: none; }
.gvpd-spec-item.open .gvpd-spec-plus  { display: none; }
.gvpd-spec-item.open .gvpd-spec-minus { display: block; }
.gvpd-spec-item.open .gvpd-spec-icon { color: var(--red); }
.gvpd-spec-item.open .gvpd-spec-icon svg { stroke: url(#amenity-grad); }
.gvpd-spec-body {
  max-height: 0; overflow: hidden;
  transition: max-height .4s cubic-bezier(.16,1,.3,1);
}
.gvpd-spec-item.open .gvpd-spec-body { max-height: 400px; }
.gvpd-spec-items {
  padding: 0 24px 24px; list-style: none; display: flex; flex-direction: column; gap: 10px;
}
.gvpd-spec-items li {
  font-family: 'Manrope', sans-serif; font-size: 0.9rem; font-weight: 300;
  color: rgba(255,255,255,.45); line-height: 1.7;
  display: flex; align-items: flex-start; gap: 10px;
}
.gvpd-spec-bullet {
  width: 14px; height: 14px; flex-shrink: 0;
  opacity: .9; margin-top: 5px; stroke: rgba(255,255,255,.45); color: unset;
}

/* ── 7. Floor Plans ── */
.gvpd-floor { background: #fff; padding: 104px 0; }
.gvpd-floor-inner {
  max-width: var(--max-w); margin: 0 auto; padding: 0 clamp(15px,4vw,80px);
}
/* Two-row floor selector */
.gvpd-floor-row {
  display: flex; align-items: center; gap: 20px; margin-bottom: 12px;
}
.gvpd-floor-row--floor { margin-bottom: 36px; }
.gvpd-floor-row-label {
  font-family: 'Manrope', sans-serif; font-size: 0.65rem; font-weight: 700;
  letter-spacing: .18em; text-transform: uppercase; color: var(--gray-3);
  white-space: nowrap; min-width: 60px;
}

.gvpd-floor-tabs { display: flex; gap: 0; background: var(--light-gray); width: fit-content; }
.gvpd-floor-tab {
  display: flex; flex-direction: column; align-items: flex-start;
  padding: 10px 22px; background: transparent;
  font-family: 'Manrope', sans-serif; font-size: 0.75rem; font-weight: 500;
  letter-spacing: .08em; text-transform: uppercase;
  color: var(--text-body);
  border: none; cursor: pointer;
  border-right: 1px solid var(--gray-1); transition: background .2s, color .2s;
}
.gvpd-floor-tab:last-child { border-right: none; }
.gvpd-floor-tab:hover { background: var(--gray-1); color: var(--text-heading); }
.gvpd-floor-tab.active { background: var(--text-heading); color: #fff; }
.gvpd-floor-tab-area {
  font-size: 0.65rem; font-weight: 400; color: var(--text-light);
  margin-top: 3px; text-transform: none; letter-spacing: 0;
}
.gvpd-floor-tab.active .gvpd-floor-tab-area { color: rgba(255,255,255,.55); }

/* Secondary (floor range) tabs — slightly smaller */
.gvpd-floor-tabs--secondary { background: transparent; gap: 8px; }
.gvpd-floor-tab--sm {
  padding: 10px 22px; background: transparent;
  border: 1px solid var(--gray-2) !important;
  font-size: 0.75rem;
}
.gvpd-floor-tab--sm:hover { background: var(--light-gray); border-color: var(--gray-3) !important; color: var(--text-heading); }
.gvpd-floor-tab--sm.active { background: var(--text-heading); border-color: var(--text-heading) !important; color: #fff; }
.gvpd-floor-tab--sm.active .gvpd-floor-tab-area { color: rgba(255,255,255,.55); }
.gvpd-floor-tab--sm .gvpd-floor-tab-area { font-size: 0.65rem; }
.gvpd-floor-panel { display: none; }
.gvpd-floor-panel.active { display: block; }
.gvpd-floor-img-wrap { position: relative; overflow: hidden; max-width: 680px; }
.gvpd-floor-img-wrap img {
  width: 100%; height: auto; max-height: 480px; object-fit: contain; display: block;
  filter: brightness(.9); transition: filter .4s;
}
.gvpd-floor-img-wrap:hover img { filter: brightness(1); }
.gvpd-floor-img-overlay {
  position: absolute; bottom: 0; left: 0; right: 0;
  background: linear-gradient(to top, rgba(0,0,0,.7), transparent);
  padding: 24px 28px;
}
.gvpd-floor-img-label {
  font-family: 'Manrope', sans-serif; font-size: 0.65rem; font-weight: 600;
  letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.7);
}
.gvpd-floor-download { margin-top: 20px; }
.gvpd-floor-dl-btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 10px 22px; background: transparent; color: var(--text-body);
  font-family: 'Manrope', sans-serif; font-size: 0.75rem; font-weight: 500;
  letter-spacing: .08em; text-transform: uppercase;
  border: 1px solid var(--gray-2); transition: border-color .2s, color .2s;
}
.gvpd-floor-dl-btn:hover { border-color: var(--text-heading); color: var(--text-heading); }
.gvpd-floor-dl-btn svg { width: 14px; height: 14px; }

/* ── 8. Location ── */
.gvpd-location { background: var(--off-white); padding: 104px 0; }
.gvpd-location-inner {
  max-width: var(--max-w); margin: 0 auto; padding: 0 clamp(15px,4vw,80px);
}
.gvpd-loc-body { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; }
.gvpd-loc-dist-heading {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(1.7rem, 3vw, 2.8rem); font-weight: 400; color: var(--text-heading);
  letter-spacing: -.01em; margin-bottom: 24px;
}
.gvpd-loc-dist-list { display: flex; flex-direction: column; gap: 0; }
.gvpd-loc-dist-row {
  display: flex; align-items: center; gap: 12px;
  padding: 14px 0; border-bottom: 1px solid var(--gray-1);
}
.gvpd-loc-dist-row:first-child { border-top: 1px solid var(--gray-1); }
.gvpd-loc-dist-place {
  display: flex; align-items: center; gap: 8px;
  font-family: 'Manrope', sans-serif; font-size: 0.9rem; font-weight: 400;
  color: var(--text-body); flex: 1;
}
.gvpd-loc-dist-place svg { width: 12px; height: 12px; color: var(--blue); flex-shrink: 0; }
.gvpd-loc-dist-line { flex: 1; height: 1px; background: var(--gray-1); }
.gvpd-loc-dist-val {
  font-family: 'Manrope', sans-serif; font-size: 0.9rem; font-weight: 700;
  color: var(--text-heading); white-space: nowrap;
}
.gvpd-loc-map { overflow: hidden; min-height: 420px; }
.gvpd-loc-map iframe { display: block; width: 100%; height: 100%; min-height: 420px; border: 0; }

/* ── 9. Progress ── */
.gvpd-progress { background: #040404; padding: 104px 0; }
.gvpd-progress-inner {
  max-width: var(--max-w); margin: 0 auto; padding: 0 clamp(15px,4vw,80px);
}
.gvpd-progress-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 3px;
}
.gvpd-progress-item {
  position: relative; overflow: hidden; aspect-ratio: 4/3; background: #111;
  cursor: pointer;
}
.gvpd-progress-item:nth-child(1) { grid-column: span 2; aspect-ratio: 8/3; }
.gvpd-progress-item img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  filter: brightness(.75) saturate(.8);
  transition: transform 1.2s cubic-bezier(.16,1,.3,1), filter .5s;
}
.gvpd-progress-item:hover img { transform: scale(1.06); filter: brightness(1) saturate(1); }
.gvpd-progress-item-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,.82) 0%, rgba(0,0,0,.1) 55%, transparent 100%);
  display: flex; flex-direction: column; justify-content: flex-end; gap: 3px;
  padding: 16px 18px;
}
.gvpd-progress-item-date {
  align-self: flex-start;
  font-family: 'Manrope', sans-serif; font-size: 0.65rem; font-weight: 600;
  letter-spacing: .18em; text-transform: uppercase;
  color: rgba(255,255,255,.45);
}
.gvpd-progress-item-label {
  font-family: 'Cormorant Garamond', Georgia, serif; font-size: clamp(1.1rem, 1.8vw, 1.6rem); font-weight: 400;
  color: rgba(255,255,255,.75); line-height: 1.3;
}

/* ── Lightbox ── */
/* ── Floor Plan Lightbox ── */
.gvpd-fp-lb {
  position: fixed; inset: 0; z-index: 9000;
  display: flex; align-items: center; justify-content: center;
  opacity: 0; pointer-events: none;
  transition: opacity .3s ease;
}
.gvpd-fp-lb.open { opacity: 1; pointer-events: all; }
.gvpd-fp-lb-backdrop {
  position: absolute; inset: 0; background: rgba(0,0,0,.92);
}
.gvpd-fp-lb-stage {
  position: relative; z-index: 1;
  max-width: 90vw; max-height: 90vh;
  display: flex; flex-direction: column; align-items: center; gap: 12px;
}
.gvpd-fp-lb-img {
  max-width: 90vw; max-height: 82vh;
  object-fit: contain; display: block;
  opacity: 0; transition: opacity .3s;
}
.gvpd-fp-lb-img.loaded { opacity: 1; }

.gvpd-lb {
  position: fixed; inset: 0; z-index: 9000;
  display: flex; align-items: center; justify-content: center;
  opacity: 0; pointer-events: none;
  transition: opacity .3s ease;
}
.gvpd-lb.open { opacity: 1; pointer-events: all; }
.gvpd-lb-backdrop {
  position: absolute; inset: 0;
  background: rgba(0,0,0,.94);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.gvpd-lb-stage {
  position: relative; z-index: 1;
  display: flex; flex-direction: column; align-items: center;
  max-width: 90vw; max-height: 90vh;
}
.gvpd-lb-img {
  display: block; max-width: 88vw; max-height: 78vh;
  object-fit: contain;
  opacity: 0; transition: opacity .35s ease;
  box-shadow: 0 32px 80px rgba(0,0,0,.6);
}
.gvpd-lb-img.loaded { opacity: 1; }
.gvpd-lb-caption {
  display: flex; align-items: center; gap: 16px;
  padding: 14px 0 0; width: 100%;
}
.gvpd-lb-caption-date {
  font-family: 'Manrope', sans-serif; font-size: 0.65rem; font-weight: 700;
  letter-spacing: .18em; text-transform: uppercase; color: var(--gold);
}
.gvpd-lb-caption-label {
  font-family: 'Manrope', sans-serif; font-size: 0.9rem; font-weight: 400;
  color: rgba(255,255,255,.65); flex: 1;
}
.gvpd-lb-caption-counter {
  font-family: 'Manrope', sans-serif; font-size: 0.65rem; font-weight: 600;
  letter-spacing: .1em; color: rgba(255,255,255,.28);
}
.gvpd-lb-close {
  position: absolute; top: 24px; right: 24px; z-index: 2;
  width: 44px; height: 44px;
  background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.15);
  color: #fff; display: flex; align-items: center; justify-content: center;
  cursor: pointer; transition: background .2s;
}
.gvpd-lb-close:hover { background: rgba(255,255,255,.18); }
.gvpd-lb-close svg { width: 18px; height: 18px; }
.gvpd-lb-arrow {
  position: absolute; top: 50%; transform: translateY(-50%); z-index: 2;
  width: 48px; height: 48px;
  background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12);
  color: #fff; display: flex; align-items: center; justify-content: center;
  cursor: pointer; transition: background .2s;
}
.gvpd-lb-arrow:hover { background: rgba(255,255,255,.16); }
.gvpd-lb-arrow svg { width: 20px; height: 20px; }
.gvpd-lb-prev { left: 24px; }
.gvpd-lb-next { right: 24px; }
@media (max-width: 640px) {
  .gvpd-lb-prev { left: 12px; }
  .gvpd-lb-next { right: 12px; }
  .gvpd-lb-img  { max-width: 96vw; max-height: 70vh; }
}

/* ── Project Gallery Section ── */
.gvpd-gallery { background: var(--off-white); padding: 96px 0 112px; }
.gvpd-gallery-inner { max-width: var(--max-w); margin: 0 auto; padding: 0 clamp(15px,4vw,80px); }
.gvpd-gallery .gvpd-section-header { margin-bottom: 56px; }

.gvpd-gallery-accordions { display: flex; flex-direction: column; gap: 12px; }

.gvpd-gallery-group { border: 1px solid #e2e5ea; border-radius: 12px; overflow: hidden; background: #fff; }

.gvpd-gallery-group-toggle {
  width: 100%; display: flex; align-items: center; justify-content: space-between;
  gap: 24px; padding: 20px 24px; background: none; border: none; cursor: pointer;
  text-align: left; transition: background .2s;
}
.gvpd-gallery-group-toggle:hover { background: var(--off-white); }

.gvpd-gallery-group-info { display: flex; flex-direction: column; gap: 4px; }
.gvpd-gallery-group-name { font-family: 'Cormorant Garamond', serif; font-size: clamp(1.1rem, 1.8vw, 1.4rem); font-weight: 500; color: var(--dark); }
.gvpd-gallery-group-desc { font-size: 0.875rem; color: var(--gray); }

.gvpd-gallery-group-meta { display: flex; align-items: center; gap: 16px; flex-shrink: 0; }
.gvpd-gallery-group-count { font-size: 0.75rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--gray); }

.gvpd-gallery-group-icon { width: 28px; height: 28px; display: flex; align-items: center; justify-content: center; border-radius: 50%; border: 1px solid #d1d5db; flex-shrink: 0; transition: border-color .2s; }
.gvpd-gallery-group-toggle:hover .gvpd-gallery-group-icon { border-color: var(--red); }
.gvpd-gallery-group-icon svg { width: 14px; height: 14px; }

.gvpd-gallery-plus  { display: block; }
.gvpd-gallery-minus { display: none; }
.gvpd-gallery-group.open .gvpd-gallery-plus  { display: none; }
.gvpd-gallery-group.open .gvpd-gallery-minus { display: block; }

.gvpd-gallery-group-body { display: none; padding: 0 24px 24px; }
.gvpd-gallery-group.open .gvpd-gallery-group-body { display: block; }

.gvpd-gallery-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
}

.gvpd-gallery-thumb {
  position: relative; aspect-ratio: 4/3; overflow: hidden; border-radius: 8px;
  cursor: pointer; background: var(--light-gray);
}
.gvpd-gallery-thumb img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform .5s cubic-bezier(.16,1,.3,1);
}
.gvpd-gallery-thumb:hover img { transform: scale(1.07); }

.gvpd-gallery-thumb-overlay {
  position: absolute; inset: 0; background: linear-gradient(to top, rgba(0,0,0,.55) 0%, transparent 55%);
  opacity: 0; transition: opacity .25s; display: flex; align-items: flex-end; padding: 10px 12px;
}
.gvpd-gallery-thumb:hover .gvpd-gallery-thumb-overlay { opacity: 1; }
.gvpd-gallery-thumb-title { font-size: .75rem; color: #fff; font-weight: 500; line-height: 1.3; }

/* Gallery lightbox — reuses .gvpd-lb-* rules already defined above */
.gvpd-glb {
  position: fixed; inset: 0; z-index: 9100;
  display: flex; align-items: center; justify-content: center;
  opacity: 0; pointer-events: none; transition: opacity .3s;
}
.gvpd-glb.open { opacity: 1; pointer-events: all; }
.gvpd-glb-backdrop {
  position: absolute; inset: 0; background: rgba(0,0,0,.92); cursor: pointer;
}

/* ── Responsive ── */
@media (max-width: 960px) {
  .gvpd-overview-inner { grid-template-columns: 1fr; gap: 48px; }
  .gvpd-overview-img img { height: 420px; }
  .gvpd-overview-img-badge { left: 0; bottom: -16px; }
  .gvpd-amen-grid { grid-template-columns: repeat(4, 1fr); }
  .gvpd-loc-body { grid-template-columns: 1fr; gap: 40px; }
  .gvpd-progress-grid { grid-template-columns: repeat(2, 1fr); }
  .gvpd-progress-item:nth-child(1) { grid-column: span 2; }
  .gvpd-hero-statsbar-inner { flex-wrap: wrap; }
  .gvpd-hero-stat { flex: none; width: 50%; border-bottom: 1px solid rgba(255,255,255,.07); }
  .gvpd-hero-stat:nth-child(2n) { border-right: none; }
  .gvpd-fact { flex: none; }
}
@media (max-width: 640px) {
  .gvpd-amen-grid { grid-template-columns: repeat(3, 1fr); }
  .gvpd-progress-grid { grid-template-columns: 1fr 1fr; }
  .gvpd-progress-item:nth-child(1) { grid-column: span 2; }
  .gvpd-facts-inner { gap: 10px; }
  .gvpd-fact { flex: none; width: 100%; }
}


/* ============================================================
   GALLERY LISTING PAGE — gvg-* namespace
   ============================================================ */

.gvg-section { background: var(--off-white); padding: 80px 0 104px; }
.gvg-inner   { max-width: var(--max-w); margin: 0 auto; padding: 0 clamp(15px,4vw,80px); }
.gvg-header  { margin-bottom: 48px; }

/* Album grid — bento layout */
.gvg-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}

/* Featured first card spans 2 cols, taller */
.gvg-card--featured { grid-column: span 2; }

/* Card — image on top, plain content below, no box/shadow container */
.gvg-card {
  display: block; cursor: pointer;
  text-decoration: none;
}

/* Image */
.gvg-card-img {
  position: relative; overflow: hidden;
  aspect-ratio: 4 / 3;
  background: var(--gray-1);
}
.gvg-card--featured .gvg-card-img { aspect-ratio: 8 / 4; }
.gvg-card-img img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform 1.2s cubic-bezier(.16,1,.3,1);
}
.gvg-card:hover .gvg-card-img img { transform: scale(1.06); }

/* Photo count badge — top right, over the image only */
.gvg-card-count {
  position: absolute; top: 14px; right: 14px; z-index: 2;
  display: inline-flex; align-items: center;
  padding: 5px 12px;
  background: rgba(10,10,10,.6);
  backdrop-filter: blur(6px);
  font-family: 'Manrope', sans-serif; font-size: 0.65rem; font-weight: 700;
  letter-spacing: .14em; text-transform: uppercase; color: #fff;
}

/* Content — sits below the image, no background/border/shadow */
.gvg-card-body {
  padding: 18px 0 0;
  display: flex; flex-direction: column; gap: 6px;
}
.gvg-card-date {
  align-self: flex-start;
  font-family: 'Manrope', sans-serif; font-size: 0.65rem; font-weight: 600;
  letter-spacing: .18em; text-transform: uppercase;
  color: var(--gray-3);
}
.gvg-card-title {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(1.3rem, 2.1vw, 2rem); font-weight: 300;
  color: var(--text-heading); line-height: 1.2; letter-spacing: -.01em; margin: 0;
}
.gvg-card--featured .gvg-card-title { font-size: clamp(1.2rem, 2vw, 1.8rem); }
.gvg-card-cta {
  display: inline-flex; align-items: center; gap: 6px;
  font-family: 'Manrope', sans-serif; font-size: 0.65rem; font-weight: 600;
  letter-spacing: .1em; text-transform: uppercase;
  color: var(--gray-3);
  margin-top: 4px;
  transition: color .25s, gap .25s;
}
.gvg-card:hover .gvg-card-cta { color: var(--gold); gap: 10px; }
.gvg-card-cta svg { width: 12px; height: 12px; transition: transform .2s; }
.gvg-card:hover .gvg-card-cta svg { transform: translateX(3px); }

@media (max-width: 960px) {
  .gvg-grid { grid-template-columns: 1fr 1fr; }
  .gvg-card--featured { grid-column: span 2; }
}
@media (max-width: 580px) {
  .gvg-grid { grid-template-columns: 1fr; }
  .gvg-card--featured { grid-column: span 1; aspect-ratio: 4/3; }
}


/* ============================================================
   GALLERY ALBUM PAGE — gvab-* namespace
   ============================================================ */

/* ── Hero ── */
.gvab-hero {
  position: relative; height: 60vh; min-height: 480px;
  overflow: hidden; background: #050505;
  display: flex; align-items: flex-end;
}
.gvab-hero-bg {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
}
.gvab-hero-overlay {
  display: none;
}
.gvab-hero-content {
  position: relative; z-index: 2; width: 100%;
  max-width: var(--max-w); margin: 0 auto;
  padding: calc(var(--header-h) + 40px) clamp(15px,4vw,80px) 56px;
  text-align: left;
}

/* Breadcrumb */
.gvab-bc {
  display: none;
}
.gvab-bc-link {
  font-family: 'Manrope', sans-serif; font-size: 0.65rem; font-weight: 500;
  letter-spacing: .08em; text-transform: uppercase;
  color: rgba(255,255,255,.4); transition: color .2s;
}
.gvab-bc-link:hover { color: rgba(255,255,255,.75); }
.gvab-bc svg { width: 9px; height: 9px; color: rgba(255,255,255,.25); flex-shrink: 0; }
.gvab-bc-current {
  font-family: 'Manrope', sans-serif; font-size: 0.65rem; font-weight: 600;
  letter-spacing: .08em; text-transform: uppercase; color: rgba(255,255,255,.6);
}
.gvab-hero-date {
  display: none;
}
.gvab-hero-title {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(2.4rem, 4.4vw, 5rem); font-weight: 400;
  color: #fff; line-height: 1.1; letter-spacing: -.02em;
  max-width: 760px; margin: 0 0 14px;
  text-shadow: 0 2px 20px rgba(0,0,0,.5), 0 1px 4px rgba(0,0,0,.4);
  animation: ab-fade-up .9s .25s cubic-bezier(.16,1,.3,1) both;
}
.gvab-hero-desc {
  display: none;
}
.gvab-hero-count {
  display: none;
}
.gvab-hero-count svg { width: 14px; height: 14px; }

/* ── Image grid ── */
.gvab-images { background: var(--off-white); padding: 72px 0 80px; }
.gvab-images-inner { max-width: var(--max-w); margin: 0 auto; padding: 0 clamp(15px,4vw,80px); }

.gvab-img-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
}

/* Image cards */
.gvab-img-card { cursor: pointer; overflow: hidden; }
.gvab-img-card-inner {
  position: relative; overflow: hidden;
  aspect-ratio: 4 / 3; background: #111;
}
.gvab-img-card-inner img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  filter: brightness(.9);
  transition: transform 1s cubic-bezier(.16,1,.3,1), filter .45s;
}
.gvab-img-card:hover .gvab-img-card-inner img { transform: scale(1.07); filter: brightness(1); }

.gvab-img-card-overlay {
  position: absolute; inset: 0;
  background: rgba(0,0,0,.5);
  display: flex; flex-direction: column;
  align-items: center; justify-content: center; gap: 10px;
  opacity: 0; transition: opacity .3s;
}
.gvab-img-card:hover .gvab-img-card-overlay { opacity: 1; }
.gvab-img-card-overlay svg {
  width: 28px; height: 28px; color: #fff; opacity: .8;
}
.gvab-img-card-overlay span {
  font-family: 'Manrope', sans-serif; font-size: 0.9rem; font-weight: 500;
  letter-spacing: .08em; color: rgba(255,255,255,.75); text-align: center;
  padding: 0 12px; line-height: 1.4;
}

/* ── Other albums ── */
.gvab-other { background: #fff; padding: 80px 0 104px; }
.gvab-other-inner { max-width: var(--max-w); margin: 0 auto; padding: 0 clamp(15px,4vw,80px); }
.gvab-other-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px;
}

/* Responsive */
@media (max-width: 960px) {
  .gvab-img-grid   { grid-template-columns: repeat(3, 1fr); }
  .gvab-other-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .gvab-img-grid   { grid-template-columns: repeat(2, 1fr); gap: 6px; }
  .gvab-other-grid { grid-template-columns: 1fr; }
}
@media (max-width: 480px) {
  .gvab-img-grid { grid-template-columns: 1fr; gap: 6px; }
}


/* ============================================================
   CONTACT PAGE  —  gvc-*
   ============================================================ */

/* ── Hero modifier ── */
.gvpc-hero--contact { min-height: 72vh; }

.gvc-hero-deco {
  display: none;
}

.gvc-hero-content {
  text-align: left;
  max-width: 760px;
  margin-left: 0;
  margin-right: auto;
}

.gvc-hero-meta {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: 10px 20px;
  margin-top: 32px;
}

.gvc-hero-meta-item {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-family: var(--font-body);
  font-size: 0.9rem;
  font-weight: 500;
  letter-spacing: .06em;
  color: rgba(255,255,255,0.65);
}

.gvc-hero-meta-item svg { width: 14px; height: 14px; flex-shrink: 0; color: var(--gold); }

.gvc-hero-meta-sep {
  color: rgba(255,255,255,0.2);
  font-size: 0.65rem;
}

/* ── Quick Connect Cards ── */
.gvc-connect {
  background: #050505;
  padding: 72px 0 88px;
}

.gvc-connect-inner {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 clamp(15px,4vw,80px);
}

.gvc-connect-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}

.gvc-connect-card {
  border: 1px solid rgba(255,255,255,0.08);
  background: rgba(255,255,255,0.06);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  padding: 36px 30px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 28px;
  position: relative;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  box-shadow: none;
  transition: transform .36s var(--ease-out);
}


.gvc-connect-card:hover {
  transform: translateY(-6px);
}

.gvc-connect-card--address { cursor: default; }
.gvc-connect-card--address:hover { transform: none; }

.gvc-connect-card-top {
  display: flex;
  align-items: flex-start;
  gap: 18px;
}

.gvc-connect-icon {
  width: 24px;
  height: 24px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255,255,255,0.75);
}

.gvc-connect-icon svg { width: 20px; height: 20px; }
.gvc-connect-icon--wa { color: #25D366; }

.gvc-connect-text {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}

.gvc-connect-label {
  font-family: var(--font-body);
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.38);
}

.gvc-connect-value {
  font-family: var(--font-head);
  font-size: clamp(0.95rem,1.3vw,1.15rem);
  font-weight: 500;
  color: rgba(255,255,255,0.92);
  line-height: 1.3;
}

.gvc-connect-sub {
  font-family: var(--font-body);
  font-size: 0.9rem;
  color: rgba(255,255,255,0.45);
  line-height: 1.4;
}

.gvc-connect-arrow {
  display: flex;
  align-items: center;
  color: rgba(255,255,255,0.3);
  align-self: flex-end;
  transition: color .22s, transform .22s;
}

.gvc-connect-arrow svg { width: 16px; height: 16px; }
.gvc-connect-card:hover .gvc-connect-arrow { color: rgba(255,255,255,0.9); transform: translateX(4px); }

.gvc-connect-badge {
  align-self: flex-end;
  font-family: var(--font-body);
  font-size: .6rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.35);
  background: rgba(255,255,255,0.08);
  padding: 4px 10px;
}

/* ── Main Section ── */
.gvc-main {
  background: var(--white);
  padding: 104px 0 120px;
}

.gvc-main-inner {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 clamp(15px,4vw,80px);
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: 80px;
  align-items: start;
}

/* ── Info column ── */
.gvc-info { padding-top: 8px; }

.gvc-info-eyebrow {
  display: inline-block;
  font-family: var(--font-body);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: .22em;
  text-transform: uppercase;
  background: none; color: var(--blue); padding: 0;
  margin-bottom: 18px;
}

.gvc-info-heading {
  font-family: var(--font-head);
  font-size: clamp(1.85rem,3.4vw,3.6rem);
  font-weight: 400;
  line-height: 1.15;
  color: var(--text-heading);
  margin-bottom: 0;
}

.gvc-info-rule {
  width: 48px;
  height: 2px;
  background: var(--red);
  margin: 24px 0;
}

.gvc-info-body {
  font-family: var(--font-body);
  font-size: .88rem;
  color: var(--text-body);
  line-height: 1.82;
  margin-bottom: 18px;
}

/* Hours block */
.gvc-info-hours {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  margin: 36px 0 40px;
  padding: 24px 28px;
  background: var(--off-white);
  /* No border — shadow only */
  box-shadow:
    0 2px 8px rgba(0,0,0,0.05),
    0 8px 24px rgba(0,0,0,0.06);
}

.gvc-info-hours-icon {
  width: 40px;
  height: 40px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--blue);
}

.gvc-info-hours-icon svg { width: 20px; height: 20px; }

.gvc-info-hours > div {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.gvc-info-hours-label {
  align-self: flex-start;
  font-family: var(--font-body);
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  background: none;
  color: var(--text-heading);
}

.gvc-info-hours-val {
  font-family: var(--font-head);
  font-size: 1rem;
  font-weight: 500;
  color: var(--text-heading);
}

.gvc-info-hours-sub {
  font-family: var(--font-body);
  font-size: .72rem;
  color: var(--text-light);
}

/* Trust grid */
.gvc-info-contacts {
  display: flex;
  flex-direction: column;
  gap: 24px;
  margin: 28px 0;
  padding: 24px;
  background: var(--gray-1);
}
.gvc-info-contact-group { display: flex; flex-direction: column; gap: 10px; }
.gvc-info-contact-head {
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 4px;
}
.gvc-info-contact-rows { display: flex; flex-direction: column; gap: 8px; }
.gvc-info-contact-row {
  display: flex;
  gap: 12px;
  align-items: flex-start;
}
.gvc-info-contact-lbl {
  font-size: .78rem;
  font-weight: 600;
  color: var(--text-dark);
  min-width: 130px;
  padding-top: 1px;
}
.gvc-info-contact-vals {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.gvc-info-contact-vals a {
  font-size: .88rem;
  color: var(--text-body);
  transition: color .2s;
}
.gvc-info-contact-vals a:hover { color: var(--gold); }

.gvc-trust-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  background: var(--gray-1);
}

.gvc-trust-item {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 22px 20px;
  background: var(--white);
}

.gvc-trust-item svg {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  color: var(--blue);
  margin-top: 2px;
}

.gvc-trust-item > div {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.gvc-trust-title {
  font-family: var(--font-body);
  font-size: .78rem;
  font-weight: 700;
  color: var(--text-heading);
  letter-spacing: .01em;
}

.gvc-trust-sub {
  font-family: var(--font-body);
  font-size: .68rem;
  color: var(--text-light);
  line-height: 1.4;
}

/* ── Form Panel ── */
.gvc-form-panel {
  background: var(--white);
  padding: 52px 52px 56px;
  /* No border — dramatic layered shadow */
  box-shadow:
    0 0 0 1px rgba(0,0,0,0.04),
    0 8px 24px rgba(0,0,0,0.07),
    0 24px 64px rgba(0,0,0,0.09),
    0 56px 120px rgba(0,0,0,0.07);
}

.gvc-form-panel-head {
  margin-bottom: 36px;
  padding-bottom: 32px;
  /* Accent line below header — pseudo would need parent position, use border-bottom here as design element */
  /* Actually user said no border lines for CARDS — the form header separator is a design element, not card border */
  border-bottom: 1px solid var(--gray-1);
}

.gvc-form-heading {
  font-family: var(--font-head);
  font-size: clamp(1.85rem,3.4vw,3.6rem);
  font-weight: 400;
  color: var(--text-heading);
  margin-bottom: 6px;
}

.gvc-form-sub {
  font-family: var(--font-body);
  font-size: .78rem;
  color: var(--text-light);
  line-height: 1.6;
}

/* Alerts */
.gvc-alert {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px 20px;
  margin-bottom: 28px;
  font-family: var(--font-body);
  font-size: .8rem;
  font-weight: 500;
}

.gvc-alert svg { width: 18px; height: 18px; flex-shrink: 0; }

.gvc-alert--success {
  background: rgba(39,174,96,0.06);
  color: #27ae60;
  box-shadow: inset 3px 0 0 #27ae60;
}

.gvc-alert--error {
  background: rgba(192,57,43,0.06);
  color: var(--red);
  box-shadow: inset 3px 0 0 var(--red);
}

/* Form layout */
.gvc-form { display: flex; flex-direction: column; gap: 24px; }

.gvc-form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}

.gvc-field {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.gvc-label {
  font-family: var(--font-body);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--text-body);
}

.gvc-required { color: var(--red); margin-left: 2px; }

.gvc-input {
  width: 100%;
  height: 52px;
  padding: 0 18px;
  font-family: var(--font-body);
  font-size: .88rem;
  color: var(--text-heading);
  background: var(--off-white);
  border: none;
  outline: none;
  /* No border — shadow defines the input well */
  box-shadow:
    0 0 0 1px rgba(0,0,0,0.08),
    0 2px 6px rgba(0,0,0,0.04);
  transition:
    box-shadow .22s ease,
    background .22s ease;
  -webkit-appearance: none;
}

.gvc-input::placeholder { color: var(--gray-3); }

.gvc-input:focus {
  background: var(--white);
  box-shadow:
    0 0 0 2px var(--blue),
    0 4px 12px rgba(41,128,185,0.15);
}

.gvc-field--error .gvc-input {
  box-shadow:
    0 0 0 2px var(--red),
    0 2px 6px rgba(192,57,43,0.12);
}

.gvc-error-msg {
  font-family: var(--font-body);
  font-size: .68rem;
  color: var(--red);
  font-weight: 500;
}

/* Select */
.gvc-select-wrap {
  position: relative;
}

.gvc-select {
  padding-right: 44px;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
}

.gvc-select-arrow {
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
  color: var(--gray-3);
}

.gvc-select-arrow svg { width: 14px; height: 14px; }

/* Textarea */
.gvc-textarea {
  height: auto !important;
  padding: 16px 18px;
  resize: vertical;
  line-height: 1.7;
}

/* Submit */
.gvc-form-footer {
  display: flex;
  align-items: center;
  gap: 28px;
  flex-wrap: wrap;
  margin-top: 8px;
}

.gvc-submit {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 16px 40px;
  font-family: var(--font-body);
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--white);
  background: var(--text-heading);
  border: none;
  cursor: pointer;
  /* Shadow drives the premium feel — no border */
  box-shadow:
    0 4px 16px rgba(17,24,39,0.25),
    0 12px 32px rgba(17,24,39,0.20);
  transition:
    background .22s ease,
    box-shadow .22s ease,
    transform .18s ease;
  white-space: nowrap;
}

.gvc-submit svg { width: 14px; height: 14px; transition: transform .2s ease; }

.gvc-submit:hover {
  background: var(--red);
  box-shadow:
    0 4px 20px rgba(192,57,43,0.35),
    0 16px 40px rgba(192,57,43,0.25);
  transform: translateY(-2px);
}

.gvc-submit:hover svg { transform: translateX(4px); }

.gvc-submit:active { transform: translateY(0); }

.gvc-form-note {
  display: flex;
  align-items: center;
  gap: 7px;
  font-family: var(--font-body);
  font-size: .68rem;
  color: var(--text-light);
  line-height: 1.5;
}

.gvc-form-note svg { width: 13px; height: 13px; flex-shrink: 0; color: var(--gray-3); }

/* ── Map ── */
.gvc-map { position: relative; }

.gvc-map-label {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 22px clamp(15px,4vw,80px);
  background:
    radial-gradient(ellipse at 8%  92%, rgba(192,57,43,.45)  0%, transparent 52%),
    radial-gradient(ellipse at 92% 8%,  rgba(41,128,185,.40) 0%, transparent 52%),
    radial-gradient(ellipse at 50% 50%, rgba(18,4,4,1)       0%, #020202    100%);
  max-width: 100%;
}

.gvc-map-label > svg {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  color: var(--gold);
}

.gvc-map-label > div {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.gvc-map-label-name {
  font-family: var(--font-head);
  font-size: 1rem;
  font-weight: 500;
  color: var(--white);
}

.gvc-map-label-addr {
  font-family: var(--font-body);
  font-size: .72rem;
  color: rgba(255,255,255,0.5);
}

.gvc-map-directions {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-body);
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.6);
  flex-shrink: 0;
  transition: color .2s;
}

.gvc-map-directions:hover { color: var(--white); }
.gvc-map-directions svg { width: 13px; height: 13px; transition: transform .2s; }
.gvc-map-directions:hover svg { transform: translateX(3px); }

/* ── Responsive ── */
@media (max-width: 1100px) {
  .gvc-connect-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 960px) {
  .gvc-main-inner {
    grid-template-columns: 1fr;
    gap: 56px;
  }
  .gvc-form-panel { padding: 40px 36px 44px; }
}

@media (max-width: 700px) {
  .gvc-connect-grid { grid-template-columns: 1fr; gap: 16px; }
  .gvc-connect { padding: 48px 0 64px; }
  .gvc-form-row { grid-template-columns: 1fr; }
  .gvc-form-panel { padding: 32px 24px 36px; }
  .gvc-trust-grid { grid-template-columns: 1fr; }
  .gvc-hero-meta { gap: 8px 14px; }
  .gvc-hero-meta-sep { display: none; }
  .gvc-form-footer { flex-direction: column; align-items: flex-start; gap: 16px; }
  .gvc-submit { width: 100%; justify-content: center; }
  .gvc-map-directions { display: none; }
}

@media (max-width: 480px) {
  .gvpc-hero--contact { min-height: 64vh; }
  .gvc-info-hours { padding: 18px 20px; }
}


/* ============================================================
   LATEST UPDATES PAGE  —  blogs.blade.php
   ============================================================ */

/* Give the section more breathing room when used as a standalone page */
.gv-updates--page {
  padding-top: 96px;
  padding-bottom: 96px;
}

.gv-updates--page .gv-updates-header {
  margin-bottom: 56px;
}

/* Pagination strip */
.gv-updates-pagination {
  margin-top: 64px;
  padding-top: 40px;
  border-top: 1px solid var(--gray-1);
  display: flex;
  justify-content: center;
}

.gv-updates-pagination nav { display: flex; gap: 4px; }

.gv-updates-pagination span,
.gv-updates-pagination a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 12px;
  font-family: var(--font-body);
  font-size: .78rem;
  font-weight: 500;
  color: var(--text-body);
  background: var(--white);
  box-shadow: 0 0 0 1px rgba(0,0,0,0.08), 0 2px 6px rgba(0,0,0,0.04);
  transition: background .2s, color .2s, box-shadow .2s;
}

.gv-updates-pagination a:hover {
  background: var(--text-heading);
  color: var(--white);
  box-shadow: 0 4px 16px rgba(0,0,0,0.14);
}

.gv-updates-pagination span[aria-current="page"] {
  background: var(--text-heading);
  color: var(--white);
}


/* ============================================================
   UPDATE DETAIL PAGE  —  gvbs-*
   ============================================================ */

.gvpc-hero--update { min-height: 68vh; }
.gvbs-no-hero {
  background: var(--off-white, #f8f6f2);
  border-bottom: 1px solid var(--gray-1);
  padding: 80px clamp(24px,6vw,80px) 60px;
}
.gvbs-no-hero-inner {
  max-width: 860px; margin: 0 auto; text-align: center;
}
.gvbs-no-hero-title {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(1.8rem, 3.5vw, 3.2rem);
  font-weight: 400; color: var(--text-heading);
  line-height: 1.15; margin: 16px 0 0;
}

/* ── Date bar ── */
.gvbs-datebar {
  background: var(--off-white);
  border-bottom: 1px solid var(--gray-1);
}

.gvbs-datebar-inner {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 18px clamp(15px,4vw,80px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
}

.gvbs-bc {
  display: flex;
  align-items: center;
  gap: 4px;
  flex-wrap: wrap;
}

.gvbs-bc svg { width: 11px; height: 11px; color: var(--gray-2); flex-shrink: 0; }

.gvbs-bc-link {
  font-family: var(--font-body);
  font-size: .68rem;
  font-weight: 500;
  color: var(--text-light);
  letter-spacing: .04em;
  transition: color .2s;
}

.gvbs-bc-link:hover { color: var(--text-heading); }

.gvbs-bc-current {
  font-family: var(--font-body);
  font-size: .68rem;
  font-weight: 500;
  color: var(--text-heading);
  letter-spacing: .04em;
}

.gvbs-date {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-family: var(--font-body);
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  flex-shrink: 0;
  background: var(--text-heading);
  color: #fff;
  padding: 5px 14px;
}

.gvbs-date svg { width: 14px; height: 14px; color: #fff !important; -webkit-text-fill-color: initial; }

/* ── Body ── */
.gvbs-body {
  background: var(--white);
  padding: 80px 0 104px;
}

.gvbs-body-inner {
  max-width: 900px;
  margin: 0 auto;
  padding: 0 clamp(15px,4vw,48px);
}

/* ── Lead excerpt ── */
.gvbs-excerpt {
  font-family: var(--font-head);
  font-size: clamp(1.05rem, 1.4vw, 1.3rem);
  font-weight: 300;
  color: var(--text-body);
  line-height: 1.85;
  letter-spacing: .01em;
  margin-bottom: 72px;
  padding-bottom: 48px;
  border-bottom: 1px solid var(--gray-1);
}

/* ── Content group ── */
.gvbs-group {
  padding: 64px 0;
  border-bottom: 1px solid var(--gray-1);
}

.gvbs-group--last { border-bottom: none; }

.gvbs-group-header {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-bottom: 28px;
}

.gvbs-group-headline {
  font-family: var(--font-head);
  font-size: clamp(1.85rem, 3.4vw, 3.6rem);
  font-weight: 400;
  color: var(--text-heading);
  line-height: 1.2;
  letter-spacing: -.01em;
  margin-bottom: 0;
}

.gvbs-group-dots {
  display: flex;
  align-items: center;
  gap: 6px;
}

.gvbs-group-dots span {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--gray-2);
  display: block;
}

.gvbs-group-desc {
  font-family: var(--font-head);
  font-size: clamp(1.05rem, 1.4vw, 1.3rem);
  font-weight: 300;
  color: var(--text-body);
  line-height: 1.85;
  letter-spacing: .01em;
  margin-bottom: 40px;
}

/* ── Photo grid ── */
.gvbs-photos {
  display: grid;
  gap: 12px;
}

/* 3 photos → 3-col */
.gvbs-photos--3 { grid-template-columns: repeat(3, 1fr); }

/* 2 photos → 2-col */
.gvbs-photos--2 { grid-template-columns: repeat(2, 1fr); }

/* 1 photo → full width */
.gvbs-photos--1 { grid-template-columns: 1fr; }

/* 4 photos → 2×2 */
.gvbs-photos--4 { grid-template-columns: repeat(2, 1fr); }

.gvbs-photo {
  position: relative;
  overflow: hidden;
  cursor: pointer;
  aspect-ratio: 4 / 3;
  background: var(--light-gray);
}

.gvbs-photos--1 .gvbs-photo { aspect-ratio: 16 / 7; }

.gvbs-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .6s ease;
}

.gvbs-photo:hover img { transform: scale(1.05); }

.gvbs-photo-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .3s ease;
}

.gvbs-photo-overlay svg {
  width: 32px;
  height: 32px;
  color: #fff;
  opacity: 0;
  transform: scale(0.8);
  transition: opacity .3s, transform .3s;
}

.gvbs-photo:hover .gvbs-photo-overlay {
  background: rgba(0,0,0,0.38);
}

.gvbs-photo:hover .gvbs-photo-overlay svg {
  opacity: 1;
  transform: scale(1);
}

.gvbs-photo-caption {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  padding: 10px 14px 12px;
  font-family: var(--font-body);
  font-size: .62rem;
  font-weight: 500;
  letter-spacing: .06em;
  color: rgba(255,255,255,0.85);
  background: linear-gradient(to top, rgba(0,0,0,0.65) 0%, transparent 100%);
  opacity: 0;
  transform: translateY(6px);
  transition: opacity .3s, transform .3s;
}

.gvbs-photo:hover .gvbs-photo-caption {
  opacity: 1;
  transform: translateY(0);
}

/* ── Back + enquire strip ── */
.gvbs-back {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 20px;
  margin-top: 72px;
  padding-top: 0;
}

.gvbs-back-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-body);
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--text-light);
  transition: color .2s, gap .2s;
}

.gvbs-back-link svg { width: 14px; height: 14px; transition: transform .2s; }
.gvbs-back-link:hover { color: var(--text-heading); }
.gvbs-back-link:hover svg { transform: translateX(-3px); }

.gvbs-enquire-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 36px;
  font-family: var(--font-body);
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--white);
  background: var(--text-heading);
  transition: background .22s, transform .18s;
}

.gvbs-enquire-btn svg { width: 13px; height: 13px; transition: transform .2s; }
.gvbs-enquire-btn:hover { background: var(--red); transform: translateY(-2px); }
.gvbs-enquire-btn:hover svg { transform: translateX(4px); }

/* ── Responsive ── */
@media (max-width: 700px) {
  .gvbs-photos--3 { grid-template-columns: repeat(2, 1fr); }
  .gvbs-photos--4 { grid-template-columns: repeat(2, 1fr); }
  .gvbs-group-header { gap: 14px; }
  .gvbs-group-num { font-size: 2.4rem; }
  .gvbs-datebar-inner { flex-direction: column; align-items: flex-start; }
  .gvbs-back { flex-direction: column; }
  .gvbs-enquire-btn { width: 100%; justify-content: center; }
}

@media (max-width: 480px) {
  .gvbs-photos--3,
  .gvbs-photos--2 { grid-template-columns: 1fr; }
  .gvpc-hero--update { min-height: 58vh; }
}


/* ── You May Also Like ── */
.gvbs-more {
  background: var(--off-white);
  padding: 96px 0 104px;
}

.gvbs-more-inner {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 clamp(15px,4vw,80px);
}

.gvbs-more-head {
  margin-bottom: 52px;
}

.gvbs-more-eyebrow {
  display: inline-block;
  font-family: var(--font-body);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: .22em;
  text-transform: uppercase;
  background: none; color: var(--blue); padding: 0;
  margin-bottom: 12px;
}

.gvbs-more-heading {
  font-family: var(--font-head);
  font-size: clamp(1.85rem, 3.4vw, 3.6rem);
  font-weight: 400;
  color: var(--text-heading);
  letter-spacing: -.02em;
  line-height: 1.15;
}

.gvbs-more-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

.gvbs-more-card {
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: inherit;
  background: var(--white);
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0,0,0,0.05), 0 8px 32px rgba(0,0,0,0.07);
  transition: transform .32s var(--ease-out), box-shadow .32s var(--ease-out);
}

.gvbs-more-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 8px 24px rgba(0,0,0,0.09), 0 24px 56px rgba(0,0,0,0.10);
}

.gvbs-more-card-img {
  position: relative;
  overflow: hidden;
  aspect-ratio: 3 / 2;
}

.gvbs-more-card-img img {
  width: 100%; height: 100%;
  object-fit: cover; display: block;
  transition: transform .6s ease;
}

.gvbs-more-card:hover .gvbs-more-card-img img { transform: scale(1.05); }

.gvbs-more-card-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,0.28) 0%, transparent 60%);
}

.gvbs-more-card-body {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 24px 26px 28px;
  flex: 1;
}

.gvbs-more-card-date {
  align-self: flex-start;
  font-family: var(--font-body);
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  background: none;
  color: var(--text-heading);
}

.gvbs-more-card-title {
  font-family: var(--font-head);
  font-size: clamp(1.15rem, 1.6vw, 1.5rem);
  font-weight: 600;
  color: var(--text-heading);
  line-height: 1.35;
  letter-spacing: -.01em;
  flex: 1;
}

.gvbs-more-card-read {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font-body);
  font-size: .65rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--text-light);
  margin-top: 4px;
  transition: color .2s, gap .2s;
}

.gvbs-more-card-read svg { width: 12px; height: 12px; transition: transform .2s; }
.gvbs-more-card:hover .gvbs-more-card-read { color: var(--text-heading); gap: 10px; }
.gvbs-more-card:hover .gvbs-more-card-read svg { transform: translateX(3px); }

@media (max-width: 900px) {
  .gvbs-more-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 560px) {
  .gvbs-more-grid { grid-template-columns: 1fr; }
}


/* ============================================================
   GALLERY — Category sections  gvg-cat-*
   ============================================================ */

.gvg-cat-section {
  padding: 88px 0 96px;
}

.gvg-cat-section--white { background: var(--white); }
.gvg-cat-section--off   { background: var(--off-white); }

.gvg-cat-inner {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 clamp(15px,4vw,80px);
}

/* Category header */
.gvg-cat-header {
  display: flex;
  align-items: baseline;
  gap: 20px;
  margin-bottom: 40px;
  padding-bottom: 32px;
  border-bottom: 1px solid var(--gray-1);
}

.gvg-cat-eyebrow {
  font-family: var(--font-body);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: .22em;
  text-transform: uppercase;
  background: none;
  color: var(--text-heading);
  flex-shrink: 0;
}

.gvg-cat-heading {
  font-family: var(--font-head);
  font-size: clamp(1.85rem, 3.4vw, 3.6rem);
  font-weight: 400;
  color: var(--text-heading);
  letter-spacing: -.02em;
  line-height: 1.1;
  margin: 0;
  flex: 1;
}

.gvg-cat-count {
  font-family: var(--font-body);
  font-size: .65rem;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--gray-3);
  flex-shrink: 0;
}

/* Album grid per category — 2-col default, supports 1 and 3 */
.gvg-cat-grid {
  display: grid;
  gap: 16px;
}

.gvg-cat-grid--1 { grid-template-columns: 1fr; }
.gvg-cat-grid--2 { grid-template-columns: repeat(2, 1fr); }
.gvg-cat-grid--3 { grid-template-columns: repeat(3, 1fr); }

/* Responsive */
@media (max-width: 900px) {
  .gvg-cat-grid--3 { grid-template-columns: repeat(2, 1fr); }
  .gvg-cat-header { flex-wrap: wrap; gap: 8px 16px; }
}

@media (max-width: 580px) {
  .gvg-cat-grid--2,
  .gvg-cat-grid--3 { grid-template-columns: 1fr; }
  .gvg-cat-section { padding: 64px 0 72px; }
}

/* ============================================================
   ENQUIRY POPUP FORMS — Book a Site Visit / Enquire Now
   ============================================================ */
.gv-eq-overlay {
  position: fixed; inset: 0; z-index: 10000;
  background: rgba(10,10,10,.6);
  backdrop-filter: blur(4px);
  opacity: 0; visibility: hidden;
  transition: opacity .25s var(--ease-out), visibility 0s linear .25s;
}
.gv-eq-overlay.open {
  opacity: 1; visibility: visible;
  transition: opacity .25s var(--ease-out), visibility 0s linear 0s;
}

.gv-eq-modal {
  position: fixed; z-index: 10001;
  top: 50%; left: 50%;
  transform: translate(-50%, -48%) scale(.97);
  width: calc(100% - 32px);
  max-width: 460px;
  max-height: 88vh;
  overflow-y: auto;
  background: #fff;
  border-radius: var(--r-lg);
  box-shadow: var(--sh-xl);
  opacity: 0; visibility: hidden;
  transition: opacity .25s var(--ease-out), transform .25s var(--ease-out), visibility 0s linear .25s;
}
.gv-eq-modal.open {
  opacity: 1; visibility: visible;
  transform: translate(-50%, -50%) scale(1);
  transition: opacity .25s var(--ease-out), transform .25s var(--ease-out), visibility 0s linear 0s;
}

.gv-eq-close {
  position: absolute; top: 16px; right: 16px; z-index: 2;
  display: inline-flex; align-items: center; justify-content: center;
  width: 34px; height: 34px;
  border-radius: 50%;
  background: var(--off-white);
  color: var(--text-body);
  transition: background .2s, color .2s;
}
.gv-eq-close svg { width: 16px; height: 16px; }
.gv-eq-close:hover { background: var(--dark); color: #fff; }

.gv-eq-body { padding: 40px clamp(24px, 5vw, 40px) 36px; }

.gv-eq-eyebrow {
  display: block;
  font-family: var(--font-body);
  font-size: .68rem; font-weight: 700;
  letter-spacing: .18em; text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 10px;
}
.gv-eq-title {
  font-family: var(--font-head);
  font-size: 1.9rem; font-weight: 500;
  color: var(--text-heading);
  line-height: 1.1;
  margin: 0 0 8px;
}
.gv-eq-project-line {
  font-family: var(--font-body);
  font-size: .82rem;
  color: var(--gray-4);
  margin: 0 0 6px;
}
.gv-eq-project-line strong { color: var(--text-heading); font-weight: 600; }
.gv-eq-sub {
  font-family: var(--font-body);
  font-size: .85rem; font-weight: 300;
  color: var(--gray-4);
  line-height: 1.6;
  margin: 0 0 24px;
}

.gv-eq-form { display: flex; flex-direction: column; gap: 16px; }
.gv-eq-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.gv-eq-field { display: flex; flex-direction: column; gap: 6px; }
.gv-eq-field label {
  font-family: var(--font-body);
  font-size: .66rem; font-weight: 700;
  letter-spacing: .08em; text-transform: uppercase;
  color: var(--gray-4);
}
.gv-eq-req { color: var(--red); }
.gv-eq-field input,
.gv-eq-field textarea {
  width: 100%;
  padding: 12px 14px;
  font-family: var(--font-body);
  font-size: .88rem;
  color: var(--text-heading);
  background: var(--off-white);
  border: 1px solid transparent;
  border-radius: var(--r-sm);
  outline: none;
  transition: border-color .2s, background .2s;
  resize: vertical;
}
.gv-eq-field input:focus,
.gv-eq-field textarea:focus {
  background: #fff;
  border-color: var(--gold);
}

.gv-eq-error {
  font-family: var(--font-body);
  font-size: .8rem;
  color: var(--red);
  background: var(--red-light);
  border-radius: var(--r-sm);
  padding: 10px 14px;
}

.gv-eq-submit {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  width: 100%;
  padding: 15px 24px;
  margin-top: 6px;
  background: var(--text-heading);
  color: #fff;
  font-family: var(--font-body);
  font-size: .78rem; font-weight: 600;
  letter-spacing: .06em; text-transform: uppercase;
  border: none; border-radius: var(--r-sm);
  transition: background .2s;
  cursor: pointer;
}
.gv-eq-submit svg { width: 15px; height: 15px; transition: transform .2s; }
.gv-eq-submit:hover:not(:disabled) { background: var(--gold); }
.gv-eq-submit:hover:not(:disabled) svg { transform: translateX(4px); }
.gv-eq-submit:disabled { opacity: .6; cursor: default; }

.gv-eq-success { text-align: center; padding: 12px 0 4px; }
.gv-eq-success-icon {
  display: inline-flex; align-items: center; justify-content: center;
  width: 56px; height: 56px;
  border-radius: 50%;
  background: rgba(39,174,96,0.12);
  color: var(--green-accent);
  margin-bottom: 18px;
}
.gv-eq-success-icon svg { width: 26px; height: 26px; }
.gv-eq-success h4 {
  font-family: var(--font-head);
  font-size: 1.4rem; font-weight: 500;
  color: var(--text-heading);
  margin: 0 0 8px;
}
.gv-eq-success p {
  font-family: var(--font-body);
  font-size: .88rem; font-weight: 300;
  color: var(--gray-4);
  line-height: 1.6;
  margin: 0;
}

@media (max-width: 520px) {
  .gv-eq-row { grid-template-columns: 1fr; }
  .gv-eq-body { padding: 32px 20px 28px; }
}

/* ============================================================
   PROJECT FOLDER LISTING — bullet points strip
   ============================================================ */
.gvpf-bullets-outer {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 32px clamp(15px,4vw,80px) 0;
}
.gvpf-bullets {
  max-width: 720px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4px 24px;
}
@media (max-width: 600px) {
  .gvpf-bullets { grid-template-columns: 1fr; }
}

/* ============================================================
   PROJECT CATEGORY PAGE — grouped by parent Project
   ============================================================ */
.gvpc-group { margin-bottom: 24px; }
.gvpc-group-name {
  font-family: var(--font-head);
  font-size: 1.5rem;
  font-weight: 500;
  color: var(--text-heading);
  margin: 0 0 8px;
  padding-top: 32px;
  border-top: 1px solid var(--gray-1);
}
.gvpc-group:first-child .gvpc-group-name { padding-top: 0; border-top: none; }

/* ============================================================
   PROJECT FOLDER LISTING — property cards (image top, content below)
   ============================================================ */
.gvpf-grid {
  max-width: var(--max-w); margin: 0 auto;
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px;
}
.gvpf-grid--1 { grid-template-columns: 1fr; max-width: 620px; }
.gvpf-grid--2 { grid-template-columns: repeat(2, 1fr); }
.gvpf-grid--3 { grid-template-columns: repeat(3, 1fr); }

.gvpf-card {
  display: block;
  background: #fff;
  overflow: hidden;
  box-shadow: var(--sh-sm);
  transition: box-shadow .3s var(--ease-out), transform .3s var(--ease-out);
}
.gvpf-card:hover {
  box-shadow: var(--sh-lg);
  transform: translateY(-4px);
}

.gvpf-card-img {
  position: relative;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: var(--gray-1);
}
.gvpf-card-img img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .5s var(--ease-out);
}
.gvpf-card:hover .gvpf-card-img img { transform: scale(1.05); }

.gvpf-card-badge {
  position: absolute; top: 14px; left: 14px; z-index: 2;
  display: inline-flex; align-items: center;
  padding: 5px 12px;
  font-family: var(--font-body);
  font-size: .65rem; font-weight: 700;
  letter-spacing: .08em; text-transform: uppercase;
  color: #fff;
  background: rgba(10,10,10,.6);
  backdrop-filter: blur(6px);
  border-radius: 999px;
}
.gvpf-card-badge--ongoing   { background: rgba(41,128,185,.85); }
.gvpf-card-badge--completed { background: rgba(39,174,96,.85); }
.gvpf-card-badge--upcoming  { background: rgba(201,168,76,.9); }

.gvpf-card-body {
  padding: 22px 24px 26px;
}
.gvpf-card-location {
  display: flex; align-items: center; gap: 6px;
  font-family: var(--font-body);
  font-size: .72rem; font-weight: 500;
  letter-spacing: .04em; text-transform: uppercase;
  color: var(--gray-3);
  margin: 0 0 8px;
}
.gvpf-card-location svg { width: 13px; height: 13px; flex-shrink: 0; color: var(--gold); }
.gvpf-card-title {
  font-family: var(--font-head);
  font-size: 1.5rem; font-weight: 500;
  color: var(--text-heading);
  line-height: 1.2;
  margin: 0 0 6px;
}
.gvpf-card-meta {
  font-family: var(--font-body);
  font-size: .85rem; font-weight: 300;
  color: var(--text-body);
  margin: 0 0 18px;
}
.gvpf-card-cta {
  display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--font-body);
  font-size: .72rem; font-weight: 600;
  letter-spacing: .08em; text-transform: uppercase;
  color: var(--text-heading);
  border-top: 1px solid var(--gray-1);
  padding-top: 16px;
  width: 100%;
}
.gvpf-card-cta svg { width: 14px; height: 14px; transition: transform .2s ease; }
.gvpf-card:hover .gvpf-card-cta svg { transform: translateX(4px); }
.gvpf-card:hover .gvpf-card-cta { color: var(--gold); }

@media (max-width: 900px) {
  .gvpf-grid--3 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
  .gvpf-grid, .gvpf-grid--2, .gvpf-grid--3 { grid-template-columns: 1fr; }
}

/* ============================================================
   PROJECT CATEGORY CHOOSER — editorial split banners
   ============================================================ */
.gvpc-split-section {
  background: #fff;
  padding: 40px clamp(15px,4vw,80px) 96px;
}
.gvpc-split-list {
  max-width: var(--max-w);
  margin: 0 auto;
  display: flex;
  flex-direction: column;
}

.gvpc-split {
  display: flex;
  align-items: stretch;
  gap: clamp(28px, 5vw, 64px);
  padding: 40px 0;
  border-bottom: 1px solid var(--gray-1);
}
.gvpc-split:first-child { padding-top: 0; }
.gvpc-split:last-child { border-bottom: none; padding-bottom: 0; }
.gvpc-split--reverse { flex-direction: row-reverse; }

.gvpc-split-img {
  flex: 0 0 42%;
  aspect-ratio: 16 / 11;
  overflow: hidden;
  background: var(--gray-1);
}
.gvpc-split-img img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .6s var(--ease-out);
}
.gvpc-split:hover .gvpc-split-img img { transform: scale(1.06); }

.gvpc-split-body {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
}
.gvpc-split-index {
  font-family: var(--font-head);
  font-size: 1rem;
  font-weight: 500;
  color: var(--gray-3);
  letter-spacing: .04em;
  margin-bottom: 14px;
}
.gvpc-split-badge {
  display: inline-flex;
  align-self: flex-start;
  padding: 5px 14px;
  margin-bottom: 16px;
  font-family: var(--font-body);
  font-size: .65rem; font-weight: 700;
  letter-spacing: .1em; text-transform: uppercase;
  border: 1px solid currentColor;
  border-radius: 999px;
}
.gvpc-split-badge--ongoing   { color: var(--blue); }
.gvpc-split-badge--completed { color: var(--green-accent); }
.gvpc-split-badge--upcoming  { color: var(--gold); }

.gvpc-split-title {
  font-family: var(--font-head);
  font-size: clamp(1.8rem, 3vw, 2.6rem);
  font-weight: 500;
  color: var(--text-heading);
  line-height: 1.15;
  margin: 0 0 14px;
}
.gvpc-split-tagline {
  font-family: var(--font-body);
  font-size: .95rem; font-weight: 300;
  line-height: 1.75;
  color: var(--text-body);
  max-width: 480px;
  margin: 0 0 20px;
}
.gvpc-split-count {
  font-family: var(--font-body);
  font-size: .68rem; font-weight: 600;
  letter-spacing: .1em; text-transform: uppercase;
  color: var(--gray-3);
  margin-bottom: 20px;
}
.gvpc-split-cta {
  display: inline-flex; align-items: center; gap: 10px;
  align-self: flex-start;
  padding: 13px 26px;
  font-family: var(--font-body);
  font-size: .72rem; font-weight: 600;
  letter-spacing: .08em; text-transform: uppercase;
  color: var(--text-heading);
  border: 1px solid var(--text-heading);
  transition: background .2s ease, color .2s ease;
}
.gvpc-split-cta svg { width: 14px; height: 14px; transition: transform .2s ease; }
.gvpc-split:hover .gvpc-split-cta { background: var(--text-heading); color: #fff; }
.gvpc-split:hover .gvpc-split-cta svg { transform: translateX(4px); }

@media (max-width: 760px) {
  .gvpc-split, .gvpc-split--reverse { flex-direction: column; }
  .gvpc-split-img { aspect-ratio: 16 / 9; }
}
