/* Shared design for travel/share: day pages + trip overview (index.html). */
:root{
  --navy:#1b2940;--navy-2:#2a3b58;--gold:#b08d57;--gold-soft:#e9dcc3;
  --terra:#b5583a;--cream:#f7f2e8;--paper:#fffdf8;--ink:#25272c;--muted:#6c6a64;--line:#e4dccb;
  --ok:#2f6b4f;--ok-bg:#e4efe7;--plan:#8a6a2f;--plan-bg:#f6ecd6;--dec:#a2452a;--dec-bg:#f8e1d8;
  --opt:#6f6b62;--opt-bg:#f1eee8;--unv:#5b4a86;--unv-bg:#ece8f5;
  --serif:'Cormorant Garamond',Georgia,'Times New Roman',serif;
  --sans:'Inter',system-ui,-apple-system,'Segoe UI',Arial,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);font:15px/1.6 var(--sans)}
a{color:var(--navy-2)}
.wrap{max-width:1040px;margin:0 auto;padding:0 28px}
/* COVER */
.cover{position:relative;min-height:520px;color:#f7f1e3;display:flex;align-items:flex-end;background:var(--navy) center/cover no-repeat;overflow:hidden}
.cover:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(17,26,43,.35) 0%,rgba(17,26,43,.25) 35%,rgba(17,26,43,.88) 100%)}
.cover:after{content:"";position:absolute;inset:auto 0 0 0;height:4px;background:linear-gradient(90deg,var(--gold),#d8bd8a,var(--terra))}
.cover .wrap{position:relative;z-index:1;width:100%;padding-top:40px;padding-bottom:40px}
.brand{position:absolute;z-index:1;top:22px;left:0;right:0}
.brand .wrap{display:flex;justify-content:space-between;align-items:center;padding-top:0;padding-bottom:0}
.brand a{color:#efe6d2;text-decoration:none;font:500 11px var(--sans);letter-spacing:.28em;text-transform:uppercase}
.brand .mark{font:600 20px var(--serif);letter-spacing:.08em;color:#fff}
.eyebrow{font:500 12px/1 var(--sans);letter-spacing:.32em;text-transform:uppercase;color:var(--gold)}
.cover .eyebrow{color:#e2c58f}
.cover h1{font:600 58px/1.03 var(--serif);margin:14px 0 8px;text-shadow:0 2px 18px rgba(0,0,0,.35)}
.cover .sub{font:italic 500 22px/1.4 var(--serif);color:#efe6d2;margin:0 0 20px;max-width:760px}
.cover .meta{display:flex;flex-wrap:wrap;gap:10px 30px;font-size:12.5px;color:#d9d0bd;border-top:1px solid rgba(176,141,87,.45);padding-top:16px}
.cover .meta b{display:block;color:#fff;font-weight:500;font-size:13.5px;margin-top:2px}
.cover .credit{position:absolute;z-index:1;right:12px;bottom:10px;font-size:10.5px;color:rgba(255,255,255,.72)}
.cover .credit a{color:rgba(255,255,255,.85)}
/* DAY NAV */
nav.days{position:sticky;top:0;z-index:5;background:rgba(255,253,248,.95);backdrop-filter:blur(6px);border-bottom:1px solid var(--line)}
nav.days .wrap{display:flex;gap:14px;align-items:center;justify-content:space-between;padding-top:10px;padding-bottom:10px;font:500 12px var(--sans);letter-spacing:.12em;text-transform:uppercase}
nav.days a{color:var(--navy);text-decoration:none;white-space:nowrap}
nav.days a:hover{color:var(--terra)}
nav.days .mid{display:flex;gap:16px;overflow-x:auto}
/* SECTIONS */
section{padding:46px 0 6px}
h2{font:600 34px/1.1 var(--serif);color:var(--navy);margin:0 0 6px;display:flex;gap:12px;align-items:baseline}
h2 .n{font:500 13px var(--sans);letter-spacing:.2em;color:var(--gold)}
.rule{width:56px;height:2px;background:var(--gold);margin:0 0 18px}
h3{font:600 22px/1.2 var(--serif);color:var(--navy);margin:0 0 8px}
.lede{color:var(--muted);max-width:780px;margin:0 0 18px}
p{margin:0 0 10px}
ul,ol{margin:0;padding-left:1.2em}
li{margin:4px 0}
.card{background:var(--paper);border:1px solid var(--line);border-radius:14px;box-shadow:0 10px 30px -20px rgba(27,41,64,.28);padding:20px 22px}
.grid{display:grid;gap:16px}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:820px){.g2,.g3{grid-template-columns:1fr}.cover h1{font-size:42px}.cover{min-height:440px}}
/* BADGES */
.badge{display:inline-flex;align-items:center;gap:5px;font:600 10.5px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;padding:5px 9px;border-radius:999px;white-space:nowrap;vertical-align:middle}
.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.b-ok{color:var(--ok);background:var(--ok-bg);border:1px solid #c5dccd}
.b-plan{color:var(--plan);background:var(--plan-bg);border:1px solid #e6d3a8}
.b-dec{color:var(--dec);background:var(--dec-bg);border:1px solid #efc3b2}
.b-opt{color:var(--opt);background:var(--opt-bg);border:1px dashed #c9c3b6}
.b-unv{color:var(--unv);background:var(--unv-bg);border:1px dashed #c3b9dc}
.b-type{color:#3b5b7a;background:#eef2f6;border:1px solid #c9d4df}
ul.brochure{list-style:none;padding:0;margin:0}
ul.brochure li{padding:10px 0;border-top:1px solid #e7e1d6}
ul.brochure li:first-child{border-top:none}
ul.brochure .when{display:inline-block;min-width:92px;font-weight:600}
ul.brochure .badge{margin-left:6px}
h4.day{margin:18px 0 2px;padding:7px 0 5px;border-bottom:1px solid var(--line);color:var(--terra);font:600 15px/1.25 var(--sans)}
.cover .badge{border-color:transparent}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}
/* ACTION */
.deadline{background:var(--dec-bg);border-left:4px solid var(--terra);border-radius:10px;padding:14px 18px;margin:0 0 16px}
.deadline strong{color:var(--dec)}
.dec{display:grid;grid-template-columns:3.4rem 1fr;gap:12px;align-items:start;padding:12px 0;border-top:1px solid var(--line)}
.dec:first-child{border-top:0;padding-top:0}
.dec .id{font:600 12px var(--sans);letter-spacing:.08em;color:var(--terra);background:var(--dec-bg);border-radius:6px;text-align:center;padding:5px 0}
.dec .rec{display:block;font-size:13.5px;color:var(--muted);margin-top:2px}
/* TABLE */
.scroll{overflow-x:auto;border:1px solid var(--line);border-radius:14px;background:var(--paper)}
table{border-collapse:collapse;width:100%;font-size:14px}
th,td{text-align:left;vertical-align:top;padding:11px 14px;border-bottom:1px solid var(--line)}
th{font:600 11px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);background:#fbf7ee}
tr:last-child td{border-bottom:0}
.code{font:500 12.5px ui-monospace,Consolas,monospace;color:var(--navy-2);background:#f3eee2;padding:1px 6px;border-radius:4px}
/* ROUTE */
.route{display:flex;flex-wrap:wrap;gap:8px 6px;align-items:center;margin:0 0 16px}
.route span{background:var(--paper);border:1px solid var(--line);border-radius:999px;padding:5px 12px;font-size:13.5px}
.route i{color:var(--gold);font-style:normal}
/* TIMELINE */
.timeline{list-style:none;margin:0;padding:0;position:relative}
.timeline:before{content:"";position:absolute;left:92px;top:6px;bottom:6px;width:2px;background:linear-gradient(var(--gold-soft),var(--gold),var(--gold-soft))}
.timeline li{display:grid;grid-template-columns:80px 1fr;gap:28px;margin:0 0 14px;position:relative}
.timeline .t{font:600 15px var(--serif);color:var(--navy);text-align:right;padding-top:14px;letter-spacing:.02em}
.timeline li:before{content:"";position:absolute;left:86px;top:18px;width:10px;height:10px;border-radius:50%;background:var(--paper);border:2px solid var(--gold)}
.timeline li.booked:before{background:var(--ok);border-color:var(--ok)}
.timeline li.decision:before{background:var(--terra);border-color:var(--terra)}
.timeline li.optional:before{border-style:dashed;border-color:var(--opt)}
.timeline .body{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:12px 16px}
.timeline .what{font-weight:600;color:var(--ink);margin-right:6px}
.timeline .note{display:block;font-size:13.5px;color:var(--muted);margin-top:3px}
.timeline .badge{margin-left:2px}
@media (max-width:620px){.timeline:before{left:6px}.timeline li{grid-template-columns:1fr;gap:4px;padding-left:24px}.timeline li:before{left:0;top:6px}.timeline .t{text-align:left;padding-top:0}}
/* FIGURES */
figure{margin:0}
figure img{display:block;width:100%;height:auto;border-radius:12px}
figcaption{font-size:11px;color:var(--muted);margin-top:6px;line-height:1.4}
figcaption b{color:var(--ink);font-weight:600}
.photos{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin:18px 0 0}
.photos img{aspect-ratio:4/3;object-fit:cover}
.photos figure:only-child{max-width:640px}
.photos img{max-height:420px}
/* LISTS WITH BADGES */
.items{list-style:none;padding:0;margin:0}
.items li{display:flex;gap:12px;align-items:flex-start;padding:10px 0;border-top:1px solid var(--line);margin:0}
.items li:first-child{border-top:0;padding-top:0}
.items li .badge{flex:0 0 auto;margin-top:2px}
.items li .x{flex:1 1 auto;min-width:0}
.items li .x small{display:block;color:var(--muted);font-size:13px}
.view h3 .ic{font-size:20px;margin-right:6px}
.light{background:linear-gradient(135deg,#fffaf0,#f6ecd6);border:1px solid #ead8b0}
.shop{background:linear-gradient(135deg,#fbf6ee,#f3e7e0);border:1px solid #e8cfc2}
.pc{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:820px){.pc{grid-template-columns:1fr}}
.verdict{font-weight:600;white-space:nowrap}
.verdict.yes{color:var(--ok)}.verdict.no{color:var(--dec)}
.callout{background:var(--plan-bg);border-radius:12px;padding:14px 18px;margin-top:16px}
footer{margin-top:56px;padding:28px 0 46px;border-top:1px solid var(--line);font-size:12.5px;color:var(--muted)}
footer h4{font:600 18px var(--serif);color:var(--navy);margin:0 0 6px}
footer ul{padding-left:1.1em}
/* INDEX */
.daygrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px}
.daycard{display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--line);border-radius:14px;overflow:hidden;text-decoration:none;color:inherit;box-shadow:0 10px 30px -20px rgba(27,41,64,.3);transition:transform .15s}
.daycard:hover{transform:translateY(-2px)}
.daycard img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block}
.daycard .in{padding:14px 18px 18px;display:flex;flex-direction:column;gap:6px}
.daycard .d{font:500 11px var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
.daycard h3{margin:0;font-size:23px}
.daycard p{font-size:13.5px;color:var(--muted);margin:0}
.citybar{display:flex;align-items:baseline;gap:14px;margin:34px 0 14px}
.citybar h2{margin:0}
.citybar span{color:var(--muted);font-size:13px;letter-spacing:.12em;text-transform:uppercase}
/* PRINT */
@media print{
  @page{size:A4;margin:14mm}
  body{background:#fff;font-size:11pt}
  nav.days,.brand{display:none}
  .cover{min-height:0;height:78mm;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .cover h1{font-size:30pt}
  .card,.timeline .body,.scroll,.daycard{box-shadow:none;break-inside:avoid}
  section{padding-top:16px;break-inside:auto}
  h2{break-after:avoid}
  .timeline li,figure,tr,.dec,.items li{break-inside:avoid}
  .badge,.deadline,.light,.shop,th,.callout{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  a{color:inherit;text-decoration:none}
  .photos{grid-template-columns:repeat(3,1fr)}
}

/* ===== Trip overview components (merged from the overview page) ===== */
.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:900px){.g4{grid-template-columns:1fr 1fr}.monogram{display:none}}
@media (max-width:600px){.g4{grid-template-columns:1fr}}
.cover .monogram{position:absolute;z-index:1;right:28px;top:70px;width:120px;height:120px;border:1px solid rgba(176,141,87,.6);border-radius:50%;display:flex;align-items:center;justify-content:center;font:600 34px var(--serif);color:#e2c58f}
.cover .monogram:before{content:"";position:absolute;inset:8px;border:1px solid rgba(176,141,87,.3);border-radius:50%}
/* KPI */
.kpi .n{font:600 44px/1 var(--serif);color:var(--navy)}
.kpi .l{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-top:6px}
.kpi.k-ok .n{color:var(--ok)} .kpi.k-dec .n{color:var(--dec)} .kpi.k-plan .n{color:var(--plan)}
/* CITY STRIP */
.stops{display:flex;align-items:stretch;gap:0;margin-top:20px;overflow-x:auto}
.stop{flex:1;min-width:190px;background:var(--paper);border:1px solid var(--line);padding:18px 18px 16px;position:relative}
.stop:first-child{border-radius:14px 0 0 14px} .stop:last-child{border-radius:0 14px 14px 0}
.stop + .stop{border-left:none}
.stop .city{font:600 26px/1 var(--serif);color:var(--navy)}
.stop .nights{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin:6px 0 8px;font-weight:600}
.stop .dates{font-size:13px;color:var(--muted)}
.stop .hotel{font-size:13px;margin-top:8px}
.stop .leg{position:absolute;right:-13px;top:50%;transform:translateY(-50%);z-index:2;background:var(--navy);color:var(--gold-soft);width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px}
.stop:last-child .leg{display:none}
.legend{display:flex;flex-wrap:wrap;gap:12px 22px;align-items:center}
.legend .item{display:flex;gap:10px;align-items:center;font-size:13px;color:var(--muted)}
/* FLOWCHARTS (mermaid) */
.diagram{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:18px;overflow-x:auto}
.diagram .mermaid{min-width:760px;text-align:center}
.g2 .diagram .mermaid,.diagram.day-flow .mermaid{min-width:0}
.caption{font-size:12.5px;color:var(--muted);margin-top:10px}
/* CITY TIMELINES */
.city-block{margin-top:34px}
.city-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 18px;border-bottom:1px solid var(--line);padding-bottom:10px;margin-bottom:6px}
.city-head .ttl{font:600 32px/1 var(--serif);color:var(--navy)}
.city-head .span{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);font-weight:600}
.city-head .stay{font-size:13px;color:var(--muted)}
.city-timeline{position:relative;margin-left:16px;padding-left:28px;border-left:2px solid var(--gold-soft)}
.ov-day{position:relative;margin:18px 0}
.city-timeline .ov-day:before{content:"";position:absolute;left:-36px;top:20px;width:12px;height:12px;border-radius:50%;background:var(--paper);border:3px solid var(--gold)}
.ov-day .date{font:600 13px var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--terra)}
.ov-day h4{font:600 22px/1.2 var(--serif);color:var(--navy);margin:4px 0 8px}
.ov-day h4 a{color:inherit;text-decoration:none}
.ov-day h4 a:hover{color:var(--terra)}
.ov-day ul{margin:6px 0 0;padding-left:0;list-style:none}
.ov-day li{display:flex;gap:10px;align-items:flex-start;padding:7px 0;border-top:1px dashed var(--line);font-size:14px;margin:0}
.ov-day li:first-child{border-top:none}
.ov-day li .t{flex:1 1 auto;min-width:0}
.ov-day li .badge{flex:0 0 auto;margin-top:1px;min-width:106px;justify-content:center}
.ov-day .open{display:inline-block;margin-top:8px;font:500 12px var(--sans);letter-spacing:.12em;text-transform:uppercase}
.transfer{display:flex;gap:12px;align-items:center;margin:16px 0 0 -6px;padding:12px 16px;background:linear-gradient(90deg,#1b2940,#2a3b58);color:#efe6d3;border-radius:10px;font-size:13.5px}
.transfer .ic{font-size:18px}
.transfer b{color:#fff;font-weight:600}
/* STATUS TABLE */
tr.group td{background:#f3ecdd;font:600 15px var(--serif);color:var(--navy);letter-spacing:.02em}
td.when{white-space:nowrap;color:var(--muted)}
.small{font-size:12.5px;color:var(--muted)}
.zh{display:block;color:#5a4a3a;font-size:.92em}
/* CHECKS + NEXT ACTIONS */
.flag{border-left:4px solid var(--terra)}
.flag h3{font-size:20px}
.flag p{margin:6px 0 0;font-size:14px}
.actions ol{margin:0;padding-left:0;list-style:none;counter-reset:a}
.actions li{counter-increment:a;position:relative;padding:12px 0 12px 46px;border-top:1px solid var(--line);margin:0}
.actions li:first-child{border-top:none}
.actions li:before{content:counter(a);position:absolute;left:0;top:11px;width:30px;height:30px;border-radius:50%;background:var(--navy);color:var(--gold-soft);font:600 15px/30px var(--serif);text-align:center}
.when-tag{font:600 11px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--terra)}
.pr-list li{margin:6px 0}
code{font-size:12.5px;background:#f1ebde;padding:1px 5px;border-radius:4px}
.daycard .chips .day-status{order:-1}
.citybar h3{margin:0;font:600 30px/1.1 var(--serif);color:var(--navy)}
@media print{
  .diagram,.stop,.kpi{box-shadow:none}
  .ov-day,.flag,.diagram,.stop{break-inside:avoid;page-break-inside:avoid}
  .transfer,tr.group td,.day-status{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .diagram{overflow:visible}.diagram .mermaid{min-width:0}
  .diagram svg{max-width:100%!important;height:auto}
}
/* CATEGORY ROW (index top): jump straight to one category page */
nav.catnav{background:var(--navy);border-bottom:2px solid var(--gold)}
nav.catnav .wrap{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;padding-top:10px;padding-bottom:10px}
nav.catnav .lbl{color:#d9d0bd;font:500 11px var(--sans);letter-spacing:.2em;text-transform:uppercase;margin-right:6px}
nav.catnav a{color:#fff;text-decoration:none;font:600 14px var(--sans);padding:6px 14px;border:1px solid rgba(176,141,87,.7);border-radius:999px}
nav.catnav a:hover,nav.catnav a[aria-current="page"]{background:var(--gold);color:var(--navy)}

/* City navigation and brochure links */
nav.citynav{background:#f3ecdd;border-bottom:1px solid var(--line)}
nav.citynav .wrap{display:flex;flex-wrap:wrap;gap:6px 10px;padding-top:8px;padding-bottom:8px}
nav.citynav a{color:var(--navy);text-decoration:none;font:500 13px var(--sans);padding:5px 12px;border:1px solid rgba(176,141,87,.45);border-radius:999px}
nav.citynav a:hover,nav.citynav a:focus-visible{background:var(--gold-soft);outline-color:var(--navy)}
.citymap{height:260px;min-height:220px;margin:14px 0 4px;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#e8e4da}
.citymap .leaflet-container{height:100%;width:100%;font:13px var(--sans)}
.btns{display:inline-flex;flex-wrap:wrap;gap:6px;margin-top:5px}
.btn{display:inline-flex;align-items:center;padding:4px 10px;border:1px solid var(--gold);border-radius:999px;color:var(--navy);background:#fbf8f1;text-decoration:none;font:600 11px var(--sans);line-height:1.35}
.btn:hover,.btn:focus-visible{background:var(--gold-soft);text-decoration:none}
.btn-book{background:#e8efe5;border-color:#9aa98f}
.btn-walk{background:#f3ecdd;color:var(--muted);border-color:var(--line)}
.url{font-size:10.5px;color:var(--muted);word-break:break-all}
.badge.b-must{background:#e8d39c;color:#49350f;border-color:#c39c45}
.badge.b-note{background:#e7edf3;color:#30485d;border-color:#aebdcb;font-size:10px}
.small.sub{margin:16px 0 4px;padding-top:10px;border-top:1px solid var(--line);color:var(--terra);font-weight:600}
@media(max-width:600px){.citymap{height:230px;margin-left:-4px;margin-right:-4px}.btns{gap:5px}.btn{padding:5px 9px}}

.entry-list{display:grid;gap:12px}.entry-card{padding:14px 18px}.entry-card h3{font:600 17px/1.35 var(--serif);margin:0 0 8px}.entry-card p{margin:5px 0;font-size:13px;color:var(--muted)}.entry-card .badge{margin-left:6px}.zh{display:block;margin:8px 0;color:var(--muted);font-size:13px}
