@import url('https://fonts.googleapis.com/css2?family=Newsreader:opsz,wght@6..72,400;6..72,500;6..72,600;6..72,700&family=Inter:wght@400;500;600;700&display=swap');
/* ==========================================================================
   BOT / G&W Holdings — professional house theme (cobalt navy + amber gold)
   Logo-true palette: Cobalt #004890 | Amber #F0A800 | Warm Cream #FBF8F1
   Fonts: Newsreader (serif headings) + Inter (body/UI). Bootstrap Icons (line icons).
   2026-06-24 professional rebrand (researched + WCAG-AA verified).
   ========================================================================== */
:root{
  /* legacy --bot-* names remapped to the new logo-true palette */
  --bot-navy:#004890;        /* dominant brand: links, headers, fills, active */
  --bot-navy-2:#003A73;      /* deep: hovers */
  --bot-navy-3:#002A52;      /* panel: large dark surfaces / footer */
  --bot-gold:#F0A800;        /* amber — NON-TEXT: fills / >=3px keylines / large display */
  --bot-gold-2:#FFC233;      /* light gold — for gold-toned TEXT on navy only */
  --bot-gray-bg:#FBF8F1;     /* warm cream page ground */
  --bot-gray:#5C564F;        /* warm muted text */
  --bot-white:#FFFFFF;
  /* new semantic tokens */
  --bot-navy-deep:#003A73;
  --bot-navy-panel:#002A52;
  --bot-gold-text:#8A6D0F;   /* text-safe bronze for gold-toned text on light */
  --bot-bg-card:#FFFFFF;
  --bot-bg-subtle:#F4EFE4;   /* zebra rows / wells / hovered rows */
  --bot-text:#1F2733;        /* body ink — 14:1 on cream */
  --bot-text-muted:#5C564F;  /* AA on cream */
  --bot-border:#D6CBB5;      /* load-bearing card/input delineation on cream */
  --bot-border-subtle:#E4DCCD;
  --bot-shadow-xs:0 1px 2px rgba(16,24,40,.05);
  --bot-shadow-sm:0 1px 2px rgba(16,24,40,.06),0 1px 3px rgba(16,24,40,.08);
  --bot-shadow-md:0 4px 8px rgba(16,24,40,.08);
  --bot-radius:4px;          /* institutional, squared */
  --bot-radius-lg:6px;
  --bot-focus:0 0 0 3px rgba(0,72,144,.35);
  --bot-font-head:'Newsreader',Georgia,'Times New Roman',serif;
  --bot-font-body:'Inter',-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
}

body{ background:var(--bot-gray-bg); color:var(--bot-text);
  font-family:var(--bot-font-body); line-height:1.6; }
h1,h2,h3,h4{ font-family:var(--bot-font-head); font-weight:600; letter-spacing:-.01em; }

/* ---- Header bar ---------------------------------------------------------- */
.bot-header{
  background:linear-gradient(160deg,var(--bot-navy) 0%, var(--bot-navy-panel) 100%);
  border-bottom:3px solid var(--bot-gold);
  box-shadow:0 1px 0 rgba(255,255,255,.04) inset, 0 4px 14px rgba(16,24,40,.16);
  padding:.7rem 1.4rem; margin-bottom:1.25rem; border-radius:0 0 6px 6px;
}
.bot-logo{ height:clamp(40px,7vw,58px); filter:drop-shadow(0 1px 3px rgba(0,0,0,.45)); }
.bot-co-name{ color:#fff; font-family:var(--bot-font-head); font-weight:600;
  letter-spacing:.1px; font-size:clamp(19px,3.6vw,29px); line-height:1.1; }
.bot-co-sub{ color:#c3d2e6; font-weight:500; letter-spacing:.04em; text-transform:uppercase;
  font-size:clamp(10px,1.9vw,12.5px); }
.bot-tagline{ color:var(--bot-gold-2); font-style:italic; font-size:clamp(11px,2vw,14px); }

/* ---- Header platform buttons + dropdowns --------------------------------- */
.bot-nav .dropdown-toggle, .bot-nav .btn{
  background:rgba(255,255,255,.10); color:#fff !important;
  border:1px solid rgba(255,255,255,.30); font-weight:600; border-radius:8px;
  padding:.35rem .8rem;
}
.bot-nav .dropdown-toggle:hover, .bot-nav .btn:hover,
.bot-nav .show > .dropdown-toggle{
  background:var(--bot-gold); color:var(--bot-navy) !important; border-color:var(--bot-gold);
}
.bot-nav .dropdown-menu{
  border:0; box-shadow:0 10px 34px rgba(0,0,0,.2);
  border-top:3px solid var(--bot-gold); border-radius:6px; padding:.35rem 0; min-width:270px;
}
.bot-nav .dropdown-header{
  color:var(--bot-navy); font-weight:600; text-transform:uppercase;
  font-size:.7rem; letter-spacing:.07em;
}
.bot-nav .dropdown-item{ font-size:.92rem; }
.bot-nav .dropdown-item:hover{ background:var(--bot-gray-bg); color:var(--bot-navy); }

/* ---- Static professional hero -------------------------------------------- */
.bot-hero{ position:relative; overflow:hidden; border-radius:8px;
  background:linear-gradient(135deg, var(--bot-navy-deep, #073763) 0%, var(--bot-navy, #004890) 100%);
  border:1px solid var(--bot-border, #E4DCCD); box-shadow:0 6px 22px rgba(0,40,80,.18);
  margin-bottom:1.5rem; }
.bot-hero-overlay{ position:relative; display:flex; flex-direction:column;
  align-items:center; justify-content:center; text-align:center;
  padding:clamp(2.2rem,6vw,4.2rem) clamp(1rem,4vw,2rem); }
.bot-hero-eyebrow{ color:var(--bot-gold-2, #FFC233); font-weight:700; letter-spacing:.16em;
  font-size:clamp(.62rem,1.4vw,.78rem); text-transform:uppercase; margin-bottom:.7rem; }
.bot-hero-title{ color:#fff; font-weight:600; margin:0; line-height:1.1;
  font-family:var(--bot-font-head, inherit); font-size:clamp(26px,5vw,46px); }
.bot-hero-tag{ color:#dbe6f2; font-weight:400; margin:.9rem auto 0; max-width:640px;
  font-size:clamp(14px,2.2vw,18px); line-height:1.55; }
.bot-hero-cta{ display:flex; gap:14px; flex-wrap:wrap; justify-content:center; margin-top:1.6rem; }
.bot-hero-btn{ display:inline-block; padding:.72rem 1.5rem; border-radius:6px; font-weight:600;
  font-size:.96rem; text-decoration:none; transition:background .18s ease, color .18s ease, border-color .18s ease; }
.bot-hero-btn--primary{ background:var(--bot-gold, #F0A800); color:var(--bot-navy-deep, #073763); border:1px solid var(--bot-gold, #F0A800); }
.bot-hero-btn--primary:hover{ background:var(--bot-gold-2, #ffc233); color:var(--bot-navy-deep, #073763); }
.bot-hero-btn--ghost{ background:transparent; color:#fff; border:1px solid rgba(255,255,255,.55); }
.bot-hero-btn--ghost:hover{ background:rgba(255,255,255,.12); border-color:#fff; }

/* ---- For Fun: animated BOT intro showcase -------------------------------- */
.bot-forfun-videowrap{ max-width:1100px; margin:1.2rem auto 1.6rem; padding:0 1rem; }
.bot-forfun-video{ width:100%; height:auto; display:block; border-radius:8px;
  box-shadow:0 8px 28px rgba(0,40,80,.22); background:#000; }

/* ---- Suite cards + sections --------------------------------------------- */
.suite-card{ border:1px solid #D6CBB5 !important; border-radius:8px;
  transition:transform .15s ease, box-shadow .15s ease; }
.suite-card:hover{ transform:translateY(0); box-shadow:0 12px 28px rgba(16,24,40,.18)!important; }
.suite-card .card-title{ color:var(--bot-navy); }
h2{ color:var(--bot-navy); font-weight:600; }
h3{ color:var(--bot-navy); border-left:4px solid var(--bot-gold); padding-left:.55rem; }

/* ---- Buttons: brand the primary action --------------------------------- */
.btn-primary{ background:var(--bot-navy)!important; border-color:var(--bot-navy)!important; }
.btn-primary:hover,.btn-primary:focus{ background:var(--bot-navy-2)!important; border-color:var(--bot-navy-2)!important; }

/* Tenant portal call-to-action in the header */
.bot-cta{ background:var(--bot-gold)!important; color:var(--bot-navy)!important;
  border:1px solid var(--bot-gold)!important; font-weight:700!important; }
.bot-cta:hover{ background:var(--bot-gold-2)!important; border-color:var(--bot-gold-2)!important; }

/* ---- Tabs: clean underline nav (main page + portfolio building tabs) --- */
#tabs, #property-tabs{ border-bottom:2px solid var(--bot-border-subtle) !important; display:flex; flex-wrap:wrap; gap:2px;
  justify-content:center; padding:0 !important; background:transparent !important;
  box-shadow:none !important; margin:0 auto 1.4rem; max-width:max-content; }
#tabs .tab, #property-tabs .tab{ border:0 !important; background:transparent !important;
  color:var(--bot-gray) !important; font-weight:600 !important; font-size:17px !important;
  letter-spacing:.2px; padding:11px 20px !important; border-radius:0 !important;
  border-bottom:3px solid transparent !important;
  transition:color .15s ease, border-color .15s ease; box-shadow:none !important; }
#tabs .tab:hover, #property-tabs .tab:hover{ color:var(--bot-navy) !important;
  border-bottom-color:rgba(0,72,144,.35) !important; background:transparent !important; }
#tabs .tab--selected, #tabs .tab--selected:hover,
#property-tabs .tab--selected, #property-tabs .tab--selected:hover{ color:var(--bot-navy) !important;
  font-weight:600 !important; border-bottom:3px solid var(--bot-navy) !important;
  background:transparent !important; box-shadow:none !important; }

/* ---- Hover safety: never white-on-blue or blue-on-blue ----------------- */
.btn-outline-primary:hover, .btn-outline-secondary:hover{
  background:var(--bot-navy) !important; color:#fff !important; border-color:var(--bot-navy) !important; }
.btn-primary:hover, .btn-primary:focus{
  background:var(--bot-navy-2) !important; color:#fff !important; border-color:var(--bot-gold) !important; }

/* ---- Content sections (Why Choose Us / tenants) ----------------------- */
h4{ color:var(--bot-navy); }
.bot-feature-list{ list-style:none; padding-left:0; display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:12px; margin:1rem 0; }
.bot-feature-list li{ background:#fff; border:1px solid #D6CBB5; border-left:4px solid var(--bot-gold);
  border-radius:6px; padding:12px 16px; box-shadow:0 2px 8px rgba(16,24,40,.06);
  font-weight:500; color:#1F2733; }

/* ---- Footer ----------------------------------------------------------- */
.bot-footer{ background:var(--bot-navy-panel); color:#c3d2e6; margin-top:2.5rem;
  border-top:3px solid var(--bot-gold); padding:2.1rem 1.6rem 1.4rem; border-radius:6px 6px 0 0; }
.bot-footer a{ color:var(--bot-gold-2); text-decoration:none; }
.bot-footer a:hover{ color:#fff; text-decoration:underline; }
.bot-footer .bot-foot-title{ color:#fff; font-family:var(--bot-font-head); font-weight:600;
  font-size:1.05rem; margin-bottom:.5rem; letter-spacing:.2px; }

/* ---- Header staff link ------------------------------------------------ */
.bot-staff{ color:#e9eafb !important; font-size:.8rem; text-decoration:none;
  border:1px solid rgba(255,255,255,.28); border-radius:8px; padding:.32rem .62rem; white-space:nowrap; }
.bot-staff:hover{ background:#fff; color:var(--bot-navy) !important; }

/* ---- Why Choose Us — visual redesign ---------------------------------- */
.bot-why-hero{ background:linear-gradient(120deg,var(--bot-navy),var(--bot-navy-3));
  border-radius:6px; padding:2rem 2rem 2.2rem; border:1px solid #E4DCCD;
  box-shadow:0 8px 26px rgba(16,24,40,.18); margin-bottom:1.4rem; }
.bot-why-eyebrow{ color:var(--bot-gold-2); font-weight:600; letter-spacing:.18em; font-size:.72rem; margin-bottom:.5rem; }
.bot-why-headline{ color:#fff !important; font-weight:600; font-size:clamp(20px,3.4vw,30px);
  margin:0 !important; border:0 !important; padding:0 !important; max-width:780px; line-height:1.25; }
.bot-why-sub{ color:#dcddf4 !important; max-width:780px; margin-top:.85rem; line-height:1.7; }
.bot-valueprops{ display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:16px; margin-bottom:1.6rem; }
.bot-vp-card{ background:#fff; border:1px solid #D6CBB5; border-radius:6px; padding:1.3rem;
  box-shadow:0 3px 14px rgba(16,24,40,.07); transition:transform .15s ease, box-shadow .15s ease; }
.bot-vp-card:hover{ transform:translateY(0); box-shadow:0 12px 26px rgba(16,24,40,.14); }
.bot-vp-ico{ font-size:30px; line-height:1; margin-bottom:.5rem; }
.bot-vp-title{ color:var(--bot-navy); font-weight:600; font-size:1.05rem; margin-bottom:.35rem; }
.bot-vp-card p{ color:#4a4a60; line-height:1.6; margin:0; font-size:.94rem; }
.bot-approach{ background:#fff; border:1px solid #D6CBB5; border-left:5px solid var(--bot-gold);
  border-radius:8px; padding:1.3rem 1.5rem; box-shadow:0 2px 10px rgba(16,24,40,.06); margin-bottom:.5rem; }
.bot-approach h4{ margin-top:0; }
.bot-approach p{ color:#1F2733; line-height:1.7; }
.bot-why-close{ background:#F4EFE4; border-radius:8px; padding:1.2rem 1.4rem; margin-top:1.3rem;
  color:var(--bot-navy); font-weight:600; line-height:1.7; border-left:5px solid var(--bot-navy); }

/* ---- Properties map card ---------------------------------------------- */
.bot-mapcard{ background:#fff; border:1px solid #D6CBB5; border-radius:6px;
  padding:1.5rem 1.5rem 1.7rem; box-shadow:0 6px 22px rgba(16,24,40,.10);
  max-width:1080px; margin:2rem auto 2.5rem; }
.bot-mapcard iframe{ width:100%; height:520px; border:0; border-radius:8px;
  box-shadow:0 2px 10px rgba(0,0,0,.08); }


/* ════════════ ELEGANT ICON + IMAGE + FONT SYSTEM (2026-06-24) ════════════ */

/* ---- Font refinements ---- */
:root {
  --bot-font-head: "Newsreader", Georgia, "Times New Roman", serif;
  --bot-font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

/* Headings — Newsreader, refined editorial weight & tracking */
h1, h2, h3, h4, h5, h6,
.bot-h, .bot-display {
  font-family: var(--bot-font-head);
  font-weight: 600;
  letter-spacing: -0.011em;        /* gentle tightening for elegance */
  line-height: 1.14;
  color: var(--bot-navy, #004890);
  font-optical-sizing: auto;        /* engage Newsreader optical sizes */
  text-wrap: balance;
}
h1, .bot-display {
  font-weight: 500;                 /* large display reads lighter & more refined */
  line-height: 1.08;
  letter-spacing: -0.015em;
}
h3, h4 { font-weight: 600; line-height: 1.2; }

/* Optional elegant lead paragraph in Newsreader italic */
.bot-lede {
  font-family: var(--bot-font-head);
  font-weight: 400;
  font-style: italic;
  font-size: 1.25rem;
  line-height: 1.5;
  color: var(--bot-muted, #5C564F);
  letter-spacing: 0;
}

/* Body — Inter, airy and legible */
body, p, li, td, th, input, button, select, textarea,
.bot-body {
  font-family: var(--bot-font-body);
  font-weight: 400;
  line-height: 1.62;
  letter-spacing: 0.0;
  color: var(--bot-ink, #1F2733);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Eyebrow / label small-caps style for institutional section kickers */
.bot-eyebrow {
  font-family: var(--bot-font-body);
  font-weight: 600;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--bot-gold-text, #8A6D0F);   /* bronze gold-on-light = AA pass */
}

/* Buttons & nav stay Inter for crisp UI chrome */
.btn, button, .nav-link, .bot-nav { font-family: var(--bot-font-body); font-weight: 600; letter-spacing: 0.005em; }

/* ============================================================
   ICONS — Bootstrap Icons (1.11) elegant institutional system
   Gold (#F0A800) NEVER as icon on light. On light -> navy/bronze.
   Gold icon ONLY on a navy/deep ground.
   ============================================================ */

/* --- Generic inline icon (.bi) sizing & vertical alignment --- */
.bi {
  display: inline-block;
  line-height: 1;
  vertical-align: -0.125em;       /* optical baseline align with body text */
  font-size: 1.05em;              /* track surrounding text size */
  color: inherit;                 /* inherit ink/navy from context, never gold on light */
}

/* Headings keep icons quietly navy, never gold-on-light */
h1 .bi, h2 .bi, h3 .bi, h4 .bi { color: var(--bot-navy); }

/* ============================================================
   VALUE-PROP CARD BADGE — .bot-vp-ico
   Refined circular badge: cream ground + navy icon, gold hairline ring.
   ============================================================ */
.bot-vp-ico {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  border-radius: 50%;                       /* circular = institutional */
  background: var(--bot-cream, #FBF8F1);
  color: var(--bot-navy, #004890);          /* navy icon on light cream = AA pass */
  box-shadow: inset 0 0 0 1px var(--bot-border, #D6CBB5),
              0 1px 2px rgba(0, 42, 82, 0.06);
  margin-bottom: 18px;
  font-size: 0;                             /* kill any residual emoji glyph box */
  transition: background .25s ease, color .25s ease, box-shadow .25s ease;
}
.bot-vp-ico .bi {
  font-size: 24px;                          /* fixed glyph size, not em */
  color: inherit;
  vertical-align: 0;
}

/* Hover: invert to navy ground with light-gold glyph (gold-on-navy is allowed) */
.bot-vp-card:hover .bot-vp-ico,
.bot-vp-ico:hover {
  background: var(--bot-navy, #004890);
  color: var(--bot-gold-2, #FFC233);        /* light gold on navy = AA pass */
  box-shadow: inset 0 0 0 1px var(--bot-deep, #003A73),
              0 4px 10px rgba(0, 42, 82, 0.18);
}

/* ============================================================
   CONTACT ROW BADGE — .bot-ci-ico
   Smaller squircle: navy ground + light-gold glyph (always on navy).
   ============================================================ */
.bot-ci-ico {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 44px;
  height: 44px;
  border-radius: 12px;                      /* squircle */
  background: var(--bot-navy, #004890);
  color: var(--bot-gold-2, #FFC233);        /* light gold on navy = AA pass */
  box-shadow: 0 1px 3px rgba(0, 42, 82, 0.16);
  margin-right: 14px;
  font-size: 0;
}
.bot-ci-ico .bi {
  font-size: 20px;
  color: inherit;
  vertical-align: 0;
}

/* ============================================================
   INLINE ACTION-BUTTON ICONS
   Leading/trailing icons inside buttons & links get even spacing.
   ============================================================ */
.btn .bi,
button .bi,
a.btn .bi {
  font-size: 1em;
  vertical-align: -0.1em;
}
.btn .bi:first-child:not(:last-child)  { margin-right: 0.5em; }  /* leading */
.btn .bi:last-child:not(:first-child)  { margin-left: 0.5em; }   /* trailing (arrow-right etc.) */
.btn .bi:only-child                    { margin: 0; }            /* icon-only button */

/* Solid navy buttons: glyph follows label color (cream/white), never gold-on-light */
.btn-primary .bi, .bot-btn-navy .bi { color: inherit; }

/* Status dot helper: gold/green fill is a shape, not text, so it is allowed on light */
.bi-circle-fill.is-live { color: #1F8A4C; font-size: 0.7em; vertical-align: 0.1em; }

/* ============================================================
   IMAGE MODERNIZATION — scoped to content, never the header logo / 3D iframes
   Consistent 6px radius, cover fit, hairline frame, soft neutral shadow.
   Scope to #tabs-content + card/carousel containers only.
   ============================================================ */

/* Base treatment for content imagery (exclude logos, icons, iframes) */
#tabs-content img:not(.no-frame):not([src*="logo"]):not([class*="logo"]) {
  display: block;
  max-width: 100%;
  border-radius: 6px;
  object-fit: cover;
  background: var(--bot-cream, #FBF8F1);    /* graceful letterbox while loading */
  box-shadow: 0 0 0 1px var(--bot-border, #D6CBB5),   /* 1px warm hairline frame */
              0 6px 18px -8px rgba(0, 42, 82, 0.22);  /* soft navy-neutral shadow */
  transition: transform .35s ease, box-shadow .35s ease;
}

/* Never touch the header brand mark or 3D tour iframes */
.header img, header img, img[src*="logo"], .bot-vp-ico, .bot-ci-ico { box-shadow: none; }
#tabs-content iframe { border: 0; border-radius: 6px; }   /* 3D viewer: rounded, no frame logic */

/* Tasteful hover only inside interactive media wrappers (cards/carousels) */
.card .bot-media,
.bot-building-card .bot-media,
.bot-suite-card .bot-media,
#tabs-content .bot-carousel .bot-slide {
  position: relative;
  overflow: hidden;
  border-radius: 6px;
}
.card .bot-media img,
.bot-building-card .bot-media img,
.bot-suite-card .bot-media img,
#tabs-content .bot-carousel .bot-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 6px;
}
.card:hover .bot-media img,
.bot-building-card:hover .bot-media img,
.bot-suite-card:hover .bot-media img,
#tabs-content .bot-carousel .bot-slide:hover img {
  transform: scale(1.04);                   /* gentle zoom */
}
/* Subtle navy gradient overlay on hover for legibility of any caption */
.card .bot-media::after,
.bot-building-card .bot-media::after,
.bot-suite-card .bot-media::after {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(0,42,82,0.28), rgba(0,42,82,0) 55%);
  opacity: 0;
  transition: opacity .35s ease;
  pointer-events: none;
}
.card:hover .bot-media::after,
.bot-building-card:hover .bot-media::after,
.bot-suite-card:hover .bot-media::after { opacity: 1; }

/* Building & suite card hero images — fixed elegant aspect, cropped */
.bot-building-card .bot-media,
.bot-suite-card .bot-media {
  aspect-ratio: 3 / 2;
}

/* Carousel framing */
#tabs-content .bot-carousel {
  border-radius: 6px;
  overflow: hidden;
  box-shadow: 0 0 0 1px var(--bot-border, #D6CBB5),
              0 8px 24px -10px rgba(0, 42, 82, 0.25);
}
#tabs-content .bot-carousel img { box-shadow: none; border-radius: 0; }

/* FLOOR PLANS — must show whole drawing: contain, never crop */
#tabs-content img[src*="floorplan"],
#tabs-content .bot-floorplan img {
  object-fit: contain;
  background: #FFFFFF;                       /* clean ground for line drawings */
  width: 100%;
  height: auto;
  box-shadow: 0 0 0 1px var(--bot-border, #D6CBB5);
}

/* Figure / caption styling */
#tabs-content figure { margin: 0 0 1.25rem; }
#tabs-content figure figcaption {
  margin-top: 0.5rem;
  font-family: var(--bot-font-body, "Inter", sans-serif);
  font-size: 0.8125rem;
  letter-spacing: 0.01em;
  color: var(--bot-muted, #5C564F);
  line-height: 1.4;
}

/* Popup / lightbox images: framed, contained so nothing is clipped */
.modal img, .bot-popup img, [class*="popup"] img {
  border-radius: 6px;
  object-fit: contain;
  box-shadow: 0 10px 40px -12px rgba(0, 42, 82, 0.45);
}
/* ════════════ ELEGANCE PASS 2 — btn-row / gold+ghost / spec sheet / building hero ════════════ */
/* — Button row: even gaps + alignment; stack full-width on mobile — */
.btn-row{ display:flex; flex-wrap:wrap; gap:10px; align-items:stretch; margin-top:.9rem; }
.btn-row .btn{ flex:0 0 auto; }
@media (max-width:768px){ .btn-row{ flex-direction:column; } .btn-row .btn{ width:100%; } }

/* — Gold CTA + ghost variants (theme already has navy primary + navy-outline) — */
.btn-gold{ background:var(--bot-gold)!important; color:var(--bot-navy)!important;
  border:1px solid var(--bot-gold)!important; font-weight:700!important; }
.btn-gold:hover{ background:var(--bot-gold-2)!important; color:var(--bot-navy)!important; border-color:var(--bot-gold-2)!important; }
.btn-ghost{ background:transparent!important; color:#fff!important; border:1px solid rgba(255,255,255,.55)!important; }
.btn-ghost:hover{ background:rgba(255,255,255,.12)!important; color:#fff!important; }

/* — Spec sheet (key/value grid) — */
.bot-spec{ display:grid; grid-template-columns:1fr; gap:6px; margin:.4rem 0 .2rem; }
.bot-spec-row{ display:flex; justify-content:space-between; gap:12px;
  border-bottom:1px solid var(--bot-border-subtle); padding:5px 0; }
.bot-spec-k{ color:var(--bot-text-muted); font-size:.82rem; letter-spacing:.01em; }
.bot-spec-v{ color:var(--bot-text); font-weight:600; font-size:.9rem; text-align:right; }

/* — Property-page editorial hero (image + navy gradient + name/specs overlaid) — */
.bot-building-hero{ position:relative; border-radius:8px; overflow:hidden; margin:1.25rem 0 1.5rem;
  box-shadow:0 0 0 1px var(--bot-border), 0 10px 30px -12px rgba(0,42,82,.4); }
.bot-building-hero-img{ display:block; width:100%; height:clamp(240px,38vw,420px); object-fit:cover; }
/* Building page: photo (left) + location map (right) side by side, equal height
   (boss 2026-07-07); stacks on phones. */
.bot-hero-map-row{ margin-top:6px; }
/* the hero carries a stock 1.25rem top margin and the <iframe> is inline by
   default — zero both so the photo and the map line up top and bottom */
.bot-hero-map-row .bot-building-hero{ margin:0 !important; }
.bot-hero-map-row .bot-building-hero,
.bot-hero-map-row .bot-building-hero-img{ height:clamp(300px,34vw,400px) !important; }
.bot-hero-map-row .bot-frame{ display:block; height:clamp(300px,34vw,400px) !important;
  margin:0 !important; border-radius:12px; }
@media (max-width:767px){
  .bot-hero-map-row .bot-building-hero,
  .bot-hero-map-row .bot-building-hero-img,
  .bot-hero-map-row .bot-frame{ height:300px !important; }
}
.bot-building-hero-overlay{ position:absolute; inset:auto 0 0 0; padding:clamp(1rem,3vw,2rem);
  background:linear-gradient(to top, rgba(0,42,82,.82), rgba(0,42,82,0)); color:#fff; }
.bot-building-hero-title{ color:#fff!important; border:0!important; padding:0!important; margin:.2rem 0 0;
  font-family:var(--bot-font-head); font-size:clamp(24px,4vw,40px); }
.bot-building-hero-meta{ color:#dbe6f2; font-size:clamp(13px,1.8vw,15px); margin-top:.3rem; }

/* — Map iframe frame (referenced by detail pages) — */
.bot-frame{ border:1px solid var(--bot-border)!important; border-radius:6px;
  box-shadow:var(--bot-shadow-sm); }

/* — Suite-page media are FLOOR PLANS: show the whole drawing, never crop — */
.bot-suite-card .bot-media{ aspect-ratio:auto; }
.bot-suite-card .bot-media img{ object-fit:contain!important; background:#fff;
  height:auto!important; max-height:360px; }

/* ════════════ ELEGANCE PASS 3 — detail-page surfaces + hero eyebrow fix (review) ════════════ */
/* Detail-page card + well: replace heavy inline #fff / rgba(0,0,0,.3) / 20px chrome with theme tokens */
.bot-panel{ background:var(--bot-bg-card); border:1px solid var(--bot-border);
  border-radius:var(--bot-radius-lg); box-shadow:var(--bot-shadow-md);
  margin:2rem auto 1.5rem; padding:clamp(1rem,3vw,2rem); max-width:1500px; }
.bot-well{ background:var(--bot-bg-subtle); border:1px solid var(--bot-border-subtle);
  border-radius:var(--bot-radius-lg); padding:1.1rem 1.3rem; margin-top:1.1rem; }

/* Building-hero eyebrow must stay readable over a bright photo: white, not gold-on-light,
   and a stronger gradient floor so the whole overlay band has a dark base (WCAG fix). */
.bot-building-hero-overlay{ background:linear-gradient(to top, rgba(0,42,82,.92), rgba(0,42,82,.32)); }
.bot-building-hero-overlay .bot-hero-eyebrow{ color:#fff; }

/* ════════════ ADDENDUM A — Houston skyline hero + ARCOVA bento (Path A) ════════════ */
/* Skyline editorial hero (navy base shows if the photo is missing — never a broken box) */
.bot-skyline-hero{ position:relative; overflow:hidden; display:flex; align-items:center;
  min-height:clamp(420px,60vh,640px);
  background:var(--bot-navy) url('/assets/houston-skyline.jpg') center 55%/cover no-repeat; }
/* 2026-07-05 readability hardening: the hero text/buttons washed out after the
   masthead moved into the Home tab. Darker, fuller overlay + text shadows +
   explicit opacity so nothing upstream can fade them. */
.bot-skyline-overlay{ position:absolute; inset:0;
  background:linear-gradient(105deg, rgba(0,26,52,.95) 0%, rgba(0,30,60,.82) 45%, rgba(0,36,72,.55) 100%); }
.bot-skyline-inner{ position:relative; z-index:2; max-width:1180px; margin:0 auto;
  padding:clamp(1.5rem,5vw,4rem); color:#fff; width:100%; opacity:1 !important; }
.bot-skyline-hero .bot-hero-eyebrow{ color:var(--bot-gold-2); font-size:.8rem; font-weight:700;
  letter-spacing:.22em; text-transform:uppercase; text-shadow:0 1px 8px rgba(0,0,0,.55); opacity:1 !important; }
.bot-skyline-title{ font-family:var(--bot-font-head); color:#fff!important; border:0!important; padding:0!important;
  font-size:clamp(34px,6vw,66px); line-height:1.05; margin:.4rem 0 .7rem; max-width:15ch;
  text-shadow:0 2px 18px rgba(0,0,0,.6); opacity:1 !important; }
.bot-skyline-sub{ color:#eaf2fb !important; font-size:clamp(15px,2vw,19px); max-width:48ch; line-height:1.6;
  text-shadow:0 1px 10px rgba(0,0,0,.55); opacity:1 !important; }
.bot-skyline-hero .btn-row{ opacity:1 !important; }
.bot-skyline-hero .btn-row .btn{ opacity:1 !important; box-shadow:0 6px 22px rgba(0,0,0,.35); }
@media (max-width:768px){
  .bot-skyline-hero{ background-position:center 50%; }
  .bot-skyline-overlay{ background:linear-gradient(180deg, rgba(0,42,82,.74), rgba(0,42,82,.93)); }
}

/* Floating stat band (overlaps hero base) */
.bot-statbar-wrap{ max-width:1180px; margin:-46px auto 2.5rem; padding:0 1rem; position:relative; z-index:5; }
.bot-statbar{ display:grid; grid-template-columns:repeat(4,1fr); gap:0; background:var(--bot-navy);
  border-radius:10px; box-shadow:0 18px 40px -16px rgba(0,42,82,.55); overflow:hidden; }
.bot-statbar .bot-stat{ display:flex; align-items:center; gap:12px; padding:18px 22px;
  border-right:1px solid rgba(255,255,255,.10); text-align:left; background:transparent; border-radius:0; box-shadow:none; }
.bot-statbar .bot-stat:last-child{ border-right:0; }
.bot-stat-ico{ color:var(--bot-gold); font-size:1.5rem; }
/* number auto-scales down on narrow screens so "170,644" never hits the cell edge */
.bot-statbar .bot-stat-num{ color:#fff; font-family:var(--bot-font-head);
  font-size:clamp(1.1rem, 4.2vw, 1.6rem); line-height:1; white-space:nowrap; }
.bot-statbar .bot-stat-lbl{ color:#aebfd4; font-size:.74rem; letter-spacing:.02em; margin-top:3px; }
@media (max-width:768px){
  .bot-statbar-wrap{ margin:-28px auto 1.5rem; }
  .bot-statbar{ grid-template-columns:1fr 1fr; }
  /* tighter padding + gap so the value + label fit the half-width cell */
  .bot-statbar .bot-stat{ border-bottom:1px solid rgba(255,255,255,.10);
    padding:14px 12px; gap:9px; min-width:0; }
  .bot-stat-ico{ font-size:1.25rem; }
  .bot-statbar .bot-stat-lbl{ font-size:.68rem; }
}

/* ARCOVA bento building cards */
.bot-showcase{ max-width:1180px; margin:0 auto; padding:clamp(2rem,5vw,4rem) 1rem;
  display:grid; grid-template-columns:300px 1fr; gap:2rem; align-items:start; }
.bot-band-head{ font-family:var(--bot-font-head); font-size:clamp(26px,3vw,38px); margin:.4rem 0 1.1rem; color:var(--bot-navy); }
.bot-project-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }
.bot-project-card{ display:block; text-decoration:none; border-radius:8px; overflow:hidden;
  aspect-ratio:4/3; box-shadow:0 0 0 1px var(--bot-border); position:relative; }
.bot-project-card.is-featured{ grid-column:span 2; aspect-ratio:16/10; }
.bot-project-card .bot-media{ position:relative; width:100%; height:100%; aspect-ratio:auto; }
.bot-project-img{ width:100%; height:100%; object-fit:cover; transition:transform .55s ease; }
.bot-project-card:hover .bot-project-img{ transform:scale(1.05); }
.bot-project-card .bot-media::after{ content:""; position:absolute; inset:0; opacity:1;
  background:linear-gradient(to top, rgba(0,42,82,.85) 0%, rgba(0,42,82,.15) 45%, transparent 70%); }
.bot-project-cap{ position:absolute; left:0; bottom:0; z-index:2; padding:1rem 1.2rem; }
.bot-project-name{ font-family:var(--bot-font-head); color:#fff; font-size:1.3rem; line-height:1.15; }
.bot-project-city{ color:#dbe6f2; font-size:.82rem; margin-top:2px; }
.bot-project-arrow{ position:absolute; right:.9rem; bottom:.9rem; z-index:2; width:38px; height:38px;
  display:flex; align-items:center; justify-content:center; border-radius:50%;
  background:var(--bot-gold); color:var(--bot-navy); transition:transform .2s ease; }
.bot-project-card:hover .bot-project-arrow{ transform:translateX(3px); }
@media (max-width:900px){ .bot-showcase{ grid-template-columns:1fr; } }
@media (max-width:768px){
  .bot-project-grid{ grid-template-columns:1fr; }
  .bot-project-card, .bot-project-card.is-featured{ grid-column:auto; aspect-ratio:16/10; }
}

/* Section bands (alternating rhythm) */
.bot-band{ background:#FBF8F1; }
.bot-band--dark{ background:var(--bot-navy); color:#fff; }
.bot-band--dark .bot-band-head, .bot-band--dark h2, .bot-band--dark h3{ color:#fff; }

/* ════════════ Ada — floating leasing assistant ════════════ */
/* 2026-07-05: labeled "Ask Ada" pill (was an anonymous chat-icon circle) with a
   soft pulse so visitors understand it answers questions. */
.ada-fab{ position:fixed; right:22px; bottom:22px; z-index:9998; height:56px; width:auto;
  border-radius:28px!important; background:var(--bot-navy)!important; color:#fff!important;
  border:0!important; box-shadow:0 10px 24px rgba(0,42,82,.4)!important; font-size:1.25rem;
  display:flex; align-items:center; justify-content:center; gap:10px; padding:0 20px 0 16px;
  animation:adaPulse 2.6s ease-out infinite; }
.ada-fab-label{ font-size:.95rem; font-weight:700; letter-spacing:.02em;
  font-family:var(--bot-font-head); white-space:nowrap; }
@keyframes adaPulse{
  0%{ box-shadow:0 10px 24px rgba(0,42,82,.4), 0 0 0 0 rgba(0,42,82,.35); }
  70%{ box-shadow:0 10px 24px rgba(0,42,82,.4), 0 0 0 14px rgba(0,42,82,0); }
  100%{ box-shadow:0 10px 24px rgba(0,42,82,.4), 0 0 0 0 rgba(0,42,82,0); } }
@media (prefers-reduced-motion:reduce){ .ada-fab{ animation:none; } }
/* One-time greeting bubble (assets/ada_nudge.js) */
.ada-nudge{ position:fixed; right:22px; bottom:92px; z-index:9998; max-width:270px;
  background:#fff; color:#1c2a3a; border:1px solid #e4e0d6; border-radius:14px 14px 4px 14px;
  box-shadow:0 16px 44px -10px rgba(0,42,82,.4); padding:13px 34px 13px 16px;
  font-size:.92rem; line-height:1.5; cursor:pointer;
  opacity:0; transform:translateY(8px); transition:opacity .35s, transform .35s; }
.ada-nudge.ada-nudge-show{ opacity:1; transform:none; }
.ada-nudge b{ color:var(--bot-navy); }
.ada-nudge-x{ position:absolute; top:6px; right:10px; font-size:1.05rem; line-height:1;
  color:#9a938a; cursor:pointer; }
@media (max-width:480px){ .ada-nudge{ right:10px; max-width:78vw; } }
.ada-panel{ position:fixed; right:22px; bottom:90px; z-index:9999; width:360px; max-width:92vw;
  background:#fff; border-radius:14px; box-shadow:0 18px 50px -12px rgba(0,42,82,.45);
  overflow:hidden; display:flex; flex-direction:column; max-height:70vh; transition:opacity .2s, transform .2s; }
.ada-hidden{ opacity:0; pointer-events:none; transform:translateY(12px); }
.ada-head{ background:var(--bot-navy); color:#fff; padding:12px 16px; font-weight:600;
  font-family:var(--bot-font-head); display:flex; justify-content:space-between; align-items:center; }
.ada-close{ cursor:pointer; font-size:1.2rem; line-height:1; }
.ada-log{ padding:14px; min-height:120px; }
.ada-msg{ margin:6px 0; padding:9px 12px; border-radius:10px; font-size:.9rem; line-height:1.45;
  max-width:85%; white-space:pre-wrap; }
.ada-msg--you{ background:var(--bot-navy); color:#fff; margin-left:auto; }
.ada-msg--ada{ background:#f1f1f6; color:var(--bot-text,#1a1a1a); }
.ada-chips{ display:flex; gap:6px; flex-wrap:wrap; padding:0 14px; }
.ada-chip{ font-size:.78rem!important; background:transparent!important; color:var(--bot-navy)!important;
  border:1px solid var(--bot-navy)!important; border-radius:16px!important; padding:4px 10px!important; }
.ada-row{ display:flex; gap:8px; padding:12px 14px; border-top:1px solid var(--bot-border-subtle,#eee); }
.ada-input{ flex:1; border:1px solid var(--bot-border,#ccc); border-radius:6px; padding:6px 10px; }
.ada-send{ background:var(--bot-gold)!important; color:var(--bot-navy)!important; border:0!important; }
@media (max-width:480px){ .ada-panel{ right:10px; left:10px; width:auto; } }

/* Header "Ask Ada" launcher (gold, prominent) */
.bot-ada-headbtn{ background:var(--bot-gold)!important; color:var(--bot-navy)!important;
  border:1px solid var(--bot-gold)!important; font-weight:700!important; }
.bot-ada-headbtn:hover{ background:var(--bot-gold-2)!important; border-color:var(--bot-gold-2)!important;
  color:var(--bot-navy)!important; }

/* Ada markdown rendering inside the bubble (lists, paragraphs, links) */
.ada-msg--ada p{ margin:0 0 .5rem; } .ada-msg--ada p:last-child{ margin-bottom:0; }
.ada-msg--ada ul, .ada-msg--ada ol{ margin:.3rem 0; padding-left:1.15rem; }
.ada-msg--ada li{ margin:.15rem 0; }
.ada-msg--ada a{ color:var(--bot-navy); font-weight:600; text-decoration:underline; }

/* ════════════ Mobile + image-scaling fixes (2026-06-24) ════════════ */
/* Portfolio building-card photos: make the dbc.Carousel FILL the 3:2 media box.
   It was rendering at the image's natural height → buildings looked too tall vertically.
   (Home's bento uses a plain <img> which already fills, hence "scaled right" there.) */
.bot-building-card .bot-media{ overflow:hidden; }
.bot-building-card .bot-media .carousel,
.bot-building-card .bot-media .carousel-inner,
.bot-building-card .bot-media .carousel-item,
.bot-building-card .bot-media .carousel-item > *{ height:100%; }
.bot-building-card .bot-media .carousel img{ width:100%!important; height:100%!important; object-fit:cover!important; }

/* Header nav buttons: keep the icon + label centered (all widths) */
.bot-header .bot-nav .btn, .bot-header .bot-nav .dropdown-toggle, .bot-header .bot-nav .bot-staff{
  align-items:center; justify-content:center; text-align:center; }

/* Skyline hero title: never clip on phones — wrap, size down, let the hero grow to fit content */
.bot-skyline-title{ overflow-wrap:break-word; word-break:break-word; }
@media (max-width:600px){
  .bot-skyline-hero{ min-height:auto; }
  .bot-skyline-inner{ padding:2.3rem 1.1rem; }
  .bot-skyline-title{ font-size:clamp(24px,7.5vw,34px); max-width:100%; line-height:1.12; }
  .bot-skyline-sub{ max-width:100%; }
}

/* ════════════ Ritz-style "Featured" building blocks (LAYOUT only) ════════════ */
/* less top padding: the brand statement above already provides the break, and
   the old 5rem left a cavernous gap under it (boss 2026-07-07) */
.bot-feature-wrap{ padding: clamp(1rem,2.5vw,2rem) 0 clamp(2rem,5vw,5rem); }
.bot-feature-intro{ max-width:1280px; margin:0 auto; padding:0 1.5rem clamp(1rem,3vw,2.5rem); }
/* gold-toned labels on white → site's text-safe bronze (NOT a color change; keeps WCAG AA) */
.bot-feature-eyebrow{ font-size:.74rem; font-weight:600; letter-spacing:.18em; text-transform:uppercase;
  color:var(--bot-gold-text, #8A6D0F); }
.bot-feature-heading{ font-family:var(--bot-font-head, serif); font-weight:400; font-size:clamp(26px,3vw,44px); margin-top:.3rem; }

.bot-feature{ display:grid; grid-template-columns:1fr; align-items:center;
  max-width:1280px; margin:0 auto; padding:clamp(2.5rem,5vw,5rem) 1.5rem; }
.bot-feature-media{ overflow:hidden; }
.bot-feature-img{ width:100%; height:clamp(340px,44vw,600px); object-fit:cover; display:block;
  transition:transform 1.1s ease !important; box-shadow:none !important; border-radius:0 !important; }
.bot-feature:hover .bot-feature-img{ transform:scale(1.04); }
.bot-feature-panel{ position:relative; z-index:2; background:#fff;
  padding:clamp(1.5rem,3vw,3rem); box-shadow:0 28px 64px -28px rgba(0,0,0,.32); }

/* Desktop: panel overlaps the photo (the layered offset) */
@media (min-width:900px){
  .bot-feature{ grid-template-columns:62% 38%; }
  .bot-feature.is-flip{ grid-template-columns:38% 62%; }
  .bot-feature-media{ grid-column:1; grid-row:1; }
  .bot-feature-panel{ grid-column:2; grid-row:1; margin-left:-14%; }
  .bot-feature.is-flip .bot-feature-media{ grid-column:2; }
  .bot-feature.is-flip .bot-feature-panel{ grid-column:1; margin-left:0; margin-right:-14%; text-align:right; }
  .bot-feature.is-flip .bot-feature-specs,
  .bot-feature.is-flip .bot-feature-loc{ justify-content:flex-end; }
}
/* Mobile: panel tucks slightly under the photo */
@media (max-width:899px){ .bot-feature-panel{ margin:-2.5rem 1rem 0; } }

.bot-feature-loc{ display:inline-flex; align-items:center; gap:6px; font-size:.76rem;
  letter-spacing:.12em; text-transform:uppercase; color:var(--bot-gold-text, #8A6D0F); }
.bot-feature-name{ font-family:var(--bot-font-head, serif); font-weight:400;
  font-size:clamp(26px,3vw,42px); line-height:1.1; margin:.45rem 0 .5rem; }
.bot-feature-desc{ color:var(--bot-text-muted,#6f6f6f); line-height:1.7; }
.bot-feature-specs{ display:flex; gap:1.6rem; flex-wrap:wrap; margin:1.1rem 0 1.5rem; }
.bot-feature-spec b{ display:block; font-family:var(--bot-font-head, serif); font-weight:400; font-size:1.25rem; }
.bot-feature-spec span{ font-size:.7rem; letter-spacing:.08em; text-transform:uppercase; color:#767676; }

/* Featured headings keep their size on mobile (override the global #tabs-content h2 shrink) */
#tabs-content h2.bot-feature-name, #tabs-content h2.bot-feature-heading{ font-size:clamp(22px,6vw,32px)!important; }

/* ==========================================================================
   Motion scroll-reveal — start state.
   Applied ONLY when bot-motion.js has added html.motion-ready (i.e. JS loaded
   AND prefers-reduced-motion is not set). With no-JS or reduced-motion the
   class is never added, so [data-reveal] targets are never hidden. No FOUC.
   ========================================================================== */
.motion-ready [data-reveal],
.motion-ready [data-reveal-stagger] > * { opacity: 0; }

/* Preview-updates hover polish — gated behind html.bot-updates (the on-page toggle),
   so it disappears when updates are turned off. No palette/typography changes. */
.bot-updates .suite-card { transition: transform .25s cubic-bezier(.22,1,.36,1), box-shadow .25s ease; }
.bot-updates .suite-card:hover { transform: translateY(-4px); box-shadow: 0 14px 30px rgba(16,24,40,.16); }
.bot-updates .btn { transition: transform .15s ease, box-shadow .15s ease, filter .15s ease; }
.bot-updates .btn:hover { transform: translateY(-1px); }

/* ── Preview design pass (toggle-gated, palette-locked; scoped to suite cards so the
      untouchable Home / Why-Choose-Us masthead is never affected) ───────────────────
   Single-accent rule: the suite-card actions collapse to ONE gold accent — the grey
   "Details" (.btn-outline-secondary) becomes a gold outline matching the gold CTA. */
.bot-updates .suite-card .btn-gold,
.bot-updates .suite-card .btn-outline-secondary{
  border-radius:8px; font-weight:600; letter-spacing:.01em; padding:.42rem .8rem;
}
.bot-updates .suite-card .btn-gold{
  background:var(--bot-gold) !important; color:var(--bot-navy-panel) !important;
  border:1px solid var(--bot-gold) !important;
}
.bot-updates .suite-card .btn-gold:hover{
  background:var(--bot-gold-2) !important; border-color:var(--bot-gold-2) !important;
  color:var(--bot-navy-panel) !important;
}
/* override custom.css's navy !important on outline buttons → the single gold accent */
.bot-updates .suite-card .btn-outline-secondary{
  background:transparent !important; color:var(--bot-gold-text) !important;
  border:1px solid var(--bot-gold) !important;
}
.bot-updates .suite-card .btn-outline-secondary:hover{
  background:var(--bot-gold) !important; color:var(--bot-navy-panel) !important;
  border-color:var(--bot-gold) !important;
}
/* Card: token-true frame + the house 3px gold top keyline (matches nav/footer/feature accents). */
.bot-updates .suite-card{
  border:1px solid var(--bot-border) !important;
  border-top:3px solid var(--bot-gold) !important;
}
/* ── Bolder card restyle (toggle-gated, palette-locked; !important beats the cards'
      inline styles + custom.css). Scoped to .suite-card → Home/Why never affected. ── */
.bot-updates .suite-card{
  border-radius:14px !important;
  box-shadow:0 6px 22px rgba(16,24,40,.10) !important;
  transition:transform .25s cubic-bezier(.22,1,.36,1), box-shadow .25s ease !important;
}
.bot-updates .suite-card:hover{
  transform:translateY(-6px) !important;
  box-shadow:0 18px 40px rgba(16,24,40,.18) !important;
}
.bot-updates .suite-card .card-body{ padding:1.1rem 1.15rem 1.25rem !important; }
/* Heading: serif display (Newsreader), larger, navy */
.bot-updates .suite-card .card-title{
  font-family:'Newsreader', Georgia, serif !important;
  font-size:1.45rem !important; font-weight:600 !important; line-height:1.15 !important;
  color:var(--bot-navy) !important; margin:0 0 .6rem !important;
}
/* Spec lines → pill chips; the Price line (2nd) → a standout GOLD badge */
.bot-updates .suite-card .card-body small{
  display:inline-block !important; background:#F4EFE4 !important;
  border:1px solid var(--bot-border) !important; border-radius:999px !important;
  padding:3px 11px !important; margin:0 6px 7px 0 !important;
  font-size:.8rem !important; line-height:1.45 !important; color:var(--bot-text-muted) !important;
}
.bot-updates .suite-card .card-body small:nth-of-type(2){
  background:var(--bot-gold) !important; color:var(--bot-navy-panel) !important;
  border-color:var(--bot-gold) !important; font-weight:800 !important; font-size:.9rem !important;
}
/* Hover image zoom (clipped to the rounded card) */
.bot-updates .suite-card{ overflow:hidden !important; }
.bot-updates .suite-card img{ transition:transform .55s cubic-bezier(.22,1,.36,1) !important; }
.bot-updates .suite-card:hover img{ transform:scale(1.07) !important; }

/* ── Premium card v2 (toggle-gated): floating gold price badge on the image,
      gradient scrim, glassy body, dramatic hover ─────────────────────────── */
.bot-updates .suite-card{
  position:relative !important; border-radius:16px !important;
  box-shadow:0 10px 30px rgba(16,24,40,.12) !important;
}
.bot-updates .suite-card .card-body{ background:#FFFEFB !important; }
/* 'View suite →' overlay that fades in on hover (invisible at rest, so no image is blocked) */
.bot-updates .suite-card .carousel::after{
  content:'View suite →'; position:absolute; inset:0; z-index:5; pointer-events:none;
  display:flex; align-items:flex-end; padding:14px; color:#fff; font-weight:700; letter-spacing:.02em;
  background:linear-gradient(to top, rgba(0,42,82,.64), rgba(0,42,82,0) 55%);
  opacity:0; transition:opacity .3s ease;
}
.bot-updates .suite-card:hover .carousel::after{ opacity:1; }
/* price → a prominent full-width bar in the body (no longer floating over the floorplan) */
.bot-updates .suite-card .card-body small:nth-of-type(2){
  display:block !important; width:100% !important; text-align:center !important;
  border:none !important; border-radius:8px !important; padding:9px 12px !important;
  margin:2px 0 10px !important; font-size:1.05rem !important; box-shadow:none !important;
}
.bot-updates .suite-card:hover{
  transform:translateY(-8px) !important; box-shadow:0 22px 48px rgba(16,24,40,.22) !important;
}

/* ── Premium top: bigger hero headline + gold accent, editorial overlay (toggle-gated) ── */
.bot-updates .bot-skyline-title{
  font-size:clamp(40px,5.6vw,66px) !important; line-height:1.04 !important;
  letter-spacing:-.01em !important; text-shadow:0 2px 24px rgba(0,0,0,.35) !important;
}
.bot-updates .bot-skyline-title::after{
  content:''; display:block; width:84px; height:4px; margin:18px 0 0;
  background:var(--bot-gold); border-radius:2px;
}
.bot-updates .bot-skyline-inner .bot-hero-eyebrow{ letter-spacing:.22em !important; }
.bot-updates .bot-skyline-overlay{
  background:linear-gradient(120deg, rgba(0,42,82,.86) 0%, rgba(0,42,82,.55) 55%, rgba(0,42,82,.34) 100%) !important;
}
/* Tab content slide-up on every tab switch (rides the existing .tab-anim toggle) */
.bot-updates #tabs-content.tab-anim{ animation:botTabIn .5s cubic-bezier(.22,1,.36,1) both; }
@keyframes botTabIn{ from{ opacity:0; transform:translateY(16px); } to{ opacity:1; transform:none; } }
/* Springy button hover (overshoot easing) */
.bot-updates .btn-gold, .bot-updates .suite-card .btn{
  transition:transform .18s cubic-bezier(.34,1.56,.64,1), box-shadow .18s ease !important;
}
.bot-updates .btn-gold:hover, .bot-updates .suite-card .btn:hover{
  transform:translateY(-2px) scale(1.03) !important;
}
/* Premium tab nav: gold active underline, bolder labels, gold hover */
.bot-updates #tabs .tab{ font-weight:600 !important; transition:color .2s ease, border-color .2s ease !important; }
.bot-updates #tabs .tab--selected{ color:var(--bot-navy) !important; border-bottom:3px solid var(--bot-gold) !important; }
.bot-updates #tabs .tab:hover{ color:var(--bot-gold-text) !important; }
/* Hero: a slow gold light glow drifting across the skyline (premium 'alive' feel) */
.bot-updates .bot-skyline-hero::after{
  content:''; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:radial-gradient(58% 75% at 76% 22%, rgba(240,168,0,.20), transparent 62%);
  mix-blend-mode:screen; animation:botGlow 8s ease-in-out infinite alternate;
}
@keyframes botGlow{ from{ transform:translate(0,0); opacity:.6; } to{ transform:translate(-6%,5%); opacity:1; } }
/* CTAs: full-width, equal, prominent (drop the cramped btn-sm) */
.bot-updates .suite-card .btn-row{
  display:grid !important; grid-template-columns:1fr 1fr; gap:.6rem; margin-top:1rem;
}
.bot-updates .suite-card .btn-row .btn{
  width:100% !important; padding:.6rem .5rem !important; font-size:.9rem !important;
  border-radius:9px !important;
}

/* ════════════ Collapsible skyline masthead (assets/hero_collapse.js) ════════ */
.bot-masthead-wrap{ max-height:1400px; overflow:hidden;
  transition:max-height .55s cubic-bezier(.4,0,.2,1); }
.bot-masthead-wrap.masthead-collapsed{ max-height:0; }
.bot-masthead-toggle-wrap{ text-align:center; padding:6px 0 2px; background:#fff; }
#bot-masthead-toggle{ display:inline-flex; align-items:center; gap:8px;
  padding:5px 16px; border-radius:999px; border:1px solid #d9d2c3;
  background:#FBF8F1; color:#004890; font:600 12.5px/1.4 'Segoe UI',system-ui,sans-serif;
  cursor:pointer; letter-spacing:.04em; }
#bot-masthead-toggle:hover{ background:#f1ebdd; }
.bot-masthead-toggle-chev{ font-size:13px; line-height:1; }
@media (prefers-reduced-motion:reduce){ .bot-masthead-wrap{ transition:none; } }

/* mobile.css (legacy navbar rule) forces ALL h1 to 16px nowrap+ellipsis on phones,
   which truncated the skyline headline to "Houston Office …" — let it wrap. */
h1.bot-skyline-title{ white-space:normal !important; overflow:visible !important;
  text-overflow:clip !important; }
@media (max-width:520px){
  .bot-updates .bot-skyline-title{ font-size:clamp(26px,7.5vw,36px) !important; }
}

/* ════════════ Mobile: featured-building photos were 340px+ tall on phones ═══ */
@media (max-width:640px){
  .bot-feature-img{ height:clamp(170px,52vw,240px); }
}

/* ════════════ Portfolio Tour — inline player (assets/tour_inline.js) ════════ */
.tour-inline-player{ display:none; position:relative; max-width:1000px; margin:10px auto 44px; text-align:center; }
.tour-inline-player.is-open{ display:block; }
.tour-inline-frame{ width:100%; aspect-ratio:16/9; border:0; display:block;
  border-radius:16px; background:#070d1c; box-shadow:0 18px 50px rgba(7,13,28,.35); }
.tour-inline-close{ display:inline-flex; align-items:center; gap:8px; margin-top:12px;
  padding:6px 18px; border-radius:999px; border:1px solid #d9d2c3; background:#FBF8F1;
  color:#004890; font:600 13px/1.4 'Segoe UI',system-ui,sans-serif; cursor:pointer; }
.tour-inline-close:hover{ background:#f1ebdd; }

/* ════════════ Suite photo lightbox (assets/suite_lightbox.js) ═══════════════ */
img[data-lightbox]{ cursor:zoom-in; }
.gw-lightbox{ position:fixed; inset:0; z-index:100000; display:none; align-items:center;
  justify-content:center; background:rgba(7,13,28,.93); backdrop-filter:blur(4px); }
.gw-lightbox.open{ display:flex; }
.gw-lightbox img{ max-width:92vw; max-height:82vh; border-radius:10px; background:#fff;
  box-shadow:0 24px 70px rgba(0,0,0,.5); }
.gw-lb-btn{ position:absolute; top:50%; transform:translateY(-50%); width:52px; height:52px;
  border-radius:50%; border:none; background:rgba(251,248,241,.14); color:#fff; font-size:26px;
  line-height:52px; cursor:pointer; transition:background .2s; user-select:none; }
.gw-lb-btn:hover{ background:rgba(240,168,0,.85); color:#0d1830; }
.gw-lb-prev{ left:22px; } .gw-lb-next{ right:22px; }
.gw-lb-close{ position:absolute; top:18px; right:22px; width:44px; height:44px; border:none;
  border-radius:50%; background:rgba(251,248,241,.14); color:#fff; font-size:20px;
  cursor:pointer; } .gw-lb-close:hover{ background:rgba(240,168,0,.85); color:#0d1830; }
.gw-lb-count{ position:absolute; top:26px; left:50%; transform:translateX(-50%);
  color:#fff; font:600 13px/1 'Segoe UI',system-ui,sans-serif; letter-spacing:.08em;
  background:rgba(0,42,82,.75); padding:8px 16px; border-radius:999px; }
@media (max-width:640px){
  .gw-lb-btn{ width:42px; height:42px; font-size:20px; line-height:42px; }
  .gw-lb-prev{ left:8px; } .gw-lb-next{ right:8px; }
}

/* ════════════ Available Suites filter bar polish (2026-07-03) ═══════════════ */
/* one-tap size presets above the slider */
.bot-size-chips{ display:flex; flex-wrap:wrap; gap:6px; margin:2px 0 10px; }
.bot-size-chip{ padding:4px 12px; border-radius:999px; border:1px solid #d9d2c3; background:#fff;
  color:#004890; font:600 12px/1.4 'Segoe UI',system-ui,sans-serif; cursor:pointer;
  transition:background .15s,border-color .15s; }
.bot-size-chip:hover{ background:#F0A800; border-color:#F0A800; color:#0d1830; }

/* brand the size sliders (rc-slider shipped purple/blue) */
.rc-slider-rail{ background:#E7DFCE !important; }
.rc-slider-track{ background:linear-gradient(90deg,#F0A800,#FFC233) !important; }
.rc-slider-handle{ background:#004890 !important; border:2px solid #fff !important;
  box-shadow:0 1px 6px rgba(0,42,82,.4) !important; opacity:1 !important; }
.rc-slider-handle:focus,.rc-slider-handle:active,.rc-slider-handle-dragging{
  box-shadow:0 0 0 5px rgba(0,72,144,.25) !important; }
.rc-slider-dot{ border-color:#E7DFCE !important; }
.rc-slider-dot-active{ border-color:#F0A800 !important; }
.rc-slider-tooltip-inner{ background:#004890 !important; border-radius:6px !important; }
.rc-slider-tooltip-arrow{ border-top-color:#004890 !important; }

/* building multi-select: room for full building names */
.bot-filter-grow{ flex:2 1 400px !important; min-width:360px; }
.bot-dd .Select-value{ max-width:100% !important; }
.bot-dd .Select-value-label,
.bot-dd .Select--multi .Select-value{ white-space:normal !important; }

/* Dash 3 Radix-based sliders (dash-slider-*) — same navy/gold brand treatment */
.dash-slider-track{ background:#E7DFCE !important; }
.dash-slider-range{ background:linear-gradient(90deg,#F0A800,#FFC233) !important; }
.dash-slider-root [role="slider"], .dash-slider-thumb{ background:#004890 !important;
  border:2px solid #fff !important; box-shadow:0 1px 6px rgba(0,42,82,.4) !important; }
.dash-slider-root [role="slider"]:focus-visible{ outline:none !important;
  box-shadow:0 0 0 5px rgba(0,72,144,.25) !important; }
.dash-range-slider-input{ border:1px solid #d9d2c3 !important; border-radius:8px !important;
  color:#004890 !important; font-weight:600 !important; }
.dash-slider-mark{ color:#8a8378 !important; }
.dash-slider-tooltip, [class*="slider-tooltip"]{ background:#004890 !important; color:#fff !important; }

/* Buttons: legacy mobile.css forces a 48px tap-target height while .btn stays
   display:block — text sat at the top. Flex-center every button/link-button. */
a.btn, button.btn, .btn-row .btn, .bot-nav .btn{
  display:inline-flex !important; align-items:center !important;
  justify-content:center !important; text-align:center; gap:6px; }

/* ════════════ Available Suites: one distinct panel per building ═════════════ */
.bot-bldg-group{ background:#fff; border:1px solid #E7DFCE; border-radius:14px;
  padding:6px 16px 14px; margin:24px 0; box-shadow:0 4px 14px rgba(16,24,40,.05); }
.bot-bldg-group:nth-of-type(even){ background:#FBF8F1; }
.bot-bldg-head{ display:flex; align-items:center; justify-content:space-between;
  gap:10px; border-bottom:2px solid #F0A800; padding:12px 4px 10px; margin-bottom:10px; }
.bot-bldg-name{ font:700 clamp(18px,2.4vw,22px)/1.2 Georgia,'Times New Roman',serif;
  color:#004890; }
.bot-bldg-count{ background:#004890; color:#fff; border-radius:999px; padding:4px 14px;
  font:600 12px/1.4 'Segoe UI',system-ui,sans-serif; white-space:nowrap; }

/* Building-page nav: compact the two controls on phones so they share one row */
@media (max-width:640px){
  .bot-page-nav .btn, .bot-page-nav .dropdown-toggle{
    padding:6px 12px !important; font-size:13.5px !important; }
}

/* ════════════ Ada's voice (assets/ada_voice.js) ═════════════════════════════ */
.ada-voice-wrap{ position:relative; }
.ada-speak{ position:absolute; right:6px; bottom:6px; width:26px; height:26px;
  border:none; border-radius:50%; background:rgba(0,72,144,.10); font-size:13px;
  line-height:26px; padding:0; cursor:pointer; opacity:.55; transition:opacity .15s; }
.ada-speak:hover{ opacity:1; background:rgba(240,168,0,.35); }
.ada-speak.is-playing{ opacity:1; background:#F0A800; animation:ada-pulse 1.1s ease infinite; }
@keyframes ada-pulse{ 50%{ box-shadow:0 0 0 6px rgba(240,168,0,.25);} }
.ada-voice-toggle{ border:none; background:none; font-size:15px; cursor:pointer;
  margin-left:auto; margin-right:8px; padding:2px 4px; opacity:.85; }
.ada-voice-toggle:hover{ opacity:1; }
@media (prefers-reduced-motion:reduce){ .ada-speak.is-playing{ animation:none; } }

/* voice blocked/failed: turn the bubble speaker into an obvious invitation */
.ada-speak.ada-speak-attn{ opacity:1; background:#F0A800; animation:ada-pulse 1.2s ease infinite; }

/* Ada mic (browser speech-to-text; hidden on unsupported browsers) */
.ada-mic{ border:none; border-radius:50%; width:36px; height:36px; flex:none;
  background:rgba(0,72,144,.10); font-size:15px; cursor:pointer; margin-right:6px; }
.ada-mic:hover{ background:rgba(240,168,0,.35); }
.ada-mic.is-listening{ background:#c0392b; color:#fff; animation:ada-pulse 1s ease infinite; }

/* ════════════ Top band: Portfolio Tour (left) + portfolio map (right) ═══════ */
.bot-topgrid{ display:flex; gap:18px; align-items:stretch; max-width:1340px;
  margin:16px auto 8px; padding:0 16px; }
.bot-topgrid-left{ flex:1.35; min-width:0; display:flex; flex-direction:column;
  justify-content:center; }
.bot-topgrid-right{ flex:1; min-width:300px; }
.bot-topgrid-map{ width:100%; height:100%; min-height:340px; border:1px solid #E4DCCD;
  border-radius:14px; box-shadow:0 12px 40px rgba(0,0,0,.14); display:block; }
.bot-topgrid .tour-inline-player{ margin:0; }
@media (max-width:900px){
  .bot-topgrid{ flex-direction:column; }
  .bot-topgrid-map{ height:300px; min-height:280px; }
}

/* (tab label size lives in the #tabs .tab rule near the top — 17px since 2026-07-05) */

/* footer QR chip */
.bot-foot-qr{ display:flex; align-items:center; gap:12px; margin-top:10px; }
.bot-foot-qr img{ width:86px; height:86px; border-radius:8px; background:#fff; padding:4px; }
.bot-foot-qr span{ font-size:12.5px; opacity:.9; max-width:150px; }

/* topgrid v2: use the full width; brand blurb beneath */
.bot-topgrid{ max-width:1720px !important; gap:20px; }
.bot-topgrid-left{ flex:1.15 !important; }
.bot-topgrid-map{ min-height:380px; }
/* Brand statement — rewritten 2026-07-05: was a 3-column grid of three long
   paragraphs crammed against the tabs. Now one short, centered statement with
   real vertical breathing room above the tab strip. */
/* Breathing room above (it was hugging the property cards) and none below —
   the building-photos section already supplies ~5rem of top padding, so this
   balances the two sides (boss 2026-07-07). */
.bot-topblurb{ max-width:820px; margin:84px auto 0; padding:0 20px; text-align:center; }
.bot-topblurb-text{ margin:0; color:#4b453d; font-size:clamp(15.5px,1.6vw,18px);
  line-height:1.75; letter-spacing:.005em; }
@media (max-width:900px){ .bot-topblurb{ margin:44px auto 0; } }
/* Skyline masthead inside the Home tab — always visible (no collapse clipping). */
.bot-masthead-static{ overflow:visible; }

/* ═══ Combined home hero — skyline behind the CTA, with the video + map
      straddling its lower edge, cards below (boss 2026-07-07) ═══════════════ */
.bot-hero-combined{ position:relative; overflow:visible; }
/* text sits in the upper area; leave room at the bottom for the media overlap */
.bot-hero-combined .bot-skyline-hero{ align-items:flex-start;
  min-height:clamp(430px,56vh,600px); padding-bottom:180px; }
/* video + map: a sibling pulled UP over the skyline's lower edge, its lower half
   spilling onto the white below (z-index keeps it in front of the skyline) */
.bot-hero-media{ position:relative; z-index:4; max-width:1180px;
  margin:-150px auto 0; padding:0 clamp(12px,3vw,28px); }
.bot-hero-combined .bot-cards-wrap{ margin-top:30px; }
@media (max-width:900px){
  .bot-hero-combined .bot-skyline-hero{ padding-bottom:130px; }
  .bot-hero-media{ margin-top:-104px; }
}

/* "Tap for sound" pill over the auto-opened tour (audio needs one gesture) */
.tour-sound-pill{ position:absolute; top:14px; left:50%; transform:translateX(-50%);
  z-index:5; padding:9px 18px; border:none; border-radius:999px; cursor:pointer;
  background:#F0A800; color:#0d1830; font:700 14px/1 'Segoe UI',system-ui,sans-serif;
  box-shadow:0 8px 24px rgba(0,0,0,.35); animation:ada-pulse 1.4s ease infinite; }
.tour-sound-pill:hover{ background:#FFC233; }

/* ════════════ Top media carousel (video / map / future clips) ═══════════════ */
.gw-media-carousel{ position:relative; max-width:1400px; margin:16px auto 8px;
  padding:0 16px; }
.gwm-stage{ position:relative; width:100%; aspect-ratio:16/8; max-height:600px;
  border-radius:16px; overflow:hidden; background:#0d1830;
  box-shadow:0 16px 48px rgba(7,13,28,.28); }
.gwm-slide{ position:absolute; inset:0; display:none; }
.gwm-slide.is-current{ display:block; }
.gwm-poster{ position:absolute; inset:0; cursor:pointer; z-index:2;
  transition:opacity .6s ease; }
.gwm-poster-img{ position:absolute !important; inset:0 !important;
  width:100% !important; height:100% !important; max-width:none !important;
  object-fit:cover !important; }
.gwm-poster-cap{ position:absolute; left:0; right:0; bottom:0; padding:22px 28px;
  background:linear-gradient(180deg, transparent, rgba(7,13,28,.88));
  color:#fff; text-align:left; }
.gwm-poster-cap h3{ margin:6px 0 4px; font:700 clamp(20px,2.4vw,28px)/1.2 Georgia,serif; }
.gwm-poster-cap p{ margin:0; color:#cfe0f2; font-size:clamp(13px,1.4vw,15.5px); }
.gwm-badge{ display:inline-flex; align-items:center; justify-content:center;
  width:52px; height:52px; border-radius:50%; background:#F0A800; color:#0d1830;
  font-size:20px; box-shadow:0 8px 24px rgba(0,0,0,.35); }
.gwm-poster:hover .gwm-badge{ background:#FFC233; }
.gwm-content, .gwm-frame{ position:absolute; inset:0; width:100%; height:100%;
  border:0; }
.gwm-slide.is-live .gwm-poster{ opacity:0; pointer-events:none; }
.gwm-arrow{ position:absolute; top:50%; transform:translateY(-50%); z-index:6;
  width:46px; height:46px; border:none; border-radius:50%;
  background:rgba(251,248,241,.9); color:#0d1830; font-size:24px; line-height:1;
  cursor:pointer; box-shadow:0 6px 18px rgba(0,0,0,.3); }
.gwm-arrow:hover{ background:#F0A800; }
.gwm-prev{ left:28px; } .gwm-next{ right:28px; }
.gwm-dots{ display:flex; justify-content:center; gap:8px; padding:10px 0 2px; }
.gwm-dot{ width:10px; height:10px; border-radius:50%; border:none; cursor:pointer;
  background:#d9d2c3; padding:0; }
.gwm-dot.is-on{ background:#004890; }
@media (max-width:700px){
  .gwm-stage{ aspect-ratio:4/3; }
  .gwm-arrow{ width:38px; height:38px; font-size:20px; }
  .gwm-prev{ left:10px; } .gwm-next{ right:10px; }
}

/* topband rev 2 (2026-07-06): side-by-side video + map facades, no carousel */
.gwm-row{ display:flex; gap:18px; aspect-ratio:auto; max-height:none;
  border-radius:0; overflow:visible; background:transparent; box-shadow:none; }
.gwm-row .gwm-slide{ display:block; position:relative; border-radius:16px;
  overflow:hidden; background:#0d1830; box-shadow:0 16px 48px rgba(7,13,28,.28); }
.gwm-row .gwm-left{ flex:1.15; aspect-ratio:16/9; }
.gwm-row .gwm-right{ flex:1; }
.gwm-map-hint{ position:absolute; bottom:16px; left:50%; transform:translateX(-50%);
  z-index:3; padding:9px 18px; border:none; border-radius:999px; cursor:pointer;
  background:#F0A800; color:#0d1830; font:700 13.5px/1 'Segoe UI',system-ui,sans-serif;
  box-shadow:0 8px 24px rgba(0,0,0,.35); animation:ada-pulse 1.6s ease infinite;
  white-space:nowrap; max-width:92%; overflow:hidden; text-overflow:ellipsis; }
.gwm-map-hint:hover{ background:#FFC233; }
@media (max-width:900px){
  .gwm-row{ flex-direction:column; }
  /* the four pins span ~8 miles N-S; 300px crammed them (and their labels)
     into a sliver, so give the interactive map real vertical room */
  .gwm-row .gwm-right{ min-height:430px; }
  /* Taller video on mobile (boss 2026-07-07) — 16/9 was too short to watch. */
  .gwm-row .gwm-left{ aspect-ratio:auto; min-height:400px; }
  /* Video + map stack here, so the band grows well past the 1400px collapse
     cap on .bot-masthead-wrap — its overflow:hidden was clipping the lower
     property cards (only 2 of 4 showed on phones). Uncap on mobile; the
     collapse toggle still works (.masthead-collapsed forces max-height:0,
     which wins on specificity). */
  .bot-masthead-wrap{ max-height:none; }
}

/* map + cards slides are complete designed images — contain them (no crop) on
   a navy field; only the video poster.webp is cropped-to-fill with a caption */
.gwm-poster--bare{ background:#0d1830; }
.gwm-poster--bare .gwm-poster-img{ object-fit:contain !important; }

/* ════════════ Marketing property cards (below the video + map) ══════════════ */
.bot-cards-wrap{ max-width:1720px; margin:18px auto 4px; padding:0 16px; }
.bot-cards-row{ display:grid; grid-template-columns:repeat(4, 1fr); gap:18px; }
.mcard{ background:#fff; border:1px solid #E7DFCE; border-radius:14px;
  overflow:hidden; display:flex; flex-direction:column;
  box-shadow:0 8px 26px rgba(16,24,40,.10); }
.mcard-photo{ width:100%; height:150px; object-fit:cover; display:block; }
.mcard-body{ padding:14px 16px 16px; display:flex; flex-direction:column; flex:1; }
.mcard-name{ margin:0 0 8px; font:700 18px/1.2 Georgia,'Times New Roman',serif;
  color:#004890; }
.mcard-row{ display:flex; justify-content:space-between; gap:10px; padding:5px 0;
  border-top:1px solid #EEE8DB; font-size:13px; }
.mcard-row:first-of-type{ border-top:none; }
.mcard-k{ color:#8a8378; text-transform:uppercase; letter-spacing:.04em;
  font-size:11px; align-self:center; }
.mcard-v{ font-weight:600; color:#2b2b2b; text-align:right; }
.mcard-terms{ margin:10px 0 12px; font-size:11px; color:#8a8378; line-height:1.4; }
.mcard-btns{ display:flex; gap:8px; margin-top:auto; }
.mcard-btn{ flex:1; text-align:center; padding:9px 6px; border-radius:9px;
  font:700 13px/1 'Segoe UI',system-ui,sans-serif; text-decoration:none; cursor:pointer; }
.mcard-btn-gold{ background:#F0A800; color:#0d1830; }
.mcard-btn-gold:hover{ background:#FFC233; }
.mcard-btn-ghost{ background:#fff; color:#004890; border:1.5px solid #004890; }
.mcard-btn-ghost:hover{ background:#eef4fb; }
@media (max-width:1100px){ .bot-cards-row{ grid-template-columns:repeat(2, 1fr); } }
@media (max-width:560px){ .bot-cards-row{ grid-template-columns:1fr; } }

/* ── "Open full map" pill (hero map panel) + "View Details" card button ──
   The pill is a SIBLING of .gwm-poster so clicking it never triggers the
   inline-map activation, and z-index keeps it above the live iframe. */
.gwm-open-full{ position:absolute; top:12px; right:12px; z-index:5;
  background:rgba(0,42,82,.9); color:#fff; text-decoration:none;
  font:600 12.5px/1 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
  padding:9px 14px; border-radius:999px; letter-spacing:.02em;
  box-shadow:0 4px 14px rgba(0,0,0,.28); backdrop-filter:blur(4px); }
.gwm-open-full:hover{ background:#F0A800; color:#0b1b30; text-decoration:none; }
/* three actions per card: Details full-width on top, the two ghosts share row 2 */
.mcard-btns{ flex-wrap:wrap; }
.mcard-btn-block{ flex:1 1 100%; }
