/* v32: directory layouts adapt to the available space; desktop >=1101px is unchanged.
   Horizontal scrolling is limited to explicit photo/category rails and map canvases. */
@media (max-width:1100px) {
  .professional-search-heading {grid-template-columns:minmax(0,1fr);gap:18px;}
  .professional-search-heading .page-heading {min-width:0;}
  .professional-directory-layout {display:block;}
  .professional-result-toolbar .filter-toggle {display:inline-flex;min-height:44px;}
  .professional-filters:not(.visible) {display:none;}
  .professional-filters.visible {
    display:block;position:fixed;inset:var(--header-height,72px) 0 0;z-index:70;
    width:auto;max-width:none;max-height:calc(100dvh - var(--header-height,72px));
    overflow-y:auto;overscroll-behavior:contain;background:#fff;border:0;border-radius:0;
    padding:20px max(20px,env(safe-area-inset-right)) calc(20px + env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left));
    box-shadow:0 0 0 100vmax #1f1f5426;
  }
  .professional-filters .filter-panel-header {
    display:flex;position:sticky;top:-20px;z-index:3;align-items:center;justify-content:space-between;
    gap:12px;margin-bottom:12px;padding:8px 0;background:#fff;
  }
  .professional-filters .filter-panel-header h2 {font-size:21px;margin:0;}
  .professional-filters .filter-panel-header button {min-width:44px;min-height:44px;}
  .professional-filters .filter-panel-footer {
    display:block;position:sticky;bottom:calc(-20px - env(safe-area-inset-bottom));z-index:3;
    padding:14px 0 calc(14px + env(safe-area-inset-bottom));background:#fff;
  }
  .professional-filters .filter-panel-footer .btn {width:100%;min-height:48px;}
  .professional-filters .apply-filters {display:none;}
  .professional-filters .professional-app-prompt {display:none;}
  .professional-filter-families {max-height:none;overflow:visible;padding-right:0;}
  .professional-filters .filter-group>summary,
  .professional-filter-family>summary,
  .professional-filter-family>label,
  .professional-special-filters>label {min-height:44px;}
  .professional-filters .filter-group>input:not([type=hidden]),
  .professional-sort select,
  .land-filter-form input:not([type=checkbox]):not([type=radio]):not([type=hidden]),
  .land-filter-form select,
  .land-result-controls select {font-size:16px;}
  .professional-filter-family>label>span,
  .professional-special-filters>label>span {min-width:0;overflow-wrap:anywhere;}
  .professional-special-filters>label {font-size:14px;}
  .professional-filter-family>label {font-size:14px;}
  .professional-filter-family>label>small {flex:none;}
  .professional-results .active-filters,
  .business-card-actions {flex-wrap:wrap;}
  .professional-results .filter-chip {min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere;}
  .professional-results .filter-chip>span {flex:none;}
  .business-list>.business-card {grid-template-columns:minmax(0,.7fr) minmax(0,1fr);}
  .business-card-meta,.business-budget,.business-location {min-width:0;overflow-wrap:anywhere;}
  .business-card-media>.save-btn,
  .business-related-grid .business-card-media>.save-btn {width:44px;height:44px;min-width:44px;min-height:44px;}
  .business-contact-action,
  .business-related-grid .business-contact-action,
  .professional-team-shortcut {min-height:44px;}
  .business-profile-layout {grid-template-columns:minmax(0,1fr) 280px;gap:24px;}
  .business-facts>div {grid-template-columns:minmax(100px,.6fr) minmax(0,1fr);gap:14px;}
  .business-facts p,.business-contact-details a,.business-contact-status li,
  .business-profile-section p {overflow-wrap:anywhere;}
  .business-services {grid-template-columns:minmax(0,1fr);}
  .business-profile-tabs {max-width:100%;overscroll-behavior-x:contain;}
  .business-photo-actions {flex-wrap:wrap;max-width:calc(100% - 28px);}
  .business-photo-actions .save-btn {width:44px;height:44px;min-width:44px;}
  .business-photo-actions>button:not(.save-btn) {min-height:44px;white-space:normal;}
  .business-photo-expand {max-width:calc(100% - 28px);min-height:44px;}
  .business-related-grid {grid-template-columns:repeat(2,minmax(0,1fr));}
  .business-review-overview {flex-wrap:wrap;}
  .business-review-overview>p {border-left:0;padding-left:0;}
  .pro-feature-copy,.pro-preview-copy,.pro-section-heading>div,.pro-team-intro {min-width:0;}
  .pro-preview h3 {white-space:normal;overflow-wrap:anywhere;}
  .pro-preview-rating {flex-wrap:wrap;gap:4px 7px;}
  .pro-preview-location {white-space:normal;overflow-wrap:anywhere;}
  .pro-rail-arrow.previous {left:0;}
  .pro-rail-arrow.next {right:0;}
  .pro-all-trades>a {min-width:0;overflow-wrap:anywhere;}
  .pro-team-tiles {max-width:100%;min-width:0;}
  .pro-team-tile li a {min-width:0;overflow-wrap:anywhere;}
  .pro-team-tile li button {width:44px;height:44px;min-width:44px;}
  .pro-team-pick,.pro-team-tools button,.pro-team-close {min-height:44px;}
  .pro-team-empty {min-width:0;}

  /* The terrain filters remain a native accordion: collapsed on compact screens,
     always open again on desktop through the matching media-change handler. */
  .land-results-layout {grid-template-columns:minmax(0,1fr);gap:22px;}
  .land-result-main,.land-detail-main,.land-detail-title>div {min-width:0;}
  .land-filters>summary {pointer-events:auto;cursor:pointer;min-height:48px;padding:14px 18px;}
  .land-filters>summary>span {display:block;flex:none;}
  .land-filters>summary::-webkit-details-marker {display:none;}
  .land-filters[open]>summary {border-bottom:1px solid var(--line);}
  .land-filter-form {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;}
  .land-filter-group {min-width:0;}
  .land-filter-group>summary {min-height:44px;display:flex;align-items:center;margin-bottom:8px;}
  .land-filter-group>summary:after {top:12px;}
  .land-check {min-height:44px;align-items:center;font-size:14px;margin:4px 0;}
  .land-check input {height:18px;width:18px;margin:0;}
  .land-reset {display:flex;align-items:center;justify-content:center;min-height:44px;}
  .land-listing-row {grid-template-columns:minmax(0,.7fr) minmax(0,1fr);}
  .land-listing-row .land-listing-bottom {flex-wrap:wrap;}
  .land-listing-row .land-card-action {white-space:normal;text-align:center;min-height:44px;}
  .land-listing-cover>.save-btn,.land-detail-title>.save-btn,.land-seller-favorite .save-btn {width:44px;height:44px;min-width:44px;min-height:44px;}
  .land-listing-cover>.save-btn .heart,.land-seller-favorite .heart {width:20px;height:20px;}
  .land-filter-chip,.land-view-switch a,.land-pagination a {min-height:44px;}
  .land-pagination a {min-width:44px;}
  .land-pagination {flex-wrap:wrap;}
  .land-section-heading>.land-text-link {flex-shrink:1;}
  .land-detail-title h1,.land-listing h3,.land-detail-facts dd {overflow-wrap:anywhere;}
  .land-detail-facts>div {min-width:0;}
  .land-detail-nav {min-width:0;max-width:100%;overscroll-behavior-x:contain;}
  .land-detail-nav a {display:inline-flex;align-items:center;min-height:44px;}
  .land-gallery-thumbs {max-width:100%;overscroll-behavior-x:contain;}
  .land-carousel-arrow {width:44px;height:44px;}
  .land-carousel-arrow.previous {left:0;}
  .land-carousel-arrow.next {right:0;}

  /* Leaflet's popup width is also bounded in JS using the actual canvas. */
  .pro-map-section {min-width:0;max-width:100%;}
  .pro-map-toolbar>div,.pro-map-popup article>div {min-width:0;}
  .pro-map-toolbar,.pro-map-meta {flex-wrap:wrap;}
  .pro-map-toolbar strong,.pro-map-meta,.pro-map-popup strong,.pro-map-places {overflow-wrap:anywhere;}
  .pro-map-actions {max-width:calc(100% - 24px);flex-wrap:wrap;}
  .pro-map-actions button,.pro-map-list-link {min-height:44px;}
  .pro-map-stage {height:62vh;height:62dvh;min-height:min(380px,62dvh);}
  .pro-map-section .leaflet-popup-content {max-width:calc(100vw - 116px);overflow-wrap:anywhere;}
  .pro-map-popup article {gap:9px;}
  .pro-map-popup-links {flex-wrap:wrap;gap:4px 12px;}
  .pro-map-popup-links a,.pro-map-popup-links button {display:inline-flex;align-items:center;min-height:44px;}
  .pro-map-section .leaflet-control-zoom a {width:44px;height:44px;line-height:44px;}
  .pro-map-section .leaflet-container a.leaflet-popup-close-button {width:44px;height:44px;line-height:42px;}
  .pro-map-section .pro-map-marker {min-height:44px;}
  .pro-map-popup-place {padding-right:30px;}
  .pro-map-accessible summary {min-height:44px;align-content:center;}
  .pro-map-places button,.pro-map-places a {display:inline-flex;align-items:center;min-height:44px;}
  .pro-map-places button {flex-wrap:wrap;max-width:100%;}
  .pro-map-section.is-expanded {
    inset:max(8px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));
    max-height:calc(100dvh - 16px);width:auto;
  }
  .pro-map-section.is-expanded .pro-map-stage {min-height:140px;}
  .pro-map-section.is-expanded .pro-map-toolbar,
  .pro-map-section.is-expanded .pro-map-accessible {flex-shrink:0;}

  dialog:has(.pro-contact-content),dialog:has(.pro-team-customize),
  dialog:has(.pro-team-picker),dialog:has(.pro-contact-example) {
    max-width:calc(100% - 24px);max-height:calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
    overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;
  }
  .pro-contact-field input,.pro-contact-field textarea,.pro-team-picker-search input,
  .pro-contact-copy-fallback {font-size:16px;max-width:100%;}
  .pro-contact-content .btn,.pro-team-customize .btn {white-space:normal;max-width:100%;}
  .pro-contact-retain,.pro-team-checkboxes label {min-height:44px;}
  .pro-contact-forget,.pro-contact-mail,.pro-contact-coordinates-head button {min-height:44px;}
  .pro-team-picker-list strong,.pro-team-picker-list small {overflow-wrap:anywhere;}
}

@media (max-width:850px) {
  .pro-pocket-promo {grid-template-columns:minmax(0,1fr);min-height:0;}
  .pro-pocket-copy {padding:32px 26px 0;max-width:none;min-width:0;}
  .pro-pocket-copy h2 {font-size:29px;max-width:500px;}
  .pro-pocket-copy>p {max-width:520px;}
  .pro-pocket-qr {display:none;}
  .pro-pocket-mobile-link {display:inline-flex;min-height:44px;}
  .pro-pocket-visual {height:300px;width:min(100%,450px);justify-self:center;}
  .pro-pocket-phone {left:15%;top:27px;width:197px;height:366px;border-width:6px;border-radius:28px;}
  .pro-pocket-brand {font-size:23px;gap:8px;height:212px;}
  .pro-pocket-brand img {width:21px;height:30px;}
  .pro-pocket-memory {right:10%;top:73px;width:177px;height:257px;border-radius:14px;}
  .pro-pocket-hearts {top:40px;right:11%;transform:scale(.76);transform-origin:top right;}
  .pro-feature {display:flex;flex-direction:column;min-height:0;align-items:stretch;}
  .pro-feature>figure {width:100%;height:260px;margin:0;}
  .pro-feature-copy {position:relative;max-width:none;width:calc(100% - 32px);margin:-28px 16px 0;padding:24px;}
  .business-profile-layout {display:flex;flex-direction:column;gap:0;}
  .business-profile-main,.business-profile-aside {width:100%;min-width:0;}
  .business-profile-aside {position:static;order:-1;padding-bottom:24px;}
  .business-facts>div {grid-template-columns:minmax(0,1fr);gap:5px;}
  .business-related-grid {grid-template-columns:repeat(3,minmax(210px,1fr));overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;padding-bottom:8px;}
  .business-related-grid>.business-card {scroll-snap-align:start;}
  .business-list>.business-card {display:flex;flex-direction:column;}
  .business-list .business-card-copy {padding:18px 20px 14px;}
  .business-card-actions {gap:10px 18px;}
  .land-listing-row .land-listing-bottom {flex-direction:column;align-items:flex-start;}
  .land-listing-row .land-source-line {max-width:100%;}
}

@media (max-width:800px) {
  .professional-result-toolbar {display:grid;grid-template-columns:minmax(0,1fr) auto;}
  .professional-result-toolbar>.professional-sort {grid-column:1/-1;grid-row:3;justify-self:stretch;min-width:0;}
  .professional-result-toolbar>.professional-sort select {width:100%;max-width:none;font-size:16px;}
  .professional-result-toolbar .view-switch {grid-column:1/-1;grid-row:2;gap:16px;flex-wrap:wrap;}
  .professional-result-toolbar .view-switch button {min-height:44px;font-size:13px;}
  .business-profile {padding-bottom:calc(92px + env(safe-area-inset-bottom));}
  .business-profile .mobile-contact-bar {
    display:flex;position:fixed;inset:auto 0 0;z-index:50;gap:10px;align-items:center;
    padding:10px max(16px,env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));
    background:#fff;border-top:1px solid var(--line);box-shadow:0 -3px 18px #1f1f5417;
  }
  .business-profile .mobile-contact-bar>.btn {flex:1;min-width:0;min-height:48px;white-space:normal;}
  .business-profile .mobile-contact-bar>.save-btn {width:48px;height:48px;min-width:48px;min-height:48px;}
}

@media (max-width:600px) {
  .land-filter-form {display:block;}
  .land-results-toolbar {align-items:stretch;flex-direction:column;gap:12px;}
  .land-results-toolbar>p {max-width:none;font-size:14px;}
  .land-result-controls {width:100%;min-width:0;}
  .land-result-controls select {width:100%;max-width:none;min-height:44px;}
  .land-view-bar {align-items:flex-start;flex-direction:column;gap:6px;}
  .land-view-bar>span {max-width:none;text-align:left;font-size:11px;}
  .land-view-switch a {font-size:13px;}
  .land-listing-row {display:block;}
  .land-listing h3 {font-size:16px;}
  .land-listing-row h3 {font-size:18px;}
  .land-specs dt,.land-listing-row .land-specs dt {font-size:11px;}
  .land-specs dd,.land-listing-row .land-specs dd {font-size:15px;}
  .land-location,.land-attributes li,.land-source-line {font-size:11px;}
  .land-listing-row .land-source-line {font-size:11px;}
  .land-card-action {display:inline-flex;align-items:center;min-height:44px;font-size:13px;}
  .land-listing-row .land-listing-bottom {flex-direction:row;align-items:center;}
  .land-listing-row .land-listing-bottom .land-source-line {max-width:none;flex:1 1 160px;}
  .land-listing-row .land-listing-bottom .land-card-action {flex:1 1 140px;justify-content:center;}
  .land-detail-title {gap:12px;}
  .land-detail-title>.save-btn {margin-top:7px;}
  .land-detail-title h1 {font-size:clamp(25px,6.3vw,29px);}
  .land-detail-facts {grid-template-columns:repeat(2,minmax(0,1fr));}
  .land-document-link {min-width:0;flex-wrap:wrap;}
  .land-document-link>span {min-width:0;flex:1 1 110px;overflow-wrap:anywhere;}
  .land-detail-nav a {font-size:13px;}
  .land-mobile-cta {grid-template-columns:minmax(0,1fr);}
  .land-mobile-cta>div {flex-direction:row;align-items:baseline;flex-wrap:wrap;gap:8px 16px;}
  .land-mobile-cta .land-button {width:100%;min-height:48px;font-size:13px;}
  .land-mobile-cta>small {grid-column:auto;text-align:left;font-size:11px;}
  .land-detail-section p,.land-questions {font-size:14px;}
  .land-detail-section .land-source-note,.land-source-details p {font-size:12px;}
  .land-source-documents h2 {font-size:18px;}
  .land-style-filters a {min-height:44px;}
  .land-section-heading>.land-text-link {min-height:44px;}
  .land-detail-main>.land-text-link {min-height:44px;}
  .professional-hub .pro-section-heading>.text-link {min-height:44px;}
  .pro-role-directory a {display:inline-flex;align-items:center;min-height:44px;}
  .pro-all-trades>a {font-size:12px;}
  .pro-map-toolbar {flex-direction:column;align-items:stretch;gap:10px;}
  .pro-map-list-link {align-self:flex-start;display:inline-flex;align-items:center;font-size:12px;}
  .pro-map-toolbar strong {font-size:15px;}
  .pro-map-toolbar span {font-size:11px;}
  .pro-map-actions {left:10px;right:10px;top:10px;max-width:none;}
  .pro-map-actions button {padding:8px 12px;font-size:12px;}
  .pro-map-actions button:first-child {margin-right:auto;}
  .pro-map-places {grid-template-columns:minmax(0,1fr);gap:14px;}
  .pro-map-section.is-expanded .pro-map-toolbar {flex-direction:row;align-items:center;flex-wrap:nowrap;}
  .pro-map-section.is-expanded .pro-map-toolbar>div {flex:1;}
  .pro-map-section.is-expanded .pro-map-list-link {white-space:normal;max-width:120px;}
  .pro-map-section.is-expanded .pro-map-meta {max-height:90px;overflow:auto;}
  .pro-map-section.is-expanded .pro-map-accessible {max-height:25dvh;}
  .pro-team-picker-list>button {display:grid;grid-template-columns:31px minmax(0,1fr);gap:8px 12px;}
  .pro-team-picker-state {grid-column:2;font-size:12px;}
  .pro-team-picker-list strong {font-size:13px;}
  .pro-team-picker-list small {font-size:12px;}
  .pro-team-checkboxes {grid-template-columns:minmax(0,1fr);}
  .pro-contact-fields {grid-template-columns:minmax(0,1fr);}
  .pro-contact-fields .full {grid-column:auto;}
  .pro-contact-recipient {position:static;white-space:normal;overflow:visible;max-width:100%;overflow-wrap:anywhere;font-size:12px;margin:0 0 12px;}
  dialog:has(.pro-contact-content)>.modal-heading {padding-top:0;}
  .pro-contact-actions .btn {font-size:13px;}
}

@media (max-width:520px) {
  .business-photo-grid {grid-template-columns:minmax(0,1fr);gap:22px;}
  .business-photo-grid .business-card-media {height:auto;aspect-ratio:3/2;}
  .business-photo-grid .business-card-copy {padding:17px 18px;}
  .business-photo-grid .business-card h3 {font-size:19px;}
  .business-photo-grid .business-location,.business-photo-grid .business-review-status,
  .business-photo-grid .business-budget {font-size:12px;}
  .business-photo-grid .business-contact-action {font-size:14px;}
  .business-photo-grid .business-photo-credit {font-size:10px;}
  .land-photos-grid,.land-hub .land-style-selection .land-card-grid {grid-template-columns:minmax(0,1fr);}
  .land-photos-grid .land-photo,.land-photos-grid .land-parcel-summary,
  .land-hub .land-style-selection .land-photo,.land-hub .land-style-selection .land-parcel-summary {height:auto;aspect-ratio:3/2;}
  .land-photos-grid .land-media-caption {font-size:10px;left:10px;bottom:10px;padding:4px 7px;}
  .pro-team-head {grid-template-columns:66px minmax(0,1fr);}
  .pro-team-intro .btn {width:100%;white-space:normal;}
  .pro-contact-coordinates-head {flex-wrap:wrap;gap:6px 12px;}
}

@media (max-width:380px) {
  .pro-all-trades {grid-template-columns:minmax(0,1fr);}
  .pro-role-directory {column-count:1;}
  .land-category-grid {grid-template-columns:minmax(0,1fr);}
  .land-detail-facts {grid-template-columns:minmax(0,1fr);}
  .land-hub .land-manifest-copy,.pro-feature-copy {width:calc(100% - 16px);margin-left:8px;margin-right:8px;padding:20px;}
  .business-photo-actions>button:not(.save-btn) {font-size:11px;padding:8px 10px;}
}

@media (max-width:1100px) and (max-height:500px) {
  .pro-map-section.is-expanded {overflow-y:auto;}
  .pro-map-section.is-expanded .pro-map-toolbar {padding:8px 12px;}
  .pro-map-section.is-expanded .pro-map-stage {min-height:100px;}
  .pro-map-section.is-expanded .pro-map-meta {max-height:58px;overflow:auto;padding:6px 12px;}
  .pro-map-section.is-expanded .pro-map-accessible {max-height:96px;overflow:auto;padding:8px 12px;}
}
