/* ============================================================
   NUMINMO — Site public locataires
   ============================================================ */

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --green:        #102b44;
  --green-light:  #f8eed8;
  --green-dark:   #081c2e;
  --blue:         #173e60;
  --gold:         #c88b19;
  --gold-light:   #f8eed8;
  --text:         #122033;
  --text-muted:   #64748b;
  --border:       #e1e7ee;
  --bg:           #f4f7fa;
  --white:        #ffffff;
  --radius:       18px;
  --radius-sm:    10px;
  --shadow:       0 1px 3px rgba(0,0,0,.1), 0 1px 2px rgba(0,0,0,.06);
  --shadow-md:    0 4px 6px -1px rgba(0,0,0,.1), 0 2px 4px -1px rgba(0,0,0,.06);
  --shadow-lg:    0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -2px rgba(0,0,0,.05);
  --font:         'Inter', system-ui, -apple-system, sans-serif;
  --max-width:    1140px;
}

html { scroll-behavior: smooth; }
body { font-family: var(--font); color: var(--text); background: var(--white); line-height: 1.6; font-size: 16px; }

img { max-width: 100%; display: block; }
a  { color: var(--green); text-decoration: none; }
a:hover { color: var(--green-dark); }

.container { max-width: var(--max-width); margin: 0 auto; padding: 0 1.5rem; }

/* ---- NAVBAR ---- */
.navbar {
  position: sticky; top: 0; z-index: 100;
  background: rgba(255,255,255,.95);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--border);
  box-shadow: var(--shadow);
}
.navbar-inner {
  display: flex; align-items: center; gap: 1.5rem;
  height: 68px;
}
.navbar-logo {
  display: flex; align-items: center; gap: .6rem;
  font-weight: 800; font-size: 1.2rem; color: #0f2942;
  flex-shrink: 0;
  text-decoration: none;
}
.navbar-logo .logo-icon { width:42px;height:42px;object-fit:contain;padding:2px;border:1px solid #ead8aa;border-radius:10px;background:#fffaf0; }
.navbar-nav {
  display: flex; align-items: center; gap: .25rem;
  list-style: none; margin-left: auto;
}
.navbar-nav a {
  padding: .5rem .85rem; border-radius: 8px;
  font-size: .9rem; font-weight: 500; color: var(--text);
  transition: background .15s, color .15s;
}
.navbar-nav a:hover, .navbar-nav a.active { background: #f8eed8; color: #9a650b; }
.navbar-cta { display: flex; align-items: center; gap: .75rem; margin-left: .75rem; }
.navbar-toggle { display: none; background: none; border: none; cursor: pointer; padding: .5rem; }

/* ---- BOUTONS ---- */
.btn {
  display: inline-flex; align-items: center; gap: .4rem;
  padding: .6rem 1.25rem; border-radius: var(--radius-sm);
  font-size: .9rem; font-weight: 600; cursor: pointer;
  border: 2px solid transparent; transition: all .15s; text-decoration: none;
}
.btn-primary   { background: #102b44; color: #fff; box-shadow:0 5px 14px rgba(16,43,68,.15); }
.btn-primary:hover { background: #c88b19; color: #fff; transform:translateY(-1px); }
.btn-outline   { background: transparent; border-color: var(--green); color: var(--green); }
.btn-outline:hover { background: var(--green-light); }
.btn-white     { background: #fff; color: var(--green); }
.btn-white:hover { background: var(--green-light); }
.btn-admin     { background: #1e293b; color: #94a3b8; border-color: #334155; font-size: .8rem; padding: .45rem 1rem; }
.btn-admin:hover { background: #334155; color: #fff; }
.btn-sm        { padding: .4rem .9rem; font-size: .8rem; }
.btn-lg        { padding: .85rem 2rem; font-size: 1rem; }

/* ---- HERO ---- */
.hero {
  background:radial-gradient(circle at 82% 20%,rgba(215,158,44,.2),transparent 28%),linear-gradient(125deg,#061625 0%,#0d2a43 58%,#123a58 100%);
  padding: 5.5rem 0 0;
  position: relative; overflow: hidden;
  color: #fff;
}
.hero::before {
  content: '';
  position: absolute; inset: 0;
  background:linear-gradient(90deg,transparent 49.8%,rgba(255,255,255,.025) 50%,transparent 50.2%);background-size:72px 72px;
}
.hero-inner { position: relative; display:grid;grid-template-columns:minmax(0,1.08fr) minmax(330px,.72fr);align-items:center;gap:4rem; }
.hero-text { max-width: 650px; }
.hero-badge {
  display: inline-flex; align-items: center; gap: .4rem;
  background:rgba(200,139,25,.12);border:1px solid rgba(228,180,83,.32);color:#f1cc7b;
  border-radius:999px;padding:.42rem .9rem;font-size:.75rem;font-weight:650;letter-spacing:.03em;
  margin-bottom: 1.25rem;
}
.hero-badge i{width:7px;height:7px;border-radius:50%;background:#e0a631;box-shadow:0 0 0 4px rgba(224,166,49,.12)}
.hero h1 { font-size:clamp(2.3rem,4.3vw,4rem);font-weight:800;letter-spacing:-.045em;line-height:1.03;margin-bottom:1.25rem; }
.hero h1 span { color:#e2ad43; }
.hero p { font-size: 1.1rem; opacity: .85; margin-bottom: 2rem; max-width: 500px; }
.hero-actions { display: flex; gap: 1rem; flex-wrap: wrap; }
.hero-stats {
  position:relative;display:flex;gap:0;margin-top:4.5rem;border-top:1px solid rgba(255,255,255,.11);background:rgba(5,19,32,.28);backdrop-filter:blur(8px);
}
.hero-stats>div{flex:1;padding:1.45rem 2rem;border-right:1px solid rgba(255,255,255,.1)}.hero-stats>div:last-child{border:0}
.hero-stat-value { color:#f0bf5e;font-size:1.65rem;font-weight:800; }
.hero-stat-label { margin-top:.15rem;font-size:.72rem;opacity:.67; }
.hero-showcase{position:relative;min-height:430px;padding:22px;border:1px solid rgba(255,255,255,.14);border-radius:28px;background:linear-gradient(150deg,rgba(255,255,255,.12),rgba(255,255,255,.045));box-shadow:0 30px 70px rgba(0,0,0,.3);backdrop-filter:blur(12px);transform:translateY(12px)}.hero-showcase__glow{position:absolute;right:-35px;top:-35px;width:170px;height:170px;border-radius:50%;background:rgba(213,151,30,.2);filter:blur(35px)}.hero-showcase__brand{position:relative;display:flex;align-items:center;gap:11px;padding-bottom:18px;border-bottom:1px solid rgba(255,255,255,.12)}.hero-showcase__brand img{width:62px;height:62px;object-fit:contain;padding:4px;border-radius:15px;background:#fffaf0}.hero-showcase__brand>div{display:flex;flex-direction:column}.hero-showcase__brand strong{font-size:1rem;letter-spacing:.12em}.hero-showcase__brand span{margin-top:3px;color:#b8c4d1;font-size:.63rem}.hero-showcase__content{position:relative;padding:38px 8px 8px}.hero-showcase__eyebrow{color:#dfac48;font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.hero-showcase__content>strong{display:block;margin-top:12px;font-size:1.35rem;line-height:1.45}.hero-showcase__points{display:grid;gap:9px;margin-top:30px}.hero-showcase__points span{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid rgba(255,255,255,.1);border-radius:11px;color:#d6dee7;background:rgba(4,18,30,.23);font-size:.72rem}.hero-showcase__points b{color:#dca641;font-size:.62rem}

/* ---- SEARCH BAR ---- */
.search-bar {
  background:rgba(255,255,255,.98);border:1px solid rgba(255,255,255,.65);border-radius:16px;
  box-shadow:0 20px 45px rgba(0,0,0,.22);
  padding:.75rem;
  display: flex; gap: 1rem; align-items: center; flex-wrap: wrap;
  margin-top: 2rem;
}
.search-bar input, .search-bar select {
  flex: 1; min-width: 160px;
  border: 1.5px solid var(--border); border-radius: var(--radius-sm);
  padding: .65rem 1rem; font-size: .9rem; color: var(--text);
  background: var(--bg); outline: none;
  font-family: var(--font);
}
.search-bar input:focus, .search-bar select:focus { border-color:#d3a13c;box-shadow:0 0 0 3px rgba(211,161,60,.13);background:#fff; }

/* ---- SECTIONS ---- */
section { padding: 4rem 0; }
.section-header { text-align: center; margin-bottom: 2.5rem; }
.section-label {
  display: inline-block; background:#f8eed8;color:#9a650b;
  font-size: .8rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase;
  padding: .3rem .8rem; border-radius: 999px; margin-bottom: .75rem;
}
.section-header h2 { font-size: clamp(1.6rem, 3vw, 2.25rem); font-weight: 800; margin-bottom: .5rem; }
.section-header p { color: var(--text-muted); font-size: 1.05rem; max-width: 560px; margin: 0 auto; }

/* ---- PROPERTY CARDS ---- */
.listings-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 1.5rem;
}
.home-listings{background:linear-gradient(180deg,#f4f7fa,#eef3f7)}
.property-card {
  background:var(--white);border-radius:20px;
  box-shadow:0 7px 25px rgba(15,35,55,.06);border:1px solid #dce4ec;
  overflow: hidden; transition: box-shadow .2s, transform .2s;
  display: flex; flex-direction: column;
}
.property-card:hover { box-shadow:0 20px 45px rgba(15,35,55,.13);border-color:#c9d5e1;transform:translateY(-6px); }

.property-img {
  width: 100%; height: 210px; object-fit: cover;
  background:linear-gradient(135deg,#dae4ed 0%,#b9cbd9 100%);
  display: flex; align-items: center; justify-content: center;
  color:#7892a8;font-size:4rem;flex-shrink:0;
  position: relative;
}
.property-img img { width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; }
.property-badge {
  position: absolute; top: .75rem; left: .75rem;
  padding: .25rem .7rem; border-radius: 999px;
  font-size: .75rem; font-weight: 700; letter-spacing: .03em;
}
.badge-disponible   { background:#102b44;color:#fff;box-shadow:0 4px 12px rgba(0,0,0,.18); }
.badge-bientot_disponible { background: #fef9c3; color: #854d0e; }
.badge-occupe       { background: #fee2e2; color: #991b1b; }

.property-body { padding: 1.25rem; flex: 1; display: flex; flex-direction: column; }
.property-price { font-size:1.5rem;font-weight:800;color:#102b44; }
.property-price span { font-size: .85rem; font-weight: 400; color: var(--text-muted); }
.property-address { font-size: .9rem; color: var(--text-muted); margin: .25rem 0 .75rem; }
.property-features {
  display: flex; gap: 1rem; font-size: .85rem; color: var(--text-muted);
  margin-bottom: 1rem;
}
.property-features span { display: flex; align-items: center; gap: .3rem; }
.property-tags { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: 1rem; }
.property-tag {
  background: var(--bg); border: 1px solid var(--border);
  border-radius: 999px; padding: .2rem .65rem; font-size: .75rem; color: var(--text-muted);
}
.property-footer { margin-top: auto; padding-top: .75rem; border-top: 1px solid var(--border); }

/* ---- APARTMENT DETAIL ---- */
.apt-hero { background: var(--bg); padding: 2rem 0; border-bottom: 1px solid var(--border); }
.apt-gallery {
  border-radius: var(--radius); overflow: hidden;
  background: linear-gradient(135deg, #d1fae5, #a7f3d0);
  height: 380px; display: flex; align-items: center; justify-content: center;
  color: #6ee7b7; font-size: 6rem; position: relative;
}
.apt-gallery img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.apt-detail-grid { display: grid; grid-template-columns: 1fr 340px; gap: 2rem; margin-top: 2rem; }
@media(max-width: 900px) { .apt-detail-grid { grid-template-columns: 1fr; } }

.apt-features-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem;
  margin: 1.5rem 0;
}
.apt-feature {
  background: var(--bg); border: 1px solid var(--border);
  border-radius: var(--radius-sm); padding: 1rem;
  text-align: center;
}
.apt-feature .value { font-size: 1.5rem; font-weight: 800; color: var(--green); }
.apt-feature .label { font-size: .8rem; color: var(--text-muted); }

/* ---- SIDEBAR CARD ---- */
.sidebar-card {
  background: var(--white); border: 1px solid var(--border);
  border-radius: var(--radius); box-shadow: var(--shadow);
  padding: 1.5rem; position: sticky; top: 88px;
}
.sidebar-card h3 { font-size: 1.15rem; font-weight: 700; margin-bottom: 1rem; }
.sidebar-price { font-size: 2rem; font-weight: 800; color: var(--green); margin-bottom: 1.25rem; }
.sidebar-price span { font-size: 1rem; font-weight: 400; color: var(--text-muted); }

/* ---- FEATURES LIST ---- */
.feat-list { list-style: none; }
.feat-list li {
  display: flex; align-items: center; gap: .6rem;
  padding: .5rem 0; border-bottom: 1px solid var(--bg);
  font-size: .9rem;
}
.feat-list li .icon { color: var(--green); flex-shrink: 0; font-size: 1rem; }

/* ---- CONTACT ---- */
.contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; }
@media(max-width:768px) { .contact-grid { grid-template-columns: 1fr; } }
.contact-info-item { display: flex; gap: 1rem; margin-bottom: 1.5rem; }
.contact-info-icon {
  width: 44px; height: 44px; flex-shrink: 0;
  background: var(--green-light); color: var(--green);
  border-radius: 10px; display: flex; align-items: center; justify-content: center;
  font-size: 1.2rem;
}

/* ---- FORMS ---- */
.form-group    { margin-bottom: 1.25rem; }
.form-label    { display: block; font-size: .875rem; font-weight: 600; margin-bottom: .4rem; color: var(--text); }
.form-control  {
  width: 100%; padding: .7rem 1rem;
  border: 1.5px solid var(--border); border-radius: var(--radius-sm);
  font-size: .9rem; font-family: var(--font); color: var(--text);
  background: var(--white); outline: none; transition: border-color .15s;
}
.form-control:focus { border-color: var(--green); box-shadow: 0 0 0 3px rgba(22,163,74,.1); }
textarea.form-control { resize: vertical; }
.form-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
@media(max-width:600px) { .form-grid-2 { grid-template-columns: 1fr; } }
.form-card {
  background: var(--white); border: 1px solid var(--border);
  border-radius: var(--radius); padding: 2rem; box-shadow: var(--shadow-md);
}

/* ---- ALERT ---- */
.alert { padding: .85rem 1rem; border-radius: var(--radius-sm); margin-bottom: 1rem; font-size: .9rem; }
.alert-success { background: #dcfce7; color: #166534; border: 1px solid #86efac; }
.alert-error   { background: #fee2e2; color: #991b1b; border: 1px solid #fca5a5; }
.alert-info    { background: #dbeafe; color: #1e40af; border: 1px solid #93c5fd; }

/* ---- TENANT PORTAL ---- */
.portal-header {
  background: linear-gradient(135deg, #064e3b, #065f46);
  color: #fff; padding: 2.5rem 0;
}
.portal-header h1 { font-size: 1.75rem; font-weight: 800; }
.portal-header p  { opacity: .8; margin-top: .25rem; }
.portal-grid { display: grid; grid-template-columns: 280px 1fr; gap: 2rem; margin-top: 2rem; }
@media(max-width:900px) { .portal-grid { grid-template-columns: 1fr; } }

.portal-sidebar {
  background: var(--white); border: 1px solid var(--border);
  border-radius: var(--radius); padding: 1.25rem; height: fit-content;
  position: sticky; top: 88px;
}
.portal-nav a {
  display: flex; align-items: center; gap: .6rem;
  padding: .65rem .85rem; border-radius: var(--radius-sm);
  color: var(--text); font-size: .9rem; font-weight: 500;
  transition: background .15s; text-decoration: none;
}
.portal-nav a:hover { background: var(--green-light); color: var(--green-dark); }
.portal-nav a.active { background: var(--green-light); color: var(--green-dark); font-weight: 600; }

.request-card {
  background: var(--white); border: 1px solid var(--border);
  border-radius: var(--radius); padding: 1.25rem;
  box-shadow: var(--shadow); margin-bottom: 1rem;
  display: flex; gap: 1rem; align-items: flex-start;
}
.request-icon {
  width: 44px; height: 44px; flex-shrink: 0;
  border-radius: var(--radius-sm); display: flex; align-items: center;
  justify-content: center; font-size: 1.2rem;
}
.request-statut { font-size: .75rem; font-weight: 700; padding: .25rem .65rem; border-radius: 999px; }
.statut-nouveau    { background: #dbeafe; color: #1e40af; }
.statut-en_cours   { background: #fef9c3; color: #854d0e; }
.statut-resolu     { background: #dcfce7; color: #166534; }
.statut-ferme      { background: #f3f4f6; color: #6b7280; }

/* ---- URGENCE PILLS ---- */
.pill-urgente    { background: #fee2e2; color: #991b1b; }
.pill-semi       { background: #fef9c3; color: #854d0e; }
.pill-normale    { background: #f3f4f6; color: #4b5563; }

/* ---- FEATURES SECTION ---- */
.features-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1.5rem; }
.feature-card {
  background:var(--white);border:1px solid #e0e7ee;
  border-radius:18px;padding:1.65rem;
  box-shadow:0 6px 20px rgba(15,35,55,.045);transition:transform .2s,border-color .2s,box-shadow .2s;
}
.feature-card:hover{transform:translateY(-4px);border-color:#e5c57f;box-shadow:0 16px 35px rgba(15,35,55,.09)}
.feature-icon {
  width:52px;height:52px;background:#f8eed8;color:#a76d08;
  border-radius: 14px; display: flex; align-items: center; justify-content: center;
  font-size: 1.5rem; margin-bottom: 1rem;
}
.feature-card h3 { font-size: 1rem; font-weight: 700; margin-bottom: .4rem; }
.feature-card p  { font-size: .875rem; color: var(--text-muted); }
.tenant-cta{position:relative;overflow:hidden;padding:4.5rem 0;color:#fff;background:radial-gradient(circle at 20% 40%,rgba(208,146,25,.2),transparent 26%),linear-gradient(125deg,#071827,#102f49)}.tenant-cta:after{content:"";position:absolute;right:-90px;top:-120px;width:330px;height:330px;border:1px solid rgba(255,255,255,.07);border-radius:50%;box-shadow:0 0 0 45px rgba(255,255,255,.025),0 0 0 90px rgba(255,255,255,.018)}.tenant-cta .container{position:relative;z-index:1}.tenant-cta__label{display:inline-block;margin-bottom:.8rem;color:#e4b553;font-size:.7rem;font-weight:750;letter-spacing:.12em;text-transform:uppercase}.tenant-cta h2{font-size:clamp(1.7rem,3vw,2.35rem);font-weight:800;margin-bottom:1rem}.tenant-cta p{max-width:540px;margin:0 auto 2rem;color:#c2cfda;font-size:1rem}.tenant-cta__actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}

/* ---- FOOTER ---- */
.footer {
  background: #0f172a; color: #94a3b8;
  padding: 3rem 0 1.5rem;
}
.footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 2rem; margin-bottom: 2.5rem; }
@media(max-width:768px) { .footer-grid { grid-template-columns: 1fr 1fr; } }
.footer-brand .logo { display:flex;align-items:center;gap:.65rem;font-size: 1.2rem; font-weight: 800; letter-spacing:.08em;color: #fff; margin-bottom: .75rem; }
.footer-brand .logo img{width:46px;height:46px;object-fit:contain;padding:2px;border-radius:10px;background:#fffaf0}
.footer-brand p { font-size: .875rem; line-height: 1.7; max-width: 280px; }
.footer h4 { color: #fff; font-size: .9rem; font-weight: 700; margin-bottom: 1rem; }
.footer ul { list-style: none; }
.footer ul li { margin-bottom: .5rem; }
.footer ul li a { font-size: .875rem; color: #94a3b8; transition: color .15s; }
.footer ul li a:hover { color:#e3ae43; }
.footer-bottom {
  border-top: 1px solid #1e293b; padding-top: 1.5rem;
  display: flex; justify-content: space-between; align-items: center;
  font-size: .8rem; flex-wrap: wrap; gap: .5rem;
}
.footer-admin-link { color: #475569; font-size: .75rem; }
.footer-admin-link:hover { color: #94a3b8; }

/* ---- BREADCRUMB ---- */
.breadcrumb {
  font-size: .85rem; color: var(--text-muted);
  display: flex; align-items: center; gap: .5rem; margin-bottom: 1rem;
}
.breadcrumb a { color: var(--text-muted); }
.breadcrumb a:hover { color: var(--green); }

/* ---- EMPTY STATE ---- */
.empty-state { text-align: center; padding: 4rem 2rem; color: var(--text-muted); }
.empty-state .emoji { font-size: 3rem; margin-bottom: 1rem; }
.empty-state h3 { font-size: 1.15rem; font-weight: 600; color: var(--text); margin-bottom: .5rem; }

/* ---- UTILITIES ---- */
.text-muted  { color: var(--text-muted); }
.text-green  { color: var(--green); }
.fw-bold     { font-weight: 700; }
.text-sm     { font-size: .875rem; }
.text-center { text-align: center; }
.mt-1 { margin-top: .5rem; }
.mt-2 { margin-top: 1rem; }
.mt-3 { margin-top: 1.5rem; }
.mb-1 { margin-bottom: .5rem; }
.mb-2 { margin-bottom: 1rem; }
.divider { border: none; border-top: 1px solid var(--border); margin: 1.5rem 0; }

/* ---- MOBILE ---- */
@media(max-width: 768px) {
  .navbar-nav { display: none; }
  .navbar-nav.open { display: flex; flex-direction: column; position: absolute; top: 68px; left: 0; right: 0; background: #fff; border-bottom: 1px solid var(--border); padding: 1rem; box-shadow: var(--shadow-md); }
  .navbar-toggle { display: flex; }
  .hero{padding:3.5rem 0 0}.hero-inner{grid-template-columns:1fr}.hero-showcase{display:none}.hero h1{font-size:2.45rem}.hero-stats{margin-top:3rem}.hero-stats>div{padding:1.1rem .7rem;text-align:center}
  .hero-stats { flex-wrap: wrap; gap: 1rem; }
  .search-bar { flex-direction: column; }
  .search-bar input, .search-bar select { min-width: 100%; }
}

/* ---- LOGIN PAGE ---- */
.login-wrap { min-height: 100vh; display: flex; align-items: center; justify-content: center; background: var(--bg); padding: 2rem; }
.login-card { background: var(--white); border-radius: var(--radius); box-shadow: var(--shadow-lg); padding: 2.5rem; width: 100%; max-width: 420px; }
.login-logo { text-align: center; margin-bottom: 2rem; }
.login-logo .icon { font-size: 2.5rem; }
.login-logo h1 { font-size: 1.4rem; font-weight: 800; margin-top: .5rem; }
.login-logo p  { color: var(--text-muted); font-size: .875rem; margin-top: .25rem; }
.tenant-brand-mark{display:block;width:92px;height:92px;margin:0 auto 10px;object-fit:contain;padding:5px;border:1px solid #ead8aa;border-radius:18px;background:#fffaf0;box-shadow:0 8px 22px rgba(15,41,66,.1)}

/* ---- NUMINMO editorial homepage -------------------------------- */
.public-home .navbar{position:absolute;left:0;right:0;top:0;color:#fff;background:linear-gradient(180deg,rgba(3,14,24,.82),rgba(3,14,24,0));border:0;box-shadow:none;backdrop-filter:none}.public-home .navbar-logo{color:#fff}.public-home .navbar-logo:hover{color:#efc36c}.public-home .navbar-logo .logo-icon{border-color:rgba(221,174,78,.42);background:#fff9ed}.public-home .navbar-nav a{color:#dbe4ec}.public-home .navbar-nav a:hover,.public-home .navbar-nav a.active{color:#f1c56b;background:rgba(255,255,255,.08)}.public-home .navbar-cta .btn-outline{color:#fff;border-color:rgba(255,255,255,.28)}.public-home .navbar-cta .btn-admin{color:#102b44;background:#fff}.public-home .navbar-toggle{color:#fff}
.public-home .hero{min-height:760px;padding-top:150px;background:linear-gradient(112deg,#061521 0%,#0b263b 54%,#173c58 100%)}.public-home .hero:before{z-index:0;background:linear-gradient(90deg,transparent 49.8%,rgba(255,255,255,.025) 50%,transparent 50.2%);background-size:72px 72px}.public-home .hero.has-property-photo:after{content:"";position:absolute;z-index:0;right:0;top:0;bottom:0;width:48%;background-image:linear-gradient(90deg,#0b263b 0%,rgba(11,38,59,.56) 18%,rgba(4,18,29,.08) 55%),linear-gradient(0deg,rgba(3,15,25,.58),transparent 48%),var(--hero-image);background-position:center;background-size:cover;filter:saturate(.86) contrast(1.03)}.public-home .hero .container{position:relative;z-index:1}.public-home .hero-inner{grid-template-columns:minmax(0,1fr) minmax(300px,.72fr);min-height:490px;align-items:end}.public-home .hero-text{align-self:center;padding-bottom:12px}.public-home .hero h1{max-width:700px;font-family:Georgia,'Times New Roman',serif;font-size:clamp(3rem,5.3vw,5.3rem);font-weight:500;letter-spacing:-.055em;line-height:.98}.public-home .hero h1 span{font-style:italic;font-weight:400}.public-home .hero p{max-width:580px;color:#c7d2dc;font-size:1.04rem;line-height:1.8;opacity:1}.public-home .hero-actions{align-items:center}.public-home .hero-actions .btn-white{padding:.9rem 1.35rem;border:1px solid #fff;background:#fff;color:#0d2b43;box-shadow:0 12px 30px rgba(0,0,0,.18)}.public-home .hero-actions .btn-white:hover{border-color:#e0ab40;background:#e0ab40;color:#fff}.public-home .hero-actions .btn-white span{margin-left:.4rem}.hero-text-link{display:inline-flex;align-items:center;gap:.55rem;padding:.75rem .25rem;color:#e6edf3;border-bottom:1px solid rgba(255,255,255,.28);font-size:.86rem;font-weight:600}.hero-text-link:hover{color:#efbf5d;border-color:#efbf5d}.hero-text-link span{color:#e1ab3f}
.public-home .search-bar{position:relative;z-index:2;width:calc(100% + 160px);margin-top:2.7rem;padding:.55rem;border-radius:14px}.public-home .search-bar input,.public-home .search-bar select{height:47px;border:0;border-right:1px solid #e3e8ee;border-radius:0;background:#fff}.public-home .search-bar input:focus,.public-home .search-bar select:focus{box-shadow:none}.public-home .search-bar .btn{height:47px;padding-left:1.4rem;padding-right:1.4rem;border-radius:10px;background:#c48617}.public-home .search-bar .btn:hover{background:#102b44}
.hero-property{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1fr) auto 42px;align-items:end;gap:13px;margin:0 0 28px 20px;padding:18px;border:1px solid rgba(255,255,255,.22);border-radius:16px;background:rgba(5,19,30,.62);box-shadow:0 22px 45px rgba(0,0,0,.28);backdrop-filter:blur(15px)}.hero-property__label{position:absolute;left:18px;top:-28px;color:#f2ca79;font-size:.62rem;font-weight:750;letter-spacing:.12em;text-transform:uppercase}.hero-property>div{display:flex;min-width:0;flex-direction:column}.hero-property>div strong{overflow:hidden;color:#fff;font-size:.77rem;text-overflow:ellipsis;white-space:nowrap}.hero-property>div small{margin-top:4px;color:#aebdca;font-size:.63rem}.hero-property__price{display:flex;flex-direction:column;color:#fff;font-size:.8rem;font-weight:800;white-space:nowrap}.hero-property__price small{margin-top:3px;color:#aebdca;font-size:.57rem;font-weight:500}.hero-property>a{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;color:#102b44;background:#efc15f;font-size:1.05rem}.hero-property>a:hover{color:#fff;background:#c38212}.hero-property>img{width:74px;height:74px;object-fit:contain;padding:4px;border-radius:14px;background:#fffaf0}
.public-home .hero-stats{margin-top:1.3rem;margin-left:auto;margin-right:auto;border:1px solid rgba(255,255,255,.1);border-bottom:0;border-radius:18px 18px 0 0;background:rgba(2,13,22,.44)}
.home-listings{padding:7rem 0}.section-header--split{display:grid;grid-template-columns:1fr 1fr;align-items:end;gap:4rem;text-align:left}.section-header--split h2{max-width:600px;font-family:Georgia,'Times New Roman',serif;font-size:clamp(2.4rem,4vw,4rem);font-weight:500;letter-spacing:-.04em;line-height:1.05}.section-header--split>div:last-child{padding-bottom:.4rem}.section-header--split p{max-width:430px;margin:0 0 1rem}.section-header--split a{color:#a46d0d;font-size:.78rem;font-weight:750}.home-listings .listings-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.home-listings .property-card{min-height:480px}.home-listings .property-card.is-featured{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);min-height:460px}.home-listings .property-card.is-featured .property-img{height:100%;min-height:460px}.home-listings .property-card.is-featured .property-body{padding:2rem}.home-listings .property-card.is-featured .property-price{font-size:2rem}.home-listings .property-img{height:270px}.home-listings .property-card:not(.is-featured):nth-child(even){transform:translateY(22px)}.home-listings .property-card:not(.is-featured):nth-child(even):hover{transform:translateY(16px)}
.public-home .features-grid{grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid #dce4eb;border-bottom:1px solid #dce4eb}.public-home .feature-card{position:relative;min-height:290px;padding:2rem 1.55rem;border:0;border-right:1px solid #dce4eb;border-radius:0;box-shadow:none}.public-home .feature-card:last-child{border-right:0}.public-home .feature-card:hover{z-index:1;border-color:transparent;background:#102b44;box-shadow:0 22px 40px rgba(10,31,49,.18);transform:translateY(-8px)}.public-home .feature-card:hover h3{color:#fff}.public-home .feature-card:hover p{color:#b8c5d0}.feature-number{display:block;margin-bottom:2rem;color:#b17a17;font:italic 1rem Georgia,serif}.public-home .feature-icon{width:48px;height:48px;border-radius:50%;font-size:1.15rem}.public-home .feature-card h3{margin-top:1.4rem;font-family:Georgia,'Times New Roman',serif;font-size:1.25rem;font-weight:600}.public-home .feature-card p{line-height:1.7}.tenant-cta__mark{position:absolute;left:50%;top:50%;width:430px;height:430px;object-fit:contain;opacity:.035;transform:translate(-50%,-50%)}
@media(max-width:980px){.public-home .hero.has-property-photo:after{width:100%;opacity:.27}.public-home .hero-inner{grid-template-columns:1fr}.public-home .hero-text{max-width:720px}.public-home .search-bar{width:100%}.hero-property{display:none}.public-home .features-grid{grid-template-columns:1fr 1fr}.public-home .feature-card:nth-child(2){border-right:0}.public-home .feature-card:nth-child(-n+2){border-bottom:1px solid #dce4eb}}
@media(max-width:768px){.public-home .navbar{position:relative;background:#081c2e}.public-home .navbar-nav.open{background:#0b263b}.public-home .navbar-cta{display:none}.public-home .hero{min-height:auto;padding-top:4.5rem}.public-home .hero-inner{min-height:0}.public-home .hero h1{font-size:clamp(2.7rem,13vw,4rem)}.public-home .hero p{font-size:.93rem}.section-header--split{grid-template-columns:1fr;gap:1rem}.home-listings{padding:4.5rem 0}.home-listings .listings-grid{grid-template-columns:1fr}.home-listings .property-card.is-featured{display:flex;grid-column:auto;min-height:0}.home-listings .property-card.is-featured .property-img{height:280px;min-height:0}.home-listings .property-card:not(.is-featured):nth-child(even),.home-listings .property-card:not(.is-featured):nth-child(even):hover{transform:none}.public-home .features-grid{grid-template-columns:1fr}.public-home .feature-card{min-height:0;border-right:0;border-bottom:1px solid #dce4eb!important}.public-home .feature-card:last-child{border-bottom:0!important}.public-home .hero-stats{border-radius:14px 14px 0 0}}

/* Stable hero layout — visible full NUMINMO signature */
.public-home .navbar{position:sticky;background:#081c2e;box-shadow:0 8px 25px rgba(3,14,24,.15);backdrop-filter:blur(14px)}
.public-home .hero{min-height:auto;padding:64px 0 0;background:linear-gradient(125deg,#061521,#0c2b43)}
.public-home .hero.has-property-photo:after{display:none}
.public-home .hero-inner{grid-template-columns:minmax(0,1fr) minmax(380px,.82fr);min-height:500px;align-items:center;gap:52px}
.public-home .hero-text{align-self:center;padding:0}
.hero-logo-panel{display:flex;align-items:center;justify-content:center;width:380px;height:210px;margin:0 0 22px;padding:4px 12px;overflow:hidden;border:1px solid rgba(216,166,66,.42);border-radius:18px;background:#fff;box-shadow:0 18px 38px rgba(0,0,0,.25)}
.hero-logo-panel img{width:100%;height:100%;object-fit:contain}
.public-home .hero h1{font-size:clamp(2.8rem,4.6vw,4.7rem)}
.hero-visual{position:relative;min-height:470px;overflow:hidden;border:1px solid rgba(255,255,255,.16);border-radius:26px;background-image:linear-gradient(0deg,rgba(2,14,23,.72),transparent 55%),var(--hero-image,linear-gradient(145deg,#173f5d,#0a2032));background-position:center;background-size:cover;box-shadow:0 28px 65px rgba(0,0,0,.32)}
.hero-visual:before{content:"";position:absolute;inset:0;border:1px solid rgba(255,255,255,.08);border-radius:inherit;pointer-events:none}
.hero-visual .hero-property{position:absolute;left:18px;right:18px;bottom:18px;display:grid;grid-template-columns:minmax(0,1fr) auto 42px;align-items:center;gap:13px;margin:0;padding:15px 16px;border:1px solid rgba(255,255,255,.2);border-radius:14px;background:rgba(3,17,28,.72)}
.hero-visual .hero-property__label{top:-27px;left:4px}
.public-home .search-bar{width:100%;margin:30px 0 0;padding:8px}
.public-home .hero-stats{margin-top:20px}
@media(max-width:980px){.public-home .hero-inner{grid-template-columns:1fr;gap:34px}.hero-logo-panel{width:350px;height:194px}.hero-visual{min-height:390px}.public-home .search-bar{margin-top:28px}}
@media(max-width:768px){.public-home .hero{padding-top:42px}.hero-logo-panel{width:min(320px,100%);height:176px;margin-bottom:20px}.public-home .hero-inner{gap:28px}.hero-visual{display:block;min-height:330px}.hero-visual .hero-property{left:12px;right:12px;bottom:12px}.public-home .search-bar{margin-top:20px}.public-home .hero-stats{margin-top:18px}}
@media(max-width:520px){.hero-visual{min-height:280px}.hero-visual .hero-property{grid-template-columns:minmax(0,1fr) 38px}.hero-visual .hero-property__price{display:none}.public-home .hero-stats>div{padding:.9rem .35rem}.hero-stat-value{font-size:1.25rem}.hero-stat-label{font-size:.58rem}}

/* NUMINMO signature + honest photographic fallbacks */
.numinmo-signature{display:flex;align-items:center;gap:18px;width:max-content;max-width:100%;margin-bottom:26px}.numinmo-signature>img{width:96px;height:96px;flex:0 0 96px;object-fit:contain;padding:4px;border:1px solid rgba(222,173,73,.45);border-radius:22px;background:#fffaf0;box-shadow:0 18px 36px rgba(0,0,0,.25)}.numinmo-signature>div{display:flex;min-width:0;flex-direction:column}.numinmo-signature strong{color:#fff;font-size:clamp(2rem,3.3vw,3.25rem);font-weight:800;letter-spacing:.14em;line-height:1}.numinmo-signature small{display:flex;align-items:center;gap:9px;margin-top:10px;color:#d4a747;font-size:.68rem;font-weight:650;letter-spacing:.13em;text-transform:uppercase;white-space:nowrap}.numinmo-signature small i{width:5px;height:5px;border-radius:50%;background:#e1ae45}.ambience-note{position:absolute;z-index:3;right:10px;bottom:10px;padding:5px 8px;border:1px solid rgba(255,255,255,.38);border-radius:99px;color:#fff;background:rgba(7,25,39,.72);backdrop-filter:blur(7px);font-size:.55rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.hero-ambience-note{right:14px;top:14px;bottom:auto}.property-img:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 70%,rgba(6,22,34,.2));pointer-events:none}.property-img .property-badge{z-index:3}
@media(max-width:768px){.numinmo-signature{gap:13px}.numinmo-signature>img{width:76px;height:76px;flex-basis:76px;border-radius:18px}.numinmo-signature strong{font-size:clamp(1.65rem,9vw,2.5rem)}.numinmo-signature small{font-size:.54rem;letter-spacing:.08em;white-space:normal}}

/* Straight, non-overlapping home composition */
.numinmo-brand-stage{display:flex;align-items:center;justify-content:center;padding:10px 20px!important;border-bottom:1px solid #ead8aa;background:#fff}.numinmo-brand-stage img{display:block;width:min(390px,88vw);height:145px;object-fit:contain}
.public-home .hero{padding-top:58px}.public-home .hero-inner{min-height:460px}
.home-listings .listings-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:24px}.home-listings .property-card,.home-listings .property-card.is-featured{display:flex;min-width:0;min-height:0;grid-column:auto;grid-template-columns:none;transform:none!important}.home-listings .property-card:hover,.home-listings .property-card.is-featured:hover{transform:translateY(-5px)!important}.home-listings .property-card .property-img,.home-listings .property-card.is-featured .property-img{width:100%;height:245px;min-height:245px}.home-listings .property-card .property-body,.home-listings .property-card.is-featured .property-body{padding:1.35rem}.home-listings .property-card .property-price,.home-listings .property-card.is-featured .property-price{font-size:1.55rem}.home-listings .property-footer{position:static;margin-top:auto;padding-top:14px}.home-listings .property-footer .btn{position:static;display:flex;width:100%!important;min-height:46px}.home-listings .text-center{position:relative;z-index:1;margin-top:48px!important;padding-top:0;clear:both}
@media(max-width:1050px){.home-listings .listings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.numinmo-brand-stage{padding:8px 12px!important}.numinmo-brand-stage img{width:min(310px,92vw);height:110px}.home-listings .listings-grid{grid-template-columns:1fr}.home-listings .property-card .property-img,.home-listings .property-card.is-featured .property-img{height:250px;min-height:250px}.home-listings .text-center{margin-top:32px!important}}
