:root{--bg:#fbf8f3;--alt:#f1ece4;--ink:#2b2433;--mut:#6a6275;--vio:#5b3a8c;--vio-d:#442a6d;--sage:#7d9a86;--sage-l:#e4ece6;--line:#e3dccf;--r:14px}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:72px}
body{margin:0;background:var(--bg);color:var(--ink);font:400 17px/1.7 Inter,system-ui,sans-serif}
img{display:block;max-width:100%}
a{color:var(--vio-d)}
h1,h2,h3{font-family:"Cormorant Garamond",Georgia,serif;font-weight:600;line-height:1.12;margin:0 0 .5em}
h1{font-size:clamp(2.4rem,6vw,4.2rem)}
h2{font-size:clamp(1.9rem,3.8vw,2.8rem)}
h3{font-size:1.45rem;margin-bottom:.3em}
p{margin:0 0 1em}
.wrap{max-width:1080px;margin:0 auto;padding:0 20px}
.sec{padding:72px 0}
.sec.alt{background:var(--alt)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:.76rem;font-weight:600;color:var(--sage);margin:0 0 .8em}
.lead{font-size:1.15rem;color:var(--mut)}

.top{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:24px;padding:10px 24px;background:rgba(251,248,243,.93);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.logo{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);margin-right:auto;font:600 1.35rem "Cormorant Garamond",serif;line-height:1.1}
.logo img{width:44px;height:44px;border-radius:50%;object-fit:cover}
.logo span{display:block;font:500 .72rem Inter,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--sage)}
.top nav{display:flex;gap:22px;align-items:center}
.top nav a{text-decoration:none;color:var(--ink);font-weight:500;font-size:.94rem;padding:4px 0;border-bottom:2px solid transparent}
.top nav a:hover,.top nav a[aria-current]{border-color:var(--sage)}
.burger{display:none;background:none;border:0;width:40px;height:40px;padding:10px;cursor:pointer}
.burger span{display:block;height:2px;background:var(--ink);margin:6px 0;transition:.2s}

.btn{display:inline-block;background:var(--vio);color:#fff;text-decoration:none;font-weight:600;padding:13px 26px;border-radius:999px;transition:background .2s}
.btn:hover{background:var(--vio-d)}
.btn-sm{padding:8px 18px;font-size:.92rem}
.btn-o{background:transparent;color:var(--vio-d);box-shadow:inset 0 0 0 2px var(--vio)}
.btn-o:hover{background:var(--vio);color:#fff}
.btns{display:flex;gap:12px;flex-wrap:wrap;margin-top:1.4em}

.hero{position:relative;overflow:hidden;min-height:78vh;display:grid;align-items:end;color:#fff;background:linear-gradient(135deg,#442a6d 0%,#5b3a8c 55%,#7d9a86 130%)}
.hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.45;mix-blend-mode:luminosity}
.photo{width:100%;aspect-ratio:4/3;object-fit:cover;object-position:center 30%;border-radius:var(--r)}
.ph{position:relative;overflow:hidden}
.ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero .wrap{position:relative;padding-top:120px;padding-bottom:72px}
.hero p{max-width:560px;font-size:1.2rem}
.hero .eyebrow{color:#d6e6da}
.btn-o.light{color:#fff;box-shadow:inset 0 0 0 2px #fff}
.btn-o.light:hover{background:#fff;color:var(--vio-d)}
.leaf{position:absolute;fill:#fff;opacity:.07;pointer-events:none}
.leaf.l1{width:420px;right:-60px;top:40px;transform:rotate(18deg)}
.leaf.l2{width:260px;right:240px;bottom:-40px;transform:rotate(-70deg)}

.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:24px;margin-top:32px}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s}
.card:hover{transform:translateY(-3px);box-shadow:0 10px 28px rgba(43,36,51,.1)}
.card .txt{padding:20px 22px 24px}
.card p{color:var(--mut);margin:0;font-size:.97rem}
.ph{display:grid;place-items:center;aspect-ratio:2/1;color:var(--vio-d)}
.ph svg{width:68px;height:68px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.ph-a{background:linear-gradient(135deg,#e4ece6,#cfe0d4)}
.ph-b{background:linear-gradient(135deg,#f3e9d6,#ead7b3)}
.ph-c{background:linear-gradient(135deg,#f6e3ea,#ebc8d6)}
.ph-d{background:linear-gradient(135deg,#e6def2,#cfc2e6)}
.ph-e{aspect-ratio:4/3;border-radius:var(--r);background:linear-gradient(135deg,#e4ece6,#e6def2);font-size:.9rem;color:var(--mut);border:1px dashed var(--sage)}
.hours{width:100%;border-collapse:collapse}
.hours td{padding:8px 0;border-bottom:1px solid var(--line)}
.hours td:last-child{text-align:right}
.box{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:28px}
.cta{background:var(--vio);color:#fff;text-align:center;padding:64px 0}
.cta .btn{background:#fff;color:var(--vio-d)}
.cta .btn:hover{background:var(--sage-l)}
.cta p{max-width:520px;margin:0 auto 1.4em}
iframe.map{width:100%;height:320px;border:0;border-radius:var(--r)}

footer{background:#2b2433;color:#cfc8d8;padding:48px 0 28px;font-size:.93rem}
footer a{color:#fff}
footer .grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:32px}
footer h3{color:#fff;font-size:1.2rem}
footer small{display:block;margin-top:32px;padding-top:18px;border-top:1px solid #4a4156;color:#9b93a8}

@media(max-width:820px){
  .two,.cards,footer .grid{grid-template-columns:1fr}
  .gal,.gal.four{grid-template-columns:repeat(2,1fr)}
  .sec{padding:52px 0}
  .burger{display:block}
  .top nav{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:flex-start;gap:0;background:var(--bg);padding:8px 24px 16px;border-bottom:1px solid var(--line)}
  .top nav.open{display:flex}
  .top nav a{padding:12px 0;width:100%}
  .top>.btn{display:none}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
