/* content.css — generated article + home layouts for the wiki build.
   Built on carnet.css tokens; carnet.css remains the canonical design system. */

.pending{color:var(--muted);border-bottom:1px dotted var(--muted);cursor:default;}

/* breathing room between page content and the dark footer band — the home
   sections and article prose/gallery have no bottom spacing of their own */
footer.carnet{margin-top:80px;}
@media(max-width:640px){footer.carnet{margin-top:56px;}}

/* ---- Regions dropdown (desktop nav; hidden on mobile with the rest of .nav nav) ---- */
.navdrop{position:relative;display:inline-flex;align-items:center;}
/* match the <a> nav links exactly (same font/padding/line-height) so the active
   underline lands at the same height on the trigger as on the links */
.navdrop-trigger{font-family:inherit;font-size:13.5px;font-weight:500;line-height:inherit;
  color:var(--ink-2);background:none;border:0;padding:4px 0;cursor:pointer;position:relative;
  display:inline-flex;align-items:center;gap:6px;}
.navdrop-trigger::after{content:"\25BE";font-size:9px;color:var(--muted);transition:transform .15s ease,color .15s ease;}
.navdrop:hover .navdrop-trigger,.navdrop:focus-within .navdrop-trigger{color:var(--accent);}
.navdrop:hover .navdrop-trigger::after,.navdrop:focus-within .navdrop-trigger::after{transform:rotate(180deg);color:var(--accent);}
.navdrop-trigger.here{color:var(--accent);}
/* active-item underline: sit just under the text (carnet's default is -21px, at
   the nav base — too far down); keep both the links and the trigger consistent.
   right:14px on the trigger keeps the bar under "Regions" only, not the caret. */
.nav nav a.here::after{bottom:-5px;}
.navdrop-trigger.here::before{content:"";position:absolute;left:0;right:14px;bottom:-5px;height:2px;background:var(--accent);}
.navdrop-menu{position:absolute;top:calc(100% + 14px);left:50%;
  transform:translateX(-50%) translateY(-6px);min-width:190px;
  background:var(--card);border:1px solid var(--ink);
  box-shadow:0 18px 48px -28px rgba(0,0,0,.55);padding:8px;
  display:flex;flex-direction:column;gap:2px;z-index:60;
  opacity:0;visibility:hidden;transition:opacity .14s ease,transform .14s ease;}
/* invisible bridge so the menu stays open while the cursor crosses the gap */
.navdrop-menu::before{content:"";position:absolute;left:0;right:0;top:-14px;height:14px;}
.navdrop:hover .navdrop-menu,.navdrop:focus-within .navdrop-menu{
  opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);}
.navdrop-menu a{font-size:14px;font-weight:500;color:var(--ink-2);text-decoration:none;
  padding:9px 14px;white-space:nowrap;border-radius:2px;}
.navdrop-menu a:hover{background:var(--paper-2);color:var(--accent);}
.navdrop-menu a.here{color:var(--accent);}
/* menu links live inside .nav nav, so suppress the global .here underline bar
   (it would otherwise float 21px below the active item, across the next row) */
.navdrop-menu a.here::after{display:none;}

/* ---- breadcrumb spacing ---- */
.crumb{padding:20px 0 0;}
.crumb span{color:var(--ink-2);}

/* ---- page hero (content pages) ---- */
.page-hero{padding:18px 0 30px;border-bottom:1px solid var(--hair);margin-bottom:8px;}
.page-hero h1{font-family:var(--serif);font-weight:400;font-size:clamp(40px,6vw,72px);
  line-height:.98;letter-spacing:-.02em;margin:14px 0 0;max-width:18ch;color:var(--ink);}
.page-hero .sub{font-family:var(--serif);font-style:italic;font-size:clamp(18px,2vw,22px);
  color:var(--accent);margin:18px 0 0;max-width:60ch;line-height:1.4;}
.meta-spine{display:flex;gap:18px;flex-wrap:wrap;font-family:var(--mono);font-size:11px;
  letter-spacing:.04em;color:var(--muted);margin-top:22px;}
.meta-spine span b{color:var(--ink);font-weight:600;}

/* ---- prose (markdown body) ---- */
.prose{max-width:68ch;font-size:16.5px;line-height:1.6;color:var(--ink-2);padding:8px 0;}
.prose p{margin:0 0 1.05em;}
.prose a{color:var(--accent);text-decoration:none;border-bottom:1px solid rgba(110,31,44,.22);}
.prose a:hover{border-bottom-color:var(--accent);}
.prose strong{color:var(--ink);font-weight:600;}
.prose em{font-style:italic;}
.prose h2{font-weight:400;font-size:clamp(26px,3vw,36px);letter-spacing:-.01em;
  margin:10px 0 .5em;color:var(--ink);line-height:1.06;}
.prose h3{font-weight:500;font-size:21px;margin:1.7em 0 .35em;color:var(--ink);}
.prose h4{font-weight:600;font-size:16px;margin:1.5em 0 .3em;color:var(--ink);
  font-family:var(--sans);letter-spacing:.01em;}
.prose ul{margin:0 0 1.1em;padding-left:1.1em;}
.prose li{margin:.3em 0;padding-left:.2em;}
.prose li::marker{color:var(--accent);}
.prose .cite{color:var(--muted);font-size:.82em;font-family:var(--mono);
  letter-spacing:.01em;border:0;}

/* the running-head divider before each H2 in body copy */
.prose .rh{margin:42px 0 4px;}
.prose .rh:first-child{margin-top:8px;}

/* ---- home ---- */
.hero{padding:46px 0 30px;display:grid;grid-template-columns:1.1fr .9fr;gap:46px;align-items:stretch;}
.hero-copy{min-width:0;align-self:center;}
.hero h1{font-family:var(--serif);font-weight:400;font-size:clamp(38px,4.8vw,64px);
  line-height:1.0;letter-spacing:-.02em;margin:16px 0 0;max-width:18ch;}
.hero h1 em{font-style:italic;color:var(--accent);}
.hero .sub{font-family:var(--serif);font-style:italic;font-size:clamp(18px,1.8vw,22px);
  color:var(--accent);margin:18px 0 0;}
.hero .lede{font-size:16.5px;color:var(--ink-2);max-width:60ch;margin:20px 0 0;line-height:1.6;}
.hero-img{margin:0;align-self:stretch;border:1px solid var(--hair-2);background:var(--card);overflow:hidden;}
.hero-img img{display:block;width:100%;height:100%;min-height:460px;object-fit:cover;object-position:center 58%;}
.facts{margin-top:44px;}

.home-sec{padding:52px 0 0;}
.section-note{color:var(--ink-2);font-size:15px;max-width:54ch;margin:18px 0 0;}
/* hero collapses to a single column on narrow screens (image below the copy) */
@media(max-width:880px){
  .hero{grid-template-columns:1fr;gap:26px;padding:34px 0 24px;}
  .hero-img img{min-height:0;height:auto;aspect-ratio:16/10;}
}
.map-wrap{margin:22px 0 0;border:1px solid var(--hair-2);background:var(--card);}
.map{display:block;width:100%;height:480px;border:0;}
.map-note{text-align:center;color:var(--muted);font-size:13.5px;margin:14px 0 0;}
.map-note a{color:var(--accent);text-decoration:none;}
.map-note a:hover{text-decoration:underline;}

/* cross-link cards */
.xgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin:24px 0 0;}
.xcard{display:flex;background:var(--card);border:1px solid var(--hair);text-decoration:none;
  color:inherit;transition:box-shadow .15s ease,transform .15s ease;}
.xcard:hover{box-shadow:0 16px 44px -26px rgba(0,0,0,.5);transform:translateY(-2px);}
.xcard.is-pending{opacity:.72;}
.xc-body{padding:22px 24px 24px;display:flex;flex-direction:column;flex:1;}
.xc-body h3{font-weight:400;font-size:24px;margin:0;color:var(--ink);}
.xc-body p{font-size:14.5px;color:var(--ink-2);margin:10px 0 0;line-height:1.5;flex:1;}
.xc-body .open{margin-top:18px;font-size:13px;font-weight:600;letter-spacing:.04em;
  color:var(--accent);display:inline-flex;align-items:center;gap:7px;}
.xc-body .open::after{content:"→";transition:transform .15s ease;}
.xcard:hover .xc-body .open::after{transform:translateX(4px);}

/* route-chooser cards (home §01) */
.rtgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin:24px 0 0;}
.rtcard{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--hair);
  text-decoration:none;color:inherit;padding:22px 24px 24px;
  transition:box-shadow .15s ease,transform .15s ease;}
.rtcard:hover{box-shadow:0 16px 44px -26px rgba(0,0,0,.5);transform:translateY(-2px);}
.rtcard.is-pending{opacity:.72;}
.rt-top{margin-bottom:12px;}
.rt-status{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;
  padding:3px 10px;border:1px solid var(--hair-2);border-radius:999px;color:var(--muted);}
.rt-status.is-contender{border-color:var(--teal);color:var(--teal);}
.rt-status.is-picked{background:var(--accent);border-color:var(--accent);color:#fff;}
.rtcard h3{font-weight:400;font-size:26px;margin:0;color:var(--ink);}
.rt-tag{font-family:var(--serif);font-style:italic;font-size:15.5px;color:var(--accent);margin:8px 0 0;}
.rt-meta{font-family:var(--mono);font-size:11.5px;letter-spacing:.03em;color:var(--ink);margin:14px 0 0;}
.rt-regions{font-size:13.5px;color:var(--ink-2);margin:6px 0 0;}
.rtcard .open{margin-top:18px;}

/* ---- region hub (flagship typed page) ---- */
.r-hero{padding:30px 0 18px;display:grid;grid-template-columns:1.05fr 1fr;gap:48px;align-items:end;}
.r-hero h1{font-family:var(--serif);font-weight:400;font-size:clamp(52px,8vw,104px);line-height:.92;letter-spacing:-.02em;margin:14px 0 0;}
.r-hero .sub{font-family:var(--serif);font-style:italic;font-size:clamp(19px,2vw,23px);color:var(--accent);margin:16px 0 0;}
.r-hero .meta-spine{margin-top:18px;}
.r-hero .intro{font-size:17px;color:var(--ink-2);max-width:48ch;margin:16px 0 0;line-height:1.6;}
.r-hero .heroimg{align-self:stretch;}
.r-hero .heroimg .ph{height:100%;min-height:360px;}

.r-orient{margin:8px 0 0;}

.r-sec{padding:40px 0 8px;}
.r-sec .sec-h{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;margin:20px 0 24px;}
.r-sec .sec-h h2{font-family:var(--serif);font-weight:400;font-size:clamp(28px,3.4vw,40px);letter-spacing:-.01em;margin:8px 0 0;line-height:1.04;}
.r-sec .sec-h .more{font-size:13px;font-weight:600;color:var(--accent);text-decoration:none;white-space:nowrap;}
.r-sec .sec-h .more:hover{text-decoration:underline;}

.vgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--hair);border:1px solid var(--hair);}
.vcard{background:var(--card);text-decoration:none;color:inherit;display:flex;flex-direction:column;transition:background .15s;}
.vcard:hover{background:#fffdf9;}
.vcard .vimg{aspect-ratio:3/2;}
.vcard .vb{padding:15px 16px 18px;}
.vcard h3{font-family:var(--serif);font-size:21px;margin:0;font-weight:400;}
.vcard p{font-size:13px;color:var(--muted);margin:6px 0 0;line-height:1.45;}

.wgrid{display:grid;grid-template-columns:1.2fr 1fr;gap:48px;align-items:start;}
table.wtbl{width:100%;border-collapse:collapse;}
table.wtbl th{text-align:left;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:600;padding:0 0 12px;border-bottom:1px solid var(--ink);}
table.wtbl td{padding:15px 0;border-bottom:1px solid var(--hair);vertical-align:top;}
table.wtbl .wn{font-family:var(--serif);font-size:19px;display:flex;align-items:center;}
table.wtbl .dot{width:9px;height:9px;border-radius:50%;margin-right:9px;display:inline-block;}
table.wtbl .wstyle{font-size:12.5px;color:var(--muted);margin-top:2px;}
table.wtbl .wnote{font-size:14px;color:var(--ink-2);}
.concepts{display:flex;flex-direction:column;gap:1px;background:var(--hair);border:1px solid var(--hair);}
.concept{background:var(--card);padding:18px 20px;position:relative;}
.concept .cn{position:absolute;top:18px;right:18px;font-family:var(--mono);font-size:11px;color:var(--hair-2);}
.concept h4{font-family:var(--serif);font-weight:500;font-size:18px;margin:0;padding-right:26px;}
.concept h4 a{text-decoration:none;border-bottom:1px solid rgba(110,31,44,.25);}
.concept h4 a:hover{color:var(--accent);}
.concept p{font-size:13.5px;color:var(--ink-2);margin:6px 0 0;}

.heritage-band{background:var(--paper-2);border:1px solid var(--hair);border-left:3px solid var(--teal);padding:30px 32px;}
.heritage-band h2{font-family:var(--serif);font-weight:400;font-size:clamp(26px,3vw,34px);margin:8px 0 0;letter-spacing:-.01em;}
.heritage-band p{font-size:15.5px;color:var(--ink-2);max-width:62ch;margin:14px 0 18px;line-height:1.6;}
.heritage-band .hl-row{display:flex;gap:12px;flex-wrap:wrap;}

.itin-cta{display:flex;align-items:center;justify-content:space-between;gap:24px;background:var(--accent-deep);color:#F4E7E4;padding:26px 32px;text-decoration:none;flex-wrap:wrap;}
.itin-cta .lab.teal{color:var(--teal-2);}
.itin-cta .h{font-family:var(--serif);font-size:26px;margin-top:6px;color:#FBF3EA;}
.itin-cta .d{font-size:14px;color:rgba(244,231,228,.7);margin-top:4px;}
.itin-cta .go{font-size:13.5px;font-weight:600;color:#F4E7E4;white-space:nowrap;border:1px solid rgba(255,255,255,.4);padding:10px 16px;}
.itin-cta:hover .go{background:rgba(255,255,255,.12);}

@media(max-width:980px){
  .r-hero{grid-template-columns:1fr;gap:24px;}
  .r-hero .heroimg{order:-1;width:100%;}
  .r-hero .heroimg .ph{min-height:0;aspect-ratio:16/10;}
  .vgrid{grid-template-columns:repeat(2,1fr);}
  .wgrid{grid-template-columns:1fr;gap:30px;}
  .r-sec .sec-h{flex-direction:column;align-items:flex-start;gap:10px;}
}

/* ---- typed detail pages (place + person) ---- */
.p-hero{padding:30px 0 22px;display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:end;}
.p-hero .kindlab{color:var(--teal);}
.p-hero h1{font-family:var(--serif);font-weight:400;font-size:clamp(42px,5.4vw,72px);line-height:.98;letter-spacing:-.02em;margin:14px 0 0;}
.p-hero .sub{font-family:var(--serif);font-style:italic;font-size:clamp(18px,1.8vw,22px);color:var(--accent);margin:16px 0 0;max-width:34ch;}
.p-hero .meta-spine{margin:22px 0 0;}
.p-hero .heroimg{align-self:stretch;}
.p-hero .heroimg .ph{height:100%;min-height:360px;}

.actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px;}

.p-body{display:grid;grid-template-columns:1fr 360px;gap:54px;padding:44px 0 10px;align-items:start;}
.p-body .main .story{margin-top:18px;}
.p-body .main .story p{font-size:16.5px;color:var(--ink-2);margin:0 0 16px;max-width:62ch;}
.p-body .main .story a{color:var(--accent);text-decoration:none;border-bottom:1px solid rgba(110,31,44,.22);}
.p-body .main .story .cite{color:var(--muted);font-size:.82em;font-family:var(--mono);border:0;}

.signatures{margin-top:30px;border-top:1px solid var(--hair);padding-top:22px;}
.signatures ul{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px;}
.signatures li{font-size:13.5px;color:var(--ink);border:1px solid var(--hair-2);border-radius:100px;padding:7px 14px;background:var(--card);}
.signatures li::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent);margin-right:9px;vertical-align:middle;}

.gallery{margin-top:30px;display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:150px;gap:10px;}
.gallery .g{width:100%;height:100%;}
.gallery .g.wide{grid-column:span 2;grid-row:span 2;}

.heritage-mod{margin-top:34px;background:var(--paper-2);border:1px solid var(--hair);border-left:3px solid var(--teal);padding:24px 26px;}
.heritage-mod .lab{color:var(--teal);}
.heritage-mod h3{font-family:var(--serif);font-weight:500;font-size:22px;margin:9px 0 0;}
.heritage-mod p{font-size:15px;color:var(--ink-2);margin:10px 0 0;max-width:58ch;}

.notes{margin-top:34px;border-top:1px solid var(--ink);padding-top:22px;}
.notes .notes-h{display:flex;align-items:center;gap:14px;}
.notes .notes-h .lab{white-space:nowrap;}
.notes .verdict{font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:600;color:#fff;background:var(--accent);padding:5px 11px;white-space:nowrap;}
.notes .body{font-size:18px;line-height:1.6;color:var(--ink);margin:16px 0 0;max-width:60ch;}
.notes .line{font-family:var(--serif);font-style:italic;font-size:19px;color:var(--accent);margin:14px 0 0;}

.side{position:sticky;top:90px;display:flex;flex-direction:column;gap:18px;}
.sidecard{border:1px solid var(--hair);background:var(--card);padding:22px;}
.sidecard .addr{font-size:17px;line-height:1.45;margin:12px 0 0;}
.sidecard .kv{margin:16px 0 0;display:grid;grid-template-columns:auto 1fr;gap:7px 16px;font-size:13.5px;}
.sidecard .kv dt{color:var(--muted);}
.sidecard .kv dd{margin:0;text-align:right;}
.extlinks{margin:18px 0 0;border-top:1px solid var(--hair);}
.extlinks .ext{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--hair);text-decoration:none;font-size:14px;color:var(--ink);white-space:nowrap;}
.extlinks .ext:hover{color:var(--accent);}
.extlinks .ext .arr{font-family:var(--mono);color:var(--muted);font-size:13px;}
.extlinks .ext:hover .arr{color:var(--accent);}

.side-map{display:block;position:relative;margin-top:18px;aspect-ratio:3/2;border:1px solid var(--ink);overflow:hidden;text-decoration:none;background:repeating-radial-gradient(circle at 62% 42%, transparent 0 18px, rgba(110,31,44,.06) 18px 19px, transparent 19px 37px),#f1ece2;}
.side-map .mapnote{position:absolute;left:12px;top:12px;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:600;background:rgba(255,255,255,.85);padding:4px 9px;border-radius:4px;z-index:2;}
.side-map .pin{position:absolute;left:50%;top:46%;width:34px;height:34px;transform:translate(-50%,-70%);}
.side-map .mapcap{position:absolute;left:12px;bottom:12px;right:12px;font-family:var(--mono);font-size:10px;color:#85806f;background:rgba(255,255,255,.82);padding:6px 9px;border-radius:4px;line-height:1.35;}

.bookcard{border:1px solid var(--accent);background:var(--paper-2);padding:20px 22px;}
.bookcard .bk-lab{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);font-weight:600;margin-bottom:12px;}
.bookcard .bk-note{font-size:12.5px;color:var(--muted);margin-top:10px;text-align:center;}

/* person-only modules */
.regionstrip{background:var(--accent-deep);color:#F4E7E4;padding:20px 30px;display:flex;align-items:center;gap:24px;flex-wrap:wrap;}
.regionstrip .rs-lab{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:rgba(244,231,228,.7);font-weight:600;}
.regionstrip .rs-chips{display:flex;gap:10px;flex-wrap:wrap;}
.regionstrip .rs-chips span{font-family:var(--serif);font-size:20px;color:#FBF3EA;padding:4px 16px;border:1px solid rgba(255,255,255,.28);border-radius:100px;}

.ontrip{padding-top:0;scroll-margin-top:84px;}
.trip-regions{margin-top:16px;display:flex;flex-direction:column;gap:14px;}
.trip-region{border:1px solid var(--hair);border-left:3px solid var(--accent);background:var(--card);padding:18px 20px;}
.trip-region .tr-head{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;}
.trip-region .tr-name{font-family:var(--serif);font-size:23px;text-decoration:none;color:var(--ink);}
.trip-region .tr-name:hover{color:var(--accent);}
.trip-region .tr-rel{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:#fff;background:var(--accent);padding:4px 10px;}
.trip-region .tr-detail{font-size:14.5px;color:var(--ink-2);margin:10px 0 0;max-width:62ch;}
.trip-region .tr-places{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px;}
.trip-region .chip{font-size:12.5px;text-decoration:none;color:var(--accent);border:1px solid var(--hair-2);border-radius:100px;padding:6px 13px;background:var(--paper);}
.trip-region .chip:hover{background:var(--accent);color:#fff;border-color:var(--accent);}

.lines{margin-top:32px;border-top:1px solid var(--hair);padding-top:22px;}
.ltbl{width:100%;border-collapse:collapse;margin-top:14px;}
.ltbl th{text-align:left;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:600;padding:0 14px 11px 0;border-bottom:1px solid var(--ink);}
.ltbl td{padding:14px 14px 14px 0;border-bottom:1px solid var(--hair);font-size:14px;color:var(--ink-2);vertical-align:baseline;}
.ltbl .lname{font-family:var(--serif);font-size:18px;color:var(--ink);}
.ltbl .ldates{font-family:var(--mono);font-size:12.5px;color:var(--accent);white-space:nowrap;}
.ltbl .lrel{font-size:12.5px;color:var(--muted);}

.getting{margin:12px 0 0;display:grid;grid-template-columns:auto 1fr;gap:12px 16px;font-size:13.5px;}
.getting dt{color:var(--accent);font-weight:600;white-space:nowrap;}
.getting dd{margin:0;color:var(--ink-2);line-height:1.45;text-align:right;}

.nearby{margin-top:6px;}
.nearby .nb{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--hair);text-decoration:none;color:var(--ink);}
.nearby .nb:last-child{border-bottom:0;}
.nearby .withrow .wr-name{font-family:var(--serif);font-size:18px;}
.nearby .withrow .wr-rel{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:600;}
.nearby .nb:hover .wr-name{color:var(--accent);}

/* village-only modules */
.see{margin-top:30px;border-top:1px solid var(--hair);padding-top:22px;}
.seelist{list-style:none;margin:16px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:2px 36px;}
.seelist li{display:flex;gap:14px;align-items:baseline;padding:13px 0;border-bottom:1px solid var(--hair);}
.seelist .snum{font-family:var(--mono);font-size:11px;color:var(--accent);font-weight:600;padding-top:3px;}
.seelist .sbody{display:flex;flex-direction:column;gap:3px;}
.seelist .sbody b{font-family:var(--serif);font-weight:500;font-size:18px;}
.seelist .sd{font-size:13.5px;color:var(--muted);line-height:1.45;}

.taste{margin-top:32px;border-top:1px solid var(--hair);padding-top:22px;}
.tcards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:16px;}
.tcard{border:1px solid var(--hair);background:var(--card);text-decoration:none;color:inherit;display:flex;flex-direction:column;transition:box-shadow .15s,transform .15s;}
a.tcard:hover{box-shadow:0 14px 36px -24px rgba(0,0,0,.45);transform:translateY(-2px);}
.tcard .timg{aspect-ratio:16/10;}
.tcard .tb{padding:14px 16px 16px;border-top:1px solid var(--hair);}
.tcard .ttype{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-weight:600;}
.tcard h4{font-family:var(--serif);font-weight:400;font-size:19px;margin:7px 0 0;}
.tcard .tloc{font-family:var(--mono);font-size:11.5px;color:var(--muted);margin-top:4px;}

.nearby .nb .nb-name{font-family:var(--serif);font-size:18px;}
.nearby .nb .arr{font-family:var(--mono);font-size:13px;color:var(--muted);}
.nearby .nb:hover .arr{color:var(--accent);}

/* prose tables (markdown pipe tables) */
.prose table.md{width:100%;border-collapse:collapse;margin:8px 0 1.2em;font-size:14.5px;}
.prose table.md th{text-align:left;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:600;padding:0 14px 10px 0;border-bottom:1px solid var(--ink);}
.prose table.md td{padding:11px 14px 11px 0;border-bottom:1px solid var(--hair);color:var(--ink-2);vertical-align:top;}
.prose table.md tr td:first-child{color:var(--ink);font-weight:500;white-space:nowrap;}

/* itinerary page */
.maproute{margin-top:26px;border:1px solid var(--ink);position:relative;height:clamp(360px,52vw,560px);overflow:hidden;background:#EEE8DC;}
.maproute .mapnote{position:absolute;left:16px;top:16px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:600;background:rgba(255,255,255,.86);padding:5px 11px;z-index:3;}
.maproute .mapcap{position:absolute;left:16px;bottom:16px;right:16px;max-width:60ch;font-family:var(--mono);font-size:10.5px;color:#85806f;background:rgba(255,255,255,.84);padding:7px 11px;z-index:3;line-height:1.4;}
.maproute .legend{position:absolute;right:16px;top:16px;display:flex;flex-direction:column;gap:7px;background:rgba(255,255,255,.92);padding:11px 13px;z-index:3;border:1px solid var(--hair);}
.maproute .legend .lg{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--ink-2);}
.maproute .legend .lg b{display:flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:var(--accent);color:#fff;font-family:var(--mono);font-size:10px;}

.itin{padding:46px 0 10px;}
.days{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--hair);border:1px solid var(--hair);margin-top:26px;}
.day{background:var(--card);padding:22px 22px 24px;display:flex;flex-direction:column;}
.day .dn{display:flex;align-items:center;gap:10px;}
.day .dn b{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:var(--accent);color:#fff;font-family:var(--mono);font-size:12px;flex-shrink:0;}
.day .dn span{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:600;}
.day h3{font-family:var(--serif);font-weight:400;font-size:24px;margin:14px 0 0;line-height:1.05;}
.day .route{font-family:var(--mono);font-size:11.5px;color:var(--accent);margin-top:8px;}
.day p{font-size:14.5px;color:var(--ink-2);margin:12px 0 0;}
.day .stops{margin-top:16px;padding-top:14px;border-top:1px solid var(--hair);}
.day .stops .sl{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:600;margin-bottom:9px;}
.day .stops .chips{display:flex;flex-wrap:wrap;gap:7px;}
.day .stay{margin-top:auto;padding-top:14px;display:flex;align-items:baseline;gap:10px;}
.day .stay .sl{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:600;flex-shrink:0;}
.day .stay .sv{font-size:13.5px;color:var(--ink);font-weight:600;display:flex;align-items:center;gap:6px;}
.day .stay .sv a{color:var(--accent);text-decoration:none;border-bottom:1px solid var(--hair);}
.day .stay .sv a:hover{border-bottom-color:var(--accent);}
.day .stay .bed-ic{color:var(--accent);flex-shrink:0;}
.day .stay.depart .sv{color:var(--muted);font-weight:500;}
.day .stay.depart .bed-ic{color:var(--muted);}

.sleep-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:var(--hair);border:1px solid var(--hair);margin-top:26px;}
.sleep-card{background:var(--card);padding:18px 18px 16px;display:flex;flex-direction:column;gap:6px;}
.sleep-card .sleep-nights{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:600;}
.sleep-card .sleep-base{font-family:var(--serif);font-size:20px;display:flex;align-items:center;gap:7px;}
.sleep-card .sleep-base a{color:var(--ink);text-decoration:none;}
.sleep-card .sleep-base a:hover{color:var(--accent);}
.sleep-card .sleep-base .bed-ic{color:var(--accent);width:16px;height:16px;}
.sleep-card .sleep-count{font-family:var(--mono);font-size:11px;color:var(--accent);}

.practical{margin-top:26px;display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.practical .pr{border-top:1px solid var(--ink);padding-top:14px;}
.practical .pr h4{font-family:var(--serif);font-weight:500;font-size:18px;margin:0;}
.practical .pr p{font-size:13.5px;color:var(--ink-2);margin:8px 0 0;}

@media(max-width:880px){
  .days{grid-template-columns:1fr;}
  .practical{grid-template-columns:1fr;}
}

@media(max-width:980px){
  .p-hero{grid-template-columns:1fr;gap:24px;}
  .p-hero .heroimg{order:-1;width:100%;}
  .p-hero .heroimg .ph{min-height:0;aspect-ratio:16/10;}
  .p-body{grid-template-columns:1fr;gap:34px;}
  .side{position:static;}
  .seelist{grid-template-columns:1fr;}
  .tcards{grid-template-columns:1fr;}
}

@media(max-width:880px){
  .xgrid{grid-template-columns:1fr;}
  .rtgrid{grid-template-columns:1fr;}
  .map{height:360px;}
}
@media(max-width:640px){
  .prose{font-size:16px;}
  .vgrid{grid-template-columns:1fr;}
  .gallery{grid-template-columns:repeat(2,1fr);}
}

/* ---- travellers index ---- */
.rchips{display:flex;gap:7px;flex-wrap:wrap;margin-top:14px;}
.rchip{font-size:11px;letter-spacing:.06em;color:var(--accent);border:1px solid var(--hair-2);border-radius:100px;padding:4px 11px;background:var(--paper);}
.pgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-top:24px;}
.pcard{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--hair);text-decoration:none;color:inherit;transition:box-shadow .15s,transform .15s;}
.pcard:hover{box-shadow:0 16px 44px -26px rgba(0,0,0,.5);transform:translateY(-2px);}
.pcard .pcimg{aspect-ratio:16/10;}
.pcb{padding:20px 22px 22px;}
.pcb h3{font-weight:400;font-size:25px;margin:6px 0 0;color:var(--ink);}
.pcb p{font-size:14px;color:var(--ink-2);margin:10px 0 0;line-height:1.5;}

/* ---- family tree ---- */
.tree{margin:26px 0 0;display:flex;flex-direction:column;align-items:center;}
.trow{display:flex;gap:40px;justify-content:center;flex-wrap:wrap;}
.trow.tcouples{gap:60px;}
.tcon{width:1px;height:22px;background:var(--hair-2);}
.couple{display:flex;align-items:stretch;border:1px solid var(--hair);}
.couple .ring{display:flex;align-items:center;padding:0 10px;color:var(--accent);background:var(--paper-2);border-left:1px solid var(--hair);border-right:1px solid var(--hair);font-size:14px;}
.knode{background:var(--card);padding:13px 18px;display:flex;flex-direction:column;gap:3px;min-width:150px;text-align:center;}
.trow > .knode{border:1px solid var(--hair);}
.knode a{font-family:var(--serif);font-size:18px;text-decoration:none;color:var(--ink);}
.knode a:hover{color:var(--accent);}
.knode span:not(.kmeta){font-family:var(--serif);font-size:18px;color:var(--ink);}
.knode .kmeta{font-family:var(--mono);font-size:10.5px;color:var(--muted);letter-spacing:.02em;}
.knode.accent{background:var(--accent);}
.knode.accent a,.knode.accent span:not(.kmeta){color:#fff;}
.knode.accent .kmeta{color:rgba(255,255,255,.7);}

.origins{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:24px;}
.origin{border:1px solid var(--hair);border-left:3px solid var(--teal);background:var(--card);padding:20px 22px;}
.origin .onames{font-size:20px;margin:8px 0 0;color:var(--ink);}
.origin p{font-size:13.5px;color:var(--ink-2);margin:10px 0 14px;line-height:1.5;}
.origin .chip{font-size:12px;text-decoration:none;color:var(--accent);border:1px solid var(--hair-2);border-radius:100px;padding:5px 11px;background:var(--paper);margin:0 6px 6px 0;display:inline-block;}
.origin .chip:hover{background:var(--accent);color:#fff;border-color:var(--accent);}

/* ---- directories ---- */
.dirbar{display:flex;gap:8px;flex-wrap:wrap;margin:24px 0 0;}
.dirfilters{margin:24px 0 0;display:flex;flex-direction:column;gap:12px;}
.dirfilters .dirbar{margin:0;}
.dirrow{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;}
.dirlab{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);min-width:62px;flex:0 0 62px;}
@media (max-width:560px){.dirlab{min-width:100%;flex-basis:100%;}}
.fchip{font-family:inherit;font-size:13px;color:var(--ink-2);border:1px solid var(--hair-2);border-radius:100px;padding:7px 15px;background:var(--card);cursor:pointer;transition:background .12s,color .12s,border-color .12s;}
.fchip:hover{border-color:var(--accent);color:var(--accent);}
.fchip.on{background:var(--accent);color:#fff;border-color:var(--accent);}
.fchip.disabled,.fchip:disabled{opacity:.32;cursor:not-allowed;}
.fchip.disabled:hover,.fchip:disabled:hover{border-color:var(--hair-2);color:var(--ink-2);}
.dcount{font-family:var(--mono);font-size:11.5px;letter-spacing:.04em;color:var(--muted);margin:16px 0 0;}
.dgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:14px 0 0;}
.dcard{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--hair);text-decoration:none;color:inherit;transition:box-shadow .15s,transform .15s;}
.dcard:hover{box-shadow:0 14px 36px -24px rgba(0,0,0,.45);transform:translateY(-2px);}
.dcard .dimg{aspect-ratio:16/10;}
.db{padding:15px 17px 18px;border-top:1px solid var(--hair);}
.db .dtag{font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--accent);font-weight:600;}
.db h3{font-weight:400;font-size:20px;margin:7px 0 0;color:var(--ink);}
.db p{font-size:13px;color:var(--ink-2);margin:8px 0 0;line-height:1.45;}

@media(max-width:880px){
  .pgrid{grid-template-columns:1fr;}
  .origins{grid-template-columns:1fr;}
  .dgrid{grid-template-columns:repeat(2,1fr);}
  .trow,.trow.tcouples{gap:20px;}
}
@media(max-width:560px){
  .dgrid{grid-template-columns:1fr;}
}

/* ---- search ---- */
.sbox{width:100%;box-sizing:border-box;margin:24px 0 0;padding:16px 18px;font-family:var(--sans);
  font-size:17px;color:var(--ink);background:var(--card);border:1px solid var(--ink);border-radius:0;
  outline:none;}
.sbox::placeholder{color:var(--muted);}
.sbox:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(110,31,44,.1);}
.sgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:14px 0 0;}
.scard{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--hair);
  text-decoration:none;color:inherit;padding:16px 18px 18px;transition:box-shadow .15s,transform .15s;}
.scard:hover{box-shadow:0 14px 36px -24px rgba(0,0,0,.45);transform:translateY(-2px);}
.scard .sc-tag{font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--accent);
  font-weight:600;}
.scard h3{font-family:var(--serif);font-weight:400;font-size:20px;margin:7px 0 0;color:var(--ink);}
.scard p{font-size:13px;color:var(--ink-2);margin:8px 0 0;line-height:1.45;}
.sempty{margin:24px 0 0;color:var(--muted);font-family:var(--serif);font-style:italic;font-size:18px;}
@media(max-width:880px){.sgrid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:560px){.sgrid{grid-template-columns:1fr;}}

/* --- Photographs (real <img> replacing .ph placeholders) --- */
.heroimg img.hmedia, .article-hero img.hmedia {
  width: 100%; height: 100%; object-fit: cover; display: block;
  border-radius: inherit;
}
.article-hero {
  margin: 18px 0 6px; border-radius: 10px; overflow: hidden;
  aspect-ratio: 16 / 9; background: var(--paper, #f4efe6);
}
.gallery figure.gcell { margin: 0; display: flex; flex-direction: column; }
.gallery img.g {
  width: 100%; height: 100%; object-fit: cover; display: block;
  border-radius: 8px;
}
.gallery figure.gcell figcaption {
  font-size: 12px; color: var(--ink-soft, #6b6256); margin-top: 6px;
  line-height: 1.3;
}
.credit-group { margin: 0 0 28px; }
.credits { list-style: none; padding: 0; margin: 8px 0 0; }
.credits li { margin: 0 0 6px; font-size: 14px; }
.credits .cap { font-style: italic; }
/* Card thumbnails that use a linked page's hero photo */
.tcard img.timg { aspect-ratio: 16 / 10; width: 100%; object-fit: cover; display: block; }
.vcard img.vimg { aspect-ratio: 3 / 2; width: 100%; object-fit: cover; display: block; }
.dcard img.dimg { aspect-ratio: 16 / 10; width: 100%; object-fit: cover; display: block; }
.pcard img.pcimg { aspect-ratio: 16 / 10; width: 100%; object-fit: cover; display: block; }
/* Functional embedded map filling the Visit-sidebar map box */
.side-map .mapembed { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.itin-list{display:flex;flex-direction:column;gap:12px;margin-top:8px}
.itin-row{display:flex;gap:14px;align-items:stretch;background:#fff;border:1px solid var(--line,#eadfce);border-radius:9px;padding:12px;cursor:pointer}
.itin-row .cmp-check{align-self:center;margin:0 2px}
.ribar{flex:0 0 10px;border-radius:5px;display:block}
.itin-main{flex:1;text-decoration:none;color:inherit}
.itin-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.itin-head h3{font-family:Georgia,serif;margin:0;font-size:19px}
.ribchip{font-size:10px;letter-spacing:.06em;text-transform:uppercase;font-weight:700;padding:2px 7px;border-radius:3px}
.st-draft{background:#eee;color:#888}.st-contender{background:#fde7d2;color:#9a6a14}.st-picked{background:#e3f3e9;color:#1e7a44}
.ribadges{margin:5px 0}
.ribadge{display:inline-block;font-size:11px;font-weight:600;padding:2px 8px;border-radius:10px;color:#fff;margin-right:5px}
.itin-facts{font-size:13px;color:#555}
.cmp-bar{margin-top:18px}
.cmp-go{display:inline-block;background:#6E1F2C;color:#fff;padding:9px 16px;border-radius:6px;text-decoration:none;font-size:14px}
.cmp-go[aria-disabled=true]{background:#cbb8bb;pointer-events:none}
.cmp-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-top:10px}
.cmp-col{background:#fff;border:1px solid var(--line,#eadfce);border-radius:9px;padding:12px}
.cmp-col h3{font-family:Georgia,serif;margin:8px 0 4px;font-size:18px}
.cmp-map{width:100%;height:150px;border:0;border-radius:6px;display:block}
.crow-label{font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:#998;font-weight:700;margin:9px 0 2px}
.crow{font-size:13px;color:#333}
.crow.cdiff{background:#fff6ea;border-left:2px solid #d8a24a;padding-left:6px}
.cspine{margin-top:3px}
.cspine-row{display:block;font-size:11px;color:#555;border-left:2px solid #ccc;padding:1px 0 1px 7px;margin-bottom:1px}
.cmp-tag{font-size:12px;color:#777;font-style:italic;margin:0 0 4px}
