@charset "UTF-8";
/**
 * このスタイルシートは[FLOCSS](https://github.com/hiloki/flocss)をベースにしています。
 * 定義されているレイヤー以外にもThemeやTestなどのレイヤーを追加することもできます。
 * 詳しくは[CSSコーディングルール](https://github.com/manabuyasuda/styleguide/blob/master/css-coding-rule.md#flocss)を参照してください。

/* ----------------------------------------------------------
   #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
   -------------------------------------------------------------------------- */
/* ----------------------------------------------------------
   #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: #ED78AE;
  transition: 0.3s;
}

a:hover {
  color: #8D3F63;
}

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

#wrap {
  width: 100%;
  margin-top: 80px;
}
@media screen and (max-width: 1160px) {
  #wrap {
    margin-top: 65px;
  }
}

strong {
  font-weight: 600;
}

/* ----------------------------------------------------------
   #Layout
---------------------------------------------------------- */
/* #Base
   -------------------------------------------------------------------------- */
/* ----------------------------------------------------------
   #Header
---------------------------------------------------------- */
/*doc
---
title: header
name: header
categories: [layout]
---

`<body>`タグ直下にある`<header>`タグのスタイルです。
グローバルナビゲーションのレイアウトを含むことはできますが、
コンポーネント自体はobject/projectレイヤーで定義します。
*/
.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: 1160px) {
  .l-header_inner {
    padding: 10px 10px 0 20px;
    height: 70px;
  }
}
.header_inner {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  padding: 0 100px 0 30px;
  background-color: rgba(255, 255, 255, 0.3);
  backdrop-filter: blur(10px);
  z-index: 999;
}

.header_grid {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  min-height: 80px;
}

.header_logo a {
  display: block;
  padding: 5px 0;
}
.header_logo a:hover {
  opacity: 0.7;
}
.header_logo img {
  height: 60px;
  width: auto;
}

.header_item {
  display: flex;
  align-items: center;
}

.global_menu_inner {
  display: flex;
  align-items: center;
}

.nav_menu {
  font-weight: 500;
  display: grid;
  grid-auto-flow: column;
  gap: 10px 30px;
}
.nav_menu li a {
  display: block;
  color: #333;
  text-decoration: none;
  padding: 10px 0;
  position: relative;
}
.nav_menu li a::before {
  position: absolute;
  left: 0;
  content: "";
  width: 100%;
  height: 2px;
  background: #ED78AE;
  bottom: 10px;
  opacity: 0;
  visibility: hidden;
  transition: 0.3s;
  border-radius: 2px;
}
.nav_menu li a:hover {
  color: #ED78AE;
}
.nav_menu li a:hover::before {
  visibility: visible;
  bottom: 10px; /*アニメーションが止まる位置*/
  opacity: 1;
}

.header_info {
  display: grid;
  grid-auto-flow: column;
  gap: 10px;
  padding-left: 25px;
}

.header_btn {
  display: inline-block;
  padding: 5px 20px;
  border-radius: 20px;
  color: #fff;
  background: #ED78AE;
  font-weight: 500;
  border: 2px solid #ED78AE;
}
.header_btn.__outline {
  color: #ED78AE;
  background: #fff;
}
.header_btn:hover {
  color: #fff;
  background: #8D3F63;
  border-color: #8D3F63;
}

@media screen and (max-width: 1160px) {
  .header_inner {
    padding: 0 70px 0 15px;
  }
  .header_grid {
    min-height: 65px;
  }
  .header_logo {
    position: relative;
    z-index: 999;
  }
  .header_logo img {
    height: 45px;
  }
  .global_menu {
    position: fixed;
    z-index: 998;
    top: 0;
    right: 0;
    transform: translateX(100%);
    transition: all 0.6s;
    width: 100vw;
    background: #fff;
    padding: 80px 20px 30px;
    height: 100dvh;
    overflow-y: scroll;
    overscroll-behavior-y: contain;
  }
  .global_menu.active {
    transform: translateX(0%);
  }
  .global_menu::before, .global_menu::after {
    content: "";
    display: block;
    background: url("../img/hamburger_deco_l.png") center/cover no-repeat;
    width: 130px;
    height: 567px;
    position: absolute;
    top: 80px;
    left: 0;
    z-index: -1;
  }
  .global_menu::after {
    background-image: url("../img/hamburger_deco_r.png");
    left: auto;
    right: 0;
  }
  .global_menu_inner {
    display: block;
    background: rgba(255, 255, 255, 0.9);
    border-radius: 20px;
    padding: 20px;
    width: 100%;
    max-width: 500px;
    margin: 0 auto;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.25);
  }
  .nav_menu {
    letter-spacing: 3px;
    grid-auto-flow: row;
  }
  .nav_menu li a {
    padding: 10px 0 10px 20px;
  }
  .nav_menu li a::before {
    content: "";
    display: block;
    background: url("../img/ico-arrow_white.svg") center/6px 6px no-repeat;
    background-color: #ED78AE;
    width: 15px;
    height: 15px;
    border-radius: 50%;
    bottom: auto;
    top: 50%;
    translate: 0 -50%;
    opacity: 1;
    visibility: visible;
  }
  .header_info {
    grid-auto-flow: row;
    padding: 20px 0 0;
  }
  .header_item {
    display: flex;
  }
  .header_btn {
    display: grid;
    place-content: center;
    width: 100%;
    max-width: 300px;
    min-height: 45px;
    padding: 6px 30px 4px 30px;
    border-radius: 10px;
    position: relative;
    margin: 0 auto;
  }
  .header_btn::before {
    content: "";
    mask: url("../../assets/img/ico-blank.svg") center/contain no-repeat;
    background: #fff;
    display: block;
    width: 15px;
    height: 13px;
    position: absolute;
    top: 50%;
    right: 15px;
    translate: 0 -50%;
    transition: 0.3s;
  }
  .header_btn.__outline::before {
    background: #ED78AE;
  }
  .header_btn:hover::before {
    mask-image: url("../../assets/img/ico-blank--hover.svg");
    width: 17px;
    height: 15px;
    right: 13px;
    top: calc(50% - 1px);
  }
  .header_login {
    display: grid;
    place-items: center;
  }
  .header_login .speech_bubble {
    display: inline-block;
    color: #fff;
    background: #ED78AE;
    position: relative;
    border-radius: 10px;
    padding: 0 15px;
  }
  .header_login .speech_bubble::before {
    content: "";
    background: url("../img/triangle.svg") center/cover no-repeat;
    display: block;
    width: 9px;
    height: 8px;
    position: absolute;
    bottom: -5px;
    left: 50%;
    translate: -50%;
  }
  .header_login a {
    display: grid;
    align-items: center;
    width: calc(100% - 40px);
    max-width: 300px;
    min-height: 55px;
    padding: 6px 30px 4px 20px;
    border-radius: 10px;
    margin: 10px auto 0;
    font-weight: 500;
    background: rgba(255, 255, 255, 0.9);
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.25);
    position: relative;
  }
  .header_login a::before {
    content: "";
    mask: url("../../assets/img/ico-blank.svg") center/contain no-repeat;
    background: #ED78AE;
    display: block;
    width: 15px;
    height: 13px;
    position: absolute;
    top: 50%;
    right: 15px;
    translate: 0 -50%;
    transition: 0.3s;
  }
  .header_login a:hover::before {
    mask-image: url("../../assets/img/ico-blank--hover.svg");
    width: 17px;
    height: 15px;
    right: 13px;
    top: calc(50% - 1px);
  }
  .header_login a span {
    padding-left: 30px;
    position: relative;
  }
  .header_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%;
  }
  .header_login a.c-link_invalid {
    box-shadow: none;
    border-color: #eee;
    background: #eee;
  }
  .header_login a.c-link_invalid::before {
    background: #ddd;
  }
  .header_tel {
    background: rgba(255, 255, 255, 0.9);
    border-radius: 20px;
    margin-top: 80px;
    padding: 25px 20px;
    width: 100%;
    max-width: 500px;
    margin: 0 auto;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.25);
  }
  .hamburger {
    display: block;
    position: relative;
    width: 45px;
    height: 45px;
    cursor: pointer;
    text-align: center;
    z-index: 999;
    mask: url("../img/deco_02.svg") center/contain no-repeat;
    background-color: #FCDFEA;
  }
  .hamburger span {
    display: block;
    position: absolute;
    width: 15px;
    height: 2px;
    border-radius: 2px;
    left: 50%;
    background: #ED78AE;
    transition: 0.3s;
    translate: -50% -50%;
  }
  .hamburger span:nth-child(1) {
    top: calc(50% - 5px);
  }
  .hamburger span:nth-child(2) {
    top: 50%;
  }
  .hamburger span:nth-child(3) {
    top: calc(50% + 5px);
  }
  .hamburger.active span:nth-child(2) {
    rotate: 45deg;
  }
  .hamburger.active span:nth-child(1), .hamburger.active span:nth-child(3) {
    top: 50%;
    rotate: -45deg;
  }
}
/* #Base
   -------------------------------------------------------------------------- */
/* サイドメニュー 
---------------------------------- */
.side_btn {
  width: 280px;
  position: fixed;
  bottom: 20px;
  right: -220px;
  z-index: 998;
  transition: 0.3s;
}
.side_btn:hover {
  right: -1px;
}
.side_btn:has(.c-link_invalid) {
  pointer-events: none;
}
.side_btn a {
  display: grid;
  grid-template-columns: 60px 1fr;
  min-height: 60px;
  background: rgba(255, 255, 255, 0.9);
  border-radius: 10px 0 0 10px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.25);
}
.side_btn a.c-link_invalid {
  box-shadow: none;
  background: #eee;
}
.side_btn .ico {
  display: grid;
  place-content: center;
  place-items: center;
}
.side_btn .ico span {
  line-height: 1;
  padding-top: 3px;
}
.side_btn .text {
  display: grid;
  align-items: center;
}
@media screen and (max-width: 768px) {
  .side_btn {
    right: -225px;
  }
  .side_btn a {
    grid-template-columns: 55px 1fr;
    min-height: 55px;
  }
}

/* CTA 
---------------------------------- */
.l-footer-cta {
  background: #FCDFEA;
  padding: 40px 20px;
  margin-top: 100px;
}

main:has(.footer_no_top) + .l-footer-cta {
  margin-top: 0;
}

.l-footer-cta_grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(530px, 48%));
  gap: 25px 40px;
  max-width: 1270px;
  justify-content: center;
  margin: 0 auto;
}

.l-footer-cta_item {
  background: #fff;
  border-radius: 65px;
  overflow: hidden;
  position: relative;
}
.l-footer-cta_item.tel {
  display: grid;
  grid-template-columns: 30% 1fr;
  gap: 25px;
  align-items: flex-end;
}
.l-footer-cta_item.tel .text {
  padding: 30px 30px 30px 0;
}
.l-footer-cta_item.form {
  padding: 30px 70px;
  display: grid;
  align-items: center;
}
.l-footer-cta_item.form img {
  height: 50%;
  max-height: 200px;
  position: absolute;
  bottom: 0;
  right: 0;
}

/* フッター 
---------------------------------- */
.l-footer {
  padding: 20px;
  margin-top: 25px;
}

.l-footer_inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
}

.l-footer_speech_bubble_wrap {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 5px;
}
.l-footer_speech_bubble_wrap li {
  width: 80px;
  font-size: 1.2rem;
  font-weight: 500;
  line-height: 1.5;
  text-align: center;
}
.l-footer_speech_bubble_wrap img {
  width: 40px;
  height: auto;
}

.l-footer_bottom {
  border-radius: 0 0 20px 20px;
  display: flex;
  flex-wrap: wrap;
  gap: 30px;
  justify-content: space-between;
  align-items: center;
  padding: 30px 70px;
}

.l-footer_main_site {
  display: flex;
  flex-wrap: wrap;
  gap: 0 20px;
  align-items: center;
}
.l-footer_main_site span {
  margin-top: 10px;
}
.l-footer_main_site:hover img {
  opacity: 0.7;
}

.l-footer_item ul {
  display: flex;
  flex-wrap: wrap;
  gap: 5px 40px;
}
.l-footer_item .copyright {
  color: #888;
  font-weight: 300;
}

@media screen and (max-width: 768px) {
  .l-footer-cta {
    padding: 30px 20px 80px;
    margin-top: 80px;
  }
  .l-footer-cta_grid {
    grid-template-columns: 100%;
    gap: 45px;
  }
  .l-footer-cta_item {
    border-radius: 40px;
    overflow: unset;
  }
  .l-footer-cta_item.tel {
    grid-template-columns: none;
  }
  .l-footer-cta_item.tel img {
    height: 100px;
    position: absolute;
    bottom: -25px;
    right: 5px;
  }
  .l-footer-cta_item.tel .text {
    padding: 35px 20px 75px;
  }
  .l-footer-cta_item.form {
    padding: 35px 20px 60px;
  }
  .l-footer-cta_item.form img {
    height: 100px;
    bottom: -50px;
    right: auto;
    left: 5px;
  }
  .l-footer_inner {
    justify-content: center;
  }
  .l-footer_inner > * {
    width: 100%;
  }
  .l-footer_logo {
    order: -1;
    width: 70px;
  }
  .l-footer_contact {
    padding-top: 20px;
    border-top: 1px solid #ddd;
  }
  .l-footer_bottom {
    padding: 25px 15px 15px;
  }
  .l-footer_main_site {
    width: 250px;
    margin: 0 auto;
    justify-content: center;
  }
  .l-footer_item {
    width: 100%;
  }
  .l-footer_item li {
    width: 100%;
    text-align: right;
  }
}
/* #Base
   -------------------------------------------------------------------------- */
/* #Base
   -------------------------------------------------------------------------- */
.l-sidebar {
  width: 100%;
  max-width: 870px;
  margin: 0 auto;
  padding: 20px 15px 0;
  position: relative;
  min-height: 40px;
}
.l-sidebar + * {
  margin-top: 50px;
}
@media screen and (max-width: 768px) {
  .l-sidebar + * {
    margin-top: 30px;
  }
}

/* ----------------------------------------------------------
   #Object
---------------------------------------------------------- */
/* Comment
---------------------------------------------------------- */
/* #Base
   -------------------------------------------------------------------------- */
/* タイトル 
----- object/component/_c-ttl ----- */
.c-ttl-1_deco {
  display: block;
  width: 100%;
  height: 150px;
  position: relative;
  overflow: hidden;
  margin: 0 auto;
}
.c-ttl-1_deco::before {
  content: "";
  background: url("../img/ttl01_deco.svg") center/100% 100% no-repeat;
  display: block;
  width: 90%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 50%;
  translate: -50%;
}
.c-ttl-1_deco::after {
  content: "";
  background: url("../img/ttl-1_deco_l.svg") -20px 20px/120px 122px no-repeat, url("../img/ttl-1_deco_r.svg") right -20px bottom/135px 140px no-repeat;
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}

.c-ttl-1_img {
  height: 250px;
  text-align: center;
}
.c-ttl-1_img::before {
  background-image: url("../img/ttl01_deco_img.svg");
  width: calc(95% + 2px);
  height: calc(100% + 2px);
  top: -1px;
  left: 50%;
  translate: -50%;
}
.c-ttl-1_img::after {
  background-size: 172px 175px, 195px 200px;
  background-position: -20px 20px, right -50px bottom;
}
.c-ttl-1_img img {
  width: 95%;
  height: 100%;
  object-fit: cover;
}

.c-ttl-1 {
  display: block;
  font-size: 3.2rem;
  text-align: center;
  margin: -5.5rem auto 0;
  width: fit-content;
  max-width: calc(90% - 20px);
  position: relative;
  z-index: 1;
  background: #fff;
  padding: 15px 40px 5px 40px;
  border-radius: 30px 30px 0px 0px;
}
.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: 90px;
  }
  .c-ttl-1_deco::before {
    background-image: url("../img/ttl01_deco_sp.svg");
  }
  .c-ttl-1_deco::after {
    background-size: 70px 70px, 72px 73px;
    background-position: -10px 0, right -20px bottom;
  }
  .c-ttl-1_img {
    height: 155px;
  }
  .c-ttl-1_img::before {
    background-image: url("../img/ttl01_deco_img_sp.svg");
  }
  .c-ttl-1_img::after {
    background-size: 110px 105px, 95px 96px;
    background-position: -20px 0, right -20px bottom;
  }
  .c-ttl-1 {
    padding: 5px 20px;
    font-size: 2.7rem;
    margin-top: -4rem;
  }
  .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
   -------------------------------------------------------------------------- */
/* ボタン 
----- object/component/_c-btn ----- */
.c-btn {
  display: grid;
  place-content: center;
  font-size: 1.4rem;
  font-weight: 500;
  color: #fff;
  background-color: #ED78AE;
  border: 2px solid #ED78AE;
  margin: 50px auto 0;
  width: 300px;
  min-height: 50px;
  padding: 6px 30px 4px 30px;
  border-radius: 10px;
  position: relative;
}
.c-btn::before {
  content: "";
  background: url("../img/ico-arrow_white.svg") center/cover no-repeat;
  display: block;
  width: 8px;
  height: 7px;
  position: absolute;
  top: 50%;
  right: 15px;
  translate: 0 -50%;
  transition: 0.3s;
}
.c-btn:hover {
  color: #fff;
  background-color: #8D3F63;
  border-color: #8D3F63;
}
.c-btn:hover::before {
  right: 10px;
}
.c-btn__outline {
  color: #ED78AE;
  background-color: #fff;
}
.c-btn__outline::before {
  background-image: url("../img/ico-arrow.svg");
}
.c-btn__outline.c-btn__blank::before {
  background: #ED78AE;
}
.c-btn__outline.c-btn__blank:hover::before {
  background: #fff;
}
.c-btn__blank::before {
  content: "";
  mask: url("../../assets/img/ico-blank.svg") center/contain no-repeat;
  background: #fff;
  display: block;
  width: 15px;
  height: 13px;
}
.c-btn__blank:hover::before {
  mask-image: url("../../assets/img/ico-blank--hover.svg");
  width: 17px;
  height: 15px;
  right: 13px;
  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: #ED78AE;
  background-color: #fff;
  border: 2px solid #ED78AE;
  width: 300px;
  min-height: 65px;
  padding: 6px 45px 4px 35px;
  border-radius: 15px;
  position: relative;
}
.c-btn_big::before {
  content: "";
  background: url("../../assets/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("../../assets/img/ico-blank.svg");
  width: 15px;
  height: 13px;
}
.c-btn_big.c-btn_blank:hover::before {
  background-image: url("../../assets/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("../../assets/img/ico-pdf_blue.svg");
}
.c-btn_big.c-btn_ac2:hover {
  background-color: #DBF3F4;
}
.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("../../assets/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/ico-arrow_white.svg") center/cover no-repeat;
  background: url("../img/ico-arrow_white.svg") center/8px 7px no-repeat;
  background-color: #ED78AE;
  border-radius: 50%;
  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-color: #0976A3;
}

.standard .c-btn_text {
  color: #7B6500;
}
.standard .c-btn_text::before {
  background-color: #7B6500;
}

.premium .c-btn_text {
  color: #CB397D;
}
.premium .c-btn_text::before {
  background-color: #CB397D;
}

.photo .c-btn_text {
  color: #006934;
}
.photo .c-btn_text::before {
  background-color: #006934;
}

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

@media screen and (max-width: 768px) {
  .c-btn {
    min-height: 45px;
    margin-top: 40px;
  }
  .c-btn::before {
    right: 20px;
  }
}
/* #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: #ED78AE;
  -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: #ED78AE;
  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: 768px) {
  .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: 1160px) {
  .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: 768px) {
  .c-logo_footer {
    text-align: center;
  }
}

/* #Base
   -------------------------------------------------------------------------- */
/* リンク（ボタンの形ではないもの） 
----- 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("../../assets/img/ico-blank.svg") center/contain no-repeat;
  background: #ED78AE;
  display: block;
  width: 12px;
  height: 10px;
  position: absolute;
  right: 3px;
  top: 50%;
  translate: 0 -50%;
  transition: 0.3s;
}
.c-link_blank:hover {
  color: #ED78AE;
}
.c-link_blank:hover::before {
  mask-image: url("../../assets/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: #ED78AE;
}
a:hover .c-link_blank::before {
  mask-image: url("../../assets/img/ico-blank--hover.svg");
  width: 14px;
  height: 12px;
  right: 1px;
  top: calc(50% - 2px);
}

.c-link_tel {
  display: block;
  font-size: 4.2rem;
  padding-left: 35px;
  line-height: 1;
  position: relative;
  font-weight: 500;
}
.c-link_tel::before {
  content: "";
  display: block;
  background: url("../img/ico-tel.svg") center/cover no-repeat;
  width: 30px;
  height: 30px;
  position: absolute;
  left: 0;
  top: 50%;
  translate: 0 -50%;
}

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

@media screen and (max-width: 768px) {
  .c-link_tel {
    font-size: 3.7rem;
    padding-left: 30px;
  }
  .c-link_tel::before {
    width: 28px;
    height: 28px;
  }
}
/* #Base
   -------------------------------------------------------------------------- */
/* アイコン 
----- object/component/_c-ico ----- */
.c-ico_pu {
  display: inline-block;
  padding: 7px 15px;
  background: #ED78AE;
  height: 25px;
  border-radius: 15px;
}
.c-ico_pu img {
  height: 11px;
}
.c-ico_pu__text {
  display: inline-block;
  font-weight: 500;
  color: #ED78AE;
  background: #FBF0F6;
  padding: 1px 15px 0;
  line-height: 1.5;
  border-radius: 15px;
  height: auto;
}
.c-ico_pu.__big {
  display: grid;
  place-content: center;
  padding: 0;
  width: 70px;
  height: 70px;
  mask: url("../../assets/img/lineup_appeal.svg") center/contain no-repeat;
}

.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: #ED78AE;
  line-height: 1;
  width: 45px;
  height: 45px;
  flex-shrink: 0;
  border-radius: 10px 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;
}

/* #Base
   -------------------------------------------------------------------------- */
/* 吹き出し 
----- 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: 768px) {
  .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: #ED78AE;
  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
---------------------------------------------------------- */
/* #Base
   -------------------------------------------------------------------------- */
.p-unav_search_wrap {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 999;
}

.p-unav_search {
  display: grid;
  place-content: center;
  place-items: center;
  width: 80px;
  height: 80px;
  border-radius: 0px 0px 0px 20px;
  background: #eee;
  cursor: pointer;
  text-align: center;
  transition: 0.3s;
}
.p-unav_search:hover {
  background: #ddd;
}
.p-unav_search.is-active {
  background: #FBF0F6;
}
.p-unav_search p {
  font-size: 1.2rem;
  font-weight: 600;
  line-height: 1;
  margin-top: 5px;
}

.p-unav_search_inner {
  display: none;
  position: absolute;
  top: 90px;
  right: 10px;
  background: #FCDFEA;
  width: 100vw;
  max-width: 320px;
  border-radius: 20px;
  padding: 10px;
}
.p-unav_search_inner form {
  display: grid;
  grid-template-columns: 1fr 55px;
  background-color: #fff;
  width: 100%;
  border-radius: 15px;
  overflow: hidden;
}
.p-unav_search_inner .feas_archive_freeword {
  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: #ED78AE;
}
.p-unav_search_inner .feas-submit-button {
  width: 100%;
  padding: 10px;
  text-align: center;
  color: #ED78AE;
  font-weight: 500;
  transition: 0.3s;
}
.p-unav_search_inner .feas-submit-button:hover {
  background-color: #ED78AE;
  color: #fff;
}

@media screen and (max-width: 1160px) {
  .p-unav_search {
    width: 60px;
    height: 60px;
  }
  .p-unav_search img {
    width: 15px;
    height: 20px;
  }
  .p-unav_search_inner {
    top: 70px;
    right: 10px;
    width: calc(100vw - 20px);
    max-width: 550px;
  }
}
/* #Base
   -------------------------------------------------------------------------- */
.p-sidebar_top,
.p-sidebar_back {
  display: none !important;
}

.p-sidebar_btn {
  background: #fff;
  color: #ED78AE;
  place-content: center;
  height: 40px;
  width: calc(100% - 70px);
  max-width: 470px;
  border-radius: 20px;
  border: 1px solid #ED78AE;
  position: absolute;
  top: 0;
  left: 50%;
  translate: -50%;
  transition: 0.3s;
  cursor: pointer;
}
.p-sidebar_btn.u-dn {
  display: grid !important;
}
.p-sidebar_btn::before, .p-sidebar_btn::after {
  content: "";
  background: url("../img/sidebar_btn_deco.svg") center/cover no-repeat;
  display: block;
  width: 27px;
  height: 43px;
  position: absolute;
  top: -2px;
  left: -1px;
  transition: 0.3s;
}
.p-sidebar_btn::after {
  left: auto;
  right: -2px;
  top: -3px;
  rotate: 180deg;
}
.p-sidebar_btn .p-sidebar_hmb {
  display: none;
}
.p-sidebar_btn > p {
  font-weight: 500;
  display: inline-block;
  position: relative;
  padding-right: 20px;
}
.p-sidebar_btn > p::after {
  transition: 0.3s;
}
.p-sidebar_btn > p::before {
  content: "";
  background: url("../img/ico-arrow.svg") center/cover no-repeat;
  display: block;
  width: 8px;
  height: 7px;
  position: absolute;
  top: 50%;
  right: 0;
  translate: 0 -50%;
  transition: 0.3s;
  rotate: 90deg;
}
.p-sidebar_btn:hover {
  background: #FBF0F6;
}
.p-sidebar_btn:hover::before, .p-sidebar_btn:hover::after {
  opacity: 0;
}
.p-sidebar_btn:hover > p::before {
  top: calc(50% + 5px);
}

.p-sidebar_list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 10px;
  background-color: #FBF0F6;
  border-radius: 20px;
  padding: 0 45px;
  height: 0;
  overflow: hidden;
  opacity: 0;
  transition: 0.3s;
}

.p-sidebar_item a {
  display: grid;
  align-items: center;
  background: #fff;
  color: #333;
  height: 100%;
  padding: 10px 35px 10px 20px;
  position: relative;
  line-height: 1.5;
  border-radius: 25px;
}
.p-sidebar_item a::before {
  content: "";
  mask: url("../img/ico-border-arrow.svg") center/contain no-repeat;
  background: #ED78AE;
  display: block;
  width: 10px;
  height: 7px;
  position: absolute;
  top: 50%;
  right: 20px;
  translate: 0 -50%;
  transition: 0.3s;
}
.p-sidebar_item a:hover {
  background: #ED78AE;
  color: #fff;
}
.p-sidebar_item a:hover::before {
  background: #fff;
  top: calc(50% + 5px);
}

.l-sidebar.is-active .p-sidebar_list {
  opacity: 1;
  height: auto;
  padding: 45px;
}
.l-sidebar.is-active .p-sidebar_btn {
  background: #ED78AE;
  color: #fff;
}
.l-sidebar.is-active .p-sidebar_btn::before, .l-sidebar.is-active .p-sidebar_btn::after {
  display: none;
}
.l-sidebar.is-active .p-sidebar_btn:hover {
  background: #8D3F63;
  border-color: #8D3F63;
}
.l-sidebar.is-active .p-sidebar_btn > p {
  margin-right: 25px;
  color: transparent;
}
.l-sidebar.is-active .p-sidebar_btn > p::after {
  content: "閉じる";
  color: #fff;
}
.l-sidebar.is-active .p-sidebar_btn > p::before {
  content: "";
  background-image: url("../img/ico-arrow_white.svg");
  top: 50%;
  rotate: -90deg;
}
@media screen and (max-width: 768px) {
  .l-sidebar .p-sidebar_list {
    padding: 0 15px;
  }
  .l-sidebar.is-active .p-sidebar_list {
    padding: 45px 15px 30px;
  }
}

/* #Base
   -------------------------------------------------------------------------- */
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 #ED78AE;
  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: #ED78AE;
  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: #ED78AE;
  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: 768px) {
  .p-help_contents {
    padding: 20px;
  }
  .p-help_grid {
    grid-template: "ttl" "img" "text"/1fr;
  }
  .p-help_img {
    width: 90%;
    margin: 5px auto 10px;
  }
}
/* #Base
   -------------------------------------------------------------------------- */
.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: #ED78AE;
  background-color: #FBF0F6;
}
.p-cate_list a.is-here {
  border-color: #ED78AE;
}

/* #Base
   -------------------------------------------------------------------------- */
/* 記事一覧 
----- 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: #ED78AE;
}
.p-post_item a:hover::after {
  right: 5px;
}
.p-post_item a:hover h5 {
  color: #ED78AE;
}
.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: #ED78AE;
  background-color: #FBF0F6;
  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: 768px) {
  .p-post_list {
    grid-template-columns: 100%;
    gap: 30px;
  }
  .p-post_item > a {
    display: flex;
    flex-direction: column;
  }
}
/* #Base
   -------------------------------------------------------------------------- */
/* 記事詳細 前後リンク 
----- 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: #ED78AE;
  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
   -------------------------------------------------------------------------- */
/* 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 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 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
   -------------------------------------------------------------------------- */
/* ページネーション（プラグイン 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: #ED78AE;
  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: 768px) {
  .wp-pagenavi a, .wp-pagenavi span {
    width: 45px;
    height: 45px;
  }
  .wp-pagenavi .extend {
    padding: 0;
  }
  .wp-pagenavi .nextpostslink, .wp-pagenavi .previouspostslink {
    width: 30px;
  }
}
/* #Base
   -------------------------------------------------------------------------- */
/* コンタクトフォーム
----- 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: #ED78AE 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: #ED78AE;
}
.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("../../assets/img/arrow_pink.svg") center/contain no-repeat;
  background: #ED78AE;
  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: #ED78AE;
  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: #ED78AE;
  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 #ED78AE;
  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: #ED78AE;
}
.p-form input[type=checkbox]:checked::before {
  opacity: 1;
}
.p-form input[type=file]::file-selector-button {
  color: #ED78AE;
  background: #fff;
  border-radius: 5px;
  padding: 1px 15px;
  text-align: center;
  border: 1px solid #ED78AE;
  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
   -------------------------------------------------------------------------- */
/* テーブル 
----- 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: #ED78AE;
}
.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: 768px) {
  .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
   -------------------------------------------------------------------------- */
/* ページ内リンク 
----- 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;
  border-radius: 10px;
  position: relative;
}
.p-anchor_list a {
  display: flex;
  flex-direction: column;
  color: #333;
  border-radius: 10px;
  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: #ED78AE;
  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/ico-arrow_white.svg") center/cover no-repeat;
  width: 8px;
  height: 7px;
  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: 768px) {
  .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
   -------------------------------------------------------------------------- */
/* 検索ボックス
----- 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: #ED78AE;
  padding: 10px 15px;
  transition: 0.3s;
}
.p-search .feas-submit-button:hover {
  background: #ED78AE;
  color: #fff;
}

/* #Base
   -------------------------------------------------------------------------- */
/* 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;
}

/* #Base
   -------------------------------------------------------------------------- */
/* 両サイド装飾
----- object/project/_p-bg_parallax ----- */
.p-bg_parallax {
  position: relative;
  overflow-x: hidden;
}
.p-bg_parallax.footer_no_top {
  padding-bottom: 100px;
}

.p-bg_parallax_l, .p-bg_parallax_r {
  display: block;
  width: calc(50% - 420px + 20px);
  min-width: 300px;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -10;
  background: url("../img/bg_deco_l.png") right top/300px 3245px repeat-y;
}

.p-bg_parallax_r {
  background-image: url("../img/bg_deco_r.png");
  background-position: left top;
  left: auto;
  right: 0;
}

.p-bg_parallax:has(.u-contents) .p-bg_parallax_l, .p-bg_parallax:has(.u-contents) .p-bg_parallax_r {
  width: calc(50% - 560px + 20px);
}

@media screen and (max-width: 840px) {
  .p-bg_parallax_l {
    left: -150px;
  }
  .p-bg_parallax_r {
    right: -150px;
  }
}
@media screen and (max-width: 768px) {
  .p-bg_parallax.footer_no_top {
    padding-bottom: 80px;
  }
  .p-bg_parallax_l, .p-bg_parallax_r {
    width: 145px !important;
    min-width: auto;
    background: url("../img/bg_deco_l_sp.png") right top/145px 3190px repeat-y;
  }
  .p-bg_parallax_l {
    left: -50px;
  }
  .p-bg_parallax_r {
    background-image: url("../img/bg_deco_r_sp.png");
    right: -50px;
  }
}
/* Utility
---------------------------------------------------------- */
/* #Base
   -------------------------------------------------------------------------- */
/* ------------------------
    カラム分け
------------------------ */
.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
   -------------------------------------------------------------------------- */
/* ----------------------------------------------------------
   #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: 1160px) {
  .u-dn-hd {
    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: 1160px) {
  .u-db-hd {
    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: 1160px) {
  .u-di-hd {
    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: 1160px) {
  .u-dib-hd {
    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: 1160px) {
  .u-df-hd {
    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: 1160px) {
  .u-dg-hd {
    display: grid !important;
  }
}
/* #Base
   -------------------------------------------------------------------------- */
.u-contents {
  position: relative;
  width: 100%;
  max-width: 1160px;
  margin: 0 auto;
  padding: 0 20px;
}
.u-contents .u-contents_min {
  max-width: 840px;
  padding: 0;
}

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

.u-contents_650 {
  max-width: 650px;
  margin: 0 auto;
}

@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
   -------------------------------------------------------------------------- */
/* ----------------------------------------------------------
   #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: 768px) {
  .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;
}

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

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

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

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

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

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

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

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

@media screen and (max-width: 768px) {
  .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;
  }
  .u-mb-s-45 {
    margin-bottom: 45px !important;
  }
  .u-mb-s-50 {
    margin-bottom: 50px !important;
  }
  .u-mb-s-55 {
    margin-bottom: 55px !important;
  }
  .u-mb-s-60 {
    margin-bottom: 60px !important;
  }
  .u-mb-s-65 {
    margin-bottom: 65px !important;
  }
  .u-mb-s-70 {
    margin-bottom: 70px !important;
  }
  .u-mb-s-75 {
    margin-bottom: 75px !important;
  }
  .u-mb-s-80 {
    margin-bottom: 80px !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: 768px) {
  .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: 768px) {
  .u-ps-s0 {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  .u-ps-s15 {
    padding-left: 15px !important;
    padding-right: 15px !important;
  }
}
/* #Base
   -------------------------------------------------------------------------- */
.u-bg-black {
  background-color: #333 !important;
}

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

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

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

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

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

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

.u-bg-tp_light {
  background-color: rgba(165, 225, 228, 0.5) !important;
}

.u-bg-tp_standard {
  background-color: rgba(244, 227, 154, 0.5) !important;
}

.u-bg-tp_premium {
  background-color: rgba(252, 223, 234, 0.5) !important;
}

.u-bg-tp_photo {
  background-color: rgba(199, 227, 186, 0.5) !important;
}

/* #Base
   -------------------------------------------------------------------------- */
/* ---
テキストのスタイルを指定する汎用クラスです。
--- */
/* 文字の色を指定します */
.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: #ED78AE !important;
}

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

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

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

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

.u-text-tp_photo {
  color: #006934 !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: 768px) {
  .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, md){
  .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
   -------------------------------------------------------------------------- */
/* スクリーンリーダー用のテキスト（非表示）
----- 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
   -------------------------------------------------------------------------- */
/* 角丸
----- object/utility/_u-img ----- */
.u-round {
  border-radius: 20px;
}

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

.u-round-10 {
  border-radius: 10px;
}

.u-round-15 {
  border-radius: 15px;
}

.u-round-30 {
  border-radius: 30px;
}

/* #Base
   -------------------------------------------------------------------------- */
/* 注釈（文頭に ※ ）
----- object/utility/_p-annotation ----- */
.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 */