@import url('https://fonts.googleapis.com/css2?family=Bodoni+Moda:opsz,wght@6..96,400;6..96,500&family=Manrope:wght@400;500;600;700&display=swap');

:root {
  --white: oklch(1 0 0);
  --surface: oklch(0.985 0.006 38);
  --surface-deep: oklch(0.955 0.025 38);
  --ink: oklch(0.17 0.018 30);
  --muted: oklch(0.42 0.02 30);
  --rose: oklch(0.69 0.125 39);
  --rose-deep: oklch(0.49 0.125 37);
  --rose-dark: oklch(0.33 0.09 35);
  --rose-soft: oklch(0.9 0.05 39);
  --rose-pale: oklch(0.96 0.02 39);
  --line: oklch(0.79 0.065 38);
  --display: "Bodoni Moda", "Iowan Old Style", "Baskerville", Georgia, serif;
  --sans: "Manrope", "Avenir Next", Avenir, Helvetica, Arial, sans-serif;
  --shadow-dialog: 0 8px 18px oklch(0.17 0.018 30 / 0.12);
  --vny-content-width: 1440px;
  --vny-page-gutter: clamp(24px, 5vw, 76px);
  color: var(--ink);
  background: var(--white);
  font-family: var(--sans);
  font-synthesis: none;
  text-rendering: optimizeLegibility;
  scrollbar-color: var(--rose-deep) var(--rose-pale);
  scrollbar-width: thin;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  min-width: 320px;
  min-height: 100vh;
  background: var(--white);
  -webkit-font-smoothing: antialiased;
}

body::-webkit-scrollbar { width: 12px; }
body::-webkit-scrollbar-track { background: var(--rose-pale); }
body::-webkit-scrollbar-thumb { background: var(--rose-deep); border: 3px solid var(--rose-pale); }
body::-webkit-scrollbar-thumb:hover { background: var(--rose-dark); }

button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible { outline: 2px solid var(--rose-deep); outline-offset: 4px; }
button { cursor: pointer; }
img { display: block; max-width: 100%; }

.site-shell { overflow: hidden; }
.vny-site { max-width: none; width: 100%; }
.vny-page-site,
.vny-global-part {
  margin-inline: 0;
  max-width: none;
  position: relative;
  width: 100%;
}
body.vny-hair-salon-page { overflow-x: clip; }
.vny-global-part {
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  max-width: none !important;
  overflow: visible !important;
  width: 100vw !important;
}
.vny-global-part > .elementor {
  margin-inline: 0 !important;
  max-width: none !important;
  overflow: visible !important;
  width: 100% !important;
}
.vny-elementor-full-width,
.vny-elementor-full-width > .elementor-container {
  margin-inline: 0 !important;
  max-width: none !important;
  padding-inline: 0 !important;
  width: 100% !important;
}
.vny-elementor-column > .elementor-widget-wrap,
.vny-elementor-widget > .elementor-widget-container {
  margin: 0 !important;
  padding: 0 !important;
  width: 100% !important;
}
.page { background: var(--white); }
.page h1, .page h2, .page h3, .page p, .site-footer p { margin-top: 0; }
.page h1, .page h2, .page h3 { font-family: var(--display); font-weight: 400; text-wrap: balance; }
.page p, .site-footer p { line-height: 1.65; }
.page-wrap { margin-inline: auto; max-width: var(--vny-content-width); padding-inline: var(--vny-page-gutter); }

.site-header {
  background: var(--white);
  box-sizing: border-box;
  display: block !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  max-width: none !important;
  padding: 0 !important;
  position: relative !important;
  left: auto !important;
  transform: none !important;
  width: 100% !important;
}
.site-header__inner {
  box-sizing: border-box;
  margin-inline: auto !important;
  max-width: var(--vny-content-width) !important;
  padding: 20px var(--vny-page-gutter) 0 !important;
  width: 100% !important;
}
.site-header__meta { align-items: center; border-bottom: 1px solid var(--line); color: var(--muted); display: flex; font-size: 9px; font-weight: 700; justify-content: space-between; letter-spacing: 0.18em; padding-bottom: 13px; text-transform: uppercase; }
.site-header__meta span:nth-child(2) { color: var(--rose-deep); }
.site-header__main { align-items: center; display: flex; gap: 36px; justify-content: space-between; min-height: 94px; }
.brand-mark { align-items: center; display: inline-flex; flex: 0 0 auto; flex-direction: column; gap: 6px; width: fit-content; }
.brand-mark__letters { color: var(--rose-deep); font-family: var(--display); font-size: 58px; letter-spacing: -0.105em; line-height: 0.72; padding-right: 0.1em; }
.brand-mark__name { color: var(--rose-deep); font-size: 9px; font-weight: 700; letter-spacing: 0.36em; text-transform: uppercase; }
.desktop-nav { align-items: center; display: flex; gap: clamp(20px, 3.5vw, 54px); margin-left: auto; }
.desktop-nav a, .header-contact-link { border-bottom: 1px solid transparent; font-size: 11px; font-weight: 700; letter-spacing: 0.16em; padding: 8px 0; text-transform: uppercase; }
.desktop-nav a:hover, .desktop-nav a[aria-current="page"], .header-contact-link:hover { border-color: var(--rose); color: var(--rose-deep); }
.site-header__actions { align-items: center; display: flex; gap: 22px; }
.header-contact-link { color: var(--rose-deep); }
.mobile-menu { display: none; }

.booking-button { align-items: center; background: var(--rose-deep); border: 1px solid var(--rose-deep); color: var(--white); display: inline-flex; font-size: 10px; font-weight: 700; justify-content: center; letter-spacing: 0.18em; min-height: 54px; padding: 0 26px; text-transform: uppercase; transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease, transform 180ms ease; }
.booking-button:hover { background: var(--rose-dark); border-color: var(--rose-dark); transform: translateY(-2px); }
.booking-button--small { min-height: 42px; padding: 0 19px; }
.site-header .booking-button.booking-button--small {
  appearance: none;
  background-color: var(--rose-deep) !important;
  border: 1px solid var(--rose-deep) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  color: var(--white) !important;
  font-family: var(--sans) !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 0.18em !important;
  line-height: 1 !important;
  min-height: 42px !important;
  padding: 0 19px !important;
  text-decoration: none !important;
  text-transform: uppercase !important;
  width: auto !important;
}
.site-header .booking-button.booking-button--small:hover {
  background-color: var(--rose-dark) !important;
  border-color: var(--rose-dark) !important;
  color: var(--white) !important;
}
.booking-button--outline { background: transparent; border-color: var(--ink); color: var(--ink); min-height: 40px; padding-inline: 20px; }
.booking-button--outline:hover { background: var(--white); border-color: var(--white); color: var(--rose-deep); }
.booking-button--outline-dark { background: transparent; border-color: var(--rose-deep); color: var(--rose-deep); }
.booking-button--outline-dark:hover { background: var(--rose-deep); border-color: var(--rose-deep); color: var(--white); }
.booking-button--footer { margin-top: 18px; min-height: 44px; }
.booking-button--full { margin-top: 28px; width: 100%; }
.text-link { border-bottom: 1px solid var(--rose); color: var(--rose-deep); display: inline-flex; font-size: 10px; font-weight: 700; gap: 10px; letter-spacing: 0.17em; padding-bottom: 5px; text-transform: uppercase; width: fit-content; }
.text-link:hover { border-color: var(--ink); color: var(--ink); }
.kicker, .footer-label { color: var(--rose-deep); font-size: 9px; font-weight: 700; letter-spacing: 0.22em; line-height: 1.5; text-transform: uppercase; }
.section-rule { background: var(--rose); display: block; height: 1px; margin-bottom: 22px; width: 44px; }
.image-caption { bottom: 16px; color: var(--rose-deep); font-size: 9px; font-weight: 700; left: 18px; letter-spacing: 0.16em; position: absolute; text-transform: uppercase; z-index: 1; }
.hero-media-frame { border: 1px solid var(--rose-deep); padding: 5px; position: relative; }
.hero-media-frame img { height: 100%; object-fit: cover; width: 100%; }

/* Home */
.home-hero { padding-bottom: 0; padding-top: clamp(48px, 6vw, 86px); text-align: center; }
.home-hero__topline { align-items: flex-start; display: flex; justify-content: space-between; margin: 0 auto 32px; max-width: 1160px; text-align: left; }
.home-hero__topline p { margin-bottom: 0; }
.hero-note { color: var(--muted); font-size: 10px; font-weight: 700; letter-spacing: 0.14em; line-height: 1.55; text-align: right; text-transform: uppercase; }
.home-hero__heading h1 { font-size: clamp(56px, 7vw, 102px); letter-spacing: -0.035em; line-height: 0.96; margin: 0 auto 24px; max-width: 920px; }
.home-hero__heading h1 em, .page h1 em, .home-cta h2 em { color: var(--rose-deep); font-style: normal; }
.home-hero__heading > p { color: var(--muted); font-size: 14px; margin: 0 auto 44px; max-width: 520px; }
.hero-media-frame { margin-inline: auto; max-width: 1160px; }
.home-hero .hero-media-frame { height: clamp(390px, 46vw, 620px); }
.home-hero .hero-media-frame::after, .page-hero__image::after, .services-hero__image::after, .contact-image::after { border: 1px solid oklch(1 0 0 / 0.72); content: ""; inset: 18px; pointer-events: none; position: absolute; }
.home-hero .hero-media-frame img { object-position: center 44%; }
.ribbon-nav-wrap { margin: -1px auto 0; max-width: 1160px; position: relative; z-index: 1; }
.ribbon-nav { align-items: center; background: var(--rose-deep); display: flex; gap: clamp(22px, 4vw, 66px); justify-content: center; min-height: 70px; padding: 12px 22px; }
.ribbon-nav a { border-bottom: 1px solid transparent; color: var(--white); font-size: 10px; font-weight: 700; letter-spacing: 0.18em; padding: 9px 0; text-transform: uppercase; }
.ribbon-nav a:hover, .ribbon-nav a[aria-current="page"] { border-color: var(--white); color: var(--white); }
.ribbon-nav .booking-button { margin-left: 7px; }
.ribbon-nav .booking-button--outline { border-color: var(--white); color: var(--white); }
.home-intro { align-items: start; display: grid; gap: clamp(40px, 10vw, 150px); grid-template-columns: 1.15fr 0.85fr; padding-bottom: clamp(105px, 13vw, 180px); padding-top: clamp(110px, 14vw, 190px); }
.section-heading h2 { font-size: clamp(42px, 5.5vw, 78px); letter-spacing: -0.03em; line-height: 0.98; margin-bottom: 0; max-width: 720px; }
.section-heading--wide h2 { max-width: 760px; }
.home-intro__copy { align-self: end; max-width: 360px; }
.home-intro__copy p { color: var(--muted); font-size: 14px; margin-bottom: 28px; }
.home-intro__copy p + p { margin-top: -10px; }
.home-services { padding-bottom: clamp(100px, 12vw, 170px); }
.home-services .section-heading { align-items: end; display: flex; gap: 30px; justify-content: space-between; margin-bottom: 54px; }
.home-services .section-heading h2 { font-size: clamp(36px, 4vw, 58px); max-width: 620px; }
.service-list { border-top: 1px solid var(--line); margin-bottom: 30px; }
.service-row { align-items: center; border-bottom: 1px solid var(--line); display: grid; gap: 22px; grid-template-columns: 1.05fr 1.45fr 110px 28px; min-height: 105px; padding: 16px 0; }
.home-services .service-row,
.home-services .service-row:visited,
.home-services .service-row:hover { color: var(--ink) !important; }
.service-row:hover { background: var(--rose-pale); padding-inline: 16px; }
.service-row__title { color: var(--ink) !important; font-family: var(--display); font-size: clamp(28px, 3vw, 46px); letter-spacing: -0.025em; line-height: 1; }
.service-row__description { color: var(--muted); font-size: 12px; line-height: 1.5; max-width: 330px; }
.service-row__duration { color: var(--rose-deep); font-size: 9px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; }
.service-row__arrow { color: var(--rose-deep); font-size: 21px; justify-self: end; }
.home-story { align-items: center; display: grid; gap: clamp(44px, 9vw, 130px); grid-template-columns: 1.1fr 0.9fr; padding-bottom: clamp(110px, 14vw, 190px); }
.home-story__image { height: clamp(420px, 55vw, 720px); overflow: hidden; position: relative; }
.home-story__image img { height: 100%; object-fit: cover; object-position: 62% center; width: 100%; }
.home-story__copy { max-width: 450px; }
.home-story__copy blockquote { font-family: var(--display); font-size: clamp(35px, 4.5vw, 62px); letter-spacing: -0.035em; line-height: 0.98; margin: 28px 0; }
.home-story__copy p { color: var(--muted); font-size: 14px; margin-bottom: 30px; }
.home-cta { align-items: end; background: var(--rose-soft); display: flex; gap: 36px; justify-content: space-between; margin-bottom: 0; padding-bottom: clamp(66px, 7vw, 100px); padding-top: clamp(66px, 7vw, 100px); }
.home-cta h2 { font-size: clamp(44px, 5.5vw, 78px); letter-spacing: -0.035em; line-height: 0.98; margin: 15px 0 0; }
.home-cta > div > p { color: var(--muted); font-size: 14px; margin: 24px 0 0; max-width: 430px; }
.home-cta .booking-button { flex: 0 0 auto; }

/* Inner pages */
.page-hero, .services-hero { align-items: center; display: grid; gap: clamp(50px, 8vw, 120px); grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); padding-bottom: clamp(95px, 12vw, 170px); padding-top: clamp(76px, 9vw, 130px); }
.page-hero__copy, .services-hero__copy { max-width: 550px; }
.page-hero h1, .services-hero h1, .contact-hero h1 { font-size: clamp(55px, 7vw, 102px); letter-spacing: -0.035em; line-height: 0.94; margin: 18px 0 27px; }
.page-hero__copy > p, .services-hero__copy > p { color: var(--muted); font-size: 15px; margin-bottom: 30px; max-width: 430px; }
.page-hero__image { height: clamp(440px, 52vw, 680px); }
.page-hero__image img { object-position: 60% center; }
.about-manifesto { background: var(--rose); display: grid; gap: 30px; grid-template-columns: 0.7fr 1.3fr; max-width: none; padding-bottom: clamp(72px, 9vw, 120px); padding-top: clamp(72px, 9vw, 120px); }
.about-manifesto > p { color: var(--ink); font-family: var(--display); font-size: clamp(38px, 5vw, 74px); letter-spacing: -0.035em; line-height: 0.99; margin: 0; max-width: 520px; }
.about-manifesto__copy { align-self: end; margin: 32px auto 0; max-width: 680px; }
.about-manifesto__copy p { color: var(--ink); font-size: 14px; margin: 0 0 16px; max-width: 560px; }
.about-process { padding-bottom: clamp(110px, 14vw, 190px); padding-top: clamp(110px, 14vw, 190px); }
.about-process .section-heading { display: grid; gap: 34px; grid-template-columns: 0.7fr 1.3fr; margin-bottom: 72px; }
.about-process .section-heading h2 { font-size: clamp(40px, 4.5vw, 66px); }
.about-process__copy { margin-left: auto; max-width: 620px; }
.about-process__copy p { color: var(--muted); font-size: 15px; margin: 0 0 22px; max-width: 560px; }
.process-grid { display: grid; gap: 30px; grid-template-columns: repeat(3, 1fr); }
.process-grid article { border-top: 1px solid var(--rose-deep); padding-top: 20px; }
.process-number { color: var(--rose-deep); font-size: 10px; font-weight: 700; letter-spacing: 0.18em; }
.process-grid h3 { font-size: clamp(32px, 3.4vw, 48px); line-height: 1; margin: 36px 0 18px; }
.process-grid p { color: var(--muted); font-size: 13px; max-width: 260px; }
.about-story { align-items: center; display: grid; gap: clamp(50px, 9vw, 140px); grid-template-columns: 0.82fr 1.18fr; padding-bottom: clamp(100px, 13vw, 180px); }
.about-story__copy { max-width: 420px; }
.about-story__copy h2 { font-size: clamp(42px, 5vw, 70px); letter-spacing: -0.03em; line-height: 0.98; margin: 18px 0 24px; }
.about-story__copy p { color: var(--muted); font-size: 14px; margin-bottom: 30px; }
.about-story__image { height: clamp(420px, 49vw, 640px); overflow: hidden; }
.about-story__image img { height: 100%; object-fit: cover; object-position: 57% center; width: 100%; }
.page-cta { align-items: center; border-top: 1px solid var(--line); display: flex; justify-content: space-between; padding-bottom: 90px; padding-top: 36px; }
.page-cta p { font-family: var(--display); font-size: clamp(30px, 3vw, 48px); }

.services-hero { grid-template-columns: 1.1fr 0.9fr; }
.services-hero__image { height: clamp(420px, 50vw, 650px); }
.services-hero__image img { object-position: 42% center; }
.services-index { padding-bottom: clamp(100px, 13vw, 180px); }
.services-index__heading { align-items: end; display: grid; gap: 40px; grid-template-columns: 1fr 1fr; margin-bottom: 58px; }
.services-index__heading p { color: var(--muted); font-size: 14px; margin: 0; max-width: 330px; }
.service-group + .service-group { margin-top: 78px; }
.service-group__heading { align-items: end; border-bottom: 1px solid var(--line); display: flex; gap: 28px; justify-content: space-between; padding-bottom: 16px; }
.service-group__heading h2 { font-size: clamp(31px, 3.4vw, 52px); line-height: 0.98; margin: 0; max-width: 700px; }
.service-group__heading .kicker { flex: 0 0 auto; }
.service-list--full { margin-bottom: 0; }
.service-row--static { grid-template-columns: 72px 1fr 110px 155px; min-height: 142px; }
.service-row--static:hover { padding-inline: 0; }
.service-row__index { color: var(--rose-deep); font-size: 10px; font-weight: 700; letter-spacing: 0.16em; }
.service-row__main h2, .service-row__main h3 { font-size: clamp(35px, 4vw, 58px); line-height: 0.95; margin: 0 0 12px; }
.service-row__main h3 { font-family: var(--display); font-weight: 400; }
.service-row__main p { color: var(--muted); font-size: 13px; margin: 0; max-width: 420px; }
.service-row__action { background: transparent; border: 0; border-bottom: 1px solid var(--rose); color: var(--rose-deep); font-size: 10px; font-weight: 700; justify-self: end; letter-spacing: 0.15em; padding: 8px 0; text-transform: uppercase; }
.service-row__action:hover { border-color: var(--ink); color: var(--ink); }
.services-note { align-items: center; background: var(--surface-deep); display: grid; gap: 40px; grid-template-columns: 80px 1fr auto; margin-bottom: 0; max-width: none; padding-bottom: 72px; padding-top: 72px; }
.services-note__line { background: var(--rose); height: 1px; width: 52px; }
.services-note p { color: var(--muted); font-size: 13px; margin: 0; max-width: 560px; }
.services-note__copy h2 { font-size: clamp(32px, 3.7vw, 52px); line-height: 0.98; margin: 14px 0 20px; }
.services-note__copy p + p { margin-top: 14px; }
.services-price { padding-bottom: clamp(95px, 12vw, 160px); }
.price-reference { border-top: 1px solid var(--line); display: grid; gap: 0 48px; grid-template-columns: 1fr 1fr; }
.price-reference__row { align-items: baseline; border-bottom: 1px solid var(--line); display: flex; font-family: var(--display); font-size: clamp(20px, 2.2vw, 31px); gap: 18px; justify-content: space-between; padding: 17px 0; }
.price-reference__row strong { color: var(--rose-deep); font-family: var(--sans); font-size: 9px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; white-space: nowrap; }

/* Contact */
.contact-hero { align-items: end; display: grid; gap: 50px; grid-template-columns: 1.15fr 0.85fr; padding-bottom: clamp(90px, 12vw, 160px); padding-top: clamp(80px, 10vw, 140px); }
.contact-hero h1 { margin-bottom: 28px; }
.contact-hero p { color: var(--muted); font-size: 15px; margin: 0; max-width: 470px; }
.contact-hero__details { border-top: 1px solid var(--line); display: flex; flex-direction: column; gap: 8px; justify-self: end; padding-top: 18px; width: min(100%, 320px); }
.contact-hero__details > span { font-size: 11px; font-weight: 700; letter-spacing: 0.15em; text-transform: uppercase; }
.contact-hero__details > a:not(.text-link) { color: var(--rose-deep); font-size: 11px; font-weight: 700; letter-spacing: 0.15em; text-transform: uppercase; }
.contact-hero__details > span:first-child { color: var(--rose-deep); margin-bottom: 8px; }
.contact-hero__details .text-link { margin-top: 28px; }
.contact-actions { display: grid; gap: 8px; grid-template-columns: repeat(3, 1fr); margin-top: 22px; }
.contact-action { border-bottom: 1px solid var(--rose); color: var(--rose-deep); font-size: 9px; font-weight: 700; letter-spacing: 0.11em; padding: 8px 0; text-align: center; text-transform: uppercase; }
.contact-action:hover { border-color: var(--ink); color: var(--ink); }
.contact-body { align-items: start; background: var(--surface); display: grid; gap: clamp(50px, 8vw, 110px); grid-template-columns: 1.05fr 0.95fr; max-width: none; padding-bottom: clamp(85px, 10vw, 140px); padding-top: clamp(85px, 10vw, 140px); }
.contact-form { max-width: 610px; }
.contact-form h2, .contact-form__success h2 { font-size: clamp(40px, 4.5vw, 63px); letter-spacing: -0.03em; line-height: 0.98; margin: 18px 0 34px; }
.contact-form label { color: var(--muted); display: block; font-size: 10px; font-weight: 700; letter-spacing: 0.12em; margin: 22px 0 8px; text-transform: uppercase; }
.contact-form input, .contact-form select, .contact-form textarea { background: var(--white); border: 1px solid var(--line); border-radius: 0; color: var(--ink); min-height: 52px; padding: 0 13px; width: 100%; }
.contact-form textarea { min-height: 128px; padding-block: 13px; resize: none; }
.contact-form input::placeholder, .contact-form textarea::placeholder { color: var(--muted); opacity: 0.88; }
.contact-form__row { display: grid; gap: 24px; grid-template-columns: 1fr 1fr; }
.contact-form__row label { margin-top: 0; }
.form-error { background: var(--rose-pale); border: 1px solid var(--rose); color: var(--rose-dark) !important; font-size: 12px !important; margin: -12px 0 18px !important; padding: 11px 13px; }
.contact-form__success { max-width: 550px; padding-top: 20px; }
.contact-form__success p { color: var(--muted); font-size: 14px; margin-bottom: 28px; max-width: 430px; }
.contact-body__aside { align-self: stretch; display: flex; flex-direction: column; gap: 34px; }
.contact-image { height: clamp(360px, 43vw, 560px); }
.contact-image img { object-position: 65% center; }
.contact-aside__note { border-top: 1px solid var(--line); padding-top: 20px; }
.contact-aside__note h2 { font-size: clamp(32px, 3.8vw, 52px); line-height: 0.98; margin: 16px 0 20px; }
.contact-aside__note p { color: var(--muted); font-size: 13px; margin: 14px 0 20px; max-width: 400px; }
.contact-map { align-items: center; display: grid; gap: clamp(50px, 8vw, 110px); grid-template-columns: 0.7fr 1.3fr; padding-bottom: clamp(85px, 10vw, 140px); padding-top: clamp(85px, 10vw, 140px); }
.contact-map__copy { max-width: 390px; }
.contact-map__copy h2 { font-size: clamp(38px, 4.3vw, 60px); letter-spacing: -0.03em; line-height: 0.98; margin: 18px 0 22px; }
.contact-map__copy p { color: var(--muted); font-size: 14px; margin: 0; }
.contact-map__frame { border: 1px solid var(--rose-deep); padding: 5px; }
.contact-map__frame iframe { border: 0; display: block; filter: saturate(0.65) sepia(0.12); height: clamp(300px, 35vw, 460px); width: 100%; }

/* Footer */
.site-footer { background: var(--ink); box-sizing: border-box; color: var(--white); display: block !important; margin-left: 0 !important; margin-right: 0 !important; max-width: none !important; padding: 0 !important; position: relative !important; left: auto !important; transform: none !important; width: 100% !important; }
.site-footer__inner { box-sizing: border-box; display: grid; gap: 50px 70px; grid-template-columns: 1.2fr 0.7fr 1fr; margin-inline: auto !important; max-width: var(--vny-content-width) !important; padding: 74px var(--vny-page-gutter) 24px !important; width: 100% !important; }
.site-footer .brand-mark__letters, .site-footer .brand-mark__name, .site-footer .footer-label { color: var(--rose); }
.site-footer .brand-mark { align-items: flex-start; }
.site-footer__brand p { color: oklch(0.84 0.02 30); font-family: var(--display); font-size: 24px; margin: 27px 0 0; }
.site-footer__nav, .site-footer__contact { display: flex; flex-direction: column; gap: 10px; }
.site-footer__nav a, .site-footer__contact > span:not(.footer-label) { color: oklch(0.86 0.02 30); font-size: 11px; }
.site-footer__nav a:hover { color: var(--rose); }
.site-footer__contact { justify-self: end; width: min(100%, 320px); }
.site-footer__bottom { border-top: 1px solid oklch(1 0 0 / 0.23); color: oklch(0.71 0.02 30); display: flex; font-size: 9px; grid-column: 1 / -1; justify-content: space-between; letter-spacing: 0.13em; padding-top: 18px; text-transform: uppercase; }
.site-footer .booking-button.booking-button--footer {
  appearance: none;
  background: var(--rose-deep) !important;
  border: 1px solid var(--rose-deep) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  color: var(--white) !important;
  font-family: var(--sans) !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 0.18em !important;
  line-height: 1 !important;
  min-height: 44px !important;
  padding: 0 26px !important;
  text-decoration: none !important;
  text-transform: uppercase !important;
  width: auto !important;
}
.site-footer .booking-button.booking-button--footer:hover {
  background: var(--rose-dark) !important;
  border-color: var(--rose-dark) !important;
  color: var(--white) !important;
}

/* Booking dialog */
.booking-dialog { background: var(--white); border: 1px solid var(--line); box-shadow: var(--shadow-dialog); color: var(--ink); max-width: 550px; padding: 0; width: calc(100% - 36px); }
.booking-dialog::backdrop { background: oklch(0.12 0.02 30 / 0.38); }
.booking-dialog__topline { align-items: center; border-bottom: 1px solid var(--line); color: var(--rose-deep); display: flex; font-size: 9px; font-weight: 700; justify-content: space-between; letter-spacing: 0.18em; padding: 17px 26px; text-transform: uppercase; }
.dialog-close { background: transparent; border: 0; color: var(--muted); font-size: 9px; font-weight: 700; letter-spacing: 0.15em; padding: 6px 0; text-transform: uppercase; }
.dialog-close:hover { color: var(--ink); }
.booking-form, .booking-dialog__success { padding: 36px 38px 40px; }
.dialog-kicker { color: var(--rose-deep); font-size: 9px; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; }
.booking-form h2, .booking-dialog__success h2 { font-family: var(--display); font-size: 52px; font-weight: 400; letter-spacing: -0.03em; line-height: 0.96; margin: 16px 0; }
.booking-form > p:not(.form-error), .booking-dialog__success > p { color: var(--muted); font-size: 14px; margin-bottom: 26px; }
.booking-form label { color: var(--muted); display: block; font-size: 10px; font-weight: 700; letter-spacing: 0.1em; margin: 18px 0 8px; text-transform: uppercase; }
.booking-form input, .booking-form select { background: var(--white); border: 1px solid var(--line); border-radius: 0; color: var(--ink); min-height: 48px; padding: 0 12px; width: 100%; }

.page--not-found { min-height: 60vh; padding-bottom: 120px; padding-top: 130px; }
.page--not-found h1 { font-size: clamp(58px, 7vw, 98px); line-height: 0.95; margin: 20px 0; max-width: 820px; }
.page--not-found p { color: var(--muted); font-size: 15px; }
.not-found__actions { display: flex; flex-wrap: wrap; gap: 18px; margin-top: 32px; }
.page-cta__copy h2 { font-size: clamp(42px, 5vw, 70px); letter-spacing: -0.03em; line-height: 0.98; margin: 16px 0 0; }

@media (max-width: 900px) {
  .site-header__meta span:last-child { display: none; }
  .desktop-nav, .site-header__actions { display: none; }
  .mobile-menu { display: block; margin-left: auto; position: relative; }
  .mobile-menu summary { color: var(--rose-deep); cursor: pointer; font-size: 10px; font-weight: 700; letter-spacing: 0.18em; list-style: none; padding: 12px 0 12px 12px; text-transform: uppercase; }
  .mobile-menu summary::-webkit-details-marker { display: none; }
  .mobile-menu nav { background: var(--white); border: 1px solid var(--line); display: flex; flex-direction: column; gap: 3px; min-width: 185px; padding: 12px 16px 16px; position: absolute; right: 0; top: 45px; z-index: 2; }
  .mobile-menu nav a { font-size: 10px; font-weight: 700; letter-spacing: 0.16em; padding: 8px 0; text-transform: uppercase; }
  .mobile-menu nav a[aria-current="page"] { color: var(--rose-deep); }
  .mobile-menu .booking-button { margin-top: 9px; }
  .home-intro, .home-story, .about-story, .contact-body { gap: 54px; grid-template-columns: 1fr; }
  .home-intro__copy, .about-story__copy { max-width: 560px; }
  .home-story__image { height: min(68vw, 620px); }
  .page-hero, .services-hero { gap: 52px; grid-template-columns: 1fr; }
  .page-hero__copy, .services-hero__copy { max-width: 620px; }
  .page-hero__image, .services-hero__image { height: min(75vw, 650px); }
  .page-hero__image { order: -1; }
  .about-process .section-heading { grid-template-columns: 1fr; }
  .about-manifesto { grid-template-columns: 1fr; }
  .contact-hero { grid-template-columns: 1fr; }
  .contact-hero__details { justify-self: start; width: min(100%, 380px); }
  .contact-body__aside { max-width: 650px; }
  .contact-map { grid-template-columns: 1fr; }
  .contact-map__copy { max-width: 620px; }
  .site-footer__inner { grid-template-columns: 1fr 1fr; }
  .site-footer__contact { justify-self: start; }
  .site-footer__bottom { grid-column: 1 / -1; }
}

@media (max-width: 650px) {
  html { scroll-behavior: auto; }
  .site-header__inner { padding: 14px 16px 0 !important; }
  .site-header__meta { font-size: 7px; letter-spacing: 0.13em; }
  .site-header__main { min-height: 82px; }
  .brand-mark__letters { font-size: 50px; }
  .brand-mark__name { font-size: 8px; letter-spacing: 0.28em; }
  .page-wrap { padding-inline: 18px; }
  .home-hero { padding-top: 52px; }
  .home-hero__topline { align-items: start; flex-direction: column; gap: 18px; }
  .hero-note { text-align: left; }
  .home-hero__heading h1 { font-size: clamp(45px, 13.3vw, 72px); }
  .home-hero__heading > p { font-size: 13px; margin-bottom: 34px; }
  .home-hero .hero-media-frame { height: 87vw; max-height: 560px; }
  .home-hero .hero-media-frame::after, .page-hero__image::after, .services-hero__image::after, .contact-image::after { inset: 12px; }
  .ribbon-nav { flex-wrap: wrap; gap: 2px 20px; padding: 12px 15px; }
  .ribbon-nav a { font-size: 9px; }
  .ribbon-nav .booking-button { flex-basis: 100%; margin: 4px 0 0; }
  .home-intro { padding-bottom: 100px; padding-top: 100px; }
  .section-heading h2 { font-size: clamp(39px, 11vw, 56px); }
  .home-services .section-heading { align-items: start; flex-direction: column; gap: 20px; margin-bottom: 38px; }
  .service-row { gap: 8px; grid-template-columns: 1fr 76px 18px; min-height: 96px; }
  .service-row__title { font-size: 28px; }
  .service-row__description { display: none; }
  .service-row__duration { font-size: 8px; text-align: right; }
  .service-row:hover { padding-inline: 8px; }
  .home-story { padding-bottom: 100px; }
  .home-story__image { height: 112vw; max-height: 520px; }
  .home-story__copy blockquote { font-size: clamp(38px, 11vw, 56px); }
  .home-cta { align-items: start; flex-direction: column; padding-bottom: 68px; padding-top: 68px; }
  .home-cta h2 { font-size: clamp(45px, 12vw, 64px); }
  .page-hero, .services-hero { padding-bottom: 90px; padding-top: 74px; }
  .page-hero h1, .services-hero h1, .contact-hero h1 { font-size: clamp(48px, 13vw, 70px); }
  .page-hero__image, .services-hero__image { height: 105vw; max-height: 560px; }
  .about-manifesto { padding-bottom: 68px; padding-top: 68px; }
  .about-manifesto__copy { margin-top: 4px; }
  .about-manifesto > p { font-size: clamp(38px, 11vw, 58px); }
  .about-manifesto__copy p { font-size: 14px; }
  .about-process { padding-bottom: 100px; padding-top: 100px; }
  .about-process .section-heading { margin-bottom: 52px; }
  .service-group + .service-group { margin-top: 52px; }
  .service-group__heading { align-items: start; flex-direction: column; gap: 14px; }
  .price-reference { grid-template-columns: 1fr; }
  .process-grid { grid-template-columns: 1fr; }
  .process-grid article + article { margin-top: 12px; }
  .process-grid h3 { margin-top: 26px; }
  .about-story { padding-bottom: 92px; }
  .about-story__image { height: 108vw; max-height: 560px; order: -1; }
  .page-cta { align-items: start; flex-direction: column; gap: 20px; padding-bottom: 70px; }
  .services-index { padding-bottom: 90px; }
  .services-index__heading { align-items: start; gap: 20px; grid-template-columns: 1fr; margin-bottom: 40px; }
  .service-row--static { align-items: start; gap: 12px; grid-template-columns: 28px 1fr; min-height: 0; padding: 22px 0; }
  .service-row--static .service-row__main h2, .service-row--static .service-row__main h3 { font-size: 35px; }
  .service-row--static .service-row__duration { grid-column: 2; text-align: left; }
  .service-row__action { grid-column: 2; justify-self: start; }
  .services-note { align-items: start; gap: 22px; grid-template-columns: 1fr; padding-bottom: 64px; padding-top: 64px; }
  .contact-hero { padding-bottom: 90px; padding-top: 74px; }
  .contact-actions { grid-template-columns: 1fr; }
  .contact-body { padding-bottom: 78px; padding-top: 78px; }
  .contact-map { gap: 38px; padding-bottom: 80px; padding-top: 80px; }
  .contact-map__frame iframe { height: 76vw; max-height: 420px; }
  .contact-form__row { grid-template-columns: 1fr; gap: 0; }
  .contact-form h2, .contact-form__success h2 { font-size: clamp(40px, 10.5vw, 57px); }
  .contact-image { height: 104vw; max-height: 520px; }
  .site-footer__inner { gap: 42px 30px; grid-template-columns: 1fr; padding: 62px 18px 22px !important; }
  .site-footer__contact { justify-self: start; }
  .site-footer__bottom { align-items: start; flex-direction: column; gap: 8px; }
  .booking-dialog { width: calc(100% - 22px); }
  .booking-form, .booking-dialog__success { padding: 30px 22px 28px; }
  .booking-form h2, .booking-dialog__success h2 { font-size: 44px; }
}

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

@media (forced-colors: active) {
  .ribbon-nav, .booking-button, .site-footer { forced-color-adjust: none; }
}
