:root{--plum:#3d2645;--plum-2:#6b4e72;--mint:#cdebe0;--mint-2:#e6f5ef;--butter:#ffd970;--rose:#f2a7a0;--white:#fbfdfc}
*{box-sizing:border-box}
body{margin:0;background:var(--white);color:var(--plum);font:400 1.0625rem/1.6 Figtree,system-ui,sans-serif}
h1,h2,h3{font-family:"Young Serif",Georgia,serif;font-weight:400;line-height:1.12;margin:0}
h2{font-size:clamp(1.8rem,3.8vw,2.6rem)}
p{margin:0}
a{color:inherit}
:focus-visible{outline:3px solid var(--plum);outline-offset:3px;border-radius:6px}

.bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px clamp(16px,4vw,56px)}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;font:400 1.6rem "Young Serif",serif}
.logo svg{width:52px;height:38px}
.bar-call{font-weight:700;text-decoration:none;background:var(--mint);padding:10px 18px;border-radius:999px}
.bar-call:hover{background:var(--butter)}

.hero{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center;padding:32px clamp(16px,4vw,56px) 72px}
.hero h1{font-size:clamp(2.4rem,5.4vw,4.1rem);max-width:13ch}
.lede{margin-top:20px;font-size:1.2rem;max-width:44ch;color:var(--plum-2)}
.svc{list-style:none;padding:0;margin:28px 0 0;display:grid;gap:10px;max-width:460px}
.svc li{display:flex;flex-direction:column;padding:12px 18px;background:var(--mint-2);border-radius:16px;color:var(--plum-2);font-size:.95rem}
.svc strong{color:var(--plum);font-size:1.05rem}
.cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 26px;border-radius:999px;font:700 1rem Figtree,sans-serif;text-decoration:none;border:0;cursor:pointer}
.btn-plum{background:var(--plum);color:var(--white)}
.btn-plum:hover{background:#563563}
.btn-soft{background:var(--butter);color:var(--plum)}
.btn-soft:hover{background:#ffe48f}
.hero-art svg{width:100%;height:auto;display:block}

.rooms{padding:72px clamp(16px,4vw,56px);background:var(--mint);border-radius:40px 40px 0 0}
.sub{margin-top:10px;color:var(--plum-2);font-size:1.1rem}
.tabs{display:flex;flex-wrap:wrap;gap:8px;margin-top:28px}
.tabs button{font:600 1rem Figtree,sans-serif;color:var(--plum);background:var(--white);border:2px solid transparent;border-radius:999px;padding:10px 20px;cursor:pointer;min-height:46px}
.tabs button[aria-selected=true]{background:var(--plum);color:var(--white)}
.tabs button:hover{border-color:var(--plum)}
.panel{margin-top:20px;background:var(--white);border-radius:24px;padding:28px 32px;max-width:860px}
.panel ul{list-style:none;padding:0;margin:0;columns:2;column-gap:40px}
.panel li{break-inside:avoid;padding:8px 0 8px 32px;position:relative}
.panel li::before{content:"";position:absolute;left:0;top:12px;width:20px;height:20px;border-radius:50%;background:var(--mint)}
.panel li::after{content:"";position:absolute;left:6px;top:17px;width:8px;height:5px;border-left:2px solid var(--plum);border-bottom:2px solid var(--plum);transform:rotate(-45deg)}
.panel li.extra{background:linear-gradient(transparent 55%,#ffe9a8 55%);background-size:auto;width:fit-content}
.panel li.extra::before{background:var(--butter)}

.info{display:grid;grid-template-columns:.8fr 1.2fr;gap:48px;padding:72px clamp(16px,4vw,56px);background:var(--mint)}
.hours table{margin-top:20px;border-collapse:collapse;width:100%;max-width:380px}
.hours th,.hours td{text-align:left;padding:12px 0;border-bottom:2px solid rgba(61,38,69,.15)}
.hours th{font-weight:500}.hours td{font-weight:700;text-align:right}
.note{margin-top:20px;background:var(--butter);padding:14px 18px;border-radius:16px;max-width:380px}
.map{width:100%;height:auto;display:block;margin-top:20px}

.reviews{padding:80px clamp(16px,4vw,56px)}
.sample-tag{margin-top:6px;font-size:.85rem;color:var(--plum-2)}
.rev{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:32px}
.rev figure{margin:0;padding:26px;border-radius:28px;background:var(--mint-2)}
.rev figure:nth-child(2){background:#fdeceb}
.rev figure:nth-child(3){background:#fff4d1}
.stars{color:var(--plum);letter-spacing:3px}
blockquote{margin:10px 0 14px;font:400 1.15rem/1.45 "Young Serif",serif}
figcaption{font-weight:700;font-size:.95rem;color:var(--plum-2)}

.quote{padding:0 clamp(16px,4vw,56px) 96px}
.quote-card{max-width:720px;margin:0 auto;background:var(--plum);color:var(--white);border-radius:36px;padding:clamp(28px,5vw,56px)}
.quote-card .sub{color:#e3d6e6}
.qform{display:grid;gap:16px;margin-top:24px}
.qform label{display:grid;gap:6px;font-weight:600}
.qform input:not([type=radio]),.qform select{font:inherit;min-height:50px;padding:10px 14px;border-radius:14px;border:0;background:var(--white);color:var(--plum);width:100%}
.row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.freq{border:0;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px}
.freq legend{font-weight:600;margin-bottom:8px}
.freq label{display:block;position:relative}
.freq input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.freq span{display:block;padding:10px 18px;border-radius:999px;border:2px solid #8f7396;font-weight:600}
.freq input:checked + span{background:var(--butter);border-color:var(--butter);color:var(--plum)}
.freq input:focus-visible + span{outline:3px solid var(--white);outline-offset:2px}
.demo-note{background:rgba(255,255,255,.12);border-radius:14px;padding:10px 14px;font-weight:600;font-size:.95rem}
.qform .btn-plum{background:var(--butter);color:var(--plum)}
.form-status{min-height:1.5em;font-weight:600;color:var(--butter)}

.foot{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:32px clamp(16px,4vw,56px) 40px;border-top:2px solid var(--mint);color:var(--plum-2);font-size:.95rem}
.foot strong{color:var(--plum)}

.callbar{display:none}
@media (max-width:880px){
  .hero,.info{grid-template-columns:1fr}
  .hero-art{max-width:360px;margin:0 auto;order:-1}
  .rev{grid-template-columns:1fr}
  .panel ul{columns:1}
}
@media (max-width:640px){
  .bar-call{display:none}
  .hero{padding-top:8px}
  .hero-art{max-width:240px}
  .rooms{border-radius:28px 28px 0 0}
  .panel{padding:20px}
  .callbar{display:flex;align-items:center;justify-content:center;position:fixed;right:16px;bottom:16px;left:16px;min-height:58px;border-radius:999px;background:var(--plum);color:var(--white);font-weight:700;font-size:1.15rem;text-decoration:none;box-shadow:0 8px 24px rgba(61,38,69,.35);z-index:40}
  .foot{padding-bottom:100px}
}
