.map-explorer{padding:75px 0 40px}
.map-explorer .explorer-head{display:flex;align-items:end;justify-content:space-between;gap:45px;margin-bottom:35px}
.map-explorer .explorer-head h2{font:normal clamp(44px,5vw,68px)/1.03 Georgia,serif;letter-spacing:-.045em;margin:0}
.map-explorer .explorer-head h2 em{font-weight:normal;color:#990b07}
.map-explorer .explorer-head>p{font-size:15px;color:var(--soft);line-height:1.8;margin:0 0 5px;max-width:430px}
.map-explorer .explorer-body{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(320px,1fr);gap:45px;align-items:start}
.map-explorer .map-column{min-width:0;position:sticky;top:24px;padding-top:8px}
.map-explorer .map-frame{overflow:hidden;position:relative;aspect-ratio:900/580;touch-action:pan-y;border-radius:0}
.map-explorer .map-frame.zoomed{touch-action:none;cursor:grab}
.map-explorer .map-frame.dragging{cursor:grabbing}
.map-explorer #china-map{width:100%;height:100%;display:block;overflow:hidden}
.map-explorer .province{fill:rgba(171,190,189,.05);stroke:rgba(24,24,22,.34);stroke-width:.85;vector-effect:non-scaling-stroke;cursor:pointer;transition:fill .25s,stroke .25s}
.map-explorer .province.active{fill:rgba(197,157,99,.36);stroke:rgba(151,109,56,.75)}
.map-explorer .province.peek{fill:rgba(197,157,99,.22)}
.map-explorer .province:focus-visible{outline:none;stroke:#990b07;stroke-width:2}
.map-explorer .city-marker{cursor:pointer;outline:none}
.map-explorer .pin-core{fill:#990b07;stroke:var(--paper);stroke-width:2}
.map-explorer .pin-halo{fill:transparent;stroke:none}
.map-explorer .city-marker:hover .pin-core,.map-explorer .city-marker:focus-visible .pin-core,.map-explorer .city-marker.active .pin-core{fill:#292926}
.map-explorer .city-marker.active .pin-halo{fill:rgba(174,134,77,.13)}
.map-explorer .pin-label{font:12px Arial,Helvetica,sans-serif;font-weight:600;fill:#605f59;paint-order:stroke;stroke:var(--paper);stroke-width:3.5px;stroke-linejoin:round;pointer-events:none;opacity:0;transition:opacity .2s}
.map-explorer .city-marker.major .pin-label,.map-explorer .city-marker.active .pin-label,.map-explorer .city-marker:hover .pin-label,.map-explorer .city-marker:focus-visible .pin-label,.map-explorer .zoomed .pin-label{opacity:1}
.map-explorer .city-marker.active .pin-label{fill:#990b07}
.map-explorer .map-tools{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:8px 0 0}
.map-explorer .zoom-controls{display:flex;gap:13px;align-items:center}
.map-explorer .zoom-controls button{border:0;background:transparent;padding:7px 4px;color:#605f59;font-size:23px}
.map-explorer .zoom-controls button:last-child{font-size:11px;letter-spacing:.05em;border-bottom:1px solid #990b07;padding:6px 0;margin-left:7px}
.map-explorer .zoom-controls button:disabled{opacity:.3;cursor:default}
.map-explorer .zoom-controls button:focus-visible{outline:2px solid #990b07;outline-offset:3px}
.map-explorer #map-hint{font-size:11px;color:#7a898c}
.map-explorer .map-status{font-size:11px;color:#990b07;margin:6px 0 0;min-height:14px}
.map-explorer .place-panel{min-width:0;padding:0}
.map-explorer .photo-well{aspect-ratio:1.9;overflow:hidden;position:relative;background:linear-gradient(135deg,#e5e9e2,#e8ded0)}
.map-explorer .photo-well img{width:100%;height:100%;object-fit:cover;display:block;animation:map-appear .35s ease}
@keyframes map-appear{from{opacity:.5}to{opacity:1}}
.map-explorer .place-heading{display:flex;align-items:end;justify-content:space-between;gap:16px;margin:24px 0 21px}
.map-explorer .panel-kicker{font-size:10px;letter-spacing:.16em;font-weight:bold;color:#990b07;margin:0 0 9px}
.map-explorer .panel-title{font:normal 43px/1 Georgia,serif;letter-spacing:-.035em;margin:0}
.map-explorer .destination-link{font-size:11px;line-height:1.6;text-decoration:none;text-align:right;max-width:135px;color:#605f59;border-bottom:1px solid #990b07;padding-bottom:4px}
.map-explorer .section-title{font-size:10px;letter-spacing:.17em;text-transform:uppercase;font-weight:bold;margin:24px 0 11px;color:#990b07}
.map-explorer .route-link{display:flex;align-items:baseline;gap:12px;text-decoration:none;font-size:12px;line-height:1.45;padding:7px 0;color:#605f59}
.map-explorer .route-link .days{flex:0 0 48px;font-weight:700;color:#990b07}
.map-explorer .route-link:hover,.map-explorer .destination-link:hover{color:#990b07}
.map-explorer .route-link .route-arrow{margin-left:auto;color:#990b07}
.map-explorer .more-journeys summary{font-size:11px;cursor:pointer;color:#990b07;padding:8px 0;list-style:none}
.map-explorer .more-journeys summary::-webkit-details-marker{display:none}
.map-explorer .more-journeys summary:after{content:' +';margin-left:5px}
.map-explorer .more-journeys[open] summary:after{content:' −'}
.map-explorer .highlights{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:6px 0;font-size:12px;line-height:1.6;color:#605f59}
.map-explorer .highlights li:not(:last-child):after{content:'·';padding:0 9px;color:#990b07}
.map-explorer .experience-label{font-size:10px;color:#990b07;margin:12px 0 6px}
.map-explorer .place-cta{display:inline-block;margin-top:24px;padding-bottom:7px;font-size:10px;font-weight:bold;text-transform:uppercase;letter-spacing:.12em;text-decoration:none;border-bottom:1px solid #990b07}
.map-explorer .other-cities{margin-top:21px;font-size:11px;color:#7b888b;line-height:1.9}
.map-explorer .other-cities button{background:transparent;border:0;padding:1px 7px 1px 0;color:#677c83;text-decoration:underline;text-decoration-color:#bdc7c7;text-underline-offset:3px;font-size:11px}
.map-explorer .empty-description{color:#687c83;line-height:1.7;font-size:14px}
.map-explorer .across{display:grid;grid-template-columns:1fr 1.2fr auto;gap:40px;align-items:center;padding:55px 0 60px}
.map-explorer .across h2{font:normal 55px/1 Georgia,serif;letter-spacing:-.035em;margin:0}
.map-explorer .across p{font-size:15px;line-height:1.7;color:#63767e}
.map-explorer .across a{font-size:11px;text-decoration:none;padding:12px 0;border-bottom:1px solid #990b07}
.map-explorer .across a span{padding-left:14px;color:#990b07}
.map-explorer .prototype-note{font-size:10px;color:#8c9799;line-height:1.6;padding:0 0 30px}
@media(max-width:1050px){.map-explorer .explorer-body{grid-template-columns:minmax(0,1.3fr) minmax(300px,1fr);gap:25px}
.map-explorer .map-column{top:70px}
.map-explorer .map-frame{aspect-ratio:1.1}
.map-explorer .explorer-head>p{max-width:340px}
.map-explorer .map-tools{flex-wrap:wrap}
.map-explorer .across{grid-template-columns:1fr 1fr}
.map-explorer .across a{grid-column:2}
}
@media(max-width:740px){.map-explorer .wrap,.map-explorer .hero-inner{width:calc(100% - 36px)}
.map-explorer .site-header{height:74px;padding:0 18px}
.map-explorer .header-note{font-size:8px;text-align:right;max-width:115px}
.map-explorer .brand-name{font-size:13px}
.map-explorer .brand-monogram{font-size:23px}
.map-explorer .hero{min-height:330px}
.map-explorer .hero h1{font-size:62px}
.map-explorer .hero p:last-child{font-size:15px}
.map-explorer{padding:45px 0 20px}
.map-explorer .explorer-head{display:block;margin-bottom:15px}
.map-explorer .explorer-head h2{font-size:48px}
.map-explorer .explorer-head>p{font-size:13px;margin-top:20px}
.map-explorer .explorer-body{display:flex;flex-direction:column;gap:30px}
.map-explorer .map-column{position:static;width:100%}
.map-explorer .map-frame{aspect-ratio:1.45}
.map-explorer .place-panel{width:100%}
.map-explorer .panel-title{font-size:38px}
.map-explorer .photo-well{aspect-ratio:1.8}
.map-explorer .map-tools{gap:5px}
.map-explorer #map-hint{font-size:10px}
.map-explorer .pin-label{font-size:15px}
.map-explorer .across{display:block;padding:40px 0}
.map-explorer .across h2{font-size:45px}
.map-explorer .across a{display:inline-block}
.map-explorer .preview-ribbon{font-size:8px}
.map-explorer .route-link,.map-explorer .highlights{font-size:13px}
}
@media(prefers-reduced-motion:reduce){.map-explorer *{animation:none!important;transition:none!important}
}
.map-explorer .pin-hit{display:none}
.map-explorer .city-marker.major .pin-hit,.map-explorer .city-marker.active .pin-hit,.map-explorer .city-marker:hover .pin-hit,.map-explorer .city-marker:focus-visible .pin-hit,.map-explorer .zoomed .pin-hit{display:block}
.map-explorer .map-frame{touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none}
.map-explorer .map-frame.dragging{cursor:grabbing}
.map-explorer .map-tools{justify-content:center;margin-top:5px}
.map-explorer .map-status{text-align:center}
.map-explorer .map-reset{position:absolute;top:14px;right:4px;background:rgba(246,244,239,.8);border:0;border-bottom:1px solid #990b07;padding:6px 2px;font-size:11px;color:#605f59;z-index:2}
.map-explorer .map-reset[hidden]{display:none}
.map-explorer #china-map:focus-visible{outline:1px solid #990b07;outline-offset:-2px}
.map-explorer .section-title{font-size:12px}
@media(max-width:740px){.map-explorer .map-column{position:relative}
}
.map-explorer #map-hint{position:absolute;left:12px;bottom:12px;max-width:calc(100% - 24px);line-height:1.5;pointer-events:none;text-shadow:0 1px 3px var(--paper),0 -1px 3px var(--paper);z-index:1}
.map-explorer .map-status.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0;min-height:0}

.map-explorer{--soft:var(--muted);padding-top:64px;padding-bottom:48px;scroll-margin-top:28px}
.map-explorer .explorer-head{margin-bottom:24px}
.map-explorer .eyebrow{font-size:11px;letter-spacing:.2em;font-weight:700;color:#990b07;margin:0 0 14px}
.map-explorer .explorer-head h2{font-family:'Bodoni 72',Georgia,serif;font-size:clamp(40px,4vw,58px)}
.map-explorer .highlights{background:transparent;align-self:auto}
.map-explorer .highlights li{padding:0;border:0;font-size:inherit}
.map-explorer .map-column{top:20px}
.map-explorer .map-browse{display:flex;gap:26px;flex-wrap:wrap;margin:25px 0 0;font-size:12px;color:#990b07}
.map-explorer .map-browse a{border-bottom:1px solid #990b07;padding-bottom:4px}
.map-explorer .map-fallback{font-size:13px;color:var(--muted)}
.home-journeys{padding:48px 0 54px;background:#eef1ed}
.home-journeys .section-heading{margin-bottom:24px;align-items:center}
.home-journeys h2{font:400 clamp(34px,3.6vw,48px)/1.15 'Bodoni 72',Georgia,serif;letter-spacing:-.035em;margin:10px 0 0}
.home-journeys h2 em{color:#990b07}
.home-journeys .all-journeys{font-size:12px;border-bottom:1px solid #990b07;padding-bottom:6px;white-space:nowrap}
.home-journey-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:23px}
.home-journey{display:block;min-width:0}
.home-journey img{width:100%;height:auto;aspect-ratio:1.65;object-fit:cover;display:block}
.home-journey .journey-meta{display:block;font-size:10px;font-weight:700;letter-spacing:.13em;color:#990b07;text-transform:uppercase;margin:14px 0 5px}
.home-journey h3{font:400 clamp(22px,2vw,29px)/1.25 'Bodoni 72',Georgia,serif;margin:0}
.home-journey:hover h3{color:#990b07}
.home-guides{padding-top:52px;padding-bottom:52px}
.home-guides h2{font-size:clamp(32px,3.5vw,45px);margin:10px 0 24px}
.home-guides .planning-card{padding:22px;min-height:0}
.home-guides .planning-card h3{font-size:25px}
.home-guides .planning-card p{font-size:13px;line-height:1.6}
.home-consult{display:flex;justify-content:space-between;align-items:center;gap:35px;padding:36px 0 58px;border-top:1px solid var(--line)}
.home-consult h2{font:400 clamp(30px,3.5vw,44px)/1.2 'Bodoni 72',Georgia,serif;margin:9px 0 10px}
.home-consult p{font-size:14px;color:var(--muted);margin:0;max-width:550px}
.home-consult-links{display:flex;flex-direction:column;gap:15px;white-space:nowrap;font-size:13px}
.home-consult-links a{border-bottom:1px solid #990b07;padding-bottom:5px}
@media(max-width:740px){
 .map-explorer{padding-top:40px;padding-bottom:35px}
 .map-explorer .explorer-head h2{font-size:43px}
 .map-explorer .map-column{top:auto}
 .map-explorer .explorer-body{gap:22px}
 .home-journeys{padding:35px 0 38px}
 .home-journeys .section-heading{display:flex;align-items:end;gap:15px}
 .home-journeys h2{font-size:34px}
 .home-journeys .all-journeys{font-size:11px}
 .home-journey-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:16px;padding-bottom:14px}
 .home-journey{flex:0 0 82%;scroll-snap-align:start}
 .home-journey h3{font-size:25px}
 .home-guides{padding-top:38px;padding-bottom:35px}
 .home-guides .planning-grid{gap:0}
 .home-guides .planning-card{padding:20px 0;border:0;border-top:1px solid var(--line);background:transparent}
 .home-guides .planning-card p{display:none}
 .home-guides .planning-card h3{font-size:23px;margin:6px 0 9px}
 .home-consult{display:block;padding:28px 0 38px}
 .home-consult-links{flex-direction:row;flex-wrap:wrap;gap:22px;margin-top:20px}
}

/* The photo panel starts alongside the title, not below it. */
.map-explorer .explorer-left{min-width:0}
.map-explorer .map-column{position:relative;top:auto}
.map-explorer .explorer-head{align-items:start}
@media(max-width:740px){.map-explorer .explorer-left{width:100%}}

/* Three cards travel together, while small screens can still swipe within a group. */
.home-journey-stage{position:relative;overflow:hidden}
.home-journey-stage .home-journey-grid{margin:0}
.home-journey-stage .home-journey-grid.is-incoming{position:absolute;inset:0}
.home-journey-stage h3{height:3.75em;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}
.journey-rotation-controls{display:flex;justify-content:flex-end;gap:23px;margin-top:14px}
.journey-rotation-controls[hidden]{display:none}
.journey-rotation-controls button{padding:3px 0;background:transparent;border:0;border-bottom:1px solid #990b07;color:#990b07;font-size:11px;cursor:pointer}
.journey-rotation-controls button:disabled{opacity:.4;cursor:wait}
.journey-rotation-status{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

/* Anchor both columns to their final links; the right panel moves as one unit. */
@media(min-width:741px){
 .map-explorer .explorer-body{align-items:stretch}
 .map-explorer .explorer-left{display:flex;flex-direction:column}
 .map-explorer .explorer-left .map-browse{margin-top:auto;padding-top:25px}
 .map-explorer .place-panel{align-self:end;margin-top:36px}
 .map-explorer .place-cta{display:block;width:fit-content;margin-bottom:0}
}
.home-journey-stage .home-journey-grid{backface-visibility:hidden}

/* Canvas is a temporary decorative photo layer; text and links remain real DOM. */
.journey-dissolve{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2}

/* Nearby names yield to the selected city; dots and keyboard targets remain. */
.map-explorer .city-marker.label-suppressed:not(.active):not(:hover):not(:focus-visible) .pin-label{opacity:0}
.map-explorer .city-marker.label-suppressed:not(.active):not(:hover):not(:focus-visible) .pin-hit{display:none}

/* Labels render above every dot and keep a readable screen size while zooming. */
.map-explorer .city-marker .pin-hit{display:block}
.map-explorer .city-label{visibility:hidden;pointer-events:none}
.map-explorer .city-label.is-visible{visibility:visible}
.map-explorer .city-label .pin-label{opacity:1;font-size:12px}
.map-explorer .city-label.active .pin-label{fill:#990b07;stroke-width:5px}
.map-explorer .pin-label-hit{pointer-events:all;cursor:pointer}
.map-explorer .pin-label-leader{stroke:#9aabaf;stroke-width:1;pointer-events:none}
