:root{color:#17333a;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background:#f1eee7;font-family:Georgia,Times New Roman,serif}*{box-sizing:border-box}body{min-width:320px;margin:0}button{font:inherit}.public-app{--ink:#102a2b;min-height:100vh;color:var(--ink);background:radial-gradient(circle at 10% 15%, #fff 0, transparent 34%), radial-gradient(circle at 90% 8%, color-mix(in srgb, var(--surface) 80%, #fff) 0, transparent 32%), #f4f8f7;padding:2.5rem 1.25rem 4rem;font-family:Segoe UI,sans-serif}.public-shell{max-width:980px;margin:0 auto}.public-hero,.availability-card{border:1px solid color-mix(in srgb, var(--accent) 15%, #fff);background:#fff;border-radius:20px;padding:2rem;box-shadow:0 20px 60px #102a2b1a}.public-hero{min-height:520px}.public-header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:2.5rem;display:flex}.public-brand{color:var(--ink);text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:.7rem;font-weight:800;text-decoration:none;display:inline-flex}.public-brand img{object-fit:contain;width:34px;height:34px}.profile-button,.public-secondary{border:1px solid color-mix(in srgb, var(--accent) 45%, #fff);color:var(--ink);background:color-mix(in srgb, var(--accent) 10%, #fff);border-radius:999px;padding:.55rem 1rem;font-size:.9rem;font-weight:700;text-decoration:none}.public-app .eyebrow{color:var(--accent)}.public-hero h1{letter-spacing:-.04em;max-width:760px;margin:0;font-size:clamp(2.4rem,6vw,4rem);line-height:1.08}.public-subhead{max-width:60ch;margin:1.2rem 0 1.6rem;line-height:1.6}.public-actions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.public-cta{color:#fff;background:var(--accent);cursor:pointer;border:0;border-radius:999px;padding:.8rem 1.25rem;font-weight:800}.public-cta:hover{filter:brightness(.92)}.public-graphic{object-fit:contain;width:min(100%,320px);height:150px;margin:2rem 0 0 auto;display:block}.availability-card{margin-top:1.5rem}.availability-card h2,.public-section h2,.appointment-modal h2{margin:0 0 .7rem;font-size:clamp(1.5rem,3vw,2rem)}.availability-card>p:not(.eyebrow),.public-section>p:not(.eyebrow){max-width:65ch;line-height:1.55}.availability-card form,.appointment-modal form{gap:.55rem;max-width:560px;margin-top:1.25rem;display:grid}.availability-card label,.appointment-modal label{font-size:.9rem;font-weight:700}.availability-row{gap:.65rem;display:flex}.availability-row input,.appointment-modal input{border:1px solid color-mix(in srgb, var(--accent) 30%, #fff);min-width:0;font:inherit;border-radius:9px;flex:1;padding:.75rem}.form-status{color:var(--accent);line-height:1.5}.public-section{margin-top:3rem}.public-service-grid{grid-template-columns:repeat(3,1fr);gap:.75rem;display:grid}.public-service-grid article{border:1px solid color-mix(in srgb, var(--accent) 20%, #fff);background:#fff;border-radius:12px;padding:1.15rem}.public-service-grid h3{margin:0;font-size:1rem}.public-service-grid p{margin:.6rem 0 0;line-height:1.5}.public-callout{border-left:4px solid var(--accent);background:color-mix(in srgb, var(--surface) 60%, #fff);padding:1.5rem}.modal-backdrop{background:#102a2b73;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.appointment-modal{background:#fff;border-radius:16px;width:min(100%,500px);padding:2rem;position:relative;box-shadow:0 25px 80px #102a2b40}.modal-close{color:var(--ink);cursor:pointer;background:0 0;border:0;font-size:1.8rem;position:absolute;top:.8rem;right:1rem}.appointment-modal form .public-cta{margin-top:.6rem}@media (width<=680px){.public-app{padding:1rem .75rem 3rem}.public-hero,.availability-card{padding:1.25rem}.public-header{flex-direction:column;align-items:flex-start;margin-bottom:2rem}.public-hero{min-height:0}.public-graphic{margin-inline:auto}.availability-row{flex-direction:column;align-items:stretch}.public-service-grid{grid-template-columns:1fr}.profile-button{align-self:flex-start}}
