/* ━━━━━━━━━━━━━━ DARK SECTION OVERRIDES ━━━━━━━━━━━━━━ */
/* Hero keeps light text over dark image */
#hero, #hero .hero-title, #hero .hero-sub { color: #F0EBE3; }
#hero .hero-eyebrow { color: var(--accent); }
#hero .stat-val { color: #F0EBE3; }
#hero .stat-lbl { color: rgba(240,235,227,0.45); }
#hero .scroll-arrow span { color: rgba(240,235,227,0.4); }
#hero .stat { border-right-color: rgba(196,160,106,0.2); }

/* Tour section — light warm, airy */
#tour { background: #F3F0E9; color: var(--text); }
#tour .section-label { color: var(--text-dim); }
#tour .section-title { color: var(--text); }
#tour .tour-hint { color: var(--text-dim); }
#tour .room-activity { background: rgba(25,24,15,0.06); border-color: rgba(25,24,15,0.1); }
#tour .room-activity-text { color: var(--text-mid); }
#tour .room-activity-count { color: var(--text); }
#tour .stone-room { color: var(--text-dim); }
#tour .stone-name { color: var(--text); }

/* ━━━━━━━━━━━━━━ FOOTER ━━━━━━━━━━━━━━ */
footer {
  background: #0D0C0A;
  padding: 72px 52px 44px;
}

.foot-main {
  display: grid;
  grid-template-columns: 1.6fr 1fr 1.2fr;
  gap: 0;
  padding-bottom: 64px;
}

/* ── Col dividers ── */
.foot-col { padding-right: 52px; }
.foot-col-nav { padding-left: 52px; border-left: 1px solid rgba(240,235,227,0.07); padding-right: 52px; }
.foot-col-agent { padding-left: 52px; border-left: 1px solid rgba(240,235,227,0.07); padding-right: 0; }

/* ── Property col ── */
.foot-eyebrow {
  font-size: 10px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: rgba(240,235,227,0.35);
  margin-bottom: 20px;
}
.foot-address {
  font-family: var(--serif);
  font-size: clamp(32px, 4vw, 52px);
  font-weight: 300;
  letter-spacing: -0.02em;
  color: rgba(240,235,227,0.92);
  line-height: 1.05;
  margin-bottom: 20px;
}
.foot-tagline {
  font-size: 12px;
  color: rgba(240,235,227,0.35);
  line-height: 1.9;
  margin-bottom: 32px;
  letter-spacing: 0.02em;
}
.foot-cta {
  display: inline-block;
  font-size: 10px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--accent);
  border: 1px solid rgba(184,146,74,0.4);
  padding: 11px 22px;
  text-decoration: none;
  transition: background 0.3s, color 0.3s, border-color 0.3s;
}
.foot-cta:hover { background: var(--accent); color: #080806; border-color: var(--accent); }

/* ── Nav col ── */
.foot-nav-label {
  font-size: 9px;
  letter-spacing: 0.36em;
  text-transform: uppercase;
  color: rgba(240,235,227,0.28);
  margin-bottom: 24px;
}
.foot-nav {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.foot-nav a {
  font-family: var(--serif);
  font-size: 15px;
  font-weight: 300;
  color: rgba(240,235,227,0.55);
  text-decoration: none;
  transition: color 0.25s;
  letter-spacing: 0.01em;
}
.foot-nav a:hover { color: rgba(240,235,227,0.9); }

/* ── Agent col ── */
.foot-agent {
  display: flex;
  gap: 18px;
  align-items: flex-start;
}
.foot-agent-photo {
  width: 58px;
  height: 72px;
  flex-shrink: 0;
  overflow: hidden;
}
.foot-agent-photo img {
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center top;
  display: block;
  filter: grayscale(20%) contrast(1.05);
}
.foot-agent-info {
  display: flex;
  flex-direction: column;
  padding-top: 2px;
}
.foot-agent-name {
  font-family: var(--serif);
  font-size: 15px;
  font-weight: 400;
  letter-spacing: 0.015em;
  color: rgba(240,235,227,0.92);
  margin-bottom: 4px;
  line-height: 1.25;
}
.foot-agent-title {
  font-family: var(--sans);
  font-size: 10px;
  font-weight: 400;
  letter-spacing: 0.04em;
  color: rgba(240,235,227,0.32);
  line-height: 1.5;
  margin-bottom: 14px;
  text-transform: uppercase;
}
.foot-agent-contacts {
  display: flex;
  flex-direction: column;
  gap: 5px;
  margin-bottom: 14px;
}
.foot-agent-contacts a {
  font-family: var(--sans);
  font-size: 10.5px;
  font-weight: 400;
  color: rgba(240,235,227,0.48);
  text-decoration: none;
  transition: color 0.2s;
  letter-spacing: 0.015em;
  line-height: 1.4;
}
.foot-agent-contacts a:hover { color: var(--accent); }
/* Social icons */
.foot-agent-socials {
  display: flex;
  gap: 16px;
  align-items: center;
}
.foot-agent-socials a {
  color: rgba(240,235,227,0.25);
  text-decoration: none;
  transition: color 0.25s;
  display: flex;
  align-items: center;
  line-height: 1;
}
.foot-agent-socials a:hover { color: rgba(240,235,227,0.7); }

/* ── Divider ── */
.foot-rule {
  height: 1px;
  background: rgba(240,235,227,0.07);
  margin-bottom: 28px;
}

/* ── Bottom bar ── */
.foot-bot {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.foot-bot span {
  font-size: 10.5px;
  color: rgba(240,235,227,0.25);
  letter-spacing: 0.04em;
}
.foot-legal { display: flex; gap: 24px; }
.foot-legal a {
  font-size: 10.5px;
  color: rgba(240,235,227,0.25);
  text-decoration: none;
  transition: color 0.25s;
  letter-spacing: 0.04em;
}
.foot-legal a:hover { color: rgba(240,235,227,0.55); }

/* Section background variety */
#details { background: #FFFFFF; }
#materials { background: #F3F0E9; }
#location { background: #FFFFFF; }
#inquire { background: #F0EDE7; }

/* Marquee light */


/* ━━━━━━━━━━━━━━ MAP PIN LABELS ━━━━━━━━━━━━━━ */
.map-label-wrap { display: flex; align-items: center; gap: 5px; white-space: nowrap; }
.map-pin-dot { width: 7px; height: 7px; border-radius: 50%; flex-shrink: 0; border: 1.5px solid #FFF; }
.map-label-wrap.edu .map-pin-dot { background: #5A7A5A; }
.map-label-wrap.shop .map-pin-dot { background: #6A6A9E; }
.map-label-wrap.transit .map-pin-dot { background: #9E6A5A; }
.map-label-wrap.prop .map-pin-dot {
  width: 11px; height: 11px;
  background: var(--accent);
  border: 2px solid #FFF;
  box-shadow: 0 0 0 3px rgba(184,146,74,0.3);
}
.map-pin-name {
  font-family: 'Inter', sans-serif;
  font-size: 11px;
  letter-spacing: 0.03em;
  color: #2A2820;
  background: rgba(255,255,255,0.94);
  border: 1px solid rgba(25,24,15,0.09);
  padding: 2px 7px 2px 6px;
  border-radius: 3px;
}
.map-label-wrap.prop .map-pin-name {
  font-weight: 500;
  color: var(--accent);
  border-color: rgba(184,146,74,0.25);
  background: rgba(255,255,255,0.98);
}

/* Leaflet popup light */
.leaflet-popup-content-wrapper {
  border-radius: 0 !important;
  box-shadow: 0 4px 24px rgba(25,24,15,0.1), 0 1px 4px rgba(25,24,15,0.06) !important;
}

/* ━━━━━━━━━━━━━━ LIGHTBOX ━━━━━━━━━━━━━━ */
#lb {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 999;
  background: rgba(7,7,5,0.97);
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 0.4s;
}
#lb.open { display: flex; }
#lb.vis { opacity: 1; }
#lb img { max-width: 92vw; max-height: 90vh; object-fit: contain; }
#lb-close {
  position: absolute; top: 22px; right: 32px;
  background: none; border: none;
  color: rgba(240,235,227,0.7); font-size: 26px; font-weight: 300;
  cursor: pointer; opacity: 1; transition: color 0.3s;
  line-height: 1;
}
#lb-close:hover { color: #F0EBE3; }
#lb-prev, #lb-next {
  position: absolute; top: 50%; transform: translateY(-50%);
  background: none; border: 1px solid rgba(240,235,227,0.15);
  color: rgba(240,235,227,0.5); font-size: 12px; letter-spacing: 0.15em; text-transform: uppercase;
  padding: 14px 20px; cursor: pointer; transition: all 0.3s;
}
#lb-prev { left: 32px; }
#lb-next { right: 32px; }
#lb-prev:hover, #lb-next:hover { border-color: var(--accent); color: var(--accent); }

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━