/* Sun & Sage mobile-only refinements. Desktop rules are intentionally untouched. */
@media (max-width:800px){
  html,body{width:100%;max-width:100%;overflow-x:clip}
  body.v58-menu-open{overflow:hidden}
  body *{box-sizing:border-box;min-width:0}
  main,section,article,header,footer,form,fieldset,nav,div,figure{min-width:0;max-width:100%}
  img,video,iframe,embed,object,svg,canvas{max-width:100%;height:auto}
  iframe,embed,object,.hs-form-frame,.hs-form-frame iframe{width:100%!important;min-width:0!important}
  h1,h2,h3,p,blockquote,a,button,label,span{max-width:100%;overflow-wrap:anywhere}
  h1{font-size:clamp(34px,12vw,54px)!important;line-height:1!important;white-space:normal!important}
  h2{font-size:clamp(28px,9.5vw,44px)!important;line-height:1.08!important;white-space:normal!important}
  h3{white-space:normal!important}
  pre,code{max-width:100%;white-space:pre-wrap;overflow-wrap:anywhere}
  table{display:table;width:100%!important;max-width:100%!important;table-layout:fixed;font-size:clamp(8px,2.5vw,12px)}
  th,td{min-width:0!important;padding:6px 4px!important;overflow-wrap:anywhere}

  /* Phone header and familiar hamburger control. */
  .brandRow{position:relative;z-index:10002}
  .menuButton{width:46px;height:46px;padding:11px!important;border:1px solid #174c5255!important;border-radius:50%;background:#fff!important;display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:5px;font-size:0!important;z-index:10004}
  .menuButton span{display:block;width:22px;height:2px;background:#6B5945;border-radius:4px;transition:.25s}
  body.v58-menu-open .menuButton span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  body.v58-menu-open .menuButton span:nth-child(2){opacity:0}
  body.v58-menu-open .menuButton span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .mobileNavTree{display:flex!important;position:fixed!important;z-index:10003!important;inset:0 auto 0 0!important;top:0!important;width:min(88vw,370px)!important;height:100dvh!important;max-height:none!important;padding:88px 18px 34px!important;overflow-y:auto!important;overscroll-behavior:contain;background:#fffaf3!important;background-color:#fffaf3!important;color:#6B5945!important;opacity:1!important;filter:none!important;mix-blend-mode:normal!important;isolation:isolate;box-shadow:18px 0 55px #071b1e2e!important;transform:translateX(-105%);transition:transform .32s ease!important;flex-direction:column!important}
  .mobileNavTree.open,body.v58-menu-open .mobileNavTree{transform:translateX(0)}
  .mobileNavTree>a,.mobileNavTree>details>summary{width:100%!important;min-height:52px!important;height:auto!important;border:0!important;border-bottom:1px solid #c9c1b5!important;padding:14px 8px!important;background:transparent!important;color:#6B5945!important}
  .mobileNavTree .drop{position:static!important;width:100%!important;max-height:none!important;box-shadow:none!important;background:#fffaf3!important}
  .v58-menu-close{position:absolute;z-index:2;top:18px;right:18px;width:46px;height:46px;border:1px solid #174c5255;border-radius:50%;background:#fff;color:#6B5945;font:300 31px/1 Arial,sans-serif;display:grid;place-items:center;cursor:pointer}
  .v58-menu-title{position:absolute;top:32px;left:26px;color:#6B5945;font:700 11px/1 Arial,sans-serif;letter-spacing:.17em;text-transform:uppercase}
  .v58-menu-backdrop{position:fixed;z-index:10001;top:0;right:0;bottom:0;left:min(88vw,370px);background:#173f431f;opacity:0;pointer-events:none;transition:.25s}
  body.v58-menu-open .v58-menu-backdrop{opacity:1;pointer-events:auto}

  /* Hero video: show the subject and keep every title inside the viewport. */
  .videoHero{width:100%;height:calc(100svh - 92px)!important;min-height:540px!important;max-height:850px;overflow:hidden}
  .videoHero>video{width:100%!important;height:100%!important;object-fit:cover!important;object-position:42% center!important}
  .videoHeroTitle{left:16px!important;right:16px!important;width:auto!important;inset-inline:16px!important}
  .videoHeroTitle p{font-size:clamp(8px,2.35vw,10px)!important;letter-spacing:.13em!important}
  .videoHeroTitle h1{white-space:normal!important;font-size:clamp(30px,10.2vw,44px)!important;line-height:.94!important;letter-spacing:-.045em!important}

  /* Inputs, search tools and city choices always stay inside the phone. */
  .searchBar,.searchHubBar,.searchForm,.heroSearch form,.regionRequestForm,.contactPageForm{width:100%!important;max-width:100%!important;grid-template-columns:1fr!important;gap:14px!important}
  .searchBar label,.searchHubBar label,.searchForm label,.heroSearch label,.regionRequestForm label{width:100%!important;max-width:100%!important}
  input,select,textarea,.cityPicker,.cityPickerButton,.searchBar button,.searchHubBar button,.searchForm button{box-sizing:border-box;width:100%!important;max-width:100%!important;min-width:0!important}
  .cityPickerPanel{position:static!important;inset:auto!important;width:100%!important;max-width:100%!important;max-height:none!important;overflow:visible!important;margin-top:12px!important;padding:12px!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important;box-shadow:0 14px 34px #0003!important}
  .cityGroup button{padding:7px 4px!important;font-size:12px!important;line-height:1.25!important}

  /* Cards and testimonials can breathe without horizontal clipping. */
  .reviewCards,.reviewCardsFull,.reviewTrack,.reviewsHome,.reviewSalon{width:100%!important;max-width:100%!important}
  .reviewCard,.reviewSlide{box-sizing:border-box;width:100%!important;max-width:100%!important;min-width:0!important;padding:28px 22px!important}
  .reviewCard blockquote,.reviewSlide blockquote{font-size:clamp(18px,5.4vw,24px)!important;line-height:1.45!important;overflow-wrap:anywhere}

  /* Reviews page: remove the dead gap and explain the interaction. */
  .refPage .refIntro{padding-bottom:24px!important;margin-bottom:0!important}
  .reviewGallery{padding-top:24px!important}
  .v58-review-hint{margin:0 auto 16px;padding:12px 16px;width:min(92%,520px);background:#6B5945;color:#fff;text-align:center;font:700 11px/1.5 Arial,sans-serif;letter-spacing:.09em;text-transform:uppercase}
  .reviewNames{gap:6px!important;margin-top:0!important;padding-top:0!important}

  /* Contact page: one calm column instead of two compressed columns. */
  .contactSplit{display:grid!important;grid-template-columns:1fr!important;gap:46px!important;padding:54px 22px 68px!important}
  .contactSplit>div,.contactSplit form{width:100%!important;max-width:100%!important}
  .contactSplit form{border-left:0!important;border-top:1px solid #6a7375!important;padding:38px 0 0!important}
  .contactLine{grid-template-columns:30px minmax(0,1fr)!important;gap:14px!important}
  .contactFormModal{box-sizing:border-box;width:calc(100% - 20px)!important;max-width:calc(100% - 20px)!important;max-height:92dvh!important;margin:auto!important}
  .contactFormModalInner{grid-template-columns:1fr!important;width:100%!important}
  .contactFormModalIntro,.contactFormModalBody{padding:36px 20px!important}

  /* Valley pages: simple chooser plus immediate, on-screen city details. */
  .cityIndex{padding:18px 14px!important;gap:7px!important}
  .cityIndex a{flex:1 1 calc(50% - 7px);text-align:center;padding:10px 6px!important;font-size:8px!important}
  .v58-city-hint{flex:1 0 100%;margin:0 0 8px;padding:13px 14px;border:2px solid #B9A88E;background:#6B5945;color:#fff;text-align:center;font:800 11px/1.45 Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase}
  .v58-city-dialog{position:fixed;z-index:11000;inset:0;width:100%;height:100dvh;max-width:none;max-height:none;margin:0;padding:64px 16px 24px;border:0;background:#102f33e8;overflow:auto}
  .v58-city-dialog::backdrop{background:#102f33e8}
  .v58-city-dialog .cityEntry{width:100%;max-width:560px;margin:auto;border:0!important;box-shadow:0 20px 65px #0006}
  .v58-city-close{position:fixed;z-index:2;right:16px;top:14px;width:42px;height:42px;border:1px solid #fff;background:#6B5945;color:#fff;border-radius:50%;font-size:25px;line-height:1;cursor:pointer}

  /* Property-management inspection sheet remains readable. */
  .inspectionFigure{min-height:390px!important;padding:18px!important;align-items:center!important;justify-content:center!important}
  .inspectionSheet{width:96%!important;height:auto!important;min-height:350px!important;margin:0!important;padding:16px 12px!important;transform:none!important;overflow:hidden!important}
  .inspectionSheetRow{grid-template-columns:1.05fr .72fr 1.15fr!important;gap:5px!important;padding:8px 0!important;font-size:8px!important;line-height:1.25!important}
  .inspectionSheetRow>*{min-width:0!important;overflow-wrap:anywhere!important}
  .inspectionSheetRow.inspectionSheetLabels{font-size:7px!important;letter-spacing:.04em!important}
  .inspectionSheetMeta{grid-template-columns:1fr!important;gap:4px!important}

  /* Sell page: remove inherited desktop height and the empty gulf. */
  .servicePanels{grid-template-columns:1fr!important}
  .servicePanels article{min-height:0!important;height:auto!important;padding:52px 22px!important;justify-content:flex-start!important}
  .servicePanels article+article{margin-top:0!important}
  .sellPositioning{margin-top:0!important;padding:56px 18px!important;grid-template-columns:1fr!important;gap:36px!important}
  .sellChartPanel{min-height:0!important;padding:42px 18px!important}

  /* General fallback for any legacy multi-column block not covered above. */
  .formGrid,.fieldGrid,.filterGrid,.searchGrid,.requestGrid{grid-template-columns:1fr!important;width:100%!important}
  [class*="modal"],[class*="Modal"],[class*="popup"],[class*="Popup"]{max-width:calc(100vw - 20px)}

  /* Footer phone confirmation. */
  .v58-dial-prompt{position:fixed;z-index:12000;left:12px;right:12px;bottom:12px;padding:18px;background:#f7f3ec;color:#6B5945;border:1px solid #96856A;box-shadow:0 18px 50px #0007;transform:translateY(calc(100% + 30px));transition:.25s}
  .v58-dial-prompt.open{transform:translateY(0)}
  .v58-dial-prompt p{margin:0 0 13px;font:500 18px/1.35 Georgia,serif}
  .v58-dial-actions{display:grid;grid-template-columns:1fr auto;gap:9px}
  .v58-dial-action,.v58-dial-cancel{display:flex;align-items:center;justify-content:center;min-height:46px;padding:10px 14px;border:0;text-decoration:none;font:700 11px Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase}
  .v58-dial-action{background:#6B5945;color:#fff}.v58-dial-cancel{background:#ded7ca;color:#6B5945}
}

@media (max-width:390px){
  .brand span{font-size:11px!important;letter-spacing:.1em!important}
  .rise img{width:78px!important}
  .videoHeroTitle h1{font-size:clamp(28px,9.5vw,37px)!important}
  .cityIndex a{font-size:7.5px!important}
}
