@charset "utf-8"; /* ==========================================
 共通
============================================*/
* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

/* フォント定義 */
:root {
  --font-default: "Hiragino Kaku Gothic Pro", "meiryo", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", sans-serif;
  /*  --font-serif: "Times New Roman", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;*/
  --font-serif: "Shippori Mincho", serif;
  --font-gothic: "Yu Gothic Medium", "游ゴシック Medium", YuGothic, "游ゴシック体", "ヒラギノ角ゴ Pro W3", "メイリオ", sans-serif;
}

.font-default {
  font-family: var(--font-default);
}

.font-serif {
  font-family: var(--font-serif);
}

.font-gothic {
  font-family: var(--font-gothic);
}

body {
  font-family: var(--font-gothic);
  font-size: clamp(16px, 3.73vw, 18px);
  line-height: 1.5;
  color: var(--color-default);
  width: 100%;
  height: 100%;
  overflow-x: hidden;
  word-break: break-all;
}

@media (min-width: 992px) {
  body {
  }
}

/* カラー定義 */
:root {
  --color-default: #000000;
  --color-primary: #db5171;
  --color-secondary: #ff71a8;
  --color-pink: #f7d2db;
  --color-pink2: #f0a9c2;
  --color-pink3: #ffdbfb;
  --color-pink4: #f8bfcc;
  --color-pink5: #e781a0;
  --color-pink6: #dd82a5;
  --color-pink7: #ff3a72;
  --color-pink8: #f0819b;
  --color-pink9: #dd5f9a;
  --color-ochar: #c4a883;
  --color-beige: #faf4e7;
  --color-red: #e6006a;
  --color-dark: #3e3e3e;
  --color-gray: #707070;
  --color-gray2: #f4f4f4;
  --color-gray3: #d9d9d9;
}

.text-default {
  color: var(--color-default) !important;
}

.text-primary {
  color: var(--color-primary) !important;
}

.text-secondary {
  color: var(--color-secondary) !important;
}

.text-pink {
  color: var(--color-pink) !important;
}

.text-pink2 {
  color: var(--color-pink2) !important;
}

.text-pink3 {
  color: var(--color-pink3) !important;
}

.text-pink4 {
  color: var(--color-pink4) !important;
}

.text-pink5 {
  color: var(--color-pink5) !important;
}

.text-pink6 {
  color: var(--color-pink6) !important;
}

.text-pink7 {
  color: var(--color-pink7) !important;
}

.text-pink8 {
  color: var(--color-pink8) !important;
}

.text-pink9 {
  color: var(--color-pink9) !important;
}

.text-ochar {
  color: var(--color-ochar) !important;
}

.text-beige {
  color: var(--color-beige) !important;
}

.text-red {
  color: var(--color-red) !important;
}

.text-dark {
  color: var(--color-dark) !important;
}

.text-gray {
  color: var(--color-gray) !important;
}

.text-gray2 {
  color: var(--color-gray2) !important;
}

.text-gray3 {
  color: var(--color-gray3) !important;
}

.bg-primary {
  background-color: var(--color-primary) !important;
}

.bg-secondary {
  background-color: var(--color-secondary) !important;
}

/* 文字サイズ */
.text-larger {
  font-size: 1.3em;
}

.text-large {
  font-size: 1.9em;
}

/* マーカー */
.mark,
mark {
  background-color: #f0ff00;
}

.mark--orange {
  background-color: #ffd36f;
}

/* 画像 */
picture {
  display: block;
}

img {
  max-width: 100%;
  height: auto;
}

.btn img,
a img,
button img,
.hover-bright {
  transition: 0.3s;
}

.hover-bright:hover,
.btn:hover img,
a:hover img,
button:hover img {
  filter: brightness(1.2);
}

/* サイズ */
.small,
small {
  font-size: 80%;
}

/* 段落 */
p {
  margin-bottom: 1em;
}

/* スペーサー */
hr {
  margin: 0;
  border: none;
}

.spacer {
  margin-bottom: 2em;
  background-color: rgba(255, 255, 255, 0);
}

.spacer--lg {
  margin-bottom: 3em;
}

/* リスト */
ul,
ol {
  margin: 0;
  padding: 0;
  list-style: none;
}

/* ボタン */
.btn {
  position: relative;
  transition: 0.3s;
}

.btn:focus {
  box-shadow: none;
}

/* TOPに戻る */
#page-top {
  position: fixed;
  right: 5%;
  bottom: calc(100vw * (70 / 375) + 20px);
  font-size: 100%;
  margin: 0;
  z-index: 10;
  opacity: 0;
  transform: translateY(100%);
  transition: 0.5s ease-in-out;
}

#page-top.show {
  opacity: 1;
  transform: translateY(0);
}

#page-top a {
  padding: 1em;
  background-image: linear-gradient(225deg, var(--color-primary), var(--color-secondary));
  color: #fff;
  text-decoration: none;
  transition: all 0.5s ease;
  border-radius: 2px;
  display: block;
  line-height: 1;
}

#page-top a:hover {
  filter: brightness(1.2);
}

@media (min-width: 76px) {
  #page-top {
    right: 25px;
    bottom: 95px;
    font-size: 1em;
  }
}

/* ==========================================
 コンテナ
============================================*/
@media (min-width: 992px) {
  .container {
    max-width: 1024px;
  }
}

@media (min-width: 1400px) {
  .container {
    /* max-width: 1424px; */
  }
}

/* ==========================================
 セクション
============================================*/
.section {
  position: relative;
}

/* ==========================================
 見出し
============================================*/
/* Type1 */
.heading-type1 {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
}

.heading-type1::before,
.heading-type1::after {
  transform: scale(0.5);
}

.heading-type1::before {
  content: url("../images/ico-glint-w1@2x.png");
  align-self: flex-end;
}

.heading-type1::after {
  content: url("../images/ico-glint-w2@2x.png");
  align-self: flex-start;
}

@media (min-width: 992px) {
  .heading-type1::before,
  .heading-type1::after {
    transform: scale(1);
  }

  .heading-type1::before {
    content: url("../images/ico-glint-w1.png");
  }

  .heading-type1::after {
    content: url("../images/ico-glint-w2.png");
  }
}

/* Type2 */
.heading-type2 {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  grid-gap: 1em;
}

.heading-type2::before,
.heading-type2::after {
  transform: scale(0.5);
}

.heading-type2::before {
  content: url("../images/ico-glint-p1@2x.png");
  align-self: flex-end;
}

.heading-type2::after {
  content: url("../images/ico-glint-p2@2x.png");
  align-self: flex-start;
}

@media (min-width: 992px) {
  .heading-type2::before,
  .heading-type2::after {
    transform: scale(1);
  }

  .heading-type2::before {
    content: url("../images/ico-glint-p1.png");
  }

  .heading-type2::after {
    content: url("../images/ico-glint-p2.png");
  }
}

/* ==========================================
 ヘッダー
============================================*/
.c-header {
  padding: 10px;
  height: 50px;
}

.c-header > .row {
  height: 100%;
}

.c-header__brand {
  display: flex;
  align-items: center;
  grid-gap: 10px;
  text-decoration: none;
}

.c-header__sitename {
  order: 1;
  font-size: clamp(11px, 2.93vw, 18px);
  font-size: 11px;
  font-weight: normal;
  margin: 0;
  color: #313131;
  line-height: 1;
  transform: translateY(11%);
}

.c-header__logo {
  order: 0;
}

.c-header__logo img {
  max-width: 172px;
  width: 45.866vw;
}
@media (min-width: 768px) {
  .c-header__sitename {
    transform: translateY(24%);
  }
}
@media (min-width: 1400px) {
  .c-header {
    padding: 0;
    height: auto;
  }

  .c-header .container {
    max-width: 1424px;
  }

  .c-header__brand {
    flex-direction: column-reverse;
    grid-gap: 5px;
    align-items: flex-start;
    padding-top: 20px;
  }

  .c-header__sitename {
    font-size: 18px;
    transform: none;
  }

  .c-header__logo img {
    max-width: 371px;
    width: auto;
  }
}

/* ==========================================
 ドロワー
============================================*/
.drawer-hamburger {
  width: 50px;
  height: 50px;
  padding: 5px;
  display: flex;
  justify-content: center;
  align-items: center;
  box-sizing: border-box;
}

.drawer-hamburger-icon {
  margin-top: 0;
}

.drawer-hamburger-icon,
.drawer-hamburger-icon:after,
.drawer-hamburger-icon:before {
  background-color: var(--color-primary);
  width: 25px;
}

.drawer--right .drawer-nav {
  right: -100%;
}

.drawer-nav {
  width: 100%;
  /* top: 48px; */
  z-index: 100;
}

.drawer--right.drawer-open .drawer-hamburger {
  right: 0;
  z-index: 101;
}

.drawer-open .drawer-overlay {
  display: none;
}

@media (min-width: 1400px) {
  .drawer-hamburger {
    display: none;
  }

  .drawer-nav {
    position: static;
    width: auto;
    display: flex;
    justify-content: flex-end;
    align-items: center;
  }
}

/* for iphone */
.drawer--top.drawer-open .drawer-nav {
  top: 0;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}

.drawer--left.drawer-open .drawer-nav,
.drawer--left .drawer-hamburger,
.drawer--left.drawer-open .drawer-navbar .drawer-hamburger {
  left: 0;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}

.drawer--right.drawer-open .drawer-nav,
.drawer--right .drawer-hamburger,
.drawer--right.drawer-open .drawer-navbar .drawer-hamburger {
  right: 0;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}

/* ==========================================
 グローバルナビ
============================================*/
:where(.drawer-menu) .c-header__brand {
  padding: 10px 15px;
}
.menu {
  padding: 10px 15px;
}

.menu-item {
  border-bottom: 2px solid var(--color-gray2);
}

.menu-item:first-child {
  border-top: 2px solid var(--color-gray2);
}

.menu-item a {
  height: 45px;
  display: flex;
  justify-content: center;
  align-items: center;
  color: var(--color-primary);
  text-decoration: none;
  font-size: 19px;
  transition: 0.3s;
}
@media (min-width: 768px) {
  :where(.drawer-menu) .c-header__brand {
    justify-content: center;
  }
}
@media (min-width: 1400px) {
  :where(.drawer-menu) .c-header__brand {
    display: none;
  }
  .menu {
    padding: 0;
    display: flex;
  }

  .menu-item {
    border: none;
  }

  .menu-item:first-child {
    border: none;
  }

  .menu-item a {
    height: auto;
    font-size: 18px;
    padding: 1em;
  }

  .menu-item a:hover {
    color: var(--bs-white);
    background-color: var(--color-primary);
  }
}

/* ==========================================
 CTA
============================================*/
.cta {
  background-color: var(--color-primary);
  padding: 15px;
}

.cta__pic {
  display: block;
}

.cta__btn {
  transition: 0.3s;
}

.cta__btn:hover {
  filter: brightness(1.1);
  transform: translateY(4px);
}

.cta__btn--tel {
}

.cta__btn--mail {
}

.cta__btn--line {
}

/* ==========================================
 キービジュアル
============================================*/
.kv {
}

.kv__container {
}

.kv__body {
}

.kv__pic {
}

.kv__img {
}

@media (min-width: 1400px) {
  .kv__container {
    max-width: 1424px;
  }
}

/* ==========================================
 お悩み
============================================*/
.trouble {
}

.trouble__container {
}

.trouble__header {
  padding: 35px 0;
  text-align: center;
}

.trouble__txt1 {
}

.trouble__body {
}

.trouble__box {
  background-color: var(--color-pink);
  padding: 20px 15px;
}

.rich-font {
  font-family: var(--font-serif);
}

.trouble__heading {
  text-align: center;
  margin-bottom: 15px;
  font-weight: bold;
  font-size: clamp(22px, 5.86vw, 44px);
}

.trouble__list {
}

.trouble__item {
  border-bottom: 1px dashed var(--bs-white);
  padding: 0.5em 0 0.5em 2em;
  background: url(../images/ico-check@2x.png) no-repeat;
  background-size: 28px;
  background-position: left top 7px;
}

.trouble__footer {
  padding: 25px 0;
  text-align: center;
}

.trouble__txt2 {
}

@media (min-width: 992px) {
  .trouble__header {
    padding: 85px 0 45px;
  }

  .trouble__box {
    padding: 30px 45px 60px;
  }

  .trouble__heading {
    margin-bottom: 40px;
  }

  .trouble__list {
    display: flex;
    flex-wrap: wrap;
    grid-column-gap: 30px;
  }

  .trouble__item {
    width: calc((100% - 30px) / 2);
    padding: 0.5em 0 0.5em 2em;
    background: url(../images/ico-check.png) no-repeat;
    background-size: 36px;
    background-position: left top 12px;
    font-size: 23px;
  }

  .trouble__footer {
    padding: 55px 0;
  }
}

/* ==========================================
 キャンペーン
============================================*/
.camp {
}

.camp__container {
}

.camp__body {
  padding-bottom: 25px;
}

.camp__box {
  background-color: var(--color-beige);
  border-top: 6px solid var(--color-primary);
  border-bottom: 6px solid var(--color-primary);
  border-color: #eba8b1;
  padding: 12px;
}

.camp__heading {
  background-color: var(--bs-white);
  color: var(--color-gray);
  text-align: center;
  border-radius: 8px;
  padding: 0.3em;
  margin-bottom: 10px;
  font-weight: bold;
}

.camp__txt1 {
  /* text-align: center; */
  /* display: block; */
  font-weight: bold;
  font-size: 200%;
  color: var(--color-secondary);
}

.camp__txt1 .num {
  font-size: 200%;
  line-height: 1;
}

.camp__pic {
  text-align: center;
}

.camp__txt2 {
}

.camp__txt3 {
  color: var(--color-primary);
  text-align: center;
  font-weight: bold;
  margin-bottom: 1em;
}

@media (min-width: 992px) {
  .camp__body {
    padding-bottom: 50px;
  }

  .camp__box {
    padding: 15px 30px 30px;
  }

  .camp__heading {
    width: 480px;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 20px;
  }

  .camp__txt1 {
    font-size: 300%;
  }

  .camp__txt3 {
    font-size: 25px;
  }
}

/* ==========================================
 取り組み
============================================*/
.attempt {
  padding-top: 50px;
  padding-bottom: 50px;
}

.attempt__container {
  --bs-gutter-x: 0;
}

.attempt__body {
}

.attempt__box {
  background-color: var(--color-secondary);
  padding: 20px;
  border-radius: 0.5em;
}

.attempt__list {
  display: flex;
  flex-direction: column;
  grid-gap: 15px;
}

.attempt__item {
  background-color: var(--bs-white);
  border-radius: 0.5em;
}

.attempt__item-header {
  font-size: 124%;
  padding: 0.6em 1.5em 0.6em 1em;
  line-height: 1.3;
  position: relative;
}

.attempt__item-header::before {
  content: "＋";
  font-weight: bold;
  color: var(--color-primary);
  position: absolute;
  top: 50%;
  right: 0.5em;
  transform: translateY(-50%);
}

.attempt__item-header.open::before {
  content: "－";
}

.attempt__item-body {
  display: none;
  padding: 25px;
}

.attempt__pic {
  text-align: center;
}

.attempt__img {
}

@media (min-width: 992px) {
  .attempt {
    padding-top: 45px;
    padding-bottom: 110px;
  }

  .attempt__container {
    --bs-gutter-x: 0.75rem;
  }

  .attempt__box {
    border-radius: 1em;
    padding: 22px;
  }

  .attempt__item-body {
    padding: 45px 60px 60px;
  }

  .attempt__desc {
    display: flex;
    align-items: center;
    grid-gap: 25px;
  }

  .attempt__desc p {
    margin-bottom: 0;
    width: 40%;
  }
}

/* ==========================================
 効果
============================================*/
.effect {
}

.effect__header {
  padding-top: 20px;
}

.effect__container {
}

.effect__heading {
  margin-bottom: 1em;
  font-size: clamp(26px, 6.66vw, 45px);
  font-weight: bold;
  line-height: 1.5;
}

.effect__body {
}

.effect__hydra {
}

.effect__box {
  padding-top: 20px;
  padding-bottom: 20px;
}

.effect__box--1 {
  background-color: var(--color-pink);
  padding-bottom: 0;
}

.effect__box--2 {
  background-color: var(--color-pink2);
}

.effect__box--3 {
  background-color: var(--color-pink3);
}

.effect__box--4 {
  background-color: var(--color-pink2);
}

.effect__box--5 {
  background-color: var(--color-pink3);
}

.effect__inner {
}

.effect__box-heading {
  text-align: center;
  /* font-size: clamp(22px, 5.86vw, 40px); */
  font-size: clamp(20px, 5vw, 40px);
  margin-bottom: 0.3em;
  min-height: 2em;
  font-weight: bold;
}

.effect__pic {
  margin-bottom: 20px;
  text-align: center;
}

.effect__img {
}

.effect__list {
  display: flex;
  flex-direction: column;
  grid-gap: 1em;
  margin-bottom: 45px;
}

.effect__item {
  background-color: var(--bs-white);
  border-radius: 0.5em;
}

.effect__item-header {
  font-size: 124%;
  padding: 0.6em 1.5em 0.6em 1em;
  line-height: 1.3;
  position: relative;
}

.effect__item-body {
  display: none;
  padding: 25px;
  padding-top: 0;
}

.effect__item-header::before {
  content: "＋";
  font-weight: bold;
  color: var(--color-primary);
  position: absolute;
  top: 50%;
  right: 0.5em;
  transform: translateY(-50%);
}

.effect__item-header.open::before {
  content: "－";
}

:where(.effect__box) .col--first {
  text-align: center;
  margin-bottom: 1em;
}

:where(.effect__box) .col--second {
}

:where(.effect__box) .col--third {
}

.effect__box-title {
  font-size: clamp(23px, 6.13vw, 33px);
  font-weight: bold;
  margin-bottom: 0.5em;
}

.effect__box-meta {
  background-color: var(--bs-white);
  color: var(--color-primary);
  border-radius: 100vh;
  display: inline-block;
  padding: 0.3em 1.5em 0.5em;
  font-size: clamp(17px, 4.53vw, 22px);
  font-weight: bold;
  line-height: 1;
}

.effect__pic {
}

.effect__hifu {
}

:where(.effect__hifu) .effect__box--1 {
  background-color: var(--color-pink8);
}

:where(.effect__hifu) .effect__box--2 {
  background-color: var(--color-pink4);
}

:where(.effect__hifu) .effect__box--3 {
  background-color: var(--color-pink6);
}

:where(.effect__hifu) .effect__box--4 {
  background-color: var(--color-pink4);
}

:where(.effect__hifu) .effect__box--5 {
  background-color: var(--color-pink6);
}

:where(.effect__hifu) .effect__box--6 {
  background-color: var(--color-pink4);
}

@media (min-width: 768px) {
  .effect__box-heading {
    grid-gap: 5px;
    margin-bottom: 20px;
  }

  .effect__pic {
    margin-bottom: 30px;
  }

  .effect__list {
    margin-bottom: 35px;
  }

  .effect__item-body {
    padding: 30px 55px 40px;
  }

  .effect__box {
    padding-top: 45px;
    padding-bottom: 45px;
  }

  .effect__box--1 {
    padding-top: 25px;
    padding-bottom: 0;
  }

  :where(.effect__box) .col--first {
    grid-area: title;
    align-self: flex-end;
  }

  :where(.effect__box) .row {
    display: grid;
  }

  :where(.effect__box--2, .effect__box--4, .effect__box--6) .row {
    grid-template-areas: "title img" "desc img";
  }

  :where(.effect__box) .col--second {
    grid-area: img;
  }

  :where(.effect__box) .col--third {
    grid-area: desc;
  }

  :where(.effect__box--3, .effect__box--5) .row {
    grid-template-areas: "img title" "img desc";
  }
}

/* ==========================================
 お客さまの声
============================================*/
.voice {
  padding-top: 20px;
  padding-bottom: 20px;
}

.voice__header {
  text-align: center;
}

:where(.voice) .img_txt {
}

@media (min-width: 992px) {
  .voice {
    padding-top: 35px;
    padding-bottom: 29px;
  }
}

/* ==========================================
 選ばれる理由
============================================*/
.reason {
  background-color: var(--color-secondary);
  padding-bottom: 30px;
}

.reason__header {
  padding-top: 40px;
  padding-bottom: 20px;
}

.reason__container {
}

.reason__heading {
  text-align: center;
  font-size: clamp(29px, 7.73vw, 33px);
  font-weight: bold;
  margin-bottom: 0;
}

.reason__body {
}

.reason__list {
  display: flex;
  flex-direction: column;
  grid-gap: 20px;
}

.reason__item {
}

.reason__item-header {
  color: var(--bs-white);
  background-color: var(--color-ochar);
  text-align: center;
  padding: 15px;
  font-size: clamp(20px, 5.33vw, 30px);
  font-weight: bold;
  line-height: 1.5;
  margin-bottom: 0;
  position: relative;
}

.reason__item-body {
  background-color: var(--bs-white);
  padding: 15px;
  padding-top: 0;
}

.reason__desc {
  padding-top: 15px;
}

.reason__pic {
  position: relative;
}

.reason__pic::before {
  content: "";
  position: absolute;
  top: 0;
  left: -15px;
  width: calc(100% + 30px);
  height: 50%;
  background-color: var(--color-ochar);
  z-index: 0;
}

.reason__img {
  position: relative;
}

@media (min-width: 992px) {
  .reason {
    margin-top: 60px;
    padding-bottom: 115px;
  }

  .reason__header {
    padding-top: 40px;
    padding-bottom: 25px;
  }

  .reason__list {
    grid-gap: 30px;
  }

  .reason__item-header {
    padding: 0.9em;
  }

  .reason__item-body {
    padding: 40px 45px;
    display: flex;
    grid-gap: 50px;
  }

  .reason__pic {
    order: 1;
    width: calc((100% - 50px) / 2);
  }

  :where(.reason__item:nth-child(even)) .reason__pic {
    order: 0;
  }

  .reason__pic::before {
    display: none;
  }

  .reason__desc {
    order: 0;
    width: calc((100% - 50px) / 2);
    padding-top: 0;
  }

  :where(.reason__item:nth-child(even)) .reason__desc {
    order: 1;
  }

  .reason__img {
    /* max-width: initial; */
    max-width: 590px;
  }

  :where(.reason__item:nth-child(even)) .reason__img {
    transform: translateX(calc(430px - 590px));
  }
}

/* ==========================================
 料金比較
============================================*/
.compare {
  padding-top: 50px;
  padding-bottom: 25px;
}

.compare__container {
}

.compare__header {
}

.compare__heading {
  margin-bottom: 60px;
  font-size: clamp(26px, 6.66vw, 45px);
  font-weight: bold;
  line-height: 1.5;
  position: relative;
}

.compare__heading::before {
  content: url("../images/ico-glint-p3@2x.png");
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%) scale(0.5);
}

.compare__lead {
  font-size: clamp(16px, 4.25vw, 26px);
}

.compare__body {
}

.compare__pic {
  text-align: center;
}

.compare__img {
}

@media (min-width: 992px) {
  .compare {
    padding-top: 100px;
    padding-bottom: 50px;
  }

  .compare__heading {
    margin-bottom: 85px;
  }

  .compare__heading::before {
    transform: translateX(-50%);
  }
}

/* ==========================================
 分析
============================================*/
.analize {
  background-color: var(--color-secondary);
  padding-top: 25px;
  padding-bottom: 25px;
}

.analize__container {
}

.analize__box {
  background-color: var(--bs-white);
  padding: 15px;
}

.analize__heading {
  font-size: clamp(22px, 5.86vw, 36px);
  line-height: 1.3;
  font-weight: bold;
  margin-bottom: 1em;
}

.analize__fig {
}

.analize__pic {
  margin-bottom: 1em;
}

.analize__cap {
}

@media (min-width: 992px) {
  .analize {
    padding-top: 38px;
    padding-bottom: 38px;
  }

  .analize__box {
    padding: 20px;
  }

  .analize__heading {
    margin-bottom: 20px;
  }

  :where(.analize__box) .row {
    --bs-gutter-x: 15px;
  }

  .analize__fig {
    margin-bottom: 0;
  }

  .analize__pic {
    margin-bottom: 0.5em;
  }
}

/* ==========================================
 料金
============================================*/
.price {
  padding-top: 35px;
}

.price__header {
}

.price__container {
}

.price__heading {
  grid-gap: 0;
  font-size: clamp(19px, 5.06vw, 35px);
  font-weight: bold;
  min-height: 2.5em;
  margin-bottom: 0.5em;
}

.price__lead {
}

.price__body {
  background-color: var(--color-beige);
  padding-top: 25px;
  padding-bottom: 25px;
}

.price__list {
  display: flex;
  flex-direction: column;
  grid-gap: 20px;
}

.price__item {
  background-color: var(--bs-white);
  border-radius: 10px;
  padding: 25px;
}

.price__item-title {
  margin-bottom: 1em;
  font-size: 25px;
}

.price__item-desc {
  font-size: 20px;
  text-align: center;
}

.price__item-desc > span {
  display: inline-block;
  text-align: left;
}

@media (min-width: 992px) {
  .price {
    padding-top: 50px;
  }

  .price__container {
    max-width: 800px;
  }

  .price__lead {
    margin-bottom: 30px;
  }

  .price__body {
    padding-top: 35px;
    padding-bottom: 35px;
  }

  .price__list {
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    grid-gap: 12px;
  }

  .price__item {
  }

  .price__item-desc {
    font-size: 18px;
  }
}

@media (min-width: 1260px) {
  .price__container {
    max-width: 1288px;
  }

  .price__list {
    flex-wrap: nowrap;
  }
}

/* ==========================================
 施術の流れ
============================================*/
.flow {
  padding-top: 50px;
  padding-bottom: 40px;
}

.flow__container {
}

.flow__header {
}

.flow__heading {
  /* font-size: clamp(30px, 8vw, 38px); */
  font-size: clamp(15.3px, 4.1vw, 38px);
  font-weight: bold;
  min-height: 2.5em;
  margin-bottom: 0.5em;
}

.flow__body {
}

.flow__list {
  display: flex;
  flex-direction: column;
  grid-gap: 20px;
  counter-reset: count;
}

.flow__item {
  border-radius: 10px;
  overflow: hidden;
  counter-increment: count;
}

.flow__item-header {
  background-color: var(--color-pink7);
  color: var(--bs-white);
  padding: 0.5em 0.7em;
  position: relative;
  display: flex;
  align-items: center;
  margin-bottom: 0;
}

/* .flow__item-header::before {
  content: counter(count);
  line-height: 1;
  font-size: 200%;
  margin-right: 0.3em;
} */

.flow__item-body {
  background-color: var(--color-secondary);
  color: var(--bs-white);
  padding: 10px 20px 30px;
}

.flow__pic {
  text-align: center;
}

.flow__img {
}

@media (min-width: 992px) {
  .flow {
    padding-top: 115px;
    padding-bottom: 60px;
  }

  .flow__heading {
    margin-bottom: 55px;
  }

  .flow__item-header {
    font-size: 29px;
    padding-left: 20px;
  }

  .flow__item-body {
    padding: 25px 25px;
  }

  .flow__desc {
    line-height: 1.8;
  }

  :where(.flow__desc) p {
    padding-left: 50px;
    padding-right: 50px;
  }
}

/* ==========================================
 カウンセリング終了後
============================================*/
.after {
  padding-top: 20px;
  padding-bottom: 20px;
  background: url(../images/bg-after@2x.jpg) no-repeat;
  background-size: cover;
  height: calc(100vw * 1000 / 750);
}

.after__container {
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.after__header {
}

.after__heading {
  font-size: clamp(29px, 7.73vw, 42px);
}

.after__body {
}

.after__box {
  background-color: rgba(255, 255, 255, 0.7);
  padding: 1em 0.5em;
  line-height: 1.8;
}

@media (min-width: 768px) {
  .after {
    padding-top: 50px;
    padding-bottom: 25px;
    background-image: url(../images/bg-after.jpg);
    height: calc(100vw * 699 / 1440);
    max-width: 1440px;
    margin-left: auto;
    margin-right: auto;
  }

  .after__box {
    padding: 1em;
    width: 560px;
  }
}

/* ==========================================
 スタッフ紹介
============================================*/
.staff {
  padding-top: 65px;
  padding-bottom: 40px;
}

.staff__container {
}

.staff__header {
}

.staff__heading {
  font-size: clamp(30px, 8vw, 38px);
  font-weight: bold;
  min-height: 2.5em;
  margin-bottom: 1em;
  grid-gap: 5px;
}

.staff__body {
}

.staff__list {
  display: flex;
  flex-direction: column;
  grid-gap: 1em;
}

.staff__item {
}

.staff__pic {
  text-align: center;
  margin-bottom: 1.5em;
}

.staff__img {
}

.staff__prof {
}

.staff__name {
  /* font-weight: bold; */
  position: relative;
  font-size: clamp(24px, 6.4vw, 40px);
  line-height: 1.5;
}

.staff__name::after {
  content: attr(data-ruby);
  display: block;
  font-size: 50%;
  font-weight: normal;
  margin-bottom: 0.5em;
}

.staff__message {
  line-height: 2;
}

@media (min-width: 768px) {
  .staff {
    padding-top: 80px;
    padding-bottom: 65px;
  }

  .staff__heading {
    grid-gap: 5px;
    margin-bottom: 30px;
  }

  :where(.staff__item) .row {
    --bs-gutter-x: 30px;
    align-items: center;
  }

  .staff__pic {
    margin-bottom: 0;
  }

  .staff__title {
    font-size: 23px;
  }
}

/* ==========================================
 店舗情報
============================================*/
.salon {
  background-color: var(--color-pink8);
  padding-top: 15px;
  padding-bottom: 30px;
}

.salon__container {
}

.salon__header {
  margin-bottom: 15px;
}

.salon__heading {
  font-size: clamp(30px, 8vw, 38px);
  font-weight: bold;
  min-height: 2.5em;
  margin-bottom: 0.5em;
}

.salon__body {
}

.salon__pic {
  text-align: center;
}

.salon__pic + .salon__pic {
  margin-top: 0.5em;
}

.salon__img {
}

.salon__info {
  margin-top: 35px;
  margin-bottom: 10px;
  width: 100%;
}

.salon__name {
  caption-side: top;
  color: inherit;
  font-size: clamp(26px, 6.93vw, 34px);
  white-space: nowrap;
}

:where(.salon__info) th,
:where(.salon__info) td {
  border-top: 1px solid;
  padding-top: 1em;
  padding-bottom: 1em;
}

:where(.salon__info) th {
  vertical-align: top;
  font-weight: inherit;
  white-space: nowrap;
  padding-right: 1em;
}

:where(.salon__info) td {
}

@media (min-width: 992px) {
  .salon {
    padding-top: 30px;
    padding-bottom: 55px;
  }

  .salon__header {
    margin-bottom: 50px;
  }

  .salon__heading {
    min-height: 2em;
    grid-gap: 5px;
  }

  :where(.salon__body) .row {
    --bs-gutter-x: 35px;
    margin-bottom: 50px;
  }

  .salon__info {
    margin-top: 0;
    margin-bottom: 0;
  }

  .salon__name {
    padding-top: 0;
    padding-bottom: 20px;
  }

  :where(.salon__info) th,
  :where(.salon__info) td {
    font-size: 20px;
  }

  :where(.salon__info) th {
    padding-right: 1.5em;
  }
}

/* ==========================================
 よくある質問
============================================*/
.faq {
  padding-top: 15px;
  padding-bottom: 45px;
  background-color: var(--color-pink);
}

.faq__container {
}

.faq__header {
  margin-bottom: 15px;
}

.faq__heading {
  font-size: clamp(30px, 8vw, 38px);
  font-weight: bold;
  min-height: 2.5em;
  margin-bottom: 0;
}

.faq__body {
  background-color: var(--bs-white);
  padding: 30px 25px 45px;
  display: flex;
  flex-direction: column;
  grid-gap: 5em;
}

.faq__group {
}

.faq__category {
  text-align: center;
  margin-bottom: 1em;
  /* font-size: clamp(26px, 6.4vw, 33px); */
  font-size: clamp(24px, 6.1vw, 33px);
  font-weight: bold;
}

.faq__list {
}

.faq__item {
  border-bottom: 1px dashed var(--color-dark);
}

.faq__item-header {
  position: relative;
  color: var(--color-primary);
  font-weight: bold;
  display: flex;
  padding-top: 1em;
  padding-bottom: 1em;
}

.faq__item-header::before {
  content: "＋";
  margin-right: 0.5em;
  transition: 0.3s;
}

.faq__item-header.open::before {
  content: "－";
}

.faq__item-body {
  display: none;
  padding-bottom: 1em;
}

@media (min-width: 992px) {
  .faq {
    padding-top: 25px;
    padding-bottom: 70px;
  }

  .faq__header {
    margin-bottom: 20px;
  }

  .faq__heading {
    min-height: 2em;
    grid-gap: 5px;
  }

  .faq__body {
    padding: 40px 50px 80px;
    grid-gap: 70px;
  }

  .faq__item-header {
    font-size: 110%;
    padding-top: 1.5em;
    padding-bottom: 1.5em;
  }

  .faq__item-body {
    padding-left: 1.5em;
  }
}

/* ==========================================
 ご予約・お問い合わせ
============================================*/
.contact {
  padding-top: 40px;
}

.contact__header {
}

.cta__container {
}

.contact__heading {
  font-size: clamp(22px, 5.86vw, 38px);
  font-weight: bold;
  min-height: 2.5em;
  margin-bottom: 1em;
  grid-gap: 0;
}

.contact__lead {
  margin-bottom: 2em;
}

@media (min-width: 992px) {
  .contact {
    padding-top: 55px;
  }

  .contact__heading {
    min-height: 2em;
    grid-gap: 5px;
  }

  .contact__lead {
  }
}

/* ==========================================
 ご予約フォーム
============================================*/
.form {
  padding-top: 65px;
  padding-bottom: 35px;
}

.form__header {
}

.form__container {
}

.form__heading {
  font-size: clamp(30px, 8vw, 38px);
  font-weight: bold;
  min-height: 2.5em;
  margin-bottom: 1em;
  grid-gap: 0;
}

.form__description {
  width: fit-content;
  text-align: center;
  margin-left: auto;
  margin-right: auto;
}
.form__body {
  background-color: var(--color-gray2);
}

.form__form {
  /* background-color: var(--color-gray2); */
  padding: 20px 25px 40px;
  font-size: 110%;
}

.form__group {
}

.form__group + .form__group {
  margin-top: 1.5em;
}

.form__group-row {
  row-gap: 6px;
}

.form-label {
  margin-bottom: 0.2em;
}

.form-label > span:first-of-type {
  color: var(--color-pink9);
  font-weight: normal;
}

.form-control {
  padding: 0.7em;
  font-size: inherit;
}

.form-check {
  background-color: var(--bs-white);
  border: 1px solid #ced4da;
  border-radius: 0.3rem;
  padding: 0.7em;
  padding-left: 2em;
}

.form-check-input:checked {
  background-color: var(--color-gray);
  border-color: var(--color-gray);
}

.form-select-lg {
  padding-top: 0.7em;
  padding-bottom: 0.7em;
  padding-left: 0.7em;
}

.form__submit {
  padding: 0;
  border: 0;
  display: block;
  margin: 1em auto 0;
}

/* calendar */
input[type="date"] {
  position: relative;
}

input[type="date"]::-webkit-inner-spin-button {
  -webkit-appearance: none;
}

input[type="date"]::-webkit-clear-button {
  -webkit-appearance: none;
}

input[type="date"]::-webkit-calendar-picker-indicator {
  position: absolute;
  width: 100%;
  height: 100%;
  opacity: 0;
}

@media (min-width: 992px) {
  .form {
    padding-top: 55px;
    padding-bottom: 70px;
  }

  .form__heading {
    min-height: 2em;
    grid-gap: 5px;
    margin-bottom: 30px;
  }

  .form__form {
    font-size: 100%;
    padding: 65px 25px 100px;
  }

  .form-control {
    padding: 1.1em 1em;
  }

  :where([for="input_order"]) + .row {
    --bs-gutter-x: 45px;
  }

  .form__submit {
    margin-top: 55px;
  }
}

/* ==========================================
 フローティングメニュー
============================================*/
.c-fl-menu {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  z-index: 8;
  /* 背景色 */
  /* ボーダー */
  background-color: var(--bs-white);
}

.c-fl-menu__container {
  --bs-gutter-x: 0;
  max-width: 1440px;
}

.c-fl-menu__content {
}

.c-fl-menu__list {
  display: flex;
}

.c-fl-menu__item {
  width: calc(100% / 3);
}

.c-fl-menu__link {
  display: block;
}

.c-fl__img {
  display: block;
}

@media (min-width: 992px) {
  .c-fl-menu__container {
    padding-top: 2px;
    padding-bottom: 2px;
  }
}

/* ==========================================
 フッター
============================================*/
.c-footer {
  text-align: center;
  padding: 25px;
  padding-bottom: calc(100vw * (66 / 375) + 25px);
  background-color: var(--color-primary);
  color: var(--bs-white);
}

@media (min-width: 768px) {
  .c-footer {
    padding-bottom: calc(100vw * (100 / 1440) + 25px);
  }
}
@media (min-width: 992px) {
  .c-footer {
    padding-bottom: 125px;
  }
}
