:root{--paper:#f3efe7;--ink:#241f1c;--wine:#662d39;--line:#cfc7bc;--muted:#756c63}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--paper);color:var(--ink);font:14px Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}button,input,select{font:inherit}button,a{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--wine);outline-offset:5px}button{color:inherit}h1,h2,h3,p,figure{margin:0}h2{font-weight:400;font-size:clamp(40px,5.2vw,76px);line-height:1.04;letter-spacing:-3px}em{font-family:Georgia,'Times New Roman',serif;font-weight:400}button,a,summary{transition:background .2s,color .2s}.header{height:100px;margin:0 4%;display:flex;align-items:center;gap:28px;border-bottom:1px solid var(--line)}.wordmark{font-family:Georgia,serif;font-size:36px;letter-spacing:2px}.header-caption{font-size:8px;line-height:1.6;letter-spacing:1.2px;border-left:1px solid var(--line);padding-left:24px}.header nav{display:flex;gap:30px;margin-left:auto;font-size:12px}.header nav a:hover{color:var(--wine)}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:36px;background:var(--wine);color:var(--paper);border:1px solid var(--wine);padding:16px 24px;border-radius:0;font-size:12px}.button:hover{background:#48212a}.button span{font-size:21px}.hero{padding:24px 4% 0;position:relative}.hero-top{display:flex;justify-content:space-between;font-size:9px;letter-spacing:1.4px}.hero h1{position:relative;z-index:1;font-family:Georgia,'Times New Roman',serif;font-weight:400;font-size:clamp(100px,24.8vw,410px);line-height:.89;letter-spacing:-.055em;margin:18px 0 -0.14em -0.025em;pointer-events:none;color:var(--wine)}.hero-photo{position:relative;height:clamp(370px,43vw,680px);overflow:hidden;background:#251a14;margin-left:16%;}.hero-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 45%}.hero-photo figcaption{position:absolute;left:28px;bottom:25px;font-size:9px;letter-spacing:2px;color:#fff4e7}.hero-bottom{display:grid;grid-template-columns:1.2fr 1fr 60px;gap:30px;align-items:center;padding:42px 0 70px}.hero-bottom h2{font-size:clamp(34px,4.2vw,62px);letter-spacing:-2px}.hero-bottom em{color:var(--wine)}.hero-bottom p{font-size:13px;line-height:1.7;margin-bottom:22px}.text-link{background:transparent;border:0;border-bottom:1px solid currentColor;padding:10px 0;display:inline-flex;align-items:center;justify-content:space-between;gap:35px;font-size:13px}.text-link span{font-size:24px;font-weight:400}.text-link:hover{color:var(--wine)}.scroll-cue{font-size:42px;justify-self:end;font-weight:300}.section{padding:70px 8%}.services{border-top:1px solid var(--line)}.section-intro{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-bottom:48px}.eyebrow{font-size:10px;letter-spacing:1.8px;line-height:1.7}.section-intro p{font-size:14px;line-height:1.7;max-width:380px;color:var(--muted)}.service-category{border-top:1px solid var(--line)}.service-category:last-child{border-bottom:1px solid var(--line)}summary{display:flex;align-items:center;gap:27px;list-style:none;padding:27px 0;cursor:pointer}summary::-webkit-details-marker{display:none}.menu-title{font-size:clamp(38px,5.3vw,75px);letter-spacing:-3px;line-height:1.05}.menu-title small{display:block;font:11px Arial,sans-serif;letter-spacing:0;margin-top:14px;color:var(--muted)}.menu-toggle{margin-left:auto;font-size:36px;font-weight:300;color:var(--wine);width:40px;text-align:center}.menu-toggle:before{content:'+'}details[open] .menu-toggle:before{content:'−'}details[open] .menu-title{color:var(--wine)}summary:hover .menu-title{color:var(--wine)}.service-items{padding:0 0 25px;max-width:100%}.service-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:17px 0;border-top:1px solid #ddd5ca}.service-row h3{font-size:15px;font-weight:400}.price-action{display:flex;align-items:center;gap:30px;flex-shrink:0}.price{font-size:13px;white-space:nowrap}.round-button{width:36px;height:36px;background:transparent;border:1px solid var(--line);font-size:20px}.round-button:hover{color:var(--paper);background:var(--wine);border-color:var(--wine)}.price-note{font-size:10px;line-height:1.7;color:var(--muted);margin-top:22px}.consultation{background:var(--wine);color:var(--paper);display:grid;grid-template-columns:1fr 1.65fr;gap:40px;padding-block:80px}.consult-label{display:flex;flex-direction:column;justify-content:space-between;gap:35px}.consult-price{font-size:80px;font-weight:400;letter-spacing:-5px;line-height:1}.consult-price small{display:block;font-size:8px;letter-spacing:1.5px;line-height:1.7;margin-top:17px}.consult-copy h2{font-size:clamp(40px,5.5vw,79px)}.consult-copy p{max-width:350px;font-size:13px;line-height:1.8;margin:30px 0 20px;color:#e0cbc9}.consultation .text-link{color:var(--paper)}.consultation .text-link:hover{color:#ddc1a6}.masters{padding-top:90px;padding-bottom:90px}.master-heading{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:45px}.master-heading h2{font-size:clamp(42px,5.2vw,72px)}.master-heading em{color:var(--wine)}.master-list{border-top:1px solid var(--line)}.master-list>button{width:100%;background:transparent;border:0;border-bottom:1px solid var(--line);padding:26px 0;display:flex;align-items:center;gap:30px;text-align:left}.master-list>button:hover{background:#e9e1d6;padding-inline:15px}.master-name{font-size:32px;letter-spacing:-1px}.master-action{margin-left:auto;font-size:12px}.final-cta{background:#ded5c8;padding-block:48px 65px}.final-cta>button{position:relative;text-align:left;display:block;background:transparent;border:0;width:100%;font-size:clamp(64px,11vw,160px);letter-spacing:-7px;line-height:.95;padding:38px 0 0}.final-cta>button em{color:var(--wine)}.final-cta>button>span{position:absolute;right:0;bottom:5px;font-size:100px}.final-cta>button:hover{color:var(--wine)}footer{margin:0 4%;padding:35px 0;display:flex;align-items:center;gap:35px}footer>span{font-size:8px;letter-spacing:1.4px}footer p{margin-left:auto;text-align:right;font-size:9px;color:var(--muted);line-height:1.8}.skip{position:fixed;left:20px;top:-100px;background:var(--ink);color:white;padding:15px;z-index:100}.skip:focus{top:20px}
/* Native modal supplies keyboard focus containment and Escape dismissal. */
dialog{position:fixed;inset:0 0 0 auto;margin:0;width:min(610px,100%);height:100dvh;max-height:100dvh;max-width:100%;border:0;border-left:1px solid var(--line);padding:50px 42px;background:var(--paper);color:var(--ink);overflow:auto}dialog[open]{animation:drawer-in .3s ease-out}dialog::backdrop{background:#1e171390;backdrop-filter:blur(3px)}body:has(dialog[open]){overflow:hidden}.close{position:absolute;right:20px;top:17px;border:0;background:transparent;width:40px;height:40px;font-size:30px}.close:hover{color:var(--wine)}dialog>.eyebrow{color:var(--wine);margin:0 0 28px}dialog h2{font-size:51px;letter-spacing:-2px;margin-bottom:25px}.demo-note{font-size:11px;line-height:1.7;color:var(--muted);border-left:2px solid var(--wine);padding-left:12px;margin:0 0 25px}label{display:flex;flex-direction:column;gap:10px;font-size:11px}input,select{min-width:0;width:100%;border:1px solid #bfb3a4;border-radius:0;background:#faf7f1;color:var(--ink);padding:13px 11px;min-height:46px}fieldset{border:0;margin:24px 0;padding:0}legend{padding:0;margin-bottom:11px;font-size:11px}.choices{display:flex;gap:7px;flex-wrap:wrap}.choice{border:1px solid #bfb3a4;background:transparent;padding:12px;font-size:11px}.choice:hover{background:#e3d7ca}.choice[aria-pressed=true]{background:var(--wine);color:var(--paper);border-color:var(--wine)}.date-row{display:grid;grid-template-columns:1fr 1.2fr;gap:20px}.date-row fieldset{margin:0}.contact-row{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:24px}.booking-total{margin:28px 0 20px;padding-top:22px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:15px;font-size:12px}.submit{width:100%}.privacy{font-size:9px;line-height:1.7;color:var(--muted);margin-top:12px}.result-icon{display:block;font-size:42px;color:var(--wine);margin:40px 0 25px}#booking-result h3{font-size:30px;font-weight:400;margin-bottom:20px}#summary{white-space:pre-line;line-height:1.9;font-size:14px;margin-bottom:25px}@keyframes drawer-in{from{transform:translateX(100%)}to{transform:translateX(0)}}
@media(min-width:1700px){body{max-width:1920px;margin:auto}}
@media(max-width:1000px){.header-caption{display:none}.header nav{gap:20px}.hero-photo{margin-left:10%}.section{padding-inline:6%}.consultation{gap:25px}.consult-price{font-size:64px}.menu-title{font-size:55px}}
/* Phone and small tablet layouts: readable text and finger-sized controls. */
@media(max-width:760px){
 .header{height:76px;margin-inline:20px;gap:16px;justify-content:space-between}
 .wordmark{font-size:30px;flex-shrink:0}
 .header nav{display:none}
 .header .button{min-height:44px;padding:10px 16px;gap:22px;font-size:13px}
 .hero{padding:20px 20px 0}
 .hero-top{font-size:9px;letter-spacing:1px;line-height:1.6}
 .hero-top>span:last-child{display:none}
 .hero h1{font-size:25vw;line-height:1;margin:14px 0 -.17em -.025em;letter-spacing:-.055em}
 .hero-photo{margin-left:0;height:clamp(280px,95vw,480px)}
 .hero-photo img{object-position:65% center}
 .hero-photo figcaption{font-size:9px;left:16px;right:16px;bottom:17px;letter-spacing:1px;line-height:1.6}
 .hero-bottom{grid-template-columns:minmax(0,1fr);gap:22px;padding:26px 0 40px}
 .hero-bottom h2{font-size:clamp(35px,8vw,54px);letter-spacing:-1.5px;line-height:1.12}
 .hero-bottom>div{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap}
 .hero-bottom p{font-size:14px;line-height:1.65;margin:0}
 .hero-bottom .text-link{min-height:44px;font-size:14px;gap:20px}
 .scroll-cue{display:none}
 .section{padding:42px 20px}
 .section-intro{grid-template-columns:minmax(0,1fr);gap:17px;margin-bottom:28px}
 .section-intro p{font-size:14px;line-height:1.7}
 .eyebrow{font-size:10px;letter-spacing:1.3px}
 summary{gap:12px;padding:22px 0;min-height:72px}
 .menu-title{min-width:0;font-size:clamp(33px,8.5vw,50px);letter-spacing:-1.7px}
 .menu-title small{font-size:12px;line-height:1.6;margin-top:10px;max-width:100%;letter-spacing:0}
 .menu-toggle{width:30px;flex:0 0 30px;font-size:30px}
 .service-items{padding:0 0 16px}
 .service-row{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;padding:16px 0}
 .service-row h3{font-size:15px;line-height:1.5}
 .price-action{justify-content:space-between;gap:12px;width:100%}
 .price{font-size:14px}
 .round-button{width:44px;height:44px;flex-shrink:0;font-size:22px}
 .price-note{font-size:12px;line-height:1.7;margin-top:18px}
 .consultation{grid-template-columns:minmax(0,1fr);gap:30px;padding-block:38px 42px}
 .consult-label{flex-direction:row;align-items:start;gap:20px}
 .consult-price{font-size:44px;letter-spacing:-2px;text-align:right}
 .consult-price small{font-size:9px;letter-spacing:.6px;margin-top:9px;max-width:145px}
 .consult-copy h2{font-size:clamp(36px,8.5vw,54px);letter-spacing:-1.5px;line-height:1.12}
 .consult-copy p{font-size:14px;margin:24px 0 15px;max-width:100%}
 .text-link{min-height:44px;font-size:14px;gap:18px;text-align:left}
 .master-heading{align-items:start;flex-direction:column;gap:17px;margin-bottom:24px}
 .master-heading h2{font-size:clamp(36px,8.5vw,54px);letter-spacing:-1.5px;line-height:1.12}
 .master-list>button{gap:15px;padding:22px 0;min-height:72px}
 .master-name{font-size:28px}
 .master-action{font-size:13px;white-space:nowrap}
 .master-list>button:hover{padding-inline:0}
 .final-cta>button{font-size:clamp(48px,13vw,92px);letter-spacing:-2px;padding:30px 38px 0 0;line-height:1.05}
 .final-cta>button>span{font-size:38px;bottom:4px}
 footer{margin-inline:20px;gap:18px;flex-wrap:wrap;padding-block:26px}
 footer>span{font-size:10px}
 footer p{width:100%;text-align:left;margin:0;font-size:11px;line-height:1.8}
 dialog{width:100%;height:100dvh;max-height:100dvh;border:0;padding:28px 20px;padding-top:max(28px,env(safe-area-inset-top));padding-bottom:max(28px,env(safe-area-inset-bottom));overscroll-behavior:contain}
 .close{position:sticky;top:0;float:right;margin:-12px -4px 0 0;width:44px;height:44px;background:var(--paper);z-index:2}
 dialog>.eyebrow{padding-right:44px;margin-bottom:24px;min-height:24px}
 dialog h2{font-size:clamp(36px,9vw,48px);line-height:1.1;letter-spacing:-1.5px}
 .demo-note{font-size:12px;line-height:1.7}
 label,legend{font-size:14px}
 input,select{font-size:16px;min-height:48px;max-width:100%}
 input[type=date]{appearance:none;-webkit-appearance:none;display:block;min-width:0}
 fieldset{min-width:0}
 .date-row,.contact-row{grid-template-columns:minmax(0,1fr);gap:22px}
 #masters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
 #times{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
 .choice{min-height:46px;font-size:14px;padding:12px 8px}
 .booking-total{font-size:14px;line-height:1.5;flex-wrap:wrap}
 .submit,#restart{min-height:48px;font-size:14px;gap:16px;padding:16px;max-width:100%}
 .privacy{font-size:11px;line-height:1.7}
 #summary{overflow-wrap:anywhere}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
