/* apps/urbanisme/static/urbanisme.css
   ------------------------------------
   Habillage de l'outil « Le droit de construire », charte A Free Lunch.

   La palette (--corail, --corail-dark, --rose, --noir, --gris, --gris-bord) et
   les polices viennent de `afl/base.html` ; bouton, champ, carte, tuile de
   chiffre et tableau viennent du jeu commun (`composants.css`). Cette feuille
   ne pose que ce qui est propre à l'outil, sous le préfixe `urb-`, et ne
   redéfinit aucune valeur de marque au `:root` (`test_composants_communs.py`).
   Mobile d'abord : une colonne, puis des grilles à partir de 640 px. */

/* ── Cartouche de titre : le bandeau rose sous l'en-tête, comme les autres
   outils d'A Free Lunch. ── */
.urb-cartouche { background: var(--rose, #fff5f5); padding: 26px 0 28px; margin-bottom: 28px; }
.urb-h1 { font-family: var(--font-heading); font-size: 1.7rem; font-weight: 800; color: var(--noir, #1a1a1a);
          line-height: 1.15; letter-spacing: -0.02em; margin: 0 0 8px; }
.urb-chapo { font-size: 1.05rem; color: #444; margin: 0; max-width: 46rem; line-height: 1.55; }
.urb-h2 { font-family: var(--font-heading); font-size: 1.25rem; font-weight: 700; color: var(--noir, #1a1a1a);
          margin: 0 0 0.6rem; }

/* ── Sections et textes ── */
.urb-section { margin: 0 0 2.25rem; }
.urb-texte { margin: 0 0 1rem; line-height: 1.6; max-width: 46rem; }
.urb-texte--discret { font-size: 0.9rem; color: var(--gris, #666); }
.urb-texte-long { max-width: 46rem; line-height: 1.65; margin-bottom: 2.5rem; }
.urb-texte-long p, .urb-texte-long ul, .urb-texte-long ol { margin: 0 0 1rem; }
.urb-texte-long ul, .urb-texte-long ol { padding-left: 1.25rem; }
.urb-texte-long li { margin-bottom: 0.4rem; }
.urb-texte-long .urb-h2 { margin-top: 1.75rem; }
.urb-note { background: var(--rose, #fff5f5); border-left: 3px solid var(--corail, #ff5a5f);
            border-radius: 0 8px 8px 0; padding: 0.75rem 1rem; margin: 0 0 1.5rem; }
.urb-fil { font-size: 0.85rem; color: var(--gris, #666); margin: 0 0 1.25rem; }
.urb-fil a { color: inherit; }

/* ── La recherche d'adresse ── */
.urb-recherche__formulaire { max-width: 40rem; }
.urb-recherche__ligne { display: flex; flex-direction: column; gap: 0.5rem; }
.urb-recherche__ligne .m-champ { flex: 1 1 auto; min-width: 0; }
.urb-recherche__ligne .m-bouton { white-space: nowrap; }

/* ── Le schéma : traits et textes à la couleur du texte, aplats discrets ── */
.urb-schema { margin: 0; max-width: 34rem; }
.urb-schema__svg { width: 100%; height: auto; display: block; color: var(--noir, #1a1a1a); }
.urb-schema__sol { fill: var(--gris-bord, #eee); }
.urb-schema__rue { fill: #d9d9d9; }
.urb-schema__mur { fill: #fff; stroke: currentColor; stroke-width: 2; }
.urb-schema__toit { fill: var(--rose-deep, #ffe5e5); stroke: currentColor; stroke-width: 2; }
.urb-schema__limite { stroke: var(--gris, #666); stroke-width: 2; stroke-dasharray: 6 5; }
.urb-schema__cote { stroke: var(--corail-dark, #e04045); stroke-width: 2; }
.urb-schema__repere { stroke: var(--corail-dark, #e04045); stroke-width: 1; stroke-dasharray: 3 4; }
.urb-schema__valeur { fill: var(--corail-dark, #e04045); font: 700 15px var(--font-body); }
.urb-schema__petit { fill: var(--gris, #666); font: 12px var(--font-body); }
.urb-schema__legende { font-size: 0.88rem; color: var(--gris, #666); margin-top: 0.5rem; line-height: 1.5; }

/* ── Les six projets ── */
.urb-projets { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr; gap: 0.75rem; }
/* Toute la carte est cliquable : le lien du titre la couvre (`::after`). */
.urb-projet { position: relative; height: 100%; }
.urb-projet:hover { border-color: var(--corail, #ff5a5f); }
.urb-projet__titre::after { content: ""; position: absolute; inset: 0; }
.urb-projet__titre { display: block; font-weight: 700; color: var(--corail-dark, #e04045); margin-bottom: 0.25rem; }
.urb-projet__phrase { display: block; font-size: 0.92rem; color: #444; }

/* ── Les promesses ── */
.urb-promesses { list-style: none; margin: 0 0 1rem; padding: 0; display: grid; grid-template-columns: 1fr; gap: 0.75rem; }
.urb-promesses strong { display: block; margin-bottom: 0.2rem; }

/* ── Le taux de fiabilité ── */
.urb-stats { justify-content: flex-start; margin: 0.5rem 0 0.75rem; }

/* ── L'avertissement, au-dessus du pied commun ── */
.urb-avertissement { border-top: 1px solid var(--gris-bord, #eee); padding: 1rem 0; margin-top: 2rem;
                     font-size: 0.85rem; color: var(--gris, #666); }
.urb-avertissement p { margin: 0; max-width: 46rem; }

@media (min-width: 640px) {
    .urb-h1 { font-size: 2rem; }
    .urb-recherche__ligne { flex-direction: row; }
    .urb-projets { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .urb-promesses { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (min-width: 960px) {
    .urb-projets { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
