@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Playfair+Display:ital,wght@0,600;1,600&display=swap');

:root{--ink:#181714;--muted:#6f6a62;--paper:#f5f1ea;--white:#fff;--red:#cc101f;--gold:#b39762;--line:#dcd5ca;--display:'Playfair Display',serif;--sans:'DM Sans',sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px}.topbar{height:82px;padding:0 clamp(22px,5vw,80px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:rgba(245,241,234,.94);position:sticky;top:0;z-index:20;backdrop-filter:blur(12px)}.brand{display:flex;align-items:center;gap:11px;color:var(--ink);font-weight:600;text-decoration:none;font-size:20px}.brand img{width:38px;height:38px;object-fit:contain;border-radius:50%}.brand span span{color:var(--red)}.back{color:var(--ink);text-decoration:none;font-size:14px;border-bottom:1px solid var(--ink);padding-bottom:3px}.hero{min-height:640px;padding:90px clamp(24px,8vw,130px);display:grid;grid-template-columns:minmax(0,640px) 1fr;align-items:center;gap:8vw;overflow:hidden}.eyebrow{text-transform:uppercase;letter-spacing:.22em;color:var(--red);font-size:12px;font-weight:600;margin:0 0 20px}.hero h1,.booking h2{font:600 clamp(62px,8vw,116px)/.86 var(--display);letter-spacing:-.045em;margin:0}.hero h1 em,.booking h2 em{color:var(--red);font-weight:600}.intro{font-size:18px;line-height:1.7;max-width:570px;color:var(--muted);margin:34px 0}.hero-actions{display:flex;gap:12px;flex-wrap:wrap}.primary,.secondary{padding:16px 22px;text-decoration:none;font-weight:600;font-size:14px}.primary{background:var(--red);color:#fff}.secondary{color:var(--ink);border:1px solid var(--ink)}.hero-mark{justify-self:center;width:min(31vw,390px);aspect-ratio:1;border:1px solid var(--gold);border-radius:50%;display:grid;place-items:center;position:relative}.hero-mark:before,.hero-mark:after{content:'';position:absolute;border:1px solid var(--gold);border-radius:50%}.hero-mark:before{inset:16px}.hero-mark:after{inset:42px}.hero-mark span{font:italic 600 clamp(100px,17vw,230px)/1 var(--display);color:var(--red)}.details{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:0 clamp(24px,8vw,130px)}.details div{padding:30px;border-right:1px solid var(--line)}.details div:first-child{border-left:1px solid var(--line)}.details span{display:block;text-transform:uppercase;letter-spacing:.17em;font-size:10px;color:var(--muted);margin-bottom:8px}.details strong{font-weight:500}.menu-section{padding:110px clamp(24px,8vw,130px);background:var(--white)}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:55px}.section-heading h2{font:600 clamp(42px,6vw,76px)/1 var(--display);margin:0}.section-heading>p{color:var(--muted);max-width:270px;line-height:1.6}.menu-grid{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--ink)}.menu-card{padding:38px 0 28px;border-bottom:1px solid var(--line)}.menu-card:nth-child(odd){padding-right:42px;border-right:1px solid var(--line)}.menu-card:nth-child(even){padding-left:42px}.menu-card:last-child:nth-child(odd){grid-column:1/-1;border-right:0;padding-right:0}.menu-card-head{display:flex;gap:18px;align-items:center;margin-bottom:28px}.menu-card-head span{color:var(--red);font-size:11px;letter-spacing:.15em}.menu-card h3{font:600 30px/1 var(--display);margin:0}.menu-card ul{list-style:none;padding:0;margin:0}.menu-card li{display:flex;align-items:baseline;gap:10px;padding:9px 0}.menu-card li>span{font-size:14px}.menu-card li i{flex:1;border-bottom:1px dotted #c5beb3}.menu-card li strong{font-size:14px;white-space:nowrap}.booking{display:grid;grid-template-columns:.85fr 1.15fr;gap:8vw;padding:110px clamp(24px,8vw,130px);background:#191816;color:#fff}.booking-intro{position:sticky;top:130px;align-self:start}.booking h2{font-size:clamp(50px,5.8vw,82px)}.booking-intro>p:not(.eyebrow){color:#aaa49b;line-height:1.7;max-width:490px;margin:32px 0}.booking ol{list-style:none;padding:0;margin:50px 0 0;border-top:1px solid #393632}.booking li{padding:18px 0;border-bottom:1px solid #393632;font-size:14px}.booking li span{color:var(--gold);font-size:11px;margin-right:16px}.booking-form{background:#f8f5ef;color:var(--ink);padding:clamp(24px,4vw,48px)}.form-head{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--ink);padding-bottom:23px}.form-head h3{font:600 34px/1 var(--display);margin:0}.form-head span{font-size:12px;color:var(--muted)}fieldset{border:0;padding:30px 0;margin:0;border-bottom:1px solid var(--line)}legend{font-size:12px;text-transform:uppercase;letter-spacing:.12em;font-weight:600;margin-bottom:17px}.service-picker{max-height:310px;overflow:auto;border:1px solid var(--line)}.service-choice,.choice{display:flex;align-items:center;gap:13px;padding:13px 15px;border-bottom:1px solid var(--line);cursor:pointer;background:#fff}.service-choice:last-child{border-bottom:0}.service-choice.selected,.choice.selected{background:#f7e9e9}.service-choice input,.choice input{accent-color:var(--red);width:17px;height:17px}.service-choice span,.choice span{display:grid;gap:2px;flex:1}.service-choice b,.choice b{font-size:13px}.service-choice small,.choice small{color:var(--muted);font-size:11px}.service-choice>strong{font-size:12px}.two-cols{display:grid;grid-template-columns:1fr 1fr;gap:15px}label{font-size:12px;display:grid;gap:8px}input,select,textarea{width:100%;font:inherit;font-size:14px;padding:14px;border:1px solid var(--line);border-radius:0;background:#fff;color:var(--ink)}textarea{resize:vertical;margin-top:8px}.optional{color:var(--muted);font-weight:400}.summary{display:flex;justify-content:space-between;align-items:center;padding:28px 0;font-size:14px}.summary strong{font:600 27px/1 var(--display)}.submit{width:100%;border:0;background:var(--red);color:#fff;padding:18px;font:600 14px var(--sans);cursor:pointer}.submit:hover{background:#a90c18}.submit:disabled{opacity:.45;cursor:not-allowed}.fineprint{font-size:10px;color:var(--muted);line-height:1.5;margin:13px 0 0}.form-message{padding:14px;margin-top:15px;font-size:13px;line-height:1.5}.form-message.error{background:#f3dfe1;color:#92101a}.form-message.success{background:#e3eee5;color:#315b38}footer{min-height:160px;padding:45px clamp(24px,8vw,130px);display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line)}footer p{font-size:12px;color:var(--muted)}.loading,.error-state{color:var(--muted);padding:30px}
@media(max-width:850px){.topbar{height:70px}.back{font-size:12px}.hero{grid-template-columns:1fr;min-height:auto;padding-top:70px}.hero-mark{display:none}.details{grid-template-columns:1fr}.details div,.details div:first-child{border:0;border-bottom:1px solid var(--line);padding:21px 0}.section-heading{display:block}.section-heading>p{margin-top:20px}.menu-grid{grid-template-columns:1fr}.menu-card:nth-child(n){padding:30px 0;border-right:0;grid-column:auto}.booking{grid-template-columns:1fr}.booking-intro{position:static}.two-cols{grid-template-columns:1fr}footer{display:grid;gap:18px}.hero h1{font-size:64px}.hero-actions a{width:100%;text-align:center}}
@media(max-width:440px){.brand{font-size:16px}.brand img{width:31px;height:31px}.menu-section,.booking{padding-top:75px;padding-bottom:75px}.booking-form{margin:0 -10px}.service-choice{padding:12px 9px}}
.mobile-book{display:none}
@media(max-width:850px){body{padding-bottom:76px}.topbar{padding:0 16px}.hero{padding:52px 20px 58px}.hero h1{font-size:clamp(52px,17vw,72px)}.intro{font-size:16px;margin:24px 0}.hero-actions{display:grid}.hero-actions a{min-height:50px;display:grid;place-items:center}.details{padding:0 20px}.menu-section,.booking{padding-left:20px;padding-right:20px}.section-heading{margin-bottom:30px}.menu-card li{gap:7px;padding:11px 0}.menu-card li>span{font-size:13px}.booking{gap:42px}.booking-form{padding:22px 16px}.service-picker{max-height:52vh}.service-choice,.choice{min-height:54px}.two-cols{gap:13px}input,select,textarea{font-size:16px;min-height:48px}.submit{min-height:54px}.mobile-book{position:fixed;display:flex;align-items:center;justify-content:space-between;left:10px;right:10px;bottom:max(8px,env(safe-area-inset-bottom));min-height:58px;padding:0 20px;border-radius:14px;background:var(--red);color:#fff;text-decoration:none;font-weight:600;box-shadow:0 12px 35px rgba(0,0,0,.3);z-index:40}.mobile-book[hidden]{display:none!important}.mobile-book span{font-size:22px}footer{padding-bottom:40px}}
@media(max-width:440px){.topbar .back{max-width:110px;text-align:right;line-height:1.2}.hero{padding-top:42px}.menu-section,.booking{padding-top:62px;padding-bottom:62px}.booking-form{margin:0}.form-head h3{font-size:29px}.form-head{align-items:flex-start;gap:12px}.summary{position:sticky;bottom:54px;background:#f8f5ef;z-index:2}.service-choice>strong{font-size:11px}.mobile-book{left:7px;right:7px}}
.client-panel{display:grid;gap:14px;margin-bottom:18px}.client-note{margin:0;color:var(--muted);font-size:14px;line-height:1.5}.client-tabs{display:flex;gap:8px}.client-tabs button{flex:1;border:1px solid var(--line);background:#fff;padding:12px;font:600 13px var(--sans);cursor:pointer}.client-tabs button.active{background:var(--ink);color:#fff;border-color:var(--ink)}.client-form{display:grid;gap:14px}.client-form label{display:grid;gap:6px;font-size:13px;font-weight:600}.client-form input{height:48px;border:1px solid var(--line);padding:0 12px;font:16px var(--sans);border-radius:2px;background:#fff;width:100%}.client-submit{min-height:50px;border:0;background:var(--red);color:#fff;font:600 14px var(--sans);cursor:pointer}.client-summary{display:flex;align-items:center;gap:14px;border:1px solid var(--line);background:#f8f5ef;padding:14px 16px}.client-avatar{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:var(--red);color:#fff;font-weight:700}.client-summary b,.client-summary small{display:block}.client-summary small{color:var(--muted);margin-top:3px}.client-summary>div{flex:1}.client-logout{border:1px solid var(--line);background:#fff;padding:10px 14px;font:600 12px var(--sans);cursor:pointer}
