@font-face{font-family:Figtree;font-style:normal;font-weight:300 900;font-display:swap;src:url(fonts/figtree.woff2) format('woff2')}
@font-face{font-family:'Libre Baskerville';font-style:normal;font-weight:700;font-display:swap;src:url(fonts/libre-baskerville-700.woff2) format('woff2')}
@font-face{font-family:'Libre Baskerville';font-style:italic;font-weight:400;font-display:swap;src:url(fonts/libre-baskerville-400-italic.woff2) format('woff2')}
:root{--o:#E08A1B;--o-hover:#BF7112;--ink:#161C2C;--text:#30333A;--soft:#64666C;--line:#E9E6E0;--beige:#FAF7F1;--serif:'Libre Baskerville',Georgia,serif;--sans:Figtree,system-ui,-apple-system,'Segoe UI',sans-serif}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:24px;-webkit-text-size-adjust:100%}
body{margin:0;background:#fff;color:var(--text);font-family:var(--sans);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:3px solid var(--o);outline-offset:4px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:16px;top:-70px;z-index:50;background:#fff;padding:10px 14px;border-radius:8px}
.skip:focus{top:12px}
.wrap{width:100%;max-width:1200px;margin:0 auto;padding:0 32px}
.ico{width:1em;height:1em;flex:none;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
h1,h2,h3{margin:0;color:var(--ink);font-weight:700}
h1,h2{font-family:var(--serif);letter-spacing:-.025em}
.title,.about h2,.bk-intro h2{font-size:34px;line-height:1.3}
.bar{display:block;width:56px;height:3px;background:var(--o);border-radius:2px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:11px 22px;border-radius:7px;font-size:15px;font-weight:650;line-height:1.4;transition:background .18s,box-shadow .18s,transform .18s}
.btn-o{background:var(--o);color:var(--ink)}
.btn-o:hover{background:#F0A12D;box-shadow:0 6px 18px #BC7B1420;transform:translateY(-1px)}
.btn-line{background:#ffffffd9;border:1px solid #CCC9C2;color:var(--ink)}
.btn-line:hover{background:#fff;border-color:var(--ink)}

/* A bounded desktop layout; type and controls never scale with viewport width. */
.hdr{position:relative;z-index:5;background:#fff;border-bottom:1px solid #F0EEEA}
.hdr .wrap{display:flex;align-items:center;gap:28px;min-height:82px}
.logo{flex:none}
.logo img{width:170px}
.nav{display:flex;align-items:center;gap:24px;margin-left:auto;font-size:15px;font-weight:550}
.nav a{padding:10px 0}
.nav a:hover,.tel:hover{color:var(--o-hover)}
.nav .dot,.vline{display:none}
.tel{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:600;white-space:nowrap}
.tel svg{width:19px;height:19px;color:var(--o-hover)}
.hdr .btn{min-height:42px;padding:10px 16px;font-size:14px}
.menu-btn{display:none;width:44px;height:44px;border:0;background:none;padding:10px}
.menu-btn svg{width:24px;height:24px}

.hero{position:relative;min-height:540px;overflow:hidden;isolation:isolate;background:var(--beige)}
.hero picture{position:absolute;inset:0;z-index:-2}
.hero .hero-img{width:100%;height:100%;object-fit:cover;object-position:60% 51%}
.hero::before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#fff 0%,#fffffff5 23%,#ffffffda 39%,#ffffff30 66%,#ffffff00 78%)}
.hero .wrap{padding-top:66px;padding-bottom:64px}
.kicker{margin:0;font-size:14px;font-weight:600;letter-spacing:.045em;color:#595A5D}
.hero .bar{margin:18px 0 24px}
.hero h1{font-size:46px;line-height:1.22;max-width:520px}
.lead{font-size:18px;line-height:1.65;max-width:465px;margin:24px 0 0}
.hero-cta{display:flex;gap:12px;margin-top:28px;flex-wrap:wrap}

.services{padding-top:64px}
.section-intro{margin:0 0 30px;max-width:600px;color:var(--soft);font-size:17px}
.services .bar{margin:16px 0 18px}
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;list-style:none;margin:0;padding:0}
.card{min-width:0;border:1px solid var(--line);border-radius:13px;background:#fff;overflow:hidden;transition:box-shadow .2s,transform .2s,border-color .2s}
.card:hover{box-shadow:0 12px 32px #3430220D;transform:translateY(-3px);border-color:#DCCFB9}
.service-art{width:100%;aspect-ratio:3/2;object-fit:cover;background:#FCFAF6;border-bottom:1px solid #EEEAE4}
.card-copy{padding:22px 24px 25px}
.card h3{font-size:19px;font-weight:650;line-height:1.4;letter-spacing:-.01em}
.card p{font-size:15px;color:var(--soft);line-height:1.65;margin:9px 0 0}

.about{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;align-items:center;margin-top:80px}
.about picture{display:block}
.about-img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:12px}
.about .bar{margin:20px 0}
.about p{margin:0;font-size:17px;line-height:1.8}
.about .motto{margin-top:22px;font-family:var(--serif);font-size:18px;font-style:italic;color:var(--ink)}
.why{margin-top:72px}
.why .bar{margin:16px 0 30px}
.why ul{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));list-style:none;margin:0;padding:0;gap:30px}
.why li{min-width:0;display:flex;align-items:flex-start;gap:18px}
.why .why-art{width:90px;aspect-ratio:1;object-fit:cover;border:1px solid var(--line);border-radius:12px;flex:none}
.why h3{font-size:18px;line-height:1.4;font-weight:650;margin:4px 0 9px}
.why p{margin:0;color:var(--soft);font-size:15px;line-height:1.7}

.booking{background:var(--beige);margin-top:72px;padding:48px 32px}
.bk-card{max-width:1136px;margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:14px;display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:48px;padding:36px 40px}
.bk-intro{padding:10px 36px 10px 0;border-right:1px solid var(--line)}
.bk-intro h2{font-size:30px;max-width:300px;line-height:1.4}
.bk-intro .bar{margin:22px 0}
.bk-intro p{font-size:17px;line-height:1.7;margin:0;color:var(--soft)}
.bk-form{display:flex;flex-direction:column;min-width:0}
.bk-label{font-weight:650;font-size:14px;margin-bottom:7px}
.bk-select{position:relative}
.bk-select select{appearance:none;width:100%;height:46px;border:1px solid #D9D6D0;border-radius:7px;background:#fff;padding:0 38px 0 13px;font-size:15px;cursor:pointer;text-overflow:ellipsis}
.bk-select svg{position:absolute;right:14px;top:50%;width:19px;height:19px;transform:translateY(-50%);pointer-events:none}
.bk-week{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;justify-content:space-between;margin:22px 0 14px}
.bk-week b{font-size:16px;font-weight:650}
.bk-nav{display:flex;align-items:center;gap:5px;font-size:13px;color:var(--soft)}
.bk-nav button{border:0;background:none;min-width:30px;min-height:36px;line-height:1;font-size:24px;color:var(--ink);padding:0 5px}
.bk-nav button[disabled]{opacity:.25;cursor:default}
.bk-grid{display:grid;grid-template-columns:repeat(var(--aw-days,5),minmax(0,1fr));gap:9px}
.aw-day{display:grid;align-content:start;gap:7px;min-width:0}
.aw-dname{display:grid;place-items:center;height:36px;border-radius:6px;background:#F5F4F1;font-weight:650;font-size:14px}
.aw-slot{min-height:40px;border:1px solid #D4D2CC;border-radius:6px;background:#fff;font-size:14px;color:var(--ink);padding:4px 0;transition:background .15s,border-color .15s}
.aw-slot:hover:not([disabled]){background:#FFF5E7;border-color:var(--o)}
.aw-slot.is-selected,.aw-slot.is-selected:hover{background:var(--o);border-color:var(--o);color:var(--ink);font-weight:650}
.aw-slot[disabled]{border-color:#ECEAE6;color:#B8B5AE;cursor:not-allowed}
.aw-day.is-closed .aw-dname{color:#A9A7A2}
.bk-submit{margin-top:20px;min-height:46px;border:0;border-radius:7px;background:var(--o);color:var(--ink);font-size:16px;font-weight:650}
.bk-submit:hover{background:#F0A12D}
.bk-msg{margin:6px 0 0;font-size:14px;color:#A4410E}

.place{padding-top:64px}
.place .bar{margin:16px 0 28px}
.place-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:48px;align-items:center}
.place ul{list-style:none;padding:0;margin:0}
.place li{display:flex;align-items:center;gap:18px;min-height:52px;font-size:16px}
.place li .ico{font-size:24px;color:#8E662A}
.place li a:hover{color:var(--o-hover)}
.map{position:relative;display:block;height:220px;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.map picture{position:absolute;inset:0}
.map img{position:absolute;width:1380px;max-width:none;left:50%;top:50%;transform:translate(-50%,-50%)}
.map span{position:absolute;left:50%;top:56%;transform:translateX(-50%);font-weight:650;font-size:18px;color:var(--ink);text-shadow:0 0 6px #fff,0 0 3px #fff}
.map .go{left:auto;top:auto;right:12px;bottom:12px;transform:none;background:#fff;padding:5px 12px;border-radius:6px;font-size:13px;box-shadow:0 2px 8px #00000012}

.cta{margin-top:64px;background:var(--beige);border-top:1px solid var(--line);border-bottom:1px solid var(--line);text-align:center;padding:48px 0}
.cta h2{font-size:30px;line-height:1.4}
.cta p{font-size:17px;color:var(--soft);margin:16px 0 0}
.cta .btn{margin-top:24px;background:var(--o);color:var(--ink);padding:12px 26px}
.cta .btn:hover{background:#F0A12D}
.cta a.inline{text-decoration:underline;text-decoration-color:#CCC7BB;text-underline-offset:4px}

.ftr .wrap{display:grid;grid-template-columns:.9fr 1.25fr .9fr;gap:32px;padding-top:40px;padding-bottom:28px;align-items:start}
.ftr .logo img{width:155px;margin-top:4px}
.fsep{display:none}
.fcontact{list-style:none;margin:0;padding:0;display:grid;gap:9px;font-size:14px}
.fcontact li{display:flex;align-items:center;gap:10px}
.fcontact .ico{font-size:17px;color:#77736C}
.fcontact a:hover,.legal a:hover{color:var(--o-hover)}
.web-links{display:flex;flex-direction:column;align-items:flex-start;gap:6px}
.web-links>span{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:#77736C;margin-bottom:4px;font-weight:600}
.web-links a{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:32px;font-size:14px;font-weight:600}
.web-links a span{font-size:17px;color:var(--o-hover)}
.web-links a:hover{text-decoration:underline;text-underline-offset:4px}
.legal{grid-column:1/-1;border-top:1px solid var(--line);padding-top:20px;margin-top:8px;display:flex;justify-content:space-between;gap:16px;font-size:12px;color:#6E6C66}
.legal nav{display:flex;gap:10px;flex-wrap:wrap}
.legal p{margin:0}
br.d{display:none}

/* This site's assistant uses the same comfortable scale as the page. */
#aw-w[id]{--aw-u:.76px;font-size:15px}
#aw-w[id] .aw-launch{width:58px;height:58px;right:22px;bottom:22px;box-shadow:0 5px 20px #28201628}
#aw-w[id] .aw-box{width:340px;right:22px;bottom:94px;font-size:15px;max-height:calc(100dvh - 120px);border:1px solid var(--line)}
#aw-w[id] .aw-head b{font-size:18px}
#aw-w[id] .aw-head small{font-size:13px}
#aw-w[id] .aw-act,#aw-w[id] .aw-primary,#aw-w[id] .aw-launch{color:var(--ink)}
#aw-w[id] .aw-x{min-width:36px;min-height:36px;display:grid;place-items:center}

@media(min-width:1600px){.hero .hero-img{object-position:center 52%}.hero::before{background:linear-gradient(90deg,#fff 0%,#fffffff2 28%,#ffffffa8 45%,#ffffff00 72%)}}
@media(max-width:1100px){
  .hdr .wrap{gap:22px}.nav{gap:18px}.hdr .btn{display:none}.tel{margin-left:12px}
  .about{gap:32px}.why ul{gap:24px}.why li{gap:12px}.why .why-art{width:68px}
  .bk-card{gap:28px;padding:30px}.bk-intro{padding-right:26px}
}
@media(max-width:800px){
  .wrap{padding:0 24px}.hdr .wrap{min-height:72px;gap:12px}.logo img{width:148px}
  .nav{display:none}.tel{margin-left:auto}.menu-btn{display:block}
  .hdr.open .nav{display:flex;position:absolute;top:100%;left:0;right:0;margin:0;padding:12px 24px 20px;gap:0;flex-direction:column;align-items:stretch;background:#fff;box-shadow:0 12px 24px #0000000D}
  .hdr.open .nav a{padding:10px 0}
  .hero{min-height:500px}.hero .wrap{padding-top:56px;padding-bottom:56px}.hero h1{font-size:40px;max-width:470px}
  .hero::before{background:linear-gradient(90deg,#fffffff5,#fffffff0 30%,#ffffffba 60%,#ffffff30)}
  .hero .hero-img{object-position:70% center}
  .services{padding-top:48px}.cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
  .card-copy{padding:18px 20px 22px}.card h3{font-size:18px}
  .about{margin-top:60px;gap:28px}.about h2{font-size:28px}
  .about p{font-size:16px}.about .motto{font-size:17px}
  .why{margin-top:56px}.why ul{grid-template-columns:1fr;gap:24px}.why .why-art{width:80px}.why li{gap:20px}.why h3{margin-top:2px}.why p{max-width:540px}
  .booking{margin-top:56px;padding:32px 24px}.bk-card{grid-template-columns:1fr;gap:26px;padding:28px}
  .bk-intro{padding:0;border:0}.bk-intro h2{max-width:none;font-size:28px}.bk-intro .bar{margin:16px 0}.bk-intro p br{display:none}
  .place-grid{gap:24px}.place li{font-size:15px;gap:12px}.map{height:210px}
  .ftr .wrap{gap:24px;grid-template-columns:.8fr 1.2fr}.web-links{grid-column:1/-1;flex-direction:row;flex-wrap:wrap;gap:6px 24px;align-items:center}.web-links>span{margin:0}.legal{margin-top:0}
}
@media(max-width:540px){
  .wrap{padding:0 20px}.hdr .wrap{min-height:68px}.logo img{width:134px}.tel span{display:none}.tel{min-width:40px;min-height:44px;justify-content:center}.tel svg{width:21px;height:21px}
  .hero{display:flex;flex-direction:column;min-height:0;background:#FCFAF6}.hero picture{position:relative;inset:auto;z-index:auto;order:2;height:210px}.hero .hero-img{object-position:76% 52%}
  .hero::before{display:none}.hero .wrap{padding-top:36px;padding-bottom:32px}.kicker{font-size:12px;letter-spacing:.025em}.hero .bar{margin:16px 0 22px}
  .hero h1{font-size:34px;line-height:1.26;max-width:380px}.lead{font-size:16px;line-height:1.7;margin-top:20px}.hero-cta{margin-top:24px;gap:10px}.hero-cta .btn{padding:11px 15px;font-size:14px;flex:1 1 auto}
  .title,.about h2,.bk-intro h2{font-size:28px}.services{padding-top:42px}.section-intro{font-size:16px;margin-bottom:24px}
  .cards{gap:16px;grid-template-columns:1fr}.service-art{aspect-ratio:1.8;object-fit:contain}.card-copy{padding:18px 22px 22px}.card h3{font-size:19px}.card p{font-size:15px;margin-top:8px}
  .about{grid-template-columns:1fr;gap:26px;margin-top:48px}.about-img{aspect-ratio:3/2}.about .bar{margin:18px 0}.about p{font-size:16px}
  .why{margin-top:46px}.why .bar{margin-bottom:26px}.why ul{gap:24px}.why .why-art{width:74px}.why li{gap:16px}.why h3{font-size:17px}.why p{font-size:14px}
  .booking{padding:28px 14px;margin-top:46px}.bk-card{padding:24px 16px;border-radius:12px;gap:24px}.bk-intro h2{font-size:26px}.bk-intro p{font-size:16px}
  .bk-select select{font-size:14px}.bk-week{gap:4px 8px;margin-top:16px}.bk-week b{font-size:15px}.bk-nav{font-size:12px;gap:1px}.bk-nav button{min-width:30px}
  .bk-grid{gap:5px}.aw-slot{min-height:42px;font-size:13px}.aw-dname{font-size:12px}
  .place{padding-top:44px}.place .bar{margin-bottom:20px}.place-grid{grid-template-columns:1fr;gap:18px}.place li{font-size:16px;min-height:48px;gap:16px}.map{height:210px}
  .cta{margin-top:44px;padding:36px 0}.cta h2{font-size:26px}.cta p{font-size:16px}.cta .btn{margin-top:22px}
  .ftr .wrap{grid-template-columns:1fr;padding-top:32px;padding-bottom:100px;gap:22px}.ftr .logo img{width:144px}.fcontact{font-size:14px}.web-links{grid-column:auto;gap:8px 22px}.web-links>span{width:100%}
  .legal{grid-column:auto;flex-direction:column;gap:12px;padding-top:18px}
  #aw-w[id] .aw-launch{right:16px;bottom:16px;width:56px;height:56px;min-width:56px;min-height:56px}
  #aw-w[id] .aw-box{left:12px;right:12px;bottom:84px;width:auto;max-height:calc(100dvh - 106px)}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
