:root{--red:#df1e26;--ink:#17212b;--muted:#6b7680;--line:#e2e7ea;--paper:#fff;--sky:#dfeff4;--snow:#f8fafb;--pine:#244c43;--gold:#d8a53b;--shadow:0 18px 50px rgba(19,35,45,.10)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--snow);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}.topbar{height:68px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 4vw;position:sticky;top:0;z-index:20}.brand{font-weight:900;letter-spacing:.06em}.brand b{color:var(--red)}.cross{display:inline-grid;place-items:center;width:24px;height:24px;background:var(--red);color:#fff;margin-right:8px;font-size:15px}.topbar nav a{margin:0 0 0 24px;color:var(--ink);text-decoration:none;font-size:14px;font-weight:700}.mobileBtn{display:none;border:0;background:none;font-size:24px}
.heroSky{min-height:420px;position:relative;overflow:hidden;background:linear-gradient(180deg,#dceef3 0%,#edf7f8 63%,#f7faf9 100%);display:flex;align-items:center;padding:70px 6vw 115px}.heroCopy{max-width:720px;position:relative;z-index:3}.eyebrow{font-size:11px;letter-spacing:.18em;font-weight:900;color:var(--red)}h1{font-size:clamp(44px,7vw,82px);line-height:.93;margin:12px 0 20px;letter-spacing:-.055em}h1 em{font-style:normal;color:var(--pine)}.heroCopy p{font-size:19px;color:#53636d;max-width:630px}.heroBadges{display:flex;gap:8px;flex-wrap:wrap;margin-top:25px}.heroBadges span{background:#ffffffb8;border:1px solid #fff;padding:8px 12px;border-radius:99px;font-size:12px;font-weight:800}.mountains{position:absolute;inset:auto 0 0;height:210px}.peak{position:absolute;bottom:0;width:0;height:0;border-left:190px solid transparent;border-right:190px solid transparent;border-bottom:210px solid #78979a;opacity:.36}.peak:after{content:"";position:absolute;left:-45px;top:50px;border-left:45px solid transparent;border-right:45px solid transparent;border-bottom:60px solid #fff;opacity:.95}.p1{left:2%}.p2{left:25%;transform:scale(.78)}.p3{right:20%;transform:scale(1.25)}.p4{right:-8%;transform:scale(.82)}
main{width:100%;max-width:1800px;margin:auto;padding:28px 20px 70px}.planner{background:#fff;border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow);overflow:hidden}.plannerToolbar{padding:24px 25px 14px;display:flex;justify-content:space-between;gap:20px;align-items:flex-end}.plannerToolbar h2,.sectionTitle h2{margin:5px 0;font-size:32px;letter-spacing:-.03em}.viewControls{display:flex;gap:6px;flex-wrap:wrap}.viewBtn,.btn{border:1px solid var(--line);background:#fff;padding:9px 13px;border-radius:9px;font-weight:800;cursor:pointer}.viewBtn.active{background:var(--ink);color:#fff}.btn.red{background:var(--red);border-color:var(--red);color:#fff}.btn.ghost{background:#f7f8f9}.wide{width:100%}
.filters{padding:10px 25px 18px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;border-bottom:1px solid var(--line);background:#fafbfb}.filters label{font-size:12px;font-weight:800;color:var(--muted)}select,input{font:inherit}.filters select,.modalLabel select{margin-left:6px;padding:8px;border:1px solid var(--line);border-radius:8px;background:#fff}.dayChecks{display:flex;gap:6px;flex-wrap:wrap}.dayChecks label{background:#fff;border:1px solid var(--line);padding:7px 9px;border-radius:8px;cursor:pointer}.dayChecks input{margin-right:4px}
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.12fr);height:calc(100vh - 285px);min-height:620px;overflow:hidden}.itineraryPanel{border-right:1px solid var(--line);min-width:0;overflow-y:auto;overscroll-behavior:contain}.itineraryPanel::-webkit-scrollbar{width:10px}.itineraryPanel::-webkit-scrollbar-thumb{background:#cbd5d2;border:3px solid #fff;border-radius:999px}.mapPanel{min-width:0;height:100%;position:relative}.panelHead{height:72px;padding:15px 18px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.panelHead strong{display:block}.panelHead span{display:block;color:var(--muted);font-size:12px;margin-top:3px}.dayCard{border-bottom:1px solid var(--line)}.dayHeader{display:grid;grid-template-columns:55px 1fr auto;gap:10px;padding:15px 18px;cursor:pointer}.dayNo{color:var(--red);font-weight:950;font-size:22px}.dayHeader h3{margin:0;font-size:15px}.dayHeader small{color:var(--muted)}.dayBody{padding:0 18px 14px 73px}.stop{display:grid;grid-template-columns:8px 1fr auto;gap:10px;align-items:center;padding:9px 0}.stopDot{width:8px;height:8px;border-radius:50%;background:var(--gold)}.stopTitle{font-weight:750}.stopMeta{font-size:11px;color:var(--muted)}.stopActions button{border:0;background:none;color:var(--red);cursor:pointer}.priority{color:var(--red)}
.mapPanel{display:flex;flex-direction:column;background:#eef5f3}.mapTop{height:72px;padding:15px 18px;background:#fff;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.mapTop strong{display:block}.mapTop span{font-size:12px;color:var(--muted)}.mapViewport{position:relative;flex:1;min-height:610px;overflow:hidden}.mapCanvas{position:absolute;inset:0;min-height:610px;overflow:hidden}.mapProviderPane{transition:opacity .18s ease,visibility .18s ease}.mapCanvas.providerHidden,.mapProviderPane.providerHidden{opacity:0;visibility:hidden;pointer-events:none}.fallbackMap{position:absolute;inset:0;background:linear-gradient(145deg,#dfeeea,#eef5f2 60%,#e5f0f4)}.lake{position:absolute;background:#9cced3;border-radius:60% 40% 55% 45%;opacity:.65}.lake1{width:45%;height:30%;left:-10%;top:8%;transform:rotate(-20deg)}.lake2{width:25%;height:45%;right:8%;top:28%;transform:rotate(15deg)}.mountainRange{position:absolute;inset:auto 0 0;height:46%;background:linear-gradient(135deg,transparent 28%,#91aaa5 28%,#91aaa5 40%,transparent 40%),linear-gradient(45deg,transparent 36%,#718d88 36%,#718d88 48%,transparent 48%);opacity:.48}.routeLineMap{position:absolute;left:28%;top:25%;width:42%;height:42%;border-left:4px solid var(--red);border-bottom:4px solid var(--red);border-radius:0 0 0 100%;transform:rotate(10deg);opacity:.8}.mapPin{position:absolute;width:50px;height:50px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--red);color:#fff;display:grid;place-items:center;font-weight:900;box-shadow:0 8px 20px #15222a30}.mapPin small{position:absolute;transform:rotate(45deg);top:48px;color:var(--ink);white-space:nowrap;font-size:11px}.lucerne{left:22%;top:20%}.interlaken{left:50%;top:44%}.zermatt{left:69%;top:68%}.customPin{position:absolute;width:14px;height:14px;border-radius:50%;background:var(--gold);border:3px solid #fff;box-shadow:0 4px 12px #0004}.mapLegend{position:absolute;bottom:15px;left:15px;background:#ffffffdd;padding:9px 11px;border-radius:10px;font-size:11px;display:flex;gap:14px}.mapFooter{background:#fff;border-top:1px solid var(--line);padding:10px 14px;font-size:11px;color:var(--muted);display:flex;justify-content:space-between;gap:10px}.mapFooter a,.pass a,.cloudCards a{color:var(--red);font-weight:800;text-decoration:none}
.featureStrip{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);margin:35px 0}.featureStrip>div{background:#fff;padding:25px}.featureStrip span{color:var(--red);font-weight:900}.featureStrip strong{display:block;margin-top:10px}.featureStrip p,.sectionTitle p,.cloudCards p{color:var(--muted);font-size:14px;line-height:1.5}
.section{margin-top:55px}.sectionTitle{margin-bottom:18px}.passGrid,.cloudCards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.pass,.card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px;box-shadow:0 8px 25px #10202a08}.pass h3,.card h3{margin-top:0}.price{font-size:30px;font-weight:950;margin:12px 0}.dropBox{background:#fff;border:1px dashed #bdc6cb;border-radius:15px;padding:18px}.dropBox>div:first-child{display:flex;gap:10px;justify-content:space-between}.dropBox>div:first-child span{color:var(--muted);font-size:12px}.addDrop{display:flex;gap:8px;margin-top:15px}.addDrop input{flex:1;padding:10px;border:1px solid var(--line);border-radius:8px}.dropItem{padding:8px 0;border-bottom:1px solid var(--line)}
.modal{position:fixed;inset:0;background:#12202a88;display:grid;place-items:center;padding:20px;z-index:50}.hidden{display:none}.modalCard{width:min(620px,100%);background:#fff;border-radius:20px;padding:26px;position:relative;box-shadow:var(--shadow)}.close{position:absolute;right:15px;top:12px;border:0;background:none;font-size:27px;cursor:pointer}.sub{color:var(--muted)}#placeSearch{width:100%;padding:13px;border:1px solid var(--line);border-radius:10px}.placeResult{margin:12px 0;padding:14px;border-radius:10px;background:#f5f7f7;min-height:65px}.modalLabel{display:block;font-size:12px;font-weight:800;margin:12px 0}
@media(max-width:950px){.split{grid-template-columns:1fr}.itineraryPanel{border-right:0}.mapPanel{min-height:560px}.passGrid,.cloudCards,.featureStrip{grid-template-columns:1fr 1fr}.topbar nav{display:none}.mobileBtn{display:block}}
@media(max-width:650px){.plannerToolbar{display:block}.viewControls{margin-top:14px}.filters{align-items:flex-start}.dayChecks{max-height:120px;overflow:auto}.split{min-height:auto}.mapCanvas{min-height:480px}.passGrid,.cloudCards,.featureStrip{grid-template-columns:1fr}.heroSky{padding:55px 6vw 100px}.heroCopy p{font-size:16px}}
.sitePhase{display:inline-block;margin-left:8px;padding:3px 7px;border:1px solid var(--red);border-radius:999px;color:var(--red);font-size:10px;letter-spacing:.12em}
.plannerMenuBtn{margin-left:24px;border:1px solid var(--line);background:#fff;padding:8px 11px;border-radius:9px;font-weight:800;cursor:pointer;color:var(--ink)}
.sideBackdrop{position:fixed;inset:0;background:#12202a66;z-index:39}.sidePlanner{position:fixed;right:0;top:0;height:100vh;width:min(440px,94vw);background:#fff;z-index:40;box-shadow:-18px 0 50px rgba(19,35,45,.18);padding:24px;overflow:auto}.sidePlanner.hidden,.sideBackdrop.hidden{display:none}.sidePlannerHead{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.sidePlannerHead h2{margin:5px 0 0;font-size:27px;letter-spacing:-.03em}.sidePlannerIntro{color:var(--muted);font-size:13px;line-height:1.5;margin:14px 0 18px}.planningRoadmap{display:grid;gap:9px}.roadmapItem{border:1px solid var(--line);border-radius:13px;padding:13px;display:flex;gap:12px;justify-content:space-between;align-items:center}.roadmapItem strong{display:block;font-size:13px}.roadmapItem small{display:block;color:var(--muted);margin-top:4px;line-height:1.35}.roadmapToggle{white-space:nowrap;border:1px solid var(--line);background:#f7f8f9;padding:7px 9px;border-radius:8px;font-weight:800;cursor:pointer}.roadmapItem.on{border-color:#d7a63c;background:#fffaf0}.roadmapItem.on .roadmapToggle{background:var(--gold);border-color:var(--gold);color:#17212b}.planningIdeaBox{margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}.planningIdeaRow{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:8px}.planningIdeaRow input{padding:10px;border:1px solid var(--line);border-radius:8px}.planningNote{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line);font-size:12px}.planningNote button{border:0;background:none;color:var(--red);cursor:pointer}.sidePlannerFoot{margin-top:20px;padding:12px;border-radius:12px;background:#f5f7f7;color:var(--muted);font-size:11px;line-height:1.45;display:grid;gap:6px}
@media(max-width:950px){.plannerMenuBtn{margin-left:8px}.sidePlanner{width:min(430px,92vw)}}
@media(max-width:650px){.sitePhase{display:none}.plannerMenuBtn{font-size:12px;padding:7px 9px}.sidePlanner{padding:20px 16px}.planningIdeaRow{grid-template-columns:1fr}}

.dayEditBtn{border:1px solid var(--line);background:#fff;padding:6px 9px;border-radius:8px;font-size:11px;font-weight:800;cursor:pointer;color:var(--ink)}
.dayEditBtn:hover{border-color:var(--gold);background:#fffaf0}
.stopActions{display:flex;align-items:center;gap:5px;flex-wrap:wrap;justify-content:flex-end}
.itemStatusSelect{border:1px solid var(--line);border-radius:7px;background:#fff;padding:5px 7px;font-size:11px;color:var(--muted)}
.itemSmallBtn{border:1px solid var(--line);background:#fff;border-radius:7px;padding:5px 7px;font-size:11px;font-weight:800;cursor:pointer;color:var(--ink)}
.itemSmallBtn:hover{background:#f7f8f9}
.itemSmallBtn.danger{color:var(--red)}
.modalCard textarea{width:100%;padding:11px;border:1px solid var(--line);border-radius:9px;resize:vertical}
.emptyState{padding:13px 0;color:var(--muted);font-size:12px;line-height:1.45}
.authMessage{margin-top:10px;color:var(--muted);font-size:12px;line-height:1.4}

.draggableItem{cursor:grab}
.draggableItem:active{cursor:grabbing}
.draggableItem.dragging{opacity:.45}
.itineraryDropZone{min-height:44px;transition:background .15s ease,outline .15s ease}
.itineraryDropZone.dragOver{background:#fffaf0;outline:2px dashed var(--gold);outline-offset:-4px}

.syncBar{display:flex;gap:1px;flex-wrap:wrap;background:var(--line);border-bottom:1px solid var(--line)}
.syncItem{flex:1 1 150px;min-width:130px;background:#f8fafb;padding:9px 12px;font-size:11px;color:var(--muted);display:flex;justify-content:space-between;gap:8px}
.syncItem b{color:var(--ink);font-size:10px;text-transform:uppercase;letter-spacing:.06em}
.syncItem span{font-weight:700;color:var(--pine);text-align:right}

.stopMain{min-width:0}
.mapQuickLinks{display:flex;gap:10px;flex-wrap:wrap;margin-top:5px}
.mapQuickLinks a{font-size:10px;font-weight:800;color:var(--pine);text-decoration:none}
.mapQuickLinks a:hover{text-decoration:underline}
.nearbySearch{display:flex;gap:5px;margin-top:6px;max-width:430px}
.nearbyInput{min-width:0;flex:1;border:1px solid var(--line);border-radius:7px;background:#fff;padding:5px 7px;font-size:11px;color:var(--ink)}
.nearbyInput:focus{outline:2px solid rgba(180,145,65,.25);border-color:var(--gold)}

.travelModeBtn{display:none}
.travelModal{position:fixed;inset:0;z-index:100;background:rgba(18,28,34,.72);padding:20px;overflow:auto}
.travelCard{width:min(720px,100%);margin:0 auto;background:#fff;border-radius:18px;min-height:calc(100vh - 40px);padding:22px;box-shadow:0 20px 70px rgba(0,0,0,.28);box-sizing:border-box}
.travelHead{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;border-bottom:1px solid var(--line);padding-bottom:16px}
.travelHead h2{margin:3px 0 4px;font-size:26px}
.travelMeta{color:var(--muted);font-size:13px}
.travelDayBar{padding:14px 0}
.travelDayBar label{font-size:12px;font-weight:800;color:var(--muted);display:grid;gap:5px}
.travelDayBar select{width:100%;box-sizing:border-box;padding:11px 12px;border:1px solid var(--line);border-radius:9px;background:#fff;font-size:14px;min-height:44px}
.travelNotes{background:#f7f5ef;border-radius:10px;padding:11px;margin-bottom:12px;font-size:13px;line-height:1.5}
.travelStops{display:grid;gap:10px}
.travelStop{display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;border:1px solid var(--line);border-radius:13px;padding:12px;box-sizing:border-box}
.travelStopIndex{width:30px;height:30px;border-radius:50%;background:var(--pine);color:#fff;display:grid;place-items:center;font-weight:900}
.travelStopBody{min-width:0}
.travelStopBody h3{margin:0 0 4px;font-size:16px;overflow-wrap:anywhere}
.travelStopBody p{margin:0;color:var(--muted);font-size:12px;line-height:1.4;overflow-wrap:anywhere}
.travelStopActions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px}
.travelAction{display:flex;align-items:center;justify-content:center;min-height:44px;padding:9px 10px;box-sizing:border-box;border-radius:9px;border:1px solid var(--line);text-decoration:none;color:var(--ink);font-size:12px;font-weight:900;text-align:center;line-height:1.25;overflow-wrap:anywhere}
.travelAction.primary{background:var(--red);border-color:var(--red);color:#fff}
.travelEmpty{padding:30px 10px;text-align:center;color:var(--muted)}
@media(max-width:650px){
  .travelModeBtn{display:inline-flex}
  .travelModal{padding:0}
  .travelCard{width:100%;min-height:100vh;margin:0;border-radius:0;padding:16px}
  .travelHead{gap:10px}
  .travelHead h2{font-size:23px}
  .travelStop{grid-template-columns:30px minmax(0,1fr);padding:11px}
  .travelStopIndex{width:28px;height:28px}
  .travelStopActions{grid-template-columns:1fr}
  .travelAction{width:100%;min-height:46px}
}

.researchToolbar{display:flex;justify-content:space-between;gap:15px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:16px;padding:17px 18px}.researchToolbar strong{display:block}.researchToolbar span{display:block;color:var(--muted);font-size:12px;margin-top:4px}.researchList{display:grid;gap:10px;margin-top:12px}.researchCard{background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px;box-shadow:0 8px 25px #10202a08}.researchCard.added{background:#fafbfb}.researchCardHead{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.researchCardHead strong{display:block;font-size:15px}.researchCardHead span:not(.researchStatus){display:block;color:var(--muted);font-size:12px;margin-top:4px}.researchStatus{white-space:nowrap;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;padding:5px 7px;border-radius:999px;background:#f2f5f4;color:var(--pine)}.researchNotes{margin:11px 0;padding:10px 11px;border-radius:10px;background:#f7f5ef;font-size:12px;line-height:1.45;color:var(--muted)}.researchLink{display:inline-block;margin-top:8px;color:var(--pine);font-size:11px;font-weight:900;text-decoration:none}.researchLink:hover{text-decoration:underline}.researchCardActions{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:12px;flex-wrap:wrap}.researchPromote{display:grid;grid-template-columns:minmax(180px,1fr) auto;gap:7px;flex:1;min-width:280px}.researchPromote select{min-height:34px;border:1px solid var(--line);border-radius:8px;padding:7px 8px;background:#fff}.researchDone{font-size:11px;color:var(--muted)}.researchAddedHead{margin-top:5px;padding:8px 3px 2px;color:var(--muted);font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}
@media(max-width:650px){.researchToolbar{display:grid;grid-template-columns:1fr}.researchToolbar .btn{width:100%}.researchCardHead{display:grid}.researchStatus{justify-self:start}.researchPromote{grid-template-columns:1fr;min-width:100%;width:100%}.researchPromote select,.researchPromote .btn{width:100%;min-height:44px}.researchCardActions{display:grid}.researchCardActions .danger{width:100%;min-height:44px}}

.researchJumpBtn{display:none}
@media(max-width:650px){
  .researchJumpBtn{display:inline-flex;align-items:center;justify-content:center}
}

.formGrid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.formGrid3{display:grid;grid-template-columns:1fr 1fr .7fr;gap:10px}
.accommodationList{display:grid;gap:10px;margin-top:12px}.accommodationCard{background:#fff;border:1px solid var(--line);border-radius:16px;padding:17px;box-shadow:0 8px 25px #10202a08}.accommodationCard.cancelled{opacity:.72}
.accommodationCardHead{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.accommodationCardHead strong{display:block;font-size:16px}.accommodationCardHead span:not(.accommodationStatus){display:block;color:var(--muted);font-size:12px;margin-top:4px}
.accommodationStatus{white-space:nowrap;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;padding:5px 8px;border-radius:999px;background:#f2f5f4;color:var(--pine)}.accommodationStatus.booked{background:#eef7f1;color:var(--pine)}.accommodationStatus.cancelled{background:#f8eeee;color:var(--red)}
.accommodationMeta{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px;color:var(--muted);font-size:12px}.accommodationFacts{display:flex;gap:9px;flex-wrap:wrap;margin-top:11px}.accommodationFacts span{background:#f7f8f9;border:1px solid var(--line);border-radius:8px;padding:7px 9px;font-size:11px}.accommodationFacts b{color:var(--ink);margin-right:4px}.accommodationNotes{margin:11px 0;padding:10px 11px;border-radius:10px;background:#f7f5ef;font-size:12px;line-height:1.45;color:var(--muted)}
.accommodationActions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:12px}.accommodationActionSpacer{flex:1}
.stayJumpBtn{display:none}
@media(max-width:650px){
  .formGrid2,.formGrid3{grid-template-columns:1fr}
  .accommodationCardHead{display:grid}.accommodationStatus{justify-self:start}.accommodationActions{display:grid;grid-template-columns:1fr 1fr}.accommodationActionSpacer{display:none}.accommodationActions .researchLink{grid-column:1 / -1}.accommodationActions .itemSmallBtn{min-height:44px}.stayJumpBtn{display:inline-flex;align-items:center;justify-content:center}
}
.transportList{display:grid;gap:10px;margin-top:12px}.transportCard{background:#fff;border:1px solid var(--line);border-radius:16px;padding:17px;box-shadow:0 8px 25px #10202a08}.transportCardHead{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.transportCardHead strong{display:block;font-size:16px;margin-top:4px}.transportDay{display:block;color:var(--muted);font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.transportMode{white-space:nowrap;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;padding:5px 8px;border-radius:999px;background:#f2f5f4;color:var(--pine)}.transportMeta{display:flex;gap:9px;flex-wrap:wrap;margin-top:12px}.transportMeta span{background:#f7f8f9;border:1px solid var(--line);border-radius:8px;padding:7px 9px;font-size:11px}.transportMeta b{color:var(--ink);margin-right:4px}.transportNotes{margin:11px 0;padding:10px 11px;border-radius:10px;background:#f7f5ef;font-size:12px;line-height:1.45;color:var(--muted)}.transportActions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:12px}.transportJumpBtn{display:none}@media(max-width:650px){.transportCardHead{display:grid}.transportMode{justify-self:start}.transportActions{display:grid;grid-template-columns:1fr 1fr}.transportActions .researchLink{grid-column:1 / -1}.transportActions .itemSmallBtn{min-height:44px}.transportJumpBtn{display:inline-flex;align-items:center;justify-content:center}}
.itemIcon{width:34px;height:34px;min-width:34px;border-radius:50%;display:grid;place-items:center;background:#f2f5f4;border:1px solid var(--line);font-size:18px;line-height:1}.sectionIcon,.travelItemIcon{display:inline-flex;align-items:center;justify-content:center;margin-right:5px;font-size:1.05em;line-height:1}.travelItemIcon{margin-right:3px}.stopDot.itemIcon{align-self:flex-start;margin-top:1px}@media(max-width:650px){.itemIcon{width:38px;height:38px;min-width:38px;font-size:20px}}

.daySummary{display:flex;gap:10px;flex-wrap:wrap;padding:9px 12px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#fafbf9;color:var(--muted);font-size:11px}.daySummary strong{color:var(--ink)}.daySummaryNote{flex-basis:100%;line-height:1.45}.stop.draggableItem{display:grid;grid-template-columns:22px 34px minmax(0,1fr) auto;gap:8px}.stopSequence{width:22px;height:22px;min-width:22px;border-radius:50%;display:grid;place-items:center;background:var(--pine);color:#fff;font-size:10px;font-weight:900;align-self:start;margin-top:6px}@media(max-width:650px){.stop.draggableItem{grid-template-columns:24px 38px minmax(0,1fr)}.stopSequence{width:24px;height:24px;min-width:24px}.stopActions{grid-column:2 / -1}.daySummary{font-size:11px}}

/* Interactive itinerary map */
.mapTopActions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.mapCanvas{background:#dfeeea}
.mapEmptyState{position:absolute;left:18px;bottom:18px;z-index:6;width:min(360px,calc(100% - 36px));display:grid;gap:6px;padding:12px 14px;border:1px solid #dfe4e5;border-radius:12px;background:#fffffff2;box-shadow:0 10px 25px #10202a18;font-size:11px;line-height:1.45;color:var(--muted)}
.mapEmptyState strong{color:var(--ink);font-size:12px}
.mapLibreMarker{position:relative;width:30px;height:38px;border:2px solid #fff;border-radius:50% 50% 48% 48%;background:var(--red);color:#fff;box-shadow:0 6px 18px #10202a38;display:grid;place-items:center;padding:0;cursor:pointer;font:900 11px/1 Inter,ui-sans-serif,system-ui,sans-serif;clip-path:polygon(50% 100%,12% 58%,6% 43%,8% 29%,18% 16%,32% 7%,50% 3%,68% 7%,82% 16%,92% 29%,94% 43%,88% 58%)}
.mapLibreMarker span{display:block;transform:none}
.mapLibreMarker:hover{filter:brightness(.96);box-shadow:0 8px 22px #10202a45}
.mapLibreMarker.active{background:var(--pine);transform:scale(1.12);z-index:3}
.mapFocusBtn{border:1px solid var(--line);background:#f7f9f8;color:var(--pine);border-radius:7px;padding:5px 7px;font-size:10px;font-weight:850;cursor:pointer}
.mapFocusBtn:hover{background:#eef5f2;border-color:#cbd8d3}
.mapLocationMissing{font-size:10px;color:var(--muted);font-style:italic}
.stop.mapFocused{background:#fffaf0;border-radius:10px;box-shadow:0 0 0 2px #d8a53b33}
.maplibregl-popup-content{font:12px/1.4 Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;border-radius:10px;padding:10px 12px;box-shadow:0 10px 30px #10202a24}
.maplibregl-popup-close-button{font-size:18px;padding:3px 7px}
.maplibregl-ctrl-group{border-radius:9px;overflow:hidden}
.mapLocationHint{margin:-2px 0 10px;padding:9px 11px;border-radius:9px;background:#f5f7f7;color:var(--muted);font-size:11px;line-height:1.4}
@media(max-width:650px){
  .mapTopActions{width:100%;justify-content:flex-end;margin-top:8px}
  .mapTop{height:auto;min-height:72px;align-items:flex-start}
  .mapTopActions .btn{min-height:40px}
  .mapEmptyState{left:12px;bottom:12px;width:calc(100% - 24px)}
  .mapFocusBtn{min-height:34px}
}

.mapDiagnostic{position:absolute;left:14px;bottom:14px;z-index:7;max-width:min(430px,calc(100% - 28px));padding:9px 11px;border:1px solid #e2b7b7;border-radius:9px;background:#fff8f8;color:#8c2a2a;font-size:11px;line-height:1.4;box-shadow:0 8px 24px #10202a18}
@media(min-width:1500px){main{padding-left:16px;padding-right:16px}.split{grid-template-columns:minmax(0,.96fr) minmax(0,1.18fr)}}
@media(max-width:900px){main{padding-left:12px;padding-right:12px}.split{height:auto;min-height:0;grid-template-columns:1fr}.itineraryPanel{max-height:none;overflow:visible}.mapPanel{height:560px}.mapCanvas{min-height:0;height:100%}}

.mapProviderToggle{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:#f7f8f9}.mapProviderBtn{border:0;background:transparent;color:var(--ink);padding:8px 10px;font-size:11px;font-weight:900;cursor:pointer}.mapProviderBtn.active{background:var(--ink);color:#fff}.googleMapPane{background:#eef5f3}.googleMapFrame{position:absolute;inset:0;width:100%;height:100%;border:0;background:#e9eeee}.googleMapBar{position:absolute;left:14px;right:14px;top:14px;z-index:5;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;border:1px solid #dfe4e5;border-radius:11px;background:#fffffff2;box-shadow:0 8px 24px #10202a18}.googleMapBar strong{display:block;font-size:12px;color:var(--ink)}.googleMapBar span{display:block;margin-top:3px;font-size:10px;color:var(--muted)}.googleMapNotice{position:absolute;left:14px;right:14px;bottom:14px;z-index:5;padding:9px 11px;border:1px solid #dfe4e5;border-radius:9px;background:#fffffff2;color:var(--muted);font-size:10px;line-height:1.4;box-shadow:0 8px 24px #10202a18}.googleMapBar .btn{white-space:nowrap}.googleMapPane.providerHidden{visibility:hidden}
@media(max-width:650px){.mapProviderToggle{width:100%}.mapProviderBtn{flex:1;min-height:40px}.googleMapBar{left:10px;right:10px;top:10px;display:grid;grid-template-columns:1fr}.googleMapBar .btn{width:100%;min-height:40px;text-align:center}.googleMapNotice{left:10px;right:10px;bottom:10px}.mapViewport{min-height:0;height:100%}.mapCanvas{min-height:0}}

/* Rich visual itinerary workspace */
.richDayCard{
  margin:12px 10px 0;
  border:1px solid #d9e3df;
  border-radius:16px;
  overflow:hidden;
  background:#fff;
  box-shadow:0 8px 22px rgba(24,42,50,.07);
}
.richDayHero{
  position:relative;
  display:grid;
  grid-template-columns:74px minmax(0,1fr) auto;
  gap:14px;
  align-items:center;
  min-height:118px;
  padding:16px 18px;
  color:#173b39;
  background:linear-gradient(115deg,#e7f1ee 0%,#f8f5ea 55%,#e8f0ef 100%);
  overflow:hidden;
}
.richDayHero:after{
  content:"";
  position:absolute;
  width:210px;height:210px;
  right:-70px;top:-105px;
  border-radius:50%;
  border:28px solid rgba(255,255,255,.55);
}
.richDayMountain{
  width:66px;height:66px;
  display:grid;place-items:center;
  border-radius:16px;
  background:linear-gradient(145deg,#2c6962,#183f3c);
  color:#fff;
  font-size:30px;
  box-shadow:0 8px 18px rgba(24,63,60,.2);
}
.richDayHeroCopy{position:relative;z-index:1;min-width:0}
.richDayKicker{
  font-size:9px;
  font-weight:950;
  letter-spacing:.13em;
  color:var(--red);
  margin-bottom:3px;
}
.richDayHero h3{
  margin:0;
  font-size:20px;
  letter-spacing:-.025em;
}
.richDayBase{
  display:inline-flex;
  margin-top:6px;
  padding:4px 8px;
  border-radius:999px;
  background:#ffffffb8;
  border:1px solid #ffffff;
  font-size:11px;
  font-weight:850;
}
.richDayNote{
  margin-top:7px;
  max-width:680px;
  color:#55706c;
  font-size:11px;
  line-height:1.4;
}
.richDayEdit{position:relative;z-index:2}
.richDayStats{
  display:flex;
  gap:7px;
  flex-wrap:wrap;
  padding:10px 14px;
  background:#fffdf8;
  border-bottom:1px solid #eee8d9;
}
.richDayStats span{
  display:inline-flex;
  align-items:center;
  gap:3px;
  padding:5px 8px;
  border:1px solid #e5e0d2;
  border-radius:999px;
  color:#64726f;
  font-size:10px;
  background:#fff;
}
.richDayStats strong{color:#233d3a}
.richDayStats .statDropped{background:#fff3f1;border-color:#f0d8d4;color:#9c4438}
.richDayBody{
  padding:10px 12px 14px 18px;
  background:#f7f9f8;
}
.richStop{
  display:grid;
  grid-template-columns:28px 42px minmax(0,1fr) auto;
  gap:10px;
  align-items:center;
  margin:7px 0;
  padding:11px 12px 11px 9px;
  border:1px solid #e1e8e5;
  border-radius:13px;
  background:#fff;
  box-shadow:0 2px 8px rgba(26,43,50,.035);
  transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease;
}
.richStop:hover{
  transform:translateY(-1px);
  border-color:#cbd9d5;
  box-shadow:0 7px 16px rgba(26,43,50,.07);
}
.richStopNumber{
  width:27px;height:27px;
  display:grid;place-items:center;
  border-radius:50%;
  background:#edf3f1;
  color:#275b56;
  font-size:11px;font-weight:950;
}
.richStopIcon{
  width:42px;height:42px;
  display:grid;place-items:center;
  border-radius:11px;
  background:linear-gradient(145deg,#f2eee0,#e7efe9);
  border:1px solid #e0e5dd;
  font-size:21px;
}
.richStopMain{min-width:0}
.richStopTopline{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.richStopTopline .stopTitle{font-size:14px;font-weight:900;color:#193a38}
.richStopType{
  margin-top:2px;
  font-size:10px;
  text-transform:capitalize;
  color:#81908c;
}
.richStopAddress{
  margin-top:5px;
  color:#697a76;
  font-size:10px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.richStopActions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:7px;
}
.richStopActions a{
  color:var(--red);
  text-decoration:none;
  font-size:10px;
  font-weight:850;
}
.richStopControls{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:4px;
}
.richStopControls .itemSmallBtn{min-width:54px}
.richEmptyState{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:4px;
  padding:30px 15px;
  color:#7a8985;
}
.richEmptyState span{font-size:26px}
.richEmptyState strong{color:#405854}
.richEmptyState small{font-size:11px}
.itemStatusBadge{
  display:inline-flex;
  align-items:center;
  padding:4px 7px;
  border-radius:999px;
  border:1px solid #dbe3df;
  font-size:9px;
  font-weight:950;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.itemStatusBadge.status-planned{background:#edf7f3;color:#28665d}
.itemStatusBadge.status-visited{background:#eaf5ee;color:#267149}
.itemStatusBadge.status-dropped{background:#fff0ee;color:#a94b40}
@media(max-width:900px){
  .richStop{grid-template-columns:26px 38px minmax(0,1fr)}
  .richStopControls{grid-column:3;flex-direction:row;flex-wrap:wrap}
  .richStopControls .itemStatusSelect{min-width:92px}
}
@media(max-width:650px){
  .richDayCard{margin:8px 5px 0;border-radius:13px}
  .richDayHero{grid-template-columns:48px minmax(0,1fr);gap:10px;min-height:100px;padding:13px}
  .richDayMountain{width:48px;height:48px;border-radius:12px;font-size:23px}
  .richDayHero h3{font-size:17px}
  .richDayEdit{grid-column:2;justify-self:start;margin-top:2px}
  .richDayStats{padding:8px 10px;gap:5px}
  .richDayStats span{font-size:9px;padding:4px 6px}
  .richDayBody{padding:7px 8px 11px}
  .richStop{grid-template-columns:25px 38px minmax(0,1fr);gap:8px;padding:9px 8px}
  .richStopIcon{width:38px;height:38px;font-size:19px}
  .richStopTopline .stopTitle{font-size:12px}
  .richStopActions{gap:7px}
  .richStopControls{grid-column:3}
  .richStopControls .itemSmallBtn{min-width:auto}
}


/* richer photographic visual treatment */
.topbar{backdrop-filter:saturate(135%) blur(10px);background:rgba(255,255,255,.92)}
.heroSky{min-height:470px;padding:76px 6vw 118px;background:linear-gradient(90deg,rgba(12,28,33,.70),rgba(12,28,33,.26)),url("https://images.unsplash.com/photo-1530122037265-a5f1f91d3b99?auto=format&fit=crop&w=2200&q=85") center 58%/cover no-repeat;align-items:flex-end}
.heroCopy{max-width:800px;color:#fff;text-shadow:0 2px 18px rgba(0,0,0,.22)}
.heroCopy .eyebrow{color:#fff}.heroCopy p{color:rgba(255,255,255,.9)}
.heroBadges span{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.3);color:#fff;backdrop-filter:blur(6px)}
.mountains{display:none}

.richDayHero{grid-template-columns:minmax(0,1fr) 190px auto;min-height:154px;padding:0;align-items:stretch;background:#193c39;color:#fff}
.richDayHeroCopy{padding:20px 18px 20px 20px;display:flex;justify-content:center;flex-direction:column;background:linear-gradient(90deg,rgba(25,60,57,.96),rgba(25,60,57,.75))}
.richDayHero:before{content:"";position:absolute;inset:0 190px 0 34%;background:linear-gradient(90deg,rgba(25,60,57,.82),rgba(25,60,57,.18)),var(--day-image, url("https://images.unsplash.com/photo-1506905925346-21bda4d32df4?auto=format&fit=crop&w=1200&q=80")) center/cover no-repeat}
.richDayHero:after{display:none}
.richDayMountain{display:none}
.richDayKicker{color:#f7cbd0}
.richDayHero h3{font-size:24px;color:#fff}
.richDayBase{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.2);color:#fff}
.richDayNote{color:rgba(255,255,255,.82)}
.richDayEdit{align-self:start;margin:14px;background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.22);color:#fff}
.richDayPhoto{position:relative;z-index:2;background:#dfeae6 center/cover no-repeat;min-height:154px}
.richDayPhotoLabel{position:absolute;left:10px;bottom:10px;padding:5px 7px;border-radius:999px;background:rgba(0,0,0,.48);color:#fff;font-size:9px;font-weight:900;letter-spacing:.04em;text-transform:uppercase}
.richDayStats{padding:10px 14px}
.richStop{grid-template-columns:28px 92px minmax(0,1fr) auto;align-items:stretch;padding:0;overflow:hidden}
.richStopPhoto{min-height:112px;background:#e8efec center/cover no-repeat}
.richStopMain{padding:13px 12px}
.richStopControls{padding:10px;background:#fafcfb;justify-content:center}
.richStopTopline .stopTitle{font-size:15px}
.richStopType{font-size:10px}
.richStopDuration{display:inline-flex;align-items:center;gap:5px;margin-top:6px;padding:4px 7px;border-radius:999px;background:#f4f6f5;color:#526560;font-size:10px;font-weight:800}
@media(max-width:900px){
  .richDayHero{grid-template-columns:minmax(0,1fr) 150px}
  .richDayHero:before{right:150px}
  .richDayEdit{grid-column:1 / -1;position:absolute;top:0;right:0}
  .richStop{grid-template-columns:26px 78px minmax(0,1fr)}
  .richStopControls{grid-column:3;padding:8px 10px;display:flex}
  .richStopPhoto{min-height:96px}
}
@media(max-width:650px){
  .heroSky{min-height:390px;padding:52px 6vw 92px}
  .richDayHero{grid-template-columns:minmax(0,1fr);min-height:180px}
  .richDayHero:before{inset:0;height:82px;bottom:auto}
  .richDayHeroCopy{padding-top:88px;background:linear-gradient(180deg,rgba(25,60,57,.02),#193c39 42%)}
  .richDayPhoto{display:none}
  .richDayEdit{position:absolute;top:8px;right:8px;margin:0}
  .richStop{grid-template-columns:25px 74px minmax(0,1fr);margin:7px 0}
  .richStopPhoto{min-height:88px}
  .richStopMain{padding:10px}
}

/* Final visual refinement: make itinerary photography feel like complete cards */
.richDayHero{
  grid-template-columns:minmax(0,1fr) 220px auto;
  min-height:168px;
  padding:0;
  align-items:stretch;
  background:#193c39;
}
.richDayHero:before{display:none}
.richDayHeroCopy{
  min-width:0;
  padding:22px 20px;
  background:linear-gradient(90deg,rgba(25,60,57,.98),rgba(25,60,57,.82));
}
.richDayPhoto{
  display:block;
  min-width:220px;
  min-height:168px;
  background-position:center;
  background-size:cover;
  background-repeat:no-repeat;
  border-left:1px solid rgba(255,255,255,.12);
}
.richDayEdit{
  align-self:start;
  margin:14px;
  white-space:nowrap;
}
.richStop{
  grid-template-columns:30px 150px minmax(0,1fr) auto;
}
.richStopPhoto{
  min-height:120px;
  width:150px;
  background-position:center;
  background-size:cover;
  background-repeat:no-repeat;
}
@media(max-width:900px){
  .richDayHero{grid-template-columns:minmax(0,1fr) 175px auto}
  .richDayPhoto{min-width:175px;min-height:150px}
  .richStop{grid-template-columns:26px 125px minmax(0,1fr)}
  .richStopPhoto{width:125px;min-height:105px}
}
@media(max-width:650px){
  .richDayHero{
    grid-template-columns:minmax(0,1fr);
    min-height:0;
  }
  .richDayHeroCopy{
    min-height:118px;
    padding:14px 13px 15px;
    background:linear-gradient(180deg,rgba(25,60,57,.08),#193c39 72%);
    position:relative;
    z-index:1;
  }
  .richDayPhoto{
    min-width:0;
    width:100%;
    height:132px;
    min-height:132px;
    order:-1;
    border-left:0;
    border-bottom:1px solid rgba(255,255,255,.12);
  }
  .richDayEdit{
    position:absolute;
    top:8px;
    right:8px;
    z-index:3;
    margin:0;
  }
  .richStop{
    grid-template-columns:25px 105px minmax(0,1fr);
  }
  .richStopPhoto{
    width:105px;
    min-height:100px;
  }
}

/* Final card alignment refinement */
.richDayBase{
  align-self:flex-start;
  width:50%;
  max-width:180px;
}
.richStop{
  grid-template-columns:30px 150px minmax(0,1fr) auto;
}
.richStopPhoto{
  grid-column:2;
  grid-row:1;
  width:150px;
  min-height:120px;
  align-self:stretch;
  z-index:1;
}
.richStopMain{
  grid-column:3;
  grid-row:1;
  position:relative;
  z-index:2;
  min-width:0;
  background:#fff;
}
.richStopControls{
  grid-column:4;
  grid-row:1;
  position:relative;
  z-index:2;
}
@media(max-width:900px){
  .richDayBase{width:50%;max-width:160px}
  .richStop{
    grid-template-columns:26px 125px minmax(0,1fr);
  }
  .richStopPhoto{
    grid-column:2;
    width:125px;
    min-height:105px;
  }
  .richStopMain{
    grid-column:3;
    grid-row:1;
  }
  .richStopControls{
    grid-column:3;
    grid-row:2;
  }
}
@media(max-width:650px){
  .richDayBase{width:50%;max-width:145px}
  .richStop{
    grid-template-columns:25px 105px minmax(0,1fr);
  }
  .richStopPhoto{
    grid-column:2;
    width:105px;
    min-height:100px;
  }
  .richStopMain{
    grid-column:3;
    grid-row:1;
  }
  .richStopControls{
    grid-column:3;
    grid-row:2;
  }
}

/* Correct visual hierarchy and hero gallery */
.heroSky{
  --hero-image:url("https://images.unsplash.com/photo-1530122037265-a5f1f91d3b99?auto=format&fit=crop&w=2200&q=85");
  background-image:linear-gradient(90deg,rgba(12,28,33,.70),rgba(12,28,33,.20)),var(--hero-image);
  background-position:center, var(--hero-position, center 58%);
  background-size:cover, var(--hero-size, cover);
  background-repeat:no-repeat;
  transition:background-image .7s ease;
}
.heroSky.heroPhotoSwap .heroCopy{animation:heroCopyFade .7s ease}
@keyframes heroCopyFade{0%{opacity:.78}100%{opacity:1}}
.heroPhotoTagline{
  position:absolute;
  right:5.5vw;
  top:50%;
  transform:translateY(-50%) rotate(-5deg);
  z-index:3;
  color:#fff;
  font-family:"Segoe Print","Bradley Hand",cursive;
  font-size:clamp(24px,3vw,42px);
  line-height:.9;
  text-align:center;
  text-shadow:0 3px 16px rgba(0,0,0,.45);
}
.richStop{
  display:grid !important;
  grid-template-columns:30px 150px minmax(0,1fr) auto !important;
  grid-template-rows:1fr !important;
  align-items:stretch !important;
  overflow:hidden !important;
  min-height:120px;
}
.richStopPhoto{
  grid-column:2 !important;
  grid-row:1 !important;
  width:150px !important;
  min-height:120px !important;
  height:100% !important;
  align-self:stretch !important;
  background-position:center !important;
  background-size:cover !important;
  background-repeat:no-repeat !important;
}
.richStopMain{
  grid-column:3 !important;
  grid-row:1 !important;
  align-self:stretch !important;
  background:#fff !important;
  padding:13px 12px !important;
  min-width:0 !important;
}
.richStopControls{
  grid-column:4 !important;
  grid-row:1 !important;
  align-self:stretch !important;
  background:#fafcfb !important;
  padding:10px !important;
}
.richDayBase{
  width:50% !important;
  max-width:180px !important;
}
#placePhotoCustom{display:block}
@media(max-width:900px){
  .richStop{
    grid-template-columns:26px 125px minmax(0,1fr) !important;
    grid-template-rows:1fr auto !important;
  }
  .richStopPhoto{grid-column:2 !important;grid-row:1 / span 2 !important;width:125px !important;min-height:105px !important}
  .richStopMain{grid-column:3 !important;grid-row:1 !important}
  .richStopControls{grid-column:3 !important;grid-row:2 !important}
}
@media(max-width:650px){
  .heroPhotoTagline{right:6vw;top:22%;font-size:23px}
  .richDayBase{width:50% !important;max-width:145px !important}
  .richStop{
    grid-template-columns:25px 105px minmax(0,1fr) !important;
    grid-template-rows:1fr auto !important;
  }
  .richStopPhoto{grid-column:2 !important;grid-row:1 / span 2 !important;width:105px !important;min-height:100px !important}
  .richStopMain{grid-column:3 !important;grid-row:1 !important}
  .richStopControls{grid-column:3 !important;grid-row:2 !important}
}

/* Icon/type and header photo editor refinements */
.richStopTopline{display:flex;align-items:center;gap:7px}
.richStopIcon{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:8px;background:#f0f5f2;font-size:15px;vertical-align:middle;flex:0 0 auto}
.richStopType{text-transform:none}
.heroPhotoEditBtn{
  position:absolute;right:24px;bottom:22px;z-index:5;
  border:1px solid rgba(255,255,255,.34);
  background:rgba(18,36,35,.45);color:#fff;
  border-radius:999px;padding:8px 12px;font-size:11px;font-weight:800;
  backdrop-filter:blur(7px);cursor:pointer;
}
.heroPhotoEditBtn:hover{background:rgba(18,36,35,.7)}
.heroPhotoModalCard{max-width:760px}
#heroPhotoList{display:grid;grid-template-columns:1fr 1fr;gap:10px;max-height:58vh;overflow:auto;padding-right:4px}
.heroPhotoEditorActions{display:flex;gap:8px;margin-top:14px;justify-content:flex-end}
@media(max-width:650px){
  .heroPhotoEditBtn{right:14px;bottom:16px}
  #heroPhotoList{grid-template-columns:1fr}
}

/* Map focus action */
.mapQuickLinks{display:flex;flex-wrap:wrap;align-items:center;gap:7px}
.mapFocusBtn{
  border:0;background:transparent;color:#c51f28;font:inherit;font-size:11px;font-weight:800;
  padding:0;cursor:pointer;text-decoration:none;
}
.mapFocusBtn:hover{text-decoration:underline}
.mapFocused{outline:2px solid rgba(197,31,40,.28);outline-offset:-2px}

/* Regression guard: the interactive map owns its canvas; fallback is a sibling. */
.mapLibrePane{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;min-height:0!important}
.mapViewport{min-height:0!important}

/* Header photo crop editor */
.heroPhotoSlot{border:1px solid var(--line);border-radius:12px;padding:10px;margin:10px 0;background:#fafbfb}
.heroPhotoSlotHead{display:flex;justify-content:space-between;gap:10px;align-items:center;margin:7px 0 5px;font-size:11px}
.heroPhotoSlotHead span{color:var(--muted);font-size:10px}
.heroPhotoPreview{height:150px;position:relative;border-radius:9px;background:#dfe7e5;cursor:grab;touch-action:none;overflow:hidden}
.heroPhotoPreview::before{content:"";position:absolute;inset:0;background-image:var(--preview-image);background-repeat:no-repeat;background-position:50% 50%;background-size:cover;transform:scale(var(--preview-scale,1));transform-origin:var(--preview-position,50% 50%);will-change:transform}
.heroPhotoPreview::after{content:"";position:absolute;inset:0;pointer-events:none}
.heroPhotoPreview.dragging{cursor:grabbing}
.heroZoom{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:11px;font-weight:800}
.heroZoom input{flex:1}
.heroZoom output{min-width:42px;text-align:right;color:var(--muted)}


/* Surgical UI refresh from main: accepted map, hero, card and AI refinements. */
.googleMapBar{
  left:auto !important;
  right:12px !important;
  top:12px !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  gap:0 !important;
}
.googleMapBar>div{display:none !important}
.googleMapBar .btn{
  min-height:30px !important;
  padding:6px 9px !important;
  border-radius:8px !important;
  font-size:10px !important;
  box-shadow:0 3px 10px rgba(16,32,42,.12);
}
.mapDiagnostic{
  left:auto !important;
  right:14px !important;
  bottom:14px !important;
}
.mapDirectLink{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:6px 9px;
  border:1px solid var(--red);
  border-radius:8px;
  background:var(--red);
  color:#fff !important;
  font-size:10px;
  font-weight:850;
  text-decoration:none;
  white-space:nowrap;
  box-shadow:0 3px 10px rgba(16,32,42,.12);
}
.heroSky{
  background-image:linear-gradient(90deg,rgba(12,28,33,.42),rgba(12,28,33,.10)),var(--hero-image);
}
.itemStatusBadge{display:none !important}

/* Keep the place AI assistant fully functional while reducing its idle footprint to one line. */
.placeAiBox{
  margin-top:7px !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
}
.placeAiHead{display:none !important}
.placeAiQuick{display:none !important}
.placeAiForm{
  display:flex !important;
  gap:6px !important;
  margin:0 !important;
  align-items:center !important;
}
.placeAiForm input{
  min-height:30px !important;
  padding:6px 8px !important;
  border-radius:7px !important;
  font-size:10px !important;
}
.placeAiForm .btn{
  min-height:30px !important;
  padding:6px 9px !important;
  font-size:10px !important;
}
.placeAiAnswer{margin-top:7px !important}

@media(max-width:650px){
  .googleMapBar{right:10px !important;top:10px !important}
  .googleMapBar .btn{min-height:30px !important;width:auto !important}
  .mapDiagnostic{right:10px !important;left:auto !important}
  .mapDirectLink{min-height:30px}
  .placeAiForm input{min-height:32px !important}
  .placeAiForm .btn{min-height:32px !important}
}


/* Cinematic hero v2: reference-style navigation, full-bleed video and instant poster. */
.topbar{
  height:68px;
  background:#fff;
  border-bottom:1px solid var(--line);
  box-shadow:0 2px 12px rgba(19,35,45,.06);
}
.topbar .brand,.topbar nav a{color:var(--ink)}
.plannerMenuBtn{background:#fff;color:var(--ink);border-color:var(--line)}
.heroVideoStage{
  min-height:clamp(560px,calc(100vh - 68px),760px);
  height:clamp(560px,calc(100vh - 68px),760px);
  padding:0 6vw;
  display:flex;
  align-items:center;
  position:relative;
  isolation:isolate;
  overflow:hidden;
  background:#18313a;
}
.heroVideoPoster{
  position:absolute;
  inset:0;
  z-index:0;
  background-image:var(--hero-poster);
  background-size:cover;
  background-position:center;
  filter:saturate(1.08);
  transition:opacity .6s ease;
}
.heroVideoLayer,.heroVideoShade{position:absolute;inset:0}
.heroVideo{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center;
  background:#18313a;
  opacity:0;
  transition:opacity .65s ease;
  pointer-events:none;
}
.heroVideo.isActive{opacity:1}
.heroVideoShade{display:none}
.heroVideoKicker{
  position:absolute;
  left:6vw;
  top:18%;
  z-index:3;
  color:#fff;
  font-size:10px;
  letter-spacing:.28em;
  font-weight:900;
}
.heroVideoStage .heroCopy{
  max-width:720px;
  padding-top:28px;
  color:#fff;
  z-index:3;
  text-shadow:0 2px 18px rgba(0,0,0,.48);
}
.heroVideoStage .heroCopy .eyebrow{color:#fff}
.heroVideoStage h1{
  color:#fff;
  font-size:clamp(48px,6.8vw,86px);
  line-height:.94;
  margin:10px 0 18px;
  letter-spacing:-.055em;
}
.heroVideoStage .heroCopy p{
  margin:0;
  max-width:650px;
  color:rgba(255,255,255,.92);
  font-size:18px;
  line-height:1.5;
}
.heroVideoStage .heroBadges{margin-top:22px}
.heroVideoStage .heroBadges span{
  color:#fff;
  background:transparent;
  border-color:rgba(255,255,255,.62);
  text-shadow:0 1px 8px rgba(0,0,0,.42);
}
.heroPrimaryCta{
  display:inline-flex;
  align-items:center;
  gap:18px;
  margin-top:24px;
  padding:12px 17px;
  border-radius:9px;
  background:var(--red);
  border:1px solid var(--red);
  color:#fff;
  text-decoration:none;
  font-weight:900;
  box-shadow:0 10px 25px rgba(0,0,0,.18);
}
.heroPrimaryCta span{font-size:19px}
.heroVideoLocation{
  position:absolute;
  right:6vw;
  bottom:48px;
  z-index:3;
  display:flex;
  align-items:center;
  gap:10px;
  color:#fff;
  text-shadow:0 2px 10px rgba(0,0,0,.35);
}
.heroVideoLocation strong{display:block;font-size:13px}
.heroVideoLocation div span{display:block;margin-top:2px;font-size:10px;opacity:.88}
.heroVideoPin{
  width:24px;height:24px;
  display:grid;place-items:center;
  border:2px solid #fff;
  border-radius:50% 50% 50% 0;
  transform:rotate(-45deg);
  font-size:7px;
}
.heroVideoPause{
  position:absolute;
  right:24px;
  bottom:18px;
  z-index:4;
  width:38px;height:38px;
  border:1px solid rgba(255,255,255,.72);
  border-radius:50%;
  background:transparent;
  color:#fff;
  cursor:pointer;
}
.heroVideoCredit{
  position:absolute;
  left:6vw;
  bottom:18px;
  z-index:4;
  color:rgba(255,255,255,.68);
  font-size:9px;
  text-decoration:none;
}
.heroVideoCredit:hover{color:#fff;text-decoration:underline}
@media(max-width:900px){
  .heroVideoStage{min-height:620px;height:620px;padding:0 5vw}
  .heroVideoKicker{left:5vw}
  .heroVideoLocation{right:5vw}
}
@media(max-width:650px){
  .topbar{height:60px}
  .heroVideoStage{
    min-height:calc(100svh - 60px);
    height:calc(100svh - 60px);
    max-height:720px;
    padding:0 6vw 70px;
    align-items:flex-end;
  }
  .heroVideoKicker{left:6vw;top:12%;font-size:9px;letter-spacing:.22em}
  .heroVideoStage .heroCopy{padding-top:0}
  .heroVideoStage h1{font-size:clamp(42px,12vw,64px)}
  .heroVideoStage .heroCopy p{font-size:15px}
  .heroVideoStage .heroBadges{gap:6px;margin-top:15px}
  .heroVideoStage .heroBadges span{font-size:10px;padding:7px 9px}
  .heroPrimaryCta{margin-top:17px}
  .heroVideoLocation{left:6vw;right:auto;bottom:20px}
  .heroVideoPause{right:16px;bottom:18px}
  .heroVideoCredit{left:6vw;bottom:2px}
}
/* Swiss mountain navigation theme — top section only.
   Hero/video panel and all planner/content styling remain unchanged. */
.topbar{min-height:76px;height:76px;padding:0 3.2vw;color:#fff;border-bottom:1px solid rgba(255,255,255,.22);background:linear-gradient(90deg,rgba(7,39,68,.58) 0%,rgba(17,69,105,.46) 48%,rgba(11,48,80,.58) 100%),url("https://images.unsplash.com/photo-1506905925346-21bda4d32df4?auto=format&fit=crop&w=2200&q=88") center 42%/cover no-repeat;box-shadow:0 8px 28px rgba(9,31,48,.18)}
.topbar .brand{display:flex;align-items:center;gap:9px;color:#fff;letter-spacing:.055em;text-shadow:0 1px 12px rgba(0,0,0,.28);white-space:nowrap}
.topbar .brand b{color:#fff}.topbar .sitePhase{color:#fff;border-color:rgba(255,255,255,.55);background:rgba(255,255,255,.08)}
.topbar .cross{position:relative;width:36px;height:28px;margin-right:1px;border-radius:0;background:linear-gradient(135deg,transparent 0 28%,#fff 29% 39%,transparent 40% 55%,#fff 56% 66%,transparent 67%);color:transparent;clip-path:polygon(0 100%,28% 48%,43% 69%,67% 12%,100% 100%);box-shadow:none}
.topbar .cross:after{content:"";position:absolute;left:29%;top:44%;width:31%;height:18%;background:#b9d7ea;clip-path:polygon(50% 0,100% 100%,0 100%)}
.topbar nav{display:flex;align-items:center;gap:5px}.topbar nav a,.topbar .plannerMenuBtn{margin:0;color:rgba(255,255,255,.94);text-decoration:none;font-size:13px;font-weight:800;border:1px solid transparent;background:transparent;padding:10px 13px;border-radius:999px;transition:background .16s ease,border-color .16s ease,color .16s ease}
.topbar nav a:hover,.topbar .plannerMenuBtn:hover{color:#fff;background:rgba(255,255,255,.11);border-color:rgba(255,255,255,.18)}
.topbar nav a[href="#planner"]{color:#123c63;background:#fff;border-color:#fff;box-shadow:0 5px 16px rgba(0,0,0,.14)}
.topbar .plannerMenuBtn{margin-left:0;cursor:pointer}.topbar .authUser{color:#fff;font-size:13px;font-weight:800;margin-left:5px}
.topbar .btn{color:#fff;background:rgba(255,255,255,.10);border-color:rgba(255,255,255,.35);padding:9px 13px;border-radius:999px}.topbar .btn:hover{background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.55)}
.topbar .mobileBtn{color:#fff;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.25);border-radius:10px;width:42px;height:42px;line-height:1}
@media(max-width:950px){.topbar{padding:0 18px}.topbar .brand{font-size:14px}}
@media(max-width:650px){.topbar{min-height:64px;height:64px}.topbar .brand{font-size:12px}.topbar .cross{width:31px;height:24px}.topbar .sitePhase{display:none}}

/* Persistent UI QA identifier — intentionally present only on UI/qa. */
.qaBuild{display:inline-flex;align-items:center;padding:4px 7px;border:1px solid rgba(255,255,255,.30);border-radius:999px;background:rgba(255,255,255,.08);color:rgba(255,255,255,.78);font-size:9px;font-weight:800;letter-spacing:.03em;white-space:nowrap}
@media(max-width:650px){.qaBuild{font-size:8px;padding:3px 6px}.topbar .qaBuild{display:none}}

/* Swiss journey + Activities enhancement — below hero only. */
.journeyRibbon{position:relative;margin:0;padding:34px 5vw 26px;background:linear-gradient(180deg,#edf7fb 0%,#f7fbf4 100%);overflow:hidden;border-top:1px solid #dbe9ef;border-bottom:1px solid #dbe9ef}
.journeyRibbon:after{content:"";position:absolute;inset:auto 0 0;height:34px;background:radial-gradient(ellipse at 15% 100%,rgba(111,157,85,.25),transparent 55%),radial-gradient(ellipse at 80% 100%,rgba(77,139,101,.2),transparent 58%);pointer-events:none}
.journeyRibbonHead{position:relative;z-index:2;display:flex;justify-content:space-between;align-items:flex-end;gap:20px;max-width:1280px;margin:auto}
.journeyRibbon h2{margin:3px 0 5px;font-size:clamp(25px,3vw,38px);letter-spacing:-.035em;color:#153e5e}
.journeyRibbon p{margin:0;color:#607384}
.journeyWhimsy{display:flex;align-items:center;gap:8px;color:#6a7d63;font-size:12px;font-style:italic}
.journeyWhimsy img{width:30px;height:30px;object-fit:contain}
.miniRoute{position:relative;max-width:1280px;height:205px;margin:4px auto 0;border-radius:24px;background:linear-gradient(180deg,#bfe4f6 0 48%,#dceccf 48% 100%);overflow:hidden;box-shadow:inset 0 0 0 1px rgba(255,255,255,.8)}
.miniRoute:before{content:"";position:absolute;inset:0;background:linear-gradient(165deg,transparent 42%,rgba(255,255,255,.55) 42.3% 43%,transparent 43.3%),radial-gradient(circle at 23% 40%,rgba(255,255,255,.8) 0 28px,transparent 29px),radial-gradient(circle at 75% 27%,rgba(255,255,255,.75) 0 38px,transparent 39px);opacity:.8}
.miniRoute svg{position:absolute;inset:28px 2% 0;width:96%;height:150px;z-index:2}
.routeShadow{fill:none;stroke:rgba(35,66,69,.16);stroke-width:13;stroke-linecap:round}.routeTrack{fill:none;stroke:url(#routeGradient);stroke-width:7;stroke-linecap:round;stroke-dasharray:1 0}
.routeSleepers circle{fill:#fff;stroke:#31586a;stroke-width:3}
.miniStop{position:absolute;z-index:5;display:flex;flex-direction:column;align-items:center;gap:5px;color:#123e61;font-size:12px;font-weight:900;text-shadow:0 1px #fff}
.miniStop b{width:15px;height:15px;border-radius:50%;background:#fff;border:4px solid #216fca;box-shadow:0 0 0 3px rgba(255,255,255,.75)}
.stopZurich{left:6%;top:128px}.stopLucerne{left:34%;top:105px}.stopInterlaken{left:63%;top:78px}.stopZermatt{right:5%;top:91px}.stopInterlaken b{border-color:#e39b2d}.stopZermatt b{border-color:#d83b4b}
.miniTrain{position:absolute;z-index:6;left:5%;top:126px;width:76px;height:30px;border-radius:7px 11px 5px 5px;background:#e63e3e;border:2px solid #a7262b;box-shadow:0 5px 8px rgba(20,50,60,.22);animation:miniTrainJourney 10s linear infinite;transform-origin:center}
.miniTrain:before{content:"";position:absolute;right:-8px;top:5px;width:9px;height:19px;background:#b92d34;border-radius:0 4px 4px 0}.miniTrain:after{content:"";position:absolute;left:4px;bottom:-6px;width:8px;height:8px;border-radius:50%;background:#263b42;box-shadow:57px 0 #263b42}
.trainWindow{position:relative;display:inline-block;width:13px;height:10px;margin:5px 2px 0;background:#dff5ff;border:1px solid #fff;border-radius:2px}.miniTrain i{position:absolute;left:-4px;top:4px;width:4px;height:14px;background:#f6d7a2}
@keyframes miniTrainJourney{0%{left:5%;top:126px}25%{left:31%;top:103px}50%{left:59%;top:76px}75%{left:76%;top:65px}100%{left:91%;top:88px}}
.journeyFlower{position:absolute;z-index:4;width:34px;height:34px;object-fit:contain;animation:flowerBob 2.8s ease-in-out infinite}
.flowerOne{left:47%;bottom:12px}.flowerTwo{left:52%;bottom:18px;animation-delay:-1.2s}
.journeyCow{position:absolute;z-index:4;left:13%;bottom:3px;width:88px;height:62px;object-fit:contain;mix-blend-mode:multiply;animation:gentleBob 2.5s ease-in-out infinite}
.journeySheep{position:absolute;z-index:4;right:23%;bottom:1px;width:82px;height:60px;object-fit:contain;mix-blend-mode:multiply;animation:gentleBob 3.1s ease-in-out infinite reverse}
.journeyWater{position:absolute;z-index:3;right:0;bottom:-4px;width:100px;height:120px;object-fit:cover;object-position:center;mix-blend-mode:multiply;opacity:.9}
@keyframes flowerBob{50%{transform:translateY(-5px) rotate(3deg)}}@keyframes gentleBob{50%{transform:translateY(-3px)}}
.activitiesSection{background:linear-gradient(180deg,#fff 0%,#f5f9f4 100%);position:relative}
.activitiesTitle{display:flex;justify-content:space-between;align-items:center}.activitiesFlower{width:48px;height:48px;object-fit:contain}
.activityGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.activityCard{display:grid;grid-template-columns:90px 1fr;gap:15px;align-items:center;min-height:142px;padding:13px;border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.9);box-shadow:0 8px 25px rgba(29,58,70,.07)}
.activityMedia{height:112px;border-radius:13px;overflow:hidden;background:#dcebdc;display:flex;align-items:center;justify-content:center}.activityMedia img{width:100%;height:100%;object-fit:cover}.activityMedia img[src*="EyeBlinking"]{object-fit:contain}.activityFood{gap:5px;padding:7px;background:#fff5df}.activityFood img{height:46%;object-fit:contain}
.activityTag{font-size:9px;letter-spacing:.14em;font-weight:900;color:#587b5e}.activityCard h3{margin:5px 0;font-size:17px;color:#173e5c}.activityCard p{margin:0;color:#657584;font-size:12px;line-height:1.45}.activityFooter{display:flex;align-items:center;justify-content:center;gap:9px;margin-top:18px;color:#6d6d5d;font-size:12px;font-style:italic}.activityFooter img{width:30px;height:30px;object-fit:contain}
@media(max-width:950px){.activityGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.journeyRibbon{padding-inline:4vw}}
@media(max-width:650px){.journeyRibbon{padding:25px 4vw 18px}.journeyRibbonHead{align-items:flex-start}.journeyWhimsy{display:none}.miniRoute{height:175px;border-radius:18px}.miniRoute svg{height:130px;top:22px}.miniStop{font-size:9px}.stopZurich{top:111px}.stopLucerne{top:90px}.stopInterlaken{top:68px}.stopZermatt{top:81px}.miniTrain{transform:scale(.72);transform-origin:left center}.journeyCow{width:66px;height:48px;left:7%}.journeySheep{width:60px;height:45px;right:19%}.journeyWater{width:70px;height:85px}.activityGrid{grid-template-columns:1fr}.activityCard{grid-template-columns:78px 1fr}.activityMedia{height:96px}.activitiesTitle{align-items:flex-start}.activitiesFlower{width:38px;height:38px}}

/* Authentic Swiss motion layer — deliberately replaces cartoon/GIF treatment. */
.swissMediaRail{display:grid;grid-template-columns:minmax(190px,1.5fr) repeat(4,minmax(105px,.65fr));gap:10px;align-items:stretch;padding:16px 5vw;background:#f4f7f4;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.swissMediaRailLabel{display:flex;flex-direction:column;justify-content:center;padding-right:18px}.swissMediaRailLabel span{font-size:9px;letter-spacing:.18em;font-weight:900;color:#6d7e6f}.swissMediaRailLabel strong{margin-top:4px;color:#193d58;font-size:14px;line-height:1.25}
.swissMediaRailClip{position:relative;height:76px;border-radius:12px;overflow:hidden;background:#dbe7df}.swissMediaRailClip video{width:100%;height:100%;object-fit:cover;display:block}.swissMediaRailClip span{position:absolute;left:8px;bottom:6px;padding:3px 6px;border-radius:999px;background:rgba(16,39,53,.68);color:#fff;font-size:8px;text-transform:uppercase;letter-spacing:.1em}
.swissJourneyTarget{position:relative;margin:0;padding:24px 5vw 30px;background:#fff;border-bottom:1px solid var(--line)}
.swissJourneyFrame{position:relative;overflow:hidden;border-radius:24px;background:#dfe9e7;box-shadow:0 18px 50px rgba(25,52,63,.12);isolation:isolate}
.swissJourneyFrame img{display:block;width:100%;height:auto;min-height:300px;object-fit:cover;transform:scale(1.015);animation:swissJourneyDrift 16s ease-in-out infinite alternate;transform-origin:50% 52%}
.swissJourneySheen{position:absolute;inset:-20% -45%;z-index:2;pointer-events:none;background:linear-gradient(105deg,transparent 38%,rgba(255,255,255,.18) 49%,transparent 60%);transform:translateX(-35%);animation:swissJourneySheen 10s ease-in-out infinite}
.swissJourneyPulse{position:absolute;z-index:3;left:74%;bottom:12%;width:13px;height:13px;border-radius:50%;background:#fff;box-shadow:0 0 0 0 rgba(220,52,69,.7);animation:swissJourneyPulse 2.8s ease-out infinite}
.swissJourneyCaption{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;padding:12px 2px 0;color:#657680}
.swissJourneyCaption span{font-size:8px;letter-spacing:.16em;font-weight:900;color:#5e7967}
.swissJourneyCaption strong{font-size:13px;color:#173e5c}
.swissJourneyCaption em{font-size:10px;font-style:normal;color:#7b8790}
@keyframes swissJourneyDrift{0%{transform:scale(1.015) translate3d(-.35%,0,0)}100%{transform:scale(1.055) translate3d(.35%,-.2%,0)}}
@keyframes swissJourneySheen{0%,35%{transform:translateX(-35%)}70%,100%{transform:translateX(35%)}}
@keyframes swissJourneyPulse{0%{box-shadow:0 0 0 0 rgba(220,52,69,.65);opacity:1}70%{box-shadow:0 0 0 18px rgba(220,52,69,0);opacity:.9}100%{box-shadow:0 0 0 0 rgba(220,52,69,0);opacity:1}}
.mediaSectionTitle{display:flex;justify-content:space-between;align-items:flex-end;gap:20px}.mediaCredit{font-size:9px;color:#7b8790;white-space:nowrap}
.mediaSectionTitle{display:flex;justify-content:space-between;align-items:flex-end;gap:20px}.mediaCredit{font-size:9px;color:#7b8790;white-space:nowrap}
.activityFeatureGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.activityFeature{overflow:hidden;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 8px 24px rgba(29,58,70,.055)}.activityFeatureWide{grid-column:span 2}
.activityVideo{height:150px;background:#dfe8e2;overflow:hidden}.activityFeatureWide .activityVideo{height:190px}.activityVideo video{width:100%;height:100%;object-fit:cover;display:block}
.activityCopy{padding:12px 14px 15px}.activityCopy span{font-size:8px;letter-spacing:.16em;font-weight:900;color:#5e7967}.activityCopy h3{margin:5px 0 4px;color:#173e5c;font-size:17px}.activityCopy p{margin:0;color:#687783;font-size:11px;line-height:1.45}
.foodStill{height:150px;display:flex;align-items:center;justify-content:center;gap:14px;background:linear-gradient(135deg,#f5e1bc,#f7efe1)}.foodStill span{font-size:38px;filter:drop-shadow(0 3px 5px rgba(40,50,40,.13))}
@media(max-width:900px){.swissMediaRail{grid-template-columns:1fr repeat(4,minmax(75px,.55fr))}.activityFeatureGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.activityFeatureWide{grid-column:span 2}}
@media(max-width:650px){.swissMediaRail{grid-template-columns:1fr 1fr;padding:12px 4vw}.swissMediaRailLabel{grid-column:span 2;padding:0 0 3px}.swissMediaRailClip{height:64px}.miniRouteStory{grid-template-columns:1fr;gap:12px;padding:20px 4vw}.miniRouteTrack{height:92px}.activityFeatureGrid{grid-template-columns:1fr}.activityFeatureWide{grid-column:auto}.activityFeatureWide .activityVideo,.activityVideo{height:145px}.mediaSectionTitle{align-items:flex-start}.mediaCredit{display:none}}

/* Swiss journey motion pass — visible, deliberate movement without replacing the artwork */
.swissJourneyFrame{height:auto;min-height:300px}
.swissJourneyTrain{
  position:absolute;z-index:5;left:17%;top:48%;
  width:112px;height:30px;border-radius:5px 8px 5px 5px;
  background:linear-gradient(180deg,#ef3b42 0%,#c91528 62%,#8e0d1b 100%);
  border:1px solid rgba(70,0,10,.55);
  box-shadow:0 5px 10px rgba(30,20,15,.32),0 0 0 1px rgba(255,255,255,.18) inset;
  transform:translateX(0);
  animation:swissTrainTravel 8s cubic-bezier(.45,.05,.55,.95) infinite;
  will-change:transform;
}
.swissJourneyTrain::before{
  content:"";position:absolute;left:8px;right:9px;top:6px;height:11px;border-radius:2px;
  background:linear-gradient(90deg,#b9dce8 0 18%,#173f5a 18% 21%,#b9dce8 21% 43%,#173f5a 43% 46%,#b9dce8 46% 68%,#173f5a 68% 71%,#b9dce8 71%);
  box-shadow:0 0 0 1px rgba(255,255,255,.35) inset;
}
.swissJourneyTrain::after{
  content:"";position:absolute;right:-8px;top:7px;width:9px;height:16px;
  border-radius:0 4px 4px 0;background:#ad1021;
}
.swissJourneyTrainRoof{position:absolute;left:10px;right:12px;top:-4px;height:4px;border-radius:4px;background:#8e1521}
.swissJourneyTrainCab{position:absolute;left:5px;top:9px;width:8px;height:12px;border-radius:2px;background:#8fc8d7}
.swissJourneyTrainWindows{position:absolute;right:18px;top:4px;width:3px;height:15px;background:rgba(255,255,255,.22)}
.swissJourneyTrainWheel{position:absolute;bottom:-6px;width:13px;height:13px;border-radius:50%;background:#252b2d;border:2px solid #8d9697;box-shadow:0 1px 2px rgba(0,0,0,.35)}
.wheel1{left:15px}.wheel2{left:48px}.wheel3{right:17px}
.swissJourneyRouteGlow{
  position:absolute;z-index:4;left:18%;right:17%;top:52.2%;height:3px;
  pointer-events:none;border-radius:99px;
  background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.15) 18%,rgba(255,255,255,.8) 50%,rgba(255,255,255,.15) 82%,transparent 100%);
  background-size:32% 100%;background-repeat:no-repeat;
  animation:swissRouteSweep 3.2s linear infinite;
  mix-blend-mode:screen;
}
@keyframes swissTrainTravel{
  0%,8%{transform:translateX(0) translateY(0)}
  48%{transform:translateX(46vw) translateY(-2px)}
  88%,100%{transform:translateX(73vw) translateY(0)}
}
@keyframes swissRouteSweep{
  0%{background-position:-32% 0}
  100%{background-position:132% 0}
}
@media(max-width:650px){
  .swissJourneyTrain{width:76px;height:21px;top:49%}
  .swissJourneyTrain::before{top:4px;height:8px}
  .swissJourneyTrain::after{top:5px;height:11px}
  .swissJourneyTrainRoof{top:-3px;height:3px}
  .swissJourneyTrainCab{top:6px;height:9px;width:6px}
  .swissJourneyTrainWheel{width:9px;height:9px;bottom:-5px;border-width:1px}
  .wheel1{left:10px}.wheel2{left:32px}.wheel3{right:10px}
  @keyframes swissTrainTravel{
    0%,8%{transform:translateX(0)}
    48%{transform:translateX(36vw) translateY(-1px)}
    88%,100%{transform:translateX(58vw)}
  }
}

/* Final Swiss journey presentation: sharp full-resolution artwork + photographic train motion */
.swissJourneyFrame{height:auto;min-height:0}
.swissJourneyPicture,.swissJourneyPicture img{display:block;width:100%;height:auto}
.swissJourneyPicture img{min-height:0;object-fit:cover;transform:none;animation:swissJourneyCamera 12s ease-in-out infinite alternate;transform-origin:center center}
.swissJourneyTrainPhoto{
 position:absolute;z-index:6;left:18%;top:48%;
 width:250px;height:auto;display:block;pointer-events:none;
 filter:drop-shadow(0 7px 8px rgba(20,25,25,.28));
 animation:swissTrainPhotoTravel 8s cubic-bezier(.42,0,.58,1) infinite;
 will-change:transform;
}
.swissJourneyRouteGlow{z-index:5;left:18%;right:18%;top:58%;height:4px;opacity:.85}
.swissJourneySheen{display:none}
.swissJourneyPulse{left:74%;bottom:12%;z-index:4}
@keyframes swissJourneyCamera{
 0%{transform:scale(1.005) translate3d(-.15%,0,0)}
 100%{transform:scale(1.018) translate3d(.15%,-.1%,0)}
}
@keyframes swissTrainPhotoTravel{
 0%,7%{transform:translate3d(0,0,0) scale(.86)}
 44%{transform:translate3d(30vw,2px,0) scale(.93)}
 78%{transform:translate3d(55vw,7px,0) scale(1)}
 94%,100%{transform:translate3d(72vw,9px,0) scale(1.03)}
}
@media(max-width:650px){
 .swissJourneyTrainPhoto{width:145px;left:14%;top:49%}
 .swissJourneyRouteGlow{top:59%;height:2px}
 @keyframes swissTrainPhotoTravel{
  0%,7%{transform:translate3d(0,0,0) scale(.82)}
  48%{transform:translate3d(27vw,2px,0) scale(.9)}
  82%,100%{transform:translate3d(55vw,6px,0) scale(.98)}
 }
}
