:root{
  --navy:#0d2240; --navy2:#16345f; --gold:#f2b705; --gold2:#d99e06;
  --bg:#f6f4ec; --card:#ffffff; --ink:#1d2433; --muted:#667085; --line:#e7e2d4;
  --green:#1c7c3e; --red:#c0392b; --radius:14px;
}
*{box-sizing:border-box; margin:0; padding:0}
html{-webkit-text-size-adjust:100%}
body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  background:var(--bg); color:var(--ink); line-height:1.55; font-size:16px}
a{color:var(--navy2)}
.wrap{max-width:760px; margin:0 auto; padding:0 16px}

/* header nav */
.topbar{background:var(--navy); color:#fff; position:sticky; top:0; z-index:50;
  box-shadow:0 2px 10px rgba(0,0,0,.25)}
.topbar .wrap{display:flex; align-items:center; gap:6px; padding:10px 16px; overflow-x:auto}
.topbar a{color:#fff; text-decoration:none; font-size:14px; font-weight:600;
  padding:8px 12px; border-radius:999px; white-space:nowrap}
.topbar a:hover{background:rgba(255,255,255,.12)}
.topbar a.home{background:var(--gold); color:var(--navy)}
.topbar a.active{background:rgba(255,255,255,.18)}

/* hero */
.hero{background:linear-gradient(135deg,var(--navy) 0%,var(--navy2) 60%,#1e4a7a 100%);
  color:#fff; padding:40px 0 34px; text-align:center}
.hero .kicker{display:inline-block; background:rgba(242,183,5,.18); color:var(--gold);
  font-size:12px; font-weight:700; letter-spacing:2px; text-transform:uppercase;
  padding:6px 14px; border-radius:999px; margin-bottom:14px}
.hero h1{font-size:30px; line-height:1.2; margin-bottom:8px}
.hero p.sub{color:#cdd8ea; font-size:16px; max-width:560px; margin:0 auto}
.hero .dates{margin-top:16px; display:flex; gap:10px; justify-content:center; flex-wrap:wrap}
.pill{background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.25);
  padding:8px 16px; border-radius:999px; font-size:14px; font-weight:600}

/* sections */
section{padding:26px 0}
h2.sec{font-size:21px; margin-bottom:4px; color:var(--navy)}
p.lead{color:var(--muted); font-size:15px; margin-bottom:16px}

/* cards */
.grid{display:grid; gap:12px}
@media(min-width:560px){.grid.two{grid-template-columns:1fr 1fr}}
.card{background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
  padding:18px; box-shadow:0 1px 4px rgba(13,34,64,.06)}
.card h3{font-size:16px; color:var(--navy); margin-bottom:6px}
.card p, .card li{font-size:14.5px}
.card ul{padding-left:18px}
.tag{display:inline-block; font-size:11.5px; font-weight:700; letter-spacing:.6px;
  text-transform:uppercase; padding:3px 10px; border-radius:999px; margin-bottom:8px}
.tag.ok{background:#e3f3e9; color:var(--green)}
.tag.warn{background:#fdeeda; color:#a86a00}
.tag.info{background:#e4ecf9; color:var(--navy2)}
.addr{color:var(--muted); font-size:13.5px}

/* day cards on home */
.daycard{display:block; background:var(--card); border:1px solid var(--line);
  border-radius:var(--radius); padding:18px; text-decoration:none; color:var(--ink);
  box-shadow:0 1px 4px rgba(13,34,64,.06)}
.daycard:hover{border-color:var(--gold2)}
.daycard .d{display:flex; justify-content:space-between; align-items:baseline; gap:8px}
.daycard h3{font-size:18px; color:var(--navy)}
.daycard .when{font-size:13px; color:var(--muted); font-weight:600; white-space:nowrap}
.daycard p{font-size:14.5px; color:var(--muted); margin-top:6px}
.daycard .go{margin-top:10px; font-size:14px; font-weight:700; color:var(--gold2)}

/* timeline */
.tl{position:relative; padding-left:8px}
.tl:before{content:""; position:absolute; left:19px; top:8px; bottom:8px; width:3px;
  background:linear-gradient(var(--gold),var(--line)); border-radius:3px}
.titem{position:relative; padding:0 0 18px 44px}
.titem:before{content:""; position:absolute; left:11px; top:4px; width:14px; height:14px;
  background:var(--gold); border:3px solid #fff; border-radius:50%;
  box-shadow:0 0 0 2px var(--gold2)}
.titem.food:before{background:#7bc47f; box-shadow:0 0 0 2px #4c9a52}
.titem.travel:before{background:#8fb6e8; box-shadow:0 0 0 2px #4a7fc9}
.titem.alert:before{background:#e88f8f; box-shadow:0 0 0 2px #c0392b}
.time{display:inline-block; font-size:12.5px; font-weight:800; color:var(--navy);
  background:#eef1f7; padding:3px 10px; border-radius:999px; margin-bottom:6px;
  letter-spacing:.3px}
.titem h3{font-size:16px; margin-bottom:4px}
.titem p{font-size:14.5px; color:#3c4457}
.titem p.small{font-size:13.5px; color:var(--muted)}

/* logistics box */
.logi{background:#fff8e6; border:1px solid #f0dfae; border-radius:var(--radius);
  padding:18px; margin-top:8px}
.logi h3{font-size:16px; color:var(--navy); margin-bottom:8px}
.logi ul{padding-left:18px; font-size:14.5px}
.logi li{margin-bottom:6px}

/* checklist */
.check{list-style:none; padding:0}
.check li{background:var(--card); border:1px solid var(--line); border-radius:10px;
  padding:12px 14px; margin-bottom:8px; font-size:14.5px; display:flex; gap:10px; align-items:flex-start}
.check li span.box{flex:none; width:20px; height:20px; border:2px solid var(--gold2);
  border-radius:6px; margin-top:2px}

/* footer */
footer{background:var(--navy); color:#9fb0cc; text-align:center; padding:26px 16px;
  font-size:13.5px; margin-top:20px}
footer b{color:#fff}
.daynav{display:flex; gap:10px; margin-top:18px}
.daynav a{flex:1; text-align:center; background:var(--navy); color:#fff; text-decoration:none;
  font-weight:700; font-size:14px; padding:12px 8px; border-radius:12px}
.daynav a.next{background:var(--gold); color:var(--navy)}
.banner{background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  padding:14px 18px; margin:18px 0; font-size:14.5px; display:flex; gap:10px; align-items:flex-start}
.banner .ico{font-size:20px; flex:none}
.hours{display:flex; gap:10px; flex-wrap:wrap; margin:14px 0 4px}
.hours .h{background:#fff; border:1px solid var(--line); border-radius:10px;
  padding:8px 14px; font-size:13.5px; font-weight:600; color:var(--navy)}
