/* Shared navigation: fixed controls around a single scrollable list. */
.navigation-dialog{width:min(500px,100%);height:100vh;height:100dvh;max-height:100vh;max-height:100dvh;overflow:hidden;border-radius:24px 0 0 24px;background:#fff;box-shadow:-20px 0 80px #1537571c}
.navigation-dialog[open]{display:flex;flex-direction:column}
.navigation-dialog::backdrop{background:#17314d66;backdrop-filter:blur(6px)}
.navigation-top{position:relative;flex:0 0 auto;padding:28px 32px 23px;gap:20px;align-items:center;background:white;border-bottom:1px solid #e5edf3}
.navigation-brand{display:inline-block;font-size:.75rem;line-height:1.5;font-weight:600;letter-spacing:.015em;color:#506b81;padding-block:4px}
.navigation-top h2{font-size:2rem;line-height:1.2;font-weight:600;letter-spacing:-.035em;margin-top:6px}
.navigation-close{width:48px;height:48px;min-height:48px;flex:0 0 48px;padding:0;border:1px solid #dce6ee;border-radius:50%;background:#f4f8fb;color:#244b70}
.navigation-close:hover{background:#e5eff7;border-color:#b9d0e3}
.navigation-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#c6d8e7 transparent;padding:8px 24px 20px;scroll-padding-block:12px}
.navigation-links{padding:0;display:grid;gap:2px}
.navigation-links>a{position:relative;min-height:82px;padding:17px 12px;border:0;border-bottom:1px solid #e8eff5;border-radius:0;font-size:1.375rem;font-weight:600;line-height:1.3;letter-spacing:-.025em;gap:14px;transition:background .16s,color .16s}
.navigation-links small{font-size:.875rem;font-weight:400;line-height:1.5;letter-spacing:0;margin-top:6px;color:#536b80}
.navigation-links>a>span:last-child{display:grid;place-items:center;width:32px;height:32px;flex:0 0 32px;border:1px solid #dce7f0;border-radius:50%;font-size:1.125rem;color:#547692;transition:transform .16s}
.navigation-links>a:hover,.navigation-links>a:focus-visible{background:#f3f8fc;border-radius:12px}
.navigation-links>a:hover>span:last-child{transform:translateX(2px)}
.navigation-links>a[data-active=true]{background:#edf5fb;color:#175b99;border-radius:12px;border-bottom-color:transparent}
.navigation-links>a[data-active=true]>span:last-child{background:#fff;border-color:#c6daea;color:#175b99}
.navigation-practices{margin:26px 12px 0}
.navigation-practices h3{font-size:.8125rem;font-weight:600;line-height:1.5;letter-spacing:0;color:#536b80;margin-bottom:12px}
.navigation-cities{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.navigation-cities a{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:48px;padding:12px 14px;border:1px solid #dde8f0;border-radius:10px;background:#f6f9fc;font-size:.9375rem;font-weight:500;line-height:1.5}
.navigation-cities a>span{color:#6b88a0;flex-shrink:0}
.navigation-cities a:hover,.navigation-cities a[aria-current=page]{background:#e9f3fa;border-color:#a8c8de;color:#175b99}
.navigation-home{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;margin:12px 12px 0;font-size:.875rem;line-height:1.5;color:#536b80}
.navigation-home[aria-current=page]{color:#175b99}
.navigation-bottom{flex:0 0 auto;margin:0;padding:18px 32px calc(12px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid #e2ebf3;box-shadow:0 -8px 20px #203f6104}
.navigation-bottom>.button{min-height:52px;justify-content:space-between;padding:14px 20px;font-size:1rem;line-height:1.5;box-shadow:none}
.navigation-help{margin:5px 0 0;padding:10px 4px;min-height:44px;font-size:.875rem;line-height:1.5;color:#536b80}
.navigation-help:hover,.navigation-home:hover{color:#175b99}
.navigation-scroll a:focus-visible{outline-offset:-3px;border-radius:10px}
@media(max-width:1023px){
 .menu-toggle{min-height:46px;padding:10px 15px;gap:11px;border-color:#cddde9;background:#f2f7fb;border-radius:999px;color:#244b70}
 .menu-toggle:hover,.menu-toggle[aria-expanded=true]{background:#e5f0f8;border-color:#adc9dd}
 .menu-label{font-size:.875rem;font-weight:600}
 .menu-icon{gap:5px;width:18px}
 .menu-icon>span{height:2px;border-radius:2px;background:currentColor}
 .menu-icon>span:last-child{width:12px;align-self:flex-end}
}
@media(max-width:500px){
 .navigation-dialog{width:100%;border-radius:0}
 .navigation-top{padding:calc(18px + env(safe-area-inset-top)) 24px 20px}
 .navigation-scroll{padding:6px 12px 16px}
 .navigation-bottom{padding:16px 24px calc(10px + env(safe-area-inset-bottom))}
}
@media(max-width:350px){
 .navigation-top{padding-inline:20px}
 .navigation-links>a{font-size:1.25rem}
 .navigation-cities{grid-template-columns:minmax(0,1fr)}
 .navigation-bottom{padding-inline:20px}
}
@media(max-height:600px){
 .navigation-top{padding-top:calc(10px + env(safe-area-inset-top));padding-bottom:12px}
 .navigation-top h2{font-size:1.5rem;margin-top:2px}
 .navigation-bottom{padding-top:10px;padding-bottom:calc(6px + env(safe-area-inset-bottom))}
}
/* One short reveal: panel first, then the reading order, without layout shifts. */
@media(prefers-reduced-motion:no-preference){
 .navigation-dialog[open]{animation:navigation-enter .48s cubic-bezier(.22,1,.36,1) backwards}
 .navigation-dialog[open]::backdrop{animation:navigation-backdrop .36s ease-out backwards}
 .navigation-dialog[open] .navigation-top>div{animation:navigation-copy-enter .38s cubic-bezier(.22,1,.36,1) .06s backwards}
 .navigation-dialog[open] .navigation-links>a{animation:navigation-copy-enter .38s cubic-bezier(.22,1,.36,1) backwards}
 .navigation-dialog[open] .navigation-links>a:nth-child(1){animation-delay:.08s}
 .navigation-dialog[open] .navigation-links>a:nth-child(2){animation-delay:.12s}
 .navigation-dialog[open] .navigation-links>a:nth-child(3){animation-delay:.16s}
 .navigation-dialog[open] .navigation-links>a:nth-child(4){animation-delay:.20s}
 .navigation-dialog[open] .navigation-practices{animation:navigation-copy-enter .38s cubic-bezier(.22,1,.36,1) .22s backwards}
 .navigation-dialog[open] .navigation-home{animation:navigation-copy-enter .36s cubic-bezier(.22,1,.36,1) .24s backwards}
 .navigation-dialog[open] .navigation-bottom>a{animation:navigation-copy-enter .38s cubic-bezier(.22,1,.36,1) .14s backwards}
 .navigation-dialog[open] .navigation-scroll a:focus-visible,.navigation-dialog[open] .navigation-practices:focus-within,.navigation-dialog[open] .navigation-bottom>a:focus-visible{animation:none}
 @keyframes navigation-enter{from{transform:translate3d(100%,0,0)}to{transform:translate3d(0,0,0)}}
 @keyframes navigation-copy-enter{from{opacity:0;transform:translate3d(0,12px,0)}to{opacity:1;transform:translate3d(0,0,0)}}
 @keyframes navigation-backdrop{from{opacity:0}to{opacity:1}}
}

/* Compact phone dock: two destinations and one clear appointment action. */
@media(max-width:760px){
 body{padding-bottom:calc(88px + env(safe-area-inset-bottom))}
 .mobile-actions{position:fixed;inset:auto 0 0;display:block;z-index:20;padding:8px max(12px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));border:0;background:transparent;box-shadow:none;pointer-events:none}
 .mobile-actions-inner{display:grid;grid-template-columns:1.1fr .85fr 1.25fr;align-items:stretch;gap:4px;max-width:440px;margin-inline:auto;padding:4px;border:1px solid #dae5ee;border-radius:23px;background:#fffffffa;box-shadow:0 4px 24px #183c5b1a,0 1px 4px #183c5b08;pointer-events:auto}
 .mobile-actions-inner>a{min-width:0;min-height:48px;margin:0;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:background .16s,color .16s,transform .16s}
 .mobile-actions .mobile-section-link{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:5px 4px;border-radius:18px;background:transparent;color:#4d647a;font-size:.6875rem;font-weight:600;line-height:1.2;letter-spacing:0;text-decoration:none}
 .mobile-actions svg{display:block;flex-shrink:0;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}
 .mobile-section-link svg{width:21px;height:21px}
 .mobile-actions .mobile-section-link[aria-current]{background:#eaf2f8;color:#175b99}
 .mobile-actions .mobile-section-link:active{background:#eaf2f8;color:#175b99}
 .mobile-booking{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 12px;border:1px solid #1d5587;border-radius:18px;background:#215d91;color:#fff;font-size:.875rem;font-weight:650;line-height:1.3;letter-spacing:-.01em;box-shadow:0 2px 5px #163d5d14;white-space:nowrap}
 .mobile-booking svg{width:19px;height:19px;stroke-width:1.75}
 .mobile-booking:active{background:#164875;transform:scale(.98)}
 .mobile-actions-inner>a:focus-visible{outline:2px solid #175b99;outline-offset:3px}
 .mobile-booking:focus-visible{outline-offset:-5px!important;outline-color:#fff!important}
 @supports ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .mobile-actions-inner{background:#fffffff0;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}
 }
}
@media(max-width:360px){
 .mobile-actions{padding-inline:10px}
 .mobile-actions-inner{grid-template-columns:1.15fr .85fr 1.15fr;gap:2px}
 .mobile-booking{font-size:.8125rem;gap:6px;padding-inline:9px}
}
@media(max-width:760px) and (orientation:landscape){
 body{padding-bottom:0}
 .mobile-actions{position:static;padding-top:12px}
}
@media(hover:hover) and (max-width:760px){
 .mobile-actions .mobile-section-link:hover{background:#edf4f9;color:#175b99}
 .mobile-booking:hover{background:#164e80}
}
@media(prefers-reduced-motion:reduce){.mobile-actions-inner>a{transition:none}}
