@charset "UTF-8";

.pc_display {
  display: block;
}

.sp_display {
  display: none !important;
}

@media (max-width: 540px) {
  .pc_display {
    display: none !important;
  }
  .sp_display {
    display: block !important;
  }
}
*:focus {
  outline: none;
}

html, body {
  overflow-x: hidden;
}

input {
  line-height: 1;
}

html {
  font-size: 62.5%;
}

body {
  font-size: 15px !important;
  font-size: 1.5rem !important;
  font-family: "Noto Sans JP", "Noto Sans", 游ゴシック体, YuGothic, "Yu Gothic M", "游ゴシック Medium", "Yu Gothic Medium", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN W3", HiraKakuProN-W3, "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", メイリオ, Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  font-weight: 300;
  line-height: 1.8;
  min-height: 100vh;
  background: #fff url(../image/bg_footer_pc.png) no-repeat center bottom/contain;
  background-attachment: fixed;
  color: #000;
}
@media (max-width: 780px) {
  body {
    background: #fff url(../image/bg_footer_sp.png) no-repeat center bottom/contain;
  }
}

header, main, footer, section, a, nav, .base_section {
  position: relative;
}

a {
  display: inline-block;
  text-decoration: none;
  color: #000;
  transition: all 0.5s ease 0s;
}
a:hover {
  opacity: 0.75;
}
@media (min-width: 781px) {
  a[href^="tel:"] {
    pointer-events: none;
  }
}

header, main, footer {
  width: 100%;
}

main {
  z-index: 0;
}

@media (min-width: 541px) {
  .user_pages main {
    padding-top: 150px;
    padding-bottom: 25%;
  }
  .user_pages main section {
    max-width: 980px;
    background: #fff;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
    border-radius: 3px;
    padding: 80px;
  }
}
@media (min-width: 541px) and (max-width: 780px) {
  .user_pages main section {
    background: transparent;
    box-shadow: none;
    padding-top: 0;
  }
}
@media (max-width: 540px) {
  .user_pages main {
    padding-top: 100px;
    padding-bottom: 100px;
  }
}

#user__recomend main section, #user__matching main section {
  background: transparent;
  box-shadow: none;
  padding: 80px 0;
}
@media (max-width: 1099px) {
  #user__recomend main section, #user__matching main section {
    padding: 80px 5%;
  }
}
@media (max-width: 540px) {
  #user__recomend main section, #user__matching main section {
    padding: 50px 5% 100px;
  }
}

@media (min-width: 541px) {
  .nml_pages main {
    padding-top: 100px;
  }
}
@media (max-width: 540px) {
  .nml_pages main {
    padding-top: 70px;
  }
}

.second_pages main section {
  padding: 0 3%;
}
@media (min-width: 541px) {
  .second_pages main {
    padding-top: 200px;
  }
}
@media (max-width: 780px) {
  .second_pages main {
    padding-top: 70px;
  }
}

.section_title {
  line-height: 1.3;
  margin-bottom: 50px;
}
.section_title strong, .section_title span {
  display: block;
}
.section_title strong {
  font-size: 50px !important;
  font-size: 5rem !important;
}
@media (max-width: 540px) {
  .section_title strong {
    font-size: 24px !important;
    font-size: 2.4rem !important;
  }
}
.section_title span {
  font-size: 18px !important;
  font-size: 1.8rem !important;
  color: #FC3774;
}
@media (max-width: 540px) {
  .section_title span {
    font-size: 14px !important;
    font-size: 1.4rem !important;
  }
}

.section_catch {
  line-height: 1.3;
  margin-bottom: 15px;
}
.section_catch span {
  display: inline-block;
  color: #fff;
  margin-bottom: 10px;
  padding: 0 10px 3px;
  font-weight: 600;
  background: #F651A0;
  background: -moz-linear-gradient(top left, #FF9697 0%, #F651A0 100%);
  background: -webkit-gradient(linear, left top, right bottom, from(#FF9697), to(#F651A0));
  background: -webkit-linear-gradient(top left, #FF9697 0%, #F651A0 100%);
  background: -o-linear-gradient(top left, #FF9697 0%, #F651A0 100%);
  background: linear-gradient(to bottom right, #FF9697 0%, #F651A0 100%);
  font-size: 50px !important;
  font-size: 5rem !important;
}
@media (max-width: 540px) {
  .section_catch span {
    font-size: 24px !important;
    font-size: 2.4rem !important;
    margin-bottom: 5px;
  }
}

time {
  white-space: nowrap;
}

img[src$=".svg"] {
  width: 100%;
}

.base_wrapper {
  margin: auto;
  max-width: 1120px;
}
@media (max-width: 540px) {
  .base_wrapper {
    padding-left: 15px;
    padding-right: 15px;
  }
}

.pict_wrap img {
  max-width: 100%;
}

object {
  pointer-events: none;
}

section {
  z-index: 1;
}

input[type=text], input[type=email], input[type=tel], input[type=password], textarea {
  padding: 10px;
  width: 100%;
  height: 30px;
  border: none;
  font-size: 16px !important;
  font-size: 1.6rem !important;
}

textarea {
  margin-top: 10px;
  border: 1px solid #FC3774;
  resize: vertical;
  height: 100px;
}

input[type=email], input[type=tel], input[type=password], input.han {
  ime-mode: disabled;
}

/* まず、inputパーツを消す */
input[type=checkbox], input[type=radio] {
  position: fixed;
  left: -100vw;
  top: -100vh;
  /* input直後のタグ(span)の疑似要素を設定 */
}
input[type=checkbox] + span:before, input[type=radio] + span:before {
  content: "";
  display: inline-block;
  margin: 0 5px 0 0;
  line-height: 1;
  position: relative;
  top: 1px;
  width: 12px;
  height: 12px;
}

/* 各inputの on / off 画像を設定 */
input[type=radio] + span:before {
  background: url(../image/ic-radio_off.svg) no-repeat left center/contain;
}

input[type=radio]:checked + span:before {
  background: url(../image/ic-radio_on.svg) no-repeat left center/contain;
}

input[type=checkbox] + span:before {
  width: 15px;
  height: 13px;
  background: url(../image/ic-chk_off.svg) no-repeat left bottom/contain;
}

input[type=checkbox]:checked + span:before {
  width: 15px;
  height: 15px;
  background: url(../image/ic-chk_on.svg) no-repeat left bottom/contain;
}

@keyframes zoomUp {
  0% {
    transform: scale(1);
  }
  100% {
    transform: scale(1.15);
  }
}
@keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1 !important;
  }
}
@keyframes fadeOut {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
@keyframes fadeInUp {
  0% {
    transform: translateY(30px);
    opacity: 0;
  }
  100% {
    transform: translateY(0);
    opacity: 1 !important;
  }
}
@keyframes fadeInDown {
  from {
    transform: translateY(0);
    opacity: 0;
  }
  to {
    transform: translateY(30px);
    opacity: 1;
  }
}
@keyframes active_menus {
  from {
    top: -200vh;
  }
  to {
    top: 0;
  }
}
.anim {
  opacity: 0;
}

.fadeIn {
  animation: fadeIn 1s ease-in 0s 1 normal;
}

.fadeInUp {
  animation: fadeInUp 0.5s ease 0s 1 normal;
}

header {
  position: fixed;
  top: 0;
  z-index: 90000;
}

@media (min-width: 541px) {
  header article {
    display: flex;
    align-items: center;
    background: #fff;
    position: fixed;
    left: 0;
    top: 0;
    width: 100vw;
    box-shadow: 0 0 10px rgba(51, 51, 51, 0.4);
    padding: 10px;
  }
  header article h1,
  header article .site_logo {
    max-width: 410px;
    margin-right: 30px;
  }
}
@media (min-width: 541px) and (max-width: 540px) {
  header article h1,
  header article .site_logo {
    margin-right: 5px;
  }
}
@media (min-width: 541px) {
  header article .grand_nav {
    margin-left: auto;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    justify-content: flex-end;
  }
  header article .grand_nav ul {
    display: flex;
    align-items: center;
    margin-right: 5px;
  }
  header article .grand_nav ul li {
    margin-right: 15px;
  }
}
@media (min-width: 541px) and (max-width: 540px) {
  header article .grand_nav ul.grand_links {
    margin-bottom: 10px;
  }
  header article .grand_nav ul.grand_links li:last-of-type {
    margin-right: 10px;
  }
}
@media (min-width: 541px) {
  header article .grand_nav ul.logon_btns {
    margin-right: -15px;
  }
}
@media (min-width: 541px) and (max-width: 540px) {
  header article .grand_nav ul.logon_btns li:nth-of-type(1) {
    margin-right: 10px;
  }
}
@media (min-width: 541px) {
  .sp_nav {
    display: none;
  }
}
@media (max-width: 780px) {
  header article {
    background: transparent;
    box-shadow: none !important;
  }
  header article h1,
  header article .site_logo {
    display: none;
  }
  header article .grand_nav {
    display: none !important;
  }
  .sp_nav {
    position: fixed;
    display: flex;
    flex-direction: column;
    top: -200vh;
    width: 100vw;
    height: 100vh;
    height: 100dvh;
    z-index: 90000;
    background: #fff url(../image/bg_footer_sp.png) no-repeat center bottom/contain;
    display: flex;
    flex-direction: column;
    padding: 60px 5% 0;
  }
  .sp_nav.active {
    top: 0;
    left: 0;
    animation: active_menus 0.5s ease 0s 1 normal;
  }
  .sp_nav h1,
  .sp_nav .sp_nav_title {
    display: block;
    text-align: center;
    margin: auto;
    font-size: 22px !important;
    font-size: 2.2rem !important;
    font-weight: 600;
  }
  .sp_nav h2 {
    text-align: center;
    font-size: 29px !important;
    font-size: 2.9rem !important;
    font-weight: 600;
  }
  .sp_nav p {
    margin-bottom: 15px;
  }
  .sp_nav .btn {
    margin: 5px auto;
    max-width: 100%;
    width: 100%;
  }
  .sp_nav ul:nth-of-type(1) {
    margin-bottom: 35px;
  }
  .sp_nav ul:nth-of-type(1) li {
    border-bottom: 1px solid #FC3774;
    margin-bottom: 15px;
  }
  .sp_nav ul:nth-of-type(1) li a {
    color: #FC3774;
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-weight: 400;
    padding: 15px 0;
  }
  .sp_nav ul:nth-of-type(1) li a:after {
    content: "";
    width: 10px;
    height: 10px;
    display: inline-block;
    background: url(../image/arrow_r.svg) no-repeat center/contain;
  }
  .sp_nav ul:nth-of-type(2) {
    margin: auto auto 35px;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
  }
  .sp_nav ul:nth-of-type(2) li {
    margin-bottom: 15px;
    font-size: 14px !important;
    font-size: 1.4rem !important;
  }
  .sp_nav ul:nth-of-type(2) li:nth-of-type(odd) {
    width: 40%;
  }
  .sp_nav ul:nth-of-type(2) li:nth-of-type(even) {
    width: 60%;
  }
}
@media (max-width: 780px) {
  .menu-trigger {
    position: fixed;
    right: 0;
    top: 5px;
    cursor: pointer;
    width: 70px;
    height: 70px;
    z-index: 90005;
    background: url(../image/menu.svg) no-repeat center/contain;
  }
  .menu-trigger.active {
    animation: fadeIn 0.25s ease-in-out 0s;
    background: url(../image/menu_off.svg) no-repeat center/contain;
  }
}
#kv_field {
  background: transparent;
  position: relative;
  display: flex !important;
  justify-content: center;
  align-items: center;
  align-content: center;
  text-align: center;
  flex-direction: column;
  flex-wrap: nowrap;
  justify-content: flex-start;
  min-height: calc(100vh - 70px);
  padding-top: 80px;
}
@media (max-width: 540px) {
  #kv_field {
    padding-top: 0;
  }
}
@media (min-width: 781px) {
  #kv_field {
    min-height: calc(100vh - 100px);
    background: #fff;
  }
}
#kv_field:before, #kv_field:after {
  content: "";
  display: block;
  position: absolute;
  width: 100vw;
  height: 100vh;
}
#kv_field:after {
  bottom: 0;
  background: url(../image/kv_item/bg_croud-pc.webp) no-repeat center bottom/cover;
  z-index: -1;
}
@media (max-width: 780px) {
  #kv_field:after {
    background: url(../image/kv_item/bg_croud-sp.webp) no-repeat center bottom/cover;
  }
}
#kv_field article {
  z-index: 1;
  display: flex !important;
  justify-content: center;
  align-items: center;
  align-content: center;
  text-align: center;
  flex-direction: column;
  flex-wrap: nowrap;
}
@media (max-width: 780px) {
  #kv_field article {
    justify-content: flex-start;
  }
}
#kv_field article:before, #kv_field article:after {
  content: "";
  display: block;
  position: absolute;
  bottom: 0;
  width: 100vw;
  height: 100vh;
}
#kv_field article:before {
  background: url(../image/kv_item/mv.svg) no-repeat center bottom/75%;
}
@media (max-width: 880px) {
  #kv_field article:before {
    background-size: 90%;
  }
}
@media (max-width: 780px) {
  #kv_field article:before {
    background: url(../image/kv_item/mv-sp.svg) no-repeat center bottom/80%;
  }
}
@media (max-width: 780px) and (max-width: 540px) {
  #kv_field article:before {
    background-size: contain;
  }
}
#kv_field article .kv_wrapper {
  position: relative;
  z-index: 5;
  display: flex !important;
  justify-content: center;
  align-items: center;
  align-content: center;
  text-align: center;
  flex-direction: column;
  flex-wrap: nowrap;
  justify-content: flex-start;
  width: 100vw;
}
#kv_field article .kv_wrapper:before, #kv_field article .kv_wrapper:after {
  content: "";
  display: block;
  position: absolute;
  z-index: -1;
  top: -20vh;
  width: 180px;
  height: 100vh;
}
@media (max-width: 780px) {
  #kv_field article .kv_wrapper:before, #kv_field article .kv_wrapper:after {
    top: -25vh;
    width: 130px;
  }
}
@media (max-width: 540px) {
  #kv_field article .kv_wrapper:before, #kv_field article .kv_wrapper:after {
    top: -10vh;
  }
}
#kv_field article .kv_wrapper:before {
  left: 0;
  background: url(../image/kv_item/mv_items-l.svg) no-repeat left center/contain;
}
@media (max-width: 540px) {
  #kv_field article .kv_wrapper:before {
    left: -5%;
    background: url(../image/kv_item/mv_items-l_sp.svg) no-repeat left center/contain;
  }
}
#kv_field article .kv_wrapper:after {
  right: 0;
  background: url(../image/kv_item/mv_items-r.svg) no-repeat right center/contain;
}
@media (max-width: 540px) {
  #kv_field article .kv_wrapper:after {
    right: -5%;
    background: url(../image/kv_item/mv_items-r_sp.svg) no-repeat left center/contain;
  }
}
#kv_field article h1 {
  max-width: 500px;
  margin-bottom: 15px !important;
}
@media (max-width: 780px) {
  #kv_field article h1 {
    margin-bottom: 11.7px !important;
  }
}
@media (max-width: 540px) {
  #kv_field article h1 {
    margin-bottom: 8.658px !important;
  }
}
@media (max-width: 880px) {
  #kv_field article h1 {
    max-width: 70%;
  }
}
#kv_field article p {
  font-size: 26px !important;
  font-size: 2.6rem !important;
  margin-bottom: 15px !important;
}
@media (max-width: 880px) {
  #kv_field article p {
    font-size: 18px !important;
    font-size: 1.8rem !important;
    line-height: 1.6;
  }
}
@media (max-width: 780px) {
  #kv_field article p {
    margin-bottom: 11.7px !important;
  }
}
@media (max-width: 540px) {
  #kv_field article p {
    margin-bottom: 8.658px !important;
  }
}
#kv_field article figure {
  width: 150px;
  margin-bottom: 30px;
}
@media (max-width: 880px) {
  #kv_field article figure {
    width: 100px;
  }
}
@media (max-width: 780px) {
  #kv_field article figure {
    width: 70px;
  }
}
#kv_field article .kv_wrapper > figure,
#kv_field article figure.kv-flask {
  animation: kvFlaskSway 4.4s ease-in-out infinite;
  transform-origin: 52% 60%;
  will-change: transform;
}
#kv_field article .kv_wrapper > figure img,
#kv_field article figure.kv-flask img {
  width: 100%;
  height: auto;
}
@media (max-width: 780px) {
  #kv_field article .kv_wrapper > figure,
  #kv_field article figure.kv-flask {
    width: 140px !important;
  }
}
@media (max-width: 540px) {
  #kv_field article .kv_wrapper > figure,
  #kv_field article figure.kv-flask {
    width: 140px !important;
  }
}
#kv_field article ul {
  max-width: 310px;
  width: 100%;
  display: flex;
  flex-direction: column;
}
@media (max-width: 780px) {
  #kv_field article ul {
    max-width: 200px;
  }
}
#kv_field article ul li {
  width: 100%;
  display: block;
}
#kv_field article ul li button {
  box-shadow: none;
  height: 50px;
}
#kv_field article ul li:nth-of-type(1) {
  margin-bottom: 15px;
}
#kv_field article ul li:nth-of-type(1) button {
  border: none;
}

/* KV Animation setting */
#kv_field:after, #kv_field article:before, #kv_field .kv_wrapper:before, #kv_field .kv_wrapper:after, #kv_field h1 {
  opacity: 0;
  transition: 1s;
  animation: kvfade 1s ease forwards;
}
#kv_field:after {
  animation-delay: 0.3s;
}
#kv_field article:before {
  animation-delay: 0.5s;
}
#kv_field article .kv_wrapper:before, #kv_field article .kv_wrapper:after {
  animation-delay: 0.8s;
}
#kv_field article .kv_wrapper h1 {
  animation-delay: 1s;
}

@keyframes kvfade {
  100% {
    opacity: 1;
  }
}

@keyframes kvFlaskSway {
  0%,
  100% {
    transform: rotate(0deg) translateY(0);
  }
  22% {
    transform: rotate(-1.7deg) translateY(-1px);
  }
  52% {
    transform: rotate(0.8deg) translateY(0);
  }
  78% {
    transform: rotate(1.7deg) translateY(-1px);
  }
}

.nml_pages footer {
  padding-top: 100px;
  padding-bottom: 70px;
}
@media (max-width: 540px) {
  .nml_pages footer {
    background: #fff url(../image/bg_footer_sp.png) no-repeat center bottom/contain;
  }
}
.nml_pages footer article {
  margin: auto;
  margin: auto;
  max-width: 1120px;
}
@media (max-width: 540px) {
  .nml_pages footer article {
    padding-left: 15px;
    padding-right: 15px;
  }
}
@media (max-width: 1099px) {
  .nml_pages footer article {
    padding: 0 3%;
  }
}
.nml_pages footer article .official_tw {
  display: flex !important;
  justify-content: center;
  align-items: center;
  align-content: center;
  text-align: center;
  flex-direction: row;
  flex-wrap: nowrap;
  margin-bottom: 45px;
}
.nml_pages footer article .official_tw a {
  cursor: pointer;
  display: block;
  width: 150px;
  height: 150px;
}
.nml_pages footer article .official_tw a img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}
@media (max-width: 540px) {
  .nml_pages footer article .official_tw a {
    width: 100px;
    height: 100px;
  }
}
.nml_pages footer article .ft_wrapper {
  padding-bottom: 100px;
}
@media (min-width: 781px) {
  .nml_pages footer article .ft_wrapper {
    padding-bottom: 50px;
  }
  .nml_pages footer article .ft_wrapper ul {
    display: flex;
    justify-content: space-between;
  }
  .nml_pages footer article .ft_wrapper ul li {
    width: 25%;
    text-align: center;
    padding: 10px;
    font-size: 15px !important;
    font-size: 1.5rem !important;
  }
}
@media (max-width: 780px) {
  .nml_pages footer article .ft_wrapper {
    display: flex;
    justify-content: center;
  }
  .nml_pages footer article .ft_wrapper ul {
    margin: 0 10%;
  }
}
@media (max-width: 540px) {
  .nml_pages footer article .ft_wrapper ul {
    margin: 0 7%;
  }
  .nml_pages footer article .ft_wrapper ul li {
    font-size: 14px !important;
    font-size: 1.4rem !important;
  }
  .nml_pages footer article .ft_wrapper ul li:not(:last-of-type) {
    margin-bottom: 10px;
  }
}
.nml_pages footer small {
  background: #FC3774;
  display: block;
  text-align: center;
  color: #fff;
  padding: 15px;
}
@media (max-width: 540px) {
  .nml_pages footer small {
    font-size: 11px !important;
    font-size: 1.1rem !important;
  }
}

.btn {
  margin: auto auto 15px;
  max-width: 335px;
}
.btn button {
  display: flex !important;
  justify-content: center;
  align-items: center;
  align-content: center;
  text-align: center;
  flex-direction: row;
  flex-wrap: nowrap;
  width: 100%;
  height: 60px;
  border: none;
  border-radius: 100px;
  cursor: pointer;
  font-size: 18px !important;
  font-size: 1.8rem !important;
  border: 1px solid #FC3774;
  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
}
.btn button:hover {
  opacity: 0.75;
}
.btn.type_a button {
  background: #F651A0;
  background: -moz-linear-gradient(top left, #FF9697 0%, #F651A0 100%);
  background: -webkit-gradient(linear, left top, right bottom, from(#FF9697), to(#F651A0));
  background: -webkit-linear-gradient(top left, #FF9697 0%, #F651A0 100%);
  background: -o-linear-gradient(top left, #FF9697 0%, #F651A0 100%);
  background: linear-gradient(to bottom right, #FF9697 0%, #F651A0 100%);
  color: #fff;
}
.btn.type_b button {
  background: #fff;
  color: #FC3774;
}

header .grand_nav .btn {
  margin-bottom: 0;
}
header .grand_nav .btn button {
  font-size: 16px !important;
  font-size: 1.6rem !important;
  width: 190px;
  height: 48px;
}

.fixed_nav {
  position: fixed;
  left: 0;
  bottom: 0;
  width: 100vw;
  z-index: 100;
}
.fixed_nav ul {
  display: flex;
  width: 100%;
}
.fixed_nav ul li {
  width: 50%;
}
.fixed_nav ul li button {
  display: flex !important;
  justify-content: center;
  align-items: center;
  align-content: center;
  text-align: center;
  flex-direction: row;
  flex-wrap: nowrap;
  width: 100%;
  height: 70px;
  border: none;
  cursor: pointer;
  font-size: 15px !important;
  font-size: 1.5rem !important;
}
@media (max-width: 480px) {
  .fixed_nav ul li button {
    font-size: 13px !important;
    font-size: 1.3rem !important;
  }
}
.fixed_nav ul li button:hover {
  opacity: 0.75;
}
.fixed_nav ul li.type_a button {
  background: #FCEFF5;
  background: -moz-linear-gradient(top left, #E5EFF5 0%, #FCEFF5 100%);
  background: -webkit-gradient(linear, left top, right bottom, from(#E5EFF5), to(#FCEFF5));
  background: -webkit-linear-gradient(top left, #E5EFF5 0%, #FCEFF5 100%);
  background: -o-linear-gradient(top left, #E5EFF5 0%, #FCEFF5 100%);
  background: linear-gradient(to bottom right, #E5EFF5 0%, #FCEFF5 100%);
}
.fixed_nav ul li.type_b button {
  background: #F651A0;
  background: -moz-linear-gradient(top left, #FF9697 0%, #F651A0 100%);
  background: -webkit-gradient(linear, left top, right bottom, from(#FF9697), to(#F651A0));
  background: -webkit-linear-gradient(top left, #FF9697 0%, #F651A0 100%);
  background: -o-linear-gradient(top left, #FF9697 0%, #F651A0 100%);
  background: linear-gradient(to bottom right, #FF9697 0%, #F651A0 100%);
  color: #fff;
}

.modal {
  display: none;
  height: 100vh;
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 99999;
}
.modal .modal__content {
  background: #fff;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
  border-radius: 10px;
  left: 50%;
  padding: 40px;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
  max-width: 420px;
}
@media (max-width: 540px) {
  .modal .modal__content {
    width: 85%;
  }
}
.modal .modal__content h1,
.modal .modal__content .modal_title {
  margin-bottom: 10px;
  display: flex !important;
  justify-content: center;
  align-items: center;
  align-content: center;
  text-align: center;
  flex-direction: row;
  flex-wrap: nowrap;
  border-bottom: 1px dotted rgba(0, 0, 0, 0.3);
}
.modal .modal__content h1 span,
.modal .modal__content .modal_title span {
  font-size: 18px !important;
  font-size: 1.8rem !important;
  display: inline-block;
  position: relative;
  padding-bottom: 5px;
}
.modal .modal__content h1 span:before, .modal .modal__content h1 span:after, .modal .modal__content .modal_title span:before, .modal .modal__content .modal_title span:after {
  content: "";
  position: relative;
  top: 2px;
  display: inline-block;
  width: 20px;
  height: 20px;
  background: url(../image/ic-attention.svg) no-repeat center/contain;
}
.modal .modal__content h1 span:before,
.modal .modal__content .modal_title span:before {
  margin-right: 10px;
}
.modal .modal__content h1 span:after,
.modal .modal__content .modal_title span:after {
  margin-left: 10px;
}
.modal .modal__content ul li {
  margin-left: 10px;
  color: #FC3774;
  margin-bottom: 10px;
  padding-left: 0.5em;
  text-indent: -0.5em;
}
.modal .modal__content ul li:before {
  content: "・";
  display: inline-block;
}
.modal .modal__content .modal_ft {
  border-top: 1px dotted rgba(0, 0, 0, 0.3);
  padding-top: 10px;
}
.modal .modal__content .modal_ft p {
  text-align: center;
  margin-bottom: 15px;
}
.modal .modal__content .modal_ft button {
  display: flex !important;
  justify-content: center;
  align-items: center;
  align-content: center;
  text-align: center;
  flex-direction: row;
  flex-wrap: nowrap;
  margin: auto;
  width: 200px;
  height: 50px;
  border: none;
  border-radius: 100px;
  cursor: pointer;
  font-size: 18px !important;
  font-size: 1.8rem !important;
  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  background: #F651A0;
  background: -moz-linear-gradient(top left, #FF9697 0%, #F651A0 100%);
  background: -webkit-gradient(linear, left top, right bottom, from(#FF9697), to(#F651A0));
  background: -webkit-linear-gradient(top left, #FF9697 0%, #F651A0 100%);
  background: -o-linear-gradient(top left, #FF9697 0%, #F651A0 100%);
  background: linear-gradient(to bottom right, #FF9697 0%, #F651A0 100%);
  color: #fff;
}
.modal .modal__content .modal_ft button:hover {
  opacity: 0.75;
}

.modal__bg {
  background: rgba(0, 0, 0, 0.3);
  height: 100vh;
  position: absolute;
  width: 100%;
}

.youtube_frame .youtube_wrapper {
  position: relative;
  width: 100%;
  padding-top: 56.25%;
}
.youtube_frame .youtube_wrapper iframe {
  position: absolute;
  top: 0;
  right: 0;
  width: 100% !important;
  height: 100% !important;
}

#mod_experience {
  background: #FCEFF5;
  background: -moz-linear-gradient(top left, #E5EFF5 0%, #FCEFF5 100%);
  background: -webkit-gradient(linear, left top, right bottom, from(#E5EFF5), to(#FCEFF5));
  background: -webkit-linear-gradient(top left, #E5EFF5 0%, #FCEFF5 100%);
  background: -o-linear-gradient(top left, #E5EFF5 0%, #FCEFF5 100%);
  background: linear-gradient(to bottom right, #E5EFF5 0%, #FCEFF5 100%);
  padding-top: 120px !important;
  padding-bottom: 120px !important;
}
@media (max-width: 780px) {
  #mod_experience {
    padding-top: 93.6px !important;
  }
}
@media (max-width: 540px) {
  #mod_experience {
    padding-top: 69.264px !important;
  }
}
@media (max-width: 780px) {
  #mod_experience {
    padding-bottom: 93.6px !important;
  }
}
@media (max-width: 540px) {
  #mod_experience {
    padding-bottom: 69.264px !important;
  }
}
#mod_experience h1, #mod_experience .experience_title, #mod_experience p {
  text-align: center;
}
#mod_experience h1,
#mod_experience .experience_title {
  font-weight: 600;
  font-size: 50px !important;
  font-size: 5rem !important;
}
@media (max-width: 540px) {
  #mod_experience h1,
  #mod_experience .experience_title {
    font-size: 29px !important;
    font-size: 2.9rem !important;
  }
}
#mod_experience p {
  max-width: 740px;
  margin: 0 auto 80px;
}
#mod_experience ul {
  max-width: 740px;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
}
@media (max-width: 780px) {
  #mod_experience ul {
    flex-direction: column;
  }
}
#mod_experience ul li {
  width: 100%;
}

.taglist {
  margin: 55px 0;
  max-width: 85%;
}
@media (max-width: 780px) {
  .taglist {
    max-width: 100%;
  }
}
.taglist ul {
  display: flex;
  flex-wrap: wrap;
}
.taglist ul li {
  margin: 0 10px 15px 0;
}
.taglist ul li a, .taglist ul li button {
  border: none;
  background: #FEC8C9;
  display: flex !important;
  justify-content: center;
  align-items: center;
  align-content: center;
  text-align: center;
  flex-direction: row;
  flex-wrap: nowrap;
  border-radius: 100px;
  padding: 10px 15px 8px;
  line-height: 1.1;
  white-space: nowrap;
  color: #000;
  font-size: 21px !important;
  font-size: 2.1rem !important;
}
@media (max-width: 540px) {
  .taglist ul li a, .taglist ul li button {
    font-size: 16px !important;
    font-size: 1.6rem !important;
  }
}

.pager {
  margin-top: 80px !important;
}
@media (max-width: 780px) {
  .pager {
    margin-top: 62.4px !important;
  }
}
@media (max-width: 540px) {
  .pager {
    margin-top: 46.176px !important;
  }
}
.pager ul {
  display: flex !important;
  justify-content: center;
  align-items: center;
  align-content: center;
  text-align: center;
  flex-direction: row;
  flex-wrap: nowrap;
}
.pager ul li {
  margin: 0 5px;
}
.pager ul li a {
  width: 40px;
  height: 40px;
  display: flex !important;
  justify-content: center;
  align-items: center;
  align-content: center;
  text-align: center;
  flex-direction: row;
  flex-wrap: nowrap;
  border: 1px solid #FD8898;
  background: #fff;
  border-radius: 5px;
  color: #FD8898;
}
.pager ul li.active a {
  border: none;
  font-weight: 600;
  background: transparent;
}
.pager ul li.begin a:before {
  content: "<<";
}
.pager ul li.prev a:before {
  content: "<";
}
.pager ul li.next a:before {
  content: ">";
}
.pager ul li.last a:before {
  content: ">>";
}

#home {
  background: #fff url(../image/bg_kv.png) repeat-x center top/contain;
}
#home #couple_report, #home #service, #home #about, #home #structure, #home #faq {
  padding-top: 100px !important;
  padding-bottom: 100px !important;
}
#home #couple_report {
  padding-bottom: 32px !important;
}
#home #service {
  padding-top: 32px !important;
}
@media (max-width: 780px) {
  #home #couple_report, #home #service, #home #about, #home #structure, #home #faq {
    padding-top: 78px !important;
  }
}
@media (max-width: 540px) {
  #home #couple_report, #home #service, #home #about, #home #structure, #home #faq {
    padding-top: 57.72px !important;
  }

  /* Remove the blank band between KV and pickup news on mobile */
  #home #service {
    padding-top: 0 !important;
  }
}
@media (max-width: 780px) {
  #home #couple_report, #home #service, #home #about, #home #structure, #home #faq {
    padding-bottom: 78px !important;
  }
}
@media (max-width: 540px) {
  #home #couple_report, #home #service, #home #about, #home #structure, #home #faq {
    padding-bottom: 57.72px !important;
  }
}
@media (max-width: 780px) {
  #home #couple_report { padding-bottom: 32px !important; }
  #home #service { padding-top: 32px !important; }
}
@media (max-width: 540px) {
  #home #service { padding-top: 0 !important; }
}
@media (max-width: 1099px) {
  #home #couple_report article, #home #service article, #home #about article, #home #structure article, #home #faq article {
    padding: 0 3%;
  }
}
#home #couple_report {
  background: #fff;
}
#home #couple_report article {
  position: relative;
}
#home #couple_report article:before {
  transform: rotate(15deg);
  z-index: -1;
  position: absolute;
  right: 2%;
  top: 10%;
  content: "";
  display: block;
  width: 250px;
  height: 250px;
  background: url(../image/icon-report.svg) no-repeat right top/contain;
}
@media (max-width: 780px) {
  #home #couple_report article:before {
    width: 130px;
    height: 130px;
    right: 5%;
    top: 5%;
  }
}
@media (max-width: 540px) {
  #home #couple_report article:before {
    top: 0;
  }
}
#home #couple_report article > p a {
  display: inline-block;
  margin-right: 3px;
  text-decoration: underline;
  color: #2F94E2;
}
#home #couple_report article .swiper {
  padding-top: 45px !important;
  padding-bottom: 45px !important;
}
@media (max-width: 780px) {
  #home #couple_report article .swiper {
    padding-top: 35.1px !important;
  }
}
@media (max-width: 540px) {
  #home #couple_report article .swiper {
    padding-top: 25.974px !important;
  }
}
@media (max-width: 780px) {
  #home #couple_report article .swiper {
    padding-bottom: 35.1px !important;
  }
}
@media (max-width: 540px) {
  #home #couple_report article .swiper {
    padding-bottom: 25.974px !important;
  }
}
#home #service {
  background: #fff;
}
#home #service article:before {
  transform: rotate(5deg);
  z-index: -1;
  position: absolute;
  right: 2%;
  top: 20%;
  content: "";
  display: block;
  width: 250px;
  height: 250px;
  background: url(../image/icon-service.svg) no-repeat right top/contain;
}
@media (max-width: 780px) {
  #home #service article:before {
    width: 130px;
    height: 130px;
    right: 5%;
    top: 20%;
  }
}
@media (max-width: 540px) {
  #home #service article:before {
    top: 7%;
  }
}
#home #service article .checklist {
  margin: 55px auto 0;
}
#home #service article .checklist li {
  font-size: 30px !important;
  font-size: 3rem !important;
  display: flex;
  align-items: center;
  border-bottom: 1px solid #B87EB8;
}
@media (max-width: 540px) {
  #home #service article .checklist li {
    font-size: 16px !important;
    font-size: 1.6rem !important;
  }
}
#home #service article .checklist li:not(:last-of-type) {
  margin-bottom: 25px;
}
#home #service article .checklist li:before {
  content: "";
  display: flex !important;
  justify-content: center;
  align-items: center;
  align-content: center;
  text-align: center;
  flex-direction: row;
  flex-wrap: nowrap;
  width: 45px;
  height: 35px;
  margin-right: 5px;
  background: url(../image/icon-service_check.svg) no-repeat center/contain;
}
@media (max-width: 540px) {
  #home #service article .checklist li:before {
    width: 20px;
    height: 15px;
    margin-right: 0;
  }
}
#home #service article .checklist li span {
  display: flex;
  align-items: center;
}
#home #service article .checklist li span:before {
  content: "";
  display: flex !important;
  justify-content: center;
  align-items: center;
  align-content: center;
  text-align: center;
  flex-direction: row;
  flex-wrap: nowrap;
  width: 65px;
  height: 35px;
  margin-right: 35px;
  background: url(../image/icon-service_double.svg) no-repeat center right/contain;
}
@media (max-width: 540px) {
  #home #service article .checklist li span:before {
    margin-right: 15px;
    width: 25px;
    height: 18px;
  }
}
#home #service article .checklist li.female span:before {
  background: url(../image/icon-service_female.svg) no-repeat center right/contain;
}
#home #about {
  background: #F2F7FB;
  background: -moz-linear-gradient(#FFF6FA 0%, #F2F7FB 100%);
  background: -webkit-gradient(linear, left top, left bottom, from(#FFF6FA), to(#F2F7FB));
  background: -webkit-linear-gradient(#FFF6FA 0%, #F2F7FB 100%);
  background: -o-linear-gradient(#FFF6FA 0%, #F2F7FB 100%);
  background: linear-gradient(#FFF6FA 0%, #F2F7FB 100%);
}
#home #about article h1,
#home #about article .about_title {
  max-width: 740px;
  margin: 0 auto 80px;
}
#home #about article aside {
  margin: auto;
  margin: auto;
  max-width: 1120px;
  margin-bottom: 100px !important;
}
@media (max-width: 540px) {
  #home #about article aside {
    padding-left: 15px;
    padding-right: 15px;
  }
}
@media (max-width: 780px) {
  #home #about article aside {
    margin-bottom: 78px !important;
  }
}
@media (max-width: 540px) {
  #home #about article aside {
    margin-bottom: 57.72px !important;
  }
}
#home #about article aside h2 {
  font-size: 50px !important;
  font-size: 5rem !important;
  font-weight: 600;
  display: flex !important;
  justify-content: center;
  align-items: center;
  align-content: center;
  text-align: center;
  flex-direction: column;
  flex-wrap: nowrap;
}
#home #about article aside h2:before {
  content: "";
  display: block;
  width: 80px;
  height: 80px;
}
@media (max-width: 780px) {
  #home #about article aside h2 {
    font-size: 24px !important;
    font-size: 2.4rem !important;
  }
  #home #about article aside h2:before {
    width: 60px;
    height: 60px;
  }
}
#home #about article aside p {
  margin-bottom: 35px;
}
#home #about article aside:nth-of-type(1) {
  max-width: 550px;
}
#home #about article aside:nth-of-type(1) h2:before {
  background: url(../image/ic-01.svg) no-repeat center/contain;
}
#home #about article aside:nth-of-type(2) h2 {
  margin-bottom: 35px;
}
#home #about article aside:nth-of-type(2) h2:before {
  background: url(../image/ic-02.svg) no-repeat center/contain;
}
#home #about article aside:nth-of-type(2) .about_wrap {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}
#home #about article aside:nth-of-type(2) .about_wrap .about_unit {
  max-width: 500px;
  width: 43.4782608696%;
  margin: 0 3%;
}
@media (max-width: 780px) {
  #home #about article aside:nth-of-type(2) .about_wrap .about_unit {
    margin: 0 auto 35px;
    width: 100%;
  }
}
#home #about article aside:nth-of-type(2) .about_wrap .about_unit figure {
  height: 365px;
  display: flex !important;
  justify-content: center;
  align-items: center;
  align-content: center;
  text-align: center;
  flex-direction: row;
  flex-wrap: nowrap;
  background: #fff;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
}
#home #about article aside:nth-of-type(2) .about_wrap .about_unit:nth-of-type(1) figure img {
  max-height: 175px;
}
#home #about article aside:nth-of-type(2) .about_wrap .about_unit:nth-of-type(2) figure img {
  max-height: 135px;
}
#home #about article aside:nth-of-type(2) .about_wrap .about_unit:nth-of-type(3) figure img {
  max-height: 175px;
}
#home #about article aside:nth-of-type(2) .about_wrap .about_unit:nth-of-type(4) figure img {
  max-height: 200px;
}
#home #about article aside:nth-of-type(2) .about_wrap .about_unit p {
  padding: 10px 0;
}
#home #about article aside:nth-of-type(2) .about_wrap .about_unit.youtube_frame {
  margin: auto;
}
#home #about article aside:nth-of-type(3) {
  display: flex;
  flex-direction: column;
}
#home #about article aside:nth-of-type(3) h2 {
  margin-bottom: 35px;
}
#home #about article aside:nth-of-type(3) h2:before {
  background: url(../image/ic-03.svg) no-repeat center/contain;
}
#home #about article aside:nth-of-type(3) p {
  margin: 0 auto 35px;
}
#home #about article aside .model_type .swiper-wrapper {
  align-items: stretch !important;
}
#home #about article aside .model_type .swiper-slide {
  height: auto;
}
#home #about article aside .model_type h3 {
  text-align: center;
  font-size: 36px !important;
  font-size: 3.6rem !important;
  color: #FC3774;
  font-weight: 600;
  margin-bottom: 45px;
}
@media (max-width: 780px) {
  #home #about article aside .model_type h3 {
    font-size: 24px !important;
    font-size: 2.4rem !important;
  }
}
#home #about article aside .model_type dl dt {
  margin: 0 auto 15px;
  color: #fff;
  background: #FC3774;
  display: flex !important;
  justify-content: center;
  align-items: center;
  align-content: center;
  text-align: center;
  flex-direction: row;
  flex-wrap: nowrap;
  width: 175px;
  height: 45px;
  border-radius: 100px;
  background: #FC3774;
  font-weight: 400;
  font-size: 20px !important;
  font-size: 2rem !important;
}
@media (max-width: 780px) {
  #home #about article aside .model_type dl dt {
    font-size: 16px !important;
    font-size: 1.6rem !important;
  }
}
@media (max-width: 540px) {
  #home #about article aside .model_type .swiper-slide figure {
    max-width: 85%;
    margin: auto;
  }
}
#home #about article aside .model_type .swiper-slide figure img {
  margin: auto;
}
@media (max-width: 780px) and (max-width: 540px) {
  #home #about article aside .model_type .swiper-slide dl {
    max-width: 85%;
    margin: auto;
  }
}
@media (max-width: 780px) {
  #home #about article aside .model_type .swiper-slide dl dd {
    padding: 0 3%;
  }
}
#home #about article aside .model_type .swiper-pagination_a {
  display: none;
}
@media (max-width: 780px) {
  #home #about article aside .model_type .swiper-pagination_a {
    display: flex !important;
    justify-content: center;
    align-items: center;
    align-content: center;
    text-align: center;
    flex-direction: row;
    flex-wrap: nowrap;
    margin-top: 45px;
  }
  #home #about article aside .model_type .swiper-pagination_a span {
    display: block;
    border-radius: 0;
    width: 80px;
    background: #EAEAEA;
    opacity: 1;
  }
  #home #about article aside .model_type .swiper-pagination_a span.swiper-pagination-bullet-active {
    background: #69B1F9;
  }
}
@media (min-width: 769px) {
  #home #about article aside .model_type .swiper-wrapper {
    justify-content: space-around;
  }
}
@media (min-width: 1100px) {
  #home #about article aside .model_type:nth-of-type(1) .swiper-slide {
    max-width: 260px;
  }
}
#home #about article aside .model_type:nth-of-type(1) .swiper-pagination_a span.swiper-pagination-bullet-active {
  background: #FC3774;
}
#home #about article aside .model_type:nth-of-type(2) {
  margin-top: 120px;
}
@media (min-width: 1100px) {
  #home #about article aside .model_type:nth-of-type(2) .swiper-slide {
    max-width: 250px;
  }
}
#home #about article aside .model_type:nth-of-type(2) h3 {
  color: #88B5EF;
}
#home #about article aside .model_type:nth-of-type(2) h4 {
  text-align: center;
  margin-bottom: 45px;
}
#home #about article aside .model_type:nth-of-type(2) h4 strong, #home #about article aside .model_type:nth-of-type(2) h4 span {
  display: block;
}
#home #about article aside .model_type:nth-of-type(2) h4 strong {
  font-size: 28px !important;
  font-size: 2.8rem !important;
}
@media (max-width: 780px) {
  #home #about article aside .model_type:nth-of-type(2) h4 strong {
    font-size: 18px !important;
    font-size: 1.8rem !important;
  }
}
#home #about article aside .model_type:nth-of-type(2) h4 span {
  color: #FC3774;
  font-size: 16px !important;
  font-size: 1.6rem !important;
}
@media (max-width: 780px) {
  #home #about article aside .model_type:nth-of-type(2) h4 span {
    font-size: 10px !important;
    font-size: 1rem !important;
  }
}
#home #about article aside .model_type:nth-of-type(2) dl dt {
  background: #88B5EF;
}
@media (min-width: 768px) {
  #home #about article aside .model_type:nth-of-type(2) .swiper-slide {
    width: 25.641025641% !important;
  }
  #home #about article aside .model_type:nth-of-type(2) .swiper-slide:last-of-type {
    width: 47.619047619% !important;
    max-width: 464px;
  }
  #home #about article aside .model_type:nth-of-type(2) .swiper-slide:last-of-type img:last-of-type {
    display: none;
  }
}
@media (max-width: 767px) {
  #home #about article aside .model_type:nth-of-type(2) .swiper-slide:last-of-type img {
    display: none;
  }
  #home #about article aside .model_type:nth-of-type(2) .swiper-slide:last-of-type img:last-of-type {
    display: block;
  }
}
@media (min-width: 1099px) {
  #home #about article aside .model_type:nth-of-type(2) .swiper-slide:last-of-type {
    width: 41.8410041841% !important;
  }
}
#home #structure {
  background: #fff;
}
#home #structure article {
  position: relative;
}
#home #structure article:before {
  transform: rotate(5deg);
  z-index: -1;
  position: absolute;
  right: 2%;
  top: 10%;
  content: "";
  display: block;
  width: 250px;
  height: 250px;
  background: url(../image/icon-structure.svg) no-repeat right top/contain;
}
@media (max-width: 780px) {
  #home #structure article:before {
    width: 130px;
    height: 130px;
    right: 5%;
    top: 5%;
  }
}
#home #structure article .structure_wrap {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  margin-top: 100px;
  margin-bottom: -50px;
}
@media (max-width: 780px) {
  #home #structure article .structure_wrap {
    margin-top: 50px;
  }
}
#home #structure article .structure_wrap dl {
  position: relative;
  width: 47.5%;
  min-height: 130px;
  margin-bottom: 50px;
}
@media (max-width: 540px) {
  #home #structure article .structure_wrap dl {
    width: 100%;
    min-height: 100px;
  }
}
#home #structure article .structure_wrap dl:before {
  position: absolute;
  left: 0;
  content: "";
  display: inline-block;
  width: 130px;
  height: 130px;
}
@media (max-width: 540px) {
  #home #structure article .structure_wrap dl:before {
    width: 94px;
    height: 94px;
  }
}
#home #structure article .structure_wrap dl:nth-of-type(1):before {
  background: url(../image/icon-structure_01.webp) no-repeat center/contain;
}
#home #structure article .structure_wrap dl:nth-of-type(2):before {
  background: url(../image/icon-structure_02.webp) no-repeat center/contain;
}
#home #structure article .structure_wrap dl:nth-of-type(3):before {
  background: url(../image/icon-structure_03.webp) no-repeat center/contain;
}
#home #structure article .structure_wrap dl:nth-of-type(4):before {
  background: url(../image/icon-structure_04.webp) no-repeat center/contain;
}
#home #structure article .structure_wrap dl dt, #home #structure article .structure_wrap dl dd {
  padding-left: 140px;
}
@media (max-width: 540px) {
  #home #structure article .structure_wrap dl dt, #home #structure article .structure_wrap dl dd {
    padding-left: 120px;
  }
}
#home #structure article .structure_wrap dl dt {
  font-weight: 600;
  font-size: 27px !important;
  font-size: 2.7rem !important;
}
@media (max-width: 540px) {
  #home #structure article .structure_wrap dl dt {
    font-size: 20px !important;
    font-size: 2rem !important;
  }
}

#faq {
  background: #fff;
  padding-bottom: 0px !important;
}
@media (max-width: 780px) {
  #faq {
    padding-bottom: 0px !important;
  }
}
@media (max-width: 540px) {
  #faq {
    padding-bottom: 0px !important;
  }
}
#faq article {
  position: relative;
}
#faq article:before {
  transform: rotate(5deg);
  z-index: -1;
  position: absolute;
  right: 2%;
  top: 10%;
  content: "";
  display: block;
  width: 250px;
  height: 250px;
  background: url(../image/icon-faq.svg) no-repeat right top/contain;
}
@media (max-width: 780px) {
  #faq article:before {
    width: 130px;
    height: 130px;
    right: 5%;
    top: 5%;
  }
}
#faq article .faq_wrap {
  margin-top: 100px;
  padding-bottom: 100px !important;
}
@media (max-width: 780px) {
  #faq article .faq_wrap {
    padding-bottom: 78px !important;
  }
}
@media (max-width: 540px) {
  #faq article .faq_wrap {
    padding-bottom: 57.72px !important;
  }
}
@media (max-width: 780px) {
  #faq article .faq_wrap {
    margin-top: 50px;
  }
}
#faq article .faq_wrap dl:not(:last-of-type) {
  border-bottom: 1px solid #FC3774;
  padding-bottom: 15px;
  margin-bottom: 25px;
}
#faq article .faq_wrap dl dt, #faq article .faq_wrap dl dd {
  position: relative;
  padding-left: 60px;
  display: flex;
}
#faq article .faq_wrap dl dt:before, #faq article .faq_wrap dl dd:before {
  position: absolute;
  left: 0;
  top: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: #FC3774;
  border: 2px solid #FC3774;
  color: #fff;
  font-weight: 600;
  font-size: 34px !important;
  font-size: 3.4rem !important;
}
@media (max-width: 540px) {
  #faq article .faq_wrap dl dt:before, #faq article .faq_wrap dl dd:before {
    width: 30px;
    height: 30px;
    font-size: 22px !important;
    font-size: 2.2rem !important;
  }
}
#faq article .faq_wrap dl dt {
  margin-bottom: 10px;
  min-height: 60px;
  font-weight: 600;
  font-size: 30px !important;
  font-size: 3rem !important;
}
#faq article .faq_wrap dl dt:before {
  content: "Q";
}
@media (max-width: 540px) {
  #faq article .faq_wrap dl dt {
    font-size: 18px !important;
    font-size: 1.8rem !important;
    min-height: 30px;
  }
}
#faq article .faq_wrap dl dd {
  font-size: 18px !important;
  font-size: 1.8rem !important;
}
#shindan_page #faq article .faq_wrap dl dd {
  display: block;
}
#faq article .faq_wrap dl dd:before {
  content: "A";
}
@media (max-width: 540px) {
  #faq article .faq_wrap dl dd {
    font-size: 16px !important;
    font-size: 1.6rem !important;
  }
}

.second_pages #faq article:before {
  top: 1%;
}
.second_pages #kiyaku {
  background: #fff;
}
.second_pages #kiyaku article {
  padding-bottom: 55px;
}
.second_pages #kiyaku h1 {
  text-align: center;
  margin-bottom: 85px;
  font-size: 28px !important;
  font-size: 2.8rem !important;
}
@media (max-width: 540px) {
  .second_pages #kiyaku h1 {
    font-size: 21px !important;
    font-size: 2.1rem !important;
  }
}
.second_pages #kiyaku .kiyaku_wrap {
  margin-bottom: 55px;
}
.second_pages #kiyaku .kiyaku_wrap h2 {
  color: #FC3774;
  border-left: 6px solid #FC3774;
  padding-left: 7px;
  font-size: 25px !important;
  font-size: 2.5rem !important;
  line-height: 1.1;
  margin-bottom: 10px;
}
@media (max-width: 780px) {
  .second_pages #kiyaku .kiyaku_wrap h2 {
    font-size: 16px !important;
    font-size: 1.6rem !important;
  }
}
.second_pages #kiyaku .kiyaku_wrap p {
  font-size: 16px !important;
  font-size: 1.6rem !important;
}
@media (max-width: 780px) {
  .second_pages #kiyaku .kiyaku_wrap p {
    font-size: 14px !important;
    font-size: 1.4rem !important;
  }
}
.second_pages #kiyaku .kiyaku_wrap ol {
  list-style: decimal;
  list-style-position: outside;
  margin: 0.5em 0 0 1.8em;
  padding-left: 0.6em;
}
.second_pages #kiyaku .kiyaku_wrap ol > li {
  margin-bottom: 0.28em;
  padding-left: 0.2em;
}
.second_pages #kiyaku .kiyaku_wrap ul {
  list-style: disc;
  list-style-position: outside;
  margin: 0.45em 0 0.45em 1.8em;
  padding-left: 0.6em;
}
.second_pages #kiyaku .kiyaku_wrap ul > li {
  margin-bottom: 0.2em;
  padding-left: 0.2em;
}
@media (max-width: 780px) {
  .second_pages #kiyaku .kiyaku_wrap ol,
  .second_pages #kiyaku .kiyaku_wrap ul {
    margin-left: 1.45em;
    padding-left: 0.35em;
  }
}

.mb10 {
  margin-bottom: 10px !important;
}
@media (max-width: 780px) {
  .mb10 {
    margin-bottom: 7.8px !important;
  }
}
@media (max-width: 540px) {
  .mb10 {
    margin-bottom: 5.772px !important;
  }
}

.mb20 {
  margin-bottom: 20px !important;
}
@media (max-width: 780px) {
  .mb20 {
    margin-bottom: 15.6px !important;
  }
}
@media (max-width: 540px) {
  .mb20 {
    margin-bottom: 11.544px !important;
  }
}

.mb30 {
  margin-bottom: 30px !important;
}
@media (max-width: 780px) {
  .mb30 {
    margin-bottom: 23.4px !important;
  }
}
@media (max-width: 540px) {
  .mb30 {
    margin-bottom: 17.316px !important;
  }
}

.mb40 {
  margin-bottom: 40px !important;
}
@media (max-width: 780px) {
  .mb40 {
    margin-bottom: 31.2px !important;
  }
}
@media (max-width: 540px) {
  .mb40 {
    margin-bottom: 23.088px !important;
  }
}

.mb50 {
  margin-bottom: 50px !important;
}
@media (max-width: 780px) {
  .mb50 {
    margin-bottom: 39px !important;
  }
}
@media (max-width: 540px) {
  .mb50 {
    margin-bottom: 28.86px !important;
  }
}

.pb10 {
  padding-bottom: 10px !important;
}
@media (max-width: 780px) {
  .pb10 {
    padding-bottom: 7.8px !important;
  }
}
@media (max-width: 540px) {
  .pb10 {
    padding-bottom: 5.772px !important;
  }
}

.pb20 {
  padding-bottom: 20px !important;
}
@media (max-width: 780px) {
  .pb20 {
    padding-bottom: 15.6px !important;
  }
}
@media (max-width: 540px) {
  .pb20 {
    padding-bottom: 11.544px !important;
  }
}

.pb30 {
  padding-bottom: 30px !important;
}
@media (max-width: 780px) {
  .pb30 {
    padding-bottom: 23.4px !important;
  }
}
@media (max-width: 540px) {
  .pb30 {
    padding-bottom: 17.316px !important;
  }
}

.pb40 {
  padding-bottom: 40px !important;
}
@media (max-width: 780px) {
  .pb40 {
    padding-bottom: 31.2px !important;
  }
}
@media (max-width: 540px) {
  .pb40 {
    padding-bottom: 23.088px !important;
  }
}

.pb50 {
  padding-bottom: 50px !important;
}
@media (max-width: 780px) {
  .pb50 {
    padding-bottom: 39px !important;
  }
}
@media (max-width: 540px) {
  .pb50 {
    padding-bottom: 28.86px !important;
  }
}

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

.ar {
  text-align: right !important;
}

.ac, .ac img {
  margin: auto;
  text-align: center !important;
}

/* Tomekyun-inspired overrides for top pages */
:root {
  --tk-black: #3a3a41;
  --tk-pink: #ff7088;
  --tk-soft-blue: #f4fbfb;
  --tk-soft-pink: #fff0f3;
  --tk-soft-gray: #cdcdd2;
  --tk-grad-main: linear-gradient(90deg, #ff62b0 0%, #ff6f00 100%);
}

body:not(#home),
body.nml_pages:not(#home) {
  font-family: "Montserrat", "Noto Sans JP", "Noto Sans", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
  color: var(--tk-black);
  background:
    radial-gradient(circle at 12% -10%, rgba(255, 112, 136, 0.32) 0%, rgba(255, 112, 136, 0) 42%),
    radial-gradient(circle at 90% 8%, rgba(105, 182, 231, 0.24) 0%, rgba(105, 182, 231, 0) 36%),
    linear-gradient(180deg, var(--tk-soft-pink) 0%, #ffffff 40%, var(--tk-soft-blue) 100%) !important;
}

body#home {
  background: #fff url(../image/bg_kv.png) repeat-x center top/contain !important;
}

a {
  color: var(--tk-black);
}

.tk-accent-top,
a.tk-accent-top,
a[style*="palevioletred"],
strong[style*="palevioletred"],
span[style*="palevioletred"] {
  color: var(--tk-pink) !important;
}

.tk-center-note {
  text-align: center;
}

.section_title span,
.second_pages #kiyaku .kiyaku_wrap h2 {
  color: var(--tk-pink);
}

.second_pages #kiyaku .kiyaku_wrap h2 {
  border-left-color: var(--tk-pink);
}

.btn.type_a button,
.fixed_nav ul li.type_b button,
.section_catch span {
  background: var(--tk-grad-main) !important;
}

.btn.type_b button {
  color: var(--tk-black);
  border-color: rgba(205, 205, 210, 0.8);
}

/* Top button hover motion (aligned with signup tone) */
.nml_pages .btn button {
  transition: transform 0.25s ease, box-shadow 0.25s ease, opacity 0.25s ease, background-color 0.25s ease;
}

@media (hover: hover) {
  .nml_pages .btn button:hover {
    opacity: 1;
  }

  .nml_pages .btn.type_a button:hover {
    transform: translateY(-1px);
    box-shadow: 0 16px 24px -14px rgba(58, 58, 65, 0.56);
  }

  .nml_pages .btn.type_b button:hover {
    transform: translateY(-1px);
    background: #f4fbfb;
    box-shadow: 0 14px 22px -14px rgba(58, 58, 65, 0.42);
  }
}

.nml_pages .btn.type_a button:active,
.nml_pages .btn.type_b button:active {
  transform: translateY(0) scale(0.99);
}

/* T-style glassmorphism layer */
:root {
  --tk-glass-top-bg: rgba(255, 255, 255, 0.68);
  --tk-glass-top-bg-soft: rgba(255, 255, 255, 0.54);
  --tk-glass-top-border: rgba(255, 255, 255, 0.6);
  --tk-glass-top-shadow: 0 18px 36px -24px rgba(58, 58, 65, 0.58);
}

header article,
.sp_nav,
.modal .modal__content,
#faq article .faq_wrap dl,
.second_pages #kiyaku article {
  background: linear-gradient(165deg, var(--tk-glass-top-bg) 0%, var(--tk-glass-top-bg-soft) 100%);
  border: 1px solid var(--tk-glass-top-border);
  box-shadow: var(--tk-glass-top-shadow);
  -webkit-backdrop-filter: blur(14px) saturate(125%);
  backdrop-filter: blur(14px) saturate(125%);
}

#home #about article aside:nth-of-type(2) .about_wrap .about_unit figure,
#home #about article aside .model_type .swiper-slide figure {
  background: linear-gradient(165deg, rgba(255, 255, 255, 0.78) 0%, rgba(255, 255, 255, 0.58) 100%);
  border: 1px solid rgba(255, 255, 255, 0.62);
  box-shadow: 0 14px 32px -24px rgba(58, 58, 65, 0.56);
  -webkit-backdrop-filter: blur(12px) saturate(120%);
  backdrop-filter: blur(12px) saturate(120%);
}

.btn.type_b button {
  background: rgba(255, 255, 255, 0.78);
  -webkit-backdrop-filter: blur(8px) saturate(120%);
  backdrop-filter: blur(8px) saturate(120%);
}

@supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
  header article,
  .sp_nav,
  .modal .modal__content,
  #faq article .faq_wrap dl,
  .second_pages #kiyaku article {
    background: rgba(255, 255, 255, 0.92);
  }
}

.top-home-flask-link {
  width: 42px;
  height: 42px;
  margin-right: 12px;
  border-radius: 9999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 6px 18px rgba(58, 58, 65, 0.22);
  border: 1px solid rgba(225, 225, 230, 0.82);
}

.top-home-flask-link img {
  width: 24px;
  height: 24px;
  object-fit: contain;
}

.top-home-flask-link:hover {
  transform: translateY(-1px);
}

@media (max-width: 780px) {
  .top-home-flask-link {
    position: fixed;
    top: 12px;
    left: 12px;
    z-index: 91010;
    margin-right: 0;
    width: 40px;
    height: 40px;
  }
}

#home #service article.news_panel {
  margin-bottom: 100px;
}

#home #service article.news_panel .section_title {
  margin-bottom: 30px;
}

#home #service article.news_panel .top-section-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 25px;
}

#home #service article.news_panel .top-section-nav a {
  padding: 8px 16px;
  border-radius: 9999px;
  border: 1px solid rgba(252, 55, 116, 0.35);
  background: rgba(255, 255, 255, 0.86);
  font-size: 13px !important;
  font-size: 1.3rem !important;
  font-weight: 600;
  line-height: 1.4;
}

#home #service article.news_panel .news_intro {
  margin-bottom: 28px;
}

#home #service article.news_panel .news_featured {
  padding: 18px 20px;
  border: 1px solid rgba(252, 55, 116, 0.2);
  border-left: 5px solid #FC3774;
  background: #fff6fa;
  border-radius: 8px;
  margin-bottom: 24px;
}

#home #service article.news_panel .news_featured h2 {
  font-size: 22px !important;
  font-size: 2.2rem !important;
  margin-bottom: 8px;
}

#home #service article.news_panel .news_featured p {
  margin-bottom: 8px;
}

#home #service article.news_panel .news_featured_link {
  font-weight: 700;
  text-decoration: underline;
}

#home #service article.news_panel .news_highlights {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 26px;
}

#home #service article.news_panel .news_highlights li {
  padding: 14px 16px;
  border-radius: 10px;
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.08);
  box-shadow: 0 6px 16px rgba(58, 58, 65, 0.08);
}

#home #service article.news_panel .news_highlights li span {
  display: block;
  font-size: 13px !important;
  font-size: 1.3rem !important;
  color: rgba(58, 58, 65, 0.7);
  margin-bottom: 4px;
}

#home #service article.news_panel .news_highlights li strong {
  display: block;
  font-size: 22px !important;
  font-size: 2.2rem !important;
  line-height: 1.4;
}

#home #service article.news_panel .news_timeline {
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 1px solid rgba(0, 0, 0, 0.12);
}

#home #service article.news_panel .news_timeline li {
  display: grid;
  grid-template-columns: 130px 1fr;
  gap: 16px;
  align-items: start;
  padding: 14px 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}

#home #service article.news_panel .news_timeline li time {
  font-weight: 700;
  color: #FC3774;
}

#home #service article.news_panel .news_timeline li p {
  margin: 0;
}

#home #service article.news_panel .news_archive {
  margin-top: 20px;
  border: 1px solid rgba(0, 0, 0, 0.12);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.82);
  overflow: hidden;
}

#home #service article.news_panel .news_archive summary {
  cursor: pointer;
  padding: 14px 16px;
  font-weight: 700;
  list-style: none;
}

#home #service article.news_panel .news_archive summary::-webkit-details-marker {
  display: none;
}

#home #service article.news_panel .news_archive summary:after {
  content: "+";
  float: right;
  color: #FC3774;
}

#home #service article.news_panel .news_archive[open] summary:after {
  content: "-";
}

#home #service article.news_panel .news_archive ul {
  margin: 0;
  padding: 0 16px 14px;
  list-style: none;
}

#home #service article.news_panel .news_archive ul li {
  padding: 8px 0;
  border-bottom: 1px dotted rgba(0, 0, 0, 0.15);
  font-size: 14px !important;
  font-size: 1.4rem !important;
}

#home #service article.news_panel .news_archive ul li:last-child {
  border-bottom: none;
}

#home #service article.news_panel .news_archive ul li time {
  font-weight: 700;
  margin-right: 6px;
}

@media (max-width: 780px) {
  #home #service article.news_panel {
    margin-bottom: 78px;
  }

  #home #service article.news_panel .news_highlights li strong {
    font-size: 18px !important;
    font-size: 1.8rem !important;
  }
}

@media (max-width: 540px) {
  #home #service article.news_panel .top-section-nav {
    gap: 8px;
  }

  #home #service article.news_panel .top-section-nav a {
    width: 100%;
    text-align: center;
  }

  #home #service article.news_panel .news_featured {
    padding: 14px;
  }

  #home #service article.news_panel .news_featured h2 {
    font-size: 18px !important;
    font-size: 1.8rem !important;
  }

  #home #service article.news_panel .news_highlights {
    grid-template-columns: 1fr;
  }

  #home #service article.news_panel .news_timeline li {
    grid-template-columns: 1fr;
    gap: 4px;
  }

  #home #service article.news_panel .news_archive ul {
    padding: 0 12px 10px;
  }
}

/* Glassmorphism enhancement pack for top page */
:root {
  --tk-glass-deep-bg: linear-gradient(152deg, rgba(255, 255, 255, 0.72) 0%, rgba(255, 255, 255, 0.42) 100%);
  --tk-glass-deep-border: rgba(255, 255, 255, 0.68);
  --tk-glass-deep-shadow: 0 24px 44px -30px rgba(58, 58, 65, 0.68), 0 8px 20px -14px rgba(252, 55, 116, 0.34);
  --tk-glass-deep-filter: blur(20px) saturate(135%);
}

#home #service,
#home #structure,
#home #faq {
  background:
    radial-gradient(circle at 12% -4%, rgba(255, 255, 255, 0.36) 0%, rgba(255, 255, 255, 0) 45%),
    radial-gradient(circle at 92% 4%, rgba(255, 112, 136, 0.16) 0%, rgba(255, 112, 136, 0) 40%);
}

#home #service article.news_panel,
#home #service > article.base_wrapper:not(.news_panel),
#home #about article aside,
#home #structure article .structure_wrap dl,
#home #faq article .faq_wrap dl,
#mod_experience article,
.nml_pages footer article {
  box-sizing: border-box;
  background: var(--tk-glass-deep-bg);
  border: 1px solid var(--tk-glass-deep-border);
  box-shadow: var(--tk-glass-deep-shadow);
  -webkit-backdrop-filter: var(--tk-glass-deep-filter);
  backdrop-filter: var(--tk-glass-deep-filter);
}

#home #service article.news_panel,
#home #service > article.base_wrapper:not(.news_panel),
#home #about article aside,
#mod_experience article,
.nml_pages footer article {
  border-radius: 24px;
}

#home #service article.news_panel {
  padding: 34px 38px;
}

#home #service > article.base_wrapper:not(.news_panel) {
  padding: 36px 38px;
}

#home #service > article.base_wrapper:not(.news_panel) .checklist li {
  border-bottom: none;
  border: 1px solid rgba(255, 255, 255, 0.72);
  background: rgba(255, 255, 255, 0.56);
  border-radius: 16px;
  padding: 10px 16px;
  box-shadow: 0 12px 20px -18px rgba(58, 58, 65, 0.5);
}

#home #service > article.base_wrapper:not(.news_panel) .checklist li:not(:last-of-type) {
  margin-bottom: 14px;
}

#home #about article aside {
  padding: 34px 32px 30px;
}

#home #about article aside:nth-of-type(2) .about_wrap .about_unit {
  box-sizing: border-box;
  background: rgba(255, 255, 255, 0.34);
  border: 1px solid rgba(255, 255, 255, 0.58);
  border-radius: 18px;
  padding: 14px;
  box-shadow: 0 14px 26px -20px rgba(58, 58, 65, 0.45);
}

#home #about article aside .model_type .swiper-slide {
  border-radius: 0;
  background: transparent;
  border: none;
  padding: 0;
  box-shadow: none;
}

#home #structure article .structure_wrap dl {
  border-radius: 22px;
  padding: 18px 18px 16px 12px;
}

#home #about article aside .model_type .swiper-slide figure {
  border-radius: 14px;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.96);
  border: 1px solid rgba(255, 255, 255, 0.9);
  box-shadow: 0 14px 26px -18px rgba(58, 58, 65, 0.4);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}

#home #about article aside .model_type .swiper-slide figure img {
  display: block;
  width: 100%;
  height: auto;
}

#home #about article aside .model_type .swiper-slide dl {
  margin-top: 12px;
}

#home #faq article .faq_wrap dl {
  border-radius: 18px;
  padding: 18px 20px 12px;
}

#home #faq article .faq_wrap dl:not(:last-of-type) {
  border-bottom: none;
  padding-bottom: 12px;
  margin-bottom: 16px;
}

#mod_experience article {
  max-width: 980px;
  padding: 42px 36px;
  border-radius: 28px;
}

.nml_pages footer article {
  padding: 30px 28px 0;
}

#home #service article.news_panel .top-section-nav a,
#home #service article.news_panel .news_featured,
#home #service article.news_panel .news_highlights li,
#home #service article.news_panel .news_archive {
  background: linear-gradient(156deg, rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0.46) 100%);
  border: 1px solid rgba(255, 255, 255, 0.72);
  box-shadow: 0 14px 24px -20px rgba(58, 58, 65, 0.52);
  -webkit-backdrop-filter: blur(16px) saturate(132%);
  backdrop-filter: blur(16px) saturate(132%);
}

@supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
  #home #service article.news_panel,
  #home #service > article.base_wrapper:not(.news_panel),
  #home #about article aside,
  #home #structure article .structure_wrap dl,
  #home #faq article .faq_wrap dl,
  #mod_experience article,
  .nml_pages footer article,
  #home #service article.news_panel .top-section-nav a,
  #home #service article.news_panel .news_featured,
  #home #service article.news_panel .news_highlights li,
  #home #service article.news_panel .news_archive {
    background: rgba(255, 255, 255, 0.92);
  }
}

@media (max-width: 780px) {
  #home #service article.news_panel {
    padding: 28px 24px;
  }

  #home #service > article.base_wrapper:not(.news_panel),
  #home #about article aside {
    padding: 26px 24px;
  }

  #mod_experience article {
    padding: 30px 24px;
  }

  .nml_pages footer article {
    padding: 22px 18px 0;
  }
}

@media (max-width: 540px) {
  #home #service article.news_panel,
  #home #service > article.base_wrapper:not(.news_panel),
  #home #about article aside,
  #mod_experience article {
    border-radius: 18px;
  }

  #home #service article.news_panel {
    padding: 22px 16px;
  }

  #home #service > article.base_wrapper:not(.news_panel),
  #home #about article aside {
    padding: 20px 14px;
  }

  #home #about article aside:nth-of-type(2) .about_wrap .about_unit {
    padding: 10px;
  }

  #home #about article aside .model_type .swiper-slide figure {
    border-radius: 12px;
  }

  #home #structure article .structure_wrap dl,
  #home #faq article .faq_wrap dl {
    border-radius: 14px;
  }

  #mod_experience article {
    padding: 24px 14px;
  }
}

@media (max-width: 780px) {
  #home #structure article .structure_wrap {
    margin-bottom: -20px;
  }

  #home #structure article .structure_wrap dl {
    width: 100%;
    min-height: 0;
    margin-bottom: 20px;
    padding: 16px 14px;
  }

  #home #structure article .structure_wrap dl:before {
    position: static;
    display: block;
    margin: 0 0 12px;
    width: 72px;
    height: 72px;
  }

  #home #structure article .structure_wrap dl dt,
  #home #structure article .structure_wrap dl dd {
    padding-left: 0;
  }
}

/* News panel priority tuning: featured card strongest, highlight cards gradually softer */
#home #service article.news_panel .news_featured {
  position: relative;
  padding: 22px 24px;
  border-radius: 20px;
  background: linear-gradient(135deg, rgba(255, 150, 74, 0.86) 0%, rgba(255, 111, 0, 0.8) 36%, rgba(255, 112, 136, 0.84) 100%);
  border: 1px solid rgba(255, 255, 255, 0.64);
  box-shadow:
    0 34px 58px -34px rgba(255, 111, 0, 0.72),
    0 20px 44px -30px rgba(58, 58, 65, 0.52);
  -webkit-backdrop-filter: blur(14px) saturate(145%);
  backdrop-filter: blur(14px) saturate(145%);
}

#home #service article.news_panel .news_featured h2,
#home #service article.news_panel .news_featured p,
#home #service article.news_panel .news_featured_link,
#home #service article.news_panel .news_featured .tk-accent-top {
  color: #fff !important;
}

#home #service article.news_panel .news_highlights li {
  position: relative;
  overflow: hidden;
  border-radius: 14px;
  border: 1px solid rgba(255, 255, 255, 0.68);
  box-shadow: 0 16px 30px -24px rgba(58, 58, 65, 0.44);
  -webkit-backdrop-filter: blur(12px) saturate(128%);
  backdrop-filter: blur(12px) saturate(128%);
}

#home #service article.news_panel .news_highlights li::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(130deg, rgba(255, 255, 255, 0.52), rgba(255, 255, 255, 0.12));
}

#home #service article.news_panel .news_highlights li:nth-child(1) {
  background: linear-gradient(132deg, rgba(255, 160, 92, 0.24), rgba(255, 112, 136, 0.18));
}

#home #service article.news_panel .news_highlights li:nth-child(2) {
  background: linear-gradient(132deg, rgba(255, 160, 92, 0.2), rgba(255, 112, 136, 0.14));
}

#home #service article.news_panel .news_highlights li:nth-child(3) {
  background: linear-gradient(132deg, rgba(255, 160, 92, 0.16), rgba(255, 112, 136, 0.11));
}

#home #service article.news_panel .news_highlights li:nth-child(4) {
  background: linear-gradient(132deg, rgba(255, 160, 92, 0.13), rgba(255, 112, 136, 0.09));
}

#home #service article.news_panel .news_highlights li:nth-child(5) {
  background: linear-gradient(132deg, rgba(255, 160, 92, 0.1), rgba(255, 112, 136, 0.07));
}

#home #service article.news_panel .news_highlights li:nth-child(6) {
  background: linear-gradient(132deg, rgba(255, 160, 92, 0.08), rgba(255, 112, 136, 0.05));
}

@media (max-width: 540px) {
  #home #service article.news_panel .news_featured {
    padding: 18px 16px;
    border-radius: 16px;
  }
}

/* Top refresh: hero copy + metric counter + pricing panel */
#home #kv_field article .kv_copy_block {
  margin: 0 auto 16px;
  text-align: center;
}

#home #kv_field article .kv_main_catch {
  margin: 0;
  letter-spacing: 0.02em;
  line-height: 1.12;
  font-weight: 800;
  font-family: "Noto Sans JP", sans-serif;
}

#home #kv_field article .kv_main_catch .line {
  display: block;
}

#home #kv_field article .kv_main_catch .line_1 {
  font-size: clamp(2rem, 2.8vw, 3.9rem);
  color: #2f2f37;
}

#home #kv_field article .kv_main_catch .line_2 {
  margin-top: 8px;
  font-size: clamp(2.6rem, 3.8vw, 5.2rem);
  color: #2f2f37;
}

#home #kv_field article .kv_main_catch .line_2 em {
  font-style: normal;
  color: #f2458c;
}

#home #kv_field article p.kv_sub_catch {
  margin: 14px 0 0 !important;
  font-size: clamp(1.05rem, 1.4vw, 1.9rem) !important;
  line-height: 1.55;
  font-weight: 500;
  color: #686875;
}

#home #kv_field article .kv_wrapper > figure,
#home #kv_field article figure.kv-flask {
  width: 220px !important;
  margin-bottom: 34px;
}

#home #service article.news_panel .news_featured {
  position: relative;
  overflow: hidden;
  margin-bottom: 26px;
  padding: 56px 56px 58px;
  border-radius: 28px;
  background:
    radial-gradient(circle at 100% 0%, rgba(252, 72, 132, 0.08), rgba(252, 72, 132, 0) 38%),
    linear-gradient(150deg, rgba(255, 255, 255, 0.98) 0%, rgba(255, 252, 254, 0.96) 56%, rgba(255, 246, 250, 0.94) 100%);
  border: 1px solid rgba(252, 72, 132, 0.24);
  box-shadow:
    0 30px 54px -46px rgba(252, 72, 132, 0.46),
    0 18px 34px -30px rgba(58, 58, 65, 0.26);
}

#home #service article.news_panel .news_featured::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at 8% 100%, rgba(255, 116, 38, 0.05), rgba(255, 116, 38, 0) 34%),
    linear-gradient(164deg, rgba(255, 255, 255, 0.84) 8%, rgba(255, 255, 255, 0) 50%);
}

#home #service article.news_panel .news_featured h2 {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: max-content;
  max-width: 100%;
  padding: 10px 24px;
  border-radius: 999px;
  border: 1px solid rgba(252, 72, 132, 0.24);
  background: rgba(255, 255, 255, 0.82);
  color: #f33f80 !important;
  font-size: clamp(1.6rem, 1.55vw, 2.2rem) !important;
  line-height: 1.2;
  margin-bottom: 34px;
  font-weight: 900;
}

#home #service article.news_panel .news_featured p {
  position: relative;
  z-index: 1;
}

#home #service article.news_panel .news_featured .news_featured_title {
  margin: 0 0 22px;
  color: #2d2d35 !important;
  font-size: clamp(2.8rem, 3vw, 4.4rem) !important;
  line-height: 1.44;
  font-weight: 900;
  letter-spacing: 0;
}

#home #service article.news_panel .news_featured .news_featured_title .tk-accent-top {
  color: inherit !important;
  text-decoration: none;
}

#home #service article.news_panel .news_featured .news_featured_text {
  max-width: 1180px;
  margin: 0 0 30px;
  color: #666774 !important;
  font-size: clamp(1.8rem, 2.05vw, 2.8rem) !important;
  line-height: 1.65;
  font-weight: 700;
}

#home #service article.news_panel .news_featured_link {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 58px;
  padding: 0 32px;
  border-radius: 999px;
  background: linear-gradient(135deg, #f33f8b 0%, #ff6a3d 100%);
  box-shadow: 0 16px 26px -18px rgba(243, 63, 139, 0.72);
  color: #fff !important;
  font-size: clamp(1.8rem, 1.85vw, 2.5rem) !important;
  line-height: 1.35;
  text-decoration: none;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

#home #service article.news_panel .news_featured_link:hover {
  transform: translateY(-1px);
  box-shadow: 0 18px 30px -18px rgba(243, 63, 139, 0.82);
}

#home #service article.news_panel .news_featured .news-media-name {
  font-weight: 900;
  letter-spacing: 0.01em;
  -webkit-text-stroke: 0;
  text-shadow: none;
}

#home #service article.news_panel .news_price_panel {
  margin-bottom: 24px;
  padding: 24px 24px 26px;
  text-align: center;
  border-radius: 28px;
  background: linear-gradient(148deg, rgba(255, 245, 249, 0.86) 0%, rgba(251, 237, 244, 0.8) 100%);
  border: 1px solid rgba(252, 55, 116, 0.12);
  box-shadow: 0 12px 28px -24px rgba(58, 58, 65, 0.34);
  -webkit-backdrop-filter: blur(10px) saturate(125%);
  backdrop-filter: blur(10px) saturate(125%);
}

#home #service article.news_panel .news_price_title {
  margin: 0;
  color: #f33f80;
  font-size: 40px !important;
  font-size: 4rem !important;
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: 0.02em;
}

#home #service article.news_panel .news_price_title strong {
  font-size: 60px;
  font-family: "Montserrat", "Noto Sans JP", sans-serif;
  font-weight: 800;
}

#home #service article.news_panel .news_price_note {
  margin: 16px 0 0;
  color: #5d5d69;
  font-size: 16px !important;
  font-size: 1.6rem !important;
  line-height: 1.9;
  font-weight: 500;
}

#home #service article.news_panel .news_metrics {
  list-style: none;
  margin: 0 0 28px;
  padding: 24px 18px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-radius: 44px;
  border: 1px solid rgba(255, 255, 255, 0.78);
  background: linear-gradient(150deg, rgba(255, 255, 255, 0.93) 0%, rgba(255, 255, 255, 0.74) 100%);
  box-shadow: 0 16px 34px -28px rgba(58, 58, 65, 0.36);
  -webkit-backdrop-filter: blur(14px) saturate(122%);
  backdrop-filter: blur(14px) saturate(122%);
}

#home #service article.news_panel .news_metrics li {
  position: relative;
  text-align: center;
  padding: 6px 14px;
}

#home #service article.news_panel .news_metrics li + li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 1px;
  height: 70%;
  background: rgba(58, 58, 65, 0.18);
}

#home #service article.news_panel .news_metric_value {
  display: block;
  margin: 0 0 12px;
  color: #f33f80;
  font-size: clamp(3.2rem, 3.6vw, 5.4rem);
  font-weight: 800;
  line-height: 1;
  letter-spacing: 0.01em;
  font-family: "Montserrat", "Noto Sans JP", sans-serif;
  font-variant-numeric: tabular-nums;
}

#home #service article.news_panel .news_metrics li span {
  display: block;
  color: #8d8d95;
  font-size: 26px !important;
  font-size: 2.6rem !important;
  font-weight: 700;
  line-height: 1.35;
}

#home #service article.news_panel .news_support_points {
  list-style: none;
  margin: 0 0 26px;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

#home #service article.news_panel .news_support_points li {
  border-radius: 18px;
  padding: 16px 18px;
  background: linear-gradient(146deg, rgba(255, 255, 255, 0.89) 0%, rgba(255, 255, 255, 0.68) 100%);
  border: 1px solid rgba(255, 255, 255, 0.8);
  box-shadow: 0 10px 24px -22px rgba(58, 58, 65, 0.32);
  -webkit-backdrop-filter: blur(9px) saturate(114%);
  backdrop-filter: blur(9px) saturate(114%);
}

#home #service article.news_panel .news_support_value,
#home #service article.news_panel .news_support_text {
  display: block;
  margin: 0 0 8px;
  color: #f33f80;
  font-size: clamp(1.8rem, 2vw, 2.8rem);
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: 0.01em;
}

#home #service article.news_panel .news_support_points li span {
  display: block;
  color: #8d8d95;
  font-size: 14px !important;
  font-size: 1.4rem !important;
  font-weight: 700;
}

@media (max-width: 1100px) {
  #home #kv_field article .kv_main_catch .line_1 {
    font-size: clamp(1.7rem, 3.5vw, 3rem);
  }

  #home #kv_field article .kv_main_catch .line_2 {
    font-size: clamp(2.2rem, 4.2vw, 4rem);
  }

  #home #kv_field article p.kv_sub_catch {
    font-size: clamp(1rem, 2vw, 1.6rem) !important;
  }

  #home #kv_field article .kv_wrapper > figure,
  #home #kv_field article figure.kv-flask {
    width: 190px !important;
  }

  #home #service article.news_panel .news_featured {
    padding: 42px 36px 44px;
  }

  #home #service article.news_panel .news_featured h2 {
    font-size: clamp(1.5rem, 2vw, 2rem) !important;
    margin-bottom: 26px;
  }

  #home #service article.news_panel .news_featured .news_featured_title {
    font-size: clamp(2.5rem, 3.8vw, 3.6rem) !important;
    margin-bottom: 18px;
  }

  #home #service article.news_panel .news_featured .news_featured_text {
    font-size: clamp(1.6rem, 2.5vw, 2.2rem) !important;
    margin-bottom: 26px;
  }

  #home #service article.news_panel .news_price_title {
    font-size: 34px !important;
    font-size: 3.4rem !important;
  }

  #home #service article.news_panel .news_price_title strong {
    font-size: 50px;
  }

  #home #service article.news_panel .news_price_note {
    font-size: 14px !important;
    font-size: 1.4rem !important;
  }

  #home #service article.news_panel .news_metrics li span {
    font-size: 18px !important;
    font-size: 1.8rem !important;
  }

  #home #service article.news_panel .news_support_points li span {
    font-size: 13px !important;
    font-size: 1.3rem !important;
  }
}

@media (max-width: 780px) {
  #home #kv_field article .kv_copy_block {
    margin-bottom: 12px;
  }

  #home #kv_field article .kv_main_catch .line_1 {
    font-size: clamp(1.5rem, 4.8vw, 2.4rem);
  }

  #home #kv_field article .kv_main_catch .line_2 {
    margin-top: 6px;
    font-size: clamp(1.9rem, 6.2vw, 3.2rem);
  }

  #home #kv_field article p.kv_sub_catch {
    margin-top: 10px !important;
    font-size: clamp(1rem, 3.1vw, 1.4rem) !important;
  }

  #home #kv_field article .kv_wrapper > figure,
  #home #kv_field article figure.kv-flask {
    width: 180px !important;
    margin-bottom: 24px;
  }

  #home #service article.news_panel .news_featured {
    margin-bottom: 18px;
    padding: 28px 20px 30px;
    border-radius: 22px;
  }

  #home #service article.news_panel .news_featured h2 {
    padding: 8px 18px;
    font-size: clamp(1.4rem, 4.2vw, 1.8rem) !important;
    margin-bottom: 22px;
  }

  #home #service article.news_panel .news_featured .news_featured_title {
    font-size: clamp(1.9rem, 5.4vw, 2.1rem) !important;
    line-height: 1.5;
    margin-bottom: 16px;
  }

  #home #service article.news_panel .news_featured .news_featured_text {
    font-size: clamp(1.4rem, 4.3vw, 1.8rem) !important;
    line-height: 1.65;
    margin-bottom: 24px;
  }

  #home #service article.news_panel .news_featured_link {
    min-height: 50px;
    padding: 0 24px;
    font-size: clamp(1.5rem, 4.5vw, 1.8rem) !important;
  }

  #home #service article.news_panel .news_price_panel {
    border-radius: 20px;
    padding: 18px 16px 20px;
  }

  #home #service article.news_panel .news_price_title {
    font-size: 28px !important;
    font-size: 2.8rem !important;
  }

  #home #service article.news_panel .news_price_title strong {
    font-size: 40px;
  }

  #home #service article.news_panel .news_price_note {
    margin-top: 10px;
    font-size: 13px !important;
    font-size: 1.3rem !important;
    line-height: 1.7;
  }

  #home #service article.news_panel .news_metrics {
    border-radius: 26px;
    padding: 12px 8px;
    grid-template-columns: 1fr;
  }

  #home #service article.news_panel .news_metrics li {
    padding: 14px 12px;
  }

  #home #service article.news_panel .news_metrics li + li::before {
    left: 12px;
    right: 12px;
    top: 0;
    width: auto;
    height: 1px;
    transform: none;
  }

  #home #service article.news_panel .news_metric_value {
    margin-bottom: 8px;
    font-size: clamp(3rem, 8.4vw, 4.3rem);
  }

  #home #service article.news_panel .news_metrics li span {
    font-size: 16px !important;
    font-size: 1.6rem !important;
  }

  #home #service article.news_panel .news_support_points {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  #home #service article.news_panel .news_support_points li {
    border-radius: 14px;
    padding: 12px 14px;
  }

  #home #service article.news_panel .news_support_value,
  #home #service article.news_panel .news_support_text {
    font-size: clamp(1.6rem, 5vw, 2.3rem);
    margin-bottom: 6px;
  }

  #home #service article.news_panel .news_support_points li span {
    font-size: 14px !important;
    font-size: 1.4rem !important;
  }
}

@media (max-width: 540px) {
  #home #kv_field article .kv_wrapper > figure,
  #home #kv_field article figure.kv-flask {
    width: 160px !important;
  }
}

@media (min-width: 781px) {
  #home #structure article .structure_wrap dl:nth-of-type(3),
  #home #structure article .structure_wrap dl:nth-of-type(4) {
    padding-bottom: 34px;
  }
}

/* ===== DM Launch announcement banner (top page #service) ===== */
#home #service article.news_panel .news_launch_banner {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 18px 22px;
  margin-bottom: 20px;
  border-radius: 14px;
  background: linear-gradient(135deg, #ff62b0 0%, #ff3d8c 55%, #e63b71 100%);
  color: #fff !important;
  text-decoration: none;
  box-shadow: 0 14px 30px -16px rgba(230, 59, 113, 0.55), 0 4px 12px -6px rgba(230, 59, 113, 0.35);
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}
#home #service article.news_panel .news_launch_banner:hover {
  transform: translateY(-2px);
  box-shadow: 0 18px 38px -16px rgba(230, 59, 113, 0.65), 0 6px 16px -6px rgba(230, 59, 113, 0.45);
}
#home #service article.news_panel .news_launch_banner .nlb_badge {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 6px 12px;
  border-radius: 100px;
  background: #fff;
  color: #e63b71 !important;
  font-family: "Montserrat", "Noto Sans JP", sans-serif;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.12em;
  line-height: 1;
}
#home #service article.news_panel .news_launch_banner .nlb_body {
  display: flex;
  flex-direction: column;
  gap: 4px;
  flex: 1;
  min-width: 0;
}
#home #service article.news_panel .news_launch_banner .nlb_title {
  font-size: 17px;
  font-weight: 800;
  line-height: 1.45;
  color: #fff !important;
  letter-spacing: 0.01em;
}
#home #service article.news_panel .news_launch_banner .nlb_sub {
  font-size: 13px;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.92) !important;
}
#home #service article.news_panel .news_launch_banner .nlb_sub strong {
  color: #fff !important;
  font-weight: 700;
  background: rgba(255, 255, 255, 0.16);
  padding: 1px 6px;
  border-radius: 4px;
}
#home #service article.news_panel .news_launch_banner .nlb_arrow {
  flex-shrink: 0;
  font-size: 22px;
  font-weight: 700;
  color: #fff !important;
  line-height: 1;
}
@media (max-width: 540px) {
  #home #service article.news_panel .news_launch_banner {
    align-items: flex-start;
    padding: 16px 18px;
    gap: 12px;
  }
  #home #service article.news_panel .news_launch_banner .nlb_badge {
    padding: 4px 10px;
    font-size: 11px;
  }
  #home #service article.news_panel .news_launch_banner .nlb_title {
    font-size: 15px;
  }
  #home #service article.news_panel .news_launch_banner .nlb_sub {
    font-size: 12px;
  }
  #home #service article.news_panel .news_launch_banner .nlb_arrow {
    font-size: 18px;
    align-self: center;
  }
}

/* ── 新機能バナー（#home_seo_guides 直前） ── */
#home #new_feature_banner {
  padding: 140px 0 56px;
  background: #fff;
}
#home #new_feature_banner .nfb_card {
  position: relative;
  display: block;
  margin: 0 auto;
  padding: 150px 60px 56px;
  border-radius: 28px;
  background: linear-gradient(180deg, #ffeaf1 0%, #ffd5e3 60%, #ffc1d4 100%);
  border: 1.5px solid #ffb6c8;
  color: #4a2a3a !important;
  text-decoration: none;
  text-align: center;
  box-shadow: 0 18px 36px -22px rgba(220, 120, 150, 0.45);
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}
#home #new_feature_banner .nfb_card:hover {
  transform: translateY(-2px);
  box-shadow: 0 24px 44px -22px rgba(220, 120, 150, 0.55);
}
#home #new_feature_banner .nfb_top_illust {
  position: absolute;
  top: -100px;
  left: 50%;
  transform: translateX(-50%);
  width: 340px;
  height: auto;
  z-index: 2;
  pointer-events: none;
  user-select: none;
}
#home #new_feature_banner .nfb_body {
  position: relative;
}
#home #new_feature_banner .nfb_eyebrow_title {
  font-size: 44px;
  font-weight: 800;
  line-height: 1.4;
  color: #3a2030 !important;
  margin: 0 0 28px;
  letter-spacing: 0.02em;
}
#home #new_feature_banner .nfb_eyebrow_icon {
  display: inline-block;
  color: #ff7aa3 !important;
  font-size: 34px;
  margin-left: 10px;
}
#home #new_feature_banner .nfb_badge {
  display: inline-block;
  padding: 12px 30px;
  border-radius: 100px;
  background: linear-gradient(90deg, #ffb3cf 0%, #d9a7ff 100%);
  color: #fff !important;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.02em;
  margin: 0 0 36px;
}
#home #new_feature_banner .nfb_catch {
  font-size: 56px;
  font-weight: 800;
  line-height: 1.45;
  color: #ff4a7e !important;
  margin: 0 0 48px;
  letter-spacing: 0.01em;
}
#home #new_feature_banner .nfb_footer_note {
  font-size: 19px;
  line-height: 1.85;
  color: #6a4555 !important;
  margin: 0 0 32px;
}
#home #new_feature_banner .nfb_cta {
  display: inline-block;
  padding: 16px 36px;
  border-radius: 100px;
  background: #fff;
  color: #ff4a7e !important;
  font-size: 20px;
  font-weight: 800;
  letter-spacing: 0.02em;
  box-shadow: 0 4px 10px -4px rgba(220, 120, 150, 0.35);
}
@media (max-width: 860px) {
  #home #new_feature_banner .nfb_card {
    padding: 130px 36px 44px;
  }
  #home #new_feature_banner .nfb_top_illust {
    top: -88px;
    width: 280px;
  }
  #home #new_feature_banner .nfb_eyebrow_title {
    font-size: 32px;
    margin: 0 0 22px;
  }
  #home #new_feature_banner .nfb_eyebrow_icon {
    font-size: 26px;
  }
  #home #new_feature_banner .nfb_badge {
    font-size: 17px;
    padding: 9px 24px;
    margin: 0 0 28px;
  }
  #home #new_feature_banner .nfb_catch {
    font-size: 40px;
    margin: 0 0 36px;
  }
  #home #new_feature_banner .nfb_footer_note {
    font-size: 17px;
  }
  #home #new_feature_banner .nfb_cta {
    font-size: 18px;
    padding: 14px 32px;
  }
}
@media (max-width: 540px) {
  #home #new_feature_banner {
    padding: 110px 0 36px;
  }
  #home #new_feature_banner .nfb_card {
    padding: 100px 20px 30px;
    border-radius: 22px;
  }
  #home #new_feature_banner .nfb_top_illust {
    top: -70px;
    width: 220px;
  }
  #home #new_feature_banner .nfb_eyebrow_title {
    font-size: 21px;
  }
  #home #new_feature_banner .nfb_eyebrow_icon {
    font-size: 17px;
  }
  #home #new_feature_banner .nfb_badge {
    font-size: 14px;
    padding: 6px 16px;
    margin: 0 0 22px;
  }
  #home #new_feature_banner .nfb_catch {
    font-size: 24px;
    margin: 0 0 28px;
  }
  #home #new_feature_banner .nfb_footer_note {
    font-size: 14px;
  }
  #home #new_feature_banner .nfb_cta {
    font-size: 15px;
    padding: 12px 26px;
  }
  #home #new_feature_banner .nfb_br_pc {
    display: none;
  }
}
