/* Mobile is the primary visitor journey; desktop retains its two-column map. */
.stay-scope-toggle{display:none}.dialog-toolbar{display:contents}
#clear-search{display:grid;place-items:center;width:44px;height:44px;flex:none;color:#486960}
#clear-search[hidden]{display:none}
input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none}
.audience-options{border:0;padding:0;margin:20px 0 12px;display:grid;gap:8px}
.audience-options legend{font-size:13px;font-weight:650;margin-bottom:10px}
.audience-options label{display:flex;align-items:center;gap:12px;padding:14px;border:1px solid #d2dfd6;border-radius:10px;cursor:pointer}
.audience-options label:has(input:checked){background:#eef6de;border-color:#507869}
.audience-options input{width:20px;height:20px;accent-color:var(--teal);flex:none}
.audience-options strong,.audience-options small{display:block}.audience-options small{font-size:12px;color:#566f63;margin-top:4px}
.preference-help{font-size:12px!important;line-height:1.5!important}
@media(max-width:900px){
 :root{--mobile-header:60px;--mobile-nav:64px;--safe-bottom:env(safe-area-inset-bottom,0px);--safe-top:env(safe-area-inset-top,0px)}
 html,body{height:100%;overflow:hidden}body{overscroll-behavior:none}
 .topbar{height:calc(var(--mobile-header) + var(--safe-top));padding:var(--safe-top) 16px 0;gap:10px}
 .brand{font-size:25px;gap:9px}.brand-mark{width:35px;height:35px}.brand small{font-size:8px;letter-spacing:1.3px;margin-top:4px}
 .language{min-height:44px;min-width:44px;padding:0 4px}.language .icon{width:18px}
 .topbar nav{height:calc(var(--mobile-nav) + var(--safe-bottom));padding:0 0 var(--safe-bottom);z-index:600}
 .nav-item{min-width:0;font-size:11px;min-height:44px;gap:4px}.nav-item .icon{width:22px;height:22px}
 main{height:calc(100dvh - var(--mobile-header) - var(--safe-top) - var(--mobile-nav) - var(--safe-bottom));min-height:0}
 .panel,.mobile-home .panel{padding:12px 16px 90px;overflow-x:hidden;overscroll-behavior-y:contain;scroll-padding-top:12px;-webkit-overflow-scrolling:touch}
 .mobile-home .panel{padding-bottom:24px}.panel-intro{display:none}
 .mobile-home #mobile-welcome{height:76px;margin-bottom:12px;border-radius:12px}
 #mobile-welcome>div{padding:12px 14px}#mobile-welcome h1{font-size:22px}#mobile-welcome span{font-size:10px}
 #stay-control,.mobile-home #stay-control{margin-bottom:12px;border-radius:11px}
 .stay-selected,.mobile-home .stay-selected{padding:10px 12px;gap:10px}.stay-selected>div{min-width:0;flex:1}
 .stay-selected strong,.mobile-home .stay-selected strong{font-size:15px;overflow-wrap:anywhere;line-height:1.35}
 .stay-kicker,.mobile-home .stay-kicker{font-size:10px}.stay-symbol{width:35px;height:39px;flex:none}
 #change-stay{min-height:44px;min-width:48px;font-size:13px}
 .choose-stay,.mobile-home .choose-stay{min-height:68px;padding:10px 12px;gap:10px}
 .choose-stay strong,.mobile-home .choose-stay strong{font-size:15px}.choose-stay small,.mobile-home .choose-stay small{font-size:12px;line-height:1.4}
 .stay-scope-toggle{display:flex;justify-content:space-between;align-items:center;gap:8px;width:100%;min-height:44px;padding:8px 12px;border-top:1px solid #e0e8dc;font-size:12px}
 .stay-scope-toggle strong{font-weight:550;max-width:65%;text-align:right}.stay-scope-toggle[aria-expanded=true]{background:#ecf4e3}
 #stay-settings:not(.scope-open){display:none}.stay-scope,.mobile-home .stay-scope{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;padding:10px 12px 0}
 .stay-scope:has(.radius-field),.mobile-home .stay-scope:has(.radius-field){grid-template-columns:minmax(0,1fr) 84px}
 .stay-scope select,.mobile-home .stay-scope select{grid-column:1/-1;width:100%;min-height:44px;margin:0;font-size:16px}
 .stay-footnote,.mobile-home .stay-footnote{display:block;font-size:12px;margin:10px 0 12px}
 #geography-control{padding:5px 10px;margin-bottom:12px}.discovery-settings{display:grid;grid-template-columns:1fr 1fr;align-items:start;gap:0 10px}
 .discovery-settings:has(details[open]){grid-template-columns:1fr}.discovery-settings summary{min-height:48px;gap:7px;flex-wrap:wrap;font-size:12px;padding:3px 0}
 .discovery-settings summary>.icon{width:17px}.discovery-settings .settings-change{display:none}.discovery-settings summary:after{content:'⌄';font-size:15px}
 .discovery-settings #edit-interests{min-height:48px!important;padding:4px 0 4px 10px!important;border-top:0;border-left:1px solid #dce6db;gap:6px}
 .discovery-settings #edit-interests strong{font-size:13px}.discovery-settings #edit-interests small{font-size:11px;line-height:1.4}
 .discovery-settings:has(details[open]) #edit-interests{border-left:0;border-top:1px solid #dce6db;padding-left:0!important}
 .geography-fields select{font-size:16px;min-height:44px}.discovery-settings #explore-everywhere{min-height:44px;text-align:left}
 .search,.mobile-home .search{height:48px;background:#fff;padding:0 6px 0 12px;border:1px solid #b9ccc3;scroll-margin-top:12px}
 .search input,.mobile-home .search input,dialog input,dialog select{font-size:16px;min-height:44px}
 .search:focus-within{outline:2px solid #568276;outline-offset:1px}.search-key{display:none}
 .categories,.is-searching #discovery-controls>.categories{display:flex;gap:8px;overflow-x:auto;margin:12px 0;padding:0 0 5px;width:100%;scrollbar-width:none;overscroll-behavior-x:contain}.categories::-webkit-scrollbar{display:none}
 .is-searching #stay-control{display:none}
 .category,.category[data-category=stays]{flex:none;display:flex;flex-direction:row;gap:6px;height:44px;padding:9px 12px;border-radius:22px;font-size:13px;white-space:nowrap}
 .category .icon{width:18px;height:18px}.category>span{display:inline-flex}
 .home-heading{margin:14px 0 10px;align-items:center}.home-heading h2{font-size:17px}.home-heading>span{font-size:11px;text-align:right;max-width:42%}
 .home-grid{gap:8px}.home-tile{min-height:85px;padding:10px 5px;gap:7px}.home-tile strong{font-size:13px}.home-tile .icon{width:26px;height:26px}
 .bay-feature{display:none}.section-title{margin:14px 0 4px;align-items:start}.section-title h2{font-size:18px}.section-title span{font-size:12px;color:#5b7266}
 .section-title select{font-size:16px;min-height:44px;max-width:112px}.interest-summary{font-size:12px;padding:4px 10px;margin:10px 0}.interest-summary button{min-height:44px}
 .place-card{padding:13px 0;align-items:flex-start;gap:4px}.place-main{min-height:64px;gap:10px}.place-icon{width:40px;height:44px}.place-copy strong{font-size:16px;overflow-wrap:anywhere}
 .place-copy>span{font-size:13px}.place-copy small{font-size:12px;color:#607469}.save-button{min-width:44px;min-height:44px;margin:0;display:grid;place-items:center}.save-button .icon{width:21px;height:21px}
 .mobile-toggle{bottom:calc(var(--mobile-nav) + var(--safe-bottom) + 12px);min-height:48px;font-size:14px;padding:12px 22px}
 .map-top{top:12px;left:12px;right:12px;gap:8px}.map-caption{padding:10px;min-width:0;max-width:60%}.map-button{min-height:44px;padding:10px}.map-bottom{bottom:74px;left:12px;right:65px}
 .leaflet-control-zoom{margin-right:12px!important;margin-bottom:84px!important}.leaflet-control-zoom a{width:44px!important;height:44px!important;line-height:44px!important}
 #route-card{max-height:48%;overflow:auto;overscroll-behavior:contain;padding:12px 14px}.route-actions button,.route-actions a,#close-route{min-height:44px}#close-route{min-width:44px}.route-actions{gap:6px}
 dialog{position:fixed;inset:auto 0 0;margin:0;width:100%;max-width:none;max-height:92dvh;border-radius:20px 20px 0 0;padding:12px 18px calc(18px + var(--safe-bottom));overflow-y:auto;overscroll-behavior:contain;scroll-padding-top:65px}
 .dialog-toolbar{display:flex;justify-content:flex-end;position:sticky;top:-12px;background:#fff;z-index:1001;margin:-12px -2px 0;padding:8px 0 4px}
 .close-dialog{position:static;min-height:44px;min-width:44px;padding:10px}dialog h2{font-size:25px;overflow-wrap:anywhere;margin-top:6px}dialog p{font-size:15px;line-height:1.55}
 dialog .primary-link,dialog .secondary-link{min-height:48px;font-size:15px}.base-picker-tabs button{min-height:44px;flex:1;font-size:14px}
 .stay-search{margin-top:14px}.stay-options{max-height:42dvh;overscroll-behavior:contain}.stay-option{min-height:60px;padding:12px 4px}
 .interest-options label{min-height:48px;font-size:15px}.interest-options input{min-height:20px}.audience-options input{min-height:20px}.interest-actions{bottom:calc(-18px - var(--safe-bottom));padding:12px 0 calc(12px + var(--safe-bottom));margin-bottom:0;z-index:1002}
 .data-credit,.info-note{color:#64756b}.panel-footer button{min-height:44px}#toast{bottom:calc(var(--mobile-nav) + var(--safe-bottom) + 74px);font-size:13px;line-height:1.5}
}
@media(max-width:360px){.panel,.mobile-home .panel{padding-left:12px;padding-right:12px}.language span{display:none!important}.brand{font-size:23px}.home-tile{min-height:82px}.home-tile strong{font-size:12px}.stay-selected,.mobile-home .stay-selected{gap:7px}.categories{margin-left:-12px;margin-right:-12px;padding-left:12px;padding-right:12px}}
@media(max-width:900px) and (max-height:500px){.mobile-home #mobile-welcome{display:none}dialog{max-height:100dvh;border-radius:0}.topbar{--mobile-header:52px}:root{--mobile-header:52px;--mobile-nav:56px}#route-card{max-height:60%}.map-top{top:6px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* A distinct starting point for people still choosing their holiday. */
#holiday-home[hidden]{display:none}
.holiday-home .panel-intro,.holiday-home #mobile-welcome,.holiday-home #mobile-home,.holiday-home #stay-control,.holiday-home #panel-content,.holiday-home #discovery-controls>.categories,.holiday-home #mobile-toggle{display:none!important}
.holiday-hero{margin:18px 0 24px;padding:28px 22px;border-radius:16px;color:#fff;background:linear-gradient(100deg,#0c414aee,#0c414a70),url('./qawra.jpg') center/cover}
.holiday-hero .eyebrow{color:#dcf1c3;font-size:10px}.holiday-hero h1{font-family:Manrope,sans-serif;font-size:30px;line-height:1.15;letter-spacing:-1px;margin:12px 0}.holiday-hero p{font-size:15px;line-height:1.6;margin:0;color:#f4f8ee}
.holiday-section{margin:24px 0}.holiday-section>.eyebrow{font-size:10px;letter-spacing:1.3px;color:#58766b}.holiday-section h2,.holiday-more h2{font-family:Manrope,sans-serif;font-size:21px;line-height:1.25;letter-spacing:-.5px;margin:8px 0 16px}
.holiday-stays{display:grid;gap:8px}.holiday-stays button{width:100%;display:flex;align-items:center;text-align:left;gap:12px;padding:14px;border:1px solid #d6e1d6;border-radius:11px;background:#fff;min-height:64px}.holiday-stays button>span{flex:1;min-width:0}.holiday-stays strong,.holiday-stays small{display:block}.holiday-stays strong{font-size:15px;line-height:1.3}.holiday-stays small{font-size:12px;color:#64756b;margin-top:4px}.holiday-stays .icon{color:#16646b;flex:none;width:22px}.holiday-stays button:hover,.holiday-ideas button:hover{border-color:#458079;background:#f3f8ec}
.holiday-ideas{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.holiday-ideas button{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:9px;border:1px solid #d6e1d6;border-radius:12px;background:#eef4e2;padding:16px;min-height:155px}.holiday-ideas button:first-child{background:#e6f1f4}.holiday-ideas button:nth-child(2){background:#f6eddb}.holiday-ideas strong{font-size:15px;line-height:1.3}.holiday-ideas small{font-size:12px;line-height:1.5;color:#506a62}.holiday-ideas .icon{color:#16646b}.holiday-ideas .icon:last-child{width:18px;height:18px;margin-top:auto}
.holiday-more{border-top:1px solid #d9e4d8;margin:24px 0 0;padding-top:18px}.holiday-more p{font-size:14px;line-height:1.6;color:#64756b}.holiday-more .secondary-link{min-height:44px;display:inline-flex;align-items:center}
.holiday-filter{display:grid;gap:7px;font-size:13px;font-weight:600;margin:14px 0}.holiday-filter select{width:100%;min-height:46px;padding:10px;border:1px solid #bdcfc3;border-radius:8px;background:#fff;font:inherit;font-size:16px;color:#164d50}.holiday-back{min-height:44px;font-size:14px;color:#165e62;text-decoration:underline;text-underline-offset:3px;margin-top:6px}
@media(max-width:360px){.holiday-hero{padding:22px 16px}.holiday-hero h1{font-size:27px}.holiday-ideas button{padding:12px}.holiday-ideas strong{font-size:14px}}

.current-location-button{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:48px;padding:12px;margin-top:12px;border:1px solid #b5ccc0;border-radius:10px;background:#fff;color:#123f43;font-size:14px;font-weight:650;white-space:normal;text-align:center}.current-location-button:disabled{opacity:.65;cursor:wait}

@media(min-width:901px) and (max-width:1050px){.topbar{gap:10px}.topbar nav[aria-label="Main navigation"]{gap:8px}.topbar nav .icon{display:none}.brand{font-size:24px}.brand-mark{width:36px;height:36px}.long-lets-link{padding:0 8px;font-size:12px}}
@media(max-width:900px){:root{--mobile-header:100px}.topbar{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:minmax(44px,1fr) 44px;column-gap:8px;row-gap:0}.topbar .brand{grid-column:1;grid-row:1;min-width:0}.topbar .language{grid-column:2;grid-row:1}.topbar .long-lets-link{grid-column:1/-1;grid-row:2;min-height:40px;margin-bottom:4px;font-size:13px}}
@media(max-width:900px) and (max-height:500px){:root{--mobile-header:88px}.topbar{--mobile-header:88px;grid-template-rows:44px 36px}.topbar .long-lets-link{min-height:34px;margin-bottom:2px}}
@media(max-width:900px){dialog.feature-profile{padding:0 0 calc(10px + var(--safe-bottom));max-height:92dvh}.feature-profile .dialog-toolbar{margin:0;padding:4px 12px;background:#f8f5ea}.feature-profile .feature-hero img{height:200px}.feature-profile .feature-copy{padding:22px 21px}.feature-profile .feature-copy h2{font-size:30px}.feature-profile .feature-copy .detail-actions{grid-template-columns:1fr}.feature-profile .feature-copy .detail-actions>*{min-height:48px}}
@media(max-width:900px) and (max-height:500px){dialog.feature-profile{inset:0;margin:auto;max-height:100dvh}.feature-profile .feature-hero img{height:150px}}

@media(max-width:900px){dialog:has(.walking-steps){padding:18px 22px calc(22px + var(--safe-bottom))}.walking-steps h2{font-size:25px;line-height:1.25}.walking-summary{margin-bottom:16px}.walking-steps .route-steps li{padding:13px 0 13px 5px}.walking-steps .info-note{margin-top:10px}}
@media(max-width:360px){dialog:has(.walking-steps){padding-left:20px;padding-right:20px}}
@media(max-width:900px) and (max-height:500px){dialog:has(.walking-steps){inset:0;margin:auto;width:min(620px,calc(100% - 24px));max-height:calc(100dvh - 16px);border-radius:16px}}
@media(max-width:900px){.mobile-home #stay-control{min-height:130px}.mobile-home #geography-control{min-height:80px}}

/* A route uses the phone screen, with separate space for map and directions. */
@media(max-width:900px){
 .has-route .topbar,.has-route .panel,.has-route #mobile-toggle{display:none!important}
 .has-route main{height:100dvh}
 .has-route .map-area{display:grid!important;grid-template-rows:auto minmax(0,1fr) auto;height:100%;width:100%}
 .has-route #map{grid-row:2;min-height:0}
 .has-route #route-card{position:relative;grid-row:1;top:auto;left:auto;right:auto;max-width:none;max-height:none;overflow:visible;border:0;border-bottom:1px solid #d8e3dd;border-radius:0;padding:calc(12px + var(--safe-top)) 16px 12px;box-shadow:none;margin:0}
 .has-route #route-card .eyebrow{font-size:10px;color:#526a66}
 .has-route #route-card h2{font-size:20px;margin:5px 40px 5px 0}
 .has-route #route-card .route-endpoints{font-size:13px;line-height:1.4;margin-right:28px}
 .has-route #close-route{top:calc(8px + var(--safe-top));right:8px;min-width:44px;min-height:44px}
 .has-route .route-actions{margin:10px 0;gap:8px}.has-route .route-actions button,.has-route .route-actions a{font-size:13px;padding:10px}
 .has-route #route-step-panel{position:relative;grid-row:3;bottom:auto;left:auto;right:auto;max-width:none;max-height:55dvh;overflow-y:auto;overscroll-behavior:contain;border:0;border-top:1px solid #d8e3dd;border-radius:0;box-shadow:none;margin:0;padding:12px 16px calc(8px + var(--safe-bottom))}
 .has-route #walking-instruction{font-size:23px;margin-top:9px}
 .has-route #walking-next-hint{margin:7px 0 10px}
 .has-route .walking-manual-note{margin:8px 0 2px;font-size:12px}
 .has-route .walking-view-actions button,.has-route .walking-view-actions a{min-height:44px}
 .has-route .leaflet-control-zoom{margin-bottom:24px!important;margin-right:10px!important}
 .has-route .leaflet-control-attribution{font-size:10px!important}
 .has-route #map-notice{top:auto;bottom:24px;left:8px;right:65px;padding:8px;font-size:12px}
 .has-route #toast{bottom:calc(12px + var(--safe-bottom));z-index:1200}
}
@media(max-width:360px){
 .has-route #route-card{padding-left:12px;padding-right:12px}
 .has-route #route-step-panel{padding-left:12px;padding-right:12px}
 .has-route .walking-north{font-size:10px}
 .has-route #walking-instruction{font-size:21px}
 .has-route .walking-view-actions a{font-size:12px}
}
@media(max-width:900px) and (max-height:500px){
 .has-route .map-area{grid-template-columns:minmax(0,1fr) minmax(260px,36%);grid-template-rows:auto minmax(0,1fr)}
 .has-route #route-card{grid-row:1;grid-column:1;padding:8px 12px}
 .has-route #route-card h2{font-size:18px}
 .has-route #route-card .route-endpoints{font-size:12px}
 .has-route #close-route{top:4px;right:4px}
 .has-route #map{grid-row:2;grid-column:1}
 .has-route #route-step-panel{grid-row:1/3;grid-column:2;max-height:100dvh;border-top:0;border-left:1px solid #d8e3dd;padding:10px 12px calc(8px + var(--safe-bottom))}
 .has-route #walking-instruction{font-size:21px}
 .has-route .walking-north{display:none}
 .has-route .walking-step-buttons{gap:6px}.has-route .walking-step-buttons button{min-height:48px;font-size:14px;padding:9px}
 .has-route:not(.walking-mode) .map-area{grid-template-columns:1fr}
 .has-route:not(.walking-mode) #route-card{max-height:44dvh;overflow-y:auto}
}
