/* ==========================================================================
   Sunday Showings — design system
   Palette: deep navy ink + warm brass accent on a warm-white canvas.
   Type: Fraunces (display/serif) for headlines, Inter for UI/body.
   ========================================================================== */

:root{
  /* Color */
  --ink:            #0f1c2e;   /* primary text / headline */
  --ink-soft:       #33465c;   /* secondary text */
  --muted:          #6b7a8d;   /* tertiary text / labels */
  --navy:           #12233d;   /* brand navy */
  --navy-2:         #1c3358;   /* brand navy, lighter step */
  --brass:          #b8863a;   /* accent — CTAs, highlights */
  --brass-dark:     #96692a;
  --brass-tint:     #f7ede0;
  --paper:          #fbfaf7;   /* page background, warm off-white */
  --surface:        #ffffff;   /* card/panel background */
  --surface-alt:    #f4f2ec;   /* subtle alt panel */
  --line:           #e4e1d8;   /* hairline borders on warm paper */
  --line-cool:      #dde3ea;   /* hairline borders on white/cool panels */
  --success:        #1b6a46;
  --success-tint:   #eef7f1;
  --warn:           #8a5a10;
  --warn-tint:      #fbf1de;
  --error:          #a3291c;
  --error-tint:     #fbeceb;

  /* Type */
  --font-display: "Fraunces", "Iowan Old Style", "Georgia", serif;
  --font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;

  /* Scale */
  --max: 1240px;
  --radius-sm: 6px;
  --radius: 12px;
  --radius-lg: 20px;
  --shadow-sm: 0 1px 2px rgba(15,28,46,.06);
  --shadow: 0 10px 30px -12px rgba(15,28,46,.18);
  --shadow-lg: 0 24px 60px -20px rgba(15,28,46,.28);
  --ease: cubic-bezier(.4,0,.2,1);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--ink);
  background:var(--paper);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
h1,h2,h3{font-family:var(--font-display);color:var(--ink);letter-spacing:-.01em;font-weight:600}
p{margin:0 0 1em}
a{color:var(--navy);text-decoration:none}
img{max-width:100%;display:block}
button{font-family:inherit}

.wrap{width:min(calc(100% - 40px),var(--max));margin:auto}
.narrow{max-width:860px}

::selection{background:var(--brass-tint);color:var(--navy)}

/* ---- Header / nav ---------------------------------------------------- */
.site-header{
  border-bottom:1px solid var(--line-cool);
  background:#ffffff;
  position:sticky;top:0;z-index:30;
}
.nav{padding:2px 0;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand-logo-new{height:30px;width:auto;display:block;margin:13px 0}
/* Both brands side by side: Sunday Showings | DFWopenhouses.com */
.brand-dual{gap:14px}
.brand-divider{flex:none;width:1px;height:30px;background:var(--line-cool)}
.brand-logo-dfw{height:34px;width:auto;display:block}
.nav nav{display:flex;align-items:center;gap:28px}
.nav nav a:not(.button){
  font-size:14px;font-weight:600;color:var(--ink-soft);
  position:relative;padding:4px 0;
}
.nav nav a:not(.button)::after{
  content:"";position:absolute;left:0;right:100%;bottom:-2px;height:2px;
  background:var(--brass);transition:right .25s var(--ease);
}
.nav nav a:not(.button):hover{color:var(--ink)}
.nav nav a:not(.button):hover::after{right:0}

.brand{display:flex;align-items:center;gap:11px;font-family:var(--font-display);font-size:21px;font-weight:600;color:var(--ink)}
.brand-logo{height:52px;width:auto;display:block}
.brand-logo-h{height:88px;width:auto;display:block}

.sr-only{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0;
}

/* Mobile header extras - hidden on desktop, shown under 640px.
   !important guards against .button's own display:inline-flex (same
   specificity, declared later in this file) silently winning the tie. */
.mobile-menu-toggle{display:none !important}
.mobile-icon-nav{display:none !important}
/* Phones only: "Talk to a Realtor" stays in the top bar next to the menu. */
.nav-realtor-pill{display:none}
@media(max-width:640px){
  .nav-realtor-pill{display:inline-flex;align-items:center;height:36px;padding:0 14px;margin-left:auto;border:1.5px solid var(--navy);border-radius:999px;color:var(--navy);font-weight:700;font-size:13.5px;white-space:nowrap}
  .nav-realtor-pill + .mobile-menu-toggle{margin-left:14px !important}
}
/* .mobile-menu-panel is controlled by the `hidden` attribute alone (see
   app.js) - deliberately no `display` rule here, so nothing can ever
   override [hidden]'s UA-level display:none like .mobile-icon-nav once did. */
@media(min-width:641px){ .mobile-menu-panel{display:none !important} }
.mobile-menu-panel .menu-extra{display:none}

/* ---- Collapsed header (hamburger) on in-between widths -------------------
   Between phone width (640px) and the point where the header links would
   wrap onto two lines, show the hamburger instead of the crammed row. That
   point depends on how long the menu is: logged out (~1065px), buyer logged
   in (~1170px), realtor logged in (~1230px) with both logos showing - measured, plus a small margin.
   Sideways phones (short + not very wide) always get the hamburger.
   Phones (<=640px) and full desktop widths are unaffected. */
@media (min-width:641px) and (max-width:1080px){
  .site-header[data-auth=guest] #site-nav{display:none}
  .site-header[data-auth=guest] .mobile-menu-toggle{display:inline-flex !important}
  .site-header[data-auth=guest] .mobile-menu-panel:not([hidden]){display:block !important}
  .site-header[data-auth=guest] .mobile-menu-panel .menu-extra{display:block}
}
@media (min-width:641px) and (max-width:1185px){
  .site-header[data-auth=buyer] #site-nav{display:none}
  .site-header[data-auth=buyer] .mobile-menu-toggle{display:inline-flex !important}
  .site-header[data-auth=buyer] .mobile-menu-panel:not([hidden]){display:block !important}
  .site-header[data-auth=buyer] .mobile-menu-panel .menu-extra{display:block}
}
@media (min-width:641px) and (max-width:1245px){
  .site-header[data-auth=realtor] #site-nav{display:none}
  .site-header[data-auth=realtor] .mobile-menu-toggle{display:inline-flex !important}
  .site-header[data-auth=realtor] .mobile-menu-panel:not([hidden]){display:block !important}
  .site-header[data-auth=realtor] .mobile-menu-panel .menu-extra{display:block}
}
@media (min-width:641px) and (max-width:1100px) and (max-height:500px) and (orientation:landscape){
  .site-header #site-nav{display:none}
  .site-header .mobile-menu-toggle{display:inline-flex !important}
  .site-header .mobile-menu-panel:not([hidden]){display:block !important}
  .site-header .mobile-menu-panel .menu-extra{display:block}
}
/* Look of the hamburger + its menu on those widths (same as on phones). */
@media (min-width:641px){
  .site-header .mobile-menu-toggle{
    align-items:center;justify-content:center;width:auto;height:auto;border:none;border-radius:0;
    background:none;color:var(--navy);cursor:pointer;padding:4px;margin-left:auto;
  }
  .site-header .mobile-menu-toggle svg{width:28px;height:28px}
  .mobile-menu-panel{border-bottom:1px solid var(--line);background:#fff}
  .mobile-menu-panel a,.mobile-menu-panel form button{
    display:block;width:100%;text-align:left;padding:14px 20px;font:inherit;font-weight:600;font-size:14.5px;
    color:var(--ink);border:0;border-top:1px solid var(--line);background:#fff;cursor:pointer;
  }
  .mobile-menu-panel a:hover,.mobile-menu-panel form button:hover{background:#f7f5f0}
  .mobile-menu-panel form{margin:0}
}

/* ---- Buttons ----------------------------------------------------------- */
.button{
  display:inline-flex;justify-content:center;align-items:center;gap:8px;
  border:1px solid transparent;border-radius:999px;
  background:var(--navy);color:#fff;
  padding:13px 22px;font-weight:600;font-size:14.5px;
  cursor:pointer;transition:transform .18s var(--ease),filter .18s var(--ease),background .18s var(--ease);
}
.button:hover{filter:brightness(1.12);transform:translateY(-1px)}
.button:active{transform:translateY(0)}
.button.small{padding:9px 15px;font-size:13px}
.button.big{font-size:16px;padding:16px 28px}
.button.secondary{background:transparent;color:var(--navy);border-color:var(--navy-2)}
.button.secondary:hover{background:var(--navy);color:#fff}
.button.light{background:rgba(255,255,255,.14);color:#fff;border-color:rgba(255,255,255,.4);backdrop-filter:blur(4px)}
.button.light:hover{background:#fff;color:var(--navy)}

.tour-count{
  display:inline-grid;place-items:center;background:var(--brass);color:#fff;
  border-radius:999px;min-width:20px;height:20px;font-size:11px;font-weight:700;margin-left:2px;
}

/* ---- Agent / sponsor strip --------------------------------------------- */
.agent-strip{background:var(--navy);color:#fff;background-image:linear-gradient(120deg,var(--navy),var(--navy-2))}
.agent-strip-inner{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:13px 0}
.agent-strip-inner>div{display:flex;align-items:center;gap:11px;flex-wrap:wrap}
.agent-strip-inner .button{white-space:nowrap;flex:0 0 auto}

/* Homepage only: the sponsor strip becomes an inset, rounded "bubble" with
   clear space below the hero, instead of the full-bleed bar used elsewhere. */
body[data-page="home"] .agent-strip{
  width:min(calc(100% - 40px),var(--max));margin:-70px auto 0;
  position:relative;z-index:3;
  border-radius:16px;box-shadow:0 24px 48px -20px rgba(15,28,46,.4);
}
body[data-page="home"] .agent-strip-inner{padding:18px 26px}
.sponsored-label{font-size:10px;text-transform:uppercase;letter-spacing:.12em;opacity:.65;font-weight:700}
.agent-name{font-size:13px;opacity:.85}

/* ---- Ad slots — deliberately quiet, clearly labeled -------------------- */
/* Full-bleed bar (like .agent-strip): the outer .ad-slot spans edge to
   edge with no side margins and sits flush against whatever's above it
   (the header, or the agent-strip); .ad-slot-inner is the usual .wrap
   width so the label/creative itself still lines up with the rest of the
   page's content. */
.ad-slot{
  margin:0;min-height:44px;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  text-align:center;background:var(--surface-alt);
}
.ad-slot-inner{
  padding:10px 0;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
}
.ad-slot a{display:inline-flex;flex-direction:column;align-items:center;text-align:center}
.ad-slot .ad-label{
  display:block;text-transform:uppercase;font-size:9px;letter-spacing:.14em;
  color:var(--muted);margin-bottom:4px;font-weight:700;
}
.ad-slot a{color:var(--ink-soft)}

/* The page's first section normally opens with generous top padding
   (.section{padding:64px 0}), which reads as a big empty gap right under
   a full-bleed ad banner. Tighten it to a small gap in that one case -
   the ad slot and <main> are true siblings in layouts/app.blade.php
   (flash/error banners may sit between them, but ~ still matches). */
.ad-slot ~ main > .section:first-child{padding-top:24px}
.ad-slot img{max-width:100%;height:auto;margin:0 auto;border-radius:4px}

/* When the ad slot is nested inside a .wrap.section (e.g. under the
   "Upcoming open houses" heading) instead of sitting as a full-width
   sibling, break it out to full viewport width and give it clearance
   above the cards grid below it. */
.section > .ad-slot{
  width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);
  margin-top:0;margin-bottom:24px;
}

/* ---- Hero (photo) --------------------------------------------------------*/
.hero{position:relative;overflow:hidden;min-height:760px;background:#12233d;color:#fff}
.hero-photo-bg{
  position:absolute;inset:0;
  background-image:url('/images/hero-photo.jpg');
  background-size:cover;background-position:center 50%;
}
.hero-photo-overlay{
  position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(10,14,20,.26) 0%, rgba(10,14,20,.14) 40%, rgba(10,14,20,.32) 100%);
}
.hero-photo-fade{
  position:absolute;left:0;right:0;bottom:0;height:140px;
  background:linear-gradient(180deg, rgba(18,35,61,0) 0%, var(--paper) 92%);
}
.hero-photo-inner{
  position:absolute;inset:0;left:50%;transform:translateX(-50%);
  width:min(calc(100% - 40px),var(--max));
}
.eyebrow{text-transform:uppercase;letter-spacing:.16em;color:var(--brass);font-size:12px;font-weight:700}
.section h1{font-size:clamp(32px,4.4vw,46px);line-height:1.08;margin:.2em 0}
.section .lead{font-size:18px;color:var(--ink-soft)}
.actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:30px}
.mobile-only-cta{display:none}

.hero-glass-card{
  position:absolute;left:0;top:60px;z-index:2;
  max-width:600px;padding:40px;
  background:rgba(15,25,45,.42);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border:1px solid rgba(255,255,255,.16);border-radius:20px;
}
.hero-glass-card .eyebrow{color:#e6c98a;display:block}
.hero-glass-card h1{font-size:clamp(30px,4vw,48px);line-height:1.08;margin:.32em 0 .26em;color:#fff;font-weight:600;max-width:15ch}
.hero-glass-card .lead{font-size:17.5px;color:rgba(255,255,255,.85);max-width:46ch;line-height:1.6}
.hero-glass-card .actions{margin-top:0}
.hero-glass-card .button{background:#e6c98a;color:#12233d;border-radius:8px;padding:15px 26px;font-size:14.5px;font-weight:700}
.hero-glass-card .button:hover{background:#f0d9a4}
.hero-glass-card .button.mobile-only-cta{background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.4)}

/* ---- AI search bar ("Describe your dream home") -------------------------
   Thin, square-cornered bar with a square gold button; the magnifier +
   sparkle icon marks it as AI-powered. .on-light is the variant used on the
   white search page. The input is given width:1px (and flex:1 grows it) so
   the bar never stretches the hero card wider than its text. */
.ai-search{margin-top:28px;display:flex;align-items:center;gap:8px;background:#fff;border-radius:6px;padding:4px 4px 4px 16px;box-shadow:0 14px 32px -16px rgba(0,0,0,.55)}
.ai-search input[type=text]{flex:1;min-width:0;width:1px;border:none;outline:none;background:transparent;font:500 15.5px var(--font-body, Inter),system-ui,sans-serif;color:#12233d;padding:9px 0}
.ai-search input[type=text]::placeholder{color:#6b7584}
.ai-search input[type=text]:focus{box-shadow:none;margin:0}
.ai-search input[type=text]{margin:0}
.ai-search button{flex:0 0 auto;display:inline-flex;align-items:center;gap:7px;border:none;cursor:pointer;background:#e6c98a;color:#12233d;font:700 15px var(--font-body, Inter),system-ui,sans-serif;padding:9px 14px 9px 16px;border-radius:4px;transition:background .2s}
.ai-search button:hover{background:#f0d9a4}
.ai-search:focus-within{box-shadow:0 0 0 3px rgba(230,201,138,.55),0 14px 32px -16px rgba(0,0,0,.55)}
.ai-search-hint{margin:10px 2px 0;font-size:13px;color:rgba(255,255,255,.78);line-height:1.45}
.ai-search.on-light{margin-top:0;border:1px solid var(--line-cool);box-shadow:0 8px 22px -16px rgba(15,28,46,.35)}
.ai-search.on-light:focus-within{box-shadow:0 0 0 3px rgba(230,201,138,.45)}

/* Search page: refine bar + "Results for ..." chips */
.ai-refine{margin:18px 0 22px;max-width:760px}
.ai-understood{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px}
.ai-understood-label{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:var(--ink);margin-right:4px}
.ai-understood-label svg{color:#b8862f}
.ai-chip{display:inline-flex;align-items:center;gap:7px;padding:6px 10px 6px 12px;border-radius:999px;background:var(--brass-tint, #f6ecd6);color:var(--navy);font-size:13px;font-weight:600;text-decoration:none;border:1px solid rgba(184,134,47,.25)}
.ai-chip span{font-size:15px;line-height:1;opacity:.6}
.ai-chip:hover span{opacity:1}
.ai-clear{font-size:13px;font-weight:600;color:var(--muted);margin-left:4px}
.style-note{margin:-10px 0 20px;font-size:14px;color:var(--ink-soft)}
.style-note strong{color:var(--ink)}

.hero-how-it-works{
  position:absolute;z-index:2;right:0;top:40px;width:290px;padding:22px;
  background:#fff;border-radius:16px;box-shadow:0 24px 50px -18px rgba(15,28,46,.35);
}
.hero-how-it-works strong{font-family:var(--font-display);font-size:15px;color:#12233d;display:block;margin-bottom:12px}
.hero-how-it-works ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.hero-how-it-works li{display:flex;gap:10px;align-items:flex-start;margin:0;font-size:12.5px;line-height:1.35;color:#40474f}
.hero-how-it-works li span{
  flex:none;width:20px;height:20px;border-radius:50%;background:#b8863a;color:#fff;
  font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center;
}

.hero-tour-pill{
  position:absolute;z-index:2;right:76.5px;top:314px;
  display:inline-flex;align-items:center;gap:14px;text-decoration:none;
  background:#eccb8c;color:#12233d;
  padding:10px 10px 10px 22px;border-radius:999px;
  box-shadow:0 16px 34px -16px rgba(0,0,0,.4);
  font-family:var(--font-display);font-weight:700;font-size:16.5px;line-height:1.2;
  transition:transform .18s var(--ease),box-shadow .18s var(--ease);
}
.hero-tour-pill:hover{transform:translateY(-2px);box-shadow:0 20px 40px -16px rgba(0,0,0,.45)}
.hero-tour-pill .pill-icon{flex:none}
.hero-tour-pill .pill-arrow{
  flex:none;width:44px;height:44px;border-radius:50%;background:#12233d;
  display:flex;align-items:center;justify-content:center;
}

.hero-doodle-arrow{position:absolute;z-index:1;right:282.5px;top:324px;pointer-events:none} /* z-index 1: tucks behind the hero text box (z-index 2) where they overlap */
.hero-doodle-note{
  position:absolute;z-index:2;right:76.5px;top:395px;max-width:280px;text-align:right;
  font-family:'Caveat','Segoe Script',cursive;font-weight:700;font-size:30px;color:#fff;margin:0;
  text-shadow:0 2px 10px rgba(0,0,0,.35);line-height:1.08;transform:rotate(-3deg);
}

/* The pill, arrow and note are shifted left as one group (spacing between
   them unchanged) so the pill's left edge lines up with the "How it works"
   box. On narrower desktops that would push the arrow into the hero card,
   so there they keep their original right-aligned spots. */
@media(min-width:961px) and (max-width:1160px){
  .hero-tour-pill,.hero-doodle-note{right:0}
  .hero-doodle-arrow{right:206px}
}

.how-it-works{padding-top:0}
.how-it-works .hero-card{max-width:560px;margin:0 auto}

.hero-card,.cta-box,.success-box{
  background:var(--surface);color:var(--ink);
  border:1px solid var(--line-cool);border-radius:var(--radius-lg);
  padding:28px;box-shadow:var(--shadow-lg);
}
.hero-card strong{font-family:var(--font-display);font-size:18px;font-weight:600;display:block;margin-bottom:14px}
.hero-card ol{margin:0;padding-left:20px;color:var(--ink-soft)}
.hero-card li{margin:13px 0;font-size:14.5px}
.hero-card li::marker{color:var(--brass);font-weight:700}

/* ---- Sections / listing cards ------------------------------------------ */
.section{padding:64px 0}
.section-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:28px;gap:20px}
.section-head a{font-weight:600;font-size:14px;color:var(--navy)}
.section h2{margin:.15em 0;font-size:clamp(24px,3vw,32px)}

.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}

.results-divider{
  grid-column:1/-1;display:flex;align-items:center;gap:14px;
  margin:8px 0 -2px;color:var(--brass-dark);font-weight:700;font-size:13px;
  text-transform:uppercase;letter-spacing:.08em;
}
.results-divider::before,.results-divider::after{content:"";flex:1;height:1px;background:var(--line)}

.listing-card{
  border:1px solid var(--line-cool);border-radius:var(--radius);
  overflow:hidden;background:var(--surface);
  transition:transform .22s var(--ease),box-shadow .22s var(--ease),border-color .22s var(--ease);
}
.listing-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:transparent}

.photo-placeholder{
  aspect-ratio:4/3;display:grid;place-items:center;
  color:rgba(255,255,255,.85);font-weight:600;font-size:13px;letter-spacing:.02em;
  background:
    linear-gradient(140deg,rgba(15,28,46,.15),rgba(15,28,46,.45)),
    linear-gradient(135deg,var(--navy-2),var(--navy));
}
.photo-placeholder.large{aspect-ratio:16/11;border-radius:var(--radius-lg)}

.listing-photo{aspect-ratio:4/3;overflow:hidden;background:var(--navy)}
.listing-photo img{width:100%;height:100%;object-fit:cover;display:block}
.listing-photo.large{aspect-ratio:16/11;border-radius:var(--radius-lg)}
.listing-photo-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:8px}
.listing-photo-strip img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:8px}

.listing-body{padding:18px}
.price{font-family:var(--font-display);font-size:23px;font-weight:600}
.facts{margin-top:6px;color:var(--ink-soft);font-size:14px}
.address{margin-top:3px;color:var(--muted);font-size:14px}
.open-time{
  margin-top:10px;color:var(--success);font-weight:700;font-size:13px;
  display:inline-flex;align-items:center;gap:6px;background:var(--success-tint);
  padding:5px 10px;border-radius:999px;
}
.card-actions{display:flex;align-items:center;justify-content:space-between;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.card-actions form{margin:0}
.card-actions > a{font-weight:600;font-size:14px}
.link-button{border:0;background:none;color:var(--navy);padding:0;font:inherit;font-weight:600;font-size:14px;cursor:pointer}
.add-to-tour-btn.is-added{color:#1a7f4f}
.add-to-tour-btn.is-added.button{background:#1a7f4f;border-color:#1a7f4f;color:#fff}
.add-to-tour-btn.is-added.button:hover{background:#156b42;border-color:#156b42;color:#fff}
.add-to-tour-btn[data-busy],[data-remove-listing][data-busy]{opacity:.6;cursor:default}
.link-button:hover{color:var(--brass-dark)}
.link-button.danger{color:var(--error)}

/* Floating "back to top" + "Optimize Route" buttons on the search / Build My
   Tour page - web + mobile. Both are hidden until JS (initFloatingActions in
   app.js) shows them after the page has scrolled; Optimize Route additionally
   only appears once there's at least one home in the tour. Optimize Route
   sits closest to the bottom edge (the primary action, easiest thumb reach),
   with Back to Top stacked above it. */
.floating-btn{
  position:fixed;right:28px;z-index:40;border:none;cursor:pointer;
  box-shadow:0 8px 20px -6px rgba(24,35,56,.4);
  opacity:0;pointer-events:none;transform:translateY(8px);
  transition:opacity .18s ease,transform .18s ease,bottom .18s ease;
}
.floating-btn.is-visible{opacity:1;pointer-events:auto;transform:translateY(0)}
.floating-btn-top{
  /* Alone, Back to Top sits in the bottom-most slot; once Optimize Route
     also shows (.is-stacked) it hops up to make room below it. */
  bottom:28px;width:46px;height:46px;border-radius:999px;
  background:#fff;border:1px solid #e2ddcb;color:var(--navy);
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 6px 16px -4px rgba(24,35,56,.28);
}
.floating-btn-top.is-stacked{bottom:92px}
.floating-btn-route{
  bottom:28px;display:flex;align-items:center;gap:9px;
  background:var(--navy);color:#fff;border-radius:999px;
  padding:13px 22px 13px 18px;font-size:15px;font-weight:700;
}
.floating-btn-route svg{color:#f0b323}
@media(max-width:640px){
  .floating-btn{right:16px}
  .floating-btn-top{bottom:22px;width:42px;height:42px}
  .floating-btn-top svg{width:18px;height:18px}
  .floating-btn-top.is-stacked{bottom:74px}
  .floating-btn-route{bottom:22px;padding:11px 18px 11px 15px;font-size:13.5px;gap:7px}
  .floating-btn-route svg{width:17px;height:17px}
}

/* ---- Forms / filters ----------------------------------------------------*/
.form-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:16px;align-items:end;
  background:var(--surface-alt);border:1px solid var(--line);border-radius:var(--radius);padding:22px;
}
.form-grid .wide{grid-column:1/-1}
.form-grid>*{min-width:0}
.form-grid input{max-width:100%}
.form-grid label{overflow:hidden}
input[type=date]{-webkit-appearance:none;appearance:none}

.chip-check-group{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.chip-check{
  position:relative;display:inline-flex;align-items:center;gap:7px;
  border:1px solid var(--line-cool);border-radius:999px;
  padding:8px 14px 8px 12px;font-size:13px;font-weight:600;color:var(--ink-soft);
  text-transform:none;letter-spacing:0;cursor:pointer;background:var(--surface);
  transition:background .15s var(--ease),border-color .15s var(--ease),color .15s var(--ease);
}
.chip-check input{width:auto;margin:0}
.chip-check:has(input:checked){background:var(--navy);border-color:var(--navy);color:#fff}

/* ---- Search filters (Find/Build page) -----------------------------------*/
.search-filters{
  background:var(--surface-alt);border:1px solid var(--line);border-radius:var(--radius);
  padding:24px 24px 22px;
}
.filter-row{display:flex;flex-wrap:wrap;align-items:end;gap:14px}
.filter-field{display:flex;flex-direction:column;gap:6px;font-size:12.5px;font-weight:600;color:var(--ink-soft)}
.filter-field input{
  padding:9px 10px;border:1px solid var(--line-cool);border-radius:8px;
  font-size:14px;color:var(--ink);background:#fff;
}
.filter-field.field-date input{width:148px}
.filter-field.field-price input{width:108px}
.filter-field.field-num input{width:62px}

.interest-toggle{
  display:inline-flex;align-items:center;gap:7px;
  background:transparent;color:var(--navy-2);border:1.5px solid var(--navy-2);border-radius:999px;
  padding:9.5px 18px 9.5px 16px;font-size:13.5px;font-weight:700;cursor:pointer;
  transition:background .15s var(--ease),color .15s var(--ease),box-shadow .15s var(--ease);
}
.interest-toggle svg{flex-shrink:0}
.interest-toggle:hover{background:rgba(28,51,88,.06)}
.interest-toggle.is-active{
  background:var(--navy-2);color:#e6c98a;border-color:var(--navy-2);
  box-shadow:0 6px 16px -6px rgba(18,35,61,.55);
}
.interest-toggle.is-active:hover{filter:brightness(1.08)}

.filter-divider{height:1px;background:var(--line);margin:22px 0}

.filter-search-group{display:flex;flex-direction:column;gap:8px;margin-bottom:24px}
.filter-search-group:last-of-type{margin-bottom:4px}
.filter-search-group>label{font-size:12.5px;font-weight:600;color:var(--ink-soft)}
.filter-search-group .hint{color:var(--muted);font-weight:500}

.search-submit{margin-top:22px}

/* ---- Multiselect combobox (cities, school districts) ---------------------*/
.multiselect{position:relative;max-width:420px}
.multiselect-chips{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:8px}
.multiselect-chips:empty{display:none}
.chip-tag{
  display:inline-flex;align-items:center;gap:6px;background:var(--navy);color:#fff;
  font-size:13px;font-weight:600;padding:6px 8px 6px 12px;border-radius:999px;
  border:0;cursor:pointer;line-height:1.3;
}
.chip-tag:hover{background:var(--navy-2)}
.chip-tag .chip-x{opacity:.7;font-size:15px;line-height:1}

.multiselect-input-wrap{position:relative}
.multiselect-input-wrap svg.search-icon{
  position:absolute;left:14px;top:50%;transform:translateY(-50%);pointer-events:none;color:#9aa5b1;
}
.multiselect-input{
  width:100%;padding:11px 14px 11px 38px;border:1px solid var(--line-cool);border-radius:10px;
  font-size:14px;color:var(--ink);background:#fff;
}
.multiselect-input:focus{outline:none;border-color:var(--navy-2)}
.multiselect.is-open .multiselect-input{border-color:var(--navy-2)}

.multiselect-dropdown{
  position:absolute;top:calc(100% + 6px);left:0;right:0;max-height:280px;overflow-y:auto;
  background:#fff;border:1px solid var(--line-cool);border-radius:10px;
  box-shadow:0 16px 36px -14px rgba(15,28,46,.3);padding:6px;z-index:8;
}
.multiselect-option{
  padding:9px 12px;border-radius:7px;font-size:14px;color:var(--ink);cursor:pointer;
  display:flex;align-items:center;justify-content:space-between;gap:8px;
}
.multiselect-option:hover,.multiselect-option.is-highlighted{background:var(--surface-alt)}
.multiselect-option mark{background:none;color:var(--navy);font-weight:700;padding:0}
.multiselect-empty{padding:8px 12px 4px;font-size:12px;color:var(--muted)}
.multiselect-count{padding:8px 12px 4px;font-size:12px;color:var(--muted)}

.tour-panel{
  border:1px solid var(--line-cool);border-radius:var(--radius);background:var(--surface-alt);
  padding:26px;margin:20px 0 32px;
}
.tour-panel .section-head{margin-bottom:2px}

.build-intro{
  border-radius:var(--radius);margin:18px 0 30px;padding:26px 28px;
  background:var(--navy-2);
  background-image:radial-gradient(520px 320px at 90% -20%,rgba(184,134,58,.28),transparent 60%);
  color:#fff;
}
.build-intro .eyebrow{color:#e6c98a}
.build-intro h2{font-family:var(--font-display);font-weight:600;font-size:24px;margin:.3em 0 .6em;color:#fff}
.build-intro ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.build-intro li{display:flex;align-items:flex-start;gap:14px;font-size:14.5px;color:rgba(255,255,255,.85);line-height:1.5}
.build-intro li strong{color:#e6c98a;font-weight:700}
.build-intro .step-num{
  flex-shrink:0;display:flex;align-items:center;justify-content:center;
  width:26px;height:26px;border-radius:50%;background:#e6c98a;color:var(--navy);
  font-weight:700;font-size:13px;font-family:var(--font-body);
}
@media(max-width:640px){
  .build-intro{padding:20px}
  .build-intro h2{font-size:20px}
}
label{font-weight:600;font-size:12.5px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.03em}
input,select,textarea{
  width:100%;margin-top:7px;border:1px solid #cdd4dc;border-radius:var(--radius-sm);
  padding:12px 13px;font:inherit;font-size:15px;background:var(--surface);color:var(--ink);
  transition:border-color .15s var(--ease),box-shadow .15s var(--ease);
}
input:focus,select:focus,textarea:focus{
  outline:none;border-color:var(--navy-2);box-shadow:0 0 0 3px rgba(28,51,88,.12);
}
.results-bar{margin:30px 0 22px;color:var(--ink-soft);font-size:15px;scroll-margin-top:96px}
.results-bar strong{color:var(--ink);font-family:var(--font-display);font-size:17px}

.pagination{display:flex;align-items:center;justify-content:center;gap:18px;margin:40px 0 10px}
.pagination .page-link{
  font-weight:600;font-size:14px;color:var(--navy);
  border:1px solid var(--line-cool);border-radius:999px;padding:10px 18px;
  transition:background .15s var(--ease),color .15s var(--ease);
}
.pagination a.page-link:hover{background:var(--navy);color:#fff;border-color:var(--navy)}
.pagination .page-link.disabled{color:var(--muted);opacity:.5;cursor:default}
.pagination .page-status{color:var(--muted);font-size:13px}

.empty,.warning,.error,.flash{border-radius:var(--radius-sm);padding:16px 18px;margin:18px 0;font-size:14.5px;text-align:center}
.empty{background:var(--surface-alt);border:1px solid var(--line);color:var(--ink-soft)}
.empty h3{margin:0 0 8px;font-family:var(--font-display)}
.warning{background:var(--warn-tint);border:1px solid #ecd6a4;color:var(--warn)}
.error{background:var(--error-tint);border:1px solid #eabab3;color:var(--error)}
.flash{background:var(--success-tint);border:1px solid #b9dcc4;color:var(--success)}

/* ---- Listing detail -------------------------------------------------- */
.detail-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:44px}
.open-house-box{
  padding:14px 16px;border:1px solid var(--line-cool);border-left:4px solid var(--success);
  background:var(--success-tint);border-radius:var(--radius-sm);margin:10px 0;font-weight:600;color:var(--ink);
}

/* ---- Tour builder ------------------------------------------------------ */
.tour-form{margin-top:24px}
.tour-selection{border-top:1px solid var(--line);margin:14px 0 28px}
.tour-select-row{
  display:grid;grid-template-columns:1fr auto auto;gap:20px;align-items:center;
  padding:18px 4px;border-bottom:1px solid var(--line);
}
.tour-select-row strong{font-weight:600}
.tour-select-row span{display:block;color:var(--muted);font-size:13px;margin-top:2px}
.must-see{display:flex;align-items:center;gap:8px;font-weight:600;font-size:13px;text-transform:none;letter-spacing:0;color:var(--ink-soft)}
.must-see input,.consent input{width:auto;margin:0}

/* ---- Tour result --------------------------------------------------------*/
.route-summary,.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:28px 0}
.route-summary>div,.stats>div{
  border:1px solid var(--line-cool);border-radius:var(--radius);padding:18px;background:var(--surface);
}
.route-summary strong,.stats strong{display:block;font-family:var(--font-display);font-size:27px;font-weight:600}
.route-summary span,.stats span{display:block;color:var(--muted);font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;margin-top:4px}

.timeline{margin:30px 0}
.timeline-stop{display:grid;grid-template-columns:40px 1fr;gap:18px;padding:0 0 28px;position:relative}
.sequence{
  width:36px;height:36px;border-radius:50%;background:var(--navy);color:#fff;
  display:grid;place-items:center;font-weight:700;font-size:14px;
}
.timeline-stop::after{content:"";position:absolute;left:17px;top:40px;bottom:2px;width:2px;background:var(--line-cool)}
.timeline-stop:last-child::after{display:none}
.timeline-stop h3{margin:2px 0;font-size:18px}
.timeline-stop p{margin:4px 0;color:var(--ink-soft)}
.drive-note{color:var(--muted);font-size:12.5px;text-transform:uppercase;letter-spacing:.04em;font-weight:600}
.pill{display:inline-block;background:var(--brass-tint);color:var(--brass-dark);padding:4px 10px;border-radius:999px;font-size:11px;font-weight:700;margin-left:8px}

/* ---- Lead / agent-help forms -------------------------------------------*/
.sponsor-card{
  border:1px solid var(--line-cool);border-radius:var(--radius);padding:18px;margin:22px 0;
  display:flex;gap:10px;flex-direction:column;background:var(--surface-alt);
}
.lead-form{display:grid;gap:16px}
.consent{display:flex;align-items:flex-start;gap:10px;font-weight:400;text-transform:none;letter-spacing:0;font-size:14px;color:var(--ink-soft)}

/* ---- Footer -------------------------------------------------------------*/
.site-footer{border-top:1px solid var(--line);padding:48px 0 0;margin-top:64px;color:var(--muted);font-size:13.5px;background:var(--surface-alt)}
.footer-grid{display:grid;grid-template-columns:1.3fr .9fr .9fr 1.3fr;gap:36px;padding-bottom:32px}
.footer-legal{display:flex;gap:16px;margin-top:14px}
.footer-legal a{font-size:13px;color:var(--ink-soft)}
@media(max-width:960px){.footer-grid{grid-template-columns:1fr 1fr}}
.footer-brand .brand{font-size:17px;margin-bottom:10px}
.footer-brand .brand-logo{height:68px}
.footer-brand .footer-logo{height:42px;width:auto;display:block}
.footer-brand p{max-width:32ch;color:var(--muted)}
.footer-links{display:flex;flex-direction:column;gap:10px}
.footer-links a{color:var(--ink-soft);font-weight:500}
.footer-links a:hover{color:var(--navy)}
.footer-links p{color:var(--muted);margin:0}
.footer-heading{
  text-transform:uppercase;letter-spacing:.08em;font-size:11px;font-weight:700;
  color:var(--ink);margin-bottom:2px;
}
.footer-bottom{border-top:1px solid var(--line);padding:18px 0;font-size:12.5px}
@media(max-width:640px){.footer-grid{grid-template-columns:1fr;gap:26px}}

/* ---- Admin --------------------------------------------------------------*/
.admin-tag{
  font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;
  color:var(--brass-dark);background:var(--brass-tint);padding:3px 8px;border-radius:999px;margin-left:6px;
  font-family:var(--font-body);
}
.admin-auth-body{
  margin:0;min-height:100vh;display:grid;place-items:center;background:var(--navy);
  background-image:radial-gradient(760px 420px at 15% 0%, rgba(184,134,58,.22), transparent 60%),
    linear-gradient(165deg,var(--navy),var(--navy-2) 70%);
  font-family:var(--font-body);padding:20px;
}
.admin-auth-card{
  width:min(100%,380px);background:var(--surface);border-radius:var(--radius-lg);
  padding:36px 32px;box-shadow:var(--shadow-lg);text-align:left;
}
.admin-auth-card h1{font-size:24px;margin:.4em 0 .15em}
.admin-auth-card .lead{font-size:14.5px;color:var(--muted);margin-bottom:20px}
.admin-auth-card .lead-form{margin-top:4px}

.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px}
.table-wrap{overflow:auto;border:1px solid var(--line-cool);border-radius:var(--radius);background:var(--surface)}
table{border-collapse:collapse;width:100%}
th,td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--line-cool);font-size:13.5px}
th{color:var(--muted);text-transform:uppercase;font-size:11px;letter-spacing:.05em;background:var(--surface-alt)}
tr:last-child td{border-bottom:0}
.table-empty{color:var(--muted);text-align:center;padding:24px 14px}
.stats>div strong{color:var(--navy)}
.status-pill{
  display:inline-block;padding:3px 10px;border-radius:999px;font-size:11.5px;font-weight:700;
  text-transform:capitalize;background:var(--surface-alt);color:var(--ink-soft);
}
.status-new{background:var(--brass-tint);color:var(--brass-dark)}
.status-contacted{background:#e7eef8;color:var(--navy-2)}
.status-closed{background:var(--success-tint);color:var(--success)}

/* ---- Responsive -----------------------------------------------------------*/
@media(max-width:960px){
  .cards{grid-template-columns:repeat(2,1fr)}
  .detail-grid,.admin-grid{grid-template-columns:1fr}
  .route-summary,.stats{grid-template-columns:repeat(2,1fr)}
  .hero-tour-pill,.hero-doodle-arrow,.hero-doodle-note,.hero-how-it-works{display:none}
  .hero{min-height:0}
  .hero-photo-fade{display:none}
  .hero-photo-inner{position:relative;inset:auto;left:auto;transform:none;width:100%;padding:0 0 30px}
  .hero-glass-card{position:relative;left:auto;top:auto;margin:30px 16px 0;max-width:none;padding:26px 22px}
  .how-it-works .hero-card{margin-top:8px}
  body[data-page="home"] .agent-strip{width:auto;margin:0;border-radius:0;box-shadow:none}
}
@media(min-width:961px){
  .mobile-only-how-it-works{display:none}
}
@media(max-width:640px){
  .nav{padding:2px 0}
  #site-nav{display:none}
  .brand-logo-new{height:27px;margin:13px 0}
  .hero-glass-card{background:rgba(15,25,45,.36)}
  .hero-photo-bg{background-position:70% 50%}
  .ai-search{padding:4px 4px 4px 13px}
  .ai-search input[type=text]{font-size:15px}
  .ai-search button{padding:9px 11px}
  .ai-search-label{display:none}
  .ai-search-hint{font-size:12.5px}
  .hero-glass-card .actions{margin-top:16px}
  .mobile-menu-toggle{
    display:inline-flex !important;align-items:center;justify-content:center;
    width:auto;height:auto;border:none;border-radius:0;
    background:none;color:var(--navy);cursor:pointer;padding:0;margin-left:auto;
  }
  .mobile-menu-toggle svg{width:28px;height:28px}
  .mobile-menu-panel{border-bottom:1px solid var(--line)}
  .mobile-menu-panel a{
    display:block;padding:14px 20px;font-weight:600;font-size:14.5px;
    color:var(--ink);border-top:1px solid var(--line);background:#fff;
  }
  .mobile-menu-panel a:first-child{border-top:1px solid var(--line)}
  .mobile-icon-nav{
    display:grid !important;grid-template-columns:repeat(3,1fr);
    background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  }
  .mobile-icon-link{
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
    padding:15px 4px;color:var(--navy);font-size:13px;font-weight:700;
    border-right:1px solid var(--line);text-align:center;background:#fff;
  }
  .mobile-icon-link:last-child{border-right:none}
  .mobile-icon-link svg{color:var(--navy);width:24px;height:24px}

  /* The sticky header is taller on mobile (nav row + icon-nav row), so
     #results needs more clearance here than on desktop or the pagination
     jump would land partly under it. */
  .results-bar{scroll-margin-top:150px}

  /* "Build My Tour" mobile tab: same flat white shape as Find/Log In (no
     special background), just a gold route icon. On the home page only, a
     little file-folder tab hangs off the bottom-left corner with a
     handwritten gold "Ready?" note (see .build-tab-note, rendered only on
     the home route) - mobile only, see the @media wrapper this block lives in. */
  .build-tab{position:relative}
  .build-tab .route-accent{color:#f0b323;width:24px;height:24px}
  .build-tab-note{
    position:absolute;left:6px;bottom:-13px;background:#f0b323;color:#fff;
    font-family:'Caveat',cursive;font-weight:700;font-size:16px;line-height:1;
    padding:3px 8px 5px 7px;border-radius:0 0 5px 5px;
    box-shadow:0 4px 5px -2px rgba(24,35,56,.16);
    white-space:nowrap;z-index:2;
  }
  .agent-strip{display:none}
  .mobile-only-cta{display:inline-flex}
  .agent-strip-inner{align-items:flex-start;flex-direction:column}
  .cards{grid-template-columns:1fr}
  .form-grid{grid-template-columns:1fr}
  .search-filters{padding:18px 16px}
  .filter-row{gap:10px}
  .filter-field.field-date input,.filter-field.field-price input{width:100%}
  .filter-row .filter-field{flex:1 1 130px}
  .filter-row .filter-field.field-num{flex:0 0 62px}
  .interest-toggle{width:100%;justify-content:center;order:99}
  .multiselect{max-width:none}
  .tour-select-row{grid-template-columns:1fr auto}
  .tour-select-row .danger{grid-column:2}
  .route-summary,.stats{grid-template-columns:1fr 1fr}
  .section{padding:40px 0}
  .admin-grid{gap:20px}
}

.legal-page h2{font-size:20px;margin:1.6em 0 .5em}
.legal-page p{line-height:1.7;color:var(--ink-soft);margin:.6em 0}
.legal-page ul{margin:.6em 0 .6em 1.2em;padding:0;color:var(--ink-soft);line-height:1.7}
.legal-page li{margin:.4em 0}
.legal-page a{color:var(--navy);text-decoration:underline}

/* ---- Accounts / saved tours --------------------------------------------*/
.nav-logout{display:inline-flex;align-items:center}
.auth-switch{margin-top:18px;font-size:15px;color:var(--ink-soft)}
.account-tour-card{
  border:1px solid var(--line-cool);border-radius:var(--radius);
  padding:22px 24px;margin-bottom:18px;background:var(--surface);
}
.account-tour-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:16px}
.account-tour-head h2{margin:0;font-size:19px}
.account-tour-head p{margin:4px 0 0;color:var(--ink-soft);font-size:14px}
.notes-form{display:grid;gap:10px;margin-top:6px}
.notes-form textarea{margin-top:0}
.cta-box .notes-form{margin-top:14px}
.cta-box form{margin:0}

.maps-hint{color:var(--muted);font-size:13px;margin-top:14px;margin-bottom:8px}

.start-address-field{display:block}
.location-toggle{
  display:inline-block;margin-top:8px;background:none;border:0;padding:0;
  font:600 13.5px/1.4 var(--font-body);color:var(--navy);cursor:pointer;text-decoration:underline;
}
.location-toggle:hover{color:var(--brass-dark)}
.location-toggle:disabled{color:var(--muted);cursor:default;text-decoration:none}
.location-status{display:block;margin-top:6px;font-size:12.5px;color:var(--ink-soft)}
.location-status.is-error{color:var(--error)}

/* Realtor referral program */
.realtor-pitch-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;margin:24px 0}
.realtor-pitch-card{background:#f6f7fb;border-radius:14px;padding:20px}
.realtor-pitch-card h3{margin:0 0 8px}
.realtor-pitch-card p{margin:0;color:#5b6474}

.realtor-banner{display:flex;align-items:center;gap:14px;background:#0f2039;color:#fff;border-radius:14px;padding:16px 20px;margin:20px 0}
.realtor-avatar{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:#c9a25a;color:#0f2039;font-weight:700;font-size:18px;flex-shrink:0;overflow:hidden}
.realtor-avatar img{width:100%;height:100%;object-fit:cover;display:block}
.realtor-banner-label{margin:0 0 2px;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#c8d2e0}
.realtor-brokerage{color:#c8d2e0;font-weight:400}

.realtor-link-card{background:#f6f7fb;border-radius:14px;padding:24px;margin:24px 0}
.referral-url-row{display:flex;gap:10px;margin-top:10px}
.referral-url-row input{flex:1;padding:10px 12px;border:1px solid #d8dce6;border-radius:8px;font-size:14px}
.realtor-code-hint{margin-top:10px;color:#5b6474}

.realtor-materials-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;margin:24px 0}
.realtor-material-card{background:#f6f7fb;border-radius:14px;padding:20px;text-align:center}
.realtor-material-card img{border-radius:8px;margin:12px auto;max-width:100%;height:auto}
.realtor-material-card p{color:#5b6474;margin:0 0 12px}

/* ---- Realtor "Make my banner" page -------------------------------------- */
.banner-back{display:inline-block;font-size:14px;font-weight:600;color:var(--navy);margin-bottom:18px}
.banner-maker .lead{max-width:64ch;color:var(--ink-soft)}
.banner-maker-grid{display:grid;grid-template-columns:340px 1fr;gap:36px;align-items:start;margin-top:28px}
.banner-fields{display:flex;flex-direction:column;gap:14px}
.banner-fields label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600;color:var(--ink)}
.banner-fields input[type=text],.banner-fields input[type=tel],.banner-fields input[type=email]{font:inherit;font-weight:500;font-size:15px;padding:11px 12px;border:1px solid var(--line-cool);border-radius:8px;background:#fff;color:var(--ink)}
.banner-fields input:focus{outline:2px solid rgba(230,201,138,.8);outline-offset:1px}
.banner-format{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:6px}
.banner-format label{flex-direction:row;align-items:flex-start;gap:8px;padding:12px;border:1px solid var(--line-cool);border-radius:10px;background:#fff;cursor:pointer;font-weight:500;font-size:13px;line-height:1.35;text-transform:none;letter-spacing:normal;color:var(--ink)}
.banner-format label:has(input:checked){border-color:var(--navy);box-shadow:0 0 0 1px var(--navy)}
.banner-format input{width:auto;margin:2px 0 0;padding:0;border:none;box-shadow:none;flex:0 0 auto;accent-color:var(--navy)}
.banner-format small{color:var(--muted);font-size:12px}
.banner-note{font-size:13px;color:var(--muted);line-height:1.5;margin:4px 0}
.banner-note a{color:var(--navy);font-weight:600}
.banner-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:4px}
.banner-preview{position:sticky;top:110px;background:#eef1f5;border-radius:16px;padding:22px}
.banner-preview canvas{display:block;width:100%;height:auto;border-radius:6px;box-shadow:0 18px 40px -22px rgba(15,28,46,.45);background:#fff}
.banner-preview.is-tall canvas{max-width:460px;margin:0 auto}
.banner-loading{color:var(--muted);font-size:14px;margin:0}
/* Open house flyer editor (reuses the banner-maker layout above) */
.flyer-preview canvas{max-width:560px;margin:0 auto}
.banner-fields textarea{font:inherit;font-weight:500;font-size:15px;padding:11px 12px;border:1px solid var(--line-cool);border-radius:8px;background:#fff;color:var(--ink);resize:vertical;line-height:1.45}
.banner-fields input[type=search]{font:inherit;font-weight:500;font-size:15px;padding:11px 12px;border:1px solid var(--line-cool);border-radius:8px;background:#fff;color:var(--ink)}
.flyer-listing-picker{display:flex;flex-direction:column;gap:6px}
.flyer-listing-picker > label{font-size:13px;font-weight:600;color:var(--ink)}
.flyer-results{list-style:none;margin:0;padding:0;max-height:260px;overflow:auto;border:1px solid var(--line-cool);border-radius:8px;background:#fff}
.flyer-results:empty{display:none}
.flyer-results li + li{border-top:1px solid var(--line)}
.flyer-results button{display:flex;flex-direction:column;gap:2px;width:100%;text-align:left;padding:10px 12px;background:none;border:0;cursor:pointer;font:inherit}
.flyer-results button:hover,.flyer-results button:focus{background:#f7f5f0;outline:none}
.flyer-results strong{font-size:14px;color:var(--ink);text-transform:none;letter-spacing:normal}
.flyer-results span{font-size:12.5px;color:var(--muted);font-weight:500}
.flyer-empty{padding:10px 12px;font-size:13px;color:var(--muted)}
.flyer-selected{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 12px;border:1px solid var(--navy);border-radius:8px;background:#fff;font-size:14px;font-weight:600;color:var(--ink)}
.flyer-selected button{background:none;border:0;color:var(--navy);font:inherit;font-size:13px;font-weight:700;cursor:pointer;text-decoration:underline}
.banner-fields .flyer-check{flex-direction:row;align-items:center;gap:8px;text-transform:none;letter-spacing:normal;font-weight:500;font-size:14px}
.banner-fields .flyer-check input{width:auto;margin:0;accent-color:var(--navy)}
@media(max-width:900px){
  .banner-maker-grid{grid-template-columns:1fr}
  .banner-preview{position:static;order:-1;padding:14px}
}

.realtor-settings-card{background:#f6f7fb;border-radius:14px;padding:24px;margin:24px 0}
.checkbox-line{display:flex;align-items:center;gap:8px;font-weight:500}
.checkbox-line input{width:auto}
.hint{font-weight:400;color:#8a92a3;font-size:13px;text-transform:none;letter-spacing:0}

.phone-input-group{display:flex;align-items:center;gap:8px;margin-top:4px}
.phone-prefix{font-weight:600;color:var(--ink-soft)}
.phone-input-group input{margin-top:0;flex:1}

.checkbox-line.small{font-size:12.5px;font-weight:400;color:var(--ink-soft)}

/* Realtor dashboard header: avatar + hover-to-edit overlay, next to "Welcome, ..." */
.realtor-header-row{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-bottom:4px}
.realtor-header-row h1{margin:0}
.realtor-avatar-edit{
  position:relative;width:88px;height:88px;border-radius:50%;flex-shrink:0;
  padding:0;border:1px solid var(--line-cool);background:#c9a25a;cursor:pointer;
  overflow:hidden;
}
.realtor-avatar-edit-photo{
  width:100%;height:100%;display:flex;align-items:center;justify-content:center;
  color:#0f2039;font-weight:700;font-size:30px;
}
.realtor-avatar-edit-photo img{width:100%;height:100%;object-fit:cover;display:block}
.realtor-avatar-edit-overlay{
  position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
  background:rgba(15,32,57,.62);color:#fff;font-size:11px;font-weight:600;
  opacity:0;transition:opacity .15s ease;
}
.realtor-avatar-edit:hover .realtor-avatar-edit-overlay,
.realtor-avatar-edit:focus-visible .realtor-avatar-edit-overlay{opacity:1}
@media (hover:none){
  /* No hover on touch devices - show the overlay hint at low opacity always so
     realtors on mobile still know the photo is tappable. */
  .realtor-avatar-edit-overlay{opacity:.85}
}

/* Photo editor modal: drag-to-reposition + zoom crop.
   Without this rule, the class's own "display:flex" below (an author style)
   overrides the browser's built-in [hidden]{display:none} default, so the
   modal would show up open on every page load no matter what the `hidden`
   attribute says. The extra [hidden] in the selector gives this higher
   specificity than the plain class rule, so it always wins while hidden
   is set, regardless of source order. */
.photo-editor-overlay[hidden]{display:none}
.photo-editor-overlay{
  position:fixed;inset:0;z-index:1000;background:rgba(10,18,32,.72);
  display:flex;align-items:center;justify-content:center;padding:16px;
}
.photo-editor-box{
  background:#fff;border-radius:16px;padding:24px;width:100%;max-width:380px;
  text-align:center;max-height:calc(100vh - 32px);overflow-y:auto;
}
.photo-editor-box h2{margin:0 0 16px;font-size:19px}
.photo-editor-frame{
  position:relative;width:260px;height:260px;max-width:100%;aspect-ratio:1/1;
  margin:0 auto;border-radius:50%;overflow:hidden;background:#e8ebf2;
  touch-action:none;cursor:grab;border:1px solid var(--line-cool);
}
.photo-editor-frame:active{cursor:grabbing}
.photo-editor-frame img{position:absolute;left:0;top:0;max-width:none;user-select:none;-webkit-user-drag:none}
.photo-editor-zoom{display:flex;align-items:center;gap:10px;margin:16px auto 0;max-width:260px;color:var(--ink-soft)}
.photo-editor-zoom input[type="range"]{flex:1;margin-top:0}
.photo-editor-hint{color:#8a92a3;font-size:13px;margin:10px 0 0}
.photo-editor-actions{display:flex;flex-direction:column;gap:8px;margin-top:18px}
.photo-editor-actions .button{width:100%}

.realtor-tour-details summary{cursor:pointer;list-style:none;margin-bottom:0}
.realtor-tour-details summary::-webkit-details-marker{display:none}
.realtor-tour-details[open] summary{margin-bottom:16px}
.realtor-tour-toggle{pointer-events:none}
.realtor-tour-stops{margin:8px 0 16px}
.tour-updated-badge{display:inline-block;vertical-align:middle;margin-left:10px;padding:2px 10px;border-radius:999px;background:#1e9e5a;color:#fff;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}

.itinerary-head-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.edit-tour-link{display:inline-flex;align-items:center;gap:6px;color:var(--ink-soft);font-size:13px;font-weight:600;text-decoration:none}
.edit-tour-link:hover{color:var(--ink)}
.edit-tour-link svg{flex-shrink:0}

/* MLS listing-brokerage credit (cards + listing page) */
.listing-courtesy{font-size:12px;color:var(--muted);margin-top:4px}
.detail-grid .listing-courtesy{font-size:13px;margin:6px 0 18px}

/* ---- Search page: When menu, sort, List/Map, phone Filters button -------- */
.city-lead{max-width:62ch;color:var(--ink-soft);margin:-4px 0 14px}
.filter-field.field-when select{min-width:170px}
.filter-field[hidden]{display:none !important}
.results-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.results-tools{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.sort-control{display:flex;align-items:center;gap:8px;text-transform:none;letter-spacing:normal;font-size:13px;font-weight:600;color:var(--muted)}
.sort-control select{margin:0;width:auto;padding:8px 32px 8px 12px;font-size:14px;font-weight:600;border-radius:999px}
.view-toggle{display:inline-flex;border:1px solid var(--line-cool);border-radius:999px;padding:3px;background:#fff}
.view-toggle button{border:0;background:none;font:inherit;font-size:14px;font-weight:700;color:var(--ink-soft);padding:7px 16px;border-radius:999px;cursor:pointer}
.view-toggle button.is-active{background:var(--navy);color:#fff}
.cards[hidden],.pagination[hidden],.results-map[hidden]{display:none !important}
.results-map{height:620px;border-radius:16px;overflow:hidden;border:1px solid var(--line-cool);margin-bottom:24px;background:#e9edf2}
.map-error{padding:24px;color:var(--muted)}
.map-pin{border:0;background:var(--navy);color:#fff;font:700 12.5px var(--font-body);padding:5px 9px;border-radius:999px;box-shadow:0 4px 10px -2px rgba(15,28,46,.4);cursor:pointer;white-space:nowrap}
.map-pin:hover,.map-pin:focus{background:var(--brass);outline:none}
.mapboxgl-popup-content{padding:0 !important;border-radius:12px !important;overflow:hidden;font-family:var(--font-body)}
.map-popup-photo{display:block;width:100%;height:120px;object-fit:cover}
.map-popup{display:flex;flex-direction:column;gap:3px;padding:12px 14px 14px;font-size:13px;color:var(--ink-soft)}
.map-popup strong{font-family:var(--font-display);font-size:18px;color:var(--ink)}
.map-popup em{font-style:normal;font-weight:600;color:var(--success, #1e7a4f)}
.map-popup a{margin-top:6px;font-weight:700;color:var(--navy)}
.map-cluster{display:grid;place-items:center;min-width:38px;height:38px;padding:0 6px;border-radius:999px;border:3px solid #fff;background:var(--navy);color:#fff;font:700 14px var(--font-body);box-shadow:0 0 0 3px rgba(184,134,58,.55),0 6px 14px -4px rgba(15,28,46,.5);cursor:pointer}
.map-cluster.is-md{min-width:46px;height:46px;font-size:15px}
.map-cluster.is-lg{min-width:56px;height:56px;font-size:16px}
.map-cluster:hover,.map-cluster:focus{background:var(--brass);outline:none}
.map-popup-list{gap:0;max-height:260px;overflow:auto}
.map-popup-list strong{font-size:16px;margin-bottom:4px}
.map-popup-list a{margin-top:0;padding:7px 0;border-top:1px solid var(--line-cool);font-weight:500;color:var(--ink-soft);text-decoration:none}
.map-popup-list a b{color:var(--navy)}
.map-popup-top{padding:10px 34px 10px 12px;background:#fff}
.map-popup-add{display:block;width:100%;border:0;border-radius:999px;background:var(--navy);color:#fff !important;font:700 13px var(--font-body);padding:8px 12px;cursor:pointer}
.map-popup-add:hover{background:#1f3558}
.map-popup-add.is-added{background:#1a7f4f}
.mapboxgl-popup-close-button{font-size:18px;padding:6px 9px !important;top:4px !important;color:var(--ink-soft)}
.map-pin.in-tour{background:#1a7f4f}
.map-pin.in-tour::before{content:"\2713\00a0"}
/* Starting point card on the search map (iOS-style frosted card) */
.map-start{position:absolute;top:12px;left:12px;right:56px;max-width:380px;z-index:4;padding:12px 14px;border-radius:16px;background:rgba(255,255,255,.86);-webkit-backdrop-filter:saturate(180%) blur(18px);backdrop-filter:saturate(180%) blur(18px);box-shadow:0 1px 1px rgba(0,0,0,.04),0 8px 28px -6px rgba(15,28,46,.28);font-family:var(--font-body);color:var(--ink)}
.map-start-title{margin:0 0 9px;font-size:14px;font-weight:700;letter-spacing:-.01em}
.map-start-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.map-start-actions button{display:flex;align-items:center;justify-content:center;gap:6px;min-height:38px;padding:0 10px;border:0;border-radius:11px;background:rgba(118,118,128,.12);color:#0a60d6;font:600 13.5px var(--font-body);cursor:pointer;white-space:nowrap}
.map-start-actions button:first-child{background:#0a7aff;color:#fff}
.map-start-actions button:hover{filter:brightness(.96)}
.map-start-error{margin:8px 0 0;font-size:12.5px;color:#c4312b}
.map-start.is-typing{padding:8px 8px 8px 12px}
.map-start-form{display:flex;align-items:center;gap:8px;color:#8a8a8e}
.map-start-form input{flex:1;min-width:0;height:36px;padding:0 10px;border:0;border-radius:10px;background:rgba(118,118,128,.12);font:500 15px var(--font-body);color:var(--ink);outline:none}
.map-start-form input:focus{box-shadow:0 0 0 2px rgba(10,122,255,.45)}
.map-start-form button{border:0;background:none;color:#0a7aff;font:600 14px var(--font-body);padding:6px 4px;cursor:pointer}
.map-start.is-typing .map-start-error{margin:6px 4px 2px}
.map-start.is-set,.map-start.is-busy{display:flex;align-items:center;gap:10px;padding:10px 12px}
.map-start-dot{flex:none;width:14px;height:14px;border-radius:50%;background:#0a7aff;border:3px solid #fff;box-shadow:0 0 0 1px rgba(0,0,0,.08),0 1px 4px rgba(0,0,0,.25)}
.map-start-text{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.25}
.map-start-text small{font-size:11.5px;font-weight:600;color:#8a8a8e;text-transform:uppercase;letter-spacing:.04em}
.map-start-text strong{font-size:14.5px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.map-start.is-set button{flex:none;border:0;border-radius:999px;background:rgba(118,118,128,.12);color:#0a60d6;font:600 13px var(--font-body);padding:7px 12px;cursor:pointer}
.map-start.is-busy{font-size:14px;color:#3c3c43}
.map-start-spinner{width:16px;height:16px;border-radius:50%;border:2px solid rgba(10,122,255,.25);border-top-color:#0a7aff;animation:mapStartSpin .8s linear infinite}
@keyframes mapStartSpin{to{transform:rotate(360deg)}}
.map-start-marker{width:20px;height:20px;border-radius:50%;background:#0a7aff;border:3.5px solid #fff;box-shadow:0 1px 5px rgba(0,0,0,.35);position:relative}
.map-start-marker::after{content:"";position:absolute;inset:-12px;border-radius:50%;background:rgba(10,122,255,.18);animation:mapStartPulse 2.2s ease-out infinite;z-index:-1}
@keyframes mapStartPulse{0%{transform:scale(.5);opacity:1}100%{transform:scale(1.35);opacity:0}}
@media (prefers-reduced-motion:reduce){.map-start-marker::after,.map-start-spinner{animation:none}}
@media (max-width:640px){.results-map .mapboxgl-ctrl-top-right{display:none}.map-start{right:12px;max-width:none}}
.tour-next{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin:12px 0 0;padding:10px 14px;border-radius:12px;background:#eaf5ef;color:#185c3b;font-size:14.5px}
.tour-next[hidden]{display:none}
.tour-next a{font-weight:700;color:var(--navy)}
.tour-toast{position:fixed;left:50%;bottom:22px;z-index:120;display:flex;align-items:center;gap:14px;max-width:calc(100vw - 32px);padding:12px 18px;border-radius:999px;background:var(--navy);color:#fff;font:600 14.5px var(--font-body);box-shadow:0 12px 30px -8px rgba(15,28,46,.55);transform:translate(-50%,24px);opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease}
.tour-toast.is-shown{opacity:1;transform:translate(-50%,0);pointer-events:auto}
.tour-toast a{color:#e6c98a;font-weight:700;white-space:nowrap;text-decoration:none}
@media (max-width:640px){.tour-toast{bottom:auto;top:12px;transform:translate(-50%,-24px);font-size:13.5px;padding:11px 16px;gap:10px;white-space:nowrap}.tour-toast.is-shown{transform:translate(-50%,0)}}
.empty{grid-column:1/-1;display:flex;flex-direction:column;gap:6px;padding:36px;border:1px dashed var(--line-cool);border-radius:14px;text-align:center;color:var(--ink-soft)}
.empty strong{color:var(--ink);font-size:16px}
.empty a{color:var(--navy);font-weight:700}
.filters-toggle{display:none}
@media(max-width:640px){
  .filters-toggle{
    display:flex;align-items:center;gap:8px;width:100%;margin:4px 0 12px;padding:13px 16px;
    border:1px solid var(--line-cool);border-radius:12px;background:#fff;font:inherit;font-weight:700;font-size:15px;color:var(--ink);cursor:pointer;
  }
  .filters-count{display:inline-grid;place-items:center;min-width:22px;height:22px;border-radius:999px;background:var(--navy);color:#fff;font-size:12px}
  .filters-summary{margin-left:auto;font-weight:600;font-size:13px;color:var(--muted)}
  .search-filters{display:none}
  .search-filters.is-open{display:block}
  .results-bar{align-items:flex-start}
  .results-map{height:460px}
}

/* Tour page: homes left out of the route */
.tour-skipped strong{display:block;margin-bottom:6px}
.tour-skipped ul{margin:0 0 8px;padding-left:18px}
.tour-skipped li{margin:3px 0}
.tour-skipped span{font-size:13px}

/* ---- Listing page: gallery, facts, actions, map ------------------------- */
.listing-page .banner-back{margin-bottom:14px}
button.listing-photo,.listing-photo-strip button{display:block;width:100%;padding:0;border:0;cursor:pointer;position:relative;background:var(--navy)}
.gallery-count{position:absolute;right:14px;bottom:14px;display:inline-flex;align-items:center;gap:6px;background:rgba(15,28,46,.78);color:#fff;font:700 13px var(--font-body);padding:7px 12px;border-radius:999px}
.listing-photo-strip button{border-radius:8px;overflow:hidden}
.listing-photo-strip button img{display:block}
.strip-more{position:absolute;inset:0;display:grid;place-items:center;background:rgba(15,28,46,.55);color:#fff;font:700 18px var(--font-body)}
.listing-map{display:block;margin-top:14px;border-radius:14px;overflow:hidden;border:1px solid var(--line-cool)}
.listing-map img{display:block;width:100%;height:auto}
.listing-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0 24px}
.listing-facts div{background:#fff;border:1px solid var(--line-cool);border-radius:12px;padding:12px 14px}
.listing-facts dt{font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.listing-facts dd{margin:4px 0 0;font-family:var(--font-display);font-size:19px;font-weight:600;color:var(--ink)}
.listing-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:18px}
.listing-secondary-actions{display:flex;gap:18px;margin:14px 0 6px}
.listing-secondary-actions a,.listing-secondary-actions button{display:inline-flex;align-items:center;gap:6px;background:none;border:0;padding:0;font:inherit;font-size:14px;font-weight:700;color:var(--navy);cursor:pointer}
.listing-secondary-actions a:hover,.listing-secondary-actions button:hover{color:var(--brass-dark)}
.listing-remarks{line-height:1.7;color:var(--ink-soft)}
.gallery{position:fixed;inset:0;z-index:1000;background:rgba(8,14,24,.94);display:flex;align-items:center;justify-content:center}
.gallery[hidden]{display:none}
.gallery-img{max-width:min(1200px,92vw);max-height:84vh;object-fit:contain;border-radius:6px;user-select:none}
.gallery-close,.gallery-prev,.gallery-next{position:absolute;border:0;background:rgba(255,255,255,.12);color:#fff;cursor:pointer;display:grid;place-items:center;border-radius:999px}
.gallery-close{top:18px;right:18px;width:46px;height:46px;font-size:30px;line-height:1}
.gallery-prev,.gallery-next{top:50%;transform:translateY(-50%);width:52px;height:52px;font-size:36px;line-height:1}
.gallery-prev{left:18px}.gallery-next{right:18px}
.gallery-close:hover,.gallery-prev:hover,.gallery-next:hover{background:rgba(255,255,255,.24)}
.gallery-counter{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);color:#fff;font:600 14px var(--font-body);background:rgba(255,255,255,.12);padding:6px 12px;border-radius:999px}
@media(max-width:640px){
  .listing-facts{grid-template-columns:repeat(2,1fr)}
  .gallery-prev,.gallery-next{width:42px;height:42px;font-size:28px}
  .gallery-prev{left:8px}.gallery-next{right:8px}
}

/* ---- Saved homes (hearts), saved searches ------------------------------- */
.card-media{position:relative}
.card-media > a{display:block}
.favorite-btn{
  position:absolute;top:10px;right:10px;width:40px;height:40px;border-radius:999px;border:0;
  display:grid;place-items:center;background:rgba(255,255,255,.92);color:var(--navy);cursor:pointer;
  box-shadow:0 4px 12px -4px rgba(15,28,46,.35);transition:transform .15s var(--ease),color .15s;
}
.favorite-btn svg{fill:none}
.favorite-btn:hover{transform:scale(1.08)}
.favorite-btn.is-saved{color:#c8433a}
.favorite-btn.is-saved svg{fill:currentColor}
.favorite-btn-big{position:static;width:auto;height:auto;display:inline-flex;align-items:center;gap:8px;padding:12px 18px;border:1px solid var(--navy-2);background:#fff;box-shadow:none;font:inherit;font-weight:700;font-size:14.5px}
.favorite-btn-big:hover{transform:none;background:#f7f5f0}
.save-search-btn{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border:1px solid var(--line-cool);border-radius:999px;background:#fff;font-size:14px;font-weight:700;color:var(--navy);text-decoration:none}
.save-search-btn:hover{border-color:var(--navy-2)}
.account-quick{display:grid;grid-template-columns:220px 1fr;gap:16px;margin:22px 0 30px}
.account-quick-card{background:#fff;border:1px solid var(--line-cool);border-radius:14px;padding:18px 20px;display:flex;flex-direction:column;gap:8px;color:var(--ink);text-decoration:none}
a.account-quick-card strong{font-family:var(--font-display);font-size:34px;line-height:1}
a.account-quick-card span{font-weight:700;color:var(--navy)}
.account-searches strong{font-size:15px}
.saved-search-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:8px 0;border-top:1px solid var(--line)}
.saved-search-row a{font-weight:700;color:var(--navy)}
.saved-search-row form{margin-left:auto}
.saved-search-meta{font-size:13px;color:var(--muted)}
@media(max-width:640px){.account-quick{grid-template-columns:1fr}}

/* ---- Admin ------------------------------------------------------------- */
.admin-logo{height:36px}
.admin-tag{margin-left:10px;font:700 11px var(--font-body);letter-spacing:.08em;text-transform:uppercase;background:var(--brass-tint);color:var(--brass-dark);padding:4px 8px;border-radius:6px}
.admin-nav{display:flex;align-items:center;gap:22px}
.admin-nav a{font-size:14px;font-weight:600;color:var(--ink-soft)}
.admin-nav a.is-active{color:var(--navy);text-decoration:underline;text-underline-offset:6px}
.admin-nav form{margin:0}
.admin-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:20px}
.admin-head .lead{max-width:70ch;font-size:15px}
.admin-row-actions{display:flex;gap:14px;align-items:center;white-space:nowrap}
.admin-row-actions form{margin:0}
.admin-row-actions a{font-weight:600;color:var(--navy)}
.muted{color:var(--muted);font-size:13px}
.admin-form{display:grid;grid-template-columns:1fr 1fr;gap:16px 20px;max-width:820px;margin-top:18px;background:#fff;border:1px solid var(--line-cool);border-radius:16px;padding:24px}
.admin-form .span-2{grid-column:1/-1}
.admin-form .hint{text-transform:none;letter-spacing:normal;font-weight:500;color:var(--muted)}
.admin-check{display:flex;align-items:center;gap:8px;text-transform:none;letter-spacing:normal;font-size:14px;color:var(--ink)}
.admin-check input{width:auto;margin:0}
@media(max-width:700px){.admin-form{grid-template-columns:1fr}.admin-head{flex-direction:column;align-items:flex-start}.admin-nav{gap:12px}}

/* ---- For Realtors: materials showcase ------------------------------------ */
.realtor-materials-showcase{display:grid;grid-template-columns:1fr 1.1fr;gap:40px;align-items:center;margin:56px 0 10px;padding:36px;border-radius:20px;background:#fff;border:1px solid var(--line-cool)}
.showcase-copy h2{margin:.2em 0 .5em}
.showcase-copy ul{margin:0 0 22px;padding-left:18px;color:var(--ink-soft);line-height:1.6}
.showcase-copy li{margin:8px 0}
.showcase-images{position:relative;min-height:380px}
.showcase-flyer{width:62%;height:auto;border-radius:10px;box-shadow:0 24px 50px -20px rgba(15,28,46,.45);display:block}
.showcase-banner{position:absolute;right:0;bottom:24px;width:78%;height:auto;border-radius:8px;box-shadow:0 18px 40px -16px rgba(15,28,46,.45)}
@media(max-width:860px){.realtor-materials-showcase{grid-template-columns:1fr;padding:22px}.showcase-images{min-height:0}.showcase-flyer{width:70%}.showcase-banner{width:88%;bottom:12px}}

@media (max-width:370px){.brand-logo-new{height:23px}.nav-realtor-pill{padding:0 11px;font-size:12.5px}}

/* ---- Admin: Activity report ---------------------------------------------*/
.activity-back{display:inline-block;margin-bottom:6px;font-weight:600;font-size:14px;color:var(--navy)}
.activity-type{display:inline-block;margin-left:4px;padding:1px 7px;border-radius:999px;font:700 10.5px var(--font-body);letter-spacing:.04em;text-transform:uppercase;vertical-align:1px}
.activity-type.is-buyer{background:#e7eefb;color:#2653a6}
.activity-type.is-realtor{background:var(--brass-tint, #f6ecd9);color:#8a5d17}
.activity-filters{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:22px 0 8px;padding:14px;background:#fff;border:1px solid var(--line-cool);border-radius:14px}
.activity-filters input[type=search]{flex:1 1 260px;min-width:200px;margin:0}
.activity-filters select{width:auto;margin:0}
.activity-filters .admin-check{margin:0}
.activity-clear{font-size:14px;font-weight:600;color:var(--muted)}
.activity-h2{margin:26px 0 10px;font-size:20px}
.activity-h2 .muted{font:500 14px var(--font-body);margin-left:6px}
.activity-note{font-size:13px;margin:8px 0 0}
.activity-person-link{color:var(--navy);font-weight:600}
.activity-when{white-space:nowrap}
.activity-table td{vertical-align:top}
.activity-cat{display:inline-block;margin-right:6px;padding:1px 7px;border-radius:6px;font:700 10.5px var(--font-body);letter-spacing:.03em;text-transform:uppercase;background:#eef0f4;color:#4a5568}
.activity-cat.is-login{background:#e3f4ea;color:#1a7f4f}
.activity-cat.is-failed_login{background:#fde8e7;color:#b3261e}
.activity-cat.is-logout{background:#eef0f4;color:#4a5568}
.activity-cat.is-account{background:#f6ecd9;color:#8a5d17}
.activity-cat.is-action{background:#e7eefb;color:#2653a6}
.activity-cat.is-page{background:#f3f3f1;color:#7a7f8a}
.activity-person{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:16px;margin-top:8px}
.activity-card{background:#fff;border:1px solid var(--line-cool);border-radius:14px;padding:16px 18px}
.activity-card h3{margin:0 0 10px;font-size:15px}
.activity-card dl{margin:0;display:grid;gap:8px}
.activity-card dl div{display:flex;justify-content:space-between;gap:12px;font-size:14px}
.activity-card dt{color:var(--muted)}
.activity-card dd{margin:0;font-weight:600;text-align:right}
.activity-list{list-style:none;margin:0;padding:0;display:grid;gap:8px;font-size:14px}
.activity-list li{display:flex;justify-content:space-between;gap:10px}
.activity-list span{color:var(--muted);font-size:13px;white-space:nowrap}
.activity-list a{color:var(--navy);font-weight:600}
@media (max-width:900px){.activity-person{grid-template-columns:1fr}}

/* Installed app (home screen / app store): Sunday Showings branding only,
   no browser-style extras. */
html.is-app .brand-logo-dfw,html.is-app .brand-divider{display:none !important}
html.is-app body{-webkit-tap-highlight-color:transparent}
/* Phones (website and app): Find / Build My Tour / Log In are a tab bar at
   the bottom of the screen like a native app, above the iPhone home bar. */
@media (max-width:640px){
  .mobile-icon-nav{
    position:fixed;left:0;right:0;bottom:0;z-index:60;
    border-top:1px solid var(--line);border-bottom:0;
    background:rgba(255,255,255,.94);-webkit-backdrop-filter:saturate(180%) blur(16px);backdrop-filter:saturate(180%) blur(16px);
    box-shadow:0 -8px 20px -14px rgba(25,35,61,.4);
    padding-bottom:env(safe-area-inset-bottom);
  }
  .mobile-icon-link{padding:8px 4px 6px;gap:3px;font-size:11px;font-weight:600;border-right:0;background:transparent;color:#8a8f98}
  .mobile-icon-link svg{width:25px;height:25px;color:#8a8f98}
  .mobile-icon-link.is-current,.mobile-icon-link.is-current svg{color:var(--navy)}
  .mobile-icon-link.is-current span{font-weight:800}
  .build-tab .route-accent,.build-tab.is-current .route-accent{color:#f0b323}
  .build-tab-note{display:none}
  body{padding-bottom:calc(62px + env(safe-area-inset-bottom))}
  .results-bar{scroll-margin-top:90px}
  .floating-btn-top{bottom:calc(84px + env(safe-area-inset-bottom))}
  .floating-btn-top.is-stacked{bottom:calc(136px + env(safe-area-inset-bottom))}
  .floating-btn-route{bottom:calc(84px + env(safe-area-inset-bottom))}
}

/* ---- Sign-up consents + account contact preferences ----------------------*/
.signup-consents{display:grid;gap:12px;margin:6px 0 4px;padding:14px 16px;border:1px solid var(--line-cool);border-radius:12px;background:#fff}
.consent-check{display:flex;align-items:flex-start;gap:11px;margin:0;font-size:14.5px;font-weight:400;line-height:1.45;text-transform:none;letter-spacing:0;color:var(--ink);cursor:pointer}
.consent-check input{flex:none;width:20px !important;height:20px;margin:1px 0 0;accent-color:var(--navy)}
.consent-check em{font-style:normal;color:var(--muted)}
.consent-check a{color:var(--navy);font-weight:600;text-decoration:underline}
.account-prefs{display:grid;gap:12px;margin:0 0 28px;padding:18px 20px;background:#fff;border:1px solid var(--line-cool);border-radius:16px;max-width:720px}
.account-prefs h2{margin:0;font-size:19px}
.account-prefs .button{justify-self:start}

[data-agent-strip] [hidden]{display:none !important}
.sponsor-zips{max-width:280px}
.zip-chip{display:inline-block;margin:2px 4px 2px 0;padding:2px 8px;border-radius:999px;background:#e7eefb;color:#2653a6;font:600 12.5px var(--font-body)}
.status-pill.status-default{background:#f6ecd9;color:#8a5d17}
.activity-filters input[name=zip]{flex:0 1 280px;margin:0}

/* ---- Admin sponsor form: pick a registered Realtor -----------------------*/
.realtor-pick{display:grid;gap:8px;padding:14px 16px;border:1px dashed var(--line-cool);border-radius:12px;background:#fbfaf6}
.realtor-pick [hidden]{display:none !important}
.realtor-search-box{position:relative}
.realtor-search-box input{margin:0}
.realtor-results{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:5;list-style:none;margin:0;padding:6px;background:#fff;border:1px solid var(--line-cool);border-radius:12px;box-shadow:0 14px 30px -12px rgba(25,35,61,.35);max-height:320px;overflow:auto}
.realtor-results button{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border:0;border-radius:8px;background:none;text-align:left;cursor:pointer;font:inherit;color:var(--ink)}
.realtor-results button:hover,.realtor-results button:focus{background:#f3f1ea;outline:none}
.realtor-results img,.realtor-linked img,.realtor-linked-initials{flex:none;width:40px;height:40px;border-radius:50%;object-fit:cover}
.realtor-linked-initials{display:grid;place-items:center;background:var(--navy);color:#e6c98a;font:700 14px var(--font-body)}
.realtor-results div,.realtor-linked div{display:flex;flex-direction:column;min-width:0;flex:1}
.realtor-results strong,.realtor-linked strong{font-size:14.5px}
.realtor-results span:not(.realtor-linked-initials),.realtor-linked span:not(.realtor-linked-initials){font-size:13px;color:var(--muted);text-transform:none;letter-spacing:0;font-weight:400}
.realtor-results em{font-style:normal;font-size:12px;font-weight:700;color:#8a5d17;background:#f6ecd9;border-radius:999px;padding:2px 8px}
.realtor-empty{padding:10px;font-size:14px;color:var(--muted)}
.realtor-linked{display:flex;align-items:center;gap:12px;padding:10px 12px;background:#fff;border:1px solid var(--line-cool);border-radius:12px}
.sponsor-photo{width:34px;height:34px;border-radius:50%;object-fit:cover;vertical-align:middle;margin-right:8px;float:left}
.agent-photo{width:38px;height:38px;border-radius:50%;object-fit:cover;border:2px solid rgba(230,201,138,.8);flex:none}
.sponsor-card-photo{width:60px;height:60px;border-radius:50%;object-fit:cover;border:2px solid #e6c98a;flex:none}
.sponsor-card.sponsor-card-row{flex-direction:row;align-items:center;gap:16px}
.sponsor-card-row>div{display:flex;flex-direction:column;gap:4px}

/* ---- NTREIS IDX display ------------------------------------------------*/
.ntreis-mark{display:inline-flex;align-items:center;vertical-align:middle;flex:none}
.ntreis-mark img{height:16px;width:auto;display:block}
.ntreis-mark-md img{height:30px}
.ntreis-text{font:800 9.5px/1 var(--font-body);letter-spacing:.06em;color:#fff;background:#0b4a8b;border-radius:3px;padding:3px 4px 2px}
.ntreis-mark-md .ntreis-text{font-size:12px;padding:5px 6px 4px}
.listing-courtesy{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.listed-by{display:flex;gap:12px;align-items:flex-start;margin:4px 0 20px;font-size:16px;line-height:1.55;color:var(--ink-soft)}
.listed-by p{margin:0}
.listed-by strong{color:var(--ink)}
.listed-by-contact{display:flex;flex-wrap:wrap;gap:4px 16px;margin-top:4px!important}
.listed-by-contact a{color:var(--navy);font-weight:600}
.listing-info{margin-top:28px;padding:18px 20px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}
.listing-info h3{margin:0 0 10px}
.listing-info dl{margin:0;display:grid;grid-template-columns:1fr 1fr;gap:8px 20px;font-size:16px}
.listing-info dl div{min-width:0}
.listing-info dt{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.listing-info dd{margin:2px 0 0;color:var(--ink);overflow-wrap:anywhere}
.listing-info dd a{color:var(--navy);font-weight:600}
.listing-info-note{margin:14px 0 0;font-size:13px;line-height:1.55;color:var(--muted)}
.listing-info-note .ntreis-mark{margin-right:4px}
@media(max-width:640px){.listing-info dl{grid-template-columns:1fr}}
.ntreis-explain .ntreis-mark{margin-right:4px}
.data-updated{font-weight:600;color:var(--ink-soft)}
.timeline-stop .listing-courtesy{margin:2px 0 6px}
.map-popup .listing-courtesy{margin-top:2px}
.hp-field{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.recaptcha-note{font-size:12px;color:var(--muted);margin:0}
.recaptcha-note a{color:var(--muted);text-decoration:underline}
.grecaptcha-badge{visibility:hidden!important}
/* NTREIS logo in the bottom-right corner of every MLS listing photo. */
.listing-photo,.map-popup-media,.gallery-frame{position:relative}
.ntreis-photo-badge{position:absolute;right:8px;bottom:8px;z-index:2;display:inline-flex;align-items:center;background:rgba(255,255,255,.88);border-radius:6px;padding:3px 5px;pointer-events:none;line-height:0;box-shadow:0 1px 3px rgba(0,0,0,.18)}
.ntreis-photo-badge img{height:22px;width:auto;display:block}
.ntreis-photo-badge-xs{right:5px;bottom:5px;padding:2px 3px;border-radius:4px}
.ntreis-photo-badge-xs img{height:15px}
.ntreis-photo-badge-lg{right:14px;bottom:14px;padding:4px 6px}
.ntreis-photo-badge-lg img{height:30px}
.ntreis-photo-badge .ntreis-text{line-height:1}
.listing-photo.large .gallery-count{right:auto;left:14px}
.gallery-frame{display:inline-block;line-height:0}
.gallery-frame .gallery-img{display:block}
.listing-photo-strip .ntreis-photo-badge{z-index:3}
.map-popup-media .ntreis-photo-badge{z-index:2}
/* Searched cities / ZIP codes outlined on the map */
.map-areas-key{position:absolute;left:10px;bottom:30px;z-index:2;max-width:calc(100% - 20px);display:flex;align-items:center;gap:8px;background:rgba(255,255,255,.94);border-radius:999px;padding:6px 12px;font:600 12.5px/1.3 var(--font-body);color:var(--ink);box-shadow:0 2px 8px rgba(15,28,46,.18);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.map-areas-swatch{flex:none;width:14px;height:10px;border:2px solid #1c3358;background:rgba(28,51,88,.12);border-radius:2px}

/* ==========================================================================
   Search: one-line filter bar + More filters
   ========================================================================== */
.search-filters{padding:16px 18px}
.filter-bar{display:flex;align-items:flex-end;gap:10px;flex-wrap:nowrap}
.filter-bar .filter-field{flex:none;gap:5px;font-size:12px}
.filter-label{font-size:12px;font-weight:600;color:var(--ink-soft)}
.filter-field select{padding:9px 30px 9px 10px;border:1px solid var(--line-cool);border-radius:8px;font:inherit;font-size:14px;font-weight:500;color:var(--ink);background:#fff;height:40px}
.filter-bar .filter-field input{height:40px}
.filter-bar .filter-field.field-when select{min-width:150px}
.filter-bar .filter-field.field-price input{width:112px}
.filter-bar .filter-field.field-num select{min-width:78px}
.filter-bar .field-area{flex:1 1 auto;min-width:200px}
.more-filters-btn{flex:none;height:40px;display:inline-flex;align-items:center;gap:7px;padding:0 14px;border:1px solid var(--line-cool);border-radius:8px;background:#fff;font:inherit;font-size:14px;font-weight:700;color:var(--ink);cursor:pointer;white-space:nowrap}
.more-filters-btn:hover,.more-filters-btn.is-open{border-color:var(--navy-2);color:var(--navy)}
.more-count{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:var(--navy);color:#fff;font-size:11.5px}
.search-go{flex:none;height:40px;padding:0 22px}
.more-count[hidden],.filters-count[hidden]{display:none}

/* City/ZIP + district pickers sit on one line: chips inside the box. */
[data-inline] .multiselect{max-width:none;display:flex;flex-wrap:wrap;align-items:center;gap:5px;min-height:40px;padding:4px 6px 4px 34px;border:1px solid var(--line-cool);border-radius:8px;background:#fff;position:relative}
[data-inline] .multiselect.is-open{border-color:var(--navy-2)}
[data-inline] .multiselect::before{content:"";position:absolute;left:12px;top:50%;width:14px;height:14px;transform:translateY(-50%);background:no-repeat center/14px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239aa5b1' stroke-width='2.4'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E")}
[data-inline] .multiselect-chips{display:contents}
[data-inline] .chip-tag{font-size:12.5px;padding:4px 7px 4px 10px}
[data-inline] .multiselect-input-wrap{flex:1 1 90px;min-width:90px;position:static}
[data-inline] .multiselect-input-wrap svg.search-icon{display:none}
[data-inline] .multiselect-input{border:0;padding:6px 4px;height:30px;border-radius:0;background:transparent}
[data-inline] .multiselect-input:focus{outline:none}
[data-inline] .multiselect-dropdown{top:calc(100% + 4px)}

.more-filters{margin-top:14px;padding-top:16px;border-top:1px solid var(--line);display:grid;gap:16px}
.more-filters[hidden]{display:none}
.more-grid{display:grid;grid-template-columns:auto minmax(220px,1fr) auto;gap:14px;align-items:end}
.more-grid .filter-field{gap:5px}
.chip-group{border:0;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.chip-group legend{font-size:12px;font-weight:700;color:var(--ink-soft);margin-bottom:8px;padding:0;width:100%}
.chip-group legend .hint{font-weight:500}
.check-chip{position:relative;cursor:pointer;text-transform:none;letter-spacing:0}
.check-chip input{position:absolute;opacity:0;pointer-events:none}
.check-chip span{display:inline-block;padding:7px 13px;border:1px solid var(--line-cool);border-radius:999px;background:#fff;font-size:13.5px;font-weight:600;color:var(--ink-soft);transition:background .12s,border-color .12s}
.check-chip:hover span{border-color:var(--navy-2)}
.check-chip input:checked+span{background:var(--navy);border-color:var(--navy);color:#fff}
.check-chip input:checked+span::before{content:"\2713\00a0"}
.check-chip input:focus-visible+span{outline:2px solid var(--brass);outline-offset:2px}
.more-actions{display:flex;justify-content:flex-end;align-items:center;gap:16px}

@media(max-width:1180px){
  .filter-bar{flex-wrap:wrap}
  .filter-bar .field-area{flex:1 1 100%;order:-1}
}
@media(max-width:640px){
  .search-filters{padding:14px}
  .filter-bar{gap:8px}
  .filter-bar .filter-field{flex:1 1 40%}
  .filter-bar .filter-field.field-when select,.filter-bar .filter-field.field-num select,.filter-bar .filter-field.field-price input{width:100%;min-width:0}
  .more-filters-btn,.search-go{flex:1 1 40%;justify-content:center}
  .more-grid{grid-template-columns:1fr}
  .more-actions{justify-content:space-between}
}

/* ==========================================================================
   Results: List | List + map | Map
   ========================================================================== */
.results-layout{position:relative}
.results-layout .map-pane{display:none}
.results-layout[data-view=split]{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px;align-items:start}
.results-layout[data-view=split] .map-pane{display:block;position:sticky;top:86px;height:calc(100vh - 104px);min-height:420px}
.results-layout[data-view=split] .results-map{height:100%;margin:0}
.results-layout[data-view=split] .cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.results-layout[data-view=map] .results-pane{display:none}
.results-layout[data-view=map] .map-pane{display:block}
.results-layout[data-view=map] .results-map{height:calc(100vh - 170px);min-height:460px}
.results-layout.is-loading .results-pane,.results-layout.is-loading .map-pane{opacity:.55;transition:opacity .15s;pointer-events:none}
.view-split-btn{display:none}
@media(min-width:1024px){.view-split-btn{display:inline-block}}
@media(max-width:1180px){.results-layout[data-view=split] .cards{grid-template-columns:1fr}}

.map-pin.is-hover{background:var(--brass);transform:scale(1.08);z-index:3}
.map-pin.is-selected{background:var(--brass);box-shadow:0 0 0 3px #fff,0 6px 16px -4px rgba(15,28,46,.55);transform:scale(1.12);z-index:4}
.mapboxgl-marker:has(.map-pin.is-selected),.mapboxgl-marker:has(.map-pin.is-hover){z-index:5}

/* Home details in the left pane */
.listing-pane[hidden]{display:none}
.listing-pane{min-height:60vh}
.pane-bar{position:sticky;top:76px;z-index:6;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;margin-bottom:6px;background:var(--paper)}
.pane-back{border:1px solid var(--line-cool);background:#fff;border-radius:999px;padding:9px 16px;font:inherit;font-size:14px;font-weight:700;color:var(--navy);cursor:pointer}
.pane-back:hover{border-color:var(--navy-2)}
.pane-full{font-size:13.5px;font-weight:600;color:var(--ink-soft)}
.pane-loading{display:flex;align-items:center;gap:10px;padding:40px 0;color:var(--muted);font-weight:600}
.listing-pane .listing-page{padding:0;max-width:none}
.listing-pane .detail-grid{grid-template-columns:1fr;gap:20px}
.listing-pane .listing-map{display:none}
.filter-bar [data-inline] .multiselect-input,.more-filters [data-inline] .multiselect-input{height:30px;min-height:0;margin:0}
.filter-label{text-transform:uppercase;letter-spacing:.03em}
.filter-bar .filter-field,.more-grid .filter-field{line-height:1.25}
.chip-group legend{text-transform:uppercase;letter-spacing:.03em;font-weight:600}
.chip-group legend .hint{text-transform:none;letter-spacing:0}
@media(max-width:640px){
  .filter-bar .field-when{order:1}.filter-bar .field-date{order:2}.filter-bar .field-num{order:3}
  .filter-bar .field-price{order:4}.more-filters-btn{order:5}.search-go{order:6}
}
.builders-note{margin:-8px 0 16px;font-size:14px;color:var(--ink-soft)}
.builders-note a{font-weight:700;color:var(--navy)}
.multiselect-custom{color:var(--navy);font-weight:600}
.include-toggles{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.include-toggle{display:inline-flex;align-items:center;gap:8px;padding:7px 14px 7px 10px;border:1px solid var(--line-cool);border-radius:999px;background:#fff;font:inherit;font-size:13.5px;font-weight:600;color:var(--ink-soft);cursor:pointer}
.include-toggle:hover{border-color:var(--navy-2)}
.include-box{width:16px;height:16px;border:1.5px solid #9aa5b1;border-radius:4px;display:inline-grid;place-items:center;background:#fff}
.include-toggle.is-active{border-color:var(--navy);color:var(--navy);background:#f3f6fb}
.include-toggle.is-active .include-box{background:var(--navy);border-color:var(--navy)}
.include-toggle.is-active .include-box::after{content:"";width:8px;height:4px;border:2px solid #fff;border-top:0;border-right:0;transform:translateY(-1px) rotate(-45deg)}
.builders-note a{margin:0 2px}

/* ---- Homepage: photo fading into a route map --------------------------------
   Left: the house photo (darkened behind the headline). Right: an Apple
   Maps-style map with a sample route through real homes open this weekend
   (see HomeController::routeStops), fading in along a diagonal. Below it
   the plain-English search card overlaps the bottom of the hero. */
.home-hero{position:relative;overflow:hidden;background:var(--navy);color:#fff}
.home-hero-photo{position:absolute;inset:0 15% 0 0;background:url(../images/hero-photo.jpg) 60% 50%/cover no-repeat}
.home-hero-map{position:absolute;inset:0;-webkit-mask-image:linear-gradient(112deg,transparent 49%,rgba(0,0,0,.55) 57%,#000 65%);mask-image:linear-gradient(112deg,transparent 49%,rgba(0,0,0,.55) 57%,#000 65%)}
.home-hero-map svg{position:absolute;inset:0;width:100%;height:100%;display:block}
.home-hero::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(10,20,38,.74) 0%,rgba(10,20,38,.6) 38%,rgba(10,20,38,.25) 52%,rgba(10,20,38,0) 62%)}
.home-hero-inner{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:620px;align-items:center;padding:20px 0 190px}
/* Homepage headline: Lora, semi-bold. */
.home-hero-copy h1{font-family:"Lora",var(--font-display);font-weight:600;font-size:clamp(44px,4.8vw,68px);line-height:1.05;letter-spacing:-.01em;color:#fff;margin:0;text-shadow:0 2px 24px rgba(0,0,0,.35)}
.home-hero-copy p{margin:22px 0 0;font-size:19px;line-height:1.6;color:#e3e8ef;max-width:30em;text-shadow:0 1px 12px rgba(0,0,0,.4)}
.home-hero-actions{font-family:var(--font-body);display:flex;gap:16px;margin-top:30px;flex-wrap:wrap;align-items:center}
.home-hero-actions .button{height:50px;padding:0 24px;font-size:15.5px}
/* The main call to action: about twice the size of "How it works". */
/* Build My Tour: an iOS-style button (Apple's system font on Apple devices). */
.home-hero-actions .home-cta{height:72px;padding:0 28px 0 26px;gap:14px;border-radius:16px;border:0;box-shadow:none;font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text",var(--font-body);letter-spacing:-.01em;text-align:left;justify-content:flex-start;transition:background .15s,opacity .15s}
.home-hero-actions .home-cta:active{opacity:.75}
.home-cta-icon{flex:none}
.home-cta-text{display:flex;flex-direction:column;line-height:1.15}
.home-cta-text b{font-size:20px;font-weight:650}
.home-cta-text small{font-size:13px;font-weight:500;opacity:.72;margin-top:3px;letter-spacing:0}
.home-cta-chevron{flex:none;opacity:.55;margin-left:6px}
/* Same light gold as the "Search open houses" button. */
.home-button-brass{background:#e2c48c !important;color:var(--navy) !important;border-color:#e2c48c !important}
.home-button-brass:hover{background:#ecd3a3 !important;border-color:#ecd3a3 !important}
.home-button-ghost{background:transparent !important;color:#fff !important;border:1.5px solid rgba(255,255,255,.55) !important}
.home-button-ghost:hover{border-color:#fff !important}

.home-smart{position:relative;z-index:2;margin:-92px auto 0;max-width:980px;background:#fff;border-radius:22px;box-shadow:0 34px 70px -30px rgba(12,24,43,.6);padding:22px 22px 18px;color:var(--ink)}
.home-smart-row{display:flex;align-items:center;gap:12px;border:1.5px solid var(--line);border-radius:16px;padding:6px 6px 6px 20px;transition:border-color .2s,box-shadow .2s}
.home-smart-row:focus-within{border-color:#e2c48c;box-shadow:0 0 0 3px rgba(226,196,140,.4)}
.home-smart-icon{color:var(--brass);flex:0 0 auto}
.home-smart input[type=text]{flex:1;min-width:0;width:1px;border:0;outline:none;background:transparent;font:500 19px var(--font-body);color:var(--ink);padding:12px 0;margin:0;box-shadow:none}
.home-smart input[type=text]::placeholder{color:#8a94a3}
.home-smart-row button{flex:0 0 auto;display:inline-flex;align-items:center;gap:9px;border:0;cursor:pointer;background:#e2c48c;color:var(--navy);font:750 16px var(--font-body);padding:0 22px;height:54px;border-radius:12px;transition:background .2s}
.home-smart-row button:hover{background:#ecd3a3}
.home-smart-tries{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:14px;font-size:14px;color:var(--muted)}
.home-smart-tries button{border:0;cursor:pointer;background:#eef2f7;color:var(--navy);font:600 14px var(--font-body);padding:7px 12px;border-radius:999px}
.home-smart-tries button:hover{background:#e2e8f0}
.home-smart-foot{display:flex;justify-content:space-between;gap:16px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line);font-size:13.5px;color:var(--ink-soft)}
.home-smart-foot b{color:var(--navy)}
.home-smart-links{display:flex;gap:18px;font-weight:650;white-space:nowrap}
.home-smart-links a{color:var(--navy)}
.home-smart-links a:hover{text-decoration:underline}
body[data-page="home"] .agent-strip{margin-top:40px}

.home-why{display:grid;grid-template-columns:repeat(3,1fr);gap:56px;padding-top:80px;padding-bottom:56px}
.home-why svg{color:var(--brass)}
.home-why h2{font-family:var(--font-display);font-weight:600;font-size:24px;color:var(--navy);margin:14px 0 8px}
.home-why p{color:var(--ink-soft);line-height:1.65;margin:0}
.home-why a{color:var(--navy);text-decoration:underline;text-underline-offset:2px}
.home-listings{padding-bottom:72px}
.home-listings-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:22px}
.home-listings-head h2{font-family:var(--font-display);font-weight:600;font-size:36px;color:var(--navy);margin:0}
.home-button-outline{background:transparent !important;color:var(--navy) !important;border:1.5px solid var(--navy) !important}
.home-button-outline:hover{background:var(--navy) !important;color:#fff !important}

@media (max-width:960px){
  .home-why{grid-template-columns:1fr;gap:30px;padding-top:56px;padding-bottom:40px}
}
@media (max-width:900px){
  .home-hero-photo{inset:0;background-position:30% 50%}
  .home-hero::after{background:linear-gradient(180deg,rgba(10,20,38,.72),rgba(10,20,38,.5) 45%,rgba(10,20,38,0) 62%)}
  .home-hero-map{-webkit-mask-image:linear-gradient(172deg,transparent 46%,#000 58%);mask-image:linear-gradient(172deg,transparent 46%,#000 58%)}
  .home-hero-map svg{inset:auto 0 0 auto;height:52%;width:230%}
  .home-chip{display:none}
  .home-hero-inner{grid-template-columns:1fr;min-height:0;padding:22px 0 210px}
  .home-smart{margin-top:-70px}
}
@media (max-width:640px){
  .home-hero-copy h1{font-size:36px}
  .home-hero-copy p{font-size:16px;margin-top:14px}
  /* Phones: just the Build my tour button, left-aligned above the search. */
  .home-hero-actions{margin-top:20px}
  .home-hero-actions .home-button-ghost{display:none}
  .home-hero-actions .home-cta{height:64px;padding:0 22px 0 20px;gap:12px}
  .home-cta-text b{font-size:18px}
  .home-cta-text small{font-size:12.5px}
  .home-hero-inner{padding-bottom:200px}
  .home-hero-map{-webkit-mask-image:linear-gradient(174deg,transparent 60%,#000 70%);mask-image:linear-gradient(174deg,transparent 60%,#000 70%)}
  .home-hero-map svg{height:42%}
  .home-hero::after{background:linear-gradient(180deg,rgba(10,20,38,.72),rgba(10,20,38,.55) 55%,rgba(10,20,38,0) 70%)}
  .home-smart{padding:14px;border-radius:18px}
  .home-smart-row{padding:5px 5px 5px 14px;gap:10px}
  .home-smart input[type=text]{font-size:16px}
  .home-smart-row button span{display:none}
  .home-smart-row button{padding:0 16px;height:48px}
  .home-smart-foot{flex-direction:column;gap:8px}
  body[data-page="home"] .agent-strip{margin-top:28px}
  .home-listings-head h2{font-size:28px}
}

/* ---- Find Open Houses / Build My Tour: compact top ---------------------------
   Everything above the results is tightened so the list and map show on the
   first screen: slimmer sponsor bar, title + search on one row, the 3 tour
   steps as one line, and a tighter filter panel. */
body[data-page="search"] .agent-strip-inner{padding:7px 0}
body[data-page="search"] .agent-strip .agent-photo{width:30px;height:30px;border-width:1.5px}
body[data-page="search"] .agent-strip strong{font-size:14.5px}
body[data-page="search"] .agent-strip .button{height:36px;padding:0 16px;font-size:14px}
.search-page.section{padding-top:20px;padding-bottom:40px}
.search-head{display:flex;align-items:center;gap:28px}
.search-head h1{font-size:34px;margin:0;white-space:nowrap;line-height:1.1}
.search-head .ai-refine{flex:1 1 auto;margin:0;max-width:720px}
.search-head .ai-search{margin:0}
.search-page .city-lead{margin:10px 0 0;font-size:15px}
.search-page .build-intro{display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin:14px 0 0;padding:12px 20px;border-radius:14px}
.search-page .build-intro[hidden]{display:none}
.search-page .build-intro h2{font-size:17px;margin:0;white-space:nowrap}
.search-page .build-intro ol{flex-direction:row;flex-wrap:wrap;gap:8px 22px;align-items:center}
.search-page .build-intro li{align-items:center;gap:9px;font-size:14px;line-height:1.3}
.search-page .build-intro .step-num{width:22px;height:22px;font-size:12px}
.search-page .search-filters{margin-top:14px;padding:10px 16px 12px}
.search-page .filter-bar{gap:8px}
.search-page .filter-bar .filter-field{gap:3px;font-size:11px}
.search-page .filter-bar .filter-field select,.search-page .filter-bar .filter-field input{height:38px}
.search-page .include-toggles{margin-top:8px;gap:6px}
.search-page .include-toggle{padding:4px 12px 4px 8px;font-size:13px}
.search-page .results-bar{margin:14px 0 10px}
.search-page .builders-note{margin:-2px 0 12px}
@media (max-width:900px){
  .search-head{flex-direction:column;align-items:stretch;gap:12px}
  .search-head h1{font-size:28px}
  .search-head .ai-refine{max-width:none}
}
@media (max-width:640px){
  .search-page.section{padding-top:14px}
  .search-page .build-intro{padding:10px 14px;gap:6px}
  .search-page .build-intro h2{font-size:15px}
  .search-page .build-intro ol{flex-direction:column;align-items:flex-start;gap:5px}
  .search-page .build-intro li{font-size:13px;gap:8px}
  .search-page .build-intro .step-num{width:20px;height:20px;font-size:11px}
  .search-head h1{font-size:26px}
  .search-head{gap:10px}
}
.save-short{display:none}
@media (max-width:640px){
  /* Phones: count on one line, then Save · Sort · List/Map on one row. */
  .search-page .results-bar{gap:8px;margin:12px 0 8px}
  .search-page .results-count{font-size:14px;line-height:1.4}
  .search-page .results-count strong{font-size:16px}
  .search-page .results-tools{display:flex;flex-wrap:nowrap;align-items:center;gap:6px;width:100%}
  .search-page .save-search-btn{flex:none;height:38px;padding:0 12px;font-size:13.5px}
  .search-page .save-long{display:none}
  .search-page .save-short{display:inline}
  .search-page .sort-control{flex:1 1 auto;min-width:0;display:flex}
  .search-page .sort-control > span{display:none}
  .search-page .sort-control select{height:38px;min-width:0;width:100%;font-size:13.5px;padding:0 26px 0 10px;margin:0}
  .search-page .view-toggle{flex:none;padding:2px}
  .search-page .view-toggle button{padding:6px 11px;font-size:13px}
  .search-page .builders-note{font-size:13px;margin:0 0 10px}
}

/* Tour builder: homes that won't fit the chosen date / start / stop time. */
.tour-select-row .tour-fit{color:var(--warn);font-weight:600;font-size:13px;margin-top:4px}
.tour-select-row .tour-fit::before{content:"⚠ ";}
.tour-select-row.wont-fit{background:var(--warn-tint);border-color:#ecd5a8}
.tour-fit-summary{margin:14px 0 4px;padding:12px 14px;border-radius:10px;background:var(--warn-tint);border:1px solid #ecd5a8;color:var(--warn);font-size:14px;line-height:1.5}
.tour-fit-summary strong{color:#6d4508}
.tour-select-row.wont-fit{padding-left:12px;padding-right:12px;border-radius:8px}
@media (min-width:901px){.tour-form .form-grid{grid-template-columns:repeat(4,1fr)}}
.tour-select-row .tour-fit[hidden]{display:none}

/* Homepage first screen: the hero fills the window so only the top edge of
   the search card peeks in at the bottom (a cue to scroll), keeping the
   first view calm. */
.home-hero{display:flex;flex-direction:column;min-height:min(calc(100vh - 78px),980px);min-height:min(calc(100svh - 78px),980px)}
.home-hero-inner{flex:1 1 auto;width:min(calc(100% - 40px),var(--max))}
@media (max-width:900px){.home-hero-inner{align-items:start;align-content:start;padding-top:28px}}
@media (max-width:640px){.home-hero-map{-webkit-mask-image:linear-gradient(174deg,transparent 47%,#000 58%);mask-image:linear-gradient(174deg,transparent 47%,#000 58%)}.home-hero-map svg{height:56%}.home-hero::after{background:linear-gradient(180deg,rgba(10,20,38,.72),rgba(10,20,38,.5) 40%,rgba(10,20,38,0) 56%)}}
@media (max-width:640px){.home-hero{min-height:calc(100vh - 225px);min-height:calc(100svh - 225px)}}

/* ---- Homepage, simplified (realtor.com-style first screen) ------------------
   Hero: headline, a quiet glass search bar, the gold Build My Tour button and
   a "How it works" link. The photo/map fades down into the page and the tops
   of this weekend's homes peek in at the bottom; the sponsor bar sits between
   the first and second rows of homes. */
.home-phone-only{display:none}
@media (min-width:641px){
.home-hero{min-height:min(calc(100vh - 120px),900px);min-height:min(calc(100svh - 120px),900px)}
.home-hero-inner{padding-top:20px;padding-bottom:150px;align-items:center}
.home-hero-fade{position:absolute;left:0;right:0;bottom:0;height:300px;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,rgba(251,250,247,0) 0%,rgba(251,250,247,.35) 35%,rgba(251,250,247,.8) 68%,var(--paper) 92%)}
.home-hero-copy p{max-width:32em}
.home-search{display:flex;align-items:center;gap:10px;max-width:560px;margin-top:26px;padding:6px 6px 6px 20px;border-radius:999px;
  background:rgba(255,255,255,.14);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.32)}
.home-search svg{flex:none;color:rgba(255,255,255,.85)}
.home-search input[type=text]{flex:1;min-width:0;width:1px;margin:0;padding:12px 0;border:0;outline:0;box-shadow:none;background:transparent;font:500 16.5px var(--font-body);color:#fff}
.home-search input[type=text]::placeholder{color:rgba(255,255,255,.78)}
.home-search input[type=text]:focus{box-shadow:none}
.home-search:focus-within{border-color:rgba(255,255,255,.7);background:rgba(255,255,255,.2)}
.home-search button{flex:none;height:46px;padding:0 22px;border-radius:999px;cursor:pointer;font:700 15px var(--font-body);color:#fff;background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.3);transition:background .15s}
.home-search button:hover{background:rgba(255,255,255,.3)}
.home-hero-actions{align-items:center;gap:22px;margin-top:22px}
.home-how-link{color:#fff;font:600 15px var(--font-body);text-decoration:underline;text-underline-offset:4px;text-decoration-color:rgba(255,255,255,.5)}
.home-how-link:hover{text-decoration-color:#fff}
.home-listings{position:relative;z-index:3;margin-top:-80px}
.home-listings-head h2{font-family:"Lora",var(--font-display);font-weight:650;font-size:30px;letter-spacing:-.01em;color:var(--navy)}
.home-cards-strip{grid-column:1/-1}
.home-cards-strip .agent-strip{display:block !important;width:auto !important;margin:4px 0 !important;border-radius:16px;box-shadow:0 18px 40px -26px rgba(15,28,46,.45)}
.home-cards-strip .agent-strip-inner{width:auto;padding:18px 26px}
.home-why{padding-top:72px}
  .home-wide-only{display:inline}
}
/* Phones: the same design as computers, stacked. Photo hero (no map) with
   the headline, glass search bar and the gold Build My Tour button at its
   natural width; the photo fades down behind a white "Open this weekend"
   heading and the first home peeks in; the sponsor bar sits after 2 homes. */
@media (max-width:640px){
  span.home-phone-only{display:inline}
  .home-wide-only,.home-how-link,.home-hero-map{display:none !important}
  .home-hero{min-height:calc(100vh - 230px);min-height:calc(100svh - 230px)}
  .home-hero-photo{inset:0;background-position:38% 50%}
  .home-hero::after{background:linear-gradient(180deg,rgba(10,20,38,.66),rgba(10,20,38,.5) 55%,rgba(10,20,38,.35))}
  .home-hero-inner{padding:26px 0 150px;align-items:start;align-content:start}
  .home-hero-copy h1{font-size:33px;line-height:1.1}
  .home-hero-copy p{font-size:15px;line-height:1.5;margin-top:12px}
  .home-search{display:flex;align-items:center;gap:8px;margin-top:22px;padding:4px 4px 4px 14px;border-radius:999px;
    background:rgba(255,255,255,.14);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.32)}
  .home-search svg{flex:none;color:rgba(255,255,255,.85)}
  .home-search input[type=text]{flex:1;min-width:0;width:1px;margin:0;padding:9px 0;border:0;outline:0;box-shadow:none;background:transparent;font:500 16px var(--font-body);color:#fff}
  .home-search input[type=text]::placeholder{color:rgba(255,255,255,.8)}
  .home-search input[type=text]:focus{box-shadow:none}
  .home-search:focus-within{border-color:rgba(255,255,255,.7);background:rgba(255,255,255,.2)}
  .home-search button{flex:none;height:40px;padding:0 16px;border-radius:999px;cursor:pointer;font:700 14px var(--font-body);color:#fff;background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.3)}
  .home-hero-actions{margin-top:12px}
  .home-hero-actions .home-cta{width:auto;flex:0 0 auto;height:58px;padding:0 20px 0 18px;gap:12px;border-radius:14px}
  .home-cta-text b{font-size:17px}
  .home-cta-text small{font-size:12px;margin-top:2px}
  .home-cta-icon{width:20px;height:20px}
  .home-hero-fade{display:block;position:absolute;left:0;right:0;bottom:-1px;height:200px;z-index:2;pointer-events:none;
    background:linear-gradient(180deg,rgba(28,42,64,0) 0%,rgba(28,42,64,.6) 45%,rgba(28,42,64,.88) 78%,#1c2a40 100%)}
  .home-listings{position:relative;z-index:3;margin-top:-92px}
  .home-listings::before{content:"";position:absolute;z-index:-1;left:50%;width:100vw;transform:translateX(-50%);top:70px;height:200px;pointer-events:none;
    background:linear-gradient(180deg,#1c2a40 0%,rgba(28,42,64,.55) 40%,rgba(251,250,247,.9) 85%,var(--paper) 100%)}
  .home-listings-head{align-items:center;flex-wrap:nowrap;gap:10px;margin-bottom:12px}
  .home-listings-head h2{font-size:21px;white-space:nowrap;color:#fff;text-shadow:0 2px 14px rgba(0,0,0,.4)}
  .home-listings-head .button{flex:none;white-space:nowrap;height:34px;padding:0 12px;font-size:13px}
  .home-listings-head .home-button-outline{color:#fff !important;border-color:rgba(255,255,255,.75) !important;background:rgba(255,255,255,.08) !important}
  .home-cards-strip{display:block;grid-column:1/-1}
  .home-cards-strip .agent-strip{display:block !important;width:auto !important;margin:2px 0 !important;border-radius:14px}
  .home-cards > *{order:2}
  .home-cards > .listing-card:nth-child(-n+2){order:0}
  .home-cards > .home-cards-strip{order:1}
}
/* Map popup on touch screens: a bigger "+ Add to Tour" target, and no
   double-tap zoom delay on it. */
.map-popup-add{touch-action:manipulation}
@media (hover:none){.map-popup-add{padding:12px 14px;font-size:14px}}

/* Homepage on computers: smaller, calmer type and controls with more side
   margin, so the first screen reads like a classic real-estate homepage
   (headline, search, one clear button, homes peeking in below). The photo
   and map stay full size. Phones are unchanged. */
@media (min-width:641px){
  body[data-page="home"] .home-hero-inner,
  body[data-page="home"] .home-listings,
  body[data-page="home"] .home-why{width:min(calc(100% - 96px),1160px)}
  .home-hero{min-height:min(calc(100vh - 82px),940px);min-height:min(calc(100svh - 82px),940px)}
  .home-hero-inner{padding-top:12px;padding-bottom:150px}
  .home-hero-copy h1{font-size:clamp(36px,3.4vw,50px);line-height:1.06}
  .home-hero-copy p{font-size:16.5px;line-height:1.55;margin-top:16px;max-width:30em}
  .home-search{max-width:500px;margin-top:22px;padding:4px 4px 4px 16px}
  .home-search input[type=text]{font-size:15px;padding:9px 0}
  .home-search button{height:40px;padding:0 18px;font-size:14px}
  .home-hero-actions{margin-top:16px;gap:18px}
  .home-hero-actions .home-cta{height:58px;padding:0 20px 0 18px;gap:12px;border-radius:14px}
  .home-cta-text b{font-size:17px}
  .home-cta-text small{font-size:12px;margin-top:2px}
  .home-cta-icon{width:20px;height:20px}
  .home-how-link{font-size:14px}
  .home-listings{margin-top:-86px}
  .home-listings-head{margin-bottom:16px}
  .home-listings-head h2{font-size:24px}
  .home-listings-head .button{height:40px;padding:0 18px;font-size:14px}
  /* Like realtor.com: the photo carries on (darkened) behind the
     "Open this weekend" heading, which is white, then fades to the page
     colour across the tops of the house cards. */
  .home-hero-fade{z-index:2;bottom:-1px;height:221px;background:linear-gradient(180deg,rgba(28,42,64,0) 0%,rgba(28,42,64,.6) 45%,rgba(28,42,64,.88) 78%,#1c2a40 100%)}
  /* Below the photo, the same dark tone carries on behind the tops of the
     house cards and fades out into the page colour. */
  .home-listings::before{content:"";position:absolute;z-index:-1;left:50%;width:100vw;transform:translateX(-50%);top:86px;height:230px;pointer-events:none;
    background:linear-gradient(180deg,#1c2a40 0%,rgba(28,42,64,.55) 40%,rgba(251,250,247,.9) 85%,var(--paper) 100%)}
  .home-listings-head h2{color:#fff;text-shadow:0 2px 16px rgba(0,0,0,.45)}
  /* Headline type in the realtor.com style (their Galano Grotesque is a paid
     font; Poppins is the closest free match). */
  .home-hero-copy h1{font-family:"Poppins",var(--font-body);font-weight:600;letter-spacing:-.025em;line-height:1.08}
  .home-listings-head h2{font-family:"Poppins",var(--font-body);font-weight:600;letter-spacing:-.02em}
  .home-listings-head .home-button-outline{color:#fff !important;border-color:rgba(255,255,255,.75) !important;background:rgba(255,255,255,.08) !important}
  .home-listings-head .home-button-outline:hover{background:#fff !important;color:var(--navy) !important}
}

/* Phones too: homepage headings in the same realtor.com-style font
   (Poppins) as on computers. */
@media (max-width:640px){
  .home-hero-copy h1{font-family:"Poppins",var(--font-body);font-weight:600;letter-spacing:-.025em;line-height:1.1}
  .home-listings-head h2,.home-why h2{font-family:"Poppins",var(--font-body);font-weight:600;letter-spacing:-.02em}
}

/* Tour builder: one day at a time, with chips for other days. */
.tour-day-note{margin:12px 0 0;font-size:14px;color:var(--ink-soft);display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.tour-day-note[hidden]{display:none}
.tour-day-note span{display:contents}
.tour-day-chip{display:inline-flex;align-items:center;border:1px solid var(--line-cool);background:#fff;color:var(--navy);font:600 13px var(--font-body);padding:6px 12px;border-radius:999px;cursor:pointer;text-decoration:none;text-transform:none;letter-spacing:0}
.tour-day-chip:hover{border-color:var(--navy);background:#f3f6fb}
/* Itinerary: fit summary, alternate routes, other days. */
.tour-fit-line{margin:20px 0 0;font-size:16px;color:var(--ink-soft)}
.tour-fit-line strong{color:var(--navy)}
.tour-skipped li{margin:6px 0}
.tour-alts{margin:24px 0 0}
.tour-alts h2{font-size:20px;margin:0 0 10px}
.tour-alt{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:#fff;margin-bottom:10px}
.tour-alt strong{display:block;color:var(--navy)}
.tour-alt span{display:block;font-size:13.5px;color:var(--muted);margin-top:3px}
.tour-alt form{margin:0;flex:none}
.tour-days{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:18px 0 0;font-size:14.5px;color:var(--ink-soft)}
@media (max-width:640px){.tour-alt{flex-direction:column;align-items:stretch}.tour-alt form .button{width:100%}}
.tour-skipped{text-align:left}.tour-skipped ul{padding-left:18px}

/* Itinerary status: a positive line first, then compact misses. */
.tour-status{margin:18px 0 0;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 16px}
.tour-status p{display:flex;gap:10px;align-items:flex-start;margin:0;font-size:15px;line-height:1.45;color:var(--ink-soft)}
.tour-status p svg{flex:none;margin-top:1px}
.tour-status strong{color:var(--ink)}
.tour-ok{font-size:16px !important}
.tour-ok strong{color:#1a7f4f !important}
.tour-miss{margin-top:8px !important}
.tour-miss-note{display:block !important;margin:10px 0 0 30px !important;font-size:13px !important;color:var(--muted) !important}
.tour-alt details{flex:1;min-width:0}
.tour-alt summary{cursor:pointer;list-style:none;position:relative;padding-right:22px}
.tour-alt summary::-webkit-details-marker{display:none}
.tour-alt summary::after{content:"";position:absolute;right:4px;top:6px;width:8px;height:8px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg);transition:transform .15s}
.tour-alt details[open] summary::after{transform:rotate(-135deg);top:10px}
.tour-alt ol{margin:8px 0 0;padding-left:20px;font-size:14px;color:var(--ink-soft)}
.tour-alt ol li{margin:2px 0}
.tour-alts{margin:18px 0 0}
.tour-days{margin:14px 0 20px}
@media (max-width:640px){
  body[data-page="tour-result"] .route-summary{grid-template-columns:repeat(3,1fr);gap:8px;margin:18px 0 0}
  body[data-page="tour-result"] .route-summary>div{padding:12px 10px}
  body[data-page="tour-result"] .route-summary strong{font-size:22px}
  body[data-page="tour-result"] .route-summary span{font-size:10.5px;letter-spacing:.04em}
}

/* Itinerary, condensed so the stops show on the first screen. */
body[data-page="tour-result"] .section{padding-top:22px}
body[data-page="tour-result"] h1{font-size:34px;margin:4px 0 2px}
body[data-page="tour-result"] .lead{font-size:15px;margin:0}
.route-stats{display:flex;flex-wrap:wrap;gap:6px 18px;margin:12px 0 0;font-size:14.5px;color:var(--muted)}
.route-stats b{font-family:var(--font-display);font-size:19px;color:var(--ink);margin-right:3px}
.tour-status{margin:12px 0 0;padding:10px 14px;border-radius:12px}
.tour-status p{font-size:14px;line-height:1.4;gap:8px}
.tour-status p svg{width:17px;height:17px}
.tour-ok{font-size:15px !important}
.tour-miss{margin-top:5px !important}
.tour-miss-note{margin:6px 0 0 25px !important;font-size:12.5px !important}
.tour-alts{margin:12px 0 0}
.tour-alts h2{font-size:16px;margin:0 0 6px;font-family:var(--font-body);font-weight:700;color:var(--ink-soft)}
.tour-alt{padding:8px 8px 8px 14px;margin-bottom:6px;border-radius:10px;gap:10px}
.tour-alt summary{display:block;padding-right:20px;font-size:14.5px;line-height:1.35}
.tour-alt summary strong,.tour-alt summary span{display:inline;margin:0}
.tour-alt summary span{color:var(--muted);font-size:13.5px}
.tour-alt summary::after{top:5px}
.tour-alt details[open] summary::after{top:9px}
.tour-days{margin:10px 0 0;font-size:13.5px;gap:6px}
.tour-days .tour-day-chip{padding:4px 10px;font-size:12.5px}
/* iOS-style buttons */
.ios-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:46px;padding:0 18px;border-radius:12px;border:0;cursor:pointer;
  font:600 16px -apple-system,BlinkMacSystemFont,"SF Pro Text",var(--font-body);letter-spacing:-.01em;text-decoration:none;transition:opacity .15s,background .15s}
.ios-btn:active{opacity:.7}
.ios-btn-dark{background:#1c1c1e;color:#fff}
.ios-btn-dark:hover{background:#000}
.ios-btn-light{background:#e9ecf1;color:var(--navy)}
.ios-btn-light:hover{background:#dde2e9}
.ios-btn-sm{height:34px;padding:0 16px;font-size:14px;border-radius:9px}
.maps-buttons{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0 0;max-width:520px}
.maps-hint{margin:6px 0 4px !important;font-size:12.5px}
body[data-page="tour-result"] .timeline{margin-top:14px}
@media (max-width:640px){
  body[data-page="tour-result"] h1{font-size:28px}
  .tour-alt{flex-direction:row !important;align-items:center !important}
  .tour-alt form .ios-btn{width:auto}
  .maps-buttons{max-width:none}
  .ios-btn{font-size:15px;padding:0 10px}
}
@media (max-width:640px){
  .maps-buttons .wide-only{display:none}
  .maps-hint{display:none}
  body[data-page="tour-result"] .lead{font-size:14px}
  body[data-page="tour-result"] .section{padding-top:14px}
  .route-stats{margin-top:8px}
  .tour-status p{font-size:13.5px}
  .tour-ok{font-size:14.5px !important}
  .tour-alts h2{font-size:14.5px}
  .tour-alt summary{font-size:13.5px}
  .tour-days{font-size:12.5px}
}
.ios-btn-gold{background:#e2c48c;color:var(--navy)}
.ios-btn-gold:hover{background:#ecd3a3}
.tour-leftover{margin:10px 0 0 25px}
.tour-leftover .ios-btn{height:auto;min-height:36px;padding:8px 14px;text-align:left;line-height:1.3}
.tour-leftover-done{margin-top:8px !important;font-size:14px !important}
.tour-leftover-done a{font-weight:700;color:var(--navy);text-decoration:underline}
@media (max-width:640px){.tour-leftover{margin-left:0}.tour-leftover .ios-btn{width:100%;justify-content:flex-start}}
/* Saved leftover tour: a green box, same shape as the gold save button. */
.tour-leftover-done{display:inline-flex !important;align-items:center;margin:10px 0 0 25px !important;padding:8px 14px;border-radius:9px;background:#e6f4ec;border:1px solid #b9dfc8;color:#14532d !important}
.tour-leftover-done strong{color:#14532d !important}
.tour-leftover-done a{color:#14532d}
@media (max-width:640px){.tour-leftover-done{display:flex !important;margin-left:0 !important}}

/* Itinerary on phones: the same look as the homepage, condensed so the
   first stop shows on the first screen. */
.itin-phone{display:none}
@media (max-width:640px){
  .itin-wide{display:none}
  .itin-phone{display:inline}
  body[data-page="tour-result"] .itinerary-head-row{margin-bottom:2px;align-items:center}
  body[data-page="tour-result"] .itinerary-head-row .eyebrow{display:none}
  body[data-page="tour-result"] .edit-tour-link{font-size:14px}
  body[data-page="tour-result"] h1{font-family:"Poppins",var(--font-body);font-weight:600;font-size:25px;letter-spacing:-.02em;line-height:1.15;margin:0}
  body[data-page="tour-result"] .lead{font-size:13.5px;line-height:1.4;margin:4px 0 0;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  body[data-page="tour-result"] .route-stats{display:flex;gap:0;margin:10px 0;border:1px solid var(--line);border-radius:14px;background:#fff;overflow:hidden}
  body[data-page="tour-result"] .route-stats > span{flex:1;display:flex;flex-direction:column;align-items:center;text-align:center;padding:6px 4px;margin:0;font-size:12px;line-height:1.25;color:var(--ink-soft)}
  body[data-page="tour-result"] .route-stats > span + span{border-left:1px solid var(--line)}
  body[data-page="tour-result"] .route-stats b{font-family:"Poppins",var(--font-body);font-weight:600;font-size:17px;color:var(--navy)}
  body[data-page="tour-result"] .tour-status{padding:12px 14px;border-radius:16px;margin-bottom:12px}
  body[data-page="tour-result"] .tour-status p.tour-ok,
  body[data-page="tour-result"] .tour-status p.tour-miss{font-size:14px !important;line-height:1.35;margin:0 0 6px}
  body[data-page="tour-result"] .tour-status p.tour-miss-note{font-size:12px;line-height:1.35;margin:6px 0 0}
  body[data-page="tour-result"] .tour-status p.tour-leftover-done{font-size:13.5px !important;margin:8px 0 0 !important}
  body[data-page="tour-result"] .tour-leftover{margin:8px 0 0}
  body[data-page="tour-result"] .tour-leftover .ios-btn{font-size:14.5px;line-height:1.25;padding:11px 14px;min-height:0;border-radius:13px}
  body[data-page="tour-result"] .tour-alts{margin:0 0 10px}
  body[data-page="tour-result"] .tour-alts h2{font-family:"Poppins",var(--font-body);font-weight:600;font-size:16px;margin:0 0 6px}
  body[data-page="tour-result"] .tour-alt{padding:8px 8px 8px 12px;border-radius:14px}
  body[data-page="tour-result"] .tour-alt summary{font-size:14px}
  body[data-page="tour-result"] .tour-alt .ios-btn{height:36px;padding:0 16px;font-size:15px}
  body[data-page="tour-result"] .tour-days{margin:0 0 12px;font-size:12.5px}
  body[data-page="tour-result"] .tour-day-chip{font-size:12.5px;padding:5px 11px}
  body[data-page="tour-result"] .maps-buttons{gap:10px;margin-bottom:6px}
  body[data-page="tour-result"] .maps-buttons .ios-btn{height:44px;font-size:15.5px;border-radius:14px}
  body[data-page="tour-result"] .timeline{margin-top:16px}
  body[data-page="tour-result"] .timeline-stop h3{font-family:"Poppins",var(--font-body);font-weight:600;font-size:19px;letter-spacing:-.01em}
  body[data-page="tour-result"] .drive-note{font-size:12px}
  body[data-page="tour-result"] .sequence{width:30px;height:30px;font-size:14px}
}

/* "See all 37": normal word spacing (the button's icon gap is too wide). */
.home-listings-head .button{gap:0}
.home-listings-head .button .home-wide-only{margin-left:.3em}

/* Notices: a full-width glass bar floating just under the header, over the
   page. Green for confirmations, red for "Please fix". It has a close x and
   fades away on its own (see layouts/app). */
.site-toasts{position:fixed;left:0;right:0;top:62px;z-index:29;display:flex;flex-direction:column;pointer-events:none}
.site-toast{pointer-events:auto;position:relative;display:flex;align-items:center;justify-content:center;min-height:48px;padding:11px 56px;
  font:500 15px/1.4 var(--font-body);text-align:center;
  -webkit-backdrop-filter:blur(14px) saturate(1.4);backdrop-filter:blur(14px) saturate(1.4);
  box-shadow:0 10px 26px -14px rgba(15,28,46,.45);animation:site-toast-in .3s ease-out;transition:opacity .35s,transform .35s}
.site-toast-ok{background:rgba(230,244,236,.9);border-bottom:1px solid rgba(26,127,79,.25);color:#14532d}
.site-toast-err{background:rgba(253,236,234,.92);border-bottom:1px solid rgba(192,57,43,.25);color:#8f2a1f}
.site-toast-text strong{font-weight:700}
.site-toast-x{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:34px;height:34px;border:0;border-radius:50%;
  background:transparent;color:inherit;font:400 26px/1 var(--font-body);cursor:pointer;display:grid;place-items:center;opacity:.7}
.site-toast-x:hover{opacity:1;background:rgba(255,255,255,.55)}
.site-toast-x:focus-visible{outline:2px solid currentColor;outline-offset:1px;opacity:1}
.site-toast.is-closing{opacity:0;transform:translateY(-8px)}
@keyframes site-toast-in{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
@media (max-width:640px){.site-toast{padding:10px 48px 10px 16px;font-size:14px;text-align:left;justify-content:flex-start}.site-toast-x{right:6px}}
@media (prefers-reduced-motion:reduce){.site-toast{animation:none;transition:opacity .2s}.site-toast.is-closing{transform:none}}

/* ---- Buyer dashboard + Settings ------------------------------------------
   Compact header with a Profile button, three quick stats, tours as cards
   that open (View tour) and take notes (Add notes), and a side column with
   saved searches and notification status. */
.acct{padding-top:28px}
.acct-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}
.acct-id{display:flex;align-items:center;gap:14px;min-width:0}
.acct-avatar{flex:none;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:var(--navy);color:#fff;font:600 21px "Poppins",var(--font-body)}
.acct-id h1{font-family:"Poppins",var(--font-body);font-weight:600;font-size:28px;letter-spacing:-.02em;line-height:1.15;margin:0;color:var(--navy)}
.acct-id p{margin:2px 0 0;font-size:14px;color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.acct-profile-btn{display:inline-flex;align-items:center;gap:7px;flex:none}
.acct-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:0 0 24px}
.acct-stat{display:flex;align-items:baseline;gap:10px;padding:14px 18px;background:#fff;border:1px solid var(--line-cool);border-radius:14px;color:var(--ink-soft);text-decoration:none;transition:border-color .15s}
.acct-stat:hover{border-color:var(--navy)}
.acct-stat b{font:600 26px/1 "Poppins",var(--font-body);color:var(--navy)}
.acct-stat span{font-size:14px;font-weight:600;color:var(--navy)}
.acct-stat em{font-style:normal;font-weight:500;color:var(--ink-soft)}
.acct-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:24px;align-items:start}
.acct-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 12px}
.acct h2{font-family:"Poppins",var(--font-body);font-weight:600;font-size:18px;letter-spacing:-.01em;margin:0;color:var(--navy)}
.acct-tour{background:#fff;border:1px solid var(--line-cool);border-radius:16px;padding:14px 16px;margin:0 0 10px}
.acct-tour-head{display:flex;align-items:center;gap:14px}
.acct-tour-cal{flex:none;width:50px;height:54px;border-radius:12px;background:#f4ead2;color:var(--navy);display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1}
.acct-tour-cal span{font-size:12px;font-weight:700}
.acct-tour-cal b{font:600 21px/1.1 "Poppins",var(--font-body)}
.acct-tour-info{flex:1;min-width:0}
.acct-tour-info h3{margin:0;font-size:16px;font-weight:700;color:var(--navy);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.acct-tour-info p{margin:3px 0 0;font-size:13.5px;color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.acct-has-notes{color:#8a6420;font-weight:600}
.acct-pill{font-size:11.5px;font-weight:700;padding:2px 8px;border-radius:999px;background:#e6f4ec;color:#14532d}
.acct-pill.is-past{background:#eef1f5;color:#5d6675}
.acct-tour-btns{flex:none;display:flex;gap:8px}
.acct-tour-btns .button{display:inline-flex;align-items:center;gap:6px}
.acct-chev{transition:transform .2s}
.acct-toggle[aria-expanded="true"] .acct-chev{transform:rotate(180deg)}
.acct-panel{margin:12px 0 2px;padding-top:12px;border-top:1px solid var(--line-cool)}
.acct-panel[hidden]{display:none}
.acct-notes-form{display:grid;gap:10px}
.acct-notes-form textarea{margin:0;min-height:96px}
.acct-notes-actions{display:flex;align-items:center;gap:14px}
.acct-notes-show{background:#fbf6ea;border:1px solid #efe1bf;border-radius:12px;padding:10px 14px;margin:0 0 12px}
.acct-notes-show strong{font-size:13px;color:#8a6420}
.acct-notes-show p{margin:4px 0 0;font-size:14.5px;line-height:1.5;color:var(--ink)}
.acct-stops{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.acct-stops li{display:flex;align-items:center;gap:12px;padding:8px 4px;border-bottom:1px solid #f0ede6}
.acct-stops li:last-child{border-bottom:0}
.acct-stop-n{flex:none;width:26px;height:26px;border-radius:50%;background:var(--navy);color:#fff;display:grid;place-items:center;font-size:12.5px;font-weight:700}
.acct-stop-main{flex:1;min-width:0;display:flex;flex-direction:column}
.acct-stop-main b{font-size:14.5px;color:var(--navy)}
.acct-stop-main small{font-size:12.5px;color:var(--ink-soft)}
.acct-stop-time{flex:none;font-size:13px;font-weight:600;color:var(--ink-soft)}
.acct-open-link{display:inline-block;margin-top:10px;font-size:14px;font-weight:700;color:var(--navy);text-decoration:underline;text-underline-offset:3px}
.acct-empty{display:grid;gap:8px;justify-items:start;padding:22px;background:#fff;border:1px dashed var(--line-cool);border-radius:16px;color:var(--ink-soft)}
.acct-empty strong{color:var(--navy)}
.acct-side{display:grid;gap:12px}
.acct-card{background:#fff;border:1px solid var(--line-cool);border-radius:16px;padding:16px 18px}
.acct-card h2{margin-bottom:10px}
.acct-muted{margin:0;font-size:13.5px;line-height:1.5;color:var(--ink-soft)}
.acct-small{font-size:12.5px}
.acct-search-row{display:grid;grid-template-columns:1fr auto;gap:2px 10px;padding:8px 0;border-bottom:1px solid #f0ede6;font-size:14px}
.acct-search-row:last-child{border-bottom:0}
.acct-search-row a{font-weight:700;color:var(--navy)}
.acct-search-row span{grid-column:1;font-size:12.5px;color:var(--ink-soft)}
.acct-search-row form{grid-column:2;grid-row:1/3;align-self:center}
.acct-setting-line{display:flex;justify-content:space-between;gap:10px;margin:0;padding:7px 0;font-size:14px;color:var(--ink);border-bottom:1px solid #f0ede6}
.acct-setting-line b{font-size:12.5px;padding:2px 9px;border-radius:999px;background:#eef1f5;color:#5d6675;align-self:center}
.acct-setting-line b.is-on{background:#e6f4ec;color:#14532d}
/* Settings */
.acct-back{display:inline-flex;align-items:center;gap:6px;margin-bottom:14px;font-size:14px;font-weight:700;color:var(--navy);text-decoration:none}
.acct-settings-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start}
.acct-settings-col{display:grid;gap:16px}
.acct-form{display:grid;gap:12px}
.acct-form h2{margin:0}
.acct-form label{margin:0}
.acct-form input{margin-top:5px}
.acct-form .button{justify-self:start;margin-top:2px}
.acct-form .hint{font-weight:500;color:var(--ink-soft)}
.acct-email-pass[hidden],.acct-hint[hidden]{display:none}
.acct-hint{margin:-4px 0 0;font-size:13px;color:#8a6420}
.acct-switch{display:flex;align-items:flex-start;gap:12px;padding:10px 0;border-bottom:1px solid #f0ede6;cursor:pointer;text-transform:none;letter-spacing:0}
.acct-switch input{position:absolute;opacity:0;width:1px;height:1px}
.acct-switch-ui{flex:none;position:relative;width:46px;height:28px;border-radius:999px;background:#d5d9e0;transition:background .2s;margin-top:1px}
.acct-switch-ui::after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .2s}
.acct-switch input:checked + .acct-switch-ui{background:#34a853}
.acct-switch input:checked + .acct-switch-ui::after{transform:translateX(18px)}
.acct-switch input:focus-visible + .acct-switch-ui{outline:2px solid var(--navy);outline-offset:2px}
.acct-switch-text{display:flex;flex-direction:column;gap:2px;font-size:14.5px;color:var(--ink)}
.acct-switch-text b{color:var(--navy)}
.acct-switch-text small{font-size:13px;line-height:1.45;color:var(--ink-soft);font-weight:500}
.acct-logout{margin-top:20px}
@media (max-width:900px){.acct-grid{grid-template-columns:1fr}.acct-settings-grid{grid-template-columns:1fr}}
@media (max-width:640px){
  .acct{padding-top:16px}
  .acct-avatar{width:44px;height:44px;font-size:18px}
  .acct-id h1{font-size:23px}
  .acct-stats{gap:8px;margin-bottom:18px}
  .acct-stat{flex-direction:column;align-items:flex-start;gap:4px;padding:10px 12px}
  .acct-stat b{font-size:22px}
  .acct-stat span{font-size:12.5px}
  .acct-stat em{display:none}
  .acct-tour{padding:12px}
  .acct-tour-head{flex-wrap:wrap;gap:10px 12px}
  .acct-tour-cal{width:44px;height:48px}
  .acct-tour-btns{width:100%}
  .acct-tour-btns .button{flex:1;justify-content:center}
  .acct-tour-info p{white-space:normal}
}
@media (prefers-reduced-motion:reduce){.acct-chev,.acct-switch-ui,.acct-switch-ui::after{transition:none}}
.acct-tour[hidden]{display:none}
.acct-tour-info h3{font-family:"Poppins",var(--font-body);font-weight:600;letter-spacing:-.01em}
.acct-stat{align-items:center}
.acct-stat b{font-feature-settings:"lnum"}
.acct-show-more{width:100%;margin:2px 0 0;padding:12px;border:1px dashed var(--line-cool);border-radius:14px;background:transparent;color:var(--navy);font:700 14px var(--font-body);cursor:pointer}
.acct-show-more:hover{border-color:var(--navy);background:#fff}
/* Realtor dashboard in the same style: the photo button as the avatar,
   personal link and marketing tools in the side column. */
.acct-photo.realtor-avatar-edit{width:64px;height:64px}
.acct-photo .realtor-avatar-edit-photo{font-size:24px}
.acct-photo .realtor-avatar-edit-overlay{font-size:10px}
.acct-avatar-photo{overflow:hidden}
.acct-avatar-photo img{width:100%;height:100%;object-fit:cover;display:block}
.realtor-acct .tour-updated-badge{margin-left:0}
.acct-link-row{display:flex;gap:8px;margin:10px 0 8px}
.acct-link-row input{flex:1;min-width:0;margin:0;font-size:13.5px}
.acct-tool{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid #f0ede6}
.acct-tool:last-child{border-bottom:0}
.acct-tool img{flex:none;width:48px;height:48px;border-radius:6px;border:1px solid var(--line-cool)}
.acct-tool-icon{flex:none;width:48px;height:48px;border-radius:10px;background:#f4ead2;color:var(--navy);display:grid;place-items:center}
.acct-tool > span:not(.acct-tool-icon){flex:1;min-width:0;display:flex;flex-direction:column}
.acct-tool b{font-size:14.5px;color:var(--navy)}
.acct-tool small{font-size:12.5px;color:var(--ink-soft)}
.acct-tool .button{flex:none}
@media (max-width:640px){.acct-photo.realtor-avatar-edit{width:52px;height:52px}.acct-photo .realtor-avatar-edit-overlay span{display:none}}
.acct-id > div{min-width:0}
@media (hover:none){
  .acct-photo .realtor-avatar-edit-overlay{inset:auto 0 0 0;height:36%;opacity:1;background:rgba(15,32,57,.72)}
  .acct-photo .realtor-avatar-edit-overlay svg{width:12px;height:12px}
  .acct-photo .realtor-avatar-edit-overlay span{display:none}
}
/* Realtor dashboard: Client tours / My tours tabs, send-to-client form. */
.acct-tabs{display:inline-flex;gap:4px;padding:4px;border-radius:12px;background:#eceae4}
.acct-tab{border:0;background:transparent;padding:7px 14px;border-radius:9px;font:600 14.5px "Poppins",var(--font-body);color:#5d6675;cursor:pointer;display:inline-flex;align-items:center;gap:7px}
.acct-tab span{font:700 12px var(--font-body);padding:1px 7px;border-radius:999px;background:rgba(28,42,64,.08);color:inherit}
.acct-tab[aria-selected="true"]{background:#fff;color:var(--navy);box-shadow:0 1px 3px rgba(15,28,46,.12)}
.acct-tab:focus-visible{outline:2px solid var(--navy);outline-offset:1px}
.acct-list[hidden]{display:none}
.acct-sent{margin:3px 0 0 !important;font-size:12.5px !important;font-weight:600;color:#14532d !important}
.acct-send-form{display:grid;gap:10px}
.acct-send-form label{margin:0}
.acct-send-form input,.acct-send-form textarea{margin-top:5px}
.acct-send-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media (max-width:640px){.acct-send-grid{grid-template-columns:1fr}.acct-tabs{width:100%}.acct-tab{flex:1;justify-content:center;padding:7px 8px;font-size:14px}.acct-section-head{flex-wrap:wrap}.acct-section-head > .button{width:100%;justify-content:center}}
.realtor-tour-box .notes-form{margin-top:10px}
.realtor-send-title{margin:18px 0 8px;font-size:16px;color:var(--navy)}
.realtor-tour-box .acct-send-form{margin-top:4px}
.realtor-tour-box .acct-send-form .button{justify-self:start}
.acct-tour-btns .button{white-space:nowrap}
.realtor-tour-box .notes-form .button{justify-self:start}
@media (max-width:640px){.acct-tour-btns{gap:6px}.acct-tour-btns .button{padding-left:8px;padding-right:8px;font-size:13.5px;gap:4px}}
/* Itinerary: "Saved to your dashboard" line (+ realtor Send to client jump). */
.tour-saved-bar{display:flex;align-items:center;justify-content:space-between;gap:10px 14px;flex-wrap:wrap;margin:12px 0 0;padding:9px 12px;border-radius:12px;background:#e6f4ec;border:1px solid #b9dfc8}
.tour-saved-bar p{display:flex;align-items:center;gap:8px;margin:0;font-size:14.5px;color:#14532d}
.tour-saved-bar svg{flex:none}
.tour-saved-bar a:not(.ios-btn){font-weight:700;color:#14532d;text-decoration:underline;text-underline-offset:3px}
.tour-send-jump{display:inline-flex;align-items:center;gap:6px;text-decoration:none}
#send-to-client{scroll-margin-top:90px}
#send-to-client.is-flash{animation:send-flash 1.6s ease-out}
@keyframes send-flash{0%{box-shadow:0 0 0 0 rgba(226,196,140,.9)}40%{box-shadow:0 0 0 6px rgba(226,196,140,.65)}100%{box-shadow:0 0 0 0 rgba(226,196,140,0)}}
@media (max-width:640px){.tour-saved-bar{margin-top:10px;padding:8px 10px}.tour-saved-bar p{font-size:13.5px}.tour-send-jump{width:100%;justify-content:center}}
@media (prefers-reduced-motion:reduce){#send-to-client.is-flash{animation:none}}

/* First-visit prompts: cookie choice, then "See open houses near you?".
   A glass card floating at the bottom, above the phone tab bar. */
.ss-prompt{position:fixed;left:0;right:0;bottom:16px;z-index:60;display:flex;justify-content:center;padding:0 16px;pointer-events:none}
.ss-prompt[hidden],.ss-prompt-card[hidden]{display:none}
.ss-prompt-card{pointer-events:auto;display:flex;align-items:center;gap:14px;max-width:760px;width:100%;padding:14px 16px;border-radius:18px;
  background:rgba(255,255,255,.88);-webkit-backdrop-filter:blur(16px) saturate(1.4);backdrop-filter:blur(16px) saturate(1.4);
  border:1px solid rgba(15,28,46,.12);box-shadow:0 18px 40px -18px rgba(15,28,46,.45);animation:site-toast-in .3s ease-out}
.ss-prompt-card p{margin:0;flex:1;min-width:0;font-size:14px;line-height:1.45;color:var(--ink)}
.ss-prompt-card p strong{color:var(--navy)}
.ss-prompt-card p a{color:var(--navy);font-weight:600;text-decoration:underline;text-underline-offset:2px}
.ss-prompt-actions{flex:none;display:flex;gap:8px}
.ss-prompt-actions .ios-btn{height:38px;padding:0 16px;font-size:14.5px}
.ss-prompt-icon{flex:none;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:#0a7aff;color:#fff}
@media (max-width:640px){
  .ss-prompt{bottom:calc(84px + env(safe-area-inset-bottom,0px));padding:0 10px}
  .ss-prompt-card{flex-wrap:wrap;gap:10px 12px;padding:12px 14px}
  .ss-prompt-card p{font-size:13.5px}
  .ss-prompt-actions{width:100%}
  .ss-prompt-actions .ios-btn{flex:1;justify-content:center}
  .ss-prompt-icon{width:34px;height:34px}
}
@media (prefers-reduced-motion:reduce){.ss-prompt-card{animation:none}}

/* ---- Logo: the owl + "SundayShowings.com" ---------------------------- */
.ss-logo{display:inline-flex;align-items:center;gap:10px;margin:8px 0;text-decoration:none}
.ss-logo-owl{width:46px;height:46px;display:block;flex:none}
.ss-logo-word{font-family:"Poppins",var(--font-body);font-weight:700;font-size:23px;letter-spacing:-.025em;line-height:1;color:var(--navy);white-space:nowrap}
.ss-logo-word b{font-weight:inherit}
.ss-logo-word span{color:#c9a04a}
.ss-logo-lg .ss-logo-owl{width:58px;height:58px}
.ss-logo-lg .ss-logo-word{font-size:26px}
.site-header .brand,.site-footer .brand{text-decoration:none}
@media (max-width:640px){
  .site-header .nav{gap:12px}
  .site-header .ss-logo{gap:6px;margin:6px 0}
  .site-header .ss-logo-owl{width:36px;height:36px}
  .site-header .ss-logo-word{font-size:14.5px;line-height:1.02;display:flex;flex-direction:column;white-space:normal}
}
@media (max-width:370px){.site-header .ss-logo-owl{width:32px;height:32px}.site-header .ss-logo-word{font-size:13.5px}}
/* Owl: location prompt, How it works, empty states. */
.ss-prompt-owl{flex:none;width:54px;height:54px;display:block}
@media (max-width:640px){.ss-prompt-owl{width:44px;height:44px}}
.owl-guide{display:flex;align-items:flex-end;gap:22px;padding-top:72px;margin-bottom:-36px}
.owl-guide img{width:120px;height:auto;flex:none}
.owl-guide h2{font-family:"Poppins",var(--font-body);font-weight:600;font-size:30px;letter-spacing:-.02em;color:var(--navy);margin:0 0 6px}
.owl-guide p{margin:0 0 18px;color:var(--ink-soft);font-size:16px}
@media (max-width:640px){.owl-guide{padding-top:44px;gap:14px;margin-bottom:-20px}.owl-guide img{width:84px}.owl-guide h2{font-size:22px}.owl-guide p{font-size:14px;margin-bottom:10px}}
.owl-empty{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center}
.owl-empty .owl-empty-img{width:96px;height:auto;margin-bottom:2px}
.acct-empty.owl-empty{justify-items:center;align-items:center}
.empty.owl-empty{padding:28px 18px;background:#fff}
/* "Planning your route…" while Optimize My Route runs. */
.route-planning{position:fixed;inset:0;z-index:80;display:grid;place-items:center;background:rgba(251,250,247,.72);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.route-planning[hidden]{display:none}
.route-planning-card{display:flex;flex-direction:column;align-items:center;gap:6px;padding:26px 30px;border-radius:20px;background:#fff;border:1px solid var(--line-cool);box-shadow:0 24px 50px -24px rgba(15,28,46,.45);text-align:center}
.route-planning-card img{width:84px;height:84px;animation:owl-bob 1.4s ease-in-out infinite}
.route-planning-card strong{font:600 19px "Poppins",var(--font-body);color:var(--navy);margin-top:6px}
.route-planning-card span{font-size:14px;color:var(--ink-soft)}
@keyframes owl-bob{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-6px) rotate(-3deg)}}
@media (prefers-reduced-motion:reduce){.route-planning-card img{animation:none}}
/* Create account: the owl peeking over the form. */
.owl-peek-wrap{position:relative;margin-top:46px}
.owl-peek-wrap .owl-peek{position:absolute;z-index:0;right:22px;top:-64px;width:96px;height:auto;pointer-events:none;animation:owl-peek-up .7s .2s ease-out both}
.owl-peek-wrap .owl-signup-form{position:relative;z-index:1;background:#fff;border:1px solid var(--line-cool);border-radius:18px;padding:24px}
.owl-bubble{position:absolute;z-index:2;right:128px;top:-40px;background:#fff;color:var(--navy);border:1px solid #e3dccb;border-radius:14px;padding:8px 12px;font:600 13.5px "Poppins",var(--font-body);box-shadow:0 8px 20px -10px rgba(15,28,46,.35);white-space:nowrap;animation:owl-peek-up .5s .7s ease-out both}
.owl-bubble::after{content:"";position:absolute;right:-7px;top:12px;width:12px;height:12px;background:#fff;border-right:1px solid #e3dccb;border-bottom:1px solid #e3dccb;transform:rotate(-45deg)}
@keyframes owl-peek-up{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@media (max-width:640px){.owl-peek-wrap{margin-top:40px}.owl-peek-wrap .owl-peek{width:78px;right:12px;top:-52px}.owl-bubble{right:96px;top:-34px;font-size:12px}.owl-peek-wrap .owl-signup-form{padding:18px}}
@media (prefers-reduced-motion:reduce){.owl-peek-wrap .owl-peek,.owl-bubble{animation:none}}
.results .empty.owl-empty,.empty.owl-empty{padding:28px 18px}

/* New owl brand: the flat navy owl logo and its mascot poses (SVG). */
.ss-logo-owl{width:43px;height:46px;object-fit:contain}
.ss-logo-lg .ss-logo-owl{width:54px;height:58px}
.ss-prompt-owl{object-fit:contain}
.owl-guide img{width:150px;height:auto}
.owl-empty .owl-empty-img{width:128px;height:auto}
.route-planning-card img{width:80px;height:86px;object-fit:contain}
/* Sign-up: the peeking owl sits a little higher over the form */
.owl-peek-wrap{margin-top:62px}
.owl-peek-wrap .owl-peek{width:120px;height:auto;right:26px;top:-74px}
.owl-bubble{right:156px;top:-44px}
@media (max-width:640px){
  .site-header .ss-logo-owl{width:34px;height:36px}
  .owl-guide img{width:104px}
  .owl-empty .owl-empty-img{width:108px}
  .owl-peek-wrap{margin-top:52px}
  .owl-peek-wrap .owl-peek{width:98px;right:14px;top:-60px}
  .owl-bubble{right:118px;top:-38px}
}

/* Continue with Apple / Google */
.social-signin{display:flex;flex-direction:column;gap:10px;margin:0 0 4px}
.social-btn{display:flex;align-items:center;justify-content:center;gap:10px;height:50px;border-radius:999px;font-weight:600;font-size:16px;text-decoration:none;box-sizing:border-box}
.social-apple{background:#000;color:#fff}
.social-google{background:#fff;color:#1f1f1f;border:1px solid #747775}
.social-or{display:flex;align-items:center;gap:12px;margin:6px 0 10px;color:#7a8290;font-size:14px}
.social-or::before,.social-or::after{content:"";flex:1;height:1px;background:#e3e5e8}
.lead-form + .auth-switch{margin-top:14px}
section.narrow > .social-signin{max-width:520px}
@media (max-width:640px){.social-btn{height:48px}}

/* Sign-in gate on a freshly optimized tour (visitor not signed in) */
.tour-locked{position:relative}
.tour-gate-blur{filter:blur(7px);opacity:.75;pointer-events:none;user-select:none}
.tour-gate{position:fixed;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;padding:110px 16px 24px;pointer-events:none;overflow-y:auto}
.tour-gate-card{pointer-events:auto;position:relative;width:100%;max-width:420px;margin:auto;background:#fff;border:1px solid rgba(18,35,61,.10);border-radius:20px;box-shadow:0 24px 60px rgba(18,35,61,.22);padding:30px 28px 22px;text-align:center}
.tour-gate-owl{position:absolute;left:50%;bottom:100%;margin-bottom:-1px;width:118px;height:auto;transform:translateX(-50%)}
.tour-gate-card h2{margin:0 0 8px;font-size:26px;color:var(--navy)}
.tour-gate-summary{margin:0 0 10px;color:var(--navy);font-size:16px}
.tour-gate-copy{margin:0 0 20px;color:#4f5867;font-size:15px;line-height:1.5}
.tour-gate-card .button{display:flex;width:100%;justify-content:center;box-sizing:border-box}
.tour-gate-login{margin:14px 0 0;font-size:15px;color:#4f5867}
.tour-gate-login a{color:var(--navy);font-weight:700;text-decoration:underline}
@media (max-width:640px){.tour-gate{padding:96px 12px 16px;align-items:flex-start}.tour-gate-card{padding:26px 18px 18px;border-radius:18px}.tour-gate-owl{width:100px}.tour-gate-card h2{font-size:23px}}

.field-hint{display:block;margin-top:6px;font-size:13px;line-height:1.4;color:#6b7380;font-weight:400;text-transform:none;letter-spacing:0}

/* Build My Tour: compact one-line settings, like the search filter bar */
.tour-form .form-grid{gap:10px;padding:12px 16px 14px;align-items:end}
.tour-form .form-grid label{font-size:11px;letter-spacing:.04em}
.tour-form .form-grid input,.tour-form .form-grid select{height:40px;padding:7px 10px;font-size:14px;margin-top:4px;box-sizing:border-box}
.tour-form .start-address-field{grid-column:1/-1;min-width:0}
.start-address-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;flex-wrap:wrap}
.start-address-head .location-toggle{display:inline-flex;align-items:center;gap:4px;margin:0;font-size:12px;text-decoration:none;white-space:nowrap}
.start-address-head .location-toggle:hover{text-decoration:underline}
.start-address-head .location-status{flex-basis:100%;order:3;margin:2px 0 0;font-size:12px}
.start-address-head .location-status:not(.is-error){display:none}
.tour-form .start-address-field input{margin-top:4px;width:100%}
@media (min-width:641px){.tour-form .form-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (min-width:1000px){
  .tour-form .form-grid{grid-template-columns:minmax(240px,2.4fr) minmax(140px,1.15fr) minmax(118px,1fr) minmax(118px,1fr) minmax(112px,.9fr)}
  .tour-form .start-address-field{grid-column:auto}
}
@media (max-width:640px){
  .tour-form .form-grid{grid-template-columns:1fr 1fr;padding:12px}
  .tour-form .form-grid>label:last-child{grid-column:auto}
}
/* Other days these homes are open: a clear, tappable box */
.tour-day-note{margin:14px 0 0;padding:14px 16px;border:1px solid #e6d3a8;background:#fbf4e4;border-radius:12px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}
.tour-day-note[hidden]{display:none}
.tour-day-note p{margin:0;display:flex;align-items:flex-start;gap:9px;font-size:15px;color:var(--ink);line-height:1.4;flex:1 1 300px}
.tour-day-note p svg{flex:none;margin-top:1px;color:#a77b2c}
.tour-day-note strong{color:var(--navy)}
.tour-day-chips{display:flex;flex-wrap:wrap;gap:8px}
.tour-day-chip{display:inline-flex;flex-direction:column;align-items:flex-start;gap:1px;border:0;background:var(--navy);color:#fff;font:700 15px var(--font-body);padding:10px 18px;border-radius:12px;cursor:pointer;text-transform:none;letter-spacing:0;line-height:1.2}
.tour-day-chip small{font-weight:500;font-size:12.5px;opacity:.85}
.tour-day-chip:hover{background:var(--navy-2)}
@media (max-width:640px){.tour-day-chips{width:100%}.tour-day-chip{flex:1 1 140px}}
.tour-day-note p span{display:block}

/* Build My Tour: one compact box for homes that won't fit the chosen day/times */
.tour-fit{margin:12px 0 4px;padding:12px 16px;border:1px solid var(--line);background:#fff;border-radius:14px;color:var(--ink);font-size:14.5px;line-height:1.4}
.tour-fit[hidden]{display:none}
.tour-fit p{margin:0}
.tour-fit-title{display:flex;align-items:center;gap:8px;font-weight:700;font-size:16px;color:var(--navy)}
.tour-fit-title::before{content:"";flex:none;width:20px;height:20px;background:no-repeat center/20px}
.tour-fit-title.is-ok::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='11' fill='%231a7f4f'/%3E%3Cpath d='M7 12.5l3.2 3.2L17 9' fill='none' stroke='%23fff' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
.tour-fit-title.is-warn::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23b7791f' d='M12 2 1 21h22L12 2z'/%3E%3Cpath d='M12 9v5' stroke='%23fff' stroke-width='2.4' stroke-linecap='round'/%3E%3Ccircle cx='12' cy='17.4' r='1.4' fill='%23fff'/%3E%3C/svg%3E")}
.tour-fit-text{margin-top:4px!important;color:var(--ink-soft)}
.tour-fit-list{margin:4px 0 0;padding-left:20px;color:var(--ink-soft)}
.tour-fit-list li{margin:1px 0}
.tour-fit-list strong{color:var(--navy)}
.tour-fit-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin-top:10px}
.tour-fit-ask{font-weight:700;color:var(--ink)!important}
p.tour-fit-ask{margin-top:8px!important;font-weight:600}
.tour-fit .tour-day-chips{display:flex;flex-wrap:wrap;gap:6px;margin:0}
.tour-fit .tour-day-chip{flex-direction:row;align-items:baseline;gap:6px;padding:7px 14px;border-radius:999px;font-size:14px}
.tour-fit .tour-day-chip small{font-size:12px}
.tour-fit-agent{margin-top:10px;padding-top:10px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px}
.tour-fit-agent p{flex:1 1 260px;color:var(--ink-soft)}
.tour-fit-agent strong{color:var(--navy)}
.tour-fit-agent-btn{display:inline-flex;align-items:center;justify-content:center;padding:8px 16px;border-radius:999px;background:#e2c48c;color:var(--navy);font-weight:700;font-size:14px;text-decoration:none;white-space:nowrap}
.tour-fit-agent-btn:hover{background:#d8b56f}
@media (max-width:640px){.tour-fit{padding:12px}.tour-fit .tour-day-chip{flex:0 1 auto}.tour-fit-agent-btn{width:100%}}
.showing-homes{list-style:none;margin:6px 0 22px;padding:0;display:grid;gap:8px}
.showing-homes li{padding:12px 14px;background:#fff;border:1px solid var(--line);border-radius:12px;color:var(--ink-soft)}
.showing-homes strong{color:var(--navy)}
.showing-homes span{display:block;font-size:13.5px;margin-top:2px}
.tour-miss-agent{margin:12px 0 4px;padding:12px 0 0 0}
.tour-status .tour-miss-agent p{display:block;margin:0;font-size:15px}

.tour-panel .section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.tour-clear-form{margin:0}
.tour-clear-btn{display:inline-flex;align-items:center;gap:6px;margin-top:6px;padding:8px 14px;border:1px solid var(--line-cool);border-radius:999px;background:#fff;color:#a2342b;font:600 14px var(--font-body);cursor:pointer;white-space:nowrap}
.tour-clear-btn:hover{border-color:#a2342b;background:#fdf3f2}
.tour-fit-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;margin-top:8px}
.tour-fit-sub{font-weight:600;color:var(--ink)}
.tour-fit-days{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
.tour-fit .tour-fit-list{margin-top:6px}
/* Build My Tour panel: a soft blue so it stands apart from the search below */
.tour-panel{background:#ebf1f9;border:1px solid #cfdaea}
.tour-panel .tour-form .form-grid{background:#fff;border-color:#d6dfec}
.tour-panel .tour-select-row:not(.wont-fit){background:#fff;border-radius:10px;padding-left:12px;padding-right:12px;margin-bottom:6px;border:1px solid #dbe3ef}
.tour-panel .eyebrow{color:#a77b2c}
@media (max-width:640px){
  .tour-panel{position:relative}
  .tour-panel .tour-clear-form{position:absolute;top:14px;right:14px}
  .tour-panel .tour-clear-btn{margin:0;padding:6px 11px;font-size:13px}
  .tour-panel .section-head h2{white-space:nowrap}
}

.tour-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 18px;min-width:0}
.tour-head h2{margin:0}
.tour-head-sub{margin:0;color:var(--ink-soft);font-size:16px}
.tour-panel .section-head{align-items:center;margin-bottom:14px}
.tour-panel .tour-clear-btn{margin-top:0}
.tour-fit-top{margin-top:0!important}
.tour-fit p.tour-fit-sub{margin-top:8px}
@media (max-width:640px){
  .tour-panel .tour-clear-form{position:static}
  .tour-panel .section-head{align-items:flex-start}
  .tour-head-sub{font-size:14.5px}
}
@media (max-width:640px){
  .tour-panel .section-head{display:grid;grid-template-columns:1fr auto;align-items:center;gap:6px 10px}
  .tour-panel .tour-head{display:contents}
  .tour-panel .tour-head h2{grid-column:1;grid-row:1;font-size:26px}
  .tour-panel .tour-clear-form{grid-column:2;grid-row:1}
  .tour-panel .tour-head-sub{grid-column:1/-1;grid-row:2}
  .tour-panel .tour-clear-btn{padding:6px 10px;font-size:13px}
}
@media (max-width:640px){.tour-panel{padding:18px 16px}.tour-panel .tour-head h2{font-size:24px}.tour-panel .section-head{margin-right:0}}

/* Owl peeking over the settings box, just left of Start over (wide screens only) */
.tour-settings{position:relative}
.tour-settings .form-grid{position:relative;z-index:1}
.tour-peek-owl,.tour-peek-bubble,.tour-peek-hands{display:none}
@media (min-width:1000px){
  .tour-peek-owl{display:block;position:absolute;z-index:0;right:150px;top:-41px;width:80px;height:auto;pointer-events:none;animation:owl-peek-up .7s .2s ease-out both}
  .tour-peek-hands{display:block;position:absolute;z-index:2;right:150px;top:-9px;width:80px;height:21px;pointer-events:none;animation:owl-peek-up .7s .2s ease-out both}
}
@media (min-width:1200px){
  .tour-peek-bubble{display:block;position:absolute;z-index:2;right:240px;top:-36px;background:#fff;color:var(--navy);border:1px solid #d6dfec;border-radius:12px;padding:5px 10px;font:600 12.5px "Poppins",var(--font-body);box-shadow:0 6px 16px -10px rgba(15,28,46,.35);white-space:nowrap;animation:owl-peek-up .5s .7s ease-out both}
  .tour-peek-bubble::after{content:"";position:absolute;right:-6px;top:9px;width:10px;height:10px;background:#fff;border-right:1px solid #d6dfec;border-bottom:1px solid #d6dfec;transform:rotate(-45deg)}
}
@media (prefers-reduced-motion:reduce){.tour-peek-owl,.tour-peek-bubble,.tour-peek-hands{animation:none}}
@media (min-width:1000px){.tour-peek-owl,.tour-peek-hands{right:178px}}
@media (min-width:1200px){.tour-peek-bubble{right:268px}}

.add-to-tour-btn.is-busy{opacity:.75;cursor:progress}
.tour-select-row.is-removing{opacity:.45;pointer-events:none}

/* Build My Tour colors: gold settings box, navy fit message, white home rows */
.tour-panel .tour-form .form-grid{background:#f6e9c9;border-color:#e6d3a3}
.tour-panel .tour-form .form-grid label,
.tour-panel .start-address-head label{color:var(--navy)}
.tour-panel .start-address-head .location-toggle{color:var(--navy)}
.tour-panel .start-address-head .location-toggle:hover{color:#000}
.tour-panel .tour-form .form-grid input,
.tour-panel .tour-form .form-grid select{background:#fff;border-color:#e0c98f}
.tour-panel .tour-form .form-grid input:focus,
.tour-panel .tour-form .form-grid select:focus{border-color:var(--navy);outline:2px solid var(--navy);outline-offset:1px}

#tour-fit{background:var(--navy);border-color:var(--navy);color:#fff}
#tour-fit .tour-fit-title,
#tour-fit .tour-fit-sub,
#tour-fit .tour-fit-ask,
#tour-fit .tour-fit-list strong,
#tour-fit .tour-fit-agent strong{color:#fff!important}
#tour-fit .tour-fit-text,
#tour-fit .tour-fit-list,
#tour-fit .tour-fit-agent p{color:#d5deeb}
#tour-fit .tour-fit-agent{border-top-color:rgba(255,255,255,.18)}
#tour-fit .tour-fit-title.is-ok::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='11' fill='%2334b26f'/%3E%3Cpath d='M7 12.5l3.2 3.2L17 9' fill='none' stroke='%23fff' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
#tour-fit .tour-fit-title.is-warn::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23e2c48c' d='M12 2 1 21h22L12 2z'/%3E%3Cpath d='M12 9v5' stroke='%2312233d' stroke-width='2.4' stroke-linecap='round'/%3E%3Ccircle cx='12' cy='17.4' r='1.4' fill='%2312233d'/%3E%3C/svg%3E")}
#tour-fit .tour-day-chip{background:#fff;color:var(--navy)}
#tour-fit .tour-day-chip small{color:var(--ink-soft);opacity:1}
#tour-fit .tour-day-chip:hover{background:#e8eef7}
#tour-fit .tour-day-chip:focus-visible,
#tour-fit .tour-fit-agent-btn:focus-visible{outline:2px solid #fff;outline-offset:2px}

/* Tour rows: every row stays white; a home that won't fit gets a soft red
   note beside its address instead of a taller tinted box */
.tour-panel .tour-select-row.wont-fit{background:#fff;border-radius:10px;padding-left:12px;padding-right:12px;margin-bottom:6px;border:1px solid #dbe3ef}
.tour-panel .tour-select-row > div:first-of-type{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:20px;align-items:center}
.tour-panel .tour-select-row > div:first-of-type > :not(.tour-fit){grid-column:1}
.tour-panel .tour-select-row .tour-fit{grid-column:2;grid-row:1 / span 3;justify-self:start;align-self:center;max-width:440px;margin:0;padding:7px 12px;border:1px solid #f1cdc8;border-radius:10px;background:#fbeceb;color:#a3291c;font-weight:600;font-size:13px;line-height:1.35}
.tour-panel .tour-select-row .tour-fit[hidden]{display:none}
@media (max-width:760px){
  .tour-panel .tour-select-row > div:first-of-type{display:block}
  .tour-panel .tour-select-row .tour-fit{display:block;margin-top:8px;max-width:none}
  .tour-panel .tour-select-row .tour-fit[hidden]{display:none}
}

/* Tour rows: first photo of each home, beside Must see */
.tour-panel .tour-select-row{grid-template-columns:minmax(0,1fr) auto auto auto}
.tour-row-photo{display:block;width:104px;height:72px;border-radius:8px;object-fit:cover;background:#e8edf4;flex:none}
.tour-row-photo.is-empty{background:#e8edf4 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239aa8ba' stroke-width='1.8' stroke-linejoin='round'%3E%3Cpath d='M3 11 12 4l9 7v9H3z'/%3E%3Cpath d='M10 20v-5h4v5'/%3E%3C/svg%3E") no-repeat center/28px}
.tour-also-open{font-weight:700;color:var(--navy)}
@media (max-width:640px){
  .tour-panel .tour-select-row{grid-template-columns:minmax(0,1fr) auto;column-gap:14px;row-gap:8px}
  .tour-panel .tour-select-row > div:first-of-type{grid-column:1;grid-row:1 / span 3}
  .tour-panel .tour-select-row .tour-row-photo{grid-column:2;grid-row:1;width:88px;height:62px;justify-self:end}
  .tour-panel .tour-select-row .must-see{grid-column:2;grid-row:2;justify-self:end}
  .tour-panel .tour-select-row .danger{grid-column:2;grid-row:3;justify-self:end}
}
.tour-miss-tip{display:block;margin-top:2px;font-style:italic;color:var(--muted);font-size:.93em}
.tour-gate-realtor{margin:8px 0 0;padding-top:12px;border-top:1px solid var(--line);font-size:14px;color:#4f5867}
.tour-gate-realtor a{color:var(--navy);font-weight:700;text-decoration:underline}

/* Messages along the top let taps pass through to the page underneath
   (e.g. Back / Edit right after signing in); only the close button catches taps. */
.site-toast{pointer-events:none}
.site-toast .site-toast-x,.site-toast a,.site-toast button{pointer-events:auto}


/* ==========================================================================
   Search page layout: filters stick under the header, Build My Tour is a
   box pinned bottom right, "won't fit" floats top right, owl tips top left.
   ========================================================================== */
:root{--hdr-h:62px;--band-h:66px}
.search-page.section{padding-top:0}
.search-page .filter-band{position:sticky;top:var(--hdr-h);z-index:26;margin:0 calc(50% - 50vw);padding:10px calc(50vw - 50%);background:#fff;border-bottom:1px solid var(--line-cool);transition:box-shadow .15s}
.search-page .filter-band.is-stuck{box-shadow:0 8px 18px -14px rgba(15,28,46,.4)}
.search-page .filter-band .search-filters{margin:0;padding:0;border:0;border-radius:0;background:none;box-shadow:none;position:relative}
.search-page .filter-band .filter-bar{align-items:flex-end}
.search-page .search-head{margin-top:18px}
/* include toggles now live inside More filters */
.more-filters .include-toggles{margin:0;display:flex;flex-wrap:wrap;gap:8px}
.search-page .filter-band .more-filters{position:absolute;left:auto;right:0;top:calc(100% + 10px);width:min(720px,100%);margin:0;max-height:calc(100vh - var(--hdr-h) - var(--band-h) - 30px);overflow:auto;background:#fff;border:1px solid var(--line-cool);border-radius:16px;box-shadow:0 24px 50px -22px rgba(15,28,46,.4);padding:18px 20px;z-index:6}
.search-page .filter-band .more-filters[hidden]{display:none}

/* Price: button + slider over a bar chart */
.field-price-pop{position:relative}
.price-pill{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:150px;height:38px;padding:0 12px;border:1px solid var(--line-cool);border-radius:8px;background:#fff;font:500 14px var(--font-body);color:var(--ink);cursor:pointer;white-space:nowrap}
.price-pill:hover,.price-pill[aria-expanded=true]{border-color:var(--navy-2)}
.price-pill[aria-expanded=true] svg{transform:rotate(180deg)}
.price-pop{position:absolute;top:calc(100% + 10px);left:0;width:380px;box-sizing:border-box;background:#fff;border:1px solid var(--line-cool);border-radius:16px;box-shadow:0 24px 50px -22px rgba(15,28,46,.42);padding:16px 20px 18px;z-index:7;font-size:14px;color:var(--ink)}
.price-pop[hidden]{display:none}
.price-pop-title{margin:0 0 8px;font-weight:700;font-size:15px}
.price-hist{height:64px;display:flex;align-items:flex-end;gap:1px;margin:0 11px}
.price-hist i{flex:1;background:#d4dce7;border-radius:2px 2px 0 0}
.price-hist i.is-in{background:var(--navy-2)}
.price-range{position:relative;height:24px;margin-top:-1px}
.price-track{position:absolute;left:11px;right:11px;top:10px;height:4px;background:#dde3ea;border-radius:2px}
.price-track-fill{position:absolute;top:0;bottom:0;background:var(--navy);border-radius:2px}
.price-range input[type=range]{position:absolute;inset:0;width:100%;height:24px;margin:0;background:none;pointer-events:none;-webkit-appearance:none;appearance:none}
.price-range input[type=range]::-webkit-slider-runnable-track{background:none;height:24px}
.price-range input[type=range]::-moz-range-track{background:none}
.price-range input[type=range]::-webkit-slider-thumb{pointer-events:auto;-webkit-appearance:none;appearance:none;width:22px;height:22px;margin-top:1px;border-radius:50%;background:#fff;border:2px solid var(--navy);box-shadow:0 2px 6px rgba(15,28,46,.25);cursor:grab}
.price-range input[type=range]::-moz-range-thumb{pointer-events:auto;width:18px;height:18px;border-radius:50%;background:#fff;border:2px solid var(--navy);box-shadow:0 2px 6px rgba(15,28,46,.25);cursor:grab}
.price-range input[type=range]:focus-visible::-webkit-slider-thumb{outline:3px solid var(--brass);outline-offset:1px}
.price-ends{display:flex;justify-content:space-between;font-size:12.5px;color:var(--muted);margin:2px 2px 0}
.price-inputs{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:end;margin-top:12px}
.price-inputs label{display:flex;flex-direction:column;gap:4px;font-size:12.5px;font-weight:600;color:var(--ink-soft)}
.price-inputs input{height:40px;width:100%;box-sizing:border-box;border:1px solid var(--line-cool);border-radius:8px;padding:0 12px;font:500 15px var(--font-body);color:var(--ink)}
.price-dash{padding-bottom:10px;color:var(--muted)}
.price-actions{display:flex;justify-content:space-between;align-items:center;margin-top:14px}
.price-actions .button{padding:10px 26px}

/* Build My Tour: box pinned bottom right */
.search-page .tour-panel.tour-dock{position:fixed;right:20px;bottom:20px;z-index:35;width:440px;box-sizing:border-box;max-height:calc(100vh - var(--band-bottom,130px) - 74px);display:flex;flex-direction:column;margin:0;padding:0;background:#fff;border:1px solid var(--line-cool);border-radius:18px;box-shadow:0 26px 60px -22px rgba(15,28,46,.5)}
.search-page .tour-panel.tour-dock[hidden]{display:none}
.tour-dock.is-bump{animation:dock-bump .45s ease-out}
@keyframes dock-bump{30%{transform:translateY(-6px)}}
.tour-dock .section-head{margin:0 !important;padding:12px 14px 10px 18px !important;border-bottom:1px solid var(--line-cool);display:flex !important;align-items:center !important;gap:10px;flex:none}
.tour-dock-toggle{flex:1;min-width:0;display:flex;align-items:center;justify-content:space-between;gap:10px;background:none;border:0;padding:4px 0;text-align:left;cursor:pointer;color:inherit;font:inherit}
.tour-dock .tour-head{display:flex !important;flex-direction:column;gap:1px;min-width:0}
.tour-dock-title{display:flex;align-items:center;gap:8px;font-family:var(--font-display);font-weight:600;font-size:21px;line-height:1.15;color:var(--navy)}
.tour-dock .tour-head-sub{font-size:12.5px !important;color:var(--muted) !important;margin:0}
.tour-dock-chev{flex:none;color:var(--navy);transform:rotate(180deg);transition:transform .2s}
.tour-dock.is-collapsed .tour-dock-chev{transform:none}
.tour-dock .tour-clear-btn{padding:6px 11px;font-size:13px;margin:0}
.tour-dock-body{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain}
.tour-dock.is-collapsed .tour-dock-body{display:none}
.tour-dock.is-collapsed .section-head{border-bottom:0}
.tour-dock .tour-form{display:flex;flex-direction:column}
.tour-dock .tour-selection{padding:10px 12px 2px}
.search-page .tour-dock .tour-select-row,.search-page .tour-dock .tour-select-row.wont-fit{display:grid;grid-template-columns:60px minmax(0,1fr) auto;grid-template-areas:"photo info must" "photo info remove";column-gap:12px;row-gap:4px;align-items:start;padding:10px;margin:0 0 8px;border:1px solid #e3e8ef;border-radius:12px;background:#fff}
.search-page .tour-dock .tour-select-row > div:first-of-type{grid-area:info;display:block}
.tour-dock .tour-select-row strong{font-size:14px;line-height:1.3}
.tour-dock .tour-select-row span{font-size:12.5px}
.tour-dock .tour-row-photo{grid-area:photo;width:60px;height:46px;border-radius:7px}
.tour-dock .tour-select-row .must-see{grid-area:must;justify-self:end;font-size:12.5px;white-space:nowrap}
.tour-dock .tour-select-row .danger{grid-area:remove;justify-self:end;font-size:12.5px;padding:0}
.search-page .tour-dock .tour-select-row .tour-fit{display:block;margin:6px 0 0;max-width:none;grid-column:auto;grid-row:auto;padding:6px 10px;font-size:12.5px}
.search-page .tour-dock .tour-select-row .tour-fit[hidden]{display:none}
.tour-dock .tour-settings{padding:12px 14px 4px;border-top:1px solid var(--line-cool);margin-top:4px}
.search-page .tour-dock .tour-form .form-grid{grid-template-columns:1fr 1fr !important;gap:8px 10px;padding:0;background:#fff;border:0;border-radius:0}
.tour-dock .tour-form .form-grid .start-address-field{grid-column:1/-1}
.tour-dock .tour-form .form-grid label{font-size:11.5px}
.tour-dock .tour-form .form-grid input,.tour-dock .tour-form .form-grid select{height:38px;font-size:14px}
.search-page .tour-dock .tour-form > .button.big{margin:10px 14px 14px;width:auto;flex:none}
/* the owl peeks over the top of the box */
.tour-dock .tour-peek-owl,.tour-dock .tour-peek-hands,.tour-dock .tour-peek-bubble{display:block;position:absolute;animation:none}
.tour-dock .tour-peek-owl{left:34px;right:auto;top:-49px;width:76px;height:auto;z-index:-1}
.tour-dock .tour-peek-hands{left:34px;right:auto;top:-10px;width:76px;height:20px;z-index:1}
.tour-dock .tour-peek-bubble{left:118px;right:auto;top:-40px;z-index:1;background:#fff;color:var(--navy);border:1px solid #d6dfec;border-radius:12px;padding:5px 10px;font:600 12.5px "Poppins",var(--font-body);box-shadow:0 6px 16px -10px rgba(15,28,46,.35);white-space:nowrap}
.tour-dock .tour-peek-bubble::after{content:"";position:absolute;left:-6px;right:auto;top:9px;width:10px;height:10px;background:#fff;border-left:1px solid #d6dfec;border-bottom:1px solid #d6dfec;border-right:0;transform:rotate(45deg)}
.tour-dock.is-collapsed .tour-peek-bubble{display:none}
/* the box replaces the floating Optimize Route button and the "added" toast */
.search-page ~ #optimize-route-btn,body[data-page=search] #optimize-route-btn{display:none !important}

/* What won't fit: floats top right, tucks behind a tab */
.fit-float{position:fixed;right:20px;top:calc(var(--band-bottom,130px) + 14px);z-index:34;display:flex;align-items:flex-start;max-width:min(560px,calc(100vw - 40px))}
.fit-float[hidden]{display:none}
.search-page .fit-float .tour-fit{margin:0;max-height:calc(100vh - var(--band-bottom,130px) - 60px);overflow:auto;border-radius:0 14px 14px 14px;box-shadow:0 24px 50px -22px rgba(15,28,46,.55)}
.fit-float-tab{flex:none;display:flex;align-items:center;gap:6px;margin-top:0;padding:10px 12px 10px 10px;border:0;border-radius:12px 0 0 12px;background:var(--navy);color:#fff;font:600 13.5px var(--font-body);cursor:pointer;box-shadow:0 14px 30px -16px rgba(15,28,46,.6)}
.fit-float-tab svg{transform:rotate(180deg);transition:transform .2s}
.fit-float.is-collapsed .fit-float-tab svg{transform:none}
.fit-float:not(.is-collapsed) [data-fit-tab-label]{display:none}
.fit-float.is-collapsed .tour-fit{display:none !important}
.fit-float.is-collapsed .fit-float-tab{border-radius:12px;background:#a3291c}

/* Owl tips: the 3 steps, top left, until the first home is added */
.search-page .build-intro.owl-tip{position:fixed;left:20px;bottom:20px;z-index:33;display:flex;align-items:flex-end;gap:4px;margin:0;padding:0;background:none;border:0;box-shadow:none;max-width:380px}
.search-page .build-intro.owl-tip[hidden]{display:none}
.owl-tip-owl{flex:none;width:86px;height:auto;margin-bottom:-4px}
.owl-tip-bubble{position:relative;background:#fff;border:1px solid #d6dfec;border-radius:16px;padding:14px 34px 14px 16px;box-shadow:0 20px 44px -22px rgba(15,28,46,.5)}
.owl-tip-bubble::before{content:"";position:absolute;left:-7px;bottom:28px;width:12px;height:12px;background:#fff;border-left:1px solid #d6dfec;border-bottom:1px solid #d6dfec;transform:rotate(45deg)}
.owl-tip-title{margin:0 0 8px;font-family:var(--font-display);font-weight:600;font-size:17px;color:var(--navy)}
.search-page .owl-tip ol{display:flex;flex-direction:column;gap:6px;margin:0;padding:0;list-style:none}
.search-page .owl-tip li{display:flex;align-items:center;gap:9px;font-size:14px;line-height:1.3;color:var(--ink)}
.owl-tip-x{position:absolute;top:6px;right:8px;width:28px;height:28px;border:0;background:none;font-size:20px;line-height:1;color:var(--muted);cursor:pointer;border-radius:8px}
.owl-tip-x:hover{background:#f1f3f6;color:var(--navy)}

/* Map beside the list lines up under the sticky filters */
.search-page .results-layout[data-view=split] .map-pane{top:calc(var(--hdr-h) + var(--band-h) + 12px);height:calc(100vh - var(--hdr-h) - var(--band-h) - 24px)}
.search-page .pane-bar{top:calc(var(--hdr-h) + var(--band-h))}

@media (max-width:640px){
  .search-page .filter-band{padding:8px calc(50vw - 50%)}
  .search-page .filter-band .filters-toggle{margin:0}
  .search-page .filter-band .search-filters.is-open{max-height:calc(100vh - var(--hdr-h) - 140px);overflow:auto;padding:12px 2px 6px}
  .search-page .filter-band .more-filters{position:static;width:auto;max-height:none;box-shadow:none;border-radius:12px;margin-top:10px}
  .price-pop{position:fixed;left:12px;right:12px;width:auto;top:calc(var(--hdr-h) + 70px)}
  .search-page .tour-panel.tour-dock{left:10px;right:10px;width:auto;bottom:calc(72px + env(safe-area-inset-bottom));max-height:calc(100vh - var(--hdr-h) - 150px)}
  .tour-dock .tour-peek-owl,.tour-dock .tour-peek-hands,.tour-dock .tour-peek-bubble{display:none}
  .fit-float{left:10px;right:10px;justify-content:flex-end;max-width:none}
  .search-page .build-intro.owl-tip{left:10px;right:10px;bottom:calc(72px + env(safe-area-inset-bottom));max-width:none}
  .owl-tip-owl{width:60px}
  #back-to-top-btn{display:none !important}
}

.price-range input[type=range]{border:0;padding:0;box-shadow:none;outline:none}
/* Compact one-line band: labels are read by screen readers, the controls say what they are */
@media (min-width:641px){
  .search-page .filter-band .filter-bar{align-items:center}
  .search-page .filter-band .filter-bar > .filter-field > .filter-label,
  .search-page .filter-band .filter-bar > label.filter-field{font-size:0;gap:0}
  .search-page .filter-band .filter-bar > label.filter-field > *{font-size:14px}
  .search-page .filter-band .filter-bar > .filter-field > .filter-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .search-page .filter-band [data-inline] .multiselect{min-height:40px}
  .search-page .filter-band .filter-bar .filter-field select,.search-page .filter-band .filter-bar .filter-field input,.search-page .filter-band .price-pill,.search-page .filter-band .more-filters-btn,.search-page .filter-band .search-go{height:40px}
}
.search-page .tour-dock .tour-form{margin:0}
.search-page .tour-dock .tour-selection{margin:0}
/* the note sits beside the open tour box, never under it */
.search-page .tour-dock:not(.is-collapsed):not([hidden]) ~ .fit-float{right:476px}
.fit-float{z-index:36}
@media (max-width:1100px){.search-page .tour-dock:not(.is-collapsed):not([hidden]) ~ .fit-float{right:20px}}
.search-page .build-intro.owl-tip{flex-wrap:nowrap}
.search-page .owl-tip strong{color:var(--navy);font-weight:700}
.search-page .owl-tip .step-num{flex:none}
@media (max-width:640px){
  .search-page .tour-dock .tour-select-row,.search-page .tour-dock .tour-select-row.wont-fit{grid-template-columns:56px minmax(0,1fr) auto;grid-template-areas:"photo info must" "photo info remove";padding:10px}
  .search-page .tour-dock .tour-select-row > div:first-of-type{grid-area:info;display:block}
  .search-page .tour-dock .tour-select-row .tour-row-photo{grid-area:photo;width:56px;height:44px;justify-self:start}
  .search-page .tour-dock .tour-select-row .must-see{grid-area:must}
  .search-page .tour-dock .tour-select-row .danger{grid-area:remove}
  .tour-dock .tour-head-sub{display:none !important}
  .tour-dock-title{font-size:19px}
  .search-page .fit-float .tour-fit{border-radius:14px}
  .search-page .tour-dock:not(.is-collapsed):not([hidden]) ~ .fit-float{right:10px}
}

.search-page .owl-tip li{display:block}
.search-page .owl-tip .step-num{display:inline-flex;margin-right:8px;vertical-align:-4px}
.search-page .build-intro.owl-tip{max-width:420px}
.search-page .owl-tip-bubble{text-align:left}
.search-page .tour-dock .tour-form .form-grid input,.search-page .tour-dock .tour-form .form-grid select{border-color:var(--line-cool)}
.search-page .owl-tip ol{align-items:stretch}
@media (min-width:641px){
  .search-page .filter-band .filter-bar > *{align-self:center;margin-top:0;margin-bottom:0}
  .search-page .filter-band [data-inline] .multiselect{min-height:42px;box-sizing:border-box;padding-top:2px;padding-bottom:2px}
  .search-page .filter-band .filter-bar .filter-field select,.search-page .filter-band .filter-bar .filter-field input:not([type=hidden]):not(.multiselect-input),.search-page .filter-band .price-pill,.search-page .filter-band .more-filters-btn,.search-page .filter-band .search-go{height:42px;box-sizing:border-box}
}

/* ---- Round 2 ---- */
/* owl peeks over the right side of the tour box */
.tour-dock .tour-peek-owl{left:auto;right:30px}
.tour-dock .tour-peek-hands{left:auto;right:30px}
.tour-dock .tour-peek-bubble{left:auto;right:114px}
.tour-dock .tour-peek-bubble::after{left:auto;right:-6px;border-left:0;border-bottom:1px solid #d6dfec;border-right:1px solid #d6dfec;transform:rotate(-45deg)}
/* won't fit: red tab top right, the full note bottom left */
.fit-float{position:static;display:block;max-width:none}
.fit-float[hidden]{display:none}
.fit-float-tab{position:fixed;right:20px;top:calc(var(--band-bottom,130px) + 14px);z-index:36;border-radius:12px;background:#a3291c}
.fit-float-tab svg{transform:none !important}
.fit-float:not(.is-collapsed) .fit-float-tab{background:var(--navy)}
.fit-float:not(.is-collapsed) [data-fit-tab-label]{display:inline}
.fit-float-box{position:fixed;left:20px;bottom:20px;z-index:36;width:min(540px,calc(100vw - 40px))}
.fit-float.is-collapsed .fit-float-box{display:none}
.search-page .fit-float .tour-fit{border-radius:14px;max-height:calc(100vh - var(--band-bottom,130px) - 60px)}
.search-page .fit-float .tour-fit-agent{padding-right:4px}
.fit-float-close{position:absolute;top:8px;right:8px;z-index:1;width:30px;height:30px;border:0;border-radius:8px;background:rgba(255,255,255,.12);color:#fff;font-size:20px;line-height:1;cursor:pointer}
.fit-float-close:hover{background:rgba(255,255,255,.22)}
.search-page .fit-float .tour-fit-top{padding-right:34px}
.search-page .tour-dock:not(.is-collapsed):not([hidden]) ~ .fit-float{right:auto}
/* back to top on the left */
body[data-page=search] #back-to-top-btn{right:auto;left:20px}
.search-page .build-intro.owl-tip{bottom:20px}

/* Computers: the page holds still; the list scrolls beside the map */
@media (min-width:1024px){
  body[data-page=search]{height:100vh;overflow:hidden}
  .search-page.section{padding-bottom:0}
  .search-page .view-toggle{display:none}
  .search-page .results-layout,.search-page .results-layout[data-view]{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px;align-items:stretch;height:calc(100vh - var(--layout-top,260px))}
  .search-page .results-pane,.search-page .results-layout[data-view] .results-pane{display:block;height:100%;overflow-y:auto;overscroll-behavior:contain;padding:0 8px 24px 2px;scrollbar-gutter:stable}
  .search-page .results-layout[data-view] .map-pane{display:block;position:relative;top:auto;height:100%;padding-bottom:0}
  .search-page .results-layout[data-view] .results-map{height:100%;min-height:0;margin:0;border-radius:14px}
  .search-page .results-layout .cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
  .search-page .results-pane .pane-bar{top:0}
  .search-page .results-pane .site-footer{margin:28px -8px 0 0;border-radius:14px;padding:28px 0 18px}
  .search-page .results-pane .site-footer .footer-grid{grid-template-columns:1fr 1fr;width:auto;padding:0 24px}
  .search-page .results-pane .site-footer .footer-bottom{width:auto;padding:0 24px}
  .search-page .search-head{margin:10px 0 0}
  .search-page .results-bar{margin:10px 0 10px}
  body[data-page=search] .tour-dock{bottom:20px}
}
@media (min-width:1024px) and (max-width:1180px){.search-page .results-layout .cards{grid-template-columns:1fr}}
@media (max-width:640px){
  .fit-float-tab{right:10px}
  .fit-float-box{left:10px;right:10px;width:auto;bottom:calc(72px + env(safe-area-inset-bottom))}
  body[data-page=search] #back-to-top-btn{left:12px}
}
body.fit-open #back-to-top-btn{opacity:0 !important;pointer-events:none !important}
.search-page .tour-panel.tour-dock{max-height:calc(100vh - var(--band-bottom,130px) - 124px)}
@media (max-width:640px){.search-page .tour-panel.tour-dock{max-height:calc(100vh - var(--band-bottom,130px) - 150px)}}
@media (max-width:640px){.search-page .build-intro.owl-tip{bottom:calc(72px + env(safe-area-inset-bottom))}}

/* ---- Round 3 ---- */
.fit-float-close{width:auto;height:30px;display:inline-flex;align-items:center;gap:4px;padding:0 10px;font:600 13px var(--font-body);border-radius:999px;background:rgba(255,255,255,.16)}
.search-page .fit-float .tour-fit-top{padding-right:78px}
/* Build My Tour (header) and Search: rounded rectangles like the other buttons */
.site-header .nav .button.small{border-radius:10px}
.search-page .filter-band .search-go{border-radius:10px}
/* Search page uses more of the screen */
body[data-page=search] .wrap{width:calc(100% - 40px);max-width:1760px}
@media (max-width:640px){body[data-page=search] .wrap{width:calc(100% - 28px)}}
/* Text above the listings in the home page's typeface */
.search-page .results-bar,.search-page .results-count,.search-page .results-count strong,.search-page .save-search-btn,.search-page .sort-control,.search-page .sort-control select,.search-page .ai-understood{font-family:"Poppins",var(--font-body)}
.search-page .results-count{font-size:15px;font-weight:500;color:var(--ink-soft)}
.search-page .results-count strong{font-size:16px;font-weight:600;color:var(--navy)}
/* Open/close tab sits above the box, away from Start over */
.tour-dock-tab{position:absolute;left:18px;bottom:100%;display:inline-flex;align-items:center;gap:5px;height:30px;padding:0 12px 0 14px;border:1px solid var(--line-cool);border-bottom:0;border-radius:10px 10px 0 0;background:#fff;color:var(--navy);font:600 13px "Poppins",var(--font-body);cursor:pointer;box-shadow:0 -6px 14px -10px rgba(15,28,46,.35)}
.tour-dock-tab:hover{background:#f4f6f9}
.tour-dock-tab svg{transition:transform .2s}
.tour-dock.is-collapsed .tour-dock-tab svg{transform:rotate(180deg)}
.tour-dock .section-head .tour-head{flex:1;min-width:0}
.tour-dock-title{font-family:"Poppins",var(--font-body);font-weight:600;letter-spacing:-.025em;font-size:20px}
.tour-dock-title .pill{font-family:var(--font-body);letter-spacing:0}
.tour-dock.is-collapsed{border-top-left-radius:18px}

/* ---- Round 4 ---- */
/* Realtor banner: button beside the text, rounded rectangle */
.agent-strip-inner{justify-content:flex-start}
.agent-strip-inner .button{border-radius:10px}
/* "Share your location" card: top of the search page, clear of the tour box */
body[data-page=search] .ss-prompt{top:calc(var(--band-bottom,130px) + 12px);bottom:auto;z-index:25}
@media (max-width:640px){body[data-page=search] .ss-prompt{top:auto;bottom:calc(142px + env(safe-area-inset-bottom,0px));z-index:34}}
/* Back to top: bottom-left corner on the search page */
body[data-page=search] #back-to-top-btn,body[data-page=search] #back-to-top-btn.is-stacked{left:20px;right:auto;bottom:20px}
/* Owl tips: a clear Hide button, and a soft exit */
.owl-tip.is-leaving{opacity:0;transform:translateY(8px);transition:opacity .25s,transform .25s}
@media (prefers-reduced-motion:reduce){.owl-tip.is-leaving{transition:none}}

/* Local Realtor card in the header, beside the logo */
.agent-chip{flex:0 1 380px;min-width:0;display:flex;align-items:center;gap:10px;margin-right:auto;padding:6px 10px 6px 8px;border:1px solid #d6dfec;border-radius:12px;background:#f3f6fb;color:var(--navy);text-decoration:none;line-height:1.25;transition:border-color .15s,background .15s}
.agent-chip:hover{border-color:var(--navy-2);background:#eaf0f8}
.agent-chip-photo{flex:none;width:34px;height:34px;border-radius:50%;object-fit:cover}
.agent-chip-photo[hidden]{display:none}
.agent-chip-text{display:flex;flex-direction:column;gap:1px;min-width:0}
.agent-chip-top{display:flex;align-items:center;gap:6px;min-width:0}
.agent-chip-top strong{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.agent-chip-tag{flex:none;font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#7a5413;background:#f6e9c9;border-radius:6px;padding:2px 6px}
.agent-chip-tag[hidden]{display:none}
.agent-chip-sub{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--ink-soft);min-width:0;white-space:nowrap}
.agent-chip-sub [data-sponsor-name]{overflow:hidden;text-overflow:ellipsis}
.agent-chip-sub [data-sponsor-name][hidden]{display:none}
.agent-chip-cta{flex:none;font-weight:700;color:var(--navy)}
.agent-chip-arrow{flex:none;color:var(--navy)}
.nav .agent-chip + #site-nav{margin-left:0}
@media (max-width:1180px){.agent-chip{display:none}}
/* Less space between the filters and the list / map */
.search-page .search-head{margin:0}
.search-page .ai-understood{margin:8px 0 0}
.search-page .results-bar{margin:8px 0 8px;min-height:44px}
.search-page .results-count{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 18px}
.search-page .results-count .builders-note{display:inline;margin:0;font-size:13.5px}
@media (min-width:1024px){
  .search-page .filter-band{padding-top:8px;padding-bottom:8px}
  .search-page .results-bar{margin:6px 0 8px}
}
.search-page .results-count{display:block}
.search-page .results-count .builders-note{margin-left:16px;white-space:nowrap}
.nav nav a,.nav nav .button{white-space:nowrap}
.agent-chip{flex:1 1 auto;max-width:400px;min-width:240px}
@media (max-width:1319px){.agent-chip{display:none}}

/* Double-click the map to list the homes there */
.map-pane{position:relative}
.map-hint{position:absolute;left:50%;bottom:34px;transform:translateX(-50%);z-index:3;display:flex;align-items:center;gap:8px;max-width:calc(100% - 24px);padding:8px 8px 8px 14px;border-radius:12px;background:var(--navy);color:#fff;font:600 13.5px var(--font-body);box-shadow:0 14px 30px -14px rgba(15,28,46,.6);white-space:nowrap}
.map-hint[hidden]{display:none}
.map-hint > span{overflow:hidden;text-overflow:ellipsis}
.map-hint-touch{display:none}
@media (hover:none){.map-hint-wide{display:none}.map-hint-touch{display:inline}}
.map-hint-x{flex:none;width:26px;height:26px;border:0;border-radius:8px;background:rgba(255,255,255,.14);color:#fff;font-size:18px;line-height:1;cursor:pointer}
.map-hint-x:hover{background:rgba(255,255,255,.25)}
.map-area-dot{display:block;width:18px;height:18px;border-radius:50%;background:rgba(201,160,74,.95);border:3px solid #fff;box-shadow:0 0 0 6px rgba(201,160,74,.28),0 2px 6px rgba(0,0,0,.3)}
.results-pane.is-area-loading{opacity:.55;transition:opacity .15s}
.area-note{margin:0 0 12px;padding:10px 14px;border-radius:10px;background:#eef3fa;border:1px solid #d6e0ee;color:var(--ink-soft);font:500 14px "Poppins",var(--font-body)}
.area-note strong{color:var(--navy)}
.area-note .link-button{font-weight:700;color:var(--navy);text-decoration:underline;margin-left:4px}
.results-pane.is-area-loading{opacity:1}
.results-pane.is-area-loading #results-body{opacity:.45;transition:opacity .15s}
.area-loading{position:sticky;top:0;z-index:4;display:flex;align-items:center;gap:10px;margin:0 0 10px;padding:10px 14px;border-radius:10px;background:var(--navy);color:#fff;font:600 14px "Poppins",var(--font-body);box-shadow:0 10px 24px -14px rgba(15,28,46,.6)}
.area-loading .map-start-spinner{border-color:rgba(255,255,255,.35);border-top-color:#fff}
/* One line above the list: count, what's not shown, Save and Sort */
.nav nav .link-button{white-space:nowrap}
@media (min-width:1024px){
  .search-page .results-bar{flex-wrap:nowrap;align-items:center}
  .search-page .results-count{flex:1 1 auto;min-width:0}
  .search-page .results-tools{flex:none}
  .search-page .save-long{display:none}
  .search-page .save-short{display:inline}
  .search-page .sort-control > span{display:none}
}
@media (min-width:1024px) and (max-width:1279px){.search-page .results-bar{flex-wrap:wrap}}

/* First-time walkthrough of the tour box */
.tour-tut-shade{position:fixed;inset:0;z-index:60;background:rgba(15,28,46,.45);animation:tut-fade .2s ease-out}
body.tour-tut-on .search-page .tour-panel.tour-dock{z-index:61}
.tour-tut{position:fixed;z-index:62;right:484px;bottom:40px;width:min(380px,calc(100vw - 32px));display:flex;align-items:flex-end;gap:6px;animation:tut-fade .2s ease-out}
.tour-tut-owl{flex:none;width:72px;height:auto;margin-bottom:-2px}
.tour-tut-body{position:relative;flex:1;min-width:0;background:#fff;border-radius:16px;padding:16px 18px 14px;box-shadow:0 24px 50px -20px rgba(15,28,46,.6)}
.tour-tut-body::before{content:"";position:absolute;left:-7px;bottom:26px;width:12px;height:12px;background:#fff;transform:rotate(45deg)}
.tour-tut-step{margin:0 0 2px;font:600 12px var(--font-body);color:var(--brass-dark)}
.tour-tut-title{margin:0 0 4px;font:600 18px "Poppins",var(--font-body);letter-spacing:-.01em;color:var(--navy);padding-right:26px}
.tour-tut-text{margin:0;font-size:14.5px;line-height:1.45;color:var(--ink-soft)}
.tour-tut-text strong{color:var(--navy)}
.tour-tut-actions{display:flex;justify-content:space-between;align-items:center;margin-top:12px}
.tour-tut-actions .button{border-radius:10px;padding:8px 18px}
.tour-tut-x{position:absolute;top:8px;right:8px;width:28px;height:28px;border:0;border-radius:8px;background:none;font-size:20px;line-height:1;color:var(--muted);cursor:pointer}
.tour-tut-x:hover{background:#f1f3f6;color:var(--navy)}
.tour-tut-focus{position:relative;outline:3px solid #c9a04a;outline-offset:3px;border-radius:12px}
@keyframes tut-fade{from{opacity:0}to{opacity:1}}
@media (prefers-reduced-motion:reduce){.tour-tut-shade,.tour-tut{animation:none}}
@media (max-width:1100px){.tour-tut{right:auto;left:16px;bottom:auto;top:calc(var(--band-bottom,130px) + 12px)}}
@media (max-width:640px){.tour-tut{left:10px;right:10px;width:auto;top:calc(var(--hdr-h,60px) + 10px)}.tour-tut-owl{width:56px}}
.tour-optimize-btn{display:inline-flex;align-items:center;justify-content:center;gap:9px}
.tour-optimize-btn svg{flex:none;color:#f0b323}

/* Home: How it works as three numbered steps */
.home-how{padding-top:40px;padding-bottom:20px}
.how-step{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#e2c48c;color:var(--navy);font:700 17px "Poppins",var(--font-body)}
.home-how p strong{color:var(--navy)}
.home-how-note{margin-top:0;margin-bottom:56px;color:var(--ink-soft);font-size:15px}
.home-how-note a{color:var(--navy);font-weight:700}
@media (max-width:900px){.home-how{grid-template-columns:1fr;gap:28px}}

/* Map tip: small, glassy, bottom left (clear of the tour box) */
.map-hint{left:12px;right:auto;bottom:30px;transform:none;max-width:min(330px,calc(100% - 24px));padding:6px 6px 6px 11px;gap:6px;border-radius:10px;font-size:12.5px;white-space:normal;line-height:1.3;
  background:rgba(18,35,61,.62);-webkit-backdrop-filter:blur(10px) saturate(1.3);backdrop-filter:blur(10px) saturate(1.3);border:1px solid rgba(255,255,255,.18);box-shadow:0 8px 20px -12px rgba(15,28,46,.5)}
.map-hint svg{flex:none;width:14px;height:14px}
.map-hint-x{width:22px;height:22px;font-size:15px}

/* My Itinerary refresh: Poppins throughout, stops as white cards with the
   listing photo (like the Build My Tour box), and on wide screens the notes
   and Realtor boxes sit in a sticky column on the right. */
.itin-page,.itin-page h1,.itin-page h2,.itin-page h3,.itin-page button,.itin-page input,.itin-page textarea,.itin-page .ios-btn,.itin-page .button{font-family:"Poppins",var(--font-body)}
.itin-page h1,.itin-page h2,.itin-page h3{font-weight:600;letter-spacing:-.02em;color:var(--navy)}
body[data-page="tour-result"] .itin-page h1{font-size:34px;line-height:1.15;margin:2px 0 4px}
body[data-page="tour-result"] .itin-page .lead{font-size:14.5px;color:var(--ink-soft)}
.itin-page .eyebrow{font-family:"Poppins",var(--font-body);font-weight:600;letter-spacing:.02em;text-transform:none;font-size:14px;color:#96692a}
.itin-page .edit-tour-link{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:10px;background:#fff;border:1px solid #e3e8ef;font-weight:600;color:var(--navy);text-decoration:none}
.itin-page .edit-tour-link:hover{border-color:var(--navy)}
/* Stats: one white strip, like the phone version. */
body[data-page="tour-result"] .itin-page .route-stats{display:flex;gap:0;margin:14px 0 0;border:1px solid #e3e8ef;border-radius:14px;background:#fff;overflow:hidden;max-width:520px}
body[data-page="tour-result"] .itin-page .route-stats > span{flex:1;display:flex;flex-direction:column;align-items:center;text-align:center;padding:8px 4px;margin:0;font-size:12.5px;line-height:1.25;color:var(--ink-soft)}
body[data-page="tour-result"] .itin-page .route-stats > span + span{border-left:1px solid #e3e8ef}
body[data-page="tour-result"] .itin-page .route-stats b{font-family:"Poppins",var(--font-body);font-weight:600;font-size:19px;color:var(--navy);margin:0}
.itin-page .tour-status{border:1px solid #e3e8ef;border-radius:16px;padding:14px 16px;background:#fff}
.itin-page .tour-status p{font-size:14px}
.itin-page .maps-buttons .ios-btn{border-radius:12px;font-weight:600;font-size:15px}
.itin-page .ios-btn-dark{background:var(--navy)}
.itin-page .ios-btn-dark:hover{background:#0b1626}
/* Stops */
.itin-page .timeline{margin:18px 0 8px}
.itin-page .timeline-stop{grid-template-columns:34px minmax(0,1fr);gap:12px;padding:0 0 14px}
.itin-page .sequence{width:34px;height:34px;margin-top:30px;font-size:14px;font-family:"Poppins",var(--font-body);font-weight:600;box-shadow:0 0 0 4px var(--paper)}
.itin-page .timeline-stop::after{left:16px;top:64px;bottom:-30px;background:#dfe5ee}
.itin-page .drive-note{display:inline-flex;align-items:center;margin:0 0 6px;padding:3px 10px;border-radius:999px;background:#f6eedd;color:#7a5a22;font-size:11.5px;font-weight:600;letter-spacing:0;text-transform:none}
.stop-card{display:grid;grid-template-columns:112px minmax(0,1fr) auto;gap:14px;align-items:center;padding:10px 14px 10px 10px;background:#fff;border:1px solid #e3e8ef;border-radius:14px;box-shadow:0 8px 20px -18px rgba(15,28,46,.45)}
.stop-photo{display:block;width:112px;height:80px;border-radius:10px;object-fit:cover;background:#e8edf4}
.stop-photo.is-empty{background:#e8edf4 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239aa8ba' stroke-width='1.8' stroke-linejoin='round'%3E%3Cpath d='M3 11 12 4l9 7v9H3z'/%3E%3Cpath d='M10 20v-5h4v5'/%3E%3C/svg%3E") no-repeat center/28px}
.stop-info{min-width:0}
.itin-page .stop-info h3{margin:0;font-size:17px;line-height:1.25}
.itin-page .stop-info p{margin:2px 0 0}
.itin-page .stop-meta{font-size:14px;color:var(--ink-soft)}
.itin-page .stop-info .listing-courtesy{font-size:11.5px}
.stop-time{display:flex;flex-direction:column;align-items:flex-end;gap:6px;text-align:right}
.stop-time strong{display:flex;flex-direction:column;font-weight:600;font-size:16px;line-height:1.2;color:var(--navy);white-space:nowrap}
.stop-time strong span{font-weight:500;font-size:12.5px;color:var(--muted)}
.stop-time .pill{margin:0}
/* Side boxes */
.itin-side .cta-box{padding:20px 22px;border-radius:18px;border-color:#e3e8ef;box-shadow:0 14px 30px -24px rgba(15,28,46,.45);margin:16px 0 0}
.itin-side .cta-box h2{font-size:20px;line-height:1.25;margin:0 0 6px}
.itin-side .cta-box p{font-size:14px;line-height:1.5;color:var(--ink-soft)}
.itin-side .cta-box textarea,.itin-side .cta-box input{border-radius:10px}
.itin-side .cta-box .button{border-radius:12px;font-weight:600}
.itin-side .ad-slot{margin:16px 0 0}
@media (min-width:1024px){
  body[data-page="tour-result"] .itin-page{max-width:1160px}
  .itin-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:36px;align-items:start}
  .itin-layout:not(:has(.itin-side > *)){grid-template-columns:minmax(0,1fr)}
  .itin-side{position:sticky;top:84px;margin-top:14px}
  .itin-side .cta-box:first-child{margin-top:0}
  .itin-page .itinerary-head-row,.itin-page > h1,.itin-page > .lead{max-width:none}
}
@media (max-width:640px){
  body[data-page="tour-result"] .itin-page h1{font-size:25px;margin:0}
  .itin-page .edit-tour-link{padding:6px 11px;font-size:13.5px}
  body[data-page="tour-result"] .itin-page .route-stats{margin:10px 0;max-width:none}
  body[data-page="tour-result"] .itin-page .route-stats b{font-size:17px}
  .itin-page .timeline-stop{grid-template-columns:28px minmax(0,1fr);gap:9px;padding-bottom:12px}
  .itin-page .sequence{width:28px;height:28px;font-size:13px;margin-top:28px}
  .itin-page .timeline-stop::after{left:13px;top:58px}
  .stop-card{grid-template-columns:84px minmax(0,1fr);grid-template-areas:"photo info" "photo time";gap:4px 11px;padding:8px;align-items:start}
  .stop-photo{grid-area:photo;width:84px;height:84px}
  .stop-info{grid-area:info}
  .stop-time{grid-area:time;flex-direction:row;align-items:center;flex-wrap:wrap;gap:6px 8px;text-align:left}
  .stop-time strong{flex-direction:row;font-size:14.5px}
  .stop-time strong span{font-size:14.5px;font-weight:600;color:var(--navy)}
  .itin-page .stop-info h3{font-size:16px}
  .itin-page .stop-meta{font-size:13px}
  .itin-page .stop-info .listing-courtesy{font-size:10.5px;line-height:1.3}
  .itin-side .cta-box{padding:18px}
}
/* Keep the double-click tip clear of the Build My Tour box on wide screens. */
@media (min-width:1024px){
  .search-page:has(.tour-dock:not([hidden])) .map-hint{max-width:max(150px,calc(100% - 490px))}
}
.home-how h2{font-family:"Poppins",var(--font-body);font-weight:600;letter-spacing:-.02em;font-size:21px}
.home-how{padding-top:52px}
@media (min-width:641px){body[data-page="home"] .home-how-note{width:min(calc(100% - 96px),1160px)}}
/* Build My Tour box: homes scroll; "Modify my tour" and Optimize My Route
   stay pinned to the bottom of the open box. */
.search-page .tour-dock .tour-dock-body{display:flex;flex-direction:column;overflow:hidden}
.search-page .tour-dock.is-collapsed .tour-dock-body{display:none}
.search-page .tour-dock .tour-form{flex:1;min-height:0}
.search-page .tour-dock .tour-form > *{flex:none}
.search-page .tour-dock .tour-form > .tour-selection{flex:1 1 auto;min-height:60px;overflow-y:auto;overscroll-behavior:contain}
.search-page .tour-dock .tour-settings{padding:0;margin:0;border-top:1px solid var(--line-cool);box-shadow:0 -10px 16px -14px rgba(15,28,46,.35)}
.tour-settings-toggle{display:flex;align-items:center;gap:9px;width:100%;margin:0;padding:11px 16px;background:#f7f8fa;border:0;cursor:pointer;color:var(--navy);text-align:left;font:500 14px "Poppins",var(--font-body);white-space:nowrap}
.tour-settings-toggle:hover{background:#eef1f5}
.tour-settings-toggle > svg:first-child{flex:none;color:#96692a}
.tour-settings-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}
.tour-settings-label strong{font-weight:600}
.tour-settings-label span{color:var(--muted);font-size:12.5px;margin-left:4px}
.tour-settings-chev{flex:none;transition:transform .2s}
.tour-settings-toggle[aria-expanded="true"] .tour-settings-chev{transform:rotate(180deg)}
.search-page .tour-dock .tour-settings .form-grid{padding:4px 14px 2px !important}
.search-page .tour-dock .tour-settings .form-grid[hidden]{display:none !important}
.search-page .tour-dock .tour-form > .button.big{margin:8px 14px 14px}
.tour-settings-toggle.tour-tut-focus{outline-offset:-3px}
@media (max-width:400px){.tour-settings-label span{display:none}}

/* Search bar: every control the same 44px height on one centered line,
   with the same chevron on every dropdown. Same for Save and Sort. */
.search-page .filter-band select,.search-page .results-tools #sort-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;
  background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2312233d' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center/14px;
  padding-right:36px !important;cursor:pointer}
@media (min-width:641px){
  body.search-page .filter-band .filter-bar,body .search-page .filter-band .filter-bar{align-items:center !important}
  .search-page .filter-band .filter-bar > label.filter-field{flex-direction:row;align-items:center;height:44px;margin:0}
  .search-page .filter-band .filter-bar > .filter-field{align-self:center;margin:0}
  .search-page .filter-band .filter-bar .filter-field select,
  .search-page .filter-band .filter-bar .filter-field input:not([type=hidden]):not(.multiselect-input),
  .search-page .filter-band .price-pill,.search-page .filter-band .more-filters-btn,.search-page .filter-band .search-go{height:44px !important;box-sizing:border-box;border-radius:10px;margin:0}
  .search-page .filter-band .filter-bar .filter-field select{padding-left:14px}
  .search-page .filter-band .price-pill{padding:0 12px 0 14px}
  .search-page .filter-band .filter-bar > .field-area{height:44px;min-height:0;box-sizing:border-box;border-radius:10px;display:flex;flex-direction:row;align-items:center;padding-top:0;padding-bottom:0}
  .search-page .results-tools{align-items:center}
  .search-page .results-tools .save-search-btn,.search-page .results-tools #sort-select{height:40px;box-sizing:border-box;margin:0}
  .search-page .results-tools .save-search-btn{padding:0 16px}
  .search-page .results-tools #sort-select{padding-left:16px;border-radius:999px;font-weight:600}
}
@media (min-width:641px){
  .search-page .filter-band .filter-bar > .field-area > *{flex:1 1 auto;min-width:0}
  .search-page .filter-band .filter-bar .filter-field select,.search-page .results-tools #sort-select{padding-top:0 !important;padding-bottom:0 !important;line-height:normal}
}
@media (min-width:641px){.search-page .filter-band .more-filters-btn,.search-page .filter-band .price-pill,.search-page .filter-band .search-go{line-height:1;display:inline-flex;align-items:center}
  .search-page .filter-band .search-go{justify-content:center}}
@media (min-width:641px) and (max-width:1180px){
  .search-page .filter-band .filter-bar > :not(.field-area):not(input):not(.save-search-star):not(.mid-filters-btn):not(.search-go):not(.sort-pill){flex:1 1 0;min-width:0}
  .search-page .filter-band .filter-bar > .filter-field select,.search-page .filter-band .filter-bar .price-pill{width:100%;min-width:0}
  .search-page .filter-band .more-filters-btn{justify-content:center}
}
@media (max-width:640px){
  .search-page .filter-band .filter-bar{align-items:flex-start}
  .search-page .filter-band .filter-bar .filter-field select,.search-page .filter-band .price-pill{height:44px;box-sizing:border-box}
  .search-page .filter-band .filter-bar > .field-area .multiselect{min-height:44px;box-sizing:border-box;padding-top:0;padding-bottom:0}
  .search-page .filter-band .filter-bar > .field-area .multiselect-chips:not(:empty){padding-top:6px}
  .search-page .filter-band .filter-bar > .field-area .multiselect-input{height:42px}
  .search-page .filter-band select,.search-page .results-tools #sort-select{padding-right:28px !important;background-position:right 9px center;background-size:12px}
}
@media (min-width:641px){.search-page .filter-band .filter-bar > label.field-date > span{font-size:13px !important;font-weight:600;color:var(--muted);text-transform:none;letter-spacing:0;margin-right:8px;white-space:nowrap}
  .search-page .filter-band .filter-bar > label.field-date{font-size:13px;color:var(--muted)}}

/* One header everywhere: the full-width Find Open Houses header. */
.site-header > .wrap.nav{width:calc(100% - 40px);max-width:1760px}
@media (max-width:640px){.site-header > .wrap.nav{width:calc(100% - 28px)}}
.search-page .owl-tip li .step-num{flex:none}
.owl-tip-title{font-family:"Poppins",var(--font-body);letter-spacing:-.01em}

/* "Tutorial" link beside the results count: quiet, replays the walkthrough. */
.tut-replay{display:inline-flex;align-items:center;gap:5px;margin-left:12px;padding:3px 10px 3px 8px;border:1px solid var(--line-cool);border-radius:999px;background:#fff;color:var(--ink-soft);font:500 12.5px "Poppins",var(--font-body);cursor:pointer;vertical-align:middle;transition:color .15s,border-color .15s}
.tut-replay:hover{color:var(--navy);border-color:var(--navy)}
.tut-replay svg{color:#b8863a}
@media (max-width:640px){.tut-replay{margin:6px 0 0;font-size:12px}}

/* My Tour box: "Show my tour" / "Hide" is a gold pull-tab, open or closed,
   and the whole tucked-away box opens on click. */
.tour-dock .tour-dock-tab{height:38px;padding:0 16px 0 18px;gap:7px;background:#e2c48c;border-color:#d2b06f;color:var(--navy);font-size:14.5px;font-weight:600;border-radius:12px 12px 0 0;box-shadow:0 -8px 18px -10px rgba(150,105,42,.55)}
.tour-dock .tour-dock-tab:hover{background:#ecd3a3}
.tour-dock.is-collapsed .section-head{cursor:pointer}
.tour-dock.is-collapsed .section-head:hover .tour-dock-title{color:#96692a}
.tour-dock.is-empty-demo #tour-selection:not(:has(.tour-select-row))::before{content:"Homes you add show up here.";display:block;padding:18px 8px;text-align:center;color:var(--muted);font-size:14px;border:1.5px dashed var(--line-cool);border-radius:12px}

/* The house that hops into My Tour. */
.tour-fly{position:fixed;z-index:80;width:56px;height:56px;border-radius:14px;background:#fff center/cover no-repeat;border:2px solid #fff;box-shadow:0 12px 26px -8px rgba(15,28,46,.55);pointer-events:none;will-change:transform,opacity}
.tour-fly.is-icon{background:#12233d url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23e2c48c' stroke-width='2' stroke-linejoin='round'%3E%3Cpath d='M3 11 12 4l9 7v9H3z'/%3E%3Cpath d='M10 20v-5h4v5'/%3E%3C/svg%3E") no-repeat center/30px}

/* ---- For Realtors (refresh): Poppins, wide and condensed, card style of
   the My Tour box and itinerary. ---------------------------------------- */
.rl-page,.rl-page h1,.rl-page h2,.rl-page h3,.ah-page,.ah-page h1,.ah-page h2,.ah-page input,.ah-page select,.ah-page textarea,.ah-page button{font-family:"Poppins",var(--font-body)}
.rl-page{max-width:1160px;padding:36px 0 56px}
.rl-eyebrow,.ah-eyebrow{margin:0 0 6px;font:600 14px "Poppins",var(--font-body);color:#96692a;letter-spacing:.01em}
.rl-hero{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:48px;align-items:center}
.rl-hero h1{margin:0 0 12px;font-size:42px;line-height:1.1;font-weight:600;letter-spacing:-.025em;color:var(--navy)}
.rl-lead{margin:0 0 22px;font-size:16.5px;line-height:1.55;color:var(--ink-soft);max-width:560px}
.rl-actions{display:flex;flex-wrap:wrap;gap:10px}
.rl-btn{display:inline-flex;align-items:center;justify-content:center;height:48px;padding:0 22px;border-radius:12px;font:600 15.5px "Poppins",var(--font-body);text-decoration:none;white-space:nowrap;transition:background .15s,border-color .15s}
.rl-btn-primary{background:var(--navy);color:#fff}
.rl-btn-primary:hover{background:#0b1626;color:#fff}
.rl-btn-ghost{background:#fff;color:var(--navy);border:1px solid #d6dde8}
.rl-btn-ghost:hover{border-color:var(--navy)}
.rl-btn-gold{background:#e2c48c;color:var(--navy)}
.rl-btn-gold:hover{background:#ecd3a3}
.rl-btn-ghost-light{color:#fff;border:1px solid rgba(255,255,255,.35)}
.rl-btn-ghost-light:hover{border-color:#fff;color:#fff}
.rl-checks{display:flex;flex-wrap:wrap;gap:6px 18px;margin:18px 0 0;padding:0;list-style:none;font-size:14px;color:var(--ink-soft)}
.rl-checks li{display:flex;align-items:center;gap:7px}
.rl-checks li::before{content:"";width:18px;height:18px;border-radius:50%;background:#e2c48c url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2312233d' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4L18 8'/%3E%3C/svg%3E") no-repeat center/12px;flex:none}
.rl-preview{position:relative;padding:22px 0 64px 0}
.rl-tour-card{background:#fff;border:1px solid #e3e8ef;border-radius:18px;overflow:hidden;box-shadow:0 26px 50px -30px rgba(15,28,46,.5);max-width:400px}
.rl-tour-head{display:flex;align-items:center;gap:12px;padding:16px 18px;background:var(--navy);color:#fff}
.rl-tour-head small{display:block;font-size:11.5px;color:#c8d2e0}
.rl-tour-head strong{font-size:15px;font-weight:600}
.rl-avatar{width:40px;height:40px;border-radius:50%;background:#e2c48c;color:var(--navy);display:grid;place-items:center;font-weight:700;flex:none}
.rl-tour-body{padding:14px 18px 16px}
.rl-tour-date{margin:0 0 8px;font-weight:600;font-size:18px;color:var(--navy)}
.rl-tour-body ol{margin:0;padding:0;list-style:none;display:grid;gap:8px}
.rl-tour-body li{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--ink)}
.rl-tour-body li span{width:24px;height:24px;border-radius:50%;background:var(--navy);color:#fff;display:grid;place-items:center;font-size:12px;font-weight:700;flex:none}
.rl-tour-body li b{flex:1;font-weight:500}
.rl-tour-body li em{font-style:normal;font-weight:600;color:var(--navy)}
.rl-ping{position:absolute;right:0;bottom:0;max-width:300px;display:flex;gap:12px;align-items:flex-start;padding:13px 15px;background:#fff;border:1px solid #e3e8ef;border-radius:16px;box-shadow:0 20px 44px -24px rgba(15,28,46,.55);font-size:13px;line-height:1.4;color:var(--ink-soft)}
.rl-ping strong{display:block;font-size:14.5px;color:var(--navy);font-weight:600}
.rl-ping-icon{width:36px;height:36px;border-radius:11px;background:#f6e9c9;color:var(--navy);display:grid;place-items:center;flex:none}
.rl-features{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:44px 0 0}
.rl-feature{background:#fff;border:1px solid #e3e8ef;border-radius:16px;padding:20px 20px 18px}
.rl-icon{width:40px;height:40px;border-radius:12px;background:#f6e9c9;color:#96692a;display:grid;place-items:center}
.rl-feature h2{margin:12px 0 6px;font-size:17.5px;font-weight:600;letter-spacing:-.01em;color:var(--navy)}
.rl-feature p{margin:0;font-size:14.5px;line-height:1.55;color:var(--ink-soft)}
.rl-showcase{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:40px;align-items:center;margin:20px 0 0;padding:30px 32px;background:#fff;border:1px solid #e3e8ef;border-radius:18px}
.rl-showcase h2{margin:0 0 12px;font-size:28px;line-height:1.2;font-weight:600;letter-spacing:-.02em;color:var(--navy)}
.rl-showcase ul{margin:0 0 20px;padding:0;list-style:none;display:grid;gap:10px}
.rl-showcase li{padding-left:16px;position:relative;font-size:14.5px;line-height:1.55;color:var(--ink-soft)}
.rl-showcase li::before{content:"";position:absolute;left:0;top:.6em;width:7px;height:7px;border-radius:50%;background:#c9a04a}
.rl-showcase li strong{color:var(--navy);font-weight:600}
.rl-showcase-images{position:relative;min-height:340px}
.rl-flyer{width:58%;height:auto;border-radius:10px;box-shadow:0 24px 50px -20px rgba(15,28,46,.45);display:block}
.rl-banner{position:absolute;right:0;bottom:18px;width:76%;height:auto;border-radius:8px;box-shadow:0 18px 40px -16px rgba(15,28,46,.45)}
.rl-cta{display:flex;align-items:center;justify-content:space-between;gap:20px 32px;flex-wrap:wrap;margin:20px 0 0;padding:26px 32px;background:var(--navy);border-radius:18px;color:#fff}
.rl-cta h2{margin:0 0 4px;font-size:24px;font-weight:600;color:#fff;letter-spacing:-.02em}
.rl-cta p{margin:0;color:#c8d2e0;font-size:14.5px}
@media (max-width:900px){
  .rl-hero{grid-template-columns:1fr;gap:20px}
  .rl-features{grid-template-columns:1fr;gap:12px;margin-top:28px}
  .rl-showcase{grid-template-columns:1fr;padding:22px;gap:22px}
  .rl-showcase-images{min-height:0}
}
@media (max-width:640px){
  .rl-page{padding:20px 0 36px}
  .rl-hero h1{font-size:28px}
  .rl-lead{font-size:15px;margin-bottom:16px}
  .rl-actions .rl-btn{flex:1 1 auto}
  .rl-preview{padding:6px 0 70px}
  .rl-ping{left:28px;right:0;max-width:none}
  .rl-feature{padding:16px}
  .rl-showcase h2{font-size:22px}
  .rl-cta{padding:22px 20px}
  .rl-cta h2{font-size:20px}
}

/* ---- Request a Realtor (refresh) -------------------------------------- */
.ah-page{max-width:760px;padding:36px 0 56px}
.ah-page.has-realtor{max-width:1120px;display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:40px;align-items:start}
.ah-page h1{margin:0 0 8px;font-size:36px;line-height:1.12;font-weight:600;letter-spacing:-.025em;color:var(--navy)}
.ah-lead{margin:0 0 20px;font-size:16px;line-height:1.55;color:var(--ink-soft)}
.ah-form{background:#fff;border:1px solid #e3e8ef;border-radius:18px;padding:22px 24px;gap:14px;box-shadow:0 14px 30px -26px rgba(15,28,46,.45)}
.ah-filled{margin:0;padding:8px 12px;border-radius:10px;background:#f1f4f8;font-size:13px;color:var(--ink-soft)}
.ah-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px}
.ah-form label{font:600 12.5px "Poppins",var(--font-body);letter-spacing:.01em;text-transform:none;color:var(--ink-soft)}
.ah-form input:not([type=checkbox]),.ah-form select,.ah-form textarea{margin-top:6px;border-radius:10px;border-color:#d6dde8;font-size:15px}
.ah-form input:not([type=checkbox]),.ah-form select{height:46px}
.ah-form .consent{font-weight:400;font-size:13.5px;line-height:1.45;color:var(--ink-soft)}
.ah-submit{height:50px;border:0;border-radius:12px;background:var(--navy);color:#fff;font:600 16px "Poppins",var(--font-body);cursor:pointer}
.ah-submit:hover{background:#0b1626}
.ah-realtor-side{position:sticky;top:90px;margin-top:6px}
.ah-realtor-inline{display:none;margin:0 0 16px}
.ah-card{background:#fff;border:1px solid #e3e8ef;border-radius:18px;padding:20px;box-shadow:0 20px 44px -30px rgba(15,28,46,.55);position:relative;overflow:hidden}
.ah-card::before{content:"";position:absolute;left:0;right:0;top:0;height:5px;background:linear-gradient(90deg,#12233d,#c9a04a)}
.ah-card-tag{display:block;margin:2px 0 14px;font-size:12px;font-weight:600;color:#96692a}
.ah-card-top{display:flex;align-items:center;gap:16px}
.ah-card-photo{width:88px;height:88px;border-radius:50%;object-fit:cover;flex:none;border:3px solid #e2c48c;background:#f1f4f8}
.ah-card-initials{display:grid;place-items:center;font-weight:700;font-size:28px;color:var(--navy)}
.ah-card-who{display:flex;flex-direction:column;gap:3px;min-width:0}
.ah-card-name{font-size:23px;line-height:1.15;font-weight:600;letter-spacing:-.02em;color:var(--navy)}
.ah-card-company{font-size:14px;color:var(--ink-soft)}
.ah-card-headline{font-size:13px;color:var(--muted)}
.ah-card-contact{display:grid;gap:8px;margin-top:16px}
.ah-contact{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid #e3e8ef;border-radius:12px;color:var(--navy);text-decoration:none;font-weight:600;font-size:15px;min-width:0;transition:border-color .15s,background .15s}
.ah-contact:hover{border-color:var(--navy);background:#f7f8fa}
.ah-contact > span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ah-contact small{display:block;font-size:11.5px;font-weight:500;color:var(--muted)}
.ah-contact-icon{width:36px;height:36px;border-radius:50%;background:var(--navy);color:#e2c48c;display:grid;place-items:center;flex:none}
@media (max-width:960px){
  .ah-page.has-realtor{display:block;max-width:760px}
  .ah-realtor-side{display:none}
  .ah-realtor-inline{display:block}
}
@media (max-width:640px){
  .ah-page{padding:20px 0 36px}
  .ah-page h1{font-size:26px}
  .ah-lead{font-size:15px}
  .ah-grid{grid-template-columns:1fr}
  .ah-form{padding:18px 16px}
  .ah-card{padding:16px}
  .ah-card-photo{width:76px;height:76px}
  .ah-card-name{font-size:21px}
}
.ah-form input:not([type=checkbox]),.ah-form select,.ah-form textarea{font-weight:500;color:var(--ink);letter-spacing:0}

/* ---- Search page, condensed (Oct 6) ------------------------------------ */
/* Results line: one small line above the list and map. */
@media (min-width:641px){
  .search-page .results-bar{margin:2px 0 6px !important;min-height:0 !important;gap:10px}
  .search-page .results-count{font-size:12.5px !important;line-height:1.3;color:var(--muted)}
  .search-page .results-count strong{font-size:13px !important;font-weight:600}
  .search-page .results-count .builders-note{font-size:12px !important;margin-left:10px}
  .search-page .results-tools .save-search-btn{display:none}
  .search-page .results-tools #sort-select{height:30px !important;font-size:12.5px;padding-left:12px !important;border-radius:8px !important;background-size:11px;background-position:right 10px center}
  .search-page .results-tools .sort-control > span{display:none}
  .search-page .results-tools .view-toggle button{height:30px;font-size:12.5px}
  .search-page .results-count .tut-replay{padding:1px 8px 1px 6px;font-size:11.5px;margin-left:10px}
  /* Save search: a star at the end of the search bar. */
  .save-search-star{flex:none;display:inline-grid;place-items:center;width:44px;height:44px;border:1px solid #d6dde8;border-radius:10px;background:#fff;color:#96692a;cursor:pointer;transition:background .15s,border-color .15s}
  .save-search-star:hover{background:#fbf6ea;border-color:#e2c48c}
}
@media (max-width:640px){.save-search-star{display:none}}
/* My Tour tucked away: narrow, in the corner; Start over only when open. */
.tour-dock.is-collapsed .tour-clear-form,.tour-dock.is-collapsed .tour-head-sub{display:none !important}
@media (min-width:641px){
  /* No owl while tucked away (he pops up when it opens); the gold tab
     moves to the right edge so the box can be just wide enough for it. */
  .search-page .tour-panel.tour-dock.is-collapsed{width:210px}
  .tour-dock.is-collapsed .tour-peek-owl,.tour-dock.is-collapsed .tour-peek-hands{display:none !important}
  .tour-dock.is-collapsed .tour-dock-tab{left:auto;right:14px}
  .tour-dock.is-collapsed .section-head{padding-right:14px !important}
  .search-page .tour-panel.tour-dock.is-collapsed{border-top-left-radius:18px;border-top-right-radius:18px}
}

/* Narrower windows (641-1180px): one line - search bar with the star inside
   it, a "Filters" button, a small Search. Filters opens the rest on a row
   below. Full-width screens are unchanged. */
.mid-filters-btn{display:none}
@media (min-width:641px) and (max-width:1180px){
  .search-page .filter-band .filter-bar{flex-wrap:wrap !important;row-gap:10px}
  .search-page .filter-band .filter-bar > .field-area{order:1;flex:1 1 0 !important;min-width:0}
  .search-page .filter-band .filter-bar > .field-area .multiselect{padding-right:44px}
  .search-page .filter-band .save-search-star{order:2;margin-left:-54px;width:40px;height:40px;border:0;background:transparent;z-index:2;align-self:center}
  .search-page .filter-band .save-search-star:hover{background:#fbf6ea}
  .mid-filters-btn{order:3;display:inline-flex;align-items:center;gap:7px;flex:none;height:44px;padding:0 14px;border:1px solid #d6dde8;border-radius:10px;background:#fff;color:var(--navy);font:600 14.5px "Poppins",var(--font-body);cursor:pointer}
  .mid-filters-btn:hover,.mid-filters-btn[aria-expanded=true]{border-color:var(--navy)}
  .mid-filters-btn[aria-expanded=true]{background:#f4f6f9}
  .mid-filters-btn .filters-count{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:#e2c48c;color:var(--navy);font-size:12px;font-weight:700}
  .mid-filters-btn .filters-count[hidden]{display:none}
  .search-page .filter-band .search-go{order:4;flex:none !important;padding:0 18px !important;font-size:14.5px}
  .search-page .filter-band .search-filters:not(.mid-open) .filter-bar > .field-when,
  .search-page .filter-band .search-filters:not(.mid-open) .filter-bar > .field-date,
  .search-page .filter-band .search-filters:not(.mid-open) .filter-bar > .field-price-pop,
  .search-page .filter-band .search-filters:not(.mid-open) .filter-bar > .field-num,
  .search-page .filter-band .search-filters:not(.mid-open) .filter-bar > .more-filters-btn{display:none !important}
  .search-page .filter-band .search-filters.mid-open .filter-bar::after{content:"";order:5;flex-basis:100%;height:0}
  .search-page .filter-band .search-filters.mid-open .filter-bar > .field-when,
  .search-page .filter-band .search-filters.mid-open .filter-bar > .field-date,
  .search-page .filter-band .search-filters.mid-open .filter-bar > .field-price-pop,
  .search-page .filter-band .search-filters.mid-open .filter-bar > .field-num,
  .search-page .filter-band .search-filters.mid-open .filter-bar > .more-filters-btn{order:6}
}

/* ---- Search page (Oct 6, later): map up to the filters, Sort in the bar -- */
/* Sort: a "Sort" button in the search bar; the real menu sits invisibly on
   top of it so a click opens the normal dropdown. */
.sort-pill{display:none}
@media (min-width:641px){
  .sort-pill{text-transform:none;letter-spacing:0;position:relative;flex:none;display:inline-flex !important;align-items:center;gap:7px;height:44px;padding:0 14px;border:1px solid #d6dde8;border-radius:10px;background:#fff;color:var(--navy);font:600 14.5px "Poppins",var(--font-body);cursor:pointer;white-space:nowrap;margin:0}
  .sort-pill:hover,.sort-pill:focus-within{border-color:var(--navy)}
  .sort-pill.is-set::after{content:"";width:7px;height:7px;border-radius:50%;background:#c9a04a;margin-left:-2px}
  .sort-pill select{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;margin:0;padding:0 !important;border:0}
  .search-page .results-tools .sort-control{display:none}
}
@media (min-width:641px) and (max-width:1180px){
  .sort-pill{order:3}
  .sort-pill span{display:inline}
}
/* Computers: the results line covers the list only; the map runs from the
   bottom of the search bar to the bottom of the window, edge to edge. */
@media (min-width:1024px){
  .search-page #results-head{width:calc(50% - 11px)}
  .search-page .results-layout[data-view] .map-pane{margin-top:calc(-1 * var(--head-gap,0px));height:calc(100% + var(--head-gap,0px));margin-right:-20px}
  .search-page .results-layout[data-view] .results-map{border-radius:0}
  .search-page .results-layout[data-view] .results-map .mapboxgl-canvas{border-radius:0}
}
/* Starting-point card on the map: a size smaller. */
.map-start{top:10px;left:10px;max-width:310px;padding:9px 11px;border-radius:13px}
.map-start-title{margin:0 0 7px;font-size:13px}
.map-start-actions{gap:6px}
.map-start-actions button{min-height:32px;font-size:12.5px;border-radius:9px}
.map-start.is-set,.map-start.is-busy{gap:8px;padding:7px 9px 7px 10px}
.map-start-dot{width:12px;height:12px;border-width:2.5px}
.map-start-text small{font-size:10px}
.map-start-text strong{font-size:13px}
.map-start.is-set button{font-size:12px;padding:5px 10px}
.map-start.is-busy{font-size:13px}
.map-start-form input{height:32px;font-size:14px}
/* "Show my tour" tab: a touch smaller. */
.tour-dock .tour-dock-tab{height:34px;padding:0 13px 0 15px;font-size:13.5px;gap:6px}

/* ---- Admin: accounts ---------------------------------------------------- */
.stats .stat-link{display:block;border:1px solid var(--line-cool);border-radius:var(--radius);padding:18px;background:var(--surface);text-decoration:none;color:inherit;transition:border-color .15s,box-shadow .15s}
.stats .stat-link:hover{border-color:var(--navy);box-shadow:0 10px 24px -18px rgba(15,28,46,.5)}
.sync-card{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;border:1px solid var(--line-cool);border-left:5px solid #2E8B57;border-radius:var(--radius);padding:14px 18px;background:var(--surface);margin:0 0 18px}
.sync-card.is-stale{border-left-color:#C0392B;background:#FFF6F4}
.sync-card strong{display:block;font-size:1rem}
.sync-card strong span{font-weight:500;color:var(--muted,#5b6472)}
.sync-card .sync-note{display:block;font-size:.875rem;color:var(--muted,#5b6472);margin-top:2px}
.sync-card form{margin:0}
.zip-filters input[type=search]{flex:1;min-width:200px}
.zip-filters .zip-city{flex:.7;min-width:170px}
.zip-filters .zip-export{margin-left:auto;font-weight:600}
.zip-range{margin:4px 0 16px}
.zip-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:0 0 24px}
.zip-stats div{padding:14px 18px;background:#fff;border:1px solid var(--line-cool);border-radius:14px}
.zip-stats b{display:block;font:600 24px/1.1 "Poppins",var(--font-body);color:var(--navy)}
.zip-stats span{font-size:13px;color:var(--ink-soft)}
.zip-table th a{color:inherit;text-decoration:underline dotted}
.zip-table .num{text-align:right;font-variant-numeric:tabular-nums}
.zip-table .nowrap{white-space:nowrap}
.zip-table td{vertical-align:top}
.stats .stat-link strong{color:var(--navy)}
.stats .stat-link span{color:var(--navy);font-weight:600}
.acct-tabs{display:flex;gap:6px;margin:0 0 4px}
.acct-tabs a{padding:8px 16px;border-radius:999px;border:1px solid var(--line-cool);background:#fff;color:var(--navy);font-weight:600;text-decoration:none}
.acct-tabs a.is-active{background:var(--navy);border-color:var(--navy);color:#fff}
.acct-bulkbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:10px 0}
.acct-bulkbar select{width:auto;margin:0}
.acct-table td{vertical-align:middle}
.acct-table tr.is-off td{opacity:.6}
.acct-name{font-weight:700;color:var(--navy)}
.acct-pill{display:inline-block;padding:3px 9px;border-radius:999px;font-size:11.5px;font-weight:700;white-space:nowrap}
.acct-pill.is-on{background:#e6f4ec;color:#14532d}
.acct-pill.is-warn{background:#fff4dc;color:#7a5a22}
.acct-pill.is-off{background:#fde8e6;color:#9b1c1c}
h1 .acct-pill{vertical-align:middle;margin-left:8px;font-size:12px}
.acct-back{margin:0 0 6px}
.acct-actions{display:flex;gap:10px;flex-wrap:wrap}
.acct-actions form{margin:0}
.acct-delete{background:#b42318 !important;color:#fff !important}
.acct-delete:hover{background:#912018 !important}
.acct-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;align-items:start}
.acct-card{background:#fff;border:1px solid var(--line-cool);border-radius:16px;padding:20px 22px}
.acct-card h2{margin:0 0 12px;font-size:20px}
.acct-card h3{margin:18px 0 6px;font-size:15px}
.acct-form{margin:0;padding:0;border:0;max-width:none}
.acct-photo{width:72px;height:72px;border-radius:50%;object-fit:cover;margin-bottom:8px}
.acct-facts{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;margin:0}
.acct-facts dt{color:var(--muted);font-size:13px}
.acct-facts dd{margin:0;font-weight:600;word-break:break-all}
.acct-line{margin:4px 0;font-size:14px}
@media(max-width:900px){.acct-grid{grid-template-columns:1fr}}

/* ---- Realtor Pro ----------------------------------------------------- */
.pro-badge{display:inline-flex;align-items:center;font:700 11px/1 "Poppins",var(--font-body);letter-spacing:.02em;padding:4px 8px;border-radius:999px;background:linear-gradient(180deg,#f0d9a8,#d9b46e);color:var(--navy);vertical-align:middle;box-shadow:inset 0 1px 0 rgba(255,255,255,.6)}
.pro-badge-lg{font-size:13px;padding:6px 12px}
h1 .pro-badge{font-size:12px;margin-left:6px;position:relative;top:-3px}
.acct-head-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.pro-upgrade-btn{display:inline-flex;align-items:center;gap:7px}
.pro-upgrade-btn .pro-badge{padding:3px 6px;font-size:10px}
/* Coming soon pop-up */
.pro-modal{position:fixed;inset:0;z-index:2000;background:rgba(15,28,46,.55);display:flex;align-items:center;justify-content:center;padding:16px}
.pro-modal[hidden]{display:none}
.pro-modal-box{position:relative;width:min(400px,100%);background:#fff;border-radius:20px;padding:30px 26px 24px;text-align:center;box-shadow:0 30px 70px -20px rgba(15,28,46,.55)}
.pro-modal-box h2{font:700 26px/1.15 "Poppins",var(--font-body);color:var(--navy);margin:14px 0 8px;letter-spacing:-.02em}
.pro-modal-box p{color:var(--ink-soft);font-size:15px;line-height:1.5;margin:0 0 20px}
.pro-modal-x{position:absolute;top:12px;right:12px;width:36px;height:36px;border-radius:50%;border:none;background:#f1f3f6;color:var(--navy);display:grid;place-items:center;cursor:pointer}
.pro-modal-x:hover{background:#e4e8ee}
body.pro-modal-open{overflow:hidden}
/* Pro page */
.pro-hero{text-align:center;max-width:760px;margin:0 auto 34px}
.pro-hero h1{font:800 clamp(32px,5vw,48px)/1.06 "Poppins",var(--font-body);letter-spacing:-.035em;color:var(--navy);margin:6px 0 14px}
.pro-hero .rl-actions{justify-content:center}
.pro-you{display:inline-flex;align-items:center;gap:8px;font-weight:600;color:var(--navy)}
.pro-features{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:0 0 36px}
.pro-feature{background:#fff;border:1px solid #e3e8ef;border-radius:18px;padding:22px}
.pro-feature h2{font:700 19px "Poppins",var(--font-body);color:var(--navy);margin:12px 0 6px}
.pro-feature p{color:var(--ink-soft);margin:0 0 10px;font-size:14.5px}
.pro-feature ul{margin:0;padding-left:18px;color:var(--ink-soft);font-size:14px;line-height:1.55}
.pro-compare{max-width:820px;margin:0 auto 36px}
.pro-compare h2{font:700 24px "Poppins",var(--font-body);color:var(--navy);text-align:center;margin:0 0 14px}
.pro-compare td.yes{color:var(--success);font-weight:600}
.pro-compare td.no{color:var(--muted)}
.pro-compare th:not(:first-child),.pro-compare td:not(:first-child){text-align:center;width:110px}
.pro-teaser{display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:#fff;border:1px solid #e3e8ef;border-radius:16px;padding:16px 20px;margin:0 0 28px;color:var(--ink-soft);text-decoration:none}
.pro-teaser strong{color:var(--navy)}
.pro-teaser-go{margin-left:auto;font-weight:700;color:var(--navy);white-space:nowrap}
.pro-teaser:hover{border-color:var(--navy)}
@media(max-width:860px){.pro-features{grid-template-columns:1fr}}
/* Pro tools: nav, heads, locked */
.pro-nav{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:0 0 20px;padding-bottom:12px;border-bottom:1px solid var(--line-cool)}
.pro-nav a{padding:7px 12px;border-radius:999px;font-weight:600;font-size:14px;color:var(--ink-soft);text-decoration:none}
.pro-nav a:hover{background:#f1f3f6}
.pro-nav a.is-active{background:var(--navy);color:#fff}
.pro-nav .pro-badge{margin-left:auto}
.pro-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:0 0 18px;flex-wrap:wrap}
.pro-head h1{font:600 28px/1.15 "Poppins",var(--font-body);color:var(--navy);margin:0 0 4px;letter-spacing:-.02em}
.pro-head .acct-muted{max-width:70ch;margin:0}
.pro-locked{max-width:560px;margin:30px auto;text-align:center;background:#fff;border:1px solid var(--line-cool);border-radius:20px;padding:32px 26px}
.pro-locked .rl-icon{margin:0 auto}
.pro-locked-tag{display:flex;align-items:center;justify-content:center;gap:8px;font-weight:600;color:var(--brass-dark);margin:14px 0 4px;font-size:14px}
.pro-locked h1{font:700 30px "Poppins",var(--font-body);color:var(--navy);margin:0 0 8px;letter-spacing:-.02em}
.pro-locked-lead{color:var(--ink-soft);font-size:16px}
.pro-locked ul{text-align:left;display:inline-block;color:var(--ink-soft);line-height:1.6;margin:6px 0 20px;padding-left:20px}
.pro-locked-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.pro-tools-card h2{display:flex;align-items:center;gap:8px}
.pro-tool{text-decoration:none;color:inherit}
.pro-tool:hover b{text-decoration:underline}
.pro-tool .pro-lock{margin-left:auto;flex:none;color:var(--muted)}
.pro-tools-foot{display:flex;align-items:center;gap:14px;padding-top:12px}
.pro-tools-foot a{font-weight:600;font-size:14px}
.pro-error{color:var(--error);font-size:14px;margin:6px 0 0}
.pro-filter{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 16px}
.pro-filter input[type=search]{flex:1;min-width:200px}
.pro-table td{vertical-align:top}
.pro-table .nowrap{white-space:nowrap}
/* My listings */
.pro-add{background:#fff;border:1px solid var(--line-cool);border-radius:16px;padding:14px 18px;margin:0 0 18px}
.pro-add label{font-weight:600;font-size:14px;color:var(--navy)}
.pro-add-row{display:flex;gap:10px;margin:8px 0 4px;max-width:460px}
.pro-add-row input{flex:1}
.pro-listings{display:flex;flex-direction:column;gap:12px}
.pro-listing{display:flex;align-items:center;gap:16px;background:#fff;border:1px solid var(--line-cool);border-radius:16px;padding:12px}
.pro-listing img,.pro-listing-ph{width:132px;height:92px;border-radius:12px;object-fit:cover;flex:none;background:#eef2f6}
.pro-listing-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.pro-listing-info strong{font:600 17px "Poppins",var(--font-body);color:var(--navy)}
.pro-listing-info span{color:var(--ink-soft);font-size:14px}
.pro-listing-stats{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:13px!important}
.pro-listing-stats b{color:var(--navy);margin-right:-10px}
.pro-listing-actions{display:flex;flex-direction:column;gap:6px;align-items:stretch;flex:none}
.pro-remove{font-size:13px;color:var(--muted)}
@media(max-width:700px){.pro-listing{flex-wrap:wrap}.pro-listing img,.pro-listing-ph{width:100%;height:150px}.pro-listing-actions{flex-direction:row;flex-wrap:wrap;width:100%}}
/* Seller report */
.sr-top{display:flex;justify-content:space-between;gap:20px;align-items:center;flex-wrap:wrap;margin:0 0 18px}
.sr-home{display:flex;gap:16px;align-items:center;min-width:0}
.sr-home img{width:180px;height:126px;border-radius:14px;object-fit:cover;flex:none}
.sr-home h1{font:700 30px/1.1 "Poppins",var(--font-body);color:var(--navy);margin:2px 0 4px;letter-spacing:-.02em}
.sr-kicker{font-weight:600;color:var(--brass-dark);font-size:14px;margin:0}
.sr-agent{display:flex;gap:12px;align-items:center;background:#fff;border:1px solid var(--line-cool);border-radius:16px;padding:12px 16px}
.sr-agent img,.sr-agent-initial{width:56px;height:56px;border-radius:50%;object-fit:cover;background:#e2c48c;display:grid;place-items:center;font-weight:700;font-size:22px;color:var(--navy);flex:none}
.sr-agent div{display:flex;flex-direction:column;font-size:14px}
.sr-agent strong{font-size:16px;color:var(--navy)}
.sr-agent span{color:var(--ink-soft)}
.sr-share{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;background:#f6e9c9;border-radius:16px;padding:14px 18px;margin:0 0 18px}
.sr-share > div:first-child{display:flex;flex-direction:column}
.sr-share .referral-url-row{flex:1;max-width:560px;display:flex;gap:8px}
.sr-share input{flex:1;min-width:0}
.sr-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:0 0 18px}
.sr-stats div{background:#fff;border:1px solid var(--line-cool);border-radius:14px;padding:14px 16px}
.sr-stats b{display:block;font:700 28px/1.05 "Poppins",var(--font-body);color:var(--navy)}
.sr-stats span{font-size:13px;color:var(--ink-soft)}
.sr-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:0 0 16px}
.sr-bar-label{font-weight:600;font-size:13px;color:var(--navy);margin:12px 0 6px}
.sr-bar-row{margin:0 0 8px}
.sr-bar-row em{display:block;font-style:normal;font-size:13px;font-weight:600;color:var(--navy);margin:0 0 3px}
.sr-bar{position:relative;height:12px;background:#f1f3f6;border-radius:6px;overflow:hidden}
.sr-bar span{position:absolute;left:0;top:0;bottom:0;background:#b9c6d6;border-radius:6px;min-width:4px}
.sr-bar span.is-mine{background:var(--navy)}
.sr-callout{margin:12px 0 0;font-weight:600;color:var(--success)}
.sr-days{display:flex;align-items:flex-end;gap:3px;height:140px;margin-top:10px}
.sr-days span{flex:1;background:var(--navy);border-radius:3px 3px 0 0;min-height:3px;opacity:.85}
.sr-days-axis{display:flex;justify-content:space-between;margin:6px 0 0}
.sr-oh .num{text-align:right}
.sr-foot{margin-top:16px}
@media(max-width:800px){.sr-grid{grid-template-columns:1fr}.sr-home img{width:110px;height:78px}.sr-home h1{font-size:23px}}
@media print{.site-header,.pro-nav,.sr-share,.mobile-icon-nav,footer,.site-footer{display:none!important}.seller-report{padding-top:0}}
/* Clients */
.pro-due{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;background:var(--warn-tint);border:1px solid #efd9ad;border-radius:14px;padding:12px 16px;margin:0 0 16px}
.pro-due strong{color:var(--warn)}
.pro-due a{font-weight:600}
.pro-client-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:20px;align-items:start}
.pro-client{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--line-cool);border-radius:14px;padding:12px 14px;margin:0 0 10px;color:inherit;text-decoration:none}
.pro-client:hover{border-color:var(--navy)}
.pro-client-initial{width:42px;height:42px;border-radius:50%;background:var(--navy);color:#fff;display:grid;place-items:center;font:600 17px "Poppins",var(--font-body);flex:none}
.pro-client-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.pro-client-info strong{color:var(--navy);font-size:15.5px}
.pro-client-info span{font-size:13.5px;color:var(--ink-soft)}
.pro-client-when{flex:none;text-align:right}
.pro-tag{display:inline-block;font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;background:#eef2f6;color:var(--navy);vertical-align:middle}
.pro-tag-hot{background:#fde7e4;color:#a3291c}
.pro-tag-warm{background:#fbf1de;color:#8a5a10}
.pro-tag-looking{background:#e8f0fa;color:#24508a}
.pro-tag-closed{background:#e6f4ec;color:#14532d}
.pro-activity{font-size:14px;margin:0 0 10px;line-height:1.45}
.pro-activity .acct-small{display:block}
.pro-tour{border-top:1px solid #f0ede6;padding:10px 0}
.pro-tour strong{display:block;color:var(--navy)}
.pro-tour ol{margin:6px 0 0;padding-left:20px;font-size:14px;line-height:1.6}
.pro-line{margin:0 0 6px;font-size:14.5px}
.pro-notes label,.pro-send label{display:flex;flex-direction:column;gap:4px;font-weight:600;font-size:13.5px;color:var(--navy);margin:0 0 10px}
.pro-notes textarea,.pro-send textarea{resize:vertical}
.pro-send{margin-top:16px}
@media(max-width:900px){.pro-client-grid{grid-template-columns:1fr}}
/* Open house sign-in (visitor side) */
.visit-page{display:flex;justify-content:center}
.visit-card{width:min(520px,100%);background:#fff;border:1px solid var(--line-cool);border-radius:20px;padding:20px 20px 22px;box-shadow:0 24px 60px -36px rgba(15,28,46,.45)}
.visit-home{display:flex;gap:14px;align-items:center;margin:0 0 14px}
.visit-home img{width:120px;height:84px;border-radius:12px;object-fit:cover;flex:none}
.visit-home h1{font:700 22px/1.15 "Poppins",var(--font-body);color:var(--navy);margin:2px 0}
.visit-kicker{margin:0;font-weight:600;color:var(--brass-dark);font-size:13px}
.visit-lead{font-weight:600;color:var(--navy);margin:0 0 12px}
.visit-form > label{display:flex;flex-direction:column;gap:4px;font-weight:600;font-size:14px;color:var(--navy);margin:0 0 12px}
.visit-agent{border:1px solid var(--line-cool);border-radius:12px;padding:10px 14px 4px;margin:0 0 12px}
.visit-agent legend{font-weight:600;font-size:14px;color:var(--navy);padding:0 4px}
.visit-agent > label{display:inline-flex;align-items:center;gap:6px;margin:0 16px 8px 0;font-size:15px}
.visit-agent .visit-agent-name{display:flex;flex-direction:column;align-items:stretch;gap:4px;font-size:13.5px;font-weight:600;margin:4px 0 10px}
.visit-consent{display:flex!important;flex-direction:row!important;align-items:flex-start;gap:10px;font-weight:400!important;font-size:13.5px!important;color:var(--ink-soft)!important;line-height:1.45}
.visit-consent input{margin-top:3px;flex:none}
.visit-go{width:100%;justify-content:center;margin:4px 0 10px}
.visit-thanks{text-align:center;padding:30px 24px}
.visit-thanks h1{font:700 26px "Poppins",var(--font-body);color:var(--navy);margin:12px 0 8px}
.visit-thanks p{color:var(--ink-soft)}
.visit-actions{display:flex;flex-direction:column;gap:10px;margin-top:16px}
/* Admin: Pro */
.admin-pro-card{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin:0 0 18px}
.admin-pro-card.is-pro{border-color:#d9b46e;background:#fffaf0}
.admin-pro-card h2{display:flex;align-items:center;gap:8px;margin:0 0 4px}
.admin-pro-card .muted{margin:0}
.admin-pro-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.admin-pro-form input{min-width:220px}
.visit-fill{width:100%;justify-content:center;gap:8px;margin:0 0 12px;display:inline-flex;align-items:center}
.visit-fill[hidden]{display:none}
.visit-tip{margin:-4px 0 12px}
/* form fixes for Pro + sign-in pages */
.visit-form label,.pro-notes label,.pro-send label,.pro-add label{text-transform:none;letter-spacing:0;font-size:14px}
.visit-form input[type=radio],.visit-form input[type=checkbox]{width:auto;margin:0;padding:0;flex:none;accent-color:var(--navy)}
.visit-consent{margin:0 0 14px}
.visit-agent > label{font-weight:500;color:var(--ink)}
.pro-filter{align-items:center}
.pro-filter input[type=search],.pro-filter select{width:auto;margin:0}
.pro-filter select{min-width:160px}
.pro-add-row input{margin:0}

/* ---- Realtor area: menu, dashboard, tool pages ------------------------- */
.rmenu{position:relative;margin:0 0 22px}
.rmenu-toggle{display:none}
.rmenu-list{list-style:none;margin:0;padding:6px;display:flex;flex-wrap:wrap;gap:4px;background:#fff;border:1px solid var(--line-cool);border-radius:16px}
.rmenu-list a{display:flex;align-items:center;gap:8px;padding:9px 14px;border-radius:12px;color:var(--ink-soft);font-weight:600;font-size:14.5px;text-decoration:none;white-space:nowrap}
.rmenu-list a:hover{background:#f1f3f6;color:var(--navy)}
.rmenu-list a.is-active{background:var(--navy);color:#fff}
.rmenu-list a.is-active .pro-badge{box-shadow:none}
.rmenu-list svg{flex:none;opacity:.85}
@media(max-width:860px){
  .rmenu-toggle{display:flex;align-items:center;gap:10px;width:100%;min-height:52px;padding:0 16px;border:1px solid var(--line-cool);border-radius:16px;background:#fff;color:var(--navy);font:600 16px var(--font-body);cursor:pointer;-webkit-tap-highlight-color:transparent}
  .rmenu-toggle-label{font-weight:700}
  .rmenu-toggle-current{margin-left:auto;color:var(--ink-soft);font-weight:500;font-size:14.5px}
  .rmenu-chev{transition:transform .2s;flex:none;width:16px;height:16px;overflow:visible}
  .rmenu.is-open .rmenu-chev{transform:rotate(180deg)}
  .rmenu-list{display:none;position:absolute;left:0;right:0;top:calc(100% + 8px);z-index:60;flex-direction:column;flex-wrap:nowrap;padding:8px;box-shadow:0 24px 50px -20px rgba(15,28,46,.45)}
  .rmenu.is-open .rmenu-list{display:flex}
  .rmenu-list a{padding:14px 14px;font-size:16px}
}
/* Dashboard */
.rdash-head{display:flex;align-items:center;gap:14px;margin:0 0 18px}
.rdash-avatar{width:56px;height:56px;border-radius:50%;overflow:hidden;flex:none;background:linear-gradient(180deg,#f0d9a8,#d9b46e);display:grid;place-items:center;color:var(--navy);font:600 22px "Poppins",var(--font-body);text-decoration:none}
.rdash-avatar img{width:100%;height:100%;object-fit:cover}
.rdash-hello{flex:1;min-width:0}
.rdash-hello h1{font:600 26px/1.15 "Poppins",var(--font-body);color:var(--navy);margin:0;letter-spacing:-.02em}
.rdash-hello p{margin:2px 0 0;color:var(--ink-soft);font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rdash-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:0 0 14px}
.rdash-stats a{display:flex;flex-direction:column;gap:2px;padding:14px 16px;background:#fff;border:1px solid var(--line-cool);border-radius:16px;text-decoration:none}
.rdash-stats b{font:600 26px/1 "Poppins",var(--font-body);color:var(--navy)}
.rdash-stats span{font-size:13px;color:var(--ink-soft);font-weight:600}
.rdash-stats a.has-new{border-color:#9fd3b5;background:#f3faf6}
.rdash-quick{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:0 0 24px}
.rdash-quick a,.rdash-quick button{display:flex;align-items:center;gap:12px;padding:14px 16px;background:#fff;border:1px solid var(--line-cool);border-radius:16px;color:var(--navy);text-decoration:none;font:inherit;cursor:pointer;text-align:left;-webkit-tap-highlight-color:transparent}
.rdash-quick a:hover,.rdash-quick button:hover{border-color:var(--navy)}
.rdash-quick b{font-size:15px}
.tool-icon{width:42px;height:42px;border-radius:12px;background:#f6e9c9;color:var(--navy);display:grid;place-items:center;flex:none}
.rdash-tours .acct-section-head{margin-bottom:12px}
@media(max-width:700px){
  .rdash-hello h1{font-size:22px}
  .rdash-stats{gap:8px}
  .rdash-stats a{padding:12px}
  .rdash-stats b{font-size:22px}
  .rdash-stats span{font-size:12px}
  .rdash-quick{grid-template-columns:1fr 1fr;gap:10px}
  .rdash-quick a,.rdash-quick button{flex-direction:column;align-items:flex-start;gap:10px;padding:14px}
}
/* Tool cards */
.tool-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px;margin:0 0 28px}
.tool-card{position:relative;display:flex;flex-direction:column;gap:6px;padding:18px;background:#fff;border:1px solid var(--line-cool);border-radius:18px;color:inherit;text-decoration:none}
a.tool-card:hover{border-color:var(--navy)}
.tool-card strong{font:600 17px "Poppins",var(--font-body);color:var(--navy);margin-top:6px;display:flex;align-items:center;gap:8px}
.tool-card span:not(.tool-icon):not(.pro-badge){color:var(--ink-soft);font-size:14px;line-height:1.45}
.tool-card em{font-style:normal;font-weight:700;color:var(--navy);margin-top:auto;padding-top:8px;font-size:14px}
.tool-card.is-locked{background:#fbfbfc}
.tool-card.is-locked em{color:var(--brass-dark)}
.tool-card-qr img{width:120px;height:120px;border-radius:12px;border:1px solid var(--line-cool)}
.tool-card-qr .button{align-self:flex-start;margin-top:auto}
.tool-h2{font:600 22px "Poppins",var(--font-body);color:var(--navy);margin:0 0 8px;scroll-margin-top:90px}
.pro-locked-inline{max-width:none;margin:8px 0 0;text-align:left;padding:22px}
.pro-locked-inline .pro-locked-tag{justify-content:flex-start;margin-top:0}
.pro-locked-inline .pro-locked-actions{justify-content:flex-start}
.mk-link{margin:0 0 18px}
.mk-link h2{margin-top:0}
.mk-link .referral-url-row{display:flex;gap:8px;flex-wrap:wrap}
.mk-link .referral-url-row input{flex:1;min-width:200px;margin:0}
/* Profile */
.rprofile-head{display:flex;align-items:center;gap:18px;margin:0 0 18px}
.rprofile-head h1{font:600 26px "Poppins",var(--font-body);color:var(--navy);margin:0 0 4px}
.rprofile-head .acct-muted{margin:0;max-width:60ch}
.rprofile-body{max-width:640px}
.pro-listing-stats > span{display:inline-flex;gap:4px}
.pro-listing-stats b{margin:0}

/* ---- Home-screen app (html.is-app): calmer, native-feeling chrome -------- */
html.is-app{background:var(--paper);-webkit-text-size-adjust:100%;touch-action:pan-x pan-y}
html.is-app body{touch-action:pan-x pan-y}
/* the map still pinches to zoom */
html.is-app .map-pane,html.is-app .map-pane *,html.is-app .mapboxgl-canvas{touch-action:none}
html.is-app body{overscroll-behavior-y:none}
html.is-app .mobile-icon-nav,html.is-app .site-header,html.is-app .rmenu,html.is-app .button,html.is-app button{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
@media (max-width:640px){
  /* iOS-style top bar: compact, frosted, below the status bar / notch */
  html.is-app .site-header{position:sticky;top:0;z-index:70;padding-top:env(safe-area-inset-top);background:#fbfaf7;border-bottom:1px solid rgba(18,35,61,.08);box-shadow:none}
  html.is-app .nav-realtor-pill{display:none}
  /* no zoom-in when a field is tapped */
  html.is-app input,html.is-app select,html.is-app textarea{font-size:16px}
  /* tab bar: taller, frosted, a tinted pill on the current tab */
  html.is-app .mobile-icon-nav{background:rgba(251,250,247,.9);border-top:1px solid rgba(18,35,61,.08);box-shadow:none}
  html.is-app .mobile-icon-link{padding:7px 4px 5px}
  html.is-app .mobile-icon-link.is-current svg{background:rgba(18,35,61,.08);border-radius:14px;padding:3px 14px;width:auto;height:31px;box-sizing:content-box;margin:-3px 0}
  html.is-app .mobile-icon-link:active{opacity:.6}
  /* buttons and cards: press feedback instead of hover */
  html.is-app a,html.is-app button{-webkit-tap-highlight-color:transparent}
  html.is-app .button:active,html.is-app .tool-card:active,html.is-app .rdash-quick a:active,html.is-app .rdash-quick button:active,html.is-app .pro-client:active{transform:scale(.98);transition:transform .08s}
  /* footer: just the required MLS disclosures and legal links */
  html.is-app .site-footer{padding:18px 0 8px;background:transparent;border-top:1px solid var(--line)}
  html.is-app .footer-brand .brand,html.is-app .footer-brand > p,html.is-app .footer-links:not(:last-child){display:none}
  html.is-app .footer-grid{display:block}
  html.is-app .footer-links .footer-heading{display:none}
  html.is-app .ntreis-explain,html.is-app .footer-links p{font-size:11.5px;line-height:1.45}
  html.is-app .footer-bottom{font-size:11px;padding-top:6px}
  /* Realtor menu reads like an iOS list */
  html.is-app .rmenu-list a{border-radius:10px}
  html.is-app .rmenu-list li + li a{border-top:1px solid #f0f2f5;border-radius:0}
  html.is-app .rmenu-toggle{min-height:50px;border-radius:14px}
  /* toasts sit under the top bar */
  html.is-app .site-toasts{top:calc(var(--hdr-h,62px) + env(safe-area-inset-top))}
}
.req{color:#a3291c;font-weight:700}
.lic-check{display:flex;align-items:flex-start;gap:8px;margin:-4px 0 10px;font-size:14px;line-height:1.4;font-weight:600;text-transform:none;letter-spacing:0}
.lic-check[hidden]{display:none}
.lic-check-icon{flex:0 0 18px;width:18px;height:18px;margin-top:1px;border-radius:50%;display:inline-grid;place-items:center;font-size:12px;font-weight:800;line-height:1}
.lic-check.is-busy{color:var(--muted)}
.lic-check.is-busy .lic-check-icon{border:2px solid #d5dce5;border-top-color:var(--navy);animation:lic-spin .8s linear infinite}
.lic-check.is-ok{color:#14532d}
.lic-check.is-ok .lic-check-icon{background:#1f8a4c;color:#fff;animation:lic-pop .25s ease-out}
.lic-check.is-ok .lic-check-icon::before{content:"\2713"}
.lic-check.is-bad{color:#a3291c;font-weight:500}
.lic-check.is-bad .lic-check-icon{background:#fde7e4;color:#a3291c}
.lic-check.is-bad .lic-check-icon::before{content:"!"}
.lic-check.is-wait{color:#8a5a10;font-weight:500}
.lic-check.is-wait .lic-check-icon{background:#fbf1de;color:#8a5a10}
.lic-check.is-wait .lic-check-icon::before{content:"i"}
.lic-check.is-hint{color:var(--muted);font-weight:500}
.lic-check.is-hint .lic-check-icon{display:none}
@keyframes lic-spin{to{transform:rotate(360deg)}}
@keyframes lic-pop{from{transform:scale(.4)}to{transform:scale(1)}}
@media (prefers-reduced-motion:reduce){.lic-check.is-busy .lic-check-icon{animation-duration:2s}.lic-check.is-ok .lic-check-icon{animation:none}}
.field-help{margin:-6px 0 12px;font-size:13px;color:var(--muted);text-transform:none;letter-spacing:0;line-height:1.45}
.tool-h2-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 0 6px;scroll-margin-top:90px}
.tool-h2-row .tool-h2{margin:0}
.tool-h2-row form{margin:0}
.pro-note{background:#eef4fb;border:1px solid #cfe0f2;color:#24508a;border-radius:12px;padding:10px 14px;margin:0 0 12px;font-size:14px}
.pro-oh{color:var(--success)!important;font-weight:600}
.pro-oh-warn{display:block;background:var(--warn-tint);color:var(--warn)!important;border-radius:10px;padding:6px 10px;font-size:13px!important;line-height:1.4;margin:2px 0}
.button.is-locked{display:inline-flex;align-items:center;gap:6px}
.button.is-locked .pro-badge{padding:2px 6px;font-size:10px}
.lic-badge{display:inline-block;margin-left:6px;font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;text-transform:none;letter-spacing:0;vertical-align:middle}
.lic-badge.is-ok{background:#e6f4ec;color:#14532d}
.lic-badge.is-wait{background:#fbf1de;color:#8a5a10}
.lic-badge.is-off{background:#fde7e4;color:#a3291c}
.rdash-alert{display:flex;flex-direction:column;gap:2px;background:var(--warn-tint);border:1px solid #efd9ad;border-radius:16px;padding:12px 16px;margin:-8px 0 14px;text-decoration:none;color:var(--warn)}
.rdash-alert strong{color:#6d4508}
.rdash-alert span{font-size:14px}
.rdash-visitors{display:flex;align-items:center;gap:14px;background:linear-gradient(135deg,#e7f6ee,#d3efe0);border:1px solid #9fd3b5;border-radius:18px;padding:16px 18px;margin:-6px 0 14px;text-decoration:none;color:#14532d;box-shadow:0 14px 30px -24px rgba(20,83,45,.6)}
.rdash-visitors:hover{border-color:#1b6a46}
.rdash-visitors-icon{width:48px;height:48px;border-radius:14px;background:#1b6a46;color:#fff;display:grid;place-items:center;flex:none}
.rdash-visitors-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.rdash-visitors-text strong{font:600 18px "Poppins",var(--font-body);color:#0f3f24}
.rdash-visitors-text span{font-size:14px;color:#1f5c3a}
.rdash-visitors-count{display:flex;flex-direction:column;align-items:center;flex:none;min-width:64px}
.rdash-visitors-count b{font:700 30px/1 "Poppins",var(--font-body);color:#0f3f24}
.rdash-visitors-count small{font-size:12px;font-weight:600}
.rmenu-list a.is-hot{color:#1b6a46}
.rmenu-list a.is-hot:not(.is-active){background:#eaf6ef}
.rmenu-list a.is-hot.is-active{background:#1b6a46;color:#fff}
.rmenu-count{min-width:22px;height:22px;padding:0 7px;border-radius:999px;background:#1b6a46;color:#fff;font-size:12px;font-weight:700;display:inline-grid;place-items:center}
.rmenu-list a.is-active .rmenu-count{background:#fff;color:#1b6a46}
@media(max-width:700px){.rdash-visitors{padding:14px}.rdash-visitors-icon{width:42px;height:42px}.rdash-visitors-text strong{font-size:16px}}

/* Realtor area: in-place tab switching + in-place MLS refresh */
main.rnav-loading > section > :not(.rmenu){opacity:.5;transition:opacity .15s;pointer-events:none}
.rmenu-list a.is-active{transition:background-color .12s,color .12s}
.btn-spin{display:none;width:14px;height:14px;margin-right:8px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;vertical-align:-2px;animation:lic-spin .8s linear infinite}
.button.is-busy .btn-spin{display:inline-block}
.button.is-busy{opacity:.85;cursor:progress}
@media (prefers-reduced-motion:reduce){.btn-spin{animation-duration:2s}main.rnav-loading > section > :not(.rmenu){transition:none}}

/* ---- My Itinerary: compact header, sticky Back / Edit + Maps bar ---------- */
body[data-page="tour-result"] section.itin-page{width:min(calc(100% - 32px),1280px);max-width:none;padding-top:18px}
.itin-top{margin:0}
.itin-kicker{margin:0 0 2px;font:600 13px/1.3 "Poppins",var(--font-body);color:#96692a}
body[data-page="tour-result"] .itin-page .itin-top h1{font-size:30px;line-height:1.12;margin:0}
.itin-sub{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin:6px 0 0;font-size:14px;color:var(--ink-soft)}
.itin-facts{display:inline-flex;flex-wrap:wrap;gap:6px}
.itin-facts > span{display:inline-flex;align-items:baseline;gap:4px;padding:3px 10px;border-radius:999px;background:#fff;border:1px solid #e3e8ef;font-size:13px;color:var(--ink-soft);white-space:nowrap}
.itin-facts b{font:600 14.5px "Poppins",var(--font-body);color:var(--navy)}

.itin-actions{position:sticky;top:var(--itin-top,0px);z-index:25;display:flex;align-items:center;gap:10px;margin:12px 0 0;padding:8px 0;background:var(--paper,#fbfaf7)}
.itin-actions::before{content:"";position:absolute;inset:0 -100vmax;background:inherit;z-index:-1;box-shadow:0 10px 18px -16px rgba(15,28,46,0);transition:box-shadow .2s}
.itin-actions.is-stuck::before{box-shadow:0 10px 18px -14px rgba(15,28,46,.35);border-bottom:1px solid #e6e2d8}
.itin-actions-mark{height:0}
.itin-edit,.itin-map{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:46px;padding:0 18px;border-radius:13px;font:600 15px "Poppins",var(--font-body);text-decoration:none;white-space:nowrap;-webkit-tap-highlight-color:transparent;transition:transform .12s ease,background-color .12s,box-shadow .12s}
.itin-edit{background:#fff;color:var(--navy);border:2px solid var(--navy);box-shadow:0 6px 14px -10px rgba(15,28,46,.5)}
.itin-edit:hover{background:#f3f5f9}
.itin-map.is-apple{margin-left:auto;background:var(--navy);color:#fff}
.itin-map.is-apple:hover{background:#0b1626}
.itin-map.is-google{background:#e9ecf1;color:var(--navy)}
.itin-map.is-google:hover{background:#dde2ea}
.itin-edit:active,.itin-map:active{transform:scale(.96)}
.itin-actions + .tour-saved-bar,.itin-actions + .realtor-banner{margin-top:8px}

/* The stops: a bit more presence */
body[data-page="tour-result"] .itin-page .tour-status{margin-top:8px;padding:11px 14px}
.itin-page .timeline{margin:14px 0 8px}
.itin-page .stop-card{grid-template-columns:150px minmax(0,1fr) auto;gap:16px;padding:10px 16px 10px 10px;border-color:#dde3ec;border-radius:16px;box-shadow:0 14px 30px -20px rgba(15,28,46,.45),0 2px 4px -2px rgba(15,28,46,.08);transition:transform .15s ease,box-shadow .15s ease}
.itin-page .stop-card:hover{transform:translateY(-1px);box-shadow:0 18px 34px -20px rgba(15,28,46,.5),0 2px 4px -2px rgba(15,28,46,.08)}
.itin-page .stop-photo{width:150px;height:104px;border-radius:12px}
.itin-page .stop-info h3{font-size:18px}
.itin-page .sequence{background:var(--navy);color:#fff;box-shadow:0 0 0 4px var(--paper),0 0 0 6px #f0d79a}
.itin-page .stop-time strong{font-size:17px}
@media (min-width:1024px){
  .itin-side{top:calc(var(--itin-top,84px) + 78px)}
  .itin-layout{margin-top:4px}
}
@media (max-width:640px){
  body[data-page="tour-result"] section.itin-page{width:calc(100% - 20px);padding-top:10px}
  .itin-kicker{display:none}
  body[data-page="tour-result"] .itin-page .itin-top h1{font-size:24px}
  .itin-sub{gap:6px;margin-top:4px;font-size:13px}
  .itin-from{flex:1 1 100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .itin-facts > span{padding:2px 9px;font-size:12px}
  .itin-facts b{font-size:13.5px}
  .itin-actions{display:grid;grid-template-columns:auto 1fr 1fr;gap:7px;margin-top:8px;padding:7px 0}
  .itin-edit,.itin-map{height:42px;padding:0 10px;font-size:14px;border-radius:12px;gap:6px}
  .itin-edit{padding:0 11px}
  .itin-map.is-apple{margin-left:0}
  .itin-page .stop-card{grid-template-columns:96px minmax(0,1fr);gap:4px 11px;padding:8px;border-radius:15px}
  .itin-page .stop-photo{width:96px;height:96px}
  .itin-page .stop-info h3{font-size:16px}
  .itin-page .stop-time strong{font-size:14.5px}
  .itin-page .timeline{margin-top:12px}
}
@media (max-width:360px){.itin-edit span{display:none}.itin-actions{grid-template-columns:44px 1fr 1fr}}
@media (prefers-reduced-motion:reduce){.itin-edit,.itin-map,.itin-page .stop-card{transition:none}.itin-edit:active,.itin-map:active{transform:none}.itin-page .stop-card:hover{transform:none}}
.tour-miss-details{margin:6px 0 0}
.tour-miss-details > summary{display:flex;align-items:center;gap:8px;list-style:none;cursor:pointer;margin:0 0 6px;padding:2px 0;font-weight:600;font-size:14px;color:#a03224}
.tour-miss-details > summary::-webkit-details-marker{display:none}
.tour-miss-details > summary span{margin-left:auto;font-weight:600;font-size:13px;color:var(--navy);text-decoration:underline;text-underline-offset:3px}
.tour-miss-details > summary::before{content:"";width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(-45deg);transition:transform .15s;margin:0 2px 0 4px}
.tour-miss-details[open] > summary::before{transform:rotate(45deg)}
.tour-miss-details[open] > summary span{display:none}
@media (max-width:640px){
  .itin-actions{grid-template-columns:auto minmax(0,1fr) minmax(0,1fr)}
  .itin-actions .wide-only{display:none}
  body[data-page="tour-result"] .tour-leftover{margin-top:8px}
  body[data-page="tour-result"] .tour-days{gap:6px}
  body[data-page="tour-result"] .tour-day-chip{max-width:100%;white-space:normal}
}
.itin-edit svg,.itin-map svg{flex:none}
@media (max-width:640px){.itin-map svg{display:none}}
/* The sticky bar's full-width backdrop must not widen the page on phones. */
body[data-page="tour-result"]{overflow-x:clip}
body[data-page="tour-result"] main{overflow-x:clip}

/* ---- Phone tab bar (Home / Build My Tour / Log In): iOS-style press -------- */
@media (max-width:640px){
  .mobile-icon-link{touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:color .15s}
  .mobile-icon-link svg{box-sizing:content-box;width:25px;height:25px;padding:3px 16px;margin:-3px 0;border-radius:15px;background:transparent;transition:transform .22s cubic-bezier(.34,1.56,.64,1),background-color .18s ease}
  html.is-app .mobile-icon-link.is-current svg{width:25px;height:25px}
  .mobile-icon-link.is-current svg{background:rgba(18,35,61,.08)}
  /* finger down: the icon sinks and a darker pill appears straight away */
  .mobile-icon-link.is-pressing svg,.mobile-icon-link:active svg,html.is-app .mobile-icon-link.is-pressing svg{transform:scale(.84);background:rgba(18,35,61,.16);transition-duration:.08s}
  .mobile-icon-link.is-pressing,.mobile-icon-link.is-pressing span{color:var(--navy)}
  html.is-app .mobile-icon-link:active{opacity:1}
  /* tapped: that tab becomes the selected one at once while the page loads */
  .mobile-icon-link.is-going,.mobile-icon-link.is-going svg{color:var(--navy)}
  .mobile-icon-link.is-going span{font-weight:800}
  .mobile-icon-link.is-going svg,html.is-app .mobile-icon-link.is-going svg{background:rgba(18,35,61,.12);animation:tab-pop .32s cubic-bezier(.34,1.56,.64,1)}
  .build-tab.is-going svg,.build-tab.is-pressing svg{color:#f0b323}
  /* loading bar along the top of the tab bar */
  .mobile-icon-nav::before{content:"";position:absolute;left:0;top:-1px;height:2px;width:100%;background:linear-gradient(90deg,#f0b323,#e0a00f);transform-origin:left;transform:scaleX(0);opacity:0}
  .mobile-icon-nav.is-loading::before{opacity:1;animation:tab-load 2.4s cubic-bezier(.1,.7,.3,1) forwards}
}
@keyframes tab-pop{0%{transform:scale(.84)}100%{transform:scale(1)}}
@keyframes tab-load{0%{transform:scaleX(0)}60%{transform:scaleX(.7)}100%{transform:scaleX(.92)}}
@media (prefers-reduced-motion:reduce){.mobile-icon-link svg{transition:background-color .1s}.mobile-icon-link.is-pressing svg,.mobile-icon-link:active svg{transform:none}.mobile-icon-link.is-going svg{animation:none}.mobile-icon-nav.is-loading::before{animation:none;transform:scaleX(.6)}}
/* Touch screens: buttons give a quick press instead of a hover. */
@media (hover:none){
  .button,.ios-btn,.tool-card,.home-cta{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
  .button:active,.ios-btn:active{transform:scale(.97);transition:transform .08s}
}
/* Home hero photo: WebP where supported, and a phone-sized copy on phones. */
.home-hero-photo{background-image:url(../images/hero-photo.jpg);background-image:image-set(url(../images/hero-photo.webp) type("image/webp"),url(../images/hero-photo.jpg) type("image/jpeg"))}
@media (max-width:800px){.home-hero-photo{background-image:url(../images/hero-photo-sm.jpg);background-image:image-set(url(../images/hero-photo-sm.webp) type("image/webp"),url(../images/hero-photo-sm.jpg) type("image/jpeg"))}}

/* ---- Google ads among the listing cards (same size and shape as a card) -- */
.ad-card{position:relative;display:flex;flex-direction:column;min-height:340px;border:1px solid var(--line-cool);border-radius:var(--radius);overflow:hidden;background:var(--surface)}
.ad-card-label{position:absolute;left:10px;top:10px;z-index:1;padding:3px 9px;border-radius:999px;background:rgba(255,255,255,.92);border:1px solid var(--line-cool);font:600 11px/1.2 var(--font-body);color:var(--muted);pointer-events:none}
.ad-card-body{position:relative;flex:1;min-height:300px}
.ad-card-body > ins{position:absolute;inset:0}
/* No ad for this spot, or in the phone app: take it out of the grid. */
.ad-card:has(ins[data-ad-status="unfilled"]),html.is-app .ad-card,html.is-app .ad-slot-google{display:none}
.ad-slot-google:has(ins[data-ad-status="unfilled"]){display:none}
/* Homepage banner sits between the listings and How it works. */
body[data-page="home"] .ad-slot-google{margin:0}
@media (max-width:640px){.ad-card{min-height:460px}}
/* Google needs the ad box to have a width: the banner fills the content width. */
.ad-slot-google .ad-slot-inner{align-items:stretch}
.ad-slot-google .ad-slot-inner > ins.adsbygoogle{width:100%;min-height:90px}
.ad-slot-google .ad-label{text-align:center}
.acct-num{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600;letter-spacing:.02em}

/* ---- Map: starting point dock (card + pull-out tab + "where I am" arrow) ----
   Once a start is set, the card tucks into the map's left edge and leaves a
   small tab with an arrow; the location arrow takes the top-left corner, and
   slides back out to the card's right when it's expanded. */
.map-start-dock{position:absolute;top:10px;left:0;right:0;height:0;z-index:4;pointer-events:none;--card-w:300px}
.map-start-dock>*{pointer-events:auto}
.map-start-dock .map-start{top:0;left:10px;right:auto;width:min(340px,calc(100% - 72px));max-width:none;box-sizing:border-box;transition:transform .32s cubic-bezier(.32,.72,0,1),opacity .2s}
.map-start-dock.is-collapsed .map-start{transform:translateX(calc(-100% - 14px));opacity:0;pointer-events:none}
.map-start-tab,.map-recenter{background:rgba(255,255,255,.9);-webkit-backdrop-filter:saturate(180%) blur(18px);backdrop-filter:saturate(180%) blur(18px);box-shadow:0 1px 1px rgba(0,0,0,.04),0 6px 20px -6px rgba(15,28,46,.32)}
.map-start-tab{position:absolute;top:0;left:0;width:30px;height:40px;display:flex;align-items:center;justify-content:center;padding:0 0 0 2px;border:0;border-radius:0 12px 12px 0;color:#0a7aff;cursor:pointer;transform:translateX(-110%);transition:transform .28s cubic-bezier(.32,.72,0,1)}
.map-start-dock.is-collapsed .map-start-tab{transform:none;transition-delay:.12s}
.map-recenter{position:absolute;top:0;left:calc(10px + var(--card-w) + 8px);width:40px;height:40px;display:flex;align-items:center;justify-content:center;padding:0;border:0;border-radius:12px;color:#0a7aff;cursor:pointer;transition:left .32s cubic-bezier(.32,.72,0,1),transform .12s}
.map-start-dock.is-collapsed .map-recenter{left:38px}
.map-start-dock.is-collapsed .map-recenter-msg{top:48px}
.map-recenter:active,.map-start-tab:active{transform:scale(.92)}
.map-start-dock.is-collapsed .map-start-tab:active{transform:scale(.92)}
.map-recenter.is-on svg{fill:currentColor}
.map-recenter.is-busy svg{animation:mapRecenterPulse 1s ease-in-out infinite}
@keyframes mapRecenterPulse{50%{opacity:.35}}
.map-recenter:focus-visible,.map-start-tab:focus-visible,.map-start-collapse:focus-visible{outline:2px solid #0a7aff;outline-offset:2px}
.map-recenter-msg{position:absolute;top:calc(var(--card-h,40px) + 8px);left:10px;z-index:1;max-width:calc(100% - 20px);padding:8px 12px;border-radius:12px;background:rgba(18,35,61,.92);color:#fff;font:600 12.5px/1.35 var(--font-body);box-shadow:0 6px 20px -6px rgba(15,28,46,.4)}
.map-start-collapse{flex:none;display:flex;align-items:center;justify-content:center;width:30px;height:30px;margin:-2px -3px -2px -2px;padding:0;border:0;border-radius:999px;background:none;color:#8a8a8e;cursor:pointer}
.map-start-collapse svg{transform:rotate(180deg)}
.map-start-collapse:hover{background:rgba(118,118,128,.12);color:#3c3c43}
.map-start-collapse.is-corner{position:absolute;top:5px;right:5px;margin:0;width:28px;height:28px}
.map-start .map-start-title{padding-right:26px}
.map-you-marker{width:16px;height:16px;border-radius:50%;background:#0a7aff;border:3px solid #fff;box-shadow:0 1px 5px rgba(0,0,0,.35)}
@media (prefers-reduced-motion:reduce){.map-start-dock .map-start,.map-start-tab,.map-recenter{transition:none}.map-recenter.is-busy svg{animation:none}}

/* ---- Home-screen app, phase 1 polish (html.is-app only; the website is
   untouched). Tabs: Find · My Tour · Saved · Account. ---------------------- */
.tab-app{display:none}
html.is-app .tab-web{display:none}
html.is-app .tab-app{display:inline}
html.is-app a.mobile-icon-link.tab-app{display:flex}
@media (max-width:640px){
  html.is-app .mobile-icon-nav{grid-template-columns:repeat(4,1fr)}
  html.is-app .mobile-icon-link{font-size:10.5px;padding:6px 2px 4px}
  /* Header: owl + "Sunday Showings" (no .com), the Talk to a Realtor pill,
     no hamburger (the tabs cover it). */
  /* No header bar in the app: the tab bar is the navigation. The header
     element stays (the tab bar lives inside it) but its top row is hidden. */
  html.is-app .site-header > .wrap.nav,html.is-app #mobile-menu-panel{display:none !important}
  html.is-app .site-header{border:0;padding:0;background:transparent;box-shadow:none;min-height:0}
  html.is-app .app-realtor-link{display:inline-block;margin-left:8px;padding:3px 10px;border:1.5px solid var(--navy);border-radius:999px;color:var(--navy);font-weight:700;font-size:12.5px;text-decoration:none;vertical-align:middle}
  /* First-visit owl tip on Find: the tabs and the tour box explain themselves. */
  html.is-app #build-intro{display:none !important}
  /* Cookie / location prompts as a bottom sheet above the tab bar. */
  html.is-app .ss-prompt{bottom:calc(62px + env(safe-area-inset-bottom));padding:0 10px}
  html.is-app .ss-prompt-card{border-radius:20px;background:rgba(255,255,255,.96);box-shadow:0 12px 40px -12px rgba(15,28,46,.5)}
  /* Footer: just the MLS disclosures, tucked under the list. */
  html.is-app .site-footer{padding:14px 0 10px}
}
/* Screen-to-screen crossfade in the installed app (Safari 18.2+, Chrome);
   the header and tab bar stay put instead of fading. */
/* (Cross-page crossfades were tried and felt laggy on phones; not used.) */

/* ---- App shell screens (welcome, account) and the floating tab bar ------- */
body[data-page=welcome] .site-header,body[data-page=welcome] .site-footer,body[data-page=welcome] .ss-prompt{display:none !important}
body[data-page=welcome]{padding-bottom:0 !important;background:var(--paper)}
.app-welcome{min-height:100vh;min-height:100svh;display:flex;flex-direction:column;justify-content:space-between;padding:calc(18px + env(safe-area-inset-top)) 22px calc(22px + env(safe-area-inset-bottom));max-width:480px;margin:0 auto;position:relative}
.app-welcome-skip{position:absolute;top:calc(12px + env(safe-area-inset-top));right:14px;width:40px;height:40px;display:grid;place-items:center;border-radius:50%;background:rgba(15,28,46,.06);color:var(--navy);font-size:26px;line-height:1;text-decoration:none}
.app-welcome-body{text-align:center;padding-top:34px}
.app-welcome-body .ss-logo{justify-content:center;display:inline-flex}
.app-welcome-owl{display:block;margin:34px auto 22px;width:min(220px,55vw);height:auto}
.app-welcome-body h1{font-family:"Poppins",var(--font-body);font-weight:700;font-size:clamp(26px,7.2vw,32px);line-height:1.12;color:var(--navy);margin:0 0 12px;letter-spacing:-.01em}
.app-welcome-body p{font-size:16px;line-height:1.5;color:var(--ink-soft);margin:0 6px}
.app-welcome-actions{display:flex;flex-direction:column;gap:10px;padding-top:26px}
.app-welcome-btn{display:flex;align-items:center;justify-content:center;gap:10px;height:52px;border-radius:14px;border:1.5px solid rgba(15,28,46,.18);background:#fff;color:var(--navy);font-weight:600;font-size:16px;text-decoration:none}
.app-welcome-btn.is-apple{background:#000;border-color:#000;color:#fff}
.app-welcome-btn:active{transform:scale(.98)}
.app-welcome-later{display:block;text-align:center;padding:12px;font-weight:700;color:var(--navy);text-decoration:none}
.app-welcome-realtor{text-align:center;font-size:13px;color:var(--muted);margin:2px 0 0}
.app-welcome-realtor a{color:var(--navy)}

.app-screen{max-width:640px;margin:0 auto;padding:8px 16px 24px}
.app-screen-head{padding:18px 4px 10px}
.app-screen-head h1{font-family:"Poppins",var(--font-body);font-weight:700;font-size:30px;color:var(--navy);margin:0 0 4px;letter-spacing:-.01em}
.app-screen-head p{margin:0;color:var(--muted);font-size:14px}
.app-group-title{margin:22px 6px 8px;font-size:12.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.app-rows{background:#fff;border:1px solid rgba(15,28,46,.1);border-radius:16px;overflow:hidden}
.app-rows a,.app-rows button{display:flex;align-items:center;gap:12px;width:100%;min-height:54px;padding:0 14px 0 12px;background:none;border:0;border-top:1px solid rgba(15,28,46,.08);color:var(--ink);font:inherit;font-size:16px;text-align:left;text-decoration:none;cursor:pointer}
.app-rows > :first-child{border-top:0}
.app-rows a > span:nth-child(2){flex:1}
.app-rows a::after{content:"";width:9px;height:9px;border-right:2px solid #b5bcc8;border-top:2px solid #b5bcc8;transform:rotate(45deg);margin-right:4px}
.app-rows a em{font-style:normal;color:var(--muted);font-size:14px}
.app-row-ico{width:30px;height:30px;display:grid;place-items:center;border-radius:9px;background:rgba(15,28,46,.06);font-size:15px}
.app-rows a:active,.app-rows button:active{background:rgba(15,28,46,.05)}
.app-signout{margin-top:22px}
.app-signout button{justify-content:center;color:#c0392b;font-weight:700}

/* Floating pill tab bar in the app. */
@media (max-width:640px){
  html.is-app .mobile-icon-nav{
    left:12px;right:12px;bottom:calc(10px + env(safe-area-inset-bottom));padding-bottom:0;
    border:1px solid rgba(15,28,46,.08);border-radius:26px;
    background:rgba(255,255,255,.92);box-shadow:0 10px 30px -8px rgba(15,28,46,.35),0 2px 6px rgba(15,28,46,.06);
  }
  html.is-app .mobile-icon-link{padding:9px 2px 8px;border-radius:22px}
  html.is-app .mobile-icon-link:first-child{border-radius:26px 0 0 26px}
  html.is-app .mobile-icon-link:last-child{border-radius:0 26px 26px 0}
  html.is-app body{padding-bottom:calc(84px + env(safe-area-inset-bottom))}
  html.is-app .ss-prompt{bottom:calc(84px + env(safe-area-inset-bottom))}
  html.is-app .floating-btn-top,html.is-app .floating-btn-route{bottom:calc(104px + env(safe-area-inset-bottom))}
  html.is-app .tour-dock{bottom:calc(92px + env(safe-area-inset-bottom)) !important}
  html.is-app .fit-float{bottom:calc(92px + env(safe-area-inset-bottom)) !important}
}
.app-welcome .ss-logo-word span{display:none}

/* ---- App Find screen: the map fills the screen, filters float on top,
   the list is a sheet (app.js appSheet). body.app-map-first, phones only. -- */
@media (max-width:640px){
  html.is-app body.app-map-first{padding-bottom:0 !important;overflow:hidden;height:100vh;height:100svh}
  html.is-app body.app-map-first .search-page.section{padding:0}
  html.is-app body.app-map-first .search-head,html.is-app body.app-map-first #build-intro,html.is-app body.app-map-first .site-footer{display:none !important}
  /* Filters: a floating pill row over the map. */
  html.is-app body.app-map-first .filter-band{position:fixed !important;top:calc(10px + env(safe-area-inset-top));left:12px;right:12px;width:auto;max-width:none;box-sizing:border-box;z-index:40;margin:0;padding:0;background:transparent;border:0;box-shadow:none}
  html.is-app body.app-map-first .filter-band .filters-toggle{margin:0;background:rgba(255,255,255,.96);border:1px solid rgba(15,28,46,.1);border-radius:999px;box-shadow:0 6px 20px -8px rgba(15,28,46,.4);padding:12px 16px}
  html.is-app body.app-map-first .filter-band .search-filters.is-open{margin-top:8px;background:#fff;border:1px solid rgba(15,28,46,.1);border-radius:18px;box-shadow:0 18px 40px -16px rgba(15,28,46,.45);padding:14px 14px 10px;max-height:calc(100vh - 220px);overflow:auto}
  /* Map: full screen behind everything. */
  html.is-app body.app-map-first .results-layout[data-view=map] .map-pane{display:block;position:fixed;inset:0;z-index:1;height:auto}
  html.is-app body.app-map-first .results-layout[data-view=map] .results-map{height:100% !important;min-height:0;margin:0;border-radius:0}
  html.is-app body.app-map-first .results-layout[data-view=map] .results-pane{display:block}
  html.is-app body.app-map-first .map-start-dock{top:calc(70px + env(safe-area-inset-top))}
  html.is-app body.app-map-first #map-hint{display:none}
  /* The sheet: one fixed height, moved with a transform (cheap on phones). */
  .app-sheet{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;flex-direction:column;background:#fff;border-radius:22px 22px 0 0;box-shadow:0 -12px 40px -16px rgba(15,28,46,.5);height:calc(78vh + env(safe-area-inset-bottom));height:calc(78svh + env(safe-area-inset-bottom));padding-bottom:calc(84px + env(safe-area-inset-bottom));transform:translateY(var(--sheet-y,0));transition:transform .32s cubic-bezier(.32,.72,0,1);will-change:transform;touch-action:pan-y}
  .app-sheet.is-peek{--sheet-y:calc(100% - 176px - env(safe-area-inset-bottom))}
  .app-sheet.is-half{--sheet-y:calc(100% - 54vh);--sheet-y:calc(100% - 54svh)}
  .app-sheet.is-full{--sheet-y:0}
  .app-sheet-handle{flex:none;display:block;width:100%;padding:10px 0 4px;background:none;border:0;cursor:grab}
  .app-sheet-handle span{display:block;width:38px;height:5px;margin:0 auto;border-radius:3px;background:rgba(15,28,46,.22)}
  .app-sheet #results-head{flex:none;padding:0 16px}
  .app-sheet .results-bar{margin:0 0 6px;scroll-margin-top:0;font-size:14px}
  .app-sheet .results-count{font-size:14.5px}
  .app-sheet .results-tools{display:flex;gap:8px;align-items:center}
  .app-sheet .view-toggle{display:none !important}
  .app-sheet #results-pane{flex:1;min-height:0;overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:0 12px}
  .app-sheet.is-peek #results-pane{overflow:hidden}
  .app-sheet .cards{gap:14px}
  /* Tour box and prompts sit above the sheet's peek; hidden while it's up. */
  html.is-app body.app-map-first .tour-dock{bottom:calc(186px + env(safe-area-inset-bottom)) !important;z-index:31}
  html.is-app body.app-map-first .fit-float{bottom:calc(186px + env(safe-area-inset-bottom)) !important;z-index:31}
  html.is-app body.app-map-first .ss-prompt{bottom:calc(188px + env(safe-area-inset-bottom))}
  html.is-app body.app-sheet-up .tour-dock,html.is-app body.app-sheet-up .fit-float,html.is-app body.app-sheet-up .floating-btn-top{display:none !important}
  html.is-app body.app-map-first .floating-btn-top{display:none !important}
}

/* App My Tour tab: photo stack + count, bumps when a home is added. */
.tab-tour-stack{display:none}
html.is-app .build-tab{position:relative}
html.is-app .build-tab .tab-tour-stack{position:absolute;top:2px;left:50%;transform:translateX(10px);display:flex;align-items:center;pointer-events:none}
html.is-app .build-tab .tab-tour-stack i{width:18px;height:18px;border-radius:50%;border:2px solid #fff;background:#cfd6e2 center/cover no-repeat;margin-left:-8px;box-shadow:0 1px 3px rgba(15,28,46,.25)}
html.is-app .build-tab .tab-tour-stack i:first-child{margin-left:0}
html.is-app .build-tab .tab-tour-stack b{min-width:18px;height:18px;padding:0 5px;margin-left:-6px;border-radius:9px;background:#e4572e;color:#fff;font-size:11px;font-weight:800;line-height:18px;text-align:center;border:2px solid #fff;box-sizing:content-box}
html.is-app .build-tab.has-tour .route-accent{color:#f0b323}
html.is-app .build-tab.is-bump{animation:tab-bump .6s cubic-bezier(.34,1.56,.64,1)}
@keyframes tab-bump{0%{transform:translateY(0)}30%{transform:translateY(-8px) rotate(-6deg)}55%{transform:translateY(0) rotate(5deg)}75%{transform:translateY(-3px) rotate(-2deg)}100%{transform:translateY(0)}}

/* App: white theme, short count line with just the play button. */
html.is-app{--paper:#ffffff;--surface-alt:#f4f5f7;background:#fff}
html.is-app body{background:#fff}
html.is-app .app-sheet,html.is-app .mobile-icon-nav{background:#fff}
html.is-app .site-header{background:#fff}
@media (max-width:640px){
  html.is-app .app-sheet .results-count{display:flex;align-items:center;gap:8px;font-size:16px;color:var(--navy);font-weight:600}
  html.is-app .app-sheet .results-count strong{font-weight:800}
  html.is-app .app-sheet .tut-replay{margin:0;padding:0;width:28px;height:28px;border-radius:50%;border:1.5px solid rgba(15,28,46,.18);background:#fff;font-size:0;display:inline-grid;place-items:center;color:var(--navy)}
  html.is-app .app-sheet .tut-replay svg{width:14px;height:14px}
  html.is-app .app-sheet .results-tools{margin-top:8px}
  html.is-app .app-sheet .app-realtor-link{margin:0 0 0 auto;order:9;white-space:nowrap;font-size:12px;padding:6px 10px}
  html.is-app .app-sheet .results-tools .sort-control{min-width:0;flex:1}
  html.is-app .app-sheet .results-tools .sort-control select{max-width:100%}
}

/* App Find: top bar, pin card, performance trims, login screens. */
@media (max-width:640px){
  html.is-app .mobile-icon-nav,html.is-app .ss-prompt-card{-webkit-backdrop-filter:none;backdrop-filter:none;background:#fff}
  html.is-app body.app-map-first .filter-band .filters-toggle{display:none}
  .app-topbar{display:flex;gap:8px;align-items:center}
  .app-search{flex:1;min-width:0;display:flex;align-items:center;gap:10px;height:48px;padding:0 16px;border:1px solid rgba(15,28,46,.1);border-radius:999px;background:#fff;box-shadow:0 6px 20px -8px rgba(15,28,46,.4);color:var(--navy);font:600 15px "Poppins",var(--font-body);text-align:left}
  .app-search span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink-soft);font-weight:500}
  .app-filters{position:relative;width:48px;height:48px;flex:none;border:1px solid rgba(15,28,46,.1);border-radius:50%;background:#fff;box-shadow:0 6px 20px -8px rgba(15,28,46,.4);color:var(--navy);display:grid;place-items:center}
  .app-filters-dot{position:absolute;top:9px;right:9px;width:9px;height:9px;border-radius:50%;background:#e4572e;border:2px solid #fff}
  .app-search:active,.app-filters:active{transform:scale(.97)}
  html.is-app body.app-map-first .mapboxgl-ctrl-bottom-left{bottom:calc(190px + env(safe-area-inset-bottom))}
  html.is-app body.app-map-first .mapboxgl-ctrl-top-right{display:none}
  .app-pin{padding:4px 4px 14px}
  .app-pin-back{display:inline-flex;align-items:center;height:36px;padding:0 14px;margin:0 0 12px;border:1px solid rgba(15,28,46,.14);border-radius:999px;background:#fff;color:var(--navy);font:700 13.5px "Poppins",var(--font-body)}
  .app-sheet.is-pin #results-body,.app-sheet.is-pin #results-head{display:none}
  html.is-app .app-sheet .tut-replay svg{margin-left:2px}
  /* Login / sign-up / password screens in the app: match the welcome screen. */
  html.is-app body[data-page=login] .section.narrow,html.is-app body[data-page=register] .section.narrow,html.is-app body[data-page=forgot-password] .section.narrow,html.is-app body[data-page=reset-password] .section.narrow,html.is-app body[data-page=verify-email] .section.narrow{padding:28px 22px 30px;max-width:480px}
  html.is-app body[data-page=login] .eyebrow,html.is-app body[data-page=register] .eyebrow{display:none}
  html.is-app body[data-page=login] h1,html.is-app body[data-page=register] h1,html.is-app body[data-page=forgot-password] h1,html.is-app body[data-page=verify-email] h1{font-family:"Poppins",var(--font-body);font-weight:700;font-size:28px;letter-spacing:-.01em;color:var(--navy);text-align:center;margin:6px 0 6px}
  html.is-app body[data-page=login] .lead,html.is-app body[data-page=register] .lead{text-align:center;font-size:15.5px;color:var(--ink-soft);margin:0 0 20px}
  html.is-app .social-signin{display:flex;flex-direction:column;gap:10px;margin:0 0 6px}
  html.is-app .social-btn{display:flex;align-items:center;justify-content:center;gap:10px;height:52px;border-radius:14px;border:1.5px solid rgba(15,28,46,.18);background:#fff;color:var(--navy);font-weight:600;font-size:16px;text-decoration:none;margin:0}
  html.is-app .social-or{margin:12px 0 6px;text-align:center;color:var(--muted);font-size:13px}
  html.is-app .lead-form label{display:block;font-size:13px;font-weight:700;color:var(--ink-soft);margin:12px 0 0}
  html.is-app .lead-form input:not([type=checkbox]){display:block;width:100%;height:52px;margin-top:6px;padding:0 14px;border:1.5px solid rgba(15,28,46,.16);border-radius:14px;background:#fff;font-size:16px;box-sizing:border-box}
  html.is-app .lead-form .button.big{width:100%;height:52px;margin-top:18px;border-radius:14px;font-size:16px}
  html.is-app .lead-form label.consent{display:flex;align-items:center;gap:8px;font-weight:500;margin-top:14px}
  html.is-app .auth-switch{text-align:center;margin:14px 0 0;font-size:15px}
}
