:root{
  --cream:#FAF6EC;--paper:#FFFDF7;--ink:#182236;--muted:#5C6478;--hair:#E7DECB;
  --cobalt:#21457E;--carmine:#A62B4C;--teal:#2C7A87;--amber:#C58A2E;--amber-soft:#F3E7CC;
}
*{box-sizing:border-box;}
body{margin:0;background:var(--cream);color:var(--ink);font-family:"Inter",system-ui,sans-serif;-webkit-font-smoothing:antialiased;line-height:1.5;}
.wrap{max-width:960px;margin:0 auto;padding:26px 20px 64px;}
.backlink{display:inline-block;margin-bottom:16px;font-size:.82rem;font-weight:600;color:var(--cobalt);text-decoration:none;}
.backlink:hover{text-decoration:underline;}
.eyebrow{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--carmine);font-weight:600;margin-bottom:10px;}
h1{font-family:"Fraunces",Georgia,serif;font-weight:600;font-size:clamp(2rem,6.5vw,3.2rem);line-height:1.03;margin:0 0 8px;color:var(--cobalt);letter-spacing:-.01em;}
.tagline{font-family:"Fraunces",Georgia,serif;font-style:italic;font-size:clamp(1rem,3.2vw,1.25rem);color:var(--muted);margin:0 0 6px;max-width:640px;}
.window{font-size:.95rem;color:#44506a;margin:0 0 26px;font-weight:500;}
.window b{color:var(--cobalt);}

.vid{position:relative;padding-bottom:56.25%;height:0;overflow:hidden;border-radius:14px;border:1px solid var(--hair);margin:2px 0 6px;background:#000;}
.vid iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
.vidcap{font-size:.8rem;color:var(--muted);margin:0 0 20px;}
.tripmap{height:400px;width:100%;border-radius:14px;border:1px solid var(--hair);overflow:hidden;background:#eef1f4;margin:2px 0 6px;}
.maplegend{display:flex;flex-wrap:wrap;gap:8px 16px;margin:0 0 22px;font-size:.8rem;color:var(--muted);align-items:center;}
.maplegend .mchip{display:inline-flex;align-items:center;gap:7px;}
.maplegend .mchip i{width:20px;height:0;border-top:4px solid var(--muted);border-radius:2px;display:inline-block;}
.maplegend .mchip.drive i{border-top-color:#D2761E;}
.maplegend .mchip.rail i{border-top-color:#2E7D4F;}
.maplegend .mchip.fly i{border-top-color:#7A4FA3;}
.maplegend .mchip.base i{width:11px;height:11px;border:0;border-radius:50%;background:#182236;}
.maplegend .mchip.stop i{width:11px;height:11px;border:0;border-radius:50%;background:#2C7A87;}
.leaflet-tooltip.citytip{background:rgba(255,253,247,.95);border:1px solid var(--hair);color:var(--ink);font-family:"Inter",sans-serif;font-size:.72rem;font-weight:600;padding:2px 7px;border-radius:6px;box-shadow:0 1px 4px rgba(0,0,0,.15);}
.leaflet-tooltip.citytip::before{display:none;}
.driveline{display:flex;flex-wrap:wrap;align-items:flex-start;gap:1px;margin:2px 0 9px;}
.driveline .dstop{font-weight:600;color:var(--ink);white-space:nowrap;font-size:.86rem;padding-top:1px;}
.driveline .dleg{display:inline-flex;flex-direction:column;align-items:center;line-height:1.05;margin:0 4px;}
.driveline .dleg .da{color:var(--amber);font-weight:700;font-size:.9rem;}
.driveline .dleg .dt{font-size:.62rem;color:var(--muted);margin-top:2px;white-space:nowrap;}
.driveline.rail .dleg .da{color:var(--teal);}
.section-label{font-family:"Fraunces",Georgia,serif;font-weight:600;font-size:1.35rem;color:var(--ink);margin:34px 0 14px;display:flex;align-items:center;gap:12px;}
.section-label::after{content:"";flex:1;height:1px;background:var(--hair);}

/* comparison strip */
.cmp{background:var(--paper);border:1px solid var(--hair);border-radius:16px;padding:6px 6px;margin:0 0 8px;}
.cmp-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:2px;}
.cmp-card{padding:14px 12px;text-align:center;}
.cmp-card .lbl{font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:700;margin-bottom:6px;}
.cmp-card .val{font-family:"Fraunces",Georgia,serif;font-weight:600;font-size:1.35rem;color:var(--cobalt);line-height:1.05;}
.cmp-card .vs{font-size:.72rem;color:var(--muted);margin-top:3px;}
.cmp-card.hot .val{color:var(--carmine);} .cmp-card.good .val{color:var(--teal);}
.cmp-note{font-size:.85rem;color:#44506a;margin:0 0 4px;padding:0 6px;}

/* day cards */
.days{display:grid;gap:12px;}
.cday{background:var(--paper);border:1px solid var(--hair);border-left:5px solid var(--cobalt);border-radius:12px;padding:15px 17px;}
.cday .dh{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:8px;}
.cday .dnum{font-family:"Fraunces",Georgia,serif;font-weight:600;font-size:1.1rem;color:var(--amber);}
.cday .dcity{font-weight:600;font-size:1.02rem;color:var(--ink);}
.cday .ddate{font-size:.8rem;color:var(--muted);}
.cday ul{margin:0 0 9px;padding-left:18px;}
.cday li{font-size:.9rem;color:#333b4d;margin-bottom:3px;}
.cday .foot{display:flex;flex-wrap:wrap;gap:14px;font-size:.83rem;padding-top:8px;border-top:1px solid var(--hair);}
.cday .sleep{color:var(--cobalt);font-weight:600;}
.cday .free{color:var(--teal);font-weight:700;}
.cday .food{color:#5a4a2a;}
.cday .foot .wx{color:#8a5a12;background:#fff4e5;border:1px solid #f0c98a;border-radius:20px;padding:1px 9px;font-weight:600;font-size:.78rem;}

/* budget table */
.btable{width:100%;border-collapse:collapse;background:var(--paper);border:1px solid var(--hair);border-radius:12px;overflow:hidden;font-size:.92rem;}
.btable td{padding:10px 14px;border-bottom:1px solid var(--hair);}
.btable td:last-child{text-align:right;font-weight:600;white-space:nowrap;}
.btable tr:last-child td{border-bottom:none;}
.btable .total td{background:var(--amber-soft);font-family:"Fraunces",Georgia,serif;font-weight:600;font-size:1.05rem;color:var(--cobalt);}
.btable .free td:last-child{color:var(--teal);}
.btable .note{font-size:.78rem;color:var(--muted);font-weight:400;}

.card{background:var(--paper);border:1px solid var(--hair);border-radius:12px;padding:16px 18px;font-size:.92rem;line-height:1.55;color:#33405a;}
.card b{color:var(--ink);}
.card.good{border-left:5px solid var(--teal);}
.card.hot{border-left:5px solid var(--carmine);}
.card p{margin:0 0 9px;} .card p:last-child{margin:0;}
.hl{margin:0;padding-left:20px;} .hl li{margin-bottom:7px;font-size:.95rem;color:#33405a;}
.src{font-size:.76rem;color:var(--muted);margin-top:16px;line-height:1.6;}
.src a{color:var(--muted);}
.foot{margin-top:40px;text-align:center;color:var(--muted);font-size:.8rem;}

@media(max-width:720px){
  .cmp-grid{grid-template-columns:repeat(2,1fr);}
  .cmp-card:last-child{grid-column:span 2;}
}
