
:root{--linen:#f7f2ec;--lav:#8c7aa8;--lavd:#5a4a78;--sage:#a9bfa5;--blush:#ecd6d0;--ink:#3b3346}
*{box-sizing:border-box}body{margin:0;background:var(--linen);color:var(--ink);font-family:"Hanken Grotesk",sans-serif;line-height:1.6}
h1,h2,h3{font-family:"Gilda Display",serif;font-weight:400;line-height:1.15}
a{color:inherit}
.top{display:flex;justify-content:space-between;align-items:center;padding:18px 6vw}
.brand{font-family:"Gilda Display",serif;font-size:1.35rem}.sprig{color:var(--lav)}
.pill{background:#fff;border:1px solid var(--lav);border-radius:999px;padding:8px 16px;text-decoration:none;font-weight:600;color:var(--lavd)}
.hero{display:grid;grid-template-columns:1.1fr .9fr;gap:4vw;padding:6vh 6vw 8vh;align-items:center}
.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:.75rem;color:var(--lavd)}
h1{font-size:clamp(2.2rem,5vw,3.8rem);margin:.2em 0}h1 em{color:var(--lav);font-style:italic}
.lede{font-size:1.1rem;max-width:34em}
.ctas{display:flex;gap:12px;flex-wrap:wrap;margin:22px 0}
.btn{display:inline-block;background:var(--lavd);color:#fff;padding:14px 24px;border-radius:14px;text-decoration:none;font-weight:700}
.btn.ghost{background:transparent;color:var(--lavd);border:2px solid var(--lavd)}
.rating b{font-size:1.5rem;font-family:"Gilda Display",serif}.st{color:#c9a227;letter-spacing:2px}
.art{position:relative;height:360px}
.towel{position:absolute;left:12%;width:76%;height:62px;border-radius:18px 18px 30px 30px;box-shadow:0 6px 0 rgba(0,0,0,.06)}
.towel:after{content:"";position:absolute;left:0;right:0;top:20px;height:6px;background:rgba(255,255,255,.55)}
.t1{bottom:20px;background:var(--lav)}.t2{bottom:82px;background:var(--sage);left:16%;width:68%}.t3{bottom:144px;background:var(--blush);left:10%;width:72%}.t4{bottom:206px;background:#fff;left:18%;width:62%}
.spark{position:absolute;color:var(--lav);font-size:2rem;animation:tw 2.6s infinite ease-in-out}
.s1{top:20px;right:14%}.s2{top:70px;left:8%;animation-delay:.8s}.s3{top:0;left:44%;font-size:1.3rem;animation-delay:1.5s}
@keyframes tw{0%,100%{opacity:.25;transform:scale(.8)}50%{opacity:1;transform:scale(1.15)}}
.services{background:#fff;padding:8vh 6vw;border-radius:40px 40px 0 0}
.services h2,.reviews h2{font-size:2.2rem;text-align:center;margin-top:0}
.services ul{list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:18px;max-width:1100px;margin:0 auto}
.services li{background:var(--linen);border-radius:22px;padding:22px;border-top:6px solid var(--sage)}
.services li:nth-child(2n){border-top-color:var(--lav)}.services li:nth-child(3n){border-top-color:var(--blush)}
.services h3{margin:0 0 6px;font-size:1.3rem}.services p{margin:0}
.reviews{background:#fff;padding:2vh 6vw 8vh}
.board{columns:2 340px;column-gap:22px;max-width:1100px;margin:0 auto}
.note{break-inside:avoid;margin:0 0 22px;padding:24px 26px;border-radius:22px;background:var(--linen);position:relative}
.note:before{content:"“";position:absolute;top:-18px;left:18px;font-family:"Gilda Display";font-size:4rem;color:var(--lav)}
.note blockquote{margin:0;font-size:1.02rem}.note figcaption{margin-top:12px;font-weight:700;color:var(--lavd)}.note figcaption span{color:#c9a227}
.n1{background:#efeaf5}.n2{background:#eef3ec}
.src{text-align:center;font-size:.85rem;color:#7a7088}
.area{display:grid;grid-template-columns:1fr 1fr;gap:4vw;padding:8vh 6vw;background:var(--lavd);color:#fff}
.area h2{font-size:2rem;margin:0 0 8px}.cta{background:rgba(255,255,255,.1);padding:28px;border-radius:24px}
.cta p{font-family:"Gilda Display";font-size:1.5rem;margin:0 0 14px}.area .btn{background:#fff;color:var(--lavd)}.area .btn.ghost{background:transparent;color:#fff;border-color:#fff;margin-left:8px}
footer{text-align:center;padding:24px;font-size:.9rem}
.float{display:none}
@media(max-width:800px){.hero,.area{grid-template-columns:1fr}.art{height:280px}.services ul{grid-template-columns:1fr}.float{display:block;position:fixed;bottom:14px;left:50%;transform:translateX(-50%);background:var(--lavd);color:#fff;padding:12px 26px;border-radius:999px;text-decoration:none;font-weight:700;box-shadow:0 8px 20px rgba(0,0,0,.2)}}
