:root { --ink:#13263e; --blue:#18395f; --cream:#f5f0e8; --paper:#fcfaf6; --coral:#ff725d; --green:#5a8a79; --yellow:#e4aa1f; --red:#d8595b; --violet:#8f6aaa; --line:#dcd6cd; --muted:#68737f; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:'DM Sans',sans-serif; font-size:16px; }
.announcement { height:35px; background:var(--coral); color:#fffaf4; display:flex; align-items:center; justify-content:center; gap:8px; font:500 10px/1 'DM Mono',monospace; letter-spacing:.08em; text-transform:uppercase; }
.pulse { width:6px; height:6px; border-radius:50%; background:#fff8de; }
.site-header { height:80px; padding:0 clamp(22px,5vw,76px); display:flex; align-items:center; justify-content:space-between; background:var(--paper); border-bottom:1px solid #e5dfd6; position:sticky; top:0; z-index:10; }
.brand { color:var(--ink); text-decoration:none; font:700 25px/1 'DM Sans',sans-serif; letter-spacing:-.1em; }.brand span { color:var(--coral); font-size:12px; vertical-align:top; letter-spacing:0; margin-left:3px; }
nav { display:flex; gap:28px; } nav a,.mini-button { color:var(--ink); text-decoration:none; font:500 12px/1 'DM Mono',monospace; letter-spacing:.01em; }.mini-button { border-bottom:1px solid var(--ink); padding-bottom:5px; }.mini-button span { color:var(--coral); margin-left:5px; }
.hero { min-height:642px; position:relative; overflow:hidden; color:white; display:flex; align-items:flex-end; padding:64px clamp(22px,9vw,136px) 80px; }.hero>img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; }.hero-scrim { position:absolute; inset:0; background:linear-gradient(90deg,rgba(10,27,47,.84) 0%,rgba(10,27,47,.56) 44%,rgba(10,27,47,.05) 80%),linear-gradient(0deg,rgba(8,26,45,.40),transparent 60%); }.hero-content,.arrival-card { position:relative; z-index:1; }.eyebrow { font:500 10px/1.2 'DM Mono',monospace; letter-spacing:.12em; color:var(--coral); margin:0 0 17px; }.eyebrow.light { color:#ffd1b8; }.hero h1 { font:600 clamp(62px,9vw,132px)/.82 'Playfair Display',serif; margin:0; letter-spacing:-.055em; }.hero h1 em { font-weight:500; }.hero-copy { max-width:415px; font-size:17px; line-height:1.5; margin:28px 0; color:#f2eee6; }.button { display:inline-flex; align-items:center; gap:24px; padding:13px 17px; font:500 11px/1 'DM Mono',monospace; letter-spacing:.04em; text-decoration:none; }.button-light { background:#fff9ef; color:var(--ink); }.button span { color:var(--coral); font-size:16px; }.arrival-card { margin-left:auto; padding:18px 22px; width:220px; align-self:flex-start; background:rgba(249,246,239,.92); color:var(--ink); display:flex; flex-direction:column; gap:7px; }.arrival-card span { color:var(--coral); font:500 9px/1 'DM Mono',monospace; text-transform:uppercase; letter-spacing:.12em; }.arrival-card strong { font-size:14px; }.arrival-card small { color:#637080; font-size:12px; }
.intro-section { display:grid; grid-template-columns:minmax(150px,.55fr) 2fr; gap:5vw; padding:125px clamp(22px,12vw,185px); background:#fffdf9; }.intro-section h2,.section-heading h2,.note-band h2 { margin:0; font:600 clamp(34px,4.2vw,63px)/1.03 'Playfair Display',serif; letter-spacing:-.04em; }.intro-section>div>p { max-width:590px; color:#52616f; font-size:17px; line-height:1.7; margin:25px 0 0; }
.threads-section,.itinerary-section,.shortlist-section { padding:105px clamp(22px,8vw,120px); }.threads-section { background:var(--cream); }.section-heading { display:flex; justify-content:space-between; align-items:end; gap:40px; margin-bottom:50px; }.section-heading>p { max-width:330px; margin:0; color:#637080; font-size:14px; line-height:1.5; }
.map-shell { height:410px; position:relative; background:#fbf8f1; overflow:hidden; border:1px solid #ded8ce; box-shadow:12px 12px 0 #e8e1d5; }.tube-line { position:absolute; height:9px; border-radius:9px; transform-origin:left center; }.line-green{background:var(--green);width:38%;left:7%;top:68%;transform:rotate(-28deg)}.line-yellow{background:var(--yellow);width:40%;left:19%;top:20%;transform:rotate(36deg)}.line-red{background:var(--red);width:50%;left:36%;top:36%;transform:rotate(15deg)}.line-blue{background:#3275a4;width:40%;left:41%;top:63%;transform:rotate(-49deg)}.line-violet{background:var(--violet);width:29%;left:62%;top:23%;transform:rotate(42deg)}
.tube-stop { position:absolute; display:flex; align-items:center; gap:8px; z-index:2; font:500 10px/1.22 'DM Mono',monospace; color:#34475b; }.tube-stop i { display:block; width:17px; height:17px; border-radius:50%; border:5px solid var(--ink); background:#fbf8f1; flex:0 0 auto; }.tube-stop.green i{border-color:var(--green)}.tube-stop.yellow i{border-color:var(--yellow)}.tube-stop.red i{border-color:var(--red)}.tube-stop.blue i{border-color:#3275a4}.tube-stop.violet i{border-color:var(--violet)}.s1{left:6%;top:61%}.s2{left:34%;top:25%}.s3{left:49%;top:39%}.s4{left:59%;top:53%}.s5{left:70%;top:25%}.s6{right:9%;bottom:16%}.s7{left:27%;bottom:15%}.s8{right:21%;top:63%}.home-stop{left:19%;top:66%}.home-stop i{border-color:var(--ink);width:27px;height:27px;border-width:7px}.home-label{position:absolute;left:9%;bottom:9%;font:500 10px/1.3 'DM Mono',monospace;color:var(--ink)}.home-label b{display:block;color:var(--coral);text-transform:uppercase;letter-spacing:.1em;font-size:9px}.map-caption{position:absolute;left:25px;bottom:19px;padding:8px 11px;background:#fffdf8;font:400 9px/1 'DM Mono',monospace;color:#647080;display:flex;gap:8px;align-items:center}.dot{width:6px;height:6px;border-radius:50%;display:inline-block}.green-dot{background:var(--green)}.yellow-dot{background:var(--yellow)}.red-dot{background:var(--red)}.blue-dot{background:#3275a4}.violet-dot{background:var(--violet)}
.itinerary-section { background:var(--paper); }.itinerary-list { border-top:1px solid var(--line); }.day-card { display:grid; grid-template-columns:150px 1.1fr 1.15fr; gap:30px; padding:31px 0; border-bottom:1px solid var(--line); transition:background .2s ease,padding .2s ease; }.day-card:hover { background:#f7f1e8; padding-left:16px; padding-right:16px; }.day-date { display:flex; gap:14px; }.day-date .date-number { font:600 40px/.8 'Playfair Display',serif; }.day-date .weekday { padding-top:3px; font:500 10px/1.2 'DM Mono',monospace; color:var(--coral); text-transform:uppercase; letter-spacing:.08em; }.day-title { margin:0 0 10px; font:600 25px/1.05 'Playfair Display',serif; letter-spacing:-.025em; }.day-summary { margin:0; max-width:355px; color:#596775; font-size:14px; line-height:1.48; }.day-events { display:flex; flex-wrap:wrap; align-content:flex-start; gap:8px; }.event { font:500 10px/1.25 'DM Mono',monospace; padding:8px 10px; background:#edf0ec; border-left:3px solid var(--green); color:#314456; }.event.locked { border-left-color:var(--coral); background:#fff0e9; }.event.suggested { border-left-color:#3275a4; background:#eef5fa; }.event.car { border-left-color:var(--yellow); background:#fff7de; }.event small { display:block; color:#6c747d; margin-top:3px; }
.note-band { color:#f5f0e8; background:var(--ink); padding:72px clamp(22px,12vw,185px); display:grid; grid-template-columns:1fr 1.25fr; gap:8vw; }.note-band .eyebrow { color:#ffaf9d; }.note-band h2 { color:#fff9ef; }.note-body { border-left:1px solid rgba(255,255,255,.3); padding-left:27px; }.note-body p { margin:0 0 16px; color:#c9d2dc; line-height:1.55; font-size:15px; }.note-body strong { color:#fff9ef; }
.shortlist-section { background:#e9eee8; }.shortlist-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }.food-card { background:#fbfbf8; padding:25px; min-height:208px; display:flex; flex-direction:column; border-top:4px solid var(--green); }.food-card:nth-child(2){border-color:var(--yellow)}.food-card:nth-child(3){border-color:var(--red)}.food-card:nth-child(4){border-color:#3275a4}.food-card h3 { margin:8px 0; font:600 24px/1.06 'Playfair Display',serif; }.food-card .place { color:#697785; font:500 10px/1 'DM Mono',monospace; text-transform:uppercase; letter-spacing:.05em; }.food-card p { color:#5e6b76; font-size:13px; line-height:1.45; margin:0 0 18px; }.food-card a { margin-top:auto; color:var(--ink); font:500 10px/1 'DM Mono',monospace; text-decoration:none; border-bottom:1px solid var(--ink); padding-bottom:4px; align-self:flex-start; }
.essentials-section { padding:100px clamp(22px,8vw,120px); background:#fffdf9; }.essentials-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:40px; margin-top:34px; }.essentials-grid article { border-top:1px solid var(--ink); padding-top:20px; }.number { color:var(--coral); font:500 11px/1 'DM Mono',monospace; }.essentials-grid h3 { font:600 27px/1.08 'Playfair Display',serif; margin:20px 0 11px; }.essentials-grid p { color:#5c6a76; line-height:1.55; font-size:14px; margin:0; } footer { background:var(--coral); color:#fff7ed; display:flex; justify-content:space-between; padding:26px clamp(22px,5vw,76px); font:500 10px/1 'DM Mono',monospace; letter-spacing:.04em; } footer span { opacity:.6; margin:0 6px; }
@media (max-width:760px){.site-header{height:65px}.site-header nav,.mini-button{display:none}.hero{min-height:600px;padding:45px 24px}.arrival-card{position:absolute;right:24px;bottom:26px;width:188px}.intro-section,.note-band{grid-template-columns:1fr;padding:72px 24px;gap:25px}.threads-section,.itinerary-section,.shortlist-section,.essentials-section{padding:72px 24px}.section-heading{display:block}.section-heading>p{margin-top:16px}.map-shell{height:440px}.map-caption{display:none}.s6{right:2%;bottom:8%}.s8{right:5%;top:56%}.s5{left:64%;top:17%}.s7{left:24%;bottom:7%}.day-card{grid-template-columns:1fr;gap:16px}.day-date .date-number{font-size:34px}.shortlist-grid,.essentials-grid{grid-template-columns:1fr}.note-body{border-left:0;border-top:1px solid rgba(255,255,255,.3);padding:20px 0 0}footer{display:block;line-height:1.6}footer p{margin:0}.hero h1{font-size:71px}}

/* Image-led itinerary refinements */
body { overflow-x:hidden; }
.day-card { grid-template-columns:210px 108px minmax(0,1.05fr) minmax(190px,.95fr); gap:22px; }
.day-image { height:148px; overflow:hidden; background:#e5e1da; }
.day-image img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .45s ease; }
.day-card:hover .day-image img { transform:scale(1.045); }

@media (max-width:1050px) {
  .day-card { grid-template-columns:170px 85px minmax(0,1fr) minmax(170px,.8fr); gap:16px; }
  .day-image { height:133px; }
  .day-title { font-size:22px; }
}

@media (max-width:760px) {
  .day-card { grid-template-columns:1fr; gap:13px; padding:24px 0; }
  .day-card:hover { padding-left:0; padding-right:0; }
  .day-image { height:205px; order:0; }
  .day-date { order:1; }
  .day-card > div:nth-child(3) { order:2; }
  .day-events { order:3; }
}

/* Family itinerary front page */
.plan-section { padding:80px clamp(22px,8vw,120px) 95px; background:#f7f3eb; }
.plan-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.plan-tile { min-height:210px; padding:18px 18px 20px; background:#fffdf9; border-top:5px solid var(--green); box-shadow:0 1px 0 rgba(19,38,62,.08); }
.plan-tile:nth-child(4n+2) { border-color:var(--yellow); }
.plan-tile:nth-child(4n+3) { border-color:var(--coral); }
.plan-tile:nth-child(4n+4) { border-color:#3275a4; }
.plan-date { display:flex; align-items:baseline; gap:7px; color:var(--muted); font:500 9px/1 'DM Mono',monospace; letter-spacing:.08em; }
.plan-date strong { color:var(--ink); font:600 30px/.85 'Playfair Display',serif; letter-spacing:-.04em; }
.plan-date small { color:var(--coral); font-size:9px; }
.plan-tile h3 { margin:15px 0 12px; font:600 22px/1.04 'Playfair Display',serif; letter-spacing:-.025em; }
.plan-tile ul { padding:0; margin:0; list-style:none; color:#546473; font-size:12px; line-height:1.38; }
.plan-tile li { padding:5px 0; border-top:1px solid #ebe6df; }
.plan-tile li:first-child { border-top:0; }
.travel-strip { display:grid; grid-template-columns:repeat(3,1fr); color:#f6f1e9; background:var(--ink); }
.travel-strip article { min-height:170px; padding:35px clamp(22px,5vw,76px); border-right:1px solid rgba(255,255,255,.25); display:flex; flex-direction:column; gap:13px; }
.travel-strip article:last-child { border-right:0; }
.travel-strip span { color:#ffb19f; font:500 10px/1 'DM Mono',monospace; letter-spacing:.1em; }
.travel-strip strong { color:#fffdf8; font:600 27px/1.08 'Playfair Display',serif; }

@media (max-width:1050px) { .plan-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:760px) {
  .plan-section { padding:62px 18px; }
  .plan-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .plan-tile { min-height:190px; padding:14px; }
  .plan-tile h3 { font-size:19px; }
  .plan-tile ul { font-size:11px; }
  .travel-strip { grid-template-columns:1fr; }
  .travel-strip article { min-height:118px; border-right:0; border-bottom:1px solid rgba(255,255,255,.25); padding:25px 24px; }
  .travel-strip article:last-child { border-bottom:0; }
}

/* Time-first schedule, inspired by a rail timetable but kept in the trip's editorial palette. */
.timetable-wrap { overflow-x:auto; padding:3px 3px 9px; }
.desktop-timetable { --hour:42px; min-width:1020px; display:grid; grid-template-columns:42px repeat(12,minmax(70px,1fr)); border:1px solid #d7d1c8; background:#fffdf9; }
.time-hours { position:relative; border-right:1px solid #d7d1c8; background:#f2ede5; }
.time-hours i { position:absolute; right:6px; transform:translateY(-50%); color:#74808c; font:500 9px/1 'DM Mono',monospace; font-style:normal; }
.time-day { min-width:0; border-left:1px solid #ebe4da; }
.time-day header { min-height:58px; padding:7px 7px 6px; border-top:4px solid var(--c); border-bottom:1px solid #d7d1c8; background:#fcfaf6; }
.time-day header span { display:block; color:#78818a; font:500 8px/1 'DM Mono',monospace; letter-spacing:.11em; }
.time-day header strong { display:block; margin-top:3px; font:600 20px/.85 'Playfair Display',serif; }
.time-day header small { display:block; margin-top:4px; color:var(--c); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font:500 8px/1 'DM Mono',monospace; }
.time-track { position:relative; background-image:repeating-linear-gradient(to bottom,#e7e0d8 0 1px,transparent 1px var(--hour)); }
.time-event { position:absolute; left:3px; right:3px; overflow:hidden; border:0; border-left:3px solid var(--c); border-radius:0 3px 3px 0; background:color-mix(in srgb,var(--c) 12%,#fffdf9); padding:4px 4px; text-align:left; color:#26384a; font:500 9px/1.16 'DM Sans',sans-serif; cursor:default; }
.time-event.booked { border-left-width:5px; background:color-mix(in srgb,var(--c) 22%,#fffdf9); }
.time-event b { display:block; color:var(--c); font:500 8px/1 'DM Mono',monospace; margin-bottom:2px; }
.mobile-timetable { display:none; }
.day-events .event b { color:var(--c); font-family:'DM Mono',monospace; font-weight:500; }
@media (max-width:760px) { .timetable-wrap { display:none; }.mobile-timetable { display:block; border-top:1px solid #d7d1c8; }.mobile-day { display:grid; grid-template-columns:90px 1fr; gap:12px; color:inherit; text-decoration:none; padding:14px 0; border-bottom:1px solid #d7d1c8; border-left:4px solid var(--c); }.mobile-day>div { padding-left:10px; }.mobile-day span { display:block; color:#75808c; font:500 8px/1.1 'DM Mono',monospace; letter-spacing:.08em; }.mobile-day strong { display:block; margin-top:4px; font:600 16px/1 'Playfair Display',serif; }.mobile-day ol { list-style:none; padding:0 10px 0 0; margin:0; }.mobile-day li { padding:3px 0; color:#596978; font-size:11px; line-height:1.2; }.mobile-day li b { display:inline-block; width:33px; color:var(--c); font:500 9px/1 'DM Mono',monospace; }.mobile-day li.booked { color:var(--ink); font-weight:600; } }

.food-section { padding:90px clamp(22px,8vw,120px); background:#edf1ec; }
.food-list { border-top:1px solid #cfd8cf; }
.food-row { display:grid; grid-template-columns:76px minmax(0,1fr); gap:24px; align-items:start; padding:24px 0; border-bottom:1px solid #cfd8cf; }
.food-date { color:var(--coral); font:600 28px/.85 'Playfair Display',serif; }.food-date small { display:block; margin-top:5px; color:#617165; font:500 7px/1.22 'DM Mono',monospace; letter-spacing:.08em; }
.food-area { display:block; margin-bottom:11px; color:#68776e; font:500 9px/1.35 'DM Mono',monospace; letter-spacing:.08em; text-transform:uppercase; }.food-options { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:10px; }.food-option { min-height:132px; padding:15px 15px 12px; background:rgba(255,253,249,.65); border-left:3px solid var(--coral); }.food-option h3 { margin:0 0 6px; font:600 21px/1.05 'Playfair Display',serif; }.food-option p { margin:0 0 12px; color:#59695f; font-size:13px; line-height:1.42; }.food-option a,.food-home { color:var(--ink); font:500 10px/1 'DM Mono',monospace; text-decoration:none; border-bottom:1px solid var(--ink); padding-bottom:4px; white-space:nowrap; }.food-home { color:#657369; border-bottom:0; }
@media (max-width:760px) { .food-section { padding:62px 24px; }.food-row { grid-template-columns:48px minmax(0,1fr); gap:12px; }.food-options { grid-template-columns:1fr; }.food-option { min-height:0; }.food-option h3 { font-size:20px; } }
