:root{--paper: #f4f2ee;--surface: #ffffff;--ink: #111111;--muted: #303438;--soft: #858585;--line: #e3ded5;--accent: #b9872b;--warm: #eee4d2;--max: 1120px}*{box-sizing:border-box}body{margin:0;background:var(--surface);color:var(--ink);font-family:Segoe UI,Helvetica Neue,Arial,sans-serif;font-size:18px;line-height:1.65}a{color:inherit}.site-header,main{width:min(var(--max),calc(100% - 48px));margin:0 auto}.site-header{display:flex;align-items:center;justify-content:space-between;gap:44px;min-height:150px;padding:24px 0}.brand{display:grid;gap:3px;min-width:270px;max-width:390px;text-decoration:none}.brand-mark{width:58px;height:58px;margin-bottom:4px;color:var(--ink)}.brand-mark circle,.brand-mark path{fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}.brand-mark circle:not(:first-child){fill:var(--surface)}.brand-mark circle:nth-of-type(4){fill:var(--warm)}.brand span{color:var(--ink);font-family:Georgia,serif;font-size:1.34rem;font-weight:500;line-height:1.18}.brand small,.site-footer span{color:var(--soft);font-size:.86rem;line-height:1.35}nav{display:flex;flex-wrap:wrap;gap:34px;font-size:1.04rem}nav a,.footer-links a{color:var(--muted);text-decoration:none}nav a{border-bottom:2px solid transparent;padding:8px 0 12px}nav a:hover,.footer-links a:hover{color:var(--accent)}nav a:hover{border-color:var(--accent)}.page{width:100vw;margin-left:calc(50% - 50vw);padding:96px max(24px,calc((100vw - var(--max)) / 2)) 104px;background:var(--paper)}.page>*{max-width:760px}.page h1{max-width:920px;margin:0 0 34px;color:var(--ink);font-family:Georgia,serif;font-size:clamp(2.5rem,6vw,4.9rem);font-weight:500;line-height:1.02}.page h2{margin-top:68px;color:var(--soft);font-size:2rem;font-weight:400;line-height:1.22}.page p,.page ul{color:var(--muted)}.page strong{color:var(--ink)}.page a{color:var(--ink);text-decoration-color:#b9872b8c;text-underline-offset:3px}.page a:hover{color:var(--accent)}.page ul{padding-left:1.2em}.page li::marker{color:var(--accent)}.page li+li{margin-top:8px}.page hr{width:100%;max-width:none;border:0;border-top:1px solid var(--line);margin:54px 0}.intro{max-width:860px;color:var(--muted);font-size:clamp(1.35rem,2.4vw,1.85rem);line-height:1.48}.notice{margin-top:38px;padding:22px 26px;border-left:4px solid var(--accent);background:linear-gradient(90deg,var(--surface),#faf7f1);color:var(--muted)}.contact-block{display:grid;grid-template-columns:max-content 1fr;gap:10px 16px;width:fit-content;margin-top:30px}.contact-block strong{color:var(--ink)}.contact-details{width:100%;max-width:820px;margin-top:54px;padding-top:28px;border-top:1px solid var(--line)}.contact-details h2{margin-top:0}.contact-hours{display:grid;gap:2px}html[data-absence-active=true] [data-hide-during-absence]{display:none!important}.absence-notice{width:100%;max-width:820px;margin-top:54px}.absence-current-box{padding:22px 24px;border:1px solid #d7c394;border-left:5px solid var(--accent);background:var(--surface)}.absence-current-box h2{margin:0 0 10px;font-size:1.45rem}.absence-current-dates p{margin:0}.absence-current-dates p+p{margin-top:6px}.absence-current-dates strong{font-size:1.06rem}.absence-current-messages{margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}.absence-current-messages p{margin:0}.absence-current-messages p+p{margin-top:10px}.absence-upcoming{margin-top:46px;padding-top:10px;border-top:1px solid var(--line)}.absence-upcoming h2{margin-top:0}.absence-list{display:grid;margin:12px 0 0;padding:0;list-style:none}.absence-list-item{padding:12px 0;border-bottom:1px solid var(--line)}.absence-list-item:last-child{border-bottom:0}.availability-tool{width:100%;max-width:820px;margin-top:54px;padding-top:10px;border-top:1px solid var(--line)}.availability-tool h2{margin-top:0}.availability-explanation,.availability-intro{color:var(--muted)}.availability-empty{margin:22px 0 28px;padding:22px 24px;border:1px solid #d7c394;border-left:5px solid var(--accent);background:var(--surface)}.availability-empty p{margin:0;color:var(--muted)}.availability-empty p+p{margin-top:10px}.availability-empty .availability-empty-lead{color:var(--ink);font-size:1.18rem;font-weight:700;line-height:1.45}.availability-list{display:grid;gap:10px;max-width:640px;padding-left:0;list-style:none}.availability-slot{display:grid;grid-template-columns:minmax(240px,1fr) max-content max-content;gap:16px;align-items:baseline;padding:12px 0;border-bottom:1px solid var(--line)}.availability-date{color:var(--ink);font-weight:700}.availability-time{color:var(--muted);white-space:nowrap}.availability-reserve{color:var(--accent);font-weight:700;white-space:nowrap}.directions{width:100%;max-width:820px;margin-top:54px;padding-top:28px;border-top:1px solid var(--line)}.directions h2{margin-top:0}.split-hero{display:grid;grid-template-columns:280px minmax(320px,1fr);align-items:start;gap:56px;max-width:1120px}.split-hero>*{max-width:none}.portrait-photo{display:block;width:260px;max-width:100%;height:auto;border-radius:8px;justify-self:center}.eyebrow{color:var(--soft);font-size:clamp(1.35rem,2.5vw,2rem);line-height:1.3}.button-link{display:inline-block;margin-top:18px;padding:9px 18px;border-radius:6px;background:var(--ink);color:var(--surface)!important;text-decoration:none}.vita-list{display:grid;gap:28px;max-width:860px}.vita-list h2{margin-bottom:-10px}.vita-list h3{margin:0 0 -16px;color:var(--ink);font-size:1.1rem;font-weight:700}.vita-list p{margin:0}.site-footer{display:flex;justify-content:space-between;gap:24px;width:100%;padding:54px max(24px,calc((100vw - var(--max)) / 2));border-top:1px solid var(--line);background:#f0ede7;color:var(--muted)}.site-footer strong{color:var(--ink)}.site-footer div{display:grid;gap:4px}.footer-links{display:flex;gap:18px}@media(max-width:860px){body{font-size:17px}.site-header{align-items:flex-start;flex-direction:column;gap:20px}nav{gap:18px}.page{padding-top:56px}.site-footer{flex-direction:column}.contact-block{width:100%;grid-template-columns:1fr}.availability-slot{grid-template-columns:1fr;gap:2px}.split-hero{grid-template-columns:1fr;gap:34px}.portrait-photo{width:220px}}
