.cte-reponse{background:var(--accent-pale);border-radius:var(--r-m);padding:1rem 1.2rem;margin:1.2rem 0 1.6rem;display:grid;gap:.35rem;border:1px solid var(--line)}
.cte-reponse strong{font-size:1.15rem;color:var(--accent-fonce)}
.cte-reponse span{color:var(--ink-doux);font-size:.95rem}
.cte-fig{margin:1.2rem 0 1.6rem}
.cte-fig figcaption{font-size:.9rem;color:var(--ink-doux);margin-top:.5rem}
.cte-svg{width:100%;height:auto;max-width:640px;display:block;background:var(--blanc);border:1px solid var(--line);border-radius:var(--r-m)}
.cte-s-room{fill:var(--paper);stroke:var(--ink);stroke-width:3}
.cte-s-mod{fill:var(--surface);stroke:var(--ink-doux);stroke-width:1}
.cte-s-fill{fill:var(--accent-pale);stroke:var(--ink-doux);stroke-width:1;stroke-dasharray:4 3}
.cte-s-door{stroke:var(--accent);stroke-width:7;stroke-linecap:round}
.cte-s-win{stroke:var(--accent-2);stroke-width:5;stroke-linecap:round}
.cte-s-cote{stroke:var(--ink-doux);stroke-width:1.5}
.cte-s-pass{stroke:var(--accent-fonce);stroke-width:2;stroke-dasharray:6 4}
.cte-s-txt{fill:var(--ink);font-size:13px;font-family:Khula,system-ui,sans-serif}
.cte-s-pt{fill:var(--accent-fonce);font-size:13px;font-weight:700;font-family:Khula,system-ui,sans-serif}
.cte-tabwrap{overflow-x:auto;margin:1rem 0 1.4rem;max-width:100%}
.cte-tab{min-width:34rem;width:100%;border-collapse:collapse;font-size:.93rem}
.cte-tab caption{text-align:left;font-weight:700;padding-bottom:.4rem;color:var(--ink)}
.cte-tab th,.cte-tab td{padding:.5rem .65rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.cte-tab thead th{background:var(--surface);position:sticky;top:0}
.cte-tab .num{text-align:right;font-variant-numeric:tabular-nums}
.cte-tab tbody tr:hover{background:var(--accent-pale)}
.cte-src{font-size:.86rem;color:var(--ink-doux);margin:1rem 0}
.cte-src a{color:var(--accent-fonce)}
.cte-ok{color:#1d6b3a;font-weight:700}
.cte-ko{color:#9a2626;font-weight:700}
.cte-voir{margin:2rem 0 1rem;padding:1.1rem 1.3rem;background:var(--olive-pale);border-radius:var(--r-m)}
.cte-voir h2{margin:0 0 .6rem!important;font-size:1.15rem}
.cte-voir ul{margin:0;padding-left:1.2rem;display:grid;gap:.3rem}
.cte-carte-wrap{width:var(--lg);margin:1.4rem auto}
.cte-carte{height:520px;border:1px solid var(--line);border-radius:var(--r-m);background:var(--surface);overflow:hidden}
.cte-leg{display:flex;flex-wrap:wrap;gap:.4rem .9rem;margin:.7rem 0;font-size:.88rem}
.cte-leg i{display:inline-block;width:1.1rem;height:.8rem;border-radius:3px;margin-right:.35rem;vertical-align:middle;border:1px solid var(--ink-doux)}
.cte-large{width:var(--lg);margin-inline:auto;padding-block:1rem}
.cte-liens{display:grid;gap:.7rem;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));margin:1rem 0 1.6rem;padding:0;list-style:none}
.cte-liens li a{display:block;padding:.9rem 1.1rem;border:1px solid var(--line);border-radius:var(--r-m);background:var(--blanc);text-decoration:none;color:var(--ink);font-weight:700;height:100%}
.cte-liens li a small{display:block;font-weight:400;color:var(--ink-doux);margin-top:.25rem}
.cte-liens li a:hover{border-color:var(--accent);background:var(--accent-pale)}
.cte-btn{display:inline-flex;align-items:center;padding:.6rem 1.1rem;border-radius:999px;border:1px solid var(--accent-fonce);background:var(--accent-fonce);color:var(--accent-ink);font-weight:700;text-decoration:none;cursor:pointer;font-size:.95rem}
.cte-btn--sec{background:transparent;color:var(--accent-fonce)}
.cte-outil{border:1px solid var(--line);border-radius:var(--r-l);background:var(--blanc);padding:1.2rem;margin:1.2rem 0 1.8rem}
.cte-champs{display:grid;gap:.9rem;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr))}
.cte-champ{display:grid;gap:.3rem}
.cte-champ label,.cte-champ legend{font-weight:700;font-size:.92rem}
.cte-champ input[type=number],.cte-champ select{padding:.55rem .7rem;border:1px solid var(--field-line);border-radius:10px;font:inherit;background:var(--blanc);color:var(--ink);width:100%}
.cte-champ fieldset{border:0;padding:0;margin:0;display:grid;gap:.35rem}
.cte-champ .cte-coche{display:flex;gap:.5rem;align-items:center;font-weight:400}
.cte-champ .cte-coche input{width:1.15rem;height:1.15rem}
.cte-sortie{margin-top:1.2rem;display:grid;gap:1rem}
.cte-sortie[hidden]{display:none}
.cte-alerte{border-left:5px solid #9a2626;background:#fbeeee;padding:.7rem 1rem;border-radius:0 12px 12px 0;color:var(--ink)}
.cte-info{border-left:5px solid var(--accent-2);background:var(--olive-pale);padding:.7rem 1rem;border-radius:0 12px 12px 0}
.cte-note{font-size:.88rem;color:var(--ink-doux)}
.cte-bloc-ville{margin:1.6rem auto;padding:1.1rem 1.3rem;background:var(--accent-pale);border-radius:var(--r-m);width:var(--lg-etroit)}
.cte-bloc-ville h2{margin:0 0 .5rem;font-size:1.2rem}
.cte-bloc-ville ul{margin:.5rem 0;padding-left:1.1rem}
.cte-acces{background:var(--olive-pale)}
.cte-acces .cte-liens li a{background:var(--blanc)}
@media print{header,.cus-crumb,.cus-barre,footer,.cte-noprint,#devis-complet,.cus-sec--sombre,.cus-volet{display:none!important}.cte-outil{border:0}.cte-sortie{display:grid!important}}
@media (max-width:640px){.cte-carte{height:380px}.cte-tab{min-width:30rem}}
