/* Corva slide-in menu (shared by every page). Uses the site's own tokens:
   --ink #00142D, --head #14171C, --body #5B6270, --line #E7E2DA, --blue-deep #225AA0, font Red Hat Display */
.nav-actions{display:flex;align-items:center;gap:14px}
.menu-btn{display:inline-flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:44px;height:44px;margin-right:-8px;padding:0;background:none;border:0;border-radius:12px;cursor:pointer;color:var(--head,#14171C)}
.menu-btn span{display:block;width:22px;height:2px;border-radius:2px;background:currentColor}
.menu-btn:hover{background:rgba(0,20,45,.05)}
.menu-btn:focus-visible,.cm-close:focus-visible,.cm-row:focus-visible,.cm-back:focus-visible,.cm-secondary a:focus-visible,.cm-logo:focus-visible{outline:2px solid var(--blue-deep,#225AA0);outline-offset:2px}
@media (max-width:767px){.nav-actions .nav-cta{display:none}}

.cm-backdrop{position:fixed;inset:0;z-index:99;background:rgba(0,20,45,.45);opacity:0;visibility:hidden;transition:opacity .3s ease,visibility 0s linear .3s}
.cm-panel{position:fixed;top:0;right:0;bottom:0;z-index:100;width:min(420px,88vw);display:flex;flex-direction:column;background:#fff;border-radius:24px 0 0 24px;overflow:hidden;box-shadow:-12px 0 40px rgba(0,20,45,.12);font-family:'Red Hat Display',system-ui,sans-serif;transform:translateX(100%);visibility:hidden;transition:transform .36s cubic-bezier(.32,.72,0,1),visibility 0s linear .36s;overscroll-behavior:contain}
html.cm-open .cm-backdrop{opacity:1;visibility:visible;transition:opacity .3s ease}
html.cm-open .cm-panel{transform:none;visibility:visible;transition:transform .36s cubic-bezier(.32,.72,0,1)}
html.cm-lock{overflow:hidden}

.cm-head{display:flex;align-items:center;justify-content:space-between;height:76px;padding:0 20px 0 32px;flex:none}
.cm-logo{display:inline-flex;border-radius:6px}
.cm-logo svg{height:24px;width:auto;display:block}
.cm-close{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;background:none;border:0;border-radius:12px;cursor:pointer;color:var(--head,#14171C)}
.cm-close:hover{background:rgba(0,20,45,.05)}
.cm-close svg{width:22px;height:22px}

.cm-views{position:relative;flex:1;overflow:hidden}
.cm-view{position:absolute;inset:0;overflow-y:auto;padding:14px 0 32px;transition:transform .32s cubic-bezier(.32,.72,0,1),visibility 0s linear .32s}
.cm-main{transform:none;transition:transform .32s cubic-bezier(.32,.72,0,1)}
.cm-sub{transform:translateX(100%);visibility:hidden}
.cm-panel.cm-sub-open .cm-main{transform:translateX(-30%);visibility:hidden}
.cm-panel.cm-sub-open .cm-sub{transform:none;visibility:visible;transition:transform .32s cubic-bezier(.32,.72,0,1)}

.cm-list{list-style:none;margin:0;padding:0}
.cm-row{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:54px;padding:0 24px 0 32px;background:none;border:0;font:inherit;font-size:18px;font-weight:500;line-height:1.3;color:var(--head,#14171C);text-align:left;text-decoration:none;cursor:pointer;-webkit-tap-highlight-color:transparent}
.cm-row:hover{color:var(--blue-deep,#225AA0);background:rgba(0,20,45,.03)}
.cm-row[aria-current="page"]{color:var(--blue-deep,#225AA0)}
.cm-chev{width:20px;height:20px;flex:none;color:var(--head,#14171C)}
.cm-row:hover .cm-chev{color:var(--blue-deep,#225AA0)}

.cm-back{display:flex;align-items:center;gap:6px;min-height:48px;margin:0 0 6px;padding:0 24px 0 26px;background:none;border:0;font:inherit;font-size:15px;font-weight:600;letter-spacing:.02em;color:var(--body,#5B6270);cursor:pointer}
.cm-back svg{width:20px;height:20px}
.cm-sub-title{margin:0 0 6px;padding:0 32px;font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--body,#5B6270)}

.cm-divider{height:1px;margin:22px 0 10px;background:var(--line,#E7E2DA)}
.cm-secondary{list-style:none;margin:0;padding:0 18px;display:flex;flex-wrap:wrap;gap:4px 10px}
.cm-secondary a{display:inline-flex;align-items:center;gap:10px;min-height:48px;padding:0 14px;border-radius:12px;font-size:16px;font-weight:500;color:var(--head,#14171C);text-decoration:none}
.cm-secondary a:hover{color:var(--blue-deep,#225AA0);background:rgba(0,20,45,.03)}
.cm-secondary svg{width:20px;height:20px;flex:none}

@media (max-width:767px){.cm-head{height:64px;padding:0 12px 0 24px}.cm-row{padding:0 16px 0 24px}.cm-sub-title{padding:0 24px}.cm-back{padding:0 16px 0 18px}.cm-secondary{padding:0 10px}}
/* Locations sub-list: service-area lines (Westchester County, popular towns, NYC, online) */
.cm-row-2{min-height:64px;padding-top:8px;padding-bottom:8px}
.cm-txt{display:flex;flex-direction:column;gap:2px}
.cm-note{font-size:14px;font-weight:500;line-height:1.35;color:var(--body,#5B6270)}
.cm-row-2:hover .cm-note{color:var(--body,#5B6270)}
.cm-group{margin:2px 0 6px}
.cm-label{margin:8px 0 0;padding:0 32px 0 48px;font-size:13px;font-weight:600;line-height:1.4;color:var(--body,#5B6270)}
.cm-nested .cm-row{min-height:46px;padding-left:48px;font-size:17px}
.cm-sub-foot{margin:18px 32px 0;padding-top:16px;border-top:1px solid var(--line,#E7E2DA);font-size:14px;line-height:1.5;color:var(--body,#5B6270)}
@media (max-width:767px){.cm-label{padding:0 24px 0 40px}.cm-nested .cm-row{padding-left:40px}.cm-sub-foot{margin:18px 24px 0}}
@media (prefers-reduced-motion:reduce){.cm-panel,.cm-backdrop,.cm-view{transition:none!important}}
