:root{--cream:#fbf8f5;--paper:#f3ece7;--rose:#b9847c;--rose-dark:#8c5e57;--ink:#2d2725;--muted:#746a66;--line:rgba(45,39,37,.14);font-family:DM Sans,sans-serif;color:var(--ink);background:var(--cream);font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;overflow-x:hidden}a{color:inherit;text-decoration:none}button{font:inherit}.site-header{position:fixed;top:0;left:0;width:100%;height:86px;padding:0 clamp(24px,5vw,76px);display:flex;align-items:center;justify-content:space-between;z-index:20;transition:.35s}.site-header.scrolled{height:72px;background:#fbf8f5e0;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px}.brand img{width:45px;height:45px;border-radius:50%;object-fit:cover}.brand>span{font-family:Italiana,serif;font-size:21px;line-height:.85}.brand small{display:block;margin-top:7px;font:500 9px/1 DM Sans,sans-serif;text-transform:uppercase;letter-spacing:.3em;color:var(--rose-dark)}nav{display:flex;align-items:center;gap:34px;font-size:13px;font-weight:500}nav a{position:relative}nav a:not(.nav-booking):after{content:"";position:absolute;left:0;bottom:-7px;width:0;height:1px;background:var(--rose);transition:.3s}nav a:hover:after{width:100%}.nav-booking{border:1px solid var(--ink);padding:12px 19px;border-radius:30px;transition:.3s}.nav-booking:hover{background:var(--ink);color:#fff}.menu-toggle{display:none;border:0;background:none}.hero{min-height:100vh;padding:130px clamp(24px,7vw,110px) 75px;display:grid;grid-template-columns:1.05fr .95fr;align-items:center;position:relative;overflow:hidden}.hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(105deg,var(--cream) 0 56%,var(--paper) 56%);z-index:-2}.hero-glow{position:absolute;border-radius:50%;filter:blur(10px);z-index:-1}.glow-one{width:420px;height:420px;background:#dec2ba38;top:-130px;left:-150px}.glow-two{width:300px;height:300px;background:#fff9;right:6%;bottom:5%}.eyebrow{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.28em;color:var(--rose-dark);margin:0 0 23px}.hero h1,.section h2,.booking-banner h2,.contact h2{font-family:Italiana,serif;font-size:clamp(53px,6.1vw,94px);font-weight:400;line-height:.94;letter-spacing:-.02em;margin:0}.hero h1 em,.section h2 em,.booking-banner h2 em,.contact h2 em{color:var(--rose);font-weight:400}.lead{max-width:570px;font-size:17px;line-height:1.8;color:var(--muted);margin:31px 0 38px}.hero-actions{display:flex;align-items:center;gap:30px}.button{display:inline-flex;align-items:center;justify-content:center;gap:26px;padding:17px 24px;border-radius:3px;font-size:13px;font-weight:600;transition:.3s}.button span{font-size:18px}.button.primary{color:#fff;background:var(--ink)}.button.primary:hover{background:var(--rose-dark);transform:translateY(-3px);box-shadow:0 12px 30px #62413b33}.text-link{font-size:13px;border-bottom:1px solid var(--line);padding:12px 0;display:flex;gap:14px}.text-link span{transition:.3s}.text-link:hover span{transform:translateY(5px)}.hero-visual{justify-self:center;position:relative;width:min(42vw,550px);aspect-ratio:1}.hero-visual img{position:relative;width:100%;height:100%;border-radius:50%;object-fit:cover;box-shadow:0 35px 80px #644b442e;transition:.7s}.hero-visual:hover img{transform:scale(1.018) rotate(1deg)}.logo-halo{position:absolute;top:-18px;right:-18px;bottom:-18px;left:-18px;border:1px solid rgba(185,132,124,.35);border-radius:50%;animation:spin 30s linear infinite}.logo-halo:after{content:"✦";position:absolute;top:6%;left:8%;color:var(--rose);font-size:22px;background:var(--paper);padding:5px}@keyframes spin{to{transform:rotate(360deg)}}.floating-note{position:absolute;padding:10px 17px;background:#fbf8f5e0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 8px 30px #4d383314;font-family:Italiana,serif;font-size:17px}.note-one{left:-7%;bottom:22%}.note-two{right:-4%;top:24%}.scroll-cue{position:absolute;bottom:28px;left:50%;font-size:9px;text-transform:uppercase;letter-spacing:.2em;color:var(--muted);display:flex;align-items:center;gap:10px}.scroll-cue span{height:36px;width:1px;background:var(--rose);animation:pulse 1.8s infinite}@keyframes pulse{50%{transform:scaleY(.55);transform-origin:top}}.section{padding:130px clamp(24px,7vw,110px)}.section-heading{display:grid;grid-template-columns:1.3fr .7fr;gap:60px;align-items:end;margin-bottom:70px}.section-heading h2,.reviews-head h2{font-size:clamp(42px,5vw,72px)}.section-heading>p{max-width:480px;line-height:1.8;color:var(--muted);margin:0}.services{background:#fff}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.service-card{position:relative;padding:42px 38px 50px;border-right:1px solid var(--line);transition:.35s}.service-card:last-child{border:0}.service-card>span{font-size:10px;color:var(--rose);letter-spacing:.2em}.service-icon{font-size:28px;color:var(--rose);margin:46px 0 26px;transition:.4s}.service-card h3{font-family:Italiana,serif;font-size:31px;font-weight:400;margin:0 0 15px}.service-card p{font-size:14px;line-height:1.7;color:var(--muted);margin:0}.service-card:hover{background:var(--paper);transform:translateY(-9px)}.service-card:hover .service-icon{transform:rotate(90deg)}.portfolio{background:var(--paper)}.portfolio-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:210px;gap:12px}.portfolio-placeholder{position:relative;overflow:hidden;padding:20px;display:flex;justify-content:space-between;align-items:flex-end;background:linear-gradient(145deg,#e8d8d2,#cba69e);color:#fff;transition:.5s}.portfolio-placeholder:before{content:"✦";position:absolute;font-size:100px;opacity:.12;top:50%;left:50%;transform:translate(-50%,-50%)}.portfolio-placeholder:nth-child(2n){background:linear-gradient(145deg,#d3b6af,#91665f)}.portfolio-placeholder:hover{transform:scale(.98);filter:saturate(1.15)}.portfolio-placeholder>span{position:absolute;top:18px;right:18px;font-size:10px;letter-spacing:.2em}.portfolio-placeholder b{display:block;font:400 25px Italiana,serif}.portfolio-placeholder small{font-size:10px;text-transform:uppercase;letter-spacing:.18em}.tile-1,.tile-4{grid-row:span 2}.tile-2{grid-column:span 2}.booking-banner{margin:0 clamp(24px,4vw,60px);padding:85px clamp(30px,6vw,85px);background:var(--rose-dark);color:#fff;display:flex;justify-content:space-between;align-items:center;gap:40px;position:relative;overflow:hidden}.booking-banner:after{content:"✦";position:absolute;right:24%;font-size:220px;opacity:.05}.booking-banner .eyebrow{color:#ecd8d2}.booking-banner h2{font-size:clamp(40px,5vw,68px)}.booking-banner h2 em{color:#e7c9c2}.button.light{background:#fff;color:var(--ink);z-index:1}.button.light:hover{transform:translateY(-3px);box-shadow:0 12px 30px #20141233}.reviews{display:grid;grid-template-columns:.6fr 1.4fr;gap:7vw;background:#fff}.review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.review-card{padding:32px 27px;background:var(--cream);display:flex;flex-direction:column;min-height:330px;transition:.35s}.review-card:hover{transform:translateY(-7px);box-shadow:0 18px 45px #42312d14}.stars{color:var(--rose);letter-spacing:.15em;font-size:11px}.review-card blockquote{font-family:Italiana,serif;font-size:21px;line-height:1.5;margin:29px 0 auto}.review-card footer{display:flex;align-items:center;gap:12px;padding-top:25px;border-top:1px solid var(--line)}.review-card footer>span{width:37px;height:37px;border-radius:50%;background:var(--paper);display:grid;place-items:center;color:var(--rose-dark)}.review-card footer b,.review-card footer small{display:block}.review-card footer b{font-size:12px}.review-card footer small{font-size:9px;color:var(--muted);margin-top:3px}.review-card footer i{margin-left:auto;font: 10px serif;color:var(--rose)}.contact{padding:120px clamp(24px,9vw,145px);background:var(--ink);color:#fff;display:grid;grid-template-columns:1fr 1fr;gap:10vw}.contact h2{font-size:clamp(46px,5vw,70px)}.contact-copy>p:not(.eyebrow){max-width:500px;color:#b9aeaa;line-height:1.8;margin:30px 0}.contact .button.primary{background:var(--rose);color:var(--ink)}.contact-list a{display:grid;grid-template-columns:110px 1fr 20px;gap:20px;align-items:center;padding:25px 0;border-bottom:1px solid rgba(255,255,255,.15);transition:.3s}.contact-list a:hover{padding-left:12px;color:#e3beb5}.contact-list span{font-size:9px;text-transform:uppercase;letter-spacing:.2em;color:#9d908c}.contact-list strong{font:400 clamp(17px,1.6vw,23px) "Italiana",serif}.contact-list i{font-style:normal}.footer{padding:35px clamp(24px,5vw,76px);display:flex;align-items:center;justify-content:space-between;background:#211d1c;color:#817673;font-size:10px}.footer-brand{color:#fff}.footer a{text-transform:uppercase;letter-spacing:.15em}.floating-booking{position:fixed;right:24px;bottom:24px;z-index:15;width:82px;height:82px;border-radius:50%;background:var(--rose);color:var(--ink);display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 12px 35px #432d2940;transition:.35s}.floating-booking span{font-size:8px;text-transform:uppercase;letter-spacing:.16em}.floating-booking b{font:400 16px Italiana,serif}.floating-booking i{position:absolute;right:8px;top:9px;font-style:normal}.floating-booking:hover{transform:scale(1.08) rotate(3deg);background:#d4a79e}.reveal{opacity:0;transform:translateY(30px);transition:opacity .8s ease,transform .8s ease}.reveal.is-visible{opacity:1;transform:none}.service-card:nth-child(2),.review-card:nth-child(2){transition-delay:.12s}.service-card:nth-child(3),.review-card:nth-child(3){transition-delay:.24s}@media (max-width:900px){.site-header{height:72px;padding:0 22px}.site-header nav{position:absolute;top:72px;left:0;width:100%;padding:30px 24px;background:var(--cream);display:flex;flex-direction:column;align-items:flex-start;gap:25px;transform:translateY(-130%);opacity:0;transition:.35s;z-index:-1;box-shadow:0 16px 30px #321e1914}.site-header nav.open{transform:none;opacity:1}.nav-booking{width:100%;text-align:center}.menu-toggle{display:block;width:36px;height:36px;position:relative}.menu-toggle span{position:absolute;left:7px;width:22px;height:1px;background:var(--ink);transition:.3s}.menu-toggle span:first-child{top:13px}.menu-toggle span:last-child{top:21px}.menu-toggle.active span:first-child{transform:translateY(4px) rotate(45deg)}.menu-toggle.active span:last-child{transform:translateY(-4px) rotate(-45deg)}.hero{grid-template-columns:1fr;padding-top:110px;padding-bottom:90px;gap:70px}.hero:before{background:linear-gradient(180deg,var(--cream) 0 58%,var(--paper) 58%)}.hero-visual{width:min(78vw,520px)}.scroll-cue{display:none}.section{padding-top:90px;padding-bottom:90px}.section-heading{grid-template-columns:1fr;gap:28px}.reviews{grid-template-columns:1fr}.review-grid{grid-template-columns:1fr 1fr}.review-card:last-child{grid-column:span 2}.contact{grid-template-columns:1fr;gap:60px}.booking-banner{align-items:flex-start;flex-direction:column}.portfolio-grid{grid-template-columns:repeat(2,1fr)}.tile-2{grid-column:span 1}.floating-booking{width:auto;height:auto;border-radius:30px;right:16px;bottom:16px;padding:13px 20px;display:block}.floating-booking span,.floating-booking i{display:none}.floating-booking b{font:600 12px DM Sans,sans-serif}}@media (max-width:600px){.brand img{width:39px;height:39px}.brand>span{font-size:18px}.hero{padding-left:22px;padding-right:22px}.hero h1{font-size:51px}.lead{font-size:15px;line-height:1.7}.hero-actions{align-items:flex-start;flex-direction:column;gap:10px}.hero-visual{width:82vw}.floating-note{font-size:14px}.note-one{left:-3%}.note-two{right:-2%}.section{padding:78px 22px}.section-heading{margin-bottom:45px}.service-grid{grid-template-columns:1fr;border-bottom:0}.service-card{border-right:0;border-bottom:1px solid var(--line);padding:34px 20px}.service-icon{margin:25px 0 18px}.portfolio-grid{grid-auto-rows:180px;gap:8px}.tile-1,.tile-4{grid-row:span 1}.portfolio-placeholder{padding:14px}.portfolio-placeholder b{font-size:20px}.booking-banner{margin:0;padding:65px 25px}.review-grid{grid-template-columns:1fr}.review-card:last-child{grid-column:auto}.contact{padding:85px 22px}.contact-list a{grid-template-columns:74px 1fr 14px;gap:10px}.footer{padding:35px 22px 90px;align-items:flex-start;flex-direction:column;gap:25px}.footer>p{order:3}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}.service-grid{border-bottom:0}.service-card{border-bottom:1px solid var(--line)}.service-card:last-child{border-right:0;border-bottom:1px solid var(--line)}.service-card:nth-child(3n){border-right:0}@media (max-width:900px) and (min-width:601px){.service-grid{grid-template-columns:repeat(2,1fr)}.service-card:nth-child(3n){border-right:1px solid var(--line)}.service-card:nth-child(2n){border-right:0}}@media (max-width:600px){.service-grid{grid-template-columns:1fr}.service-card,.service-card:nth-child(3n){border-right:0}}.nav-booking{background:var(--ink);border-color:var(--ink);color:#fff}.nav-booking:hover{background:var(--rose-dark);border-color:var(--rose-dark);color:#fff;transform:translateY(-2px)}.floating-booking{right:38px;bottom:36px;width:96px;height:96px;animation:booking-nudge 7s ease-in-out infinite}.floating-booking:hover{animation-play-state:paused;transform:scale(1.08) rotate(3deg)}@keyframes booking-nudge{0%,62%,to{transform:translateY(0) rotate(0)}68%{transform:translateY(-8px) rotate(-2deg)}74%{transform:translateY(0) rotate(2deg)}80%{transform:translateY(-4px) rotate(0)}}@media (max-width:900px){.floating-booking{right:24px;bottom:24px;width:auto;height:auto;padding:16px 24px}}.botanical-background{position:fixed;top:0;right:0;bottom:0;left:0;z-index:4;pointer-events:none;overflow:hidden;opacity:.16}.botanical{position:absolute;width:270px;height:810px;color:var(--rose-dark);transform:translateY(calc(var(--page-scroll,0px) * -.055));will-change:transform}.botanical-left{left:-105px;top:18vh}.botanical-right{right:-112px;top:88vh;transform:scaleX(-1) translateY(calc(var(--page-scroll,0px) * .045))}.botanical .branch{stroke:currentColor;stroke-width:2.2;stroke-linecap:round}.botanical .twig{stroke:currentColor;stroke-width:1.4;stroke-linecap:round}.botanical .leaves{fill:currentColor;transform-origin:center;animation:leaf-breathe 5.5s ease-in-out infinite}.botanical-right .leaves{animation-delay:-2.7s}@keyframes leaf-breathe{0%,to{transform:rotate(-1deg) scale(1)}50%{transform:rotate(1.5deg) scale(.98)}}@media (max-width:700px){.botanical-background{opacity:.11}.botanical{width:190px;height:570px}.botanical-left{left:-104px;top:28vh}.botanical-right{right:-108px;top:105vh}}@media (prefers-reduced-motion:reduce){.botanical{transform:none}.botanical-right{transform:scaleX(-1)}}.portfolio-item{position:relative;overflow:hidden;margin:0;background:#d9c1ba;min-width:0}.portfolio-item{cursor:zoom-in;outline:none}.portfolio-item:focus-visible{box-shadow:inset 0 0 0 3px #fff,0 0 0 2px var(--rose-dark)}.portfolio-item img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .7s ease,filter .7s ease}.portfolio-item figcaption{position:absolute;inset:auto 0 0;display:flex;align-items:flex-end;justify-content:space-between;padding:48px 18px 17px;color:#fff;background:linear-gradient(transparent,#261b18b3);opacity:0;transform:translateY(12px);transition:.4s}.portfolio-item figcaption span{font-size:10px;letter-spacing:.2em}.portfolio-item figcaption small{text-transform:uppercase;font-size:9px;letter-spacing:.18em}.portfolio-item:hover img{transform:scale(1.055);filter:saturate(1.08)}.portfolio-item:hover figcaption{opacity:1;transform:none}@media (max-width:700px){.portfolio-item figcaption{opacity:1;transform:none;padding:36px 12px 12px}}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-items:center;padding:58px;background:#1f1816e6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.lightbox-image-wrap{position:relative;display:flex;flex-direction:column;align-items:center;max-width:min(92vw,1100px);max-height:calc(100vh - 90px)}.lightbox-image-wrap img{display:block;max-width:100%;max-height:calc(100vh - 130px);object-fit:contain;border-radius:2px;box-shadow:0 25px 80px #00000061}.lightbox-image-wrap p{margin:14px 0 0;color:#ffffffb8;font-size:10px;text-transform:uppercase;letter-spacing:.16em;text-align:center}.lightbox-close{position:absolute;top:24px;right:28px;width:48px;height:48px;border:1px solid rgba(255,255,255,.38);border-radius:50%;background:#ffffff0f;cursor:pointer;transition:.3s}.lightbox-close span{position:absolute;top:23px;left:13px;width:21px;height:1px;background:#fff}.lightbox-close span:first-child{transform:rotate(45deg)}.lightbox-close span:last-child{transform:rotate(-45deg)}.lightbox-close:hover{background:var(--rose);border-color:var(--rose);transform:rotate(90deg)}.lightbox-enter-active,.lightbox-leave-active{transition:opacity .3s ease}.lightbox-enter-active .lightbox-image-wrap,.lightbox-leave-active .lightbox-image-wrap{transition:transform .35s ease,opacity .3s ease}.lightbox-enter-from,.lightbox-leave-to{opacity:0}.lightbox-enter-from .lightbox-image-wrap,.lightbox-leave-to .lightbox-image-wrap{opacity:0;transform:scale(.96) translateY(12px)}@media (max-width:600px){.lightbox{padding:62px 16px 30px}.lightbox-close{top:14px;right:14px;width:42px;height:42px}.lightbox-close span{top:20px;left:11px}.lightbox-image-wrap img{max-height:calc(100vh - 125px)}}.brand>span,.hero h1,.section h2,.booking-banner h2,.contact h2,.floating-note,.service-card h3,.portfolio-placeholder b,.review-card blockquote,.contact-list strong,.floating-booking b{font-family:Cormorant Garamond,Georgia,serif}html,body{max-width:100%;overflow-x:hidden}.contact,.contact>*{min-width:0}.contact-list a{min-width:0}.contact-list strong{min-width:0;overflow-wrap:anywhere;word-break:break-word}@media (max-width:600px){.contact-list a{grid-template-columns:64px minmax(0,1fr) 14px}}#app{width:100%;max-width:100vw;overflow-x:clip}.botanical-background{width:100vw;max-width:100vw;contain:strict;overflow:clip}.hero,.section,.booking-banner,.reviews,.contact,.footer{max-width:100%}.section-heading,.service-grid,.portfolio-grid,.review-grid,.hero-copy,.hero-visual{min-width:0}@supports not (overflow:clip){#app,.botanical-background{overflow-x:hidden}}
