/* ============================================================
   MONOGRAM HOMES — website widget system (self-contained)
   Native to the Monogram design system:
     navy #08446C · brushed stainless --steel-grad · off-white --paper
     Inter Tight (display) + Inter (body) · .btn styles
   Philosophy: non-intrusive, always available, never pop-ups.
   All widget classes are namespaced `mono-` to avoid collisions.
   ============================================================ */

:root{
  --mono-bar-h:34px;              /* top rate bar height */
  --mono-z-topbar:150;            /* above header (header z-index:100) */
  --mono-z-side:120;
  --mono-z-mobile:130;
  --mono-z-toast:400;
}

/* ---- shared tokens (fall back if site vars ever missing) ---- */
.mono-w{ --w-navy:var(--navy,#08446C); --w-navy-deep:var(--navy-deep,#06334f);
  --w-navy-950:var(--navy-950,#04263b); --w-paper:var(--paper,#f4f5f6);
  --w-paper2:var(--paper-2,#e8eaec); --w-line:var(--line,#d7dbde);
  --w-muted:var(--muted,#6a7278); --w-body:var(--body,#333a40);
  --w-nickel:var(--nickel,#8d969c); --w-nickel-dk:var(--nickel-dk,#6a7278);
  --w-nickel-lt:var(--nickel-lt,#cbd1d5);
  --w-steel:var(--steel-grad,linear-gradient(120deg,#c2c7cb 0%,#f3f5f6 20%,#a6acb1 46%,#eef1f2 70%,#bbc0c4 100%));
  --w-disp:var(--disp,'Inter Tight',system-ui,sans-serif);
  --w-sans:var(--sans,'Inter',system-ui,sans-serif);
}

/* ============================================================
   0. RESERVED RIGHT RAIL — desktop layout offset
   When body.mono-rail is set (>=1200px), the whole page shrinks
   to leave a fixed 360px column on the right for the rail widget.
   Nothing ever underlaps the rail.
   ============================================================ */
:root{ --mono-rail-w:320px; }
body.mono-rail{ padding-right:var(--mono-rail-w); }
/* fixed top bar + header span only the content area, not the rail */
body.mono-rail.mono-has-topbar .mono-topbar,
body.mono-rail .mono-topbar{ right:var(--mono-rail-w); }
body.mono-rail header#hdr{ right:var(--mono-rail-w); }

/* ============================================================
   1. TOP RATE BAR  (fixed, above the site header)
   ============================================================ */
body.mono-has-topbar header#hdr{ top:var(--mono-bar-h); }

.mono-topbar{
  position:fixed; top:0; left:0; right:0; height:var(--mono-bar-h);
  z-index:var(--mono-z-topbar);
  background:var(--w-navy-950); color:#fff;
  border-bottom:1px solid rgba(255,255,255,.08);
  font-family:var(--w-sans); font-size:12px;
  display:flex; align-items:center;
}
.mono-topbar::before{ /* stainless hairline */
  content:''; position:absolute; left:0; right:0; bottom:0; height:2px;
  background:var(--w-steel); opacity:.55;
}
.mono-topbar .mono-tb-wrap{
  max-width:1560px; margin:0 auto; padding:0 40px; width:100%;
  display:flex; align-items:center; gap:22px; white-space:nowrap;
}
.mono-tb-rates{ display:flex; align-items:center; gap:20px; overflow:hidden; }
.mono-tb-rate{ display:inline-flex; align-items:baseline; gap:7px; }
.mono-tb-rate .lab{ font-size:10px; font-weight:700; letter-spacing:.12em;
  text-transform:uppercase; color:var(--w-nickel-lt); }
.mono-tb-rate .val{ font-family:var(--w-disp); font-weight:700; font-size:13px; color:#fff; }
.mono-tb-chip{ display:inline-flex; align-items:center; gap:6px;
  font-size:10px; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  padding:4px 10px; border-radius:2px; background:rgba(255,255,255,.1);
  color:var(--w-nickel-lt); }
.mono-tb-chip .dot{ width:9px; height:9px; border-radius:50%; background:#3f9d5b;
  box-shadow:0 0 0 0 rgba(63,157,91,.55); animation:mono-tb-pulse 2.4s ease-out infinite; }
@keyframes mono-tb-pulse{
  0%{ box-shadow:0 0 0 0 rgba(63,157,91,.55); }
  70%{ box-shadow:0 0 0 6px rgba(63,157,91,0); }
  100%{ box-shadow:0 0 0 0 rgba(63,157,91,0); } }
@media (prefers-reduced-motion: reduce){ .mono-tb-chip .dot{ animation:none;
  box-shadow:0 0 5px 1px rgba(63,157,91,.5); } }
.mono-tb-chip.down{ background:rgba(76,155,110,.22); color:#a8e6c2; }
.mono-tb-chip.down .dot{ background:#5fcf8a; }
.mono-tb-chip.up{ background:rgba(180,90,70,.22); color:#f0b7a8; }
.mono-tb-chip.up .dot{ background:#e08a72; }
.mono-tb-links{ margin-left:auto; display:flex; align-items:center; gap:20px; }
.mono-tb-links a{ color:rgba(255,255,255,.86); font-weight:600; font-size:11.5px;
  letter-spacing:.03em; transition:color .2s; cursor:pointer; }
.mono-tb-links a:hover{ color:#fff; text-decoration:underline; }
.mono-tb-close{ background:none; border:none; color:rgba(255,255,255,.6);
  cursor:pointer; font-size:16px; line-height:1; padding:0 2px; margin-left:4px; transition:color .2s; }
.mono-tb-close:hover{ color:#fff; }

/* Mobile rate bar — keep it one clean, readable row (rates scroll, no text overlap) */
@media (max-width:768px){
  .mono-topbar .mono-tb-wrap{ padding:0 12px; gap:10px; }
  .mono-tb-rates{ gap:14px; flex:1 1 auto; min-width:0; overflow-x:auto; -webkit-overflow-scrolling:touch; }
  .mono-tb-rates::-webkit-scrollbar{ display:none; }
  .mono-tb-rate{ flex:0 0 auto; }
  .mono-tb-chip{ display:none; }                 /* free up space on small screens */
  .mono-tb-links{ margin-left:8px; gap:0; flex:0 0 auto; }
  .mono-tb-links a{ font-size:11px; }
  .mono-tb-links a:first-child{ display:none; }   /* hide long "First-Time Buyer Guide" label on mobile */
}
@media (max-width:400px){
  .mono-tb-rate .lab{ font-size:9px; }
  .mono-tb-rate .val{ font-size:12px; }
}

/* ============================================================
   2. DESKTOP RAIL WIDGET  (reserved fixed right column, >=1200px)
   Built into the layout — body.mono-rail reserves 360px for it.
   ============================================================ */
:root{ --mono-side-w:var(--mono-rail-w,360px); }

/* Fixed full-height rail flush to the right edge. Its own column of
   the page; content lives inside a scrollable body. */
.mono-side{
  position:fixed; top:0; right:0; bottom:0;
  width:var(--mono-rail-w,360px);
  overflow:hidden;
  background:var(--w-paper);
  border-left:1px solid rgba(20,40,60,.10);
  border-radius:22px 0 0 22px;
  box-shadow:-18px 0 46px -22px rgba(8,68,108,.30);
  z-index:var(--mono-z-side); font-family:var(--w-sans);
  display:flex; flex-direction:column;
}
/* steel seam removed — the rail now reads as a floating app panel */
.mono-side::before{ display:none; }

/* the panel card — fills the rail as a 3-zone flex column:
   promo header (top) · scrollable body (middle, flexes) · chat box (bottom).
   Content clears the fixed topbar + site nav via an offset spacer on the card. */
.mono-side-card{
  display:flex; flex-direction:column; flex:1; min-height:0;
  background:var(--w-paper); position:relative;
  padding-top:0;
}
body:not(.mono-has-topbar) .mono-side-card{ padding-top:0; }

/* minimized state — collapse body + chat, keep promo header + control strip */
.mono-side.min .mono-sc-body,
.mono-side.min .mono-sc-chat{ display:none; }
.mono-side.min .mono-sc-min{ transform:rotate(180deg); }

/* ---- ZONE 1: PROMO HEADER (fills the former dead space) ---- */
.mono-sc-promo{ background:linear-gradient(155deg,#0a4a75 0%,var(--w-navy) 55%,var(--w-navy-deep) 100%);
  color:#fff; position:relative; flex:none; padding:15px 18px 14px; overflow:hidden; }
.mono-sc-promo::before{ /* brushed-stainless top accent */
  content:''; position:absolute; left:0; right:0; top:0; height:3px;
  background:var(--w-steel); }
/* iOS widget-header row: app tile + title stack */
.mono-sc-hd{ display:flex; align-items:center; gap:12px; padding-right:24px; }
.mono-sc-hdx{ min-width:0; }
.mono-ic.hdtile{ width:40px; height:40px; border-radius:12px; flex:none;
  background:linear-gradient(155deg,#fbfcfc 0%,#dfe3e6 55%,#c3c9cd 100%);
  box-shadow:inset 0 1.5px 0 rgba(255,255,255,.7),0 6px 15px rgba(4,38,59,.4),0 1px 2px rgba(4,38,59,.3); }
.mono-ic.hdtile::before{ opacity:.5; }
.mono-ic.hdtile::after{ background:radial-gradient(125% 85% at 26% -6%,rgba(255,255,255,.5),rgba(255,255,255,0) 56%); }
.mono-ic.hdtile svg{ width:21px; height:21px; color:var(--w-navy); }
.mono-sc-promo .mono-sc-kick{ font-size:9px; font-weight:700; letter-spacing:.2em;
  text-transform:uppercase; color:var(--w-nickel-lt); margin-bottom:3px;
  display:inline-flex; align-items:center; gap:8px; }
.mono-sc-promo h3{ font-family:var(--w-disp); font-weight:600; font-size:16px; color:#fff;
  letter-spacing:-.015em; line-height:1.15; }
.mono-sc-promo .sub{ font-size:11px; color:var(--w-nickel-lt); margin-top:9px;
  line-height:1.45; padding-right:6px; }
.mono-sc-min{ position:absolute; top:14px; right:14px; background:none; border:none;
  color:rgba(255,255,255,.7); font-size:16px; line-height:1; cursor:pointer; transition:color .2s, transform .2s;
  width:22px; height:22px; display:flex; align-items:center; justify-content:center; z-index:2; }
.mono-sc-min:hover{ color:#fff; }

/* ---- ZONE 2: SCROLLABLE BODY (flexes to fill remaining height) ---- */
.mono-sc-body{ padding:16px 18px 22px; flex:1 1 auto; min-height:0; overflow-y:auto; }
.mono-sc-body::-webkit-scrollbar{ width:8px; }
.mono-sc-body::-webkit-scrollbar-thumb{ background:var(--w-line); border-radius:4px; }

/* ---- ZONE 3: CHAT BOX (pinned to the bottom of the rail) ---- */
.mono-sc-chat{ flex:none; position:relative; background:var(--w-paper2);
  border-top:1px solid var(--w-line); padding:12px 16px 18px; }
.mono-sc-chat::before{ content:''; position:absolute; left:0; right:0; top:0; height:2px;
  background:var(--w-steel); opacity:.6; }
.mono-sc-chat .mono-chat-row{ display:flex; gap:8px; align-items:center; }
.mono-sc-chat input{ flex:1; min-width:0; padding:12px 15px; border:1.5px solid var(--w-line);
  border-radius:22px; font-family:var(--w-sans); font-size:13px; background:#fff; color:var(--w-body); }
.mono-sc-chat input:focus{ outline:none; border-color:var(--w-navy); }
.mono-sc-chat input::placeholder{ color:var(--w-nickel); }
.mono-chat-send{ flex:none; position:relative; overflow:hidden; cursor:pointer;
  width:42px; height:42px; border-radius:50%; border:none; background:var(--w-navy);
  color:#fff; display:flex; align-items:center; justify-content:center; transition:.2s; }
.mono-chat-send::before{ content:''; position:absolute; left:0; right:0; top:0; height:2px;
  background:var(--w-steel); opacity:.85; }
.mono-chat-send:hover{ background:var(--w-navy-deep); }
.mono-chat-send:active{ transform:translateY(1px); }
.mono-chat-send svg{ width:18px; height:18px; }

/* chat message bubbles inside the Q&A / answers thread */
.mono-qa-msg{ margin-top:10px; border-radius:8px; padding:10px 13px; font-size:13px; line-height:1.5; }
.mono-qa-msg.me{ background:var(--w-navy); color:#fff; margin-left:22px; border-bottom-right-radius:2px; }
.mono-qa-msg.bot{ background:var(--w-paper2); border:1px solid var(--w-line); color:var(--w-body);
  margin-right:14px; border-bottom-left-radius:2px; position:relative; }
.mono-qa-msg.bot::before{ content:''; position:absolute; left:0; top:9px; bottom:9px; width:3px;
  background:var(--w-steel); border-radius:2px; }

/* welcome-back banner */
.mono-welcome{ background:#fff; border:1px solid var(--w-line);
  border-left:3px solid var(--w-navy); padding:12px 15px; border-radius:14px;
  font-size:13px; color:var(--w-body); margin-bottom:16px; line-height:1.5;
  box-shadow:0 2px 8px rgba(8,68,108,.05); }
.mono-welcome b{ color:var(--w-navy); }

/* generic block label */
.mono-blk{ margin-bottom:20px; }
.mono-blk-lbl{ font-size:10.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:var(--w-nickel-dk); margin-bottom:11px; padding-bottom:7px; border-bottom:2px solid; border-image:var(--w-steel) 1; }

/* bifurcation buttons */
.mono-bifurc{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.mono-bifurc button{ font-family:var(--w-sans); text-align:left; cursor:pointer;
  background:#fff; border:1px solid var(--w-line); border-radius:16px;
  padding:14px 14px; transition:.2s; box-shadow:0 2px 8px rgba(8,68,108,.05); }
.mono-bifurc button:hover{ border-color:var(--w-navy); background:#fff; box-shadow:0 6px 18px rgba(8,68,108,.12); }
.mono-bifurc button .h{ font-family:var(--w-disp); font-weight:600; font-size:15px; color:var(--w-navy); display:block; margin-bottom:3px; }
.mono-bifurc button .d{ font-size:11.5px; color:var(--w-muted); line-height:1.35; }

/* filter row */
.mono-frow{ margin-bottom:12px; }
.mono-frow .fl{ font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
  color:var(--w-muted); margin-bottom:6px; }
.mono-chips{ display:flex; flex-wrap:wrap; gap:6px; }
.mono-chip{ font-family:var(--w-sans); font-size:12px; font-weight:600; cursor:pointer;
  padding:7px 13px; border-radius:20px; border:1.5px solid var(--w-line);
  background:transparent; color:var(--w-muted); transition:.18s; }
.mono-chip:hover{ border-color:var(--w-navy); color:var(--w-navy); }
.mono-chip.on{ background:var(--w-navy); border-color:var(--w-navy); color:#fff; }

/* result plan chips */
.mono-results{ margin-top:14px; }
.mono-rescount{ font-size:11.5px; color:var(--w-muted); margin-bottom:10px; }
.mono-rescount b{ color:var(--w-navy); }
.mono-plan{ display:flex; align-items:center; gap:12px; padding:11px 12px;
  border:1px solid var(--w-line); border-radius:14px; margin-bottom:8px;
  background:#fff; text-decoration:none; transition:.18s; position:relative;
  box-shadow:0 2px 8px rgba(8,68,108,.05); overflow:hidden; }
.mono-plan::before{ content:''; position:absolute; left:0; top:0; bottom:0; width:3px;
  background:var(--w-steel); border-radius:14px 0 0 14px; }
.mono-plan:hover{ background:#fff; border-color:var(--w-navy); box-shadow:0 6px 18px rgba(8,68,108,.12); }
.mono-plan .pn{ font-family:var(--w-disp); font-weight:600; font-size:15px; color:var(--w-navy); }
.mono-plan .pm{ font-size:11.5px; color:var(--w-muted); margin-top:1px; }
.mono-plan .pgo{ margin-left:auto; font-size:11px; font-weight:700; letter-spacing:.06em;
  text-transform:uppercase; color:var(--w-navy); flex:none; }
.mono-plan.mir .pn{ font-size:14px; }
.mono-plan.mir .price{ margin-left:auto; font-family:var(--w-disp); font-weight:700; color:var(--w-navy); font-size:14px; flex:none; }
.mono-subhd{ font-size:10.5px; font-weight:700; letter-spacing:.12em; text-transform:uppercase;
  color:var(--w-nickel-dk); margin:16px 0 8px; }
.mono-empty{ font-size:12.5px; color:var(--w-muted); font-style:italic; padding:8px 0; }

/* Q&A */
.mono-qa-chips .mono-chip{ border-radius:6px; }
.mono-qa-ans{ margin-top:12px; background:#fff; border:1px solid var(--w-line);
  border-radius:16px; padding:13px 15px; font-size:13px; color:var(--w-body); line-height:1.55;
  box-shadow:0 2px 8px rgba(8,68,108,.05); }
.mono-qa-ans .qq{ font-family:var(--w-disp); font-weight:600; color:var(--w-navy); font-size:14px; margin-bottom:5px; }
.mono-qa-note{ font-size:10.5px; color:var(--w-muted); font-style:italic; margin-top:8px; }

/* opt-in */
.mono-optin{ margin-top:6px; }
.mono-optin .oi{ display:flex; gap:8px; margin-bottom:9px; }
.mono-optin input{ flex:1; min-width:0; padding:11px 14px; border:1.5px solid var(--w-line);
  border-radius:11px; font-family:var(--w-sans); font-size:13px; background:#fff; color:var(--w-body); }
.mono-optin input:focus{ outline:none; border-color:var(--w-navy); background:#fff; }
.mono-optin .btn.sm{ flex:none; }
.mono-note-sample{ font-size:10.5px; color:var(--w-muted); font-style:italic; margin-top:2px; }

/* buttons reused from site — ensure they render even without site .btn (defensive) */
.mono-w .btn{ display:inline-block; font-family:var(--w-sans); font-size:12px; font-weight:600;
  letter-spacing:.1em; text-transform:uppercase; padding:15px 32px; transition:.22s; cursor:pointer;
  border:1.5px solid transparent; border-radius:2px; text-align:center; }

@media(max-width:1079.98px){ .mono-side{ display:none; } }

/* ============================================================
   3+4. MOBILE PILLS + SLIDE-UP PANEL  (< 1200px)
   ============================================================ */
.mono-mobile{ display:none; }
@media(max-width:1079.98px){ .mono-mobile{ display:block; } }

/* (obsolete mobile bottom-pill bar removed — replaced by .mono-tabbar.
   Those rules were hijacking the concierge's bedroom pills inside the sheet.) */

/* slide-up sheet */
.mono-sheet-scrim{ position:fixed; inset:0; z-index:var(--mono-z-mobile);
  background:rgba(4,38,59,.45); opacity:0; visibility:hidden; transition:opacity .28s, visibility .28s; }
.mono-sheet-scrim.show{ opacity:1; visibility:visible; }
.mono-sheet{ position:fixed; left:0; right:0; bottom:0; z-index:calc(var(--mono-z-mobile) + 1);
  background:#fff; border-radius:16px 16px 0 0; max-height:80vh;
  display:flex; flex-direction:column; transform:translateY(105%);
  transition:transform .32s cubic-bezier(.22,.61,.36,1);
  box-shadow:0 -12px 40px rgba(4,38,59,.3); font-family:var(--w-sans); }
.mono-sheet.show{ transform:translateY(0); }
.mono-sheet-grip{ padding:10px 0 6px; flex:none; cursor:grab; touch-action:none; }
.mono-sheet-grip::before{ content:''; display:block; width:44px; height:5px; border-radius:3px;
  background:var(--w-line); margin:0 auto; }
.mono-sheet-head{ padding:2px 20px 14px; border-bottom:1px solid var(--w-line); flex:none;
  display:flex; align-items:center; justify-content:space-between; }
.mono-sheet-head h3{ font-family:var(--w-disp); font-weight:600; font-size:18px; color:var(--w-navy); }
.mono-sheet-head .x{ background:none; border:none; font-size:24px; line-height:1; color:var(--w-muted); cursor:pointer; }
.mono-sheet-body{ padding:16px 20px 26px; overflow-y:auto; flex:1; }
/* concierge bedroom/bonus pills sit in a clean wrapping row inside the sheet (never fixed/floating) */
.mono-sheet-body .mono-pills{ position:static !important; display:flex !important; flex-wrap:wrap;
  gap:8px; width:auto; padding:0; margin:0; pointer-events:auto; }
.mono-sheet-body .mono-pill{ position:static !important; flex:0 0 auto; }
/* chat box pinned to the bottom of the mobile sheet (reuses .mono-sc-chat) */
.mono-sheet .mono-sc-chat{ border-radius:0 0 16px 16px; }

/* ============================================================
   5. LOCAL EVENTS CALENDAR  (community pages)
   ============================================================ */
.mono-events{ background:var(--w-paper); }
.mono-events .mono-ev-head{ max-width:720px; }
.mono-ev-kick{ display:inline-flex; align-items:center; gap:13px; font-family:var(--w-sans);
  font-size:11px; font-weight:700; letter-spacing:.24em; text-transform:uppercase; color:var(--w-nickel-dk); margin-bottom:16px; }
.mono-ev-kick::before{ content:''; width:36px; height:2px; background:var(--w-steel); border-radius:1px; }
.mono-events h2{ font-family:var(--w-disp); font-weight:700; font-size:clamp(30px,3.6vw,46px);
  letter-spacing:-.03em; color:var(--ink,#1a1d21); margin-bottom:12px; }
.mono-events .lead{ color:var(--w-body); font-size:17px; max-width:640px; }
.mono-ev-grid{ margin-top:46px; display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
.mono-ev-card{ background:#fff; box-shadow:0 1px 0 var(--w-line); position:relative;
  display:flex; flex-direction:column; padding:26px 24px 24px; transition:transform .3s, box-shadow .3s; }
.mono-ev-card::before{ content:''; position:absolute; top:0; left:0; right:0; height:3px; background:var(--w-steel); }
.mono-ev-card:hover{ transform:translateY(-4px); box-shadow:0 18px 40px rgba(8,68,108,.14); }
.mono-ev-date{ display:inline-flex; flex-direction:column; align-items:center; justify-content:center;
  width:56px; height:56px; background:var(--w-navy); color:#fff; border-radius:6px; margin-bottom:16px; flex:none; }
.mono-ev-date .mo{ font-size:10px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--w-nickel-lt); }
.mono-ev-date .dy{ font-family:var(--w-disp); font-weight:700; font-size:22px; line-height:1; }
.mono-ev-card h3{ font-family:var(--w-disp); font-weight:600; font-size:19px; color:var(--ink,#1a1d21);
  letter-spacing:-.01em; margin-bottom:8px; }
.mono-ev-when{ font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  color:var(--w-nickel-dk); margin-bottom:10px; }
.mono-ev-card p{ font-size:14px; color:var(--w-body); line-height:1.55; margin-bottom:16px; flex:1; }
.mono-ev-card a.ev-link{ font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  color:var(--w-navy); align-self:flex-start; }
.mono-ev-card a.ev-link:hover{ text-decoration:underline; }
.mono-ev-note{ margin-top:30px; font-size:11.5px; color:var(--w-muted); font-style:italic; }
@media(max-width:1000px){ .mono-ev-grid{ grid-template-columns:1fr 1fr; } }
@media(max-width:600px){ .mono-ev-grid{ grid-template-columns:1fr; } }

/* ============================================================
   6. RECENTLY VIEWED  (all pages, before footer)
   ============================================================ */
.mono-recent{ background:#eef2f5; padding:56px 0; position:relative; border-top:1px solid #dde5ec; }
.mono-recent::before{ display:none; }
.mono-recent .mono-rc-wrap{ max-width:1360px; margin:0 auto; padding:0 40px; }
.mono-rc-h{ font-family:var(--w-disp); font-weight:700; font-size:clamp(24px,2.6vw,34px); color:#17222c; letter-spacing:-.02em; margin:10px 0 26px; }
.mono-recent .mono-rc-kick{ color:var(--w-nickel-lt); }
.mono-recent .mono-rc-txt .k{ color:var(--w-nickel-lt); }
.mono-rc-kick{ display:inline-flex; align-items:center; gap:13px; font-family:var(--w-sans);
  font-size:11px; font-weight:700; letter-spacing:.24em; text-transform:uppercase; color:var(--w-nickel-dk); margin-bottom:26px; }
.mono-rc-kick::before{ content:''; width:36px; height:2px; background:var(--w-steel); border-radius:1px; }
.mono-rc-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
.mono-rc-thumb{ width:200px !important; height:158px !important; }
.mono-rc-txt{ padding:14px 22px 14px 6px !important; }
.mono-rc-txt .k{ font-size:11px !important; margin-bottom:7px !important; }
.mono-rc-txt .n{ font-size:26px !important; }
@media(max-width:1100px){ .mono-rc-thumb{ width:150px !important; height:120px !important; } .mono-rc-txt .n{ font-size:21px !important; } }
.mono-rc-card{ display:flex; align-items:center; gap:16px; background:#fff; text-decoration:none;
  border-radius:16px; box-shadow:0 6px 20px -10px rgba(4,32,52,.45); position:relative; overflow:hidden; transition:transform .25s, box-shadow .25s; }
.mono-rc-card::before{ content:''; position:absolute; top:0; left:0; bottom:0; width:3px; background:var(--w-steel); z-index:2; }
.mono-rc-card:hover{ transform:translateY(-4px); box-shadow:0 20px 44px -16px rgba(4,32,52,.6); }
.mono-rc-card:active{ transform:translateY(-1px); }
.mono-rc-thumb{ width:104px; height:82px; flex:none; object-fit:cover; background:var(--w-paper2); }
.mono-rc-txt{ padding:8px 6px 8px 4px; flex:1; min-width:0; }
.mono-rc-txt .k{ font-size:10px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--w-nickel-dk); margin-bottom:4px; }
.mono-rc-txt .n{ font-family:var(--w-disp); font-weight:600; font-size:18px; color:var(--w-navy); letter-spacing:-.01em; }
.mono-rc-arrow{ flex:none; margin-left:auto; padding-right:18px; color:var(--w-nickel-dk); display:flex; align-items:center; transition:transform .2s, color .2s; }
.mono-rc-arrow svg{ width:20px; height:20px; }
.mono-rc-card:hover .mono-rc-arrow{ transform:translateX(3px); color:var(--w-navy); }
@media(max-width:1000px){ .mono-rc-grid{ grid-template-columns:1fr 1fr; } }
@media(max-width:600px){
  .mono-rc-grid{ grid-template-columns:1fr; gap:12px; }
  .mono-recent{ padding:38px 0 46px; }
  .mono-recent .mono-rc-wrap{ padding:0 16px; }
  .mono-rc-h{ margin-bottom:20px; }
  .mono-rc-card{ align-items:stretch; min-height:86px; }
  .mono-rc-thumb{ width:120px !important; height:auto !important; }
  .mono-rc-txt{ padding:12px 4px 12px 15px !important; display:flex; flex-direction:column; justify-content:center; }
  .mono-rc-txt .k{ font-size:10px !important; margin-bottom:5px !important; }
  .mono-rc-txt .n{ font-size:19px !important; }
}

/* ============================================================
   TOAST  (shared)
   ============================================================ */
.mono-toast{ position:fixed; left:50%; bottom:86px; transform:translateX(-50%) translateY(20px);
  z-index:var(--mono-z-toast); background:var(--w-navy-950); color:#fff;
  font-family:var(--w-sans); font-size:13.5px; font-weight:600;
  padding:13px 22px; border-radius:8px; box-shadow:0 12px 34px rgba(4,38,59,.4);
  opacity:0; visibility:hidden; transition:opacity .28s, transform .28s, visibility .28s;
  display:flex; align-items:center; gap:10px; max-width:calc(100vw - 32px); }
.mono-toast::before{ content:''; width:8px; height:8px; border-radius:50%; background:var(--w-nickel-lt); flex:none; }
.mono-toast.show{ opacity:1; visibility:visible; transform:translateX(-50%) translateY(0); }
@media(min-width:1080px){ .mono-toast{ bottom:28px; } }

/* reduce motion */
@media(prefers-reduced-motion:reduce){
  .mono-sheet,.mono-toast,.mono-sheet-scrim,.mono-sc-min{ transition:none !important; }
}

/* ============================================================
   CONTEXTUAL SIDEBAR BLOCKS — community lists, CTAs, local guide, events
   ============================================================ */
.mono-nrow{display:flex;flex-direction:column;gap:2px;position:relative;padding:11px 30px 11px 12px;border:1px solid var(--w-line);border-radius:8px;background:#fff;margin-bottom:8px;transition:border-color .18s,transform .18s,box-shadow .18s}
.mono-nrow:last-child{margin-bottom:0}
.mono-nrow:hover{border-color:var(--w-nickel);transform:translateX(2px);box-shadow:0 6px 16px rgba(8,68,108,.08)}
.mono-nrow .t{font-family:var(--w-disp);font-weight:700;font-size:13.5px;color:#1a1d21;letter-spacing:-.01em}
.mono-nrow .t em{font-style:normal;font-family:var(--w-sans);font-weight:700;font-size:9px;letter-spacing:.09em;text-transform:uppercase;color:var(--w-navy);margin-left:7px;vertical-align:middle}
.mono-nrow .d{font-size:11.5px;color:var(--w-nickel-dk);line-height:1.32}
.mono-nrow .ar{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:var(--w-nickel);font-size:15px;transition:transform .18s,color .18s}
.mono-nrow:hover .ar{color:var(--w-navy);transform:translateY(-50%) translateX(2px)}

.mono-cta{display:flex;flex-direction:column;gap:2px;position:relative;padding:14px 34px 14px 15px;border-radius:8px;background:var(--w-navy);color:#fff;overflow:hidden}
.mono-cta::before{content:'';position:absolute;left:0;right:0;top:0;height:2px;background:var(--w-steel);opacity:.75}
.mono-cta .t{font-family:var(--w-disp);font-weight:700;font-size:14px;color:#fff}
.mono-cta .d{font-size:11.5px;color:var(--w-nickel-lt);line-height:1.32}
.mono-cta .ar{position:absolute;right:14px;top:50%;transform:translateY(-50%);color:var(--w-nickel-lt);font-size:16px;transition:transform .18s,color .18s}
.mono-cta:hover{background:var(--w-navy-deep)}
.mono-cta:hover .ar{transform:translateY(-50%) translateX(3px);color:#fff}

.mono-guide-blurb{font-size:12.5px;color:var(--w-body);line-height:1.5;margin-bottom:12px}
.mono-guide-it{display:flex;justify-content:space-between;gap:12px;align-items:baseline;padding:8px 0;border-top:1px solid var(--w-line)}
.mono-guide-it:first-child{border-top:none}
.mono-guide-it .t{font-family:var(--w-disp);font-weight:700;font-size:12.5px;color:#1a1d21;flex:none;max-width:54%}
.mono-guide-it .d{font-size:11px;color:var(--w-nickel-dk);text-align:right;line-height:1.3}

.mono-ev-row{display:flex;gap:11px;align-items:center;padding:8px 0;border-top:1px solid var(--w-line)}
.mono-ev-row:first-child{border-top:none}
.mono-ev-row .dt{flex:none;width:40px;height:42px;border-radius:7px;background:var(--w-navy);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1}
.mono-ev-row .dt b{font-family:var(--w-disp);font-size:16px;font-weight:700}
.mono-ev-row .dt i{font-style:normal;font-size:8px;letter-spacing:.1em;text-transform:uppercase;color:var(--w-nickel-lt);margin-top:2px}
.mono-ev-row .tx{display:flex;flex-direction:column;gap:1px;min-width:0}
.mono-ev-row .tx .t{font-family:var(--w-disp);font-weight:700;font-size:12.5px;color:#1a1d21;line-height:1.15}
.mono-ev-row .tx .d{font-size:11px;color:var(--w-nickel-dk)}

/* ============================================================
   SIDEBAR LUXE PASS — depth, floating panels, luxury icon chips
   ============================================================ */
/* rail + card gain a soft vertical gradient for depth */
.mono-side{ background:linear-gradient(180deg,#efefed 0%,#e2e2e0 100%); }
.mono-side-card{ background:transparent; }
.mono-sc-body{ padding:16px 16px 24px; }

/* promo header — richer navy with a soft glow */
.mono-sc-promo{ background:linear-gradient(150deg,#0a4a76 0%,#06334f 62%,#052b45 100%); padding:15px 18px 15px; }
.mono-sc-promo::after{ content:''; position:absolute; right:-26px; bottom:-30px; width:130px; height:130px; border-radius:50%; background:radial-gradient(circle,rgba(255,255,255,.07),transparent 70%); pointer-events:none; }
.mono-sc-promo h3{ font-size:17px; }

/* each block is a floating white panel */
.mono-side .mono-sc-body > .mono-blk{ background:#fff; border:1px solid #e5e8eb; border-radius:14px; padding:15px 15px 16px; margin-bottom:14px; position:relative; box-shadow:0 1px 2px rgba(16,42,67,.05),0 14px 28px -10px rgba(16,42,67,.13); }
.mono-side .mono-sc-body > .mono-blk.mono-blk-flush{ background:none; border:none; box-shadow:none; padding:0; margin-bottom:12px; }
/* Distinct accents so each concierge section reads as its own tool */
.mono-side .mono-sc-body > .mono-blk.acc-saved{ border-left:4px solid #c9922f; }
.mono-side .mono-sc-body > .mono-blk.acc-ask{ border-left:4px solid #148d98; }
.mono-side .mono-sc-body > .mono-blk.acc-events{ border-left:4px solid #3f9d5b; }
.acc-saved .mono-ic{ background:linear-gradient(155deg,#dca63f 0%,#bd7d1c 55%,#a56a12 100%) !important; box-shadow:inset 0 1.5px 0 rgba(255,255,255,.28),0 6px 13px rgba(160,110,20,.30) !important; }
.acc-ask .mono-ic{ background:linear-gradient(155deg,#20a7b2 0%,#12727c 55%,#0c5a63 100%) !important; box-shadow:inset 0 1.5px 0 rgba(255,255,255,.28),0 6px 13px rgba(18,114,124,.30) !important; }
.acc-events .mono-ic{ background:linear-gradient(155deg,#4bb06a 0%,#2f8049 55%,#256b3c 100%) !important; }

/* block label — icon chip + small-caps + stainless hairline */
.mono-blk-lbl{ display:flex; align-items:center; gap:10px; margin-bottom:13px; }
.mono-blk-t{ font-family:var(--w-disp); font-weight:700; font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:#26333f; white-space:nowrap; }
.mono-blk-lbl::after{ content:''; flex:1; height:1px; background:linear-gradient(90deg,var(--w-nickel-lt),transparent); }

/* luxury icon chip */
/* app-tile icons — iOS "squircle" look */
.mono-ic{ flex:none; width:30px; height:30px; border-radius:10px; display:inline-flex; align-items:center; justify-content:center; position:relative; overflow:hidden; background:linear-gradient(155deg,#0d517e 0%,#083f63 55%,#06334f 100%); box-shadow:inset 0 1.5px 0 rgba(255,255,255,.22),0 6px 13px rgba(8,68,108,.30),0 1px 2px rgba(4,38,59,.22); }
.mono-ic::before{ content:''; position:absolute; left:0; right:0; top:0; height:2px; background:var(--w-steel); opacity:.55; }
.mono-ic::after{ content:''; position:absolute; inset:0; background:radial-gradient(125% 85% at 26% -6%,rgba(255,255,255,.26),rgba(255,255,255,0) 56%); pointer-events:none; }
.mono-ic svg{ width:16px; height:16px; color:#fff; position:relative; z-index:1; }
.mono-ic.soft{ width:27px; height:27px; border-radius:9px; background:rgba(8,68,108,.08); box-shadow:none; }
.mono-ic.soft::after{ display:none; }
.mono-ic.soft::before{ display:none; }
.mono-ic.soft svg{ width:15px; height:15px; color:var(--w-navy); }
.mono-ic.on-navy{ background:rgba(255,255,255,.15); box-shadow:inset 0 0 0 1px rgba(255,255,255,.2); }
.mono-ic.on-navy::before{ opacity:.5; }

/* nav rows — icon + text + arrow; steel ring + lift on hover */
.mono-side .mono-nrow{ display:flex; flex-direction:row; align-items:center; gap:11px; position:relative; overflow:hidden; padding:10px 30px 10px 10px; border:1px solid #e7eaed; border-radius:11px; background:#fff; margin-bottom:8px; transition:transform .2s,box-shadow .2s,border-color .2s; }
.mono-side .mono-nrow:last-child{ margin-bottom:0; }
.mono-nrow .mono-nrow-tx{ display:flex; flex-direction:column; gap:1px; min-width:0; z-index:2; }
.mono-side .mono-nrow .t{ font-family:var(--w-disp); font-weight:700; font-size:13.5px; color:#17222c; letter-spacing:-.01em; }
.mono-side .mono-nrow .t em{ font-style:normal; font-family:var(--w-sans); font-weight:700; font-size:8.5px; letter-spacing:.07em; text-transform:uppercase; color:var(--w-navy); background:rgba(8,68,108,.09); padding:2px 7px; border-radius:20px; margin-left:7px; vertical-align:middle; }
.mono-side .mono-nrow .d{ font-size:11px; color:var(--w-nickel-dk); line-height:1.3; }
.mono-side .mono-nrow .mono-ic{ z-index:2; }
.mono-side .mono-nrow .ar{ position:absolute; right:12px; top:50%; transform:translateY(-50%); color:var(--w-nickel); font-size:15px; transition:transform .2s,color .2s; z-index:2; }
.mono-side .mono-nrow:hover{ border-color:transparent; transform:translateY(-2px); box-shadow:0 14px 28px -8px rgba(8,68,108,.24); }
.mono-side .mono-nrow:hover .ar{ color:var(--w-navy); transform:translateY(-50%) translateX(3px); }
.mono-side .mono-nrow::after{ content:''; position:absolute; inset:0; border-radius:11px; padding:1.4px; background:var(--w-steel); -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude; opacity:0; transition:opacity .2s; pointer-events:none; z-index:3; }
.mono-side .mono-nrow:hover::after{ opacity:1; }

/* CTA — navy gradient card + icon + sheen sweep */
.mono-side .mono-cta{ display:flex; flex-direction:row; align-items:center; gap:12px; position:relative; overflow:hidden; padding:14px 34px 14px 13px; border-radius:13px; background:linear-gradient(140deg,#0a4a75 0%,#06334f 100%); color:#fff; box-shadow:0 10px 24px -8px rgba(8,68,108,.45); transition:transform .2s,box-shadow .2s; }
.mono-cta::before{ content:''; position:absolute; left:0; right:0; top:0; height:2px; background:var(--w-steel); opacity:.85; z-index:2; }
.mono-cta .mono-cta-tx{ display:flex; flex-direction:column; gap:1px; min-width:0; position:relative; z-index:2; }
.mono-side .mono-cta .t{ font-family:var(--w-disp); font-weight:700; font-size:14px; color:#fff; }
.mono-side .mono-cta .d{ font-size:11px; color:var(--w-nickel-lt); line-height:1.3; }
.mono-side .mono-cta .mono-ic{ z-index:2; }
.mono-side .mono-cta .ar{ position:absolute; right:14px; top:50%; transform:translateY(-50%); color:var(--w-nickel-lt); font-size:16px; transition:transform .2s,color .2s; z-index:2; }
.mono-side .mono-cta:hover{ transform:translateY(-2px); box-shadow:0 18px 34px -8px rgba(8,68,108,.55); }
.mono-side .mono-cta:hover .ar{ transform:translateY(-50%) translateX(3px); color:#fff; }
.mono-cta::after{ content:''; position:absolute; top:-30%; left:-60%; width:45%; height:160%; background:linear-gradient(100deg,transparent,rgba(255,255,255,.4),transparent); transform:skewX(-16deg); z-index:1; pointer-events:none; opacity:0; }
.mono-cta:hover::after{ opacity:1; animation:mono-sheen .8s ease forwards; }
@keyframes mono-sheen{ from{ left:-60%; } to{ left:130%; } }

/* local guide — icon + stacked text */
.mono-guide-blurb{ font-size:12.5px; color:var(--w-body); line-height:1.5; margin-bottom:13px; padding-bottom:12px; border-bottom:1px solid #eef1f3; }
.mono-side .mono-guide-it{ display:flex; flex-direction:row; align-items:center; gap:11px; padding:8px 0; border-top:1px solid #edf0f2; }
.mono-side .mono-guide-it:first-child{ border-top:none; }
.mono-guide-tx{ display:flex; flex-direction:column; gap:1px; min-width:0; flex:1; }
.mono-side .mono-guide-it .t{ font-family:var(--w-disp); font-weight:700; font-size:12.5px; color:#17222c; max-width:none; }
.mono-side .mono-guide-it .d{ font-size:11px; color:var(--w-nickel-dk); text-align:left; line-height:1.3; }

/* events — richer date chip */
.mono-side .mono-ev-row .dt{ background:linear-gradient(150deg,#0b4f7d,#06334f); position:relative; overflow:hidden; box-shadow:0 4px 10px rgba(8,68,108,.28); }
.mono-side .mono-ev-row .dt::before{ content:''; position:absolute; left:0; right:0; top:0; height:2px; background:var(--w-steel); opacity:.9; }

/* ---- SIZE FINDER (bedroom chips -> matching plans across communities) ---- */
.mono-size-hint{ font-size:12px; color:var(--w-muted); line-height:1.45; margin-bottom:11px; }
.mono-size-chips{ display:flex; flex-wrap:wrap; gap:7px; margin-bottom:14px; }
.mono-size-chip{ font-family:var(--w-sans); font-size:12px; font-weight:700; letter-spacing:.02em; padding:7px 15px; border-radius:22px; border:1.5px solid var(--w-line); background:#fff; color:var(--w-body); cursor:pointer; transition:background .18s,border-color .18s,color .18s,box-shadow .18s,transform .18s; }
.mono-size-chip:hover{ border-color:var(--w-nickel); transform:translateY(-1px); }
.mono-size-chip.on{ background:var(--w-navy); border-color:var(--w-navy); color:#fff; box-shadow:0 5px 14px rgba(8,68,108,.3); }
.mono-size-count{ font-size:11.5px; color:var(--w-muted); margin-bottom:11px; }
.mono-size-count b{ color:var(--w-navy); font-family:var(--w-disp); }

/* ---- SEARCH: beds/baths/sqft buttons + image preview cards ---- */
.mono-cta-lg{ padding:16px 34px 16px 14px; }
.mono-cta-lg .t{ font-size:15px; }

.mono-srch-row{ margin-bottom:13px; }
.mono-srch-lbl{ font-size:10px; font-weight:700; letter-spacing:.15em; text-transform:uppercase; color:var(--w-nickel-dk); margin-bottom:8px; }
.mono-pills{ display:flex; flex-wrap:wrap; gap:8px; }
.mono-pill{ font-family:var(--w-sans); font-weight:700; font-size:13px; min-width:40px; height:40px; padding:0 6px; border-radius:50%; border:1.5px solid var(--w-line); background:#fff; color:var(--w-body); cursor:pointer; display:inline-flex; align-items:center; justify-content:center; transition:background .18s,border-color .18s,color .18s,box-shadow .18s,transform .18s; }
.mono-pill:hover{ border-color:var(--w-nickel); transform:translateY(-1px); }
.mono-pill.on{ background:var(--w-navy); border-color:var(--w-navy); color:#fff; box-shadow:0 5px 14px rgba(8,68,108,.32); }
.mono-srch-row.range .mono-pill{ border-radius:22px; height:36px; min-width:0; padding:0 15px; font-size:12px; }

.mono-srch-res{ margin-top:4px; }
.mono-srch-empty{ font-size:12px; color:var(--w-muted); text-align:center; padding:14px 8px; border:1px dashed var(--w-line); border-radius:10px; }
.mono-pcard{ display:block; background:#fff; border:1px solid #e5e8eb; border-radius:13px; overflow:hidden; margin-bottom:11px; box-shadow:0 1px 2px rgba(16,42,67,.05),0 14px 26px -12px rgba(16,42,67,.16); transition:transform .22s,box-shadow .22s; }
.mono-pcard:last-child{ margin-bottom:0; }
.mono-pcard:hover{ transform:translateY(-3px); box-shadow:0 22px 36px -12px rgba(8,68,108,.3); }
.mono-pcard-img{ position:relative; aspect-ratio:16/10; background:var(--w-paper2); overflow:hidden; }
.mono-pcard-img img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s ease; }
.mono-pcard:hover .mono-pcard-img img{ transform:scale(1.05); }
.mono-pcard-rib{ position:absolute; top:9px; left:9px; font-size:9px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:#fff; background:var(--w-navy); padding:4px 9px; border-radius:20px; }
.mono-pcard-b{ padding:11px 13px 13px; display:flex; flex-direction:column; gap:3px; }
.mono-pcard-b .t{ font-family:var(--w-disp); font-weight:700; font-size:15px; color:#17222c; letter-spacing:-.01em; }
.mono-pcard-b .cm{ font-size:10px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--w-navy); }
.mono-pcard-b .sp{ font-size:11.5px; color:var(--w-nickel-dk); }


/* ============================================================
   MATTE LIGHT SILVER SIDEBAR + assistant components
   ============================================================ */
.mono-side{ background:linear-gradient(180deg,#ededeb 0%,#e0e0de 100%); border-left:1px solid #d6d6d3; }
.mono-side-card{ background:transparent; }

/* section divider label for the two halves */
.mono-half{ display:flex; align-items:center; gap:11px; margin:4px 0 15px; padding-bottom:13px; border-bottom:1.5px solid #e5e8eb; }
.mono-half .mono-ic{ width:34px; height:34px; border-radius:9px; }
.mono-half .mono-ic svg{ width:17px; height:17px; }
.mono-half-t{ font-family:var(--w-disp); font-weight:700; font-size:15.5px; letter-spacing:.005em; color:#152029; line-height:1.14; }
.mono-half-t small{ display:block; font-family:var(--w-sans); font-weight:500; font-size:11px; letter-spacing:.01em; text-transform:none; color:var(--w-muted); margin-top:2px; }
.mono-half::after{ display:none; }

/* thumbnail result rows (light) */
.mono-presult{ display:flex; align-items:center; gap:11px; position:relative; padding:8px 30px 8px 8px; background:#fff; border:1px solid #e5e8eb; border-radius:12px; margin-bottom:9px; box-shadow:0 1px 2px rgba(16,42,67,.05),0 12px 24px -12px rgba(16,42,67,.14); transition:transform .2s,box-shadow .2s; }
.mono-presult:last-child{ margin-bottom:0; }
.mono-presult:hover{ transform:translateY(-2px); box-shadow:0 20px 32px -12px rgba(8,68,108,.26); }
.mono-presult .thumb{ flex:none; width:80px; height:60px; border-radius:8px; overflow:hidden; position:relative; background:#e8eaec; }
.mono-presult .thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.mono-presult-rib{ position:absolute; top:5px; left:5px; font-size:8px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:#fff; background:var(--w-navy); padding:2px 6px; border-radius:20px; }
.mono-presult .tx{ display:flex; flex-direction:column; gap:1px; min-width:0; }
.mono-presult .tx .t{ font-family:var(--w-disp); font-weight:700; font-size:14.5px; color:#17222c; }
.mono-presult .tx .cm{ font-size:9.5px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; color:var(--w-navy); }
.mono-presult .tx .sp{ font-size:11px; color:var(--w-nickel-dk); }
.mono-presult .ar{ position:absolute; right:11px; top:50%; transform:translateY(-50%); color:var(--w-nickel); font-size:14px; transition:.2s; }
.mono-presult:hover .ar{ color:var(--w-navy); transform:translateY(-50%) translateX(2px); }
/* remove (×) on saved rows */
.mono-presult .rm{ position:absolute; right:9px; top:50%; transform:translateY(-50%); width:20px; height:20px; border:none; border-radius:50%; background:#eef0f2; color:var(--w-nickel-dk); font-size:13px; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; }
.mono-presult .rm:hover{ background:#e0684d; color:#fff; }

/* saved-plans empty state */
.mono-saved-empty{ display:flex; gap:11px; align-items:center; padding:13px; border:1px dashed var(--w-line); border-radius:12px; background:rgba(255,255,255,.5); }
.mono-saved-empty .ic{ flex:none; width:34px; height:34px; border-radius:9px; background:rgba(8,68,108,.08); display:flex; align-items:center; justify-content:center; color:var(--w-navy); }
.mono-saved-empty .ic svg{ width:18px; height:18px; }
.mono-saved-empty .tx{ font-size:11.5px; color:var(--w-muted); line-height:1.4; }
.mono-saved-empty .tx b{ color:#17222c; display:block; font-family:var(--w-disp); font-size:13px; }

/* welcome-back most-viewed card */
.mono-welcome2{ position:relative; display:flex; gap:11px; align-items:center; background:linear-gradient(140deg,#0a4a75,#06334f); border-radius:13px; padding:10px 12px 10px 10px; overflow:hidden; box-shadow:0 12px 26px -10px rgba(8,68,108,.5); }
.mono-welcome2::before{ content:''; position:absolute; left:0; right:0; top:0; height:2px; background:var(--w-steel); opacity:.85; }
.mono-welcome2{ box-shadow:0 12px 26px -10px rgba(8,68,108,.5),0 0 0 1px rgba(126,196,236,.35); padding:15px 38px 16px 15px; gap:14px; align-items:flex-start; }
.mono-welcome2 .thumb{ position:relative; flex:none; width:74px; height:58px; border-radius:8px; overflow:hidden; background:#0d3a58; }
.mono-welcome2 .thumb img{ width:100%; height:100%; object-fit:cover; }
.mono-welcome2 .thumb .resume{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; background:rgba(6,42,64,.34); transition:background .2s; }
.mono-welcome2 .thumb .resume svg{ width:22px; height:22px; filter:drop-shadow(0 1px 4px rgba(0,0,0,.55)); }
.mono-welcome2:hover .thumb .resume{ background:rgba(6,42,64,.14); }
.mono-welcome2 .wb-go{ position:absolute; right:13px; top:50%; transform:translateY(-50%); color:#bcd6e8; font-size:18px; transition:transform .18s,color .18s; }
.mono-welcome2:hover .wb-go{ transform:translateY(-50%) translateX(3px); color:#fff; }
.mono-welcome2 .tx{ min-width:0; display:flex; flex-direction:column; padding-top:2px; }
.mono-welcome2 .k{ display:none; }
.mono-welcome2 .t{ display:block; font-family:var(--w-disp); font-weight:800; font-size:15px; color:#fff; line-height:1.32; letter-spacing:-.005em; }
.mono-welcome2 .d{ display:block; font-size:12px; font-weight:700; letter-spacing:.01em; color:#bcd6e8; margin-top:10px; padding-top:10px; border-top:1px solid rgba(255,255,255,.16); }

/* Communities button + red pin (light context) */
.mono-cta-comm{ background:linear-gradient(125deg,rgba(9,62,99,.80) 0%,rgba(6,40,62,.90) 100%),url('assets/community-up-hero.jpg') center/cover no-repeat; min-height:64px; box-shadow:0 12px 26px -8px rgba(8,68,108,.5); }
.mono-cta-comm .t{ font-size:15.5px; text-shadow:0 1px 6px rgba(0,0,0,.4); }
.mono-cta-comm .d{ color:#e6eef4; text-shadow:0 1px 6px rgba(0,0,0,.4); }
.mono-ic.pin-accent{ background:linear-gradient(150deg,#e0684d 0%,#c1442f 100%); box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 5px 13px rgba(193,68,47,.45); }
.mono-ic.pin-accent::before{ background:linear-gradient(90deg,rgba(255,255,255,.55),transparent); opacity:.6; }
.mono-ic.pin-accent svg{ color:#fff; }

/* ---- STICKY "Save this Plan" button (plan pages) ---- */
.mono-savebar{ position:fixed; top:118px; transform:none; right:var(--mono-rail-w,0); left:auto; bottom:auto; z-index:96; pointer-events:none; }
@media(max-width:1079.98px){
  /* pinned to the top-right so it never blocks scrolling mid-screen (sits just under the header) */
  .mono-savebar{ right:0; left:auto; top:62px; bottom:auto; transform:none; }
  .mono-savebar .mono-savebtn{ font-size:11px; letter-spacing:.05em; padding:9px 14px 9px 15px; border-radius:24px 0 0 24px; }
  .mono-savebar .mono-savebtn svg{ width:15px; height:15px; }
}
/* --- Save button in the header on mobile plan pages (the floating pill is hidden there) --- */
/* stands out in ORANGE, matching the original floating save button (never blends into the navy header) */
.mono-hdrsave{ display:none; }
@media(max-width:768px){
  .mono-savebar{ display:none !important; }
  #hdr .nav .mono-hdrsave{ display:inline-flex; align-items:center; gap:7px; margin-left:auto;
    background:linear-gradient(140deg,#e2704f 0%,#c1442f 100%) !important; border:none; color:#fff !important;
    font-family:var(--w-sans); font-weight:800; font-size:11px; letter-spacing:.06em; text-transform:uppercase;
    padding:10px 16px; border-radius:999px; cursor:pointer; -webkit-tap-highlight-color:transparent;
    box-shadow:0 6px 18px -4px rgba(193,68,47,.6); transition:transform .15s, box-shadow .15s, filter .15s; }
  #hdr .nav .mono-hdrsave svg{ width:15px; height:15px; stroke:#fff; }
  #hdr .nav .mono-hdrsave:active{ transform:scale(.96); }
  #hdr .nav .mono-hdrsave.saved{ filter:brightness(1.04); }
  #hdr .nav .mono-hdrsave.saved svg{ fill:#fff; stroke:#fff; }   /* filled heart when saved */
}
.mono-savebtn{ pointer-events:auto; display:inline-flex; align-items:center; gap:8px; font-family:var(--w-sans); font-weight:700; font-size:12px; letter-spacing:.04em; text-transform:uppercase; color:#fff; background:linear-gradient(140deg,#e2704f 0%,#c1442f 100%); border:none; border-radius:26px 0 0 26px; padding:11px 18px 11px 20px; cursor:pointer; box-shadow:-8px 10px 26px -6px rgba(193,68,47,.6); transition:transform .2s,box-shadow .2s,filter .2s; position:relative; overflow:hidden; }
.mono-savebtn::before{ content:''; position:absolute; left:0; right:0; top:0; height:2px; background:linear-gradient(90deg,rgba(255,255,255,.7),transparent); }
.mono-savebtn:hover{ transform:translateX(-3px); box-shadow:-10px 12px 32px -6px rgba(193,68,47,.72); filter:brightness(1.05); }
.mono-savebtn svg{ width:16px; height:16px; }
.mono-savebtn::before{ content:''; position:absolute; left:0; right:0; top:0; height:2px; background:var(--w-steel); opacity:.85; }
.mono-savebtn:hover{ transform:translateY(-2px); box-shadow:0 22px 40px -8px rgba(8,68,108,.7); }
.mono-savebtn svg{ width:18px; height:18px; }
.mono-savebtn.saved{ background:linear-gradient(140deg,#1f7a4d,#155e3a); box-shadow:0 16px 34px -8px rgba(21,94,58,.55); }

/* ---- page-bottom email band (every page) ---- */
.mono-joinband{ background:linear-gradient(150deg,#0a4a75 0%,#06334f 70%,#052b45 100%); color:#fff; position:relative; overflow:hidden; }
.mono-joinband::before{ content:''; position:absolute; right:-90px; top:50%; transform:translateY(-50%); width:520px; height:520px;
  background:url('assets/monogram-mark-white.png') center/contain no-repeat; opacity:.07; pointer-events:none; }
.mono-joinband .in{ display:block; max-width:900px; margin:0 auto; padding:52px 40px; text-align:center; position:relative; z-index:1; }
.mono-joinband p, .mono-joinband form{ order:0; }
.mono-jb-badge{ display:inline-flex; align-items:center; justify-content:center; width:54px; height:54px; border-radius:16px;
  background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.18); margin-bottom:16px; box-shadow:inset 0 1px 0 rgba(255,255,255,.12); }
.mono-jb-badge svg{ width:27px; height:27px; color:#bfe0f4; }
.mono-joinband .k{ display:block; font-size:11px; font-weight:700; letter-spacing:.22em; text-transform:uppercase; color:var(--w-nickel-lt); margin-bottom:12px; }
.mono-joinband h3{ font-family:var(--w-disp); font-weight:700; font-size:clamp(24px,3vw,34px); color:#fff; letter-spacing:-.02em; margin-bottom:10px; }
.mono-joinband p{ color:var(--w-nickel-lt); font-size:15px; margin-bottom:22px; }
.mono-joinband form{ display:flex; gap:10px; max-width:480px; margin:0 auto; }
.mono-joinband input{ flex:1; min-width:0; padding:15px 18px; border:1.5px solid rgba(255,255,255,.2); border-radius:11px; background:rgba(255,255,255,.08); color:#fff; font-family:var(--w-sans); font-size:15px; }
.mono-joinband input::placeholder{ color:rgba(255,255,255,.5); }
.mono-joinband input:focus{ outline:none; border-color:#fff; background:rgba(255,255,255,.12); }
.mono-joinband button{ flex:none; font-family:var(--w-sans); font-weight:800; font-size:12.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--w-navy); background:linear-gradient(180deg,#fff,#e9eef1); border:none; border-radius:11px; padding:0 28px; cursor:pointer; transition:.2s; box-shadow:0 8px 20px -8px rgba(0,0,0,.4); }
.mono-joinband button:hover{ background:#fff; transform:translateY(-1px); }
.mono-jb-fine{ display:block; margin-top:14px; font-size:11.5px; color:rgba(255,255,255,.5); letter-spacing:.02em; }
@media(max-width:620px){
  .mono-joinband .in{ padding:38px 18px; }
  .mono-jb-badge{ width:48px; height:48px; border-radius:14px; margin-bottom:13px; }
  .mono-joinband form{ flex-direction:column; gap:9px; max-width:none; }
  .mono-joinband input{ padding:16px 18px; text-align:center; }
  .mono-joinband button{ padding:16px; font-size:13px; }
}

/* wide pill for "Bonus Room" option */
.mono-pill.wide{ border-radius:22px; width:auto; min-width:0; padding:0 16px; height:40px; font-size:12.5px; }

/* always-visible box that holds the bedroom question + buttons */
.mono-srch-box{ position:relative; overflow:hidden; background:linear-gradient(158deg,#f5f8fa,#e7edf1); border:1px solid #d9e1e7;
  border-radius:16px; padding:17px 15px 18px; margin-bottom:14px; box-shadow:0 10px 26px -14px rgba(8,68,108,.4); }
.mono-srch-box::before{ content:''; position:absolute; left:0; right:0; top:0; height:3px; background:var(--w-steel); }
.mono-srch-box .mono-size-hint{ margin-bottom:13px; font-family:var(--w-disp); font-weight:800; font-size:15px; color:var(--w-navy); letter-spacing:-.01em; }
.mono-srch-box .mono-pills{ margin:0; }
.mono-srch-box .mono-pill{ font-size:14px; min-width:46px; height:46px; box-shadow:0 2px 6px rgba(8,68,108,.08); }
.mono-srch-box .mono-pill.wide{ border-radius:24px; height:46px; min-width:0; padding:0 18px; }
.mono-srch-box .mono-pill.on{ box-shadow:0 8px 18px rgba(8,68,108,.32); transform:translateY(-1px); }

/* ---- shop / carriage strip (injected before footer) ---- */
.mono-strip{ background:var(--w-paper2); }
.mono-strip .in{ max-width:1200px; margin:0 auto; padding:72px 40px; display:grid; grid-template-columns:1fr 1fr; gap:52px; align-items:center; }
.mono-strip .txt .k{ display:inline-flex; align-items:center; font-family:var(--w-sans); font-size:11px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; color:var(--w-navy); background:rgba(8,68,108,.09); border:1px solid rgba(8,68,108,.18); padding:8px 14px; border-radius:30px; margin-bottom:16px; }
.mono-strip h3{ font-family:var(--w-disp); font-weight:800; font-size:clamp(28px,3.2vw,42px); color:#141922; letter-spacing:-.025em; line-height:1.03; margin-bottom:16px; }
.mono-strip p{ color:var(--w-body); font-size:16px; line-height:1.65; margin-bottom:18px; }
.mono-strip .opts{ display:flex; flex-wrap:wrap; gap:10px; }
.mono-strip .opts span{ font-family:var(--w-disp); font-weight:800; font-size:14px; color:#fff; background:linear-gradient(135deg,#0d517e,#06334f); border:none; border-radius:30px; padding:10px 20px; box-shadow:0 8px 18px -8px rgba(8,68,108,.5); }
.mono-strip .cta-line{ font-weight:700; color:var(--w-navy); margin:16px 0 0; }
.mono-strip .img img{ width:100%; height:auto; display:block; border:none; border-radius:16px; box-shadow:0 18px 40px -18px rgba(16,42,67,.35); }
.mono-strip.carriage{ background:#fff; }
.mono-strip.carriage .img img{ background:#fff; }
@media(max-width:820px){ .mono-strip .in{ grid-template-columns:1fr; gap:28px; padding:52px 24px; } .mono-strip.carriage .img{ order:-1; } }

/* ---- carriage house section (University Place) ---- */
.mono-strip.carriage .in.carriage-in{ display:block; max-width:1060px; }
.carr-head{ max-width:720px; margin:0 auto 40px; text-align:center; }
.carr-head .k{ display:inline-block; font-family:var(--w-sans); font-size:11px; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--w-navy); margin-bottom:13px; }
.carr-head h3{ font-family:var(--w-disp); font-weight:700; font-size:clamp(27px,3vw,42px); color:#1a1d21; letter-spacing:-.02em; line-height:1.04; margin-bottom:15px; }
.carr-head p{ color:var(--w-body); font-size:15.5px; line-height:1.65; }
.carr-opts{ display:grid; grid-template-columns:1fr 1fr; gap:26px; margin-bottom:26px; }
.carr-card{ position:relative; background:#fff; border:1px solid #e3e6e8; border-radius:12px; overflow:hidden; box-shadow:0 1px 2px rgba(16,42,67,.05),0 16px 30px -18px rgba(16,42,67,.22); transition:transform .25s,box-shadow .25s; }
.carr-card:hover{ transform:translateY(-4px); box-shadow:0 26px 44px -18px rgba(8,68,108,.32); }
.carr-card::before{ content:''; position:absolute; left:0; right:0; top:0; height:3px; background:var(--w-steel); z-index:3; }
.carr-num{ position:absolute; top:14px; left:14px; z-index:2; width:34px; height:34px; border-radius:50%; background:var(--w-navy); color:#fff; font-family:var(--w-disp); font-weight:700; font-size:16px; display:flex; align-items:center; justify-content:center; box-shadow:0 4px 12px rgba(8,68,108,.4); }
.carr-img{ overflow:hidden; }
.carr-img img{ width:100%; aspect-ratio:16/9; object-fit:cover; display:block; transition:transform .5s ease; }
.carr-card:hover .carr-img img{ transform:scale(1.04); }
.carr-body{ padding:18px 20px 20px; }
.carr-body h4{ font-family:var(--w-disp); font-weight:700; font-size:21px; color:#1a1d21; letter-spacing:-.01em; line-height:1; }
.carr-tag{ display:inline-block; margin:8px 0 15px; font-size:10px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:var(--w-navy); background:rgba(8,68,108,.08); border-radius:20px; padding:5px 12px; }
.carr-specs{ list-style:none; margin:0 0 15px; padding:0; display:flex; flex-direction:column; gap:6px; }
.carr-specs li{ display:flex; justify-content:space-between; gap:12px; font-size:12.5px; color:var(--w-body); border-bottom:1px solid #edf0f2; padding-bottom:6px; }
.carr-specs li:last-child{ border-bottom:none; padding-bottom:0; }
.carr-specs li b{ font-weight:700; color:#1a1d21; letter-spacing:.02em; }
.carr-upper-txt .carr-specs{ margin-top:14px; max-width:420px; }
.carr-ext{ margin:0 0 22px; padding:18px 22px; background:var(--w-paper2); border-left:3px solid var(--w-steel); border-radius:0 10px 10px 0; }
.carr-ext .k{ display:inline-block; font-family:var(--w-sans); font-size:10.5px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--w-navy); margin-bottom:7px; }
.carr-ext p{ color:var(--w-body); font-size:14px; line-height:1.6; margin:0; }
.carr-plan{ background:#fff; border:1px solid #e6e9eb; border-radius:8px; padding:10px; }
.carr-plan img{ width:100%; max-height:200px; height:auto; object-fit:contain; display:block; margin:0 auto; }
.carr-plan span{ display:block; margin-top:9px; font-size:10px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--w-nickel-dk); text-align:center; }
.carr-upper{ display:grid; grid-template-columns:1.05fr .95fr; gap:34px; align-items:center; background:var(--w-paper2); border-radius:12px; padding:28px 32px; margin-bottom:26px; position:relative; overflow:hidden; }
.carr-upper::before{ content:''; position:absolute; left:0; right:0; top:0; height:3px; background:var(--w-steel); }
.carr-upper-txt .k{ display:inline-block; font-family:var(--w-sans); font-size:10.5px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--w-navy); margin-bottom:11px; }
.carr-upper-txt h4{ font-family:var(--w-disp); font-weight:700; font-size:clamp(21px,2.3vw,28px); color:#1a1d21; letter-spacing:-.02em; line-height:1.1; margin-bottom:11px; }
.carr-upper-txt p{ color:var(--w-body); font-size:14.5px; line-height:1.6; }
.carr-upper .carr-plan{ max-width:340px; margin-left:auto; }
.mono-strip.carriage .cta-line{ text-align:center; font-weight:700; color:var(--w-navy); font-size:16px; margin:0; }
@media(max-width:820px){ .carr-opts{ grid-template-columns:1fr; } .carr-upper{ grid-template-columns:1fr; gap:20px; } .carr-upper .carr-plan{ margin:0 auto; } }

/* ============================================================
   MOBILE app-style bottom tab bar (replaces the old pills)
   ============================================================ */
@media(max-width:1079.98px){
  body.mono-rail{ padding-right:0 !important; padding-bottom:66px; }
  .mono-tabbar{ position:fixed; left:0; right:0; bottom:0; z-index:var(--mono-z-mobile,900);
    display:flex; background:var(--w-navy-950); box-shadow:0 -8px 26px rgba(4,38,59,.34);
    padding-bottom:env(safe-area-inset-bottom,0px); }
  .mono-tabbar::before{ content:''; position:absolute; left:0; right:0; top:0; height:2px;
    background:var(--w-steel); opacity:.55; }
  .mono-tab{ flex:1; display:flex; flex-direction:column; align-items:center; gap:5px;
    padding:10px 4px 9px; border:none; background:none; cursor:pointer; text-decoration:none;
    color:rgba(255,255,255,.62); font-family:var(--w-sans); font-size:10px; font-weight:700;
    letter-spacing:.05em; transition:color .15s; }
  .mono-tab .ti{ width:26px; height:26px; display:flex; align-items:center; justify-content:center; position:relative; }
  .mono-tab .ti svg{ width:23px; height:23px; color:currentColor; }
  .mono-tab .tl{ text-transform:uppercase; }
  .mono-tab:active{ color:#fff; }
  .mono-tab.on{ color:#fff; }
  .mono-tab.on .ti::after{ content:''; position:absolute; bottom:-5px; left:50%; transform:translateX(-50%);
    width:5px; height:5px; border-radius:50%; background:var(--w-nickel-lt); }
}

/* ============================================================
   MOBILE refine — agent strip + white app tab bar (Zillow-like)
   ============================================================ */
@media(max-width:1079.98px){
  body.mono-rail, body{ padding-bottom:72px; }
  .mono-agentbar{ display:none; }

  /* agent strip (always above the tab bar) */
  .mono-agentbar{ position:fixed; left:0; right:0; bottom:calc(58px + env(safe-area-inset-bottom,0px));
    z-index:var(--mono-z-mobile,900); display:flex; align-items:center; gap:10px; padding:9px 14px;
    background:linear-gradient(150deg,#0a4a75,#06334f); box-shadow:0 -4px 16px rgba(4,38,59,.26); }
  .mono-agentbar .ab-who{ display:flex; align-items:center; gap:11px; flex:1; min-width:0; text-decoration:none; }
  .mono-agentbar .ab-ic{ flex:none; width:36px; height:36px; border-radius:50%; background:rgba(255,255,255,.13);
    display:flex; align-items:center; justify-content:center; box-shadow:inset 0 0 0 1px rgba(255,255,255,.18); }
  .mono-agentbar .ab-ic svg{ width:20px; height:20px; color:#fff; }
  .mono-agentbar .ab-txt{ min-width:0; }
  .mono-agentbar .ab-txt b{ display:block; color:#fff; font:700 14px/1.2 var(--w-sans); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .mono-agentbar .ab-txt span{ display:block; font-size:11px; color:var(--w-nickel-lt); }
  .mono-agentbar .ab-call{ flex:none; display:inline-flex; align-items:center; gap:7px; text-decoration:none;
    background:#fff; color:var(--w-navy); font:800 12.5px/1 var(--w-sans); letter-spacing:.05em; text-transform:uppercase;
    padding:12px 18px; border-radius:999px; box-shadow:0 5px 14px rgba(0,0,0,.24); }
  .mono-agentbar .ab-call svg{ width:15px; height:15px; }

  /* white app-style tab bar — iPhone app feel */
  .mono-tabbar{ background:rgba(255,255,255,.94); backdrop-filter:saturate(1.4) blur(14px); -webkit-backdrop-filter:saturate(1.4) blur(14px);
    box-shadow:0 -8px 26px rgba(8,68,108,.16); border-top:1px solid rgba(8,68,108,.07); }
  .mono-tabbar::before{ opacity:.3; }
  .mono-tab{ color:var(--w-nickel-dk); padding:8px 4px 7px; position:relative; }
  .mono-tab .ti{ width:46px; height:32px; border-radius:13px; transition:background .2s, transform .12s; }
  .mono-tab .ti svg{ width:24px; height:24px; }
  .mono-tab .tl{ font-size:10px; letter-spacing:.01em; text-transform:none; font-weight:600; margin-top:2px; }
  .mono-tab.on{ color:var(--w-navy); }
  /* active tab: icon sits in a soft navy app-tile that lights up */
  .mono-tab.on .ti{ background:linear-gradient(150deg,rgba(13,81,126,.16),rgba(8,68,108,.12)); box-shadow:inset 0 0 0 1px rgba(8,68,108,.10); }
  .mono-tab.on .ti::after{ display:none; }
  .mono-tab:active{ color:var(--w-navy); }
  .mono-tab:active .ti{ transform:scale(.9); }
  .mono-tab .tl{ transition:color .15s; }
  /* saved-count badge on the heart tab */
  .mono-tab-badge{ position:absolute; top:2px; right:8px; min-width:16px; height:16px; padding:0 4px;
    border-radius:9px; background:#e0533f; color:#fff; font:800 10px/1 var(--w-sans);
    display:none; align-items:center; justify-content:center; box-shadow:0 2px 6px rgba(193,68,47,.5);
    border:1.5px solid #fff; }

  /* kill the prototype ribbon on mobile (it blocked the tab bar) */
  .proto{ display:none !important; }
}

/* ============================================================
   MOBILE refine — compress events + carriage-house sections
   ============================================================ */
@media(max-width:768px){
  /* events: a swipeable row instead of a tall 4-up stack */
  .mono-events{ padding:52px 0; }
  .mono-events .wrap{ padding:0 20px; }
  .mono-ev-head{ margin-bottom:0; }
  .mono-events h2{ font-size:clamp(24px,7vw,34px); }
  .mono-ev-grid{ display:grid; grid-auto-flow:column; grid-template-columns:none;
    grid-auto-columns:80%; overflow-x:auto; scroll-snap-type:x mandatory; gap:14px;
    margin-top:26px; padding-bottom:8px; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
  .mono-ev-grid::-webkit-scrollbar{ display:none; }
  .mono-ev-card{ scroll-snap-align:start; }
  .mono-ev-card p{ display:none; }

  /* carriage house: compact — smaller cards, tighter, stacked upper */
  .mono-strip{ }
  .carr-head{ margin-bottom:20px; }
  .carr-head p{ font-size:14px; line-height:1.55; }
  .carr-opts{ gap:12px; margin-bottom:16px; }
  .carr-card{ border-radius:10px; }
  .carr-num{ width:26px; height:26px; font-size:13px; top:10px; left:10px; }
  .carr-body{ padding:14px 14px 16px !important; }
  .carr-tag{ margin:6px 0 0; }
  .carr-upper{ grid-template-columns:1fr; gap:16px; padding:20px; margin-bottom:16px; }
  .carr-upper .carr-img img{ aspect-ratio:16/10; }
  .cta-line{ font-size:14px; }
}

/* ============================================================
   Agent strip — premium (real photo avatar, availability dot)
   ============================================================ */
@media(max-width:1079.98px){
  .mono-agentbar{ padding:8px 14px; }
  .mono-agentbar .ab-who{ gap:12px; }
  .mono-agentbar .ab-ic{ position:relative; width:44px; height:44px; border-radius:50%; overflow:visible;
    background:none; box-shadow:none; }
  .mono-agentbar .ab-ic img{ width:44px; height:44px; border-radius:50%; object-fit:cover; object-position:center top;
    box-shadow:0 0 0 2px rgba(255,255,255,.92), 0 4px 10px rgba(0,0,0,.32); }
  .mono-agentbar .ab-ic:not(.has-photo){ background:rgba(255,255,255,.13); display:flex; align-items:center; justify-content:center;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.2); }
  .mono-agentbar .ab-ic:not(.has-photo) svg{ width:22px; height:22px; color:#fff; }
  .mono-agentbar .ab-ic .dot{ position:absolute; right:1px; bottom:1px; width:11px; height:11px; border-radius:50%;
    background:#37d67a; box-shadow:0 0 0 2px #08375a; }
  .mono-agentbar .ab-txt b{ font-size:14.5px; letter-spacing:-.01em; }
  .mono-agentbar .ab-txt span{ font-size:11px; letter-spacing:.02em; }
  .mono-agentbar .ab-call{ padding:12px 20px; letter-spacing:.06em; box-shadow:0 5px 15px rgba(0,0,0,.26); }
  .mono-agentbar .ab-call:active{ transform:scale(.97); }
  /* tab bar polish */
  .mono-tab{ transition:color .15s, transform .1s; }
  .mono-tab:active{ transform:scale(.94); }
}

/* ============================================================
   3D FLOOR-PLAN EXPLORER (zoom / pan / quadrant jump)
   ============================================================ */
.fpplan-open.mono-zoomable{ position:relative; }
.fpplan-open.mono-zoomable img{ transition:filter .2s; }
.mono-zoom-hint{ position:absolute; right:16px; bottom:16px; z-index:4; display:inline-flex; align-items:center; gap:8px;
  border:none; cursor:pointer; font-family:var(--w-sans); font-weight:800; font-size:12px; letter-spacing:.03em;
  color:#fff; background:linear-gradient(140deg,#0d517e,#06334f); padding:11px 16px; border-radius:999px;
  box-shadow:0 10px 26px -6px rgba(8,68,108,.6); }
.mono-zoom-hint svg{ width:16px; height:16px; }
.mono-zoom-hint:hover{ transform:translateY(-2px); }
.mono-zoom-ov{ position:fixed; inset:0; z-index:4000; background:rgba(6,28,44,.94); backdrop-filter:blur(6px);
  display:flex; flex-direction:column; opacity:0; visibility:hidden; transition:opacity .22s; }
.mono-zoom-ov.show{ opacity:1; visibility:visible; }
.mono-zoom-bar{ flex:none; display:flex; align-items:center; justify-content:space-between; gap:14px; padding:14px 18px;
  color:#fff; border-bottom:1px solid rgba(255,255,255,.12); }
.mono-zoom-bar .zt{ font-family:var(--w-disp); font-weight:700; font-size:15px; letter-spacing:-.01em;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.mono-zoom-bar .zctl{ display:flex; gap:8px; flex:none; }
.mono-zoom-bar .zctl button{ min-width:42px; height:42px; padding:0 12px; border-radius:12px; border:1px solid rgba(255,255,255,.22);
  background:rgba(255,255,255,.08); color:#fff; font:800 18px/1 var(--w-sans); cursor:pointer; transition:background .15s; }
.mono-zoom-bar .zctl button[data-z="fit"]{ font-size:13px; letter-spacing:.05em; text-transform:uppercase; }
.mono-zoom-bar .zctl button:hover{ background:rgba(255,255,255,.2); }
.mono-zoom-stage{ flex:1; overflow:hidden; display:flex; align-items:center; justify-content:center; touch-action:none; cursor:grab; }
.mono-zoom-stage.grab{ cursor:grabbing; }
.mono-zoom-img{ max-width:100%; max-height:100%; object-fit:contain; transform-origin:center center;
  transition:transform .08s linear; user-select:none; -webkit-user-drag:none; will-change:transform; }
.mono-zoom-quad{ flex:none; display:flex; gap:8px; justify-content:center; flex-wrap:wrap; padding:12px 14px calc(12px + env(safe-area-inset-bottom,0px)); }
.mono-zoom-quad button{ border:1px solid rgba(255,255,255,.24); background:rgba(255,255,255,.08); color:#eaf3fa;
  font:800 11px/1 var(--w-sans); letter-spacing:.06em; text-transform:uppercase; padding:11px 15px; border-radius:999px; cursor:pointer; transition:.15s; }
.mono-zoom-quad button:hover{ background:#fff; color:var(--w-navy); }
@media(max-width:640px){
  .mono-zoom-bar .zt{ font-size:13px; }
  .mono-zoom-quad button{ padding:10px 12px; font-size:10px; }
  .mono-zoom-hint span{ display:none; }
  .mono-zoom-hint{ padding:12px; }
}

/* ---- events: more of a real events-calendar feel ---- */
.mono-events{ position:relative; }
.mono-ev-card{ border-radius:14px; border:1px solid rgba(8,68,108,.08); box-shadow:0 12px 30px -16px rgba(8,68,108,.34); overflow:hidden; }
.mono-ev-card::before{ height:4px; }
.mono-ev-date{ position:relative; width:60px; height:64px; border-radius:10px; padding-top:12px; overflow:hidden;
  box-shadow:0 8px 16px -6px rgba(8,68,108,.5); }
.mono-ev-date::before{ content:''; position:absolute; top:0; left:0; right:0; height:15px; background:linear-gradient(120deg,#c0392b,#e0533f); }
.mono-ev-date::after{ content:''; position:absolute; top:4px; left:50%; transform:translateX(-50%); width:26px; height:3px; border-radius:2px; background:rgba(255,255,255,.55); }
.mono-ev-date .mo{ position:relative; z-index:1; color:#fff; margin-top:3px; }
.mono-ev-date .dy{ font-size:26px; }
.mono-ev-kick{ display:inline-flex; align-items:center; gap:8px; }
.mono-ev-kick::before{ content:''; width:7px; height:7px; border-radius:50%; background:#e0533f; box-shadow:0 0 0 3px rgba(224,83,63,.18); }

/* ---- next community nav (community pages) ---- */
.mono-nextcomm{ background:var(--w-paper); padding:56px 0 60px; }
.mono-nc-head{ text-align:center; margin-bottom:30px; }
.mono-nc-head .k{ font:800 11px/1 var(--w-sans); letter-spacing:.18em; text-transform:uppercase; color:var(--w-nickel-dk); }
.mono-nc-head h2{ font-family:var(--w-disp); font-weight:700; font-size:clamp(26px,3vw,38px); color:var(--w-navy); letter-spacing:-.02em; margin-top:10px; }
.mono-nc-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; max-width:820px; margin:0 auto; }
.mono-nc-card{ display:flex; flex-direction:column; text-decoration:none; border-radius:16px; overflow:hidden;
  background:linear-gradient(150deg,#0a4a75,#06334f); color:#fff; position:relative;
  box-shadow:0 14px 36px -18px rgba(4,32,52,.6); transition:transform .2s, box-shadow .2s; }
.mono-nc-card:hover{ transform:translateY(-3px); box-shadow:0 22px 50px -18px rgba(4,32,52,.78); }
.mono-nc-card:active{ transform:translateY(-1px); }
.mono-nc-img{ position:relative; overflow:hidden; background:#06334f; }
.mono-nc-img img{ width:100%; height:auto; display:block; }   /* full drone+logo image, no crop */
.mono-nc-img::after{ content:''; position:absolute; inset:0; background:linear-gradient(180deg,rgba(4,32,52,.05) 40%,rgba(4,32,52,.35) 100%); pointer-events:none; }
.mono-nc-row{ align-items:start; }
.mono-nc-dir{ position:absolute; top:11px; left:11px; z-index:2; background:rgba(6,40,63,.72); backdrop-filter:blur(5px);
  color:#fff; font:800 9.5px/1 var(--w-sans); letter-spacing:.1em; text-transform:uppercase; padding:6px 11px; border-radius:999px; box-shadow:0 4px 12px rgba(4,32,52,.3); }
.mono-nc-card.next .mono-nc-dir{ left:auto; right:11px; }
.mono-nc-cap{ display:flex; align-items:center; justify-content:space-between; gap:10px; padding:12px 15px 14px; }
.mono-nc-cap .ct{ font-size:12px; color:#a9c3d4; }
.mono-nc-cap .go{ font:800 12.5px/1 var(--w-sans); color:#fff; display:inline-flex; align-items:center; gap:6px; white-space:nowrap; }
.mono-nc-cap .go em{ font-style:normal; color:#bfe0f4; transition:transform .2s; }
.mono-nc-card:hover .go em{ transform:translateX(3px); }
@media(max-width:560px){ .mono-nc-row{ grid-template-columns:1fr; } }

/* ---- prev/next PLAN nav (plan pages) ---- */
.mono-nextplan{ background:var(--w-paper2); padding:46px 0 50px; }
.mono-np-head{ text-align:center; margin-bottom:22px; }
.mono-np-head .k{ font:800 11px/1 var(--w-sans); letter-spacing:.18em; text-transform:uppercase; color:var(--w-nickel-dk); }
.mono-np-head h2{ font-family:var(--w-disp); font-weight:700; font-size:clamp(24px,3vw,34px); color:var(--w-navy); letter-spacing:-.02em; margin-top:9px; }
.mono-np-row{ display:grid; grid-template-columns:1fr 1fr; gap:14px; max-width:760px; margin:0 auto; }
.mono-np-card{ display:flex; flex-direction:column; text-decoration:none; border-radius:16px; overflow:hidden; background:#fff; box-shadow:0 10px 28px -14px rgba(8,68,108,.4); transition:transform .2s, box-shadow .2s; }
.mono-np-card:hover{ transform:translateY(-3px); box-shadow:0 20px 44px -16px rgba(8,68,108,.5); }
.mono-np-card:active{ transform:translateY(-1px); }
.mono-np-img{ position:relative; aspect-ratio:16/10; overflow:hidden; background:var(--w-paper2); }
.mono-np-img img{ width:100%; height:100%; object-fit:cover; display:block; }
.mono-np-cap{ padding:12px 15px 14px; }
.mono-np-card.next{ text-align:right; }
.mono-np-cap .dir{ display:block; font:800 9.5px/1 var(--w-sans); letter-spacing:.12em; text-transform:uppercase; color:var(--w-nickel-dk); margin-bottom:5px; }
.mono-np-cap .nm{ font-family:var(--w-disp); font-weight:700; font-size:19px; color:var(--w-navy); letter-spacing:-.01em; }
.mono-np-all{ display:block; text-align:center; margin:22px auto 0; font:800 12.5px/1 var(--w-sans); letter-spacing:.04em; text-transform:uppercase; color:var(--w-navy); text-decoration:none; }
.mono-np-all:hover{ text-decoration:underline; }
@media(max-width:560px){ .mono-nextplan{ padding:36px 0 40px; } .mono-np-row{ gap:10px; } .mono-np-cap{ padding:11px 12px 13px; } .mono-np-cap .nm{ font-size:16px; } }

/* ---- Ask-us-anything box (concierge, all pages) ---- */
.mono-ask-sub{ font-size:12px; color:var(--w-muted); line-height:1.45; margin:-2px 0 11px; }
.mono-ask-row{ display:flex; gap:8px; }
.mono-ask-input{ flex:1; min-width:0; border:1.5px solid var(--w-line); border-radius:10px; padding:12px 13px;
  font-family:var(--w-sans); font-size:14px; color:var(--w-body); background:#fff; transition:border-color .18s, box-shadow .18s; }
.mono-ask-input:focus{ outline:none; border-color:var(--w-navy); box-shadow:0 0 0 3px rgba(8,68,108,.12); }
.mono-ask-send{ flex:none; width:44px; height:44px; border:none; cursor:pointer; border-radius:10px;
  background:var(--w-navy); color:#fff; display:flex; align-items:center; justify-content:center; transition:background .18s; }
.mono-ask-send:hover{ background:var(--w-navy-deep,#06334f); }
.mono-ask-send svg{ width:18px; height:18px; }
.mono-ask-row + .mono-qa-chips{ margin-top:11px; }

/* fix: 'Pick up where you left off' — card kicker was light-grey on white (unreadable); eyebrow readable on navy */
.mono-recent .mono-rc-txt .k{ color:var(--w-navy) !important; opacity:.7; }
.mono-recent .mono-rc-kick{ color:var(--w-nickel-dk) !important; }
.mono-rc-thumb{ object-position:center 60%; }
