@charset "UTF-8";
/* ----------------------------------------------------------
   #Foundation
---------------------------------------------------------- */
html {
  overflow: auto;
  -webkit-text-size-adjust: 100%;
}

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

*, *::after, *::before, blockquote, body, dd, div, dl, dt, fieldset, form, h1, h2, h3, h4, h5, h6, input, p, pre, td, th {
  margin: 0;
  padding: 0;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

fieldset, img {
  border: 0;
}

figure {
  margin: 0;
}

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

ul, ol, li {
  list-style-type: none;
}

address, caption, cite, code, dfn, em, th, var {
  font-style: normal;
  font-weight: 400;
}

caption, th {
  text-align: left;
}

h1, h2, h3, h4, h5, h6 {
  font-size: 100%;
}

q::before, q::after {
  content: "";
}

input[type=checkbox], input[type=radio] {
  margin: 0 2px 0 0;
  padding: 0;
  vertical-align: -2px;
}

button, input[type=button], input[type=submit], input[type=text] {
  box-sizing: border-box;
  -webkit-appearance: none;
  border: 0;
  cursor: pointer;
  border-radius: 0;
  background: transparent;
}

/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
/* ----------------------------------------------------------
   #GLOBAL
---------------------------------------------------------- */
html {
  padding: 0;
  margin: 0;
  font-size: 10px;
  overflow-x: hidden;
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
}

body {
  font-family: "Roboto", "Zen Kaku Gothic New", "游ゴシック体", "Yu Gothic", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, "MS Pゴシック", "MS PGothic", sans-serif;
  font-weight: 400;
  font-size: 1.5rem;
  color: #333;
  line-height: 1.7;
  letter-spacing: 1px;
}

h1, h2, h3, h4, h5 {
  font-weight: 500;
  letter-spacing: 0.1em;
}

a {
  text-decoration: none;
  color: #DC69A5;
  transition: 0.3s;
}

a:hover {
  color: #8D3F63;
}

img {
  max-width: 100%;
  height: auto;
  transition: 0.3s;
  vertical-align: top;
}

#wrap {
  width: 100%;
}

strong {
  font-weight: 600;
}

/* ----------------------------------------------------------
   #Layout
---------------------------------------------------------- */
.l-header_inner {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  padding: 10px 15px 0 30px;
  z-index: 999;
}

.l-header_links {
  display: flex;
}

.l-header_grid {
  display: flex;
  justify-content: space-between;
  height: 100%;
}

.l-header_item {
  display: grid;
  grid-auto-flow: column;
  gap: 0 10px;
  position: relative;
  z-index: 999;
}

@media screen and (max-width: 1110px) {
  .l-header_inner {
    padding: 10px 10px 0 20px;
    height: 70px;
  }
}
/* #Base
-------------------------------------------------------------------------- */
.l-footer_inner {
  position: relative;
  width: 100%;
  max-width: 1260px;
  margin: 0 auto;
  padding: 0 15px;
}

.l-footer_grid {
  display: grid;
  grid-template-columns: 250px auto;
  justify-content: space-between;
  gap: 0 50px;
}

.l-footer_policy ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  font-size: 90%;
  gap: 10px 40px;
}

.l-footer_corporate {
  margin-top: 25px;
  padding: 30px 15px 20px 15px;
  border-radius: 5px;
}

.l-footer_copyright {
  color: #888;
}

.l-footer_bottom {
  padding: 0 15px;
}

@media screen and (max-width: 768px) {
  .l-footer_grid {
    grid-template-columns: 100%;
  }
  .l-footer_nav {
    padding-top: 30px;
    border-top: 1px solid #ddd;
  }
}
.l-main_grid {
  display: flex;
}
.l-main_grid .l-main_left {
  width: 100%;
}
.l-main_grid:has(.l-sidebar) .l-main_left {
  width: calc(100% - 275px);
}
@media screen and (max-width: 768px) {
  .l-main_grid {
    display: block;
  }
  .l-main_grid:has(.l-sidebar) .l-main_left {
    width: 100%;
  }
}

.l-sidebar {
  border-right: 1px solid #ddd;
}
.l-sidebar ul {
  position: sticky;
  left: 0;
  top: 100px;
  width: 275px;
}
@media screen and (max-width: 768px) {
  .l-sidebar {
    border: none;
    position: fixed;
    top: auto;
    bottom: 50px;
    right: 0;
    z-index: 990;
    pointer-events: none;
  }
  .l-sidebar > * {
    pointer-events: auto;
  }
  .l-sidebar ul {
    position: relative;
    top: 0;
    left: 400px;
  }
}

/* ----------------------------------------------------------
   #Object
---------------------------------------------------------- */

/* Comment
---------------------------------------------------------- */

/* タイトル 
----- object/component/_c-ttl ----- */
.c-ttl-1_deco {
  display: block;
  width: 100%;
  height: 200px;
  background-color: #FBF0F6;
  position: relative;
  overflow: hidden;
}
.c-ttl-1_deco::before {
  content: "";
  background: url("../img/ttl01_deco.svg") center/cover no-repeat;
  display: block;
  width: 865px;
  height: 55px;
  position: absolute;
  bottom: -1px;
  left: 50%;
  translate: -50%;
}

.c-ttl-1_img {
  height: 300px;
}
.c-ttl-1_img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.c-ttl-1 {
  display: block;
  font-size: 3.2rem;
  text-align: center;
  margin: -3.2rem auto 0;
  width: 100%;
  max-width: 510px;
  position: relative;
  z-index: 1;
}
.c-ttl-1 span {
  display: inline-block;
}

.c-ttl-2 {
  font-size: 3rem;
  margin-top: 90px;
  text-align: center;
}

.c-ttl-3 {
  font-size: 2.6rem;
  margin-top: 70px;
  text-align: center;
}

.c-ttl-4 {
  font-size: 2.2rem;
  margin-top: 50px;
}

.c-ttl-5 {
  font-size: 1.8rem;
}

@media screen and (max-width: 768px) {
  .c-ttl-1_deco {
    height: 140px;
  }
  .c-ttl-1_deco::before {
    background-image: url("../img/ttl01_deco_sp.svg");
    width: 480px;
    height: 33px;
  }
  .c-ttl-1_img {
    height: 210px;
  }
  .c-ttl-1 {
    padding: 0 15px;
    font-size: 2.7rem;
    margin-top: -1rem;
  }
  .c-ttl-2 {
    font-size: 2.5rem;
    margin-top: 60px;
  }
  .c-ttl-3 {
    font-size: 2.2rem;
    margin-top: 40px;
  }
  .c-ttl-4 {
    font-size: 2rem;
  }
}
/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
/* ボタン 
----- object/component/_c-btn ----- */
.c-btn {
  display: grid;
  place-content: center;
  font-size: 1.4rem;
  font-weight: 500;
  color: #fff;
  background-color: #DC69A5;
  border: 2px solid #DC69A5;
  margin: 50px auto 0;
  width: 300px;
  min-height: 50px;
  padding: 6px 55px 4px 45px;
  border-radius: 25px;
  position: relative;
}
.c-btn::before {
  content: "";
  background: url("../img/arrow_white.svg") center/cover no-repeat;
  display: block;
  width: 5px;
  height: 8px;
  position: absolute;
  top: 50%;
  right: 35px;
  translate: 0 -50%;
  transition: 0.3s;
}
.c-btn:hover {
  color: #fff;
  background-color: #8D3F63;
  border-color: #8D3F63;
}
.c-btn:hover::before {
  right: 30px;
  background-image: url("../img/arrow_white.svg");
}
.c-btn__outline {
  color: #DC69A5;
  background-color: #fff;
}
.c-btn__outline::before {
  background-image: url("../img/arrow_pink.svg");
}
.c-btn__outline.c-btn__blank::before {
  background: #DC69A5;
}
.c-btn__outline.c-btn__blank:hover::before {
  background: #fff;
}
.c-btn__blank::before {
  content: "";
  mask: url("../img/ico-blank.svg") center/contain no-repeat;
  background: #fff;
  display: block;
  width: 15px;
  height: 13px;
}
.c-btn__blank:hover::before {
  mask-image: url("../img/ico-blank--hover.svg");
  width: 17px;
  height: 15px;
  right: 33px;
  top: calc(50% - 1px);
}
.c-btn__back {
  background: #ccc;
  border: none;
}
.c-btn__back::before {
  right: auto;
  left: 35px;
  rotate: 180deg;
}
.c-btn__back:hover {
  background: #999;
}
.c-btn__back:hover::before {
  left: 30px;
}

.c-btn_big {
  display: grid;
  place-content: center;
  font-size: 1.5rem;
  font-weight: 500;
  text-align: center;
  color: #DC69A5;
  background-color: #fff;
  border: 2px solid #DC69A5;
  width: 300px;
  min-height: 65px;
  padding: 6px 45px 4px 35px;
  border-radius: 40px;
  position: relative;
}
.c-btn_big::before {
  content: "";
  background: url("../img/ico-pdf_pink.svg") center/cover no-repeat;
  display: block;
  width: 16px;
  height: 20px;
  position: absolute;
  top: 50%;
  right: 20px;
  translate: 0 -50%;
  transition: 0.3s;
}
.c-btn_big:hover {
  background-color: #FBF0F6;
}
.c-btn_big small {
  font-size: 1.3rem;
}
.c-btn_big.c-btn_blank {
  border-radius: 15px;
}
.c-btn_big.c-btn_blank::before {
  background-image: url("../img/ico-blank.svg");
  width: 15px;
  height: 13px;
}
.c-btn_big.c-btn_blank:hover::before {
  background-image: url("../img/ico-blank--hover.svg");
  width: 18px;
  height: 15px;
  right: 17px;
}
.c-btn_big.c-btn_ac2 {
  color: #0976A3;
  border: 2px solid #0976A3;
}
.c-btn_big.c-btn_ac2::before {
  background-image: url("../img/ico-pdf_blue.svg");
}
.c-btn_big.c-btn_ac2:hover {
  background-color: #EBF9FF;
}
.c-btn_big.c-btn_ac2.c-btn_blank {
  border-radius: 15px;
}
.c-btn_big.c-btn_ac2.c-btn_blank::before {
  mask: url("../img/ico-blank.svg") center/contain no-repeat;
  background: #0976A3;
}
.c-btn_big.c-btn_ac2.c-btn_blank:hover::before {
  mask-image: url("../img/ico-blank--hover.svg");
}

.c-btn_text {
  display: inline;
  font-weight: 500;
  padding-right: 30px;
  position: relative;
}
.c-btn_text::before {
  content: "";
  background: url("../img/arrow_btn.svg") center/cover no-repeat;
  display: block;
  width: 20px;
  height: 20px;
  position: absolute;
  top: 50%;
  right: 5px;
  translate: 0 -50%;
  transition: 0.3s;
}
.c-btn_text:hover::before {
  right: 0;
}

a:hover .c-btn_text::before {
  right: 0;
}

/*  色変更 */
.light .c-btn_text {
  color: #0976A3;
}
.light .c-btn_text::before {
  background-image: url("../img/arrow_btn_light.svg");
}
.light .c-btn_text::before .arrow_btn_color {
  fill: #42AFE3;
}

.standard .c-btn_text {
  color: #F39800;
}
.standard .c-btn_text::before {
  background-image: url("../img/arrow_btn_standard.svg");
}

.premium .c-btn_text {
  color: #EB6EA0;
}
.premium .c-btn_text::before {
  background-image: url("../img/arrow_btn_premium.svg");
}

.photo .c-btn_text {
  color: #007B43;
}
.photo .c-btn_text::before {
  background-image: url("../img/arrow_btn_photo.svg");
}

.c-btn-wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: center;
}

@media screen and (max-width: 960px) {
  .c-btn {
    min-height: 45px;
    margin-top: 40px;
  }
  .c-btn::before {
    right: 20px;
  }
  .c-btn__blank:hover::before {
    right: 18px;
  }
}
/* #Base
-------------------------------------------------------------------------- */
/* ハンバーガーボタン */
.c-hamburger {
  display: grid;
  place-content: center;
  place-items: center;
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background-color: #fff;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.25);
  border: solid 2px #fff;
  cursor: pointer;
  text-align: center;
  transition: 0.3s;
  /* ナビ開いてる時のボタン */
}
.c-hamburger.active {
  box-shadow: none;
  border-color: #eee;
}
.c-hamburger span {
  position: relative;
  display: block;
  height: 10px;
  width: 30px;
  transition: 0.3s;
  margin-top: 5px;
}
.c-hamburger span::before, .c-hamburger span::after {
  content: "";
  display: block;
  position: absolute;
  width: 30px;
  height: 2px;
  border-radius: 1px;
  left: 0;
  background-color: #DC69A5;
  -webkit-transition: 0.3s;
  -moz-transition: 0.3s;
  transition: 0.3s;
}
.c-hamburger span::before {
  top: 0;
}
.c-hamburger span::after {
  bottom: 0;
}
.c-hamburger p {
  font-size: 1.2rem;
  font-weight: 600;
  color: #DC69A5;
  line-height: 1;
  margin-top: 7px;
  letter-spacing: -0.01px;
}
.c-hamburger.active span {
  height: 15px;
}
.c-hamburger.active span::before {
  top: 7px;
  -webkit-transform: rotate(-30deg);
  -moz-transform: rotate(-30deg);
  transform: rotate(-30deg);
}
.c-hamburger.active span::after {
  top: 7px;
  bottom: auto;
  -webkit-transform: rotate(30deg);
  -moz-transform: rotate(30deg);
  transform: rotate(30deg);
}

@media screen and (max-width: 960px) {
  .c-hamburger {
    width: 50px;
    height: 50px;
  }
  .c-hamburger span {
    width: 20px;
  }
  .c-hamburger span::before, .c-hamburger span::after {
    width: 20px;
  }
  .c-hamburger p {
    font-size: 1rem;
    white-space: nowrap;
  }
}

/* #Base
-------------------------------------------------------------------------- */

/* ロゴ 
----- object/component/_c-logo ----- */
.c-logo_header {
  z-index: 999;
}
.c-logo_header a {
  display: block;
  width: 180px;
  position: relative;
}
@media screen and (max-width: 1110px) {
  .c-logo_header a {
    width: 135px;
  }
}
.c-logo_header img {
  width: 100%;
}
.c-logo_header .c-logo_white {
  opacity: 0;
  position: absolute;
  top: 0;
  left: 0;
}
.c-logo_header .c-logo_white.is-active {
  opacity: 1;
}

.c-logo_footer {
  display: block;
}
@media screen and (max-width: 960px) {
  .c-logo_footer {
    text-align: center;
  }
}

/* リンク（ボタンの形ではないもの） 
----- object/component/_c-link ----- */
.c-link_text {
  text-decoration: underline;
}

.c-link_blank {
  color: #333;
  padding-right: 20px;
  position: relative;
}
.c-link_blank::before {
  content: "";
  mask: url("../img/ico-blank.svg") center/contain no-repeat;
  background: #DC69A5;
  display: block;
  width: 12px;
  height: 10px;
  position: absolute;
  right: 3px;
  top: 50%;
  translate: 0 -50%;
  transition: 0.3s;
}
.c-link_blank:hover {
  color: #DC69A5;
}
.c-link_blank:hover::before {
  mask-image: url("../img/ico-blank--hover.svg");
  width: 14px;
  height: 12px;
  right: 1px;
  top: calc(50% - 2px);
}
.c-link_blank.u-text-white::before {
  background: #fff;
}

a .c-link_blank {
  transition: 0.3s;
}
a:hover .c-link_blank {
  color: #DC69A5;
}
a:hover .c-link_blank::before {
  mask-image: url("../img/ico-blank--hover.svg");
  width: 14px;
  height: 12px;
  right: 1px;
  top: calc(50% - 2px);
}

.c-link_invalid {
  pointer-events: none;
  color: #777 !important;
}

/* アイコン 
----- object/component/_c-ico ----- */
.c-ico_pu {
  display: inline-block;
  padding: 7px 10px;
  background: #DC69A5;
  height: 25px;
  border-radius: 5px;
}
.c-ico_pu img {
  height: 11px;
}
.c-ico_pu__text {
  display: inline-block;
  font-weight: 500;
  color: #fff;
  background: #DC69A5;
  padding: 1px 10px;
  line-height: 1.5;
  border-radius: 5px;
  height: auto;
}

.c-ico_cate {
  display: inline-block;
  color: #333;
  background-color: #E6E6E6;
  min-width: 85px;
  padding: 1px 10px 0;
  border-radius: 15px;
  text-align: center;
  height: fit-content;
  font-size: 1.4rem;
  font-weight: 500;
}

.c-ico_number {
  display: grid;
  place-content: center;
  place-items: center;
  color: #fff;
  background: #DC69A5;
  line-height: 1;
  width: 45px;
  height: 45px;
  flex-shrink: 0;
  border-radius: 5px 5px 25px 5px;
  position: absolute;
  top: 0;
  left: 0;
}
.c-ico_number small {
  display: block;
  font-size: 1.2rem;
}
.c-ico_number span {
  font-size: 2.2rem;
  font-weight: 500;
}

/* 吹き出し 
----- object/component/_c-ttl ----- */
.c-speech_bubble {
  display: inline-block;
  background: #fff;
  padding: 10px 20px;
  border-radius: 5px;
  border: 2px solid #ddd;
  position: relative;
}
.c-speech_bubble::before {
  content: "";
  background: url("../img/speech_bubble.png") center/cover no-repeat;
  width: 11px;
  height: 10px;
  position: absolute;
  bottom: -9px;
  left: 50%;
  translate: -50%;
}
@media screen and (max-width: 960px) {
  .c-speech_bubble {
    padding: 10px;
  }
}
.c-speech_bubble.left::before, .c-speech_bubble.right::before {
  background-image: url("../img//speech_bubble_left.png");
}
.c-speech_bubble.right::before {
  transform: scaleX(-1);
}

.c-speech_bubble_ttl {
  background: #DC69A5;
  color: #fff;
  font-weight: 500;
  text-align: center;
  padding: 10px 30px;
  max-width: 600px;
  width: 100%;
  margin: 0 auto;
  border-radius: 50px;
  position: relative;
}
.c-speech_bubble_ttl::before {
  content: "";
  background: url("../img/ico-triangle.svg") center/cover no-repeat;
  width: 12px;
  height: 12px;
  position: absolute;
  bottom: -9px;
  left: 50%;
  translate: -50%;
  rotate: 90deg;
}

/* Project
---------------------------------------------------------- */
.p-gnav .p-gnav_list {
  font-weight: 500;
  display: flex;
  font-size: 1.6rem;
  letter-spacing: 1px;
  background-color: rgba(255, 255, 255, 0.9);
  padding: 0 15px;
  border-radius: 30px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.25);
  margin: 0 15px;
}
.p-gnav .p-gnav_list > li {
  padding: 0 15px;
}
.p-gnav .p-gnav_list > li > a {
  display: block;
  color: #333;
  text-decoration: none;
  padding: 10px 0;
  position: relative;
}
.p-gnav .p-gnav_list > li > a:hover {
  color: #DC69A5;
}

/*----- プルダウン -----*/
.p-gnav_has-child {
  position: relative;
  /*hoverしたら表示*/
}
.p-gnav_has-child:first-child .p-gnav_sub {
  width: 180px;
}
.p-gnav_has-child .p-gnav_sub {
  width: 280px;
  padding-top: 15px;
  position: absolute;
  left: 0;
  top: 50px;
  z-index: 4;
  transition: 0.3s;
  /*はじめは非表示*/
  opacity: 0;
  visibility: hidden;
}
.p-gnav_has-child:hover > .p-gnav_sub {
  visibility: visible;
  opacity: 1;
}
.p-gnav_has-child ul {
  padding: 5px 0;
  border-radius: 10px;
  background: #fff;
  filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.25));
}
.p-gnav_has-child ul::before {
  content: "";
  background: url("../img/round_triangle.svg") center/cover no-repeat;
  display: block;
  width: 15px;
  height: 15px;
  position: absolute;
  top: -13px;
  left: 45px;
}
.p-gnav_has-child ul a {
  padding: 5px 20px;
  display: block;
  color: #333;
}
.p-gnav_has-child ul a:hover {
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.25) inset;
  color: #DC69A5;
}

/*----- フッター -----*/
.p-gnav_footer {
  display: grid;
  gap: 40px;
  grid-template-columns: repeat(3, 1fr);
}

.p-gnav_footer_list {
  font-size: 1.4rem;
}
.p-gnav_footer_list > li + li {
  margin-top: 40px;
}

.p-gnav_footer_parent {
  display: block;
  width: 100%;
  font-weight: 500;
  max-width: 240px;
  position: relative;
  padding: 6px 25px 4px 15px;
  border: 2px solid #DC69A5;
  border-radius: 5px;
  line-height: 1.2;
}
.p-gnav_footer_parent::before {
  content: "";
  background: url("../img/arrow_pink.svg") center/cover no-repeat;
  display: block;
  width: 5px;
  height: 8px;
  position: absolute;
  top: 50%;
  right: 15px;
  translate: 0 -50%;
  transition: 0.3s;
}
.p-gnav_footer_parent:hover {
  color: #fff;
  background-color: #DC69A5;
}
.p-gnav_footer_parent:hover::before {
  right: 10px;
  background-image: url("../img/arrow_white.svg");
}
.p-gnav_footer_parent.is-invalid {
  pointer-events: none;
  color: #DC69A5;
  background-color: #FBF0F6;
  border-color: #FBF0F6;
}
.p-gnav_footer_parent.is-invalid::before {
  display: none;
}

.p-gnav_footer_sub {
  margin-top: 10px;
}
.p-gnav_footer_sub a {
  color: #333;
  display: block;
  padding: 5px 0;
  line-height: 1.5;
}
.p-gnav_footer_sub a:hover {
  color: #DC69A5;
}
.p-gnav_footer_sub .c-link_blank {
  display: inline-block;
  padding-right: 20px;
}

@media screen and (max-width: 768px) {
  .p-gnav_footer {
    grid-template-columns: auto;
    place-content: center;
    display: none;
  }
  .p-gnav_footer_wrap {
    width: 250px;
    margin: 0 auto;
  }
  .p-gnav_footer_toggle_btn {
    align-items: center;
    gap: 10px;
  }
  .p-gnav_footer_toggle_btn span {
    display: block;
    width: 40px;
    height: 40px;
    border: solid 1px #fff;
    border-radius: 5px;
    transition: all ease 0.3s;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.25);
    transition: 0.3s;
    position: relative;
  }
  .p-gnav_footer_toggle_btn span::before, .p-gnav_footer_toggle_btn span::after {
    content: "";
    display: block;
    height: 2px;
    width: 15px;
    background-color: #DC69A5;
    position: absolute;
    top: 50%;
    left: 50%;
    translate: -50% -50%;
    transition: 0.3s;
  }
  .p-gnav_footer_toggle_btn span::after {
    rotate: 90deg;
  }
  .p-gnav_footer_toggle_btn.is-active span {
    border-color: #eee;
    box-shadow: none;
  }
  .p-gnav_footer_toggle_btn.is-active span::after {
    rotate: 0deg;
  }
  .p-gnav_footer_list > li, .p-gnav_footer_list > li + li {
    margin-top: 30px;
  }
}

.p-unav_btn {
  height: 40px;
  line-height: 36px;
  font-weight: 500;
  color: #fff;
  background-color: #DC69A5;
  border: 2px solid #DC69A5;
  border-radius: 20px;
  padding: 1px 20px;
  margin-top: 5px;
  font-size: 1.6rem;
}
.p-unav_btn.p-unav_apply {
  color: #DC69A5;
  background-color: #fff;
}
.p-unav_btn:hover {
  color: #fff;
  background-color: #8D3F63;
  border: 2px solid #8D3F63;
}

.p-unav_search_wrap {
  position: relative;
}

.p-unav_search {
  display: grid;
  place-content: center;
  place-items: center;
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background-color: #eee;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.25);
  cursor: pointer;
  text-align: center;
  transition: 0.3s;
}
.p-unav_search.is-active {
  box-shadow: none;
}
.p-unav_search p {
  font-size: 1.2rem;
  font-weight: 600;
  line-height: 1;
  margin-top: 3px;
  letter-spacing: -0.01px;
}

.p-unav_search_inner {
  display: none;
  position: absolute;
  top: 75px;
  right: -10px;
  background-color: #FBF0F6;
  width: 100vw;
  max-width: 320px;
  border-radius: 5px;
  padding: 10px;
  filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.25));
}
.p-unav_search_inner::before {
  content: "";
  background: url("../img/triangle_pink_bg.svg") center/cover no-repeat;
  display: block;
  width: 12px;
  height: 12px;
  position: absolute;
  top: -10px;
  right: 30px;
  rotate: 180deg;
  transition: 0.3s;
}
.p-unav_search_inner form {
  display: flex;
  align-items: center;
  border: solid 2px #DC69A5;
  background-color: #fff;
  width: 100%;
  border-radius: 5px;
}
.p-unav_search_inner .feas_archive_freeword {
  width: calc(100% - 55px);
  padding: 10px;
  outline: none;
  cursor: text;
}
.p-unav_search_inner .p-unav_search_btn {
  position: relative;
}
.p-unav_search_inner .p-unav_search_btn::before {
  content: "";
  display: block;
  width: 2px;
  height: calc(100% - 20px);
  border-radius: 1px;
  position: absolute;
  top: 10px;
  left: 0;
  background-color: #DC69A5;
}
.p-unav_search_inner .feas-submit-button {
  width: 55px;
  padding: 10px;
  text-align: center;
  color: #DC69A5;
  font-weight: 500;
  transition: 0.3s;
}
.p-unav_search_inner .feas-submit-button:hover {
  background-color: #DC69A5;
  color: #fff;
}

@media screen and (max-width: 768px) {
  .p-unav_search {
    width: 50px;
    height: 50px;
  }
  .p-unav_search img {
    width: 15px;
    height: 20px;
  }
  .p-unav_search_inner {
    top: 65px;
    right: -70px;
    max-width: 550px;
    border-radius: 5px 0 0 5px;
  }
  .p-unav_search_inner::before {
    top: -10px;
    right: 90px;
  }
}

/*-----  メインメニュー -----*/
.p-drawer_menu {
  position: fixed;
  width: 100%;
  z-index: 998;
  top: 0;
  right: 0;
  transform: translateX(100%);
  transition: all 0.6s;
  overflow-y: scroll;
  overscroll-behavior-y: contain;
  height: 100%;
  /* このクラスを、jQueryで付与・削除する */
}
.p-drawer_menu.active {
  transform: translateX(0%);
}

.p-drawer_inner {
  background: #fff;
  margin: 0 auto;
  padding: 100px 0 30px;
  width: 100%;
  min-height: 100vh;
  display: block;
}
.p-drawer_grid {
  display: grid;
  grid-template: 
    "drawer_list drawer_side" auto
    "drawer_cta drawer_side" auto
    "drawer_purp drawer_side" auto /
    1fr 225px;
  gap: 0 60px;
}
.p-drawer_border {
  border-bottom: 1px solid #ddd;
}

.p-drawer_list {
  grid-area: drawer_list;
  display: grid;
  grid-auto-flow: column;
  gap: 30px 25px;
  padding-bottom: 40px;
}
.p-drawer_list li {
  position: relative;
  padding: 0;
}
.p-drawer_list a {
  color: #333;
}

.p-drawer_cta {
  grid-area: drawer_cta;
  padding-bottom: 45px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 35px;
}
.p-drawer_tel {
  width: calc(100% - 365px);
  min-width: 320px;
}
.p-drawer_tel strong {
  font-size: 1.8rem;
}
.p-drawer_tel a {
  display: block;
  font-size: 4.2rem;
  padding-left: 35px;
  line-height: 1;
  position: relative;
}
.p-drawer_tel a::before {
  content: "";
  display: block;
  width: 30px;
  height: 30px;
  position: absolute;
  left: 0;
  top: 50%;
  translate: 0 -50%;
  background: url("../img/ico-tel.svg") center/cover no-repeat;
}

.p-drawer_forms {
  display: flex;
  flex-wrap: wrap;
  gap: 30px 15px;
  padding: 15px;
  width: 330px;
}
.p-drawer_forms a {
  display: grid;
  place-content: center;
  text-align: center;
  width: 320px;
  height: 85px;
  color: #333;
  border: 2px solid #0976A3;
  border-radius: 5px;
  position: relative;
  padding: 15px 15px 5px;
  line-height: 1.5;
}
.p-drawer_forms a::before {
  content: "";
  background: url("../img/drawer_forms_ico01.svg") center/cover no-repeat;
  display: block;
  width: 95px;
  height: 30px;
  position: absolute;
  top: -15px;
  left: 50%;
  translate: -50%;
}
.p-drawer_forms a::after {
  content: "";
  background: url("../img/arrow_btn.svg") center/cover no-repeat;
  display: block;
  width: 20px;
  height: 20px;
  position: absolute;
  bottom: 10px;
  right: 10px;
  transition: 0.3s;
}
.p-drawer_forms a:hover {
  background-color: #EBF9FF;
}
.p-drawer_forms a:hover::after {
  right: 5px;
}
.p-drawer_forms a img {
  width: 60px;
  height: 60px;
  position: absolute;
  left: -20px;
  top: -20px;
}
.p-drawer_forms .p-drawer_apply {
  border-color: #DC69A5;
}
.p-drawer_forms .p-drawer_apply::before {
  background-image: url("../img/drawer_forms_ico02.svg");
  width: 70px;
}
.p-drawer_forms .p-drawer_apply:hover {
  background-color: #FBF0F6;
}

.p-drawer_purp {
  grid-area: drawer_purp;
}
.p-drawer_purp h3 {
  font-size: 1.8rem;
}

.p-drawer_purp_grid {
  display: grid;
  gap: 30px 10px;
  grid-template-columns: repeat(4, 1fr);
  align-items: flex-end;
}

.p-drawer_purp_item {
  /* &:first-child {
      grid-column: 1 / 3;
      figure {
          padding-top: 45%;
          &::before {
              height: 12%;
          }
      }
  } */
}
.p-drawer_purp_item a {
  display: block;
  text-align: center;
}
.p-drawer_purp_item a:hover img {
  scale: 1.1;
}
.p-drawer_purp_item a::before {
  height: 11%;
}
.p-drawer_purp_item figure {
  border-radius: 5px;
  overflow: hidden;
  position: relative;
  padding-top: 66.666%;
  width: 100%;
}
.p-drawer_purp_item figure::before {
  content: "";
  background: url("../img/img_deco_white.svg") center/cover no-repeat;
  display: block;
  width: 80%;
  height: 8%;
  position: absolute;
  left: 50%;
  bottom: 0;
  translate: -50%;
  z-index: 1;
}
.p-drawer_purp_item figure img {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  object-fit: cover;
}
.p-drawer_purp_item h5 {
  font-weight: 400;
}

.p-drawer_purp_ttl {
  min-height: 50px;
}
.p-drawer_purp_ttl span span {
  display: inline-block;
}

@media screen and (max-width: 768px) {
  .p-drawer_inner {
    padding-top: 80px;
  }
  .p-drawer_grid {
    grid-template: 
      "drawer_list" auto
      "drawer_side" auto
      "drawer_cta" auto
      "drawer_purp" auto /
      auto;
  }
  .p-drawer_list {
    grid-auto-flow: row;
    padding-bottom: 50px;
  }
  .p-drawer_cta {
    grid-template-columns: 100%;
    padding-bottom: 30px;
  }
  .p-drawer_tel strong {
    font-size: 1.7rem;
  }
  .p-drawer_tel a {
    font-size: 3.9rem;
  }
  .p-drawer_tel a::before {
    width: 28px;
    height: 28px;
  }
  .p-drawer_forms a img {
    width: 45px;
    height: 45px;
    position: absolute;
    left: -10px;
    top: -20px;
  }
}
/*----- プルダウン -----*/
.p-drawer_has_child > a {
  display: block;
  text-align: center;
}
.p-drawer_has_child > a figure {
  overflow: hidden;
  border-radius: 5px;
  position: relative;
}
.p-drawer_has_child > a figure::before {
  content: "";
  display: block;
  width: 80%;
  height: 5%;
  position: absolute;
  left: 50%;
  bottom: 0px;
  translate: -50%;
  z-index: 1;
  background: url("../img/img_deco_white.svg") center/cover no-repeat;
}
.p-drawer_has_child > a span {
  padding-right: 25px;
  position: relative;
}
.p-drawer_has_child > a span::before {
  content: "";
  background: url("../img/arrow_btn.svg") center/cover no-repeat;
  display: block;
  width: 20px;
  height: 20px;
  position: absolute;
  top: 50%;
  right: 0;
  translate: 0 -50%;
  transition: 0.3s;
}
.p-drawer_has_child > a:hover img {
  scale: 1.1;
}
.p-drawer_has_child > a:hover span::before {
  right: -5px;
}
@media screen and (min-width: 769px) {
  .p-drawer_has_child .p-drawer_btn, .p-drawer_has_child .p-drawer_sub_list {
    display: none;
  }
}

@media screen and (max-width: 768px) {
  .p-drawer_list .p-drawer_has_child {
    padding-right: 40px;
  }
  .p-drawer_has_child::before {
    transform: rotate(135deg);
    left: 20px;
  }
  .p-drawer_has_child.active::before {
    transform: rotate(-45deg);
  }
  .p-drawer_has_child > a {
    display: flex;
    align-items: center;
  }
  .p-drawer_has_child > a figure {
    width: 90px;
    height: 90px;
  }
  .p-drawer_has_child > a figure::before {
    display: none;
  }
  .p-drawer_has_child > a span {
    width: calc(100% - 90px);
    padding: 0 0 0 30px;
    margin-left: 20px;
    text-align: left;
  }
  .p-drawer_has_child > a span::before {
    right: auto;
    left: 0;
  }
  .p-drawer_has_child .p-drawer_btn {
    position: absolute;
    top: 25px;
    right: 0;
    width: 40px;
    height: 40px;
    display: block;
    border: solid 1px #fff;
    border-radius: 5px;
    transition: all ease 0.3s;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.25);
    transition: 0.3s;
  }
  .p-drawer_has_child .p-drawer_btn::before, .p-drawer_has_child .p-drawer_btn::after {
    content: "";
    display: block;
    height: 2px;
    width: 15px;
    background-color: #DC69A5;
    position: absolute;
    top: 50%;
    left: 50%;
    translate: -50% -50%;
    transition: 0.3s;
  }
  .p-drawer_has_child .p-drawer_btn::after {
    rotate: 90deg;
  }
  .p-drawer_has_child.active .p-drawer_btn {
    border-color: #eee;
    box-shadow: none;
  }
  .p-drawer_has_child.active .p-drawer_btn::after {
    rotate: 0deg;
  }
  .p-drawer_has_child ul {
    margin-top: 10px;
    position: relative;
    left: 0;
    top: 0;
    width: 100%;
    visibility: visible; /*JSで制御するため一旦表示*/
    opacity: 1; /*JSで制御するため一旦表示*/
    display: none; /*JSのslidetoggleで表示させるため非表示に*/
    transition: none; /*JSで制御するためCSSのアニメーションを切る*/
    box-shadow: none;
  }
  .p-drawer_has_child li a {
    display: block;
    padding: 5px 0 5px 10px;
    position: relative;
  }
  .p-drawer_has_child li a::before {
    content: "";
    background: url("../img/arrow_pink.svg") center/cover no-repeat;
    display: block;
    width: 6px;
    height: 8px;
    position: absolute;
    top: 50%;
    left: 0;
    translate: 0 -50%;
    transition: 0.3s;
  }
  .p-drawer_has_child li a:active {
    color: #DC69A5;
  }
  .p-drawer_has_child li a:active::before {
    left: 3px;
  }
}
/*-----  サイドメニュー -----*/
.p-drawer_side {
  grid-area: drawer_side;
  position: sticky;
  top: 80px;
  height: fit-content;
}

.p-drawer_solving .p-drawer_solving_bubble {
  display: block;
  width: fit-content;
  max-width: 250px;
  color: #DC69A5;
  background-color: #FBF0F6;
  position: relative;
  line-height: 1.2;
  border-radius: 5px;
  padding: 5px 15px;
  font-size: 1.4rem;
}
.p-drawer_solving .p-drawer_solving_bubble::before {
  content: "";
  background: url("../img/triangle_pink_bg.svg") center/cover no-repeat;
  display: block;
  width: 8px;
  height: 7px;
  position: absolute;
  bottom: -6px;
  left: 50%;
  translate: -50%;
}
.p-drawer_solving a {
  display: flex;
  align-items: center;
  color: #333;
  width: 100%;
  max-width: 250px;
  min-height: 55px;
  font-size: 1.4rem;
  padding: 5px 40px 5px 45px;
  margin-top: 10px;
  border: 2px solid #fff;
  border-radius: 5px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.25);
  position: relative;
}
.p-drawer_solving a::before {
  content: "";
  background: url("../img/cta_ico_01.svg") center/cover no-repeat;
  display: block;
  width: 25px;
  height: 27px;
  position: absolute;
  top: 50%;
  left: 15px;
  translate: 0 -50%;
}
.p-drawer_solving a:nth-last-child(2)::before {
  background-image: url("../img/cta_ico_02.svg");
}
.p-drawer_solving a:last-child::before {
  background-image: url("../img/cta_ico_03.svg");
}
.p-drawer_solving a::after {
  content: "";
  background: url("../img/arrow_btn.svg") center/cover no-repeat;
  display: block;
  width: 20px;
  height: 20px;
  position: absolute;
  top: 50%;
  right: 15px;
  translate: 0 -50%;
  transition: 0.3s;
}
.p-drawer_solving a:hover {
  box-shadow: none;
  margin: 12px 0 -2px;
  color: #DC69A5;
  border-color: #eee;
}
.p-drawer_solving a:hover::after {
  right: 10px;
}

@media screen and (max-width: 768px) {
  .p-cta_login {
    border-bottom: 1px solid #ddd;
    padding-bottom: 50px;
  }
  .p-cta_login_inner {
    max-width: 250px;
    margin: 0 auto;
  }
  .p-drawer_solving {
    padding-bottom: 50px;
  }
  .p-drawer_solving_bubble {
    margin: 0 auto;
  }
  .p-drawer_solving_inner {
    margin-top: 5px;
    display: flex;
    flex-wrap: wrap;
    gap: 0 10px;
    justify-content: center;
  }
  .p-drawer_purp_grid {
    gap: 20px 10px;
    grid-template-columns: repeat(2, 1fr);
  }
  .p-drawer_purp_grid h3 {
    font-size: 1.7rem;
  }
  .p-drawer_side {
    position: static;
  }
}
/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
.p-cta_guide {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: auto;
  gap: 15px 20px;
  justify-content: center;
}
.p-cta_guide a {
  display: grid;
  height: 100%;
  color: #333;
  background-color: #fff;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.25);
  border-radius: 5px;
  padding: 20px 30px 25px calc(20% + 30px);
  position: relative;
  border: solid 2px #fff;
}
.p-cta_guide a::before {
  content: "";
  background: url("../img/arrow_btn.svg") center/cover no-repeat;
  display: block;
  width: 20px;
  height: 20px;
  position: absolute;
  bottom: 10px;
  right: 10px;
  transition: 0.3s;
}
.p-cta_guide a:hover {
  box-shadow: none;
  border-color: #eee;
}
.p-cta_guide a:hover::before {
  right: 5px;
}
.p-cta_guide .p-cta_guide_tti_wrap {
  place-content: center;
  font-size: 1.5rem;
}
.p-cta_guide .p-cta_guide_tti_wrap figure {
  display: block;
  width: 20%;
  position: absolute;
  top: 50%;
  left: 25px;
  translate: 0 -50%;
  padding-right: 5px;
}
.p-cta_guide .p-cta_guide_tti_wrap img {
  max-width: 45px;
}
.p-cta_guide p {
  font-size: 1.2rem;
}

.p-cta_wrap {
  position: relative;
}
.p-cta_wrap::before {
  content: "";
  background: url("../img/cta-bg.jpg") center/cover no-repeat;
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
}
.p-cta_wrap .p-cta_inner {
  padding: 40px 0 70px;
  display: flex;
  justify-content: center;
}
.p-cta_wrap .p-cta_img {
  width: 265px;
}
.p-cta_wrap .p-cta_img__l {
  margin-left: -100px;
  rotate: -15deg;
}
.p-cta_wrap .p-cta_img__r {
  margin-right: -100px;
  rotate: 15deg;
}
.p-cta_wrap .p-cta_main {
  padding: 0 50px;
}
.p-cta_wrap .p-cta_ttl_wrap {
  display: grid;
  gap: 30px 15px;
  grid-template-columns: 60px auto;
  width: fit-content;
  margin: 0 auto;
  place-content: center;
  place-items: center;
}
.p-cta_wrap .p-cta_ttl_wrap h5 {
  font-size: 2rem;
  font-weight: 500;
}
.p-cta_wrap .p-cta_btn {
  display: flex;
  justify-content: center;
  margin: 0 -5px;
}
.p-cta_wrap .p-cta_btn li {
  padding: 0 5px;
}

.p-cta_login p {
  color: #777;
  font-size: 1.4rem;
}
.p-cta_login .p-cta_login_bubble {
  display: block;
  font-size: 1.4rem;
  width: fit-content;
  max-width: 250px;
  color: #fff;
  background-color: #DC69A5;
  position: relative;
  line-height: 1.2;
  border-radius: 5px;
  padding: 5px 15px;
}
.p-cta_login .p-cta_login_bubble::before {
  content: "";
  background: url("../img/triangle_pink.svg") center/cover no-repeat;
  display: block;
  width: 8px;
  height: 7px;
  position: absolute;
  bottom: -6px;
  left: 50%;
  translate: -50%;
}
.p-cta_login a {
  font-weight: 500;
  display: flex;
  align-items: center;
  width: 100%;
  max-width: 250px;
  min-height: 55px;
  font-size: 1.4rem;
  padding: 5px 40px 5px 25px;
  margin-top: 10px;
  border: 2px solid #fff;
  border-radius: 5px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.25);
  position: relative;
}
.p-cta_login a::before {
  background: #DC69A5;
  position: absolute;
  right: 20px;
  top: 50%;
  translate: 0 -50%;
  transition: 0.3s;
}
.p-cta_login a:hover {
  box-shadow: none;
  color: #DC69A5;
  border-color: #eee;
}
.p-cta_login a:hover::before {
  right: 19px;
}
.p-cta_login a span {
  padding-left: 30px;
  position: relative;
}
.p-cta_login a span::before {
  content: "";
  background: url("../img/ico-login.svg") center/cover no-repeat;
  display: block;
  width: 20px;
  height: 15px;
  position: absolute;
  top: 50%;
  left: 0;
  translate: 0 -50%;
}
.p-cta_login a.c-link_invalid {
  box-shadow: none;
  border-color: #eee;
  background: #eee;
}
.p-cta_login a.c-link_invalid::before {
  background: #ddd;
}

@media screen and (max-width: 768px) {
  .p-cta_guide {
    grid-template-columns: auto;
  }
  .p-cta_guide a {
    padding: 20px;
  }
  .p-cta_guide .p-cta_guide_tti_wrap {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 10px;
  }
  .p-cta_guide .p-cta_guide_tti_wrap figure {
    display: block;
    width: auto;
    position: static;
    translate: none;
    padding: 0;
  }
  .p-cta_guide .p-cta_guide_tti_wrap img {
    max-width: 30px;
  }
  .p-cta_wrap .p-cta_inner {
    padding: 30px 15px 40px;
    display: block;
    position: relative;
  }
  .p-cta_wrap .p-cta_img {
    width: 30%;
    max-width: 150px;
    position: absolute;
    top: 35px;
    margin: 0;
  }
  .p-cta_wrap .p-cta_img__l {
    right: 65%;
  }
  .p-cta_wrap .p-cta_img__r {
    left: 65%;
  }
  .p-cta_wrap .p-cta_main {
    padding: 0;
  }
  .p-cta_wrap .p-cta_ttl_wrap {
    grid-template-columns: auto;
  }
  .p-cta_wrap .p-cta_ttl_wrap h5 {
    text-align: center;
  }
  .p-cta_wrap .p-cta_btn {
    flex-wrap: wrap;
  }
}
/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
.p-side_tel {
  border-radius: 5px 0 0 5px;
  border: 2px solid #DC69A5;
  background-color: #fff;
  position: fixed;
  top: 130px;
  right: -300px;
  transition: 0.3s;
  z-index: 997;
}
.p-side_tel.is-open {
  right: -2px;
}

.p-side_tel_grid {
  display: flex;
}

.p-side_btn {
  padding: 5px;
  display: grid;
  place-content: center;
}
.p-side_btn span {
  color: #DC69A5;
  font-weight: 500;
  padding-top: 40px;
  writing-mode: vertical-rl;
  line-height: 1.4;
  position: relative;
}
.p-side_btn span::before {
  content: "";
  background: url("../img/ico-side_tel.svg") center/cover no-repeat;
  display: block;
  width: 28px;
  height: 29px;
  position: absolute;
  left: 50%;
  top: 0;
  translate: -50%;
}

.p-side_btn_inner {
  width: 300px;
  border-left: solid 2px #fff;
  padding: 30px 15px;
  display: grid;
  place-content: center;
  place-items: center;
}
.p-side_btn_inner .c-btn {
  width: 100%;
  max-width: 300px;
  padding: 6px 40px 4px 30px;
}
.p-side_btn_inner .c-btn::before {
  right: 25px;
}
.p-side_btn_inner p {
  font-size: 1.4rem;
}

.is-open .p-side_btn_inner {
  border-color: #DC69A5;
}

.p-side_btn_tell {
  display: block;
  font-size: 3.3rem;
  padding-left: 25px;
  line-height: 1;
  position: relative;
}
.p-side_btn_tell::before {
  content: "";
  display: block;
  width: 25px;
  height: 25px;
  position: absolute;
  left: 0;
  top: 50%;
  translate: 0 -50%;
  background: url("../img/ico-tel.svg") center/cover no-repeat;
}
.p-side_btn_tell span {
  letter-spacing: -0.3rem;
  margin-left: -1px;
}

@media screen and (max-width: 768px) {
  .p-side_tel {
    border-radius: 5px 5px 0 0;
    margin: 0 10px;
    width: calc(100% - 20px);
    top: auto;
    right: 0;
    bottom: -100%;
  }
  .p-side_tel.is-open {
    bottom: -2px;
  }
  .p-side_tel_grid {
    flex-wrap: wrap;
  }
  .p-side_btn {
    padding: 10px;
    width: calc(100% - 20px);
    height: 40px;
    position: fixed;
    bottom: -2px;
    transition: 0.3s;
    background: #fff;
    border: 2px solid #DC69A5;
    border-radius: 5px 5px 0 0;
  }
  .p-side_btn span {
    padding: 0 0 0 30px;
    writing-mode: horizontal-tb;
  }
  .p-side_btn span::before {
    width: 20px;
    height: 20px;
    left: 0;
    top: 50%;
    translate: 0 -50%;
  }
  .is-open .p-side_btn {
    position: relative;
    border-color: transparent;
    background-color: transparent;
    width: 100%;
  }
  .p-side_btn_inner {
    width: 100%;
    border-left: none;
    border-top: solid 2px #fff;
  }
}
/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
.p-sidebar_top {
  padding: 0 15px 15px 0;
}
.p-sidebar_top a {
  display: flex;
  align-items: center;
  font-size: 1.7rem;
  font-weight: 500;
  color: #fff;
  background-color: #DC69A5;
  border: 2px solid #DC69A5;
  width: 100%;
  min-height: 50px;
  padding: 6px 40px 4px 30px;
  border-radius: 0 25px 25px 0;
  position: relative;
}
.p-sidebar_top a::before {
  content: "";
  background: url("../img/arrow_white.svg") center/cover no-repeat;
  display: block;
  width: 8px;
  height: 12px;
  position: absolute;
  top: 50%;
  right: 20px;
  translate: 0 -50%;
  transition: 0.3s;
}
.p-sidebar_top a:hover {
  color: #fff;
  background-color: #8D3F63;
  border-color: #8D3F63;
}
.p-sidebar_top a:hover::before {
  right: 30px;
}

.p-sidebar_item {
  padding: 5px 15px;
}
.p-sidebar_item a {
  display: flex;
  align-items: center;
  color: #333;
  padding: 5px 20px;
  min-height: 40px;
  border-radius: 20px;
  position: relative;
}
.p-sidebar_item a::before {
  content: "";
  background: url("../img/arrow_pink.svg") center/cover no-repeat;
  display: block;
  width: 8px;
  height: 12px;
  position: absolute;
  top: 50%;
  right: 20px;
  translate: 0 -50%;
  rotate: 90deg;
  transition: 0.3s;
}
.p-sidebar_item a:hover::before {
  top: calc(50% + 5px);
}
.p-sidebar_item.is-active a, .p-sidebar_item a:hover {
  background-color: #eee;
}

.p-sidebar_back {
  padding: 0 15px;
  margin-top: 25px;
}
.p-sidebar_back a {
  display: flex;
  align-items: center;
  color: #333;
  padding: 5px 20px 5px 40px;
  min-height: 40px;
  position: relative;
}
.p-sidebar_back a::before {
  content: "";
  background: url("../img/arrow_btn.svg") center/cover no-repeat;
  display: block;
  width: 20px;
  height: 20px;
  position: absolute;
  top: 50%;
  left: 10px;
  translate: 0 -50%;
  rotate: 180deg;
  transition: 0.3s;
}
.p-sidebar_back a:hover {
  color: #DC69A5;
}
.p-sidebar_back a:hover::before {
  left: 5px;
}

section[id^=sec] {
  padding-top: 1px;
}

@media screen and (max-width: 768px) {
  .p-sidebar_list {
    background-color: rgba(255, 255, 255, 0.95);
    max-height: calc(100vh - 170px);
    border-radius: 5px;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.25);
    width: 55px;
    max-width: 390px;
    padding: 40px 0;
    transition: 0.5s;
  }
  .p-sidebar_top {
    padding: 0 0 15px 15px;
  }
  .p-sidebar_top a {
    border-radius: 25px 0 0 25px;
  }
  .p-sidebar_btn {
    grid-auto-flow: column;
    place-content: center;
    place-items: center;
    gap: 0 10px;
    width: 90px;
    min-height: 40px;
    padding: 5px 10px;
    margin: 10px 0 0 auto;
    border-radius: 20px 0 0 20px;
    font-weight: 500;
    color: #fff;
    background-color: #DC69A5;
  }
  .p-sidebar_hmb {
    position: relative;
    width: 15px;
    height: 12px;
  }
  .p-sidebar_hmb span {
    display: block;
    width: 9px;
    height: 1px;
    background-color: #fff;
    border-radius: 1px;
    position: absolute;
    right: 0;
    transition: 0.3s;
  }
  .p-sidebar_hmb span:first-child {
    top: 0;
  }
  .p-sidebar_hmb span:nth-child(2) {
    top: 50%;
    translate: 0 -50%;
  }
  .p-sidebar_hmb span:last-child {
    bottom: 0;
  }
  .p-sidebar_hmb span::before {
    content: "";
    display: block;
    width: 2px;
    height: 2px;
    background-color: #fff;
    border-radius: 50%;
    position: absolute;
    top: 50%;
    left: -4px;
    translate: 0 -50%;
    transition: 0.3s;
  }
  .is-open .p-sidebar_list {
    left: 0;
    margin-right: 10px;
  }
  .is-open .p-sidebar_btn {
    background-color: #8D3F63;
  }
  .is-open .p-sidebar_hmb span {
    width: 15px;
    top: 50%;
    left: 50%;
    translate: -50% -50%;
  }
  .is-open .p-sidebar_hmb span:first-child {
    rotate: 45deg;
  }
  .is-open .p-sidebar_hmb span:nth-child(2) {
    rotate: -45deg;
  }
  .is-open .p-sidebar_hmb span:last-child {
    rotate: 45deg;
    opacity: 0;
  }
  .is-open .p-sidebar_hmb span::before {
    left: 0;
    opacity: 0;
  }
}
/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
body:has([popover]:popover-open) .p-help_overlay {
  position: fixed;
  inset: 0;
  background: #000;
  opacity: 0.2;
  width: 100%;
  height: 100%;
  display: block;
}

.p-help_btn {
  display: inline-block;
  display: block;
  width: 30px;
  height: 30px;
  padding: 6px;
}
.p-help_btn span {
  display: grid;
  place-content: center;
  width: 100%;
  height: 100%;
  background-color: #0976A3;
  color: #fff;
  border-radius: 50%;
  font-size: 1.3rem;
  line-height: 1;
}

.p-help_overlay {
  display: block;
  position: fixed;
  inset: 0;
  background: #000;
  z-index: 999;
  width: 100%;
  height: 100%;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: 0.3s;
}
.p-help_overlay.is-active {
  opacity: 0.2;
  visibility: visible;
  pointer-events: auto;
}

.p-help_contents {
  background-color: #fff;
  border: 1px solid #DC69A5;
  border-radius: 5px;
  padding: 30px;
  position: fixed;
  top: 50%;
  left: 50%;
  translate: -50% -50%;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: 0.3s;
  width: calc(100% - 30px);
  max-width: 750px;
  max-height: calc(100% - 100px);
}
.p-help_contents:popover-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.p-help_close {
  display: block;
  width: 40px;
  height: 40px;
  position: absolute;
  top: 10px;
  right: 10px;
  padding: 5px;
  color: transparent;
}
.p-help_close span:first-child {
  display: block;
  border-radius: 50%;
  background-color: #DC69A5;
  position: relative;
  width: 30px;
  height: 30px;
}
.p-help_close span:first-child::before, .p-help_close span:first-child::after {
  content: "";
  width: 15px;
  height: 1px;
  border-radius: 1px;
  background-color: #fff;
  position: absolute;
  top: 50%;
  left: 50%;
  translate: -50% -50%;
  rotate: 45deg;
}
.p-help_close span:first-child::after {
  rotate: -45deg;
}

.p-help_grid {
  display: grid;
  grid-template: "img ttl" auto "img text" auto/40% 1fr;
  gap: 10px 20px;
}

.p-help_img {
  grid-area: img;
}

.p-help_ttl {
  grid-area: ttl;
  color: #DC69A5;
  font-size: 1.7rem;
}

.p-help_text {
  grid-area: text;
}

.p-help_price {
  display: grid;
  grid-template-columns: auto 1fr;
}
.p-help_price dt, .p-help_price dd {
  border-top: solid 1px #ddd;
  padding: 5px 0;
}
.p-help_price dd {
  min-width: 140px;
  padding-left: 1.5rem;
  position: relative;
}
.p-help_price dd::before {
  content: "：";
  position: absolute;
  top: 5px;
  left: 0;
}

@media screen and (max-width: 960px) {
  .p-help_contents {
    padding: 20px;
  }
  .p-help_grid {
    grid-template: "ttl" "img" "text"/1fr;
  }
  .p-help_img {
    width: 90%;
    margin: 5px auto 10px;
  }
}
/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
.p-cate_list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 10px;
}
.p-cate_list a {
  display: inline-block;
  padding: 5px 10px;
  border-radius: 5px;
  color: #333;
  background: #F9F9F9;
  border: 2px solid #F9F9F9;
  line-height: 1.5;
}
.p-cate_list a:hover, .p-cate_list a.is-here {
  color: #DC69A5;
  background-color: #FBF0F6;
}
.p-cate_list a.is-here {
  border-color: #DC69A5;
}

/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
/* 記事一覧 
----- object/project/_p-post_list ----- */
.p-post_list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 50px 30px;
}

.p-post_info {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

.p-post_item a {
  display: block;
  padding-bottom: 30px;
  position: relative;
  color: #333;
  height: 100%;
}
.p-post_item a::before {
  content: "";
  display: block;
  width: calc(100% - 30px);
  height: 2px;
  background: #ddd;
  border-radius: 1px;
  position: absolute;
  bottom: 5px;
  left: 0;
  transition: 0.3s;
}
.p-post_item a::after {
  content: "";
  background: url("../img/arrow_pink.svg") center/cover no-repeat;
  display: block;
  width: 5px;
  height: 10px;
  position: absolute;
  bottom: 0;
  right: 10px;
  transition: 0.3s;
}
.p-post_item a:hover::before {
  background-color: #DC69A5;
}
.p-post_item a:hover::after {
  right: 5px;
}
.p-post_item a:hover h5 {
  color: #DC69A5;
}
.p-post_item a figure {
  border: 1px solid #eee;
  position: relative;
}
.p-post_item a img {
  width: 100%;
}
.p-post_item a h5 {
  font-size: 1.6rem;
  transition: 0.3s;
}

.p-post_tag {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}
.p-post_tag a {
  display: inline-block;
  color: #DC69A5;
  border: #DC69A5 solid 1px;
  padding: 1px 10px 0;
  border-radius: 15px;
  text-align: center;
  height: fit-content;
  font-size: 1.3rem;
  font-weight: 500;
}
.p-post_tag a:hover {
  color: #fff;
  background-color: #8D3F63;
}

@media screen and (max-width: 960px) {
  .p-post_list {
    grid-template-columns: 100%;
    gap: 30px;
  }
  .p-post_item > a {
    display: flex;
    flex-direction: column;
  }
}

/* 記事詳細 前後リンク 
----- object/project/_p-post_nav ----- */
.c-post_nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 20px;
}
.c-post_nav li {
  min-width: 85px;
  font-weight: 500;
}

.c-post_nav_back a {
  display: grid;
  place-content: center;
  padding: 10px 25px;
  min-height: 50px;
  background: #FBF0F6;
  border-radius: 25px;
}
.c-post_nav_back a:hover {
  background: #8D3F63;
  color: #fff;
}

.c-post_nav_arrow a {
  display: block;
  padding: 10px 0;
  color: #333;
  position: relative;
}
.c-post_nav_arrow a::before {
  content: "";
  background: url("../img/arrow_btn.svg") center/cover no-repeat;
  display: block;
  width: 20px;
  height: 20px;
  position: absolute;
  top: 50%;
  translate: 0 -50%;
  transition: 0.3s;
}
.c-post_nav_arrow a:hover {
  color: #8D3F63;
}

.c-post_nav_next a {
  padding-right: 30px;
}
.c-post_nav_next a::before {
  right: 0;
}
.c-post_nav_next a:hover::before {
  right: -5px;
}

.c-post_nav_prev a {
  padding-left: 30px;
}
.c-post_nav_prev a::before {
  left: 0;
  rotate: 180deg;
}
.c-post_nav_prev a:hover::before {
  left: -5px;
}

.c-post_nav.--luxury {
  justify-content: space-between;
}
.c-post_nav.--luxury .c-post_nav_back a {
  background: #DC69A5;
  color: #fff;
}
.c-post_nav.--luxury .c-post_nav_back a:hover {
  background: #8D3F63;
}
.c-post_nav.--luxury .c-post_nav_arrow {
  width: 100%;
  max-width: 300px;
}
.c-post_nav.--luxury .c-post_nav_arrow a {
  padding: 10px 20px;
  background: #FBF0F6;
}
.c-post_nav.--luxury .c-post_nav_arrow a:hover {
  background: #8D3F63;
}
.c-post_nav.--luxury .c-post_nav_arrow a:hover p, .c-post_nav.--luxury .c-post_nav_arrow a:hover span {
  color: #fff;
}
.c-post_nav.--luxury .c-post_nav_prev a::before {
  left: -10px;
}
.c-post_nav.--luxury .c-post_nav_next a::before {
  right: -10px;
}

.c-post_nav_grid {
  display: grid;
  grid-template-columns: 85px 1fr;
  gap: 10px;
  align-items: center;
}

.c-post_nav_next .c-post_nav_grid {
  grid-template-columns: 1fr 85px;
}

.c-post_nav_grid_img {
  width: 85px;
}
.c-post_nav_grid_img figure {
  width: 100%;
  position: relative;
  padding-top: 60%;
}
.c-post_nav_grid_img img {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  object-fit: cover;
}

.c-post_nav_grid_itext p {
  color: #777;
  font-size: 1.3rem;
}
.c-post_nav_grid_itext span {
  color: #333;
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

@media screen and (max-width: 768px) {
  .c-post_nav.--luxury {
    justify-content: center;
  }
  .c-post_nav.--luxury .c-post_nav_back {
    order: 1;
    width: 100%;
    max-width: 250px;
  }
  .c-post_nav.--luxury .c-post_nav_back a {
    min-height: 45px;
    width: 100%;
  }
}
/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
/* WYSIWYGエディタ
----- object/project/_p-editor ----- */
.p-editor {
  /* WYSIWYGエディタ内の u-grid */
}
.p-editor p {
  margin-bottom: 20px;
}
.p-editor h1, .p-editor h2, .p-editor h3, .p-editor h4, .p-editor h5, .p-editor h6 {
  font-weight: 500;
  line-height: 1.4;
  margin: 40px 0 10px;
}
.p-editor h1 {
  font-size: 3rem;
}
.p-editor h2 {
  font-size: 2.6rem;
}
.p-editor h3 {
  font-size: 2.3rem;
}
.p-editor h4 {
  font-size: 2rem;
}
.p-editor h5 {
  font-size: 1.8rem;
}
.p-editor h6 {
  font-size: 1.6rem;
}
.p-editor ul, .p-editor ol {
  list-style-type: disc;
  padding-left: 1.5em;
  margin-bottom: 20px;
}
.p-editor ol {
  list-style-type: decimal;
}
.p-editor li {
  margin-bottom: 5px;
  padding-left: 5px;
  list-style-type: inherit;
}
.p-editor strong {
  font-weight: bold;
}
.p-editor em {
  font-style: italic;
}
.p-editor a {
  text-decoration: underline;
}
.p-editor a:hover img {
  opacity: 0.7;
}
.p-editor blockquote {
  position: relative;
  background: #FBF0F6;
  border-radius: 5px;
  padding: 30px 30px 5px;
  margin: 30px 0 20px;
}
.p-editor blockquote::before {
  content: "";
  background: url("../img/blockquote_deco.svg") center/cover no-repeat;
  width: 30px;
  height: 25px;
  position: absolute;
  left: 25px;
  top: -10px;
}
.p-editor blockquote cite {
  display: block;
  border-top: 1px solid #ccc;
  padding-top: 10px;
  font-size: 1.4rem;
  text-align: right;
  color: #777;
}
.p-editor img {
  height: auto;
  max-width: 100%;
  max-height: 640px;
  display: block;
  border-radius: 5px;
  object-fit: contain;
}
.p-editor .aligncenter {
  display: block;
  margin-left: auto;
  margin-right: auto;
}
.p-editor .alignleft {
  width: auto !important;
  float: left;
  margin-right: 10px;
  margin-bottom: 20px;
}
.p-editor .alignright {
  width: auto !important;
  float: right;
  margin-left: 10px;
  margin-bottom: 20px;
}
.p-editor .size-large {
  width: 100%;
  max-width: 700px;
  margin: 0 auto;
}
.p-editor .size-medium {
  max-height: 490px;
}
.p-editor .size-thumbnail {
  max-height: 300px;
}
.p-editor table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 20px;
}
.p-editor table th, .p-editor table td {
  border: 1px solid #ddd;
  padding: 10px;
  text-align: left;
}
.p-editor table th {
  background-color: #FBF0F6;
}
.p-editor .table_scroll {
  overflow-x: scroll;
}
.p-editor .wp-caption {
  max-width: 100%;
  text-align: center;
  margin-bottom: 20px;
}
.p-editor .wp-caption img {
  margin-bottom: 5px;
}
.p-editor .wp-caption .wp-caption-text {
  font-size: 1.4rem;
  color: #777;
  margin-bottom: 0;
}
.p-editor .wp-caption a .wp-caption-text {
  color: #DC69A5;
}
.p-editor .wp-caption a:hover .wp-caption-text {
  color: #8D3F63;
}
.p-editor iframe {
  max-width: 100%;
}
.p-editor::after {
  content: "";
  display: table;
  clear: both;
}
@media screen and (max-width: 768px) {
  .p-editor h1 {
    font-size: 2.7rem;
  }
  .p-editor h2 {
    font-size: 2.5rem;
  }
  .p-editor h3 {
    font-size: 2.2rem;
  }
  .p-editor blockquote {
    padding: 25px 20px 1px;
  }
  .p-editor blockquote::before {
    width: 25px;
    height: 21px;
    left: 15px;
  }
  .p-editor blockquote cite {
    display: block;
    border-top: 1px solid #ccc;
    padding-top: 10px;
    font-size: 1.4rem;
    text-align: right;
    color: #777;
  }
  .p-editor .alignleft:not(.size-thumbnail):not(:has(.size-thumbnail)), .p-editor .alignright:not(.size-thumbnail):not(:has(.size-thumbnail)) {
    float: none;
    margin: 0 auto 20px;
  }
  .p-editor .alignleft:not(.size-thumbnail):not(:has(.size-thumbnail)) img, .p-editor .alignright:not(.size-thumbnail):not(:has(.size-thumbnail)) img {
    margin-left: auto;
    margin-right: auto;
  }
  .p-editor img, .p-editor .size-medium {
    max-height: 320px;
  }
  .p-editor .size-thumbnail {
    max-height: 200px;
  }
}
.p-editor .u-grid {
  margin-top: 0 !important;
  margin-bottom: 10px !important;
}
.p-editor .u-grid .col {
  margin: 0 0 10px;
}

/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
/* ページネーション（プラグイン WP-PageNavi） 
----- object/project/_p-wp_navi ----- */
.wp-pagenavi {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
}
.wp-pagenavi a, .wp-pagenavi span {
  display: grid;
  place-content: center;
  width: 60px;
  height: 60px;
}
.wp-pagenavi .page, .wp-pagenavi .last, .wp-pagenavi .first {
  color: #333;
  border-radius: 50%;
}
.wp-pagenavi .page:hover, .wp-pagenavi .last:hover, .wp-pagenavi .first:hover {
  background: #F9F9F9;
}
.wp-pagenavi .current {
  border-radius: 50%;
  color: #DC69A5;
  background: #FBF0F6;
}
.wp-pagenavi .extend {
  width: auto;
  padding: 0 5px;
}
.wp-pagenavi .nextpostslink, .wp-pagenavi .previouspostslink {
  color: transparent;
  overflow: hidden;
  position: relative;
  order: 1;
}
.wp-pagenavi .nextpostslink::before, .wp-pagenavi .previouspostslink::before {
  content: "";
  background: url("../img/arrow_btn.svg") center/cover no-repeat;
  display: block;
  width: 20px;
  height: 20px;
  position: absolute;
  top: 50%;
  left: 50%;
  translate: -50% -50%;
  transition: 0.3s;
}
.wp-pagenavi .nextpostslink:hover::before, .wp-pagenavi .previouspostslink:hover::before {
  left: calc(50% + 5px);
}
.wp-pagenavi .previouspostslink {
  order: -1;
}
.wp-pagenavi .previouspostslink::before {
  rotate: -180deg;
}
.wp-pagenavi .previouspostslink:hover::before {
  left: calc(50% - 5px);
}

@media screen and (max-width: 960px) {
  .wp-pagenavi a, .wp-pagenavi span {
    width: 45px;
    height: 45px;
  }
  .wp-pagenavi .extend {
    padding: 0;
  }
  .wp-pagenavi .nextpostslink, .wp-pagenavi .previouspostslink {
    width: 30px;
  }
}
/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
/* コンタクトフォーム
----- object/project/_p-form ----- */
.p-form input[type=text], .p-form input[type=tel], .p-form input[type=email], .p-form select, .p-form textarea, .p-form input[type=password], .p-form input[type=number] {
  border: #DC69A5 solid 1px;
  background: #fff;
  width: 100%;
  padding: 10px 15px;
  border-radius: 5px;
}
.p-form .radio_wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 5px 20px;
}
.p-form .radio_wrap .wpcf7-list-item {
  margin: 0;
}
.p-form input[type=radio] {
  position: relative;
  width: 16px;
  height: 16px;
  border: 1px solid #aaa;
  border-radius: 50%;
  vertical-align: -2px;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  margin-right: 5px;
}
.p-form input[type=radio]:checked::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 11px;
  height: 11px;
  border-radius: 50%;
  background: #DC69A5;
}
.p-form .p-form_select-wrap {
  width: 100%;
  position: relative;
}
.p-form .p-form_select-wrap select {
  appearance: none;
  -webkit-appearance: none;
  padding-right: 25px;
}
.p-form .p-form_select-wrap::before {
  content: "";
  mask: url("../img/arrow_pink.svg") center/contain no-repeat;
  background: #DC69A5;
  position: absolute;
  width: 7px;
  height: 10px;
  right: 15px;
  top: 50%;
  rotate: 90deg;
  translate: 0 -50%;
  z-index: 1;
  pointer-events: none;
  z-index: 1;
}
.p-form dl {
  width: 100%;
}
.p-form dt {
  color: #DC69A5;
  font-size: 1.6rem;
  margin-top: 25px;
  font-weight: 500;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}
.p-form dd {
  margin-top: 5px;
}
.p-form .require {
  display: inline-block;
  background: #0976A3;
  color: #fff;
  font-size: 1.2rem;
  line-height: 1.6;
  text-align: center;
  padding: 0 5px;
  border-radius: 2px;
  margin-left: 10px;
}
.p-form .item_wrap {
  position: relative;
  padding-top: 15px;
}
.p-form .item_name {
  font-size: 14px;
  color: #DC69A5;
  background-color: #fff;
  position: absolute;
  left: 10px;
  top: 0;
  padding: 0 5px;
  z-index: 1;
}
.p-form .c-btn {
  padding: 0;
  transition: 0.3s;
}
.p-form .c-btn input[type=button], .p-form .c-btn input[type=submit] {
  padding: 6px 55px 4px 45px;
  color: #fff;
  width: 295px;
  min-height: 45px;
}
.p-form input[type=checkbox] {
  border-radius: 0;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}
.p-form input[type=checkbox] {
  position: relative;
  width: 15px;
  height: 15px;
  border: 1px solid #DC69A5;
  border-radius: 3px;
  transition: 0.3s;
}
.p-form input[type=checkbox]::before {
  content: "";
  transition: 0.3s;
  position: absolute;
  top: calc(50% - 1px);
  translate: -50% -50%;
  left: 50%;
  transform: rotate(50deg);
  width: 4px;
  height: 8px;
  border-right: 2px solid #fff;
  border-bottom: 2px solid #fff;
  opacity: 0;
}
.p-form input[type=checkbox]:checked {
  background: #DC69A5;
}
.p-form input[type=checkbox]:checked::before {
  opacity: 1;
}
.p-form input[type=file]::file-selector-button {
  color: #DC69A5;
  background: #fff;
  border-radius: 5px;
  padding: 1px 15px;
  text-align: center;
  border: 1px solid #DC69A5;
  cursor: pointer;
  transition: 0.3s;
}
.p-form input[type=file]:hover::file-selector-button {
  background-color: #8D3F63;
  border-color: #8D3F63;
  color: #fff;
}
.p-form__max-w-250 {
  max-width: 250px;
}

.p-form-end-text__1 input, .p-form-end-text__1 .p-form_select-wrap {
  max-width: calc(100% - 25px);
  display: inline-block;
}
.p-form-end-text__1 > p {
  display: inline-block;
  width: 20px;
  text-align: right;
}

/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
/* テーブル 
----- object/project/_p-table ---------- */
.p-table {
  width: 100%;
}
.p-table :is(th, td) {
  border: 1px solid #ddd;
  padding: 10px;
  text-align: left;
}
.p-table th {
  background: #FBF0F6;
}

.p-table_scroll {
  overflow-x: scroll;
}

.p-table_discount_wrap {
  display: grid;
  gap: 20px 10px;
  grid-template-columns: 15% 1fr;
}

.p-table_discount {
  width: 100%;
  border-radius: 5px;
  text-align: center;
  vertical-align: middle;
  overflow: hidden;
}
.p-table_discount.sp {
  display: none;
}
.p-table_discount th {
  color: #fff;
  padding: 0 15px;
  font-weight: 500;
  font-weight: 500;
  text-align: center;
  border-bottom: solid 1px #fff;
}
.p-table_discount thead th {
  background: #DC69A5;
}
.p-table_discount tbody tr {
  border-left: solid 1px #ddd;
  border-right: solid 1px #ddd;
}
.p-table_discount tbody tr:last-child {
  border-radius: 0 0 5px 5px;
  border-bottom: solid 1px #ddd;
}
.p-table_discount tbody tr:last-child td:first-child {
  border-radius: 0 0 0 5px;
}
.p-table_discount tbody tr:last-child td:last-child {
  border-radius: 0 0 5px 0;
}
.p-table_discount tbody th {
  background: #E387B7;
  padding: 2px 15px;
}
.p-table_discount tbody td {
  background: #fff;
  height: 55px;
  text-align: center;
}
.p-table_discount tbody td:not(:last-child) {
  border-right: solid 1px #ccc;
}
.p-table_discount tbody td span {
  font-size: 2.2rem;
}

.p-table_discount_late thead th {
  background: #0976A3;
}
.p-table_discount_late tbody th {
  background: #4391B5;
}
.p-table_discount_late tbody th:nth-child(2n) {
  background: #48A6C9;
}

@media screen and (max-width: 960px) {
  .p-table_discount_wrap {
    grid-template-columns: none;
  }
  .p-table_discount.pc {
    display: none;
  }
  .p-table_discount.sp {
    display: table;
  }
  .p-table_discount tbody th {
    padding: 0 15px;
  }
}
/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
/* ページ内リンク 
----- object/project/_p-anchor_list ----- */
.p-anchor_list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
}
.p-anchor_list li {
  display: grid;
  grid-template-rows: subgrid;
  grid-row: span 2;
  gap: 5px;
  background: #fff;
  position: relative;
}
.p-anchor_list a {
  display: flex;
  flex-direction: column;
  color: #333;
  border-radius: 5px;
  overflow: hidden;
  height: 100%;
}
.p-anchor_list .inner {
  padding: 10px 15px 0;
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  gap: 10px;
}
.p-anchor_list .ttl {
  display: flex;
  align-items: center;
  padding-left: 40px;
  font-weight: 500;
  line-height: 1.5;
  flex-grow: 1;
}
.p-anchor_list figure {
  margin: 0 auto;
  max-width: 120px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 70px;
  max-width: 100%;
}
.p-anchor_list figure img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.p-anchor_list .btn {
  background: #DC69A5;
  color: #fff;
  text-align: center;
  flex-shrink: 0;
  padding: 2px 15px 1px;
  transition: 0.3s;
}
.p-anchor_list .btn span {
  padding-right: 20px;
  position: relative;
}
.p-anchor_list .btn span::before {
  content: "";
  background: url("../img/arrow_white.svg") center/cover no-repeat;
  width: 8px;
  height: 12px;
  rotate: 90deg;
  position: absolute;
  top: 50%;
  right: 0;
  translate: 0 -50%;
  transition: 0.3s;
}
.p-anchor_list a:hover .btn {
  background: #8D3F63;
}
.p-anchor_list a:hover .btn span::before {
  top: calc(50% + 3px);
}

@media screen and (max-width: 960px) {
  .p-anchor_list {
    grid-template-columns: repeat(2, 1fr);
  }
  .p-anchor_list li {
    gap: 5px;
  }
  .p-anchor_list .ttl {
    order: 1;
    padding: 0;
    text-align: center;
  }
  .p-anchor_list figure {
    width: calc(100% - 35px);
    margin-right: 0;
  }
}
/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
/* 検索ボックス
----- object/project/_p-search ----- */
.p-search {
  width: 100%;
  max-width: 350px;
  margin: 0 0 0 auto;
}
.p-search form {
  display: grid;
  grid-template-columns: 1fr auto;
  border: solid 2px #FBF0F6;
  align-items: center;
  border-radius: 5px;
  overflow: hidden;
}
.p-search .feas_archive_freeword {
  cursor: text;
  padding: 10px 15px;
}
.p-search .feas-submit-button {
  background: #FBF0F6;
  color: #DC69A5;
  padding: 10px 15px;
  transition: 0.3s;
}
.p-search .feas-submit-button:hover {
  background: #DC69A5;
  color: #fff;
}

/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
/* ul ol リスト 
----- object/project/_p-list ----- */
.p-list {
  list-style-type: disc;
  padding-left: 1.5em;
  margin-bottom: 20px;
}
.p-list li {
  margin-bottom: 5px;
  padding-left: 5px;
  list-style-type: inherit;
}

ol.p-list {
  list-style-type: decimal;
}

/* Utility
---------------------------------------------------------- */
/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
/* ------------------------
    カラム分け
------------------------ */
.u-grid {
  -js-display: flex;
  display: -webkit-box;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  margin: 10px -15px 0;
  position: relative;
}
.u-grid.ai-center {
  -webkit-align-items: center;
  align-items: center;
}
.u-grid.jc-center {
  -webkit-justify-content: center;
  justify-content: center;
}
.u-grid.u-g_gap10 {
  margin: 10px -5px 0;
}
.u-grid.u-g_gap10 .col {
  padding: 0 5px;
}
.u-grid.u-g_gap20 {
  margin: 10px -10px 0;
}
.u-grid.u-g_gap20 .col {
  padding: 0 10px;
}
.u-grid.u-g_gap40 {
  margin: 10px -20px 0;
}
.u-grid.u-g_gap40 .col {
  padding: 0 20px;
}
.u-grid.u-g_gap50 {
  margin: 10px -25px 0;
}
.u-grid.u-g_gap50 .col {
  padding: 0 25px;
}
.u-grid.u-g_gap60 {
  margin: 10px -30px 0;
}
.u-grid.u-g_gap60 .col {
  padding: 0 30px;
}
.u-grid .col {
  box-sizing: border-box;
  position: relative;
  padding: 0 15px;
  margin-top: 30px;
}
.u-grid .col.col-l-2 {
  width: 16.6666%;
}
.u-grid .col.col-l-20p {
  width: 20%;
}
.u-grid .col.col-l-3 {
  width: 25%;
}
.u-grid .col.col-l-4 {
  width: 33.33333%;
}
.u-grid .col.col-l-5 {
  width: 41.66666%;
}
.u-grid .col.col-l-0 {
  width: 45.83333%;
}
.u-grid .col.col-l-6 {
  width: 50%;
}
.u-grid .col.col-l-1 {
  width: 54.16666%;
}
.u-grid .col.col-l-7 {
  width: 58.33333%;
}
.u-grid .col.col-l-8 {
  width: 66.66666%;
}
.u-grid .col.col-l-9 {
  width: 75%;
}
.u-grid .col.col-l-10 {
  width: 83.33333%;
}
.u-grid .col.col-l-12 {
  width: 100%;
}

.u-order-l-1 {
  -webkit-box-ordinal-group: 1;
  -webkit-order: 1;
  order: 1;
}

.u-order-l-2 {
  -webkit-box-ordinal-group: 2;
  -webkit-order: 2;
  order: 2;
}

.u-order-l-3 {
  -webkit-box-ordinal-group: 3;
  -webkit-order: 3;
  order: 3;
}

.u-order-l-4 {
  -webkit-box-ordinal-group: 4;
  -webkit-order: 4;
  order: 4;
}

.u-order-l-5 {
  -webkit-box-ordinal-group: 5;
  -webkit-order: 5;
  order: 5;
}

.u-order-l-6 {
  -webkit-box-ordinal-group: 6;
  -webkit-order: 6;
  order: 6;
}

@media screen and (max-width: 1024px) {
  .u-grid .col.col-m-2 {
    width: 16.6666%;
  }
  .u-grid .col.col-m-20p {
    width: 20%;
  }
  .u-grid .col.col-m-3 {
    width: 25%;
  }
  .u-grid .col.col-m-4 {
    width: 33.33333%;
  }
  .u-grid .col.col-m-5 {
    width: 41.66666%;
  }
  .u-grid .col.col-m-6 {
    width: 50%;
  }
  .u-grid .col.col-m-7 {
    width: 58.33333%;
  }
  .u-grid .col.col-m-8 {
    width: 66.66666%;
  }
  .u-grid .col.col-m-9 {
    width: 75%;
  }
  .u-grid .col.col-m-10 {
    width: 83.33333%;
  }
  .u-grid .col.col-m-12 {
    width: 100%;
  }
  .u-order-m-1 {
    -webkit-box-ordinal-group: 1;
    -webkit-order: 1;
    order: 1;
  }
  .u-order-m-2 {
    -webkit-box-ordinal-group: 2;
    -webkit-order: 2;
    order: 2;
  }
  .u-order-m-3 {
    -webkit-box-ordinal-group: 3;
    -webkit-order: 3;
    order: 3;
  }
  .u-order-m-4 {
    -webkit-box-ordinal-group: 4;
    -webkit-order: 4;
    order: 4;
  }
  .u-order-m-5 {
    -webkit-box-ordinal-group: 5;
    -webkit-order: 5;
    order: 5;
  }
  .u-order-m-6 {
    -webkit-box-ordinal-group: 6;
    -webkit-order: 6;
    order: 6;
  }
}
@media only screen and (max-width: 768px) {
  .u-grid {
    margin: 5px -5px 0;
  }
  .u-grid .col {
    padding: 0 5px;
  }
  .u-grid .col.col-s-2 {
    width: 16.6666%;
  }
  .u-grid .col.col-s-20p {
    width: 20%;
  }
  .u-grid .col.col-s-3 {
    width: 25%;
  }
  .u-grid .col.col-s-4 {
    width: 33.33333%;
  }
  .u-grid .col.col-s-5 {
    width: 41.66666%;
  }
  .u-grid .col.col-s-6 {
    width: 50%;
  }
  .u-grid .col.col-s-7 {
    width: 58.33333%;
  }
  .u-grid .col.col-s-8 {
    width: 66.66666%;
  }
  .u-grid .col.col-s-9 {
    width: 75%;
  }
  .u-grid .col.col-s-10 {
    width: 83.33333%;
  }
  .u-grid .col.col-s-12 {
    width: 100%;
  }
  .order-s-1 {
    -webkit-box-ordinal-group: 1;
    -webkit-order: 1;
    order: 1;
  }
  .order-s-2 {
    -webkit-box-ordinal-group: 2;
    -webkit-order: 2;
    order: 2;
  }
  .order-s-3 {
    -webkit-box-ordinal-group: 3;
    -webkit-order: 3;
    order: 3;
  }
  .order-s-4 {
    -webkit-box-ordinal-group: 4;
    -webkit-order: 4;
    order: 4;
  }
  .order-s-5 {
    -webkit-box-ordinal-group: 5;
    -webkit-order: 5;
    order: 5;
  }
  .order-s-6 {
    -webkit-box-ordinal-group: 6;
    -webkit-order: 6;
    order: 6;
  }
}
/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
/* ----------------------------------------------------------
   #Display
---------------------------------------------------------- */
/*doc
---
title: display
name: display
categories: [utility]
---

表示非表示を切り替えます。

dn = display: none 
db = display: block

 pcのみ表示 → class="u-dn-md"
 spのみ表示 = class="u-dn u-db-md"

*/
.u-dn {
  display: none !important;
}

@media screen and (max-width: 434px) {
  .u-dn-sm {
    display: none !important;
  }
}
@media screen and (max-width: 768px) {
  .u-dn-md {
    display: none !important;
  }
}
@media screen and (max-width: 840px) {
  .u-dn-lg {
    display: none !important;
  }
}
@media screen and (max-width: 1120px) {
  .u-dn-xl {
    display: none !important;
  }
}
@media screen and (max-width: 1110px) {
  .u-dn-hd {
    display: none !important;
  }
}
@media screen and (max-width: 960px) {
  .u-dn-ml {
    display: none !important;
  }
}
.u-db {
  display: block !important;
}

@media screen and (max-width: 434px) {
  .u-db-sm {
    display: block !important;
  }
}
@media screen and (max-width: 768px) {
  .u-db-md {
    display: block !important;
  }
}
@media screen and (max-width: 840px) {
  .u-db-lg {
    display: block !important;
  }
}
@media screen and (max-width: 1120px) {
  .u-db-xl {
    display: block !important;
  }
}
@media screen and (max-width: 1110px) {
  .u-db-hd {
    display: block !important;
  }
}
@media screen and (max-width: 960px) {
  .u-db-ml {
    display: block !important;
  }
}
.u-di {
  display: inline !important;
}

@media screen and (max-width: 434px) {
  .u-di-sm {
    display: inline !important;
  }
}
@media screen and (max-width: 768px) {
  .u-di-md {
    display: inline !important;
  }
}
@media screen and (max-width: 840px) {
  .u-di-lg {
    display: inline !important;
  }
}
@media screen and (max-width: 1120px) {
  .u-di-xl {
    display: inline !important;
  }
}
@media screen and (max-width: 1110px) {
  .u-di-hd {
    display: inline !important;
  }
}
@media screen and (max-width: 960px) {
  .u-di-ml {
    display: inline !important;
  }
}
.u-dib {
  display: inline-block !important;
}

@media screen and (max-width: 434px) {
  .u-dib-sm {
    display: inline-block !important;
  }
}
@media screen and (max-width: 768px) {
  .u-dib-md {
    display: inline-block !important;
  }
}
@media screen and (max-width: 840px) {
  .u-dib-lg {
    display: inline-block !important;
  }
}
@media screen and (max-width: 1120px) {
  .u-dib-xl {
    display: inline-block !important;
  }
}
@media screen and (max-width: 1110px) {
  .u-dib-hd {
    display: inline-block !important;
  }
}
@media screen and (max-width: 960px) {
  .u-dib-ml {
    display: inline-block !important;
  }
}
.u-df {
  display: flex !important;
}

@media screen and (max-width: 434px) {
  .u-df-sm {
    display: flex !important;
  }
}
@media screen and (max-width: 768px) {
  .u-df-md {
    display: flex !important;
  }
}
@media screen and (max-width: 840px) {
  .u-df-lg {
    display: flex !important;
  }
}
@media screen and (max-width: 1120px) {
  .u-df-xl {
    display: flex !important;
  }
}
@media screen and (max-width: 1110px) {
  .u-df-hd {
    display: flex !important;
  }
}
@media screen and (max-width: 960px) {
  .u-df-ml {
    display: flex !important;
  }
}
.u-dg {
  display: grid !important;
}

@media screen and (max-width: 434px) {
  .u-dg-sm {
    display: grid !important;
  }
}
@media screen and (max-width: 768px) {
  .u-dg-md {
    display: grid !important;
  }
}
@media screen and (max-width: 840px) {
  .u-dg-lg {
    display: grid !important;
  }
}
@media screen and (max-width: 1120px) {
  .u-dg-xl {
    display: grid !important;
  }
}
@media screen and (max-width: 1110px) {
  .u-dg-hd {
    display: grid !important;
  }
}
@media screen and (max-width: 960px) {
  .u-dg-ml {
    display: grid !important;
  }
}
/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
.u-contents {
  position: relative;
  width: 100%;
  max-width: 1150px;
  margin: 0 auto;
  padding: 0 15px;
}
.u-contents .u-contents_min {
  max-width: 840px;
  padding: 0;
}

.u-contents .u-contents_600, .u-contents_min .u-contents_600 {
  max-width: 600px;
  padding: 0;
}
.u-contents .u-contents_650, .u-contents_min .u-contents_650 {
  max-width: 650px;
  padding: 0;
}
.u-contents .u-contents_750, .u-contents_min .u-contents_750 {
  max-width: 750px;
  padding: 0;
}

.u-contents_min {
  width: 100%;
  max-width: 870px;
  margin: 0 auto;
  padding: 0 15px;
}

.u-contents_600 {
  width: 100%;
  max-width: 570px;
  margin: 0 auto;
  padding: 0 15px;
}

.u-contents_650 {
  width: 100%;
  max-width: 620px;
  margin: 0 auto;
  padding: 0 15px;
}

.u-contents_750 {
  width: 100%;
  max-width: 720px;
  margin: 0 auto;
  padding: 0 15px;
}

@media screen and (max-width: 768px) {
  .u-contents {
    max-width: 100%;
  }
  .u-contents .u-contents_min {
    max-width: 100%;
  }
  .u-contents_min {
    max-width: 100%;
  }
}
/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
/* ----------------------------------------------------------
   #Spacing
---------------------------------------------------------- */
/*doc
---
title: display
name: display
categories: [utility]
---

5px刻みで余白を調整します
*/
/* margin top */
.u-mt-0 {
  margin-top: 0px !important;
}

.u-mt-5 {
  margin-top: 5px !important;
}

.u-mt-10 {
  margin-top: 10px !important;
}

.u-mt-15 {
  margin-top: 15px !important;
}

.u-mt-20 {
  margin-top: 20px !important;
}

.u-mt-25 {
  margin-top: 25px !important;
}

.u-mt-30 {
  margin-top: 30px !important;
}

.u-mt-35 {
  margin-top: 35px !important;
}

.u-mt-40 {
  margin-top: 40px !important;
}

.u-mt-45 {
  margin-top: 45px !important;
}

.u-mt-50 {
  margin-top: 50px !important;
}

.u-mt-55 {
  margin-top: 55px !important;
}

.u-mt-60 {
  margin-top: 60px !important;
}

.u-mt-65 {
  margin-top: 65px !important;
}

.u-mt-70 {
  margin-top: 70px !important;
}

.u-mt-75 {
  margin-top: 75px !important;
}

.u-mt-80 {
  margin-top: 80px !important;
}

.u-mt-85 {
  margin-top: 85px !important;
}

.u-mt-90 {
  margin-top: 90px !important;
}

.u-mt-95 {
  margin-top: 95px !important;
}

.u-mt-100 {
  margin-top: 100px !important;
}

.u-mt-105 {
  margin-top: 105px !important;
}

.u-mt-110 {
  margin-top: 110px !important;
}

@media screen and (max-width: 960px) {
  .u-mt-s-0 {
    margin-top: 0px !important;
  }
  .u-mt-s-5 {
    margin-top: 5px !important;
  }
  .u-mt-s-10 {
    margin-top: 10px !important;
  }
  .u-mt-s-15 {
    margin-top: 15px !important;
  }
  .u-mt-s-20 {
    margin-top: 20px !important;
  }
  .u-mt-s-25 {
    margin-top: 25px !important;
  }
  .u-mt-s-30 {
    margin-top: 30px !important;
  }
  .u-mt-s-35 {
    margin-top: 35px !important;
  }
  .u-mt-s-40 {
    margin-top: 40px !important;
  }
  .u-mt-s-45 {
    margin-top: 45px !important;
  }
  .u-mt-s-50 {
    margin-top: 50px !important;
  }
  .u-mt-s-55 {
    margin-top: 55px !important;
  }
  .u-mt-s-60 {
    margin-top: 60px !important;
  }
  .u-mt-s-65 {
    margin-top: 65px !important;
  }
  .u-mt-s-70 {
    margin-top: 70px !important;
  }
  .u-mt-s-75 {
    margin-top: 75px !important;
  }
  .u-mt-s-80 {
    margin-top: 80px !important;
  }
}
/* margin bottom */
.u-mb-0 {
  margin-bottom: 0px !important;
}

.u-mb-5 {
  margin-bottom: 5px !important;
}

.u-mb-10 {
  margin-bottom: 10px !important;
}

.u-mb-15 {
  margin-bottom: 15px !important;
}

.u-mb-20 {
  margin-bottom: 20px !important;
}

.u-mb-25 {
  margin-bottom: 25px !important;
}

.u-mb-30 {
  margin-bottom: 30px !important;
}

.u-mb-35 {
  margin-bottom: 35px !important;
}

.u-mb-40 {
  margin-bottom: 40px !important;
}

.u-mb-45 {
  margin-bottom: 45px !important;
}

.u-mb-50 {
  margin-bottom: 50px !important;
}

.u-mb-55 {
  margin-bottom: 55px !important;
}

.u-mb-60 {
  margin-bottom: 60px !important;
}

@media screen and (max-width: 960px) {
  .u-mb-s-0 {
    margin-bottom: 0px !important;
  }
  .u-mb-s-5 {
    margin-bottom: 5px !important;
  }
  .u-mb-s-10 {
    margin-bottom: 10px !important;
  }
  .u-mb-s-15 {
    margin-bottom: 15px !important;
  }
  .u-mb-s-20 {
    margin-bottom: 20px !important;
  }
  .u-mb-s-25 {
    margin-bottom: 25px !important;
  }
  .u-mb-s-30 {
    margin-bottom: 30px !important;
  }
  .u-mb-s-35 {
    margin-bottom: 35px !important;
  }
  .u-mb-s-40 {
    margin-bottom: 40px !important;
  }
}
/* padding */
.u-p-1 {
  padding: 1px !important;
}

.u-p-0 {
  padding: 0px !important;
}

.u-p-5 {
  padding: 5px !important;
}

.u-p-10 {
  padding: 10px !important;
}

.u-p-15 {
  padding: 15px !important;
}

.u-p-20 {
  padding: 20px !important;
}

.u-p-25 {
  padding: 25px !important;
}

.u-p-30 {
  padding: 30px !important;
}

.u-p-35 {
  padding: 35px !important;
}

.u-p-40 {
  padding: 40px !important;
}

.u-p-45 {
  padding: 45px !important;
}

.u-p-50 {
  padding: 50px !important;
}

@media screen and (max-width: 960px) {
  .u-p-s-0 {
    padding: 0px !important;
  }
  .u-p-s-5 {
    padding: 5px !important;
  }
  .u-p-s-10 {
    padding: 10px !important;
  }
  .u-p-s-15 {
    padding: 15px !important;
  }
  .u-p-s-20 {
    padding: 20px !important;
  }
  .u-p-s-25 {
    padding: 25px !important;
  }
  .u-p-s-30 {
    padding: 30px !important;
  }
  .u-p-s-35 {
    padding: 35px !important;
  }
  .u-p-s-40 {
    padding: 40px !important;
  }
}
.u-ps-0 {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.u-ps-15 {
  padding-left: 15px !important;
  padding-right: 15px !important;
}

@media screen and (max-width: 960px) {
  .u-ps-s0 {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  .u-ps-s15 {
    padding-left: 15px !important;
    padding-right: 15px !important;
  }
}
/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
.u-bg-black {
  background-color: #333 !important;
}

.u-bg-white {
  background-color: #fff !important;
}

.u-bg1 {
  background-color: #FBF0F6 !important;
}

.u-bg2 {
  background-color: #EBF9FF !important;
}

.u-bg3 {
  background-color: #F9F9F9 !important;
}

.u-bg-ac1 {
  background-color: #DC69A5 !important;
}

.u-bg-ac2 {
  background-color: #0976A3 !important;
}

.u-bg-tp_light {
  background-color: #EBF9FF !important;
}

.u-bg-tp_standard {
  background-color: #FEF5E5 !important;
}

.u-bg-tp_premium {
  background-color: #FDF0F5 !important;
}

.u-bg-tp_photo {
  background-color: #E5F2EC !important;
}

/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
/* ---
テキストのスタイルを指定する汎用クラスです。
--- */
/* 文字の色を指定します */
.u-text-red {
  color: #FF4B00 !important;
}

.u-text-white {
  color: #fff !important;
}

.u-text-black {
  color: #333 !important;
}

.u-text-grey {
  color: #777 !important;
}

.u-text-ac1 {
  color: #DC69A5 !important;
}

.u-text-ac2 {
  color: #0976A3 !important;
}

.u-text-tp_light {
  color: #0976A3 !important;
}

.u-text-tp_standard {
  color: #F39800 !important;
}

.u-text-tp_premium {
  color: #EB6EA0 !important;
}

.u-text-tp_photo {
  color: #007B43 !important;
}

/* font-weightを指定します */
.u-text-thin {
  font-weight: 200 !important;
}

.u-text-light {
  font-weight: 300 !important;
}

.u-text-normal {
  font-weight: 400 !important;
}

.u-text-medium {
  font-weight: 500 !important;
}

.u-text-semibold {
  font-weight: 600 !important;
}

.u-text-bold {
  font-weight: 600 !important;
}

.u-text-w-black {
  font-weight: 700 !important;
}

/* text-alignを指定します */
.u-text-right {
  text-align: right !important;
}

.u-text-center {
  text-align: center !important;
}

.u-text-left {
  text-align: left !important;
}

.u-text-top {
  vertical-align: top !important;
}

.u-text-middle {
  vertical-align: middle !important;
}

.u-text-bottom {
  vertical-align: bottom !important;
}

@media screen and (max-width: 960px) {
  .u-text-s-right {
    text-align: right !important;
  }
  .u-text-s-center {
    text-align: center !important;
  }
  .u-text-s-left {
    text-align: left !important;
  }
}
/* フォントサイズを指定します */
.u-text-xxxxs {
  font-size: 1.2rem;
}
@media screen and (max-width: 768px) {
  .u-text-xxxxs {
    font-size: 1.1rem;
  }
}

.u-text-xxxs {
  font-size: 1.3rem;
}
@media screen and (max-width: 768px) {
  .u-text-xxxs {
    font-size: 1.2rem;
  }
}

.u-text-xxs {
  font-size: 1.4rem;
}
@media screen and (max-width: 768px) {
  .u-text-xxs {
    font-size: 1.3rem;
  }
}

.u-text-xs {
  font-size: 1.5rem;
}
@media screen and (max-width: 768px) {
  .u-text-xs {
    font-size: 1.4rem;
  }
}

.u-text-sm {
  font-size: 1.7rem;
}
@media screen and (max-width: 768px) {
  .u-text-sm {
    font-size: 1.6rem;
  }
}

.u-text-md {
  font-size: 1.9rem;
}
@media screen and (max-width: 768px) {
  .u-text-md {
    font-size: 1.6rem;
  }
}

.u-text-lg {
  font-size: 2rem;
}
@media screen and (max-width: 768px) {
  .u-text-lg {
    font-size: 1.8rem;
  }
}

.u-text-xl {
  font-size: 2.2rem;
}
@media screen and (max-width: 768px) {
  .u-text-xl {
    font-size: 2rem;
  }
}

.u-text-xxl {
  font-size: 2.4rem;
}
@media screen and (max-width: 768px) {
  .u-text-xxl {
    font-size: 2.2rem;
  }
}

.u-text-xxxl {
  font-size: 2.8rem;
}
@media screen and (max-width: 768px) {
  .u-text-xxxl {
    font-size: 2.4rem;
  }
}

.u-text-xxxxl {
  font-size: 3rem;
}
@media screen and (max-width: 768px) {
  .u-text-xxxxl {
    font-size: 2.6rem;
  }
}

.u-text-xxxxxl {
  font-size: 3.2rem;
}
@media screen and (max-width: 768px) {
  .u-text-xxxxxl {
    font-size: 2.8rem;
  }
}

.u-text-xxxxxxl {
  font-size: 3.6rem;
}
@media screen and (max-width: 768px) {
  .u-text-xxxxxxl {
    font-size: 3.2rem;
  }
}

.u-text-xxxxxxxl {
  font-size: 4rem;
}
@media screen and (max-width: 768px) {
  .u-text-xxxxxxxl {
    font-size: 3.6rem;
  }
}

/*@include fw.mq(min, ml){
  .u-text-s-xxxxs { @include fw.fz('xxxxs');}
  .u-text-s-xxxs { @include fw.fz('xxxs');}
  .u-text-s-xxs { @include fw.fz('xxs');}
  .u-text-s-xs { @include fw.fz('xs');}
  .u-text-s-sm { @include fw.fz('sm');}
  .u-text-s-md { @include fw.fz('md');}
  .u-text-s-lg { @include fw.fz('lg');}
  .u-text-s-xl { @include fw.fz('xl');}
  .u-text-s-xxl { @include fw.fz('xxl');}
  .u-text-s-xxxl { @include fw.fz('xxxl');}
  .u-text-s-xxxxl { @include fw.fz('xxxxl');}
  .u-text-s-xxxxxl { @include fw.fz('xxxxxl');}
  .u-text-s-xxxxxxl { @include fw.fz('xxxxxxl');}
  .u-text-s-xxxxxxxl { @include fw.fz('xxxxxxxl');}
} */
/* 文字下線 */
.u-text_under-yellow {
  background: linear-gradient(transparent 60%, #FFFAC6 40%);
}

/* #Align
  -------------------------------------------------------------------------- */
/*doc
---
title: align
name: align
categories: [utility]
---

画像などを左右や中央に配置します。

*/
.u-align-left {
  display: block;
  margin-left: 0 !important;
  margin-right: auto !important;
}

.u-align-center {
  display: block;
  margin-right: auto !important;
  margin-left: auto !important;
}

.u-align-right {
  display: block;
  margin-left: auto !important;
  margin-right: 0 !important;
}

/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
/* スクリーンリーダー用のテキスト（非表示）
----- object/utility/_u-sr ----- */
/* フォーカス不要（テキストなど） */
.u-sr-only {
  width: 1px;
  height: 1px;
  clip: rect(0, 0, 0, 0);
  overflow: hidden;
  position: absolute;
  white-space: nowrap;
  margin: -1px;
  padding: 0;
  border: 0;
}

/* フォーカス必須（ボタンなど） */
.u-sr-only_fc:not(:focus):not(:active) {
  height: 1px;
  width: 1px;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  overflow: hidden;
  position: absolute;
  white-space: nowrap;
}

/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
/* 角丸
----- object/utility/_u-img ----- */
.u-round {
  border-radius: 5px;
}

.u-round-fig {
  border-radius: 5px;
  overflow: hidden;
}

/* #Base
   -------------------------------------------------------------------------- */
/**
 * Baseレイヤーにはプロジェクトにおける、基本的なベーススタイルを定義します。
 * 要素セレクタや属性セレクタなど、詳細度はできるかぎり低く保っておきます。
 * 基本的にclass属性は使用しません。
 */
/**
 * `padding`と`border`を`width`に含めます。
 * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
 */
/* 注釈（文頭に ※ ）
----- object/utility/_p-attention ----- */
.u-annotation {
  font-size: 1.5rem;
  padding-left: 1.5rem;
  position: relative;
}
.u-annotation::before {
  content: "※";
  font-size: 1.5rem;
  position: absolute;
  top: 0;
  left: 0;
}
.u-annotation__min {
  font-size: 1.3rem;
  padding-left: 1.3rem;
  position: relative;
}
.u-annotation__min::before {
  content: "※";
  font-size: 1.3rem;
  position: absolute;
  top: 0;
  left: 0;
}/*# sourceMappingURL=style.css.map */