/* ============================================================
   Un Grand P'tit Tour — charte « Signature » (24/09/2026)
   Blanc, lumineux, propre : une seule couleur d'accent (bleu),
   Fraunces italique pour les grands titres, Libre Franklin pour
   le texte, JetBrains Mono pour les petits détails chiffrés.
   Les 4 couleurs de thème gardent leurs noms historiques
   (--forest/--ochre/--trail/--water) parce que site.json et les
   scripts s'y réfèrent : seules leurs valeurs ont changé.
   ============================================================ */

/* ---------- tokens ---------- */
:root{
  --paper:#ffffff;
  --paper-raised:#fbfaf7;
  --paper-sunken:#f3f1eb;
  --card:#ffffff;
  --ink:#141210;
  --ink-soft:#5c574c;
  --ink-faint:#857e6e;
  --line:#eae6db;
  --night:#121110;

  --accent:#2b4c8c;
  --accent-deep:#1e3665;
  --accent-tint:#e9edf6;
  --accent-ink:#ffffff;
  --amber:#b3862b;
  --amber-tint:#f6ecd6;

  /* couleurs de thème (patrimoine / spirituel / insolite / nature) */
  --forest:#7a5236;  --forest-deep:#5a3b26; --forest-tint:#f2e9e1;
  --ochre:#a5701e;   --ochre-tint:#f4ead6;
  --trail:#2b4c8c;   --trail-tint:#e9edf6;
  --water:#2e6d70;   --water-tint:#e0eeee;

  --warn:#8a5b12;
  --warn-tint:#f6ecd6;
  --shadow:rgba(20,18,16,.13);
  color-scheme:light;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --paper:#141210; --paper-raised:#1c1a17; --paper-sunken:#0f0e0c; --card:#1f1c18;
    --ink:#f2efe6; --ink-soft:#c2bbab; --ink-faint:#8f8878; --line:#302c26; --night:#0c0b0a;
    --accent:#8fa9dd; --accent-deep:#b9cbef; --accent-tint:#1d2638; --accent-ink:#0f1420;
    --amber:#d8b061; --amber-tint:#33291a;
    --forest:#d0a283; --forest-deep:#e6c4ad; --forest-tint:#33261d;
    --ochre:#dcab5f; --ochre-tint:#3a2f18;
    --trail:#8fa9dd; --trail-tint:#1d2638;
    --water:#7fbcbf; --water-tint:#1a3031;
    --warn:#e2b26a; --warn-tint:#3a2b14;
    --shadow:rgba(0,0,0,.45);
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --paper:#141210; --paper-raised:#1c1a17; --paper-sunken:#0f0e0c; --card:#1f1c18;
  --ink:#f2efe6; --ink-soft:#c2bbab; --ink-faint:#8f8878; --line:#302c26; --night:#0c0b0a;
  --accent:#8fa9dd; --accent-deep:#b9cbef; --accent-tint:#1d2638; --accent-ink:#0f1420;
  --amber:#d8b061; --amber-tint:#33291a;
  --forest:#d0a283; --forest-deep:#e6c4ad; --forest-tint:#33261d;
  --ochre:#dcab5f; --ochre-tint:#3a2f18;
  --trail:#8fa9dd; --trail-tint:#1d2638;
  --water:#7fbcbf; --water-tint:#1a3031;
  --warn:#e2b26a; --warn-tint:#3a2b14;
  --shadow:rgba(0,0,0,.45);
  color-scheme:dark;
}

/* ---------- base ---------- */
*{box-sizing:border-box;}
html,body{margin:0;}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:"Libre Franklin",system-ui,-apple-system,sans-serif;
  min-height:100vh;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,.display{font-family:"Libre Franklin",sans-serif;font-weight:800;text-wrap:balance;letter-spacing:-.01em;color:var(--ink);}
h1,.display{font-family:"Fraunces",Georgia,serif;font-style:italic;font-weight:400;}
.mono{font-family:"JetBrains Mono",ui-monospace,monospace;}
a{color:inherit;}
button{font:inherit;color:inherit;}
img{max-width:100%;}
::selection{background:var(--accent);color:var(--accent-ink);}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
.label{display:block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);margin-bottom:12px;}
.sec-title{font-family:"Libre Franklin",sans-serif;font-style:normal;font-weight:800;font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink);margin:0 0 14px;}
.sec-head-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;}
.sec-head-row a{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;text-decoration:none;color:var(--accent);}
.sec-lead{font-size:12.5px;color:var(--ink-soft);line-height:1.6;margin:0 0 12px;max-width:48ch;}
.sec-note{font-size:10.5px;color:var(--ink-faint);line-height:1.6;margin:12px 0 0;font-style:italic;}

/* ---------- app shell ---------- */
.app{position:relative;display:flex;flex-direction:column;min-height:100vh;max-width:560px;margin:0 auto;background:var(--paper);}
.views{flex:1;}
.view{padding-bottom:0;}
@media (min-width:560px){ .app{border-inline:1px solid var(--line);} }

/* barre du haut (pages sans grande photo) */
.topbar{
  position:sticky; top:0; z-index:40;
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  padding:calc(10px + env(safe-area-inset-top,0px)) 16px 10px;
  background:var(--paper); border-bottom:1px solid var(--line);
}
.brand-row{display:flex;align-items:center;gap:9px;min-width:0;text-decoration:none;color:var(--ink);}
.brand-logo{width:30px;height:30px;border-radius:50%;flex:none;object-fit:cover;border:1px solid var(--line);}
.masthead{font-family:"Libre Franklin",sans-serif;font-weight:800;font-size:15px;letter-spacing:-.01em;text-transform:uppercase;line-height:1;white-space:nowrap;}
.topbar-actions{display:flex;align-items:center;gap:8px;flex:none;}
.topbar-cta{background:var(--accent);color:var(--accent-ink);font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:9px 14px;border-radius:30px;text-decoration:none;}
.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;border:1px solid var(--line);background:var(--paper);cursor:pointer;flex:none;}
.icon-btn svg{width:17px;height:17px;stroke:var(--ink);}
.icon-btn.on-photo{background:rgba(18,17,16,.35);border-color:rgba(255,255,255,.35);backdrop-filter:blur(4px);}
.icon-btn.on-photo svg{stroke:#fff;}

/* Menu bureau du bandeau du haut (accueil/carte/classement/contribuer/bord) —
   cette barre n'existe qu'à partir de 900px (voir la media query bureau plus
   bas) ; en dessous, la tabbar du bas reste la seule navigation, inchangée. */
.topbar-nav,.hero-nav-links{display:none;}

.status-banner{display:flex;align-items:flex-start;gap:8px;margin:10px 16px;padding:10px 12px;background:var(--warn-tint);border:1px solid var(--warn);border-radius:10px;font-size:12.5px;color:var(--ink);}
.status-banner svg{width:16px;height:16px;flex:none;stroke:var(--warn);margin-top:1px;}
.status-banner[hidden]{display:none;}

/* barre d'onglets */
.tabbar{
  position:sticky; bottom:0; z-index:50; display:flex;
  border-top:1px solid var(--line); background:var(--paper);
  padding:6px 4px calc(6px + env(safe-area-inset-bottom,0px));
}
.tab-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 2px;background:none;border:none;cursor:pointer;color:var(--ink-faint);border-radius:10px;text-decoration:none;position:relative;}
.tab-btn svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.6;}
.tab-btn span{font-size:10px;letter-spacing:.01em;}
.tab-btn.active{color:var(--ink);}
.tab-btn.active span{font-weight:700;}
.tab-btn.active::before{content:"";position:absolute;top:-7px;left:30%;right:30%;height:2px;border-radius:2px;background:var(--accent);}

/* ---------- navigation posée sur la photo (accueil, fiches) ---------- */
.hero-topper{
  position:absolute; z-index:3; top:0; left:0; right:0;
  display:flex; gap:14px; align-items:center; overflow-x:auto; white-space:nowrap; scrollbar-width:none;
  padding:calc(14px + env(safe-area-inset-top,0px)) 18px 0;
  font-size:8.5px; font-weight:700; text-transform:uppercase; letter-spacing:.09em; color:rgba(255,255,255,.62);
}
.hero-topper::-webkit-scrollbar{display:none;}
.hero-topper a{color:rgba(255,255,255,.72);text-decoration:none;flex:none;}
.hero-topper a.now{color:#b9cbef;}
.hero-topper span{flex:none;}
.hero-topper .sep{color:rgba(255,255,255,.35);}
.hero-nav{
  position:absolute; z-index:3; left:0; right:0; top:calc(36px + env(safe-area-inset-top,0px));
  display:flex; align-items:center; justify-content:space-between; gap:8px; padding:0 16px;
}
.hero-brand{display:flex;align-items:center;gap:9px;text-decoration:none;color:#fff;min-width:0;}
.hero-brand .brand-logo{border-color:rgba(255,255,255,.65);box-shadow:0 1px 8px rgba(0,0,0,.35);}
.hero-brand .masthead{color:#fff;text-shadow:0 1px 10px rgba(0,0,0,.35);overflow:hidden;text-overflow:ellipsis;}
.hero-back{display:inline-flex;}
.hero-back svg{width:18px;height:18px;stroke:#fff;}
.hero-nav-actions{display:flex;align-items:center;gap:8px;flex:none;}
.hero-cta{background:#fff;color:#141210;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:9px 15px;border-radius:30px;text-decoration:none;}
.hero-vert{position:absolute;z-index:3;left:0;top:120px;bottom:70px;width:22px;display:flex;align-items:flex-end;justify-content:center;pointer-events:none;}
.hero-vert span{writing-mode:vertical-rl;transform:rotate(180deg);font-family:"JetBrains Mono",monospace;font-size:8.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.55);white-space:nowrap;}

/* ---------- accueil ---------- */
.home-hero{position:relative;height:74vh;min-height:540px;max-height:660px;overflow:hidden;background:var(--night);color:#fff;}
.home-hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 42%;}
.home-hero::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg, rgba(18,17,16,.42) 0%, rgba(18,17,16,0) 26%, rgba(18,17,16,0) 56%, rgba(18,17,16,.84) 100%);}
.home-hero-title{position:absolute;z-index:3;left:24px;right:24px;top:20%;text-align:center;}
.hero-eyebrow{display:block;font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:rgba(255,255,255,.88);margin-bottom:12px;text-shadow:0 1px 8px rgba(0,0,0,.35);}
.home-hero-title h1{font-family:"Fraunces",Georgia,serif;font-style:italic;font-weight:340;color:#fff;font-size:44px;line-height:1.05;letter-spacing:-.015em;margin:0;text-shadow:0 2px 18px rgba(0,0,0,.3);}
.home-hero-title h1 .w-grand{display:inline-block;font-style:normal;font-weight:900;font-size:1.06em;letter-spacing:.01em;}
.home-hero-title h1 .w-ptit{display:inline-block;font-size:.8em;}
.home-hero-foot{position:absolute;z-index:3;left:30px;right:24px;bottom:62px;}
.home-hero-foot p{color:#ece8df;font-size:12.5px;line-height:1.55;margin:0 0 12px;max-width:30ch;text-shadow:0 1px 8px rgba(0,0,0,.5);}
.home-hero-foot a{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#fff;text-decoration:none;border-bottom:1.5px solid rgba(255,255,255,.6);padding-bottom:3px;}

.home-search{position:relative;z-index:4;margin:-40px 16px 0;background:var(--card);border-radius:16px;box-shadow:0 16px 34px var(--shadow);padding:15px 16px 13px;border:1px solid var(--line);}
.home-search label{display:block;font-size:8.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint);font-weight:700;margin-bottom:4px;}
.s-row1{padding-bottom:11px;border-bottom:1px solid var(--line);margin-bottom:11px;}
.s-row1 input{border:none;background:none;font:inherit;font-size:15px;font-weight:700;color:var(--ink);padding:0;width:100%;}
.s-row1 input::placeholder{color:var(--ink-faint);opacity:.7;}
.s-row1 input:focus{outline:none;}
.s-row2{display:flex;align-items:flex-end;gap:10px;}
.s-f{flex:1;min-width:0;}
.s-f select{border:none;background:none;font:inherit;font-size:13px;font-weight:700;color:var(--ink);padding:0;width:100%;}
.s-btn{flex:none;background:var(--accent);color:var(--accent-ink);border:none;border-radius:10px;padding:12px 18px;font-weight:700;font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;cursor:pointer;}

.facts{display:flex;margin:26px 16px 0;}
.fact{flex:1;text-align:center;padding:0 6px;border-left:1px solid var(--line);}
.fact:first-child{border-left:none;}
.fact svg{display:block;width:18px;height:18px;margin:0 auto 6px;stroke:var(--accent);stroke-linecap:round;stroke-linejoin:round;}
.fact b{display:block;font-size:12.5px;font-weight:800;}
.fact span{display:block;font-size:8.5px;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.04em;margin-top:2px;font-weight:600;}

.home-mission{padding:44px 20px 0;}
.home-mission blockquote{margin:0 0 16px;font-family:"Fraunces",Georgia,serif;font-style:italic;font-weight:400;font-size:22px;line-height:1.3;color:var(--accent-deep);border-left:3px solid var(--accent);padding-left:16px;text-wrap:balance;}
.home-mission p{font-size:13px;line-height:1.75;color:var(--ink-soft);margin:0;max-width:60ch;}

.home-band{position:relative;margin:44px 0 0;aspect-ratio:4/3;overflow:hidden;max-width:100%;background:var(--night);}
.home-band img{width:100%;height:100%;object-fit:cover;display:block;}
.home-band::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg, rgba(18,17,16,0) 55%, rgba(18,17,16,.6) 100%);}
.home-band figcaption{position:absolute;z-index:2;left:20px;right:20px;bottom:16px;display:flex;justify-content:space-between;align-items:flex-end;gap:12px;}
.home-band figcaption b{font-family:"Fraunces",Georgia,serif;font-style:italic;font-weight:400;font-size:20px;color:#fff;line-height:1.15;max-width:14ch;}
.home-band figcaption span{font-family:"JetBrains Mono",monospace;font-size:8.5px;color:rgba(255,255,255,.75);white-space:nowrap;}

.home-steps{padding:44px 20px 0;}
.step{display:flex;gap:18px;padding:18px 0;border-top:1px solid var(--line);}
.step-n{font-family:"Fraunces",Georgia,serif;font-weight:600;font-size:30px;color:var(--ink-faint);width:48px;flex:none;line-height:1;}
.step h3{font-size:14px;font-weight:800;margin:0 0 5px;}
.step p{font-size:12.5px;color:var(--ink-soft);line-height:1.55;margin:0;max-width:40ch;}

.home-pick{padding:44px 20px 0;}
.pick-img{display:block;border-radius:50% 50% 0 0 / 24% 24% 0 0;overflow:hidden;aspect-ratio:4/4.6;max-width:100%;background:var(--paper-sunken);}
.pick-img img{width:100%;height:100%;object-fit:cover;display:block;}
.pick-img svg{width:64px;height:64px;margin:40% auto 0;display:block;}
.pick-body{padding-top:16px;}
.pick-body h3{font-family:"Fraunces",Georgia,serif;font-style:normal;font-weight:500;font-size:22px;margin:8px 0 8px;}
.pick-body h3 a{text-decoration:none;}
.pick-body blockquote{margin:0 0 10px;font-family:"Fraunces",Georgia,serif;font-style:italic;font-size:14.5px;line-height:1.45;color:var(--accent-deep);}
.pick-body p{font-size:12.5px;color:var(--ink-soft);line-height:1.65;margin:0 0 14px;max-width:46ch;}
.meta-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding-top:12px;border-top:1px solid var(--line);}
.meta-row .m{font-size:10px;color:var(--ink-faint);}
.meta-row a{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;text-decoration:none;white-space:nowrap;}

.home-places{padding:44px 20px 0;}
.p-card{display:flex;gap:12px;align-items:center;padding:12px 0;border-top:1px solid var(--line);text-decoration:none;color:var(--ink);}
.p-card > img,.p-card .p-glyph{width:64px;height:64px;object-fit:cover;border-radius:8px;flex:none;background:var(--paper-sunken);display:flex;align-items:center;justify-content:center;}
.p-card .p-glyph svg{width:28px;height:28px;}
.p-card-body{flex:1;min-width:0;}
.p-card-body .tag{display:block;margin-bottom:3px;}
.p-card h4{font-size:13.5px;font-weight:800;margin:0 0 4px;line-height:1.25;}
.p-meta{font-size:10.5px;color:var(--ink-faint);}
.p-card > svg{width:16px;height:16px;flex:none;margin-left:auto;color:var(--ink-faint);}

.home-map{padding:44px 20px 0;}
.home-map .chip-row{margin:0 -20px;padding:4px 20px 10px;}
.home-real-map{height:400px;border-radius:14px;border:1px solid var(--line);overflow:hidden;}
.home-map .map-legend{padding:12px 0 0;border-bottom:none;}

/* ---------- en-têtes de page (carte, classement, formulaires…) ---------- */
.section-head{padding:26px 20px 10px;}
.section-head h1,.section-head h2{font-family:"Fraunces",Georgia,serif;font-style:italic;font-weight:400;font-size:30px;line-height:1.1;margin:0 0 8px;padding:0;border:none;}
.section-head h2{font-size:24px;}
.section-head p{margin:0;color:var(--ink-soft);font-size:13px;line-height:1.6;max-width:52ch;}
.eyebrow{font-size:9.5px;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-faint);font-weight:700;}

/* ---------- filtre région / département (deux menus déroulants liés) ---------- */
.region-dept-filter{display:flex;gap:10px;padding:8px 20px 12px;flex-wrap:wrap;}
.rd-field{flex:1;min-width:140px;}
.rd-field label{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint);font-weight:700;margin-bottom:4px;}
.rd-select{width:100%;border:1px solid var(--line);border-radius:10px;background:var(--card);padding:9px 10px;font:inherit;font-size:12.5px;font-weight:600;color:var(--ink);}
.rd-select:disabled{opacity:.5;cursor:not-allowed;}
.rd-select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-tint);}

/* ---------- chips ---------- */
.chip-row{display:flex;gap:7px;overflow-x:auto;padding:8px 20px;scrollbar-width:none;}
.chip-row::-webkit-scrollbar{display:none;}
.chip-row[hidden]{display:none;}
.sub-chip-row{padding-top:2px;}
.chip{flex:none;padding:7px 13px;border-radius:999px;border:1px solid var(--line);background:var(--paper);font-size:11px;font-weight:600;color:var(--ink-soft);cursor:pointer;white-space:nowrap;}
.chip.active{background:var(--ink);border-color:var(--ink);color:var(--paper);}

/* ---------- carte (page /carte/) ---------- */
.map-view{padding:0;}
#mapEl{width:100%;background:var(--paper-sunken);}
.real-map{height:min(62vh,460px);background:var(--paper-sunken);position:relative;z-index:0;}
.real-map.compact{height:min(40vh,340px);border-radius:14px;margin:0 20px 4px;width:calc(100% - 40px);overflow:hidden;border:1px solid var(--line);}
.map-view #mapEl{border-bottom:1px solid var(--line);}
.map-legend{display:flex;flex-wrap:wrap;gap:8px 16px;padding:12px 20px;border-bottom:1px solid var(--line);font-size:10.5px;color:var(--ink-soft);font-weight:600;}
.map-legend .dot{width:9px;height:9px;border-radius:50%;display:inline-block;margin-right:6px;vertical-align:-1px;}
.map-fallback{display:flex;align-items:center;justify-content:center;height:100%;padding:20px;text-align:center;font-size:12px;color:var(--ink-faint);}
.leaflet-tile-pane img{filter:saturate(.92);}
:root[data-theme="dark"] .leaflet-tile-pane img{filter:saturate(.85) brightness(.85) contrast(1.05);}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) .leaflet-tile-pane img{filter:saturate(.85) brightness(.85) contrast(1.05);} }

/* ---------- listes de lieux (carte, classement) ---------- */
.rank-list,.fiche-list{display:flex;flex-direction:column;margin:6px 20px 8px;border-top:1px solid var(--line);}
.rank-card,.fiche-card{display:flex;gap:12px;align-items:center;background:none;border:none;border-bottom:1px solid var(--line);border-radius:0;padding:12px 0;cursor:pointer;text-align:left;text-decoration:none;color:var(--ink);}
.rank-num{font-family:"Fraunces",Georgia,serif;font-size:22px;font-weight:600;color:var(--ink-faint);width:30px;flex:none;text-align:left;}
.card-glyph{width:64px;height:64px;border-radius:8px;flex:none;display:flex;align-items:center;justify-content:center;background:var(--paper-sunken);overflow:hidden;}
.card-glyph svg{width:28px;height:28px;fill:none;stroke-width:1.5;}
.card-glyph img{width:100%;height:100%;object-fit:cover;display:block;}
.card-body{flex:1;min-width:0;}
.card-body h3{font-size:14px;margin:3px 0 4px;line-height:1.25;}
.card-tags{display:flex;gap:4px 10px;flex-wrap:wrap;}
.card-status{margin-top:2px;}
.tag{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--accent);background:none;padding:0;border-radius:0;}
.tag.region{color:var(--ink-faint);font-weight:600;}
.tag.theme-patrimoine{color:var(--forest);}
.tag.theme-spirituel{color:var(--ochre);}
.tag.theme-insolite{color:var(--trail);}
.tag.theme-nature{color:var(--water);}
.tag.reco-tag{color:var(--ochre);}
.card-votes{flex:none;display:flex;flex-direction:column;align-items:center;gap:2px;font-family:"JetBrains Mono",monospace;font-size:12px;color:var(--ink-soft);font-weight:600;}
.card-votes svg{width:15px;height:15px;stroke:var(--accent);fill:none;stroke-width:1.6;}
.badge{display:inline-flex;align-items:center;gap:6px;font-size:10.5px;font-weight:600;color:var(--ink-soft);}
.badge i{width:6px;height:6px;border-radius:50%;flex:none;background:var(--amber);}
.badge.verified i{background:var(--accent);}
.badge.reserve i{background:var(--water);}
.empty-note{padding:20px 16px;color:var(--ink-faint);font-size:13px;text-align:center;}

/* ---------- fiche ---------- */
.detail{background:var(--paper);display:flex;flex-direction:column;}
.fiche-hero{position:relative;height:62vh;min-height:420px;max-height:560px;overflow:hidden;background:var(--night);color:#fff;}
.fiche-hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.fiche-hero::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg, rgba(18,17,16,.45) 0%, rgba(18,17,16,.05) 24%, rgba(18,17,16,.1) 55%, rgba(18,17,16,.88) 100%);}
.fiche-hero-glyph{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,#2a2520,#121110);}
.fiche-hero-glyph svg{width:84px;height:84px;opacity:.6;}
.hero-status{position:absolute;z-index:4;right:20px;top:calc(82px + env(safe-area-inset-top,0px));display:flex;align-items:center;gap:6px;background:rgba(18,17,16,.55);backdrop-filter:blur(6px);padding:7px 12px 7px 9px;border-radius:20px;}
.hero-status i{width:6px;height:6px;border-radius:50%;background:#e0a840;flex:none;}
.hero-status.ok i{background:#8fb0ff;}
.hero-status.reserve i{background:#6fc2c5;}
.hero-status span{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#f3e6c6;}
.hero-status.ok span{color:#dfe7fb;}
.hero-status.reserve span{color:#d3f0f0;}
.fiche-hero-text{position:absolute;z-index:3;left:26px;right:20px;bottom:44px;}
.hero-tags{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.06em;font-weight:700;color:#b9cbef;margin-bottom:10px;text-shadow:0 1px 6px rgba(0,0,0,.5);}
.fiche-hero-text h1{font-family:"Fraunces",Georgia,serif;font-style:italic;font-weight:340;color:#fff;font-size:32px;line-height:1.06;letter-spacing:-.01em;margin:0;text-shadow:0 2px 14px rgba(0,0,0,.5);}
.photo-credit{position:absolute;z-index:3;right:16px;bottom:12px;font-family:"JetBrains Mono",monospace;color:rgba(255,255,255,.7);font-size:8.5px;letter-spacing:.04em;}

.info-row{position:relative;z-index:4;display:flex;margin:-26px 16px 0;background:var(--card);border-radius:14px;box-shadow:0 14px 30px var(--shadow);border:1px solid var(--line);padding:16px 6px;}
.info-item{flex:1;min-width:0;text-align:center;padding:0 6px;border-left:1px solid var(--line);}
.info-item:first-child{border-left:none;}
.info-item svg{display:block;width:18px;height:18px;margin:0 auto 6px;stroke:var(--accent);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.info-item b{display:block;font-size:12px;font-weight:800;line-height:1.25;}
.info-item span{display:block;font-size:8.5px;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.04em;margin-top:3px;font-weight:600;}

.detail-body{padding:28px 20px 0;}
.detail-summary{font-family:"Fraunces",Georgia,serif;font-size:17px;line-height:1.5;color:var(--ink);margin:0 0 10px;}
.account-credit{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--ink-faint);text-decoration:none;margin:0 0 18px;}
.account-credit svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:1.6;}
.account-credit:hover{color:var(--accent);}
.detail-text p{font-size:14px;line-height:1.78;margin:0 0 14px;color:var(--ink-soft);max-width:62ch;}
.fiche-pullquote{font-family:"Fraunces",Georgia,serif;font-style:italic;font-weight:400;font-size:20px;line-height:1.35;color:var(--accent-deep);border-left:3px solid var(--accent);margin:22px 0 24px;padding:2px 0 2px 16px;text-wrap:balance;}
.draft-note{background:var(--amber-tint);border-left:3px solid var(--amber);border-radius:0 10px 10px 0;padding:12px 14px;font-size:12.5px;line-height:1.55;color:var(--ink);margin:0 0 20px;}
.draft-note b{color:var(--warn);}
.draft-note.reserve{background:var(--water-tint);border-left-color:var(--water);}
.draft-note.reserve b{color:var(--water);}
.fiche-verdict{background:var(--accent-tint);border-radius:12px;padding:16px;margin:8px 0 0;}
.fiche-verdict .kicker{font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);font-weight:700;margin-bottom:8px;}
.fiche-verdict p{font-family:"Fraunces",Georgia,serif;font-style:italic;font-size:15px;line-height:1.55;color:var(--accent-deep);margin:0 0 8px;}
.fiche-verdict .sig{font-size:11px;color:var(--ink-soft);}

.fiche-sec{padding:38px 20px 0;}
.gallery-block{display:flex;flex-direction:column;gap:10px;}
.gallery-block figure{margin:0;}
.gallery-block img{width:100%;object-fit:cover;border-radius:6px;display:block;background:var(--paper-sunken);}
.gallery-block figcaption{font-size:10.5px;color:var(--ink-faint);margin-top:6px;line-height:1.5;}
.gallery-duo{display:flex;gap:10px;}
.gallery-duo figure{flex:1;min-width:0;}
.gallery-duo img{height:160px;}
.gallery-tall img{height:260px;}
.gallery-wide img{height:200px;}
.gallery-small{width:72%;margin:0 auto;}
.gallery-small img{height:150px;}
.gallery-trio{display:flex;gap:8px;}
.gallery-trio .t1{flex:2;min-width:0;} .gallery-trio .t2,.gallery-trio .t3{flex:1;min-width:0;}
.gallery-trio img{height:120px;}

.p-table{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--card);}
.p-row{display:flex;gap:12px;padding:12px 14px;border-top:1px solid var(--line);}
.p-row:first-child{border-top:none;}
.p-row .k{flex:none;width:118px;font-size:9.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint);font-weight:700;padding-top:2px;}
.p-row .v{font-size:12.5px;color:var(--ink);font-weight:600;line-height:1.45;min-width:0;overflow-wrap:anywhere;}
.p-cta{display:flex;gap:10px;margin-top:16px;flex-wrap:wrap;}
.p-cta > a{flex:1 1 140px;text-align:center;}
.fiche-map{height:300px;border-radius:14px;border:1px solid var(--line);overflow:hidden;}
.situ-dist{display:flex;margin-top:16px;}
.situ-dist div{flex:1;min-width:0;text-align:center;border-left:1px solid var(--line);padding:0 4px;}
.situ-dist div:first-child{border-left:none;}
.situ-dist b{display:block;font-family:"Fraunces",Georgia,serif;font-weight:600;font-size:19px;line-height:1.1;}
.situ-dist span{display:block;font-size:8.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint);font-weight:700;margin-top:4px;}
.pin-main{display:block;width:30px;height:30px;border-radius:50%;background:var(--accent);border:4px solid #fff;box-shadow:0 0 0 8px rgba(43,76,140,.18),0 4px 12px rgba(20,18,16,.35);}
.pin-main.draft{background:var(--amber);box-shadow:0 0 0 8px rgba(179,134,43,.2),0 4px 12px rgba(20,18,16,.35);}
.pin-main.reserve{background:var(--water);box-shadow:0 0 0 8px rgba(46,109,112,.2),0 4px 12px rgba(20,18,16,.35);}
.sources{margin:0;padding:0;list-style:none;}
.sources li{font-size:12.5px;padding:8px 0;border-top:1px solid var(--line);}
.sources li:first-child{border-top:none;}
.sources a{color:var(--accent);text-decoration:none;font-weight:600;}

.action-row{display:flex;gap:8px;align-items:center;margin:38px 20px 0;padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.vote-btn{display:flex;align-items:center;gap:6px;padding:9px 15px;border-radius:999px;border:1.5px solid var(--accent);background:var(--paper);color:var(--accent);font-weight:700;font-size:12px;cursor:pointer;}
.vote-btn svg{width:16px;height:16px;stroke:var(--accent);fill:none;stroke-width:1.6;}
.vote-btn.voted{background:var(--accent);color:var(--accent-ink);}
.vote-btn.voted svg{stroke:var(--accent-ink);fill:var(--accent-ink);}
.vote-btn:disabled{opacity:.5;cursor:not-allowed;}
.vote-count{font-family:"JetBrains Mono",monospace;font-size:11.5px;color:var(--ink-soft);}
.share-row{display:flex;gap:8px;margin-left:auto;}
.share-btn{width:36px;height:36px;border-radius:50%;border:1px solid var(--line);background:var(--paper);display:flex;align-items:center;justify-content:center;cursor:pointer;}
.share-btn svg{width:15px;height:15px;stroke:var(--ink-soft);fill:none;}

.block{padding:20px;border-bottom:1px solid var(--line);}
.block h2{font-family:"Libre Franklin",sans-serif;font-style:normal;font-weight:800;font-size:13px;text-transform:uppercase;letter-spacing:.04em;margin:0 0 14px;}
.reco-scroll{display:flex;gap:12px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none;}
.reco-scroll::-webkit-scrollbar{display:none;}
.reco-card{flex:none;width:150px;cursor:pointer;}
.reco-card .card-glyph{width:150px;height:110px;margin-bottom:8px;border-radius:6px;}
.reco-card h4{font-size:12.5px;font-weight:800;margin:0;line-height:1.3;}

.comment-item{padding:12px 0;border-bottom:1px solid var(--line);}
.comment-item:last-child{border-bottom:none;}
.comment-head{display:flex;justify-content:space-between;font-size:11.5px;color:var(--ink-faint);margin-bottom:4px;}
.comment-head b{color:var(--ink);font-weight:700;}
.comment-text{font-size:13.5px;line-height:1.55;color:var(--ink-soft);}
.comment-form{display:flex;flex-direction:column;gap:8px;margin-top:12px;}

/* ---------- boutons & formulaires ---------- */
.btn-primary,.btn-ghost{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  padding:12px 18px;border-radius:999px;font-weight:700;font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;
  cursor:pointer;text-decoration:none;line-height:1.2;
}
.btn-primary{align-self:flex-start;border:none;background:var(--accent);color:var(--accent-ink);}
.btn-primary:disabled{opacity:.45;cursor:not-allowed;}
.btn-ghost{border:1.5px solid var(--line);background:var(--paper);color:var(--ink);}
.btn-secondary{padding:10px 15px;border-radius:999px;border:1.5px solid var(--line);background:var(--paper);color:var(--ink);font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;cursor:pointer;}
.muted-note{font-size:12px;color:var(--ink-faint);line-height:1.5;}
.form-wrap{padding:8px 20px 24px;}
.field{display:flex;flex-direction:column;gap:5px;margin-bottom:14px;}
.field label{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint);}
.field .hint{font-size:11px;color:var(--ink-faint);font-weight:400;text-transform:none;letter-spacing:0;}
p.hint{font-size:11px;color:var(--ink-faint);}
.no-idea-hint{margin-top:8px;}
.no-idea-hint a{color:var(--accent);font-weight:600;text-decoration:none;}
.no-idea-hint a:hover{text-decoration:underline;}
.comment-form textarea,.comment-form input,.field input,.field textarea,.field select{
  width:100%;border:1px solid var(--line);border-radius:10px;background:var(--card);
  padding:11px 12px;font:inherit;font-size:14px;color:var(--ink);resize:vertical;
}
.field input:focus,.field textarea:focus,.field select:focus,.comment-form textarea:focus,.comment-form input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-tint);}

/* ---------- tableau de bord ---------- */
.dash-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:6px 20px 4px;}
.stat-tile{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px;}
.stat-tile .num{font-family:"Fraunces",Georgia,serif;font-size:26px;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums;}
.stat-tile .label{font-size:9.5px;color:var(--ink-faint);margin:4px 0 0;text-transform:uppercase;letter-spacing:.05em;font-weight:700;}
.ga-card{margin:14px 20px 0;padding:16px;background:var(--card);border:1px solid var(--line);border-radius:14px;}
.ga-card h3{font-size:13.5px;margin:0 0 6px;}
.ga-card p{font-size:12.5px;color:var(--ink-soft);line-height:1.55;margin:0 0 8px;}
.code-line{font-family:"JetBrains Mono",monospace;font-size:11px;background:var(--paper-sunken);padding:8px 10px;border-radius:8px;overflow-x:auto;white-space:pre;color:var(--ink-soft);}
.admin-panel{margin:16px 20px;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--card);}
.admin-panel h3{font-size:13px;margin:0 0 4px;display:flex;align-items:center;gap:6px;}
.admin-panel h3 svg{width:14px;height:14px;stroke:var(--ink-soft);}
.mod-item{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;padding:8px 0;border-bottom:1px solid var(--line);font-size:12.5px;}
.mod-item:last-child{border-bottom:none;}
.mod-actions{display:flex;gap:6px;flex:none;}
.mod-actions button{width:28px;height:28px;border-radius:50%;border:1px solid var(--line);background:var(--paper);cursor:pointer;display:flex;align-items:center;justify-content:center;}
.mod-actions button svg{width:13px;height:13px;stroke:var(--ink-soft);fill:none;}
.mod-actions .approve svg{stroke:var(--accent);}
.mod-actions .reject svg{stroke:#a83b2e;}
.photo-focus-fiche{padding:10px 0;border-bottom:1px solid var(--line);}
.photo-focus-fiche:last-child{border-bottom:none;}
.photo-focus-grid{display:flex;flex-direction:column;gap:8px;margin-top:8px;}
.photo-focus-item{display:flex;align-items:center;gap:10px;}
.photo-focus-item img{width:52px;height:52px;object-fit:cover;border-radius:8px;flex:none;border:1px solid var(--line);}
.photo-focus-item .grow{flex:1 1 auto;min-width:0;}
.photo-focus-select{width:100%;margin-top:3px;border:1px solid var(--line);border-radius:9px;background:var(--card);padding:6px 8px;font:inherit;font-size:12.5px;color:var(--ink);}
.stop-panel{margin-top:14px;padding-top:14px;border-top:1px solid var(--line);}
.stop-btn{width:100%;padding:12px;border-radius:12px;border:1.5px solid #a83b2e;background:#f7e3df;color:#8a2c21;font-weight:700;font-size:13px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;}
.stop-btn.active{background:#a83b2e;color:#fff;}
.stop-btn svg{width:16px;height:16px;stroke:currentColor;fill:none;}

/* ---------- toast ---------- */
.toast{position:fixed;left:50%;bottom:84px;transform:translateX(-50%) translateY(8px);background:var(--ink);color:var(--paper);font-size:12.5px;padding:10px 16px;border-radius:999px;z-index:60;opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease;white-space:nowrap;}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}

/* ---------- suivre + lettre ---------- */
.follow-row{display:flex;gap:10px;padding:44px 20px 0;}
.follow-row a{flex:1;display:flex;align-items:center;justify-content:center;gap:7px;padding:12px;border-radius:999px;border:1.5px solid var(--line);background:var(--paper);font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;text-decoration:none;color:var(--ink);}
.follow-row svg{width:15px;height:15px;stroke:var(--ink);fill:none;}
.newsletter-block{margin:20px 20px 0;padding:20px;background:var(--accent-tint);border-radius:14px;}
.newsletter-block h2{font-family:"Fraunces",Georgia,serif;font-style:italic;font-weight:400;font-size:22px;margin:0 0 6px;}
.newsletter-block p{font-size:12.5px;color:var(--ink-soft);margin:0 0 12px;line-height:1.55;}
.newsletter-form{display:flex;gap:8px;}
.newsletter-form input{flex:1;min-width:0;border:1px solid var(--line);border-radius:999px;background:var(--card);padding:11px 14px;font:inherit;font-size:14px;color:var(--ink);}
.newsletter-form button{white-space:nowrap;}
.newsletter-note{font-size:11px;color:var(--ink-faint);margin:8px 0 0;}

/* ---------- pages légales ---------- */
.legal-page{padding:26px 20px 10px;}
.legal-page h1{font-size:30px;margin:0 0 16px;}
.legal-page h2{font-family:"Libre Franklin",sans-serif;font-style:normal;font-size:14px;font-weight:800;margin:24px 0 8px;}
.legal-page p,.legal-page li{font-size:13.5px;line-height:1.7;color:var(--ink-soft);}
.legal-page ul{padding-left:20px;margin:0 0 12px;}
.legal-page a{color:var(--accent);text-decoration:underline;text-underline-offset:2px;}

/* ---------- pied de page sombre ---------- */
.site-footer{margin-top:52px;background:var(--night);color:#fff;padding:38px 20px 26px;}
.foot-brand{font-family:"Fraunces",Georgia,serif;font-style:italic;font-weight:400;font-size:20px;}
.foot-tag{font-size:11px;color:#a8a296;margin:8px 0 26px;max-width:32ch;line-height:1.55;}
.foot-cols{display:flex;flex-wrap:wrap;gap:18px 30px;margin-bottom:26px;}
.foot-col h5{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:#8a8479;font-weight:700;margin:0 0 12px;}
.foot-col a{display:block;font-size:12px;color:#e6e2d6;margin-bottom:10px;font-weight:500;text-decoration:none;}
.foot-col a:hover{color:#fff;text-decoration:underline;}
.foot-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;font-size:9.5px;color:#8a8479;padding-top:18px;border-top:1px solid #2a2621;}

/* ---------- bandeau cookies ---------- */
.cookie-banner{position:fixed;left:0;right:0;bottom:0;z-index:100;background:var(--paper);border-top:1px solid var(--line);padding:16px 16px calc(16px + env(safe-area-inset-bottom,0px));box-shadow:0 -6px 20px var(--shadow);}
.cookie-banner[hidden]{display:none;}
.cookie-banner-inner{max-width:560px;margin:0 auto;}
.cookie-banner p{font-size:12.5px;color:var(--ink-soft);margin:0 0 12px;line-height:1.55;}
.cookie-banner a{color:var(--accent);}
.cookie-actions{display:flex;gap:8px;}

/* ---------- Leaflet (complément de leaflet.css) ---------- */
.leaflet-container{background:var(--paper-sunken);font-family:"Libre Franklin",sans-serif;}
.leaflet-bar{box-shadow:0 2px 8px var(--shadow)!important;border-radius:10px!important;overflow:hidden;border:1px solid var(--line)!important;}
.leaflet-bar a{background:var(--card)!important;color:var(--ink)!important;border-bottom-color:var(--line)!important;}
.leaflet-popup-content-wrapper{border-radius:12px;background:var(--card);color:var(--ink);box-shadow:0 6px 20px var(--shadow);}
.leaflet-popup-tip{background:var(--card);}
.leaflet-popup-content{margin:12px 14px;font-size:12.5px;line-height:1.45;min-width:160px;}
.leaflet-popup-content b{font-family:"Libre Franklin",sans-serif;font-weight:800;font-size:13.5px;display:block;margin-bottom:4px;}
.popup-sum{display:block;color:var(--ink-soft);margin-bottom:8px;}
.popup-link{display:inline-block;color:var(--accent)!important;font-weight:800;font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;text-decoration:none;margin-top:4px;}
.leaflet-control-attribution{font-size:9px!important;}

/* ---------- itinéraire ---------- */
.itin-toggle-row{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px;}
.itin-toggle{padding:7px 13px;border-radius:999px;border:1px solid var(--line);background:var(--paper);color:var(--ink-soft);font-size:11px;font-weight:600;cursor:pointer;}
.itin-toggle.active{background:var(--ink);border-color:var(--ink);color:var(--paper);}
.itin-note{font-size:11.5px;color:var(--ink-faint);margin:-6px 0 12px;line-height:1.5;}
.itin-summary{margin:0 20px 14px;padding:12px 14px;border-radius:12px;background:var(--accent-tint);font-size:12.5px;color:var(--accent-deep);line-height:1.55;}
.itin-summary.warn{background:var(--warn-tint);color:var(--warn);}
.itin-client-note{margin:0 20px 14px;padding:12px 14px;border-radius:12px;border:1px dashed var(--line);background:var(--paper-sunken);font-size:12.5px;color:var(--ink-soft);line-height:1.55;}
.itin-client-note b{display:block;color:var(--ink);font-size:12.5px;margin-bottom:3px;}
.itin-day{margin:0 20px 14px;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--card);}
.itin-day-head{padding:11px 14px;background:var(--paper-sunken);display:flex;justify-content:space-between;align-items:center;font-size:12.5px;font-weight:800;}
.itin-day-head .muted{font-weight:500;color:var(--ink-faint);font-size:11px;}
.itin-stop{display:flex;gap:10px;align-items:flex-start;padding:11px 14px;border-top:1px solid var(--line);}
.itin-stop:first-of-type{border-top:none;}
.itin-stop-num{flex:none;width:24px;height:24px;border-radius:50%;background:var(--accent);color:var(--accent-ink);font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center;margin-top:1px;}
.itin-stop-body{flex:1;min-width:0;}
.itin-stop-body a{font-size:13.5px;font-weight:700;color:var(--ink);text-decoration:none;}
.itin-stop-body a:hover{color:var(--accent);}
.itin-stop-meta{font-size:11px;color:var(--ink-faint);margin-top:3px;}
.autocomplete-wrap{position:relative;}
.autocomplete-list{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:20;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 26px var(--shadow);max-height:240px;overflow-y:auto;}
.autocomplete-list[hidden]{display:none;}
.autocomplete-item{padding:11px 12px;font-size:13px;cursor:pointer;border-bottom:1px solid var(--line);}
.autocomplete-item:last-child{border-bottom:none;}
.autocomplete-item:hover{background:var(--paper-sunken);}
.autocomplete-empty{padding:10px 12px;font-size:12px;color:var(--ink-faint);}
.itin-proposal-list{display:flex;flex-direction:column;margin:8px 20px;border-top:1px solid var(--line);}
.itin-proposal-item{display:flex;gap:12px;align-items:center;padding:11px 0;border-bottom:1px solid var(--line);cursor:pointer;}
.itin-proposal-item input[type="checkbox"]{width:19px;height:19px;flex:none;accent-color:var(--accent);}
.itin-proposal-title{font-size:13.5px;font-weight:700;color:var(--ink);display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.itin-proposal-meta{display:block;font-size:11px;color:var(--ink-faint);margin-top:3px;}
.itin-status-pill{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:700;padding:4px 11px;border-radius:999px;}
.itin-status-pill.brouillon{background:var(--warn-tint);color:var(--warn);}
.itin-status-pill.validee{background:var(--accent-tint);color:var(--accent-deep);}
.itin-status-pill.rejetee{background:#f7e3df;color:#8a2c21;}
.itin-admin-item{border:1px solid var(--line);border-radius:12px;margin-bottom:12px;overflow:hidden;}
.itin-admin-head{padding:10px 12px;background:var(--paper-sunken);font-size:12.5px;}
.itin-admin-head b{display:block;font-size:13px;margin-bottom:2px;}
.itin-edit-stop{display:flex;gap:8px;align-items:center;padding:8px 12px;border-top:1px solid var(--line);font-size:12.5px;}
.itin-edit-stop .grow{flex:1;min-width:0;}
.itin-edit-ctrls{display:flex;gap:4px;flex:none;}
.itin-ctrl-btn{width:26px;height:26px;border-radius:50%;border:1px solid var(--line);background:var(--paper);cursor:pointer;display:flex;align-items:center;justify-content:center;}
.itin-ctrl-btn svg{width:12px;height:12px;stroke:var(--ink-soft);fill:none;}
.itin-admin-actions{display:flex;gap:8px;flex-wrap:wrap;padding:10px 12px;border-top:1px solid var(--line);}

/* ============================================================
   Mise en page « bureau » (24/09/2026) — au-delà de 900px de
   large uniquement. Rien ci-dessous ne s'applique au mobile :
   toutes les règles précédentes restent inchangées en dessous
   de ce seuil. Pour l'instant : accueil, classement, fiche.
   ============================================================ */
@media (min-width:900px){
  .app{max-width:1180px;border-inline:none;}

  /* La navigation passe par le bandeau du haut à cette largeur : la tabbar
     du bas (mobile) se masque, et le menu texte apparaît dans topbarHtml /
     heroNavHtml (voir build.js → navLinksHtml). */
  .tabbar{display:none;}
  .topbar{padding-left:24px;padding-right:24px;gap:24px;justify-content:flex-start;}
  .topbar-nav{display:flex;gap:22px;padding-left:8px;}
  .topbar-actions{margin-left:auto;}
  .topbar-nav a{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);text-decoration:none;padding:6px 0;border-bottom:2px solid transparent;}
  .topbar-nav a:hover{color:var(--ink);}
  .topbar-nav a.active{color:var(--ink);border-bottom-color:var(--accent);}
  .hero-nav-links{display:flex;gap:22px;margin-left:32px;}
  .hero-nav-links a{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:rgba(255,255,255,.78);text-decoration:none;padding:6px 0;border-bottom:2px solid transparent;text-shadow:0 1px 6px rgba(0,0,0,.4);}
  .hero-nav-links a:hover{color:#fff;}
  .hero-nav-links a.active{color:#fff;border-bottom-color:#fff;}
  .hero-nav{justify-content:flex-start;}
  .hero-nav-actions{margin-left:auto;}

  /* ---------- accueil ---------- */
  .home-view .home-hero{height:52vh;min-height:420px;max-height:520px;}
  .home-view .home-hero-title{top:24%;}
  .home-view .home-hero-title h1{font-size:60px;}
  .home-view .home-search{max-width:640px;margin:-44px auto 0;}
  .home-view .facts{max-width:640px;margin:26px auto 0;}
  .home-view .home-mission{max-width:920px;margin:52px auto 0;padding-left:40px;padding-right:40px;}
  .home-view .home-band{aspect-ratio:auto;height:400px;}
  .home-view .home-steps{display:grid;grid-template-columns:repeat(3,1fr);column-gap:36px;row-gap:8px;padding:52px 40px 0;}
  .home-view .home-steps > .label{grid-column:1 / -1;}
  .home-view .home-steps .step{border-top:none;padding:0;flex-direction:column;gap:12px;}
  .home-view .home-pick{display:grid;grid-template-columns:320px 1fr;gap:44px;align-items:center;padding:52px 40px 0;}
  .home-view .home-pick > .label{grid-column:1 / -1;}
  .home-view .home-pick .pick-body{padding-top:0;}
  .home-view .home-pick .pick-body p{max-width:60ch;}
  .home-view .home-places{padding:52px 40px 0;display:grid;grid-template-columns:1fr 1fr;column-gap:32px;}
  .home-view .home-places .sec-head-row{grid-column:1 / -1;}
  .home-view .home-map{padding:52px 40px 0;}
  .home-view .home-real-map{height:520px;}
  .home-view .follow-row,.home-view .newsletter-block{max-width:640px;margin-left:auto;margin-right:auto;}
  .home-view .newsletter-block{margin-top:20px;}

  /* ---------- classement ---------- */
  #rankList{column-count:2;column-gap:36px;}
  #rankList .rank-card{break-inside:avoid;}

  /* ---------- fiche ---------- */
  .detail{
    display:grid;
    grid-template-columns:minmax(0,1fr) 320px;
    column-gap:44px;
    grid-template-areas:
      "hero hero"
      "inforow inforow"
      "body practical"
      "gallery situ"
      "sources sources"
      "action action"
      "nearby nearby"
      "reco reco"
      "comments comments"
      "footer footer";
  }
  .detail > .fiche-hero{grid-area:hero;height:50vh;max-height:480px;}
  .detail .fiche-hero-text h1{font-size:44px;}
  .detail > .info-row{grid-area:inforow;max-width:640px;margin:-26px auto 0;}
  .detail > .detail-body{grid-area:body;padding-right:8px;}
  .detail > .fiche-gallery{grid-area:gallery;}
  .detail > .fiche-practical{grid-area:practical;}
  .detail > .fiche-situ{grid-area:situ;}
  .detail > .fiche-situ .fiche-map{height:240px;}
  .detail > .fiche-sources{grid-area:sources;}
  .detail > .action-row{grid-area:action;}
  .detail > .fiche-nearby{grid-area:nearby;}
  .detail > .fiche-reco{grid-area:reco;}
  .detail > .fiche-comments{grid-area:comments;}
  .detail > .site-footer{grid-area:footer;margin-top:38px;}

  /* ---------- carte ---------- */
  .map-view{
    display:grid;
    grid-template-columns:minmax(0,1fr) 380px;
    column-gap:32px;
    align-items:start;
    grid-template-areas:
      "filters filters"
      "map     head"
      "map     list"
      "legend  list";
  }
  .map-view .region-dept-filter{grid-area:filters;}
  .map-view #mapEl{grid-area:map;height:560px;}
  .map-view .map-legend{grid-area:legend;align-self:start;}
  .map-view .section-head{grid-area:head;}
  .map-view .fiche-list{grid-area:list;max-height:600px;overflow-y:auto;margin-top:0;}

  /* ---------- itinéraire ---------- */
  #itinStep1{max-width:560px;margin:0 auto;}
  #itinStep2:not([hidden]){
    display:grid;
    grid-template-columns:minmax(0,1fr) 380px;
    column-gap:32px;
    align-items:start;
    grid-template-areas:
      "head head"
      "map  proposals"
      "map  reco"
      "map  addform";
  }
  #itinStep2 > .section-head{grid-area:head;}
  #itinMap{grid-area:map;height:480px;width:auto;margin:0;}
  #itinProposals{grid-area:proposals;}
  #itinRecoBlock{grid-area:reco;}
  #itinStep2 > .form-wrap{grid-area:addform;}
  #itineraryResult{column-count:2;column-gap:32px;max-width:1100px;margin:0 auto;}
  #itineraryResult .itin-summary,#itineraryResult .itin-client-note{column-span:all;}
  #itineraryResult .itin-day{break-inside:avoid;}

  /* ---------- tableau de bord ---------- */
  #dashGrid{grid-template-columns:repeat(4,1fr);}
  #adminPanel:not([hidden]){
    display:grid;
    grid-template-columns:minmax(0,1fr) 300px;
    column-gap:32px;
    align-items:start;
  }
  #adminPanel > *{grid-column:1;}
  #adminPanel .stop-panel{
    grid-column:2;
    grid-row:1;
    position:sticky;
    top:16px;
    margin-top:0;
    padding:16px;
    border:1.5px solid #a83b2e;
    border-radius:14px;
    background:var(--card);
  }
}
