:root{--ink:#101e22;--night:#101d21;--night2:#18282b;--ivory:#f5f2ea;--cream:#ebe8df;--mist:#c1c9c5;--amber:#e3b46b;--teal:#6daba2;--dark-text:#213136;--line:rgba(23,42,47,.15);--display:'Barlow Condensed',Impact,'Arial Narrow',sans-serif;--body:'DM Sans',system-ui,-apple-system,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ivory);color:var(--dark-text);font-family:var(--body);font-size:14px;line-height:1.55}a{color:inherit}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #e5aa56;outline-offset:3px}::selection{background:#e3b46b;color:#102020}.container{width:min(1250px,calc(100% - 64px));margin:auto}.topbar{position:sticky;top:0;z-index:1000;height:78px;background:#101d21;color:#f3f2eb;display:flex;align-items:center;justify-content:space-between;padding:0 max(32px,calc((100vw - 1250px)/2));border-bottom:1px solid #ffffff19}.brand{display:flex;align-items:center;gap:15px;text-decoration:none}.brand-logo{display:inline-flex;align-items:center;justify-content:center;width:50px;height:50px;font:800 28px var(--display);border:2px solid var(--amber);border-radius:11px;transform:skew(-5deg);color:var(--amber)}.brand-logo span{color:#fff}.brand-label{font-family:var(--display);letter-spacing:1.1px;font-size:20px;line-height:1.02;font-weight:700}.brand-label b{color:var(--amber)}.brand-label small{display:block;font:600 9px var(--body);letter-spacing:2px;color:#a5b3b2;margin-top:7px}.main-nav{display:flex;gap:37px}.main-nav a{text-decoration:none;color:#c8d0c8;transition:color .2s;font-size:13px;font-weight:700}.main-nav a:hover{color:var(--amber)}.btn{display:inline-flex;justify-content:center;align-items:center;gap:18px;text-decoration:none;font-size:12px;font-weight:800;letter-spacing:.4px;border-radius:5px;padding:15px 23px;border:1px solid transparent;transition:transform .18s,background .18s}.btn:hover{transform:translateY(-2px)}.btn-small{font-size:11px;padding:12px 17px}.btn-bright,.btn-primary{background:var(--amber);color:#172327}.btn-glass{border-color:#f2f2e75e;color:white;background:#ffffff0a}
.hero{min-height:622px;position:relative;background:#122329;overflow:hidden;color:white}.hero-photo{position:absolute;inset:0;background-image:url('assets/hero-douro-ilustracion.webp');background-position:center 54%;background-size:cover;filter:saturate(.78) contrast(1.08)}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,24,28,.94),rgba(12,27,30,.76) 43%,rgba(13,22,25,.1) 100%),linear-gradient(0deg,rgba(11,24,28,.57),transparent 55%)}.hero-content{position:relative;padding-top:62px;padding-bottom:47px}.eyebrow,.overline{font-size:10px;letter-spacing:3.2px;font-weight:800}.eyebrow{display:flex;align-items:center;gap:15px;color:var(--amber)}.eyebrow-line{width:24px;height:2px;background:var(--amber)}.hero-kicker{color:#d0d6d0;letter-spacing:2px;font-size:11px;font-weight:700;margin:36px 0 6px}.hero h1{font:800 clamp(78px,10.1vw,148px)/.79 var(--display);letter-spacing:-1.4px;margin:16px 0 27px;text-transform:uppercase}.hero h1 em{font-style:normal;color:var(--amber)}.hero-sub{max-width:535px;font-size:15px;line-height:1.76;color:#d4ddda;margin:0 0 26px}.hero-buttons{display:flex;flex-wrap:wrap;gap:12px}.hero-facts{display:flex;align-items:center;gap:31px;margin-top:55px}.hero-facts>div{display:flex;flex-direction:column;gap:0}.hero-facts strong{font:700 35px var(--display)}.hero-facts strong span{font-size:22px}.hero-facts small{font-size:9px;letter-spacing:1.4px;color:#c4cecb;font-weight:700}.hero-facts i{height:31px;border-left:1px solid #e6f5e93a}.hero-credit{position:absolute;bottom:14px;right:24px;color:#fff9;font-size:9px;max-width:35%;text-align:right}
.intro{padding-top:78px;padding-bottom:84px}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:35px;margin-bottom:29px}.overline{color:#bd7d3d;margin:0 0 12px}.section-heading h2{font:700 clamp(35px,5vw,60px)/.97 var(--display);margin:0;color:var(--ink);letter-spacing:.1px}.section-heading h2 span{color:#779087}.section-heading>p{margin:0;max-width:375px;font-size:13px;color:#657373;line-height:1.75}.day-strip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.day-tab{border:1px solid #dbded4;background:#fff;border-radius:7px;padding:16px 14px 17px;text-align:left;min-height:158px;transition:transform .2s,border-color .2s,box-shadow .2s;position:relative;overflow:hidden}.day-tab:before{content:'';display:block;position:absolute;top:0;left:0;right:0;height:4px;background:var(--color)}.day-tab:hover{transform:translateY(-3px);box-shadow:0 8px 22px #00000012}.day-tab.active{background:#172a2c;color:#fff;border-color:#172a2c;box-shadow:0 14px 26px #112a2b30}.day-tab .tab-date{display:block;font:700 38px/.95 var(--display);letter-spacing:.3px}.day-tab .tab-month{display:block;font-size:9px;font-weight:800;letter-spacing:2px;text-transform:uppercase;margin-top:5px;opacity:.67}.day-tab .tab-route{font-size:12px;line-height:1.3;font-weight:800;display:block;margin-top:18px}.day-tab .tab-meta{font-size:10px;opacity:.66;display:block;margin-top:5px}
.map-section{background:var(--night);color:#ecf2ed;padding:68px 0 77px}.map-heading h2{color:white}.map-heading .section-heading{margin-bottom:25px}.map-heading h2 span{color:#78b1a6}.map-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:27px}.map-legend{display:flex;gap:15px;font-size:11px;font-weight:700;color:#a6bbb5}.map-legend>span{display:flex;align-items:center;gap:6px}.legend-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--dot)}.map-layout{display:grid;grid-template-columns:minmax(0,1fr) 345px;gap:16px;min-height:525px}.map-wrapper{position:relative;border:1px solid #ffffff23;border-radius:8px;overflow:hidden;min-height:525px;background:#34454a}.map-wrapper #route-map{height:100%;min-height:525px;z-index:1}.map-floats{position:absolute;top:16px;left:16px;z-index:400;display:flex;gap:7px}.map-chip{background:#fffef0;color:#14302f;border:0;border-radius:4px;box-shadow:0 4px 12px #0002;padding:9px 12px;font-size:11px;font-weight:800}.map-chip:hover{background:#f5d7a3}.map-aside{border:1px solid #ffffff20;background:#1a2c2f;border-radius:8px;display:flex;flex-direction:column;max-height:525px;overflow:hidden}.aside-top{padding:23px 23px 16px}.aside-caption{font-size:9px;letter-spacing:2px;color:var(--amber);font-weight:800;margin:0 0 8px}.aside-top h3{font:700 28px/1 var(--display);margin:0 0 9px}.aside-top>p:not(.aside-caption){font-size:11px;line-height:1.65;color:#bccbc6;margin:0}.selected-stats{display:flex;gap:15px;margin-top:16px;color:var(--amber);font-weight:800;font-size:11px}.aside-label{font-size:9px;letter-spacing:2px;font-weight:800;padding:12px 23px;background:#23393b;color:#9eadaa}.aside-stops{overflow-y:auto;flex:1}.aside-stop{width:100%;border:0;border-bottom:1px solid #ffffff12;background:none;color:white;padding:11px 22px;text-align:left;display:flex;gap:12px;align-items:center}.aside-stop:hover,.aside-stop:focus{background:#ffffff0d}.aside-stop .marker{width:23px;height:23px;border-radius:50%;display:grid;place-items:center;background:#dbb075;color:#1b2d2f;font-size:12px;font-weight:800;flex:0 0 auto}.aside-stop b{display:block;font-size:11px;line-height:1.35}.aside-stop small{display:block;color:#a5b7b2;font-size:10px;margin-top:3px}.map-notice{color:#94a9a5;font-size:10px;margin-top:13px}.map-notice a{color:#cadbd1}.map-wrapper #map-fallback{position:absolute;z-index:900;top:42%;left:8%;right:8%;color:#fff;background:#1b2d2ed9;padding:16px;border-radius:6px}
.leaflet-container{font:12px var(--body)}.leaflet-container .leaflet-control-attribution{font-size:9px}.leaflet-popup-content-wrapper{border-radius:6px}.leaflet-popup-content{min-width:180px}.leaflet-popup-content strong{font-size:12px}.leaflet-popup-content a{display:inline-block;margin-top:9px;font-weight:700;color:#135c63}.custom-marker{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#fff;border:3px solid var(--color,#e5ad68);box-shadow:0 1px 7px #0006;color:#17302e;font-weight:900;font-size:12px}
.detail-section{padding-top:82px;padding-bottom:100px}.day-detail-grid{display:grid;grid-template-columns:minmax(0,.77fr) minmax(0,1.23fr);gap:25px;align-items:start}.detail-left{min-width:0}.day-poster{background:var(--night2);min-height:240px;border-radius:7px;padding:30px;color:white;position:relative;overflow:hidden}.day-poster:before{content:'';position:absolute;right:-55px;top:-90px;width:220px;height:220px;border:45px solid #ffffff09;transform:rotate(30deg);border-radius:36px}.day-poster>p:first-child{font-weight:800;color:var(--amber);letter-spacing:2.3px;font-size:10px;margin:0 0 24px}.day-poster h3{font:700 clamp(28px,3.1vw,43px)/1.05 var(--display);margin:0;position:relative}.day-poster h3 span{color:var(--amber)}.day-poster>p:nth-of-type(2){color:#bccbc5;font-size:12px;margin:9px 0 27px}.poster-facts{display:flex;gap:20px;border-top:1px solid #ffffff30;padding-top:17px}.poster-facts span{font-size:11px;color:#d4dacf}.poster-facts b{font-size:16px;color:#fff}.download-box{background:#fff;border:1px solid #e0e1d9;border-radius:7px;margin-top:16px;padding:26px}.download-header{display:flex;gap:14px;align-items:flex-start}.download-icon{width:40px;height:40px;background:#edeee8;color:#20383a;border-radius:5px;display:grid;place-items:center;font-size:25px}.download-header h3{font:700 23px/1 var(--display);margin:0 0 7px}.download-header p,.download-foot{font-size:11px;color:#798381;line-height:1.65;margin:0}.download-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:24px}.file-link{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;min-height:67px;padding:12px 14px;text-decoration:none;border:1px solid #dce0da;border-radius:5px;background:#f9faf7;transition:border-color .2s,background .2s}.file-link:hover{border-color:#79a7a0;background:#f0f7f4}.file-link strong{font-size:12px;letter-spacing:1px}.file-link small{font-size:10px;color:#788985}.file-link.disabled{opacity:.54;cursor:default}.download-foot{margin-top:15px}.timeline-pane{background:#fff;border:1px solid #e0e1d9;border-radius:7px;overflow:hidden}.timeline-heading{padding:21px 25px;border-bottom:1px solid #e9e9e2;display:flex;align-items:center;justify-content:space-between;gap:12px}.timeline-heading h3{font:700 24px var(--display);margin:0}.timeline-heading span{font-size:10px;color:#98a19c;font-weight:700}.timeline{padding:9px 24px 22px}.timeline-item{position:relative;display:grid;grid-template-columns:60px 24px minmax(0,1fr);gap:10px;padding-top:18px}.timeline-item:not(:last-child):after{content:'';position:absolute;top:35px;bottom:-18px;left:81px;border-left:1px solid #d9dcd3}.timeline-time{font-weight:800;font-size:11px;padding-top:3px;white-space:nowrap}.timeline-dot{position:relative;z-index:2;display:grid;place-items:center;width:21px;height:21px;border:2px solid #d6c9ab;border-radius:50%;background:#fff;color:#ac8650;font-size:9px}.timeline-info{padding-bottom:8px}.timeline-topline{display:flex;align-items:center;justify-content:space-between;gap:8px}.timeline-info h4{font-size:13px;line-height:1.3;margin:1px 0 7px}.timeline-info p{font-size:11px;line-height:1.65;color:#677977;margin:0 0 9px}.timeline-tag{display:inline-block;font-size:9px;text-transform:uppercase;font-weight:800;letter-spacing:1px;color:#8b9b97}.timeline-tag i{font-style:normal;color:#bb884d}.timeline-actions{display:flex;flex-wrap:wrap;gap:11px}.timeline-actions a{font-size:10px;font-weight:800;text-decoration:none;color:#2a7b75}.timeline-actions a:hover{text-decoration:underline}
.info-section{background:#e9ebe4;padding:79px 0 70px}.info-grid{display:grid;grid-template-columns:1.16fr .84fr;gap:20px}.info-main,.info-side{background:white;border:1px solid #dce0d7;padding:27px;border-radius:6px}.info-grid h3{font:700 24px var(--display);margin:0 0 17px}.alert{border-top:1px solid #e4e7df;padding:16px 0}.alert strong{display:flex;align-items:center;gap:8px;font-size:12px}.alert strong:before{content:'!';display:grid;place-items:center;width:19px;height:19px;border-radius:50%;font-size:12px;background:#efe0bf;color:#7e5e24}.alert p{font-size:11px;line-height:1.65;color:#627471;margin:7px 0 6px}.alert a{font-size:10px;font-weight:800;text-decoration:none;color:#276e66}.lodging-item{border-top:1px solid #e4e7df;padding:14px 0}.lodging-item .lodging-day{display:block;font-size:10px;font-weight:800;color:#8b9c95}.lodging-item strong{display:block;font-size:12px;margin:3px 0}.lodging-item p{font-size:10px;margin:2px 0;color:#7c8c87}.pill{display:inline-block;font-size:9px;font-weight:800;border-radius:15px;padding:2px 8px;background:#eee4d3;color:#775f38}.pill.reserved{background:#e0f0e7;color:#39765c}.planning-note{padding:16px;background:#f5f5ef;border-radius:5px;margin-top:16px}.planning-note b{font-size:11px}.planning-note p{margin:5px 0 0;color:#74817a;font-size:10px}.resource-footer{margin-top:27px;background:#1d3435;color:white;padding:26px 29px;display:flex;align-items:center;justify-content:space-between;gap:18px;border-radius:6px}.resource-footer h3{font:700 29px var(--display);margin:0 0 5px}.resource-footer p:last-child{font-size:11px;line-height:1.5;color:#bdd1ca;margin:0}.resource-footer .overline{color:var(--amber)}.footer{background:var(--night);color:#ecf3ed;padding:27px 0}.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:20px}.footer b{font-family:var(--display);font-size:23px;letter-spacing:.5px}.footer p{font-size:10px;color:#8ea39e;margin:3px 0 0}.footer-links{display:flex;gap:17px;flex-wrap:wrap}.footer a{font-size:10px;text-decoration:none;color:#a7c3b8}.footer a:hover{color:#fff}.loading-message{color:#777}.sr-only{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
@media(max-width:1100px){.map-layout{grid-template-columns:minmax(0,1fr) 300px}.day-tab{padding:14px 11px}.day-tab .tab-date{font-size:34px}}
@media(max-width:850px){.container{width:calc(100% - 32px)}.topbar{padding:0 16px;height:70px}.main-nav{display:none}.brand-label{font-size:16px}.brand-label small{font-size:8px}.topbar .btn{padding:10px 12px;font-size:10px}.hero{min-height:575px}.hero-content{padding-top:45px}.hero h1{font-size:clamp(64px,13vw,102px)}.hero-facts{gap:22px}.intro,.detail-section{padding-top:57px;padding-bottom:60px}.section-heading{display:block}.section-heading>p{margin-top:14px;max-width:100%}.day-strip{grid-template-columns:repeat(3,1fr)}.day-tab{min-height:125px}.day-tab .tab-route{margin-top:11px}.map-section{padding-top:50px;padding-bottom:55px}.map-heading{gap:10px}.map-layout{display:block}.map-wrapper,#route-map,.map-wrapper #route-map{min-height:400px;height:400px}.map-aside{margin-top:12px;max-height:330px}.map-heading .map-legend{margin-bottom:6px}.day-detail-grid{grid-template-columns:1fr}.info-grid{grid-template-columns:1fr}}
@media(max-width:530px){.brand-logo{width:39px;height:39px;font-size:23px}.brand{gap:9px}.brand-label{font-size:14px}.brand-label small{font-size:7px;letter-spacing:1.2px}.hero{min-height:610px}.hero-photo{background-position:55% center}.hero-shade{background:linear-gradient(90deg,#071a1eea,#0d1d21a8),linear-gradient(0deg,#0b181d5c,transparent)}.hero h1{font-size:clamp(58px,16vw,83px);line-height:.87;margin-top:20px}.hero-kicker{font-size:9px;margin-top:27px}.hero-sub{font-size:13px}.hero-buttons{gap:8px}.hero-buttons .btn{padding:13px;font-size:10px}.hero-facts{gap:12px;margin-top:40px}.hero-facts strong{font-size:29px}.hero-facts small{font-size:7px}.hero-credit{bottom:8px;left:17px;right:auto;max-width:93%}.section-heading h2{font-size:40px}.day-strip{gap:7px;grid-template-columns:repeat(2,1fr)}.day-tab{min-height:124px}.day-tab .tab-date{font-size:30px}.day-tab .tab-month{font-size:8px}.day-tab .tab-route{font-size:11px}.map-heading{display:block}.map-legend{margin-top:12px}.map-wrapper,#route-map,.map-wrapper #route-map{min-height:335px;height:335px}.map-floats{top:9px;left:9px}.map-chip{font-size:10px;padding:8px}.aside-top{padding:18px}.day-poster{padding:23px;min-height:215px}.timeline{padding:5px 13px 22px}.timeline-heading{padding:16px 14px}.timeline-heading h3{font-size:21px}.timeline-heading span{font-size:9px}.timeline-item{grid-template-columns:46px 19px minmax(0,1fr);gap:7px}.timeline-item:not(:last-child):after{left:63px}.timeline-dot{width:19px;height:19px}.timeline-time{font-size:10px}.timeline-info h4{font-size:12px}.download-box{padding:20px}.info-main,.info-side{padding:20px}.resource-footer{display:block}.resource-footer .btn{margin-top:20px}.footer-inner{display:block}.footer-links{margin-top:10px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}


/* v2: mapa protagonista, controles en barra separada del zoom Leaflet. */
.map-section .container{width:min(1700px,calc(100% - 60px))}
.map-section .map-layout{display:grid;grid-template-columns:minmax(0,1fr) 385px;gap:16px;min-height:710px}
.map-section .map-wrapper{display:flex;flex-direction:column;min-width:0;min-height:710px;overflow:hidden}
.map-section .map-wrapper #route-map{flex:1;min-height:650px;height:650px}
.map-section .map-aside{max-height:710px;min-height:650px}
.map-toolbar{background:#192d30;min-height:60px;padding:10px 16px;display:flex;gap:12px;align-items:center;justify-content:space-between;border-bottom:1px solid #ffffff1c}
.map-controls{display:flex;gap:9px;align-items:center}
.map-toolbar .map-chip{box-shadow:none;padding:11px 16px;white-space:nowrap;background:#f4f2e9;border-radius:5px;min-height:38px}
.map-toolbar .map-expand{color:#e5c895;background:#294348;border:1px solid #698b84}
.map-toolbar .map-chip:hover{filter:brightness(.94)}
.map-section.map-expanded{position:fixed;inset:0;z-index:2001;padding:20px 0;overflow-y:auto}
.map-section.map-expanded .map-heading{margin-bottom:10px}
.map-section.map-expanded .map-layout{min-height:calc(100vh - 150px)}
.map-section.map-expanded .map-wrapper #route-map{height:calc(100vh - 220px);min-height:calc(100vh - 220px)}
.map-section.map-expanded .map-aside{max-height:calc(100vh - 150px)}
body.map-open{overflow:hidden}
/* Hoteles y restaurantes */
.recommend-section{padding:88px 0 86px;scroll-margin-top:80px}
.hotels-section{background:#f3f0e6}.dining-section{background:#e7ebe5;border-top:1px solid #dde2d9}
.recommend-notice{padding:17px 22px;border-left:4px solid #b98d48;background:#fffaf0;color:#53605b;font-size:12px;line-height:1.7;margin-bottom:25px}
.recommend-notice strong{color:#203433}
.recommend-tabbar{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:23px}
.recommend-tab{padding:12px 18px;border:1px solid #d0d7cc;border-radius:5px;background:#fff;color:#3f5d58;min-width:140px;font-size:12px;font-weight:800;text-align:left;transition:background .2s,border-color .2s}
.recommend-tab small{display:block;font-weight:500;font-size:10px;margin-top:4px;color:#7d8a85}
.recommend-tab.active{color:#fff;background:#1b3b3c;border-color:#1b3b3c}
.recommend-tab.active small{color:#c0d6cc}
.recommend-intro{margin:0 0 25px;font-size:13px;max-width:900px;color:#61766e}
.recommend-intro strong{color:#24423e}
.recommend-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.recommend-card{background:white;border:1px solid #d9ddd4;border-radius:8px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 12px 30px #132c2610}
.recommend-card .rec-top{min-height:92px;padding:22px 22px 14px;background:#203a3c;color:white;position:relative;overflow:hidden}
.recommend-card .rec-top::after{content:'';position:absolute;width:130px;height:130px;border:24px solid #ffffff0a;border-radius:50%;right:-36px;top:-45px}
.recommend-card .rec-type{display:block;color:#d3ae6d;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:1px;position:relative;z-index:1}
.recommend-card h3{font:700 27px/1.12 var(--display);margin:6px 0 1px;position:relative;z-index:1}
.recommend-card .rec-body{padding:21px 23px 17px;flex:1}
.recommend-card .rec-badge{display:inline-block;background:#eaf2ec;color:#27685b;border-radius:22px;padding:4px 10px;font-size:9px;font-weight:800;letter-spacing:.2px;margin-bottom:8px}
.recommend-card .rec-price{font:700 24px var(--display);color:#193d3d;margin:1px 0}
.recommend-card .rec-small{font-size:10px;color:#81908b;display:block;margin-bottom:14px}
.recommend-card .rec-desc{font-size:12px;line-height:1.7;color:#4c6460;margin:0 0 13px}
.recommend-card .rec-pros{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:14px}
.recommend-card .rec-pros span{font-size:9px;font-weight:700;background:#f0f3ee;padding:5px 8px;border-radius:3px;color:#4a7064}
.recommend-card .rec-warning{background:#fff8e9;border-left:2px solid #ddb16b;padding:9px 12px;font-size:10px;line-height:1.5;color:#815e35;margin:8px 0 0}
.recommend-card .rec-dish{font-size:12px;color:#356f62;font-weight:800;margin:10px 0}
.recommend-card .rec-bottom{padding:16px 22px;background:#fafbf8;border-top:1px solid #e8ece5;display:flex;flex-wrap:wrap;gap:9px}
.rec-action{display:inline-flex;align-items:center;justify-content:center;padding:10px 12px;border:1px solid #b2cac1;border-radius:4px;background:#fff;color:#1f675e;text-decoration:none;font-size:10px;font-weight:800;white-space:nowrap}
.rec-action.primary{background:#2e6b64;border-color:#2e6b64;color:white}
.rec-action:hover{filter:brightness(.94)}
.recommend-footer{font-size:11px;color:#697e76;margin:20px 0 0}
@media(max-width:1100px){.recommend-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.map-section .map-layout{grid-template-columns:minmax(0,1fr) 320px}}
@media(max-width:850px){.map-section .container{width:calc(100% - 28px)}.map-section .map-layout{display:flex;flex-direction:column;min-height:0}.map-section .map-wrapper{min-height:0}.map-section .map-wrapper #route-map{height:520px;min-height:520px;flex:none}.map-section .map-aside{min-height:0;max-height:340px}.map-section.map-expanded .map-layout{min-height:0}.map-section.map-expanded .map-wrapper #route-map{height:calc(100vh - 280px);min-height:360px}.map-section.map-expanded .map-aside{max-height:200px}.recommend-section{padding:60px 0}}
@media(max-width:530px){.map-section .map-wrapper #route-map{height:455px;min-height:455px}.map-toolbar{padding:9px;gap:7px;flex-wrap:wrap}.map-toolbar .map-chip{padding:9px;font-size:10px}.map-section.map-expanded .map-wrapper #route-map{height:calc(100vh - 275px);min-height:320px}.recommend-grid{grid-template-columns:1fr}.recommend-tab{flex:1;min-width:calc(50% - 9px)}.recommend-card .rec-top{min-height:70px}}
