/* contact — repris du <style> de contact.html.
   Genere par _tools/build-pagecss.py : ne pas modifier a la main. */
.ct-head{max-width:1320px;margin:0 auto;padding:var(--s5) clamp(20px,4vw,52px) var(--s3)}
.ct-head h1{font-family:var(--serif);font-weight:300;font-size:var(--step-3);color:var(--pine);line-height:1.02;margin:14px 0 16px;max-width:16ch}
.ct-head p{max-width:52ch}
.ct{max-width:1320px;margin:0 auto;padding:0 clamp(20px,4vw,52px) var(--s6);display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(30px,4.5vw,64px);align-items:start}
@media (max-width:900px){.ct{grid-template-columns:1fr}}
.ct-block{border-top:1px solid var(--line);padding-top:22px;margin-bottom:34px}
.ct-block h2{font-family:var(--serif);font-weight:400;font-size:var(--step-1);color:var(--pine);margin-bottom:14px;display:flex;align-items:center;gap:11px}
.ct-block h2 svg{width:20px;height:20px;color:var(--gold);flex:none}
.ct-list{list-style:none;display:flex;flex-direction:column;gap:12px}
.ct-list a{color:var(--green);border-bottom:1px solid var(--line);transition:border-color .3s,color .3s}
.ct-list a:hover{color:var(--gold);border-color:var(--gold)}
.ct-list .lbl{display:block;font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:4px}
.cform{background:var(--cream);border:1px solid var(--line);border-radius:10px;padding:clamp(24px,3vw,38px)}
.cform form{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media (max-width:640px){.cform form{grid-template-columns:1fr}}
.cform .full{grid-column:1/-1}
.cform label{display:block;font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--green);margin-bottom:9px}
.cform input,.cform select,.cform textarea{width:100%;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:14px 15px;font-family:var(--sans);font-size:16px;font-weight:300;color:var(--ink);outline:none;transition:border-color .3s}
.cform input:focus,.cform select:focus,.cform textarea:focus{border-color:var(--gold)}
.cform textarea{min-height:130px;resize:vertical}
.cform .hint{font-size:.85rem;opacity:.72;margin-top:12px}
.dirs{background:var(--pine);color:var(--cream);padding:var(--s6) clamp(20px,4vw,52px)}
.dirs .in{max-width:1320px;margin:0 auto}
.dirs h2{font-family:var(--serif);font-weight:400;font-size:var(--step-2);color:var(--ivory);margin-bottom:10px}
.dirs-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:clamp(20px,2.6vw,34px);margin-top:var(--s4)}
.dirs-grid article{border-top:1px solid var(--line-dark);padding-top:18px}
.dirs-grid h3{font-family:var(--serif);font-weight:400;font-size:var(--step-1);color:var(--ivory);margin-bottom:8px}
.dirs-grid .t{font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin-bottom:10px}
.dirs-grid p{font-size:.94rem;opacity:.86}
.map{max-width:1320px;margin:0 auto;padding:var(--s5) clamp(20px,4vw,52px) var(--s6)}
.map .frame{position:relative;border-radius:10px;overflow:hidden;border:1px solid var(--line);aspect-ratio:16/8;background:var(--cream)}
.map iframe{width:100%;height:100%;border:0;display:block}
.map .cap{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:14px;font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}
.map-card{position:absolute;left:clamp(14px,2.2vw,26px);bottom:clamp(14px,2.2vw,26px);z-index:2;max-width:min(340px,86%);background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:16px 18px;box-shadow:0 16px 42px rgba(7,23,16,.22);display:flex;gap:14px;align-items:flex-start}
.map-card .mc-ic{flex:none;width:40px;height:40px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;color:var(--gold)}
.map-card b{display:block;font-family:var(--serif);font-weight:500;font-size:1.2rem;color:var(--pine);line-height:1.1}
.map-card .adr{display:block;font-size:.85rem;color:var(--pine);opacity:.82;margin:6px 0 12px;max-width:26ch}
.map-card .btn{padding:11px 18px;min-height:42px;font-size:10px}
.map .frame #lmap{position:absolute;inset:0;width:100%;height:100%;isolation:isolate;background:var(--cream)}
.leaflet-container{font-family:var(--sans);background:var(--cream)}
.jr-pin{background:none;border:0}
.leaflet-control-attribution{font-size:9px;background:rgba(247,242,228,.82)}
