@font-face{font-family:'DM Sans';font-style:normal;font-weight:400 700;font-display:swap;src:url('fonts/dm-sans.woff2') format('woff2')}
@font-face{font-family:'Playfair Display';font-style:normal;font-weight:400 600;font-display:swap;src:url('fonts/playfair-display.woff2') format('woff2')}
:root{--ink:#3b262c;--rose:#b77d8d;--pale:#f8e9ed;--cream:#fffaf7;--line:#e7d5d7}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);font:16px/1.55 'DM Sans',sans-serif}
a{color:inherit}
button{font:inherit}
header{position:sticky;top:0;z-index:20;background:rgba(255,250,247,.95);backdrop-filter:blur(15px);border-bottom:1px solid var(--line)}
.nav{max-width:1240px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:17px 28px}
.brand{font:600 25px/1 'Playfair Display',serif;text-decoration:none;white-space:nowrap}
.brand small{display:block;font:500 9px/1.8 'DM Sans',sans-serif;letter-spacing:.26em;text-align:center;text-transform:uppercase}
.links{display:flex;align-items:center;gap:28px}
.links a{text-decoration:none;font-size:14px}
.pill{display:inline-block;border:1px solid var(--ink);border-radius:100px;padding:12px 27px;text-decoration:none;font-weight:700;font-size:13px;letter-spacing:.08em;text-transform:uppercase;transition:.2s}
.pill:hover,.pill.dark{background:var(--ink);color:white}
.pill.dark:hover{background:#7c4d5b}
.hero{display:grid;grid-template-columns:1.08fr .92fr;min-height:620px;background:#f2dfe4}
.hero-copy{display:flex;flex-direction:column;justify-content:center;padding:70px max(6vw,30px)}
.eyebrow{text-transform:uppercase;letter-spacing:.25em;font-size:12px;font-weight:700;color:#8d5969}
.hero h1,.section h2{font:400 clamp(43px,5.8vw,82px)/1.08 'Playfair Display',serif;letter-spacing:-.04em;margin:20px 0}
.hero h1 em{color:#a66679;font-weight:400}
.hero p{max-width:500px;font-size:18px}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:26px}
.hero-photo{background:linear-gradient(145deg,#a88385,#d8b6b6);position:relative;overflow:hidden}
.hero-photo img{width:100%;height:100%;object-fit:cover;display:block}
.hero-photo:after{content:'BLUSH & BLOOM';position:absolute;bottom:26px;right:30px;color:white;letter-spacing:.28em;font-size:12px}
.section{padding:90px 28px}
.wrap{max-width:1180px;margin:auto}
.intro{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}
.intro h2{font-size:clamp(39px,4vw,58px)}
.intro p{color:#665359}
.intro aside{background:#eed9de;padding:48px;border-radius:180px 180px 16px 16px;min-height:390px;display:flex;flex-direction:column;justify-content:end}
.intro aside span{font:italic 38px 'Playfair Display',serif}
.intro aside p{max-width:320px}
.menu{background:#fff}
.section-title{text-align:center;margin-bottom:42px}
.section-title h2{font-size:clamp(42px,5vw,66px)}
.section-title p{margin:auto;max-width:600px;color:#6b575d}
.menu-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.card{border:1px solid var(--line);background:#fffaf8;padding:32px;border-radius:4px}
.card h3{font:400 32px 'Playfair Display',serif;margin:0 0 18px}
.price-row{display:flex;align-items:baseline;gap:14px;border-bottom:1px solid #e8dbdc;padding:10px 0;font-size:15px}
.price-row:last-of-type{border:0}
.price-row .name{flex:1}
.price-row strong{white-space:nowrap;font-weight:600}
.note{font-size:13px;color:#715c63;margin:15px 0 0}
.memberships{background:#f3e5e9}
.membership-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.membership-card{background:#fffaf8;border:1px solid #dfcbd1;padding:0 27px 27px;display:flex;flex-direction:column}
.membership-top{background:#d9b9c3;margin:0 -27px 27px;padding:35px 27px;min-height:155px;display:flex;align-items:end}
.membership-card:nth-child(2) .membership-top{background:#bd8f9d}
.membership-card:nth-child(3) .membership-top{background:#845867;color:#fff}
.membership-top span{font:400 56px/1 'Playfair Display',serif}
.membership-card h3{font:400 34px/1.2 'Playfair Display',serif;margin:0}
.membership-price{font:400 35px 'Playfair Display',serif;margin:7px 0}
.membership-count{font-weight:700;color:#8d5969;letter-spacing:.08em;text-transform:uppercase;font-size:13px}
.membership-card p{margin:18px 0;color:#665359}
.membership-card ul{padding-left:20px;margin:0 0 27px;flex:1}
.membership-card li{margin:8px 0}
.membership-card li small{color:#715c63}
.membership-detail{font-size:14px;border-top:1px solid var(--line);padding-top:16px}
.membership-card .pill{text-align:center}
.membership-terms{max-width:790px;margin:27px auto 0;text-align:center;color:#6b575d;font-size:14px}
.offers{background:var(--ink);color:#fff;padding:70px 28px;text-align:center}
.offers h2{font:400 clamp(40px,5vw,64px) 'Playfair Display',serif;margin:12px 0 32px}
.offer-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;max-width:850px;margin:auto}
.offer{border:1px solid #aa8d93;padding:30px}
.offer h3{font:400 25px 'Playfair Display',serif;margin:0}
.offer b{display:block;font:400 48px 'Playfair Display',serif;color:#f2bdca;margin:12px 0 2px}
.offer small{letter-spacing:.15em;text-transform:uppercase}
.faq{background:#f7edf0}
.faq h2{font-size:clamp(40px,5vw,62px)}
details{border-bottom:1px solid #dbc6cc;padding:21px 0}
summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;font-weight:600;font-size:18px}
summary:after{content:'+';font-size:24px;font-weight:400}
details[open] summary:after{content:'−'}
details p{max-width:760px;color:#665359}
.contact{background:#e7cbd3;text-align:center}
.contact h2{font-size:clamp(40px,5vw,65px)}
.contact-links{display:flex;justify-content:center;gap:16px 28px;flex-wrap:wrap;margin:24px auto 0}
.contact-links a{font-weight:600;text-underline-offset:4px;overflow-wrap:anywhere}
footer{padding:42px 28px;background:var(--ink);color:#f6e8ea}
.footer-grid{max-width:1180px;margin:auto;display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap}
.footer-grid a{display:block;margin:6px 0;text-decoration:none}
.footer-grid .brand{margin-bottom:16px}
.fine{max-width:1180px;margin:24px auto 0;border-top:1px solid #826d72;padding-top:20px;font-size:12px;color:#d6c4c7}
@media(max-width:800px){.links{gap:12px}
.links a:not(.pill){display:none}
.nav{padding:14px 18px}
.brand{font-size:21px}
.pill{padding:10px 17px}
.hero{grid-template-columns:1fr}
.hero-copy{padding:70px 24px 55px}
.hero-photo{height:390px}
.intro,.menu-grid,.offer-grid,.membership-grid{grid-template-columns:1fr}
.section{padding:65px 22px}
.intro{gap:30px}
.intro aside{min-height:270px;padding:35px}
.card{padding:25px}}
@media(max-width:420px){.brand{font-size:18px}
.links .pill{font-size:11px;padding:9px 12px}
.price-row{font-size:14px}}
/* Keep keyboard navigation and anchored sections visible beneath the header. */
[id]{scroll-margin-top:100px}
a:focus-visible,summary:focus-visible{outline:3px solid #8d5969;outline-offset:5px}
.skip-link{position:absolute;left:20px;top:-100px;padding:12px 20px;background:var(--cream);z-index:30}
.skip-link:focus{top:12px}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
.booking{text-align:center}
.booking-frame{max-width:900px;margin:32px auto 0;border-radius:24px;overflow:hidden;background:white;box-shadow:0 10px 40px rgba(82,57,66,.12)}
.booking-frame iframe{display:block;width:100%;height:720px;border:0}
.booking-fallback{margin-top:18px;font-weight:600}
