:root{--ink:#352929;--paper:#fffaf7;--blush:#f8e8e7;--pink:#c84f75;--deep:#8c294f;--line:#e7d9d5;--white:#fff;--shadow:0 24px 70px #6f3a4a1c}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font-family:'DM Sans',Arial,sans-serif;line-height:1.6}h1,h2,h3{font-family:'Playfair Display',Georgia,serif;font-weight:500;line-height:1.05;margin:0}h1{font-size:clamp(3.5rem,8vw,7rem)}h2{font-size:clamp(2.5rem,5vw,4.5rem)}h3{font-size:2rem}a{color:inherit}img{display:block;max-width:100%}.skip{position:absolute;top:-100px;left:1rem;background:white;padding:.7rem;z-index:20}.skip:focus{top:1rem}.header{position:absolute;z-index:10;top:0;left:0;width:100%;display:flex;align-items:center;justify-content:space-between;padding:1.3rem 5vw;color:white;border-bottom:1px solid #ffffff55}.brand{text-decoration:none;text-transform:uppercase;letter-spacing:.12em;font-size:.7rem;line-height:1.1}.brand span{display:block;font-family:'Playfair Display',serif;font-size:1.8rem;font-style:italic;text-transform:none;letter-spacing:0}.header nav{display:flex;align-items:center;gap:2rem}.header nav>a:not(.button){font-size:.85rem;text-decoration:none}.menu{display:none}.button{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:100px;background:var(--pink);color:white;text-decoration:none;text-transform:uppercase;letter-spacing:.12em;font:600 .72rem 'DM Sans';padding:1.1rem 1.7rem;cursor:pointer;transition:.2s}.button:hover{background:var(--deep);transform:translateY(-1px)}.button.small{padding:.7rem 1.2rem}.hero{height:min(860px,100vh);min-height:650px;position:relative;color:white;display:flex;align-items:center}.hero>img{position:absolute;width:100%;height:100%;object-fit:cover;object-position:center 42%}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,#251214c9 0%,#30191d68 50%,transparent 85%),linear-gradient(0deg,#18080b66,transparent 45%)}.hero-copy{position:relative;width:min(650px,90%);margin-left:8vw;margin-top:5rem}.hero-copy>p:not(.eyebrow){max-width:480px;font-size:1.1rem}.eyebrow{text-transform:uppercase;letter-spacing:.22em;font-size:.72rem;font-weight:600}.pink{color:var(--pink)}.actions{display:flex;align-items:center;gap:2rem;margin-top:2rem}.text-link{font-weight:600;text-underline-offset:5px}.light{color:white}.scroll{position:absolute;bottom:2rem;right:5vw;font-size:.75rem;letter-spacing:.12em;text-transform:uppercase}.section{padding:8rem max(6vw,1.5rem)}.intro{display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:center}.intro .lead{font-size:1.45rem}.section-head{text-align:center;max-width:680px;margin:0 auto 4rem}.services{background:#f3dedf}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);max-width:1200px;margin:auto}.service-grid article{position:relative;padding:3rem;border-right:1px solid #d9c1c1;text-align:center}.service-grid article:last-child{border:0}.service-grid article>span{position:absolute;top:0;left:1rem;color:#a4777e;font-size:.75rem}.service-icon{font-size:2.5rem;color:var(--pink);height:4rem}.service-grid p{min-height:80px}.service-grid a{color:var(--deep);font-weight:600;text-underline-offset:5px}.gallery{display:grid;grid-template-columns:.85fr 1.15fr;gap:7vw;align-items:center}.gallery-copy{max-width:500px}.gallery-copy ul{list-style:none;padding:0;margin-top:2rem}.gallery-copy li{border-top:1px solid var(--line);padding:1rem 0}.gallery figure{margin:0;position:relative}.gallery figure img{aspect-ratio:4/3;object-fit:cover;box-shadow:var(--shadow)}.gallery figcaption{position:absolute;bottom:-1.5rem;left:-2rem;background:var(--pink);color:white;padding:1.2rem 2rem;font-family:'Playfair Display';font-style:italic}.booking{background:#4d2933;color:white;display:grid;grid-template-columns:.7fr 1.3fr;gap:7vw}.booking-intro{position:sticky;top:3rem;align-self:start}.booking-intro>p{max-width:360px}.contact-card{margin-top:3rem;border-top:1px solid #ffffff44;padding-top:2rem;display:flex;flex-direction:column;gap:.4rem}.contact-card span{text-transform:uppercase;letter-spacing:.15em;font-size:.7rem}.contact-card a{font-size:1.05rem}.form-shell{background:white;color:var(--ink);padding:3rem;border-radius:4px;box-shadow:var(--shadow)}form{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.full{grid-column:1/-1}.field{display:flex;flex-direction:column}label,legend{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.13em;margin-bottom:.5rem}label em{font-style:normal;color:#927c7e;text-transform:none;letter-spacing:0}input,select,textarea{width:100%;border:0;border-bottom:1px solid #cbb9b7;background:transparent;padding:.65rem 0;font:inherit;color:inherit;border-radius:0}textarea{border:1px solid #cbb9b7;padding:.8rem}input:focus,select:focus,textarea:focus{outline:2px solid #c84f7566;outline-offset:3px}fieldset{border:0;padding:0;margin:0}.slots{display:flex;flex-wrap:wrap;gap:.6rem}.slots p{font-size:.85rem;color:#806f70}.slot{border:1px solid #cfbfc0;background:white;padding:.65rem 1rem;border-radius:100px;cursor:pointer}.slot.active{background:var(--pink);color:white;border-color:var(--pink)}.field small,fieldset small{color:#ad204d;min-height:1.1rem}.privacy{font-size:.72rem;color:#7c6b6b}.status{font-size:.9rem}.confirmation{text-align:center;padding:2rem}.confirmation .check{width:64px;height:64px;margin:auto;border-radius:50%;background:#f0dfe3;color:var(--deep);display:grid;place-items:center;font-size:2rem}.confirmation h3{margin:1rem 0}.booking-code{font-size:1.4rem;letter-spacing:.12em;color:var(--deep);font-weight:600}.contact{text-align:center}.contact-grid{display:grid;grid-template-columns:repeat(3,1fr);max-width:1000px;margin:4rem auto 0;border-top:1px solid var(--line);padding-top:2rem}.contact-grid span{text-transform:uppercase;letter-spacing:.14em;color:var(--pink);font-size:.7rem}.contact-grid a{display:block;font-size:1.2rem;margin-top:1rem}.contact-grid small{color:#8d7a7a}footer{background:#2e1c21;color:white;padding:4rem 6vw 2rem;text-align:center}footer .brand{display:inline-block}footer>p{font-family:'Playfair Display';font-style:italic;font-size:1.5rem}footer>div{display:flex;justify-content:center;gap:2rem;margin:2rem}footer small{color:#bdaeb2}
.menu-catalog{max-width:1100px;margin:auto;background:#fff9f7;border:1px solid #dec8c8}.menu-group{display:grid;grid-template-columns:230px 1fr;border-bottom:1px solid #dec8c8}.menu-group:last-child{border-bottom:0}.menu-group-title{padding:2rem;border-right:1px solid #dec8c8}.menu-group-title span{display:block;color:#a4777e;font-size:.72rem;margin-bottom:1rem}.menu-group-title h3{font-size:2.2rem}.menu-items{padding:0 2rem}.menu-item{padding:1.7rem 0;border-bottom:1px solid #eadbda}.menu-item:last-child{border:0}.menu-item-main{display:flex;justify-content:space-between;gap:2rem}.menu-item h4{font:500 1.25rem 'Playfair Display',Georgia,serif;margin:0}.menu-item p{font-size:.88rem;color:#79696b;margin:.3rem 0}.menu-item-main>strong{font:500 1.25rem Georgia;color:var(--deep);white-space:nowrap}.menu-meta{display:flex;align-items:center;gap:1rem;margin-top:.8rem;font-size:.75rem;text-transform:uppercase;letter-spacing:.08em}.menu-meta>a{margin-left:auto;color:var(--deep);font-weight:600}.swatches{display:flex;gap:.3rem}.swatch{width:18px;height:18px;border-radius:50%;background:var(--swatch);border:2px solid white;box-shadow:0 0 0 1px #c9b7b7}.loading-copy{text-align:center;padding:3rem}
@media(max-width:800px){.header{position:fixed;background:#44242ee8;backdrop-filter:blur(12px)}.menu{display:block;background:none;border:1px solid #ffffff66;color:white;border-radius:100px;padding:.5rem 1rem}.header nav{display:none;position:absolute;top:100%;left:0;width:100%;padding:2rem;background:#44242e;flex-direction:column}.header nav.open{display:flex}.hero-copy{margin:6rem 1.5rem 0}.hero-shade{background:#2c141997}.scroll{display:none}.intro,.gallery,.booking{grid-template-columns:1fr}.section{padding:5rem 1.4rem}.service-grid{grid-template-columns:1fr}.service-grid article{border-right:0;border-bottom:1px solid #d9c1c1}.menu-group{grid-template-columns:1fr}.menu-group-title{border-right:0;border-bottom:1px solid #dec8c8;padding:1.3rem 1.5rem}.menu-items{padding:0 1.5rem}.menu-meta{flex-wrap:wrap}.gallery figcaption{left:0}.booking-intro{position:static}.form-shell{padding:1.5rem}form{grid-template-columns:1fr}.contact-grid{grid-template-columns:1fr;gap:2rem}.contact-grid>div{border-bottom:1px solid var(--line);padding-bottom:2rem}.actions{align-items:flex-start;flex-direction:column;gap:1rem}footer>div{flex-direction:column;gap:.7rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
input[aria-invalid="true"],select[aria-invalid="true"],textarea[aria-invalid="true"],.slots[aria-invalid="true"]{border-color:#ad204d;outline:2px solid #ad204d55;outline-offset:3px}.slots[aria-invalid="true"]{border-radius:4px;padding:.35rem}
@media(max-width:800px){.hero{height:100svh;min-height:620px;align-items:flex-start}.hero-copy{width:calc(100% - 3rem);margin:0;position:absolute;z-index:3;top:clamp(5.8rem,13svh,7.4rem);left:1.5rem}.hero-copy h1{font-size:clamp(2.65rem,12vw,4.2rem);line-height:.94}.hero-copy>p:not(.eyebrow){max-width:94%;margin:.7rem 0 0;font-size:.9rem;line-height:1.45}.hero-copy .actions{margin-top:1rem}.hero-copy .button{padding:.85rem 1.25rem}.hero-shade{background:linear-gradient(180deg,#241115dc 0%,#2c141985 45%,#180b0ed1 100%)}}
@media(max-width:800px) and (max-height:700px){.hero{min-height:560px}.hero-copy{top:5.2rem}.hero-copy h1{font-size:2.45rem}.hero-copy>p:not(.eyebrow){font-size:.82rem}.hero-copy .actions{margin-top:.65rem}.hero-business-info{left:.8rem;right:.8rem;bottom:.4rem}.hero-business-info>div,.hero-business-info>a{padding:.3rem .1rem}.hero-business-info p{font-size:.7rem}}
