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

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

body {
  min-height: 100vh;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}

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

ul,
ol {
  list-style: none;
}

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

button {
  font: inherit;
  color: inherit;
  background: none;
  border: none;
  cursor: pointer;
}

:root {
  --z-index-fixed: 20;
}

html {
  --u: calc(100vw / 540);
}
@media (min-width: 1024px) {
  html {
    --u: 1px;
  }
}

body {
  font-family: "Noto Sans JP", sans-serif;
  color: #835762;
  background: linear-gradient(180deg, #fcc9cc 0%, #fff8f9 100%);
  overflow-x: clip;
}

@media (hover: hover) {
  a[href]:hover,
  button:hover {
    opacity: 0.75;
    transition: opacity 0.2s;
  }
}
.sp-column {
  position: relative;
  width: calc(540 * var(--u));
  margin: 0 auto;
  background-color: #ffffff;
  overflow: hidden;
}
@media (min-width: 1024px) {
  .sp-column {
    z-index: 1;
    margin-top: 60px;
    border-radius: 40px 40px 0 0;
    box-shadow: 0 4px 23px rgba(0, 0, 0, 0.25);
  }
}

.sec-heading {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.sec-heading__en {
  font-family: "EB Garamond", "Garamond", serif;
  font-style: italic;
  font-size: clamp(max(74.8px, 10px), 20.3703703704vw, 110px);
  line-height: 1;
  letter-spacing: 0.03em;
  color: #f8e5e7;
  white-space: nowrap;
}
.sec-heading__ja {
  margin-top: calc(-8 * var(--u, 1px));
  font-family: "Shippori Mincho", serif;
  font-weight: 600;
  font-size: clamp(max(21.76px, 10px), 5.9259259259vw, 32px);
  line-height: 1.4;
  letter-spacing: 0.05em;
  color: #835762;
}

@keyframes page-fade-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
body {
  animation: page-fade-in 0.9s ease both;
}

.js .inview {
  opacity: 0;
  transition: opacity 0.9s ease;
}

.js .inview.is-inview {
  opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
  body {
    animation: none;
  }
  .js .inview {
    opacity: 1;
    transition: none;
  }
}
.pc-mv {
  display: none;
}
@media (min-width: 1024px) {
  .pc-mv {
    display: block;
    position: fixed;
    inset: 0;
    overflow: hidden;
    background: linear-gradient(to top left, #fcc9cc 0%, #fff8f9 100%);
  }
}
.pc-mv__stage {
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 1920px;
  height: 1080px;
  transform: translateX(-50%) scale(calc(100vw / 1920px));
  transform-origin: bottom center;
}
.pc-mv__left {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 690px;
  height: 1080px;
  transform: scale(min(calc(100vw / 1920px), calc((100vw - 540px) / 1380px)));
  transform-origin: left bottom;
}
@media (max-width: 1229px) {
  .pc-mv__left {
    display: none;
  }
}
.pc-mv__photo {
  position: absolute;
  top: 0;
  left: 1140px;
  width: 780px;
  height: 1080px;
  mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0) 0, #000 80px);
  -webkit-mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0) 0, #000 80px);
}
.pc-mv__photo img {
  width: 100%;
  height: 100%;
}
.pc-mv__ornament {
  position: absolute;
  top: 567px;
  left: -21px;
  width: 251px;
  height: 513px;
  transform: scaleX(-1);
}
.pc-mv__logo {
  position: absolute;
  top: 223px;
  left: 81px;
  width: 527px;
}
.pc-mv__btns {
  position: absolute;
  top: 696px;
  left: 118px;
  width: 452px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.pc-mv__tel {
  display: flex;
  flex-direction: column;
  gap: 10px;
  justify-content: center;
  height: 140px;
  padding: 20px 24px;
  background-color: #ffffff;
  border: 2.5px solid #eda3a8;
  border-radius: 16px;
  box-shadow: 2px 3px 10px rgba(218, 127, 133, 0.5);
}
.pc-mv__tel-label {
  display: block;
  font-family: "Shippori Mincho", serif;
  font-weight: 700;
  font-size: 18px;
  line-height: 1.6;
  letter-spacing: 0.05em;
  text-align: center;
  color: #ffffff;
  background-color: #835762;
  border-radius: 45px;
}
.pc-mv__tel-num {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  font-family: "Shippori Mincho", serif;
  font-weight: 600;
  font-size: 36px;
  line-height: 1.6;
  letter-spacing: 0.08em;
  color: #835762;
}
.pc-mv__tel-num .icon-phone {
  width: 48px;
  height: 48px;
  flex-shrink: 0;
}
.pc-mv__sub {
  display: flex;
  gap: 16px;
}
.pc-mv__sub-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 140px;
  height: 80px;
  font-family: "Shippori Mincho", serif;
  font-weight: 600;
  font-size: 20px;
  line-height: 1.2;
  letter-spacing: 0.03em;
  text-align: center;
  color: #835762;
  background-color: #ffffff;
  border: 2.5px solid #eda3a8;
  border-radius: 16px;
  box-shadow: 2px 3px 10px rgba(218, 127, 133, 0.5);
}
.pc-mv__sub-btn .icon-insta--lg {
  width: 34px;
  height: 34px;
  color: #da7f85;
}

.pc-menu {
  position: fixed;
  top: 50%;
  left: min(calc(50% + 257px), calc(100vw - 290px - 16px));
  transform: translateY(-50%);
  width: 290px;
  height: 397px;
  padding: 40px 47px;
  border-radius: 10px;
  backdrop-filter: blur(18px);
}
.pc-menu__frame {
  position: absolute;
  z-index: -1;
  top: -2px;
  left: -2px;
  width: calc(100% + 4px);
  height: calc(100% + 4px);
  max-width: none;
  filter: drop-shadow(2px 3px 15px rgba(94, 58, 60, 0.5));
  pointer-events: none;
}
.pc-menu__ttl {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-family: "EB Garamond", "Garamond", serif;
  font-style: italic;
  font-size: 32px;
  line-height: 1.24;
  letter-spacing: 0.05em;
  color: #aa895a;
}
.pc-menu__feather {
  width: 50px;
  height: 21px;
}
.pc-menu__list {
  display: flex;
  flex-direction: column;
  gap: 32px;
  margin-top: 24px;
}
.pc-menu__item {
  position: relative;
  padding-left: 26px;
  font-family: "Shippori Mincho", serif;
  font-weight: 700;
  font-size: 20px;
  line-height: 1.4;
  letter-spacing: 0.05em;
}
.pc-menu__item a {
  color: #835762;
  transition: color 0.2s;
}
.pc-menu__item a:hover {
  color: #da7f85;
}
.pc-menu__item.is-current a {
  color: #da7f85;
}
.pc-menu__item.is-current .pc-menu__ribbon {
  opacity: 1;
}
.pc-menu__ribbon {
  position: absolute;
  top: 2px;
  left: 0;
  width: 16px;
  height: 26px;
  color: #da7f85;
  opacity: 0;
  transition: opacity 0.2s;
}

.fixed-bar {
  position: fixed;
  bottom: 0;
  left: 50%;
  z-index: var(--z-index-fixed);
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: calc(540 * var(--u));
  padding: calc(20 * var(--u, 1px));
  background-color: rgba(255, 255, 255, 0.8);
  backdrop-filter: blur(20px);
  opacity: 0;
  visibility: hidden;
  transform: translate(-50%, 100%);
  transition:
    opacity 0.4s,
    visibility 0.4s,
    transform 0.4s;
}
.fixed-bar.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translate(-50%, 0);
}
@media (min-width: 1024px) {
  .fixed-bar {
    display: none;
  }
}
.fixed-bar__tel {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: calc(8 * var(--u, 1px));
  width: calc(180 * var(--u, 1px));
  height: calc(58 * var(--u, 1px));
  font-family: "Shippori Mincho", serif;
  font-weight: 600;
  font-size: clamp(max(12.24px, 10px), 3.3333333333vw, 18px);
  color: #835762;
  background-color: #ffffff;
  border: 2px solid #d4666d;
  border-radius: calc(10 * var(--u, 1px));
  box-shadow: 2px 3px 10px rgba(171, 56, 63, 0.5);
}
.fixed-bar__tel .icon-phone {
  width: calc(25 * var(--u, 1px));
  height: calc(25 * var(--u, 1px));
}
.fixed-bar__group {
  display: flex;
  gap: calc(8 * var(--u, 1px));
}
.fixed-bar__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: calc(5 * var(--u, 1px));
  width: calc(98 * var(--u, 1px));
  height: calc(58 * var(--u, 1px));
  font-family: "Shippori Mincho", serif;
  font-weight: 600;
  font-size: clamp(max(10.88px, 10px), 2.962962963vw, 16px);
  line-height: 1.2;
  text-align: center;
  color: #835762;
  background-color: #ffffff;
  border: 2px solid #d4666d;
  border-radius: calc(10 * var(--u, 1px));
  box-shadow: 2px 3px 10px rgba(171, 56, 63, 0.5);
}
.fixed-bar__btn .icon-insta {
  width: calc(24 * var(--u, 1px));
  height: calc(24 * var(--u, 1px));
  color: #da7f85;
}

.pagetop {
  position: fixed;
  right: calc(13 * var(--u, 1px));
  bottom: calc(122 * var(--u, 1px));
  z-index: var(--z-index-fixed);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(2 * var(--u, 1px));
  opacity: 0;
  visibility: hidden;
  transition:
    opacity 0.3s,
    visibility 0.3s;
}
@media (min-width: 1024px) {
  .pagetop {
    right: calc(50% - 257px);
    bottom: 24px;
  }
}
.pagetop.is-visible {
  opacity: 1;
  visibility: visible;
}
.pagetop__txt {
  font-family: "EB Garamond", "Garamond", serif;
  font-style: italic;
  font-size: clamp(max(13.6px, 10px), 3.7037037037vw, 20px);
  line-height: 1.6;
  letter-spacing: 0.03em;
  color: #835762;
  writing-mode: vertical-rl;
}
.pagetop__arrow {
  width: calc(9 * var(--u, 1px));
  height: calc(66 * var(--u, 1px));
  color: #835762;
}

.mv {
  position: relative;
  height: calc(1072 * var(--u, 1px));
  background: linear-gradient(206deg, #ffcdd0 18%, #ffacb8 66%, #da7f85 100%);
  overflow: hidden;
}
.mv__cheki {
  position: absolute;
  top: calc(23 * var(--u, 1px));
  left: calc(18 * var(--u, 1px));
  width: calc(497 * var(--u, 1px));
  height: calc(744 * var(--u, 1px));
}
.mv__photo {
  position: absolute;
  top: calc(1 * var(--u, 1px));
  left: calc(7 * var(--u, 1px));
  width: calc(490 * var(--u, 1px));
  height: calc(743 * var(--u, 1px));
  overflow: hidden;
  background-color: #f6eded;
  mask-image: url("../assets/img/svg/mv-photo-mask.svg");
  mask-size: 100% 100%;
  -webkit-mask-image: url("../assets/img/svg/mv-photo-mask.svg");
  -webkit-mask-size: 100% 100%;
}
.mv__photo-left,
.mv__photo-right {
  position: absolute;
  max-width: none;
  object-fit: cover;
  transition: opacity 1s ease;
}
.mv__photo-left--1 {
  top: calc(111 * var(--u, 1px));
  left: calc(-211 * var(--u, 1px));
  width: calc(459 * var(--u, 1px));
  height: calc(613 * var(--u, 1px));
}
.mv__photo-left--2 {
  top: calc(92 * var(--u, 1px));
  left: calc(-240 * var(--u, 1px));
  width: calc(508 * var(--u, 1px));
  height: calc(678 * var(--u, 1px));
}
.mv__photo-left--3 {
  top: calc(98 * var(--u, 1px));
  left: calc(-225 * var(--u, 1px));
  width: calc(477 * var(--u, 1px));
  height: calc(636 * var(--u, 1px));
}
.mv__photo-right--1 {
  top: calc(117 * var(--u, 1px));
  left: calc(237 * var(--u, 1px));
  width: calc(475 * var(--u, 1px));
  height: calc(633 * var(--u, 1px));
}
.mv__photo-right--2 {
  top: calc(88 * var(--u, 1px));
  left: calc(254 * var(--u, 1px));
  width: calc(485 * var(--u, 1px));
  height: calc(646 * var(--u, 1px));
}
.mv__photo-right--3 {
  top: calc(77 * var(--u, 1px));
  left: calc(252 * var(--u, 1px));
  width: calc(493 * var(--u, 1px));
  height: calc(658 * var(--u, 1px));
}
.mv__frame {
  position: absolute;
  top: calc(1 * var(--u, 1px));
  left: calc(7 * var(--u, 1px));
  width: calc(490 * var(--u, 1px));
  height: calc(743 * var(--u, 1px));
  max-width: none;
  pointer-events: none;
}
.mv__sparkle {
  position: absolute;
  color: #ffffff;
}
.mv__sparkle--left {
  top: calc(6 * var(--u, 1px));
  left: calc(16 * var(--u, 1px));
  width: calc(44 * var(--u, 1px));
  height: calc(59 * var(--u, 1px));
}
.mv__sparkle--right {
  top: calc(14 * var(--u, 1px));
  left: calc(435 * var(--u, 1px));
  width: calc(58 * var(--u, 1px));
  height: calc(75 * var(--u, 1px));
}
.mv__logo {
  position: absolute;
  top: calc(86 * var(--u, 1px));
  left: calc(137 * var(--u, 1px));
  width: calc(225 * var(--u, 1px));
  margin: 0;
}
.mv__logo img {
  width: 100%;
  height: auto;
}
.mv__ribbon {
  position: absolute;
  top: calc(611 * var(--u, 1px));
  left: 0;
  width: calc(158 * var(--u, 1px));
  height: calc(94 * var(--u, 1px));
}
.mv__ribbon-bg {
  position: absolute;
  top: calc(24.28 * var(--u, 1px));
  left: 0;
  width: calc(150 * var(--u, 1px));
  height: calc(65 * var(--u, 1px));
  background-color: #ffffff;
  transform: rotate(-8deg);
  transform-origin: 0 0;
}
.mv__ribbon-bg::after {
  content: "";
  position: absolute;
  top: calc(5.95 * var(--u, 1px));
  left: calc(0.14 * var(--u, 1px));
  width: calc(145 * var(--u, 1px));
  height: calc(65 * var(--u, 1px));
  background: linear-gradient(112deg, #d2515a 0%, #ffb8c7 100%);
  transform: rotate(-4deg);
  transform-origin: 0 0;
}
.mv__ribbon-txt {
  position: absolute;
  top: calc(28.93 * var(--u, 1px));
  left: calc(17.96 * var(--u, 1px));
  font-weight: 500;
  font-size: clamp(max(9.52px, 10px), 2.5925925926vw, 14px);
  line-height: 1.6;
  letter-spacing: 0.05em;
  color: #ffffff;
  transform: rotate(-12deg);
  transform-origin: 0 0;
}
.mv__ribbon-price {
  font-size: clamp(max(16.32px, 10px), 4.4444444444vw, 24px);
  letter-spacing: 0.05em;
}
.mv__copy {
  position: absolute;
  top: calc(223 * var(--u, 1px));
  left: calc(165 * var(--u, 1px));
  height: calc(453 * var(--u, 1px));
  margin: 0;
  writing-mode: vertical-rl;
  white-space: nowrap;
}
.mv__copy-main {
  display: block;
  font-family: "Shippori Mincho", serif;
  font-size: clamp(max(37.4px, 10px), 10.1851851852vw, 55px);
  font-weight: 400;
  color: #835762;
  line-height: 1.24;
  letter-spacing: 0.08em;
  text-shadow: calc(2 * var(--u, 1px)) calc(2 * var(--u, 1px)) 0 #ffffff;
}
.mv__copy-main + .mv__copy-main {
  margin-right: calc(16 * var(--u, 1px));
}
.mv__copy-sm {
  font-size: clamp(max(31.28px, 10px), 8.5185185185vw, 46px);
  letter-spacing: 0.08em;
}
.mv__copy-sub {
  display: block;
  margin-right: calc(24 * var(--u, 1px));
  padding-top: calc(12 * var(--u, 1px));
  font-family: "Shippori Mincho", serif;
  font-size: clamp(max(16.32px, 10px), 4.4444444444vw, 24px);
  font-weight: 600;
  color: #835762;
  line-height: 1.09;
  letter-spacing: 0;
  text-shadow: calc(2 * var(--u, 1px)) calc(2 * var(--u, 1px)) 0 #ffffff;
}
.mv__bottom {
  position: absolute;
  top: calc(783 * var(--u, 1px));
  left: calc(25 * var(--u, 1px));
  width: calc(490 * var(--u, 1px));
  display: flex;
  flex-direction: column;
  gap: calc(16 * var(--u, 1px));
}
.mv__btns {
  display: flex;
  gap: calc(8 * var(--u, 1px));
  align-items: stretch;
}
.mv__tel {
  display: flex;
  flex-direction: column;
  gap: calc(10 * var(--u, 1px));
  justify-content: center;
  width: calc(317 * var(--u, 1px));
  padding: calc(18 * var(--u, 1px)) calc(16 * var(--u, 1px));
  background-color: #ffffff;
  border: 2px solid #d4666d;
  border-radius: calc(16 * var(--u, 1px));
  box-shadow: calc(2 * var(--u, 1px)) calc(3 * var(--u, 1px)) calc(10 * var(--u, 1px)) rgba(171, 56, 63, 0.5);
}
.mv__tel-label {
  display: block;
  padding: 0 calc(10 * var(--u, 1px));
  font-family: "Shippori Mincho", serif;
  font-weight: 700;
  font-size: clamp(max(10.88px, 10px), 2.962962963vw, 16px);
  line-height: 1.6;
  letter-spacing: 0.05em;
  text-align: center;
  color: #ffffff;
  background-color: #835762;
  border-radius: calc(36 * var(--u, 1px));
}
.mv__tel-num {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: calc(14 * var(--u, 1px));
  font-family: "Shippori Mincho", serif;
  font-weight: 700;
  font-size: clamp(max(19.04px, 10px), 5.1851851852vw, 28px);
  line-height: 1.6;
  letter-spacing: 0.08em;
  color: #835762;
}
.mv__tel-num .icon-phone {
  width: calc(38 * var(--u, 1px));
  height: calc(38 * var(--u, 1px));
  flex-shrink: 0;
}
.mv__sub {
  display: flex;
  flex-direction: column;
  gap: calc(6 * var(--u, 1px));
  width: calc(165 * var(--u, 1px));
}
.mv__sub-row {
  display: flex;
  gap: calc(6 * var(--u, 1px));
}
.mv__sub-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: calc(80 * var(--u, 1px));
  height: calc(58 * var(--u, 1px));
  font-family: "Shippori Mincho", serif;
  font-weight: 700;
  font-size: clamp(max(12.24px, 10px), 3.3333333333vw, 18px);
  line-height: 1.6;
  color: #835762;
  background-color: #ffffff;
  border: 2px solid #d4666d;
  border-radius: calc(16 * var(--u, 1px));
  box-shadow: calc(2 * var(--u, 1px)) calc(3 * var(--u, 1px)) calc(10 * var(--u, 1px)) rgba(171, 56, 63, 0.5);
}
.mv__sub-btn .icon-insta {
  width: calc(26 * var(--u, 1px));
  height: calc(26 * var(--u, 1px));
  color: #da7f85;
}
.mv__sub-btn--wide {
  width: 100%;
  height: calc(51 * var(--u, 1px));
  white-space: nowrap;
}
.mv__point {
  position: relative;
  height: calc(133 * var(--u, 1px));
  background-color: #df787f;
  border: 1px solid #ffffff;
}
.mv__point::before {
  content: "";
  position: absolute;
  inset: calc(3 * var(--u, 1px));
  border: 1px solid #ffffff;
  pointer-events: none;
}
.mv__point-list {
  display: flex;
  flex-wrap: wrap;
  column-gap: calc(24 * var(--u, 1px));
  row-gap: calc(8 * var(--u, 1px));
  padding: calc(19 * var(--u, 1px)) calc(25 * var(--u, 1px));
}
.mv__point-item {
  display: flex;
  align-items: flex-start;
  gap: calc(8 * var(--u, 1px));
  font-weight: 600;
  font-size: clamp(max(12.24px, 10px), 3.3333333333vw, 18px);
  line-height: 1.6;
  letter-spacing: 0.08em;
  color: #ffffff;
}
.mv__point-item .icon-check {
  width: calc(17 * var(--u, 1px));
  height: calc(17 * var(--u, 1px));
  margin-top: calc(6 * var(--u, 1px));
  flex-shrink: 0;
  color: #ffffff;
}

.about {
  position: relative;
  height: calc(1431 * var(--u, 1px));
  background-color: #fff1f1;
}
.about .sec-heading__ja {
  margin-top: 0;
}
.about__paper {
  position: absolute;
  top: calc(89 * var(--u, 1px));
  left: calc(-55 * var(--u, 1px));
  width: calc(651 * var(--u, 1px));
  height: calc(1015 * var(--u, 1px));
  max-width: none;
}
.about__inner {
  position: absolute;
  top: calc(250 * var(--u, 1px));
  left: calc(90 * var(--u, 1px));
  width: calc(360 * var(--u, 1px));
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(40 * var(--u, 1px));
}
.about__body {
  display: flex;
  flex-direction: column;
  gap: calc(24 * var(--u, 1px));
}
.about__body p {
  font-size: clamp(max(12.24px, 10px), 3.3333333333vw, 18px);
  line-height: 2;
  letter-spacing: 0.08em;
  text-align: center;
  color: #835762;
}
.about__ribbon {
  width: calc(132 * var(--u, 1px));
  height: calc(96 * var(--u, 1px));
  margin-top: calc(16 * var(--u, 1px));
  color: #f8e5e7;
}
.about__carousel {
  position: absolute;
  top: calc(1151 * var(--u, 1px));
  left: 0;
  width: 100%;
  display: flex;
  gap: calc(16 * var(--u, 1px));
  overflow: hidden;
}
.about__track {
  display: flex;
  flex-shrink: 0;
  gap: calc(16 * var(--u, 1px));
  animation: about-marquee 40s linear infinite;
}
.about__tile {
  --notch: calc(10 * var(--u, 1px));
  position: relative;
  width: calc(300 * var(--u, 1px));
  height: calc(200 * var(--u, 1px));
  flex-shrink: 0;
  padding: 2px;
  background-color: #aa895a;
  clip-path: polygon(
    var(--notch) 0,
    calc(100% - var(--notch)) 0,
    100% var(--notch),
    100% calc(100% - var(--notch)),
    calc(100% - var(--notch)) 100%,
    var(--notch) 100%,
    0 calc(100% - var(--notch)),
    0 var(--notch)
  );
}
.about__tile img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  clip-path: polygon(
    var(--notch) 0,
    calc(100% - var(--notch)) 0,
    100% var(--notch),
    100% calc(100% - var(--notch)),
    calc(100% - var(--notch)) 100%,
    var(--notch) 100%,
    0 calc(100% - var(--notch)),
    0 var(--notch)
  );
}
.about__sparkle {
  position: absolute;
  width: calc(47 * var(--u, 1px));
  height: calc(55 * var(--u, 1px));
  color: #ffffff;
  pointer-events: none;
}
.about__sparkle--tl {
  top: calc(1133 * var(--u, 1px));
  left: calc(51 * var(--u, 1px));
}
.about__sparkle--br {
  top: calc(1308 * var(--u, 1px));
  left: calc(459 * var(--u, 1px));
}

@keyframes about-marquee {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(calc(-100% - calc(16 * var(--u, 1px))));
  }
}
.menu {
  position: relative;
  height: calc(1005 * var(--u, 1px));
  background-color: #ffffff;
  overflow: hidden;
}
.menu::before {
  content: "";
  position: absolute;
  top: calc(-515 * var(--u, 1px));
  left: calc(-417 * var(--u, 1px));
  width: calc(687 * var(--u, 1px));
  height: calc(673 * var(--u, 1px));
  border-radius: 50%;
  background-color: rgba(255, 192, 201, 0.3);
  filter: blur(calc(33 * var(--u, 1px)));
}
.menu__inner {
  margin-inline: auto;
  width: calc(360 * var(--u, 1px));
  display: flex;
  flex-direction: column;
  align-items: center;
}
.menu__note {
  margin-top: calc(40 * var(--u, 1px));
  font-size: clamp(max(12.24px, 10px), 3.3333333333vw, 18px);
  line-height: 1.8;
  letter-spacing: 0.08em;
  color: #835762;
}
.menu__table {
  width: 100%;
  margin-top: calc(48 * var(--u, 1px));
}
.menu__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: calc(84 * var(--u, 1px));
  border-bottom: 1px solid #efdecf;
}
.menu__row:first-child {
  border-top: 1px solid #efdecf;
}
.menu__row dt {
  font-weight: 600;
  font-size: clamp(max(13.6px, 10px), 3.7037037037vw, 20px);
  line-height: 1.8;
  color: #835762;
}
.menu__row dd {
  display: flex;
  align-items: flex-end;
  gap: calc(5 * var(--u, 1px));
  font-size: clamp(max(13.6px, 10px), 3.7037037037vw, 20px);
  line-height: 1.8;
  letter-spacing: 0.05em;
  color: #835762;
}
.menu__yen {
  font-size: clamp(max(10.88px, 10px), 2.962962963vw, 16px);
  line-height: 1.8;
  letter-spacing: 0;
}

.gallery {
  position: relative;
  height: fit-content;
  padding-top: calc(37 * var(--u, 1px));
  padding-bottom: calc(80 * var(--u, 1px));
  background-color: #ffffff;
  background-image:
    linear-gradient(90deg, transparent 0 25.7%, #f9f4eb 25.7% 27.7%, transparent 27.7% 77.1%, #f9f4eb 77.1% 79.1%, transparent 79.1%),
    linear-gradient(180deg, transparent 0 22.9%, #f9f4eb 22.9% 24.9%, transparent 24.9% 74.3%, #f9f4eb 74.3% 76.3%, transparent 76.3%);
  background-size: calc(35 * var(--u, 1px)) calc(35 * var(--u, 1px));
}
.gallery__ttl {
  position: relative;
  margin: 0 auto;
  width: fit-content;
  font-family: "EB Garamond", "Garamond", serif;
  font-style: italic;
  font-weight: 400;
  font-size: clamp(max(29.92px, 10px), 8.1481481481vw, 44px);
  line-height: 1.2;
  letter-spacing: 0.04em;
  color: #b7979f;
  transform: rotate(-6deg);
}
.gallery__ttl-deco {
  position: absolute;
  top: calc(2 * var(--u, 1px));
  left: calc(206 * var(--u, 1px));
  width: calc(50 * var(--u, 1px));
  height: calc(66 * var(--u, 1px));
}
.gallery__slider {
  width: calc(768 * var(--u, 1px));
  margin: calc(46 * var(--u, 1px)) 0 0 calc(-114 * var(--u, 1px));
  overflow: visible;
}
.gallery__card {
  position: relative;
  width: calc(238 * var(--u, 1px));
  height: calc(334 * var(--u, 1px));
  padding-top: calc(15 * var(--u, 1px));
}
.gallery__card-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(16 * var(--u, 1px));
  height: calc(319 * var(--u, 1px));
  padding: calc(20 * var(--u, 1px));
  background-color: #ffffff;
  box-shadow: 0 calc(3 * var(--u, 1px)) calc(7 * var(--u, 1px)) rgba(122, 79, 79, 0.25);
}
.gallery__photo {
  width: calc(198 * var(--u, 1px));
  height: calc(252 * var(--u, 1px));
  flex-shrink: 0;
  overflow: hidden;
}
.gallery__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.gallery__label {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: clamp(max(9.52px, 10px), 2.5925925926vw, 14px);
  line-height: 1;
  color: #816e6e;
}
.gallery__tape {
  position: absolute;
  top: calc(8 * var(--u, 1px));
  left: calc(89 * var(--u, 1px));
  width: calc(58 * var(--u, 1px));
  height: calc(20 * var(--u, 1px));
  background-color: var(--tape, #dabb9f);
  opacity: 0.76;
  box-shadow: 0 0 calc(2 * var(--u, 1px)) rgba(0, 0, 0, 0.25);
  transform: rotate(-7.5deg);
}
.gallery__nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: calc(24 * var(--u, 1px));
  margin-top: calc(40 * var(--u, 1px));
}
.gallery__arrow {
  width: calc(15 * var(--u, 1px));
  height: calc(33 * var(--u, 1px));
  filter: drop-shadow(0 0 calc(4 * var(--u, 1px)) #ffffff);
}
.gallery__arrow img {
  width: 100%;
  height: 100%;
}
.gallery__arrow--prev img {
  transform: scaleX(-1);
}
.gallery__dots {
  display: flex;
  align-items: center;
  gap: calc(16 * var(--u, 1px));
  --swiper-pagination-bullet-horizontal-gap: 0px;
}
.gallery__dots.swiper-pagination-horizontal {
  width: auto;
}
.gallery__dots .swiper-pagination-bullet {
  width: calc(10 * var(--u, 1px));
  height: calc(10 * var(--u, 1px));
  margin: 0;
  background-color: #ece2d1;
  opacity: 1;
}
.gallery__dots .swiper-pagination-bullet-active {
  position: relative;
  background-color: #da7f85;
}
.gallery__dots .swiper-pagination-bullet-active::before {
  content: "";
  position: absolute;
  inset: calc(-4 * var(--u, 1px));
  border: 1px solid #da7f85;
  border-radius: 50%;
}
.gallery__insta {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: calc(360 * var(--u, 1px));
  margin: calc(64 * var(--u, 1px)) auto 0;
}
.gallery__bubble {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: calc(4 * var(--u, 1px));
  padding: calc(20 * var(--u, 1px)) calc(24 * var(--u, 1px));
  background-color: #fff0f0;
  border-radius: calc(32 * var(--u, 1px));
  text-align: center;
}
.gallery__bubble p {
  font-family: "Shippori Mincho", serif;
  font-weight: 600;
  font-size: clamp(max(12.24px, 10px), 3.3333333333vw, 18px);
  line-height: 1.4;
  letter-spacing: 0.05em;
  color: #816e6e;
}
.gallery__bubble .gallery__bubble-insta {
  font-size: clamp(max(16.32px, 10px), 4.4444444444vw, 24px);
  font-weight: 700;
  letter-spacing: 0.05em;
  color: #da7f85;
}
.gallery__bubble .gallery__bubble-strong {
  font-weight: 600;
  font-size: clamp(max(12.24px, 10px), 3.3333333333vw, 18px);
  color: #816e6e;
}
.gallery__bubble::after {
  content: "";
  position: absolute;
  bottom: calc(-12 * var(--u, 1px));
  left: 50%;
  transform: translateX(-50%);
  border-left: calc(13 * var(--u, 1px)) solid transparent;
  border-right: calc(13 * var(--u, 1px)) solid transparent;
  border-top: calc(14 * var(--u, 1px)) solid #fff0f0;
}
.gallery__glyph {
  width: calc(80 * var(--u, 1px));
  height: calc(80 * var(--u, 1px));
  margin-top: calc(40 * var(--u, 1px));
  color: #835762;
}
.gallery__btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: calc(85 * var(--u, 1px));
  margin-top: calc(40 * var(--u, 1px));
  font-family: "Shippori Mincho", serif;
  line-height: 1.6;
  letter-spacing: 0.08em;
  text-align: center;
  color: #ffffff;
  text-shadow: 0 0 calc(4 * var(--u, 1px)) rgba(77, 3, 3, 0.25);
  background: linear-gradient(105deg, #ffc4c2 0%, #ba4149 100%);
  border: 2px solid #ffffff;
  border-radius: calc(14 * var(--u, 1px));
  box-shadow: calc(2 * var(--u, 1px)) calc(3 * var(--u, 1px)) calc(10 * var(--u, 1px)) rgba(218, 127, 133, 0.5);
}
.gallery__btn-name {
  font-size: clamp(max(19.04px, 10px), 5.1851851852vw, 28px);
  font-weight: 700;
  letter-spacing: 0.08em;
}
.gallery__btn-id {
  font-size: clamp(max(10.88px, 10px), 2.962962963vw, 16px);
  font-weight: 600;
  letter-spacing: 0.08em;
}

.banner {
  height: calc(231 * var(--u, 1px));
  overflow: hidden;
}
.banner img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.reservation {
  position: relative;
  height: calc(1218 * var(--u, 1px));
  background-color: #ffffff;
  overflow: hidden;
}
.reservation::before {
  content: "";
  position: absolute;
  top: calc(923 * var(--u, 1px));
  left: calc(270 * var(--u, 1px));
  width: calc(597 * var(--u, 1px));
  height: calc(607 * var(--u, 1px));
  border-radius: 50%;
  background-color: rgba(255, 192, 201, 0.3);
  filter: blur(calc(33 * var(--u, 1px)));
}
.reservation__inner {
  position: absolute;
  top: calc(80 * var(--u, 1px));
  left: calc(42 * var(--u, 1px));
  width: calc(456 * var(--u, 1px));
  display: flex;
  flex-direction: column;
  align-items: center;
}
.reservation__lead {
  margin-top: calc(40 * var(--u, 1px));
  font-size: clamp(max(12.24px, 10px), 3.3333333333vw, 18px);
  line-height: 1.8;
  letter-spacing: 0.08em;
  text-align: center;
  color: #835762;
}
.reservation__badge {
  position: relative;
  margin-top: calc(40 * var(--u, 1px));
  padding: calc(12 * var(--u, 1px)) calc(24 * var(--u, 1px));
  background: linear-gradient(101deg, #f49097 0%, #ffcdc9 100%);
  border-radius: calc(32 * var(--u, 1px));
}
.reservation__badge p {
  font-weight: 600;
  font-size: clamp(max(13.6px, 10px), 3.7037037037vw, 20px);
  line-height: 1.4;
  letter-spacing: 0.08em;
  color: #ffffff;
}
.reservation__badge-sm {
  font-size: clamp(max(10.88px, 10px), 2.962962963vw, 16px);
  letter-spacing: 0.08em;
}
.reservation__badge::after {
  content: "";
  position: absolute;
  bottom: calc(-9 * var(--u, 1px));
  left: 50%;
  transform: translateX(-50%);
  border-left: calc(13 * var(--u, 1px)) solid transparent;
  border-right: calc(13 * var(--u, 1px)) solid transparent;
  border-top: calc(13 * var(--u, 1px)) solid #f9acae;
}
.reservation__list {
  display: flex;
  flex-direction: column;
  gap: calc(24 * var(--u, 1px));
  width: calc(360 * var(--u, 1px));
  margin-top: calc(44 * var(--u, 1px));
}
.reservation__item {
  display: flex;
  flex-direction: column;
  gap: calc(16 * var(--u, 1px));
}
.reservation__how {
  display: flex;
  align-items: center;
  gap: calc(8 * var(--u, 1px));
  font-size: clamp(max(10.88px, 10px), 2.962962963vw, 16px);
  line-height: 1.8;
  letter-spacing: 0.08em;
  color: #835762;
}
.reservation__how .icon-label {
  width: calc(16 * var(--u, 1px));
  height: calc(26 * var(--u, 1px));
}
.reservation__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: calc(14 * var(--u, 1px));
  height: calc(91 * var(--u, 1px));
  background-color: #ffffff;
  border-radius: calc(11 * var(--u, 1px));
  box-shadow: 0 calc(2 * var(--u, 1px)) calc(11 * var(--u, 1px)) rgba(218, 127, 133, 0.6);
}
.reservation__btn .icon-phone-big {
  width: calc(35 * var(--u, 1px));
  height: calc(44 * var(--u, 1px));
  flex-shrink: 0;
}
.reservation__btn .icon-insta {
  width: calc(35 * var(--u, 1px));
  height: calc(35 * var(--u, 1px));
  flex-shrink: 0;
  color: #da7f85;
}
.reservation__btn-body {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.reservation__btn-main {
  font-family: "Shippori Mincho", serif;
  font-weight: 500;
  font-size: clamp(max(21.76px, 10px), 5.9259259259vw, 32px);
  line-height: 1.6;
  letter-spacing: 0.08em;
  color: #835762;
}
.reservation__btn-body .reservation__btn-main {
  font-weight: 400;
}
.reservation__btn-sub {
  font-family: "Shippori Mincho", serif;
  font-weight: 500;
  font-size: clamp(max(10.2px, 10px), 2.7777777778vw, 15px);
  line-height: 1.6;
  letter-spacing: 0.08em;
  color: #816e6e;
}

.shopinfo {
  position: relative;
  padding-bottom: calc(48 * var(--u, 1px));
  background-color: #fff1f1;
  overflow: hidden;
}
.shopinfo .sec-heading__en--shopinfo {
  color: #f8dadc;
}
.shopinfo__wm-side {
  position: absolute;
  top: calc(283 * var(--u, 1px));
  left: 0;
  width: calc(779 * var(--u, 1px));
  height: calc(74 * var(--u, 1px));
  max-width: none;
  object-fit: fill;
  opacity: 0.8;
  transform-origin: top left;
  transform: rotate(90deg) translateY(-100%);
}
.shopinfo__wm-big {
  position: absolute;
  top: calc(916 * var(--u, 1px));
  left: calc(148 * var(--u, 1px));
  width: calc(391 * var(--u, 1px));
  height: calc(486 * var(--u, 1px));
  object-fit: cover;
  object-position: left center;
  opacity: 0.05;
}
.shopinfo__inner {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding-top: calc(80 * var(--u, 1px));
}
.shopinfo__photo {
  width: calc(360 * var(--u, 1px));
  height: calc(480 * var(--u, 1px));
  margin-top: calc(40 * var(--u, 1px));
  border-radius: calc(2000 * var(--u, 1px));
  overflow: hidden;
}
.shopinfo__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.shopinfo__name {
  margin-top: calc(40 * var(--u, 1px));
  font-family: "Shippori Mincho", serif;
  font-weight: 600;
  font-size: clamp(max(16.32px, 10px), 4.4444444444vw, 24px);
  line-height: 1.6;
  letter-spacing: 0.05em;
  text-align: center;
  color: #835762;
}
.shopinfo__name-sub {
  font-size: clamp(max(13.6px, 10px), 3.7037037037vw, 20px);
  letter-spacing: 0.05em;
}
.shopinfo__list {
  width: calc(360 * var(--u, 1px));
  margin-top: calc(24 * var(--u, 1px));
  border-top: 2px solid #f1e6dc;
}
.shopinfo__row {
  display: flex;
  gap: calc(16 * var(--u, 1px));
  padding: calc(16 * var(--u, 1px)) 0;
  border-bottom: 2px solid #f1e6dc;
}
.shopinfo__row dt {
  width: calc(116 * var(--u, 1px));
  flex-shrink: 0;
  font-weight: 500;
  font-size: clamp(max(12.24px, 10px), 3.3333333333vw, 18px);
  line-height: 1.8;
  letter-spacing: 0.08em;
  white-space: nowrap;
  color: #835762;
}
.shopinfo__row dd {
  font-size: clamp(max(12.24px, 10px), 3.3333333333vw, 18px);
  line-height: 1.8;
  letter-spacing: 0.08em;
  color: #835762;
}
.shopinfo__access {
  display: block;
  margin-top: calc(8 * var(--u, 1px));
  color: #da7f85;
}
.shopinfo__map {
  display: block;
  width: 100%;
  height: calc(323 * var(--u, 1px));
  margin-top: calc(120 * var(--u, 1px));
}
.shopinfo__map img,
.shopinfo__map iframe {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border: 0;
}

.footer {
  position: relative;
  height: calc(344 * var(--u, 1px));
  background-color: #da7f85;
}
@media (min-width: 1024px) {
  .footer {
    height: calc(246 * var(--u, 1px));
  }
}
.footer__logo {
  position: absolute;
  top: calc(30 * var(--u, 1px));
  left: calc(142 * var(--u, 1px));
  width: calc(255 * var(--u, 1px));
  height: calc(100 * var(--u, 1px));
}
.footer__logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.footer__company {
  position: absolute;
  top: calc(146 * var(--u, 1px));
  left: 0;
  width: 100%;
  font-family: "Shippori Mincho", serif;
  font-weight: 600;
  font-size: clamp(max(9.52px, 10px), 2.5925925926vw, 14px);
  line-height: 1.8;
  letter-spacing: 0.05em;
  text-align: center;
  color: #ffffff;
}
.footer__copyright {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: calc(157 * var(--u, 1px));
  padding: 0 calc(20 * var(--u, 1px)) calc(98 * var(--u, 1px));
  display: flex;
  align-items: center;
  justify-content: space-between;
  background-color: #cb656c;
}
@media (min-width: 1024px) {
  .footer__copyright {
    height: calc(59 * var(--u, 1px));
    padding-bottom: 0;
  }
}
.footer__copyright p {
  font-family: "Shippori Mincho", serif;
  font-weight: 500;
  font-size: clamp(max(8.16px, 10px), 2.2222222222vw, 12px);
  line-height: 1.8;
  letter-spacing: 0.05em;
  color: #ffffff;
}
.footer__copyright svg {
  width: calc(29 * var(--u, 1px));
  height: calc(29 * var(--u, 1px));
  color: #ffffff;
}
