:root{--ink:#142544;--accent:#2454ad;--edge:#dce5f3}
html{scroll-padding-top:86px}
body{margin:0;background:#f5f8fd;color:var(--ink);padding-bottom:calc(78px + env(safe-area-inset-bottom))}
.site-shell{width:min(1080px,calc(100% - 40px));margin-inline:auto}
.site-header{position:sticky;top:0;z-index:50;background:#fff;border-bottom:1px solid var(--edge)}
.header-inner{display:flex;justify-content:space-between;align-items:center;min-height:68px}
.site-menu{position:relative}
.site-menu summary,.site-button{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 17px;border:1px solid var(--edge);border-radius:12px;background:#fff;color:var(--ink);font-weight:700}
.site-menu nav{position:absolute;right:0;top:calc(100% + 8px);min-width:min(260px,calc(100vw - 40px));display:grid;padding:8px;background:#fff;border:1px solid var(--edge);border-radius:16px;box-shadow:0 16px 48px #1425441c}
.site-menu:not([open]) nav{display:none}
.menu-group{display:grid}
.menu-group + .menu-group{border-top:1px solid var(--edge);margin-top:6px;padding-top:6px}
.site-menu nav a{padding:9px 12px;border-radius:8px}
.site-menu nav a:hover,.site-button:hover{background:#edf3fe}
.site-button.primary{background:var(--accent);color:#fff;border-color:var(--accent)}
.site-button.primary:hover{background:#1c428d}
.site-hero{padding:clamp(48px,9vw,110px) 0;background:linear-gradient(120deg,#dceaff,#f4f7ff 78%);border-bottom:1px solid var(--edge)}
.location{font-weight:700;color:var(--accent);margin-bottom:10px}
main h1{font-size:clamp(2.4rem,7vw,5.5rem);font-weight:800;line-height:1.03;letter-spacing:-.055em}
.hero-copy,.page-intro p{max-width:39rem;margin:18px 0 24px;color:#405575;font-size:clamp(1rem,2.3vw,1.3rem);line-height:1.55}
.hero-actions,.appointment-times{display:flex;gap:10px;flex-wrap:wrap}
.site-section,.page-intro{padding-block:clamp(32px,6vw,66px)}
.site-section h2{font-size:clamp(1.65rem,4vw,2.7rem);font-weight:800;letter-spacing:-.045em}
.service-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:12px;margin-block:20px}
.service-grid article,.appointment-day{border:1px solid var(--edge);border-radius:16px;background:#fff;padding:18px}
.service-grid h3{font-weight:800;margin-bottom:5px}
.service-grid p{color:#405575}
.catalog-link{color:var(--accent);font-weight:700;text-decoration:underline;text-underline-offset:3px}
.site-actions{position:fixed;z-index:40;bottom:0;left:0;right:0;display:flex;justify-content:center;gap:10px;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:#fffffff5;border-top:1px solid var(--edge)}
.site-actions a{width:min(42%,200px);text-align:center}
.appointment-day{margin-top:12px}
.appointment-day h2{font-size:1.1rem;margin-bottom:8px;letter-spacing:0}
.reveal{opacity:1;transform:none}

body .text-brand-600{color:var(--accent)}
.site-menu nav a{display:block}
.site-menu nav{max-height:calc(100dvh - 155px);overflow:auto}
.site-menu summary:focus-visible,.site-button:focus-visible{outline-color:var(--accent)}
.calendar{max-width:620px;background:#fff;border:1px solid var(--edge);border-radius:18px;padding:clamp(10px,3vw,24px)}
.calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.calendar-header h2{text-transform:capitalize;font-size:1.2rem}
.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;text-align:center}
.calendar-grid button{border-radius:8px;min-height:40px;background:#edf3fe;color:var(--accent);font-weight:700}
.calendar-grid button:disabled{background:transparent;color:#74829a;font-weight:400}
.calendar-grid button[aria-pressed=true]{background:var(--accent);color:white}
main:has(#appointment-days) h1{font-size:clamp(2rem,5vw,3.5rem)}
