:root{--focus:#ffbf47}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.skip-link{position:fixed;left:16px;top:-100px;z-index:10000;background:#fff;color:#062f4b;padding:12px 18px;border-radius:10px;box-shadow:0 8px 30px #0003;font-weight:900}
.skip-link:focus{top:16px}
.utility-bar{position:fixed;right:18px;bottom:18px;z-index:80;display:flex;align-items:center;gap:8px;padding:8px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 12px 40px rgba(6,47,75,.2)}
.utility-bar button,.utility-bar a{border:0;border-radius:11px;background:#eef8fd;color:var(--deep);min-width:44px;min-height:44px;padding:8px 12px;font:inherit;font-weight:900;cursor:pointer;display:grid;place-items:center}
.utility-bar .utility-primary{background:var(--blue);color:#fff}
.utility-bar button:focus-visible,.utility-bar a:focus-visible,.filter-chip:focus-visible,.planner-choice:focus-visible{outline:4px solid var(--focus);outline-offset:3px}
.section-shell{padding:86px 0}
.section-shell.tint{background:linear-gradient(180deg,#f4fbff,#fff)}
.section-intro{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(280px,.75fr);gap:42px;align-items:end;margin-bottom:34px}
.section-intro h2{margin:5px 0 0;color:var(--deep);font-size:clamp(34px,5vw,58px);line-height:.98;letter-spacing:-.045em}
.section-intro p{margin:0;color:var(--muted);font-size:18px}
.eyebrow{margin:0;color:var(--blue);text-transform:uppercase;letter-spacing:.16em;font-weight:950;font-size:12px}
.map-layout{display:grid;grid-template-columns:360px minmax(0,1fr);min-height:620px;border-radius:30px;overflow:hidden;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow)}
.map-sidebar{padding:22px;display:flex;flex-direction:column;gap:16px;max-height:620px;overflow:auto}
.map-filters,.event-filters{display:flex;gap:8px;flex-wrap:wrap}
.filter-chip{border:1px solid var(--line);background:#fff;color:var(--deep);border-radius:999px;padding:9px 13px;font-weight:850;cursor:pointer}
.filter-chip[aria-pressed="true"]{background:var(--deep);color:#fff;border-color:var(--deep)}
.near-me{width:100%;border:0;border-radius:14px;background:var(--blue);color:#fff;padding:13px 16px;font:inherit;font-weight:900;cursor:pointer}
.map-status{font-size:13px;color:var(--muted);min-height:1.5em;margin:0}
.place-list{display:grid;gap:10px}
.place-item{border:1px solid var(--line);border-radius:16px;background:#fff;padding:13px;text-align:left;cursor:pointer;color:var(--text)}
.place-item:hover,.place-item.active{border-color:var(--blue);background:#f1faff}
.place-item strong{display:block;color:var(--deep);font-size:15px}
.place-item span{font-size:12px;color:var(--muted)}
#tour-map{min-height:620px;background:#dcecf3}
.map-fallback{height:100%;min-height:620px;display:grid;place-items:center;padding:30px;text-align:center;background:linear-gradient(145deg,#dff3fb,#eef9fd)}
.map-popup h3{margin:0 0 5px;font-size:17px}.map-popup p{margin:0 0 12px}.map-popup-actions{display:flex;gap:7px;flex-wrap:wrap}.map-popup-actions a{display:inline-flex;align-items:center;min-height:34px;padding:7px 10px;border-radius:9px;font-size:12px;font-weight:900;text-decoration:none}.map-popup-actions .map-read{background:#0879bf;color:#fff}.map-popup-actions .map-route{border:1px solid #b8d7e7;background:#fff;color:#075a88}
.planner-panel{border-radius:30px;background:var(--deep);color:#fff;padding:clamp(26px,4vw,54px);box-shadow:var(--shadow)}
.planner-choices{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:26px 0}
.planner-choice{border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.08);color:#fff;border-radius:16px;padding:15px 12px;text-align:left;cursor:pointer;font:inherit;font-weight:850;min-height:82px}
.planner-choice:hover,.planner-choice[aria-pressed="true"]{background:#fff;color:var(--deep)}
.planner-choice small{display:block;opacity:.72;margin-top:4px;font-weight:650}
.planner-result{background:#fff;color:var(--text);border-radius:22px;padding:26px;min-height:230px}
.planner-result h3{color:var(--deep);font-size:28px;margin:0 0 7px}.planner-result>p{color:var(--muted);margin:0 0 20px}
.itinerary{list-style:none;padding:0;margin:0;display:grid;gap:12px;counter-reset:step}
.itinerary li{counter-increment:step;display:grid;grid-template-columns:38px 1fr;gap:12px;align-items:start;border-top:1px solid var(--line);padding-top:12px}
.itinerary li:before{content:counter(step);width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#e8f6fc;color:var(--deep);font-weight:950}
.itinerary strong{display:block;color:var(--deep)}
.itinerary span{color:var(--muted);font-size:14px}
.planner-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}.planner-actions a,.planner-actions button{border:0;border-radius:12px;padding:12px 16px;background:var(--blue);color:#fff;font:inherit;font-weight:900;cursor:pointer}.planner-actions .secondary{background:#e9f6fc;color:var(--deep)}
.event-tools{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin:-12px 0 28px}
.event-search{border:1px solid var(--line);border-radius:12px;padding:11px 14px;font:inherit;min-width:240px}
.event-card .calendar-link{display:inline-flex;margin-left:12px;color:var(--blue);font-weight:900;font-size:13px}
.own-guides{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.own-guide{border:1px solid var(--line);border-radius:22px;padding:24px;background:#fff;box-shadow:0 12px 35px rgba(6,47,75,.08)}
.own-guide .guide-icon{width:48px;height:48px;border-radius:15px;background:#e6f6fc;display:grid;place-items:center;font-size:24px;margin-bottom:24px}
.own-guide h3{font-size:23px;line-height:1.1;color:var(--deep);margin:0 0 10px}.own-guide p{color:var(--muted);margin:0 0 18px}.own-guide a{color:var(--blue);font-weight:950}
.partner-panel{display:grid;grid-template-columns:1.05fr .8fr;gap:22px;background:#073a59;color:#fff;border-radius:30px;padding:clamp(28px,5vw,60px);box-shadow:0 22px 60px rgba(6,47,75,.18)}
.partner-panel h2{font-size:clamp(34px,4vw,52px);line-height:1;margin:6px 0 16px;color:#fff!important}.partner-panel p{color:#edfaff!important}.partner-panel .eyebrow{color:#9ee3ff!important}.partner-options{display:grid;gap:10px}.partner-option{padding:16px;border-radius:16px;background:#174e6e;border:1px solid #56809a;color:#fff}.partner-option strong{display:block;color:#fff}.partner-option span{font-size:13px;color:#e8f7ff}
.trust-row{display:flex;gap:18px;flex-wrap:wrap;margin-top:20px;font-size:13px;color:#d9f3ff}
.senior-mode{font-size:19px}.senior-mode .muted,.senior-mode p{line-height:1.75}.contrast-mode{filter:contrast(1.12)}
.contrast-mode body{background:#fff;color:#000}.contrast-mode .filter-chip,.contrast-mode .place-item{border-color:#183244}
.install-hint{display:none;margin:12px 0 0;padding:12px 14px;background:#e7f7ef;color:#165c39;border-radius:12px;font-weight:800}
.install-hint.visible{display:block}
.subpage-hero{padding:76px 0 54px;background:linear-gradient(135deg,#062f4b,#0879bf);color:#fff}.subpage-hero h1{font-size:clamp(42px,7vw,76px);line-height:.95;margin:12px 0 18px;max-width:900px}.subpage-hero p{font-size:19px;max-width:760px;color:#dff5ff}.breadcrumbs{font-size:13px;font-weight:850;color:#dff5ff}.content-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:42px;padding:70px 0}.article-content h2{color:var(--deep);font-size:34px;margin-top:42px}.article-content h3{color:var(--deep);font-size:23px}.article-content p,.article-content li{font-size:17px}.fact-card{position:sticky;top:110px;border:1px solid var(--line);border-radius:22px;padding:22px;background:#f4fbff}.fact-card h2{font-size:22px;margin-top:0}.fact-list{list-style:none;padding:0;display:grid;gap:12px}.fact-list li{padding-bottom:12px;border-bottom:1px solid var(--line)}
@media(max-width:980px){.map-layout,.partner-panel,.content-grid{grid-template-columns:1fr}.map-sidebar{max-height:none}.planner-choices{grid-template-columns:repeat(2,1fr)}.own-guides{grid-template-columns:repeat(2,1fr)}.fact-card{position:static}#tour-map{min-height:520px}}
@media(max-width:680px){.section-shell{padding:60px 0}.section-intro{grid-template-columns:1fr;gap:14px}.map-layout{border-radius:20px}.planner-choices,.own-guides{grid-template-columns:1fr}.utility-bar{left:10px;right:10px;bottom:10px;justify-content:space-between}.utility-bar button,.utility-bar a{flex:1;font-size:13px}.event-search{width:100%;min-width:0}#tour-map{min-height:430px}.map-sidebar{max-height:440px}.partner-panel{border-radius:20px}.section-intro h2{font-size:40px}}
@media print{header,.topbar,.utility-bar,.map-layout,.partner-panel,.event-tools,.planner-choices,.planner-actions,footer{display:none!important}.planner-panel{background:#fff;color:#000;box-shadow:none;padding:0}.planner-result{padding:0}.section-shell{padding:20px 0}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
