/* Shared responsive layer: public directory and private business portal. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{overflow-wrap:break-word}
button,input,select,textarea{max-width:100%}
:where(main,section,article,aside,form,.heading-row)>*{min-width:0}
:where(h1,h2,h3,.chat-message,.ai-proposal,.breadcrumbs,.form-status){overflow-wrap:anywhere}
.table-scroll{max-width:100%;overscroll-behavior-x:contain}
#credential-dialog{max-height:calc(100dvh - 32px);overflow-y:auto;overscroll-behavior:contain}
@media(max-width:900px){
 html{scroll-padding-top:96px}
 .site-header,.site-header.scrolled{height:74px;gap:12px;padding-inline:max(5%,env(safe-area-inset-left)) max(5%,env(safe-area-inset-right))}
 .site-header .wordmark,.site-header .wordmark img{width:167px;height:62px;flex-shrink:0}
 .header-actions{gap:8px;flex-shrink:0;margin-left:auto}
 .site-header .header-actions .publish-link{display:none}.menu-toggle{display:flex;flex-shrink:0}
 .site-header nav{display:none;position:absolute;left:0;right:0;top:100%;padding:14px max(6%,env(safe-area-inset-left)) 22px;background:var(--paper);border-bottom:1px solid var(--line);box-shadow:0 14px 24px #082e4814;max-height:calc(100dvh - 74px);overflow-y:auto;overscroll-behavior:contain}
 .site-header nav.open{display:flex;flex-direction:column;align-items:stretch;gap:2px}
 .site-header nav>a{font-size:16px;min-height:48px;padding:12px 4px}
 .site-header nav>.mobile-publish{display:block;font-size:14px;margin-top:5px;color:var(--ink)}
 .visit-counter{font-size:12px;min-width:44px;justify-content:center}.visit-counter small{display:none}
 .search-field input,.search-field select,.portal-form input:not([type=checkbox]):not([type=file]),.portal-form select,.portal-form textarea,.admin-search input,.payment-row input:not([type=checkbox]):not([type=hidden]),#chat-input{font-size:16px;min-height:48px}
 .search-field label{font-size:10px;letter-spacing:.6px;min-height:28px;align-items:flex-start}
 .search-field{min-width:0}
 .button.small,.text-link,.filter-pills>a,.clear-filters,.stats-range nav a{min-height:44px;align-items:center;display:inline-flex}
 .save-button,.property-save .save-button,.footer-up{width:44px;height:44px;flex-shrink:0}
 .property-content{grid-template-columns:minmax(0,1fr);gap:32px}.contact-card{position:static;width:100%}
 .property-heading>div:first-child{flex:1;min-width:0}.property-save{flex-shrink:0}
 .source-link{padding-block:8px}.source-note{overflow-wrap:anywhere}
 .footer-navigation nav{gap:0;font-size:13px}.footer-navigation nav a{min-height:44px;display:flex;align-items:center}
 .footer-legal nav a{display:inline-flex;align-items:center;min-height:44px}
 .portal-form label,.payment-row form label,.admin-search{font-size:13px}
 .portal-form small,.metric-note,.form-status,.panel-card>p,.portal-heading p{font-size:12px}
 .portal-form input[type=checkbox],.payment-row input[type=checkbox]{width:20px;height:20px;flex-shrink:0}
 .checkbox-grid label,.photo-picker span,.confirm-check{min-height:44px}
 .sidebar-help a,.sidebar-help button{min-height:44px;display:inline-flex;align-items:center;font-size:12px}
 .portal-site{min-width:44px;min-height:44px;justify-content:center}
 .portal-form .form-actions>.button{min-height:48px;font-size:13px}
 .payment-row .button,.admin-business-actions .button{min-height:44px;font-size:12px}
 .assistant-shell textarea{scroll-margin-block:100px}.chat-message p{font-size:16px}.chat-message,.ai-proposal{min-width:0;max-width:100%}
 #chat-attachments button{min-height:44px;max-width:100%;overflow-wrap:anywhere;text-align:left}
 .attachment-button{position:relative;min-height:44px;border:1px solid #b8bdb5;border-radius:8px;padding:8px 14px;justify-content:center;flex-direction:row;font-size:13px}
 .attachment-button input{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden}
 .attachment-button:focus-within{outline:3px solid var(--orange);outline-offset:3px}
 .assistant-top button{min-height:44px;font-size:12px}.assistant-top{flex-wrap:wrap}
 .assistant-shell small{font-size:12px}.chat-log{max-height:50svh;min-height:180px;overscroll-behavior-y:contain}
}
@media(max-width:700px){
 .portal-header{gap:8px}.portal-label{font-size:10px;padding-left:10px}.portal-header .brand-logo{flex-shrink:0}
 .portal-sidebar nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;overflow:visible}
 .portal-sidebar nav>a{font-size:12px;min-height:44px;padding:10px 12px;white-space:normal}
 .sidebar-help{padding-top:6px;gap:10px}.sidebar-help .form-status:empty{display:none}
 .portal-main{padding-bottom:calc(36px + env(safe-area-inset-bottom))}.portal-heading h1{font-size:clamp(28px,8vw,36px)}
 .heading-row{gap:16px}.heading-row .button{font-size:12px;min-height:44px}
 .panel-card{padding:20px 16px}.panel-card h2{font-size:23px}
 .photo-picker{grid-template-columns:repeat(2,minmax(0,1fr))}.photo-picker img{height:auto;aspect-ratio:4/3}.photo-picker span{font-size:12px}
 .payment-row{grid-template-columns:minmax(0,1fr) auto;gap:14px}.payment-row form,.payment-row form label{min-width:0;max-width:100%;width:100%}
 .payment-row form input:not([type=checkbox]):not([type=hidden]){width:100%;min-width:0}.payment-row small{overflow-wrap:anywhere}
 .admin-business-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}.admin-business-actions .button{width:100%;height:100%}.admin-business-actions form{min-width:0}
 .admin-directory thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 .admin-directory,.admin-directory tbody{display:block;width:100%}
 .admin-directory tr{display:grid;grid-template-columns:1fr 1fr;gap:0 12px;padding:14px 0;border-bottom:1px solid var(--line)}
 .admin-directory td{display:block;white-space:normal;border:0;padding:6px 0;font-size:12px;overflow-wrap:anywhere}
 .admin-directory td:first-child{grid-column:1/-1;font-size:16px}.admin-directory td:first-child a{display:flex;align-items:center;min-height:44px}
 .admin-directory td[data-label]::before{content:attr(data-label);display:block;font-size:10px;color:var(--muted);font-weight:400;margin-bottom:4px}
 .admin-directory td:last-child{justify-self:end}.admin-directory td:last-child a{display:grid;place-items:center;min-height:44px;min-width:44px}
 .table-scroll:has(.admin-directory){overflow:visible}
 .login-layout{padding-top:24px}.login-art{width:125px;height:100px}.login-art img{height:125px}.login-content h1{font-size:38px;margin:12px 0}.login-help p,.login-help small,.login-help .text-link{font-size:12px}
 #credential-dialog{padding:22px 18px}.assistant-shell{border-radius:16px}.chat-controls{align-items:center}.ai-proposal pre{font-size:13px}
 .business-plans .plan{padding:26px}.business-plans .plan .button{width:100%}.business-landing h1{font-size:clamp(36px,9.5vw,54px)}
}
@media(max-width:600px){
 .home-search,.directory-section .search-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:15px}
 .home-search .search-submit,.directory-section .search-submit,.directory-section .search-query{grid-column:1/-1;width:100%}
 .home-search .search-field,.directory-section .search-field{padding-inline:4px}.search-field:nth-child(2){border-right:0}
 .section-heading{flex-wrap:wrap;gap:14px}.section-heading>.text-link{font-size:12px}
 .destination-hero{height:570px;min-height:0}.destination-title{top:90px;left:6%;right:6%}.destination-title h1{font-size:clamp(35px,10vw,56px)}
 .hero-postcard{right:6%;bottom:28px;max-width:80%;transform:rotate(2deg)}
 .home-hotels .hotel-card.large .card-media,.home-hotels .card-media,.hotel-grid .card-media{height:auto;aspect-ratio:4/4.3}
 .dining-photo{height:auto;aspect-ratio:4/3}.home-hotels .hotel-card:nth-child(n){padding-top:0}
 .property-heading{gap:12px}.property-heading h1{font-size:clamp(32px,8.8vw,44px)}
 .property-gallery{height:auto;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:none;grid-auto-rows:auto;gap:8px}
 .property-gallery .gallery-item{aspect-ratio:4/3;grid-row:auto}.property-gallery .gallery-item.main-photo{grid-column:1/-1;aspect-ratio:4/3}
 .property-gallery.single{height:auto;grid-template-columns:1fr;grid-template-rows:auto}
 .article-header h1{font-size:clamp(32px,8.5vw,46px)}.article-body p,.legal-body p,.property-story>p{font-size:15px}
 .film-screen{height:auto;aspect-ratio:16/9;min-height:180px}.film-play{height:150px}.film-heading h2{font-size:32px}
 .footer-invite{flex-wrap:wrap;gap:20px}.footer-invite h2{max-width:none}.footer-publish{font-size:13px;max-width:none}.footer-publish>span{height:44px;width:44px}
 .footer-legal{font-size:11px;flex-wrap:wrap;gap:6px;padding-bottom:calc(20px + env(safe-area-inset-bottom))}.footer-legal nav{justify-content:flex-start;gap:16px}
 .toast{bottom:calc(16px + env(safe-area-inset-bottom));font-size:13px}
}
@media(max-width:480px){
 .site-header .wordmark,.site-header .wordmark img{width:145px}.site-header{gap:8px}.header-actions{gap:4px}.visit-counter{gap:4px;font-size:11px}
 .portal-header .brand-logo{width:135px}.portal-label{font-size:9px}.portal-heading .heading-row{align-items:flex-start}
 .metrics{grid-template-columns:1fr;gap:10px}.metrics article{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px}.metrics article>span{min-height:0;font-size:12px}.metrics strong{margin:0;font-size:32px;letter-spacing:-1px}
 .stats-range{flex-wrap:wrap;font-size:12px}.stats-range nav a{font-size:12px;padding:8px 12px}
 .admin-business-actions{grid-template-columns:1fr}.form-actions>.button,.payment-row .form-actions{width:100%}
 .business-landing .business-ctas>.button{width:100%}.plan-grid{grid-template-columns:1fr}
}
@media(hover:none){.button:hover,.hero-postcard:hover,.save-button:hover{transform:none}.hotel-card:hover img,.dining-card:hover img,.adventure-card:hover>img,.birds-photos:hover img{transform:none}}
@media(prefers-reduced-motion:reduce){.chat-log{scroll-behavior:auto}}

@media(max-width:480px){
 .discovery-bar .home-search,.directory-section .search-form{grid-template-columns:minmax(0,1fr);gap:12px}
 .home-search .search-field,.directory-section .search-field{border-right:0;border-bottom:1px solid var(--line);padding:0 0 8px}
 .search-field label{min-height:0;margin-bottom:4px;font-size:10px}.search-field select,.search-field input{padding-right:6px}
 .directory-section .search-query{border-top:0;padding-top:0}
}

