/* TTR CONSTRUCTIONS — ajustements propres à ttrconstructions.fr, par-dessus les feuilles de groupettr.fr (groupe.css, page.css).
   Couleurs et polices de Groupe TTR : bleu nuit #132033, bleu vif #1D5FA8, crème #F7F3EC, pierre #E9E1D3,
   titres Barlow Condensed en capitales, sur-titres IBM Plex Mono espacés, logo en Cinzel.
   Règles du site : boutons et liens d'action >= 44 px, texte >= 16 px, pas de menu hamburger, pas de défilement horizontal. */
:root{--t-night:#132033;--t-blue:#1D5FA8;--t-blue-d:#174E8C;--t-sky:#9CC7F2;--t-cream:#F7F3EC;--t-stone:#E9E1D3;--t-rule:#D9CFBE;--t-deep:#0D1724;
  --t-display:"Barlow Condensed","Arial Narrow",sans-serif;--t-body:"Barlow","Helvetica Neue",Helvetica,Arial,sans-serif;--t-mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;--t-logo:"Cinzel","Trajan Pro",Georgia,serif}
html{scroll-padding-top:0}
body{overflow-x:hidden}
.skip{position:absolute;left:-9999px;top:0;z-index:300;padding:12px 16px;background:#fff;color:var(--t-night);font:600 16px/1.2 var(--t-body)}
.skip:focus{left:8px;top:8px}

/* ---------- Bandeau téléphone (sombre) ---------- */
.ubar{background:var(--t-night);color:rgba(255,255,255,.8);font:500 16px/1.3 var(--t-body)}
.ubar-in{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:0 24px;padding:0 16px}
.ubar-tel{display:flex;flex-wrap:wrap;gap:0 20px}
.ubar a{display:inline-flex;align-items:center;gap:8px;min-height:44px;color:#fff;text-decoration:none}
.ubar a svg{width:16px;height:16px;color:var(--t-sky)}
.ubar a:hover{color:var(--t-sky)}
.ubar-g{margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:0 12px;padding-bottom:4px}
.ubar-g a{text-decoration:underline;text-underline-offset:3px;text-decoration-color:rgba(255,255,255,.4)}
.ubar-g span{color:rgba(255,255,255,.7)}

/* ---------- En-tête : logo texte et menu horizontal ---------- */
.hh-probe{position:absolute !important;left:0;top:0;width:0 !important;height:0 !important;padding:0 !important;border:0 !important;visibility:hidden;pointer-events:none;overflow:hidden}
.tbar{display:flex;flex-wrap:wrap;align-items:center;column-gap:24px;padding:6px 16px 8px;background:#fff;border-bottom:1px solid #D6DEE7}
.tlogo{display:inline-flex;align-items:center;min-height:48px;font-family:var(--t-logo);font-weight:600;font-size:clamp(19px,5.6vw,26px);letter-spacing:.12em;text-transform:uppercase;color:var(--t-night);text-decoration:none;white-space:nowrap;line-height:1}
.tlogo b{font-weight:600}
.tlogo span{color:var(--t-blue)}
.tnav{display:flex;flex-wrap:wrap;gap:0 4px;width:100%;margin:0 -10px}
.tnav a{position:relative;display:inline-flex;align-items:center;min-height:44px;padding:0 10px;font:500 16px/1.2 var(--t-body);color:var(--t-night);text-decoration:none;white-space:nowrap}
.tnav a::after{content:"";position:absolute;left:10px;right:10px;bottom:6px;height:2px;background:var(--t-blue);transform:scaleX(0);transform-origin:left;transition:transform .25s ease}
.tnav a:hover{color:var(--t-blue)}
.tnav a:hover::after,.tnav a:focus-visible::after{transform:scaleX(1)}
.tcta{display:none}
@media (min-width:1024px){
  .hh-probe{height:72px !important}
  .ubar-in{flex-wrap:nowrap;padding:0 max(48px,calc((100% - 1200px)/2))}
  .ubar-g{padding:0}
  .tbar{position:sticky;top:0;z-index:30;flex-wrap:nowrap;height:72px;padding:0 max(48px,calc((100% - 1200px)/2));background:rgba(255,255,255,.97);-webkit-backdrop-filter:saturate(1.4) blur(8px);backdrop-filter:saturate(1.4) blur(8px)}
  .tnav{width:auto;margin:0 0 0 auto;flex-wrap:nowrap}
  .tcta{display:inline-flex;align-items:center;min-height:46px;padding:0 22px;border-radius:4px;background:var(--t-blue);color:#fff;font:600 16px/1 var(--t-body);text-decoration:none;white-space:nowrap}
  .tcta:hover{background:var(--t-blue-d)}
}

/* ---------- Accroche (compacte : la maison 3D arrive dans le premier écran) ---------- */
.layout > .blk.mhero:first-child{margin:0;padding:18px 16px 18px;background:var(--t-cream);border-bottom:1px solid var(--t-stone);display:flex;flex-direction:column;gap:14px}
.mhero .eyebrow{display:block;font-size:16px;letter-spacing:.1em}
.mhero h1{margin-top:8px;font-family:var(--t-display);font-weight:600;font-size:clamp(38px,10.6vw,76px);line-height:.94;text-transform:uppercase;letter-spacing:0;color:var(--t-night);text-wrap:balance}
.mhero-p{display:none;margin:0;max-width:46ch;font-size:18px;line-height:1.45;color:#4A5A6E}
.mhero-r{display:flex;flex-direction:column;align-items:flex-start;gap:14px}
.mhero a.frb.frb-img{margin-top:0;margin-bottom:0}
@media (min-width:640px){.mhero a.frb.frb-img{max-width:420px;background:#fff;border:1px solid var(--t-rule);border-radius:4px;overflow:hidden}}
.frb.frb-img img{display:block;width:100%;height:auto}
.mhero .cta{display:none;min-height:52px;padding:0 28px}
@media (max-width:1023.98px){
  body.tour-m .visite > .stage{height:clamp(320px,46svh,420px)}
  .layout > .visite{margin-top:0}
}
@media (min-width:1024px){
  .layout > .blk.mhero:first-child{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);column-gap:64px;align-items:end;padding:36px max(48px,calc((100% - 1200px)/2)) 32px}
  .mhero-r{display:flex;flex-direction:column;align-items:flex-start;gap:16px}
  .mhero-p{display:block;grid-column:auto;margin-top:16px}
  .mhero-t{align-self:end}
  .mhero .cta{display:inline-flex;border-radius:4px}
  body.home.tour-m .layout > .visite{padding-top:28px}
}
@media (min-width:1024px) and (max-height:820px){.mhero h1{font-size:clamp(38px,4.4vw,60px)}}
.ubar-g{display:none}
@media (min-width:1024px){.ubar-g{display:flex}}

/* ---------- Visite : fiches ---------- */
.fiche-plus{margin:6px 0 0;gap:8px}
.fiche-plus .fp > summary b{font-size:17px}
.fiche-page{margin:0}
.fiche-page a{display:inline-flex;align-items:center;min-height:44px;font-weight:600;color:var(--t-blue);text-underline-offset:3px}
.visite .hint3d{font-size:16px}

/* ---------- Sections ---------- */
.pages{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:20px}
.pages span{width:100%;font-weight:600;color:var(--t-night)}
.pages a{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border:1px solid var(--t-blue);border-radius:999px;color:var(--t-blue);font-weight:600;text-decoration:none;background:#fff}
.pages a:hover{background:#E3EDF8}
#renovation .fin{margin-top:18px}
.reno-3d{margin-top:16px}
#p-groupe .gl,.glink{font-size:16px;color:#4A5A6E}
#p-groupe .gl a,.glink a{display:inline-flex;align-items:center;min-height:44px;color:var(--t-blue)}
@media (min-width:1024px){
  .pages a{border-radius:4px}
  .layout > .blk.pz-alt{background:var(--t-cream)}
  .layout > .blk.pz-alt2{background:#fff}
  .layout > .blk:not(.mhero){border-top:1px solid var(--t-stone)}
}

/* ---------- Pied de page ---------- */
.tfoot{background:var(--t-deep);color:rgba(255,255,255,.75);padding:40px 16px calc(28px + env(safe-area-inset-bottom,0px));font:400 16px/1.6 var(--t-body)}
.tf-cols{display:grid;gap:28px;padding-bottom:28px;border-bottom:1px solid rgba(255,255,255,.14)}
.tf-b{margin:0;font-family:var(--t-logo);font-weight:600;font-size:22px;letter-spacing:.12em;text-transform:uppercase;color:#fff}
.tf-b span{color:var(--t-sky)}
.tf-t{margin:8px 0 0}
.tfoot h2{margin:0 0 6px;font-family:var(--t-mono);font-size:16px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--t-sky)}
.tfoot ul{list-style:none;margin:0;padding:0}
.tfoot li a,.tf-links a,.tf-links button,.tf-g a{display:inline-flex;align-items:center;min-height:44px;color:#fff;text-decoration:none;font:inherit;background:none;border:0;padding:0;cursor:pointer}
.tfoot a:hover,.tf-links button:hover{color:var(--t-sky)}
.tf-g{margin:22px 0 0}
.tf-g a{text-decoration:underline;text-underline-offset:3px;text-decoration-color:rgba(255,255,255,.35)}
.tf-l{margin:14px 0 0}
.tf-frb{margin:22px 0 0}
.tf-links{display:flex;flex-wrap:wrap;gap:0 24px;margin:12px 0 0}
@media (min-width:1024px){
  .tfoot{padding:64px max(48px,calc((100% - 1200px)/2)) 28px}
  .tf-cols{grid-template-columns:minmax(0,3fr) repeat(3,minmax(0,2.4fr));gap:48px}
}

/* ---------- Bandeau cookies (information seule, v1) ---------- */
#ttrck{position:fixed;left:0;right:0;bottom:0;z-index:190;background:#fff;border-top:1px solid #D6DEE7;box-shadow:0 -12px 30px -18px rgba(19,32,51,.45);font:400 16px/1.45 var(--t-body);color:var(--t-night)}
#ttrck[hidden]{display:none}
#ttrck .ck-in{max-width:1200px;margin:0 auto;padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px}
#ttrck p{margin:0;flex:1 1 320px}
#ttrck .ck-b{display:flex;gap:12px;align-items:center}
#ttrck a{display:inline-flex;align-items:center;min-height:44px;color:var(--t-blue)}
#ttrck button{min-height:44px;padding:0 22px;border:0;border-radius:4px;background:var(--t-night);color:#fff;font:600 16px/1 var(--t-body);cursor:pointer}

/* ---------- Pages détaillées (gabarit groupettr.fr, page.css) ---------- */
body.doc{background:var(--t-cream)}
body.doc .tbar{border-bottom-color:var(--t-rule)}
body.doc main h1{font-family:var(--t-display);font-weight:600;text-transform:uppercase;font-size:clamp(36px,9vw,60px);line-height:.98;letter-spacing:0}
body.doc .glink{margin:14px 0 0}
body.doc .frb{display:block}

/* ---------- Lisibilité : aucun texte sous 16 px (téléphone et ordinateur) ----------
   Les tailles de groupettr.fr (11 à 15 px pour les sur-titres, étiquettes et sources) sont portées à 16 px ; l'espacement des
   sur-titres en capitales est réduit pour qu'ils tiennent sur la ligne. */
.eyebrow,.kicker,.tstep .eyebrow,.visite .steps .kicker,.brandrow .who,.fsteps span,.prog #stepnum,.mcount .t,.mcount b,.mtag,.stagecap{font-size:16px !important;letter-spacing:.06em !important}
.mfacts dt,.tstep .aide b{font-size:16px !important;letter-spacing:.05em !important}
.play,.nav2 button,.stp,.stp i,.pz-lb .go,.pz-list small,.fin-k,.fp > summary small,.fp-b > p.fp-t2,.fa .chip,.fa-b h4,.fa-b ul,.fa-b ol,.fa-b li,
.fa-b .fa-o,.fa-b .fa-src,.fa-src a,.fq h3,.fq > div,.fq li,.fq li span,.fsrcw > p,.fsrc,.fsrc a,.fsrc .fsm,.vol > p.fact,.fact,.cinfo,.tip3d,.mcmpb button,.okmsg p,.status{font-size:16px !important}
.pz-list small,.pz-lb .go{letter-spacing:.04em !important}
.lbl{font-family:var(--t-display) !important;font-weight:600;font-size:16px !important;letter-spacing:.02em !important;padding:3px 8px !important}
#mgrid .stp{font-size:16px !important;line-height:1.15}
.mfacts dt{font-family:var(--t-body) !important;font-weight:600;text-transform:none !important;letter-spacing:0 !important;color:var(--t-blue)}
.mcount .t,.stagecap,.mtag{font-family:var(--t-body) !important;font-weight:600;letter-spacing:.04em !important}
body.doc main h2{font-family:var(--t-display);font-weight:600;text-transform:uppercase;letter-spacing:.01em;font-size:clamp(26px,6.4vw,34px);line-height:1.05}
body.doc main h3{font-family:var(--t-display);font-weight:600;font-size:23px;letter-spacing:.01em}
body.doc main .end h2{font-size:clamp(26px,6.4vw,34px)}
/* pied de page commun : neutralise les règles « footer » / « h2 » du gabarit des pages détaillées (page.css) */
footer.tfoot{margin-top:0}
footer.tfoot h2{margin:0 0 6px;padding:0;border:0;font-family:var(--t-mono);font-size:16px;font-weight:500;line-height:1.3;letter-spacing:.14em;text-transform:uppercase;color:var(--t-sky)}
footer.tfoot ul{display:block;margin:0}
footer.tfoot li a{padding:0}
footer.tfoot p{margin:0}
footer.tfoot .tf-t{margin-top:8px}footer.tfoot .tf-g{margin-top:22px}footer.tfoot .tf-l{margin-top:14px}footer.tfoot .tf-links{margin-top:12px}

/* ---------- « Vérifier mes droits » : bouton du haut, questionnaire (une question par écran), résumé joint au formulaire ---------- */
.mhero-act{display:flex;flex-wrap:wrap;gap:10px}
.mhero-act .ghost,.mhero-act .cta{min-height:48px;border-radius:4px;padding:0 20px}
.mhero .mhero-act .cta{display:inline-flex}
.dr-open{background:#fff;border-color:var(--t-blue);color:var(--t-blue)}
.dr-open:hover{background:var(--t-blue);color:#fff}
@media (max-width:1023.98px){.mhero-act{order:-1;width:100%}.mhero-act > *{flex:1 1 150px}}
html.dr-lock,html.dr-lock body{overflow:hidden}
.droits{position:fixed;inset:0;z-index:400;background:rgba(13,23,36,.55);display:flex;align-items:stretch;justify-content:center;font:400 16px/1.5 var(--t-body);color:var(--t-night)}
.droits[hidden]{display:none}
.dr-box{position:relative;width:100%;max-width:720px;background:var(--t-cream);overflow-y:auto;-webkit-overflow-scrolling:touch;padding:12px 16px calc(24px + env(safe-area-inset-bottom,0px))}
@media (min-width:760px){.droits{align-items:center;padding:24px}.dr-box{max-height:calc(100vh - 48px);border-radius:6px;padding:20px 32px 28px;box-shadow:0 24px 60px -20px rgba(0,0,0,.5)}}
.dr-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:8px;border-bottom:1px solid var(--t-rule)}
.dr-title{margin:0;font-family:var(--t-display);font-weight:600;font-size:24px;text-transform:uppercase;letter-spacing:.02em}
.dr-x{min-height:44px;border-radius:4px}
.dr-prog{margin:12px 0 0;font-family:var(--t-mono);font-size:16px;letter-spacing:.06em;text-transform:uppercase;color:var(--t-blue)}
.dr-q h2{margin:8px 0 16px;font-family:var(--t-display);font-weight:600;font-size:clamp(28px,7.4vw,38px);line-height:1.05;text-transform:uppercase;outline:none}
.dr-q h2 label{font:inherit}
.dr-opts{display:grid;gap:10px}
.dr-opts-n{grid-template-columns:repeat(3,minmax(0,1fr))}
.dr-o{display:flex;align-items:center;justify-content:flex-start;min-height:56px;padding:10px 18px;border:1.5px solid var(--t-rule);border-radius:6px;background:#fff;color:var(--t-night);font:600 18px/1.25 var(--t-body);text-align:left;cursor:pointer}
.dr-opts-n .dr-o{justify-content:center;text-align:center}
.dr-o:hover{border-color:var(--t-blue)}
.dr-o[aria-pressed="true"]{border-color:var(--t-blue);background:#E3EDF8}
.dr-q input{display:block;width:100%;max-width:280px;min-height:52px;margin:0 0 12px;padding:0 14px;border:1.5px solid var(--t-rule);border-radius:6px;background:#fff;font:600 20px/1 var(--t-body);color:var(--t-night)}
.dr-more{margin-top:16px}
.dr-more label{display:block;font-weight:600}
.dr-more input{margin-top:6px}
.dr-err{margin:0 0 12px;color:#A3261B;font-weight:600}
.dr-q .cta{border-radius:4px;min-height:48px}
.dr-sub{margin:-6px 0 14px;color:#4A5A6E}
.dr-src{margin:14px 0 0;color:#4A5A6E}
.dr-src a,.droits .fa-src a{display:inline;color:var(--t-blue);text-underline-offset:3px}
.dr-nav{margin-top:18px}
.dr-nav .ghost{min-height:48px;border-radius:4px}
.dr-cat p{margin:0}
.dr-chip{display:inline-flex;align-items:baseline;gap:8px;margin-top:8px !important;padding:8px 16px;border-radius:4px;font-size:20px}
.dr-chip.dr-tm{background:#1E3A8A;color:#fff}
.dr-chip.dr-m{background:#F2C200;color:#132033}
.dr-chip.dr-i{background:#6B2C91;color:#fff}
.dr-chip.dr-s{background:#C2185B;color:#fff}
.dr-grp{margin-top:22px}
.dr-grp[hidden]{display:none}
.dr-grp h3{margin:0 0 8px;font-family:var(--t-display);font-weight:600;font-size:22px;text-transform:uppercase;letter-spacing:.02em}
.dr-grp[data-g="non"] .dr-aide{opacity:.85;background:transparent}
.dr-aide{margin-top:10px;padding:12px 14px;border:1px solid var(--t-rule);border-radius:6px;background:#fff}
.dr-aide h4{margin:0 0 6px;font-size:18px;line-height:1.3}
.dr-aide p{margin:6px 0 0;font-size:16px}
.dr-note{margin:16px 0 0;padding:12px 14px;border-left:3px solid var(--t-blue);background:#fff;font-weight:600}
.dr-end{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.dr-end > *{min-height:48px;border-radius:4px}
.droits-recap{margin:16px 0 0;padding:12px 14px;border-left:3px solid var(--t-blue);background:#fff;font-weight:600}

/* ---------- Certificats de qualification (disposition du modèle fourni, style Groupe TTR) ---------- */
.qualif{margin-top:24px;padding-top:4px}
.qualif h3{display:inline-block;margin:0 0 16px;padding-bottom:8px;border-bottom:2px solid var(--t-blue);font-family:var(--t-display);font-weight:600;font-size:26px;text-transform:uppercase;letter-spacing:.02em;color:var(--t-night)}
.q-row{display:flex;flex-wrap:wrap;align-items:center;gap:14px 28px}
.q-badge{display:inline-flex;flex-direction:column;justify-content:center;min-width:132px;padding:8px 16px;border:2px solid var(--t-night);border-radius:4px;background:#fff;font:600 24px/1.05 var(--t-display);color:var(--t-night);letter-spacing:.01em}
.q-badge small{font:700 16px/1 var(--t-body);letter-spacing:.08em;color:var(--t-blue)}
.q-t{flex:1 1 320px;margin:0;font-size:16px;color:var(--t-night)}
.q-audit{width:100%;margin:4px 0 0;font-size:16px;color:var(--t-ink,#14213d)}
.q-audit-b{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:999px;background:#e6f4ea;color:#1e7a3c;font-weight:700}
.q-links{display:flex;flex-wrap:wrap;gap:4px 24px;width:100%}
.q-links a{display:inline-flex;align-items:center;min-height:44px;font-weight:600;color:var(--t-blue);text-underline-offset:3px}
