/* ============================================================
   Corsica by Van — 15 days
   Palette: granite / maquis / porphyry / tyrrhenian
   ============================================================ */
:root{
  --ink:#12171c;         --ink-2:#1b2229;      --ink-3:#232c35;
  --paper:#f6f3ee;       --paper-2:#efe9e0;
  --line:rgba(18,23,28,.10);
  --line-d:rgba(255,255,255,.10);
  --sea:#1b8a9c;         --sea-l:#2ea7ba;      --sea-d:#0f5a67;
  --maquis:#3f7d3a;      --maquis-l:#5aa054;
  --porphyry:#c4562f;    --porphyry-l:#e0713f;
  --sand:#d9a441;
  --plum:#7a4b8f;
  --slate:#5b6b78;
  --muted:#6a7681;
  --shadow:0 1px 2px rgba(18,23,28,.06),0 8px 24px -12px rgba(18,23,28,.18);
  --shadow-l:0 2px 6px rgba(18,23,28,.08),0 24px 48px -20px rgba(18,23,28,.28);
  --r:14px; --r-s:9px;
  --sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --serif:"Fraunces","Georgia","Times New Roman",serif;
  --mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:66px;-webkit-text-size-adjust:100%}
body{
  margin:0;font-family:var(--sans);color:var(--ink);background:var(--paper);
  font-size:16px;line-height:1.62;-webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:var(--sea-d);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3,h4{line-height:1.15;margin:0;font-weight:650;letter-spacing:-.02em}
h2{font-family:var(--serif);font-size:clamp(1.7rem,3.4vw,2.6rem);font-weight:600}
h3{font-size:1.22rem}
p{margin:0 0 1em}
.wrap{max-width:1280px;margin:0 auto;padding:0 clamp(18px,4vw,40px)}
.narrow{max-width:820px}
section{padding:clamp(52px,7vw,96px) 0;position:relative}
section+section{border-top:1px solid var(--line)}
.eyebrow{
  font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:var(--porphyry);margin:0 0 .7rem;display:flex;align-items:center;gap:.6rem
}
.eyebrow::after{content:"";flex:1;height:1px;background:var(--line);max-width:120px}
.lede{font-size:1.1rem;color:var(--slate);max-width:70ch}

/* ---------------------------------------------------- nav */
.nav{
  position:sticky;top:0;z-index:900;background:rgba(246,243,238,.86);
  backdrop-filter:saturate(160%) blur(14px);border-bottom:1px solid var(--line)
}
.nav-in{display:flex;align-items:center;gap:1.4rem;height:64px;max-width:1280px;margin:0 auto;padding:0 clamp(18px,4vw,40px)}
.brand{font-family:var(--serif);font-weight:600;font-size:1.06rem;letter-spacing:-.02em;white-space:nowrap;color:var(--ink)}
.brand b{color:var(--porphyry)}
.nav-links{display:flex;gap:.2rem;margin-left:auto;overflow-x:auto;scrollbar-width:none}
.nav-links::-webkit-scrollbar{display:none}
.nav-links a{
  padding:.42rem .72rem;border-radius:99px;font-size:.87rem;font-weight:520;color:var(--slate);white-space:nowrap
}
.nav-links a:hover{background:var(--paper-2);color:var(--ink);text-decoration:none}
.nav-links a.on{background:var(--ink);color:#fff}

/* ---------------------------------------------------- hero */
.hero{
  background:
    radial-gradient(1100px 620px at 78% -12%,rgba(46,167,186,.30),transparent 62%),
    radial-gradient(820px 520px at 6% 108%,rgba(196,86,47,.26),transparent 60%),
    linear-gradient(168deg,#11181e,#1b2b31 52%,#132026);
  color:#fff;padding:clamp(64px,11vw,132px) 0 clamp(48px,7vw,84px);border:0;overflow:hidden
}
.hero::after{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:radial-gradient(rgba(255,255,255,.07) 1px,transparent 1px);
  background-size:22px 22px;mask-image:linear-gradient(180deg,#000,transparent 78%)
}
.hero .wrap{position:relative;z-index:1}
.hero-tag{
  display:inline-flex;align-items:center;gap:.55rem;font-size:.76rem;font-weight:600;letter-spacing:.12em;
  text-transform:uppercase;color:#9fe4ef;border:1px solid rgba(159,228,239,.34);
  padding:.4rem .85rem;border-radius:99px;margin-bottom:1.6rem;background:rgba(46,167,186,.12)
}
.hero h1{
  font-family:var(--serif);font-size:clamp(2.5rem,7vw,5.2rem);font-weight:600;letter-spacing:-.035em;
  margin:0 0 1.1rem;max-width:20ch
}
.hero h1 em{font-style:italic;color:#8fd9e6}
.hero p.big{font-size:clamp(1.04rem,1.7vw,1.28rem);color:rgba(255,255,255,.80);max-width:62ch;margin:0 0 2.4rem}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(128px,1fr));gap:1px;background:var(--line-d);border:1px solid var(--line-d);border-radius:var(--r);overflow:hidden;max-width:900px}
.stat{background:rgba(255,255,255,.035);padding:1.05rem 1.15rem}
.stat b{display:block;font-family:var(--serif);font-size:1.72rem;font-weight:600;letter-spacing:-.02em;line-height:1.1}
.stat span{font-size:.73rem;text-transform:uppercase;letter-spacing:.1em;color:rgba(255,255,255,.56)}
.hero-src{margin:2.2rem 0 0;font-size:.86rem;color:rgba(255,255,255,.52)}
.hero-src a{color:#9fe4ef}

/* ---------------------------------------------------- map */
#map-section{background:var(--ink);color:#fff;border:0}
#map-section h2{color:#fff}
#map-section .lede{color:rgba(255,255,255,.66)}
.map-shell{
  display:grid;grid-template-columns:340px 1fr;gap:0;margin-top:2rem;
  border:1px solid var(--line-d);border-radius:var(--r);overflow:hidden;background:var(--ink-2);
  box-shadow:var(--shadow-l);height:clamp(560px,78vh,860px)
}
.map-side{border-right:1px solid var(--line-d);display:flex;flex-direction:column;min-height:0;background:var(--ink-2)}
.map-side-hd{padding:1rem 1.1rem .8rem;border-bottom:1px solid var(--line-d)}
.map-side-hd h4{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.5);font-weight:700;margin-bottom:.7rem}
.chips{display:flex;flex-wrap:wrap;gap:.34rem}
.chip{
  display:inline-flex;align-items:center;gap:.4rem;font:inherit;font-size:.78rem;font-weight:520;cursor:pointer;
  background:rgba(255,255,255,.06);border:1px solid var(--line-d);color:rgba(255,255,255,.72);
  padding:.3rem .62rem;border-radius:99px;transition:.14s
}
.chip:hover{background:rgba(255,255,255,.13);color:#fff}
.chip.on{background:#fff;color:var(--ink);border-color:#fff;font-weight:600}
.chip i{width:8px;height:8px;border-radius:99px;background:currentColor;flex:none}
.chip.on i{box-shadow:0 0 0 2px rgba(0,0,0,.08)}
.day-list{overflow-y:auto;flex:1;padding:.5rem;min-height:0;scrollbar-width:thin}
.day-list::-webkit-scrollbar{width:8px}
.day-list::-webkit-scrollbar-thumb{background:rgba(255,255,255,.16);border-radius:9px}
.day-btn{
  display:grid;grid-template-columns:38px 1fr;gap:.7rem;width:100%;text-align:left;cursor:pointer;
  background:transparent;border:0;border-radius:var(--r-s);padding:.6rem .55rem;color:#fff;font:inherit;transition:.13s
}
.day-btn:hover{background:rgba(255,255,255,.07)}
.day-btn.on{background:rgba(46,167,186,.20);box-shadow:inset 0 0 0 1px rgba(46,167,186,.5)}
.day-num{
  font-family:var(--serif);font-size:1.05rem;font-weight:600;width:38px;height:38px;border-radius:var(--r-s);
  display:grid;place-items:center;background:rgba(255,255,255,.08);color:rgba(255,255,255,.8);flex:none
}
.day-btn.on .day-num{background:var(--sea-l);color:#06222a}
.day-t{display:block;font-size:.9rem;font-weight:580;line-height:1.3}
.day-m{display:block;font-size:.76rem;color:rgba(255,255,255,.5);margin-top:.15rem}
.map-main{position:relative;min-height:0}
#map{position:absolute;inset:0;background:#0d1418}
.map-legend{
  position:absolute;left:12px;bottom:34px;z-index:500;background:rgba(18,23,28,.88);
  backdrop-filter:blur(8px);border:1px solid var(--line-d);border-radius:var(--r-s);
  padding:.55rem .7rem;font-size:.73rem;color:rgba(255,255,255,.78);max-width:206px
}
.map-legend b{display:block;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.45);margin-bottom:.4rem}
.map-legend div{display:flex;align-items:center;gap:.45rem;line-height:1.7}
.map-legend s{width:20px;height:4px;border-radius:2px;background:#e0713f;flex:none;text-decoration:none;box-shadow:0 0 0 1px rgba(255,255,255,.5)}
.map-legend s.ghost{background:#4a707c;height:3px;box-shadow:none}
.map-reset{
  position:absolute;right:12px;top:12px;z-index:500;background:rgba(18,23,28,.86);backdrop-filter:blur(8px);
  border:1px solid var(--line-d);color:#fff;border-radius:var(--r-s);padding:.45rem .75rem;
  font:inherit;font-size:.8rem;cursor:pointer
}
.map-reset:hover{background:var(--ink-3)}

/* leaflet pins */
.pin{
  width:26px;height:26px;border-radius:50% 50% 50% 4px;transform:rotate(-45deg);
  border:2px solid rgba(255,255,255,.92);box-shadow:0 3px 9px rgba(0,0,0,.45);
  display:grid;place-items:center;transition:transform .12s
}
.pin span{transform:rotate(45deg);font-size:12px;line-height:1}
.pin.sm{width:19px;height:19px;border-width:1.5px}
.pin.sm span{font-size:9px}
.pin-w:hover .pin{transform:rotate(-45deg) scale(1.18)}
.pin.act{transform:rotate(-45deg) scale(1.28);z-index:9999;border-color:#fff;box-shadow:0 0 0 4px rgba(46,167,186,.45),0 4px 12px rgba(0,0,0,.5)}
.leaflet-popup-content-wrapper{border-radius:var(--r-s);box-shadow:var(--shadow-l);padding:0;overflow:hidden}
.leaflet-popup-content{margin:0;width:294px!important;font-family:var(--sans);line-height:1.55}
.leaflet-popup-tip{box-shadow:none}
.pp{padding:.85rem .95rem}
.pp-cat{font-size:.66rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;margin-bottom:.3rem}
.pp h5{margin:0 0 .4rem;font-size:1rem;font-weight:640;line-height:1.25;letter-spacing:-.01em}
.pp p{margin:0 0 .55rem;font-size:.84rem;color:var(--ink-2)}
.pp .row{font-size:.78rem;color:var(--muted);display:flex;gap:.5rem;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:.5rem;margin-top:.1rem}
.pp .van{background:#fdf3e7;border-left:3px solid var(--sand);padding:.45rem .6rem;border-radius:0 5px 5px 0;font-size:.79rem;margin:.5rem 0 0;color:#5c4415}
.pp .hk{background:#eef6ed;border-left:3px solid var(--maquis);padding:.45rem .6rem;border-radius:0 5px 5px 0;font-size:.79rem;margin:.5rem 0 0;color:#2a4d27}
.pp a.ext{font-size:.78rem;font-weight:600}

/* ---------------------------------------------------- itinerary */
.day{
  display:grid;grid-template-columns:132px 1fr;gap:clamp(1rem,3vw,2.6rem);
  padding:clamp(1.8rem,3.4vw,2.8rem) 0;border-top:1px solid var(--line)
}
.day:first-of-type{border-top:0}
.day-rail{position:sticky;top:82px;align-self:start}
.day-rail .n{font-family:var(--serif);font-size:3.1rem;font-weight:600;letter-spacing:-.04em;line-height:.9;color:var(--porphyry)}
.day-rail .l{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:700;margin-top:.3rem}
.day-rail .drive{margin-top:.9rem;font-size:.79rem;color:var(--slate);border-top:1px solid var(--line);padding-top:.6rem}
.day-rail .drive b{display:block;color:var(--ink);font-weight:620}
.day-body h3{font-family:var(--serif);font-size:clamp(1.3rem,2.2vw,1.72rem);font-weight:600;margin-bottom:.35rem}
.day-body .theme{color:var(--porphyry);font-size:.83rem;font-weight:640;letter-spacing:.02em;margin-bottom:.7rem}
.day-body .intro{color:var(--slate);max-width:66ch}
.stoplist{list-style:none;margin:1.2rem 0 0;padding:0;display:grid;gap:.55rem}
.stoplist li{
  display:grid;grid-template-columns:26px 1fr;gap:.7rem;align-items:start;
  background:#fff;border:1px solid var(--line);border-radius:var(--r-s);padding:.72rem .85rem;box-shadow:var(--shadow)
}
.stoplist .ic{width:26px;height:26px;border-radius:7px;display:grid;place-items:center;font-size:12px;color:#fff}
.stoplist .nm{font-weight:600;font-size:.95rem;line-height:1.35}
.stoplist .nm .tag{
  display:inline-block;font-size:.63rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;
  padding:.1rem .38rem;border-radius:4px;margin-left:.45rem;vertical-align:1px;background:var(--paper-2);color:var(--muted)
}
.stoplist .tx{font-size:.87rem;color:var(--slate);margin-top:.2rem}
.stoplist .meta{display:flex;gap:.8rem;flex-wrap:wrap;font-size:.78rem;color:var(--muted);margin-top:.45rem}
.stoplist .meta b{color:var(--ink-2);font-weight:600}
.note{border-left:3px solid var(--sand);background:#fdf6ea;padding:.7rem .9rem;border-radius:0 var(--r-s) var(--r-s) 0;font-size:.87rem;color:#5c4415;margin-top:.55rem}
.note.hike{border-color:var(--maquis);background:#eef6ed;color:#2a4d27}
.note.warn{border-color:var(--porphyry);background:#fdeee8;color:#7a2d10}
.note b{font-weight:680}
.sleep-row{
  margin-top:1.1rem;display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;
  background:var(--ink);color:#fff;border-radius:var(--r-s);padding:.7rem .9rem;font-size:.88rem
}
.sleep-row .k{font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.5);font-weight:700}
.sleep-row a{color:#8fd9e6}

/* ---------------------------------------------------- cards */
.grid{display:grid;gap:1.1rem;margin-top:2rem}
.g2{grid-template-columns:repeat(auto-fit,minmax(330px,1fr))}
.g3{grid-template-columns:repeat(auto-fit,minmax(272px,1fr))}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:1.25rem 1.35rem;box-shadow:var(--shadow);position:relative}
.card h3{margin-bottom:.3rem;letter-spacing:-.015em}
.card .sub{font-size:.79rem;color:var(--muted);font-weight:600;letter-spacing:.03em;margin-bottom:.7rem}
.card p{font-size:.9rem;color:var(--slate)}
.card p:last-child{margin-bottom:0}
.rank{
  position:absolute;top:-11px;left:1.35rem;background:var(--porphyry);color:#fff;font-family:var(--serif);
  font-size:.82rem;font-weight:600;padding:.15rem .6rem;border-radius:99px;letter-spacing:.02em
}
.rank.alt{background:var(--slate)}
.price{display:inline-block;font-family:var(--mono);font-size:.8rem;letter-spacing:-.03em;background:var(--paper-2);padding:.2rem .5rem;border-radius:5px;color:var(--ink-2)}
.why{border-top:1px solid var(--line);margin-top:.85rem;padding-top:.75rem;font-size:.86rem;color:var(--ink-2)}
.why b{color:var(--porphyry);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;display:block;margin-bottom:.2rem}

/* ---------------------------------------------------- table */
.tbl-wrap{overflow-x:auto;margin-top:1.8rem;border:1px solid var(--line);border-radius:var(--r);background:#fff;box-shadow:var(--shadow)}
table{width:100%;border-collapse:collapse;font-size:.88rem;min-width:720px}
th{
  text-align:left;font-size:.68rem;letter-spacing:.11em;text-transform:uppercase;color:var(--muted);
  font-weight:700;padding:.8rem .95rem;background:var(--paper-2);border-bottom:1px solid var(--line);white-space:nowrap
}
td{padding:.78rem .95rem;border-bottom:1px solid var(--line);vertical-align:top}
tr:last-child td{border-bottom:0}
tbody tr:hover{background:#fbfaf8}
td.n{font-weight:600;color:var(--ink)}
td small{display:block;color:var(--muted);font-weight:400;font-size:.8rem;margin-top:.1rem}
.badge{display:inline-block;font-size:.68rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;padding:.16rem .46rem;border-radius:5px;white-space:nowrap}
.b-easy{background:#e6f4e4;color:#2f6b2a}
.b-mod{background:#fdf1e0;color:#8a5a12}
.b-hard{background:#fbe6e0;color:#9c3312}
.b-d{background:var(--paper-2);color:var(--slate)}

/* ---------------------------------------------------- logistics */
#logistics{background:var(--paper-2)}
.fact{display:grid;grid-template-columns:180px 1fr;gap:1.2rem;padding:1rem 0;border-top:1px solid var(--line);align-items:start}
.fact:first-of-type{border-top:0}
.fact dt{font-weight:650;font-size:.94rem}
.fact dt small{display:block;font-weight:400;color:var(--muted);font-size:.79rem}
.fact dd{margin:0;font-size:.92rem;color:var(--slate)}
.money{margin-top:2rem}
.money table{min-width:520px}
.money td:last-child,.money th:last-child{text-align:right;font-family:var(--mono);white-space:nowrap}
.money tfoot td{font-weight:700;color:var(--ink);background:var(--paper-2);border-top:2px solid var(--line)}
.pack{columns:2;column-gap:2.4rem;list-style:none;padding:0;margin:1.4rem 0 0}
.pack li{break-inside:avoid;padding:.34rem 0 .34rem 1.5rem;position:relative;font-size:.91rem;color:var(--slate)}
.pack li::before{content:"";position:absolute;left:0;top:.72em;width:9px;height:9px;border:1.5px solid var(--maquis);border-radius:3px}
.pack li b{color:var(--ink);font-weight:600}

/* ---------------------------------------------------- footer */
footer{background:var(--ink);color:rgba(255,255,255,.62);padding:3rem 0 2.4rem;font-size:.87rem;border:0}
footer h4{color:#fff;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;margin-bottom:.7rem}
footer a{color:#8fd9e6}
.foot-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:2rem}
footer ul{list-style:none;padding:0;margin:0}
footer li{padding:.16rem 0}
.foot-b{margin-top:2.4rem;padding-top:1.4rem;border-top:1px solid var(--line-d);font-size:.8rem;color:rgba(255,255,255,.42)}

/* ---------------------------------------------------- responsive */
@media (max-width:900px){
  .map-shell{grid-template-columns:1fr;height:auto}
  .map-side{border-right:0;border-bottom:1px solid var(--line-d)}
  .day-list{max-height:250px}
  .map-main{height:64vh;min-height:420px}
  .day{grid-template-columns:1fr;gap:.4rem}
  .day-rail{position:static;display:flex;align-items:baseline;gap:.7rem;flex-wrap:wrap}
  .day-rail .n{font-size:2rem}
  .day-rail .drive{border:0;padding:0;margin:0}
  .day-rail .drive b{display:inline;margin-right:.45rem}
  .fact{grid-template-columns:1fr;gap:.2rem}
  .pack{columns:1}
}
@media (max-width:560px){
  .leaflet-popup-content{width:230px!important}
  .nav .brand{font-size:.94rem}
  .stat b{font-size:1.4rem}
}
@media print{
  .nav,.map-shell,.map-reset{display:none}
  body{background:#fff}
  section{padding:1.2rem 0;break-inside:avoid}
}

/* ---------------------------------------------------- marker clusters */
.cl{
  width:27px;height:27px;border-radius:50%;display:grid;place-items:center;
  background:rgba(18,23,28,.72);color:#fff;border:1.5px solid rgba(255,255,255,.78);
  box-shadow:0 2px 6px rgba(0,0,0,.3);font:600 11px/1 var(--sans);letter-spacing:-.01em;
  transition:.13s
}
.cl:hover{background:rgba(18,23,28,.95);transform:scale(1.12)}
.cl.big{width:32px;height:32px;font-size:12px}
.marker-cluster{background:transparent!important}
.leaflet-control-layers{
  border-radius:var(--r-s)!important;border:1px solid var(--line-d)!important;
  background:rgba(18,23,28,.88)!important;backdrop-filter:blur(8px);color:#fff;
  box-shadow:0 3px 12px rgba(0,0,0,.4)!important;font-size:.82rem
}
.leaflet-control-layers-toggle{background-color:rgba(18,23,28,.88)!important;filter:invert(1) hue-rotate(180deg)}
.leaflet-control-layers label{margin:.15rem 0}
.leaflet-control-layers-expanded{padding:.5rem .7rem!important}
.leaflet-control-attribution{font-size:10px!important;background:rgba(255,255,255,.78)!important}

.leaflet-control-scale-line{
  background:rgba(18,23,28,.8)!important;color:#fff!important;border-color:rgba(255,255,255,.45)!important;
  font-size:10px!important;border-radius:3px
}

/* ---------------------------------------------------- day photo gallery */
.gal{
  display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin:1.3rem 0 .3rem
}
.gal-i{
  position:relative;display:block;padding:0;border:0;cursor:zoom-in;overflow:hidden;
  border-radius:var(--r-s);background:var(--paper-2);aspect-ratio:3/2;
  box-shadow:var(--shadow);font:inherit;text-align:left
}
.gal-i img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .5s cubic-bezier(.2,.7,.3,1);background:var(--paper-2)
}
.gal-i:hover img,.gal-i:focus-visible img{transform:scale(1.06)}
.gal-i::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,transparent 48%,rgba(10,14,18,.72));
  opacity:0;transition:opacity .25s
}
.gal-i:hover::after,.gal-i:focus-visible::after{opacity:1}
.gal-cap{
  position:absolute;left:.55rem;right:.55rem;bottom:.45rem;z-index:2;color:#fff;
  font-size:.76rem;font-weight:560;line-height:1.25;letter-spacing:-.005em;
  text-shadow:0 1px 3px rgba(0,0,0,.6);opacity:0;transform:translateY(4px);
  transition:opacity .25s,transform .25s;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden
}
.gal-i:hover .gal-cap,.gal-i:focus-visible .gal-cap{opacity:1;transform:none}
.gal-i:focus-visible{outline:2px solid var(--sea);outline-offset:2px}

/* photo in a map popup */
.pp-img{position:relative;line-height:0;background:var(--paper-2)}
.pp-img img{width:100%;height:132px;object-fit:cover;display:block}
.pp-img span{
  position:absolute;right:0;bottom:0;background:rgba(10,14,18,.66);color:#fff;
  font-size:9px;line-height:1.5;padding:1px 5px;border-radius:4px 0 0 0;
  max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}

/* ---------------------------------------------------- lightbox */
#lightbox{position:fixed;inset:0;z-index:5000;display:grid;place-items:center}
#lightbox[hidden]{display:none}
.lb-back{position:absolute;inset:0;background:rgba(8,11,14,.93);backdrop-filter:blur(6px);cursor:zoom-out}
.lb-box{
  position:relative;margin:0;z-index:1;max-width:min(1180px,94vw);max-height:92vh;
  display:flex;flex-direction:column;gap:0
}
.lb-img{
  max-width:100%;max-height:76vh;object-fit:contain;border-radius:var(--r-s);
  background:#0e1418;box-shadow:0 24px 70px -20px rgba(0,0,0,.8);display:block;margin:0 auto
}
.lb-box figcaption{padding:.9rem .2rem 0;color:#fff;max-width:78ch;margin:0 auto;text-align:center}
.lb-title{font-family:var(--serif);font-size:1.16rem;font-weight:600;letter-spacing:-.01em}
.lb-sub{font-size:.83rem;color:rgba(255,255,255,.6);margin-top:.15rem}
.lb-credit{font-size:.78rem;color:rgba(255,255,255,.46);margin-top:.5rem}
.lb-credit a{color:#8fd9e6}
.lb-close,.lb-prev,.lb-next{
  position:absolute;z-index:3;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);
  color:#fff;border-radius:99px;cursor:pointer;font:inherit;line-height:1;
  backdrop-filter:blur(6px);transition:.15s
}
.lb-close:hover,.lb-prev:hover,.lb-next:hover{background:rgba(255,255,255,.26)}
.lb-close:focus-visible,.lb-prev:focus-visible,.lb-next:focus-visible{outline:2px solid #8fd9e6;outline-offset:2px}
.lb-close{top:-14px;right:-14px;width:38px;height:38px;font-size:15px}
.lb-prev,.lb-next{top:calc(38vh - 24px);width:48px;height:48px;font-size:30px;padding-bottom:5px}
.lb-prev{left:-22px}
.lb-next{right:-22px}
@media (max-width:900px){
  .gal{grid-template-columns:repeat(2,1fr)}
  .lb-close{top:6px;right:6px}
  .lb-prev{left:2px}
  .lb-next{right:2px}
  .lb-prev,.lb-next{width:42px;height:42px;font-size:26px;top:calc(34vh - 21px)}
  .lb-img{max-height:64vh}
  .gal-cap{opacity:1;transform:none}
  .gal-i::after{opacity:1}
}
@media print{.gal{grid-template-columns:repeat(3,1fr)}#lightbox{display:none}}

/* ---------------------------------------------------- version switcher */
.ver{
  display:inline-flex;margin-left:1rem;background:var(--paper-2);border:1px solid var(--line);
  border-radius:99px;padding:2px;flex:none
}
.ver a{
  padding:.3rem .78rem;border-radius:99px;font-size:.82rem;font-weight:560;color:var(--slate);
  white-space:nowrap;line-height:1.35;transition:.14s
}
.ver a:hover{color:var(--ink);text-decoration:none}
.ver a.on{background:#fff;color:var(--ink);font-weight:640;box-shadow:var(--shadow)}
@media (max-width:760px){
  html{scroll-padding-top:118px}   /* the nav wraps to two rows here */
  .ver{margin-left:auto;order:3}
  .ver a{padding:.28rem .6rem;font-size:.78rem}
  .nav-links{order:4;width:100%}
  .nav-in{flex-wrap:wrap;height:auto;padding-top:.5rem;padding-bottom:.4rem;gap:.6rem}
}

/* ---------------------------------------------------- timing */
.bedby{display:inline-block;margin-top:.35rem;color:var(--sea-d);font-weight:600}
.note.time{border-color:var(--sea);background:#e9f4f6;color:#0f4a54}
.sleep-row .ci{
  flex-basis:100%;font-size:.78rem;color:rgba(255,255,255,.5);
  border-top:1px solid var(--line-d);padding-top:.5rem;margin-top:.1rem
}
.cicard{
  margin-top:.7rem;font-size:.8rem;color:var(--muted);
  border-top:1px dashed var(--line);padding-top:.6rem
}
@media (max-width:900px){ .day-rail .bedby{display:inline;margin:0 0 0 .4rem} }

/* ---------------------------------------------------- the day, roughly */
.flow{
  margin:1.4rem 0 .2rem;background:#fff;border:1px solid var(--line);
  border-radius:var(--r);padding:1.15rem 1.3rem 1rem;box-shadow:var(--shadow)
}
.flow-hd{
  font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:var(--porphyry);margin-bottom:.9rem
}
.flow ol{list-style:none;margin:0;padding:0;position:relative}
.flow ol::before{
  content:"";position:absolute;left:6px;top:.55rem;bottom:.9rem;width:2px;
  background:linear-gradient(180deg,var(--line),var(--line) 85%,transparent)
}
.flow li{
  display:grid;grid-template-columns:150px 1fr;gap:.2rem 1.1rem;
  padding:0 0 .95rem 1.6rem;position:relative;align-items:baseline
}
.flow li::before{
  content:"";position:absolute;left:0;top:.5rem;width:14px;height:14px;border-radius:50%;
  background:#fff;border:2px solid var(--line);box-sizing:border-box
}
.flow li.fix::before{border-color:var(--porphyry);background:var(--porphyry);box-shadow:0 0 0 3px #fdeee8}
.flow li:last-child{padding-bottom:0}
.fw{
  font-size:.83rem;font-weight:650;color:var(--slate);line-height:1.45;
  letter-spacing:.01em
}
.flow li.fix .fw{
  color:var(--porphyry);
  font-variant-numeric:tabular-nums
}
.flow li.fix .fw::after{
  content:"fixed";display:inline-block;margin-left:.45rem;font-size:.6rem;font-weight:700;
  letter-spacing:.09em;text-transform:uppercase;background:#fdeee8;color:var(--porphyry);
  padding:.08rem .34rem;border-radius:4px;vertical-align:1px
}
.ft{font-size:.92rem;color:var(--ink-2);line-height:1.55}
.flow-ft{
  margin:.9rem 0 0;padding-top:.75rem;border-top:1px solid var(--line);
  font-size:.8rem;color:var(--muted)
}
@media (max-width:760px){
  .flow li{grid-template-columns:1fr;gap:.15rem;padding-left:1.5rem}
  .fw{font-size:.78rem}
}
@media print{.flow{break-inside:avoid;box-shadow:none}}

/* ---------------------------------------------------- eating vegan */
.eat{
  margin:1.3rem 0 .2rem;background:#f4f8f1;border:1px solid #d9e6d2;
  border-radius:var(--r);padding:1.1rem 1.3rem 1rem
}
.eat-hd{
  font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:#3f7d3a;margin-bottom:.85rem
}
.eat-l{list-style:none;margin:0;padding:0;display:grid;gap:.85rem}
.eat-n{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;font-weight:640;font-size:.95rem;line-height:1.35}
.eat-b{
  font-size:.62rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:#fff;padding:.13rem .42rem;border-radius:4px;white-space:nowrap
}
.eat-t{font-size:.8rem;font-weight:500;color:var(--muted)}
.eat-x{font-size:.88rem;color:var(--ink-2);margin-top:.2rem;line-height:1.55}
.eat-x a{font-size:.8rem;font-weight:600;white-space:nowrap}
.eat-note{
  margin:.9rem 0 0;padding-top:.8rem;border-top:1px solid #d9e6d2;
  font-size:.89rem;color:#3a5233;line-height:1.6
}
.eat-l:empty+.eat-note{border-top:0;padding-top:0;margin-top:0}
@media print{.eat{break-inside:avoid}}

/* The pin graphic and its glyph are decoration — let clicks and taps land on
   the marker root, so the whole pin is the hit target, not just the emoji. */
.pin,.pin span,.cl{pointer-events:none}
.leaflet-marker-icon.pin-w,.marker-cluster{cursor:pointer}

/* link across to the day-by-day carousel view */
.deckbtn{
  margin-left:.7rem;padding:.32rem .72rem;border-radius:99px;font-size:.8rem;font-weight:600;
  color:var(--ink);background:var(--paper-2);border:1px solid var(--line);white-space:nowrap;flex:none
}
.deckbtn:hover{background:#fff;text-decoration:none;box-shadow:var(--shadow)}
@media (max-width:760px){.deckbtn{margin-left:.4rem;padding:.28rem .55rem;font-size:.76rem}}

/* how many independent guides corroborate a stop */
.srcchip{
  display:inline-block;margin-left:.45rem;font-size:.6rem;font-weight:700;letter-spacing:.06em;
  text-transform:uppercase;padding:.11rem .38rem;border-radius:4px;vertical-align:2px;
  white-space:nowrap;cursor:help
}
.srcchip.hi{background:#e6f4e4;color:#2f6b2a}
.srcchip.mid{background:var(--paper-2);color:var(--slate)}
.srcchip.lo{background:#f3ecf6;color:#6b3f80}
