.sol{padding-block:var(--s4) var(--s5)}
.sol .cadre{max-width:1040px}
.sol h1{font-size:clamp(1.9rem,1.4rem + 2vw,var(--fs-h1));margin-bottom:var(--s2)}
.sol h2{font-size:var(--fs-h3);margin-top:var(--s4)}
.sol .chapo{font-size:1.09rem;color:var(--encre-douce);max-width:68ch}
.reponse{background:var(--gres-2);border-left:4px solid var(--viridian);border-radius:var(--r-carte);padding:var(--s3);margin:var(--s3) 0;box-shadow:var(--bossage)}
.reponse p{margin:0 0 var(--s1)}
.reponse p:last-child{margin:0}
.chiffres{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--s2);margin:var(--s3) 0;padding:0;list-style:none}
.chiffres li{background:var(--clair);border:1px solid var(--filet);border-radius:var(--r-carte);padding:var(--s2);margin:0}
.chiffres strong{display:block;font-family:var(--police-titre);font-size:1.5rem;color:var(--viridian-fonce);line-height:1.2}
.chiffres span{font-size:var(--fs-petit);color:var(--encre-douce)}
.carte{width:100%;height:400px;border:1px solid var(--filet);border-radius:var(--r-carte);background:var(--gres-2);margin:var(--s2) 0;position:relative;z-index:0}
.carte--haute{height:520px}
@media(max-width:640px){.carte{height:320px}.carte--haute{height:400px}}
.legende{display:flex;flex-wrap:wrap;gap:var(--s1) var(--s3);list-style:none;padding:0;margin:0 0 var(--s2);font-size:var(--fs-petit)}
.legende li{margin:0;display:flex;align-items:center;gap:8px}
.puce{display:inline-block;width:14px;height:14px;border-radius:2px;border:1px solid oklch(.3 .03 45 / .4);flex:none}
.cl-calcaire_dolomie{background:#e3c565}.cl-marne_argile{background:#9bb86a}.cl-gres_pelite_rouge{background:#b8553d}.cl-schiste_micaschiste{background:#5f7f93}.cl-gneiss_granite{background:#a58cae}.cl-basalte{background:#3b3b3b}.cl-alluvions{background:#cfe3ee}
.tableau{overflow-x:auto;margin:var(--s2) 0 var(--s3)}
.tableau table{width:100%;border-collapse:collapse;min-width:520px}
.tableau caption{text-align:left;font-weight:600;padding-bottom:var(--s1);color:var(--encre)}
.tableau th,.tableau td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--filet);font-size:var(--fs-petit);vertical-align:top}
.tableau thead th{font-family:var(--police-titre);font-size:.95rem;border-bottom:2px solid var(--viridian)}
.tableau tbody tr:hover{background:var(--gres-2)}
.tableau td.num,.tableau th.num{text-align:right;white-space:nowrap}
.tableau button.tri{all:unset;cursor:pointer;font:inherit;color:inherit;text-decoration:underline;text-underline-offset:3px}
.tableau button.tri:focus-visible{outline:2px solid var(--viridian);outline-offset:2px}
.voisines{display:flex;flex-wrap:wrap;gap:var(--s1) var(--s3);list-style:none;padding:0;margin:0 0 var(--s2)}
.voisines li{margin:0}
.region-liste{columns:3 200px;column-gap:var(--s3);list-style:none;padding:0;margin:0 0 var(--s3)}
.region-liste li{margin:0 0 6px;break-inside:avoid}
.sol .fiche-source{margin-top:var(--s4)}
.sol .fiche-pont{margin-top:var(--s4)}
.bloc-acces .acces-liste{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:var(--s2);list-style:none;padding:0;margin:var(--s3) 0 0}
.bloc-acces .acces-liste a{display:block;height:100%;padding:var(--s3);background:var(--clair);border:1px solid var(--filet);border-radius:var(--r-carte);text-decoration:none;box-shadow:var(--ombre-douce);color:var(--encre)}
.bloc-acces .acces-liste a:hover{border-color:var(--viridian)}
.bloc-acces .acces-liste strong{display:block;font-family:var(--police-titre);font-size:1.15rem;margin-bottom:6px;color:var(--viridian-fonce)}
.bloc-acces .acces-liste span{font-size:var(--fs-petit);color:var(--encre-douce)}
.outil-form{display:flex;flex-direction:column;gap:var(--s2);max-width:560px;margin:var(--s3) 0;position:relative}
.outil-form label{font-weight:600}
.outil-form input[type=text],.outil-form input[type=search]{width:100%;padding:12px 14px;border:1px solid var(--filet);border-radius:var(--r-champ);font:inherit;background:var(--clair);color:var(--encre)}
.outil-form button,.outil-btn{align-self:flex-start;background:var(--signal);color:var(--signal-ink);font:inherit;font-weight:700;border:none;border-radius:var(--r-bouton);padding:12px var(--s3);cursor:pointer;box-shadow:var(--ombre-douce),var(--bossage)}
.outil-form button:hover,.outil-btn:hover{background:var(--signal-hover);color:var(--clair)}
.suggestions{list-style:none;margin:0;padding:0;border:1px solid var(--filet);border-radius:var(--r-champ);background:var(--clair);max-width:560px;position:absolute;top:100%;left:0;right:0;z-index:5;box-shadow:var(--ombre)}
.suggestions[hidden]{display:none}
.suggestions li{margin:0}
.suggestions button{all:unset;display:block;width:100%;box-sizing:border-box;padding:10px 14px;cursor:pointer;font-size:var(--fs-petit)}
.suggestions button:hover,.suggestions button:focus-visible{background:var(--gres-2)}
.resultat{margin:var(--s3) 0}
.resultat[hidden]{display:none}
.statut{font-size:var(--fs-petit);color:var(--encre-douce);margin:0}
.nuits{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:var(--s1);list-style:none;padding:0;margin:var(--s2) 0}
.nuit{background:var(--clair);border:1px solid var(--filet);border-radius:var(--r-carte);padding:var(--s2);margin:0;text-align:center}
.nuit strong{display:block;font-family:var(--police-titre);font-size:1.6rem;line-height:1.2}
.nuit span{display:block;font-size:var(--fs-petit);color:var(--encre-douce)}
.nuit--gel{border-color:var(--viridian);background:oklch(.93 .04 230)}
.nuit--gel strong{color:oklch(.35 .12 250)}
.nuit--blanche{background:oklch(.95 .03 90);border-color:var(--or)}
.attribution{font-size:var(--fs-petit);color:var(--encre-douce)}
.leaflet-container{font-family:var(--police-corps)}
@media (max-width:640px){.table-communes,.table-communes tbody,.table-communes tr,.table-communes td{display:block;width:100%;box-sizing:border-box}.table-communes thead{position:absolute;left:-9999px}.table-communes tr{padding:var(--s2) 0;border-bottom:1px solid var(--filet)}.table-communes td{border:0;padding:2px var(--s2)}.table-communes td:empty{display:none}.table-communes td:nth-child(2)::before{content:"Code postal : "}}
