:root{--bg: #faf7fc;--ink: #2a2140;--muted: #6b6080;--purple: #7b5ea7;--purple-deep: #5c4285;--pink: #f8c8dc;--pink-soft: #fde8f0;--blue: #b8d4f0;--blue-soft: #e8f3fb;--white: #ffffff;--accent: var(--purple);--accent-ink: #ffffff;--surface: rgba(255, 255, 255, .72);--ease: cubic-bezier(.32, .72, 0, 1);--font-display: "Playfair Display", Georgia, serif;--font-body: "Nunito", system-ui, sans-serif}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:var(--font-body);color:var(--ink);background:radial-gradient(ellipse 70% 50% at 10% 0%,var(--pink-soft),transparent 55%),radial-gradient(ellipse 60% 45% at 95% 15%,var(--blue-soft),transparent 50%),var(--bg);line-height:1.55;-webkit-font-smoothing:antialiased}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}.skip-link{position:absolute;left:-999px;top:0;background:var(--ink);color:#fff;padding:.75rem 1rem;z-index:100}.skip-link:focus{left:1rem;top:1rem}.site-header{position:fixed;inset:1rem 1rem auto;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1.1rem;border-radius:999px;background:var(--surface);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(123,94,167,.16);transition:transform .45s var(--ease),opacity .45s var(--ease)}.site-header.is-hidden{transform:translateY(calc(-100% - 1.5rem));opacity:0;pointer-events:none}.brand{font-family:var(--font-display);font-weight:700;letter-spacing:-.02em;font-size:clamp(.85rem,2.5vw,1.05rem);max-width:14rem;line-height:1.2;color:var(--purple-deep)}.site-nav{display:flex;align-items:center;gap:1rem;font-size:.95rem;font-weight:700}.site-nav a[aria-current=page]{color:var(--purple)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.9rem 1.35rem;border-radius:999px;border:1px solid transparent;font-weight:800;font-family:inherit;cursor:pointer;transition:transform .45s var(--ease),background .45s var(--ease),color .45s var(--ease),border-color .45s var(--ease)}.btn:active{transform:scale(.98)}.btn-sm{padding:.55rem .95rem;font-size:.9rem}.btn-primary{background:var(--purple);color:var(--accent-ink)}.btn-primary:hover{background:var(--purple-deep)}.btn-ghost{border-color:#7b5ea747;background:transparent}.btn:disabled{opacity:.55;cursor:not-allowed}.hero{position:relative;min-height:100dvh;display:grid;align-items:end;overflow:hidden;color:#fff}.hero-visual{position:absolute;inset:0;z-index:0}.hero-visual img{width:100%;height:100%;object-fit:cover;object-position:center 30%;transform:scale(1.02);animation:hero-drift 18s var(--ease) infinite alternate}.hero-visual:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#5c428540,#2a21408c 55%,#2a2140c7),linear-gradient(120deg,rgba(248,200,220,.28),transparent 45%),linear-gradient(300deg,rgba(184,212,240,.22),transparent 40%)}@keyframes hero-drift{0%{transform:scale(1.02) translateY(0)}to{transform:scale(1.06) translateY(-1.5%)}}.hero-copy{position:relative;z-index:1;padding:7rem 1.5rem 3.5rem;max-width:40rem;animation:hero-in 1s var(--ease) both}@keyframes hero-in{0%{opacity:0;transform:translateY(1.25rem)}to{opacity:1;transform:translateY(0)}}.brand-mark{font-family:var(--font-display);font-size:clamp(2.1rem,7vw,3.6rem);font-weight:700;letter-spacing:-.03em;margin:0 0 .85rem;line-height:1.05;max-width:14ch}.hero h1,.page-404 h1{font-family:var(--font-display);font-size:clamp(1.75rem,4.5vw,2.75rem);font-weight:500;letter-spacing:-.03em;line-height:1.15;margin:0 0 1rem}.hero-lead{margin:0 0 1.75rem;max-width:32ch;color:#ffffffeb;font-size:1.1rem;font-weight:600}.hero-cta{display:flex;flex-wrap:wrap;gap:.75rem}.hero .btn-primary{box-shadow:0 10px 30px #7b5ea759}.section{padding:5.5rem 1.5rem;max-width:70rem;margin:0 auto}.section h2{font-family:var(--font-display);font-size:clamp(1.8rem,4vw,2.6rem);letter-spacing:-.03em;margin:0 0 .75rem;color:var(--purple-deep)}.section p{margin:0;color:var(--muted);max-width:48ch;font-size:1.05rem}.gallery-section{display:grid;gap:1.5rem}.gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin-top:.5rem}.gallery-item{margin:0;overflow:hidden;border-radius:1.25rem;background:var(--blue-soft)}.gallery-item img{width:100%;height:100%;min-height:12rem;object-fit:cover;transition:transform .7s var(--ease)}.gallery-item:hover img{transform:scale(1.04)}.gallery-item:nth-child(1),.gallery-item:nth-child(6){grid-row:span 2}.gallery-item:nth-child(1) img,.gallery-item:nth-child(6) img{min-height:100%}.section-cta{text-align:left;display:grid;gap:1.25rem;justify-items:start;background:linear-gradient(135deg,var(--pink-soft),var(--blue-soft));border-radius:2rem;margin:0 1.5rem 3rem;max-width:70rem;padding:3.5rem 1.75rem}.site-footer{padding:2rem 1.5rem 3rem;color:var(--muted);font-size:.9rem}.page-404{min-height:100dvh;display:grid;place-items:center}.page-404 .brand-mark{color:var(--purple-deep);max-width:none}[data-reveal]{opacity:0;transform:translateY(1.25rem);transition:opacity .8s var(--ease),transform .8s var(--ease)}[data-reveal].is-visible{opacity:1;transform:translateY(0)}.page-main{padding-top:5.5rem}.page-hero{padding:4rem 1.5rem 1rem;max-width:70rem;margin:0 auto}.page-hero h1{font-family:var(--font-display);font-size:clamp(2rem,5vw,3rem);letter-spacing:-.03em;margin:0 0 1rem;line-height:1.15;color:var(--purple-deep)}.page-hero p{margin:0;color:var(--muted);max-width:52ch;font-size:1.05rem}.booking-section{padding-top:2rem}.contact-form{display:grid;gap:1.1rem;max-width:34rem}.contact-form label{display:grid;gap:.35rem;font-weight:700;font-size:.95rem}.contact-form input,.contact-form textarea,.contact-form select{font:inherit;padding:.8rem .95rem;border:1px solid rgba(123,94,167,.22);border-radius:.85rem;background:var(--white);color:var(--ink)}.contact-form input:focus,.contact-form textarea:focus,.contact-form select:focus{outline:2px solid rgba(123,94,167,.35);outline-offset:1px}.form-honeypot{position:absolute;left:-9999px;opacity:0;height:0;width:0;overflow:hidden}.checkbox-row{display:flex!important;align-items:flex-start;gap:.6rem;font-weight:600!important}.checkbox-row input{margin-top:.2rem}.form-status{margin:0;font-size:.95rem}.form-status.is-pending{color:var(--muted)}.form-status.is-success{color:var(--purple-deep)}.form-status.is-error{color:#b42318}.calendar-fieldset{border:1px solid rgba(123,94,167,.18);border-radius:1.25rem;padding:1.1rem;background:linear-gradient(180deg,var(--white),var(--pink-soft));display:grid;gap:1rem}.calendar-fieldset legend{font-weight:800;color:var(--purple-deep);padding:0 .35rem}.calendar-hint{margin:0;font-size:.92rem;color:var(--muted);font-weight:600}.calendar-nav{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.calendar-month{margin:0;font-family:var(--font-display);font-weight:700;color:var(--purple-deep);text-transform:capitalize}.calendar-nav-btn{width:2.4rem;height:2.4rem;border-radius:999px;border:1px solid rgba(123,94,167,.22);background:var(--white);color:var(--purple-deep);font-size:1.35rem;line-height:1;cursor:pointer;transition:transform .35s var(--ease),background .35s var(--ease)}.calendar-nav-btn:hover{background:var(--blue-soft)}.calendar-nav-btn:active{transform:scale(.96)}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:.25rem;text-align:center;font-size:.78rem;font-weight:800;color:var(--muted)}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.3rem}.calendar-day{aspect-ratio:1;border:0;border-radius:.75rem;background:transparent;color:var(--ink);font:inherit;font-weight:700;cursor:pointer;transition:transform .3s var(--ease),background .3s var(--ease),color .3s var(--ease)}.calendar-day:not(:disabled):hover{background:var(--blue);transform:translateY(-1px)}.calendar-day.is-available{background:#b8d4f08c}.calendar-day.is-selected{background:var(--purple);color:#fff}.calendar-day:disabled{color:#2a214047;cursor:not-allowed}.time-slots-label{margin:0 0 .5rem;font-weight:800;color:var(--purple-deep)}.time-slots-list{display:flex;flex-wrap:wrap;gap:.45rem}.time-slot{border:1px solid rgba(123,94,167,.22);background:var(--white);color:var(--ink);border-radius:999px;padding:.45rem .8rem;font:inherit;font-weight:700;cursor:pointer;transition:transform .3s var(--ease),background .3s var(--ease),color .3s var(--ease)}.time-slot:hover{background:var(--pink-soft)}.time-slot.is-selected{background:var(--purple);border-color:var(--purple);color:#fff}.calendar-selection{margin:0;font-weight:700;color:var(--purple-deep)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}[data-reveal]{opacity:1;transform:none}.hero-visual img{transform:none}}@media(min-width:700px){.gallery{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.brand{max-width:none}}@media(min-width:900px){.hero-copy{padding:8rem 4rem 4.5rem}.site-header{inset:1.25rem 2rem auto;max-width:72rem;margin-inline:auto;width:calc(100% - 4rem)}.section-cta{margin-inline:auto;padding:4rem}}
