/* nyumbake theme: Kenyan flag palette. Single source of colour truth. Loaded last on every page. */
:root {
  --nke-black: #111111;
  --nke-black-true: #000000;
  --nke-red: #bb0000;
  --nke-red-dark: #8a0000;
  --nke-red-soft: #fbeaea;
  --nke-red-line: #efb8b8;
  /* Primary palette is black + red. The --nke-green* names are kept for the
     vendored MakaUG CSS but now resolve to black/red. Real flag green is
     --nke-flag-green and is used only for thin flag-stripe accents. */
  --nke-flag-green: #006600;
  --nke-green: #111111;
  --nke-green-dark: #000000;
  --nke-green-soft: #fbeaea;
  --nke-green-line: #efb8b8;
  --nke-white: #ffffff;
  --nke-ink: #111111;
  --nke-muted: #4b5563;
  --nke-line: #e5e7eb;
  --nke-paper: #f7f7f7;
}
/* Remap legacy / shared (MakaUG) tokens onto the palette */
:root, body, body * {
  --ke-black: var(--nke-black) !important; --ke-red: var(--nke-red) !important; --ke-red-hover: var(--nke-red-dark) !important;
  --ke-green: var(--nke-green) !important; --ke-green-hover: var(--nke-green-dark) !important;
  --home-green: var(--nke-green) !important; --home-green-dark: var(--nke-green-dark) !important; --home-green-soft: var(--nke-green-soft) !important;
  --home-red: var(--nke-red) !important; --home-blue: var(--nke-green) !important; --home-ink: var(--nke-ink) !important;
  --green: var(--nke-green) !important; --green-dark: var(--nke-green-dark) !important; --red: var(--nke-red) !important;
  --black: var(--nke-black) !important; --focus: var(--nke-green) !important;
  --category-accent: var(--nke-green) !important; --category-accent-dark: var(--nke-green-dark) !important;
  --ai-accent: var(--nke-green) !important; --ai-accent-hover: var(--nke-green-dark) !important; --ai-accent-soft: var(--nke-green-soft) !important;
  --ai-accent-border: var(--nke-green-line) !important; --ai-focus-ring: rgba(187, 0, 0, 0.22) !important;
  --lp-accent: var(--nke-green) !important; --lp-accent-2: var(--nke-green) !important; --lp-soft: var(--nke-green-soft) !important;
  --lp-border: var(--nke-green-line) !important; --lp-ink: var(--nke-green-dark) !important; --lp-on-accent: #fff !important;
}
a { accent-color: var(--nke-red); }
:focus-visible { outline-color: var(--nke-green); }
/* Shared tailwind colour utilities -> flag palette (generated by gen_theme.py) */
.border-blue-100{--tw-border-opacity:1;border-color:var(--nke-green-soft)}
.border-green-100{--tw-border-opacity:1;border-color:var(--nke-green-soft)}
.border-green-200{--tw-border-opacity:1;border-color:var(--nke-green-line)}
.border-green-700{--tw-border-opacity:1;border-color:var(--nke-green-dark)}
.border-green-800{--tw-border-opacity:1;border-color:var(--nke-green-dark)}
.bg-green-50{--tw-bg-opacity:1;background-color:var(--nke-green-soft)}
.bg-green-50\/40{background-color:var(--nke-green-soft)}
.bg-green-50\/50{background-color:var(--nke-green-soft)}
.bg-green-50\/60{background-color:var(--nke-green-soft)}
.bg-green-500{--tw-bg-opacity:1;background-color:var(--nke-green)}
.bg-green-500\/10{background-color:var(--nke-green-soft)}
.bg-green-500\/20{background-color:var(--nke-green-soft)}
.bg-green-700{--tw-bg-opacity:1;background-color:var(--nke-green-dark)}
.bg-green-800{--tw-bg-opacity:1;background-color:var(--nke-green-dark)}
.bg-green-900{--tw-bg-opacity:1;background-color:var(--nke-black)}
.bg-green-900\/90{background-color:var(--nke-black)}
.bg-red-50{--tw-bg-opacity:1;background-color:var(--nke-red-soft)}
.bg-red-50\/50{background-color:var(--nke-red-soft)}
.bg-red-500{--tw-bg-opacity:1;background-color:var(--nke-red)}
.text-amber-300{--tw-text-opacity:1;color:var(--nke-red)}
.text-amber-50{--tw-text-opacity:1;color:#fff}
.text-amber-500{--tw-text-opacity:1;color:var(--nke-red)}
.text-green-100{--tw-text-opacity:1;color:#fff}
.text-green-100\/80{color:#fff}
.text-green-200{--tw-text-opacity:1;color:var(--nke-green)}
.text-green-300{--tw-text-opacity:1;color:var(--nke-green)}
.text-green-400{--tw-text-opacity:1;color:var(--nke-green)}
.text-green-700{--tw-text-opacity:1;color:var(--nke-green-dark)}
.text-green-700\/80{color:var(--nke-green-dark)}
.text-green-800{--tw-text-opacity:1;color:var(--nke-green-dark)}
.text-green-900{--tw-text-opacity:1;color:var(--nke-green-dark)}
.text-green-950{--tw-text-opacity:1;color:var(--nke-green-dark)}
.text-red-600{--tw-text-opacity:1;color:var(--nke-red)}
.hover\:border-green-50:hover{--tw-border-opacity:1;border-color:var(--nke-green-soft)}
.hover\:border-green-500:hover{--tw-border-opacity:1;border-color:var(--nke-green)}
.hover\:bg-green-400:hover{--tw-bg-opacity:1;background-color:var(--nke-green)}
.hover\:bg-green-50:hover{--tw-bg-opacity:1;background-color:var(--nke-green-soft)}
.hover\:bg-green-50\/50:hover{background-color:var(--nke-green-soft)}
.hover\:bg-green-600:hover{--tw-bg-opacity:1;background-color:var(--nke-green)}
.hover\:bg-rose-50:hover{--tw-bg-opacity:1;background-color:var(--nke-red-soft)}
.hover\:text-amber-200:hover{--tw-text-opacity:1;color:var(--nke-red)}
.hover\:text-green-200:hover{--tw-text-opacity:1;color:var(--nke-green)}
.hover\:text-green-700:hover{--tw-text-opacity:1;color:var(--nke-green-dark)}/* flag palette: remaining leaks */
#hero-location-helper{background-color:var(--nke-green-dark)!important}
.ask-ai-search-shell{border-color:var(--nke-green-line)!important;color:var(--nke-ink)!important}

/* Black + red accents (cleanup 2026-11-04): prices and key accents in red. */
body.nke-mk-detail .nke-detail-price, body.nke-mk-detail .nke-side-price { color: var(--nke-red) !important; }
.bg-green-900\/90 { background-color: rgba(17,17,17,.9) !important; }

/* Cleanup 4/n (4 Nov 2026): one sticky header, no gap, map below it; card/pin hover sync. */
.shared-chrome[data-shared-chrome="header"] { display: contents; }
.shared-chrome[data-shared-chrome="header"] > nav.sticky { position: sticky; top: 0; z-index: 60; }
.section-search-shell { position: relative !important; top: auto !important; z-index: 5 !important; }
.nke-map-sticky { top: 84px; z-index: 2; }
.mk-price-tag.is-active, .nke-price-pin .mk-price-tag.is-active { background: var(--nke-red) !important; color: #fff !important; transform: translate(-50%, -100%) scale(1.12); box-shadow: 0 6px 16px rgba(200,16,46,.45); }
article.nke-card-active { outline: 2px solid var(--nke-red); outline-offset: 2px; }
@media (max-width: 1023px) { .nke-map-sticky { position: static; } }

/* Campus finder (student accommodation) */
.nke-campus{max-width:80rem;margin:1.5rem auto 0;padding:0 1rem}
.nke-campus-inner{border:1px solid #d9e2dc;border-radius:14px;padding:1.25rem;background:#fff}
.nke-campus h2{font-size:1.35rem;font-weight:800;margin:0 0 .25rem}
.nke-campus-lead,.nke-campus-note{color:#4b5563;font-size:.9rem;margin:.25rem 0 .75rem}
.nke-campus-form{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:.75rem;align-items:end}
.nke-campus-form label{display:flex;flex-direction:column;gap:.25rem;font-size:.8rem;font-weight:700;color:#374151}
.nke-campus-form select,.nke-campus-form input{min-height:44px;border:1px solid #cbd5d0;border-radius:10px;padding:0 .6rem;font-size:.95rem;width:100%;background:#fff}
.nke-campus-form button{min-height:44px;border-radius:10px;padding:0 1.1rem;background:var(--nke-green,#006600);color:#fff;font-weight:800;border:0;cursor:pointer}
.nke-campus-status{font-weight:700;margin:.75rem 0 0}
.nke-campus h3{font-size:1.05rem;font-weight:800;margin:1rem 0 .5rem}
.nke-campus-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.75rem}
.nke-campus-card{display:flex;flex-direction:column;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden;color:inherit;text-decoration:none;background:#fff}
.nke-campus-card:hover{border-color:var(--nke-red,#bb0000)}
.nke-campus-card img{width:100%;aspect-ratio:4/3;object-fit:cover;background:#eef2ef}
.nke-campus-card div{display:flex;flex-direction:column;gap:.15rem;padding:.6rem .75rem}
.nke-campus-price{font-weight:800}
.nke-campus-place{color:#4b5563;font-size:.85rem}
.nke-campus-distance{color:var(--nke-red,#bb0000);font-weight:700;font-size:.85rem}
@media (max-width:767px){.nke-campus-form{grid-template-columns:1fr 1fr}.nke-campus-form label:first-child,.nke-campus-form button{grid-column:1/-1}}

/* Long prices with a suffix ("KSh 95,000 / month") must never clip on narrow screens, LTR or RTL. */
body.nke-mk-detail .nke-detail-price, body.nke-mk-detail .nke-side-price {
  max-width: 100%; min-width: 0; white-space: normal !important; overflow-wrap: anywhere;
  font-size: clamp(22px, 7vw, 34px); line-height: 1.15;
}
