/* ============================================================
   style.css — Kots & Studios Namur
   Design : Navy / Or / Crème — immobilier étudiant
============================================================ */

:root {
  --navy:        #0D1B2A;
  --navy-light:  #1A2E42;
  --cream:       #F4ECD8;
  --cream-light: #FAF7F0;
  --gold:        #C4963A;
  --gold-light:  #E8C47A;
  --text:        #2C2C2C;
  --text-muted:  #6B6B6B;
  --border:      #E0D8C8;
  --white:       #FFFFFF;
  --green:       #2E7D52;
  --orange:      #C4732A;
  --red:         #A63228;
  --shadow:      0 4px 24px rgba(13,27,42,0.08);
  --shadow-hover:0 8px 40px rgba(13,27,42,0.14);
  --radius:      4px;
  --radius-lg:   8px;
}

*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; overflow-x:hidden; }
body { overflow-x:hidden; }
body { font-family:'DM Sans',sans-serif; color:var(--text); background:var(--cream-light); font-size:15px; line-height:1.65; }
h1,h2,h3,h4 { font-family:'Playfair Display',serif; line-height:1.25; }
a { color:inherit; text-decoration:none; }
img { max-width:100%; display:block; }
button { cursor:pointer; font-family:'DM Sans',sans-serif; }
input,select,textarea { font-family:'DM Sans',sans-serif; }

/* ── LAYOUT ─────────────────────────────────────────────── */
#page { min-height:100vh; display:flex; flex-direction:column; }
main { flex:1; }

/* ── NAVBAR ─────────────────────────────────────────────── */
.navbar {
  background:var(--navy); color:var(--white);
  padding:0 2rem;
  display:flex; align-items:center; justify-content:space-between;
  height:68px; position:sticky; top:0; z-index:200;
  box-shadow:0 2px 20px rgba(0,0,0,0.25);
}
.navbar-logo {
  font-family:'Playfair Display',serif; font-size:1.35rem;
  font-weight:700; letter-spacing:0.02em; color:var(--gold-light);
  white-space:nowrap;
}
.navbar-logo span { color:var(--white); font-weight:400; font-style:italic; font-size:0.95rem; margin-left:6px; }
.navbar-links { display:flex; gap:1.5rem; align-items:center; }
.navbar-links a { font-size:0.82rem; font-weight:500; letter-spacing:0.06em; text-transform:uppercase; color:rgba(255,255,255,0.7); transition:color .2s; }
.navbar-links a:hover,.navbar-links a.active { color:var(--gold-light); }
.navbar-avail { background:var(--green); color:#fff; font-size:0.78rem; font-weight:700; padding:5px 14px; border-radius:20px; white-space:nowrap; }
.nav-hamburger { display:none; background:none; border:none; color:white; font-size:1.4rem; padding:4px 8px; }

/* ── BUTTONS ─────────────────────────────────────────────── */
.btn { display:inline-flex; align-items:center; gap:8px; padding:13px 28px; border-radius:var(--radius); font-size:0.88rem; font-weight:600; letter-spacing:0.05em; text-transform:uppercase; transition:all .25s; border:none; cursor:pointer; }
.btn-primary { background:var(--gold); color:var(--navy); }
.btn-primary:hover { background:var(--gold-light); transform:translateY(-1px); box-shadow:0 6px 20px rgba(196,150,58,0.35); }
.btn-outline { background:transparent; color:var(--white); border:1.5px solid rgba(255,255,255,0.4); }
.btn-outline:hover { border-color:var(--gold-light); color:var(--gold-light); }
.btn-sm { padding:8px 18px; font-size:0.82rem; }
.btn-navy { background:var(--navy); color:var(--white); }
.btn-navy:hover { background:var(--navy-light); }

/* ── SECTION ─────────────────────────────────────────────── */
.section { padding:4rem 2rem; max-width:1200px; margin:0 auto; }
.section-header { text-align:center; margin-bottom:3rem; }
.eyebrow { font-size:0.75rem; font-weight:600; letter-spacing:0.12em; text-transform:uppercase; color:var(--gold); margin-bottom:0.75rem; }
.section-header h2 { font-size:clamp(1.6rem,3vw,2.2rem); color:var(--navy); }
.section-header p { color:var(--text-muted); margin-top:0.75rem; max-width:520px; margin-left:auto; margin-right:auto; }

/* ── HERO ─────────────────────────────────────────────────── */
.hero {
  background:linear-gradient(135deg, var(--navy) 0%, var(--navy-light) 60%, #234060 100%);
  color:var(--white); padding:7rem 2rem 6rem; text-align:center; position:relative; overflow:hidden;
}
.hero::before {
  content:''; position:absolute; inset:0;
  background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23C4963A' fill-opacity='0.04'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
}
.hero-badge { display:inline-block; border:1px solid var(--gold); color:var(--gold-light); font-size:0.75rem; font-weight:600; letter-spacing:0.12em; text-transform:uppercase; padding:5px 16px; border-radius:20px; margin-bottom:1.5rem; position:relative; }
.hero h1 { font-size:clamp(2rem,5vw,3.4rem); font-weight:700; margin-bottom:1.2rem; max-width:800px; margin-left:auto; margin-right:auto; position:relative; }
.hero h1 em { color:var(--gold-light); font-style:italic; }
.hero p { font-size:1.05rem; color:rgba(255,255,255,0.75); max-width:560px; margin:0 auto 2rem; font-weight:300; position:relative; }
.hero-stats { display:flex; gap:3rem; justify-content:center; margin-bottom:2.5rem; position:relative; }
.hero-stat-val { font-family:'Playfair Display',serif; font-size:2.2rem; font-weight:700; color:var(--gold-light); display:block; }
.hero-stat-label { font-size:0.75rem; color:rgba(255,255,255,0.55); text-transform:uppercase; letter-spacing:0.08em; }
.hero-cta { display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; position:relative; }

/* ── BUILDINGS GRID ─────────────────────────────────────── */
.buildings-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(340px,1fr)); gap:2rem; }
.building-card { background:var(--white); border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow); transition:all .3s; cursor:pointer; border:1px solid var(--border); }
.building-card:hover { box-shadow:var(--shadow-hover); transform:translateY(-3px); }
.building-card-img { height:220px; background:var(--navy); overflow:hidden; position:relative; }
.building-card-img img { width:100%; height:100%; object-fit:cover; transition:transform .4s; }
.building-card:hover .building-card-img img { transform:scale(1.04); }
.building-card-img-placeholder { width:100%; height:100%; display:flex; align-items:center; justify-content:center; background:linear-gradient(135deg,var(--navy),var(--navy-light)); font-family:'Playfair Display',serif; font-size:3rem; color:var(--gold); opacity:.4; }
.building-stats-overlay { position:absolute; bottom:0; left:0; right:0; background:linear-gradient(transparent,rgba(13,27,42,0.85)); padding:2rem 1.2rem 0.8rem; display:flex; gap:.8rem; flex-wrap:wrap; }
.building-stat-badge { background:rgba(196,150,58,0.9); color:var(--navy); font-size:0.72rem; font-weight:700; padding:3px 10px; border-radius:20px; }
.building-card-body { padding:1.5rem; }
.building-card-body h3 { font-size:1.2rem; color:var(--navy); margin-bottom:.3rem; }
.building-card-addr { font-size:0.83rem; color:var(--text-muted); margin-bottom:1rem; display:flex; align-items:center; gap:5px; }
.building-card-desc { font-size:0.9rem; color:var(--text-muted); margin-bottom:1.2rem; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.availability-row { display:flex; align-items:center; justify-content:space-between; padding-top:1rem; border-top:1px solid var(--border); }
.avail-pill { font-size:0.78rem; font-weight:600; padding:4px 12px; border-radius:20px; }
.avail-pill.green  { background:#E8F5EE; color:var(--green); }
.avail-pill.orange { background:#FEF3E7; color:var(--orange); }
.avail-pill.red    { background:#FBE8E7; color:var(--red); }
.view-link { font-size:0.82rem; font-weight:600; color:var(--gold); display:flex; align-items:center; gap:4px; }

/* ── INFO FEATURES ──────────────────────────────────────── */
.features-band { background:var(--cream); padding:3rem 2rem; }
.features-grid { max-width:1100px; margin:0 auto; display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:1.5rem; }
.feature-card { background:var(--white); border:1px solid var(--border); border-radius:var(--radius-lg); padding:1.5rem; text-align:center; }
.feature-icon { font-size:1.8rem; margin-bottom:.75rem; }
.feature-title { font-weight:700; color:var(--navy); font-size:.95rem; margin-bottom:.3rem; }
.feature-desc { font-size:.82rem; color:var(--text-muted); }

/* ── CARTE ───────────────────────────────────────────────── */
.map-section { background:var(--navy); padding:4rem 2rem; }
.map-section-inner { max-width:1200px; margin:0 auto; }
.map-section .eyebrow { color:var(--gold-light); }
.map-section h2 { color:var(--white); font-size:clamp(1.5rem,3vw,2rem); margin-bottom:1rem; }
.map-section p { color:rgba(255,255,255,.65); margin-bottom:2rem; max-width:560px; }
#map { height:480px; border-radius:var(--radius-lg); overflow:hidden; border:2px solid rgba(196,150,58,0.3); }
.map-legend { display:flex; gap:1.5rem; flex-wrap:wrap; margin-top:1rem; }
.map-legend-item { display:flex; align-items:center; gap:6px; font-size:0.82rem; color:rgba(255,255,255,0.7); }
.map-legend-dot { width:12px; height:12px; border-radius:50%; flex-shrink:0; }

/* ── CONTACT SECTION ────────────────────────────────────── */
.contact-section { background:var(--navy); color:var(--white); padding:5rem 2rem; }
.contact-inner { max-width:960px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:5rem; align-items:start; }
.contact-info h2 { font-size:1.9rem; margin-bottom:.5rem; }
.contact-info h2 em { color:var(--gold-light); font-style:italic; }
.contact-info p { color:rgba(255,255,255,0.65); margin-bottom:2rem; }
.contact-detail { display:flex; align-items:flex-start; gap:12px; margin-bottom:1rem; }
.contact-icon { width:36px; height:36px; background:rgba(196,150,58,0.15); border-radius:50%; display:flex; align-items:center; justify-content:center; flex-shrink:0; color:var(--gold-light); }
.contact-detail-text small { display:block; font-size:0.75rem; color:rgba(255,255,255,0.45); margin-bottom:2px; }
.contact-form-wrap { background:var(--white); border-radius:var(--radius-lg); padding:2rem; color:var(--text); }
.contact-form-title { font-family:'Playfair Display',serif; font-size:1.2rem; color:var(--navy); margin-bottom:1.5rem; }

/* ── FORM ────────────────────────────────────────────────── */
.form-group { margin-bottom:1.2rem; }
.form-group label { display:block; font-size:0.78rem; font-weight:600; margin-bottom:5px; color:var(--text-muted); letter-spacing:0.04em; text-transform:uppercase; }
.form-group label .req { color:var(--red); }
.form-group input,.form-group select,.form-group textarea {
  width:100%; padding:10px 14px; border:1.5px solid var(--border); border-radius:var(--radius);
  font-size:.9rem; color:var(--text); transition:border-color .2s; background:var(--cream-light);
}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus { outline:none; border-color:var(--gold); background:var(--white); }
.form-group textarea { resize:vertical; min-height:90px; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.form-row-3 { display:grid; grid-template-columns:1fr 1fr 1fr; gap:1rem; }
.form-section-title { font-family:'Playfair Display',serif; font-size:1.1rem; color:var(--navy); margin:2rem 0 1rem; padding-bottom:.5rem; border-bottom:1px solid var(--border); }
.form-hint { font-size:0.78rem; color:var(--text-muted); margin-top:4px; }
.garant-block { background:var(--cream-light); border:1px solid var(--border); border-radius:var(--radius-lg); padding:1.5rem; margin-bottom:1rem; position:relative; }
.garant-block-title { font-weight:700; color:var(--navy); margin-bottom:1rem; }
.remove-garant-btn { position:absolute; top:.8rem; right:.8rem; background:var(--red); color:white; border:none; width:24px; height:24px; border-radius:50%; font-size:1rem; line-height:1; display:flex; align-items:center; justify-content:center; cursor:pointer; }

/* ── BREADCRUMB ─────────────────────────────────────────── */
.breadcrumb { background:var(--cream); border-bottom:1px solid var(--border); padding:.75rem 2rem; font-size:.82rem; color:var(--text-muted); display:flex; gap:.5rem; align-items:center; flex-wrap:wrap; }
.breadcrumb a { color:var(--gold); }
.breadcrumb a:hover { text-decoration:underline; }
.breadcrumb .sep { color:var(--border); }

/* ── BUILDING PAGE ──────────────────────────────────────── */
.building-hero { background:var(--navy); color:var(--white); padding:3rem 2rem 2rem; }
.building-hero-inner { max-width:1200px; margin:0 auto; display:grid; grid-template-columns:1fr auto; gap:2rem; align-items:end; }
.building-hero h1 { font-size:clamp(1.6rem,3vw,2.4rem); margin-bottom:.5rem; }
.building-hero .addr { color:rgba(255,255,255,0.65); font-size:.9rem; margin-bottom:1.5rem; }
.building-hero-tags { display:flex; gap:.5rem; flex-wrap:wrap; margin-bottom:1rem; }
.hero-tag { background:rgba(196,150,58,0.2); color:var(--gold-light); font-size:.78rem; font-weight:600; padding:4px 12px; border-radius:20px; border:1px solid rgba(196,150,58,0.3); }
.building-stats-bar { display:flex; gap:2.5rem; flex-wrap:wrap; }
.bstat { text-align:center; }
.bstat-val { font-family:'Playfair Display',serif; font-size:2.2rem; font-weight:700; color:var(--gold-light); }
.bstat-label { font-size:.75rem; color:rgba(255,255,255,0.55); letter-spacing:.05em; text-transform:uppercase; }

/* ── BUILDING GALLERY ───────────────────────────────────── */
.building-gallery { display:grid; grid-template-columns:2fr 1fr 1fr; grid-template-rows:1fr 1fr; gap:4px; height:340px; overflow:hidden; }
.building-gallery img { width:100%; height:100%; object-fit:cover; cursor:pointer; transition:transform .3s; }
.building-gallery img:hover { transform:scale(1.03); }
.building-gallery img:first-child { grid-row:1/3; }

/* ── TABS ────────────────────────────────────────────────── */
.tabs-bar { background:var(--white); border-bottom:1px solid var(--border); padding:0 2rem; display:flex; gap:0; position:sticky; top:68px; z-index:90; overflow-x:auto; }
.tab-btn { background:none; border:none; border-bottom:2.5px solid transparent; padding:1rem 1.2rem; font-size:.85rem; font-weight:600; color:var(--text-muted); letter-spacing:.04em; transition:all .2s; white-space:nowrap; }
.tab-btn:hover { color:var(--navy); }
.tab-btn.active { color:var(--navy); border-bottom-color:var(--gold); }
.tab-content { display:none; }
.tab-content.active { display:block; }

/* ── UNITS GRID ─────────────────────────────────────────── */
.units-filters { display:flex; gap:.75rem; flex-wrap:wrap; margin-bottom:2rem; }
.filter-btn { background:var(--cream); border:1px solid var(--border); border-radius:20px; padding:6px 16px; font-size:.82rem; font-weight:600; color:var(--text-muted); transition:all .2s; cursor:pointer; }
.filter-btn.active,.filter-btn:hover { background:var(--navy); color:var(--white); border-color:var(--navy); }
.units-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:1.5rem; }
.unit-card { background:var(--white); border:1px solid var(--border); border-radius:var(--radius-lg); overflow:hidden; transition:all .25s; }
.unit-card.available { border-color:rgba(46,125,82,0.3); }
.unit-card:hover { box-shadow:var(--shadow-hover); transform:translateY(-2px); cursor:pointer; }
.unit-card-img { height:160px; overflow:hidden; position:relative; }
.unit-card-img img { width:100%; height:100%; object-fit:cover; }
.unit-card-img-placeholder { width:100%; height:100%; display:flex; align-items:center; justify-content:center; background:linear-gradient(135deg,var(--navy),var(--navy-light)); color:var(--gold); font-size:2rem; opacity:.4; }
.unit-card-head { background:var(--navy); padding:1rem 1.2rem; display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; }
.unit-type-badge { font-size:.7rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--gold-light); background:rgba(196,150,58,0.18); border:1px solid rgba(196,150,58,0.3); padding:3px 10px; border-radius:20px; display:inline-block; margin-bottom:.3rem; }
.unit-name { font-family:'Playfair Display',serif; font-size:1.1rem; color:var(--white); }
.unit-card-body { padding:1.2rem; }
.unit-specs { display:flex; gap:1rem; margin-bottom:1rem; flex-wrap:wrap; }
.unit-spec { font-size:.82rem; color:var(--text-muted); display:flex; align-items:center; gap:4px; }
.unit-spec strong { color:var(--text); font-weight:600; }
.unit-price { display:flex; align-items:baseline; gap:6px; margin-bottom:.5rem; }
.unit-price-total { font-family:'Playfair Display',serif; font-size:1.4rem; font-weight:700; color:var(--navy); }
.unit-price-detail { font-size:.78rem; color:var(--text-muted); }
.unit-price-hidden { font-size:.85rem; color:var(--text-muted); font-style:italic; padding:.5rem 0; }
.unit-avail { font-size:.8rem; margin-top:.6rem; padding-top:.6rem; border-top:1px solid var(--border); }
.available-badge { display:inline-flex; align-items:center; gap:6px; background:#E8F5EE; color:var(--green); font-size:.8rem; font-weight:700; padding:5px 14px; border-radius:20px; }
.available-badge::before { content:''; width:7px; height:7px; border-radius:50%; background:var(--green); display:inline-block; }

/* ── STATUS BADGES ──────────────────────────────────────── */
.status-badge { display:inline-flex; align-items:center; gap:4px; font-size:.75rem; font-weight:700; padding:4px 10px; border-radius:20px; white-space:nowrap; }
.status-badge::before { content:''; width:6px; height:6px; border-radius:50%; display:inline-block; }
.status-badge.loue      { background:#FBE8E7; color:var(--red); }
.status-badge.loue::before    { background:var(--red); }
.status-badge.disponible { background:#E8F5EE; color:var(--green); }
.status-badge.disponible::before { background:var(--green); }
.status-badge.option    { background:#FEF3E7; color:var(--orange); }
.status-badge.option::before  { background:var(--orange); }

/* ── TARIFS TABLE ───────────────────────────────────────── */
.tarifs-wrap { overflow-x:auto; margin-bottom:2rem; }
.tarifs-table { width:100%; border-collapse:collapse; font-size:.88rem; min-width:700px; }
.tarifs-table th { background:var(--navy); color:var(--white); padding:.9rem 1rem; text-align:left; font-weight:600; font-size:.78rem; letter-spacing:.06em; text-transform:uppercase; cursor:pointer; user-select:none; white-space:nowrap; }
.tarifs-table th:hover { background:var(--navy-light); }
.tarifs-table th .sort-icon { margin-left:4px; opacity:.5; }
.tarifs-table th.sort-asc .sort-icon::after  { content:'↑'; }
.tarifs-table th.sort-desc .sort-icon::after { content:'↓'; }
.tarifs-table th:not(.sort-asc):not(.sort-desc) .sort-icon::after { content:'↕'; }
.tarifs-table td { padding:.85rem 1rem; border-bottom:1px solid var(--border); vertical-align:middle; }
.tarifs-table tr:last-child td { border-bottom:none; }
.tarifs-table tr:hover td { background:var(--cream-light); cursor:pointer; }
.tarifs-table tr:nth-child(even) td { background:rgba(244,236,216,0.3); }
.tarifs-table tr:nth-child(even):hover td { background:var(--cream-light); }
.price-cell { font-weight:700; color:var(--navy); }
.filter-row th { background:var(--cream); padding:.5rem .7rem; }
.filter-row input,.filter-row select { width:100%; padding:5px 8px; border:1px solid var(--border); border-radius:var(--radius); font-size:.8rem; background:white; }
.tarifs-table tr.loue td { color:var(--text-muted); }

/* ── UNIT DETAIL PAGE ───────────────────────────────────── */
.unit-detail-grid { display:grid; grid-template-columns:1fr 380px; gap:2.5rem; align-items:start; }
.unit-gallery-col { min-width:0; width:100%; }
.unit-detail-gallery { border-radius:var(--radius-lg); overflow:visible; }
.unit-detail-gallery .main-img { height:clamp(220px,50vw,420px); overflow:hidden; border-radius:var(--radius-lg); }
.unit-detail-gallery .main-img img { width:100%; height:100%; object-fit:cover; }
.unit-thumbs { display:flex; gap:6px; margin-top:6px; overflow-x:auto; -webkit-overflow-scrolling:touch; padding-bottom:4px; scrollbar-width:thin; scrollbar-color:var(--gold) transparent; }
.unit-thumbs::-webkit-scrollbar { height:4px; }
.unit-thumbs::-webkit-scrollbar-thumb { background:var(--gold); border-radius:2px; }
.unit-thumbs img { width:88px; height:66px; object-fit:cover; border-radius:var(--radius); cursor:pointer; opacity:.7; transition:opacity .2s; flex-shrink:0; }
.unit-thumbs img:hover,.unit-thumbs img.active { opacity:1; outline:2px solid var(--gold); outline-offset:1px; }
.unit-detail-sidebar { background:var(--white); border:1px solid var(--border); border-radius:var(--radius-lg); padding:2rem; position:sticky; top:90px; }
.unit-sidebar-price { margin-bottom:1.5rem; padding-bottom:1.5rem; border-bottom:1px solid var(--border); }
.price-big { font-family:'Playfair Display',serif; font-size:2rem; font-weight:700; color:var(--navy); }
.price-breakdown { font-size:.82rem; color:var(--text-muted); margin-top:.25rem; }
.unit-amenities { display:flex; flex-wrap:wrap; gap:.5rem; margin-top:1rem; }
.amenity-tag { background:var(--cream); border:1px solid var(--border); border-radius:20px; font-size:.78rem; padding:4px 12px; color:var(--text-muted); }
.detail-row { display:flex; justify-content:space-between; padding:.6rem 0; border-bottom:1px solid var(--border); font-size:.9rem; }
.detail-row:last-child { border-bottom:none; }
.detail-label { color:var(--text-muted); }
.detail-value { font-weight:600; color:var(--navy); }

/* ── INFO BOX ────────────────────────────────────────────── */
.info-box { background:var(--cream); border-left:3px solid var(--gold); padding:1rem 1.5rem; border-radius:0 var(--radius) var(--radius) 0; margin-bottom:1.5rem; font-size:.9rem; }
.info-box strong { color:var(--navy); }

/* ── INSCRIPTION PAGE ───────────────────────────────────── */
.inscription-hero { background:linear-gradient(135deg,var(--navy) 0%,var(--navy-light) 100%); color:var(--white); padding:4rem 2rem; text-align:center; }
.inscription-hero h1 { font-size:clamp(1.8rem,4vw,2.6rem); margin-bottom:.75rem; }
.inscription-hero p { color:rgba(255,255,255,.7); max-width:560px; margin:0 auto; }
.inscription-form-wrap { max-width:860px; margin:0 auto; padding:3rem 2rem; }
.form-card { background:var(--white); border:1px solid var(--border); border-radius:var(--radius-lg); padding:2.5rem; margin-bottom:2rem; box-shadow:var(--shadow); }
.form-card-title { font-family:'Playfair Display',serif; font-size:1.4rem; color:var(--navy); margin-bottom:1.5rem; display:flex; align-items:center; gap:.75rem; }
.form-card-num { background:var(--gold); color:var(--navy); width:32px; height:32px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:.9rem; font-weight:700; flex-shrink:0; }
.add-garant-btn { background:none; border:2px dashed var(--border); color:var(--text-muted); width:100%; padding:1rem; border-radius:var(--radius-lg); font-size:.9rem; font-weight:600; transition:all .2s; }
.add-garant-btn:hover { border-color:var(--gold); color:var(--gold); }
.form-submit-area { text-align:center; padding:1rem 0; }
.form-submit-area .btn { padding:16px 48px; font-size:1rem; }
.alert { padding:1rem 1.5rem; border-radius:var(--radius-lg); margin-bottom:1.5rem; font-weight:500; }
.alert-success { background:#E8F5EE; color:var(--green); border:1px solid rgba(46,125,82,0.3); }
.alert-error   { background:#FBE8E7; color:var(--red);   border:1px solid rgba(166,50,40,0.3); }
.file-upload-hint { font-size:.78rem; color:var(--text-muted); margin-top:4px; }

/* ── FOOTER ──────────────────────────────────────────────── */
.footer { background:#060E17; color:rgba(255,255,255,0.5); padding:4rem 2rem 2rem; }
.footer-inner { max-width:1100px; margin:0 auto; display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:3rem; margin-bottom:3rem; }
.footer-logo { font-family:'Playfair Display',serif; font-size:1.3rem; font-weight:700; color:var(--gold-light); margin-bottom:.75rem; }
.footer-logo em { color:var(--white); font-style:italic; font-size:1rem; }
.footer-brand p { font-size:.85rem; line-height:1.6; }
.footer-col-title { font-size:.75rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.35); margin-bottom:.75rem; }
.footer-col a,.footer-col span { display:block; font-size:.85rem; margin-bottom:.4rem; transition:color .2s; }
.footer-col a:hover { color:var(--gold-light); }
.footer-bottom { max-width:1100px; margin:0 auto; border-top:1px solid rgba(255,255,255,.08); padding-top:1.5rem; text-align:center; font-size:.82rem; }
.footer-bottom strong { color:var(--gold); }

/* ── LIGHTBOX PLEIN ÉCRAN ────────────────────────────────── */
.lightbox-overlay {
  position:fixed; inset:0; background:rgba(0,0,0,0.94); z-index:1000;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  animation:lbFadeIn .18s ease;
}
@keyframes lbFadeIn { from{opacity:0} to{opacity:1} }
.lightbox-content { position:relative; display:flex; flex-direction:column; align-items:center; max-width:92vw; max-height:88vh; }
.lightbox-content img { max-height:82vh; max-width:90vw; object-fit:contain; border-radius:4px; transition:opacity .15s; }
.lightbox-caption { color:rgba(255,255,255,.7); font-size:.85rem; margin-top:.6rem; text-align:center; min-height:1.2em; }
.lightbox-counter { color:rgba(255,255,255,.45); font-size:.75rem; margin-top:.2rem; }
.lightbox-close { position:fixed; top:1rem; right:1rem; background:rgba(255,255,255,.12); border:none; color:white; font-size:1.5rem; width:40px; height:40px; border-radius:50%; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background .2s; z-index:1001; }
.lightbox-close:hover { background:rgba(255,255,255,.25); }
.lightbox-nav { position:fixed; top:50%; transform:translateY(-50%); background:rgba(255,255,255,.1); border:none; color:white; font-size:2.2rem; width:52px; height:52px; cursor:pointer; border-radius:50%; display:flex; align-items:center; justify-content:center; transition:background .2s; z-index:1001; }
.lightbox-nav:hover { background:rgba(255,255,255,.22); }
.lightbox-prev { left:.75rem; }
.lightbox-next { right:.75rem; }
.lightbox-dots { position:fixed; bottom:1.25rem; left:50%; transform:translateX(-50%); display:flex; gap:.4rem; z-index:1001; }
.lb-dot { width:8px; height:8px; border-radius:50%; background:rgba(255,255,255,.35); cursor:pointer; transition:background .2s; }
.lb-dot.active { background:var(--gold-light); }
/* Tooltip carte Leaflet */
.school-tooltip { background:var(--navy)!important; color:white!important; border:1px solid rgba(196,150,58,.4)!important; border-radius:6px!important; font-size:12px!important; padding:6px 10px!important; box-shadow:0 3px 12px rgba(0,0,0,.3)!important; }
.school-tooltip::before { border-top-color:var(--navy)!important; }

/* ── CONTENT SECTIONS ───────────────────────────────────── */
.prose { max-width:760px; }
.prose h3 { font-size:1.1rem; color:var(--navy); margin:1.5rem 0 .5rem; }
.prose p  { color:var(--text-muted); margin-bottom:.75rem; line-height:1.75; }
.prose ul { padding-left:1.2rem; color:var(--text-muted); }
.prose ul li { margin-bottom:.4rem; }

/* ── RESPONSIVE ─────────────────────────────────────────── */
@media (max-width:900px) {
  .building-hero-inner { grid-template-columns:1fr; }
  .building-stats-bar { flex-direction:row; }
  .unit-detail-grid { grid-template-columns:1fr; }
  .unit-detail-sidebar { position:static; }
  .contact-inner { grid-template-columns:1fr; gap:2rem; }
  .footer-inner { grid-template-columns:1fr 1fr; gap:2rem; }
  .building-gallery { grid-template-columns:1fr 1fr; grid-template-rows:auto; height:auto; }
  .building-gallery img:first-child { grid-row:auto; }
}
@media (max-width:640px) {
  .navbar-links { display:none; flex-direction:column; position:absolute; top:68px; right:0; background:var(--navy); padding:1rem; gap:1rem; width:240px; box-shadow:0 8px 24px rgba(0,0,0,0.3); z-index:200; }
  .navbar-links.open { display:flex; }
  .nav-hamburger { display:block; }
  .navbar-avail { display:none; }
  .hero { padding:5rem 1.5rem 4rem; }
  .hero-stats { gap:1.5rem; }
  .section { padding:3rem 1.5rem; }
  .form-row,.form-row-3 { grid-template-columns:1fr; }
  .footer-inner { grid-template-columns:1fr; }
  .buildings-grid { grid-template-columns:1fr; }
  .units-grid { grid-template-columns:1fr; }
  .tabs-bar { padding:0 1rem; }
  .tab-btn { padding:.8rem .8rem; font-size:.78rem; }
}

/* ── SKIP TO MAIN ────────────────────────────────────────── */
.skip-link { position:absolute; top:-40px; left:1rem; background:var(--gold); color:var(--navy); padding:8px 16px; border-radius:0 0 var(--radius) var(--radius); font-weight:700; z-index:999; transition:top .2s; }
.skip-link:focus { top:0; }

/* ── DRAG & DROP PHOTOS (admin) ──────────────────────────── */
.photo-grid { display:flex; flex-wrap:wrap; gap:.75rem; margin-top:1rem; }
.photo-item { width:150px; flex-shrink:0; border-radius:var(--radius-lg); overflow:hidden; border:1.5px solid var(--border); background:var(--white); cursor:grab; transition:box-shadow .2s, transform .15s; }
.photo-item:active { cursor:grabbing; }
.photo-item.dragging { opacity:.4; transform:scale(.97); box-shadow:none; }
.photo-item.drag-over { border-color:var(--gold); box-shadow:0 0 0 2px var(--gold); }
.photo-item img { width:100%; height:110px; object-fit:cover; display:block; pointer-events:none; }
.photo-item-actions { padding:.35rem; display:flex; gap:.25rem; background:var(--cream-light); }
.photo-item-actions button { flex:1; font-size:.65rem; }
.school-tooltip-full { padding:10px 12px!important; max-width:260px!important; }
.school-tooltip-full .leaflet-tooltip-content { white-space:normal!important; }

/* ================================================================
   style-v8-inscription.css
   À AJOUTER à la fin de assets/style.css
   Kots & Studios Namur — v8
   ================================================================ */

/* ── Formulaire d'inscription — structure générale ────────────── */
.form-section {
    background: var(--cream-light);
    border: 1px solid #e0d9cc;
    border-radius: 12px;
    padding: 2rem;
    margin-bottom: 2rem;
}

.form-section__title {
    display: flex;
    align-items: center;
    gap: .75rem;
    font-family: 'Playfair Display', serif;
    font-size: 1.3rem;
    color: var(--navy);
    margin: 0 0 1.5rem;
    padding-bottom: .75rem;
    border-bottom: 2px solid var(--gold);
}

.form-section__num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    background: var(--gold);
    color: #fff;
    border-radius: 50%;
    font-size: .9rem;
    font-family: 'DM Sans', sans-serif;
    font-weight: 700;
    flex-shrink: 0;
}

/* ── Grille de champs ─────────────────────────────────────────── */
.form-row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 1rem;
    margin-bottom: 1rem;
}

.form-group {
    display: flex;
    flex-direction: column;
    gap: .35rem;
}

.form-group--full {
    grid-column: 1 / -1;
}

.form-group--small {
    min-width: 100px;
    max-width: 160px;
}

.form-group label {
    font-size: .875rem;
    font-weight: 600;
    color: var(--navy);
}

.form-group input,
.form-group select,
.form-group textarea {
    padding: .6rem .85rem;
    border: 1.5px solid #ccc;
    border-radius: 8px;
    font-size: .95rem;
    font-family: 'DM Sans', sans-serif;
    background: #fff;
    transition: border-color .2s;
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
    outline: none;
    border-color: var(--gold);
    box-shadow: 0 0 0 3px rgba(196,150,58,.15);
}

.form-group input[type="file"] {
    padding: .45rem .6rem;
    background: #f9f9f9;
    cursor: pointer;
}

/* ── Hints et requis ──────────────────────────────────────────── */
.required { color: var(--red); margin-left: 2px; }

.form-hint {
    font-size: .8rem;
    color: #777;
    font-style: italic;
}

/* ── Intro box ────────────────────────────────────────────────── */
.intro-box {
    background: #fff;
    border-left: 4px solid var(--gold);
    border-radius: 0 8px 8px 0;
    padding: 1rem 1.25rem;
    margin-bottom: 2rem;
    font-size: .95rem;
    line-height: 1.6;
}

/* ── Info box dans les garants ────────────────────────────────── */
.form-info-box {
    background: #fff8e8;
    border: 1px solid #f0d080;
    border-radius: 8px;
    padding: .85rem 1.1rem;
    margin-bottom: 1.25rem;
    font-size: .875rem;
    color: #6b4f00;
}

/* ── Checkbox label proéminent ────────────────────────────────── */
.checkbox-label {
    display: flex;
    align-items: flex-start;
    gap: .6rem;
    cursor: pointer;
    font-size: .9rem;
    line-height: 1.5;
}

.checkbox-label input[type="checkbox"] {
    width: 1.1rem;
    height: 1.1rem;
    margin-top: .15rem;
    accent-color: var(--gold);
    flex-shrink: 0;
}

.checkbox-label--prominent {
    background: #fff;
    border: 1.5px solid #ddd;
    border-radius: 8px;
    padding: .85rem 1rem;
    font-weight: 600;
    transition: border-color .2s;
}

.checkbox-label--prominent:has(input:checked) {
    border-color: var(--gold);
    background: #fffbf0;
}

/* ── Blocs garants ────────────────────────────────────────────── */
.garant-bloc {
    background: #fff;
    border: 1.5px solid #dde;
    border-radius: 10px;
    padding: 1.5rem;
    margin-top: 1.25rem;
}

.garant-bloc--secondary {
    border-color: var(--gold);
    background: #fffdf5;
    margin-top: 1rem;
}

.garant-bloc__title {
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--navy);
    margin: 0 0 1.25rem;
    display: flex;
    align-items: center;
    gap: .5rem;
}

.garant-subfields {
    margin-top: 1rem;
}

.garant-ajout {
    margin-top: 1.5rem;
}

/* ── Actions formulaire ───────────────────────────────────────── */
.form-actions {
    display: flex;
    justify-content: center;
    margin-top: 1.5rem;
}

.btn--lg {
    padding: .85rem 2.5rem;
    font-size: 1.05rem;
}

/* ── Admin : grille et detail-list ───────────────────────────── */
.admin-grid {
    display: grid;
    gap: 1.25rem;
}
.admin-grid--2 { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }

.detail-list {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: .35rem 1rem;
    margin: 0;
    font-size: .9rem;
}
.detail-list dt {
    font-weight: 600;
    color: #555;
    white-space: nowrap;
}
.detail-list dd {
    margin: 0;
    color: var(--navy);
    word-break: break-word;
}

.inline-form {
    display: inline-flex;
    align-items: center;
    gap: .75rem;
}

/* ── Badges admin ─────────────────────────────────────────────── */
.badge--blue   { background: #e0eaf8; color: #1a4a8a; }
.badge--orange { background: #fef0e0; color: #8a4a00; }
.badge--green  { background: #e0f4ea; color: #1a6a3a; }
.badge--red    { background: #fde8e8; color: #8a1a1a; }

/* ── Page header ──────────────────────────────────────────────── */
.page-inscription .page-header {
    background: var(--navy);
    color: #fff;
    padding: 3rem 0 2rem;
    text-align: center;
}
.page-inscription .page-header h1 {
    font-family: 'Playfair Display', serif;
    font-size: 2rem;
    margin: 0 0 .5rem;
}
.page-inscription .page-header__sub {
    opacity: .8;
    margin: 0;
}

/* ── Responsive ───────────────────────────────────────────────── */
@media (max-width: 640px) {
    .form-row {
        grid-template-columns: 1fr;
    }
    .form-group--small {
        max-width: 100%;
    }
    .form-section {
        padding: 1.25rem;
    }
}

/* ── Ajouts CSS patch3 v8 ─────────────────────────────────────── */
/* À ajouter à la fin de assets/style.css (après le CSS v8 déjà ajouté) */

.garant-parent-bloc {
    background: #f9f8f5;
    border: 1px solid #e0dbd0;
    border-radius: 8px;
    padding: 1rem 1.25rem;
}

.garant-parent-titre {
    font-size: .95rem;
    font-weight: 700;
    color: var(--navy);
    margin: 0 0 .85rem;
    display: flex;
    align-items: center;
    gap: .4rem;
}

/* Note date d'entrée */
.form-group .form-hint {
    display: block;
    margin-top: 4px;
}

/* ── Alertes flash (à ajouter à la fin de assets/style.css) ── */
.alert {
    padding: 1rem 1.25rem;
    border-radius: 8px;
    margin-bottom: 1.5rem;
    font-size: .95rem;
    line-height: 1.5;
}
.alert--success {
    background: #e6f4ea;
    border: 1px solid #a8d5b5;
    color: #1a5c2a;
}
.alert--error {
    background: #fdecea;
    border: 1px solid #f0b0aa;
    color: #7a1a14;
}
