/* Feuille de Route PL : ambiance signalisation routière et cabine. Préfixe rl- */
:root{
  --rl-ink:var(--wp--preset--color--contrast,#1B1E21);
  --rl-prim:var(--wp--preset--color--primary,#23272B);
  --rl-cta:var(--wp--preset--color--accent-1,#F28C28);
  --rl-pale:var(--wp--preset--color--accent-2,#F5F3EF);
  --rl-act:var(--wp--preset--color--accent-3,#A9520A);
  --rl-mut:var(--wp--preset--color--accent-4,#5B6169);
  --rl-alt:var(--wp--preset--color--accent-5,#ECEEF0);
  --rl-bord:var(--wp--preset--color--accent-6,#D3D7DC);
  --rl-ok:#2E7D4F;
  --rl-jaune:#F2C230;
  --rl-bitume:#5B6169;
  --rl-h:var(--wp--preset--font-family--heading,"Sora",system-ui,sans-serif);
  --rl-b:var(--wp--preset--font-family--body,"Inter",system-ui,sans-serif);
  --rl-r:6px;
  --rl-max:1140px;
}
body{font-family:var(--rl-b);color:var(--rl-ink);background:#fff;font-size:1.0625rem;line-height:1.65}
.cx-main{padding:0}
.cx-main h1,.cx-main h2,.cx-main h3,.rl-head,.rl-foot h3{font-family:var(--rl-h);letter-spacing:-.02em;line-height:1.15;color:var(--rl-ink)}
.cx-main a{color:var(--rl-act);text-underline-offset:3px}
.cx-main a:hover{color:var(--rl-prim)}
.rl-wrap{max-width:var(--rl-max);margin:0 auto;padding:0 1rem}
.rl-narrow{max-width:780px}

/* En-tête */
.rl-head{background:var(--rl-prim);position:relative;z-index:20;border-bottom:4px solid var(--rl-cta)}
.rl-head .rl-wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:66px}
.rl-logo{display:flex;align-items:center;gap:.6rem;text-decoration:none;color:#fff;font-weight:800;font-size:1.08rem;letter-spacing:-.02em;font-family:var(--rl-h)}
.rl-logo small{display:block;font-family:var(--rl-b);font-weight:600;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:#C9CDD2}
.rl-nav{display:none}
.rl-nav a{white-space:nowrap;color:#fff;text-decoration:none;font-family:var(--rl-b);font-weight:600;font-size:.95rem;padding:.4rem .15rem;border-bottom:2px solid transparent}
.rl-nav a:hover{border-bottom-color:var(--rl-cta)}
.rl-btn{display:inline-block;background:var(--rl-cta);color:#1B1E21 !important;font-family:var(--rl-h);font-weight:700;text-decoration:none !important;padding:.78rem 1.2rem;border-radius:var(--rl-r);border:2px solid var(--rl-cta);line-height:1.2;text-align:center}
.rl-btn:hover{background:#FFA247;border-color:#FFA247}
.rl-btn.rl-ghost{background:transparent;color:#fff !important;border-color:#fff}
.rl-btn.rl-ghost:hover{background:rgba(255,255,255,.12)}
.rl-burger{position:relative}
.rl-burger summary{list-style:none;cursor:pointer;font-family:var(--rl-h);font-weight:700;padding:.5rem .8rem;border:2px solid #fff;border-radius:var(--rl-r);color:#fff}
.rl-burger summary::-webkit-details-marker{display:none}
.rl-burger[open] .rl-drawer{display:flex}
.rl-drawer{display:none;flex-direction:column;position:absolute;right:0;top:calc(100% + .7rem);background:#fff;border:1px solid var(--rl-bord);box-shadow:0 14px 34px rgba(0,0,0,.22);padding:1rem;min-width:265px;gap:.15rem;border-radius:var(--rl-r)}
.rl-drawer a{color:var(--rl-ink);text-decoration:none;padding:.55rem .4rem;border-bottom:1px solid var(--rl-alt);font-weight:600}
.rl-drawer .rl-btn{margin-top:.6rem;border-bottom:2px solid var(--rl-cta)}
.rl-head .rl-btn{display:none;white-space:nowrap}
@media (min-width:1020px){
  .rl-nav{display:flex;gap:1.15rem;align-items:center}
  .rl-burger{display:none}
  .rl-head .rl-btn{display:inline-block}
}

/* Bandeau sombre (bitume) et ligne de marquage */
.rl-plan{background:var(--rl-prim);color:#fff;background-image:linear-gradient(135deg,rgba(255,255,255,.035) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.035) 50%,rgba(255,255,255,.035) 75%,transparent 75%);background-size:28px 28px}
.rl-hero{padding:2.4rem 0 0;position:relative;overflow:hidden}
.rl-hero h1{color:#fff;font-size:clamp(1.85rem,5vw,3rem);margin:.4rem 0 .9rem;max-width:21ch}
.rl-hero p{color:#E3E6E9;font-size:1.1rem;max-width:62ch}
.rl-hero a:not(.rl-btn){color:#fff}
.rl-kicker{display:inline-block;font-family:var(--rl-h);font-weight:700;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:#1B1E21;background:var(--rl-jaune);padding:.22rem .6rem;border-radius:3px;border:2px solid #1B1E21;box-shadow:0 0 0 2px var(--rl-jaune)}
.rl-ligne{height:10px;margin-top:2.2rem;background:repeating-linear-gradient(90deg,#fff 0 46px,transparent 46px 80px);opacity:.85}
.rl-hero-grid{display:grid;gap:1.6rem}
@media (min-width:900px){.rl-hero-grid{grid-template-columns:1.2fr .95fr;align-items:center}.rl-hero{padding-top:3.4rem}}
.rl-actions{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.3rem}
.rl-micro{display:flex;flex-wrap:wrap;gap:.4rem 1.2rem;margin:1rem 0 0;padding:0;list-style:none;color:#E3E6E9;font-size:.94rem}
.rl-micro li::before{content:"";display:inline-block;width:.6rem;height:.6rem;background:var(--rl-cta);transform:rotate(45deg);margin-right:.5rem}
.rl-crumb{font-size:.88rem;color:#C9CDD2;margin:0 0 .5rem}
.rl-crumb a{color:#fff !important;text-decoration:none}
.rl-crumb a:hover{text-decoration:underline}
.rl-crumb span{margin:0 .35rem;color:#9AA1A9}
.rl-maj{font-size:.86rem;color:#C9CDD2 !important;margin-top:1rem}

/* Carte « Où en êtes-vous ? » */
.rl-orient{background:#fff;color:var(--rl-ink);border-radius:var(--rl-r);padding:1.25rem;border-top:6px solid var(--rl-cta);box-shadow:0 18px 40px rgba(0,0,0,.3)}
.rl-orient h2{font-size:1.15rem;margin:0 0 .8rem;color:var(--rl-ink)}
.rl-orient a{display:flex;justify-content:space-between;align-items:center;gap:.6rem;padding:.72rem .85rem;margin-bottom:.5rem;border:1px solid var(--rl-bord);border-radius:var(--rl-r);color:var(--rl-ink) !important;text-decoration:none;font-weight:600}
.rl-orient a:hover{border-color:var(--rl-cta);background:var(--rl-pale)}
.rl-orient a span{color:var(--rl-act);font-family:var(--rl-h)}

/* Frise de parcours */
.rl-route{list-style:none;padding:0 !important;margin:1.4rem 0;display:grid;gap:0;counter-reset:rl}
.rl-route li{counter-increment:rl;position:relative;padding:0 0 1.3rem 3.2rem;max-width:none !important;margin:0 !important}
.rl-route li::before{content:counter(rl);position:absolute;left:0;top:0;width:2.2rem;height:2.2rem;border-radius:50%;background:var(--rl-cta);color:#1B1E21;font-family:var(--rl-h);font-weight:800;display:flex;align-items:center;justify-content:center;z-index:1}
.rl-route li::after{content:"";position:absolute;left:1.05rem;top:2.2rem;bottom:0;width:4px;background:repeating-linear-gradient(180deg,var(--rl-prim) 0 10px,transparent 10px 18px)}
.rl-route li:last-child::after{display:none}
.rl-route b{display:block;font-family:var(--rl-h);font-size:1.05rem}
.rl-route span{display:block;color:var(--rl-mut);font-size:.95rem}
@media (min-width:860px){
  .rl-route{grid-auto-flow:column;grid-auto-columns:1fr}
  .rl-route li{padding:3.2rem .8rem 0 0}
  .rl-route li::after{left:2.4rem;right:0;top:1rem;bottom:auto;width:auto;height:4px;background:repeating-linear-gradient(90deg,var(--rl-prim) 0 14px,transparent 14px 24px)}
}

/* Sections */
.rl-sec{padding:2.5rem 0}
.rl-sec.rl-alt{background:var(--rl-pale)}
.rl-sec h2{font-size:clamp(1.4rem,3.3vw,1.95rem);margin:0 0 1rem;max-width:32ch}
.rl-sec h3{font-size:1.15rem;margin:1.5rem 0 .5rem}
.rl-sec p,.rl-sec li{max-width:72ch}
.rl-sec ul,.rl-sec ol{padding-left:1.2rem}
.rl-sec li{margin:.3rem 0}
.rl-sur{display:block;font-family:var(--rl-h);font-weight:700;font-size:.76rem;letter-spacing:.12em;text-transform:uppercase;color:var(--rl-act);margin-bottom:.35rem}
.rl-sur::before{content:"";display:inline-block;width:18px;height:4px;background:var(--rl-cta);vertical-align:middle;margin-right:.45rem}

/* Chiffres clés : style panneau */
.rl-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:.8rem;margin:1.2rem 0}
.rl-fact{background:#fff;border:2px solid var(--rl-prim);padding:.9rem 1rem;border-radius:var(--rl-r);position:relative}
.rl-fact b{display:block;font-family:var(--rl-h);font-size:1.35rem;color:var(--rl-prim);line-height:1.15}
.rl-fact span{display:block;font-size:.94rem;margin-top:.25rem}
.rl-fact small{display:block;color:var(--rl-mut);font-size:.79rem;margin-top:.35rem}
.rl-fact::before{content:"";position:absolute;top:-2px;left:-2px;width:34px;height:6px;background:var(--rl-cta);border-radius:var(--rl-r) 0 0 0}

/* Tableaux */
.rl-tablewrap{overflow-x:auto;margin:1.2rem 0;border:1px solid var(--rl-bord);border-radius:var(--rl-r);-webkit-overflow-scrolling:touch}
.rl-table{width:100%;border-collapse:collapse;font-size:.96rem;min-width:540px;background:#fff}
.rl-table th{background:var(--rl-prim);color:#fff;text-align:left;font-family:var(--rl-h);font-weight:700;padding:.7rem .8rem;font-size:.9rem;border-bottom:3px solid var(--rl-cta)}
.rl-table td{padding:.62rem .8rem;border-top:1px solid var(--rl-alt);vertical-align:top}
.rl-table tr:nth-child(even) td{background:#FAFAF8}
.rl-table td:first-child{font-weight:600}

/* Étapes */
.rl-steps{counter-reset:rls;list-style:none;padding:0 !important;display:grid;gap:.85rem;margin:1.2rem 0}
.rl-steps li{counter-increment:rls;position:relative;padding:1rem 1rem 1rem 3.7rem;background:#fff;border:1px solid var(--rl-bord);border-radius:var(--rl-r);max-width:none !important}
.rl-steps li::before{content:counter(rls);position:absolute;left:.9rem;top:.9rem;width:2rem;height:2rem;background:var(--rl-jaune);border:2px solid var(--rl-prim);transform:rotate(45deg);font-family:var(--rl-h);font-weight:800;color:var(--rl-prim);display:flex;align-items:center;justify-content:center;font-size:.95rem}
.rl-steps li b{display:block;font-family:var(--rl-h);margin-bottom:.2rem}

/* Cartes */
.rl-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(235px,1fr));gap:1rem;margin:1.2rem 0}
.rl-card{display:block;background:#fff;border:1px solid var(--rl-bord);border-radius:var(--rl-r);padding:1.1rem 2.4rem 1.1rem 1.1rem;text-decoration:none !important;color:var(--rl-ink) !important;position:relative;transition:border-color .15s,transform .15s}
.rl-card:hover{border-color:var(--rl-cta);transform:translateY(-2px)}
.rl-card b{display:block;font-family:var(--rl-h);font-size:1.05rem;margin-bottom:.35rem;color:var(--rl-prim)}
.rl-card span{display:block;font-size:.95rem}
.rl-card em{display:inline-block;font-style:normal;font-size:.74rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;background:var(--rl-prim);color:#fff;padding:.15rem .45rem;border-radius:3px;margin-bottom:.5rem}
.rl-card::after{content:"→";position:absolute;right:1rem;top:1rem;color:var(--rl-act);font-weight:700}

/* Encadrés */
.rl-box{border:1px solid var(--rl-bord);border-left:6px solid var(--rl-prim);background:#fff;padding:1rem 1.15rem;border-radius:var(--rl-r);margin:1.2rem 0}
.rl-box.rl-warn{border-left-color:var(--rl-cta);background:#FFF6EC}
.rl-box.rl-ok{border-left-color:var(--rl-ok)}
.rl-box p:last-child{margin-bottom:0}
.rl-split{display:grid;gap:1.2rem}
@media (min-width:860px){.rl-split{grid-template-columns:1fr 1fr}}

/* Bandeau d'appel */
.rl-cta{margin:1.5rem 0;padding:1.5rem;border-radius:var(--rl-r);display:grid;gap:1rem;align-items:center;border-left:8px solid var(--rl-cta)}
.rl-cta h2,.rl-cta h3{color:#fff;margin:0 0 .4rem}
.rl-cta p{color:#E3E6E9;margin:0}
@media (min-width:760px){.rl-cta{grid-template-columns:1fr auto;padding:1.8rem 2rem}}

/* Questions fréquentes et simulateur */
.rl-faq details,.rl-sim{border:1px solid var(--rl-bord);border-radius:var(--rl-r);background:#fff;margin:.6rem 0;max-width:840px}
.rl-faq summary,.rl-sim summary{cursor:pointer;padding:.9rem 2.6rem .9rem 1rem;font-family:var(--rl-h);font-weight:700;position:relative;list-style:none}
.rl-faq summary::-webkit-details-marker,.rl-sim summary::-webkit-details-marker{display:none}
.rl-faq summary::after,.rl-sim summary::after{content:"+";position:absolute;right:1rem;top:.7rem;font-size:1.3rem;color:var(--rl-act)}
.rl-faq details[open] summary::after,.rl-sim[open]>summary::after{content:"−"}
.rl-faq details>div,.rl-sim>div{padding:0 1rem 1rem}
.rl-sim{border-left:5px solid var(--rl-cta)}
.rl-sim .rl-sim{border-left-color:var(--rl-jaune);background:var(--rl-pale)}
.rl-simwrap{display:grid;gap:.2rem}

/* Sources */
.rl-sources{font-size:.88rem;color:var(--rl-mut);border-top:2px dashed var(--rl-bord);margin-top:1.5rem;padding-top:1rem}
.rl-sources h2{font-size:1rem !important;margin:0 0 .4rem !important}
.rl-sources ul{margin:0;padding-left:1.1rem}
.rl-sources a{color:var(--rl-mut) !important;word-break:break-word}

/* Liens connexes */
.rl-related{display:flex;flex-wrap:wrap;gap:.5rem;padding:0 !important;list-style:none;margin:1rem 0}
.rl-related li{margin:0 !important}
.rl-related a{display:inline-block;padding:.45rem .85rem;border:1px solid var(--rl-bord);border-radius:999px;text-decoration:none;font-size:.94rem;background:#fff}
.rl-related a:hover{border-color:var(--rl-cta)}

/* Formulaires */
.rl-formbox{background:#fff;border:1px solid var(--rl-bord);border-top:6px solid var(--rl-cta);border-radius:var(--rl-r);padding:1.3rem;box-shadow:0 10px 30px rgba(27,30,33,.08);max-width:780px}
.rl-formbox h2{margin-top:0}
.cx-form{display:grid;gap:.9rem;position:relative}
.cx-form label{font-weight:600;font-size:.96rem;display:block;margin-bottom:.25rem}
.cx-form input[type=text],.cx-form input[type=email],.cx-form input[type=tel],.cx-form select,.cx-form textarea{width:100%;box-sizing:border-box;padding:.72rem .8rem;border:1px solid #9AA1A9;border-radius:var(--rl-r);font:inherit;background:#fff;color:var(--rl-ink)}
.cx-form input:focus,.cx-form select:focus,.cx-form textarea:focus{outline:3px solid rgba(242,140,40,.5);border-color:var(--rl-prim)}
.cx-form .rl-row{display:grid;gap:.8rem}
@media (min-width:620px){.cx-form .rl-row{grid-template-columns:1fr 1fr}}
.cx-form .rl-check{display:flex;gap:.6rem;align-items:flex-start;font-weight:400;font-size:.93rem}
.cx-form .rl-check input{margin-top:.3rem;width:1.1rem;height:1.1rem;flex:none}
.cx-form button{background:var(--rl-cta);color:#1B1E21;border:0;border-radius:var(--rl-r);padding:.95rem 1.3rem;font-family:var(--rl-h);font-weight:800;font-size:1.04rem;cursor:pointer}
.cx-form button:hover{background:#FFA247}
.rl-formnote{font-size:.87rem;color:var(--rl-mut);margin:0}

/* Pied de page */
.rl-foot{background:var(--rl-prim);color:#C9CDD2;padding:2.5rem 0 1.4rem;font-size:.94rem;border-top:10px solid transparent;border-image:repeating-linear-gradient(90deg,var(--rl-jaune) 0 40px,var(--rl-prim) 40px 64px) 10}
.rl-foot a{color:#fff;text-decoration:none}
.rl-foot a:hover{text-decoration:underline}
.rl-foot h3{color:#fff;font-size:.95rem;margin:0 0 .6rem;text-transform:uppercase;letter-spacing:.08em}
.rl-foot ul{list-style:none;padding:0;margin:0}
.rl-foot li{margin:.35rem 0}
.rl-fgrid{display:grid;gap:1.6rem;grid-template-columns:repeat(auto-fit,minmax(175px,1fr))}
.rl-flegal{border-top:1px solid rgba(255,255,255,.15);margin-top:2rem;padding-top:1rem;display:flex;flex-wrap:wrap;gap:.5rem 1.4rem;justify-content:space-between;font-size:.86rem}
/* Revue 05/11 : rassurance du formulaire, cibles tactiles de 44 px minimum */
.cx-form .rl-reassure{margin:.2rem 0 .1rem;padding:.6rem .8rem;border-left:4px solid var(--rl-cta);background:var(--rl-pale);font-size:.92rem;color:var(--rl-ink)}
.rl-btn,.cx-form button,.rl-burger,.rl-drawer a,.rl-nav a{min-height:44px}
.rl-btn{display:inline-flex;align-items:center;justify-content:center}
.rl-crumb a,.rl-foot a,.rl-related a{display:inline-block;padding:.55rem 0}
/* Passe UX 05/11 : en-tête aligné, sommaire, tableaux en cartes sur mobile, focus clavier */
.rl-nav a{display:inline-flex;align-items:center}
@media (min-width:1020px){.rl-head .rl-btn{display:inline-flex;align-self:center}}
@media (min-width:1020px) and (max-width:1180px){.rl-nav{gap:.8rem}.rl-nav a{font-size:.9rem}}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.rl-card{transition:none}}
.cx-main h2[id]{scroll-margin-top:1rem}
.rl-toc{background:#fff;border:1px solid var(--rl-bord);border-left:6px solid var(--rl-cta);border-radius:var(--rl-r);margin:0 0 2rem;max-width:840px}
.rl-toc summary{cursor:pointer;list-style:none;min-height:44px;box-sizing:border-box;display:flex;align-items:center;gap:.5rem;padding:.7rem 2.6rem .7rem 1.1rem;font-family:var(--rl-h);font-weight:700;position:relative}
.rl-toc summary::-webkit-details-marker{display:none}
.rl-toc summary span{font-family:var(--rl-b);font-weight:400;color:var(--rl-mut);font-size:.92rem}
.rl-toc summary::after{content:"+";position:absolute;right:1rem;top:50%;transform:translateY(-50%);font-size:1.3rem;color:var(--rl-act)}
.rl-toc[open] summary::after{content:"\2212"}
.rl-toc nav{padding:0 1.1rem .8rem}
.rl-toc ol{margin:0;padding-left:1.4rem !important}
.rl-toc li{margin:0 !important;max-width:none !important}
.rl-toc a{display:block;padding:.6rem 0;min-height:44px;box-sizing:border-box;line-height:1.35;text-decoration:none}
.rl-toc a:hover{text-decoration:underline}
@media (min-width:860px){.rl-toc ol{columns:2;column-gap:2.4rem}.rl-toc li{break-inside:avoid}.rl-toc a{min-height:0;padding:.3rem 0}}
:focus-visible{outline:3px solid var(--rl-act);outline-offset:2px}
.rl-head :focus-visible,.rl-plan :focus-visible,.rl-foot :focus-visible{outline-color:var(--rl-jaune)}
.rl-btn:focus-visible,.cx-form button:focus-visible{outline:3px solid var(--rl-ink);outline-offset:3px;box-shadow:0 0 0 6px var(--rl-jaune)}
.rl-faq summary,.rl-sim summary{min-height:44px;box-sizing:border-box}
@media (max-width:640px){
  body{font-size:1.0625rem}
  .rl-sec{padding:2rem 0}
  .rl-table{min-width:0;font-size:.95rem}
  .rl-tablewrap:has(.rl-cartes){border:0;overflow:visible;background:transparent}
  .rl-cartes thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .rl-cartes,.rl-cartes tbody,.rl-cartes tr,.rl-cartes td{display:block;width:100%;box-sizing:border-box}
  .rl-cartes{background:transparent}
  .rl-cartes caption{display:block}
  .rl-cartes tr{background:#fff;border:1px solid var(--rl-bord);border-top:4px solid var(--rl-cta);border-radius:var(--rl-r);margin:0 0 .8rem;padding:.3rem 0}
  .rl-cartes tr:nth-child(even) td{background:transparent}
  .rl-cartes td{border:0;padding:.4rem .85rem;display:grid;grid-template-columns:minmax(0,40%) 1fr;gap:.7rem}
  .rl-cartes td::before{content:attr(data-label);font-weight:700;font-size:.82rem;color:var(--rl-mut);line-height:1.4;padding-top:.1rem}
  .rl-cartes td:first-child{display:block;font-family:var(--rl-h);font-size:1.02rem;color:var(--rl-prim);border-bottom:1px solid var(--rl-alt);padding:.55rem .85rem .6rem;margin-bottom:.2rem}
  .rl-cartes td:first-child::before{display:none}
  .rl-cartes td:empty{display:none}
}
.rl-logo{min-height:44px}
.rl-burger summary{min-height:44px;box-sizing:border-box;display:flex;align-items:center}
.rl-crumb a{padding:.65rem 0}
.rl-flegal a{display:inline-block;padding:.7rem 0}
.rl-btn,.rl-nav a,.rl-drawer a,.cx-form button{box-sizing:border-box}
