:root{--ink:#2d2227;--muted:#77696f;--rose:#9b596a;--rose-dark:#7c4053;--blush:#f5e9e8;--paper:#fbf9f7;--line:#e8dfdc;--cream:#fff;--deep:#291d23}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 'DM Sans',sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:'Playfair Display',Georgia,serif;font-weight:400;line-height:1.14}h2{font-size:clamp(2.3rem,4vw,4rem);letter-spacing:-.035em}em{font-weight:400;color:var(--rose)}:focus-visible{outline:3px solid #c78998;outline-offset:3px}.site-header{height:88px;display:flex;align-items:center;justify-content:space-between;gap:30px;padding:0 clamp(24px,5vw,88px);background:#fff;position:relative;z-index:5}.brand{display:flex;align-items:center;gap:10px;font-size:1.13rem;font-weight:700;letter-spacing:.22em;line-height:1}.brand small{display:block;font-size:.58rem;letter-spacing:.54em;margin-top:7px}.brand-mark{font-family:Georgia,serif;border:1px solid #b9848e;width:42px;height:42px;display:grid;place-items:center;position:relative;font-size:1.7rem;font-weight:400;letter-spacing:-.13em}.brand-mark span{font-family:serif;position:absolute;right:1px;top:-8px;font-size:.8rem;color:var(--rose)}nav{display:flex;gap:clamp(15px,2.4vw,40px);font-size:.88rem;font-weight:600}nav a:hover,.text-link:hover{color:var(--rose)}.btn{border:1px solid transparent;display:inline-flex;align-items:center;justify-content:center;gap:28px;min-height:52px;padding:12px 24px;font-size:.83rem;font-weight:700;letter-spacing:.02em;transition:background .2s,transform .2s}.btn:hover{transform:translateY(-2px)}.btn span{font-size:1.2rem;font-weight:400}.btn-dark{background:var(--deep);color:white}.btn-rose{background:var(--rose);color:white}.btn-rose:hover{background:var(--rose-dark)}.btn-outline{background:transparent;border-color:#bc9ba2;color:var(--ink)}.btn-light{background:#fff;color:var(--ink)}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.menu-toggle{display:none;border:0;background:none;font-size:1.6rem}.hero{min-height:640px;display:grid;grid-template-columns:52% 48%;background:#f3e8e7}.hero-copy{padding:clamp(65px,8vw,130px) 7vw 50px clamp(24px,9vw,150px);display:flex;flex-direction:column;align-items:flex-start}.eyebrow{font-size:.73rem;letter-spacing:.22em;font-weight:700;color:var(--rose);margin-bottom:22px}.eyebrow .line{display:inline-block;width:24px;height:1px;background:var(--rose);vertical-align:middle;margin-right:12px}.hero h1{font-size:clamp(3.2rem,5.3vw,6.1rem);letter-spacing:-.055em;margin-bottom:28px}.hero-copy>p{max-width:440px;color:#66575c;line-height:1.85;font-size:1.05rem}.hero-actions{display:flex;align-items:center;gap:28px;margin-top:22px}.text-link{font-weight:700;font-size:.85rem;border-bottom:1px solid currentColor;padding-bottom:5px}.text-link span{margin-left:20px}.hero-note{display:flex;align-items:center;gap:12px;margin-top:auto;padding-top:60px;font-size:.78rem}.hero-note strong,.hero-note span{display:block}.hero-note div span{color:var(--muted)}.sparkle{font-size:1.7rem;color:var(--rose)}.hero-image{min-height:620px;position:relative;overflow:hidden}.hero-image>img{width:100%;height:100%;object-fit:cover;object-position:50% 40%;filter:saturate(.75)}.image-badge{position:absolute;left:-1px;bottom:0;background:var(--deep);color:#fff;font-family:'Playfair Display',serif;font-size:1.25rem;line-height:1.4;padding:28px 40px}.image-badge span{color:#d9aeb8;font-family:sans-serif;margin-right:15px}.section-wrap{max-width:1300px;margin:auto;padding:110px clamp(24px,5vw,66px)}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:35px}.section-heading h2{margin-bottom:10px}.section-heading p{color:var(--muted);margin-bottom:0}.category-tabs{display:flex;gap:8px;overflow:auto;padding:0 0 18px;scrollbar-width:thin}.category-tabs button{white-space:nowrap;background:none;border:1px solid var(--line);padding:10px 18px;border-radius:50px;color:var(--muted);font-size:.86rem}.category-tabs button[aria-selected=true]{background:var(--deep);color:#fff;border-color:var(--deep)}.service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:15px}.service-card{background:#fff;border:1px solid var(--line);padding:21px 24px;display:flex;justify-content:space-between;gap:15px;min-height:106px;align-items:center}.service-card h3{font:600 1rem/1.4 'DM Sans',sans-serif;margin:0 0 4px}.service-card small{color:var(--muted);font-size:.83rem}.service-card-right{text-align:right;flex-shrink:0}.service-card-right strong{display:block;font-size:.94rem}.service-card-right button{border:0;background:none;color:var(--rose);padding:4px 0 0;font-size:.83rem;font-weight:700}.service-card-right button:hover{text-decoration:underline}.service-footnote{color:var(--muted);font-size:.8rem;margin-top:20px}.feature{background:var(--deep);color:#fff;display:grid;grid-template-columns:1fr 1fr;min-height:480px}.feature-photo{height:480px;overflow:hidden}.feature-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 35%}.feature-text{padding:80px clamp(40px,9vw,150px);align-self:center}.feature-text .eyebrow{color:#caa4ad}.feature-text em{color:#dab1bc}.feature-text p{color:#d4c8cc;max-width:450px;line-height:1.85;margin:25px 0 30px}.about{display:grid;grid-template-columns:1fr 1fr;gap:13%;align-items:center}.about-text p{color:var(--muted);max-width:460px;line-height:1.85;margin:30px 0}.about-photo{max-width:470px;justify-self:end;position:relative}.about-photo:before{content:"";position:absolute;inset:18px -18px -18px 18px;border:1px solid #c8a1a8;z-index:-1}.about-photo img{width:100%;max-height:590px;object-fit:cover}.gallery{padding-top:35px}.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.gallery-grid img{width:100%;height:300px;object-fit:cover}.gallery-grid img:nth-child(2){object-position:50% 20%}.visit{display:grid;grid-template-columns:1fr 1fr;gap:12%;align-items:center}.visit p{color:var(--muted)}.visit .btn{margin-top:20px}.visit-card{background:var(--deep);color:white;padding:55px;min-height:380px}.visit-symbol{color:#c89ca7;font-size:2.8rem;margin-bottom:35px}.visit-card span{font-size:.75rem;letter-spacing:.15em}.visit-card #hoursList{margin-top:15px}.hour-row{display:flex;justify-content:space-between;gap:15px;padding:5px 0;font-size:.9rem}.visit-divider{border-top:1px solid #61535a;margin:30px 0}footer{background:#21181d;color:white;padding:55px clamp(24px,6vw,90px) 25px}.footer-top,.footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:20px}.footer-top p{color:#b9aaaf}.footer-bottom{border-top:1px solid #4b3d43;margin-top:45px;padding-top:25px;font-size:.8rem;color:#b9aaaf}.footer-bottom div{display:flex;gap:28px}.footer-bottom button{background:none;border:0;color:inherit;padding:0;font-size:inherit}.overlay[hidden]{display:none}.overlay{position:fixed;inset:0;z-index:20}.drawer-backdrop{position:absolute;inset:0;background:#1d1519a8}.booking-drawer{position:absolute;right:0;top:0;bottom:0;background:var(--paper);width:min(100%,590px);padding:45px clamp(24px,5vw,55px);overflow:auto;box-shadow:-20px 0 60px #160e1240}.booking-drawer h2{font-size:2.7rem;margin-bottom:25px}.close-button{position:absolute;right:26px;top:24px;background:none;border:0;font-size:2rem;line-height:1}.field{display:block;margin:15px 0;font-weight:700;font-size:.84rem}.field input,.field select,.field textarea{display:block;margin-top:7px;width:100%;background:#fff;border:1px solid #d8cecc;border-radius:0;padding:13px;color:var(--ink);outline-color:var(--rose);min-height:48px}.field textarea{resize:vertical;min-height:85px}.booking-step{font-size:.78rem;letter-spacing:.14em;color:var(--rose);font-weight:700;margin-bottom:12px}.booking-select{display:grid;grid-template-columns:1fr 1fr;gap:12px}.booking-select .field{margin:0}.addons{border-top:1px solid var(--line);margin:25px 0;padding-top:20px}.addons h3{font:600 1rem 'DM Sans',sans-serif}.check-row{display:flex;align-items:center;gap:10px;margin:10px 0;font-size:.88rem}.check-row input{accent-color:var(--rose);width:18px;height:18px}.slot-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:12px 0 25px}.slot-grid button{background:#fff;border:1px solid var(--line);padding:11px 5px;font-size:.9rem;min-height:46px}.time-hint{color:var(--muted);font-size:.9rem;margin:6px 0}.slot-grid button.selected{background:var(--deep);color:#fff;border-color:var(--deep)}.slot-grid button:hover{border-color:var(--rose)}.summary{background:#f0e5e4;padding:17px;margin:18px 0;font-size:.9rem}.summary strong{display:block;font-size:1rem}.inline-error{color:#9a3449;font-weight:600;font-size:.88rem}.empty-state{color:var(--muted);background:#fff;padding:22px;border:1px solid var(--line)}.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);z-index:50;background:var(--deep);color:#fff;padding:14px 22px;box-shadow:0 10px 30px #0003;max-width:90vw;display:none}.toast.show{display:block}.success-mark{font-size:2.5rem;color:var(--rose)}.admin-shell{max-width:1100px;margin:0 auto;padding:40px 24px 100px}.admin-bar{display:flex;justify-content:space-between;align-items:center;gap:20px}.admin-tabs{display:flex;gap:10px;margin:30px 0}.admin-tabs button{border:1px solid var(--line);background:#fff;padding:10px 18px}.admin-tabs button.active{background:var(--deep);color:#fff}.admin-card{background:#fff;padding:26px;border:1px solid var(--line);margin:12px 0}.admin-card h3{font:600 1.1rem 'DM Sans',sans-serif}.admin-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px}.admin-row{display:flex;justify-content:space-between;gap:15px;align-items:center;border-top:1px solid var(--line);padding:16px 0}.admin-row button{background:none;border:0;color:var(--rose);font-weight:700}.admin-row small{color:var(--muted)}.admin-table{width:100%;border-collapse:collapse}.admin-table td,.admin-table th{padding:10px;border-bottom:1px solid var(--line);text-align:left}.admin-table input{width:90px;padding:5px;border:1px solid var(--line)}@media(max-width:920px){.site-header nav{display:none;position:absolute;top:88px;left:0;right:0;background:#fff;padding:24px;box-shadow:0 15px 25px #0001;flex-direction:column}.site-header nav.open{display:flex}.menu-toggle{display:block}.header-book{margin-left:auto}.hero-copy{padding-left:6vw}.hero h1{font-size:3.7rem}.gallery-grid img{height:220px}}@media(max-width:680px){.site-header{height:72px;padding:0 20px}.site-header nav{top:72px}.brand{font-size:.95rem}.brand-mark{width:35px;height:35px}.header-book{display:none}.hero{display:flex;flex-direction:column-reverse}.hero-image{min-height:310px;height:350px}.hero-copy{padding:45px 25px 30px}.hero h1{font-size:3.5rem}.hero-note{padding-top:30px}.image-badge{padding:14px 20px;font-size:.98rem}.section-wrap{padding:70px 22px}.section-heading{align-items:start;flex-direction:column}.service-grid,.feature,.about,.visit{grid-template-columns:1fr}.feature-photo{height:320px}.feature-text{padding:55px 25px}.about{gap:50px}.about-photo{width:85%;justify-self:center}.gallery{padding-top:0}.gallery-grid{grid-template-columns:repeat(2,1fr);gap:8px}.gallery-grid img{height:180px}.visit-card{min-height:0;padding:35px}.footer-top,.footer-bottom{align-items:start;flex-direction:column}.footer-bottom div{flex-wrap:wrap}.booking-select,.admin-grid{grid-template-columns:1fr}.slot-grid{grid-template-columns:repeat(3,1fr)}.admin-row{align-items:start;flex-direction:column}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn{transition:none}}

/* Small-screen booking and service management */
.mobile-book{display:none}.table-scroll{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.admin-table{min-width:650px}input,select,textarea{min-width:0}
@media(max-width:680px){.mobile-book{display:inline-flex;align-items:center;justify-content:center;background:var(--deep);color:#fff;border:0;min-height:42px;padding:0 16px;font-size:.875rem;font-weight:700;margin-left:auto}.site-header{gap:12px}.hero-actions{flex-direction:column;align-items:flex-start;gap:18px}.hero-actions .btn{width:100%;max-width:290px}.hero h1{font-size:clamp(2.8rem,12vw,3.5rem)}.admin-card{padding:20px}.booking-drawer h2{font-size:2.3rem}.category-tabs button,.slot-grid button,.service-card-right button{font-size:.875rem}}
@media(max-width:360px){.brand{letter-spacing:.13em}.brand-mark{flex:none}.gallery-grid img{height:140px}.booking-drawer{padding:42px 18px}}

.policy-page{max-width:780px;margin:0 auto;padding:70px 24px 100px}.policy-page h1{font-size:clamp(2.6rem,6vw,4rem)}.policy-page h2{font-size:1.6rem;margin-top:34px}.policy-page p,.policy-page li{line-height:1.8}.policy-page a{text-decoration:underline;color:var(--rose)}
