@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,500;0,600;1,400;1,500&display=swap');
:root{--ivory:#f8f5f1;--paper:#fffdfa;--blush:#e8c9c4;--rose:#b77e78;--ink:#282624;--muted:#77716d;--line:#e8e0da;--serif:"Playfair Display",Georgia,serif;--sans:"DM Sans",Arial,sans-serif;--max:1180px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:96px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.7;-webkit-font-smoothing:antialiased}img{display:block;width:100%;height:100%;object-fit:cover}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.container{width:min(var(--max),calc(100% - 56px));margin-inline:auto}.section-pad{padding:108px 0}.demo-ribbon{display:flex;justify-content:center;align-items:center;gap:9px;background:#302d2b;color:#f9f2ee;text-align:center;padding:7px 16px;font-size:9px;letter-spacing:.17em;font-weight:600}.demo-dot{width:6px;height:6px;border-radius:50%;background:#d5a49e}.ribbon-divider{color:#b89d98}.site-header{height:90px;background:rgba(255,253,250,.96);position:sticky;top:0;z-index:20;border-bottom:1px solid rgba(232,224,218,.75);backdrop-filter:blur(12px)}.nav-wrap{height:100%;display:flex;align-items:center;justify-content:space-between}.brand{display:inline-flex;align-items:center;gap:10px;flex-shrink:0}.brand-mark{font-family:var(--serif);font-size:39px;line-height:1;position:relative;color:var(--rose)}.brand-mark span{font-family:var(--sans);font-size:12px;position:absolute;right:-4px;top:0;color:var(--ink)}.brand-copy{display:flex;flex-direction:column;line-height:1.3;letter-spacing:.15em}.brand-copy strong{font-size:16px;letter-spacing:.23em}.brand-copy small{font-size:8px;letter-spacing:.13em;margin-top:4px}.nav-links{display:flex;align-items:center;gap:29px;font-size:12px;font-weight:500}.nav-links>a:not(.button){transition:color .2s}.nav-links>a:not(.button):hover,.text-link:hover{color:var(--rose)}.button{display:inline-flex;align-items:center;justify-content:center;gap:20px;min-height:51px;padding:0 23px;border:1px solid transparent;font-size:11px;font-weight:600;letter-spacing:.02em;transition:transform .2s,background .2s;cursor:pointer}.button:hover{transform:translateY(-2px)}.button-dark{background:var(--ink);color:white}.button-dark:hover{background:#4a413e}.button span{font-size:16px}.nav-book{min-height:44px;padding:0 17px;gap:12px}.menu-toggle{display:none}
.hero{background:var(--ivory);padding-top:78px;padding-bottom:28px;overflow:hidden}.hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:76px;align-items:center}.hero-copy{padding:8px 0 20px}.eyebrow{display:flex;align-items:center;gap:10px;font-size:9px;font-weight:700;letter-spacing:.19em;color:var(--rose);margin:0 0 23px}.eyebrow-line{display:inline-block;width:27px;height:1px;background:var(--rose)}h1,h2,h3,p{margin-top:0}h1,h2{font-family:var(--serif);font-weight:400;letter-spacing:-.045em;line-height:1.1}h1{font-size:clamp(47px,5.2vw,72px);margin-bottom:25px}h1 em,h2 em,.intro-inner em,.footer-mantra em{font-weight:400;color:var(--rose)}.hero-description{max-width:440px;color:#6f6965;font-size:14px;line-height:1.95;margin-bottom:30px}.hero-actions{display:flex;align-items:center;gap:27px;flex-wrap:wrap}.text-link{font-size:11px;font-weight:600;display:inline-flex;align-items:center;gap:12px;transition:color .2s}.text-link span{font-size:17px}.hero-note{display:flex;align-items:center;gap:12px;margin-top:49px;font-size:8px;letter-spacing:.18em;color:#8b827c}.note-stars{color:var(--rose);font-size:14px;letter-spacing:.18em}.hero-visual{height:510px;position:relative;max-width:530px;width:100%;justify-self:end}.hero-image-main{position:absolute;inset:0 30px 26px 70px;overflow:hidden;border-radius:48% 48% 3px 3px}.hero-image-main img{object-position:48% center}.hero-image-small{position:absolute;left:0;bottom:2px;width:160px;height:190px;border:8px solid var(--ivory);overflow:hidden}.hero-image-small img{object-position:center}.floating-seal{position:absolute;top:53px;left:5px;width:106px;height:106px;border-radius:50%;background:#fffdfa;display:flex;align-items:center;justify-content:center;flex-direction:column;box-shadow:0 9px 28px #5b42351a;color:var(--rose);font-size:8px;letter-spacing:.16em;line-height:1.5}.floating-seal strong{font-family:var(--serif);font-size:23px;font-weight:400;letter-spacing:0}.floating-seal i{font-style:normal;position:absolute;right:12px;bottom:9px;font-size:13px}.visual-caption{position:absolute;right:0;bottom:0;font-size:8px;letter-spacing:.2em;writing-mode:vertical-rl;color:#8c817c}.hero-bottom{display:flex;align-items:center;gap:18px;margin-top:55px;font-size:8px;letter-spacing:.17em;color:#8e8580}.hero-bottom-line{height:1px;background:#d9cec6;flex:1}
.intro-strip{background:#ead4cf;padding:24px 0}.intro-inner{display:flex;align-items:center;justify-content:center;gap:24px;text-align:center}.intro-inner p{margin:0;font-family:var(--serif);font-size:clamp(18px,2vw,24px);letter-spacing:-.02em}.intro-symbol{color:var(--rose);font-size:18px}
.section-heading{text-align:center;max-width:570px;margin:0 auto 48px}.section-heading .eyebrow{justify-content:center;margin-bottom:18px}.section-heading h2,.gallery-heading h2,.about-copy h2,.booking-copy h2{font-size:clamp(37px,4vw,52px);margin-bottom:18px}.section-heading>p:last-child{color:var(--muted);font-size:13px;max-width:470px;margin:0 auto;line-height:1.9}.services{background:var(--paper)}.service-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:13px}.service-card{position:relative;padding:25px 20px 21px;background:#faf7f4;border:1px solid #f0e8e2;min-height:300px;display:flex;flex-direction:column;transition:transform .25s,box-shadow .25s}.service-card:hover{transform:translateY(-5px);box-shadow:0 18px 40px #45342b0c}.featured-service{background:#f1e2de;border-color:#ead3ce}.service-number{font-size:9px;letter-spacing:.15em;color:#a79b95}.service-icon{font-family:var(--serif);font-size:31px;color:var(--rose);margin:18px 0 15px}.service-card h3{font-family:var(--serif);font-size:19px;font-weight:400;line-height:1.3;margin-bottom:12px}.service-card>p{color:var(--muted);font-size:11px;line-height:1.8;margin-bottom:22px}.service-foot{display:flex;justify-content:space-between;align-items:end;gap:8px;border-top:1px solid #e4d9d2;padding-top:13px;margin-top:auto}.service-foot span{font-size:9px;color:#817771}.service-foot strong{font-family:var(--serif);font-size:18px;font-weight:400;white-space:nowrap}.service-book{display:flex;justify-content:space-between;margin-top:15px;padding-top:12px;border-top:1px solid #e4d9d2;font-size:10px;font-weight:600}.service-book span{color:var(--rose);font-size:15px}.price-note,.gallery-disclaimer{text-align:center;color:#9a918b;font-size:10px;margin:25px 0 0}
.gallery{background:#f5efeb}.gallery-heading{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:38px}.gallery-heading .eyebrow{margin-bottom:15px}.gallery-heading h2{margin:0}.gallery-heading>p{max-width:300px;color:var(--muted);font-size:12px;line-height:1.9;margin:0 0 5px}.gallery-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;grid-template-rows:220px 220px;gap:15px}.gallery-item{position:relative;overflow:hidden;margin:0;background:#e8d9d2}.gallery-item:after{content:"";position:absolute;inset:45% 0 0;background:linear-gradient(transparent,#2017149c)}.gallery-item img{transition:transform .7s}.gallery-item:hover img{transform:scale(1.04)}.gallery-large{grid-row:span 2}.gallery-item figcaption{position:absolute;z-index:1;bottom:17px;left:19px;color:white;font-size:8px;letter-spacing:.17em}.gallery-disclaimer{text-align:left}
.about{background:var(--paper)}.about-grid{display:grid;grid-template-columns:1fr .9fr;gap:100px;align-items:center}.about-image{height:550px;position:relative;padding:0 35px 35px 0}.about-image:before{content:"";position:absolute;top:30px;right:0;bottom:0;left:35px;background:#ead5cf}.about-image>img{position:relative;z-index:1;object-position:center}.about-image-label{position:absolute;z-index:2;left:-15px;bottom:0;background:#fffdfa;padding:21px 26px;box-shadow:0 12px 35px #3b2a2010;display:flex;flex-direction:column;gap:3px}.about-image-label span{font-size:8px;letter-spacing:.17em;color:var(--rose)}.about-image-label strong{font-family:var(--serif);font-size:19px;font-weight:400}.about-copy .eyebrow{margin-bottom:20px}.about-copy h2{margin-bottom:24px}.about-copy>p:not(.eyebrow){font-size:13px;color:var(--muted);line-height:2;margin-bottom:15px}.about-values{border-top:1px solid var(--line);margin:27px 0 26px}.about-values div{display:flex;gap:17px;align-items:center;padding:11px 0;border-bottom:1px solid var(--line)}.about-values span{font-size:9px;color:var(--rose);letter-spacing:.12em}.about-values strong{font-family:var(--serif);font-size:16px;font-weight:400}
.booking{background:#f3e8e4}.booking-grid{display:grid;grid-template-columns:.78fr 1.22fr;gap:80px;align-items:start}.booking-copy{padding-top:30px}.booking-copy .eyebrow{margin-bottom:20px}.booking-copy h2{margin-bottom:24px}.booking-copy>p:not(.eyebrow){font-size:13px;color:#746b66;line-height:2}.booking-detail{display:flex;gap:15px;margin-top:29px;max-width:390px}.detail-icon{width:34px;height:34px;display:grid;place-items:center;border:1px solid #d9b9b2;color:var(--rose);flex-shrink:0}.booking-detail strong{font-family:var(--serif);font-size:16px;font-weight:400}.booking-detail p{font-size:11px;color:#80756f;line-height:1.8;margin:3px 0 0}.booking-form{background:var(--paper);padding:35px 38px;box-shadow:0 15px 50px #55372b0a}.form-top{display:flex;justify-content:space-between;gap:15px;border-bottom:1px solid var(--line);padding-bottom:18px;margin-bottom:23px;font-size:8px;letter-spacing:.15em;font-weight:700}.form-top span:last-child{color:var(--rose)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:17px}.field{display:flex;flex-direction:column;margin-bottom:17px;min-width:0}.field label{font-size:10px;font-weight:600;margin-bottom:7px}.field label span{font-weight:400;color:#958b85}.field input,.field select,.field textarea{width:100%;border:1px solid #e6ddd7;background:#fffdfa;border-radius:0;padding:12px 12px;color:var(--ink);font-size:11px;min-height:43px;outline:none;transition:border-color .2s}.field textarea{resize:vertical;min-height:84px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--rose);box-shadow:0 0 0 2px #b77e7817}.field input[aria-invalid="true"],.field select[aria-invalid="true"]{border-color:#b44949}.form-submit{width:100%;margin-top:2px}.form-privacy{font-size:9px;color:#9b918b;text-align:center;margin:13px 0 0}.form-feedback{margin-top:17px;padding:14px 16px;font-size:11px;line-height:1.7;border-left:3px solid var(--rose);background:#f7eeeb}.form-feedback strong{display:block;font-family:var(--serif);font-size:18px;font-weight:400;margin-bottom:3px}.form-feedback[hidden]{display:none}
.contact{background:var(--paper)}.contact .section-heading{margin-bottom:45px}.contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.contact-card{text-align:center;padding:34px 20px 30px;background:#faf6f3;border:1px solid #f0e7e1}.contact-icon{display:block;font-size:23px;color:var(--rose);margin-bottom:12px}.contact-card h3{font-family:var(--serif);font-size:20px;font-weight:400;margin-bottom:12px}.contact-card p{font-size:12px;line-height:2;color:#756d68;margin-bottom:16px}.contact-card p a:hover{color:var(--rose);text-decoration:underline}.contact-card small{font-size:8px;letter-spacing:.13em;color:#a19892}
.site-footer{background:#2d2927;color:#f7f0ec;padding:39px 0 0}.footer-main{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-bottom:32px}.footer-brand .brand-copy small{color:#c7b8b0}.footer-brand .brand-copy strong{color:#fff8f4}.footer-mantra{font-family:var(--serif);font-size:20px;margin:0}.footer-social{display:flex;gap:8px}.footer-social a{display:grid;place-items:center;width:33px;height:33px;border:1px solid #655b55;font-size:9px;transition:background .2s}.footer-social a:hover{background:#594743}.footer-bottom{border-top:1px solid #4c4440;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 0;font-size:9px;color:#c5b8b1}.footer-bottom strong{color:#f6e8e1;font-weight:600}.footer-bottom a{white-space:nowrap}.footer-bottom a:hover{color:#fff}.mobile-booking{display:none}
@media(max-width:1050px){.nav-links{gap:17px}.hero-grid{gap:40px}.hero-visual{height:460px}.service-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.service-card{min-height:280px}.about-grid{gap:60px}.booking-grid{gap:45px}.booking-form{padding:30px}}
@media(max-width:760px){.container{width:min(100% - 38px,var(--max))}.section-pad{padding:75px 0}.site-header{height:76px}.brand-mark{font-size:34px}.brand-copy strong{font-size:14px}.brand-copy small{font-size:7px}.menu-toggle{display:flex;flex-direction:column;gap:5px;border:0;background:transparent;padding:10px;z-index:22}.menu-toggle span{display:block;width:23px;height:1px;background:var(--ink);transition:transform .2s}.menu-toggle[aria-expanded="true"] span:first-child{transform:translateY(3px) rotate(45deg)}.menu-toggle[aria-expanded="true"] span:last-child{transform:translateY(-3px) rotate(-45deg)}.nav-links{position:absolute;top:75px;left:0;right:0;display:none;flex-direction:column;align-items:stretch;gap:0;padding:12px 20px 22px;background:var(--paper);border-bottom:1px solid var(--line);box-shadow:0 15px 25px #2c21170d}.nav-links.open{display:flex}.nav-links>a:not(.button){padding:12px 5px;border-bottom:1px solid #f0e9e4}.nav-book{margin-top:14px}.hero{padding-top:54px}.hero-grid{grid-template-columns:1fr;gap:37px}.hero-copy{padding:0}.hero h1{font-size:clamp(46px,12vw,65px)}.hero-description{font-size:13px}.hero-note{margin-top:31px}.hero-visual{justify-self:center;height:min(112vw,480px);max-width:490px}.hero-image-main{inset:0 23px 23px 53px}.hero-image-small{width:128px;height:150px;border-width:6px}.floating-seal{width:87px;height:87px;top:35px;left:0}.floating-seal strong{font-size:20px}.visual-caption{right:-2px}.hero-bottom{margin-top:28px;font-size:7px;gap:10px}.intro-strip{padding:20px 0}.intro-inner{gap:12px}.intro-inner p{font-size:17px}.section-heading{margin-bottom:35px}.service-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.service-card{padding:20px 15px;min-height:278px}.service-card h3{font-size:18px}.service-card>p{font-size:10px}.service-foot{align-items:start;flex-direction:column;gap:2px}.gallery-heading{align-items:start;flex-direction:column;gap:15px}.gallery-heading>p{max-width:390px}.gallery-grid{grid-template-columns:1fr 1fr;grid-template-rows:250px 190px 190px;gap:10px}.gallery-large{grid-column:span 2;grid-row:auto}.gallery-item figcaption{left:12px;bottom:12px;font-size:7px}.about-grid{grid-template-columns:1fr;gap:45px}.about-image{height:440px;margin-left:12px}.about-copy{max-width:550px}.booking-grid{grid-template-columns:1fr;gap:35px}.booking-copy{padding-top:0}.booking-form{padding:25px 20px}.contact-grid{grid-template-columns:1fr;gap:10px}.contact-card{padding:25px 15px}.footer-main{flex-wrap:wrap}.footer-mantra{order:3;width:100%;font-size:19px}.footer-bottom{align-items:flex-start;flex-direction:column;gap:9px;padding-bottom:75px}.mobile-booking{position:fixed;z-index:19;bottom:12px;left:12px;right:12px;display:flex;align-items:center;justify-content:center;gap:20px;min-height:50px;background:var(--ink);color:white;box-shadow:0 5px 22px #17110f38;font-size:12px;font-weight:600}.mobile-booking span{font-size:16px}}
@media(max-width:390px){.container{width:calc(100% - 30px)}.form-row{grid-template-columns:1fr;gap:0}.form-top{font-size:7px}.hero-actions{gap:18px}.hero-actions .button{padding:0 16px}.service-card{padding:17px 12px}.service-card h3{font-size:16px}.service-foot strong{font-size:17px}.gallery-grid{grid-template-rows:220px 165px 165px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
