@font-face{font-family:Instrument;src:url('assets/fonts/InstrumentSerif-Regular.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Instrument;src:url('assets/fonts/InstrumentSerif-Italic.ttf') format('truetype');font-style:italic;font-weight:400;font-display:swap}
@font-face{font-family:General;src:url('assets/fonts/GeneralSans-400.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:General;src:url('assets/fonts/GeneralSans-500.woff2') format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:General;src:url('assets/fonts/GeneralSans-600.woff2') format('woff2');font-weight:600;font-display:swap}
:root{--cream:#fbf5ef;--paper:#fffaf6;--pink:#f4e4e5;--rose:#ecd0d5;--berry:#922653;--plum:#381426;--muted:#806c74;--border:#e9cdd3;--serif:Instrument,Georgia,serif;--sans:General,Arial,sans-serif;--ease:cubic-bezier(.22,1,.36,1);--section-space:96px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--cream);color:var(--plum);font-family:var(--sans);font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased}body::before{content:'';position:fixed;inset:0;opacity:.027;pointer-events:none;z-index:10;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.65' filter='url(%23n)'/%3E%3C/svg%3E")}
button,a,summary{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button{color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button{border:0}img{display:block;width:100%;height:100%;object-fit:cover}svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.svg-library{position:absolute;width:0;height:0;overflow:hidden}button:focus-visible,a:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--berry);outline-offset:6px}button:active,.button:active{transform:scale(.97)}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:400}h1,h2{letter-spacing:-.025em;line-height:1.03}h2{font-size:clamp(50px,5.4vw,78px)}h3{line-height:1.06}em{font-weight:400;color:var(--berry)}p{color:var(--muted)}.container{width:min(1220px,calc(100% - 112px));margin-inline:auto}
/* Shared vertical rhythm for every content section, scaled at tablet and mobile breakpoints. */
.section-pad{padding-block:var(--section-space)}
/* Slim frosted labels keep the section introductions quiet and readable. */
.eyebrow {
  display: flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  max-width: 100%;
  padding: 5px 14px;
  border: 1px solid rgba(162, 42, 82, .16);
  border-radius: 999px;
  background: rgba(255, 246, 243, .64);
  -webkit-backdrop-filter: blur(12px) saturate(130%);
  backdrop-filter: blur(12px) saturate(130%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .65);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .02em;
  line-height: 1.5;
  color: var(--berry);
  text-transform: none;
}
.hero-copy > .eyebrow, .story-copy > .eyebrow, .center-heading .eyebrow, .diary-heading .eyebrow {
  margin-inline: auto;
}
.doodle{stroke-width:1.3;color:var(--berry)}.muted{color:var(--muted)}.skip-link{position:fixed;top:-80px;left:20px;padding:12px 20px;background:var(--plum);color:white;z-index:100}.skip-link:focus{top:12px}
.site-header{height:104px;position:relative;z-index:20}.nav-shell{height:100%;width:calc(100% - 100px);max-width:1460px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:28px}.wordmark{display:flex;align-items:center;gap:9px;font-family:var(--serif);font-size:31px;letter-spacing:-.045em;line-height:1}.brand-flower{width:41px;height:41px;stroke-width:1.1;color:var(--berry)}.wordmark small{display:block;font-family:var(--sans);font-size:7px;letter-spacing:.25em;margin-top:8px;font-weight:500;text-align:center}.site-header nav{display:flex;gap:31px;align-items:center;font-size:12px}.site-header nav a{position:relative;padding:10px 0}.site-header nav a::after{position:absolute;content:'';bottom:6px;left:0;width:100%;height:1px;background:var(--berry);transform:scaleX(0);transform-origin:left;transition:transform .25s}.site-header nav a:hover::after{transform:scaleX(1)}.button{display:inline-flex;gap:24px;align-items:center;justify-content:space-between;min-height:52px;background:var(--berry);color:#fff7f1;border:1px solid transparent;border-radius:40px;padding:6px 6px 6px 23px;font-size:12px;font-weight:500;transition:background .2s,transform .2s;white-space:nowrap}.button:hover{background:#782044}.button-icon{display:grid;place-items:center;width:39px;height:39px;border-radius:50%;background:rgba(255,255,255,.17)}.button-icon svg{width:17px;height:17px}.button-small{min-height:45px;padding:5px 5px 5px 20px;font-size:11px;gap:18px}.button-small .button-icon{width:33px;height:33px}.button-light{background:#efdde0;color:var(--berry)}.button-light:hover{background:#e7cbd2}.button-light .button-icon{background:var(--berry);color:white}.text-link{display:inline-flex;gap:16px;align-items:center;background:none;font-size:12px;font-weight:500;color:var(--plum);padding:8px 0}.text-link svg{width:18px;height:18px;transition:transform .3s var(--ease)}.text-link:hover svg{transform:translate(3px,-2px)}
.hero{overflow:hidden;position:relative;background:radial-gradient(ellipse 70% 40% at 50% 72%,#f2d4df80,transparent 85%)}.hero-copy{text-align:center;position:relative;padding-top:38px;z-index:2}.hero h1{font-size:clamp(72px,7.3vw,111px);line-height:.99;margin:23px auto 20px;position:relative;width:max-content;max-width:90%;letter-spacing:-.035em}.hero h1 em{display:inline-block}.hero-actions{display:flex;justify-content:center;align-items:center;gap:30px;margin-top:26px}.hero-spark{position:absolute;right:-47px;top:-5px;width:43px;height:43px;transform:rotate(9deg)}.hero-doodle{position:absolute;left:calc(50% - 420px);top:274px;width:88px;height:80px;transform:rotate(-25deg)}
.hero-gallery{height:395px;margin-top:30px;position:relative;overflow:hidden;touch-action:pan-y}.hero-gallery-track{position:relative;width:100%;height:100%;perspective:1100px}.hero-card{display:block;position:absolute;top:50%;left:50%;width:230px;height:315px;border-radius:20px;overflow:hidden;background:#dbc3bb;transform:translate(-50%,-50%);will-change:transform;box-shadow:0 12px 35px -20px #5c23374a;border:1px solid #fff9;isolation:isolate}.hero-card img{transition:filter .35s;object-position:center}.hero-card:hover img{filter:brightness(1.035)}.glass-label{position:absolute;bottom:12px;left:12px;right:12px;border:1px solid #fff6;border-radius:13px;background:linear-gradient(150deg,#775b6259,#9b425d94);backdrop-filter:blur(18px) saturate(1.2);-webkit-backdrop-filter:blur(18px) saturate(1.2);padding:15px 13px;color:#fff;display:flex;justify-content:space-between;align-items:center;text-shadow:0 1px 5px #34182640}.glass-label>span{font-family:var(--serif);font-size:26px;line-height:1.05}.glass-label small{display:block;font-family:var(--sans);font-size:7px;font-weight:500;letter-spacing:.09em;margin-bottom:6px}.glass-label svg{width:18px;height:18px}.hero-bottom{display:flex;align-items:center;justify-content:center;min-height:65px;position:relative;padding:0 40px 24px}.rating-link{font-size:11px;display:flex;align-items:center;gap:12px}.rating-link .stars{font-size:13px;letter-spacing:2px}.stars{color:var(--berry)}.rating-link b{font-weight:600}
/* The story is one reading passage, with colour tied directly to scroll. */
.story{text-align:center;position:relative;overflow:hidden}
.story-composition{display:grid;grid-template-columns:1fr minmax(0,2.8fr) 1fr;align-items:center;max-width:1520px;margin:0 auto;gap:32px;padding-inline:54px}
.story-copy{min-width:0}
.story-copy > .eyebrow{margin:0 auto 22px}
.story-copy .story-text{font-family:var(--serif);font-size:clamp(32px,2.9vw,44px);font-weight:400;letter-spacing:-.012em;line-height:1.3;color:var(--plum);max-width:800px;margin:0 auto;text-wrap:pretty}
.story-word{display:inline-block}
.story-text.is-scroll-ready .story-word{opacity:calc(.23 + var(--word-progress,1)*.77)}
.story-copy .story-button{margin-top:34px;min-height:60px;padding:7px 7px 7px 28px;gap:25px;font-size:14px;font-weight:600;box-shadow:0 8px 20px -10px #92265375}
.story-button .button-icon{width:44px;height:44px;background:var(--paper);color:var(--berry)}
.story-button .button-icon svg{width:20px;height:20px;stroke-width:1.8}
.story-photo{background:#fffaf8;border:6px solid #fffaf8;border-bottom:0;border-radius:15px;padding-bottom:14px;box-shadow:0 20px 40px -18px #63364745;width:100%;max-width:242px;aspect-ratio:.78;transform:rotate(-10deg);margin:0;justify-self:start}
.story-photo img{border-radius:9px;height:calc(100% - 32px)}
.story-photo figcaption{font-family:var(--serif);font-style:italic;font-size:20px;line-height:1;padding-top:14px;color:var(--berry);white-space:nowrap}
.story-photo-right{transform:rotate(10deg);justify-self:end;margin-top:38px}
.story-flower{position:absolute;right:calc(50% - 470px);top:80px;width:45px;height:45px;transform:rotate(15deg)}

.center-heading{text-align:center;margin-bottom:54px}.center-heading h2{margin-top:21px;display:inline-block;position:relative}.heading-heart{position:absolute;width:54px;height:54px;right:-77px;top:25px;transform:rotate(14deg)}.experience-grid{display:grid;grid-template-columns:1.45fr 1fr;gap:23px}.experience-left{display:flex;flex-direction:column;gap:23px}.colour-story{display:flex;align-items:center;gap:18px;background:#f2e2df;border-radius:25px;overflow:hidden;padding:45px 28px 45px 35px;min-height:345px}.colour-story-copy{flex:1;z-index:1}.colour-story h3{font-size:46px;line-height:1.07;margin-top:20px;letter-spacing:-.02em}.colour-story-copy>p:not(.eyebrow){font-size:11px;line-height:1.85;max-width:225px;margin-top:20px}.colour-story .text-link{font-size:10px;margin-top:17px;gap:7px}.colour-story .text-link svg{width:14px;height:14px}.colour-orbit{width:215px;height:260px;position:relative;flex-shrink:0;display:grid;place-items:center}.colour-orbit img{width:174px;height:220px;border-radius:110px;z-index:1}.orbit-line{position:absolute;width:200px;height:240px;border:1px solid #b7798970;border-radius:50%;transform:rotate(-20deg);animation:orbit 24s linear infinite}.orbit-line.second{width:217px;height:232px;transform:rotate(25deg);animation-direction:reverse}.orbit-star{color:var(--berry);font-size:48px;position:absolute;right:5px;top:6px;z-index:2;animation:float 5s ease-in-out infinite}@keyframes orbit{to{transform:rotate(340deg)}}@keyframes float{50%{transform:translateY(-9px) rotate(7deg)}}.little-features{display:grid;grid-template-columns:1fr 1fr;gap:23px;flex:1}.little-feature{border:1px solid var(--border);border-radius:22px;padding:27px;display:flex;flex-direction:column;justify-content:space-between;gap:20px;min-height:190px}.little-feature .doodle{height:43px;width:43px}.little-feature h3{font-size:29px;margin-bottom:10px}.little-feature p{font-size:11px;line-height:1.8;max-width:225px}.review-panel{background:#f3e1e1;border-radius:25px;padding:31px 25px 13px;overflow:hidden;position:relative}.review-heading{padding:0 10px}.review-heading>.stars{font-size:14px;letter-spacing:4px}.review-heading>p{display:flex;align-items:center;gap:20px;margin-top:5px}.review-heading strong{font-family:var(--serif);font-size:78px;color:var(--plum);font-weight:400;line-height:1.1}.review-heading p>span{font-size:12px;line-height:1.8}.review-heading a{font-size:10px;text-decoration:underline;text-underline-offset:4px}.review-window{height:394px;overflow:hidden;mask-image:linear-gradient(transparent,#000 12%,#000 82%,transparent);-webkit-mask-image:linear-gradient(transparent,#000 12%,#000 82%,transparent);margin-top:7px}.review-card{padding:24px 23px 21px;background:var(--paper);border-radius:18px}.review-mark{font-family:var(--serif);font-size:39px;line-height:.5;color:var(--berry);display:block;margin:10px 0 7px}.review-card blockquote{font-family:var(--serif);font-size:29px;line-height:1.15;margin:0;color:var(--plum);letter-spacing:-.005em}.review-card figcaption{display:flex;align-items:center;gap:10px;margin-top:22px;font-size:10px;line-height:1.5}.review-avatar{display:grid;place-items:center;width:32px;height:32px;background:#f0dfe2;border-radius:50%;font-family:var(--serif);font-size:20px;color:var(--berry)}.review-card small{font-size:8px;display:block;color:var(--muted)}.mini-stars{margin-left:auto;font-size:9px;letter-spacing:1px;color:var(--berry)}
.salon-diary{text-align:center}
/* A quieter, narrower FAQ with clear controls and a soft open state. */

.faq .faq-grid{width:min(1080px,calc(100% - 112px));display:grid;grid-template-columns:1fr 1.08fr;align-items:start;gap:68px}
.faq-heading{position:relative}
.faq-heading h2{font-size:clamp(46px,4.3vw,60px);line-height:1.08;margin-top:20px;max-width:440px}
.faq-heading>p:not(.eyebrow){font-size:14px;line-height:1.8;margin-top:22px}
.faq-heading .button{margin-top:24px}

.faq-list{display:flex;flex-direction:column;gap:10px}
.faq-list details{border:1px solid #e8d4da;border-radius:17px;background:#fffaf6b3;overflow:hidden;transition:background .2s,border-color .2s,box-shadow .2s}
.faq-list details:hover{border-color:#d8b2c0;background:var(--paper)}
.faq-list summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:70px;padding:18px 22px;font-size:14px;font-weight:500;line-height:1.5;color:var(--plum);transition:color .2s}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary:focus-visible{outline-offset:-5px;border-radius:16px}
.faq-list summary>span{display:grid;place-items:center;width:32px;height:32px;flex:0 0 32px;border:1px solid #e6cbd4;border-radius:50%;background:#f5e7ea;color:var(--berry);transition:transform .25s var(--ease),background .2s,color .2s,border-color .2s}
.faq-list summary>span svg{width:16px;height:16px;stroke-width:1.7}
.faq-list details[open]{background:var(--paper);border-color:#d4acba;box-shadow:0 8px 24px -20px #6d23494d}
.faq-list details[open] summary{color:var(--berry)}
.faq-list details[open] summary>span{transform:rotate(45deg);background:var(--berry);border-color:var(--berry);color:var(--paper)}
.faq-answer{padding:0 22px 22px;font-size:13px;line-height:1.8}
.faq-answer p{padding-top:16px}
.faq-list details[open] .faq-answer{animation:faq-answer-enter .25s var(--ease)}
.faq-answer a{text-decoration:underline;text-underline-offset:3px;color:var(--berry)}
@keyframes faq-answer-enter{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}

.reveal{opacity:1;transform:translateY(0)}.js .reveal:not(.is-visible){opacity:0;transform:translateY(20px)}.js .reveal{transition:opacity .75s var(--ease),transform .75s var(--ease)}.js .story-photo-left.is-visible{transform:rotate(-10deg)}.js .story-photo-right.is-visible{transform:rotate(10deg)}.motion-paused .orbit-line,.motion-paused .orbit-star{animation-play-state:paused}
dialog{border:0;padding:0;color:var(--plum);background:var(--paper);box-shadow:0 30px 100px #19051140;max-height:calc(100dvh - 60px)}dialog[open]{animation:modal-enter .3s var(--ease)}dialog::backdrop{background:#210d20b3;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}@keyframes modal-enter{from{opacity:0;transform:translateY(15px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.dialog-close{position:absolute;z-index:3;right:14px;top:14px;border-radius:50%;background:#fff8;color:var(--plum);backdrop-filter:blur(15px);width:42px;height:42px;font-size:29px;font-weight:400;line-height:1}.treatment-dialog{width:min(850px,calc(100% - 40px));border-radius:25px;overflow:auto}.treatment-dialog-inner{display:grid;grid-template-columns:.85fr 1.15fr;min-height:480px}.treatment-dialog-inner>img{min-height:100%;max-height:650px}.treatment-dialog-copy{padding:50px 40px 40px}.treatment-dialog-copy h2{font-size:52px;margin:22px 0}.treatment-dialog-copy>p:not(.eyebrow){font-size:13px;line-height:1.8}.treatment-dialog-copy ul{padding-left:18px;font-size:13px;line-height:2;color:var(--berry)}.treatment-dialog-copy .treatment-note{font-size:var(--text-small,.875rem)!important;margin:25px 0 22px}
@media(min-width:1550px){.hero-card{width:255px;height:345px}.hero-gallery{height:430px}.hero-copy{padding-top:58px}}
@media(max-width:1150px){.nav-shell{width:calc(100% - 56px);gap:15px}.site-header nav{gap:20px}.nav-book{font-size:10px;gap:12px}.container{width:calc(100% - 72px)}.hero-doodle{left:calc(50% - 355px)}.hero-card{width:205px;height:290px}.hero-gallery{height:360px}.story-composition{padding-inline:36px;gap:25px}.story-copy .story-text{font-size:34px}.story-photo figcaption{font-size:17px}.story-flower{right:10%}.experience-grid{grid-template-columns:1.25fr 1fr}.colour-story{padding:32px 22px;gap:5px}.colour-story h3{font-size:38px}.colour-orbit{width:160px}.colour-orbit img{width:138px;height:190px}.orbit-line{width:148px;height:220px}.orbit-line.second{width:164px;height:211px}.little-feature{padding:23px 20px}.little-feature h3{font-size:26px}.faq .faq-grid{width:min(1080px,calc(100% - 72px));gap:54px}}
@media(max-width:850px){.site-header{height:88px}.site-header nav{gap:16px;font-size:10px}.wordmark{font-size:27px}.brand-flower{width:34px;height:34px}.nav-book{display:none}.hero-copy{padding-top:35px}.hero h1{font-size:78px}.hero-spark{right:-28px;width:30px}.hero-doodle,.hero-gallery{margin-top:24px;height:330px}.hero-card{width:190px;height:270px}.hero-bottom{padding-bottom:26px}.rating-link{font-size:10px}:root{--section-space:80px}.story-composition{grid-template-columns:1fr 1fr;gap:38px 44px;padding-inline:54px;margin-top:0;max-width:760px}.story-copy{grid-column:1/-1;grid-row:1}.story-copy .story-text{font-size:36px;max-width:660px}.story-photo{width:210px;max-width:100%;justify-self:end}.story-photo-right{justify-self:start;margin-top:24px}.story-flower{top:64px;right:9%;width:36px;height:36px}.experience-grid{grid-template-columns:1fr 1fr;gap:18px}.colour-story{min-height:420px;position:relative;align-items:flex-start}.colour-orbit{position:absolute;right:-14px;bottom:-6px;opacity:.95}.colour-story-copy>p:not(.eyebrow){max-width:200px}.colour-story .text-link{max-width:170px}.little-features{gap:12px}.little-feature{padding:19px 16px;min-height:185px}.little-feature h3{font-size:23px}.little-feature p{font-size:10px}.review-panel{padding:26px 18px 15px}.review-window{height:458px}.review-heading strong{font-size:69px}.review-heading p>span{font-size:10px}.review-heading a{font-size:8px}.review-card{padding:24px 18px 20px}.review-card blockquote{font-size:27px}.review-avatar{height:27px;width:27px}.mini-stars{font-size:7px}.faq .faq-grid{gap:36px;grid-template-columns:.95fr 1.05fr}.faq-heading h2{font-size:46px}.faq-list summary{font-size:13px;padding:17px 18px}.faq-answer{padding-inline:18px}}
@media(max-width:600px){html{scroll-padding-top:30px}.container{width:calc(100% - 40px)}:root{--section-space:64px}.eyebrow{font-size:10px;letter-spacing:.02em;padding:5px 12px}.site-header{height:80px}.nav-shell{width:calc(100% - 40px);gap:14px}.wordmark{font-size:27px}.wordmark small{font-size:6px;letter-spacing:.2em}.brand-flower{height:33px;width:33px}.site-header nav{display:none;position:absolute;top:72px;left:16px;right:16px;background:var(--paper);border:1px solid var(--border);border-radius:18px;box-shadow:0 15px 50px #54223620;padding:20px;flex-direction:column;align-items:stretch;gap:0;font-size:16px}.site-header nav a{padding:14px 10px}.hero-copy{padding-top:28px}.hero h1{font-size:clamp(52px,11.6vw,69px);max-width:100%;margin-top:21px;margin-bottom:19px;letter-spacing:-.033em;line-height:1.01}.hero-spark{width:24px;height:24px;right:7px;top:-27px}.hero-actions{margin-top:22px;gap:18px}.hero-actions .text-link{font-size:10px;gap:5px}.hero-actions .text-link svg{width:13px}.button{min-height:48px;font-size:11px;padding-left:19px;gap:15px}.button-icon{height:35px;width:35px}.hero-gallery{height:310px;margin-top:22px;mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}.hero-card{width:168px;height:243px;border-radius:17px}.glass-label{padding:12px 10px;border-radius:11px;bottom:9px;left:9px;right:9px}.glass-label>span{font-size:24px}.glass-label small{font-size:6px;letter-spacing:.035em}.glass-label svg{width:14px;height:14px}.hero-bottom{flex-direction:column;gap:8px;padding:0 15px 17px}.rating-link{font-size:9px;gap:8px}.rating-link .stars{font-size:11px}.story-composition{gap:36px 25px;padding-inline:26px;margin-top:0}.story-copy .story-text{font-size:clamp(28px,7.5vw,35px);line-height:1.3;letter-spacing:-.012em;max-width:480px}.story-copy .story-button{font-size:12px;min-height:54px;margin-top:28px;padding:6px 6px 6px 20px;gap:17px}.story-button .button-icon{width:40px;height:40px}.story-photo{width:155px;min-width:0;height:202px;aspect-ratio:auto;border-width:5px;border-bottom:0;padding-bottom:10px}.story-photo-right{margin-top:20px}.story-photo figcaption{font-size:16px}.story-photo img{height:calc(100% - 26px)}.story-flower{right:23px;top:46px;width:30px;height:30px}.center-heading{margin-bottom:32px}.center-heading h2{font-size:53px}.heading-heart{width:32px;height:32px;right:-10px;top:-24px}.experience-grid{grid-template-columns:1fr;gap:18px}.experience-left{gap:16px}.colour-story{min-height:318px;padding:30px 22px}.colour-story h3{font-size:40px}.colour-story-copy>p:not(.eyebrow){max-width:183px;font-size:11px}.colour-orbit{width:145px;height:215px;right:2px;bottom:36px}.colour-orbit img{width:124px;height:169px}.orbit-line{width:135px;height:193px}.orbit-line.second{width:149px;height:183px}.orbit-star{font-size:35px;right:0;top:10px}.colour-story .text-link{max-width:none;font-size:9px;margin-top:18px}.little-features{gap:14px}.little-feature{padding:22px 18px;min-height:190px}.little-feature h3{font-size:25px}.little-feature p{font-size:10px}.little-feature .doodle{height:38px;width:38px}.review-panel{padding:27px 22px 16px}.review-heading{padding:0 7px}.review-heading>p{gap:26px}.review-heading strong{font-size:77px}.review-heading p>span{font-size:12px}.review-heading a{font-size:10px}.review-window{height:354px}.review-card{padding:24px}.review-card blockquote{font-size:29px}.review-card figcaption{font-size:11px}.review-card small{font-size:9px}.salon-diary{overflow:hidden}.diary-heading .eyebrow{font-size:10px}.faq .faq-grid{width:calc(100% - 40px);grid-template-columns:1fr;gap:30px}.faq-heading h2{font-size:46px;max-width:330px}.faq-heading>p:not(.eyebrow){font-size:13px;margin-top:18px}.faq-heading .button{margin-top:20px}.faq-list{gap:9px}.faq-list summary{font-size:13px;min-height:66px;padding:16px 17px;gap:14px}.faq-list summary>span{width:30px;height:30px;flex-basis:30px}.faq-answer{font-size:12px;padding:0 17px 19px}.treatment-dialog{width:calc(100% - 28px);max-height:calc(100dvh - 40px);border-radius:20px}.treatment-dialog-inner{grid-template-columns:1fr;min-height:0}.treatment-dialog-inner>img{height:205px;min-height:0;object-position:center 33%}.treatment-dialog-copy{padding:28px 25px}.treatment-dialog-copy h2{font-size:45px;margin:15px 0}.treatment-dialog-copy>p:not(.eyebrow),.treatment-dialog-copy ul{font-size:12px}.treatment-dialog-copy .treatment-note{margin:18px 0}}
@media(max-width:360px){.hero h1{font-size:48px}.hero-actions{gap:12px}.hero-actions .text-link{font-size:9px}.hero-actions .button{font-size:10px;padding-left:14px;gap:12px}.colour-orbit{right:-15px;opacity:.6}.story-composition{padding-inline:22px;gap:32px 20px}.story-copy .story-text{font-size:27px}.story-copy .story-button{font-size:11px;gap:12px;padding-left:17px}.story-photo{width:135px;height:177px}.story-photo figcaption{font-size:14px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.js .reveal:not(.is-visible){opacity:1;transform:none}.review-window{overflow-y:auto;mask-image:none;-webkit-mask-image:none}.hero-gallery{overflow-x:auto;mask-image:none;-webkit-mask-image:none}.hero-gallery-track{display:flex;align-items:center;gap:16px;width:max-content;padding-inline:20px}.hero-card{position:relative!important;top:auto!important;left:auto!important;transform:none!important;width:180px;flex:0 0 180px;height:255px}.hero-gallery{height:290px}}
@media(prefers-reduced-transparency:reduce){.eyebrow{background:#fff6f3;-webkit-backdrop-filter:none;backdrop-filter:none}.glass-label{background:#855064;backdrop-filter:none}dialog::backdrop{background:#251523ed;backdrop-filter:none}}
/* Readable body copy alongside the large editorial type. */
@media(min-width:601px){
.site-header nav{font-size:13px}.hero h1{font-size:clamp(72px,7.3vw,104px)}.hero-copy{padding-top:25px}.hero-gallery{height:355px;margin-top:24px}.hero-card{height:300px}.hero-bottom{min-height:59px}.button{font-size:13px}.button-small{font-size:12px}.text-link{font-size:13px}.colour-story-copy>p:not(.eyebrow){font-size:13px}.colour-story .text-link{font-size:12px}.little-feature p{font-size:12px}.review-card figcaption{font-size:12px}.review-card small{font-size:10px}.faq-heading>p:not(.eyebrow){font-size:14px}.faq-list summary{font-size:14px}.faq-answer{font-size:13px}
}
@media(min-width:601px) and (max-width:1050px){.site-header nav{font-size:11px}.colour-story-copy>p:not(.eyebrow){font-size:12px}.colour-story .text-link{font-size:10px}.faq-list summary{font-size:13px}}
@media(max-width:600px){.faq-list summary{font-size:13px}.faq-answer{font-size:12px}.little-feature p{font-size:11px}.review-card small{font-size:10px}}

@media(min-width:601px) and (max-width:850px){
.experience-grid{grid-template-columns:1fr}.colour-story{min-height:320px;padding:36px}.colour-story-copy>p:not(.eyebrow){max-width:330px}.colour-story-copy{max-width:60%}.colour-orbit{right:24px;bottom:32px;width:190px}.colour-orbit img{width:160px;height:218px}.orbit-line{width:178px;height:242px}.orbit-line.second{width:191px;height:230px}.colour-story .text-link{max-width:none}.little-features{gap:18px}.little-feature{min-height:180px}.review-panel{display:grid;grid-template-columns:.75fr 1fr;gap:14px;padding:28px}.review-heading{align-self:center}.review-heading>p{display:block}.review-heading p>span{display:block;font-size:12px;margin-top:8px}.review-window{height:340px;margin:0}.review-heading a{font-size:10px}
}
@media(max-width:370px){.colour-story{min-height:380px}.colour-orbit{bottom:-31px;right:-30px;opacity:1}.colour-story .text-link{max-width:135px}}

@media(prefers-contrast:more){.eyebrow{background:#fff6f3;border-color:var(--berry);box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}}

/* A real 3D crescent: tangent planes, one perspective, one horizontal axis. */
.hero-gallery{height:41.40625vw;min-height:425px;max-height:795px;margin-top:-38px;overflow:hidden;mask-image:none;-webkit-mask-image:none}
.hero-gallery-track{perspective:var(--ring-perspective,650px);perspective-origin:50% 50%;transform-style:preserve-3d}
.hero-card{left:50%;top:50%;width:var(--ring-card-width,260px);height:var(--ring-card-height,370px);margin-left:calc(var(--ring-card-width,260px) / -2);margin-top:calc(var(--ring-card-height,370px) / -2);transform:translate3d(0,0,-570px);transform-origin:50% 50%;border-radius:21px;border:0;box-shadow:none;backface-visibility:hidden;will-change:transform;isolation:auto}
.hero-card .glass-label{left:14px;right:14px;bottom:16px;padding:13px 12px;border-radius:14px;gap:0;justify-content:center;text-align:center;background:linear-gradient(150deg,#86616b70,#95485f9c);border:1px solid #fffa;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.hero-card .glass-label>span{width:100%;font-size:calc(var(--ring-card-width,260px) * .1);line-height:1.08;letter-spacing:-.01em;white-space:nowrap;text-align:center}
.hero-card .glass-label small{display:none}

.hero-bottom{margin-top:-78px;padding-bottom:32px;min-height:70px;z-index:2;pointer-events:none}
.hero-bottom a{pointer-events:auto}
@media(min-width:601px) and (max-width:1024px){.hero-gallery{height:440px;min-height:440px;margin-top:-25px}.hero-bottom{margin-top:-48px}}
@media(max-width:600px){.hero-gallery{height:300px;min-height:0;margin-top:22px;max-height:none}.hero-card{border-radius:21px}.hero-card .glass-label{left:12px;right:12px;padding:13px 10px}.hero-card .glass-label>span{font-size:calc(var(--ring-card-width,240px) * .0923)}.hero-bottom{margin-top:-14px;min-height:0;padding-bottom:20px}}
/* Keep the headline, crescent and review capsule together in the first viewport. */
.hero{display:flex;flex-direction:column;height:calc(100svh - 104px);max-height:1080px;min-height:0;background:none;isolation:isolate}
/* A quiet rose grid loses definition before it reaches the service portraits. */
.hero::before{
  content:'';
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  background-image:linear-gradient(90deg,#92265316 1px,transparent 1px),linear-gradient(180deg,#9226530e 1px,transparent 1px);
  background-size:clamp(96px,10vw,160px) 100%,100% 104px;
  background-position:center top,center 40px;
  -webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 12%,#000 24%,#0008 40%,transparent 58%);
  mask-image:linear-gradient(180deg,transparent 0%,#000 12%,#000 24%,#0008 40%,transparent 58%);
}
.hero-copy{flex:0 0 auto;padding-top:clamp(8px,2svh,22px)}
.hero h1{font-size:clamp(56px,min(7.3vw,11.5svh),104px);margin:18px auto 0}
.hero-actions{margin-top:22px}
.hero-doodle{top:auto;bottom:5px}
.hero-gallery{flex:1 1 auto;height:auto;min-height:0;max-height:none;margin-top:-30px;z-index:1}
.hero-bottom{flex:0 0 auto;min-height:0;margin-top:-78px;padding:0 24px 24px}
.rating-link{gap:18px;padding:14px 24px;border:1px solid #d8acb98c;border-radius:999px;background:linear-gradient(135deg,#fffaf6d9,#efd7df9c);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:inset 0 1px 0 #fff9;font-size:15px;line-height:1.5;white-space:nowrap}
.rating-link .stars{font-size:19px;letter-spacing:2px}
.rating-score b{font-size:18px;margin-right:3px}
.rating-reviews{padding-left:18px;font-size:13px;color:var(--muted)}
@media(min-width:601px) and (max-width:850px){.hero{height:calc(100svh - 88px)}.hero h1{font-size:clamp(56px,min(8.5vw,11svh),78px)}}
@media(max-width:600px){
.hero{height:calc(100svh - 80px);max-height:680px}
.hero::before{background-size:82px 100%,100% 82px;opacity:.75}
.hero-copy{padding-top:16px}
.hero h1{font-size:clamp(48px,min(11.6vw,9svh),69px);margin-top:18px}
.hero-actions{margin-top:20px}
.hero-gallery{margin-top:10px}
.hero-bottom{margin-top:-30px;padding:0 12px 20px}
.rating-link{gap:10px;padding:12px 14px;font-size:12px;max-width:100%}
.rating-link .stars{font-size:14px;letter-spacing:1px}
.rating-score b{font-size:15px;margin-right:1px}
.rating-reviews{padding-left:10px;font-size:11px}
}
@media(max-height:650px) and (min-width:601px){.hero-copy{padding-top:0}.hero h1{margin-top:12px;font-size:clamp(48px,min(7.3vw,10svh),70px)}.hero-actions{margin-top:14px}.hero-bottom{padding-bottom:14px}.rating-link{padding-block:10px}}
@media(prefers-reduced-motion:reduce){.hero{height:auto;max-height:none}.hero-gallery{flex:none;height:290px;min-height:0;margin-top:28px;max-height:none;overflow-x:auto}.hero-gallery-track{perspective:none;transform-style:flat;gap:16px}.hero-card{margin:0;position:relative!important;top:auto!important;left:auto!important;transform:none!important;width:180px;height:255px;flex:0 0 180px;visibility:visible!important}.hero-card[data-ring-copy]{display:none}.hero-card .glass-label{left:8px;right:8px;bottom:10px;padding:10px}.hero-card .glass-label>span{font-size:17px}.hero-bottom{margin-top:0;min-height:65px}.hero-card .glass-label small{display:none}}

@media(prefers-reduced-motion:reduce),(prefers-contrast:more){.story-text.is-scroll-ready .story-word{opacity:1}}

/* Equal-height portrait reels, framed by a quiet rose panel. */
.salon-diary{overflow:clip}
.diary-heading{position:relative}
.diary-heading h2{margin-top:20px}
.reels-stage{position:relative;isolation:isolate;margin-top:42px}
.reels-stage::before{content:'';position:absolute;inset:60px 12% 0;z-index:-1;border:1px solid #fff8;border-radius:38px;background:linear-gradient(145deg,#f3e7e4,#efdce0 65%,#f0dfe0)}
.reels-description{max-width:76%;margin:0 auto;padding:28px 24px 4px;font-size:14px;line-height:1.6}
.reels-track{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:center;gap:18px;padding:20px 0 30px}
.reel-card{position:relative;width:100%;min-width:0;aspect-ratio:9/16;padding:0;overflow:hidden;border:5px solid var(--paper);border-radius:24px;background:#ddccc3;text-align:left;box-shadow:0 24px 40px -24px #55273750;transition:transform .4s var(--ease),box-shadow .4s var(--ease)}
.reel-card::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#25152212,transparent 35%,transparent 55%,#25152240);pointer-events:none}
.reel-card img{transition:transform .6s var(--ease);object-position:50% 38%}
.reel-card:hover,.reel-card:focus-visible{transform:translateY(-7px);box-shadow:0 32px 48px -24px #55273765}
.reel-card:hover img{transform:scale(1.035)}
.reel-card:focus-visible{outline-offset:4px}



.reel-play-trigger{position:absolute;z-index:2;top:50%;left:50%;display:grid;place-items:center;width:clamp(48px,4.5vw,64px);aspect-ratio:1;transform:translate(-50%,-50%);border:1px solid #fffaf6d9;border-radius:50%;background:linear-gradient(140deg,#fffaf6b3,#fffaf65c);color:var(--berry);box-shadow:inset 0 1px 0 #fff9,0 6px 22px #38142626;backdrop-filter:blur(12px) saturate(1.15);-webkit-backdrop-filter:blur(12px) saturate(1.15);transition:background .2s,box-shadow .2s}
.reel-play-trigger svg{width:24px;height:24px;fill:currentColor;stroke:currentColor;stroke-width:1.4;stroke-linejoin:round;transform:translateX(1px)}
.reel-card:hover .reel-play-trigger,.reel-card:focus-visible .reel-play-trigger{background:#fffaf6e0;box-shadow:inset 0 1px 0 #fff,0 8px 25px #38142630}
.reels-footer{display:flex;flex-direction:column;align-items:center;gap:15px;padding:12px 20px 34px}
.salon-diary .reels-cta{font-size:13px;min-height:55px;padding:15px 29px;gap:0;box-shadow:0 10px 22px -16px #92265399}

/* Native top-layer dialog keeps the rest of the page inert and traps keyboard focus. */
.reel-dialog{width:min(390px,calc(100vw - 36px),calc((100dvh - 90px) * .5625));margin:auto;background:transparent;color:var(--paper);box-shadow:none;max-height:calc(100dvh - 28px);overflow:visible}
.reel-dialog::backdrop{background:#170e16b8;backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px)}
.reel-modal-inner{position:relative}
.reel-viewport{position:relative;aspect-ratio:9/16;overflow:hidden;isolation:isolate;border:1px solid #ffffff30;border-radius:20px;background:#161215;box-shadow:0 30px 90px #0005}
.reel-viewport [hidden]{display:none!important}
.reel-poster,.reel-viewport video{position:absolute;inset:0;width:100%;height:100%;display:block}
.reel-poster{object-fit:cover}
.reel-viewport video{background:#161215;object-fit:contain}
.reel-status{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:32px;text-align:center;background:linear-gradient(#25152260,#251522c9);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.reel-status-kicker{font-size:8px;letter-spacing:.16em;color:#f5d5df}
.reel-status p{font-family:var(--serif);font-size:35px;line-height:1.1;letter-spacing:-.02em;color:var(--paper);text-wrap:balance}
.reel-status>span:not(.reel-status-kicker){font-size:12px;line-height:1.7;color:#f4e1e7;text-wrap:pretty;max-width:240px}
.reel-status a,.reel-play{margin-top:8px;padding:11px 18px;border:1px solid #ffffff55;border-radius:30px;background:#fffaf617;color:var(--paper);font-size:11px}
.reel-status a:hover,.reel-play:hover{background:#fffaf62b}
.reel-dialog .reel-close{position:static;display:flex;align-items:center;justify-content:center;gap:10px;width:100%;height:46px;margin-top:8px;border:1px solid #ffffff40;border-radius:14px;background:#ffffff13;color:var(--paper);font-size:12px;font-weight:500;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.reel-close span{font-size:23px;line-height:1;font-weight:400}
.reel-dialog .reel-close:hover{background:#ffffff24}
.reel-dialog :focus-visible{outline:2px solid #fff;outline-offset:3px}
@media(min-width:601px) and (max-width:1000px){
  .reels-track{gap:10px}.reel-card{border-width:4px;border-radius:19px}
}
@media(max-width:600px){
  .diary-heading h2{font-size:54px}
  .reels-stage{margin-top:30px}
  .reels-stage::before{inset:44px -6px 0;border-radius:28px}
  .reels-description{max-width:100%;padding:24px 20px 6px;font-size:12px}
  .reels-track{display:flex;gap:13px;width:calc(100% + 48px);margin-left:-24px;padding:16px 24px 30px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:24px;overscroll-behavior-x:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .reels-track::-webkit-scrollbar{display:none}
  .reel-card{flex:0 0 65%;width:65%;aspect-ratio:9/16;border-width:4px;border-radius:21px;scroll-snap-align:center;box-shadow:0 19px 26px -18px #55273750}
  .reel-card:hover,.reel-card:focus-visible{transform:translateY(-3px)}
  
  
  
  .reel-play-trigger{width:58px}
  .reels-footer{padding:0 12px 28px;gap:14px}
  .salon-diary .reels-cta{font-size:12px;padding:15px 23px;min-height:51px}
  
  
  .reel-dialog{width:min(390px,calc(100vw - 28px),calc((100dvh - 83px) * .5625))}
  .reel-dialog .reel-close{height:43px;margin-top:5px}
  .reel-status{padding:24px}.reel-status p{font-size:30px}
}
@media(max-width:360px){.reel-card{flex-basis:73%;width:73%}.diary-heading h2{font-size:49px}}
@media(max-height:550px) and (min-width:480px){
  .reel-status{padding:16px;gap:10px}.reel-status p{font-size:25px}.reel-status>span:not(.reel-status-kicker){font-size:10px}.reel-status-kicker{font-size:6px}.reel-status a,.reel-play{padding:9px 12px;font-size:10px}
}
@media(prefers-reduced-motion:reduce){.reel-card:hover,.reel-card:focus-visible,.reel-card:hover img{transform:none}.reels-track{scroll-behavior:auto;scroll-snap-type:none}}
@media(prefers-reduced-transparency:reduce){.reel-play-trigger{background:var(--paper);backdrop-filter:none;-webkit-backdrop-filter:none}.reel-dialog::backdrop{background:#170e16e6;backdrop-filter:none;-webkit-backdrop-filter:none}.reel-status{background:#251522ed;backdrop-filter:none;-webkit-backdrop-filter:none}}

/* The treatment menu pairs generous portraits with a quiet, editorial layout. */
.services{background:radial-gradient(ellipse at 95% 0%,#fffaf699,transparent 55%),linear-gradient(135deg,#f1e3e3,#f6ece7);border-radius:36px 36px 0 0}
.services .section-heading{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(0,1fr);gap:42px;align-items:end}
.services .section-heading h2{margin-top:17px;font-size:clamp(44px,4.6vw,66px);line-height:1.08;white-space:nowrap}
.services .section-heading>p{justify-self:end;padding-bottom:4px}
.service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.service-card{display:grid;grid-template-columns:41% minmax(0,1fr);gap:0;padding:7px;background:var(--paper);border:1px solid #ead6d7;border-radius:26px;min-height:320px;box-shadow:0 4px 20px -15px #54223626;transition:border-color .3s,box-shadow .3s}
.service-card[hidden]{display:none}
.service-card:hover,.service-card:focus-within{border-color:#c99aac;box-shadow:0 12px 32px -20px #681e4952}
.service-image{position:relative;min-height:100%;border-radius:19px;overflow:hidden;background:var(--rose)}
.service-image img{position:absolute;inset:0;transition:transform .7s var(--ease)}
.service-card:hover .service-image img{transform:scale(1.04)}
.service-body{display:flex;flex-direction:column;align-items:flex-start;min-width:0;padding:20px 22px 12px}
.services .service-body h3{margin-top:12px;font-size:clamp(34px,3.15vw,43px);letter-spacing:-.015em;line-height:1.06}
.service-body ul{width:100%;margin:18px 0 22px;padding:0;list-style:none;border:0}
.services .service-body li{margin:0;color:#78646c;font-size:var(--text-body,1rem);line-height:1.7}
.services .service-body .text-link{margin-top:auto;padding:12px 0 0;width:100%;min-height:49px;justify-content:space-between;gap:9px;font-size:var(--text-ui,.9375rem);font-weight:500;color:var(--berry)}
.menu-note{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:30px;padding-top:24px;text-align:center}
.menu-note a{display:inline-flex;align-items:center;gap:5px;min-height:44px;margin-left:6px;color:var(--berry);font-weight:500}
.menu-note a:hover{text-decoration:underline;text-underline-offset:4px}
.menu-note svg{width:14px;height:14px}
.menu-note .menu-note-icon{width:26px;height:26px;color:#aa6a83;transform:rotate(-12deg)}

@media(max-width:1100px){
  .services .section-heading{grid-template-columns:1.6fr 1fr;gap:30px}
  .services .section-heading h2{white-space:normal;max-width:540px}
  .service-card{grid-template-columns:38% minmax(0,1fr)}
  .service-body{padding:18px 18px 12px}
  .services .service-body h3{font-size:36px}
}
@media(max-width:950px){
  .services .section-heading{display:block}
  .services .section-heading h2{max-width:none}
  .services .section-heading>p{max-width:480px;margin-top:18px;margin-inline:0;justify-self:start}
  .service-card{grid-template-columns:1fr}
  .service-image{height:auto;min-height:0;aspect-ratio:4/3}
  .service-image img{object-position:center 40%}
  .service-body{padding:22px 20px 14px}
  .services .service-body h3{font-size:39px}
  .service-body ul{margin-block:16px 22px}
}
@media(max-width:650px){
  .services{border-radius:26px 26px 0 0}
  .services .section-heading h2{max-width:380px;font-size:46px;line-height:1.06}
  .services .section-heading>p{margin-top:16px}
  .service-grid{grid-template-columns:1fr;gap:16px}
  .service-card{grid-template-columns:38% minmax(0,1fr);min-height:300px;padding:6px;border-radius:22px}
  .service-image{height:100%;aspect-ratio:auto;border-radius:16px}
  .service-image img{object-position:center}
  .service-body{padding:16px 14px 10px}
  .services .service-body h3{margin-top:11px;font-size:32px}
  .service-body ul{margin-block:15px 18px}
  .services .service-body .text-link{font-size:var(--text-small,.875rem);gap:5px}
  .menu-note{gap:8px;align-items:flex-start;margin-top:26px;padding-top:20px}
  .menu-note .menu-note-icon{margin-top:2px;width:23px;height:23px}
  .menu-note a{margin-left:0}
}
@media(max-width:370px){
  .service-card{grid-template-columns:1fr}
  .service-image{height:auto;aspect-ratio:16/10}
  .service-image img{object-position:center 40%}
  .service-body{padding:20px 16px 12px}
  .services .service-body h3{font-size:36px}
}

/* One continuous mobile navigation surface with balanced viewport margins. */
.site-header .menu-toggle{display:none;flex-shrink:0}
.mobile-menu-dialog{position:fixed;inset:16px 16px auto auto;width:min(420px,calc(100% - 32px));max-width:none;max-height:calc(100dvh - 32px);margin:0;padding:calc(24px + env(safe-area-inset-top)) 24px 24px;border:1px solid #fffaf6bd;border-radius:27px;background:#fbf2ee;color:var(--plum);box-shadow:0 24px 80px -24px #38142655;overflow:auto;overscroll-behavior:contain;transform-origin:calc(100% - 22px) 0;opacity:0;transform:translateY(-12px) scale(.98);transition:opacity .2s ease,transform .3s var(--ease),display .3s allow-discrete,overlay .3s allow-discrete}
.mobile-menu-dialog:not([open]){pointer-events:none}
.mobile-menu-dialog[open]{animation:none;opacity:1;transform:translateY(0) scale(1)}
.mobile-menu-dialog::backdrop{background:#38142642;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);opacity:0;transition:opacity .2s ease,display .3s allow-discrete,overlay .3s allow-discrete}
.mobile-menu-dialog[open]::backdrop{opacity:1}
.mobile-menu-top{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px;background:inherit}
.mobile-menu-kicker{display:block;color:var(--muted);font-size:var(--text-caption,13px);line-height:1.5}
.mobile-menu-top h2{margin-top:5px;font-size:36px;line-height:1.1;letter-spacing:-.02em}
.mobile-menu-dialog .mobile-menu-close{position:static;display:grid;place-items:center;flex-shrink:0;width:44px;height:44px;padding:0;border:1px solid #e9cdd3;border-radius:50%;background:#f5e7e9;color:var(--berry);backdrop-filter:none;-webkit-backdrop-filter:none;transition:background .2s,transform .2s}
.mobile-menu-close svg{width:18px;height:18px;stroke-width:1.6}
.mobile-menu-close:hover{background:#ebd0db}
.mobile-navigation{display:flex;flex-direction:column;gap:4px}
.mobile-navigation a{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:58px;padding:10px 12px;border-radius:12px;font-family:var(--serif);font-size:30px;line-height:1.1;letter-spacing:-.012em;transition:background .2s,color .2s}
.mobile-navigation a:hover,.mobile-navigation a:focus-visible{background:#f4e4e8;color:var(--berry)}
.mobile-navigation a svg{width:18px;height:18px;color:#a9738b}
.mobile-menu-book{width:100%;margin-top:22px;font-size:var(--text-ui,15px);min-height:54px}
.mobile-menu-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;margin-top:20px;color:var(--muted);font-size:var(--text-caption,13px);line-height:1.6}
.mobile-menu-footer a{display:inline-flex;align-items:center;gap:7px;min-height:32px;color:var(--berry)}
.mobile-menu-footer svg{width:14px;height:14px}
@starting-style{
  .mobile-menu-dialog[open]{opacity:0;transform:translateY(-12px) scale(.98)}
  .mobile-menu-dialog[open]::backdrop{opacity:0}
}
@media(max-width:900px){
  .site-header{position:sticky;top:0;height:88px;background:#fbf5efed;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
  .site-header #navigation,.site-header .nav-book{display:none}
  .site-header .menu-toggle{position:relative;display:grid;place-items:center;width:48px;height:48px;padding:0;border:1px solid #e3bdcb;border-radius:50%;background:#fffaf6b8;color:var(--berry);box-shadow:inset 0 1px 0 #fff9;transition:background .2s,transform .2s}
  .site-header .menu-toggle:hover{background:#f3dfe6}
  .menu-lines{position:relative;display:block;width:20px;height:18px}
  .menu-lines>span{position:absolute;left:0;display:block;width:20px;height:1.5px;border-radius:2px;background:currentColor;transform-origin:center;transition:transform .25s var(--ease),opacity .15s,width .25s}
  .menu-lines>span:nth-child(1){top:2px}
  .menu-lines>span:nth-child(2){top:8px;left:auto;right:0;width:14px}
  .menu-lines>span:nth-child(3){top:14px}
  .menu-toggle[aria-expanded=true] .menu-lines>span:nth-child(1){transform:translateY(6px) rotate(45deg)}
  .menu-toggle[aria-expanded=true] .menu-lines>span:nth-child(2){opacity:0}
  .menu-toggle[aria-expanded=true] .menu-lines>span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
}
@media(max-width:600px){
  html{scroll-padding-top:96px}
  .site-header{height:80px}
  .mobile-menu-dialog{inset:12px 12px auto auto;width:calc(100% - 24px);max-height:calc(100dvh - 24px);padding:calc(20px + env(safe-area-inset-top)) 20px 20px;border-radius:24px}
}
@media(min-width:601px) and (max-width:900px) and (prefers-reduced-motion:no-preference){.hero{height:calc(100svh - 88px)}}
@media(prefers-reduced-motion:reduce){
  .mobile-menu-dialog,.mobile-menu-dialog[open]{transform:none;transition:opacity .12s ease,display .12s allow-discrete,overlay .12s allow-discrete}
  .mobile-menu-dialog[open]::backdrop{transition:opacity .12s ease}
}
@media(prefers-reduced-transparency:reduce),(prefers-contrast:more){
  .mobile-menu-dialog{background:var(--paper);border-color:var(--border)}
  .mobile-menu-dialog::backdrop{background:#38142666;backdrop-filter:none;-webkit-backdrop-filter:none}
}

/* Keep the salon feeling and its reviews together in a compact layout. */
.experience .center-heading{margin-bottom:24px}
.experience .center-heading h2{display:block;width:fit-content;margin:12px auto 0;font-size:clamp(46px,min(4.5vw,7.2svh),64px);line-height:1.02}
.experience .heading-heart{width:42px;height:42px;right:-60px;top:14px}
.experience-grid{grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:20px}
.experience-left{gap:16px;min-width:0}
.experience .colour-story{min-height:0;padding:20px;gap:18px}
.experience .colour-story-copy{min-width:0;max-width:none}
.experience .colour-story h3{font-size:38px;line-height:1.03;margin-top:12px}
.experience .colour-story-copy>p:not(.eyebrow){max-width:355px;line-height:1.6;margin-top:12px}
.experience .colour-story .text-link{margin-top:8px;max-width:none}
.experience .colour-orbit{position:relative;inset:auto;width:180px;height:228px;margin:0;opacity:1}
.experience .colour-orbit img{width:148px;height:198px}
.experience .orbit-line{width:166px;height:216px}
.experience .orbit-line.second{width:180px;height:208px}
.experience .orbit-star{font-size:40px;right:0;top:5px}
.experience .little-features{gap:16px;flex:none}
.experience .little-feature{min-height:0;padding:16px;flex-direction:row;align-items:flex-start;justify-content:flex-start;gap:12px}
.experience .little-feature .doodle{width:30px;height:30px}
.experience .little-feature h3{font-size:26px;line-height:1.08;margin-bottom:6px}
.experience .little-feature p{max-width:none;line-height:1.5}
.experience .review-panel{display:flex;flex-direction:column;gap:0;padding:22px 22px 12px;min-width:0}
.experience .review-heading{padding:0 4px}
.experience .review-heading>p{gap:16px;margin-top:4px}
.experience .review-heading strong{font-size:64px;line-height:1}
.experience .review-window{height:clamp(230px,35svh,300px);min-height:0;flex:1 1 auto;margin-top:16px;overflow-x:auto;overflow-y:hidden;mask-image:none;-webkit-mask-image:none;scroll-snap-type:x mandatory;scrollbar-width:none}
.experience .review-window::-webkit-scrollbar{display:none}
.experience .review-panel.is-carousel .review-window{overflow:hidden;touch-action:pan-y}
.experience .review-track{display:flex;width:100%;height:100%;animation:none;transition:transform .4s var(--ease)}
.experience .review-card{display:flex;flex-direction:column;justify-content:center;flex:0 0 100%;min-width:0;height:100%;padding:22px;scroll-snap-align:start}
.experience .review-card blockquote{font-size:26px;line-height:1.12}
.experience .review-card figcaption{margin-top:14px}
.review-controls{display:none;align-items:center;justify-content:center;gap:20px;flex-shrink:0;margin-top:14px}
.is-carousel .review-controls{display:flex}
.review-arrow{display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid #d9b8c4;border-radius:50%;background:#fffaf680;color:var(--berry);transition:background .2s,border-color .2s,opacity .2s}
.review-arrow:hover:not(:disabled){background:var(--paper);border-color:var(--berry)}
.review-arrow:disabled{opacity:.35;cursor:default}
.review-arrow svg{width:18px;height:18px}
.review-prev svg{transform:rotate(180deg)}
.review-count{min-width:42px;color:var(--berry);font-size:var(--text-caption,13px);font-variant-numeric:tabular-nums;text-align:center}

/* Let the left cards set the row height; fit the review window into it. */
@media(min-width:1001px){
  .experience .review-panel{contain:size}
}

@media(min-width:601px) and (max-width:1000px){
  .experience-grid{grid-template-columns:1fr}
  .experience .colour-story{padding:24px}
  .experience .colour-story-copy{flex:1}
  .experience .colour-story-copy>p:not(.eyebrow){max-width:420px}
  .experience .little-feature{padding:18px}
  .experience .review-panel{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1fr);gap:12px 22px;padding:22px}
  .experience .review-heading{align-self:center}
  .experience .review-heading>p{display:block}
  .experience .review-heading p>span{display:block;margin-top:8px}
  .experience .review-window{height:240px;margin:0;grid-column:2;grid-row:1/3}
  .experience .review-controls{grid-column:1;margin:0 auto}
}

@media(max-width:600px){
  .experience .center-heading{margin-bottom:20px}
  .experience .center-heading h2{font-size:clamp(36px,9.5vw,50px);margin-top:10px}
  .experience .heading-heart{width:28px;height:28px;right:-8px;top:-24px}
  .experience-grid{grid-template-columns:1fr;gap:16px}
  .experience .colour-story{display:grid;grid-template-columns:minmax(0,1fr) 98px;gap:14px;padding:20px}
  .experience .colour-story-copy{display:contents}
  .experience .colour-story-copy>.eyebrow,.experience .colour-story h3{grid-column:1;position:relative;z-index:1}
  .experience .colour-story-copy>.eyebrow{width:fit-content;font-size:12px;padding:5px 10px}
  .experience .colour-story h3{font-size:clamp(29px,7.6vw,38px);margin:0}
  .experience .colour-story-copy>p:not(.eyebrow),.experience .colour-story .text-link{grid-column:1/-1;margin:0;max-width:none}
  .experience .colour-orbit{grid-column:2;grid-row:1/3;align-self:center;width:98px;height:136px}
  .experience .colour-orbit img{width:84px;height:116px}
  .experience .orbit-line{width:92px;height:130px}
  .experience .orbit-line.second{width:100px;height:124px}
  .experience .orbit-star{font-size:27px;right:-4px;top:0}
  .experience .little-features{grid-template-columns:1fr;gap:12px}
  .experience .little-feature{padding:16px 18px;gap:14px}
  .experience .little-feature h3{font-size:27px}
  .experience .review-panel{padding:20px 18px 12px}
  .experience .review-heading>p{display:flex}
  .experience .review-window{height:250px;flex:none}
  .experience .review-card blockquote{font-size:25px}
}

@media(prefers-reduced-motion:reduce){.experience .review-track{transition:none}}
/* A single compact footer brings the salon, contact details and booking together. */
.site-footer {
  background: #842349;
  color: #fff3e9;
  border-radius: 28px 28px 0 0;
  overflow: clip;
}
.footer-content {
  display: grid;
  grid-template-columns: 1.3fr 1.2fr .85fr;
  gap: 48px;
  padding-block: 38px 30px;
}
.site-footer .wordmark { width: fit-content; font-size: 32px; gap: 12px; }
.site-footer .brand-flower { width: 37px; height: 37px; color: #edbdcf; }
.site-footer .wordmark small { font-size: 10px; letter-spacing: .13em; text-align: left; margin-top: 9px; color: #edc5d1; }
.footer-signoff { margin-top: 22px; color: #fff3e9; font-family: var(--serif); font-size: 34px; line-height: 1.15; letter-spacing: -.015em; }
.footer-signoff em { color: #edbdcf; }
.footer-label { margin-bottom: 10px; color: #edc5d1; font-family: var(--sans); font-size: 11px; font-weight: 500; line-height: 1.5; letter-spacing: .1em; text-transform: uppercase; }
.footer-location address { font-style: normal; font-size: 15px; line-height: 1.75; }
.footer-location address span { white-space: nowrap; }
.footer-directions { display: inline-flex; align-items: center; gap: 7px; min-height: 44px; margin-top: 3px; color: #f3d6df; font-size: 14px; }
.footer-directions svg { width: 14px; height: 14px; }
.footer-phone { display: flex; align-items: center; width: fit-content; min-height: 44px; font-family: var(--serif); font-size: 34px; line-height: 1.1; white-space: nowrap; }
.site-footer .footer-book-button { min-height: 48px; margin-top: 10px; padding: 5px 5px 5px 20px; gap: 24px; background: #fff3e9; color: #842349; font-size: 14px; }
.site-footer .footer-book-button:hover { background: #fffaf6; }
.footer-book-button .button-icon { width: 35px; height: 35px; background: #842349; color: #fff3e9; }
.footer-book-button svg { width: 17px; height: 17px; }
.footer-meta { display: grid; grid-template-columns: 1fr auto auto auto; align-items: center; gap: 24px; padding-block: 14px; border-top: 1px solid #ffffff29; }
.footer-copyright { color: #e3b5c6; font-size: 12px; line-height: 1.6; }
.footer-powered { display: inline-flex; align-items: center; gap: 4px; min-height: 40px; color: #e3b5c6; font-size: 12px; white-space: nowrap; }
.footer-powered strong { color: #fff3e9; font-weight: 500; }
.footer-powered:hover { text-decoration: underline; text-underline-offset: 4px; }
.footer-links { display: flex; align-items: center; gap: 26px; font-size: 14px; }
.footer-links a { display: inline-flex; align-items: center; min-height: 44px; }
.footer-social { display: grid; place-items: center; width: 40px; height: 40px; border: 1px solid #ffffff42; border-radius: 50%; color: #fff3e9; transition: background .2s, border-color .2s; }
.footer-social svg { width: 18px; height: 18px; }
.footer-social:hover { background: #ffffff16; border-color: #ffffff80; }
.footer-links a:hover, .footer-directions:hover, .footer-phone:hover { text-decoration: underline; text-underline-offset: 5px; text-decoration-thickness: 1px; }
.site-footer a:focus-visible { outline-color: #fff3e9; outline-offset: 5px; }

@media (max-width: 1000px) {
  .footer-content { grid-template-columns: 1.2fr 1.1fr .85fr; gap: 28px; }
  .site-footer .wordmark { font-size: 29px; gap: 8px; }
  .site-footer .brand-flower { width: 30px; height: 30px; }
  .footer-signoff { font-size: 29px; }
  .footer-phone { font-size: 30px; }
  .site-footer .footer-book-button { gap: 14px; padding-left: 17px; }
  .footer-meta { grid-template-columns: 1fr auto; gap: 4px 20px; }
  .footer-links { grid-column: 1; grid-row: 1; }
  .footer-social { grid-column: 2; grid-row: 1; justify-self: end; }
  .footer-copyright { grid-column: 1; grid-row: 2; }
  .footer-powered { grid-column: 2; grid-row: 2; justify-self: end; }
}
@media (max-width: 700px) {
  .site-footer { border-radius: 24px 24px 0 0; }
  .footer-content { grid-template-columns: 1fr 1fr; gap: 26px 24px; padding-block: 30px 22px; }
  .footer-brand { grid-column: 1 / -1; }
  .site-footer .wordmark { font-size: 30px; gap: 10px; }
  .site-footer .brand-flower { width: 34px; height: 34px; }
  .footer-signoff { margin-top: 16px; font-size: 30px; }
  .footer-meta { grid-template-columns: 1fr auto; gap: 4px 16px; padding-block: 10px 18px; }
  .footer-links { grid-column: 1 / -1; grid-row: 1; justify-content: space-between; gap: 12px; font-size: 13px; }
  .footer-copyright { font-size: 11px; }
  .footer-social { grid-row: 2; width: 36px; height: 36px; }
  .footer-powered { grid-column: 1 / -1; grid-row: 3; justify-self: start; min-height: 32px; font-size: 11px; }
}
@media (max-width: 420px) {
  .footer-content { gap: 26px 18px; }
  .footer-label { font-size: 10px; letter-spacing: .08em; }
  .footer-location address { font-size: 14px; }
  .footer-phone { font-size: 28px; }
  .footer-directions { font-size: 13px; }
  .site-footer .footer-book-button { gap: 9px; padding-left: 14px; font-size: 13px; }
  .footer-book-button .button-icon { width: 31px; height: 31px; }
}
