@charset "utf-8";

:root {
  --hColor: #333;
  --pColor: #333;
  --noteColor: #878787;
  --bgSns: #505357;
  --colorSns: #a5a5a5;

  --baskerville: "baskerville-urw", serif;
  --tenMincho: "ten-mincho-text", serif;
  --gothic: "Hiragino Kaku Gothic Pro", sans-serif;
}

/* common/style.cssの初期化、その他共通化 ここから */
img {
  width: 100%;
  vertical-align: bottom;
}

body {
  font-weight: 400;
  font-style: normal;
}
.box_top {
  /* ヘッダーの背景透過防止 */
  background-color: #fff;
}

h2 {
  box-shadow: none;
  font-size: clamp(18px, 3vw, 30px);
}

h2,
h3,
h4 {
  color: var(--hColor);
}
p {
  color: var(--pColor);
  margin-bottom: 0;
  text-align: center;
  line-height: 1.75;
  letter-spacing: 0.05em;
}

.container {
  width: 90%;
  max-width: 1030px;
  padding: 0;
  margin: 3rem auto 1rem;
}
/* common/style.cssの初期化、その他共通化 ここまで */

/* 各種見出しのスタイル ----------------------- */
.p-message__h2,
.p-fragrance__h2,
.p-roomFragrance__h2,
.p-schedule__h2,
.p-special__h2,
.p-shopInfo__h2,
.p-sns__h2 {
  font-size: 2.1em;
  font-weight: bold;
  width: calc(100% - 20px);
  line-height: 1;
  text-align: center;
  margin: 0 auto;
  padding: 0 0 0.5em;
  z-index: 5;
  position: relative;
  letter-spacing: 0.05em;
  font-family: var(--baskerville);
}

.p-fragrance__h2::before,
.p-roomFragrance__h2::before,
.p-schedule__h2::before,
.p-special__h2::before,
.p-shopInfo__h2::before {
  content: "";
  position: absolute;
  background-color: var(--pColor);
  width: 100%;
  height: 1.5px;
  left: 0;
  bottom: 0;
}

.p-h3 {
  font-size: 1.8em;
  color: #fff;
  font-weight: normal;
  text-align: center;
  padding-top: 0.5em;
  padding-bottom: 0.5em;
  margin: 0;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.p-h3--01 {
  background-image: url(../img/header3/h3_01.jpg);
}
.p-h3--02 {
  background-image: url(../img/header3/h3_02.jpg);
}
.p-h3--03 {
  background-image: url(../img/header3/h3_03.jpg);
}
.p-h3--04 {
  background-image: url(../img/header3/h3_04.jpg);
}
.p-h3--05 {
  background-image: url(../img/header3/h3_05.jpg);
}

/* Jsで制御 */
.js-img {
  opacity: 0;
  transform: translateY(30px);
  transition:
    opacity 0.4s ease-in-out,
    transform 0.4s ease-in-out;
}
.js-img.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* ここからコンテンツブロックごと ----------------------- */
.main-visual {
  margin-top: 0 !important;
}

.p-message,
.p-fragrance {
  font-family: var(--tenMincho);
  margin: 3em auto;
  position: relative;
}
.p-roomFragrance,
.p-schedule,
.p-special,
.p-shopInfo,
.p-copyright {
  font-family: var(--tenMincho);
  margin: 7em auto 0;
  position: relative;
}

.p-belt {
  background-color: #333;
  width: 100%;
  height: 15px;
  position: relative;
}
.p-belt::before {
  content: "";
  position: absolute;
  background-image: url(../img/bgImage/deco1.png);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  aspect-ratio: 1 / 0.386;
  width: 100%;
  top: 0;
  right: 0;
  z-index: -1;
}

/* 導入メッセージ p-message------------------- */
.p-message__p {
  line-height: 2;
  margin: 0.5em;
}
.p-message__p:first-of-type {
  margin-top: 1em;
}

/* フレグランスに関する p-fragrance------------------- */
.p-fragrance::before {
  content: "";
  position: absolute;
  background-image: url(../img/bgImage/deco2.png);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  aspect-ratio: 1 / 0.821;
  width: 100%;
  transform: translateY(-20%);
  top: 0;
  left: 0;
  z-index: -1;
}
.p-fragrance__slider,
.p-roomFragrance__slider {
  width: calc(100% - 20px);
  margin: 2em auto 2.5em;
}
.p-fragrance__content {
  width: calc(100% - 20px);
  margin: 6em auto 0;
}
.p-fragrance__flexBox {
  margin-top: 2em;
}

/* ルームフレグランスに関する p-roomF------------------- */
.p-roomFragrance::before {
  content: "";
  position: absolute;
  background-image: url(../img/bgImage/deco3.png);
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  width: 100%;
  aspect-ratio: 1 / 0.727;
  transform: translateY(-10%);
  top: 0;
  right: 0;
  z-index: -1;
}
.p-roomFragrance__content {
  width: calc(100% - 20px);
  margin: 8em auto 0;
}
.p-roomFragrance__content:first-of-type {
  margin: 5em auto 0;
}
.p-roomFragrance__img1 {
  margin-top: 2em;
  margin-bottom: 0.75em;
}
.p-roomFragrance__p {
  font-size: 1.2em;
  margin-bottom: 1.5em;
}

/* スケジュールに関する p-schedule------------------- */
.p-schedule::before {
  content: "";
  position: absolute;
  background-image: url(../img/bgImage/deco4.png);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  width: 100%;
  /* max-width: 600px; */
  aspect-ratio: 1 / 0.984;
  top: 0em;
  right: 0;
  transform: translateY(-40%);
  z-index: -1;
}
.p-schedule__h3 {
  text-align: center;
  line-height: 1.75;
}
.p-schedule__table {
  width: calc(100% - 20px);
  margin: 2em auto 0;
  border-collapse: collapse;
  border: 1px solid var(--pColor);
  letter-spacing: 0;
  font-family: var(--gothic);
}
.p-schedule__tbody {
  background-color: #fff;
}
.p-schedule__th {
  letter-spacing: 0.05em;
  white-space: nowrap;
  font-weight: normal;
}
.p-schedule__th,
.p-schedule__td {
  padding: 1em 0.5em;
  margin: 0;
  border-top: 1px solid var(--pColor);
  border-left: 1px solid var(--pColor);
  font-size: 0.85em;
  text-align: center;
  line-height: 1.5;
}
.p-schedule__td--date {
  white-space: nowrap;
}
.p-schedule__td p {
  line-height: 1.5;
  letter-spacing: 0;
  display: inline-block;
  width: fit-content;
  margin-left: auto;
  margin-right: auto;
}
.p-schedule__td p:first-of-type {
  margin-top: 0;
}
/* スペシャル p-special------------------- */
.p-special::before {
  content: "";
  background-image: url(../img/bgImage/deco5.png);
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  position: absolute;
  width: 100%;
  transform: translateY(-10%);
  aspect-ratio: 1 / 0.868;
  top: 0;
  right: 0;
  z-index: -1;
}
.p-special__h3 {
  text-align: center;
  letter-spacing: 0.1em;
}
.p-special__h3 span {
  display: block;
  margin-top: 0.25em;
  font-size: 1.5em;
}
.p-special__imgBox {
  position: relative;
  /* margin: 3em 0; */
}
.p-special__img {
  display: block;
  margin: 3em auto;
  width: 65%;
  max-width: 600px;
  position: relative;
}
.p-special__img::before,
.p-special__img::after {
  content: "";
  position: absolute;
  background-image: url(../img/twinkle1.png);
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  transform: translate(-34px, -27px);
  width: 40px;
  aspect-ratio: 0.6 / 1;
  top: 0;
  left: 0;
}
.p-special__img::after {
  background-image: url(../img/twinkle2.png);
  aspect-ratio: 0.5 / 1;
  transform: translate(33px, 30px);
  top: auto;
  left: auto;
  bottom: 0;
  right: 0;
}
.p-special__note {
  margin-top: 2em;
  font-size: 0.9em;
}
.p-special__table {
  width: calc(100% - 20px);
  margin: 2em auto 0;
  border-collapse: collapse;
  border: 1px solid var(--pColor);
  line-height: 1.25;
  font-family: var(--gothic);
}
.p-special__th {
  letter-spacing: 0.05em;
  font-weight: normal;
}
.p-special__th,
.p-special__td {
  padding: 1em 0.5em;
  margin: 0;
  border-bottom: 1px solid var(--pColor);
  border-left: 1px solid var(--pColor);
  font-size: 0.85em;
}
.p-special__td p {
  line-height: 1.5;
}
.p-special__dl {
  width: calc(100% - 20px);
  margin: 3em auto 0;
}
.p-special__dt,
.p-special__dd {
  width: 100%;
  padding: 0;
  font-size: 1.2em;
  margin: 0;
  line-height: 1.5;
}
.p-special__dt {
  font-size: 1.4em;
  letter-spacing: 0.15em;
  margin-top: 24px;
  font-weight: bold;
}
.p-special__dd {
  font-size: 1em;
  padding: 1em 0 24px;
  border-bottom: 1px solid var(--pColor);
}
.p-special__dd:last-child {
  border-bottom: none;
}
.p-special__dd p {
  position: relative;
  text-align: left;
  line-height: 1.25;
  margin: 0.5em 0 0;
  padding-left: 1em;
  letter-spacing: 0.01em;
}
.p-special__dd p:first-child {
  margin-top: 1em;
}
.p-special__dd p::before {
  position: absolute;
  content: "※";
  width: 1em;
  height: 1em;
  top: 0;
  left: 0;
}

/* ショップインフォメーション p-shopInfo------------------- */
.p-shopInfo::before {
  content: "";
  background-image: url(../img/bgImage/deco6.png);
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  position: absolute;
  width: 100%;
  aspect-ratio: 1 / 0.868;
  transform: translateY(-30%);
  top: 0;
  left: 0;
  z-index: -1;
  /* opacity: 0.5; */
}
.p-shopInfo__h3 {
  font-size: 1.25em;
  display: block;
  width: calc(100% - 4em);
  margin: 3em auto 1.5em;
  padding-bottom: 0.75em;
  border-bottom: 2px dotted #000;
}

/* p-copyright------------------- */
.p-copyright {
  width: 100%;
  position: relative;
}

.p-copyright p {
  display: block;
  width: fit-content;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 2em;
  text-align: left;
  font-weight: bold;
}

/* SNS p-sns------------------- */
.p-sns {
  background-color: var(--bgSns);
  color: var(--colorSns);
  padding: 1em 0 3em;
  position: relative;
}
.p-sns::before {
  content: "";
  background-image: url(../img/bgImage/deco7.png);
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  position: absolute;
  width: 100%;
  aspect-ratio: 1 / 0.492;
  transform: translateY(-100%);
  top: 0;
  left: 0;
  z-index: -1;
  /* opacity: 0.5; */
}
.p-sns__h2 {
  display: block;
  margin-top: 1em;
  color: var(--colorSns);
}
.p-sns__box {
  margin-top: 1rem;
}
.p-sns__icon {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 32px;
}
.p-sns__icon a {
  display: inline-block;
  width: 100px;
}

/* 600px以上 ------------------------- */
@media (min-width: 600px) {
}

/* 768px以上 ------------------------- */
@media (min-width: 768px) {
  p {
    font-size: 1.12em;
  }

  .p-roomFragrance,
  .p-schedule,
  .p-special,
  .p-shopInfo,
  .p-copyright {
    margin-top: 10em;
  }

  .p-message__inner,
  .p-fragrance__inner,
  .p-roomFragrance__inner,
  .p-schedule__inner,
  .p-special__inner,
  .p-shopInfo__inner {
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
  }

  /* .p-h3 {
    width: 80vw;
    margin-left: auto;
    margin-right: auto;
  } */

  .p-belt::before {
    width: 50%;
  }

  /* 導入メッセージ p-message------------------- */
  .p-message {
    margin-top: 6em;
  }
  .p-message::before {
    top: -6em;
    max-width: 800px;
  }
  /* 導入メッセージ p-message------------------- */
  .p-message__p {
    line-height: 2.5;
    margin: 0;
  }

  /* フレグランスに関する p-fragrance------------------- */
  /*  */
  .p-fragrance {
    margin-top: 7em;
  }
  .p-fragrance::before {
    width: 50%;
    transform: translateY(-20%);
    top: 0;
  }

  .p-fragrance__content {
    width: 100%;
    margin: 6em auto 0;
  }

  .p-fragrance__flexBox {
    display: flex;
    flex-flow: row;
    align-items: center;
  }
  .p-fragrance__img1 {
    width: 47%;
  }
  .p-fragrance__img2 {
    width: 53%;
  }
  .p-fragrance__img3,
  .p-fragrance__img4 {
    max-width: 600px;
    margin: 0 auto;
  }
  .p-fragrance__img3 {
    margin-top: 4em;
  }

  /* ルームフレグランスに関する p-roomF------------------- */
  .p-roomFragrance::before {
    width: 60%;
    transform: translateY(-20%);
    top: 0;
  }

  .p-roomFragrance__img1,
  .p-roomFragrance__img2 {
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
  }

  /* スケジュールに関する p-schedule------------------- */
  .p-schedule::before {
    width: 60%;
    transform: translateY(-40%);
  }
  .p-schedule__h3 {
    margin-top: 2em;
    line-height: 2;
  }
  .p-schedule__table {
    width: 600px;
    margin-top: 4em;
  }
  .p-schedule__th,
  .p-schedule__td {
    padding: 1em 0.5em;
    margin: 0;
    border-top: 1px solid var(--pColor);
    border-left: 1px solid var(--pColor);
    font-size: 1.125em;
  }
  .p-schedule__td p {
    font-size: 1em;
  }

  /* スペシャル p-special------------------- */
  .p-special::before {
    width: 50%;
    top: 0;
    right: 0;
  }
  .p-special__h3 {
    margin-top: 2em;
    font-size: 1.3em;
  }
  .p-special__h3 span {
    margin-top: 0.5em;
    font-size: 1.25em;
  }
  .p-special__img {
    margin-top: 5em;
    max-width: 500px;
  }
  .p-special__note {
    font-size: 1.125em;
  }
  .p-special__table {
    margin-top: 4em;
    max-width: 600px;
  }
  .p-special__th,
  .p-special__td {
    padding: 1em;
    margin: 0;
    font-size: 1.125em;
  }
  .p-special__dl {
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
  }
  .p-special__dt,
  .p-special__dd {
    width: 100%;
    padding: 0;
    font-size: 1.2em;
    margin: 0;
    line-height: 1.5;
  }
  .p-special__dt {
    margin-top: 1.5em;
    font-size: 1.4em;
  }
  .p-special__dd {
    font-size: 1.125em;
    padding: 1em 0 24px;
  }
  .p-special__dd p {
    font-size: 0.9em;
    line-height: 1.25;
    margin: 0.5em 0 0;
  }

  /* ショップインフォメーション p-shopInfo------------------- */
  .p-shopInfo::before {
    width: 50%;
    transform: translateY(-30%);
    top: 0;
    left: 0;
  }
  .p-shopInfo__h3 {
    max-width: 400px;
  }
  /* p-copyright------------------- */

  /* SNS p-sns------------------- */
  .p-sns::before {
    width: 100%;
    transform: translateY(-100%);
    aspect-ratio: 1 / 0.492;
    top: 0;
    left: 0;
  }
}
