
:root{
  --bg:#eadcf5;
  --bg-soft:#f0e5f8;
  --bg-deep:#dfccef;
  --paper:rgba(255,255,255,.78);
  --paper-solid:#fff;
  --ink:#251d35;
  --muted:#6f6478;
  --lav:#76558f;
  --lav-2:#9674ad;
  --lav-3:#cdb9dd;
  --lav-4:#e6d8f0;
  --gold:#bc8948;
  --line:rgba(70,47,88,.14);
  --shadow:0 24px 70px rgba(62,38,78,.13);
  --max:1180px;
  --header:82px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:92px}
body{margin:0;color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:
  radial-gradient(circle at 9% 4%,rgba(255,255,255,.62),transparent 23%),
  radial-gradient(circle at 90% 20%,rgba(196,166,216,.45),transparent 28%),
  linear-gradient(180deg,#eee2f7 0%,var(--bg) 45%,#efe4f7 100%);
  line-height:1.55;-webkit-font-smoothing:antialiased}
body.lock{overflow:hidden}
img{max-width:100%;display:block}
a{text-decoration:none;color:inherit}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
button:disabled{cursor:not-allowed;opacity:.55}
.container{width:min(calc(100% - 40px),var(--max));margin:auto}
.skip{position:fixed;z-index:1000;top:10px;left:10px;background:#fff;padding:10px 15px;border-radius:12px;transform:translateY(-160%)}.skip:focus{transform:none}
.top{position:fixed;z-index:100;inset:0 0 auto;background:rgba(244,236,250,.83);backdrop-filter:blur(18px);border-bottom:1px solid transparent;transition:.25s}
.top.scrolled{border-color:var(--line);box-shadow:0 12px 35px rgba(62,38,78,.08)}
.nav{height:var(--header);display:flex;align-items:center;justify-content:space-between;gap:22px}
.brand{display:flex;align-items:center;gap:11px;min-width:0}.brand img{width:54px;height:54px}
.brand b{display:block;font:500 27px/1 Georgia,"Times New Roman",serif;letter-spacing:-.025em}.brand small{display:block;margin-top:5px;color:#a36f45;font-size:9px;letter-spacing:.28em;text-transform:uppercase}
.links{display:flex;align-items:center;gap:28px;font-size:13px;color:#594d68}.links>a:not(.pill){padding:16px 0;position:relative}.links>a:not(.pill):after{content:"";position:absolute;left:50%;right:50%;bottom:9px;height:1px;background:var(--gold);transition:.2s}.links>a:hover:after{left:0;right:0}
.pill,.btn{border:0;border-radius:10px;min-height:50px;padding:0 24px;background:linear-gradient(135deg,#80609a,#6f4f89);color:#fff;display:inline-flex;align-items:center;justify-content:center;gap:10px;font-weight:700;box-shadow:0 12px 27px rgba(75,48,91,.18);transition:.2s}.pill{min-height:42px;padding-inline:18px}.btn:hover,.pill:hover{transform:translateY(-2px);box-shadow:0 16px 32px rgba(75,48,91,.23)}.btn.ghost{background:rgba(255,255,255,.52);color:var(--lav);border:1px solid rgba(118,85,143,.23);box-shadow:none}
.menu{display:none;width:46px;height:46px;border:0;background:transparent;padding:8px}.menu i{display:block;height:2px;background:var(--ink);margin:6px 3px}

.kicker{font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:#a67342;font-weight:700;display:flex;gap:13px;align-items:center}.kicker:after{content:"";height:1px;width:52px;background:var(--gold)}
h1,h2,h3{font-family:Georgia,"Times New Roman",serif;font-weight:500;letter-spacing:-.035em}
h2{font-size:clamp(42px,5vw,59px);line-height:1.02;margin:8px 0 0}.section{padding:80px 0}.section-row{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:28px}.text-link{font-size:13px;color:var(--lav);text-decoration:underline;text-underline-offset:5px}
.reveal{opacity:0;transform:translateY(16px);transition:opacity .55s ease,transform .55s ease}.reveal.show{opacity:1;transform:none}

.hero{padding-top:var(--header);min-height:560px;overflow:hidden}.hero-grid{min-height:500px;display:grid;grid-template-columns:1fr 1.13fr;align-items:stretch;background:rgba(255,255,255,.16)}
.hero-copy{padding:75px 34px 55px 8px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.hero h1{font-size:clamp(58px,6.5vw,83px);line-height:.98;margin:18px 0 10px}.hero-lead{font:500 clamp(27px,3vw,38px)/1.16 Georgia,"Times New Roman",serif;margin:0 0 28px;max-width:540px}.benefits{display:flex;gap:46px;margin-top:30px;color:#5d4e69}.benefits>div{display:flex;align-items:center;gap:11px;font-size:12px}.benefits i{font-style:normal;color:var(--gold);font-size:37px;line-height:1}
.hero-photo{position:relative;min-height:500px;overflow:hidden;border-radius:0 0 0 120px}.hero-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hero-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(234,220,245,.22),transparent 28%)}.hero-line{position:absolute;width:620px;height:620px;border:2px solid rgba(190,137,72,.8);border-radius:50%;left:-380px;top:-66px;z-index:2}

.services{background:rgba(255,255,255,.12)}.service-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.service-card{background:rgba(255,255,255,.73);border:1px solid rgba(255,255,255,.65);border-radius:9px;overflow:hidden;box-shadow:0 12px 35px rgba(70,47,88,.06);transition:.22s}.service-card:hover{transform:translateY(-4px);box-shadow:0 18px 42px rgba(70,47,88,.11)}.service-photo{aspect-ratio:1.65;overflow:hidden;background:var(--lav-4)}.service-photo img{width:100%;height:100%;object-fit:cover}.service-body{padding:15px 16px 17px}.service-title{font:500 21px/1.15 Georgia,"Times New Roman",serif;margin:0 0 6px}.service-description{font-size:12px;color:var(--muted);min-height:38px;margin:0}.service-meta{display:flex;justify-content:space-between;align-items:end;gap:8px;margin-top:14px}.service-facts{display:flex;gap:6px;flex-wrap:wrap}.chip{font-size:10px;padding:5px 8px;border-radius:999px;background:#efe5f6;color:#634d72}.service-select{border:0;background:transparent;color:#a97537;font-size:24px;line-height:1}.loading-card{grid-column:1/-1;text-align:center;padding:34px;color:var(--muted)}

.inspiration{padding-top:44px}.gallery-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:13px}.gallery-item{position:relative;aspect-ratio:1.18;border-radius:9px;overflow:hidden;background:var(--lav-4);box-shadow:0 13px 32px rgba(70,47,88,.08)}.gallery-item img{width:100%;height:100%;object-fit:cover;transition:.35s}.gallery-item:hover img{transform:scale(1.035)}.gallery-item:after{content:"";position:absolute;inset:auto 0 0;height:38%;background:linear-gradient(transparent,rgba(31,18,40,.28));opacity:0;transition:.2s}.gallery-item:hover:after{opacity:1}.gallery-status{text-align:center;color:var(--muted);font-size:11px;margin:15px 0 0}

.booking-cta{padding:0 0 46px}.booking-cta-inner{min-height:112px;display:grid;grid-template-columns:auto 1fr auto;gap:25px;align-items:center;padding:24px 38px;border-radius:10px;background:rgba(255,255,255,.54);border:1px solid rgba(255,255,255,.7);box-shadow:0 15px 35px rgba(70,47,88,.06)}.booking-cta h2{font-size:31px;margin:0}.booking-cta p{margin:4px 0 0;color:var(--muted)}.calendar-icon{width:58px;height:58px;border:2px solid var(--lav);display:grid;place-items:center;border-radius:11px;color:var(--lav);font-size:28px}

.booking{background:linear-gradient(180deg,rgba(117,82,143,.12),rgba(255,255,255,.13));border-block:1px solid rgba(255,255,255,.48)}.booking-heading{max-width:780px;margin:0 auto 34px;text-align:center}.booking-heading .kicker{justify-content:center}.booking-heading h2{margin-top:14px}.booking-heading p{color:var(--muted)}
.booking-card{max-width:900px;margin:auto;background:rgba(255,255,255,.84);backdrop-filter:blur(12px);padding:30px;border-radius:18px;border:1px solid rgba(255,255,255,.8);box-shadow:var(--shadow)}
.booking-progress{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-bottom:26px}.progress-item{display:flex;align-items:center;gap:8px;color:#8a7d91;font-size:11px;font-weight:700}.progress-item i{font-style:normal;width:29px;height:29px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line);background:#fff}.progress-item.active,.progress-item.done{color:var(--lav)}.progress-item.active i,.progress-item.done i{background:var(--lav);border-color:var(--lav);color:#fff}
.form-step{display:none}.form-step.active{display:block}.step-title small{font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--lav);font-weight:800}.step-title h3{font-size:29px;margin:4px 0}.step-title p{margin:0 0 20px;color:var(--muted);font-size:12px}
.field{display:grid;gap:7px;margin-bottom:14px}.field label{font-size:12px;font-weight:750}.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);background:#fff;border-radius:10px;padding:13px 14px;outline:none;min-height:49px}.field textarea{min-height:90px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--lav-2);box-shadow:0 0 0 3px rgba(118,85,143,.1)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.muted{color:var(--muted);font-weight:400}
.calendar-head{display:flex;justify-content:space-between;align-items:center;margin:7px 0 12px}.calendar-head b{font:500 18px Georgia,serif}.calnav{display:flex;gap:7px}.calnav button{width:38px;height:38px;border-radius:50%;background:#fff;border:1px solid var(--line);color:var(--lav)}
.days{display:grid;grid-template-columns:repeat(7,1fr);gap:7px}.day{border:1px solid var(--line);border-radius:10px;background:#fff;padding:8px 4px;text-align:center;min-height:74px}.day small,.day span{display:block;font-size:9px;color:var(--muted)}.day b{display:block;font-size:19px}.day.active,.day:hover:not(:disabled){background:#eee2f6;border-color:var(--lav-2)}.slots-title{font-size:12px;font-weight:800;margin:20px 0 8px}.slots{display:flex;gap:8px;flex-wrap:wrap;min-height:40px}.slot{border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 13px;font-weight:750}.slot.active,.slot:hover{background:var(--lav);color:#fff;border-color:var(--lav)}.slotmsg{font-size:12px;color:var(--muted)}.step-actions{display:flex;justify-content:space-between;gap:12px;margin-top:22px}.summary{padding:15px;background:#f2e9f7;border-radius:11px}.summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.summary-row{padding:9px;border-bottom:1px solid rgba(118,85,143,.12)}.summary-row.full{grid-column:1/-1}.summary-row small{display:block;font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.09em}.summary-row b{font-size:13px}.privacy{display:flex;align-items:flex-start;gap:9px;margin:13px 0;font-size:11px;color:var(--muted)}.privacy input{margin-top:3px}.status{display:none;margin-top:12px;padding:10px 12px;border-radius:9px;font-size:12px}.status.err{display:block;background:#f7e5e8;color:#8f4250}.status.ok{display:block;background:#e6f2ea;color:#426d50}.status.info{display:block;background:#eee7f5;color:#654d75}.preview-note{font-size:11px;color:#8b6672}.honeypot{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden}

.contact{padding-bottom:72px}.contact-grid{display:grid;grid-template-columns:.92fr 1.08fr;gap:34px;align-items:stretch}.contact-card,.map{background:rgba(255,255,255,.54);border:1px solid rgba(255,255,255,.7);border-radius:12px;overflow:hidden;box-shadow:0 14px 36px rgba(70,47,88,.06)}.contact-card{padding:28px}.detail{display:flex;gap:13px;align-items:flex-start}.detail i{font-style:normal;font-size:28px;color:#a87537}.detail small{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.08em}.detail b{font-size:14px}.entrance-note{margin:22px 0;padding:14px;border-left:2px solid var(--gold);background:rgba(255,255,255,.43)}.entrance-note small{display:block;color:var(--muted);font-size:10px}.entrance-note b{font-size:12px}.hours-list{display:grid;gap:8px;margin:20px 0}.hours-list>div{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid rgba(118,85,143,.11);padding-bottom:7px;font-size:12px}.hours-list span{color:var(--muted)}.map iframe{width:100%;height:100%;min-height:390px;border:0}
footer{border-top:1px solid rgba(118,85,143,.12);background:rgba(255,255,255,.26)}.foot{min-height:105px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:25px}.foot nav{display:flex;gap:20px;font-size:11px;color:#6c5a78}.foot>.fb-link{justify-self:end;color:var(--lav);font-size:12px}

.mobilebook{display:none;position:fixed;z-index:90;left:14px;right:14px;bottom:max(12px,env(safe-area-inset-bottom));min-height:50px;border-radius:12px;background:linear-gradient(135deg,#80609a,#6f4f89);color:#fff;align-items:center;justify-content:center;font-weight:800;box-shadow:0 16px 38px rgba(58,34,72,.3)}.mobilebook.hidden{opacity:0;pointer-events:none}
.modal{position:fixed;z-index:300;inset:0;background:rgba(30,18,37,.45);backdrop-filter:blur(7px);display:none;align-items:center;justify-content:center;padding:20px}.modal.open{display:flex}.modal-card{width:min(100%,450px);background:#fff;border-radius:18px;padding:32px;text-align:center;box-shadow:var(--shadow)}.modal-icon{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:#eadff1;color:var(--lav);font-size:25px;margin:0 auto 13px}.modal-card h3{font-size:30px;margin:0 0 8px}.modal-card p{color:var(--muted)}.modal-ref{font-weight:800;margin:15px 0;color:var(--lav)}

@media(max-width:980px){
  .service-grid{grid-template-columns:repeat(2,1fr)}
  .gallery-grid{grid-template-columns:repeat(3,1fr)}.gallery-item:nth-child(n+4){display:none}
  .hero-grid{grid-template-columns:1fr 1fr}.hero-copy{padding-left:0}.benefits{gap:18px;flex-wrap:wrap}
  .links{gap:16px}.links .pill{display:none}
}
@media(max-width:760px){
  :root{--header:70px}
  .container{width:min(calc(100% - 26px),var(--max))}
  .brand b{font-size:21px}.brand img{width:46px;height:46px}
  .menu{display:block}.links{position:fixed;top:var(--header);left:0;right:0;background:rgba(246,239,251,.98);display:none;flex-direction:column;align-items:stretch;padding:18px 20px 28px;border-bottom:1px solid var(--line)}.links.open{display:flex}.links>a{padding:10px 3px!important}.links .pill{display:flex}
  .hero-grid{display:block}.hero-copy{padding:56px 0 36px}.hero h1{font-size:56px}.hero-lead{font-size:29px}.hero-photo{min-height:365px;border-radius:0 0 0 70px}.benefits{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;width:100%}.benefits>div{display:block;text-align:center;font-size:10px}.benefits i{display:block;margin-bottom:5px}
  .section{padding:58px 0}.section-row{align-items:flex-start}.section-row .text-link{display:none}h2{font-size:43px}
  .service-grid{grid-template-columns:1fr 1fr;gap:11px}.service-title{font-size:17px}.service-description{display:none}.service-body{padding:12px}.service-meta{margin-top:10px}.chip{font-size:9px}
  .gallery-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:8px;scrollbar-width:none}.gallery-grid::-webkit-scrollbar{display:none}.gallery-item{flex:0 0 72%;scroll-snap-align:start}.gallery-item:nth-child(n){display:block}
  .booking-cta-inner{grid-template-columns:auto 1fr;padding:20px}.booking-cta-inner .btn{grid-column:1/-1}.booking-cta h2{font-size:25px}
  .booking-card{padding:20px 15px}.booking-progress span{display:none}.booking-progress{gap:4px}.progress-item{justify-content:center}.form-grid{grid-template-columns:1fr}.days{gap:4px}.day{min-height:68px;padding-inline:2px}.summary-grid{grid-template-columns:1fr}
  .contact-grid{grid-template-columns:1fr}.map iframe{min-height:320px}
  .foot{grid-template-columns:1fr auto}.foot nav{display:none}.foot>.fb-link{justify-self:end}
  .mobilebook{display:flex}.section.contact{padding-bottom:100px}
}
@media(max-width:460px){
  .service-grid{grid-template-columns:1fr}.service-photo{aspect-ratio:2.15}.hero h1{font-size:49px}.hero-lead{font-size:26px}.benefits{grid-template-columns:1fr 1fr 1fr}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}*{transition-duration:.01ms!important}}
