@font-face{font-family:Cormorant;src:url('assets/cormorant-500.ttf') format('truetype');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:Manrope;src:url('assets/manrope-400.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Manrope;src:url('assets/manrope-600.ttf') format('truetype');font-weight:600;font-style:normal;font-display:swap}
:root{--bg:#eeedeb;--surface:#e3e2df;--ink:#282a28;--muted:#62645f;--accent:#b39a70;--accent-hover:#c3aa7f;--dark:#282a28;--light:#f4f3f0;--line:#b8b9b3;--gap:24px;--display:Cormorant,Georgia,serif;--text:Manrope,Arial,sans-serif;--small:14px;--body:16px;--head:clamp(38px,4.5vw,60px);--ease:cubic-bezier(.16,1,.3,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--text);font-size:var(--body);line-height:1.65;-webkit-font-smoothing:antialiased}button,a,input,summary{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;border:0}a{color:inherit;text-decoration:none}img{display:block;width:100%;height:100%;object-fit:cover}figure,p,h1,h2,h3{margin:0}h1,h2,h3{font-weight:500}h1,h2{font-family:var(--display);line-height:1.05;letter-spacing:-.03em;text-wrap:balance}h1{font-size:clamp(52px,6.5vw,90px)}h2{font-size:var(--head)}h3{font-family:var(--text);font-size:21px}p{text-wrap:pretty}::selection{background:var(--accent);color:var(--dark)}:focus-visible{outline:3px solid var(--accent);outline-offset:5px}.wrap{width:calc(100% - var(--gap)*2);max-width:1120px;margin-inline:auto}.section-space{margin-top:104px}.button{background:var(--accent);color:var(--dark);display:inline-flex;align-items:center;justify-content:center;min-height:54px;padding:14px 32px;font-weight:600;font-size:16px;line-height:1.4;transition:background .2s,transform .2s var(--ease)}.button:hover{background:var(--accent-hover);transform:translateY(-2px)}.button:active{transform:scale(.98)}.button-outline{border:1px solid var(--ink);background:transparent;font-weight:400}.button-outline:hover{background:var(--surface)}.text-link{display:inline-flex;align-items:center;gap:18px;min-height:44px;font-size:14px}.text-link span{font-size:24px;transition:transform .25s}.text-link:hover span{transform:translate(3px,-3px)}.text-link:hover{color:#786343}.skip-link{position:fixed;top:12px;left:12px;z-index:100;background:var(--accent);color:var(--dark);padding:12px;transform:translateY(-160%)}.skip-link:focus{transform:none}.header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-block:22px;border-bottom:1px solid var(--line)}.brand{font-family:var(--display);font-size:26px;line-height:1.05;white-space:nowrap}.brand span{display:none}.desktop-nav{display:flex;gap:28px;font-size:14px}.desktop-nav a{min-height:44px;display:inline-flex;align-items:center}.desktop-nav a:hover{color:#786343}.header-book{font-size:14px;min-height:46px;padding:12px 24px}.menu-toggle{display:none}.mobile-menu{display:none}.hero-title{text-align:center;margin-block:45px 32px}.hero-title p{font-size:16px;margin-top:18px}.hero-media{display:grid;grid-template-columns:1.5fr 1fr;gap:18px;height:480px}.hero-photo{position:relative;overflow:clip}.hero-photo>img:first-child{object-position:50% 53%}.hero-salon{overflow:clip}.hero-salon img{object-position:50% 56%}.hero-actions{display:grid;grid-template-columns:1fr 1fr;gap:14px;max-width:740px;margin:28px auto 0}.hero-intro{max-width:50ch;margin:24px auto 0;text-align:center}.hero-intro p{font-size:16px}.photo-open{display:block;background:transparent;width:100%;height:100%;padding:0;overflow:clip}.photo-open img{transition:transform .9s var(--ease)}.photo-open:hover img{transform:scale(1.045)}figcaption{font-size:14px;color:var(--muted);line-height:1.5;margin-top:12px}.services{display:grid;grid-template-columns:260px 1fr;gap:70px;align-items:start}.service-intro>p{max-width:25ch;margin-top:24px}.service-intro>.text-link{margin-top:14px}.service-intro>img{width:100%;height:340px;margin-top:30px;object-position:50% 55%}.category-controls{display:flex;flex-wrap:wrap;gap:10px 22px;margin-bottom:28px}.category{background:transparent;color:var(--muted);min-height:44px;padding:10px 0;font-size:14px;border-bottom:2px solid transparent;transition:color .2s,border-color .2s}.category.active{color:var(--ink);border-bottom-color:var(--accent);font-weight:600}.category:hover{color:var(--ink)}.price-group h3{font-size:21px;margin-bottom:16px}.price-group+.price-group{margin-top:42px}.price-row{width:100%;display:flex;align-items:flex-start;justify-content:space-between;gap:28px;background:transparent;text-align:left;border-bottom:1px solid var(--line);padding:19px 0;line-height:1.55;transition:background .2s}.price-row:hover{background:var(--surface)}.price-description{max-width:42ch}.price-description small{display:block;font-size:14px;color:var(--muted);margin-top:8px;line-height:1.6;max-width:37ch}.price-value{display:flex;gap:12px;white-space:nowrap;font-variant-numeric:tabular-nums}.choose-mark{color:#786343;opacity:0;transition:opacity .2s}.price-row:hover .choose-mark,.price-row:focus-visible .choose-mark{opacity:1}.price-hint{color:var(--muted);font-size:14px;margin-top:24px}.salon-heading{display:flex;justify-content:space-between;gap:48px;align-items:flex-start}.salon-heading h2{max-width:10ch}.salon-heading p{max-width:42ch;padding-top:6px}.salon-photos{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:32px}.salon-main,.salon-small{height:540px}.salon-main .photo-open,.salon-small .photo-open{height:calc(100% - 36px)}.salon-main img{object-position:50% 52%}.salon-small img{object-position:50% 52%}.faq{display:grid;grid-template-columns:.8fr 1fr;gap:70px;align-items:center}.faq-photo{height:510px;overflow:clip}.faq-photo img{object-position:45% 60%}.faq-content h2{margin-bottom:32px}.faq-content details{border-bottom:1px solid var(--line)}.faq-content summary{min-height:68px;display:flex;align-items:center;justify-content:space-between;gap:20px;list-style:none;cursor:pointer;font-size:16px}summary::-webkit-details-marker{display:none}.faq-content summary span{font-size:26px;transition:transform .3s;color:#786343}.faq-content details[open] summary span{transform:rotate(45deg)}.faq-content details p{color:var(--muted);font-size:16px;padding:0 20px 24px 0}.faq-content details a{color:var(--ink);white-space:nowrap}.contacts{background:var(--dark);color:var(--light);padding:56px 48px;max-width:1168px;width:calc(100% - 24px)}.contact-top{display:flex;gap:40px;align-items:center;justify-content:space-between}.contact-top h2{max-width:11ch}.contact-top p{max-width:29ch;color:#d0d0c9}.contact-phone{display:block;font-family:var(--display);font-size:clamp(50px,7.6vw,100px);line-height:1.25;letter-spacing:-.03em;white-space:nowrap;margin-block:38px}.contact-phone:hover{color:var(--accent-hover)}.contact-bottom{display:flex;align-items:center;justify-content:space-between;gap:28px}.contact-bottom>span{font-size:14px;color:#d0d0c9}.contact-actions{display:flex;align-items:center;gap:28px}.contact-actions .text-link{color:var(--light)}.footer{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-block:24px;font-size:14px}.footer a{display:inline-flex;align-items:center;min-height:44px}.footer a:hover{color:#786343}.mobile-booking{display:none}dialog{background:var(--bg);color:var(--ink);border:0;width:490px;max-width:calc(100vw - 32px);padding:52px 40px 36px;box-shadow:0 24px 80px #0005}dialog::backdrop{background:#282a28bf}dialog h2{font-size:42px;line-height:1.1;margin-bottom:24px}dialog>p{color:var(--muted)}.dialog-close{position:absolute;right:10px;top:8px;background:transparent;display:grid;place-items:center;width:44px;height:44px;font-size:32px;line-height:1;transition:transform .25s}.dialog-close:hover{transform:rotate(90deg)}.booking-number{display:block;font-size:26px;letter-spacing:-.03em;margin-block:30px}.selected-service{background:var(--surface);padding:20px;margin-top:24px}.selected-service>span{font-size:14px;color:var(--muted)}.selected-service>p{line-height:1.5;margin-block:8px}.selected-service strong{font-weight:600}#booking-dialog>.button{width:100%}#booking-dialog>.text-link{margin-top:18px}.photo-dialog{width:min(760px,calc(100vw - 24px));max-height:94svh;padding:48px 16px 16px;background:var(--bg)}.photo-dialog img{height:min(74svh,900px);object-fit:contain}.photo-dialog p{text-align:center;font-size:14px;margin-top:12px}body.dialog-open{overflow:hidden}[hidden]{display:none!important}
@media(max-width:1000px){.services{grid-template-columns:220px 1fr;gap:40px}.desktop-nav{gap:20px}.hero-media{height:430px}.faq{gap:40px}.salon-main,.salon-small{height:480px}.choose-mark{display:none}.contacts{padding:48px 32px}.contact-actions{gap:20px}}
@media(max-width:800px){.desktop-nav{display:none}.header-book{margin-left:auto}.menu-toggle{display:flex;align-items:center;gap:12px;min-height:44px;background:transparent;padding:10px 0;font-size:14px}.menu-icon{width:20px;height:12px;border-block:2px solid var(--ink)}.mobile-menu:not([hidden]){display:flex;flex-direction:column;position:absolute;z-index:10;top:90px;left:var(--gap);right:var(--gap);background:var(--surface);padding:20px 24px;box-shadow:0 14px 35px #0002}.mobile-menu a{padding:13px 0}.hero-title{margin-top:32px}.hero-media{height:400px}.section-space{margin-top:80px}.services{display:block}.service-intro{display:grid;grid-template-columns:1fr 1fr;gap:14px 35px;margin-bottom:32px}.service-intro>h2{grid-row:1/3}.service-intro>p{margin-top:0;max-width:34ch}.service-intro>.text-link{margin-top:0}.service-intro>img{display:none}.salon-heading{gap:30px}.salon-main,.salon-small{height:410px}.faq{gap:35px}.faq-photo{height:470px}.faq-content h2{font-size:42px}.contact-top{align-items:flex-start}.contact-phone{font-size:8.3vw}.contact-bottom{align-items:flex-start}.contact-actions{align-items:flex-start;flex-direction:column;gap:10px}}
@media(max-width:600px){:root{--gap:20px;--head:40px}.wrap{max-width:480px}.header{padding-block:12px;gap:20px}.brand{font-size:24px}.header-book{display:none}.menu-toggle{margin-left:auto}.hero-title{margin-block:28px 24px}.hero-title h1{font-size:clamp(40px,12.5vw,58px);line-height:1.05;letter-spacing:-.04em;white-space:nowrap}.hero-title p{font-size:14px;margin-top:12px}.hero-media{display:block;height:auto}.hero-photo{aspect-ratio:1.12}.hero-salon{display:none}.hero-photo>img:first-child{object-position:50% 54%}.hero-actions{grid-template-columns:1fr;gap:10px;margin-top:20px}.hero-actions .button{width:100%;min-height:50px;font-size:15px}.hero-intro{margin-top:20px;max-width:34ch}.hero-intro p{font-size:15px;line-height:1.6}.section-space{margin-top:64px}.service-intro{display:block;margin-bottom:24px}.service-intro h2{font-size:40px}.service-intro>p{font-size:15px;max-width:33ch;margin-top:20px}.service-intro>.text-link{margin-top:8px}.category-controls{gap:2px 18px;margin-bottom:24px}.category{font-size:14px;padding-block:10px}.price-group h3{font-size:20px;margin-bottom:10px}.price-row{font-size:15px;gap:18px;padding:17px 0;line-height:1.6}.price-value{font-size:15px;min-width:66px;justify-content:flex-end}.price-description small{font-size:14px}.price-group+.price-group{margin-top:36px}.price-hint{font-size:13px;max-width:32ch;margin-top:20px}.salon-heading{display:block}.salon-heading h2{max-width:none;font-size:40px}.salon-heading p{font-size:15px;max-width:34ch;margin-top:20px;padding-top:0}.salon-photos{gap:12px;margin-top:24px}.salon-main,.salon-small{height:310px}.salon-main .photo-open,.salon-small .photo-open{height:270px}.salon-photos figcaption{font-size:13px;margin-top:9px}.faq{display:block}.faq-photo{display:none}.faq-content h2{font-size:40px;margin-bottom:24px}.faq-content summary{min-height:66px;font-size:15px}.faq-content details p{font-size:15px}.contacts{max-width:520px;width:100%;padding:36px 20px;margin-top:64px}.contact-top{display:block}.contact-top h2{max-width:none;font-size:40px}.contact-top p{max-width:31ch;font-size:15px;margin-top:20px}.contact-phone{font-size:10.2vw;line-height:1.2;margin-block:28px;white-space:nowrap}.contact-bottom{display:block}.contact-bottom>span{font-size:13px}.contact-actions{display:grid;grid-template-columns:1fr;gap:10px;margin-top:28px}.contact-actions .button{width:100%}.contact-actions .text-link{justify-content:center;border:1px solid #9a9b94;min-height:50px;color:var(--light)}.contact-actions .text-link span{display:none}.footer{display:grid;grid-template-columns:1fr auto;gap:4px 20px;padding-block:20px 112px;font-size:13px}.footer p{order:1}.footer a[href="#"]{order:2;justify-self:end}.footer a[href="#services"]{order:3}.footer span{order:4;justify-self:end}.mobile-booking{position:fixed;bottom:0;left:0;right:0;z-index:20;background:var(--bg);border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px var(--gap) calc(10px + env(safe-area-inset-bottom))}.mobile-phone{font-size:13px;white-space:nowrap}.mobile-booking .button{font-size:14px;min-height:46px;padding-inline:20px}.dialog-open .mobile-booking{visibility:hidden}dialog{padding:52px 24px 28px}dialog h2{font-size:36px}.booking-number{font-size:25px}.photo-dialog{padding:50px 12px 16px}.photo-dialog img{height:70svh}}
@media(max-width:359px){:root{--gap:16px}.brand{font-size:22px}.mobile-phone{font-size:12px}.mobile-booking .button{padding-inline:14px}.salon-main,.salon-small{height:265px}.salon-main .photo-open,.salon-small .photo-open{height:225px}.service-intro h2,.salon-heading h2,.faq-content h2,.contact-top h2{font-size:36px}}
@media(prefers-reduced-motion:no-preference){.hero-title h1{animation:title-arrive .8s var(--ease) both}.hero-title>p{animation:text-arrive .8s .08s var(--ease) both}.hero-photo{animation:photo-arrive 1.1s .05s var(--ease) both}.hero-salon{animation:photo-arrive 1.1s .15s var(--ease) both}.hero-actions{animation:text-arrive .8s .2s var(--ease) both}.hero-photo>img:first-child{animation:photo-breathe 18s ease-in-out infinite alternate}.arrive-text{animation:text-arrive .8s var(--delay,0ms) var(--ease) backwards}.arrive-image{animation:photo-arrive 1s var(--delay,0ms) var(--ease) backwards}.arrive-row{animation:row-arrive .7s var(--delay,0ms) var(--ease) backwards}dialog[open]{animation:dialog-arrive .28s var(--ease) both}@keyframes title-arrive{from{opacity:.3;transform:translateY(16px)}to{opacity:1;transform:none}}@keyframes text-arrive{from{opacity:.25;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes photo-arrive{from{opacity:.35;transform:translateY(16px) scale(.99)}to{opacity:1;transform:none}}@keyframes row-arrive{from{opacity:.3;transform:translateX(10px)}to{opacity:1;transform:none}}@keyframes photo-breathe{from{transform:scale(1)}to{transform:scale(1.035)}}@keyframes dialog-arrive{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}}
.tab-hidden .hero-photo>img{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
.hero-media>div{min-height:0;min-width:0;height:100%}
@media(max-width:600px){.hero-media>.hero-photo{height:auto}}
.services>*{min-width:0}
.salon-photos{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.faq{grid-template-columns:minmax(0,.8fr) minmax(0,1fr)}
@media(max-width:600px){.contacts{width:100%;max-width:none}}
.price-booking{margin-top:24px;min-width:260px}
@media(max-width:600px){.price-booking{width:100%}.footer{padding-bottom:24px}}
@media(max-width:600px){.salon.section-space{margin-top:84px}}

.hero-media {
  width: min(100%, 830px);
  margin-inline: auto;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  height: auto;
}

.hero-media > .hero-photo,
.hero-media > .hero-salon {
  height: auto;
  aspect-ratio: 3 / 4;
}

.hero-media .hero-photo > img:first-child {
  object-fit: contain;
  object-position: center;
  animation: none;
}

.studio-photo {
  min-width: 0;
  aspect-ratio: 1;
}

.studio-photo img {
  object-position: 50% 60%;
}

.contact-links,
.booking-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 20px;
}

.booking-links {
  margin-top: 12px;
}

.faq-content details a[href^="https://"] {
  text-decoration: underline;
  text-underline-offset: 3px;
}

@media (max-width: 600px) {
  .studio-photo {
    aspect-ratio: 3 / 4;
  }

  .contact-links {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
  }
}

.work-gallery-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 24px;
}

.work-gallery-controls {
  display: flex;
  flex-shrink: 0;
  gap: 8px;
}

.work-gallery-arrow {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid var(--ink);
  background: transparent;
  font-size: 22px;
  line-height: 1;
  transition: background .2s, border-color .2s;
}

.work-gallery-arrow:not([aria-disabled="true"]):hover {
  border-color: var(--accent);
  background: var(--accent);
}

.work-gallery-arrow[aria-disabled="true"] {
  border-color: var(--line);
  color: var(--muted);
  opacity: .55;
  cursor: default;
}

.work-track {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: calc((100% - 54px) / 4);
  gap: 18px;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scroll-snap-type: x mandatory;
  scrollbar-width: thin;
  scrollbar-color: var(--line) transparent;
}

.work-slide {
  min-width: 0;
  scroll-snap-align: start;
}

.work-slide .photo-open {
  height: auto;
  aspect-ratio: 4 / 5;
}

.work-slide .photo-open:focus-visible {
  position: relative;
  outline-offset: -4px;
}

.work-slide-wide img {
  object-position: 45.5% center;
}

@media (max-width: 1000px) {
  .work-track {
    grid-auto-columns: calc((100% - 36px) / 3);
  }
}

@media (max-width: 600px) {
  .work-gallery-heading {
    margin-bottom: 18px;
  }

  .work-gallery-heading h2 {
    font-size: 40px;
  }

  .work-track {
    grid-auto-columns: calc(100% - 42px);
    gap: 12px;
    scrollbar-width: none;
  }
}

@media (max-width: 359px) {
  .work-gallery-heading h2 {
    font-size: 36px;
  }
}

@media (hover: none), (prefers-reduced-motion: reduce) {
  .work-slide .photo-open:hover img {
    transform: none;
  }
}
