@charset "UTF-8";

@font-face {
    font-family: "Salon Script";
    src: url("../fonts/eyesome-script.otf") format("opentype");
    font-display: swap;
}

:root {
    --brand: #1d5b46;
    --brand-dark: #22513f;
    --brand-deep: #153e32;
    --brand-pale: #eee7da;
    --brand-mist: #e4dccb;
    --canvas: #f5f0e7;
    --surface: #fffcf6;
    --surface-soft: #efe9de;
    --ink: #192820;
    --ink-soft: #5c665e;
    --muted: #687368;
    --line: #ddd6c9;
    --line-strong: #c9c4b5;
    --white: #fffcf6;
    --shadow-sm: 0 10px 30px rgba(29, 50, 37, 0.08);
    --shadow-md: 0 24px 70px rgba(29, 50, 37, 0.13);
    --shadow-brand: 0 18px 48px rgba(29, 91, 70, 0.24);
    --font-display: "Bodoni 72", Didot, "Bodoni MT", "Iowan Old Style", Georgia, serif;
    --font-body: "Avenir Next", Avenir, "Helvetica Neue", Arial, sans-serif;
    --container: 1320px;
    --gutter: clamp(1.25rem, 4vw, 4.5rem);
    --section-space: clamp(5.25rem, 9vw, 9.5rem);
    --radius-sm: 0.15rem;
    --radius-md: 0.25rem;
    --radius-lg: 0.5rem;
    --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
    --header-height: 7.55rem;
    --z-header: 40;
    --z-menu: 50;
    --z-floating: 35;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
    scroll-padding-top: 7rem;
    overflow-x: clip;
    background: var(--canvas);
}

body {
    margin: 0;
    overflow-x: clip;
    color: var(--ink);
    background:
        radial-gradient(circle at 14% 4%, rgba(29, 91, 70, 0.07), transparent 28rem),
        var(--canvas);
    font-family: var(--font-body);
    font-size: 1rem;
    line-height: 1.65;
    letter-spacing: 0.005em;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

body.menu-open {
    overscroll-behavior: none;
}

img,
svg {
    display: block;
}

img {
    max-width: 100%;
}

svg {
    width: 1.15em;
    height: 1.15em;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

a {
    color: inherit;
    text-decoration: none;
}

button,
input,
textarea,
select {
    color: inherit;
    font: inherit;
}

button {
    border: 0;
}

h1,
h2,
h3,
h4,
p,
figure,
blockquote,
dl,
dd {
    margin: 0;
}

ul,
ol {
    margin: 0;
    padding: 0;
    list-style: none;
}

h1,
h2,
h3 {
    color: var(--ink);
    font-family: var(--font-display);
    font-weight: 500;
    letter-spacing: -0.035em;
    text-wrap: balance;
}

h1 {
    max-width: 11ch;
    font-size: clamp(3.4rem, 6.4vw, 6.9rem);
    line-height: 0.91;
}

h2 {
    font-size: clamp(3rem, 5vw, 5.5rem);
    line-height: 0.94;
}

h3 {
    font-size: clamp(1.65rem, 2.2vw, 2.35rem);
    line-height: 1.08;
}

h1 em,
h2 em {
    display: inline-block;
    color: var(--brand-dark);
    font-family: "Salon Script", "Snell Roundhand", cursive;
    font-size: 0.82em;
    font-style: normal;
    font-weight: 400;
    letter-spacing: 0;
    line-height: 0.8;
    transform: translateY(0.08em);
}

p {
    color: var(--ink-soft);
    text-wrap: pretty;
}

::selection {
    color: var(--white);
    background: var(--brand);
}

:focus-visible {
    outline: 3px solid rgba(29, 91, 70, 0.48);
    outline-offset: 4px;
}

[hidden] {
    display: none !important;
}

.container {
    width: min(100% - (2 * var(--gutter)), var(--container));
    margin-inline: auto;
}

.section {
    position: relative;
    padding-block: var(--section-space);
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.icon-sprite {
    position: absolute;
    width: 0;
    height: 0;
    overflow: hidden;
    pointer-events: none;
}

.icon-link {
    width: 2.2rem;
    height: 2.2rem;
    display: inline-grid;
    place-items: center;
    flex: 0 0 auto;
    border: 1px solid var(--line-strong);
    border-radius: 50%;
    color: var(--brand-dark);
    background: rgba(255, 255, 255, 0.58);
    transition:
        color 200ms ease,
        background-color 200ms ease,
        border-color 200ms ease,
        transform 220ms var(--ease-out);
}

.icon-link svg {
    width: 1rem;
    height: 1rem;
}

.icon-link:hover {
    border-color: var(--brand);
    color: var(--white);
    background: var(--brand);
    transform: translateY(-2px);
}

.icon-link:active {
    transform: translateY(0) scale(0.96);
}

.skip-link {
    position: fixed;
    top: 0.75rem;
    left: 0.75rem;
    z-index: 100;
    padding: 0.75rem 1rem;
    color: var(--white);
    background: var(--ink);
    transform: translateY(-160%);
    transition: transform 180ms ease;
}

.skip-link:focus {
    transform: translateY(0);
}

.button {
    display: inline-flex;
    min-height: 3.35rem;
    align-items: center;
    justify-content: center;
    gap: 0.85rem;
    padding: 0.9rem 1.45rem;
    border: 1px solid var(--brand);
    border-radius: 999px;
    color: var(--white);
    background: var(--brand);
    box-shadow: var(--shadow-brand);
    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0.15em;
    line-height: 1;
    text-transform: uppercase;
    transition:
        color 220ms ease,
        background-color 220ms ease,
        border-color 220ms ease,
        box-shadow 220ms ease,
        transform 220ms var(--ease-out);
}

.button:hover {
    border-color: var(--brand-dark);
    background: var(--brand-dark);
    box-shadow: 0 20px 50px rgba(78, 127, 162, 0.27);
    transform: translateY(-2px);
}

.button:active {
    transform: translateY(0) scale(0.98);
}

.button--small {
    min-height: 2.75rem;
    padding-inline: 1.25rem;
    font-size: 0.7rem;
}

.text-link {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    padding-bottom: 0.25rem;
    border-bottom: 1px solid currentColor;
    color: var(--brand-dark);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.11em;
    line-height: 1.3;
    text-transform: uppercase;
    transition: color 180ms ease, gap 180ms ease;
}

.text-link:hover {
    gap: 0.8rem;
    color: var(--brand-deep);
}

.eyebrow {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 1.25rem;
    color: var(--brand-dark);
    font-size: 0.67rem;
    font-weight: 700;
    letter-spacing: 0.22em;
    line-height: 1.3;
    text-transform: uppercase;
}

.eyebrow::before {
    width: 2rem;
    height: 1px;
    background: var(--brand);
    content: "";
}

.section-heading {
    margin-bottom: clamp(3rem, 6vw, 5.5rem);
}

.section-heading--split {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(18rem, 0.65fr);
    align-items: end;
    gap: clamp(2rem, 6vw, 7rem);
}

.section-heading__aside {
    max-width: 35rem;
    padding-left: 1.4rem;
    border-left: 1px solid var(--line-strong);
    font-size: 1.04rem;
}

.section-heading__aside .text-link {
    margin-top: 1.5rem;
}

@keyframes promo-pulse {
    70% {
        box-shadow: 0 0 0 0.55rem rgba(255, 255, 255, 0);
    }
    100% {
        box-shadow: 0 0 0 0 rgba(255, 255, 255, 0);
    }
}

@keyframes promotion-popup-in {
    from {
        opacity: 0;
        transform: translateY(1.5rem) scale(0.96);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@keyframes promotion-backdrop-in {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

.site-header {
    position: sticky;
    top: 0;
    z-index: var(--z-header);
    background: rgba(245, 240, 231, 0.88);
    border-bottom: 1px solid transparent;
    backdrop-filter: blur(18px) saturate(140%);
    transition: background-color 220ms ease, border-color 220ms ease, box-shadow 220ms ease;
}

.site-header.is-scrolled {
    background: rgba(245, 240, 231, 0.96);
    border-bottom-color: var(--line);
    box-shadow: 0 12px 30px rgba(29, 50, 37, 0.06);
}

.header-bar {
    color: rgba(255, 255, 255, 0.9);
    background: var(--ink);
}

.header-bar__inner {
    min-height: 2.2rem;
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 1rem;
    font-size: 0.62rem;
    font-weight: 650;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.header-bar__inner > p {
    color: rgba(255, 255, 255, 0.68);
}

.header-bar a {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    transition: color 180ms ease;
}

.header-bar a:hover {
    color: #e1d7bf;
}

.header-bar__links {
    display: flex;
    justify-content: flex-end;
    gap: 0.4rem;
}

.header-bar__links .icon-link {
    width: 1.65rem;
    height: 1.65rem;
    display: grid;
    border-color: rgba(255, 255, 255, 0.2);
    color: rgba(255, 255, 255, 0.86);
    background: rgba(255, 255, 255, 0.04);
}

.header-bar__links .icon-link:hover {
    border-color: #e1d7bf;
    color: var(--ink);
    background: #e1d7bf;
}

.site-nav__inner {
    min-height: 5.35rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
}

.site-brand,
.footer-brand {
    display: inline-flex;
    align-items: center;
}

.site-brand {
    gap: 0.8rem;
}

.footer-brand__wordmark {
    display: flex;
    flex-direction: column;
}

.site-menu {
    display: flex;
    align-items: center;
    gap: clamp(1.2rem, 2.5vw, 2.7rem);
}

.nav-backdrop {
    display: none;
}

.site-menu > a:not(.button) {
    position: relative;
    padding-block: 0.5rem;
    color: var(--ink);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.13em;
    text-transform: uppercase;
}

.site-menu > a:not(.button)::after {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    height: 1px;
    background: var(--brand);
    content: "";
    transform: scaleX(0);
    transform-origin: right;
    transition: transform 240ms var(--ease-out);
}

.site-menu > a:not(.button):hover::after {
    transform: scaleX(1);
    transform-origin: left;
}

.nav-toggle {
    width: 2.9rem;
    height: 2.9rem;
    display: none;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 0.3rem;
    border: 1px solid var(--line);
    border-radius: 50%;
    background: var(--surface);
    cursor: pointer;
}

.nav-toggle > span:not(.sr-only) {
    width: 1.1rem;
    height: 1px;
    background: var(--ink);
    transition: transform 200ms ease, opacity 200ms ease;
}

.nav-toggle[aria-expanded="true"] > span:nth-child(2) {
    transform: translateY(0.4rem) rotate(45deg);
}

.nav-toggle[aria-expanded="true"] > span:nth-child(3) {
    opacity: 0;
}

.nav-toggle[aria-expanded="true"] > span:nth-child(4) {
    transform: translateY(-0.4rem) rotate(-45deg);
}

.hero {
    position: relative;
    min-height: calc(160dvh - var(--header-height));
    overflow: clip;
    isolation: isolate;
}

.hero__ambient {
    position: absolute;
    z-index: -1;
    inset: 0;
    background:
        radial-gradient(ellipse at 18% 24%, rgba(255, 255, 255, 0.96), transparent 32%),
        radial-gradient(ellipse at 79% 14%, rgba(29, 91, 70, 0.15), transparent 26%),
        radial-gradient(ellipse at 54% 90%, rgba(29, 91, 70, 0.11), transparent 32%),
        linear-gradient(135deg, var(--canvas), var(--brand-pale));
}

.hero__ambient::after {
    position: absolute;
    inset: 0;
    opacity: 0.25;
    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='.75' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.08'/%3E%3C/svg%3E");
    content: "";
    pointer-events: none;
}

.hero__stage {
    position: sticky;
    top: var(--header-height);
    width: 100%;
    max-width: none;
    height: calc(100dvh - var(--header-height));
    min-height: 39rem;
    display: grid;
    place-items: center;
    margin-inline: 0;
    padding-inline: var(--gutter);
    padding-block: clamp(2rem, 4.2vh, 3.75rem);
    background:
        radial-gradient(ellipse at 18% 24%, rgba(255, 255, 255, 0.96), transparent 32%),
        radial-gradient(ellipse at 79% 14%, rgba(29, 91, 70, 0.15), transparent 26%),
        radial-gradient(ellipse at 54% 90%, rgba(29, 91, 70, 0.11), transparent 32%),
        linear-gradient(135deg, var(--canvas), var(--brand-pale));
}

.hero__copy {
    position: relative;
    top: -1.5vh;
    width: min(100%, 72rem);
    margin-inline: auto;
    text-align: center;
}

.hero__eyebrow {
    position: relative;
    z-index: 6;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.85rem;
    margin-bottom: 1.2rem;
    color: var(--muted);
    font-size: 0.64rem;
    font-weight: 700;
    letter-spacing: 0.27em;
    text-transform: uppercase;
}

.hero__eyebrow i {
    width: 0.42rem;
    height: 0.42rem;
    border-radius: 50%;
    background: var(--brand);
    box-shadow: 0 0 0 0.28rem rgba(29, 91, 70, 0.12);
}

.hero h1 {
    max-width: none;
    font-size: clamp(4.65rem, 7.4vw, 8.3rem);
    line-height: 0.82;
}

.hero h1 > span,
.hero h1 > em {
    position: relative;
    z-index: 6;
    display: block;
}

.hero h1 > span {
    color: var(--white);
    mix-blend-mode: difference;
}

.hero h1 > em {
    width: fit-content;
    min-height: 0.78em;
    margin: 0.42em auto 0;
    padding: 0 0.3em 0.1em;
    border-bottom: 1px solid rgba(29, 91, 70, 0.28);
    font-size: 0.72em;
    transition: opacity 190ms ease, transform 260ms var(--ease-out), filter 190ms ease;
}

.hero__actions {
    position: relative;
    z-index: 6;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.5rem;
    margin-top: 2rem;
}

.hero-funnel {
    position: absolute;
    z-index: 1;
    inset: 0;
    overflow: clip;
    perspective: 70rem;
    perspective-origin: 50% 48%;
    transform-style: preserve-3d;
    pointer-events: none;
}

.hero-funnel__plane {
    position: absolute;
    top: 50%;
    left: 50%;
    width: clamp(8.5rem, 10.5vw, 12.5rem);
    margin: 0;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.85);
    border-radius: 0.18rem;
    background: var(--surface-soft);
    box-shadow:
        0 1.5rem 4rem rgba(29, 50, 37, 0.14),
        0 0.35rem 1rem rgba(29, 50, 37, 0.08);
    opacity: 0;
    transform-style: preserve-3d;
    transform-origin: center;
    will-change: auto;
}

.hero-funnel__plane::after {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(130deg, rgba(255, 255, 255, 0.18), transparent 30%),
        linear-gradient(180deg, transparent 72%, rgba(21, 62, 50, 0.08));
    content: "";
    pointer-events: none;
}

.hero-funnel__plane img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.hero-funnel__plane--portrait {
    aspect-ratio: 1003 / 1568;
}

.hero-funnel__plane--wide {
    width: clamp(13rem, 17vw, 20rem);
    aspect-ratio: 3 / 2;
}

.hero__footer {
    position: absolute;
    z-index: 4;
    right: var(--gutter);
    bottom: clamp(0.9rem, 1.6vh, 1.4rem);
    left: var(--gutter);
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 1.5rem;
    min-height: 2.8rem;
    padding-bottom: 0.45rem;
    color: var(--muted);
    font-size: 0.54rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.hero__footer p {
    color: inherit;
}

.hero__footer p span {
    color: var(--brand);
}

.hero__footer > div {
    display: flex;
    align-items: center;
    gap: 0.8rem;
}

.hero__footer > div i {
    width: 4.5rem;
    height: 1px;
    background: linear-gradient(90deg, var(--brand), transparent);
}

.hero__footer > a {
    justify-self: end;
    transition: color 180ms ease;
}

.hero__footer > a:hover {
    color: var(--brand-dark);
}

.hero__footer .hero__location {
    justify-self: end;
    gap: 0.55rem;
}

.hero__location .icon-link {
    width: 1.8rem;
    height: 1.8rem;
    letter-spacing: 0;
}

.salon-story {
    background: var(--surface);
}

.salon-story::before {
    position: absolute;
    top: 0;
    left: 50%;
    width: min(70%, 42rem);
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--line-strong), transparent);
    content: "";
    transform: translateX(-50%);
}

.story-card {
    align-self: center;
    padding: clamp(2rem, 4vw, 3.25rem);
    border-top: 3px solid var(--brand);
    background: var(--brand-pale);
}

.story-card__index {
    margin-bottom: 3.2rem;
    color: var(--brand-dark);
    font-size: 0.6rem;
    font-weight: 700;
    letter-spacing: 0.17em;
    text-transform: uppercase;
}

.story-card > p:not(.story-card__index) {
    margin-top: 1.5rem;
}

.story-card ul {
    display: grid;
    gap: 0.85rem;
    margin-top: 2rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--line-strong);
}

.story-card li {
    display: grid;
    grid-template-columns: 2rem 1fr;
    color: var(--ink-soft);
    font-size: 0.85rem;
}

.story-card li span {
    color: var(--brand-dark);
    font-size: 0.61rem;
    font-weight: 700;
}

.services {
    overflow: hidden;
    background:
        radial-gradient(circle at 10% 85%, rgba(29, 91, 70, 0.1), transparent 25rem),
        var(--canvas);
}

.services .section-heading {
    margin-bottom: clamp(3rem, 6vw, 5rem);
}

@keyframes menu-skeleton {
    from {
        background-position:
            110% 0,
            0 2rem;
    }

    to {
        background-position:
            -110% 0,
            0 2rem;
    }
}

@keyframes menu-detail-in {
    from {
        opacity: 0;
        transform: translateY(0.8rem);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.salon-gallery {
    background: var(--surface);
}

.contact {
    background:
        radial-gradient(circle at 88% 16%, rgba(29, 91, 70, 0.13), transparent 25rem),
        var(--brand-pale);
}

.contact-shell {
    display: grid;
    grid-template-columns: minmax(22rem, 0.8fr) minmax(0, 1.2fr);
    overflow: hidden;
    border: 1px solid rgba(29, 91, 70, 0.16);
    border-radius: var(--radius-lg);
    background: var(--surface);
    box-shadow: var(--shadow-md);
}

.contact-copy {
    padding: clamp(2.5rem, 5vw, 5.5rem);
}

.contact-copy h2 {
    font-size: clamp(2.8rem, 4.7vw, 5rem);
}

.contact-copy__intro {
    max-width: 34rem;
    margin-top: 1.7rem;
}

.contact-details {
    display: grid;
    gap: 1.1rem;
    margin-top: 2.4rem;
    font-style: normal;
}

.contact-details > div {
    display: grid;
    grid-template-columns: 5.5rem 1fr;
    gap: 1rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--line);
}

.contact-details > div > span:first-child {
    color: var(--muted);
    font-size: 0.59rem;
    font-weight: 700;
    letter-spacing: 0.15em;
    text-transform: uppercase;
}

.contact-details a {
    color: var(--ink);
    font-size: 0.9rem;
    transition: color 180ms ease;
}

.contact-details a:hover {
    color: var(--brand-dark);
}

.contact-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.8rem;
    margin-top: 2rem;
}

.hours {
    margin-top: 2.75rem;
}

.hours h3 {
    font-family: var(--font-body);
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.hours ul {
    display: grid;
    gap: 0.45rem;
    margin-top: 1rem;
}

.hours li {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    color: var(--ink-soft);
    font-size: 0.78rem;
}

.hours li strong {
    color: var(--ink);
    font-weight: 600;
}

.site-footer {
    color: var(--white);
    background:
        radial-gradient(circle at 15% 0, rgba(29, 91, 70, 0.22), transparent 24rem),
        var(--ink);
}

.site-footer__main {
    min-height: 18rem;
    display: grid;
    grid-template-columns: 1fr 1fr auto;
    align-items: center;
    gap: 3rem;
}

.footer-brand__wordmark {
    display: flex;
    flex-direction: column;
}

.footer-brand__wordmark strong {
    font-family: var(--font-display);
    font-size: 2rem;
    font-weight: 500;
    line-height: 1;
}

.footer-brand__wordmark small {
    margin-top: 0.45rem;
    color: #e0d6bf;
    font-size: 0.58rem;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.site-footer__main > p {
    max-width: 22rem;
    color: rgba(255, 255, 255, 0.58);
    font-family: var(--font-display);
    font-size: 1.3rem;
}

.site-footer nav {
    display: grid;
    grid-template-columns: repeat(2, auto);
    gap: 0.7rem 2rem;
    font-size: 0.66rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.footer-social {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.site-footer .icon-link {
    border-color: rgba(255, 255, 255, 0.18);
    color: rgba(255, 255, 255, 0.82);
    background: rgba(255, 255, 255, 0.04);
}

.site-footer .icon-link:hover {
    border-color: #e0d6bf;
    color: var(--ink);
    background: #e0d6bf;
}

.site-footer nav a,
.site-footer__legal a {
    transition: color 180ms ease;
}

.site-footer nav a:hover,
.site-footer__legal a:hover {
    color: #e0d6bf;
}

.site-footer nav .icon-link:hover {
    color: var(--ink);
}

.site-footer__legal {
    min-height: 4.5rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    border-top: 1px solid rgba(255, 255, 255, 0.11);
    color: rgba(255, 255, 255, 0.48);
    font-size: 0.65rem;
}

.site-footer__legal p {
    color: inherit;
}

.site-footer__legal > div {
    display: flex;
    gap: 1.25rem;
}

.floating-actions {
    --floating-x: 0;
    position: fixed;
    z-index: var(--z-floating);
    right: 1rem;
    bottom: 1rem;
    display: none;
    gap: 0.65rem;
    opacity: 0;
    pointer-events: none;
    transform: translate(var(--floating-x), 1rem);
    transition: opacity 240ms ease, transform 320ms var(--ease-out);
}

.floating-actions.is-visible {
    opacity: 1;
    pointer-events: auto;
    transform: translate(var(--floating-x), 0);
}

.floating-actions a {
    min-width: 5.3rem;
    min-height: 3.2rem;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.45rem;
    padding-inline: 0.9rem;
    border: 1px solid rgba(29, 91, 70, 0.18);
    border-radius: 999px;
    color: var(--brand-dark);
    background: rgba(255, 255, 255, 0.96);
    box-shadow: 0 0.75rem 2rem rgba(29, 50, 37, 0.12);
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.floating-actions a + a {
    border-color: var(--brand);
    color: var(--white);
    background: var(--brand);
    box-shadow: var(--shadow-brand);
}

.legal-page {
    min-height: 100dvh;
    display: flex;
    flex-direction: column;
    background: var(--canvas);
}

.legal-header {
    border-bottom: 1px solid var(--line);
    background: rgba(245, 240, 231, 0.94);
}

.legal-header__inner {
    min-height: 5.8rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
}

.legal-main {
    flex: 1;
    padding-block: clamp(4rem, 8vw, 7rem);
}

.legal-hero {
    max-width: 54rem;
    margin-bottom: 3.5rem;
}

.legal-hero h1 {
    max-width: none;
    font-size: clamp(3.1rem, 6vw, 5.6rem);
}

.legal-hero p:last-child {
    margin-top: 1.2rem;
}

.legal-content {
    max-width: 54rem;
    padding: clamp(1.6rem, 4vw, 3.5rem);
    border: 1px solid var(--line);
    border-radius: var(--radius-md);
    background: var(--surface);
    box-shadow: var(--shadow-sm);
}

.legal-content section + section {
    margin-top: 2.4rem;
    padding-top: 2.4rem;
    border-top: 1px solid var(--line);
}

.legal-content h2 {
    font-family: var(--font-body);
    font-size: 1rem;
    font-weight: 750;
    letter-spacing: 0.02em;
    line-height: 1.4;
}

.legal-content p,
.legal-content li {
    margin-top: 0.8rem;
    color: var(--ink-soft);
    font-size: 0.92rem;
}

.legal-content ul {
    padding-left: 1.25rem;
    list-style: disc;
}

.legal-content a {
    color: var(--brand-dark);
    text-decoration: underline;
    text-underline-offset: 0.18em;
}

@media  (max-width: 959px) {
:root {
        --section-space: clamp(4.5rem, 11vw, 7rem);
    }

.header-bar__inner {
        grid-template-columns: 1fr auto;
    }

.header-bar__inner > p {
        display: none;
    }

.site-nav__inner {
        min-height: 4.7rem;
    }

.nav-toggle {
        display: flex;
    }

.site-menu {
        position: absolute;
        z-index: var(--z-menu);
        top: 100%;
        right: 0;
        bottom: auto;
        width: min(88vw, 25rem);
        height: calc(100dvh - var(--header-height));
        align-items: stretch;
        flex-direction: column;
        gap: 0;
        padding: 2rem;
        border-left: 1px solid var(--line);
        overflow-y: auto;
        overscroll-behavior: contain;
        background: var(--canvas);
        box-shadow: -30px 0 60px rgba(29, 50, 37, 0.12);
        transform: translateX(105%);
        visibility: hidden;
        pointer-events: none;
        transition:
            transform 360ms var(--ease-out),
            visibility 0s linear 360ms;
    }

.nav-backdrop {
        position: absolute;
        z-index: calc(var(--z-menu) - 1);
        top: 100%;
        right: 0;
        width: 100%;
        height: calc(100dvh - var(--header-height));
        display: block;
        background: rgba(25, 40, 32, 0.22);
        backdrop-filter: blur(3px);
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        cursor: pointer;
        transition:
            opacity 280ms ease,
            visibility 0s linear 360ms;
    }

.site-menu.is-open {
        transform: translateX(0);
        visibility: visible;
        pointer-events: auto;
        transition:
            transform 360ms var(--ease-out),
            visibility 0s linear 0s;
    }

.nav-backdrop.is-open {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transition:
            opacity 280ms ease,
            visibility 0s linear 0s;
    }

.site-menu > a:not(.button) {
        padding: 1.1rem 0.2rem;
        border-bottom: 1px solid var(--line);
        font-family: var(--font-display);
        font-size: 1.8rem;
        font-weight: 500;
        letter-spacing: -0.02em;
        text-transform: none;
    }

.site-menu .button {
        margin-top: 1.5rem;
    }

.hero {
        min-height: calc(155dvh - var(--header-height));
    }

.hero__stage {
        top: var(--header-height);
        height: calc(100dvh - var(--header-height));
        min-height: 38rem;
        padding-block: clamp(1.6rem, 3.4vh, 2.75rem);
    }

.hero__copy {
        max-width: 44rem;
    }

.hero h1 {
        font-size: clamp(4rem, 9vw, 6.2rem);
    }

.section-heading--split {
        grid-template-columns: 1fr;
        align-items: start;
        gap: 1.75rem;
    }

.section-heading__aside {
        max-width: 42rem;
    }

.story-card {
        grid-column: 1 / -1;
        grid-row: 2;
    }

.contact-shell {
        grid-template-columns: 1fr;
    }

.site-footer__main {
        grid-template-columns: 1fr 1fr;
        padding-block: 3.5rem;
    }

.site-footer__main > p {
        display: none;
    }

.floating-actions {
        display: flex;
        opacity: 1;
        pointer-events: auto;
        transform: translate(var(--floating-x), 0);
    }
}

@media  (max-width: 639px) {
:root {
        --gutter: 1.1rem;
        --radius-lg: 1.4rem;
    }

html {
        scroll-padding-top: 5rem;
    }

body {
        padding-bottom: 4.5rem;
    }

h1 {
        font-size: clamp(3.15rem, 15vw, 4.5rem);
    }

h2 {
        font-size: clamp(2.85rem, 13vw, 4rem);
    }

.button {
        width: 100%;
    }

.header-bar__inner {
        min-height: 2rem;
        font-size: 0.56rem;
    }

.header-bar__links {
        gap: 0.25rem;
    }

.site-nav__inner {
        min-height: 4.35rem;
    }

.site-brand {
        gap: 0.55rem;
    }

.site-menu {
        width: 100%;
    }

.hero {
        min-height: calc(150dvh - var(--header-height));
    }

.hero__stage {
        top: var(--header-height);
        height: calc(100dvh - var(--header-height));
        min-height: 38rem;
        padding-block: clamp(1.55rem, 3.6vh, 2.1rem) 1.1rem;
    }

.hero__copy {
        top: -2vh;
        width: calc(100% - 1.2rem);
    }

.hero__eyebrow {
        gap: 0.6rem;
        margin-bottom: 1rem;
        font-size: 0.54rem;
        letter-spacing: 0.2em;
    }

.hero h1 {
        font-size: clamp(3.25rem, 14vw, 4.35rem);
        line-height: 0.86;
    }

.hero h1 > em {
        max-width: 100%;
        margin-top: 0.42em;
        font-size: 0.76em;
        white-space: nowrap;
    }

.hero__actions {
        align-items: stretch;
        flex-direction: column;
        gap: 1.05rem;
        margin-top: 1.5rem;
    }

.hero__actions .button {
        width: min(100%, 25rem);
        margin-inline: auto;
    }

.hero__actions .text-link {
        align-self: center;
    }

.hero-funnel {
        perspective: 52rem;
    }

.hero-funnel__plane {
        width: 6.5rem;
    }

.hero-funnel__plane--wide {
        width: 9rem;
    }

.hero__footer {
        display: none;
    }

.section-heading__aside {
        padding-left: 1rem;
    }

.story-card {
        grid-column: auto;
        grid-row: auto;
        padding: 2rem 1.4rem;
    }

.story-card__index {
        margin-bottom: 2rem;
    }

.services .section-heading {
        margin-bottom: 2.6rem;
    }

.contact-shell {
        border-radius: 1.25rem;
    }

.contact-copy {
        padding: 2.2rem 1.25rem 2.5rem;
    }

.contact-details > div {
        grid-template-columns: 1fr;
        gap: 0.35rem;
    }

.contact-actions {
        flex-direction: column;
    }

.site-footer__main {
        min-height: 0;
        grid-template-columns: 1fr;
        gap: 2.2rem;
    }

.site-footer nav {
        grid-template-columns: repeat(2, 1fr);
    }

.site-footer__legal {
        min-height: 0;
        align-items: flex-start;
        flex-direction: column;
        padding-block: 1.5rem 2rem;
    }

.site-footer__legal > div {
        flex-wrap: wrap;
    }

.floating-actions {
        --floating-x: -50%;
        right: auto;
        left: 50%;
        width: min(calc(100% - 2.2rem), 22rem);
        bottom: 0.6rem;
        opacity: 1;
        pointer-events: auto;
        transform: translate(var(--floating-x), 0);
    }

.floating-actions a {
        min-width: 0;
        flex: 1 1 0;
    }

.legal-header__inner {
        min-height: 4.7rem;
    }

.legal-content {
        padding: 1.3rem 1.1rem;
    }
}

@media  (prefers-reduced-motion: reduce) {
html {
        scroll-behavior: auto;
    }

.hero {
        min-height: calc(100dvh - var(--header-height));
    }

.hero__stage {
        position: relative;
        top: auto;
        height: auto;
        min-height: calc(100dvh - var(--header-height));
    }

*,
*::before,
*::after {
        scroll-behavior: auto !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}

.salon-wordmark { display:block; width:188px; height:auto; }

.site-nav__inner { min-height:6rem; }

.hero__ambient,
.hero__stage { background:#f0eadf; }

.hero__intro { position:relative; z-index:6; max-width:27rem; margin:1.5rem auto 0; color:var(--ink-soft); font-size:0.88rem; line-height:1.8; }

.hero h1 > span { color:var(--ink); mix-blend-mode:normal; }

.hero h1 > em { color:var(--brand-dark); }

.hero__copy { z-index:5; }

.hero__eyebrow { color:var(--brand-deep); }

.hero-funnel__plane { border:4px solid var(--surface); border-radius:0; }

.hero__footer { border-top:1px solid var(--line-strong); padding-top:1rem; }

.button { background:var(--brand-deep); color:var(--white); border-color:var(--brand-deep); }

.button:hover { background:var(--brand); color:var(--white); }

.site-header,
.site-header.is-scrolled { background:rgba(245,240,231,.97); }

.salon-story { background:var(--canvas); }

.story-card { padding:2rem; background:#e9e1d2; border-top-width:1px; }

.story-card__index { margin-bottom:2rem; }

.social-invitation { display:flex; align-items:center; justify-content:space-between; gap:2rem; margin-top:3rem; padding-top:2rem; border-top:1px solid var(--line); }

.social-invitation p { font-family:var(--font-display); font-size:clamp(1.5rem,3vw,2.4rem); color:var(--ink); }

.guest-notes { background:#eae2d3; }

.guest-notes__heading { display:flex; align-items:flex-end; justify-content:space-between; gap:3rem; margin-bottom:4rem; }

.guest-notes h2 { font-size:clamp(3rem,5.6vw,6rem); }

.google-rating { display:flex; flex-direction:column; gap:.45rem; text-align:right; color:var(--ink); }

.google-rating > strong { font-family:var(--font-display); font-size:4.7rem; line-height:1; font-weight:400; }

.google-rating > strong span { font-family:var(--font-body); font-size:.85rem; color:var(--ink-soft); }

.google-rating > span:last-child { font-size:.7rem; }

.review-stars { color:var(--brand); letter-spacing:.15em; font-size:1rem; }

.guest-note { display:flex; flex-direction:column; margin:0; padding-top:1.5rem; border-top:1px solid #bfb9aa; }

.guest-note__number { color:var(--brand-deep); font-size:.65rem; letter-spacing:.14em; text-transform:uppercase; }

.guest-note blockquote { margin:2rem 0 2.5rem; font-family:var(--font-display); font-size:clamp(1.9rem,3vw,3rem); line-height:1.2; color:var(--ink); }

.guest-note figcaption { display:flex; align-items:center; gap:1rem; margin-top:auto; }

.guest-note figcaption > div { display:flex; flex-direction:column; gap:.3rem; }

.guest-note figcaption strong { font-size:.8rem; font-weight:600; }

.guest-note figcaption div span { font-size:.67rem; color:var(--ink-soft); }

.guest-note figcaption a { margin-left:auto; display:grid; place-items:center; width:44px; height:44px; border:1px solid #bfb9aa; border-radius:50%; }

.guest-initials { display:grid; place-items:center; width:2.8rem; height:2.8rem; border-radius:50%; color:var(--white); background:var(--brand-deep); font-size:.75rem; }

.site-footer { background:#17251e; }

@media  (max-width: 900px) {
.site-menu { gap:1.15rem; }

.salon-wordmark { width:160px; }
}

@media  (max-width: 639px) {
.site-nav__inner { min-height:5rem; }

.salon-wordmark { width:155px; }

.hero h1 { font-size:clamp(3.3rem,12vw,5rem); }

.hero__intro { font-size:.8rem; max-width:17rem; margin-top:1.4rem; }

.hero__actions { gap:1rem; }

.hero-funnel__plane { border-width:2px; }

.hero__footer { padding-top:.7rem; }

.story-card { padding:2rem 1.5rem; }

.social-invitation,
.guest-notes__heading { align-items:flex-start; flex-direction:column; gap:1.5rem; }

.google-rating { text-align:left; display:grid; grid-template-columns:auto auto; column-gap:1rem; align-items:center; }

.google-rating > strong { grid-row:1/3; font-size:3.8rem; }

.guest-notes__heading { margin-bottom:2.8rem; }

.guest-note blockquote { font-size:2rem; }
}

.hero { min-height:calc(100dvh - var(--header-height)); }

.hero__stage { position:relative; top:auto; min-height:44rem; }

.hero-funnel { perspective:none; }

.hero-funnel__plane { opacity:1; transform:translate(-50%,-50%); filter:none; box-shadow:0 12px 30px rgba(29,50,37,.12); }

.hero-funnel__plane:nth-child(1) { left:12%; top:27%; width:13%; transform:translate(-50%,-50%) rotate(-8deg); }

.hero-funnel__plane:nth-child(2) { left:88%; top:24%; width:12%; transform:translate(-50%,-50%) rotate(7deg); }

.hero-funnel__plane:nth-child(3) { left:4%; top:69%; width:11%; transform:translate(-50%,-50%) rotate(5deg); }

.hero-funnel__plane:nth-child(4) { left:94%; top:68%; width:17%; transform:translate(-50%,-50%) rotate(-7deg); }

.hero-funnel__plane:nth-child(5) { left:25%; top:85%; width:10%; transform:translate(-50%,-50%) rotate(-5deg); }

.hero-funnel__plane:nth-child(6) { left:74%; top:87%; width:13%; transform:translate(-50%,-50%) rotate(5deg); }

.hero__footer { z-index:8; background:#f0eadf; bottom:.5rem; }

@media  (max-width:900px) {
.hero h1 { font-size:clamp(4rem,7.4vw,7rem); }

.hero-funnel__plane:nth-child(1) { left:8%; top:22%; width:16%; }

.hero-funnel__plane:nth-child(2) { left:92%; top:23%; width:15%; }
}

@media  (max-width:639px) {
.hero__stage { min-height:45rem; height:calc(100svh - var(--header-height)); padding-top:7.5rem; padding-bottom:11rem; }

.hero__copy { top:0; }

.hero h1 { font-size:clamp(3rem,11.5vw,4.5rem); }

.hero__eyebrow { font-size:.53rem; gap:.6rem; }

.hero-funnel__plane:nth-child(1) { left:14%; top:10%; width:21%; }

.hero-funnel__plane:nth-child(2) { left:85%; top:10%; width:20%; }

.hero-funnel__plane:nth-child(3),
.hero-funnel__plane:nth-child(5) { display:none; }

.hero-funnel__plane:nth-child(4) { left:8%; top:83%; width:27%; }

.hero-funnel__plane:nth-child(6) { left:87%; top:84%; width:29%; }

.hero__footer { bottom:.5rem; }
}

.salon-wordmark { width:198px; height:auto; }

.hero-funnel__plane:nth-child(5) { left:19%; }

.hero-funnel__plane:nth-child(6) { left:81%; }

.hero-funnel__plane:nth-child(7) { left:31%; top:13%; width:8%; transform:translate(-50%,-50%) rotate(6deg); }

.hero-funnel__plane:nth-child(8) { left:69%; top:12%; width:8%; transform:translate(-50%,-50%) rotate(-6deg); }

.hero-funnel__plane:nth-child(9) { left:36%; top:87%; width:9%; transform:translate(-50%,-50%) rotate(5deg); }

.hero-funnel__plane:nth-child(10) { left:64%; top:86%; width:9%; transform:translate(-50%,-50%) rotate(-5deg); }

@media (max-width:639px) {
.salon-wordmark { width:160px; }

.hero-funnel__plane:nth-child(5),
.hero-funnel__plane:nth-child(8),
.hero-funnel__plane:nth-child(10) { display:none; }

.hero-funnel__plane:nth-child(7) { left:50%; top:8%; width:17%; }

.hero-funnel__plane:nth-child(9) { left:50%; top:85%; width:21%; }

.hero-funnel__plane:nth-child(6) { left:87%; }
}

.hero-funnel__plane { contain: layout paint; backface-visibility:hidden; }

.hero-funnel.is-moving .hero-funnel__plane { will-change:transform; }

@media  (min-width: 640px) {
.hero-funnel__plane:nth-child(1) { width:15%; }

.hero-funnel__plane:nth-child(2) { width:14%; }

.hero-funnel__plane:nth-child(3) { width:13%; }

.hero-funnel__plane:nth-child(4) { width:19%; }

.hero-funnel__plane:nth-child(5) { width:11.5%; }

.hero-funnel__plane:nth-child(6) { width:14%; }

.hero-funnel__plane:nth-child(7),
.hero-funnel__plane:nth-child(8) { width:10%; top:12%; }

.hero-funnel__plane:nth-child(9),
.hero-funnel__plane:nth-child(10) { width:10.5%; top:89%; }
}

@media  (max-width:639px) {
.hero-funnel__plane { box-shadow:0 6px 16px rgba(29,50,37,.09); }

.hero-funnel__plane:nth-child(1) { width:24%; }

.hero-funnel__plane:nth-child(2) { width:23%; }

.hero-funnel__plane:nth-child(7) { width:19%; }

.hero-funnel__plane:nth-child(9) { width:23%; }
}

@media  (min-width:640px) {
.hero__footer { left:0; right:0; bottom:0; min-height:4rem; padding:1rem var(--gutter); }

.hero-funnel { clip-path:inset(0 0 4rem 0); }
}

.salon-story { padding-top:clamp(3.5rem,6vw,6rem); }

.hero-funnel.is-funnel-active { perspective:70rem; perspective-origin:50% 48%; }

.hero-funnel.is-funnel-active .hero-funnel__plane { left:50%; top:50%; width:clamp(9rem,13vw,14rem); }

@media  (max-width:639px) {
.hero-funnel.is-funnel-active .hero-funnel__plane { width:clamp(6rem,22vw,8rem); }
}

.hero-funnel.is-funnel-active {
 -webkit-mask-image:radial-gradient(ellipse 31% 29% at 50% 49%,transparent 76%,#000 122%);
 mask-image:radial-gradient(ellipse 31% 29% at 50% 49%,transparent 76%,#000 122%);
}

@media  (max-width:639px) {
.hero-funnel.is-funnel-active {
  -webkit-mask-image:radial-gradient(ellipse 43% 30% at 50% 47%,transparent 78%,#000 120%);
  mask-image:radial-gradient(ellipse 43% 30% at 50% 47%,transparent 78%,#000 120%);
 }
}

.hero__copy { z-index:auto; }

.hero__eyebrow { position:relative; z-index:6; }

.hero h1 > span {
 color:#edf3ec;
 mix-blend-mode:difference;
 text-shadow:0 1px 2px rgba(255,252,246,.32),0 4px 16px rgba(25,40,32,.16);
}

.hero h1 > em { text-shadow:0 2px 14px rgba(25,40,32,.08); }

:root {--brand:#204d39;--brand-dark:#163e30;--brand-deep:#122d23;--brand-pale:#e9e1d2;--brand-mist:#e2d8c6;--canvas:#f3ede2;--surface:#f9f5ed;--surface-soft:#e9e2d5;--ink:#1b231d;--ink-soft:#596057;--muted:#687064;--line:#d9d1c2;--line-strong:#c9c0ad}

[hidden] {display:none!important}

.salon-wordmark {width:12rem!important;height:auto!important;max-height:5rem;object-fit:contain}

.site-brand {padding-block:.35rem}

.site-nav__inner {min-height:5.6rem}

.site-header {position:sticky;top:0}

.site-menu {gap:1.65rem}

.site-menu .button {min-width:9.5rem}

.header-bar {background:var(--brand-deep)}

.section-heading h2,
.contact h2,
.guest-notes h2 {font-size:clamp(2.6rem,4.4vw,4.5rem);line-height:1.1;letter-spacing:-.035em}

.section-heading__aside {max-width:24rem}

.salon-story {padding-bottom:6rem}

.hh-story {display:grid;grid-template-columns:1fr 1.08fr .65fr;gap:2.3rem;align-items:center}

.hh-story figure {margin:0;position:relative}

.hh-story img {width:100%;height:100%;object-fit:cover}

.hh-story__image {height:35rem}

.hh-story__detail {height:23rem;margin-top:9rem!important}

.hh-story figcaption {font-size:.62rem;color:var(--ink-soft);padding-top:.7rem;letter-spacing:.04em}

.hh-story .story-card {padding:2.4rem 1.9rem;background:none;border-top:1px solid var(--line-strong)}

.hh-story .story-card h3 {font-size:2.7rem;line-height:1.1;letter-spacing:-.03em}

.hh-story .story-card__index {margin-bottom:2.5rem}

.hh-story .story-card>.text-link {display:inline-flex;margin-top:2rem;font-size:.75rem}

.hh-menu-tabs {display:flex;border-bottom:1px solid var(--line-strong);gap:2.4rem;margin-bottom:1.6rem}

.hh-menu-tabs button {font:inherit;background:none;border:0;border-bottom:2px solid transparent;padding:1rem 0;color:var(--ink-soft);cursor:pointer;font-size:1.1rem;transition:color .2s,border-color .2s}

.hh-menu-tabs button[aria-selected="true"] {color:var(--brand);border-color:var(--brand)}

.hh-menu-tabs span {font-size:.65rem;margin-left:.6rem;vertical-align:super}

.hh-price-list {display:grid;grid-template-columns:1fr 1fr;column-gap:5rem;margin:0}

.hh-price-list>div {display:flex;justify-content:space-between;gap:1rem;align-items:baseline;border-bottom:1px solid var(--line);padding:1.05rem 0}

.hh-price-list dt {font-size:.92rem}

.hh-price-list dd {margin:0;white-space:nowrap;font-variant-numeric:tabular-nums;font-size:.95rem;font-weight:500;color:var(--brand-dark)}

.hh-menu-note {display:flex;justify-content:space-between;align-items:baseline;gap:2rem;margin-top:1.6rem;font-size:.7rem;color:var(--ink-soft)}

.hh-menu-note p {max-width:38rem}

.hh-menu-note a {white-space:nowrap}

.hh-gift {display:grid;grid-template-columns:1fr 1.2fr;align-items:center;column-gap:3rem;margin-top:4rem;border-top:1px solid var(--line-strong);padding-top:2rem}

.hh-gift h3 {grid-column:1;font-size:2.4rem;font-weight:400}

.hh-gift p {grid-column:2;grid-row:1/3;justify-self:end}

.hh-gift a {grid-column:2;justify-self:end;font-size:.75rem}

.hh-reviews {display:grid;grid-template-columns:1fr 1fr 1fr;gap:0}

.hh-reviews .guest-note {display:flex;flex-direction:column;margin:0;padding:2rem;border-right:1px solid var(--line-strong);background:none;border-top:1px solid var(--line-strong)}

.hh-reviews .guest-note:first-child {padding-left:0}

.hh-reviews .guest-note:last-child {border-right:0;padding-right:0}

.hh-reviews blockquote {font-family:var(--font-display);font-size:1.6rem;line-height:1.45;font-weight:400;margin:2rem 0;flex:1}

.hh-reviews figcaption {margin-top:auto}

.hh-reviews .review-stars {display:block;margin-top:1rem;font-size:.75rem;letter-spacing:.15em}

.hh-review-note {font-size:.65rem;color:var(--ink-soft);margin-top:2rem}

.hh-review-note a {border-bottom:1px solid var(--line-strong)}

.hh-panorama {position:relative;margin:0;max-width:60rem;margin-inline:auto;background:var(--brand-deep)}

.hh-panorama img {width:100%;max-height:37rem;object-fit:cover;object-position:center 52%}

.hh-panorama figcaption {display:flex;justify-content:space-between;align-items:center;padding:1.2rem 1.5rem;gap:1rem;color:var(--surface)}

.hh-panorama figcaption span {font-size:.62rem;letter-spacing:.1em}

.hh-panorama figcaption strong {font:italic 1.5rem var(--font-display)}

.hh-visit {align-self:start}

.hh-visit figure {position:relative;margin:0;height:40rem;overflow:hidden}

.hh-visit img {width:100%;height:100%;object-fit:cover}

.hh-visit figcaption {position:absolute;bottom:1rem;left:1rem;background:var(--canvas);padding:.6rem 1rem;font-size:.65rem;letter-spacing:.1em}

.hh-map-link {display:flex;flex-direction:column;gap:.3rem;padding:1.5rem;background:var(--brand-deep);color:var(--surface)}

.hh-map-link span {font-size:.65rem;color:#d4d3bf}

.hh-map-link strong {font:1.6rem var(--font-display)}

.contact-actions {align-items:center;gap:1.5rem}

.contact-details a {font-style:normal}

.hours small {font-size:.65rem;color:var(--ink-soft)}

.floating-actions {display:none}

.site-footer__legal>div {gap:1.5rem}

a,
button {-webkit-tap-highlight-color:transparent}

a:focus-visible,
button:focus-visible,
[tabindex="0"]:focus-visible {outline:2px solid #977e48;outline-offset:6px}

.button:active {transform:translateY(1px)}

@media (max-width:1100px){
.hh-story {gap:1rem}

.hh-story .story-card {padding:1.4rem}

.hh-story__detail {height:21rem}

.site-menu {gap:1rem}
}

@media (max-width:959px){
.site-menu.is-open {opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}

.nav-backdrop.is-visible {opacity:1;visibility:visible;pointer-events:auto}

.hh-story {grid-template-columns:1fr 1fr;gap:2rem}

.hh-story__detail {display:none}

.hh-story__image {height:32rem}

.hh-price-list {column-gap:2rem}

.hh-reviews {grid-template-columns:1fr}

.hh-reviews .guest-note,
.hh-reviews .guest-note:first-child,
.hh-reviews .guest-note:last-child {padding:1.7rem 0;border-right:0}

.hh-reviews blockquote {margin:1rem 0;font-size:1.7rem;max-width:40rem}

.hh-visit figure {height:33rem}

.guest-notes__heading {gap:2rem}
}

@media (max-width:639px){
.salon-wordmark {width:9rem!important;max-height:3.6rem}

.site-nav__inner {min-height:4.7rem}

.hh-story {display:flex;flex-direction:column;gap:2.8rem}

.hh-story__image {height:28rem;width:100%}

.hh-story .story-card {padding:1.8rem 0;width:100%}

.hh-story__detail {display:block;width:70%;height:22rem;align-self:flex-end;margin-top:0!important}

.hh-price-list {grid-template-columns:1fr}

.hh-price-list>div {padding:.9rem 0}

.hh-price-list dt {font-size:.87rem}

.hh-menu-note {flex-direction:column;gap:.6rem}

.hh-gift {grid-template-columns:1fr;gap:.7rem}

.hh-gift h3,
.hh-gift p,
.hh-gift a {grid-column:1;grid-row:auto;justify-self:start;margin:0}

.hh-gift h3 {font-size:2.1rem}

.hh-gift p {font-size:.8rem}

.hh-gift a {margin-top:.5rem}

.hh-menu-tabs {gap:2rem}

.hh-menu-tabs button {font-size:1rem}

.hh-panorama img {max-height:28rem}

.hh-panorama figcaption {padding:1rem}

.hh-panorama figcaption strong {font-size:1.1rem}

.hh-panorama figcaption span {font-size:.5rem}

.hh-visit figure {height:32rem}

.contact-actions {flex-wrap:wrap}

.floating-actions {display:flex;bottom:1rem;right:1rem;left:auto;border-radius:0;background:var(--brand-deep);box-shadow:var(--shadow-sm)}

.floating-actions a {padding:.9rem 1.3rem;color:var(--surface);gap:2rem}

.site-footer {padding-bottom:4rem}

.hh-review-note {line-height:1.8}

.social-invitation {align-items:flex-start;gap:1rem;flex-direction:column}

.section-heading h2,
.contact h2,
.guest-notes h2 {font-size:clamp(2.6rem,9.5vw,3.5rem)}
}

@media (prefers-reduced-motion:reduce){
html {scroll-behavior:auto}

*,
*::before,
*::after {animation:none!important;transition:none!important}
}

.hero {min-height:calc(100dvh - var(--header-height))}

.hero__stage {position:relative;top:auto;min-height:40rem;height:calc(100dvh - var(--header-height));max-height:65rem}

.hero__copy {pointer-events:none}

.hero__actions a {pointer-events:auto}

.hero__intro {margin:1.6rem auto 0;color:var(--ink-soft);font-size:.93rem;line-height:1.85}

.hero h1>em {font-family:"Salon Script","Snell Roundhand",cursive;font-style:normal;border:0;text-shadow:none;line-height:.85;margin-top:.35em;padding-bottom:.13em}

.hero-funnel.is-funnel-active .hero-funnel__plane {display:block;left:50%;top:50%;width:clamp(10rem,15vw,17rem);backface-visibility:hidden}

.hero-funnel.is-funnel-active .hero-funnel__plane--wide {width:clamp(13rem,20vw,23rem)}

.hero__actions .button {gap:2rem}

.hero__footer {z-index:7}

@media (max-width:639px){
.hero__stage {min-height:40rem;height:calc(100svh - 7rem)}

.hero__copy {top:-1rem}

.hero__eyebrow {font-size:.47rem;letter-spacing:.14em}

.hero__intro {font-size:.8rem}

.hero-funnel.is-funnel-active .hero-funnel__plane {width:8.5rem}

.hero-funnel.is-funnel-active .hero-funnel__plane--wide {width:12rem}

.hero__footer {font-size:.55rem}

.floating-actions {width:auto;transform:none}

.floating-actions a {min-width:0}
}

@media (max-width:639px){
.floating-actions {background:var(--brand-deep);padding:0}

.floating-actions a {background:var(--brand-deep);color:var(--surface);border-radius:0}

.floating-actions a span {background:none;color:inherit}

.hero h1 {font-size:clamp(2.6rem,12vw,3.15rem)}

.hero__eyebrow {gap:.4rem}

.hero__footer {display:none}
}

/* Restored template hero styles and responsive image lanes. */
.hero{
    position: relative;
    min-height: calc(160dvh - var(--header-height));
    overflow: clip;
    isolation: isolate;
}
.hero__ambient{
    position: absolute;
    z-index: -1;
    inset: 0;
    background:
        radial-gradient(ellipse at 18% 24%, rgba(255, 255, 255, 0.96), transparent 32%),
        radial-gradient(ellipse at 79% 14%, rgba(29, 91, 70, 0.15), transparent 26%),
        radial-gradient(ellipse at 54% 90%, rgba(29, 91, 70, 0.11), transparent 32%),
        linear-gradient(135deg, var(--canvas), var(--brand-pale));
}
.hero__ambient::after{
    position: absolute;
    inset: 0;
    opacity: 0.25;
    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='.75' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.08'/%3E%3C/svg%3E");
    content: "";
    pointer-events: none;
}
.hero__stage{
    position: sticky;
    top: var(--header-height);
    width: 100%;
    max-width: none;
    height: calc(100dvh - var(--header-height));
    min-height: 39rem;
    display: grid;
    place-items: center;
    margin-inline: 0;
    padding-inline: var(--gutter);
    padding-block: clamp(2rem, 4.2vh, 3.75rem);
    background:
        radial-gradient(ellipse at 18% 24%, rgba(255, 255, 255, 0.96), transparent 32%),
        radial-gradient(ellipse at 79% 14%, rgba(29, 91, 70, 0.15), transparent 26%),
        radial-gradient(ellipse at 54% 90%, rgba(29, 91, 70, 0.11), transparent 32%),
        linear-gradient(135deg, var(--canvas), var(--brand-pale));
}
.hero__copy{
    position: relative;
    top: -1.5vh;
    width: min(100%, 72rem);
    margin-inline: auto;
    text-align: center;
}
.hero__eyebrow{
    position: relative;
    z-index: 6;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.85rem;
    margin-bottom: 1.2rem;
    color: var(--muted);
    font-size: 0.64rem;
    font-weight: 700;
    letter-spacing: 0.27em;
    text-transform: uppercase;
}
.hero__eyebrow i{
    width: 0.42rem;
    height: 0.42rem;
    border-radius: 50%;
    background: var(--brand);
    box-shadow: 0 0 0 0.28rem rgba(29, 91, 70, 0.12);
}
.hero h1{
    max-width: none;
    font-size: clamp(4.65rem, 7.4vw, 8.3rem);
    line-height: 0.82;
}
.js .hero h1.reveal.is-visible{
    will-change: auto;
}
.hero h1 > span,.hero h1 > em{
    position: relative;
    z-index: 6;
    display: block;
}
.hero h1 > span{
    color: var(--white);
    mix-blend-mode: difference;
}
.hero h1 > em{
    width: fit-content;
    min-height: 0.78em;
    margin: 0.42em auto 0;
    padding: 0 0.3em 0.1em;
    border-bottom: 1px solid rgba(29, 91, 70, 0.28);
    font-size: 0.72em;
    transition: opacity 190ms ease, transform 260ms var(--ease-out), filter 190ms ease;
}
.hero h1 > em.is-changing{
    opacity: 0;
    filter: blur(0.18rem);
    transform: translateY(0.2em);
}
.hero__actions{
    position: relative;
    z-index: 6;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.5rem;
    margin-top: 2rem;
}
.hero-funnel{
    position: absolute;
    z-index: 1;
    inset: 0;
    overflow: clip;
    perspective: 70rem;
    perspective-origin: 50% 48%;
    transform-style: preserve-3d;
    pointer-events: none;
}
.hero-funnel__plane{
    position: absolute;
    top: 50%;
    left: 50%;
    width: clamp(8.5rem, 10.5vw, 12.5rem);
    margin: 0;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.85);
    border-radius: 0.18rem;
    background: var(--surface-soft);
    box-shadow:
        0 1.5rem 4rem rgba(29, 50, 37, 0.14),
        0 0.35rem 1rem rgba(29, 50, 37, 0.08);
    opacity: 0;
    transform-style: preserve-3d;
    transform-origin: center;
    will-change: auto;
}
.hero-funnel__plane::after{
    position: absolute;
    inset: 0;
    background:
        linear-gradient(130deg, rgba(255, 255, 255, 0.18), transparent 30%),
        linear-gradient(180deg, transparent 72%, rgba(21, 62, 50, 0.08));
    content: "";
    pointer-events: none;
}
.hero-funnel__plane img{
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.hero-funnel__plane--portrait{
    aspect-ratio: 1003 / 1568;
}
.hero-funnel__plane--portrait-tall{
    width: clamp(8rem, 9.5vw, 11rem);
    aspect-ratio: 2 / 3;
}
.hero-funnel__plane--four-five{
    width: clamp(9rem, 11vw, 13rem);
    aspect-ratio: 4 / 5;
}
.hero-funnel__plane--wide{
    width: clamp(13rem, 17vw, 20rem);
    aspect-ratio: 3 / 2;
}
.hero-funnel__plane--cinema{
    width: clamp(15rem, 20vw, 24rem);
    aspect-ratio: 16 / 9;
}
.hero-funnel__plane--square{
    width: clamp(9rem, 12vw, 14rem);
    aspect-ratio: 1;
}
.hero-funnel__plane--graphic{
    border-color: rgba(29, 91, 70, 0.48);
    box-shadow: 0 1.25rem 3.5rem rgba(21, 62, 50, 0.12);
}
.hero__footer{
    position: absolute;
    z-index: 4;
    right: var(--gutter);
    bottom: clamp(0.9rem, 1.6vh, 1.4rem);
    left: var(--gutter);
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 1.5rem;
    min-height: 2.8rem;
    padding-bottom: 0.45rem;
    color: var(--muted);
    font-size: 0.54rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}
.hero__footer p{
    color: inherit;
}
.hero__footer p span{
    color: var(--brand);
}
.hero__footer > div{
    display: flex;
    align-items: center;
    gap: 0.8rem;
}
.hero__footer > div i{
    width: 4.5rem;
    height: 1px;
    background: linear-gradient(90deg, var(--brand), transparent);
}
.hero__footer > a{
    justify-self: end;
    transition: color 180ms ease;
}
.hero__footer > a:hover{
    color: var(--brand-dark);
}
.hero__footer .hero__location{
    justify-self: end;
    gap: 0.55rem;
}
.hero__location .address{
    color: inherit;
    white-space: nowrap;
}
.hero__location .icon-link{
    width: 1.8rem;
    height: 1.8rem;
    letter-spacing: 0;
}
@media  (max-width: 959px) {.hero{
        min-height: calc(155dvh - var(--header-height));
    }
.hero__stage{
        top: var(--header-height);
        height: calc(100dvh - var(--header-height));
        min-height: 38rem;
        padding-block: clamp(1.6rem, 3.4vh, 2.75rem);
    }
.hero__copy{
        max-width: 44rem;
    }
.hero h1{
        font-size: clamp(4rem, 9vw, 6.2rem);
    }}
@media  (max-width: 639px) {.hero{
        min-height: calc(150dvh - var(--header-height));
    }
.hero__stage{
        top: var(--header-height);
        height: calc(100dvh - var(--header-height));
        min-height: 38rem;
        padding-block: clamp(1.55rem, 3.6vh, 2.1rem) 1.1rem;
    }
.hero__copy{
        top: -2vh;
        width: calc(100% - 1.2rem);
    }
.hero__eyebrow{
        gap: 0.6rem;
        margin-bottom: 1rem;
        font-size: 0.54rem;
        letter-spacing: 0.2em;
    }
.hero h1{
        font-size: clamp(3.25rem, 14vw, 4.35rem);
        line-height: 0.86;
    }
.hero h1 > em{
        max-width: 100%;
        margin-top: 0.42em;
        font-size: 0.76em;
        white-space: nowrap;
    }
.hero__actions{
        align-items: stretch;
        flex-direction: column;
        gap: 1.05rem;
        margin-top: 1.5rem;
    }
.hero__actions .button{
        width: min(100%, 25rem);
        margin-inline: auto;
    }
.hero__actions .text-link{
        align-self: center;
    }
.hero-funnel{
        perspective: 52rem;
    }
.hero-funnel__plane{
        width: 6.5rem;
    }
.hero-funnel__plane--portrait-tall{
        width: 6rem;
    }
.hero-funnel__plane--four-five{
        width: 7rem;
    }
.hero-funnel__plane--wide{
        width: 9rem;
    }
.hero-funnel__plane--cinema{
        width: 10.5rem;
    }
.hero-funnel__plane--square{
        width: 7.2rem;
    }
.hero__footer{
        display: none;
    }}
@media  (prefers-reduced-motion: reduce) {.hero{
        min-height: calc(100dvh - var(--header-height));
    }
.hero__stage{
        position: relative;
        top: auto;
        height: auto;
        min-height: calc(100dvh - var(--header-height));
    }}
.hero__ambient,.hero__stage{ background:#f0eadf; }
.hero__intro{ position:relative; z-index:6; max-width:27rem; margin:1.5rem auto 0; color:var(--ink-soft); font-size:0.88rem; line-height:1.8; }
.hero h1 > span{ color:var(--ink); mix-blend-mode:normal; }
.hero h1 > em{ color:var(--brand-dark); }
.hero__copy{ z-index:5; }
.hero__eyebrow{ color:var(--brand-deep); }
.hero-funnel__plane{ border:4px solid var(--surface); border-radius:0; }
.hero__footer{ border-top:1px solid var(--line-strong); padding-top:1rem; }
@media  (max-width: 639px) {.hero h1{ font-size:clamp(3.3rem,12vw,5rem); }
.hero__intro{ font-size:.8rem; max-width:17rem; margin-top:1.4rem; }
.hero__actions{ gap:1rem; }
.hero-funnel__plane{ border-width:2px; }
.hero__footer{ padding-top:.7rem; }}
.hero{ min-height:calc(100dvh - var(--header-height)); }
.hero__stage{ position:relative; top:auto; min-height:44rem; }
.hero-funnel{ perspective:none; }
.hero-funnel__plane{ opacity:1; transform:translate(-50%,-50%); filter:none; box-shadow:0 12px 30px rgba(29,50,37,.12); }
.hero-funnel__plane:nth-child(1){ left:12%; top:27%; width:13%; transform:translate(-50%,-50%) rotate(-8deg); }
.hero-funnel__plane:nth-child(2){ left:88%; top:24%; width:12%; transform:translate(-50%,-50%) rotate(7deg); }
.hero-funnel__plane:nth-child(3){ left:4%; top:69%; width:11%; transform:translate(-50%,-50%) rotate(5deg); }
.hero-funnel__plane:nth-child(4){ left:94%; top:68%; width:17%; transform:translate(-50%,-50%) rotate(-7deg); }
.hero-funnel__plane:nth-child(5){ left:25%; top:85%; width:10%; transform:translate(-50%,-50%) rotate(-5deg); }
.hero-funnel__plane:nth-child(6){ left:74%; top:87%; width:13%; transform:translate(-50%,-50%) rotate(5deg); }
.hero__footer{ z-index:8; background:#f0eadf; bottom:.5rem; }
@media  (max-width:900px) {.hero h1{ font-size:clamp(4rem,7.4vw,7rem); }
.hero-funnel__plane:nth-child(1){ left:8%; top:22%; width:16%; }
.hero-funnel__plane:nth-child(2){ left:92%; top:23%; width:15%; }}
@media  (max-width:639px) {.hero__stage{ min-height:45rem; height:calc(100svh - var(--header-height)); padding-top:7.5rem; padding-bottom:11rem; }
.hero__copy{ top:0; }
.hero h1{ font-size:clamp(3rem,11.5vw,4.5rem); }
.hero__eyebrow{ font-size:.53rem; gap:.6rem; }
.hero-funnel__plane:nth-child(1){ left:14%; top:10%; width:21%; }
.hero-funnel__plane:nth-child(2){ left:85%; top:10%; width:20%; }
.hero-funnel__plane:nth-child(3),.hero-funnel__plane:nth-child(5){ display:none; }
.hero-funnel__plane:nth-child(4){ left:8%; top:83%; width:27%; }
.hero-funnel__plane:nth-child(6){ left:87%; top:84%; width:29%; }
.hero__footer{ bottom:.5rem; }}
.hero-funnel__plane--detail{ aspect-ratio:1; }
.hero-funnel__plane:nth-child(5){ left:19%; }
.hero-funnel__plane:nth-child(6){ left:81%; }
.hero-funnel__plane:nth-child(7){ left:31%; top:13%; width:8%; transform:translate(-50%,-50%) rotate(6deg); }
.hero-funnel__plane:nth-child(8){ left:69%; top:12%; width:8%; transform:translate(-50%,-50%) rotate(-6deg); }
.hero-funnel__plane:nth-child(9){ left:36%; top:87%; width:9%; transform:translate(-50%,-50%) rotate(5deg); }
.hero-funnel__plane:nth-child(10){ left:64%; top:86%; width:9%; transform:translate(-50%,-50%) rotate(-5deg); }
@media (max-width:639px) {.hero-funnel__plane:nth-child(5),.hero-funnel__plane:nth-child(8),.hero-funnel__plane:nth-child(10){ display:none; }
.hero-funnel__plane:nth-child(7){ left:50%; top:8%; width:17%; }
.hero-funnel__plane:nth-child(9){ left:50%; top:85%; width:21%; }
.hero-funnel__plane:nth-child(6){ left:87%; }}
.hero-funnel__plane{ contain: layout paint; backface-visibility:hidden; }
.hero-funnel.is-moving .hero-funnel__plane{ will-change:transform; }
@media  (min-width: 640px) {.hero-funnel__plane:nth-child(1){ width:15%; }
.hero-funnel__plane:nth-child(2){ width:14%; }
.hero-funnel__plane:nth-child(3){ width:13%; }
.hero-funnel__plane:nth-child(4){ width:19%; }
.hero-funnel__plane:nth-child(5){ width:11.5%; }
.hero-funnel__plane:nth-child(6){ width:14%; }
.hero-funnel__plane:nth-child(7),.hero-funnel__plane:nth-child(8){ width:10%; top:12%; }
.hero-funnel__plane:nth-child(9),.hero-funnel__plane:nth-child(10){ width:10.5%; top:89%; }}
@media  (max-width:639px) {.hero-funnel__plane{ box-shadow:0 6px 16px rgba(29,50,37,.09); }
.hero-funnel__plane:nth-child(1){ width:24%; }
.hero-funnel__plane:nth-child(2){ width:23%; }
.hero-funnel__plane:nth-child(7){ width:19%; }
.hero-funnel__plane:nth-child(9){ width:23%; }}
@media  (min-width:640px) {.hero__footer{ left:0; right:0; bottom:0; min-height:4rem; padding:1rem var(--gutter); }
.hero-funnel{ clip-path:inset(0 0 4rem 0); }}
.hero-funnel.is-funnel-active{ perspective:70rem; perspective-origin:50% 48%; }
.hero-funnel.is-funnel-active .hero-funnel__plane{ left:50%; top:50%; width:clamp(9rem,13vw,14rem); }
@media  (max-width:639px) {.hero-funnel.is-funnel-active .hero-funnel__plane{ width:clamp(6rem,22vw,8rem); }}
.hero-funnel.is-funnel-active{
 -webkit-mask-image:radial-gradient(ellipse 31% 29% at 50% 49%,transparent 76%,#000 122%);
 mask-image:radial-gradient(ellipse 31% 29% at 50% 49%,transparent 76%,#000 122%);
}
@media  (max-width:639px) {.hero-funnel.is-funnel-active{
  -webkit-mask-image:radial-gradient(ellipse 43% 30% at 50% 47%,transparent 78%,#000 120%);
  mask-image:radial-gradient(ellipse 43% 30% at 50% 47%,transparent 78%,#000 120%);
 }}
.hero__copy{ z-index:auto; }
.hero__eyebrow{ position:relative; z-index:6; }
.hero h1 > span{
 color:#edf3ec;
 mix-blend-mode:difference;
 text-shadow:0 1px 2px rgba(255,252,246,.32),0 4px 16px rgba(25,40,32,.16);
}
.hero h1 > em{ text-shadow:0 2px 14px rgba(25,40,32,.08); }
.hero__intro{margin:1.6rem auto 0;color:var(--ink-soft);font-size:.93rem;line-height:1.85}.hero__copy{pointer-events:none}.hero__actions a{pointer-events:auto}

/* Salon journal and client lookbook. The restored hero remains unchanged. */
.space-photo{margin:0;min-width:0}.space-photo button{position:relative;display:block;width:100%;height:100%;padding:0;border:0;background:var(--surface-soft);overflow:hidden;cursor:zoom-in}.space-photo img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease-out)}.space-photo button:hover img{transform:scale(1.025)}.space-photo__expand{position:absolute;right:.8rem;bottom:.8rem;width:2rem;height:2rem;display:grid;place-items:center;background:var(--canvas);color:var(--brand-deep);font-size:1rem}.space-photo figcaption{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.8rem 0;border-bottom:1px solid var(--line)}.space-photo figcaption span{font-size:.52rem;letter-spacing:.08em;color:var(--ink-soft);text-transform:uppercase}.space-photo figcaption strong{font:400 1.15rem var(--font-display);text-align:right}
.space-intro{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:3.8rem 1.8rem;align-items:start}.space-intro__main{grid-column:1/10;grid-row:1}.space-intro__main button{aspect-ratio:1672/941}.space-intro__welcome{grid-column:10/13;grid-row:1;padding-top:4.5rem}.space-intro__welcome button{aspect-ratio:941/1672}.space-intro__stations{grid-column:2/6;grid-row:2;margin-top:-3rem}.space-intro__stations button{aspect-ratio:4/5}.space-intro__note{grid-column:7/12;grid-row:2;padding:1.6rem 0}.space-intro__note h3{font-size:clamp(2.5rem,4vw,4.1rem);line-height:1.12;font-weight:400;letter-spacing:-.035em;margin:1.5rem 0}.space-intro__note h3 em{font-style:italic;color:var(--brand)}.space-intro__note>p:not(.eyebrow){max-width:25rem;font-size:.88rem;line-height:1.9;color:var(--ink-soft);margin-bottom:1.5rem}
.space-journal{background:var(--surface);padding-top:5.5rem}.space-journal__heading{display:grid;grid-template-columns:1fr 1fr;align-items:baseline;gap:.5rem 3rem;margin-bottom:3rem}.space-journal__heading .eyebrow{grid-column:1/-1}.space-journal__heading h2{font-size:clamp(2.6rem,4.6vw,4.8rem);font-weight:400;line-height:1.1}.space-journal__heading h2 em{color:var(--brand);font-family:var(--font-display);font-style:italic}.space-journal__heading>p:last-child{justify-self:end;font-size:.85rem;color:var(--ink-soft)}.space-journal__grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));align-items:start;gap:3.5rem 1.8rem}.space-journal__depth{grid-column:1/4;grid-row:1/3}.space-journal__depth button{aspect-ratio:9/16}.space-journal__windows{grid-column:4/10;grid-row:1}.space-journal__windows button{aspect-ratio:598/498}.space-journal__reception{grid-column:10/13;grid-row:1;margin-top:4rem}.space-journal__reception button{aspect-ratio:3/4}.space-journal__wide{grid-column:5/12;grid-row:2;margin-top:-.5rem}.space-journal__wide button{aspect-ratio:1672/941}
.nail-gallery{background:var(--canvas)}.gallery-hint{display:block;font-size:.64rem;letter-spacing:.03em;margin-top:1.5rem;color:var(--brand)}.nail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-flow:row dense;gap:1rem;align-items:stretch}.nail-grid__item{margin:0;min-width:0;aspect-ratio:4/5}.nail-grid__item:nth-child(12n+1){grid-column:span 2;grid-row:span 2;aspect-ratio:auto}.nail-grid__item:nth-child(12n+8){grid-column:span 2;grid-row:span 2;aspect-ratio:auto}.nail-grid__item button{position:relative;display:block;width:100%;height:100%;border:0;padding:0;background:var(--surface-soft);overflow:hidden;cursor:zoom-in;text-align:left;color:var(--surface)}.nail-grid__item img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .75s var(--ease-out)}.nail-grid__item button:hover img{transform:scale(1.035)}.nail-grid__caption{position:absolute;bottom:0;left:0;right:0;display:flex;align-items:center;gap:.65rem;background:linear-gradient(transparent,rgba(13,28,20,.8));padding:3rem 1rem 1rem}.nail-grid__caption>span{font-size:.56rem;letter-spacing:.04em}.nail-grid__caption strong{font-size:.68rem;font-weight:500}.nail-grid__caption>span:last-child{margin-left:auto;font-size:1.2rem}.nail-gallery__actions{display:flex;justify-content:space-between;align-items:center;gap:2rem;padding-top:2.5rem}.nail-gallery__actions>p{font-size:.65rem;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-soft)}.nail-gallery__actions .button{box-shadow:none;gap:2rem}.nail-gallery__actions>.text-link{font-size:.7rem}
.photo-dialog{position:fixed;inset:0;width:100%;max-width:none;height:100%;max-height:none;border:0;margin:0;padding:1.5rem;background:rgba(14,28,22,.97);color:var(--surface);overflow:hidden}.photo-dialog::backdrop{background:rgba(14,28,22,.8)}.photo-dialog__shell{height:100%;display:grid;grid-template-columns:3rem minmax(0,1fr) 3rem;gap:1rem;align-items:center;max-width:90rem;margin:auto}.photo-dialog figure{margin:0;min-width:0;min-height:0;height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:1rem}.photo-dialog img{width:auto;max-width:100%;height:auto;max-height:calc(100dvh - 7rem);object-fit:contain}.photo-dialog figcaption{display:flex;gap:1.5rem;align-items:center}.photo-dialog figcaption span{font-size:.65rem;letter-spacing:.1em;color:#cecbb9}.photo-dialog figcaption strong{font:400 1.25rem var(--font-display)}.photo-dialog button{width:2.8rem;height:2.8rem;border:1px solid #7c8376;border-radius:50%;background:transparent;color:var(--surface);font-size:1.4rem;cursor:pointer;transition:background .2s}.photo-dialog button:hover{background:#355340}.photo-dialog__close{position:absolute;right:1.2rem;top:1.2rem;z-index:2}body.photo-open{overflow:hidden}
@media(min-width:1600px){.nail-grid{gap:1.5rem}}
@media(max-width:959px){.space-intro{gap:2.8rem 1.2rem}.space-intro__welcome{padding-top:2.5rem}.space-intro__stations{grid-column:1/6;margin-top:0}.space-intro__note{grid-column:7/13;padding-top:0}.space-photo figcaption{flex-direction:column;gap:.25rem}.space-photo figcaption strong{text-align:left}.space-journal__grid{gap:2.5rem 1.2rem}.space-journal__reception{margin-top:2rem}.nail-grid{gap:.7rem}.nail-grid__caption{padding:2rem .7rem .7rem}.nail-grid__caption strong{font-size:.6rem}.nail-gallery__actions{gap:1rem}.nail-gallery__actions .button{font-size:.62rem;gap:1rem}}
@media(max-width:639px){.space-intro{grid-template-columns:repeat(6,minmax(0,1fr));gap:2rem .8rem}.space-intro__main{grid-column:1/-1;grid-row:1}.space-intro__main button{aspect-ratio:4/3}.space-intro__stations{grid-column:1/4;grid-row:2;margin:0}.space-intro__stations button{aspect-ratio:3/4}.space-intro__welcome{grid-column:4/7;grid-row:2;padding-top:2.5rem}.space-intro__welcome button{aspect-ratio:3/4}.space-intro__note{grid-column:1/-1;grid-row:3;padding:1rem .5rem 0}.space-intro__note h3{font-size:2.8rem}.space-intro__note h3 br:nth-of-type(2){display:none}.space-photo figcaption span{font-size:.44rem}.space-photo figcaption strong{font-size:.98rem;line-height:1.3}.space-intro__main figcaption{flex-direction:row}.space-journal{padding-block:3.5rem 4.5rem}.space-journal__heading{display:block;margin-bottom:2rem}.space-journal__heading h2{font-size:2.8rem;margin:1rem 0}.space-journal__heading>p:last-child{font-size:.78rem}.space-journal__grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:2rem .8rem}.space-journal__windows{grid-column:1/-1;grid-row:1}.space-journal__windows button{aspect-ratio:598/498}.space-journal__depth{grid-column:1/4;grid-row:2;margin:0}.space-journal__depth button{aspect-ratio:9/16}.space-journal__reception{grid-column:4/7;grid-row:2;margin-top:3rem}.space-journal__reception button{aspect-ratio:3/4}.space-journal__wide{grid-column:1/-1;grid-row:3;margin:0}.nail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.nail-grid__item:nth-child(12n+1),.nail-grid__item:nth-child(12n+8){grid-column:span 2;grid-row:span 1;aspect-ratio:4/5}.nail-grid__caption{padding:2.5rem .75rem .8rem}.nail-grid__caption strong{font-size:.66rem}.nail-grid__item:nth-child(12n+1) .nail-grid__caption strong,.nail-grid__item:nth-child(12n+8) .nail-grid__caption strong{font-size:.86rem}.nail-gallery__actions{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem .5rem;text-align:center}.nail-gallery__actions .button{grid-column:1/-1;grid-row:1;justify-self:center}.nail-gallery__actions>p{font-size:.55rem}.nail-gallery__actions>.text-link{font-size:.61rem;justify-self:end}.photo-dialog{padding:3.6rem .75rem 1rem}.photo-dialog__shell{display:block;position:relative}.photo-dialog figure{height:calc(100% - 3.2rem);gap:.75rem}.photo-dialog img{max-height:calc(100dvh - 11rem)}.photo-dialog__previous,.photo-dialog__next{position:absolute;bottom:0}.photo-dialog__previous{left:calc(50% - 3.6rem)}.photo-dialog__next{right:calc(50% - 3.6rem)}.photo-dialog__close{top:.7rem;right:.7rem}.photo-dialog figcaption strong{font-size:1.1rem}.floating-actions{z-index:35}body.photo-open .floating-actions{display:none}}
/* Give mosaic rows a definite size so portrait proportions cannot widen a grid cell. */
@media(min-width:640px){.nail-grid{grid-auto-rows:clamp(14rem,27vw,23rem)}.nail-grid__item,.nail-grid__item:nth-child(12n+1),.nail-grid__item:nth-child(12n+8){width:100%;height:100%;min-height:0;aspect-ratio:auto}}
@media(max-width:639px){.nail-grid{grid-auto-rows:auto}.nail-grid__item{width:100%;height:auto;min-height:0}}

/* Interior sequence: an establishing view, workstations, then quieter details. */
.hh-menu-note{display:block}.hh-menu-note p{max-width:48rem}
@media(min-width:640px){
 .space-intro{gap:3rem 2rem}
 .space-intro__main{grid-column:1/9;grid-row:1}
 .space-intro__stations{grid-column:9/13;grid-row:1;margin:0;padding-top:2.5rem}
 .space-intro__stations button{aspect-ratio:3/4}
 .space-intro__welcome{grid-column:2/5;grid-row:2;padding:0;margin-top:-3rem}
 .space-intro__welcome button{aspect-ratio:3/4}
 .space-intro__note{grid-column:6/12;grid-row:2;padding:0}
 .space-intro__note h3{margin-top:1.2rem}
 .space-journal__grid{grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:clamp(17rem,28vw,25rem) clamp(16rem,24vw,22rem);gap:3.5rem 1.5rem}
 .space-journal__wide{grid-column:1/9;grid-row:1;margin:0}
 .space-journal__depth{grid-column:9/13;grid-row:1/3;margin:0}
 .space-journal__windows{grid-column:1/6;grid-row:2;margin:0}
 .space-journal__reception{grid-column:6/9;grid-row:2;margin:0}
 .space-journal__grid .space-photo{height:100%;display:flex;flex-direction:column}
 .space-journal__grid .space-photo button{flex:1;min-height:0;aspect-ratio:auto;height:auto}
 .space-journal__grid .space-photo figcaption{flex:none}
 .space-journal__windows img{object-fit:contain;background:var(--surface-soft)}
 .space-journal__reception img{object-position:center 46%}
 .hh-visit figure{height:auto;aspect-ratio:3/4}
}
@media(min-width:640px) and (max-width:959px){
 .space-intro{gap:2.5rem 1.2rem}.space-intro__stations{padding-top:1.8rem}.space-intro__welcome{grid-column:1/5;margin-top:0}.space-intro__note{grid-column:6/13}
 .space-journal__grid{gap:2rem 1rem;grid-template-rows:17rem 16rem}
 .space-photo figcaption strong{font-size:1rem}
}
@media(max-width:639px){
 .space-intro__main button{aspect-ratio:1672/941}
 .space-intro__stations{grid-column:1/4;grid-row:2;margin:0;padding:0}
 .space-intro__welcome{grid-column:4/7;grid-row:2;padding-top:2rem}
 .space-intro__stations button,.space-intro__welcome button{aspect-ratio:3/4}
 .space-journal__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem .85rem}
 .space-journal__wide{grid-column:1/-1;grid-row:1;margin:0}
 .space-journal__wide button{aspect-ratio:1672/941}
 .space-journal__depth{grid-column:1;grid-row:2;margin:0}
 .space-journal__depth button{aspect-ratio:3/5}
 .space-journal__reception{grid-column:2;grid-row:2;margin-top:2rem}
 .space-journal__reception button{aspect-ratio:3/4}
 .space-journal__windows{grid-column:1/-1;grid-row:3;margin:0}
 .space-journal__windows button{aspect-ratio:598/498}
 .space-journal__windows img{object-fit:contain}
 .hh-visit figure{height:auto;aspect-ratio:3/4}
}

/* Vector arrows avoid platform-dependent emoji glyph substitution. */
svg.ui-arrow{display:inline-block;width:1em;height:1em;flex:0 0 auto;vertical-align:-.13em;overflow:visible;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.photo-dialog__previous .ui-arrow,.photo-dialog__next .ui-arrow{width:1.15rem;height:1.15rem;vertical-align:middle}

/* Appointment policy poster. */
.appointment-notice{padding:clamp(2rem,5vw,4rem) 0;background:var(--canvas)}
.appointment-poster{display:grid;grid-template-columns:1.2fr 1fr;gap:3rem;padding:clamp(2rem,4.5vw,4rem);background:#173d2d;color:#f3ede2;border:1px solid #294e3c;position:relative}
.appointment-poster__copy{padding-right:1.5rem}.appointment-poster__label{display:flex;align-items:center;gap:1.5rem;margin:0 0 2rem;font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:#e1d5bc}.appointment-poster__label span{border-left:1px solid #70826b;padding-left:1.5rem;color:#c9cbb8}
.appointment-poster h2{font-family:var(--font-display);font-size:clamp(2.6rem,4.7vw,4.5rem);font-weight:400;line-height:1.05;letter-spacing:-.035em;color:#f3ede2;margin:0 0 1.3rem}.appointment-poster h2 em{font-family:var(--font-display);font-style:italic;color:#d9c79e}
.appointment-poster__copy>p:not(.appointment-poster__label){font-size:.85rem;line-height:1.8;color:#d0d4c6;margin:0 0 2rem}
.appointment-poster__call{display:inline-flex;align-items:center;gap:1rem;border-bottom:1px solid #8d9e83;padding-bottom:.65rem;font-size:.62rem;letter-spacing:.09em;text-transform:uppercase;color:#f3ede2;transition:border-color .2s,color .2s}.appointment-poster__call span{font-size:.86rem;letter-spacing:.02em}.appointment-poster__call .ui-arrow{margin-left:.6rem}.appointment-poster__call:hover{color:#e6d6b5;border-color:#e6d6b5}
.appointment-poster__time{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding-left:3rem;border-left:1px solid #57715a}.appointment-poster__after{font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:#d9c79e}.appointment-poster__hour{font-family:var(--font-display);font-weight:400;font-size:clamp(5.5rem,10vw,9rem);letter-spacing:-.065em;line-height:1.05;margin:.6rem 0 1rem;font-variant-numeric:lining-nums}.appointment-poster__hour span{font-size:.32em;margin-left:.35em;letter-spacing:-.02em;font-style:italic}.appointment-poster__rule{font-size:clamp(1rem,1.7vw,1.4rem);font-weight:500;letter-spacing:.015em;margin:0 0 .6rem}.appointment-poster__detail{font-size:.68rem;color:#c4cdbb;max-width:22rem}
@media(max-width:959px){.appointment-poster{gap:1.5rem}.appointment-poster__copy{padding-right:0}.appointment-poster__time{padding-left:1.5rem}.appointment-poster__call{flex-wrap:wrap;gap:.5rem}.appointment-poster__label{font-size:.55rem;gap:.8rem}.appointment-poster__label span{padding-left:.8rem}}
@media(max-width:639px){.appointment-notice{padding:1.5rem 0 1rem}.appointment-poster{grid-template-columns:1fr;padding:1.75rem 1.5rem;gap:2rem}.appointment-poster__label{margin-bottom:1.6rem}.appointment-poster h2{font-size:2.7rem}.appointment-poster__copy>p:not(.appointment-poster__label){font-size:.8rem;margin-bottom:1.5rem}.appointment-poster__time{border-left:0;border-top:1px solid #57715a;padding:1.7rem 0 0;align-items:flex-start}.appointment-poster__hour{font-size:6rem;margin:.4rem 0 .75rem}.appointment-poster__rule{font-size:1.05rem}.appointment-poster__detail{font-size:.64rem}.appointment-poster__call{font-size:.57rem;gap:.65rem}.appointment-poster__call span{font-size:.79rem}}
.appointment-poster__hour,.appointment-poster__rule{color:#f3ede2}
