/* New navigation is deliberately restricted to phones; larger layouts are unchanged. */
.phone-menu-trigger { display:none; }
.phone-menu { display:none; }
@media (max-width:760px) {
  .phone-menu-trigger {
    display:grid;
    place-items:center;
    flex:0 0 32px;
    width:32px;
    height:40px;
    padding:5px;
    border:0;
    background:transparent;
    color:inherit;
  }
  .phone-menu-trigger svg { width:24px; height:24px; }
  .property-header-links { gap:10px; }
  .property-header { gap:8px; }
  .phone-menu {
    --menu-paper:#eef7fb;
    --menu-ink:#173e35;
    --menu-rule:#173e352b;
    position:fixed;
    inset:0;
    margin:0;
    padding:0;
    width:100%;
    max-width:none;
    height:100vh;
    height:100dvh;
    max-height:none;
    border:0;
    border-radius:0;
    background:var(--menu-paper);
    color:var(--menu-ink);
    overflow:hidden;
    overscroll-behavior:contain;
    font-family:Manrope,sans-serif;
    clip-path:inset(0 0 100% 0);
    transition:clip-path 460ms cubic-bezier(.76,0,.24,1);
  }
  .phone-menu[open] { display:flex; flex-direction:column; }
  .phone-menu::backdrop { background:transparent; }
  .phone-menu.is-open { clip-path:inset(0); }
  .phone-menu.is-closing { transition-duration:340ms; }
  .phone-menu-top {
    display:flex;
    align-items:center;
    justify-content:space-between;
    flex:0 0 auto;
    min-height:83px;
    padding:env(safe-area-inset-top,0px) 24px 0;
  }
  .phone-menu-brand { display:block; flex-shrink:0; }
  .phone-menu-brand img {
    display:block;
    width:125px;
    height:auto;
    aspect-ratio:634/160;
    object-fit:cover;
    object-position:center 35.5%;
    filter:none;
  }
  .phone-menu-close {
    position:relative;
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:44px;
    min-width:44px;
    padding:8px 0 8px 10px;
    background:transparent;
    border:0;
    border-radius:0;
    color:inherit;
    font:500 .84rem/1.2 Manrope,sans-serif;
  }
  .phone-menu-close::after {
    content:'';
    position:absolute;
    right:0;
    bottom:9px;
    width:calc(100% - 10px);
    height:1px;
    background:currentColor;
    transform:scaleX(0);
    transform-origin:left;
    transition:transform 180ms ease;
  }
  .phone-menu-close:is(:hover,:focus-visible,:active)::after { transform:scaleX(1); }
  .phone-menu-content {
    display:flex;
    flex-direction:column;
    flex:1;
    min-height:0;
    padding:27px 24px max(24px,env(safe-area-inset-bottom));
    overflow-y:auto;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
  }
  .phone-menu-primary { display:flex; flex-direction:column; flex:0 0 auto; }
  .phone-menu-item {
    position:relative;
    display:block;
    padding:17px 0 19px;
    border-bottom:1px solid var(--menu-rule);
    color:inherit;
    font:400 clamp(1.4rem,5.8vw,2.64rem)/1.13 Manrope,sans-serif;
    letter-spacing:-.045em;
    text-decoration:none;
    overflow:hidden;
    -webkit-tap-highlight-color:transparent;
  }
  .phone-menu-item:first-child { border-top:1px solid var(--menu-rule); }
  .phone-menu-item>span {
    display:block;
    opacity:0;
    transform:translateY(7px);
    transition:opacity 230ms ease,transform 350ms cubic-bezier(.2,.7,.2,1);
  }
  .is-open .phone-menu-item>span {
    opacity:1;
    transform:none;
    transition-delay:calc(100ms + var(--item-index)*45ms);
  }
  /* Keep the text stationary while the panel retracts, as in the reference. */
  .is-closing .phone-menu-item>span { opacity:1; transform:none; transition:none; }
  .phone-menu-item::after,
  .phone-menu-contact-link::after {
    content:'';
    position:absolute;
    right:0;
    bottom:0;
    left:0;
    height:1px;
    background:var(--menu-ink);
    transform:scaleX(0);
    transform-origin:right;
    transition:transform 420ms cubic-bezier(.22,.68,0,1);
  }
  .phone-menu-item:is(:hover,:focus-visible,:active)::after,
  .phone-menu-contact-link:is(:hover,:focus-visible,:active)::after {
    transform:scaleX(1);
    transform-origin:left;
  }
  .phone-menu :focus-visible { outline:2px solid #407a61; outline-offset:3px; }
  .phone-menu-secondary {
    display:flex;
    align-items:flex-start;
    flex-direction:column;
    gap:0;
    flex:0 0 auto;
    margin:35px 0 32px;
    opacity:0;
    transform:translateY(6px);
    transition:opacity 260ms ease,transform 350ms ease;
  }
  .phone-menu-secondary>a,
  .phone-menu-account a {
    display:flex;
    align-items:center;
    justify-content:flex-start;
    min-height:38px;
    padding:8px 0;
    color:inherit;
    font:500 .88rem/1.4 Manrope,sans-serif;
    text-decoration:none;
  }
  .phone-menu-secondary>a:is(:hover,:focus-visible),
  .phone-menu-account a:is(:hover,:focus-visible) { text-decoration:underline; text-underline-offset:5px; }
  .phone-menu .phone-menu-account {
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:0;
    margin:0;
    padding:0;
    border:0;
  }
  .phone-menu .phone-menu-account .nav-signup,
  .phone-menu .phone-menu-account .nav-signup:hover {
    border:0;
    border-radius:0;
    background:transparent;
    color:inherit;
    padding:8px 0;
  }
  .phone-menu-contact {
    margin-top:auto;
    flex:0 0 auto;
    opacity:0;
    transform:translateY(6px);
    transition:opacity 260ms ease,transform 350ms ease;
  }
  .is-open .phone-menu-secondary,
  .is-open .phone-menu-contact { opacity:1; transform:none; transition-delay:360ms; }
  .is-open .phone-menu-contact { transition-delay:400ms; }
  .is-closing .phone-menu-secondary,
  .is-closing .phone-menu-contact { opacity:1; transform:none; transition:none; }
  .phone-menu-contact-link {
    position:relative;
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:16px;
    padding:18px 0 17px;
    border-top:1px solid var(--menu-rule);
    color:inherit;
    font-size:.85rem;
    line-height:1.35;
  }
  .phone-menu-contact-link small { display:block; margin-top:5px; color:#718179; font-size:.7rem; }
  .phone-menu-contact-arrow { display:block; font-size:1rem; line-height:1; }
  @media (max-height:740px) {
    .phone-menu-top { min-height:72px; }
    .phone-menu-content { padding-top:17px; }
    .phone-menu-item { padding-block:14px; }
    .phone-menu-secondary { margin-block:26px; }
  }
  @media (prefers-reduced-motion:reduce) {
    .phone-menu,
    .phone-menu *,
    .phone-menu *::before,
    .phone-menu *::after { transition:none!important; animation:none!important; }
  }
}
