:root{--bg:#E1DBD5;--ink:#4E341D;--line:#4e341d33;--font:Arial,Helvetica,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.75 var(--font)}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-weight:400;line-height:1.14;letter-spacing:-.025em}h2{font-size:clamp(2.4rem,4.6vw,4.5rem)}h3{font-size:clamp(1.5rem,2vw,1.9rem)}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}a:focus-visible,button:focus-visible{outline:2px solid var(--ink);outline-offset:5px}.header{padding:26px 4%;display:flex;align-items:center;justify-content:space-between;gap:35px}.brand{font-size:clamp(21px,2.3vw,32px);line-height:1.2;white-space:nowrap;letter-spacing:-.025em}.header nav{display:flex;align-items:center;gap:30px;font-size:15px}.header nav>a:not(.button){padding:10px 0}.header nav>a:hover{text-decoration:underline;text-underline-offset:7px}.button,.service>a{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--ink);border-radius:999px;padding:15px 31px;min-height:50px;line-height:1.4;font-size:15px;background:var(--ink);color:var(--bg);transition:background .2s}.button:hover,.service>a:hover{background:#6b4c31;text-decoration:none!important}.button.small{padding:13px 28px}.menu-toggle{display:none}.hero{position:relative;margin:0 20px;min-height:560px;height:calc(100svh - 118px);max-height:900px;display:flex;align-items:center;justify-content:center;overflow:hidden}.hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 60%}.hero:after{content:'';position:absolute;inset:0;background:#24190e55}.hero h1{position:relative;z-index:1;color:var(--bg);font-size:clamp(2.9rem,5.8vw,6.5rem);font-weight:400;display:flex;justify-content:center;gap:clamp(25px,5vw,90px);padding:30px;text-align:center}.section{max-width:1600px;margin:auto;padding:100px 6%}.section-heading{margin-bottom:65px}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:55px 50px}.service{border-top:1px solid var(--line);padding-top:30px;display:flex;flex-direction:column;align-items:flex-start}.service h3{margin-bottom:22px}.service p{font-size:16px;margin-bottom:28px;line-height:1.8}.service>a{margin-top:auto;padding:11px 26px;min-height:46px;font-size:14px}.schedule{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:9%;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.schedule-copy h2{margin-bottom:35px;font-size:clamp(3rem,5.6vw,5.8rem)}.schedule-copy>p{max-width:550px;margin-bottom:30px}.schedule-copy .selection{font-size:14px;margin-bottom:20px}.schedule-image{width:100%;height:560px;object-fit:cover;object-position:center;display:block}.about-body{display:grid;grid-template-columns:1fr 1fr;gap:9%}.about-body p{margin-bottom:24px}.text-link{display:inline-block;border-bottom:1px solid var(--ink);padding:4px 0;font-size:15px}.text-link:hover{opacity:.75}.contact{display:grid;grid-template-columns:1fr 1fr;gap:9%;padding-top:60px;border-top:1px solid var(--line)}.contact-info>p{margin-bottom:24px}.pending-detail{font-size:15px;margin-bottom:22px}#contact-details a{display:block;margin-bottom:12px;text-decoration:underline;text-underline-offset:4px}footer{border-top:1px solid var(--line);padding:32px 4%;display:flex;justify-content:space-between;align-items:center;gap:25px}footer .brand{font-size:24px}footer>span{font-size:13px}.skip-link{position:fixed;top:-100px;left:20px;padding:12px;background:var(--bg);z-index:10}.skip-link:focus{top:10px}dialog{background:var(--bg);color:var(--ink);border:1px solid var(--line);width:calc(100% - 36px);max-width:560px;padding:60px 40px 40px}dialog::backdrop{background:#23190f88}dialog h2{font-size:2.5rem;margin:20px 0}dialog p{margin-bottom:25px}.eyebrow{font-size:14px}.close-dialog{position:absolute;top:10px;right:10px;width:44px;height:44px;background:none;border:0;font-size:30px;color:var(--ink)}@media(min-width:1800px){.hero{max-width:1760px;margin:auto}.header,footer{max-width:1840px;margin:auto}}@media(max-width:1000px){.header nav{gap:18px}.header{gap:20px}.brand{font-size:25px}.hero h1{font-size:5.8vw;gap:3.4vw}.service-grid{gap:40px 28px}.schedule-image{height:480px}}@media(max-width:760px){.header{padding:23px 6%;flex-wrap:wrap}.brand{font-size:23px}.menu-toggle{display:flex;gap:14px;align-items:center;border:0;background:none;color:var(--ink);min-height:44px;padding:0;font-size:14px}.menu-toggle span{font-size:22px}.header nav{display:none;flex-direction:column;width:100%;align-items:stretch;gap:0;border-top:1px solid var(--line);padding-top:12px}.header nav.open{display:flex}.header nav .button{align-self:flex-start;margin-top:12px}.hero{margin:0 12px;height:calc(85svh - 90px);min-height:490px;max-height:750px}.hero h1{font-size:clamp(2.6rem,10vw,4.3rem);flex-direction:column;gap:12px;line-height:1.15;padding:20px}.hero-photo{object-position:55% center}.section{padding:65px 7%}.section-heading{margin-bottom:40px}.service-grid{grid-template-columns:1fr 1fr;gap:38px 28px}.service p{font-size:16px}.schedule{grid-template-columns:1fr;gap:40px}.schedule-image{height:430px}.schedule-copy h2{font-size:3.4rem;margin-bottom:26px}.about-body,.contact{grid-template-columns:1fr;gap:30px}footer{padding:30px 7%;flex-wrap:wrap}footer .brand{font-size:22px}}@media(max-width:450px){.service-grid{grid-template-columns:1fr}.service h3{font-size:1.8rem}.schedule-image{height:380px}h2{font-size:2.6rem}dialog{padding:50px 25px 30px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Approved refinement: brand caption, light service links and location. */
.brand-tagline{display:block;font-size:13px;font-weight:400;letter-spacing:0;line-height:1.5;margin-top:8px;white-space:normal}
.header nav{gap:23px}.header .brand{flex-shrink:0}
.service{border-top:0;padding-top:0}.service-number{display:block;width:100%;font-size:12px;letter-spacing:.1em;padding-bottom:15px;border-bottom:1px solid var(--line);margin-bottom:25px}
.service>a{background:transparent;color:var(--ink);border:0;border-bottom:1px solid var(--ink);border-radius:0;padding:8px 0 5px;min-height:40px;font-size:15px}
.service>a:hover{background:transparent;opacity:.7}
.contact-map{width:100%;height:300px;border:0;display:block;margin:26px 0 18px}.contact-info{min-width:0}#contact-details{margin-bottom:18px}
.hero-photo{object-position:center}.hero:after{background:#24190e25}.schedule-image{height:auto;aspect-ratio:1374/1145;object-fit:contain}
@media(max-width:1100px) and (min-width:761px){.header{padding:22px 3%;gap:18px}.header .brand{font-size:25px}.brand-tagline{font-size:12px;max-width:265px}.header nav{gap:15px;font-size:14px}.button.small{padding:12px 20px}}
@media(max-width:850px) and (min-width:761px){.header{flex-wrap:wrap}.header nav{width:100%;justify-content:space-between}}
@media(max-width:760px){.header{column-gap:12px}.header .brand{font-size:22px;flex-shrink:1;max-width:calc(100% - 75px)}.brand-tagline{font-size:12px;max-width:240px;margin-top:7px}.header nav{gap:0}.hero-photo{object-position:58% center}.contact-map{height:270px}footer .brand-tagline{max-width:none}}

/* Square owns the embedded appointment flow; keep its host responsive. */
.schedule{row-gap:48px}.schedule>*{min-width:0}.booking-panel{grid-column:1/-1;min-width:0;scroll-margin-top:24px}.square-widget{width:100%;height:720px;background:#fff}.square-widget iframe{display:block;max-width:100%}.booking-fallback{text-align:center;margin-top:18px}@media(max-width:760px){.square-widget{height:700px}.booking-panel{margin-left:-3%;margin-right:-3%}}

.opening-hours{margin:32px 0 22px;max-width:310px}.opening-hours>div{display:flex;justify-content:space-between;gap:36px;padding:4px 0}.opening-hours dd{margin:0}.contact-phone{display:inline-block;font-size:18px;border:0;text-decoration:none}
