/* Pages contact, recrutement, outils, lettres, mentions légales, confidentialité */

/* étapes en quatre colonnes */
.steps--4{grid-template-columns:repeat(4,1fr)}
@media (max-width:1000px){.steps--4{grid-template-columns:1fr}}

/* formulaire posé sur fond clair */
.form--plain{border:1px solid var(--line);box-shadow:0 30px 60px -44px rgba(20,32,43,.35)}
.form input[type=file]{padding:10px 12px;font-size:.92rem;background:var(--mist);cursor:pointer}
.form input[type=file]::file-selector-button{font:600 .88rem var(--sans);margin-right:12px;padding:8px 14px;border:1.5px solid var(--ink);border-radius:var(--r-s);background:#fff;color:var(--ink);cursor:pointer}
.form small{display:block;font-weight:400;font-size:.8rem;color:var(--mute)}
.form__ok{font-size:.95rem}
@media (max-width:640px){.form{grid-template-columns:1fr}}

/* lignes de contact rapides */
.quick{list-style:none;display:grid;gap:14px;margin-top:30px}
.quick li{display:grid;grid-template-columns:34px 1fr;gap:14px;align-items:start}
.quick svg{width:24px;height:24px;margin-top:2px;fill:none;stroke:#f0b2a8;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.quick b{display:block;color:#fff;font-weight:600}
.quick span{font-size:.94rem;color:rgba(255,255,255,.75)}
.quick a{color:#fff}

/* accès : deux adresses et un plan stylisé */
.access{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(18px,3vw,40px)}
.access__card{border:1px solid var(--line);border-radius:var(--r-l);overflow:hidden;background:#fff;display:flex;flex-direction:column}
.plan{position:relative;aspect-ratio:16/7;background:var(--mist);border-bottom:1px solid var(--line);overflow:hidden}
.plan .topo{position:absolute;inset:0;width:100%;height:100%;opacity:.6;--topo:rgba(126,11,0,.12);--topo-idx:rgba(126,11,0,.2)}
.plan__pin{position:absolute;left:50%;top:52%;transform:translate(-50%,-100%);display:flex;flex-direction:column;align-items:center;gap:6px}
.plan__pin i{width:20px;height:20px;border-radius:50% 50% 50% 0;background:var(--bordeaux);transform:rotate(-45deg);box-shadow:0 0 0 5px rgba(126,11,0,.16);position:relative}
.plan__pin i::after{content:"";position:absolute;inset:6px;border-radius:50%;background:#fff}
.plan__pin span{font:600 .8rem/1 var(--sans);color:var(--ink);background:#fff;padding:6px 10px;border-radius:99px;box-shadow:0 6px 18px -8px rgba(20,32,43,.5);white-space:nowrap}
.access__body{padding:clamp(20px,2.6vw,32px);display:grid;gap:14px;flex:1}
.access__body h3{font-size:1.5rem}
.access__body address{font-style:normal;line-height:1.6;color:var(--ink)}
.access__body ul{list-style:none;display:grid;gap:10px}
.access__body li{display:grid;grid-template-columns:96px 1fr;gap:12px;font-size:.96rem;line-height:1.5}
.access__body li b{color:var(--ink);font-weight:600}
.access__links{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:auto;padding-top:6px}
@media (max-width:900px){.access{grid-template-columns:1fr}}
@media (max-width:480px){.access__body li{grid-template-columns:1fr;gap:2px}}

/* bandeau espace client */
.strip{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center;padding:clamp(24px,3.4vw,40px);border:1px solid var(--line);border-radius:var(--r-l);background:#fff}
.strip h3{margin-bottom:8px}
.strip p{margin:0;max-width:62ch;font-size:.98rem}
.strip__act{display:flex;flex-wrap:wrap;gap:10px}
@media (max-width:760px){.strip{grid-template-columns:1fr}}

/* recrutement : fiche de poste */
.offer{border:1px solid var(--line);border-radius:var(--r-l);background:#fff;overflow:hidden}
.offer__head{padding:clamp(22px,3vw,40px);background:var(--bordeaux-t)}
.offer__head .tag{background:#fff}
.offer__head h2{font-size:clamp(1.7rem,3vw,2.5rem);margin-top:6px}
.offer__head .chips li{background:#fff;border-color:transparent}
.offer__cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(24px,4vw,56px);padding:clamp(22px,3vw,40px)}
.offer__cols h3{font:600 1.05rem/1.3 var(--sans);color:var(--ink);margin-bottom:14px}
.offer__cols ul{list-style:none;display:grid;gap:12px}
.offer__cols li{position:relative;padding-left:20px;font-size:.99rem;line-height:1.55}
.offer__cols li::before{content:"";position:absolute;left:0;top:.7em;width:8px;height:2px;background:var(--bordeaux)}
.offer__foot{display:flex;flex-wrap:wrap;gap:14px 24px;align-items:center;justify-content:space-between;padding:20px clamp(22px,3vw,40px);border-top:1px solid var(--line);background:var(--mist);font-size:.95rem}
.offer__foot p{margin:0;max-width:60ch}
@media (max-width:760px){.offer__cols{grid-template-columns:1fr}}

.perks{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,3vw,40px) clamp(20px,3vw,40px)}
.perks li{border-top:2px solid var(--ink);padding-top:18px}
.perks b{display:block;font:500 1.32rem/1.25 var(--serif);color:var(--ink);margin-bottom:8px}
.perks span{font-size:.97rem;line-height:1.55;display:block}
@media (max-width:900px){.perks{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.perks{grid-template-columns:1fr}}

/* outils : blocs de fonctionnalités */
.toolrow{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(24px,5vw,80px);padding-block:clamp(30px,4vw,52px);border-top:1px solid var(--line);align-items:start}
.toolrow:first-of-type{border-top:2px solid var(--ink)}
.toolrow h3{font-size:clamp(1.5rem,2.4vw,2rem);margin-bottom:12px}
.toolrow p{margin:0;max-width:48ch}
.feat{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 28px}
.feat li{display:grid;gap:3px}
.feat b{color:var(--ink);font-size:1rem}
.feat span{font-size:.93rem;line-height:1.5}
@media (max-width:860px){.toolrow{grid-template-columns:1fr}}
@media (max-width:520px){.feat{grid-template-columns:1fr}}

/* lettres mensuelles */
.lettres{display:grid;gap:clamp(34px,4vw,54px)}
.lettres h2{font-size:clamp(1.6rem,2.6vw,2.2rem);margin-bottom:6px;padding-bottom:14px;border-bottom:2px solid var(--ink)}
.lettre{display:grid;grid-template-columns:104px minmax(0,1fr);gap:8px 28px;padding:24px 0;border-bottom:1px solid var(--line)}
.lettre time{font:italic 500 1.2rem/1.3 var(--serif);color:var(--bordeaux)}
.lettre h3{font-size:1.4rem;line-height:1.25;margin-bottom:8px}
.lettre h3 a{text-decoration:none}
.lettre h3 a:hover{color:var(--bordeaux)}
.lettre p{margin:0 0 10px;font-size:.98rem;max-width:62ch}
.lettre ul{list-style:none;display:flex;flex-wrap:wrap;gap:6px 8px;margin-bottom:10px}
.lettre li{font-size:.82rem;font-weight:500;color:var(--ink-2);background:var(--mist);border:1px solid var(--line);border-radius:99px;padding:4px 10px}
.lettre .link{font-size:.92rem}
@media (max-width:620px){.lettre{grid-template-columns:1fr}}

/* pages légales */
.legal-layout{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,8fr);gap:clamp(28px,6vw,96px);align-items:start}
.legal-toc{position:sticky;top:104px;display:grid;gap:4px;font-size:.94rem}
.legal-toc b{color:var(--ink);margin-bottom:8px}
.legal-toc a{text-decoration:none;padding:6px 0;border-bottom:1px solid var(--line)}
.legal-toc a:hover{color:var(--bordeaux)}
.legal{max-width:74ch;min-width:0}
.legal h2{font-size:clamp(1.5rem,2.3vw,1.95rem);margin:2.2em 0 .6em;scroll-margin-top:100px}
.legal h2:first-child{margin-top:0}
.legal h3{font:600 1.04rem/1.4 var(--sans);color:var(--ink);margin:1.6em 0 .4em}
.legal ul{margin:0 0 1.2em;padding-left:1.2em;display:grid;gap:.45em}
.legal li::marker{color:var(--bordeaux)}
.legal dl{display:grid;grid-template-columns:minmax(150px,230px) 1fr;margin:1.2em 0;border-top:1px solid var(--line)}
.legal dt,.legal dd{margin:0;padding:12px 0;border-bottom:1px solid var(--line)}
.legal dt{font-weight:600;color:var(--ink);padding-right:16px}
.legal .tablewrap{margin:1.2em 0}
.legal table{border-collapse:collapse;width:100%;min-width:560px;font-size:.93rem;line-height:1.5}
.legal th{background:var(--ink);color:#fff;text-align:left;font-weight:600;padding:11px 14px}
.legal td{padding:12px 14px;border-top:1px solid var(--line);vertical-align:top}
.todo{background:#fff1c9;color:#5c4300;padding:1px 7px;border-radius:4px;font-size:.92em;font-weight:500;white-space:normal}
.legal__note{padding:18px 22px;border:1px solid var(--line);border-left:4px solid #d9a400;background:#fffaf0;border-radius:var(--r-m);font-size:.95rem;margin-bottom:2em}
.legal__note p:last-child{margin:0}
@media (max-width:900px){.legal-layout{grid-template-columns:1fr}.legal-toc{position:static;grid-auto-flow:row}}
@media (max-width:560px){.legal dl{grid-template-columns:1fr}.legal dt{border-bottom:0;padding-bottom:0}.legal dd{padding-top:2px}}
