/* Talk to Matt (2026-10-21, from TTM-2026-10-18): one header action on every page. A native details element: works with no script,
   keyboard and screen reader friendly. The summary takes the page's own button classes; this file only adds the panel. */
.ttm{position:relative;display:inline-block}
.ttm>summary{list-style:none;cursor:pointer;user-select:none}
.ttm>summary::-webkit-details-marker{display:none}
.ttm-menu{position:absolute;right:0;top:calc(100% + 8px);z-index:60;min-width:250px;margin:0;padding:6px;list-style:none;
  background:#fff;color:#20242a;border:1px solid rgba(0,0,0,.14);border-radius:8px;box-shadow:0 10px 30px rgba(0,0,0,.14)}
.ttm-menu li{margin:0}
.ttm-menu a{display:flex;flex-direction:column;align-items:flex-start;gap:2px;white-space:nowrap;min-height:44px;padding:10px 12px;border-radius:6px;color:inherit;text-decoration:none;font-weight:600;font-size:15px;line-height:1.2}
.ttm-menu a small{display:block;font-weight:400;font-size:13px;opacity:.72}
.ttm-menu a:hover,.ttm-menu a:focus-visible{background:rgba(0,0,0,.06);outline:none}
.ttm-menu a:focus-visible{box-shadow:inset 0 0 0 2px currentColor}
.ttm-menu .ttm-who{padding:6px 12px 8px;font-size:13px;line-height:1.35;opacity:.75;border-top:1px solid rgba(0,0,0,.08);margin-top:4px}
@media (max-width:420px){.ttm-menu{right:-8px;min-width:0;width:min(280px,calc(100vw - 24px))}}
@media print{.ttm-menu{display:none}}


.nav .nav-links a[href$="/local/"]{display:none} /* www homepage: a Netlify snippet script appends a Local link to the bar; Local moved to the footer 2026-10-21 */
.ttm>summary:focus-visible{outline:none;box-shadow:0 0 0 2px #fff,0 0 0 4px #20242a}
/* 2026-10-22: Talk to Matt shows at every width (Matt's decision 2026-10-18). Its menu carries Call, so on phones it takes the place
   of the separate Call link. Homepage bar on phones: Menu becomes the three line icon (its text stays the accessible name; the icon
   is a mask in the text color, so it reads on the dark top bar and the light scrolled bar), the gap tightens and the brand steps down,
   both lines at the same size, never below the smallest license type on the page (12px). */
@media(max-width:1180px){.msr-sitenav .ttm>summary.msr-sitenav-cta{display:inline-flex;align-items:center}}
@media(max-width:640px){.nav .ttm>summary.navcta{display:inline-flex!important;align-items:center;min-height:40px}.msr-sitenav .msr-sitenav-tel{display:none}.nav .nav-tel{display:none!important}
  .nav .nav-in{column-gap:4px}.nav .mark b,.nav .mark span{font-size:13px!important}
  .nav #navtoggle{font-size:0!important;width:44px;min-width:44px;padding:0!important;justify-content:center}
  .nav #navtoggle::before{content:"";display:block;width:20px;height:20px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M4 7h16M4 12h16M4 17h16'/%3E%3C/svg%3E") center/20px 20px no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M4 7h16M4 12h16M4 17h16'/%3E%3C/svg%3E") center/20px 20px no-repeat}}
@media(max-width:430px){.msr-sitenav .ttm>summary.msr-sitenav-cta{padding:0 10px;font-size:.84rem}.nav .ttm>summary.navcta{padding:0 8px!important;font-size:13px!important}.nav .mark b,.nav .mark span{font-size:12.5px!important}}
@media(max-width:359px){.nav .mark b,.nav .mark span{font-size:12px!important}}
@media(forced-colors:active){.nav #navtoggle::before{background:ButtonText}}
/* Focus ring on Talk to Matt in every bar state (the dark homepage bar's own box-shadow rule would otherwise win). */
.nav .ttm>summary.navcta:focus-visible,.msr-sitenav .ttm>summary.msr-sitenav-cta:focus-visible{outline:none!important;box-shadow:0 0 0 2px #fff,0 0 0 4px #20242a!important}
/* Town page bar on phones: Menu becomes the same three line icon (its text stays the accessible name), so the brand keeps its room. */
@media(max-width:640px){.msr-sitenav #msr-sitenav-toggle{font-size:0!important;width:44px;min-width:44px;padding:0!important;justify-content:center}
  .msr-sitenav #msr-sitenav-toggle::before{content:"";display:block;width:20px;height:20px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M4 7h16M4 12h16M4 17h16'/%3E%3C/svg%3E") center/20px 20px no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M4 7h16M4 12h16M4 17h16'/%3E%3C/svg%3E") center/20px 20px no-repeat}}
@media(forced-colors:active){.msr-sitenav #msr-sitenav-toggle::before{background:ButtonText}.ttm>summary{border:1px solid ButtonText}}
@media print{.nav .ttm,.msr-sitenav .ttm{display:none!important}}
/* www host only: a header layer added on www (style#msr-home-nav-align, 2026-09-28) adds its own Call link and brand sizes after this file.
   On phones Talk to Matt carries Call, so that extra link hides, and the brand sizes above win (html prefix outranks the later rule). */
@media(max-width:640px){html .nav a.msr-navcall{display:none!important}html .nav .nav-in{gap:4px!important}html .nav .mark b,html .nav .mark span{font-size:13px!important}}
@media(max-width:430px){html .nav .mark b,html .nav .mark span{font-size:12.5px!important}}
@media(max-width:359px){html .nav .mark b,html .nav .mark span{font-size:12px!important}}
/* Menu icon shows an X while its menu is open, so the open state is visible as well as announced. */
@media(max-width:640px){.nav #navtoggle[aria-expanded="true"]::before,.msr-sitenav #msr-sitenav-toggle[aria-expanded="true"]::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M6 6l12 12M18 6L6 18'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M6 6l12 12M18 6L6 18'/%3E%3C/svg%3E")}}
/* Town page bar on phones: with Menu as an icon the brand can use the free width, so team and broker each stay on one line from 375px up (both lines always the same size). */
@media(max-width:640px){html .msr-sitenav .msr-sitenav-mark{max-width:none;flex:1 1 auto;min-width:0}}
@media(max-width:413px){html .msr-sitenav .msr-sitenav-in{gap:6px}html .msr-sitenav .ttm>summary.msr-sitenav-cta{padding:0 8px}html .msr-sitenav .msr-sitenav-mark b,html .msr-sitenav .msr-sitenav-mark span{font-size:.78rem}}
@media(max-width:389px){html .msr-sitenav .ttm>summary.msr-sitenav-cta{padding:0 7px}html .msr-sitenav .msr-sitenav-mark b,html .msr-sitenav .msr-sitenav-mark span{font-size:12px}}
