


:root {
  
  --ground:      #e7e2e0;  
  --surface:     #f2efed;  
  --ink:         #72401e;  
  --ink-display: #33191e;  
  --ink-invert:  #ffffff;  
  --band-warm:   #d5cab4;  
  --band-deep:   #c0a486;  
  --ground-dark: #33191e;  
  --rule:        #8b8355;  

  
  
  --chrome-h:  111px;

  --unit:      60px;
  --unit-sm:   30px;
  --page-pad:  64px;
  --cols:      12;
  --gutter:    30px;
  --radius:    0;
  --radius-booking: 12px; 

  
  --speed:      .3s;
  --speed-slow: .6s;
  --ease:       cubic-bezier(.215, .61, .355, 1);
  --ease-expo:  cubic-bezier(.19, 1, .22, 1);

  
  --weight-heading: 400;
  --weight-ui: 500;
  --weight-body: 500;
  --display-lg: clamp(2.5rem, calc(1.75rem + 2.5vw), 4rem); 
  --display-lg-lh: 1.15;
  --display-md: clamp(2rem, calc(1.5rem + 1.6667vw), 3rem); 
  --display-md-lh: 1.2;
  --display-sm: 2rem; 
  --display-sm-lh: 1.25;
  --title-sm: 1.25rem; 
  --title-lh: 1.4;
  --card-title: 1.125rem; 
  --nav-size: clamp(1.5rem, calc(1rem + 1.25vw), 2rem); 
  --menu-link-size: clamp(1.75rem, calc(-.096rem + 2.8846vw), 2.5rem); 
  --body-lead: 1.5rem; 
  --body: 1.25rem; 
  --body-sm: 1.125rem; 
  --caption: 1rem; 
  --body-lh: 1.6;
  --lead-lh: 1.5;
  --compact-lh: 1.5;
  --measure: 68ch;
  --label-xs: .75rem; 
  --label-sm: .75rem; 
  --label-md: .875rem; 
  --label-lg: 1.125rem; 
  --label-lh: 1.4;
  --announcement-trk: .02em; 
  --label-xs-trk: .12em;
  --label-sm-trk: .18em;
  --label-md-trk: .18em;
  --label-lg-trk: .32em;
  --intro-trk: .44em;
  --nav-title-trk: .10em;
  --heading-trk: .08em;
  --statement-trk: .06em;
  --service-title-trk: .08em;

  
  --font-sans:    'Montserrat', system-ui, -apple-system, sans-serif;
  --font-display: 'Montserrat', system-ui, -apple-system, sans-serif;
  --font-body:    'Cormorant Garamond', Georgia, 'Times New Roman', serif;

  
  
  --bp-sm: 375px;
  --bp-md: 768px;
  --bp-lg: 1024px;
  --bp-xl: 1440px;
}


@media (max-width: 1023px) { :root { --page-pad: 40px; } }
@media (max-width: 767px)  { :root { --page-pad: 24px; } }


@media (max-width: 767px) {
  :root {
    --display-sm: 1.5rem; 
    --title-sm: 1.125rem; 
    --body-lead: 1.25rem; 
    --body: 1.125rem; 
    --body-sm: 1rem; 
    --label-lg: 1rem; 
    --label-lg-trk: .24em;
    --intro-trk: .32em;
    --heading-trk: .06em;
    --statement-trk: .045em;
    --service-title-trk: .06em;
    --nav-title-trk: .08em;
  }
}




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

html { -webkit-text-size-adjust: 100%; }

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

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

img, picture, svg { display: block; max-width: 100%; }

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

button { background: none; border: 0; padding: 0; cursor: pointer; }

a { color: inherit; }


* { border-radius: var(--radius); }


:focus-visible {
  outline: 2px solid var(--ink);
  outline-offset: 3px;
}

.visually-hidden {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

.skip-link {
  position: absolute;
  top: 0; left: 0;
  padding: var(--unit-sm);
  background: var(--ink-display);
  color: var(--ink-invert);
  z-index: 100;
  transform: translateY(-120%);
}
.skip-link:focus-visible { transform: translateY(0); }




@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/cormorant-garamond-400-italic-latin-ext.550e19a8a021.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/cormorant-garamond-400-italic-latin.c80b489f34b4.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/cormorant-garamond-500-latin-ext.4760bc6fb6e7.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/cormorant-garamond-500-latin.98d352d9c9f4.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400 500;
  font-display: swap;
  src: url('../fonts/montserrat-400-500-latin-ext.920711de9ae9.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400 500;
  font-display: swap;
  src: url('../fonts/montserrat-400-500-latin.6438d7b8ea9c.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}


body {
  font-family: var(--font-body);
  font-weight: var(--weight-body);
  font-size: var(--body);
  line-height: var(--body-lh);
  letter-spacing: normal;
  font-kerning: normal;
  color: var(--ink);
  background: var(--ground);
}
h1, h2, h3, h4, h5, h6,
.display-sm, .display-md, .display-lg, .nav-title, .service-title,
.arm-menu__name, .arm-soin__name {
  font-family: var(--font-sans);
  font-weight: var(--weight-heading);
  font-style: normal;
  text-transform: uppercase;
  letter-spacing: var(--heading-trk);
  font-kerning: normal;
  text-wrap: balance;
}

h1, .display-md { font-size: var(--display-md); line-height: var(--display-md-lh); }
h2, .display-sm { font-size: var(--display-sm); line-height: var(--display-sm-lh); }
h3, h4, h5, h6, .service-title, .arm-menu__name, .arm-soin__name {
  font-size: var(--title-sm); line-height: var(--title-lh);
}
.display-lg { font-size: var(--display-lg); line-height: var(--display-lg-lh); letter-spacing: var(--statement-trk); }
.nav-title { font-size: var(--nav-size); line-height: var(--title-lh); letter-spacing: var(--nav-title-trk); }

.arm-menu-dialog .nav-title {
  font-family: var(--font-body); font-weight: 400; font-style: italic;
  font-size: var(--menu-link-size); line-height: 1.1;
  text-transform: none; letter-spacing: normal;
}
.service-title, .arm-menu__name, .arm-soin__name { letter-spacing: var(--service-title-trk); }
.arm-needs__name { font-size: var(--card-title); line-height: var(--title-lh); }

button, input, textarea, select, .arm-btn, .arm-link, .skip-link {
  font-family: var(--font-sans);
  font-weight: var(--weight-ui);
}
input, textarea, select { font-size: var(--caption); line-height: var(--compact-lh); }
.label-xs, .label-sm, .label-md, .label-lg {
  font-family: var(--font-sans);
  font-weight: var(--weight-ui);
  font-style: normal;
  text-transform: uppercase;
  line-height: var(--label-lh);
}
.label-xs { font-size: var(--label-xs); letter-spacing: var(--label-xs-trk); }
.label-sm { font-size: var(--label-sm); letter-spacing: var(--label-sm-trk); }
.label-md { font-size: var(--label-md); letter-spacing: var(--label-md-trk); }
.label-lg { font-size: var(--label-lg); letter-spacing: var(--label-lg-trk); }
.arm-announce__item { letter-spacing: var(--announcement-trk); }
.arm-intro__title { letter-spacing: var(--intro-trk); padding-left: var(--intro-trk); }
.body-text { max-width: var(--measure); }
.body-text + .body-text { margin-top: var(--unit-sm); }
.arm-intro__body { font-size: var(--body-lead); line-height: var(--lead-lh); }
.arm-reviews__quote { font-size: var(--body); line-height: var(--body-lh); }
.arm-soin__desc, .arm-footer__body { font-size: var(--body-sm); line-height: var(--body-lh); }
.arm-menu__note, .arm-field__hint, .arm-field__error, .arm-form__note {
  font-family: var(--font-body); font-size: var(--caption); line-height: var(--compact-lh);
}
strong { font-weight: var(--weight-body); color: var(--ink-display); }
em { font-style: italic; font-weight: 400; } 





.shell {
  width: 100%;
  padding-inline: var(--page-pad);
  margin-inline: auto;
  max-width: 1600px;
}



.grid {
  display: grid;
  grid-template-columns: repeat(var(--cols), minmax(0, 1fr));
  gap: var(--gutter);
}
@media (max-width: 1023px) { .grid { grid-template-columns: repeat(6, minmax(0, 1fr)); } }
@media (max-width: 767px)  { .grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--unit-sm); } }


.debug-grid .grid { position: relative; }
.debug-grid .grid::after {
  content: '';
  position: absolute; inset: 0;
  pointer-events: none;
  background: repeating-linear-gradient(
    to right,
    color-mix(in srgb, var(--ink) 8%, transparent) 0,
    color-mix(in srgb, var(--ink) 8%, transparent) calc((100% - (var(--cols) - 1) * var(--gutter)) / var(--cols)),
    transparent 0,
    transparent calc(((100% - (var(--cols) - 1) * var(--gutter)) / var(--cols)) + var(--gutter))
  );
}



.section      { padding-block: var(--unit); }
.section--tall{ padding-block: calc(var(--unit) * 2); }
.section--tight { padding-block: var(--unit-sm); }
.stack > * + * { margin-top: var(--unit-sm); }
.stack--lg > * + * { margin-top: var(--unit); }

@media (max-width: 767px) {
  .section       { padding-block: var(--unit-sm); }
  .section--tall { padding-block: var(--unit); }
}


.band            { background: var(--ground);      color: var(--ink); }
.band--surface   { background: var(--surface);     color: var(--ink); }
.band--sand      { background: var(--band-warm);   color: var(--ink); }


.band--camel     { background: var(--band-deep);   color: var(--ink-display); }

.band--espresso  { background: var(--ground-dark); color: var(--band-warm); }

.band--espresso strong { color: var(--ink-invert); }
.band--espresso .display-sm,
.band--espresso .display-md,
.band--espresso .display-lg { color: var(--ink-invert); }


.band--camel .display-sm,
.band--camel .display-md,
.band--camel .display-lg { color: var(--ink); }


.rule {
  border: 0;
  border-top: 1px solid var(--rule);
  margin: 0;
}
.rule--short { width: 176px; }          
.rule--center { margin-inline: auto; }


.frame {
  position: relative;
  overflow: hidden;
  background: var(--band-warm);   
}
.frame > picture { display: block; width: 100%; height: 100%; }
.frame > img, .frame > picture > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.frame--portrait  { aspect-ratio: 2 / 3; }      
.frame--landscape { aspect-ratio: 1.6 / 1; }    
.frame--wide      { aspect-ratio: 1.75 / 1; }


.center { text-align: center; }
.flow-end { margin-inline-start: auto; }


html { scrollbar-gutter: stable; }





@keyframes reveal      { to { opacity: 1; transform: none; } }
@keyframes reveal-line { to { opacity: 1; transform: none; } }
@keyframes parallax    { to { transform: translateY(6%); } }


@supports (animation-timeline: view()) {
  @media (min-width: 1024px) and (prefers-reduced-motion: no-preference) {

    
    .frame--parallax > img, .frame--parallax > picture > img {
      height: 112%;
      transform: translateY(-6%);
      animation: parallax linear both;
      animation-timeline: view();
      animation-range: cover;
    }
  }
}




@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }
.lenis.lenis-stopped { overflow: hidden; }

@media (min-width: 1024px) and (prefers-reduced-motion: no-preference) {
  .motion-ready .reveal, .motion-ready .stagger > *, .motion-ready .reveal-lines > .line {
    opacity: 0; transform: translateY(60px);
    transition: opacity .8s var(--ease-expo), transform 1s var(--ease-expo);
  }
  .motion-ready .stagger > *, .motion-ready .reveal-lines > .line { transition-delay: calc(var(--i,0) * 75ms); }
  .motion-ready .is-visible, .motion-ready .stagger.is-visible > *, .motion-ready .reveal-lines.is-visible > .line { opacity: 1; transform: none; }
}


@view-transition { navigation: auto; }


@media (min-width: 1024px) {
  .sticky-scene { position: sticky; top: 0; min-height: 100vh; }
}


.snap {
  display: flex;
  gap: var(--gutter);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
}
.snap::-webkit-scrollbar { display: none; }
.snap > * { scroll-snap-align: start; flex: 0 0 auto; }


.arm-announce__item {
  grid-area: 1 / 1;
  opacity: 0;
  animation: announce 18s linear infinite;
  
  animation-delay: calc(var(--i, 0) * 6s - 720ms);
}
.arm-announce__item:first-child { opacity: 1; }



@keyframes announce {
  0%      { opacity: 0; }
  4%      { opacity: 1; }
  33.34%  { opacity: 1; }
  37.34%  { opacity: 0; }
  100%    { opacity: 0; }
}


@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
    scroll-behavior: auto !important;
  }
  .arm-announce__item { animation: none; opacity: 0; }
  .arm-announce__item:first-child { opacity: 1; }
}


@media (min-width: 1024px) and (prefers-reduced-motion: no-preference) {
  .arm-hero__rule,
  .arm-hero__tagline,
  .arm-hero__wordmark {
    opacity: 0;
    animation: reveal var(--speed-slow) var(--ease-expo) both;
    animation-delay: calc(200ms + var(--i, 0) * 80ms);
  }
  .arm-hero__rule { transform: scaleX(0); transform-origin: center; }
  .arm-hero__tagline,
  .arm-hero__wordmark { transform: translateY(24px); }
}





.arm-btn {
  display: inline-block;
  padding: 14px 28px;
  text-decoration: none;
  border: 1px solid currentColor;
  transition: background var(--speed) var(--ease), color var(--speed) var(--ease);
}
.arm-header__cta { border-radius: var(--radius-booking); }
.arm-btn--solid {
  background: var(--ink);
  color: var(--ink-invert);
  border-color: var(--ink);
}
.arm-btn--solid:hover { background: var(--ink-display); border-color: var(--ink-display); }
.arm-btn--ghost { background: transparent; color: inherit; }
.arm-btn--ghost:hover { background: var(--ink-display); color: var(--ink-invert); border-color: var(--ink-display); }

.arm-link {
  display: inline-block;
  text-decoration: none;
  padding-bottom: 4px;
  border-bottom: 1px solid var(--rule);   
  transition: border-color var(--speed) var(--ease);
}
.arm-link:hover { border-bottom-color: currentColor; }


.arm-announce { padding-block: 10px; }
.arm-announce__grid { display: grid; place-items: center; min-height: 18px; }
.arm-announce__item { grid-area: 1 / 1; margin: 0; text-align: center; }
.arm-announce__item a { text-decoration: none; }


.arm-header-slot { position: sticky; top: 0; z-index: 50; }
.arm-header { position: relative; transition: transform .5s cubic-bezier(.645,.045,.355,1); background: var(--ground); border-bottom: 1px solid var(--rule); }
.arm-header__inner { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: var(--unit-sm); min-height: 72px; }
.arm-header__logo { grid-column: 2; grid-row: 1; display: flex; align-items: center; justify-self: center; text-decoration: none; }
.arm-logo-mark { height: 36px; width: auto; display: block; color: var(--ink-display); }
.arm-logo-type { font-family: var(--font-sans); font-weight: var(--weight-ui); font-size: var(--caption); letter-spacing: .42em; text-indent: .42em; color: var(--ink-display); }
.arm-header__actions { grid-column: 3; grid-row: 1; justify-self: end; }
.arm-header__toggle { grid-column: 1; grid-row: 1; justify-self: start; display: flex; align-items: center; gap: 13px; min-height: 44px; }
.arm-header__burger { width: 16px; height: 1px; background: currentColor; position: relative; display: block; }
.arm-header__burger::before, .arm-header__burger::after { content: ''; position: absolute; left: 0; width: 16px; height: 1px; background: currentColor; }
.arm-header__burger::before { top: -4px; }
.arm-header__burger::after { top: 4px; }
body.nav-open { position: fixed; width: 100%; overflow: hidden; }
.arm-header__toggle[hidden], .arm-nav-fallback[hidden] { display: none; }
.arm-nav-fallback { background: var(--ground); padding-block: 12px; }
.arm-nav-fallback summary { cursor: pointer; min-height: 44px; display: flex; align-items: center; }
.arm-nav-fallback nav { display: flex; flex-wrap: wrap; gap: 12px 24px; }
.arm-nav-fallback a { min-height: 44px; display: inline-flex; align-items: center; }
.arm-menu-dialog { position: fixed; inset: 0; margin: 0; padding: 0; border: 0; width: 100vw; max-width: none; height: 100vh; height: 100dvh; max-height: none; overflow: hidden; background: transparent; color: var(--ink); }
.arm-menu-dialog:not([open]) { display: none; }
.arm-menu-dialog[open] { display: grid; grid-template-columns: 60% 40%; }
.arm-menu-dialog::backdrop { background: transparent; }
.arm-menu-dialog__panel {
  position: relative; z-index: 2; min-height: 0; padding: 40px;
  background: var(--surface); overflow-y: auto; overscroll-behavior: contain;
  transform: translateX(-100%); transition: transform 1s cubic-bezier(.4,0,.2,1);
}
.arm-menu-dialog__frame {
  position: relative; display: flex; flex-direction: column; justify-content: center;
  min-height: calc(var(--menu-link-size) * 5.5 + 434px); height: 100%; border: 1.5px solid var(--ink);
  padding-block: 140px 100px;
}
.arm-menu-dialog__ornament { position: absolute; inset: 20px; pointer-events: none; }
.arm-menu-dialog__frieze {
  position: absolute; display: block;
  transition: background-position 1s cubic-bezier(.645,.045,.355,1);
}
.arm-menu-dialog__frieze--top, .arm-menu-dialog__frieze--bottom {
  left: 16px; right: 16px; height: 16px;
  background: url('../svg/menu-border.5799dc3cfb57.svg') repeat-x 0 0 / 64px 16px;
}
.arm-menu-dialog__frieze--top { top: 0; }
.arm-menu-dialog__frieze--bottom { bottom: 0; }
.arm-menu-dialog__frieze--left, .arm-menu-dialog__frieze--right {
  top: 16px; bottom: 16px; width: 16px;
  background: url('../svg/menu-border-vertical.2e42f635b79b.svg') repeat-y 0 0 / 16px 64px;
}
.arm-menu-dialog__frieze--left { left: 0; }
.arm-menu-dialog__frieze--right { right: 0; }
.arm-menu-dialog.is-open .arm-menu-dialog__frieze--top { background-position: -100px 0; }
.arm-menu-dialog.is-open .arm-menu-dialog__frieze--bottom { background-position: 100px 0; }
.arm-menu-dialog.is-open .arm-menu-dialog__frieze--left,
.arm-menu-dialog.is-open .arm-menu-dialog__frieze--right { background-position: 0 100px; }
.arm-menu-dialog__close {
  position: absolute; top: 12px; left: 12px; z-index: 3;
  display: grid; place-items: center; width: 44px; height: 44px;
}
.arm-menu-dialog__close span { font-size: 1.75rem; line-height: 1; }
.arm-menu-dialog__crest { position: absolute; top: 24px; right: 24px; }
.arm-menu-dialog__crest .arm-logo-mark { height: 72px; color: var(--ink); }
.arm-nav__list { border-top: 1.5px solid var(--ink); }
.arm-nav__list li { border-bottom: 1.5px solid var(--ink); }
.arm-nav__list a { display: block; padding: 18px 24px; text-decoration: none; overflow: hidden; }
.arm-nav__label {
  display: flex; align-items: center; gap: 20px; transform: translateY(180%);
  transition: transform .5s var(--ease);
  transition-delay: calc(.875s + var(--i,0) * .075s);
}

.arm-nav__label::after {
  content: ''; width: 32px; height: 24px; flex: 0 0 32px;
  margin-left: auto; background: var(--ink);
  -webkit-mask: url('../svg/menu-emblem.54633565a577.svg') center / contain no-repeat;
  mask: url('../svg/menu-emblem.54633565a577.svg') center / contain no-repeat;
  transform: translateX(-40px) scale(0);
  transition: transform .5s var(--ease); pointer-events: none;
}
.arm-nav__list a:hover .arm-nav__label::after,
.arm-nav__list a:focus-visible .arm-nav__label::after { transform: none; }
.arm-menu-dialog__footer {
  position: absolute; bottom: 0; left: 0; right: 0;
  border-top: 1.5px solid var(--ink); padding: 20px 24px;
}
.arm-menu-dialog__phone {
  display: inline-flex; align-items: center; min-height: 44px; text-decoration: none;
  opacity: 0; transform: translateY(20px);
  transition: opacity .7s cubic-bezier(.33,1,.68,1), transform .7s cubic-bezier(.33,1,.68,1);
  transition-delay: .9s;
}
.arm-menu-dialog__visual { overflow: hidden; background: var(--surface); transform: translateX(-255%); transition: transform 1s cubic-bezier(.4,0,.2,1); }
.arm-menu-dialog__visual img { width: 100%; height: 100%; object-fit: cover; transform: translateX(-10%) scale(1.2); transition: transform 1s var(--ease) .5s; }
.arm-menu-dialog.is-open .arm-menu-dialog__panel, .arm-menu-dialog.is-open .arm-menu-dialog__visual { transform: translateX(0); }
.arm-menu-dialog.is-open .arm-menu-dialog__visual img { transform: translateX(0) scale(1.2); }
.arm-menu-dialog.is-open .arm-nav__label { transform: translateY(0); }
.arm-menu-dialog.is-open .arm-menu-dialog__phone { opacity: 1; transform: none; }
@media (max-width: 1023px) {
  .arm-header__inner { grid-template-columns: auto 1fr auto; gap: 18px; }
  .arm-header__logo { grid-column: 1; justify-self: start; }
  .arm-header__toggle { grid-column: 3; }
  .arm-header__actions { grid-column: 2; }
  .arm-header__cta { padding: 10px 16px; }
  .arm-menu-dialog[open] { grid-template-columns: 1fr; }
  .arm-menu-dialog__visual { display: none; }
  .arm-menu-dialog__panel { padding: 28px; }
  .arm-menu-dialog__frame { min-height: 510px; padding-block: 110px 90px; }
  .arm-menu-dialog__ornament { inset: 12px; }
  .arm-menu-dialog__crest { top: 20px; right: 20px; }
  .arm-menu-dialog__crest .arm-logo-mark { height: 48px; }
  .arm-menu-dialog__footer { padding: 14px 12px; }
  .arm-nav__label::after { width: 28px; height: 20px; flex-basis: 28px; }
  .arm-menu-dialog__close { left: 8px; top: 8px; }
  .arm-nav__list a { padding: 14px 12px; }
  .arm-nav__label { transform: none; transition-delay: 0s; }
}
@media (max-width: 767px) {
  .arm-logo-mark { height: 30px; }
  .arm-nav__label { gap: 6px; } 
}

@media (prefers-reduced-motion: reduce) {
  .arm-menu-dialog__frieze, .arm-menu-dialog__phone, .arm-nav__label,
  .arm-menu-dialog__visual img { transition-delay: 0s; }
}


.arm-hero {
  position: relative;
  height: calc(100vh - var(--chrome-h));
  height: calc(100dvh - var(--chrome-h));
  overflow: hidden;                              
  
  display: grid;
  grid-template-rows: 1fr auto auto;
  justify-items: center;
  align-items: end;
  color: var(--ink-invert);
}
.arm-hero__media { position: absolute; inset: 0; }
.arm-hero__media picture { display: block; width: 100%; height: 100%; }
.arm-menu-dialog__visual picture { display: block; width: 100%; height: 100%; }
.arm-hero__media img {
  width: 100%; height: 100%; object-fit: cover;  
  
  filter: sepia(0.24) saturate(1.12) brightness(0.98);
}
.arm-hero__overlay {                             
  position: absolute; inset: 0;
  background:
    linear-gradient(to bottom,
      transparent 0%,
      transparent 40%,
      color-mix(in srgb, var(--ground-dark) 45%, transparent) 100%),
    linear-gradient(to bottom,
      color-mix(in srgb, var(--band-warm) 14%, transparent),
      color-mix(in srgb, var(--band-deep) 18%, transparent));
}
.arm-hero__content {                             
  grid-row: 2;
  position: relative;
  text-align: center;
  padding-inline: var(--page-pad);
  margin-bottom: var(--unit);
}
.arm-hero__rule { border-top-color: var(--rule); margin-bottom: 24px; }
.arm-hero__tagline { color: var(--ink-invert); text-wrap: balance; }
.arm-hero__wordmark {                            
  grid-row: 3;
  position: relative;
  width: 100%;
  padding: 0 var(--page-pad) var(--unit-sm);
}
.arm-hero__wordmark-svg { width: 100%; height: auto; display: block; }

.arm-hero__wordmark { color: var(--ink-invert); }


.arm-hero--fallback { background: var(--band-warm); color: var(--ink-display); }
.arm-hero--fallback .arm-hero__media,
.arm-hero--fallback .arm-hero__overlay { display: none; }
.arm-hero--fallback .arm-hero__tagline {
  color: var(--ink-display);
  font-size: var(--display-lg);
  line-height: var(--display-lg-lh);
}
.arm-hero--fallback .arm-hero__wordmark { color: var(--ink-display); }


@media (min-width: 1024px) {
  .arm-hero__wordmark { padding: 0; margin-bottom: -4px; }
  .arm-hero__content { margin-bottom: 50px; }
}



.arm-intro-section { padding-block: calc(var(--unit) * 2); scroll-margin-top: calc(var(--unit) + var(--unit-sm)); }
.arm-intro { display: grid; justify-items: center; }
.arm-intro__title { color: var(--ink); }
.arm-intro__rule { width: min(100%, 400px); height: 1px; background: var(--ink); margin-block: var(--unit-sm); }
.arm-intro__copy { width: 100%; max-width: 560px; display: grid; gap: var(--unit-sm); }
.arm-intro__body { text-align: center; }
.arm-intro__body + .arm-intro__body { margin-top: 0; }
@media (max-width: 767px) {
  .arm-intro-section { padding-block: var(--unit); }
}


.arm-cats { display: grid; gap: var(--unit); }
.arm-cat {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--gutter);
  align-items: center;
}

.arm-cat:nth-of-type(even) .arm-cat__media { order: 2; }
.arm-cat__text { display: grid; gap: var(--unit-sm); justify-items: start; }
.arm-cat__title { color: var(--ink-display); }
@media (max-width: 767px) {
  .arm-cat { grid-template-columns: 1fr; }
  .arm-cat:nth-of-type(even) .arm-cat__media { order: 0; }
}


.arm-dip__label { margin-bottom: var(--unit); }
.arm-dip__grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--unit); }
.arm-dip__item { display: grid; gap: var(--unit-sm); justify-items: start; }
.arm-dip__title { color: var(--ink-display); }
.arm-dip__quote { display: none; }
@media (max-width: 767px) { .arm-dip__grid { grid-template-columns: 1fr; } }


.arm-dip--fallback .arm-dip__grid { display: none; }
.arm-dip--fallback .arm-dip__quote {
  display: block;
  color: var(--ink-display);
  max-width: 22ch;
  margin-inline: auto;
}


.arm-menu__label { margin-bottom: var(--unit); }
.arm-menu__list { max-width: 900px; margin-inline: auto; }
.arm-menu__row {
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: var(--unit-sm);
  align-items: baseline;
  padding-block: 18px;
  border-bottom: 1px solid var(--rule);   
}
.arm-menu__name {
  color: var(--ink-display);
}
.arm-menu__note { font-style: normal; }
.arm-menu__dur { white-space: nowrap; }
.arm-menu__price { white-space: nowrap; }
.arm-menu__price--open { font-style: normal; }
.arm-menu__more { margin-top: var(--unit); }
@media (max-width: 767px) {
  .arm-menu__row { grid-template-columns: 1fr auto; row-gap: 4px; }
  .arm-menu__name { grid-column: 1 / -1; }
}


.arm-hammam__inner {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: var(--unit); align-items: center;
}
.arm-hammam__text { display: grid; gap: var(--unit-sm); justify-items: start; }
.arm-hammam__note { }
@media (max-width: 767px) { .arm-hammam__inner { grid-template-columns: 1fr; } }


.arm-needs { overflow: hidden; scroll-margin-top: calc(var(--unit) + var(--unit-sm)); }
.arm-needs__heading { display: grid; justify-items: center; gap: var(--unit-sm); margin-bottom: var(--unit); }
.arm-needs__lotus { width: 36px; color: var(--ink); }
ul.arm-needs__track {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: calc((100% - 3 * var(--gutter)) / 4);
  gap: var(--gutter);
  padding: 6px var(--page-pad);
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  scroll-padding-inline: var(--page-pad);
}
.arm-needs__track { scrollbar-width: thin; scrollbar-color: var(--ink) var(--ground); }
.arm-needs--ready .arm-needs__track { scrollbar-width: none; }
.arm-needs--ready .arm-needs__track::-webkit-scrollbar { display: none; }
.arm-needs__card { min-width: 0; scroll-snap-align: start; }
.arm-needs__link { display: grid; gap: 18px; text-align: center; text-decoration: none; }
.arm-needs__media { aspect-ratio: 324 / 380; }
.arm-needs__name { color: var(--ink); }
.arm-needs__controls { display: flex; justify-content: space-between; align-items: center; gap: var(--unit-sm); margin-top: var(--unit); }
.arm-needs__controls[hidden] { display: none; }
.arm-needs__arrow { display: grid; place-items: center; width: 44px; height: 44px; flex-shrink: 0; background: var(--surface); color: var(--ink); border-radius: 50%; }
.arm-needs__arrow:disabled { opacity: .4; cursor: default; }
.arm-needs__dots { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; }
.arm-needs__dot { display: grid; place-items: center; width: 32px; height: 44px; }
.arm-needs__dot::before { content: ''; width: 8px; height: 8px; border: 1px solid var(--ink); border-radius: 50%; }
.arm-needs__dot[aria-current="true"]::before { background: var(--ink); }
@media (min-width: 1024px) and (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .arm-needs__media img { transition: transform var(--speed-slow) var(--ease); }
  .arm-needs__link:hover img, .arm-needs__link:focus-visible img { transform: scale(1.035); }
}
@media (max-width: 1023px) { ul.arm-needs__track { grid-auto-columns: calc((100% - var(--gutter)) / 2); } }
@media (max-width: 767px) {
  ul.arm-needs__track { grid-auto-columns: 84%; }
  .arm-needs__controls { gap: 10px; margin-top: var(--unit-sm); }
}

.arm-needs--type .arm-needs__media { display: none; }
.arm-needs--type .arm-needs__link { padding: var(--unit-sm); min-height: 220px; align-content: center; }
.arm-needs--type .arm-needs__card:nth-child(odd) .arm-needs__link { background: var(--band-warm); }
.arm-needs--type .arm-needs__card:nth-child(even) .arm-needs__link { background: var(--band-deep); }
.arm-needs--type .arm-needs__card:nth-child(even) .arm-needs__name { color: var(--ink-display); }


.arm-reviews__label { margin-bottom: var(--unit); }
.arm-reviews__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--unit); }
.arm-reviews__item { display: grid; gap: var(--unit-sm); }
.arm-reviews__quote { color: var(--ink-display); }
.arm-reviews__cite { }
.arm-reviews__more { margin-top: var(--unit); }
@media (max-width: 767px) { .arm-reviews__list { grid-template-columns: 1fr; } }




.arm-philo__scene {
  display: grid;
  place-items: center;
  padding-block: var(--unit);
  background: var(--ground-dark);
}

@media (min-width: 1024px) {
  .arm-philo__scene + .arm-philo__scene { border-top: 1px solid var(--rule); }
}
.arm-philo__inner { display: grid; gap: var(--unit-sm); justify-items: center; text-align: center; max-width: 760px; }
.arm-philo__title { color: var(--ink-invert); }
.arm-philo__body { color: var(--band-warm); }
@media (max-width: 1023px) { .arm-philo__scene { min-height: auto; padding-block: var(--unit); } }


.arm-cta { display: grid; }
.arm-cta__title { color: var(--ink); margin-block: 10px 18px; }
.arm-cta__body { margin-inline: auto; }
.arm-cta__actions { display: flex; gap: var(--unit-sm); justify-content: center; flex-wrap: wrap; margin-top: var(--unit-sm); }


.arm-footer { padding-block: var(--unit); }
.arm-footer__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--unit-sm); }
.arm-footer__logo { color: var(--ink-invert); }
.arm-footer__tag { margin-top: 10px; color: var(--band-deep); }
.arm-footer__h { color: var(--band-deep); margin-bottom: 14px; }
.arm-footer__body { font-style: normal; }
.arm-footer__body a { text-decoration: none; }
.arm-footer__body a:hover { text-decoration: underline; }
.arm-footer__map-note { margin-top: 10px; }
.arm-footer__rule { margin-block: var(--unit-sm); border-top-color: var(--rule); }
.arm-footer__base { display: flex; flex-wrap: wrap; gap: var(--unit-sm); justify-content: space-between; align-items: center; }
.arm-footer__legal, .arm-footer__social { display: flex; gap: var(--unit-sm); flex-wrap: wrap; }
.arm-footer__legal a, .arm-footer__social a { text-decoration: none; }
.arm-footer__legal a:hover, .arm-footer__social a:hover { text-decoration: underline; }
@media (max-width: 1023px) { .arm-footer__grid { grid-template-columns: repeat(2, 1fr); row-gap: var(--unit); } }
@media (max-width: 767px)  { .arm-footer__grid { grid-template-columns: 1fr; } }

@media (max-height: 600px) { .arm-menu-dialog__panel { justify-content: flex-start; } }


.arm-header--away { transform: translateY(-100%); }
body.nav-closing .arm-header { transition-delay: .5s; }


.arm-menu__dur, .arm-menu__price, .arm-soin__dur, .arm-soin__price { font-family: var(--font-sans); }





.arm-page-head { padding-block: var(--unit) var(--unit-sm); }
.arm-page-head__inner { display: grid; gap: var(--unit-sm); justify-items: center; text-align: center; }
.arm-page-head__title { color: var(--ink-display); }
.arm-page-head__intro { max-width: 60ch; }


.arm-cat-block { padding-block: var(--unit); border-top: 1px solid var(--rule); }
.arm-cat-block:first-of-type { border-top: 0; }
.arm-cat-block__head { display: flex; align-items: baseline; justify-content: space-between; gap: var(--unit-sm); margin-bottom: var(--unit-sm); flex-wrap: wrap; }
.arm-cat-block__title { color: var(--ink-display); }
.arm-cat-block__note { }
.arm-cat-block__list { max-width: 900px; }
.arm-soin {
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: var(--unit-sm);
  align-items: baseline;
  padding-block: 16px;
  border-bottom: 1px solid var(--rule);
}
.arm-soin__name { color: var(--ink-display); }
.arm-soin__desc { grid-column: 1 / -1; max-width: 62ch; margin-top: 2px; }
.arm-soin__dur, .arm-soin__price { white-space: nowrap; }
.arm-soin__price--open { font-style: normal; }
@media (max-width: 767px) {
  .arm-soin { grid-template-columns: 1fr auto; row-gap: 4px; }
  .arm-soin__name { grid-column: 1 / -1; }
}


.arm-about__grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--unit); align-items: start; }
.arm-about__body { display: grid; gap: var(--unit-sm); }
@media (max-width: 767px) { .arm-about__grid { grid-template-columns: 1fr; } }


.arm-book__paths { display: grid; grid-template-columns: 1fr 1fr; gap: var(--unit); }
.arm-book__path { display: grid; gap: var(--unit-sm); justify-items: start; padding: var(--unit-sm); border: 1px solid var(--rule); }
.arm-book__title { color: var(--ink-display); }
@media (max-width: 767px) { .arm-book__paths { grid-template-columns: 1fr; } }


.arm-book__widget {
  margin-top: var(--unit);
  min-height: 320px;
  display: grid;
  place-items: center;
  text-align: center;
  padding: var(--unit-sm);
  border: 1px dashed var(--rule);
}
.arm-book__widget-note { max-width: 46ch; }


.arm-contact__grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--unit); align-items: start; }
.arm-contact__block { display: grid; gap: var(--unit-sm); }
.arm-contact__h { color: var(--ink-display); }
.arm-contact__list { line-height: var(--body-lh); }
.arm-contact__list a { text-decoration: none; border-bottom: 1px solid var(--rule); }
.arm-contact__map {
  margin-top: var(--unit-sm);
  aspect-ratio: 16 / 10;
  display: grid; place-items: center;
  background: var(--band-warm);
  border: 1px dashed var(--rule);
  text-align: center;
  padding: var(--unit-sm);
}
@media (max-width: 767px) { .arm-contact__grid { grid-template-columns: 1fr; } }

.arm-form { display: grid; gap: var(--unit-sm); }
.arm-field { display: grid; gap: 8px; }
.arm-field__label { color: var(--ink-display); }
.arm-field__req { font-style: normal; text-transform: none; letter-spacing: 0; }
.arm-field input,
.arm-field textarea,
.arm-field select {
  width: 100%;
  padding: 12px 14px;
  background: var(--surface);
  border: 1px solid var(--rule);
  color: var(--ink);
}
.arm-field input:focus-visible,
.arm-field textarea:focus-visible,
.arm-field select:focus-visible { outline: 2px solid var(--ink); outline-offset: 1px; }
.arm-field textarea { min-height: 160px; resize: vertical; }

.arm-field input:user-invalid,
.arm-field textarea:user-invalid { border-color: var(--ink); border-width: 2px; }
.arm-field input:user-invalid + .arm-field__error,
.arm-field textarea:user-invalid + .arm-field__error { display: block; }
.arm-field__error { display: none; color: var(--ink-display); }


.arm-legal { max-width: 70ch; margin-inline: auto; display: grid; gap: var(--unit-sm); }
.arm-legal h2 { color: var(--ink-display); margin-top: var(--unit-sm); }
.arm-legal__placeholder { padding: var(--unit-sm); border: 1px dashed var(--rule); background: var(--surface); }


.arm-404 { min-height: 62vh; display: grid; grid-template-columns: minmax(0, 1fr); place-items: center; text-align: center; }
.arm-404__inner { min-width: 0; display: grid; gap: var(--unit-sm); justify-items: center; }
.arm-404__title { color: var(--ink-display); }


.arm-cat-block[id], .arm-soin[id] { scroll-margin-top: calc(var(--unit) + var(--unit-sm)); }
