/* === Demo Shell (isolates from your main theme) === */
.demo-site { font-family: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; color: var(--tx); background: var(--bg); }
.demo-site .container { max-width: 1140px; }

/* Industry tokens (adjust per demo page by switching a class on .demo-site) */
/* Attorney */
.industry-attorney { --brand:#0f2740; --accent:#2e6df6; --muted:#f3f5f8; --tx:#101318; --bg:#ffffff; --ok:#18a957; --warn:#f0b429; }

/* Restaurant (example for later) */
.industry-restaurant { --brand:#3b1d0f; --accent:#e0482a; --muted:#fff5ef; --tx:#1a120e; --bg:#ffffff; }

/* Contractor (example for later) */
.industry-contractor { --brand:#1f2937; --accent:#f59e0b; --muted:#f7f7f7; --tx:#0f172a; --bg:#ffffff; }

/* Real Estate tokens */
.industry-realestate { --brand:#0e2238; --accent:#2bb0ed; --muted:#f5f7fb; --tx:#0f172a; --bg:#ffffff; }

/* Real estate search bar visual balance */
.search-pill {
  padding: 0.5rem 0.75rem;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.search-pill .form-control,
.search-pill .form-select {
  min-width: 150px;
  height: 46px;
}

.search-pill .btn {
  height: 46px;
  padding: 0 1.25rem;
  white-space: nowrap;
}

/* Center the inner grid so button isn't pushing it right */
@media (min-width: 768px) {
  .search-pill .row {
    flex: 1;
    justify-content: center;
    align-items: center;
  }
}

/* Hero base */
.hero-re { position: relative; }

/* AA contrast for subheading on dark overlay */
.text-contrast { color: #F2F6FA; } /* near-white to ensure ≥4.5:1 on dark bg */

/* === Real Estate Hero Form Fine-Tuning === */

/* Adjust proportions */
.hero-re-form .form-control,
.hero-re-form .form-select {
  height: 48px;
  border-radius: .5rem;
  border: 0;
  box-shadow: 0 2px 0 rgba(0,0,0,.08);
}

/* Smaller first input */
.hero-re-form .form-control[type="text"] {
  max-width: 260px;     /* tighten city/ZIP input */
}

/* Prevent button text from wrapping */
.hero-re-form .btn {
  height: 48px;
  white-space: nowrap;
  padding: 0 1.5rem;    /* extra padding gives it breathing room */
  min-width: 160px;     /* ensures one-line text */
  border-radius: .5rem;
  font-weight: 600;
}

/* Optional: fix spacing between controls */
.hero-re-form .col-lg-2,
.hero-re-form .col-lg-1,
.hero-re-form .col-lg-4 {
  flex: 0 0 auto;
}

.hero-re-form .col-lg-4 { width: 28%; }
.hero-re-form .col-lg-2 { width: 16%; }
.hero-re-form .col-lg-1 { width: 10%; }

/* Make sure total width stays close to 100% */
@media (max-width: 992px) {
  .hero-re-form .col-lg-4,
  .hero-re-form .col-lg-2,
  .hero-re-form .col-lg-1 {
    width: 100%;
  }
}

/* Layout the hero form with fixed, balanced widths */
.hero-re-form{
  display:flex; flex-wrap:wrap; align-items:stretch; justify-content:center; gap:.75rem;
}

/* Desktop widths – tweak these if you want a hair more/less */
.hero-re-form .field--location { flex:0 0 300px; }   /* slightly smaller than before */
.hero-re-form .field--min,
.hero-re-form .field--max     { flex:0 0 150px; }
.hero-re-form .field--beds,
.hero-re-form .field--baths   { flex:0 0 120px; }
.hero-re-form .field--submit  {
  flex:0 0 190px;            /* a bit wider so text never wraps */
  white-space:nowrap;        /* keep “Search Homes” on one line */
  height:48px;               /* matches inputs */
  font-weight:600;
  border-radius:.5rem;
}

/* Inputs/selects consistent height + shape (keeps your earlier polish) */
.hero-re-form .form-control,
.hero-re-form .form-select { height:48px; border:0; border-radius:.5rem; box-shadow:0 2px 0 rgba(0,0,0,.08); }

/* Responsive: stack cleanly under lg */
@media (max-width: 992px){
  .hero-re-form .field--location,
  .hero-re-form .field--min,
  .hero-re-form .field--max,
  .hero-re-form .field--beds,
  .hero-re-form .field--baths,
  .hero-re-form .field--submit { flex:1 1 100%; }
}

/* Basic utilities used in demos */
.demo-topbar { background: var(--brand); color:#fff; }
.demo-topbar a { color:#fff; text-decoration:none; }
.demo-nav a { color:#e6eefc; margin-right:1.25rem; font-weight:600; }
.demo-cta { background: var(--accent); color:#fff; border:0; padding:.6rem 1rem; border-radius:.5rem; }
.demo-cta-outline { border:1px solid var(--accent); color:var(--accent); background:transparent; padding:.55rem .9rem; border-radius:.5rem; }
.section-muted { background: var(--muted); }
.badge-row img {
  height: 96px;         /* was 42px */
  opacity: 0.95;
  transition: transform 0.25s ease, opacity 0.25s ease;
}
.badge-row img:hover {
  transform: scale(1.08);
  opacity: 1;
}
.badge-row {
  gap: 2.5rem;           /* increases space between badges */
  flex-wrap: wrap;       /* keeps layout neat on smaller screens */
}
.card { border:1px solid #e8edf3; border-radius:.8rem; }
.card:hover { box-shadow: 0 10px 22px rgba(0,0,0,.08); transform: translateY(-2px); transition: .25s; }

/* Hero split with form */
.hero-split { background: radial-gradient(1000px 400px at -5% -10%, rgba(46,109,246,.12), transparent), linear-gradient(180deg, #0b1a30, #0b1a30 60%, #0c1526); color:#fff; }
.hero-split .lead { color:#dfe8ff; }
.demo-form { background:#fff; border-radius: .8rem; padding:1.2rem; box-shadow: 0 8px 24px rgba(0,0,0,.2); }
.demo-form .form-control { border-radius:.5rem; border-color:#dde3ea; }
.demo-form .btn { background:var(--accent); border:0; }

/* Sticky mobile CTA (optional) */
.sticky-cta { position:fixed; right:16px; bottom:16px; z-index:9; }

/* //////////////////////////// */

/* Fitness Industry Theme */
.industry-fitness {
  --brand: #0a0a0a;
  --accent: #2dd4bf;
  --muted: #f8fafc;
  --tx: #0f172a;
  --bg: #ffffff;
}

/* Fitness hero section */
.hero-fit {
  background-color: #0a0a0a;
}
.industry-fitness .demo-cta { background: var(--accent); color:#fff; border:0; }
.industry-fitness .demo-cta-outline { border:1px solid var(--accent); color:var(--accent); background:transparent; }
.industry-fitness .demo-cta:hover,
.industry-fitness .btn:hover { opacity:.9; }

/* Accent text */
.text-accent { color: var(--accent); }
.bg-accent { background: var(--accent); }

/* Section polish */
.card p { margin-bottom:0; }
.card strong { color: var(--brand); display:block; margin-top:1rem; }

/* Nonprofit theme */
.industry-nonprofit {
  --brand:#0b2136;        /* deep blue */
  --accent:#17b26a;       /* giving/positive green */
  --muted:#f3f7fb;
  --tx:#0f172a;
  --bg:#ffffff;
}

/* Light brand tint section */
.bg-nonprofit-tint { background: linear-gradient(0deg, #eef6ff, #f6fbf8); }

/* Donation bar sizing (hero form) */
.donate-bar .form-select,
.donate-bar .form-control { height: 52px; border:0; border-radius:.5rem; }
.donate-bar .btn { height: 52px; border-radius:.5rem; }
