/* Mobile navigation and responsive layout. Loaded after the existing stylesheet. */
.mobile-menu-trigger,.mobile-bottom-nav{display:none}
.mobile-menu-dialog{border:0;border-radius:24px 24px 0 0;padding:0;margin:auto auto 0;width:min(560px,100%);max-width:100%;max-height:90vh;max-height:90dvh;background:#fff;color:var(--ink);overflow:hidden;box-shadow:0 -16px 70px #0b2c2933}
.mobile-menu-dialog:not([open]){display:none}
.mobile-menu-dialog[open]{display:flex;flex-direction:column}
.mobile-menu-dialog::backdrop{background:#092c2866}
.mobile-modal-open,.mobile-modal-open body{overflow:hidden}
.mobile-menu-heading{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--line);flex-shrink:0}
.mobile-menu-heading h2{font-size:20px;margin:0}
.mobile-menu-close{border:0;background:#edf4ef;color:var(--ink);border-radius:50%;width:44px;height:44px;font-size:28px;line-height:1}
.mobile-menu-content{overflow-y:auto;overscroll-behavior:contain;padding:20px 22px calc(24px + env(safe-area-inset-bottom))}
.mobile-account-name{font-size:19px;font-weight:750;margin:0 0 5px;overflow-wrap:anywhere}
.mobile-account-name+.small{margin:0 0 18px}
.mobile-account-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:20px}
.mobile-account-actions .btn{font-size:14px;padding:12px}
.mobile-menu-links{display:grid;grid-template-columns:1fr 1fr;gap:0 22px}
.mobile-menu-links a{display:flex;align-items:center;justify-content:space-between;min-height:54px;gap:10px;border-bottom:1px solid var(--line);font-size:14px;font-weight:650}
.mobile-menu-links span{color:#82968d;font-size:15px}
.mobile-partner-note{background:var(--cream);padding:18px;border-radius:12px;margin:24px 0 20px}
.mobile-partner-note h3{font-size:16px;margin:0 0 5px}
.mobile-partner-note p{font-size:12px;color:var(--muted);margin:0 0 10px}
.mobile-partner-note a{font-size:13px;color:var(--green);font-weight:700}
.mobile-menu-legal{display:flex;flex-wrap:wrap;gap:16px;font-size:12px;color:var(--muted)}
.mobile-logout{margin:18px 0 0}.mobile-logout button{border:0;background:transparent;padding:10px 0;font-size:13px;color:#864b41;min-height:44px}
@media(max-width:1024px){
 :root{--mobile-dock:76px}
 html{scroll-padding-top:84px}
 body{font-size:15px}
 .wrap{width:calc(100% - 32px)}
 .mobile-ready{padding-bottom:calc(var(--mobile-dock) + env(safe-area-inset-bottom))}
 .site-header{position:sticky;top:0;z-index:70;background:#fff;box-shadow:0 3px 18px #173f3510}
 .site-header .nav{min-height:66px;padding:10px 0;gap:10px}
 .mobile-ready .site-header .nav{flex-wrap:nowrap}
 .site-header .brand{font-size:20px;gap:7px;letter-spacing:-.8px}
 .site-header .brand img{width:30px;height:30px;flex:none}
 .site-header .brand span{display:none}
 .mobile-ready .site-header .nav>nav{display:none}
 .mobile-ready .site-header .nav-end{margin-left:auto;flex-wrap:nowrap;gap:0}
 .mobile-ready .site-header .nav-end>*{display:none}
 .mobile-ready .site-header .nav-end>[data-mobile-account]{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:8px 12px;border-radius:10px;background:#edf5ef;color:var(--green);font-size:12px;font-weight:750;white-space:nowrap}
 .mobile-ready .mobile-menu-trigger{display:flex;align-items:center;justify-content:center;flex:0 0 42px;width:42px;height:42px;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:10px}
 .mobile-ready .mobile-bottom-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:stretch;position:fixed;bottom:0;left:0;right:0;z-index:85;padding:7px max(8px,env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));min-height:calc(var(--mobile-dock) + env(safe-area-inset-bottom));background:#fff;border-top:1px solid #dce7df;box-shadow:0 -4px 22px #123d3210}
 .mobile-bottom-nav>a,.mobile-bottom-nav>button{display:flex;flex-direction:column;gap:4px;align-items:center;justify-content:center;min-height:58px;min-width:0;margin:0 3px;padding:7px 3px;border:0;border-radius:13px;background:transparent;color:#62796e;font:inherit;font-size:11px;font-weight:650;text-decoration:none;line-height:1.3}
 .mobile-bottom-nav>.is-active,.mobile-bottom-nav>[aria-current=page]{background:var(--green);color:#fff}
 .mobile-bottom-nav a:focus-visible,.mobile-bottom-nav button:focus-visible{outline-offset:-3px}
 .hero{background:linear-gradient(140deg,#17634e,#258775);padding:32px 0 24px;color:#fff}
 .hero .hero-inner{display:block;min-height:0;text-align:center}
 .hero .eyebrow{color:#d6efde;font-size:11px;letter-spacing:1px;margin:0 0 12px}
 .hero h1{font-size:clamp(28px,7.5vw,36px);line-height:1.35;letter-spacing:-1.4px;margin:0 0 16px}
 .hero h1 em{color:#fff}
 .hero .hero-copy{color:#e2f2e8;font-size:13px;line-height:1.8;margin:0 0 22px}
 .hero-art{display:none}
 .search-box{margin-top:0;padding:4px 16px 18px;border:0;border-radius:20px;color:var(--ink);box-shadow:0 10px 28px #0c3e3220}
 .type-tabs{gap:8px;justify-content:space-between;margin-bottom:16px}
 .type-tabs span{font-size:12px;padding:14px 0;letter-spacing:-.3px}
 .search-row{grid-template-columns:minmax(0,1fr);gap:14px;align-items:stretch}
 .search-row .keyword{border:0;padding:0}
 .search-row label{display:flex;flex-direction:column;gap:7px;text-align:left}
 .search-row label span{font-size:12px;font-weight:700;color:#5a7367}
 .search-row input,.search-row select{display:block;width:100%;font-size:16px;min-height:50px;padding:12px;border:1px solid #d5e2d9;border-radius:10px;background:#f8faf7}
 .search-row .btn{grid-column:auto;min-height:50px;border-radius:11px;font-size:16px;gap:12px}
 .hero .popular{padding-top:18px;gap:9px;align-items:center}
 .hero .popular>span{width:100%;font-size:11px;color:#dfefe4}
 .hero .popular a{padding:7px 11px;border-radius:24px;background:#ffffff18;border:1px solid #ffffff35;color:#fff;font-size:12px;min-height:36px}
 #office-search,#search-filters,#region-explore{scroll-margin-top:84px}
 input:not([type=checkbox]):not([type=radio]),select,textarea{font-size:16px;min-height:46px}
 input[type=checkbox],input[type=radio]{width:18px;height:18px;flex-shrink:0}
 .btn{min-height:46px;white-space:normal;line-height:1.4;text-align:center}
 .save,.card-actions label{min-height:44px;display:inline-flex;align-items:center}
 .card-actions .save{padding:8px 0;font-size:13px}
 .card-actions label{font-size:13px;gap:7px}
 .section{padding-top:32px;padding-bottom:18px}
 .section-head h2{font-size:22px}
 .category-grid{grid-template-columns:1fr;gap:10px}
 .category{padding:16px 18px}
 .category h3{font-size:19px}
 .cards{grid-template-columns:1fr;gap:18px}.card-body{padding:18px}
 .cover{aspect-ratio:16/10}
 .home-region-tabs,.home-type-tabs{flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain;padding:4px 2px 12px;scrollbar-width:thin}
 .home-region-tabs a,.home-type-tabs a{flex:0 0 auto;min-height:44px;display:flex;align-items:center;white-space:nowrap;padding:10px 14px;font-size:13px}
 .home-city-heading{align-items:center}
 .home-city-heading a{padding:8px 0;min-height:40px;font-size:12px}
 .region-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .region-grid>div{padding:14px;min-width:0}
 .region-grid a{font-size:13px;line-height:1.5;min-height:42px;display:flex;align-items:center}
 .regional-links a{min-height:42px;display:inline-flex;align-items:center}
 .filters{padding:16px;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr))}
 .filters>.btn{grid-column:1/-1;min-height:48px}
 .filters>label{min-width:0;font-size:12px}
 .filters>a{display:flex;min-height:40px;align-items:center}
 .filters label:first-of-type{grid-column:1/-1}
 .facts{grid-template-columns:105px minmax(0,1fr)}
 .facts dt,.facts dd{font-size:13px;padding:12px 8px;overflow-wrap:anywhere;min-width:0}
 .detail-grid{grid-template-columns:minmax(0,1fr);gap:20px;min-width:0}
 .detail-grid>div,.booking{min-width:0}
 .booking{position:static;padding:20px}.gallery-thumb{flex-basis:88px}
 .od-contact .btn{padding:10px 8px;font-size:13px}
 .mobile-ready:has(.od-contact){--mobile-dock:88px;padding-bottom:calc(var(--mobile-dock) + env(safe-area-inset-bottom))}
 .mobile-ready:has(.od-contact) .mobile-bottom-nav{display:none}
 .od-contact{position:fixed;bottom:0;left:0;right:0;z-index:80;background:#fff;border-top:1px solid #ddd;margin:0;padding:12px max(12px,env(safe-area-inset-right));padding-bottom:calc(12px + env(safe-area-inset-bottom));flex-wrap:nowrap;min-height:76px}
 .compare-bar,.mobile-ready:has(.od-contact) .compare-bar{bottom:calc(var(--mobile-dock) + env(safe-area-inset-bottom) + 12px);max-width:calc(100% - 24px);gap:10px}
 .compare-bar .btn{padding:10px 12px;font-size:12px}
 .toast{bottom:calc(var(--mobile-dock) + env(safe-area-inset-bottom) + 18px)}
 body:has(#compare-bar:not([hidden])) .toast{bottom:calc(var(--mobile-dock) + env(safe-area-inset-bottom) + 100px)}
 .form-grid{grid-template-columns:minmax(0,1fr);gap:18px;padding:18px;min-width:0}
 .partner-fields .form-grid{padding:0}
 .partner-fields{padding:16px}
 .partner-fields .check{min-height:44px}
 .partner-fields>.check{display:flex;flex-direction:row;align-items:flex-start;gap:8px}
 .partner-fields legend{font-size:14px}
 .partner-signup .panel{padding:16px}
 .partner-signup h1{font-size:28px}
 .form-grid>.full{grid-column:1/-1}
 .stack label,.form-grid>label{font-size:13px}
 .panel{min-width:0}.table-scroll{max-width:100%;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
 .inline{flex-wrap:wrap;margin-left:0}
 .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
 .workspace-links{gap:8px}.workspace-links .btn{min-height:44px}
 .footer-links a{display:inline-flex;align-items:center;min-height:40px}
 .guide-cards{grid-template-columns:1fr}
 .guide-mark{display:none}
 .partner-banner{flex-direction:column;align-items:flex-start}
 .footer-links{flex-wrap:wrap}
 .site-footer{padding-bottom:34px}
 .footer-business-grid{grid-template-columns:minmax(0,1fr)}
 .footer-business dd,.footer-contact{overflow-wrap:anywhere}
 .breadcrumbs{line-height:1.8}
 .guide-content{overflow-wrap:anywhere}
}
@media(max-width:360px){.site-header .brand{font-size:18px}.site-header .brand img{width:27px;height:27px}.mobile-ready .site-header .nav-end>[data-mobile-account]{padding:8px;font-size:11px}.type-tabs{gap:4px}.type-tabs span{font-size:11px}.mobile-menu-links{gap:0 14px}.mobile-menu-content{padding-left:18px;padding-right:18px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
