/* Soft pink macaron palette and concise guide-map controls. */
:root{
  --paper:#fff7fa;
  --surface:#fffdfd;
  --ink:#574653;
  --muted:#927e8b;
  --line:#f0dce6;
  --lake:#d68faa;
  --lake-soft:#f8e6ed;
  --forest:#a9c1b1;
  --terracotta:#d98ca8;
  --warning:#c8738c;
  --shadow:0 14px 38px rgba(167,105,132,.09);
}
body{color:var(--ink);background:radial-gradient(ellipse at 50% 0%,#fff 0,#fff8fb 52%,#fff4f8 100%)}
.topbar{border-bottom-color:#f1dfe7;background:rgba(255,248,251,.94)}
.wordmark span,.hero__date,.schedule-time{color:var(--muted)}
.hero h1,.section-heading h2{color:var(--ink)}
.section-tabs{border-color:#f0dce6;background:rgba(255,253,253,.86);box-shadow:0 8px 24px rgba(167,105,132,.06)}
.section-tabs a{color:#967c8b}
.section-tabs a:hover{color:#a95578;background:#fff0f5}
.section-tabs a[aria-current="page"]{color:#864962;background:#f7dfe9;box-shadow:inset 0 0 0 1px #edc4d4}
.flight-card{border-color:#edcfdd;background:linear-gradient(140deg,#f8e6ed,#fff0f5);box-shadow:0 10px 26px rgba(167,105,132,.10)}
.flight-card__top,.flight-card__airlines,.flight-stop__city,.flight-stop__timing,.flight-countdown span,.flight-placeholder p{color:#8e7180}
.flight-stop__code,.flight-stop__timing b,.flight-placeholder h3,.flight-countdown strong{color:#5a4351}
.flight-stop__dot{border-color:#d58aa8;background:#f8e6ed}
.flight-segment{color:#bd7893}.flight-segment i{background:#e5b8ca;color:#a55c78}
.flight-card__countdown-row{border-top-color:#ebcfdb}
.flight-placeholder__eyebrow{color:#b66e8c}
.flight-placeholder li{border-color:#e8c2d2;color:#8d5b71;background:rgba(255,255,255,.58)}
.carousel-dot{background:#e8c9d6}.carousel-dot.is-active{background:#d68faa}
.reading-nav a{border-color:#eedbe4;background:#fffdfd;color:#875a70}
.reading-nav a:first-child{border-color:#edc4d4;background:#f7dfe9;color:#754459}
.day-dot{background:#e5cbd6;box-shadow:0 0 0 1px #e5cbd6}
.day-card.is-today .day-dot{background:#d98ca8;box-shadow:0 0 0 3px rgba(217,140,168,.18)}
.day-meta,.ticket-card__date{color:#bb7893}
.day-chevron{border-color:#eddae3;color:#bc7894}
.schedule-item::before{background:#f0dce6}.schedule-item::after{border-color:#d68faa;background:var(--paper)}
.schedule-map-link{border-color:#edcbd9;color:#90536e;background:#fff0f5}
.detail-note{border-color:#edccda;color:#795c69}
.cost-tag{background:#faeaf0;color:#8a6978}
.ticket-filters button{border-color:#eddae3;background:#fffdfd;color:#927e8b}
.ticket-filters button.is-active{border-color:#edc4d4;color:#754459;background:#f7dfe9}
.ticket-card,.accordion{border-color:#f0dce6;background:rgba(255,253,253,.9)}
.ticket-card.is-purchased{background:#f3f8f3}
.ticket-card__guidance{border-top-color:#f0dce6}
.rental-panel{background:#faeaf0;color:#5a4351;box-shadow:0 10px 26px rgba(167,105,132,.09)}
.return-deadline{background:#fff0f4;color:#79515f;border-bottom-color:#e5b1c5}
.rental-countdown{background:#f1d0dd;color:#5a4351}
.rental-countdown span,.rental-countdown small,.rental-sub,.rental-stop__label,.rental-stop span,.rental-price{color:#8d6f7d}
.rental-price{border-top-color:#ebcfdb}.rental-price strong,.rental-car{color:#5a4351}
.rental-details{background:#faeaf0}.accordion summary{background:rgba(255,253,253,.78)}
.section-index,.soft-label{border-color:#ecd5e0;color:#96667d;background:#fff0f5}
.route-region-tabs,.route-day-tabs{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding:2px 0 7px;margin:5px 0 8px}
.route-region-tabs::-webkit-scrollbar,.route-day-tabs::-webkit-scrollbar{display:none}
.route-region-tabs button,.route-day-tabs button,.geo-style-switch button,.geo-toolbar button{flex:0 0 auto;min-height:40px;padding:8px 15px;border:1px solid #eedbe4;border-radius:999px;background:#fffdfd;color:#866c7a;font:inherit;font-size:14px;font-weight:650;line-height:1.2;cursor:pointer}
.route-region-tabs button[aria-pressed="true"],.route-day-tabs button[aria-pressed="true"],.geo-style-switch button[aria-pressed="true"]{border-color:#e6b8cb;background:#f7dfe9;color:#814a63;box-shadow:0 3px 10px rgba(174,104,135,.08)}
.geo-toolbar{justify-content:space-between;gap:12px;margin:10px 0 14px;color:#806d79}
.geo-style-switch{display:flex;gap:4px;padding:4px;border:1px solid #f0dce6;border-radius:999px;background:#fff0f5}
.geo-style-switch button{border-color:transparent;background:transparent}
.geo-style-switch button[aria-pressed="true"]{background:#f7dfe9}
.geo-street-controls{font-size:13px}.geo-street-controls label{cursor:pointer}
.geo-street-controls input{accent-color:#cb7f9c}
#guide-image-wrap{position:relative;border-color:#f0dce6;border-radius:20px;background:#fff0f5;box-shadow:0 9px 26px rgba(167,105,132,.08)}
#guide-image-wrap picture{display:block}
.geo-art-route{display:block;position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.geo-art-route[hidden]{display:none!important}
.geo-art-route__halo{fill:none;stroke:#fffdfd;stroke-width:15;stroke-linecap:round;stroke-linejoin:round;opacity:.94}
.geo-art-route__line{fill:none;stroke:#d8799a;stroke-width:7;stroke-dasharray:14 12;stroke-linecap:round;stroke-linejoin:round;opacity:.95}
#geographic-map{border-color:#ecd7e1;background:#fff0f5}
.geo-status{margin:10px 2px 8px;color:#9c7487;font-size:13px;font-weight:650}
.geo-places{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.geo-place-button{display:inline-flex;align-items:center;gap:8px;min-height:42px;padding:6px 12px 6px 7px;border:1px solid #f0dce6;border-radius:999px;background:#fffdfd;color:#634d5a;font:inherit;font-size:13px;font-weight:600;line-height:1.3;cursor:pointer;box-shadow:0 2px 8px rgba(167,105,132,.04);transition:background .15s ease,border-color .15s ease,transform .15s ease}
.geo-place-button:hover{border-color:#e6b8cb;background:#fff0f5;transform:translateY(-1px)}
.geo-place-button:focus-visible,.route-region-tabs button:focus-visible,.route-day-tabs button:focus-visible{outline:3px solid #e4b3c6;outline-offset:2px}
.geo-place-number{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:#f4d9e4;color:#8a4e68;font-size:12px;font-weight:750}
.geo-place-name{max-width:230px}
.geo-marker span{background:#cf829f;border-color:#fff;color:white;box-shadow:0 2px 7px rgba(124,67,91,.28)}
.geo-route-arrow span{display:grid;place-items:center;width:20px;height:20px;border:1px solid #fff;border-radius:50%;background:#d68faa;color:white;font-size:14px;box-shadow:0 2px 5px rgba(124,67,91,.2)}
.leaflet-popup-content a{color:#a65375}
.route-bow{width:25px;height:21px;vertical-align:-2px;color:#d68faa}
@media(max-width:600px){
  .route-region-tabs,.route-day-tabs{gap:6px}
  .route-region-tabs button,.route-day-tabs button{min-height:38px;padding-inline:13px;font-size:13px}
  .geo-toolbar{align-items:flex-start;flex-direction:column}
  .geo-place-button{min-height:40px;font-size:12px}
}
