/* Itineraries (/itineraries/): a route drawn across the hero, photo-collage cards, and on a trip page the timeline of stops
   beside a small map whose route draws itself and whose pins light up with the stop in view. No inline styles (CSP). */
.it-page{--it-accent:var(--orange);--it-dark:#121a17}
.it-theme-food,.it-theme-coffee,.it-theme-drinks{--it-accent:#c8553d}.it-theme-art,.it-theme-architecture{--it-accent:#8a6fd1}.it-theme-music{--it-accent:#3d6e8a}
.it-theme-history,.it-theme-black-history{--it-accent:#b07a2a}.it-theme-family,.it-theme-seniors{--it-accent:#2a9d8f}.it-theme-outdoors{--it-accent:#5c8a4e}
.it-theme-shopping{--it-accent:#c9932e}.it-theme-sports{--it-accent:#c8102e}.it-theme-lgbtq{--it-accent:#b04a7a}.it-theme-romance{--it-accent:#d0566c}
.it-facts{display:flex;gap:30px;flex-wrap:wrap;margin:26px 0 0}
.it-facts div{display:flex;flex-direction:column-reverse;border-top:2px solid var(--lime);padding-top:8px;min-width:110px}
.it-facts dt{font-size:10px;letter-spacing:1.3px;text-transform:uppercase;color:#aeb7a5}
.it-facts dd{margin:0 0 4px;font-size:38px;font-weight:900;letter-spacing:-1.5px;line-height:1}

/* List hero */
.it-list-hero{position:relative;background:var(--it-dark);color:var(--paper);overflow:hidden;isolation:isolate;padding-block:70px 80px}
.it-list-photos{position:absolute;inset:0;z-index:-2;display:grid;grid-template-columns:repeat(5,1fr);opacity:.45}
.it-list-photos img{width:100%;height:100%;object-fit:cover;filter:saturate(.85);animation:it-breathe 18s ease-in-out infinite alternate}
.it-list-photos img:nth-child(2n){animation-delay:-6s}.it-list-photos img:nth-child(3n){animation-delay:-12s}
.it-list-hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#121a17f2 0,#121a17d0 45%,#121a1790 100%)}
.it-list-route{position:absolute;left:0;right:0;bottom:12px;width:100%;height:220px;z-index:-1;pointer-events:none}
.it-hero-path{fill:none;stroke:var(--lime);stroke-width:3;stroke-dasharray:.012 .01;opacity:.75;animation:it-dash 40s linear infinite}
.it-hero-dots circle{fill:var(--orange);stroke:var(--it-dark);stroke-width:3}
.it-hero-marker{font-size:34px;font-weight:900;fill:var(--lime)}
.it-list-hero .eyebrow{color:var(--lime);margin:0 0 16px}
.it-list-hero h1,.it-hero h1{font-size:clamp(48px,7vw,104px);font-weight:900;letter-spacing:-.05em;line-height:.92;margin:0 0 22px;max-width:15ch}
.it-lead{max-width:620px;font-size:17px;line-height:1.7;margin:0;color:#dfe3d6}

/* List */
.it-list{padding-block:46px 30px}
.it-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.it-card>a{display:flex;flex-direction:column;height:100%;text-decoration:none;background:#f7f5ed;border:1px solid var(--line);transition:transform .25s,box-shadow .25s,border-color .25s}
.it-card>a:hover,.it-card>a:focus-visible{transform:translateY(-5px);box-shadow:0 14px 26px #19231f26;border-color:var(--ink)}
.it-card[hidden]{display:none}
.it-collage{position:relative;display:grid;grid-template-columns:2fr 1fr;grid-template-rows:1fr 1fr;gap:3px;aspect-ratio:1.55;background:var(--it-accent);overflow:hidden}
.it-collage img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s}
.it-collage img:first-child{grid-row:1/3}
.it-collage-1 img:first-child{grid-column:1/3}
.it-collage-2 img:nth-child(2){grid-row:1/3}
.it-card>a:hover .it-collage img{transform:scale(1.05)}
.it-card-stops{position:absolute;left:12px;bottom:12px;background:var(--lime);color:var(--ink);font-size:11px;padding:6px 9px}
.it-card-body{display:flex;flex-direction:column;gap:8px;padding:16px 17px 20px}
.it-card-meta{font-size:9px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:var(--it-accent)}
.it-card-body strong{font-size:22px;line-height:1.15;letter-spacing:-.7px}
.it-card-summary{font-size:13px;line-height:1.6;color:#4a544c}
.it-js .it-card{opacity:0;transform:translateY(18px);transition:opacity .5s,transform .5s}
.it-js .it-card.it-in{opacity:1;transform:none}

/* Trip page */
.it-hero{position:relative;min-height:560px;display:flex;align-items:flex-end;background:var(--it-dark);color:var(--paper);overflow:hidden;isolation:isolate}
.it-hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;animation:it-breathe 24s ease-in-out infinite alternate}
.it-hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,#121a17f5 0,#121a17b8 45%,#121a1730 100%)}
.it-hero-inner{padding-block:60px 50px}
.it-back{display:inline-block;margin-bottom:24px;font-size:12px;font-weight:700;color:var(--lime);text-decoration:none}
.it-hero .eyebrow{color:var(--lime);margin:0 0 14px}
.it-body{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:56px;padding-block:50px 20px;align-items:start}
.it-intro{font-size:19px;line-height:1.75;margin:0 0 40px;max-width:720px}
.it-day{margin-bottom:34px}
.it-day-label{display:inline-block;font-size:13px;letter-spacing:1.4px;text-transform:uppercase;background:var(--ink);color:var(--lime);padding:9px 13px;margin:0 0 22px}
.it-stops{list-style:none;margin:0;padding:0;position:relative}
.it-stops::before{content:"";position:absolute;left:21px;top:10px;bottom:10px;width:3px;background:repeating-linear-gradient(180deg,var(--ink) 0 8px,transparent 8px 14px);opacity:.35}
.it-stop{position:relative;padding-left:64px;margin-bottom:12px}
.it-stop-pin{position:absolute;left:0;top:6px;width:45px;height:45px;border-radius:50%;background:var(--paper);border:3px solid var(--ink);display:grid;place-items:center;font-weight:900;font-size:17px;transition:background .3s,color .3s,transform .3s}
.it-stop.it-active .it-stop-pin{background:var(--it-accent);color:#fff;border-color:var(--it-accent);transform:scale(1.12)}
.it-stop-card{display:grid;grid-template-columns:200px minmax(0,1fr);gap:20px;background:#f7f5ed;border:1px solid var(--line);padding:14px;transition:border-color .3s,box-shadow .3s}
.it-stop.it-active .it-stop-card{border-color:var(--ink);box-shadow:6px 6px 0 var(--it-accent)}
.it-stop-card:not(:has(.it-stop-photo)){grid-template-columns:1fr}
.it-stop-photo{display:block;overflow:hidden;aspect-ratio:1.35;background:#e4e4d8}
.it-stop-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s}
.it-stop-card:hover .it-stop-photo img{transform:scale(1.05)}
.it-stop-time{display:inline-block;margin:0 0 6px;font-size:11px;font-weight:700;background:var(--lime);padding:4px 8px}
.it-stop-text h3{font-size:23px;letter-spacing:-.7px;line-height:1.15;margin:0 0 4px}
.it-stop-text h3 a{text-decoration:none}.it-stop-text h3 a:hover{text-decoration:underline;text-underline-offset:4px}
.it-stop-area{font-size:11px;color:var(--muted);margin:0 0 10px}
.it-stop-text>p:last-child{font-size:14px;line-height:1.7;margin:0}
.it-move{margin:10px 0 18px;font-size:12px;color:var(--muted);font-style:italic}
.it-move span{display:inline-block;font-style:normal;color:var(--it-accent);font-weight:900;margin-right:4px;animation:it-hop 2.4s ease-in-out infinite}
.it-tips{background:var(--lime);padding:26px 28px;margin:30px 0}
.it-tips h2{font-size:28px;letter-spacing:-1px;margin:0 0 12px}
.it-tips ul{margin:0;padding-left:20px}.it-tips li{font-size:14px;line-height:1.7;margin-bottom:6px}
.it-links{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:20px 0 10px}
.it-links h2{width:100%;font-size:18px;margin:0 0 4px}
.it-links a{border:1px solid var(--ink);padding:10px 14px;font-size:12px;font-weight:700;text-decoration:none}
.it-links a:hover{background:var(--ink);color:var(--paper)}
.it-aside{position:sticky;top:20px}
.it-map{margin:0 0 18px;background:var(--it-dark);padding:10px}
.it-map svg{display:block;width:100%;height:auto}
.it-map-bg{fill:#1b2622}.it-grid-line{fill:none;stroke:#e9fc8214;stroke-width:1}
.it-route-shadow{fill:none;stroke:#0008;stroke-width:9;stroke-linecap:round;stroke-linejoin:round}
.it-route{fill:none;stroke:var(--lime);stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:0}
.it-js .it-route{stroke-dashoffset:1;transition:stroke-dashoffset 2.4s cubic-bezier(.5,.1,.3,1)}
.it-js .it-map.it-drawn .it-route{stroke-dashoffset:0}
.it-pin circle{fill:var(--paper);stroke:var(--it-dark);stroke-width:3;transition:fill .3s}
.it-pin text{font-size:11px;font-weight:900;text-anchor:middle;fill:var(--ink)}
.it-pin.it-active circle{fill:var(--it-accent)}.it-pin.it-active text{fill:#fff}
.it-map figcaption{font-size:10px;color:#aeb7a5;padding:8px 2px 2px}
.it-mini{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.it-mini a{display:flex;gap:10px;align-items:center;padding:9px 4px;border-bottom:1px solid var(--line);font-size:13px;text-decoration:none;transition:background .2s}
.it-mini b{display:grid;place-items:center;flex:0 0 26px;height:26px;border-radius:50%;border:2px solid var(--ink);font-size:11px}
.it-mini a.it-active,.it-mini a:hover{background:#19231f0d}.it-mini a.it-active b{background:var(--it-accent);border-color:var(--it-accent);color:#fff}
.it-related{padding-block:40px 20px}
.it-related h2{font-size:clamp(28px,3vw,42px);letter-spacing:-1.5px;margin:0 0 20px}

@keyframes it-breathe{from{transform:scale(1.03)}to{transform:scale(1.12)}}
@keyframes it-dash{to{stroke-dashoffset:-1}}
@keyframes it-hop{0%,100%{transform:translateY(-2px)}50%{transform:translateY(3px)}}
.it-offscreen .it-hero-path,.it-offscreen .it-list-photos img{animation-play-state:paused}

@media (max-width:1100px){.it-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.it-body{grid-template-columns:1fr}.it-aside{position:static;order:-1}}
@media (max-width:640px){.it-grid{grid-template-columns:1fr}.it-hero{min-height:470px}.it-stop{padding-left:52px}.it-stop-pin{width:38px;height:38px;font-size:15px}.it-stops::before{left:18px}.it-stop-card{grid-template-columns:1fr}.it-list-photos{grid-template-columns:repeat(2,1fr)}.it-intro{font-size:17px}}
@media (prefers-reduced-motion:reduce){.it-page *,.it-page *::before,.it-page *::after{animation:none!important;transition:none!important}.it-js .it-card{opacity:1;transform:none}.it-js .it-route{stroke-dashoffset:0}}
