.header-actions{display:flex;align-items:center;gap:.5rem}.search-toggle,.favorites-link{width:42px;height:42px;border:1px solid rgba(23,54,46,.2);border-radius:50%;display:grid;place-items:center;background:transparent;color:inherit;font-size:1.25rem}.favorites-link{position:relative;text-decoration:none}.favorites-link span{position:absolute;right:-3px;top:-4px;background:#b95435;color:#fff;border-radius:99px;min-width:18px;height:18px;font:600 10px/18px sans-serif;text-align:center}.search-panel{position:fixed;z-index:50;top:86px;left:0;right:0;background:#f6f1e7;border-top:1px solid #ddd4c3;border-bottom:1px solid #ddd4c3;padding:2rem 8vw;box-shadow:0 18px 50px rgba(23,54,46,.13)}.search-panel form{max-width:900px;margin:auto}.search-panel label{font:500 2rem Newsreader,serif;display:block;margin-bottom:.8rem}.search-panel form>div:first-of-type,.search-large{display:flex;gap:.6rem}.search-panel input,.search-large input{flex:1;padding:1rem;border:1px solid #b9b09f;background:#fff;font:inherit}.search-panel button,.search-large button{border:0;background:#17362e;color:#fff;padding:0 1.5rem}.search-suggestions{display:grid;background:#fff}.search-suggestions a{display:grid;gap:.2rem;padding:.8rem 1rem;border-top:1px solid #eee;text-decoration:none;color:#17362e}.search-suggestions span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#68726d}.region-jump{display:flex;gap:.65rem;overflow:auto;padding:1rem 6vw 2rem}.region-jump a{white-space:nowrap;border:1px solid #c8c0b2;border-radius:99px;padding:.7rem 1rem;text-decoration:none;color:#17362e}.region-jump span{opacity:.55;margin-left:.35rem}.destination-map{margin:0 6vw 4rem;padding:3rem;background:#17362e;color:#f6f1e7;display:grid;grid-template-columns:1fr 320px;align-items:center}.destination-map svg{max-height:400px}.destination-map path,.destination-map circle{fill:#e0b067;stroke:#f6f1e7;stroke-width:3;transition:.2s}.destination-map a:hover path{fill:#fff}.destination-map text{fill:#17362e;font:600 14px DM Sans}.region-section{scroll-margin-top:110px}.editorial-card,.route-card{position:relative}.editorial-card>a,.route-card>a{color:inherit;text-decoration:none}.favorite-button{position:absolute;right:1rem;top:1rem;z-index:3;border:1px solid currentColor;background:rgba(246,241,231,.86);width:38px;height:38px;border-radius:50%;font-size:1.2rem;color:#17362e}.favorite-button.active{background:#17362e;color:#fff}.route-filter-panel{margin:-1rem 6vw 3rem;padding:1.25rem;background:#fff;display:flex;gap:1rem;align-items:end;flex-wrap:wrap;box-shadow:0 15px 40px rgba(23,54,46,.08)}.route-filter-panel label{display:grid;gap:.35rem;font-size:.8rem}.route-filter-panel select{padding:.7rem;border:1px solid #c8c0b2;background:#fff}.route-filter-panel button{padding:.75rem;border:0;background:#eee8dc}.route-filter-panel p{margin-left:auto}.route-card[hidden]{display:none}.search-page .search-large{max-width:760px;margin:2rem auto 0}.search-results{max-width:920px;margin:0 auto;padding:4rem 6vw}.search-results>a{display:block;padding:1.5rem 0;border-bottom:1px solid #d8d0c2;text-decoration:none;color:#17362e}.search-results h2{margin:.3rem 0}.planner{display:grid;grid-template-columns:300px 1fr;gap:3rem;padding:4rem 6vw}.planner-controls{display:grid;gap:1.5rem;align-content:start;position:sticky;top:110px}.planner-controls label{display:grid;gap:.5rem}.planner-controls select{padding:.8rem}.planner-results .route-cards{grid-template-columns:repeat(2,1fr)}.route-toc{margin-top:2rem;position:sticky;top:110px}.route-toc strong{display:block;margin-bottom:.7rem}.route-toc a{display:block;padding:.35rem 0;color:inherit;text-decoration:none;font-size:.82rem}.reading-progress{position:fixed;z-index:99;top:0;left:0;height:3px;background:#d66b43;width:0}.save-route{margin-top:1rem;border:1px solid currentColor;border-radius:99px;background:transparent;padding:.7rem 1rem;color:inherit}.save-route.active{background:#17362e;color:#fff}.related-destinations,.collection-grid,.favorites-page{padding:4rem 6vw}.related-grid,.collection-grid,.favorite-list{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.related-grid a,.collection-grid a,.favorite-list a{padding:2rem;background:#fff;border:1px solid #ded6c9;color:#17362e;text-decoration:none}.collection-grid a{min-height:220px;background:#17362e;color:#fff}.collection-grid span{color:#e0b067}.empty-state{padding:3rem;text-align:center;background:#eee8dc}
@media(max-width:800px){.header-actions{margin-left:auto}.search-panel{top:72px;padding:1.2rem}.destination-map{grid-template-columns:1fr;padding:2rem}.destination-map svg{width:100%;max-height:300px}.route-filter-panel{align-items:stretch}.route-filter-panel label{width:calc(50% - .5rem)}.route-filter-panel p{width:100%;margin:0}.planner{grid-template-columns:1fr}.planner-controls{position:static}.planner-results .route-cards,.related-grid,.collection-grid,.favorite-list{grid-template-columns:1fr}.route-toc{position:static}.site-header nav{order:5}}

/* Recognisable tourism-region map */
.destination-map{grid-template-columns:minmax(240px,.9fr) minmax(420px,1.1fr);gap:3rem;border-radius:28px;overflow:hidden;padding:clamp(2rem,5vw,4rem)}
.map-copy{max-width:470px}.map-copy h2{font-size:clamp(2.3rem,4.2vw,3.5rem);line-height:.95;margin:.4rem 0 1.2rem}.map-note{font-size:.78rem;opacity:.65;margin-top:2rem}.portugal-map-wrap{display:grid;place-items:center}.destination-map .portugal-map{width:100%;max-width:620px;max-height:610px;filter:drop-shadow(0 28px 30px rgba(0,0,0,.18))}
.destination-map .region-shape{stroke:#f6f1e7;stroke-width:3;stroke-linejoin:round;transition:fill .2s ease}.destination-map .map-region.north .region-shape,.destination-map .map-legend-item.north circle{fill:#e7b768}.destination-map .map-region.centre .region-shape,.destination-map .map-legend-item.centre circle{fill:#d99865}.destination-map .map-region.lisbon .region-shape,.destination-map .map-legend-item.lisbon circle{fill:#f0d59e}.destination-map .map-region.alentejo .region-shape,.destination-map .map-legend-item.alentejo circle{fill:#b9c28d}.destination-map .map-region.algarve .region-shape,.destination-map .map-legend-item.algarve circle{fill:#75a9a0}.destination-map .map-region:hover .region-shape,.destination-map .map-region:focus .region-shape{fill:#fff}.destination-map .mainland-outline{fill:none;stroke:#f6f1e7;stroke-width:4;stroke-linejoin:round;pointer-events:none}.destination-map .portugal-map text{font:600 14px DM Sans;pointer-events:none}.destination-map .map-count{font-size:10px;font-weight:500;opacity:.72}.destination-map .map-legend-item rect{fill:#21473d;stroke:rgba(246,241,231,.3);stroke-width:1;transition:.2s}.destination-map .map-legend-item text{fill:#f6f1e7;text-anchor:start}.destination-map .map-legend-item:hover rect,.destination-map .map-legend-item:focus rect{fill:#2d5b4e;stroke:#f6f1e7}.destination-map .map-legend-item:focus-visible,.destination-map .map-region:focus-visible,.destination-map .island-region:focus-visible{outline:none}.destination-map .map-legend-item:focus-visible rect,.destination-map .island-region:focus-visible rect{stroke:#fff;stroke-width:3}.destination-map .island-region rect{fill:#21473d;stroke:#f6f1e7;stroke-width:1.5;transition:.2s}.destination-map .island-region:hover rect,.destination-map .island-region:focus rect{fill:#2d5b4e}.destination-map .island-dots ellipse{fill:#e7b768;stroke:#f6f1e7;stroke-width:1}.destination-map .island-region text{fill:#f6f1e7;font-size:12px;text-anchor:middle}
@media(max-width:800px){.destination-map{grid-template-columns:1fr;gap:1rem;padding:2rem 1rem;border-radius:18px}.map-copy{padding:0 1rem}.destination-map .portugal-map{width:100%;max-height:520px}}
.destination-map .island-shapes path{fill:#e7b768;stroke:#f6f1e7;stroke-width:1;stroke-linejoin:round}.destination-map .madeira-islands .porto-santo{fill:#f0d59e}.destination-map .madeira-islands .deserta{fill:#d99865}.destination-map .madeira-islands .selvagem{fill:#b9c28d}.destination-map .island-region text{font-size:11px}
.search-next-step{margin-top:3rem;padding:2rem;background:#dfe9e3;display:flex;align-items:end;justify-content:space-between;gap:2rem}.search-next-step small{font-size:.65rem;letter-spacing:.14em;text-transform:uppercase}.search-next-step h2{font:500 2.25rem Newsreader,serif}.search-next-step p{margin:.4rem 0 0}.search-next-step>a{white-space:nowrap;color:#17362e;text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:.3rem;font-weight:600}@media(max-width:700px){.search-next-step{align-items:flex-start;flex-direction:column}.search-next-step h2{font-size:1.8rem}}
.header-share-button{width:42px;height:42px;border:1px solid rgba(23,54,46,.2);border-radius:50%;display:grid;place-items:center;background:transparent;color:inherit;cursor:pointer}.header-share-button svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
