/* ──────────────────────────────────────────────────────────────────
   Routes Secondaires — Direction D · feuille de style partagée
   --------------------------------------------------------------------
   Palette pastel d'origine + accents bruns + typographie italique
   ────────────────────────────────────────────────────────────────── */

/* ═══ DESIGN TOKENS ═══ */
:root{
  --white:      #ffffff;
  --cream:      #fdf9f4;
  --cream-deep: #f5efe4;
  --salmon:     #ecddd0;
  --sand:       #d8c8b0;
  --sage-light: #d4e0cc;
  --sage:       #a8c0a0;
  --sage-deep:  #7a9070;
  --orange:     #e8b898;
  --orange-deep:#c87060;
  --ink:        #5a4e44;
  --ink-deep:   #3a342e;
  --ink-soft:   #7a6e64;
  --ink-faint:  #a08c78;
  --brown:      #7a4a2a;
  --brown-soft: #a87858;
  --rule:       #ede8e0;
  --rule-deep:  #dbd1bc;

  --ff-display: "Cormorant Garamond", Georgia, serif;
  --ff-body:    "Lora", Georgia, serif;
  --ff-ui:      "DM Sans", -apple-system, sans-serif;
  --ff-mono:    "DM Mono", monospace;
  --ff-hand:    "Caveat", cursive;
}

/* ═══ RESET ═══ */
*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ font-size:16px; scroll-behavior:smooth; }
body{
  background:var(--white);
  color:var(--ink);
  font-family:var(--ff-body);
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; }

/* ═══ NAVIGATION (commune) ═══ */
.nav{
  background:var(--white);
  border-bottom:1px solid var(--rule);
  padding:18px 48px;
  display:flex;
  align-items:center;
  position:sticky; top:0; z-index:100;
}
.nav-logo{
  display:flex; align-items:center; gap:14px;
  text-decoration:none; color:var(--ink-deep);
}
.nav-words{ display:flex; flex-direction:column; line-height:1; }
.nav-word{
  font-family:var(--ff-display);
  font-style:italic; font-weight:300;
  font-size:22px;
  letter-spacing:-0.005em;
}
.nav-word + .nav-word{ margin-top:-2px; }
.nav-links{
  margin-left:auto;
  display:flex; gap:32px; align-items:center;
}
.nav-links a{
  font-family:var(--ff-ui);
  font-size:10.5px;
  letter-spacing:0.22em;
  text-transform:uppercase;
  color:var(--ink-faint);
  text-decoration:none;
  transition:color .15s;
}
.nav-links a:hover,
.nav-links a.active{ color:var(--ink-deep); }
.nav-links a.cta{
  color:var(--orange-deep);
  padding-left:14px;
  border-left:1px solid var(--rule);
}

/* ═══ HERO ARTICLE ═══ */
.hero{
  position:relative;
  height:560px;
  overflow:hidden;
}
.hero-bg{
  position:absolute; inset:0;
  background-size:cover; background-position:center 50%;
}
.hero-bg.placeholder{
  background:linear-gradient(135deg, var(--salmon), var(--sand), var(--brown));
}
.hero-ov{
  position:absolute; inset:0;
  background:linear-gradient(to bottom, rgba(0,0,0,.1) 30%, rgba(58,52,46,.78));
}
.hero-cap{
  position:absolute; bottom:48px; left:64px; right:64px;
  color:var(--white); max-width:1120px; margin:0 auto;
}
.hero-kicker{
  font-family:var(--ff-ui);
  font-size:11px; letter-spacing:0.32em;
  text-transform:uppercase;
  color:rgba(255,255,255,.78);
  margin-bottom:18px;
}
.hero-title{
  font-family:var(--ff-display);
  font-style:italic; font-weight:300;
  font-size:96px;
  line-height:0.95;
  letter-spacing:-0.025em;
}
.hero-sub{
  font-family:var(--ff-body);
  font-style:italic; font-size:18px;
  color:rgba(255,255,255,.85);
  margin-top:22px;
  max-width:580px;
  line-height:1.65;
}
.hero-stamp{
  position:absolute; right:-12px; bottom:0;
  transform:rotate(-7deg);
}

/* ═══ LAYOUT ARTICLE (sommaire + contenu) ═══ */
.article{
  max-width:1180px;
  margin:0 auto;
  padding:48px 32px 80px;
  display:grid;
  grid-template-columns:160px 1fr;
  gap:36px;
  align-items:flex-start;
}
.article-content{ max-width:780px; }

/* ═══ SOMMAIRE FLOTTANT ═══ */
.toc{
  position:sticky;
  top:24px;
  align-self:flex-start;
  padding-top:10px;
  width:150px;
}
.toc-label{
  font-family:var(--ff-ui);
  font-size:8.5px; font-weight:500;
  letter-spacing:0.26em; text-transform:uppercase;
  color:var(--ink-faint);
  margin-bottom:10px;
  padding-bottom:6px;
  border-bottom:1px solid var(--rule);
}
.toc-progress{
  height:2px; background:var(--rule);
  margin-bottom:10px;
}
.toc-progress > div{
  height:2px; background:var(--brown);
  width:30%;
}
.toc ol{ list-style:none; padding:0; margin:0; }
.toc li{
  display:grid;
  grid-template-columns:18px 1fr;
  gap:4px;
  padding:4px 0;
  border-bottom:1px dotted var(--rule);
}
.toc li:last-child{ border-bottom:none; }
.toc-n{
  font-family:var(--ff-mono);
  font-size:8.5px;
  color:var(--ink-faint);
  padding-top:1px;
  line-height:1.3;
}
.toc-link{
  font-family:var(--ff-body);
  font-style:italic;
  font-size:11.5px;
  font-weight:400;
  color:var(--ink-soft);
  text-decoration:none;
  line-height:1.3;
  position:relative;
}
.toc-link:hover{ color:var(--brown); }
.toc-link.active{
  font-family:var(--ff-display);
  font-size:12px;
  font-weight:500;
  color:var(--ink-deep);
}
.toc-link.active::before{
  content:""; position:absolute;
  left:-10px; top:6px;
  width:4px; height:4px;
  border-radius:50%;
  background:var(--brown);
}
.toc-reading{
  margin-top:12px;
  padding:8px 10px;
  background:var(--cream);
  border:1px dashed var(--rule-deep);
}
.toc-reading-label{
  font-family:var(--ff-ui);
  font-size:8px;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:var(--ink-faint);
}
.toc-reading-value{
  font-family:var(--ff-display);
  font-style:italic;
  font-size:13px;
  color:var(--ink-deep);
  line-height:1.2;
  margin-top:1px;
}

/* ═══ TITRES SECTION & SOUS-TITRES ═══ */
.section-head{
  display:flex; align-items:center; gap:16px;
  padding-bottom:10px; margin-bottom:24px;
}
.section-head .n{
  font-family:var(--ff-mono);
  font-size:10px;
  color:var(--brown);
  letter-spacing:0.04em;
}
.section-head .left{
  font-family:var(--ff-ui);
  font-weight:500;
  font-size:10.5px;
  letter-spacing:0.32em;
  text-transform:uppercase;
  color:var(--ink-deep);
}
.section-head .rule{
  flex:1; height:1px;
  background:repeating-linear-gradient(90deg, var(--sand) 0 4px, transparent 4px 8px);
}
.section-head .right{
  font-family:var(--ff-display);
  font-style:italic;
  font-size:15px;
  color:var(--ink-soft);
}

.article-content > section{
  margin-top:72px;
  scroll-margin-top:32px;
}
.article-content > section:first-of-type{ margin-top:0; }

.day-h2{
  font-family:var(--ff-display);
  font-style:italic; font-weight:300;
  font-size:36px;
  line-height:1.05;
  margin:28px 0 18px;
  letter-spacing:-0.015em;
  color:var(--ink-deep);
}

.day-sub{
  font-family:var(--ff-display);
  font-style:italic; font-weight:400;
  font-size:30px;
  color:var(--ink-deep);
  line-height:1.1;
  margin:56px 0 18px;
  padding-top:28px;
  border-top:1px solid var(--rule);
  position:relative;
}
.day-sub::before{
  content:""; position:absolute;
  top:-1px; left:0;
  width:64px; height:2px;
  background:var(--brown);
}

.stop-title{
  font-family:var(--ff-ui);
  font-weight:500;
  font-size:11px;
  letter-spacing:0.22em;
  text-transform:uppercase;
  color:var(--brown);
  margin:32px 0 10px;
  padding-left:38px;
  position:relative;
}
.stop-title::before{
  content:""; position:absolute;
  left:0; top:50%;
  width:28px; height:1px;
  background:var(--brown);
}

/* ═══ CORPS DE TEXTE ═══ */
.article-content p{
  font-family:var(--ff-body);
  font-size:16px;
  color:var(--ink-soft);
  line-height:1.95;
  margin-bottom:14px;
  text-align:justify;
}
.article-content p strong{
  color:var(--ink-deep);
  font-weight:500;
  font-style:normal;
}
.article-content .drop-cap::first-letter{
  font-family:var(--ff-display);
  font-style:italic;
  font-weight:300;
  font-size:64px;
  float:left;
  line-height:0.78;
  margin:6px 8px 0 0;
  color:var(--sage-deep);
}

/* ═══ NOTES (sage / cream / orange / brown) ═══ */
.note{
  padding:14px 20px;
  margin:18px 0;
  border-left:4px solid var(--sage-deep);
  background:#f0f5ee;
}
.note-label{
  font-family:var(--ff-ui);
  font-size:9.5px; font-weight:500;
  letter-spacing:0.2em; text-transform:uppercase;
  color:var(--sage-deep);
  margin-bottom:4px;
}
.note p{
  font-family:var(--ff-body);
  font-style:italic;
  font-size:14px;
  color:var(--ink-soft);
  line-height:1.6;
  text-align:left;
  margin:0;
}
.note.cream{ border-left-color:var(--sand); background:var(--cream); }
.note.cream .note-label{ color:var(--ink-soft); }
.note.orange{ border-left-color:var(--orange-deep); background:#fdf5ee; }
.note.orange .note-label{ color:var(--orange-deep); }
.note.brown{ border-left-color:var(--brown); background:var(--cream); }
.note.brown .note-label{ color:var(--brown); }

/* ═══ STATS RANDO ═══ */
.rando-stats{
  background:var(--cream);
  border:1px solid var(--rule);
  padding:18px 22px;
  margin:18px 0;
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:14px;
  box-shadow:inset 0 0 0 1px rgba(110,80,40,.06);
}
.rando-stats .stat{ }
.rando-stats .label{
  font-family:var(--ff-ui);
  font-size:9px;
  font-weight:500;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:var(--ink-faint);
}
.rando-stats .value{
  font-family:var(--ff-display);
  font-style:italic;
  font-size:18px;
  color:var(--ink-deep);
  margin-top:2px;
  line-height:1.15;
}

/* ═══ COUP DE CŒUR ═══ */
.coup-coeur{
  width:calc(100% + 80px);
  margin:24px 0 24px -40px;
  background:var(--sage-deep);
  color:var(--cream);
  padding:24px 48px;
  border-radius:4px;
  position:relative;
  box-shadow:0 8px 24px rgba(110,140,90,.18);
}
.coup-coeur::before{
  content:"♥";
  position:absolute;
  top:-12px; left:24px;
  background:var(--sage-deep);
  color:var(--cream);
  width:36px; height:36px;
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-family:Georgia,serif;
  font-size:20px;
  box-shadow:0 3px 10px rgba(110,140,90,.3);
}
.coup-coeur-label{
  padding-left:24px;
  font-family:var(--ff-display);
  font-style:italic;
  font-weight:400;
  font-size:18px;
  color:var(--white);
  margin-bottom:6px;
}
.coup-coeur p{
  font-family:var(--ff-body);
  font-style:italic;
  font-size:14px;
  color:rgba(255,255,255,.92);
  line-height:1.7;
  margin:0;
}

/* ═══ PHOTOS ═══ */
.photo{
  margin:36px 0;
  transition:transform .25s ease;
}
.photo:hover{ transform:translateY(-2px); }
.photo .frame{
  width:100%;
  aspect-ratio:16/9;
  background:linear-gradient(135deg, var(--salmon), var(--sand), var(--brown));
  background-size:cover;
  background-position:center;
  border-radius:2px;
  box-shadow:0 6px 20px rgba(110,80,40,.14);
  position:relative;
  overflow:hidden;
  display:flex; align-items:flex-end;
  padding:14px 16px;
  color:rgba(255,255,255,0.95);
}
.photo .frame.r43{ aspect-ratio:4/3; }
.photo .frame.r34{ aspect-ratio:3/4; }
.photo .placeholder-label{
  font-family:var(--ff-ui);
  font-size:9.5px;
  letter-spacing:0.18em;
  text-transform:uppercase;
  opacity:0.85;
}
.photo .placeholder-note{
  font-family:var(--ff-body);
  font-style:italic;
  font-size:11px;
  opacity:0.75;
  margin-top:4px;
}
.photo img{
  width:100%; height:100%;
  object-fit:cover;
  display:block;
}
.photo figcaption,
.photo .cap{
  margin-top:10px;
  font-family:var(--ff-hand);
  font-weight:500;
  font-size:16px;
  color:var(--brown);
  text-align:center;
}
/* Photo verticale affichée en entier, centrée */
.photo.portrait .frame{
  aspect-ratio:auto;
  max-width:460px;
  margin:0 auto;
  background-size:cover;
}
.photo.whole .frame{
  background-size:contain !important;
  background-repeat:no-repeat;
  background-position:center;
  background-color:var(--cream-deep);
}
.photo-duo{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
  margin:36px 0;
}
.photo-duo .photo{ margin:0; }

/* ═══ ENCART ADRESSES PAR JOUR ═══ */
.day-addresses{
  background:var(--cream-deep);
  border:1px solid var(--rule-deep);
  border-top:3px solid var(--brown);
  padding:18px 22px 14px;
  margin:32px 0 40px;
  box-shadow:0 4px 14px rgba(110,80,40,.10);
  position:relative;
}
.day-addresses::before{
  content:"♥";
  position:absolute;
  top:-14px; right:24px;
  width:28px; height:28px;
  background:var(--brown);
  color:var(--cream);
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-family:Georgia,serif;
  font-size:14px;
}
.day-addresses-label{
  font-family:var(--ff-ui);
  font-size:9.5px;
  font-weight:500;
  letter-spacing:0.24em;
  text-transform:uppercase;
  color:var(--ink-faint);
  margin-bottom:10px;
}
.day-address{
  display:grid;
  grid-template-columns:40px 80px 1fr;
  align-items:flex-start;
  padding:8px 0;
  gap:12px;
  border-top:1px dotted var(--rule-deep);
}
.day-address:first-of-type{ border-top:none; }
.day-address:target{ background:var(--sage-light); animation:flashAddr 1.6s ease; scroll-margin-top:80px; }
@keyframes flashAddr{ 0%,40%{ background:var(--sage); } 100%{ background:transparent; } }
.article-content a[href^="#addr-"]{ color:var(--brown); text-decoration:none; border-bottom:1px solid var(--sand); }
.article-content a[href^="#addr-"]:hover{ border-bottom-color:var(--brown); }
.article-content a[href^="#addr-"] strong{ color:var(--brown); }
.day-address .stars{
  font-family:var(--ff-hand);
  font-weight:600;
  font-size:16px;
  color:var(--sage-deep);
  letter-spacing:0.05em;
  padding-top:2px;
}
.day-address .type{
  font-family:var(--ff-ui);
  font-size:9px;
  font-weight:500;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:var(--ink-faint);
  padding-top:4px;
}
.day-address .name{
  font-family:var(--ff-display);
  font-style:italic;
  font-weight:400;
  font-size:17px;
  color:var(--ink-deep);
  line-height:1.2;
}
.day-address .desc{
  font-family:var(--ff-body);
  font-style:italic;
  font-size:12.5px;
  color:var(--ink-soft);
  line-height:1.5;
  margin-top:2px;
}
.day-address .lnk{
  font-family:var(--ff-ui);
  font-size:9.5px;
  color:var(--brown);
  text-decoration:none;
  border-bottom:1px solid var(--sand);
  margin-top:4px;
  display:inline-block;
}

/* ═══ FACTS / SPECIFICITES / CUISINE ═══ */
.facts{
  margin-top:32px;
  border:1px solid var(--rule);
  background:var(--white);
}
.facts-header{
  background:var(--cream);
  padding:16px 22px;
  border-bottom:1px solid var(--rule);
  display:flex; align-items:baseline; gap:14px;
}
.facts-title{
  font-family:var(--ff-display);
  font-style:italic;
  font-weight:400;
  font-size:20px;
  color:var(--ink-deep);
}
.facts-sub{
  margin-left:auto;
  font-family:var(--ff-ui);
  font-size:10px;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:var(--ink-faint);
}
.facts-grid{
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:1px;
  background:var(--rule);
}
.facts-grid.col2{ grid-template-columns:1fr 1fr; }
.fact{
  background:var(--white);
  padding:16px 18px;
  display:flex; flex-direction:column;
  gap:8px;
  align-items:flex-start;
}
.fact-icon{
  width:40px; height:40px;
  background:var(--cream);
  border:1px solid var(--rule);
  display:flex; align-items:center; justify-content:center;
  border-radius:2px;
}
.fact-icon svg{ width:26px; height:26px; }
.fact-label{
  font-family:var(--ff-ui);
  font-size:9px;
  letter-spacing:0.2em;
  text-transform:uppercase;
  color:var(--ink-faint);
}
.fact-value{
  font-family:var(--ff-display);
  font-style:italic;
  font-size:17px;
  color:var(--ink-deep);
  line-height:1.2;
  letter-spacing:-0.005em;
  margin-top:3px;
}
.fact-note{
  font-family:var(--ff-body);
  font-style:italic;
  font-size:12px;
  color:var(--ink-soft);
  line-height:1.55;
}

/* ═══ LE SAVIEZ-VOUS ═══ */
.saviez{
  margin-top:32px;
  border:1px solid var(--rule);
  background:var(--white);
}
.saviez ol{ list-style:none; padding:0; margin:0; }
.saviez li{
  display:grid;
  grid-template-columns:46px 1fr;
  gap:14px;
  padding:14px 22px;
  border-bottom:1px solid var(--rule);
  align-items:flex-start;
}
.saviez li:last-child{ border-bottom:none; }
.saviez .num{
  font-family:var(--ff-display);
  font-style:italic;
  font-weight:400;
  font-size:30px;
  color:var(--brown);
  line-height:1;
  text-align:right;
}
.saviez p{
  font-family:var(--ff-body);
  font-style:italic;
  font-size:14px;
  color:var(--ink-soft);
  line-height:1.7;
  margin:0;
}

/* ═══ GAÉLIQUE ═══ */
.gaelic{
  margin-top:32px;
  border:1px solid var(--rule);
  background:var(--white);
}
.gaelic-grid{
  display:grid;
  grid-template-columns:1fr 1fr 1fr 1fr;
  gap:1px;
  background:var(--rule);
}
.gaelic-item{
  background:var(--white);
  padding:14px 16px;
  display:flex;
  flex-direction:column;
}
.gaelic-word{
  font-family:var(--ff-display);
  font-style:italic;
  font-weight:400;
  font-size:20px;
  color:var(--sage-deep);
  line-height:1.1;
  margin-bottom:4px;
  min-height:24px;
}
.gaelic-prono{
  font-family:var(--ff-mono);
  font-size:10.5px;
  color:var(--ink-faint);
  margin-bottom:4px;
  min-height:14px;
}
.gaelic-fr{
  font-family:var(--ff-body);
  font-style:italic;
  font-size:13px;
  color:var(--ink-soft);
  line-height:1.4;
  margin-top:auto;
}

/* ═══ AVANT DE PARTIR ═══ */
.avant{
  margin-top:32px;
  border:1px solid var(--rule);
  background:var(--white);
}
.avant-cols{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1px;
  background:var(--rule);
}
.avant-cat{
  background:var(--white);
  padding:18px 22px;
}
.avant-cat-label{
  font-family:var(--ff-ui);
  font-size:9.5px;
  font-weight:500;
  letter-spacing:0.22em;
  text-transform:uppercase;
  color:var(--ink-deep);
  margin-bottom:12px;
  padding-bottom:6px;
  display:inline-block;
  border-bottom:2px solid var(--sage);
}
.avant-cat:nth-child(1) .avant-cat-label{ border-bottom-color:var(--salmon); }
.avant-cat:nth-child(2) .avant-cat-label{ border-bottom-color:var(--sage); }
.avant-cat:nth-child(3) .avant-cat-label{ border-bottom-color:var(--sand); }
.avant-cat:nth-child(4) .avant-cat-label{ border-bottom-color:var(--orange); }
.avant ul{ list-style:none; padding:0; margin:0; }
.avant li{
  display:flex; gap:8px;
  align-items:flex-start;
  padding:5px 0;
}
.avant li::before{
  content:"";
  width:6px; height:6px;
  border-radius:50%;
  background:var(--sage);
  margin-top:7px;
  flex-shrink:0;
}
.avant-cat:nth-child(1) li::before{ background:var(--salmon); }
.avant-cat:nth-child(2) li::before{ background:var(--sage); }
.avant-cat:nth-child(3) li::before{ background:var(--sand); }
.avant-cat:nth-child(4) li::before{ background:var(--orange); }
.avant li span{
  font-family:var(--ff-body);
  font-style:italic;
  font-size:13px;
  color:var(--ink-soft);
  line-height:1.55;
}
.avant-tip{
  background:#f0f5ee;
  border-top:1px solid var(--rule);
  padding:14px 22px;
  display:flex; gap:14px;
  align-items:flex-start;
}
.avant-tip-badge{
  width:18px; height:18px;
  border-radius:50%;
  background:var(--sage-deep);
  color:var(--cream);
  display:inline-flex; align-items:center; justify-content:center;
  font-family:var(--ff-ui);
  font-size:11px; font-weight:600;
  flex-shrink:0;
  margin-top:2px;
}
.avant-tip-label{
  font-family:var(--ff-ui);
  font-size:9.5px; font-weight:500;
  letter-spacing:0.18em; text-transform:uppercase;
  color:var(--sage-deep);
  margin-bottom:4px;
}
.avant-tip p{
  font-family:var(--ff-body);
  font-style:italic;
  font-size:14px;
  color:var(--ink-soft);
  line-height:1.6;
  margin:0; text-align:left;
}
.avant-reserve{
  background:var(--cream);
  border-top:1px solid var(--rule);
  padding:12px 22px;
  display:flex; align-items:center; gap:14px;
  flex-wrap:wrap;
}
.avant-reserve-label{
  font-family:var(--ff-ui);
  font-size:9.5px;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:var(--ink-faint);
}
.avant-pill{
  font-family:var(--ff-ui);
  font-size:10px;
  padding:4px 10px;
  border:1px solid var(--rule-deep);
  border-radius:20px;
  color:var(--ink-soft);
  background:var(--white);
  text-decoration:none;
  transition:background .15s, color .15s, border-color .15s;
}
a.avant-pill:hover{
  background:var(--brown);
  color:var(--cream);
  border-color:var(--brown);
}

/* ═══ MÉTÉO LIVE ═══ */
.weather{
  margin-top:32px;
  border:1px solid var(--rule);
  background:var(--white);
  overflow:hidden;
}
.weather-header{
  background:var(--cream);
  padding:14px 22px;
  border-bottom:1px solid var(--rule);
  display:flex; align-items:baseline; gap:14px;
}
.weather-title{
  font-family:var(--ff-display);
  font-style:italic;
  font-weight:400;
  font-size:20px;
  color:var(--ink-deep);
}
.weather-live{
  margin-left:auto;
  font-family:var(--ff-mono);
  font-size:10px;
  color:var(--ink-faint);
  display:flex; align-items:center; gap:6px;
}
.weather-live .dot{
  width:6px; height:6px;
  border-radius:50%;
  background:var(--sage-deep);
  box-shadow:0 0 0 2px var(--sage-light);
}
.weather-now{
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  border-bottom:1px solid var(--rule);
}
.weather-now > div{
  padding:24px;
  display:grid;
  grid-template-columns:56px 1fr;
  gap:18px;
  align-items:center;
  border-right:1px solid var(--rule);
}
.weather-now > div:last-child{ border-right:none; }
.weather-now .city{
  font-family:var(--ff-ui);
  font-size:10px; font-weight:500;
  letter-spacing:0.2em; text-transform:uppercase;
  color:var(--ink-faint);
}
.weather-now .temp{
  font-family:var(--ff-display);
  font-style:italic;
  font-weight:400;
  font-size:36px;
  color:var(--ink-deep);
  line-height:1;
  margin-top:4px;
}
.weather-now .temp small{
  font-size:18px; color:var(--ink-faint);
}
.weather-now .label{
  font-family:var(--ff-body);
  font-style:italic;
  font-size:13px;
  color:var(--sage-deep);
  margin-top:2px;
}
.weather-now .extra{
  font-family:var(--ff-mono);
  font-size:9.5px;
  color:var(--ink-faint);
  margin-top:4px;
  letter-spacing:0.04em;
}
.weather-now .note{
  font-family:var(--ff-hand);
  font-weight:500;
  font-size:14px;
  color:var(--brown);
  margin-top:6px;
  background:none; border:none; padding:0;
}
.weather-forecast{
  padding:16px 22px 18px;
}
.weather-forecast-label{
  font-family:var(--ff-ui);
  font-size:9.5px; font-weight:500;
  letter-spacing:0.22em; text-transform:uppercase;
  color:var(--ink-soft);
  margin-bottom:14px;
}
.weather-days{
  display:grid;
  grid-template-columns:repeat(5, 1fr);
  gap:10px;
}
.weather-day{
  padding:14px 12px;
  background:var(--white);
  border:1px solid var(--rule);
  text-align:center;
  position:relative;
}
.weather-day.today{ background:var(--cream); }
.weather-day.today::before{
  content:""; position:absolute;
  top:0; left:0; right:0;
  height:2px;
  background:var(--brown);
}
.weather-day .name{
  font-family:var(--ff-ui);
  font-size:9px; font-weight:500;
  letter-spacing:0.18em; text-transform:uppercase;
  color:var(--ink-faint);
}
.weather-day .num{
  font-family:var(--ff-display);
  font-style:italic;
  font-size:22px;
  color:var(--ink-deep);
  line-height:1;
  margin-top:2px;
}
.weather-day.today .num{ color:var(--brown); }
.weather-day .lbl{
  font-family:var(--ff-body);
  font-style:italic;
  font-size:11px;
  margin-top:6px;
}
.weather-day .tt{
  font-family:var(--ff-mono);
  font-size:11px;
  color:var(--ink-deep);
  margin-top:8px;
  letter-spacing:0.02em;
}

/* ═══ ITINÉRAIRE TIMELINE ═══ */
.timeline{
  margin-top:32px;
  border:1px solid var(--rule);
  background:var(--white);
}
.timeline-header{
  background:var(--cream);
  padding:14px 22px;
  border-bottom:1px solid var(--rule);
  display:flex; align-items:baseline; gap:14px;
}
.timeline-title{
  font-family:var(--ff-display);
  font-style:italic;
  font-weight:400;
  font-size:20px;
  color:var(--ink-deep);
}
.timeline-meta{
  margin-left:auto;
  font-family:var(--ff-mono);
  font-size:10px;
  color:var(--ink-faint);
}
.timeline-row{
  display:grid;
  grid-template-columns:30px 70px 56px 1fr 70px;
  align-items:center;
  padding:12px 22px;
  border-bottom:1px solid var(--rule);
  gap:14px;
  background:var(--white);
  text-decoration:none;
  color:inherit;
  cursor:pointer;
  transition:background .15s;
}
.timeline-row:hover{ background:var(--cream-deep); }
.timeline-row.newbase{ background:var(--cream); }
.timeline-row.newbase:hover{ background:var(--cream-deep); }
.timeline-row:last-child{ border-bottom:none; }
.timeline-dot{
  width:10px; height:10px;
  border-radius:50%;
  justify-self:center;
}
.timeline-day{
  font-family:var(--ff-display);
  font-style:italic;
  font-weight:400;
  font-size:22px;
  color:var(--brown);
  line-height:1;
}
.timeline-date{
  font-family:var(--ff-mono);
  font-size:9px;
  color:var(--ink-faint);
  letter-spacing:0.04em;
  margin-top:2px;
}
.timeline-kind{
  font-family:var(--ff-ui);
  font-size:8.5px; font-weight:500;
  letter-spacing:0.16em; text-transform:uppercase;
}
.timeline-step{
  font-family:var(--ff-body);
  font-style:italic;
  font-size:14px;
  color:var(--ink-deep);
  line-height:1.4;
}
.timeline-detour{
  font-family:var(--ff-hand);
  font-weight:500;
  font-size:14px;
  color:var(--brown);
  margin-top:2px;
  line-height:1.2;
}
.timeline-base{
  font-family:var(--ff-ui);
  font-size:9px; font-weight:500;
  letter-spacing:0.18em; text-transform:uppercase;
  color:var(--sage-deep);
  margin-top:6px;
}
.timeline-km{
  font-family:var(--ff-mono);
  font-size:11px;
  color:var(--ink-deep);
  text-align:right;
}
.timeline-km.zero{ color:var(--ink-faint); }
.timeline-total{
  background:var(--ink-deep);
  color:var(--cream);
  padding:14px 22px;
  display:flex; justify-content:space-between; align-items:baseline;
}
.timeline-total-label{
  font-family:var(--ff-ui);
  font-size:10px; font-weight:500;
  letter-spacing:0.22em; text-transform:uppercase;
}
.timeline-total-value{
  font-family:var(--ff-display);
  font-style:italic;
  font-weight:400;
  font-size:30px;
  color:var(--orange);
}
.timeline-legend{
  padding:12px 22px;
  background:var(--cream);
  border-top:1px solid var(--rule);
  display:flex; align-items:center; gap:24px; flex-wrap:wrap;
}
.timeline-legend span{
  display:flex; align-items:center; gap:6px;
  font-family:var(--ff-ui);
  font-size:9.5px;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--ink-soft);
}
.timeline-legend span::before{
  content:"";
  width:8px; height:8px;
  border-radius:50%;
}
.timeline-legend .l-walk::before    { background:var(--salmon); }
.timeline-legend .l-drive::before   { background:var(--brown); }
.timeline-legend .l-loop::before    { background:var(--orange-deep); }
.timeline-legend .l-explore::before { background:var(--sage-deep); }
.timeline-legend .l-hike::before    { background:var(--sage); }
.timeline-legend .end{
  margin-left:auto;
  font-family:var(--ff-hand);
  font-weight:500;
  font-size:15px;
  color:var(--brown);
  letter-spacing:normal;
  text-transform:none;
}

/* ═══ CARTE SCOTLAND/MONDE ═══ */
.map-wrap{
  margin-top:32px;
  border:1px solid var(--rule);
  background:var(--white);
}
.map-d3{
  width:100%;
  overflow:hidden;
  background:var(--cream-deep);
}
.map-d3 svg{ display:block; width:100%; height:auto; }
.map-legend{
  padding:12px 22px;
  border-top:1px solid var(--rule);
  background:var(--cream);
  display:flex; gap:24px; align-items:center; flex-wrap:wrap;
}
.map-legend-item{
  display:flex; align-items:center; gap:8px;
  font-family:var(--ff-ui);
  font-size:10px;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:var(--ink-soft);
}
.map-legend-dot{
  width:12px; height:12px;
  border-radius:50%;
}
.map-legend-end{
  margin-left:auto;
  font-family:var(--ff-hand);
  font-weight:500;
  font-size:15px;
  color:var(--brown);
  letter-spacing:normal;
  text-transform:none;
}

/* ═══ POST-IT ═══ */
.postit{
  background:var(--cream);
  padding:20px 22px 24px;
  box-shadow:0 2px 12px rgba(110,80,40,.10);
  transform:rotate(0.4deg);
  position:relative;
  width:290px;
  border:1px solid var(--rule);
}
.postit::before{
  content:"";
  position:absolute;
  top:-7px; left:50%;
  transform:translateX(-50%) rotate(-2deg);
  width:60px; height:14px;
  background:repeating-linear-gradient(90deg, rgba(232,184,152,.55) 0 6px, transparent 6px 9px), rgba(232,184,152,.55);
}
.postit-title{
  font-family:var(--ff-display);
  font-style:italic;
  font-size:19px;
  color:var(--ink-deep);
  margin-bottom:2px;
  line-height:1.15;
}
.postit-sub{
  font-family:var(--ff-hand);
  font-weight:500;
  font-size:15px;
  color:var(--brown);
  margin-bottom:10px;
  line-height:1.2;
  display:inline-block;
}
.postit-items{
  border-top:1px dashed var(--rule-deep);
  padding-top:8px;
}
.postit-item{
  display:flex; gap:8px;
  align-items:baseline;
  padding:3px 0;
}
.postit-item .ck{
  font-family:var(--ff-hand);
  font-weight:600;
  font-size:18px;
  line-height:1;
  width:12px;
  flex-shrink:0;
  color:var(--ink-faint);
}
.postit-item.done .ck{ color:var(--orange-deep); }
.postit-item .lbl{
  font-family:var(--ff-hand);
  font-weight:500;
  font-size:16px;
  color:var(--brown);
  line-height:1.3;
  position:relative;
}
.postit-item.done .lbl::after{
  content:"";
  position:absolute;
  left:0; right:0; top:52%;
  height:1px;
  background:var(--orange-deep);
  opacity:0.5;
}
.postit-item .sub{
  color:var(--ink-faint);
  margin-left:6px;
}
.postit-footer{
  margin-top:10px;
  padding-top:8px;
  border-top:1px dashed var(--rule-deep);
  font-family:var(--ff-ui);
  font-size:9px;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:var(--ink-faint);
}

/* ═══ ARTICLES LIÉS ═══ */
.related{
  margin-top:32px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
}
.related-card{
  display:grid;
  grid-template-columns:160px 1fr;
  gap:0;
  border:1px solid var(--rule);
  background:var(--white);
  text-decoration:none;
  color:var(--ink-deep);
  transition:box-shadow .2s;
}
.related-card:hover{
  box-shadow:0 8px 24px rgba(110,80,40,.14);
}
.related-card .photo{ margin:0; }
.related-card .photo .frame{ aspect-ratio:3/4; border-radius:0; }
.related-card-body{
  padding:18px 20px;
  display:flex; flex-direction:column;
  justify-content:space-between;
}
.related-tag{
  font-family:var(--ff-ui);
  font-size:9.5px;
  letter-spacing:0.2em;
  text-transform:uppercase;
  color:var(--sage-deep);
  margin-bottom:8px;
}
.related-title{
  font-family:var(--ff-display);
  font-style:italic;
  font-weight:400;
  font-size:20px;
  color:var(--ink-deep);
  line-height:1.15;
}
.related-cta{
  font-family:var(--ff-ui);
  font-size:10px; font-weight:500;
  letter-spacing:0.2em; text-transform:uppercase;
  color:var(--brown);
  border-bottom:1.5px solid var(--brown);
  padding-bottom:3px;
  display:inline-block;
  align-self:flex-start;
  margin-top:14px;
}

/* ═══ FOOTER ═══ */
footer{
  border-top:1px solid var(--rule);
  margin-top:48px;
  padding:32px 64px;
  text-align:center;
}
footer .copyr{
  margin-top:14px;
  font-family:var(--ff-ui);
  font-size:9px;
  letter-spacing:0.24em;
  text-transform:uppercase;
  color:var(--ink-faint);
}

/* ═══ TIMBRES (postal stamps) ═══ */
.stamp{
  position:relative;
  display:inline-block;
  width:118px;
  background:var(--cream);
  padding:7px;
  filter:drop-shadow(1px 2px 4px rgba(110,80,40,.20));
  /* perforated edge via radial mask */
  --p:6px;
  -webkit-mask:
    radial-gradient(circle var(--p) at 0 50%, transparent 99%, #000) calc(-1*var(--p)) 0/100% 14.2% repeat-y,
    radial-gradient(circle var(--p) at 100% 50%, transparent 99%, #000) calc(100% + var(--p)) 0/100% 14.2% repeat-y,
    radial-gradient(circle var(--p) at 50% 0, transparent 99%, #000) 0 calc(-1*var(--p))/20% 100% repeat-x,
    radial-gradient(circle var(--p) at 50% 100%, transparent 99%, #000) 0 calc(100% + var(--p))/20% 100% repeat-x,
    linear-gradient(#000,#000);
  -webkit-mask-composite:source-over;
          mask-composite:add;
  transform:rotate(var(--rot, -5deg));
}
.stamp-inner{
  position:relative;
  aspect-ratio:3/3.4;
  background-size:cover;
  background-position:center;
  border:0.5px solid rgba(110,80,40,.2);
}
.stamp-cap{
  position:absolute;
  left:0; right:0; bottom:0;
  padding:5px 6px 6px;
  background:linear-gradient(to top, rgba(58,52,46,.78), transparent);
}
.stamp-country{
  font-family:var(--ff-ui);
  font-weight:500;
  font-size:7px;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:var(--cream);
  display:block;
}
.stamp-price{
  font-family:var(--ff-display);
  font-style:italic;
  font-size:12px;
  color:var(--cream);
}
/* postmark cancellation ring */
.stamp-mark{
  position:absolute;
  top:8%; left:10%;
  width:74px; height:74px;
  opacity:0.55;
  transform:rotate(-14deg);
  pointer-events:none;
}
.stamp.no-mark .stamp-mark{ display:none; }

/* masthead stamps cluster (homepage) */
.masthead-stamps{
  position:absolute;
  top:40px; right:64px;
  display:flex;
  gap:2px;
}
.masthead-stamps .stamp:nth-child(2){ --rot:4deg; margin-top:18px; }
.masthead-stamps .stamp:nth-child(3){ --rot:-2deg; margin-top:-6px; }

/* hero stamp (articles) */
.hero-stamp-el{
  position:absolute;
  right:56px; bottom:40px;
  z-index:3;
  width:124px;
}

@media (max-width:900px){
  .masthead-stamps{ position:static; justify-content:center; margin-top:24px; }
  .hero-stamp-el{ display:none; }
}

/* ═══ TIMELINE HISTORIQUE (Culloden) ═══ */
.histo-timeline{
  background:var(--cream);
  border-left:2px solid var(--sand);
  padding:14px 22px;
  margin:18px 0;
  display:flex; flex-direction:column; gap:12px;
}
.histo-timeline > div{
  display:grid;
  grid-template-columns:130px 1fr;
  gap:14px;
}
.histo-timeline .date{
  font-family:var(--ff-ui);
  font-size:9.5px; font-weight:500;
  letter-spacing:0.18em; text-transform:uppercase;
  color:var(--brown);
}
.histo-timeline .text{
  font-family:var(--ff-body);
  font-style:italic;
  font-size:13.5px;
  color:var(--ink-soft);
  line-height:1.55;
}

/* ═══ DAY NAV (anciens articles) ═══ */
.day-nav{
  display:flex; gap:8px; flex-wrap:wrap;
  margin-bottom:48px;
  padding-bottom:24px;
  border-bottom:1px solid var(--rule);
}
.day-nav a{
  font-family:var(--ff-ui);
  font-size:10px; font-weight:500;
  letter-spacing:0.18em; text-transform:uppercase;
  color:var(--ink-soft);
  padding:7px 14px;
  border:1px solid var(--rule);
  background:var(--cream);
  text-decoration:none;
}
.day-nav a:hover{ background:var(--brown); color:var(--cream); border-color:var(--brown); }
.day-nav .end{
  margin-left:auto;
  font-family:var(--ff-hand);
  font-weight:500;
  font-size:16px;
  color:var(--brown);
  letter-spacing:normal;
  text-transform:none;
  border:none;
  padding:0;
  background:none;
}

/* ═══ HOMEPAGE ═══ */
.home-masthead{
  position:relative;
  padding:80px 64px 64px;
  text-align:center;
  border-bottom:1px solid var(--rule);
}
.home-masthead .kicker{
  font-family:var(--ff-ui);
  font-size:11px;
  letter-spacing:0.32em;
  text-transform:uppercase;
  color:var(--ink-faint);
  margin-bottom:24px;
}
.home-masthead .wordmark{
  font-family:var(--ff-display);
  font-style:italic;
  font-weight:300;
  font-size:96px;
  color:var(--ink-deep);
  line-height:0.96;
  margin-bottom:18px;
  letterSpacing:-0.015em;
}
.home-masthead .wordmark .slash{
  color:var(--brown);
  font-style:normal;
  font-weight:300;
}
.home-masthead .baseline{
  font-family:var(--ff-hand);
  font-weight:500;
  font-size:26px;
  color:var(--brown);
  line-height:1.2;
}
.home-masthead .lede{
  font-family:var(--ff-body);
  font-style:italic;
  font-size:16px;
  color:var(--ink-soft);
  margin-top:28px;
  max-width:560px;
  margin-left:auto; margin-right:auto;
  line-height:1.75;
}
.home-masthead .nbadge{
  position:absolute;
  top:46px; right:80px;
  transform:rotate(8deg);
  font-family:var(--ff-hand);
  font-weight:500;
  font-size:16px;
  color:var(--sage-deep);
}

.home-section{
  padding:72px 64px 24px;
  max-width:1280px;
  margin:0 auto;
}
.home-section-head{
  display:flex; align-items:center; gap:18px;
  padding-bottom:8px;
  border-bottom:1px solid var(--rule);
  margin-bottom:36px;
}
.home-section-head .n{
  font-family:var(--ff-mono);
  font-size:10px;
  color:var(--orange-deep);
  letter-spacing:0.05em;
}
.home-section-head .left{
  font-family:var(--ff-ui);
  font-weight:500;
  font-size:10.5px;
  letter-spacing:0.28em;
  text-transform:uppercase;
  color:var(--ink-deep);
}
.home-section-head .right{
  margin-left:auto;
  font-family:var(--ff-hand);
  font-weight:500;
  font-size:16px;
  color:var(--brown);
}

.home-hero{
  display:grid;
  grid-template-columns:1.05fr 1fr 290px;
  gap:36px;
  align-items:flex-start;
}
.home-hero .photo{ margin:0; }
.home-hero .photo .frame{ aspect-ratio:4/5; }
.home-hero-body{ padding-top:8px; }
.home-hero-tag{
  font-family:var(--ff-ui);
  font-size:10.5px; font-weight:500;
  letter-spacing:0.22em; text-transform:uppercase;
  color:var(--sage-deep);
  margin-bottom:18px;
}
.home-hero-title{
  font-family:var(--ff-display);
  font-style:italic;
  font-weight:300;
  font-size:54px;
  color:var(--ink-deep);
  line-height:1.02;
  margin-bottom:20px;
  letter-spacing:-0.015em;
}
.home-hero-deck{
  font-family:var(--ff-body);
  font-style:italic;
  font-size:16px;
  color:var(--ink-soft);
  line-height:1.85;
  margin-bottom:22px;
}
.home-hero-meta{
  font-family:var(--ff-ui);
  font-size:10.5px;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--ink-faint);
  margin-bottom:24px;
  padding-bottom:18px;
  border-bottom:1px solid var(--rule);
}
.home-hero-cta{
  font-family:var(--ff-ui);
  font-size:11px; font-weight:500;
  letter-spacing:0.2em; text-transform:uppercase;
  color:var(--ink-deep);
  border-bottom:2px solid var(--sage);
  padding-bottom:4px;
  text-decoration:none;
  display:inline-block;
}

.home-chap{
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:24px;
}
.home-chap-card{
  border:1px solid var(--rule);
  background:var(--white);
  text-decoration:none;
  color:inherit;
  transition:box-shadow .2s;
}
.home-chap-card:hover{
  box-shadow:0 8px 24px rgba(110,80,40,.14);
}
.home-chap-card .photo{ margin:0; }
.home-chap-card .photo .frame{ aspect-ratio:4/3; border-radius:0; }
.home-chap-body{ padding:20px 22px 22px; }
.home-chap-num{
  font-family:var(--ff-display);
  font-style:italic;
  font-weight:400;
  font-size:28px;
  color:var(--sage-deep);
  line-height:1;
}
.home-chap-tag{
  font-family:var(--ff-ui);
  font-size:10px;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:var(--ink-faint);
  margin-left:10px;
}
.home-chap-title{
  font-family:var(--ff-display);
  font-style:italic;
  font-weight:400;
  font-size:24px;
  color:var(--ink-deep);
  line-height:1.15;
  margin:8px 0 10px;
  letter-spacing:-0.005em;
}
.home-chap-desc{
  font-family:var(--ff-body);
  font-style:italic;
  font-size:14px;
  color:var(--ink-soft);
  line-height:1.65;
  margin-bottom:14px;
}
.home-chap-cta{
  font-family:var(--ff-ui);
  font-size:10px; font-weight:500;
  letter-spacing:0.2em; text-transform:uppercase;
  color:var(--ink-deep);
  border-bottom:1.5px solid var(--sage);
  padding-bottom:3px;
  display:inline-block;
}

.home-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:18px;
}
.home-dest{
  position:relative;
  overflow:hidden;
  aspect-ratio:3/2;
  text-decoration:none;
  color:inherit;
}
.home-dest .frame{
  position:absolute; inset:0;
  background:linear-gradient(135deg, var(--salmon), var(--sand), var(--brown));
  background-size:cover; background-position:center;
}
.home-dest .ov{
  position:absolute; inset:0;
  background:linear-gradient(to bottom, rgba(0,0,0,.05), rgba(20,15,5,.65));
}
.home-dest .info{
  position:absolute;
  bottom:0; left:0; right:0;
  padding:18px 20px;
  color:var(--white);
}
.home-dest .name{
  font-family:var(--ff-display);
  font-style:italic;
  font-size:26px;
  line-height:1.05;
  margin-bottom:4px;
  letter-spacing:-0.005em;
}
.home-dest .meta{
  font-family:var(--ff-ui);
  font-size:10px;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:rgba(255,255,255,.78);
}
.home-dest .cta{
  display:inline-block;
  margin-top:6px;
  font-family:var(--ff-ui);
  font-size:10px; font-weight:500;
  letter-spacing:0.2em; text-transform:uppercase;
  color:var(--sage-light);
}
.home-dest .soon{
  display:inline-block;
  margin-top:6px;
  font-family:var(--ff-ui);
  font-size:9.5px;
  letter-spacing:0.18em; text-transform:uppercase;
  color:rgba(255,255,255,.7);
  padding:3px 8px;
  border:1px solid rgba(255,255,255,.4);
}

.home-about{
  padding:72px 64px 80px;
  border-top:1px solid var(--rule);
  margin-top:48px;
}
.home-about-grid{
  max-width:1280px; margin:0 auto;
  display:grid;
  grid-template-columns:320px 1fr;
  gap:64px;
  align-items:flex-start;
}
.home-about-grid .photo .frame{ aspect-ratio:4/5; }
.home-about-kicker{
  font-family:var(--ff-ui);
  font-size:10.5px;
  letter-spacing:0.22em;
  text-transform:uppercase;
  color:var(--ink-faint);
  margin-bottom:14px;
  display:flex; align-items:center; gap:14px;
}
.home-about-kicker::after{
  content:""; flex:1; height:1px;
  background:var(--rule);
}
.home-about-title{
  font-family:var(--ff-display);
  font-style:italic;
  font-weight:300;
  font-size:46px;
  color:var(--ink-deep);
  line-height:1.05;
  margin-bottom:22px;
  letter-spacing:-0.01em;
}
.home-about p{
  font-family:var(--ff-body);
  font-style:italic;
  font-size:16px;
  color:var(--ink-soft);
  line-height:2;
  margin-bottom:14px;
  text-align:left;
}

/* ═══ BACK TO TOP ═══ */
.to-top{
  position:fixed;
  right:22px; bottom:22px;
  width:46px; height:46px;
  border-radius:50%;
  background:var(--brown);
  color:var(--cream);
  border:none;
  cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 4px 16px rgba(110,80,40,.3);
  opacity:0; visibility:hidden;
  transform:translateY(10px);
  transition:opacity .25s, transform .25s, visibility .25s;
  z-index:200;
  font-size:18px;
}
.to-top.show{ opacity:1; visibility:visible; transform:translateY(0); }
.to-top:hover{ background:var(--ink-deep); }

/* ═══ FOOTER étoffé ═══ */
.site-footer{
  border-top:1px solid var(--rule);
  margin-top:48px;
  background:var(--cream);
}
.site-footer-inner{
  max-width:1180px;
  margin:0 auto;
  padding:40px 48px 32px;
  display:grid;
  grid-template-columns:1.2fr 1fr 1fr;
  gap:32px;
  align-items:flex-start;
}
.site-footer .brand{
  display:flex; align-items:center; gap:14px;
}
.site-footer .brand-words{ display:flex; flex-direction:column; line-height:1; }
.site-footer .brand-word{
  font-family:var(--ff-display);
  font-style:italic; font-weight:300;
  font-size:20px; color:var(--ink-deep);
}
.site-footer .brand-word + .brand-word{ margin-top:-2px; }
.site-footer .tagline{
  font-family:var(--ff-body);
  font-style:italic;
  font-size:13px;
  color:var(--ink-soft);
  margin-top:14px;
  line-height:1.6;
  max-width:280px;
}
.footer-col-title{
  font-family:var(--ff-ui);
  font-size:9.5px; font-weight:500;
  letter-spacing:0.22em; text-transform:uppercase;
  color:var(--ink-faint);
  margin-bottom:14px;
}
.footer-col a{
  display:block;
  font-family:var(--ff-body);
  font-style:italic;
  font-size:14px;
  color:var(--ink-soft);
  text-decoration:none;
  padding:4px 0;
  transition:color .15s;
}
.footer-col a:hover{ color:var(--brown); }
.site-footer-bottom{
  border-top:1px solid var(--rule);
  padding:16px 48px;
  display:flex; align-items:center; justify-content:space-between;
  flex-wrap:wrap; gap:10px;
}
.site-footer-bottom p{
  font-family:var(--ff-ui);
  font-size:9px;
  letter-spacing:0.22em;
  text-transform:uppercase;
  color:var(--ink-faint);
}
.site-footer-bottom .up{
  font-family:var(--ff-ui);
  font-size:9.5px;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:var(--brown);
  text-decoration:none;
  border-bottom:1px solid var(--sand);
  padding-bottom:2px;
}

/* ═══ RESPONSIVE ═══ */
@media (max-width:1000px){
  .home-chap{ grid-template-columns:1fr 1fr; }
  .site-footer-inner{ grid-template-columns:1fr 1fr; }
}
@media (max-width:760px){
  html{ font-size:15px; }
  .article{ grid-template-columns:1fr; gap:20px; padding:24px 16px 60px; }
  .toc{
    position:static; width:100%;
    border:1px solid var(--rule); background:var(--cream);
    padding:14px 16px; border-radius:4px;
  }
  .toc ol{ display:flex; flex-wrap:wrap; gap:6px 14px; }
  .toc li{ border:none; padding:2px 0; }
  .toc-reading{ display:none; }
  .nav{ padding:12px 16px; flex-wrap:wrap; gap:8px 0; }
  .nav-word{ font-size:18px; }
  .nav-logo svg{ width:34px; height:34px; }
  .nav-links{
    gap:14px; width:100%;
    overflow-x:auto; -webkit-overflow-scrolling:touch;
    padding-bottom:2px;
  }
  .nav-links a{ white-space:nowrap; font-size:10px; letter-spacing:0.16em; }
  .hero{ height:auto; min-height:62vh; }
  .hero-cap{ padding:0 16px 28px; left:0; right:0; bottom:0; }
  .hero-title{ font-size:34px; }
  .hero-sub{ font-size:14px; }
  .home-masthead{ padding:44px 18px 36px; }
  .home-masthead .wordmark{ font-size:38px; }
  .home-masthead .baseline{ font-size:20px; }
  .home-masthead .lede{ font-size:14px; }
  .home-section{ padding:40px 18px 20px; }
  .home-hero{ grid-template-columns:1fr; gap:24px; }
  .postit{ width:100%; max-width:340px; margin:0 auto; transform:none; }
  .home-chap, .related, .avant-cols,
  .weather-now{
    grid-template-columns:1fr !important;
  }
  /* Garder 2 colonnes sur mobile (plus proche du rendu ordinateur) */
  .home-grid, .facts-grid, .facts-grid.col2, .gaelic-grid, .photo-duo{
    grid-template-columns:1fr 1fr !important;
  }
  .fact{ padding:14px 12px; }
  .fact-icon{ width:34px; height:34px; }
  .fact-icon svg{ width:22px; height:22px; }
  .fact-value{ font-size:15px; }
  .fact-note{ font-size:11px; }
  .gaelic-item{ padding:12px 12px; }
  .home-dest .name{ font-size:21px; }
  .weather-days{ grid-template-columns:repeat(3,1fr) !important; gap:6px; }
  .related-card{ grid-template-columns:110px 1fr; }
  .timeline-row{ grid-template-columns:24px 1fr 64px; gap:8px; padding:12px 14px; }
  .timeline-row > .timeline-date,
  .timeline-row > .timeline-kind{ display:none; }
  .timeline-header, .facts-header, .weather-header{ padding:12px 16px; flex-wrap:wrap; gap:4px; }
  .day-addresses{ padding:16px 16px 12px; }
  .day-addresses .day-address{
    grid-template-columns:auto 1fr;
    column-gap:12px;
    align-items:start;
  }
  .day-addresses .day-address .stars{
    font-size:13px;
    white-space:nowrap;
    align-self:start;
    padding-top:3px;
  }
  .day-addresses .day-address .type{ display:none; }
  .coup-coeur{ width:auto; margin-left:0; padding:18px 20px; }
  .section-head{ flex-wrap:wrap; gap:8px; }
  .section-head .right, .home-section-head .right{ display:none; }
  .home-about{ padding:48px 18px 56px; }
  .home-about-grid{ grid-template-columns:1fr; gap:28px; }
  .home-about-title{ font-size:34px; }
  .day-sub{ font-size:24px; }
  .stop-title{ padding-left:0; }
  .stop-title::before{ display:none; }
  .photo.portrait .frame{ max-width:100%; }
  /* Cartes : marge autour + hauteur lisible sur mobile */
  .map-wrap{ margin-left:0; margin-right:0; }
  .map-d3 svg{ width:100%; height:auto; display:block; }
  .map-legend{ padding:12px 16px; gap:14px; }
  .map-legend-end, .timeline-legend .end{ display:none; }
  .article-content > section{ margin-top:52px; }
  .facts, .saviez, .gaelic, .avant, .weather, .timeline, .map-wrap{ margin-top:24px; }
  .site-footer-inner{ grid-template-columns:1fr; gap:24px; padding:32px 18px 24px; }
  .site-footer-bottom{ padding:14px 18px; }
  .to-top{ right:14px; bottom:14px; width:42px; height:42px; }
}
@media (max-width:430px){
  .hero-title{ font-size:28px; }
  .home-masthead .wordmark{ font-size:32px; }
  .weather-days{ grid-template-columns:repeat(2,1fr) !important; }
  /* Téléphones étroits : repasser à 1 colonne pour les blocs très denses */
  .facts-grid, .facts-grid.col2, .avant-cols{ grid-template-columns:1fr !important; }
}
