@charset "utf-8";

:root {
  --salon-serif: "Times New Roman", "Yu Mincho", "Hiragino Mincho ProN", serif;
  --salon-sans: "Yu Gothic Medium", "Yu Gothic", "Hiragino Kaku Gothic ProN", sans-serif;
  --p1-navy: #031028;
  --p1-blue: #214b7d;
  --p1-pale-blue: #dfe5ec;
  --p1-gold: #cdb226;
  --p1-beige: #f6f4f0;
  --p1-header-height: 80px;
}

html {
  scroll-behavior: smooth;
}

body.salon-site {
  width: 100%;
  margin: 0;
  overflow-x: hidden;
  background: #fff;
  color: var(--p1-navy);
  font-family: var(--salon-sans);
  font-size: 14px;
  line-height: 1.8;
  letter-spacing: .02em;
  -webkit-font-smoothing: antialiased;
}

body.salon-site *,
body.salon-site *::before,
body.salon-site *::after {
  box-sizing: border-box;
}

body.salon-site :where(h1, h2, h3, p, ul, ol, figure) {
  margin: 0;
}

body.salon-site :where(ul, ol) {
  padding: 0;
  list-style: none;
}

body.salon-site :where(a) {
  color: inherit;
  text-decoration: none;
}

body.salon-site :where(img, svg, video) {
  display: block;
  max-width: 100%;
  height: auto;
}

body.salon-site :where(button, input, textarea, select) {
  font: inherit;
}

.salon-skip-link {
  position: fixed;
  z-index: 100000;
  top: 10px;
  left: 10px;
  padding: 10px 16px;
  background: #fff;
  color: #111;
  transform: translateY(-160%);
}

.salon-skip-link:focus {
  transform: none;
}

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

.p1-loading {
  position: fixed;
  z-index: 99999;
  inset: 0;
  display: none;
  place-items: center;
  overflow: hidden;
  background: var(--salon-green-dark, #365244);
  opacity: 1;
  pointer-events: auto;
  visibility: visible;
}

html.salon-opening-pending {
  overflow: hidden;
  animation: p1-opening-unlock 0s linear 3s forwards;
}

html.salon-opening-pending .p1-loading {
  display: grid;
  animation: p1-opening-fallback .4s ease 2.55s forwards;
}

.p1-loading__light {
  position: absolute;
  top: 50%;
  left: 50%;
  width: min(320px, 76vw);
  height: 150px;
  transform: translate(-50%, -62%);
}

.p1-loading__trail,
.p1-loading__trail::before {
  position: absolute;
  top: 52px;
  left: 50%;
  width: 116px;
  height: 48px;
  border-top: 1px solid rgba(205, 187, 146, .78);
  border-radius: 50%;
  content: "";
  opacity: 0;
  transform: translateX(-98%) rotate(-13deg) scaleX(.35);
  transform-origin: right center;
}

.p1-loading__trail::before {
  top: -20px;
  width: 92px;
  height: 42px;
  transform: translateX(32%) rotate(28deg) scaleX(.55);
}

html.salon-opening-pending .p1-loading__trail {
  animation: p1-opening-trail 1.05s cubic-bezier(.3, .7, .3, 1) .16s both;
}

html.salon-opening-pending .p1-loading__trail::before {
  animation: p1-opening-wing .9s ease .34s both;
}

.p1-loading__particle {
  position: absolute;
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: var(--salon-champagne, #cdbb92);
  box-shadow: 0 0 7px rgba(205, 187, 146, .34);
  opacity: 0;
}

.p1-loading__particle--1 { top: 51px; left: 28%; }
.p1-loading__particle--2 { top: 31px; left: 43%; width: 2px; height: 2px; }
.p1-loading__particle--3 { top: 63px; left: 61%; }
.p1-loading__particle--4 { top: 42px; left: 72%; width: 2px; height: 2px; }

html.salon-opening-pending .p1-loading__particle--1 { animation: p1-opening-particle .92s ease .2s both; }
html.salon-opening-pending .p1-loading__particle--2 { animation: p1-opening-particle .86s ease .38s both; }
html.salon-opening-pending .p1-loading__particle--3 { animation: p1-opening-particle .94s ease .52s both; }
html.salon-opening-pending .p1-loading__particle--4 { animation: p1-opening-particle .82s ease .66s both; }

.p1-loading__mark {
  position: relative;
  z-index: 2;
  display: grid;
  justify-items: center;
  color: #fff;
  opacity: 0;
  text-align: center;
  transform: translateY(8px);
}

.p1-loading__mark span {
  font-family: var(--salon-serif);
  font-size: clamp(30px, 4vw, 50px);
  line-height: 1.15;
  letter-spacing: .07em;
}

.p1-loading__mark small {
  margin-top: 14px;
  color: var(--salon-champagne, #cdbb92);
  font-size: clamp(7px, .75vw, 10px);
  letter-spacing: .24em;
}

html.salon-opening-pending .p1-loading__mark {
  animation: p1-opening-mark .82s ease .78s both;
}

.p1-loading.is-finished {
  pointer-events: none;
  animation: p1-opening-finish .4s ease forwards !important;
}

@keyframes p1-opening-trail {
  0% { opacity: 0; transform: translateX(-110%) rotate(-13deg) scaleX(.2); }
  42% { opacity: .9; }
  100% { opacity: .16; transform: translateX(-22%) rotate(5deg) scaleX(1); }
}

@keyframes p1-opening-wing {
  0% { opacity: 0; transform: translateX(22%) rotate(34deg) scaleX(.3); }
  55% { opacity: .72; }
  100% { opacity: .12; transform: translateX(48%) rotate(18deg) scaleX(1); }
}

@keyframes p1-opening-particle {
  0% { opacity: 0; transform: translate(-14px, 10px) scale(.4); }
  48% { opacity: .88; }
  100% { opacity: .18; transform: translate(18px, -8px) scale(1); }
}

@keyframes p1-opening-mark {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: none; }
}

@keyframes p1-opening-finish {
  to { opacity: 0; visibility: hidden; }
}

@keyframes p1-opening-fallback {
  to { opacity: 0; visibility: hidden; }
}

@keyframes p1-opening-unlock {
  to { overflow: auto; }
}

.p1-header {
  position: fixed;
  z-index: 999;
  top: 0;
  left: 0;
  width: 100%;
  height: var(--p1-header-height);
  border-bottom: 1px solid rgba(3, 16, 40, .05);
  background: rgba(255, 255, 255, .94);
  -webkit-backdrop-filter: blur(7px);
  backdrop-filter: blur(7px);
  letter-spacing: .05em;
  transition: transform 1s cubic-bezier(.4, 0, .2, 1), background-color 1s cubic-bezier(.4, 0, .2, 1), box-shadow .3s ease;
}

.admin-bar .p1-header {
  top: 32px;
}

.p1-header.is-scrolled {
  background: rgba(255, 255, 255, .97);
  box-shadow: 0 2px 14px rgba(3, 16, 40, .04);
}

.p1-header.is-hidden {
  transform: translateY(-100%);
}

.p1-header__inner {
  display: flex;
  width: 100%;
  max-width: 1280px;
  height: var(--p1-header-height);
  align-items: center;
  margin: 0 auto;
  padding-left: 20px;
}

.p1-brand {
  display: flex;
  flex: 0 0 auto;
  width: 190px;
  height: 48px;
  flex-direction: column;
  justify-content: center;
  margin-right: 28px;
  color: var(--p1-gold);
  line-height: 1;
}

.p1-brand__eyebrow {
  margin-bottom: 4px;
  font-size: 7px;
  letter-spacing: .17em;
  white-space: nowrap;
}

.p1-brand__name {
  font-family: var(--salon-serif);
  font-size: 27px;
  letter-spacing: .06em;
  white-space: nowrap;
}

.p1-header__guide {
  display: flex;
  width: 205px;
  flex: 0 0 205px;
  flex-direction: column;
  justify-content: center;
  color: var(--p1-blue);
  font-size: 11px;
  line-height: 1.45;
}

.p1-header__guide small {
  width: max-content;
  margin-top: 3px;
  padding: 3px 12px;
  background: var(--p1-pale-blue);
  font-size: 10px;
}

.p1-global-nav {
  display: flex;
  min-width: 0;
  flex: 1 1 auto;
  justify-content: flex-end;
}

.p1-global-nav ul {
  display: flex;
  align-items: stretch;
}

.p1-global-nav li {
  display: flex;
  align-items: center;
  padding: 0 11px;
}

.p1-global-nav a {
  display: flex;
  flex-direction: column;
  align-items: center;
  font-family: var(--salon-serif);
  font-size: 13px;
  line-height: 1.45;
  white-space: nowrap;
  transition: color .25s ease;
}

.p1-global-nav a small {
  color: #40648f;
  font-family: var(--salon-sans);
  font-size: 9px;
  letter-spacing: 0;
}

.p1-global-nav a:hover,
.p1-global-nav a:focus-visible {
  color: var(--p1-gold);
}

.p1-global-nav > ul > li {
  position: relative;
}

.p1-global-nav__submenu {
  position: absolute;
  z-index: 10;
  top: 100%;
  left: 50%;
  display: flex;
  width: 250px;
  flex-direction: column;
  align-items: stretch;
  padding: 10px;
  border: 1px solid rgba(205, 187, 146, .28);
  background: rgba(248, 246, 241, .98);
  box-shadow: 0 14px 30px rgba(43, 43, 43, .1);
  opacity: 0;
  visibility: hidden;
  transform: translate(-50%, 8px);
  transition: opacity .22s ease, visibility .22s ease, transform .22s ease;
  pointer-events: none;
}

.p1-global-nav__submenu li {
  display: block;
  width: 100%;
  padding: 0;
}

.p1-global-nav__submenu a {
  width: 100%;
  min-height: 58px;
  align-items: flex-start;
  justify-content: center;
  padding: 8px 14px;
  border-bottom: 1px solid rgba(54, 82, 68, .1);
}

.p1-global-nav__submenu li:last-child a {
  border-bottom: 0;
}

.p1-global-nav__submenu a small {
  margin-top: 2px;
}

.p1-global-nav__item--has-children:hover > .p1-global-nav__submenu,
.p1-global-nav__item--has-children:focus-within > .p1-global-nav__submenu {
  opacity: 1;
  visibility: visible;
  transform: translate(-50%, 0);
  pointer-events: auto;
}

.p1-global-nav__submenu a:focus-visible,
.p1-mobile-nav a:focus-visible {
  outline: 2px solid var(--p1-gold);
  outline-offset: -3px;
}

.p1-header__cta {
  display: flex;
  width: 132px;
  height: 44px;
  flex: 0 0 132px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  margin-left: 10px;
  outline: 1px solid #fff;
  outline-offset: -3px;
  background: var(--p1-blue);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.2;
  transition: background-color .25s ease;
}

.p1-header__cta small {
  font-family: var(--salon-serif);
  font-size: 8px;
  font-weight: 400;
}

.p1-header__cta-label--sp {
  display: none;
}

.p1-header__cta:hover,
.p1-header__cta:focus-visible {
  background: #16385f;
}

.p1-menu-toggle,
.p1-mobile-nav {
  display: none;
}

.p1-menu-toggle {
  width: 44px;
  height: 60px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--p1-blue);
  cursor: pointer;
}

.p1-menu-toggle__bars {
  position: relative;
  display: block;
  width: 36px;
  height: 34px;
  margin: 0 auto;
}

.p1-menu-toggle__bars i {
  position: absolute;
  left: 50%;
  display: block;
  width: 29px;
  height: 2px;
  border-radius: 2px;
  background: currentColor;
  transform: translateX(-50%);
  transition: transform .4s ease, opacity .4s ease, top .4s ease;
}

.p1-menu-toggle__bars i:nth-child(1) { top: 7px; }
.p1-menu-toggle__bars i:nth-child(2) { top: 16px; }
.p1-menu-toggle__bars i:nth-child(3) { top: 25px; }

.p1-menu-toggle__text {
  display: block;
  margin-top: -3px;
  font-size: 9px;
  font-weight: 700;
  text-align: center;
}

.p1-menu-toggle[aria-expanded="true"] .p1-menu-toggle__bars i:nth-child(1) {
  top: 16px;
  transform: translateX(-50%) rotate(-45deg);
}

.p1-menu-toggle[aria-expanded="true"] .p1-menu-toggle__bars i:nth-child(2) {
  opacity: 0;
}

.p1-menu-toggle[aria-expanded="true"] .p1-menu-toggle__bars i:nth-child(3) {
  top: 16px;
  transform: translateX(-50%) rotate(45deg);
}

.p1-mobile-nav {
  position: fixed;
  z-index: 998;
  top: var(--p1-header-height);
  right: 0;
  bottom: 0;
  left: 0;
  height: calc(100dvh - var(--p1-header-height));
  max-height: calc(100dvh - var(--p1-header-height));
  overflow-x: hidden;
  overflow-y: auto;
  padding-bottom: 80px;
  background: #f5f7fa;
  color: var(--p1-blue);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-12px);
  transition: opacity .3s linear, transform .3s linear, visibility .3s linear;
}

.admin-bar .p1-mobile-nav {
  top: calc(var(--p1-header-height) + 32px);
  height: calc(100dvh - var(--p1-header-height) - 32px);
  max-height: calc(100dvh - var(--p1-header-height) - 32px);
}

.p1-mobile-nav[hidden] {
  display: none !important;
}

.p1-mobile-nav.is-open {
  display: block;
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.p1-mobile-nav li {
  background: #fff;
}

.p1-mobile-nav a {
  display: flex;
  min-height: 52px;
  align-items: center;
  justify-content: space-between;
  padding: 10px 5%;
  border-bottom: 1px solid #fff;
  background: #6285b0;
  color: #fff;
  font-family: var(--salon-serif);
  font-size: 14px;
  font-weight: 700;
}

.p1-mobile-nav a small {
  font-family: var(--salon-sans);
  font-size: 10px;
}

.p1-mobile-nav__submenu a {
  min-height: 46px;
  padding-left: 10%;
  border-bottom-color: rgba(248, 246, 241, .24);
  background: var(--p1-blue);
  font-size: 12px;
  font-weight: 400;
}

.p1-mobile-nav__submenu a::before {
  width: 16px;
  height: 1px;
  margin-right: 12px;
  background: rgba(248, 246, 241, .72);
  content: "";
}

.p1-mobile-nav__submenu a span {
  margin-right: auto;
}

.p1-mobile-nav__cta a {
  justify-content: center;
  background: var(--p1-blue);
}

body.p1-menu-open {
  overflow: hidden;
}

.salon-rebuild-footer {
  padding: 20px 5%;
  border-top: 1px solid #e8e8e8;
  background: #fff;
}

.salon-rebuild-footer p {
  margin: 0;
  font-size: 11px;
}

@media (max-width: 1280px) {
  .p1-header {
    z-index: 1001;
  }

  .p1-header__inner {
    max-width: none;
    padding: 0 20px 0 30px;
  }

  .p1-brand {
    margin-right: 24px;
  }

  .p1-header__guide {
    margin-right: auto;
  }

  .p1-global-nav {
    display: none;
  }

  .p1-header__cta {
    display: flex;
    width: 112px;
    height: 42px;
    flex-basis: 112px;
    margin-right: 12px;
    margin-left: auto;
  }

  .p1-header__cta-label--pc,
  .p1-header__cta small {
    display: none;
  }

  .p1-header__cta-label--sp {
    display: inline;
  }

  .p1-menu-toggle {
    display: block;
    flex: 0 0 44px;
  }
}

@media (max-width: 680px) {
  .p1-header__guide {
    width: 175px;
    flex-basis: 175px;
    font-size: 10px;
  }

  .p1-header__guide small {
    padding-inline: 8px;
    font-size: 9px;
  }
}

@media (max-width: 782px) {
  .admin-bar .p1-header { top: 46px; }
  .admin-bar .p1-mobile-nav {
    top: calc(var(--p1-header-height) + 46px);
    height: calc(100dvh - var(--p1-header-height) - 46px);
    max-height: calc(100dvh - var(--p1-header-height) - 46px);
  }
}

@media (max-width: 480px) {
  :root { --p1-header-height: 64px; }

  .p1-header {
    background: #fff;
  }

  .p1-header__inner {
    padding: 0 10px 0 20px;
  }

  .p1-brand {
    width: auto;
    height: 38px;
    margin-right: auto;
  }

  .p1-brand__eyebrow {
    font-size: 5px;
  }

  .p1-brand__name {
    font-size: 20px;
  }

  .p1-header__guide {
    display: none;
  }

  .p1-header__cta {
    width: 84px;
    height: 38px;
    flex-basis: 84px;
    margin-right: 5px;
    font-size: 10px;
  }

  .p1-menu-toggle {
    width: 40px;
    height: 56px;
    flex-basis: 40px;
  }

  .p1-menu-toggle__bars {
    width: 32px;
  }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }

  .p1-loading__light {
    display: none;
  }

  html.salon-opening-pending .p1-loading__mark {
    animation: p1-opening-mark .2s ease .04s both !important;
  }

  .p1-loading.is-finished {
    animation: p1-opening-finish .2s ease forwards !important;
  }

  html.salon-opening-pending {
    animation-delay: .65s !important;
  }
}
