:root{--paille:#f3ead7;--lin:#fbf6ea;--terre:#2b2118;--sol:#5a4a39;--feuille:#2f4a21;--mousse:#5c8a2e;--brique:#a8452a;--ocre:#c7922a;--trait:#d9ccb0;--serif:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,serif;--sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:12px}
body{margin:0;background:var(--paille);color:var(--terre);font:400 17px/1.6 var(--sans);overflow-wrap:break-word;-webkit-text-size-adjust:100%}
img{max-width:100%;height:auto}
a{color:var(--feuille);text-underline-offset:3px}
a:hover{color:var(--brique)}
:focus-visible{outline:3px solid var(--ocre);outline-offset:2px}
.skip{position:absolute;left:-999px;top:0;background:var(--terre);color:#fff;padding:8px 14px;z-index:20}
.skip:focus{left:8px;top:8px}
h1,h2,h3{font-family:var(--serif);line-height:1.15;margin:0;color:var(--terre)}
h1{font-size:clamp(2rem,5.4vw,3.4rem);font-weight:700;letter-spacing:-.01em}
h2{font-size:clamp(1.45rem,3vw,2rem);font-weight:700}
h3{font-size:1.25rem}
p{margin:0 0 1em}

/* En-tête */
.masthead{background:var(--lin);border-bottom:4px double var(--feuille)}
.strip{background:var(--feuille);color:#e9efdc;font-size:.82rem;display:flex;justify-content:space-between;gap:12px;padding:6px max(16px,calc((100% - 1160px)/2 + 16px));letter-spacing:.02em}
.strip p{margin:0}
.bar{display:flex;align-items:center;justify-content:space-between;gap:12px 28px;flex-wrap:wrap;max-width:1160px;margin:0 auto;padding:14px 16px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--terre)}
.brand img{flex:none;display:block}
.brand span{display:flex;flex-direction:column;line-height:1.1;min-width:0}
.brand b{font-family:var(--serif);font-size:1.55rem;font-weight:700}
.brand em{font-style:italic;color:var(--brique)}
.brand small{font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--sol);margin-top:3px}
.mainnav{display:flex;flex-wrap:wrap;gap:4px 22px}
.mainnav a{text-decoration:none;color:var(--terre);font-weight:600;padding:6px 0;border-bottom:3px solid transparent}
.mainnav a:hover{border-bottom-color:var(--brique);color:var(--terre)}

main{display:block}
.block,.pledge,.field-hero,.split,.prose,.bench{max-width:1160px;margin-left:auto;margin-right:auto;padding-left:16px;padding-right:16px}
.block{padding-top:44px;padding-bottom:8px}
.block-head{margin-bottom:22px;border-left:6px solid var(--ocre);padding-left:14px}
.block-head p{margin:6px 0 0;color:var(--sol)}

/* Accueil : héros */
.field-hero{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:32px;align-items:center;padding-top:44px;padding-bottom:36px}
.kicker{display:inline-block;margin:0 0 14px;background:var(--feuille);color:#f1f5e6;padding:4px 14px;font-size:.8rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.field-hero h1 em{font-style:italic;color:var(--brique)}
.lead{font-size:1.14rem;color:var(--sol);max-width:60ch;margin:16px 0 22px}
.actions{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:22px}
.btn{display:inline-block;background:var(--brique);color:#fff;text-decoration:none;font-weight:700;padding:12px 24px;border:2px solid var(--brique);border-radius:4px}
.btn:hover{background:var(--terre);border-color:var(--terre);color:#fff}
.btn.ghost{background:transparent;color:var(--terre);border-color:var(--terre)}
.btn.ghost:hover{background:var(--terre);color:#fff}
.byline{display:flex;align-items:center;gap:12px;font-size:.9rem;color:var(--sol);margin:0}
.byline img{border-radius:50%;object-fit:cover;flex:none;border:2px solid var(--ocre)}
.byline a{color:inherit;font-weight:600}
.ledger{background:var(--lin);border:2px solid var(--terre);padding:24px;position:relative;box-shadow:8px 8px 0 var(--ocre)}
.ledger h2{font-size:1.3rem;margin-bottom:14px}
.ledger dl{margin:0}
.ledger dl div{display:flex;align-items:baseline;gap:8px;padding:9px 0}
.ledger dt{flex:none;color:var(--sol)}
.ledger dl div::after{content:"";order:2;flex:1;border-bottom:2px dotted var(--trait);align-self:flex-end;margin-bottom:6px;min-width:12px}
.ledger dd{order:3;margin:0;font-family:var(--serif);font-size:1.6rem;font-weight:700;color:var(--feuille)}
.ledger p{margin:12px 0 0;font-style:italic;color:var(--sol);font-size:.95rem}

/* Engagements */
.pledge{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;padding-top:8px;padding-bottom:0}
.pledge article{padding:22px 24px;border-top:3px solid var(--feuille);background:var(--lin);border-right:1px solid var(--trait)}
.pledge article:last-child{border-right:0}
.pledge h2{font-size:1.25rem;margin-bottom:8px}
.pledge p{margin:0;color:var(--sol);font-size:.97rem}

/* Parcelles */
.plots,.tools,.sites,.sidelist{list-style:none;margin:0;padding:0}
.plots{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px}
.plots li,.tools li,.sites li{display:flex}
.plot-card{position:relative;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;gap:2px 12px;align-content:center;width:100%;min-height:104px;padding:16px 16px 16px 18px;background:var(--lin);border:1px solid var(--trait);border-left:10px solid var(--c);text-decoration:none;color:var(--terre);overflow:hidden;transition:transform .15s,box-shadow .15s}
.plot-card:hover{transform:translateY(-3px);box-shadow:0 8px 0 -2px var(--c);color:var(--terre)}
.plot-card em{position:absolute;right:10px;top:4px;font:italic 700 2.4rem/1 var(--serif);color:var(--trait)}
.plot-card i{grid-row:1 / span 2;font-style:normal;font-size:1.9rem;align-self:center}
.plot-card b{font-family:var(--serif);font-size:1.12rem;align-self:end;padding-right:34px}
.plot-card span{font-size:.88rem;color:var(--sol);align-self:start}

/* Outils (cartes) */
.tools{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.tool-card{display:grid;grid-template-columns:52px 1fr;grid-template-rows:auto 1fr;gap:4px 14px;width:100%;padding:18px;background:var(--lin);border:1px solid var(--trait);border-top:5px solid var(--mousse);text-decoration:none;color:var(--terre);transition:transform .15s}
.tool-card:hover{transform:translateY(-3px);color:var(--terre);border-top-color:var(--brique)}
.tool-card i{grid-row:1 / span 2;font-style:normal;font-size:1.6rem;width:52px;height:52px;display:flex;align-items:center;justify-content:center;background:var(--paille);border-radius:50%}
.tool-card b{font-family:var(--serif);font-size:1.1rem;line-height:1.25}
.tool-card span{color:var(--sol);font-size:.93rem;line-height:1.45}
.more{margin:18px 0 0;font-weight:700}
.toolband{margin-top:36px;padding-top:36px;padding-bottom:36px;max-width:none;background:var(--lin);border-top:1px solid var(--trait);border-bottom:1px solid var(--trait)}
.toolband>*{max-width:1128px;margin-left:auto;margin-right:auto}

/* Annuaire : sites */
.row-plot{margin:0 0 30px;border-top:3px solid var(--c);padding-top:12px}
.row-plot header{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.row-plot h3 a{text-decoration:none;color:var(--terre)}
.row-plot h3 a:hover{color:var(--brique)}
.row-plot header p{margin:0;color:var(--sol);font-size:.9rem}
.sites{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.site{position:relative;display:flex;flex-direction:column;justify-content:center;width:100%;min-height:68px;padding:10px 34px 10px 14px;background:#fff;border:1px solid var(--trait);border-left:5px solid var(--c);text-decoration:none;color:var(--terre);overflow-wrap:anywhere}
.site b{font-size:.98rem;line-height:1.3}
.site span{font-size:.78rem;color:var(--sol);margin-top:2px}
.site i{position:absolute;right:11px;top:50%;transform:translateY(-50%);font-style:normal;color:var(--c);font-weight:700}
.site:hover{background:var(--lin);color:var(--terre);border-color:var(--c)}

/* FAQ */
.faq details{background:var(--lin);border:1px solid var(--trait);border-left:5px solid var(--ocre);margin:0 0 10px}
.faq summary{cursor:pointer;padding:14px 16px;font-weight:700;list-style:none;position:relative;padding-right:44px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:16px;top:10px;font-size:1.4rem;color:var(--brique)}
.faq details[open] summary::after{content:"\2212"}
.faq details p{margin:0;padding:0 16px 16px;color:var(--sol)}
.prose .faq{margin-bottom:24px}

/* Bandeaux de page */
.banner{background:linear-gradient(90deg,color-mix(in srgb,var(--c) 26%,var(--lin)),var(--lin));border-bottom:1px solid var(--trait);border-left:14px solid var(--c)}
.banner-in{max-width:1160px;margin:0 auto;padding:26px 16px 30px}
.banner h1{margin:8px 0 0}
.banner .lead{margin:14px 0 14px}
.banner.slim .banner-in{padding-bottom:22px}
.badge{font-size:2.6rem;margin:10px 0 0;line-height:1}
.count{margin:0 0 14px;color:var(--sol)}
.count b{font-family:var(--serif);font-size:1.5rem;color:var(--feuille);margin-right:4px}
.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:2px 0;font-size:.88rem}
.crumbs li+li::before{content:"/";margin:0 8px;color:var(--sol)}
.crumbs a{color:var(--sol)}
.crumbs span{font-weight:700}
.author-in{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}
.portrait{border-radius:50%;object-fit:cover;border:5px solid #fff;box-shadow:0 0 0 3px var(--ocre)}

/* Parcelle : liste et colonne */
.split{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:32px;padding-top:32px;padding-bottom:16px;align-items:start}
.split-side{background:var(--lin);border:1px solid var(--trait);padding:18px;position:sticky;top:12px}
.split-side h2{font-size:1.15rem;margin-bottom:10px}
.sidelist{display:block}
.sidelist a{display:flex;align-items:center;gap:10px;padding:8px 6px;border-bottom:1px dotted var(--trait);text-decoration:none;color:var(--terre);font-size:.93rem}
.sidelist a:hover{background:#fff;color:var(--terre)}
.sidelist b{flex:1;font-weight:600;min-width:0}
.sidelist i{font-style:normal;font-size:.8rem;background:var(--c);color:#fff;border-radius:99px;padding:1px 9px}
.split .sites{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}

/* Prose */
.prose{max-width:820px;padding-top:36px;padding-bottom:56px}
.prose h2{margin:34px 0 12px;padding-bottom:6px;border-bottom:2px solid var(--trait)}
.prose h2:first-child{margin-top:0}
.prose .plots{margin:12px 0 24px}
.prose ul.plain{list-style:none;padding:0;margin:0 0 8px;columns:2;column-gap:32px}
.prose ul.plain li{break-inside:avoid;padding:5px 0;border-bottom:1px dotted var(--trait)}
.prose .links{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.prose .links a{display:flex;flex-direction:column;height:100%;padding:12px 14px;background:var(--lin);border:1px solid var(--trait);border-left:5px solid var(--ocre);text-decoration:none;overflow-wrap:anywhere}
.prose .links span{font-size:.85rem;color:var(--sol)}
.facts{display:grid;grid-template-columns:minmax(150px,230px) minmax(0,1fr);margin:0 0 20px;border:1px solid var(--trait);background:var(--lin)}
.facts dt,.facts dd{margin:0;padding:9px 14px;border-bottom:1px solid var(--trait)}
.facts dt{font-weight:700;background:#efe5cc}
.note{margin-top:24px;padding:14px 16px;background:var(--lin);border-left:5px solid var(--mousse)}
.callout{padding:14px 16px;background:#fff3d6;border-left:5px solid var(--ocre);color:var(--terre)}

/* Calculateurs */
.bench{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:24px;padding-top:34px;padding-bottom:6px;align-items:start}
.bench h2{font-size:1.25rem;margin-bottom:14px}
.bench-form,.bench-out{background:var(--lin);border:1px solid var(--trait);padding:22px}
.bench-form{border-top:6px solid var(--mousse)}
.bench-out{border-top:6px solid var(--brique);position:sticky;top:12px}
.field{margin-bottom:14px}
.field[hidden]{display:none}
.field label{display:block;font-weight:600;font-size:.93rem;margin-bottom:5px}
.field input,.field select{width:100%;font:inherit;padding:10px 12px;border:2px solid var(--sol);border-radius:3px;background:#fff;color:var(--terre);min-height:46px}
.field input:focus,.field select:focus{border-color:var(--mousse);outline:3px solid #cfe0b4}
.res{margin:0}
.res div{display:flex;flex-wrap:wrap;justify-content:space-between;gap:2px 16px;padding:10px 0;border-bottom:1px dotted var(--sol)}
.res dt{color:var(--sol);font-size:.93rem;flex:1 1 160px}
.res dd{margin:0;font-weight:700;text-align:right;flex:1 1 140px}
.res .main{background:var(--feuille);color:#fff;padding:14px;margin:6px 0;border:0}
.res .main dt{color:#dbe6c6}
.res .main dd{font-family:var(--serif);font-size:1.35rem}
.rnote{font-size:.86rem;color:var(--sol);margin:14px 0 0;font-style:italic}
.err{background:#fde7e0;border-left:5px solid var(--brique);padding:12px 14px;margin:0;color:#6b2412}

/* Pied de page */
.foot{margin-top:56px;background:var(--terre);color:#e6dcc5;border-top:10px solid var(--feuille)}
.foot-in{max-width:1160px;margin:0 auto;padding:40px 16px 24px}
.foot-grid{display:grid;grid-template-columns:1.6fr repeat(4,minmax(0,1fr));gap:28px}
.foot .brand{color:#fff}
.foot .brand em{color:var(--ocre)}
.foot h3{font-family:var(--sans);font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ocre);margin-bottom:12px}
.foot ul{list-style:none;margin:0;padding:0}
.foot li{margin:0 0 6px}
.foot a{color:#e6dcc5;text-decoration:none}
.foot a:hover{color:#fff;text-decoration:underline}
.foot-about p{margin:14px 0 0;font-size:.93rem;color:#c9bda2}
.foot-bottom{margin:30px 0 0;padding-top:18px;border-top:1px solid #4a3d2f;font-size:.82rem;color:#b3a78d}

/* Tablette et mobile */
@media (max-width:960px){
  .field-hero{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .foot-about{grid-column:1 / -1}
  .split{grid-template-columns:1fr}
  .split-side{position:static}
  .bench{grid-template-columns:1fr}
  .bench-out{position:static}
}
@media (max-width:700px){
  body{font-size:16px}
  .strip{justify-content:center}
  .strip-r{display:none}
  .bar{flex-direction:column;align-items:flex-start}
  .mainnav{gap:2px 16px;font-size:.95rem}
  .pledge{grid-template-columns:1fr}
  .pledge article{border-right:0;border-bottom:1px solid var(--trait)}
  .tools{grid-template-columns:1fr}
  .sites,.split .sites{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
  .prose ul.plain{columns:1}
  .facts{grid-template-columns:1fr}
  .facts dt{border-bottom:0;padding-bottom:2px}
  .banner{border-left-width:8px}
  .ledger{box-shadow:5px 5px 0 var(--ocre)}
  .field-hero{padding-top:28px}
}
@media (max-width:420px){
  .plots{grid-template-columns:1fr}
  .sites,.split .sites{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr}
  .brand b{font-size:1.35rem}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* Annuaire : recherche, filtres, favoris (actifs seulement avec JavaScript) */
[hidden]{display:none!important}
.dir-tools,.fav,.favs{display:none}
.js .dir-tools{display:block;margin:0 0 22px;padding:18px;background:var(--lin);border:1px solid var(--trait);border-top:5px solid var(--ocre)}
.js .fav{display:flex}
.dir-search label{display:block;font-weight:700;margin-bottom:6px}
.dir-search input{width:100%;max-width:520px;font:inherit;padding:10px 12px;border:2px solid var(--sol);border-radius:3px;background:#fff;color:var(--terre);min-height:46px}
.dir-search input:focus{border-color:var(--mousse)}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.chip{font:inherit;font-size:.88rem;font-weight:600;cursor:pointer;padding:7px 12px;min-height:40px;background:#fff;color:var(--terre);border:2px solid var(--trait);border-left:6px solid var(--c,var(--ocre));border-radius:3px}
.chip:hover{background:var(--paille)}
.chip[aria-pressed="true"]{background:var(--feuille);color:#fff;border-color:var(--feuille);border-left-color:var(--c,var(--ocre))}
.dir-count{margin:14px 0 0;font-weight:700;color:var(--feuille)}
.dir-empty{margin:12px 0 0;padding:12px 14px;background:#fff3d6;border-left:5px solid var(--ocre)}
.linkbtn{font:inherit;background:none;border:0;padding:0;color:var(--feuille);text-decoration:underline;cursor:pointer;font-weight:700}
.js .favs{display:block;margin:0 0 28px}
.js .favs[hidden]{display:none!important}
.sites li{position:relative}
.sites .site{padding-right:74px}
.sites .site i{right:46px}
.fav{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:38px;height:38px;align-items:center;justify-content:center;font-size:1.35rem;line-height:1;background:transparent;border:0;border-radius:50%;color:var(--ocre);cursor:pointer}
.fav:hover{background:var(--paille)}
.fav[aria-pressed="true"]{color:var(--brique)}

/* Guides */
.guides{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}
.guides li{display:flex}
.guide-card{display:grid;grid-template-columns:44px 1fr;gap:4px 14px;width:100%;padding:16px 18px;background:var(--lin);border:1px solid var(--trait);border-top:5px solid var(--c);text-decoration:none;color:var(--terre);transition:transform .15s}
.guide-card:hover{transform:translateY(-3px);color:var(--terre)}
.guide-card i{grid-row:1 / span 2;font-style:normal;font-size:1.7rem}
.guide-card b{font-family:var(--serif);font-size:1.08rem;line-height:1.25}
.guide-card span{color:var(--sol);font-size:.88rem}
.guide h3{font-size:1.15rem;margin:22px 0 8px}
.guide p{max-width:68ch}
.check{list-style:none;margin:0 0 8px;padding:0}
.check li{position:relative;padding:8px 0 8px 34px;border-bottom:1px dotted var(--trait)}
.check li::before{content:"";position:absolute;left:4px;top:12px;width:16px;height:16px;border:2px solid var(--feuille);border-radius:3px;background:#fff}
.prose ul.cases{columns:1}
.prose h3{margin-top:20px}

/* Intégration et pages embed */
.embed-box label{display:block;font-weight:700;margin-bottom:6px}
.embed-box textarea{width:100%;font:.85rem/1.5 ui-monospace,Menlo,Consolas,monospace;padding:10px 12px;border:2px solid var(--sol);border-radius:3px;background:#fff;color:var(--terre);resize:vertical}
.embed-actions{margin:10px 0 0;display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.btn.small{padding:8px 16px;font:inherit;font-weight:700;cursor:pointer}
body.embed{background:#fff}
.embed-main{max-width:760px;margin:0 auto;padding:12px 12px 16px}
.embed-title{font-size:1.3rem;margin:4px 0 4px}
.embed-bench{padding:8px 0 0;grid-template-columns:minmax(0,1fr)}
.embed-bench .bench-out{position:static}
.embed-credit{margin:14px 0 0;font-size:.85rem;color:var(--sol);text-align:right}

/* Menu déroulant « Ressources » */
.mainnav{align-items:center}
.mainnav .dd{position:relative}
.mainnav .dd summary{list-style:none;cursor:pointer;font-weight:600;padding:6px 0;border-bottom:3px solid transparent;color:var(--terre)}
.mainnav .dd summary::-webkit-details-marker{display:none}
.mainnav .dd summary::after{content:"\25BE";margin-left:6px;font-size:.8em;color:var(--brique)}
.mainnav .dd summary:hover,.mainnav .dd[open] summary{border-bottom-color:var(--brique)}
.mainnav .dd ul{list-style:none;margin:0;padding:6px 0;position:absolute;left:0;top:100%;z-index:30;min-width:260px;background:var(--lin);border:2px solid var(--terre);box-shadow:5px 5px 0 var(--ocre)}
.mainnav .dd li a{display:block;padding:9px 16px;border:0;font-weight:600}
.mainnav .dd li a:hover{background:#fff;border:0}
@media (max-width:700px){.mainnav .dd ul{position:static;box-shadow:none;margin-top:4px;min-width:0}}
.related h3{margin:18px 0 10px;font-size:1.1rem}
