:root {
  --hss-ink: #321f2a;
  --hss-muted: #75636b;
  --hss-cream: #fffaf7;
  --hss-blush: #f8e9ec;
  --hss-rose: #b05473;
  --hss-rose-dark: #55253f;
  --hss-plum: #4b213b;
  --hss-gold: #b99062;
  --hss-sage: #66735f;
  --hss-white: #fff;
  --hss-line: #e2d8d4;
  --hss-radius: 1.25rem;
  --hss-shadow: 0 1.25rem 3rem rgba(71, 47, 52, .1);
}

.hss-shell { width: min(100% - 2rem, 74rem); margin-inline: auto; }
.hss-section { padding-block: clamp(3.5rem, 8vw, 7rem); }
.hss-section--tint { background: var(--hss-blush); }
.hss-eyebrow { color: var(--hss-rose-dark); font-size: .75rem; font-weight: 750; letter-spacing: .16em; margin: 0 0 .75rem; text-transform: uppercase; }
.hss-hero { background: radial-gradient(circle at 6% 10%, rgba(255,255,255,.95), transparent 28%), linear-gradient(135deg, #fbf0ee, #f4e2e7); min-height: min(50rem, 84vh); display: grid; align-items: center; overflow: hidden; padding-block: clamp(2rem,5vw,4rem); position: relative; }
.hss-hero::after { content: ""; width: 24rem; aspect-ratio: 1; border: 1px solid rgba(155,92,100,.22); border-radius: 50% 46% 55% 48%; position: absolute; left: -10rem; bottom: -10rem; transform: rotate(22deg); }
.hss-hero__grid { align-items:center; display:grid; gap:clamp(2rem,5vw,5rem); }
.hss-hero__content { position: relative; z-index: 2; }
.hss-hero h1, .hss-page-header h1, .hss-prose h1 { color: var(--hss-ink); font-family: Georgia, 'Times New Roman', serif; font-size: clamp(2.65rem, 8vw, 5.8rem); font-weight: 400; letter-spacing: -.045em; line-height: .98; margin: 0; max-width: 11ch; }
.hss-hero__content > p:not(.hss-eyebrow), .hss-page-header > p:not(.hss-eyebrow) { color: var(--hss-muted); font-size: clamp(1rem, 2vw, 1.25rem); line-height: 1.65; max-width: 39rem; }
.hss-hero__media { border-radius:clamp(2rem,5vw,5rem) 1.25rem clamp(2rem,5vw,5rem) 1.25rem; box-shadow:0 2rem 5rem rgba(77,33,59,.2); margin:0; min-height:22rem; overflow:hidden; position:relative; }
.hss-hero__media::after { background:linear-gradient(180deg,transparent 55%,rgba(49,22,39,.72)); content:""; inset:0; position:absolute; }
.hss-hero__media img { display:block; height:100%; min-height:22rem; object-fit:cover; object-position:center; width:100%; }
.hss-hero__media figcaption { bottom:1.25rem; color:#fff; display:grid; left:1.4rem; line-height:1.25; position:absolute; z-index:1; }
.hss-hero__media figcaption strong { font-family:Georgia,serif; font-size:1.3rem; font-weight:400; }
.hss-hero__media figcaption span { font-size:.72rem; letter-spacing:.12em; margin-top:.25rem; text-transform:uppercase; }
.hss-hero__proof { display:flex; flex-wrap:wrap; gap:.65rem 1.25rem; list-style:none; margin:1.8rem 0 0; padding:0; }
.hss-hero__proof li { color:var(--hss-muted); font-size:.82rem; font-weight:700; }
.hss-hero__proof li::before { color:var(--hss-rose); content:"✦"; margin-right:.45rem; }
.hss-cash-note { color:var(--hss-plum); font-size:.85rem; font-weight:750; margin:1.15rem 0 0; }
.hss-actions { align-items: center; display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2rem; }
.hss-button { align-items: center; background: var(--hss-rose-dark); border: 2px solid var(--hss-rose-dark); border-radius: 999px; color: var(--hss-white) !important; cursor: pointer; display: inline-flex; font: inherit; font-weight: 700; justify-content: center; min-height: 3rem; padding: .75rem 1.4rem; text-decoration: none !important; transition: background .2s, color .2s, transform .2s; }
.hss-button:hover { background: var(--hss-ink); border-color: var(--hss-ink); transform: translateY(-1px); }
.hss-button:focus-visible, .hss-booking button:focus-visible, .hss-booking input:focus-visible, .hss-booking select:focus-visible, .hss-booking textarea:focus-visible { outline: 3px solid #176fa8; outline-offset: 3px; }
.hss-button--quiet { background: transparent; color: var(--hss-rose-dark) !important; }
.hss-button--full { width: 100%; }
.hss-section h2 { color: var(--hss-ink); font-family: Georgia, 'Times New Roman', serif; font-size: clamp(2rem, 4vw, 3.4rem); font-weight: 400; line-height: 1.05; margin: 0 0 2rem; }
.hss-service-grid { display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); }
.hss-service-card { background: var(--hss-white); border: 1px solid var(--hss-line); border-radius: var(--hss-radius); box-shadow: 0 .5rem 2rem rgba(71,47,52,.06); overflow: hidden; transition:box-shadow .3s,transform .3s; }
.hss-service-card:hover { box-shadow:0 1.5rem 3.5rem rgba(71,47,52,.15); transform:translateY(-5px); }
.hss-service-card__image { aspect-ratio: 4/3; height: auto; object-fit: cover; width: 100%; }
.hss-service-card__body { padding: 1.4rem; }
.hss-service-card h3 { color: var(--hss-ink); font-family: Georgia, 'Times New Roman', serif; font-size: 1.65rem; font-weight: 400; margin: 0; }
.hss-service-card p:not(.hss-eyebrow) { color: var(--hss-muted); line-height: 1.6; }
.hss-service-card__meta { border-block: 1px solid var(--hss-line); display: flex; justify-content: space-between; margin-block: 1rem; padding-block: .75rem; }
.hss-text-link { color: var(--hss-rose-dark); display: inline-flex; font-weight: 750; gap: .35rem; min-height: 2.75rem; align-items: center; }
.hss-card-actions { display:flex; gap:1rem; justify-content:space-between; }
.hss-editorial { background:var(--hss-plum); color:#fff; overflow:hidden; position:relative; }
.hss-editorial::before { border:1px solid rgba(255,255,255,.12); border-radius:50%; content:""; height:28rem; position:absolute; right:-9rem; top:-11rem; width:28rem; }
.hss-editorial__grid { align-items:center; display:grid; gap:clamp(2rem,6vw,6rem); position:relative; }
.hss-editorial figure { border-radius:1.25rem 5rem 1.25rem 5rem; box-shadow:0 2rem 4rem rgba(22,7,16,.28); margin:0; overflow:hidden; }
.hss-editorial img { aspect-ratio:4/3; display:block; object-fit:cover; width:100%; }
.hss-editorial h2 { color:#fff; }
.hss-editorial p:not(.hss-eyebrow), .hss-editorial li { color:#eadde4; line-height:1.7; }
.hss-editorial .hss-eyebrow, .hss-editorial .hss-text-link { color:#f5b1c8; }
.hss-editorial__list { list-style:none; margin:1.5rem 0; padding:0; }
.hss-editorial__list li { border-top:1px solid rgba(255,255,255,.16); padding:.65rem 0; }
.hss-editorial__list li::before { color:#f5b1c8; content:"✦"; margin-right:.6rem; }
.hss-split { align-items: center; display: flex; flex-wrap: wrap; gap: 2rem; justify-content: space-between; }
.hss-split > div { max-width: 42rem; }
.hss-page-header { margin-bottom: 2.5rem; }
.hss-booking { position:relative; }
.hss-booking::before { background:radial-gradient(circle,rgba(176,84,115,.1),transparent 70%); content:""; height:34rem; pointer-events:none; position:absolute; right:0; top:0; width:min(24rem,100%); z-index:-1; }
.hss-booking-header { display:grid; gap:1.5rem; }
.hss-booking-header h1 { max-width:13ch; }
.hss-booking-header > p { align-self:end; margin:0 0 .5rem; }
.hss-progress { display: grid; gap: .35rem; grid-template-columns: repeat(4, 1fr); margin: 0 0 2rem; scroll-margin-top:6rem; }
.hss-progress span { border-top: 3px solid var(--hss-line); color: var(--hss-muted); font-size: .75rem; padding-top: .5rem; }
.hss-progress .is-active { border-color: var(--hss-rose); color: var(--hss-ink); font-weight: 700; }
.hss-progress .is-complete { border-color:var(--hss-plum); color:var(--hss-plum); }
.hss-progress .is-complete::after { content:" ✓"; }
.hss-booking-layout { align-items: start; display: grid; gap: 1.5rem; }
.hss-booking-form, .hss-summary { background: var(--hss-white); border: 1px solid var(--hss-line); border-radius: 1.7rem; box-shadow: var(--hss-shadow); padding: clamp(1rem, 4vw, 2rem); }
.hss-booking-form, .hss-booking-form fieldset, .hss-calendar, .hss-slots { max-width:100%; min-width:0; }
.hss-booking-form fieldset { border: 0; border-bottom: 1px solid var(--hss-line); margin: 0 0 1.75rem; padding: 0 0 1.75rem; }
.hss-booking-form [data-booking-panel][hidden] { display:none!important; }
.hss-booking-panel-stack { min-width:0; }
.hss-booking-form legend { color: var(--hss-ink); font-family: Georgia, 'Times New Roman', serif; font-size: 1.45rem; margin-bottom: 1rem; }
.hss-booking-form label:not(.hss-check), .hss-label { color: var(--hss-ink); display: block; font-size: .85rem; font-weight: 700; margin: .9rem 0 .4rem; }
.hss-booking-form input:not([type="checkbox"]), .hss-booking-form select, .hss-booking-form textarea { background: var(--hss-cream); border: 1px solid #b9aaad; border-radius: .65rem; box-sizing: border-box; color: var(--hss-ink); font: inherit; min-height: 3rem; padding: .7rem .8rem; width: 100%; }
.hss-field-grid { display: grid; gap: 0 1rem; }
.hss-check { align-items: start; cursor: pointer; display: flex; gap: .7rem; margin-block: .7rem; }
.hss-check input { flex: 0 0 auto; height: 1.35rem; margin-top: .1rem; width: 1.35rem; }
.hss-slots { display: grid; gap: .6rem; grid-template-columns: repeat(2, 1fr); margin-top: 1rem; }
.hss-slots p { grid-column: 1/-1; color: var(--hss-muted); }
.hss-slots button { background: var(--hss-cream); border: 1px solid var(--hss-rose); border-radius: .65rem; color: var(--hss-rose-dark); cursor: pointer; display:grid; font: inherit; font-weight: 700; gap:.12rem; min-height: 3rem; padding: .55rem .65rem; }
.hss-slots button small { color:var(--hss-muted); font-size:.67rem; font-weight:600; line-height:1.2; }
.hss-slots button:hover, .hss-slots button.is-selected { background: var(--hss-rose-dark); color: var(--hss-white); }
.hss-slots button:hover small, .hss-slots button.is-selected small { color:#f7dce5; }
.hss-date-fallback { display:block; }
.hss-booking.is-enhanced .hss-date-fallback { height:1px; margin:-1px!important; overflow:hidden; position:absolute; width:1px; }
.hss-calendar { background:linear-gradient(145deg,#fff,#fff9fa); border:1px solid #ead6de; border-radius:1.25rem; margin-top:1.25rem; padding:clamp(.75rem,2vw,1.25rem); }
.hss-calendar__header { align-items:center; display:grid; grid-template-columns:2.75rem 1fr 2.75rem; margin-bottom:1rem; text-align:center; }
.hss-calendar__header strong { color:var(--hss-ink); font-family:Georgia,serif; font-size:1.3rem; font-weight:400; }
.hss-calendar__header button { align-items:center; background:#fff; border:1px solid var(--hss-line); border-radius:50%; color:var(--hss-plum); cursor:pointer; display:flex; font:inherit; height:2.75rem; justify-content:center; width:2.75rem; }
.hss-calendar__header button:disabled { cursor:not-allowed; opacity:.3; }
.hss-calendar__weekdays, .hss-calendar__grid { display:grid; gap:.3rem; grid-template-columns:repeat(7,minmax(0,1fr)); }
.hss-calendar__weekdays { color:var(--hss-muted); font-size:.66rem; font-weight:750; letter-spacing:.05em; margin-bottom:.35rem; text-align:center; text-transform:uppercase; }
.hss-calendar__grid > p { color:var(--hss-muted); grid-column:1/-1; margin:1rem; text-align:center; }
.hss-calendar__loading::before { animation:hss-pulse 1s ease-in-out infinite; background:var(--hss-rose); border-radius:50%; content:""; display:inline-block; height:.5rem; margin-right:.5rem; width:.5rem; }
.hss-calendar__grid button { align-items:center; aspect-ratio:1; background:transparent; border:1px solid transparent; border-radius:.75rem; color:var(--hss-muted); cursor:pointer; display:flex; flex-direction:column; font:inherit; font-size:.85rem; justify-content:center; min-width:0; padding:.2rem; }
.hss-calendar__grid button i { background:var(--hss-rose); border-radius:50%; height:.3rem; margin-top:.12rem; width:.3rem; }
.hss-calendar__grid button.is-available { background:#fff; border-color:#ead6de; color:var(--hss-ink); font-weight:750; }
.hss-calendar__grid button.is-available:hover { border-color:var(--hss-rose); transform:translateY(-1px); }
.hss-calendar__grid button.is-selected { background:var(--hss-plum); border-color:var(--hss-plum); color:#fff; box-shadow:0 .45rem 1rem rgba(75,33,59,.2); }
.hss-calendar__grid button.is-selected i { background:#ffb2cc; }
.hss-calendar__grid button.is-unavailable { color:#b9aeb2; cursor:not-allowed; opacity:.62; }
.hss-calendar__legend { color:var(--hss-muted); display:flex; flex-wrap:wrap; font-size:.75rem; gap:1rem; justify-content:flex-end; margin-top:.8rem; }
.hss-calendar__legend span { align-items:center; display:flex; gap:.35rem; }
.hss-calendar__legend i { background:#d9ccd1; border-radius:50%; display:block; height:.4rem; width:.4rem; }
.hss-calendar__legend i.is-available { background:var(--hss-rose); }
.hss-slot-heading { align-items:end; display:flex; justify-content:space-between; margin-top:1.5rem; }
.hss-slot-heading span { color:var(--hss-muted); display:block; font-size:.78rem; }
.hss-slot-heading strong { color:var(--hss-ink); display:block; font-family:Georgia,serif; font-size:1.25rem; margin-top:.25rem; }
.hss-summary { background: var(--hss-plum); border-color:var(--hss-plum); color:#fff; }
.hss-summary .hss-eyebrow { color:#f5b1c8; }
.hss-summary h2 { color:#fff; font-size: 1.8rem; margin-bottom: 1rem; }
.hss-summary dl { margin: 0; }
.hss-summary dl div { border-top: 1px solid rgba(255,255,255,.14); display: flex; gap: 1rem; justify-content: space-between; padding-block: .95rem; }
.hss-summary dt { color: #d9c7d0; }
.hss-summary dd { color: #fff; font-weight: 700; margin: 0; text-align: right; }
.hss-booking-controls { align-items:center; display:grid; gap:.75rem; grid-template-columns:auto 1fr auto; margin-top:.5rem; }
.hss-booking-controls [data-step-note] { color:var(--hss-muted); font-size:.78rem; text-align:center; }
.hss-booking-controls [hidden] { display:none!important; }
.hss-form-review h2 { margin-bottom:1.25rem; }
.hss-form-review dl { margin:0; }
.hss-form-review dl div { border-top:1px solid var(--hss-line); display:flex; gap:1rem; justify-content:space-between; padding-block:.9rem; }
.hss-form-review dt { color:var(--hss-muted); }
.hss-form-review dd { color:var(--hss-ink); font-weight:750; margin:0; max-width:60%; text-align:right; }
.hss-review-note { background:var(--hss-blush); border-radius:.75rem; color:var(--hss-muted); font-size:.85rem; margin:1.25rem 0 0; padding:.85rem; }
.hss-cash-note--review { background:#f3efe5; border:1px solid #e2d2b9; border-radius:.75rem; margin-top:1rem; padding:.75rem .85rem; }
.hss-cash-note--review + .hss-review-note { margin-top:.75rem; }
.hss-booking[data-booking-step="4"] .hss-summary { display:none; }
.hss-booking[data-booking-step="4"] .hss-booking-form { grid-column:1/-1; margin-inline:auto; width:min(100%,44rem); }
.hss-alert { border: 1px solid #a12936; border-radius: .7rem; color: #7e1623; margin-bottom: 1rem; padding: .85rem; }
.hss-alert--success { background:#e4f3e7; border-color:#3f7c4b; color:#1f5d2d; }
.hss-empty, .hss-success { background: var(--hss-cream); border-radius: var(--hss-radius); grid-column: 1/-1; padding: 2rem; text-align: center; }
.hss-success { margin: 3rem auto; max-width: 40rem; scroll-margin-top:6rem; }
.hss-success__mark { align-items: center; background: var(--hss-sage); border-radius: 50%; color: white; display: inline-flex; font-size: 1.8rem; height: 4rem; justify-content: center; width: 4rem; }
.hss-confirmation-details { border-block:1px solid var(--hss-line); margin:1.5rem 0; text-align:left; }
.hss-confirmation-details div { align-items:center; border-bottom:1px solid var(--hss-line); display:flex; gap:1rem; justify-content:space-between; padding:.8rem 0; }
.hss-confirmation-details div:last-child { border-bottom:0; }
.hss-confirmation-details dt { color:#7a6871; }
.hss-confirmation-details dd { font-weight:750; margin:0; text-align:right; }
.hss-prose { max-width: 52rem; }
.hss-prose p { color: var(--hss-muted); font-size: 1.1rem; line-height: 1.75; }
.hss-appointment-list { display: grid; gap: 1rem; }
.hss-appointment-list article { align-items: start; background: var(--hss-white); border: 1px solid var(--hss-line); border-radius: 1rem; display: flex; flex-wrap: wrap; gap: 1rem; justify-content: space-between; padding: 1.25rem; }
.hss-appointment-list article > div:last-of-type { text-align:right; }
.hss-text-button { background:transparent; border:0; color:var(--hss-rose-dark); cursor:pointer; font:inherit; min-height:44px; padding:.5rem; text-decoration:underline; }
.hss-reschedule { border-top:1px solid var(--hss-line); flex-basis:100%; margin-top:.5rem; padding-top:1rem; text-align:left!important; }
.hss-reschedule label { display:block; font-weight:700; }
.hss-reschedule input { border:1px solid #b9aaad; border-radius:.65rem; display:block; font:inherit; min-height:3rem; padding:.7rem .8rem; width:min(100%,20rem); }
.hss-waitlist { background:var(--hss-cream); border:1px solid var(--hss-line); border-radius:var(--hss-radius); margin-top:2rem; padding:1.25rem; }
.hss-waitlist summary { color:var(--hss-ink); cursor:pointer; font-family:Georgia,serif; font-size:1.25rem; min-height:44px; }
.hss-waitlist form { margin-top:1rem; max-width:44rem; }
.hss-waitlist label:not(.hss-check) > span { display:block; font-size:.85rem; font-weight:700; margin:.8rem 0 .35rem; }
.hss-waitlist input:not([type=checkbox]), .hss-waitlist select { background:#fff; border:1px solid #b9aaad; border-radius:.65rem; font:inherit; min-height:3rem; padding:.7rem .8rem; width:100%; }
.hss-service-detail, .hss-contact { display:grid; gap:clamp(2rem,6vw,5rem); }
.hss-service-detail h1, .hss-contact h1 { font-family:Georgia,serif; font-size:clamp(2.5rem,6vw,4.5rem); font-weight:400; line-height:1; }
.hss-service-detail img { border-radius:var(--hss-radius); width:100%; }
.hss-gallery, .hss-testimonials { display:grid; gap:1rem; grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr)); }
.hss-gallery figure { background:#fff; border-radius:1rem; box-shadow:0 .5rem 2rem rgba(71,47,52,.08); margin:0; overflow:hidden; transition:box-shadow .25s,transform .25s; }
.hss-gallery figure:hover { box-shadow:0 1.2rem 2.6rem rgba(71,47,52,.14); transform:translateY(-3px); }
.hss-gallery img { aspect-ratio:4/3; display:block; object-fit:cover; transition:transform .4s ease; width:100%; }
.hss-gallery figure:hover img { transform:scale(1.025); }
.hss-gallery figcaption { display:grid; gap:.35rem; padding:1rem; }
.hss-testimonials blockquote { background:var(--hss-cream); border-radius:1rem; margin:0; padding:1.5rem; }
.hss-testimonials blockquote > p:first-child { color:var(--hss-rose-dark); letter-spacing:.15em; }
.hss-testimonials cite { color:var(--hss-muted); }
.hss-contact-form { background:var(--hss-cream); border-radius:var(--hss-radius); padding:clamp(1rem,4vw,2rem); }
.hss-contact-form label:not(.hss-honeypot) { display:block; font-weight:700; margin:.8rem 0; }
.hss-contact-form label span { display:block; font-size:.85rem; margin-bottom:.35rem; }
.hss-contact-form input, .hss-contact-form textarea { border:1px solid #b9aaad; border-radius:.65rem; font:inherit; min-height:3rem; padding:.7rem .8rem; width:100%; }
.hss-honeypot { left:-10000px; position:absolute; }
.hss-home-contact { align-items:center; display:flex; flex-wrap:wrap; gap:2rem; justify-content:space-between; }
.hss-home-contact > div:first-child { max-width:40rem; }
.hss-home-proof { display:grid; gap:4rem; }
.hss-account > h1 { font-family:Georgia,serif; font-size:clamp(2.5rem,6vw,4.5rem); font-weight:400; }
.hss-account-grid { display:grid; gap:1.25rem; }
.hss-account-grid > section { background:var(--hss-cream); border-radius:var(--hss-radius); padding:clamp(1rem,4vw,2rem); }
.hss-account-grid label:not(.hss-check) span, .hss-account-grid .login-username label, .hss-account-grid .login-password label { display:block; font-size:.85rem; font-weight:700; margin:.8rem 0 .35rem; }
.hss-account-grid input:not([type=checkbox]) { border:1px solid #b9aaad; border-radius:.65rem; font:inherit; min-height:3rem; padding:.7rem .8rem; width:100%; }
.hss-login { align-items:center; display:grid; gap:clamp(2rem,7vw,6rem); min-height:calc(100vh - 5rem); }
.hss-login__intro h1 { color:var(--hss-ink); font-family:Georgia,serif; font-size:clamp(2.5rem,6vw,4.75rem); font-weight:400; letter-spacing:-.04em; line-height:1; margin:0; }
.hss-login__intro > p:not(.hss-eyebrow) { color:var(--hss-muted); font-size:1.05rem; line-height:1.7; max-width:35rem; }
.hss-login__intro ul { color:var(--hss-muted); display:grid; gap:.65rem; list-style:none; margin:1.5rem 0 0; padding:0; }
.hss-login__intro li::before { color:var(--hss-rose); content:"✦"; margin-right:.55rem; }
.hss-login__card { background:#fff; border:1px solid var(--hss-line); border-radius:1.5rem; box-shadow:var(--hss-shadow); padding:clamp(1.25rem,5vw,2.25rem); }
.hss-login__card h2 { color:var(--hss-ink); font-family:Georgia,serif; font-size:2rem; font-weight:400; margin:0 0 1.25rem; }
.hss-login__card form > p { margin:0 0 1rem; }
.hss-login__card label { color:var(--hss-ink); display:block; font-size:.82rem; font-weight:750; margin-bottom:.4rem; text-align:left; }
.hss-login__card .input { background:var(--hss-cream); border:1px solid #b9aaad; border-radius:.7rem; box-sizing:border-box; font:inherit; min-height:3.1rem; padding:.7rem .8rem; width:100%; }
.hss-login__card .login-remember label { align-items:center; display:flex; font-weight:500; gap:.55rem; }
.hss-login__card .login-remember input { height:1.2rem; width:1.2rem; }
.hss-login__card .button-primary { background:var(--hss-plum); border:2px solid var(--hss-plum); border-radius:999px; color:#fff; cursor:pointer; font:inherit; font-weight:750; min-height:3.1rem; padding:.7rem 1.25rem; width:100%; }
.hss-login__card .button-primary:hover { background:var(--hss-ink); border-color:var(--hss-ink); }
.hss-login__links { border-top:1px solid var(--hss-line); display:grid; font-size:.86rem; gap:.6rem; margin-top:1.25rem; padding-top:1.1rem; }
.hss-booking:not(.is-enhanced) [data-booking-panel][hidden] { display:block!important; }
.hss-booking:not(.is-enhanced) [data-booking-next], .hss-booking:not(.is-enhanced) [data-booking-prev], .hss-booking:not(.is-enhanced) [data-step-note] { display:none; }
.hss-booking:not(.is-enhanced) .hss-booking-controls [type="submit"] { display:inline-flex!important; }
.hss-whatsapp { align-items:center; background:#237a4b; border:2px solid rgba(255,255,255,.9); border-radius:999px; bottom:1rem; box-shadow:0 .75rem 2rem rgba(27,54,39,.28); color:#fff!important; display:flex; gap:.55rem; min-height:3.25rem; padding:.7rem 1rem; position:fixed; right:1rem; text-decoration:none!important; transition:background .2s,transform .2s; z-index:100; }
.hss-whatsapp:hover { background:#185e39; transform:translateY(-2px); }
.hss-whatsapp span { display:flex; }
.hss-whatsapp strong { font-size:.82rem; }

@media (min-width: 38rem) {
  .hss-shell { width: min(100% - 3rem, 74rem); }
  .hss-field-grid { grid-template-columns: 1fr 1fr; }
  .hss-slots { grid-template-columns: repeat(4, 1fr); }
}

@media (min-width: 52rem) {
	.hss-hero__grid { grid-template-columns:minmax(19rem,.85fr) minmax(26rem,1.15fr); }
	.hss-hero__media { min-height:34rem; }
	.hss-hero__media img { min-height:34rem; }
	.hss-editorial__grid { grid-template-columns:1.08fr .92fr; }
	.hss-booking-header { grid-template-columns:minmax(0,1.25fr) minmax(18rem,.75fr); }
  .hss-booking-layout { grid-template-columns: minmax(0, 1.6fr) minmax(17rem, .75fr); }
  .hss-summary { position: sticky; top: 2rem; }
  .hss-service-detail, .hss-contact { grid-template-columns:1fr 1fr; }
  .hss-account-grid { grid-template-columns:1fr 1fr; }
	.hss-login { grid-template-columns:minmax(0,1.05fr) minmax(20rem,.75fr); }
}

@media (max-width: 30rem) {
	.hss-calendar { margin-inline:-.35rem; padding:.65rem; }
	.hss-calendar__weekdays, .hss-calendar__grid { gap:.12rem; }
	.hss-calendar__grid button { border-radius:.55rem; font-size:.78rem; }
	.hss-whatsapp strong { clip:rect(1px,1px,1px,1px); clip-path:inset(50%); height:1px; overflow:hidden; position:absolute; width:1px; }
	.hss-whatsapp { border-radius:50%; height:3.4rem; justify-content:center; padding:0; width:3.4rem; }
}

@media (max-width: 51.99rem) {
	.hss-booking { min-height:calc(100dvh - 5rem); padding-block:.75rem 1.5rem; scroll-margin-top:5rem; }
	.hss-booking-header { align-items:center; display:flex; gap:.75rem; justify-content:space-between; margin-bottom:.55rem; }
	.hss-booking-header .hss-eyebrow { font-size:.63rem; margin-bottom:.2rem; }
	.hss-booking-header h1 { font-size:clamp(1.55rem,7vw,2rem); line-height:1.05; max-width:none; }
	.hss-booking-intro { color:var(--hss-muted); font-size:.75rem!important; line-height:1.35!important; margin:0!important; max-width:15rem; }
	.hss-progress { margin-bottom:.55rem; }
	.hss-progress span { font-size:.62rem; padding-top:.3rem; }
	.hss-booking.is-enhanced .hss-booking-form { display:flex; flex-direction:column; height:calc(100vh - 12rem); height:calc(100dvh - 12rem); max-height:none; min-height:22rem; overflow:hidden; padding:.8rem; }
	.hss-booking-form fieldset { border:0; margin:0; padding:0; }
	.hss-booking.is-enhanced .hss-booking-panel-stack { flex:1 1 auto; min-height:0; overflow-y:auto; overscroll-behavior:contain; padding:.05rem .2rem .25rem 0; scroll-padding-block:.4rem; scrollbar-width:thin; }
	.hss-booking-form legend { font-size:1.15rem; margin-bottom:.45rem; }
	.hss-booking-form label:not(.hss-check), .hss-booking-form .hss-label { margin:.45rem 0 .25rem; }
	.hss-booking-form input:not([type="checkbox"]), .hss-booking-form select { min-height:2.7rem; padding:.55rem .7rem; }
	.hss-booking-form textarea { min-height:4.25rem; padding:.55rem .7rem; }
	.hss-summary { display:none; }
	.hss-booking-controls { background:rgba(255,255,255,.97); border:1px solid var(--hss-line); border-radius:.85rem; box-shadow:0 .45rem 1.1rem rgba(71,47,52,.1); flex:0 0 auto; margin-top:.4rem; padding:.45rem max(.45rem,env(safe-area-inset-right)) max(.45rem,env(safe-area-inset-bottom)) max(.45rem,env(safe-area-inset-left)); z-index:4; }
	.hss-booking-controls .hss-button { min-height:2.75rem; padding:.55rem .85rem; }
	.hss-booking-controls { grid-template-columns:auto 1fr; }
	.hss-booking-controls [data-step-note] { display:none; }
	.hss-booking-controls [data-booking-next], .hss-booking-controls [type="submit"] { grid-column:2; }
	.hss-calendar { margin-top:.55rem; padding:.5rem; }
	.hss-calendar__header { grid-template-columns:2.1rem 1fr 2.1rem; margin-bottom:.3rem; }
	.hss-calendar__header button { height:2.1rem; width:2.1rem; }
	.hss-calendar__header strong { font-size:1.05rem; }
	.hss-calendar__weekdays { font-size:.58rem; margin-bottom:.2rem; }
	.hss-calendar__weekdays, .hss-calendar__grid { gap:.12rem; }
	.hss-calendar__grid button { aspect-ratio:auto; border-radius:.45rem; font-size:.74rem; min-height:1.8rem; padding:.08rem; }
	.hss-calendar__grid button i { height:.2rem; margin-top:.05rem; width:.2rem; }
	.hss-calendar__legend { display:none; }
	.hss-slot-heading { margin-top:.55rem; }
	.hss-slot-heading strong { font-size:1.05rem; }
	.hss-slots { display:flex; gap:.4rem; margin-top:.4rem; overflow-x:auto; padding:0 0 .3rem; scroll-snap-type:x mandatory; }
	.hss-slots button { flex:0 0 6.75rem; min-height:2.85rem; scroll-snap-align:start; }
	.hss-form-review dl div { padding-block:.55rem; }
	.hss-cash-note--review, .hss-review-note { font-size:.78rem; margin-top:.55rem; padding:.6rem .7rem; }
	.hss-slots p { flex:1 0 100%; }
	.hss-waitlist { margin-top:.75rem; }
	.hss-login { min-height:auto; padding-block:2.5rem; }
	.hss-login__intro ul { display:none; }
}

@media (max-width: 32rem) {
	.hss-booking-intro { display:none; }
	.hss-booking.is-enhanced .hss-booking-form { height:calc(100vh - 11.5rem); height:calc(100dvh - 11.5rem); }
}

@media (max-width: 51.99rem) and (max-height: 43rem) {
	.hss-booking-header .hss-eyebrow { display:none; }
	.hss-booking-header h1 { font-size:1.35rem; }
	.hss-booking.is-enhanced .hss-booking-form { height:calc(100vh - 10.25rem); height:calc(100dvh - 10.25rem); }
	.hss-calendar__weekdays { display:none; }
	.hss-calendar__grid { display:flex; gap:.3rem; overflow-x:auto; padding-bottom:.25rem; scroll-snap-type:x mandatory; }
	.hss-calendar__blank { display:none; }
	.hss-calendar__grid button { aspect-ratio:1; flex:0 0 2.75rem; min-height:2.75rem; scroll-snap-align:start; }
	.hss-calendar { margin-top:.35rem; }
	.hss-slot-heading { margin-top:.35rem; }
	.hss-slot-heading span { display:none; }
	.hss-slot-heading strong { margin-top:0; }
}

@keyframes hss-pulse { 0%,100%{opacity:.35;transform:scale(.8)} 50%{opacity:1;transform:scale(1)} }

.hss-service-notice { background:linear-gradient(135deg,#fff6e8,#fffafb); border:1px solid #e8c58f; border-left:4px solid var(--hss-rose); border-radius:.8rem; color:var(--hss-ink); display:grid; gap:.25rem; margin-top:.85rem; padding:.8rem 1rem; }
.hss-service-notice[hidden] { display:none; }
.hss-service-notice strong { font-size:.92rem; }
.hss-service-notice span { color:var(--hss-muted); font-size:.82rem; line-height:1.45; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}

/* Homepage editorial refresh. Scoped to the new homepage components so booking behaviour is untouched. */
.hss-hero { background:linear-gradient(108deg,#fff9f7 0%,#faecee 52%,#e9c7bd 100%); min-height:auto; padding-block:0; }
.hss-hero::before { background:rgba(255,255,255,.55); border-radius:50%; content:""; height:52rem; left:-31rem; position:absolute; top:-14rem; width:58rem; }
.hss-hero::after { border-color:rgba(176,84,115,.18); height:30rem; left:-13rem; top:4rem; width:30rem; }
.hss-hero__grid { gap:0; max-width:90rem; width:min(100%,90rem); }
.hss-hero__content { padding:clamp(3.25rem,7vw,6.5rem) clamp(1.25rem,5vw,5rem); }
.hss-hero h1 { font-size:clamp(3.2rem,6.9vw,6.2rem); line-height:.92; max-width:8.6ch; }
.hss-hero h1 em { color:var(--hss-rose); display:block; font-weight:400; }
.hss-hero__content > p:not(.hss-eyebrow,.hss-cash-note) { font-size:clamp(1rem,1.6vw,1.18rem); line-height:1.55; max-width:34rem; }
.hss-hero__media { align-self:stretch; border-radius:48% 0 0 48%; box-shadow:none; min-height:42rem; }
.hss-hero__media img { min-height:42rem; object-position:center; }
.hss-hero__media figcaption { align-items:flex-end; bottom:2rem; left:auto; right:2rem; text-align:right; }
.hss-hero__media figcaption strong { font-family:"Segoe Script","Bradley Hand",cursive; font-size:clamp(1.6rem,3vw,2.6rem); max-width:9ch; }
.hss-hero__media figcaption span { color:#f6d7e1; }
.hss-hero__proof { display:grid; gap:1rem; grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:2.5rem; }
.hss-hero__proof li { align-items:center; display:flex; font-size:.8rem; font-weight:600; line-height:1.35; }
.hss-hero__proof li::before { content:none; }
.hss-hero__proof li span { align-items:center; border:1px solid #d99aae; border-radius:50%; color:var(--hss-rose); display:inline-flex; flex:0 0 auto; font-size:1.25rem; height:2.5rem; justify-content:center; margin-right:.7rem; width:2.5rem; }
.hss-hero .hss-cash-note { border-left:3px solid #d99aae; margin-top:1.5rem; padding-left:.8rem; }
.hss-section-heading { align-items:end; display:flex; gap:2rem; justify-content:space-between; }
.hss-section-heading h2 { margin-bottom:.25rem; }
.hss-home-services { padding-block:clamp(3rem,6vw,5rem); }
.hss-service-tabs { display:flex; gap:.55rem; list-style:none; margin:1.5rem 0 1.25rem; overflow-x:auto; padding:0 0 .35rem; scrollbar-width:thin; }
.hss-service-tabs li { background:#fbf0f2; border-radius:999px; color:var(--hss-ink); flex:0 0 auto; font-size:.82rem; min-width:5rem; padding:.62rem 1rem; text-align:center; }
.hss-service-tabs .is-active { background:var(--hss-plum); color:#fff; }
.hss-featured-grid { display:grid; gap:1.1rem; grid-template-columns:repeat(4,minmax(0,1fr)); }
.hss-featured-card { background:#fff; border:1px solid #f1e6e3; border-radius:1.1rem; box-shadow:0 .55rem 1.6rem rgba(75,33,59,.08); overflow:hidden; transition:transform .25s,box-shadow .25s; }
.hss-featured-card:hover { box-shadow:0 1.1rem 2.4rem rgba(75,33,59,.15); transform:translateY(-4px); }
.hss-featured-card > img { aspect-ratio:4/3; display:block; object-fit:cover; width:100%; }
.hss-featured-card > div { display:flex; flex-direction:column; min-height:14rem; padding:1rem; }
.hss-featured-card h3 { color:var(--hss-ink); font-family:Georgia,serif; font-size:1.28rem; font-weight:400; line-height:1.1; margin:0 0 .8rem; min-height:2.8rem; }
.hss-featured-card p { color:var(--hss-muted); font-size:.82rem; margin:.18rem 0; }
.hss-featured-card p span { color:var(--hss-rose); margin-right:.3rem; }
.hss-featured-card .hss-button { margin-top:auto; min-height:2.65rem; padding:.55rem 1rem; }
.hss-editorial { align-items:stretch; display:grid; grid-template-columns:1fr 1fr; padding:0; }
.hss-editorial::before { background:radial-gradient(circle,rgba(245,177,200,.14),transparent 68%); border:0; height:34rem; right:-7rem; top:-8rem; width:34rem; }
.hss-editorial__media { min-height:32rem; }
.hss-editorial__media img { height:100%; object-fit:cover; width:100%; }
.hss-editorial__content { align-items:flex-start; display:flex; flex-direction:column; justify-content:center; padding:clamp(3rem,8vw,7rem); position:relative; z-index:1; }
.hss-editorial__content h2 { color:#fff; font-family:Georgia,serif; font-size:clamp(2.7rem,5vw,4.6rem); font-weight:400; line-height:.98; margin:0 0 1.5rem; max-width:10ch; }
.hss-editorial__content p:not(.hss-eyebrow) { max-width:34rem; }
.hss-button--blush { background:#f6c3d3; border-color:#f6c3d3; color:var(--hss-plum)!important; margin-top:1rem; }
.hss-button--blush:hover { background:#fff; border-color:#fff; }
.hss-experience { padding-bottom:clamp(3rem,6vw,5rem); }
.hss-experience__intro { align-items:end; display:grid; gap:3rem; grid-template-columns:1.35fr .65fr; }
.hss-experience__intro h2 { margin-bottom:1rem; }
.hss-experience__intro p:not(.hss-eyebrow) { color:var(--hss-muted); max-width:44rem; }
.hss-experience__intro ul { display:grid; gap:.8rem; list-style:none; margin:0; padding:0; }
.hss-experience__intro li { font-size:.88rem; font-weight:650; }
.hss-experience__intro li::before { color:var(--hss-rose); content:"♡"; font-size:1.25rem; margin-right:.75rem; }
.hss-experience__tiles { display:grid; gap:1.1rem; grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:2rem; }
.hss-experience__tiles a { border-radius:1.1rem; box-shadow:0 .5rem 1.5rem rgba(75,33,59,.08); color:var(--hss-ink); overflow:hidden; position:relative; }
.hss-experience__tiles img { aspect-ratio:1.45/1; display:block; object-fit:cover; transition:transform .35s; width:100%; }
.hss-experience__tiles a:hover img { transform:scale(1.035); }
.hss-experience__tiles span { background:#fff7f8; border-radius:999px; bottom:1rem; font-size:.82rem; font-weight:700; left:1rem; padding:.55rem 1.1rem; position:absolute; }
.hss-home-proof { background:linear-gradient(120deg,#fff8f7,#fae9ec); overflow:hidden; }
.hss-quote { align-items:center; display:grid; gap:clamp(2rem,6vw,5rem); grid-template-columns:minmax(13rem,.42fr) minmax(0,1fr); position:relative; }
.hss-quote::after { border:1px solid rgba(176,84,115,.2); border-radius:50%; content:""; height:18rem; position:absolute; right:-10rem; top:-6rem; width:18rem; }
.hss-quote figure { aspect-ratio:1; border:8px solid rgba(255,255,255,.7); border-radius:50%; box-shadow:0 1rem 2.5rem rgba(75,33,59,.13); margin:0; overflow:hidden; }
.hss-quote img { height:100%; object-fit:cover; object-position:center; width:100%; }
.hss-quote blockquote { color:var(--hss-plum); font-family:Georgia,serif; font-size:clamp(1.35rem,3vw,2.25rem); line-height:1.35; margin:0; position:relative; }
.hss-quote blockquote > span { color:var(--hss-rose); display:block; font-size:5rem; height:3.2rem; line-height:1; }
.hss-quote blockquote p { margin:.5rem 0 1rem; }
.hss-quote cite { color:var(--hss-rose-dark); display:block; font-family:ui-sans-serif,system-ui,sans-serif; font-size:.85rem; font-style:normal; }
.hss-home-cta { background:#fff8f7; border-top:1px solid #f0dddf; overflow:hidden; position:relative; }
.hss-home-cta::before,.hss-home-cta::after { border:1px solid rgba(176,84,115,.18); border-radius:50%; content:""; height:17rem; position:absolute; width:17rem; }
.hss-home-cta::before { bottom:-11rem; left:-7rem; }
.hss-home-cta::after { right:-7rem; top:-11rem; }
.hss-home-cta .hss-split { position:relative; z-index:1; }
.hss-home-cta h2 { margin-bottom:.7rem; }
.hss-home-cta p:not(.hss-eyebrow) { color:var(--hss-muted); margin:0; }
.hss-home-cta .hss-actions { margin-top:0; }

@media (max-width: 64rem) {
	.hss-featured-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
	.hss-hero__media { border-radius:35% 0 0 35%; }
}

@media (max-width: 51.99rem) {
	.hss-hero__grid { grid-template-columns:1fr; }
	.hss-hero__content { padding-block:3.5rem 2.5rem; }
	.hss-hero__media { border-radius:38% 38% 0 0; min-height:26rem; }
	.hss-hero__media img { min-height:26rem; }
	.hss-hero__proof { grid-template-columns:1fr; margin-top:1.6rem; }
	.hss-editorial { grid-template-columns:1fr; }
	.hss-editorial__media { min-height:22rem; }
	.hss-editorial__content { padding:3.5rem 1.5rem; }
	.hss-experience__intro { align-items:start; gap:1.5rem; grid-template-columns:1fr; }
	.hss-experience__tiles { grid-template-columns:1fr; }
	.hss-experience__tiles img { aspect-ratio:1.8/1; }
	.hss-quote { grid-template-columns:1fr; text-align:center; }
	.hss-quote figure { margin-inline:auto; max-width:17rem; }
	.hss-quote blockquote > span { margin-inline:auto; }
}

@media (max-width: 35rem) {
	.hss-hero h1 { font-size:3.25rem; }
	.hss-section-heading { align-items:flex-start; flex-direction:column; gap:.25rem; }
	.hss-featured-grid { grid-template-columns:1fr; }
	.hss-featured-card { display:grid; grid-template-columns:8.5rem 1fr; }
	.hss-featured-card > img { height:100%; min-height:14rem; }
	.hss-featured-card > div { min-height:14rem; }
	.hss-featured-card h3 { font-size:1.15rem; min-height:auto; }
	.hss-home-cta .hss-actions { align-items:stretch; width:100%; }
	.hss-home-cta .hss-button { width:100%; }
}
