@charset "UTF-8";
/*//////////////////////////////////////////////////////////

Copyright (C) apricot-design All Rights Reserved.
------------------------------------------------------------
CSS information
 file name  :  reset.css
 style info :  リセットファイル
 admin info :  apricot-design

//////////////////////////////////////////////////////////*/
article, aside, details, figcaption, figure, footer, header, hgroup, nav, section {
  display: block;
}

audio[controls], canvas, video {
  display: inline-block;
  *display: inline;
  zoom: 1;
}

html {
  overflow-y: scroll;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
}

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

body, button, input, select, textarea {
  font-family: inherit;
  font-size: 100%;
}

abbr[title] {
  border-bottom: 1px dotted;
}

b, strong {
  font-weight: bold;
}

blockquote {
  margin: 1em 40px;
}

dfn {
  font-style: italic;
}

mark {
  background: #ff0;
  color: #000;
}

pre, code, kbd, samp {
  font-family: monospace, monospace;
  _font-family: "courier new", monospace;
  font-size: 1em;
}

pre {
  white-space: pre;
  white-space: pre-wrap;
  word-wrap: break-word;
}

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

small {
  font-size: 75%;
}

sub {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
  top: -0.5em;
}

sub {
  bottom: -0.25em;
}

ul, ol {
  margin: 0;
  padding: 0;
}

dd {
  margin: 0px;
}

nav ul, nav ol {
  list-style: none;
}

img {
  border: 0;
  -ms-interpolation-mode: bicubic;
}

svg:not(:root) {
  overflow: hidden;
}

figure, form {
  margin: 0;
}

fieldset {
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em;
}

legend {
  border: 0;
  *margin-left: -7px;
}

button, input, select, textarea {
  font-size: 100%;
  margin: 0;
  vertical-align: baseline;
  *vertical-align: middle;
}

button, input {
  line-height: normal;
  *overflow: visible;
}

button {
  cursor: pointer;
  -webkit-appearance: button;
}

input[type=button], input[type=reset], input[type=submit] {
  cursor: pointer;
  -webkit-appearance: button;
}
input[type=checkbox], input[type=radio] {
  box-sizing: border-box;
}
input[type=search] {
  -webkit-appearance: textfield;
  box-sizing: content-box;
}
input[type=search]::-webkit-search-decoration {
  -webkit-appearance: none;
}

button::-moz-focus-inner, input::-moz-focus-inner {
  border: 0;
  padding: 0;
}

textarea {
  overflow: auto;
  vertical-align: top;
}

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

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

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

img, abbr, acronym, fieldset {
  border: 0;
}

li {
  list-style: none;
}

/*画像を縦に並べた時に余白が出ないように*/
img {
  vertical-align: top;
  font-size: 0;
  line-height: 0;
}

/*box-sizingを全ブラウザに対応*/
* {
  -ms-box-sizing: border-box;
  -o-box-sizing: border-box;
  box-sizing: border-box;
}
*:before, *:after {
  -ms-box-sizing: border-box;
  -o-box-sizing: border-box;
  box-sizing: border-box;
}

.ie6_error, .no_script {
  background: #F66;
  padding: 100px;
  text-align: center;
  font-size: 150%;
  color: #333;
}

.flt {
  float: left;
}

.flr {
  float: right;
}

.txt_l, td.txt_l, .txt_l td {
  text-align: left;
}

.txt_r, td.txt_r, .txt_r td {
  text-align: right;
}

.txt_c, td.txt_c, .txt_c td {
  text-align: center;
}

.valign_t, td.valign_t, .valign_t td {
  vertical-align: top;
}

.valign_m, td.valign_m, .valign_m td {
  vertical-align: middle;
}

.valign_b, td.valign_b, .valign_b td {
  vertical-align: bottom;
}

.clear {
  clear: both;
}

.clearfix {
  zoom: 1;
}
.clearfix:before {
  content: "";
  display: block;
}
.clearfix:after {
  content: "";
  display: block;
  clear: both;
}

.img_bd {
  border: solid 1px #E8E8E8;
}

.c_red {
  color: #FF3425;
}

html {
  width: 100%;
}

body {
  font: 400 16px/1.8 "Noto Sans JP", "游ゴシック体", "Yu Gothic", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, "MS Pゴシック", "MS PGothic", sans-serif;
  color: #3E3A39;
  text-align: left;
  letter-spacing: 0.1em;
}
@media screen and (max-width: 767px) {
  body {
    font-size: 14px;
  }
}

a {
  text-decoration: none;
  color: #3E3A39;
  transition: 0.3s;
}
a:link, a:active, a:visited {
  text-decoration: none;
}

.mincho {
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "MS P明朝", "MS PMincho", serif;
}

.gothic {
  font-family: "Noto Sans JP", "游ゴシック体", "Yu Gothic", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, "MS Pゴシック", "MS PGothic", sans-serif;
}

.en {
  font-family: "Poppins", sans-serif;
}

h1, h2, h3, h4, h5, h6 {
  font-weight: inherit;
}

.add_ttl {
  border-bottom: 1px solid #3E3A39;
  margin-bottom: 1em;
  padding-bottom: 0.5em;
  line-height: 1.6;
  font-size: 1.5em;
  font-weight: bold;
}
@media screen and (max-width: 767px) {
  .add_ttl {
    font-size: 1.3em;
  }
}

.add_ttl_02 {
  position: relative;
  padding-left: 1.4em;
  margin-bottom: 0.5em;
  line-height: 1.6;
  font-size: 1.3em;
  font-weight: bold;
}
@media screen and (max-width: 767px) {
  .add_ttl_02 {
    font-size: 1.2em;
  }
}
.add_ttl_02:before {
  position: absolute;
  content: "●";
  left: 0;
  top: 0;
  color: #E33C1C;
}

a.add_link {
  text-decoration: underline;
}
a.add_link:hover {
  opacity: 0.5;
}

/* original */
/** ------------------------------------------
*
*   アニメーション
*
------------------------------------------  */
@keyframes scrollY {
  0% {
    transform: translateY(-100%);
  }
  100% {
    transform: translateY(100%);
  }
}
@keyframes scrollYonce {
  100% {
    transform: translateY(0);
  }
}
@keyframes scrollX {
  0% {
    transform: translateX(100%);
  }
  100% {
    transform: translateX(-60%);
  }
}
@keyframes scale {
  100% {
    transform: scale(1.5);
  }
}
/** ------------------------------------------
*
*   スタイル
*
------------------------------------------  */
@keyframes fade_in {
  100% {
    transform: translate(0);
    opacity: 1;
  }
}
@keyframes fade_out {
  100% {
    transform: translate(0);
    opacity: 0;
    visibility: hidden;
  }
}
[class^=fade_anim] {
  opacity: 0;
}
[class^=fade_anim].ignition {
  animation: fade_in 1s ease-out forwards;
}

.fade_anim.ignition {
  animation: fade_in 1s ease-in forwards;
}

.fade_anim_bottom {
  transform: translate(0, 80px);
}

.fade_anim_left {
  transform: translate(-40px, 0);
}

.fade_anim_right {
  transform: translate(80px, 0);
}

@keyframes runner {
  100% {
    transform: translateX(0);
  }
}
@keyframes show_fade {
  100% {
    opacity: 1;
    transform: scale(1);
  }
}
.sc_anim_image {
  position: relative;
  overflow: hidden;
}
.sc_anim_image .img_box {
  position: relative;
  opacity: 0;
  transform: scale(1.2);
}
.sc_anim_image:before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background: rgba(255, 182, 193, 0.6);
  position: absolute;
  top: 0;
  left: 0;
  transform: translateX(-100%);
}
.sc_anim_image.ignition .img_box {
  animation: show_fade 1.6s 1.2s forwards;
}
.sc_anim_image.ignition:before {
  animation: runner 1s forwards;
}

@keyframes rotate_color {
  100% {
    transform: rotateY(90deg);
  }
}
@keyframes rotate_image {
  100% {
    transform: rotateY(0deg);
  }
}
.sc_anim_image_rotate {
  position: relative;
}
.sc_anim_image_rotate .img_box {
  position: relative;
  border-radius: 50%;
  overflow: hidden;
  transform: rotateY(90deg);
}
.sc_anim_image_rotate .img_box:after {
  content: "";
  display: block;
  width: 100%;
  padding-top: 100%;
}
.sc_anim_image_rotate .img_box img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  position: absolute;
  top: 0;
  left: 0;
}
.sc_anim_image_rotate:after {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background-color: rgba(255, 182, 193, 0.6);
  position: absolute;
  top: 0;
  left: 0;
  transform: rotateY(0deg);
}
.sc_anim_image_rotate.ignition .img_box {
  animation: rotate_image 1s 1s forwards;
}
.sc_anim_image_rotate.ignition:after {
  animation: rotate_color 1s forwards;
}

@keyframes scaledown_image {
  100% {
    opacity: 1;
    transform: scale(1);
  }
}
@keyframes rotate_color_show {
  100% {
    transform: rotateY(0deg);
    opacity: 1;
  }
}
.sc_anim_image_fade {
  position: relative;
  border-radius: 50%;
  overflow: hidden;
}
.sc_anim_image_fade .img_box {
  position: relative;
  border-radius: 50%;
  overflow: hidden;
  opacity: 0;
  transform: scale(1.05);
  position: relative;
  z-index: 2;
}
.sc_anim_image_fade .img_box:after {
  content: "";
  display: block;
  width: 100%;
  padding-top: 100%;
}
.sc_anim_image_fade .img_box img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  position: absolute;
  top: 0;
  left: 0;
}
.sc_anim_image_fade:after {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background-color: rgba(255, 182, 193, 0.6);
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0;
}
.sc_anim_image_fade.ignition .img_box {
  animation: scaledown_image 1s 1s forwards;
}
.sc_anim_image_fade.ignition:after {
  animation: rotate_color_show 0.5s ease-out forwards;
}

@keyframes cover_slide_right {
  100% {
    transform: translateX(100%);
  }
}
#modules {
  padding-left: 9vw;
  padding-right: 9vw;
}
#modules hr {
  display: block;
  width: 100%;
  margin: 30px 0;
}
@media screen and (min-width: 768px) {
  #modules {
    padding-left: min(4.1vw, 80px);
    padding-right: min(4.1vw, 80px);
  }
}
#modules table {
  width: 100%;
}
#modules .module_h1 {
  background: #dcdcdc;
  padding: 20px;
  text-align: center;
  border: 1px solid #333;
}
#modules .class_name {
  width: 30%;
  padding: 50px;
  border: 1px solid #333;
}
#modules td {
  padding: 50px;
  border: 1px solid #333;
}
#modules td.bg_tex {
  background: url(../images/bg_tex_red.jpg) no-repeat center/cover;
}

#l-container_wrap {
  min-width: 1000px;
  overflow: hidden;
}
@media screen and (max-width: 767px) {
  #l-container_wrap {
    min-width: 1px;
  }
}

body:not(.home) #l-container {
  padding-top: 120px;
}
@media screen and (min-width: 768px) {
  body:not(.home) #l-container {
    padding-top: 210px;
  }
}

.inner {
  padding-left: 9vw;
  padding-right: 9vw;
}
@media screen and (min-width: 768px) {
  .inner {
    padding-left: min(4.1vw, 80px);
    padding-right: min(4.1vw, 80px);
  }
}

.section_wrap {
  padding: 5rem 0 12.5rem;
}
@media screen and (max-width: 767px) {
  .section_wrap {
    padding: 3.75rem 0 5.625rem;
  }
}

.home .section_wrap {
  padding-bottom: 0;
  background: #fff;
}

.opacity, .list_times_related > li > a, .list_times_01 > li a:hover, #form_box .layout_form_btns button, .page.program #program .list_program_detail li .watch_video, .home .section_cover .flex_box #top_case .list_items > li a,
.home .section_cover .flex_box #top_voice .list_items > li a, #header .header-container .header_content .instagram, #header .header-container .header_logo a, .single_pagination li a, .navigation.pagination .nav-links .page-numbers, #hbm .hbm_sub_02 li a, #hbm .hbm_main li a, #hbm_btn {
  transition: 0.3s;
}
.opacity:hover, .list_times_related > li > a:hover, .list_times_01 > li a:hover, #form_box .layout_form_btns button:hover, .page.program #program .list_program_detail li .watch_video:hover, .home .section_cover .flex_box #top_case .list_items > li a:hover,
.home .section_cover .flex_box #top_voice .list_items > li a:hover, #header .header-container .header_content .instagram:hover, #header .header-container .header_logo a:hover, .single_pagination li a:hover, .navigation.pagination .nav-links .page-numbers:hover, #hbm .hbm_sub_02 li a:hover, #hbm .hbm_main li a:hover, #hbm_btn:hover {
  opacity: 0.5;
}

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

@media screen and (max-width: 767px) {
  .pc {
    display: none !important;
  }
  /* ヘッダーの店舗情報は常に表示 */
  .header_info_group .tel.pc {
    display: block !important;
  }
}

@media screen and (min-width: 768px) {
  .sp {
    display: none !important;
  }
}

@media screen and (max-width: 1200px) {
  .esp_pc {
    display: none !important;
  }
}

@media screen and (min-width: 1201px) {
  .esp_sp_lg {
    display: none !important;
  }
}

.wide_840 {
  max-width: 840px;
  margin: 0 auto;
}

.wide_950 {
  max-width: 950px;
  margin: 0 auto;
}

.wide_1100 {
  max-width: 1100px;
  margin: 0 auto;
}

.wide_1180 {
  max-width: 1180px;
  margin: 0 auto;
}

.wide_1200 {
  max-width: 1200px;
  margin: 0 auto;
}

.wide_1350 {
  max-width: 1350px;
  margin: 0 auto;
}

.wide_1455 {
  max-width: 1455px;
  margin: 0 auto;
}

.wide_1680 {
  max-width: 1680px;
  margin: 0 auto;
}

input[type=text], input[type=email], input[type=tel], textarea, select {
  width: 100%;
  padding: 8px;
  border-radius: 0;
  border: 1px solid rgba(62, 58, 57, 0.5);
  background: #fff;
  font-family: inherit;
  line-height: 1.7;
  font-size: 1rem;
}
@media screen and (max-width: 767px) {
  input[type=text], input[type=email], input[type=tel], textarea, select {
    font-size: 1rem;
  }
}

select {
  width: 33%;
  padding: 8px 28px 8px 8px;
  background: url(../images/icon_tri.svg) no-repeat center right 10px/10px 8px #fff;
  border: 1px solid rgba(62, 58, 57, 0.5);
  color: #3E3A39;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}
@media screen and (max-width: 767px) {
  select {
    width: 100%;
  }
}

textarea {
  height: 15em;
}

.mw_wp_form_confirm .contact_policy, .mw_wp_form_confirm .consent {
  display: none;
}

.img_only {
  display: block;
}
.img_only img {
  display: block;
  width: 100%;
  max-width: unset;
  height: auto;
}

.ttl_common_01,
.ttl_page_h1 {
  font-weight: 700;
  text-align: center;
  line-height: 1.6;
  margin-bottom: 3.5em;
}
.ttl_common_01 .ja,
.ttl_page_h1 .ja {
  color: #E33C1C;
  font-size: 3rem;
}
@media screen and (max-width: 767px) {
  .ttl_common_01 .ja,
  .ttl_page_h1 .ja {
    font-size: 3rem;
  }
}
@media screen and (max-width: 767px) {
  .ttl_common_01 .ja,
  .ttl_page_h1 .ja {
    font-size: 1.875rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .ttl_common_01 .ja,
  .ttl_page_h1 .ja {
    font-size: 1.875rem;
  }
}
.ttl_common_01 .en,
.ttl_page_h1 .en {
  color: #FAC2B7;
}
@media screen and (max-width: 767px) {
  .ttl_common_01 .en,
  .ttl_page_h1 .en {
    font-size: 1rem;
    margin-top: 0.5em;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .ttl_common_01 .en,
  .ttl_page_h1 .en {
    font-size: 1rem;
  }
}

.home #points .ttl_common_01:before,
.page.explanation #attempt .ttl_common_01:before {
  content: "";
  display: block;
  width: 102px;
  height: 141px;
  background: url(../images/icon_ttl_top_points.svg) no-repeat center/contain;
  margin: 0 auto 1em;
}
@media screen and (max-width: 767px) {
  .home #points .ttl_common_01:before,
  .page.explanation #attempt .ttl_common_01:before {
    width: 77px;
    height: 106px;
  }
}

.home #top_times .ttl_commom_01:before {
  content: "";
  display: block;
  width: 63px;
  height: 105px;
  background: url(../images/icon_ttl_top_times.svg) no-repeat center/contain;
  margin: 0 auto 1em;
}

.home #top_program .ttl_common_01:before {
  content: "";
  display: block;
  width: 186px;
  aspect-ratio: 186/135;
  background: url(../images/icon_ttl_top_program.svg) no-repeat center/contain;
  margin: 0 auto 1em;
}
@media screen and (max-width: 767px) {
  .home #top_program .ttl_common_01:before {
    width: 140px;
    margin-bottom: 0;
  }
}

.home #top_times .ttl_common_01:before {
  content: "";
  display: block;
  width: 105px;
  aspect-ratio: 1/1;
  background: url(../images/icon_top_times_ttl.svg) no-repeat center/contain;
  margin: 0 auto 1em;
}
@media screen and (max-width: 767px) {
  .home #top_times .ttl_common_01:before {
    width: 78px;
  }
}

.page.about #feature .ttl_common_01:before {
  content: "";
  display: block;
  width: 130px;
  height: 142px;
  background: url(../images/icon_about_feature.svg) no-repeat center/contain;
  margin: 0 auto 1em;
}
@media screen and (max-width: 767px) {
  .page.about #feature .ttl_common_01:before {
    width: 77px;
    height: 106px;
  }
}

.ttl_page_h1 {
  margin-bottom: 0;
}

.page.treatment .ttl_page_h1 .ja {
  line-height: 1.45;
}
.page.treatment .ttl_page_h1 .en {
  margin-top: 1.5em;
}

.ttl_worried {
  font-size: 2.125rem;
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
  color: #E33C1C;
  margin-bottom: 5rem;
}
@media screen and (max-width: 767px) {
  .ttl_worried {
    font-size: 2.125rem;
  }
}
.ttl_worried:before {
  content: "";
  display: block;
  width: 140px;
  height: 140px;
  background: url(../images/icon_tendency_01.svg) no-repeat center/contain;
  margin: 0 auto 1em;
}
@media screen and (max-width: 767px) {
  .ttl_worried {
    font-size: 1.5rem;
    margin-bottom: 3.75rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .ttl_worried {
    font-size: 1.5rem;
  }
}
@media screen and (max-width: 767px) {
  .ttl_worried:before {
    width: 82px;
    height: 82px;
  }
}

.ttl_border_tb {
  font-size: 2.25rem;
  font-weight: 700;
  text-align: center;
  line-height: 1.5;
  padding: 0.6em;
  color: #E33C1C;
  border-top: 1px solid #E33C1C;
  border-bottom: 1px solid #E33C1C;
  margin-bottom: 1.66em;
}
@media screen and (max-width: 767px) {
  .ttl_border_tb {
    font-size: 2.25rem;
  }
}
@media screen and (max-width: 767px) {
  .ttl_border_tb {
    font-size: 1.375rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .ttl_border_tb {
    font-size: 1.375rem;
  }
}
.ttl_border_tb.bold {
  border-width: 3px;
  padding: 1em;
}

.ttl_before_dot {
  font-size: 2.25rem;
  font-weight: 700;
  color: #E33C1C;
  margin-bottom: 1em;
}
@media screen and (max-width: 767px) {
  .ttl_before_dot {
    font-size: 2.25rem;
  }
}
.ttl_before_dot:before {
  content: "●";
  font-size: 0.5em;
  vertical-align: middle;
}
@media screen and (max-width: 767px) {
  .ttl_before_dot {
    font-size: 1.6875rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .ttl_before_dot {
    font-size: 1.6875rem;
  }
}

.btn_common_01, .page.program .btn_viewmore_exlarge, .btn_common_11 {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  max-width: 460px;
  height: 90px;
  border-radius: 50px;
  background-color: #E33C1C;
  border: 1px solid #E33C1C;
  color: #fff;
  font-size: 1.25rem;
  font-weight: 700;
  position: relative;
}
@media screen and (max-width: 767px) {
  .btn_common_01, .page.program .btn_viewmore_exlarge, .btn_common_11 {
    font-size: 1.25rem;
  }
}
.btn_common_01:after, .page.program .btn_viewmore_exlarge:after, .btn_common_11:after {
  content: "";
  display: block;
  width: 23px;
  height: 23px;
  background: url(../images/arrow_viewmore.svg) no-repeat center/contain;
  position: absolute;
  top: 50%;
  right: 1em;
  transform: translateY(-50%);
}
.btn_common_01:hover, .page.program .btn_viewmore_exlarge:hover, .btn_common_11:hover {
  background-color: #fff;
  color: #E33C1C;
}
@media screen and (max-width: 767px) {
  .btn_common_01, .page.program .btn_viewmore_exlarge, .btn_common_11 {
    height: 68px;
    font-size: 0.9375rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .btn_common_01, .page.program .btn_viewmore_exlarge, .btn_common_11 {
    font-size: 0.9375rem;
  }
}
@media screen and (max-width: 767px) {
  .btn_common_01:after, .page.program .btn_viewmore_exlarge:after, .btn_common_11:after {
    width: 18px;
    height: 18px;
  }
}

.btn_common_11 {
  background-color: #fff;
  border: 1px solid #E33C1C;
  color: #E33C1C;
}
.btn_common_11:after {
  background: url(../images/arrow_slide_next.svg) no-repeat center/contain;
}
.btn_common_11:hover {
  background-color: #E33C1C;
  color: #fff;
}

.btn_ft_contact {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  max-width: 460px;
  height: 74px;
  border-radius: 50px;
  font-weight: 700;
  position: relative;
  border: 1px solid transparent;
}
.btn_ft_contact:after {
  content: "";
  display: block;
  width: 23px;
  height: 23px;
  background: no-repeat center/contain;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 1em;
}
.btn_ft_contact.to_form {
  color: #E33C1C;
  border-color: #E33C1C;
  background-color: #fff;
}
.btn_ft_contact.to_form:after {
  background-image: url(../images/arrow_ft_contact_blue.svg);
}
.btn_ft_contact.to_form:hover {
  background-color: #E33C1C;
  color: #fff;
  border-color: #fff;
}
.btn_ft_contact.to_line {
  color: #fff;
  background-color: #4CAF50;
}
.btn_ft_contact.to_line:after {
  background-image: url(../images/arrow_ft_contact_line.svg);
}
.btn_ft_contact.to_line:hover {
  background-color: #fff;
  color: #4CAF50;
  border-color: #4CAF50;
}

.btn_viewmore, .btn_viewmore_small, .btn_viewmore_large {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 250px;
  height: 54px;
  border-radius: 50px;
  background-color: #E33C1C;
  border: 1px solid #E33C1C;
  color: #fff;
  font-size: 1rem;
  font-weight: 700;
  position: relative;
}
@media screen and (max-width: 767px) {
  .btn_viewmore, .btn_viewmore_small, .btn_viewmore_large {
    font-size: 1rem;
  }
}
.btn_viewmore:after, .btn_viewmore_small:after, .btn_viewmore_large:after {
  content: "";
  display: block;
  width: 25px;
  height: 25px;
  background: no-repeat center/contain;
  background-image: url(../images/arrow_viewmore.svg);
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 12px;
}
.btn_viewmore:hover, .btn_viewmore_small:hover, .btn_viewmore_large:hover {
  background-color: #fff;
  color: #E33C1C;
}
@media screen and (max-width: 767px) {
  .btn_viewmore, .btn_viewmore_small, .btn_viewmore_large {
    width: 187px;
    height: 40px;
    font-size: 0.75rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .btn_viewmore, .btn_viewmore_small, .btn_viewmore_large {
    font-size: 0.75rem;
  }
}
@media screen and (max-width: 767px) {
  .btn_viewmore:after, .btn_viewmore_small:after, .btn_viewmore_large:after {
    width: 18px;
    height: 18px;
  }
}

.btn_viewmore_large {
  width: 360px;
  height: 76px;
  font-size: 1.25rem;
}
@media screen and (max-width: 767px) {
  .btn_viewmore_large {
    font-size: 1.25rem;
  }
}
.btn_viewmore_large:after {
  width: 36px;
  height: 36px;
}

.btn_viewmore_large {
  width: 360px;
  height: 76px;
  font-size: 1.25rem;
}
@media screen and (max-width: 767px) {
  .btn_viewmore_large {
    font-size: 1.25rem;
  }
}
.btn_viewmore_large:after {
  width: 36px;
  height: 36px;
}

.btn_viewmore_small {
  width: 190px;
  height: 40px;
  font-size: 0.8125rem;
  background-color: #fff;
  border-color: transparent;
  color: #E33C1C;
}
@media screen and (max-width: 767px) {
  .btn_viewmore_small {
    font-size: 0.8125rem;
  }
}
.btn_viewmore_small:after {
  width: 19px;
  height: 19px;
}
.btn_viewmore_small.course01 {
  color: #00BEA8;
}
.btn_viewmore_small.course01:after {
  background-image: url(../images/arrow_viewmore_course01.svg);
}
.btn_viewmore_small.course01:hover {
  background-color: #00BEA8;
  border-color: #fff;
  color: #fff;
}
.btn_viewmore_small.course02 {
  color: #00B7BE;
}
.btn_viewmore_small.course02:after {
  background-image: url(../images/arrow_viewmore_course02.svg);
}
.btn_viewmore_small.course02:hover {
  background-color: #00B7BE;
  border-color: #fff;
  color: #fff;
}
.btn_viewmore_small.course03 {
  color: #0092BE;
}
.btn_viewmore_small.course03:after {
  background-image: url(../images/arrow_viewmore_course03.svg);
}
.btn_viewmore_small.course03:hover {
  background-color: #0092BE;
  border-color: #fff;
  color: #fff;
}
.btn_viewmore_small.course04 {
  color: #E33C1C;
}
.btn_viewmore_small.course04:after {
  background-image: url(../images/arrow_viewmore_course04.svg);
}
.btn_viewmore_small.course04:hover {
  background-color: #E33C1C;
  border-color: #fff;
  color: #fff;
}

button.your-submit,
button.your-confirm,
button.your-back {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  max-width: 600px;
  height: 100px;
  border-radius: 80px;
  border: 1px solid #E33C1C;
  margin: 0 auto;
  font-family: inherit;
  font-size: 1.375rem;
  font-weight: 700;
}
@media screen and (max-width: 767px) {
  button.your-submit,
  button.your-confirm,
  button.your-back {
    font-size: 1.375rem;
  }
}
@media screen and (max-width: 767px) {
  button.your-submit,
  button.your-confirm,
  button.your-back {
    height: 75px;
    font-size: 1rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  button.your-submit,
  button.your-confirm,
  button.your-back {
    font-size: 1rem;
  }
}

button.your-submit,
button.your-confirm {
  background-color: #E33C1C;
  color: #fff;
}

button.your-back {
  border-color: #D6D6D6;
  background-color: #D6D6D6;
  color: unset;
}

#hbm_btn {
  position: relative;
  z-index: 99;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  width: 120px;
  height: 120px;
  background-color: #E33C1C;
  border-radius: 50%;
  border: none;
}
#hbm_btn .bars {
  display: block;
  width: 45px;
  height: 30px;
  position: relative;
  margin: 10px 0 5px;
}
#hbm_btn .bars .bar {
  display: block;
  width: 100%;
  height: 2px;
  background: #fff;
  position: absolute;
  left: 0;
  top: calc(50% - 1px);
}
#hbm_btn .bars .bar:nth-of-type(1) {
  top: calc(0% - 1px);
}
#hbm_btn .bars .bar:nth-of-type(3) {
  top: calc(100% - 1px);
}
#hbm_btn .text {
  color: #fff;
  font-size: 1rem;
  font-family: "Poppins", sans-serif;
  font-weight: 700;
}
@media screen and (max-width: 767px) {
  #hbm_btn .text {
    font-size: 1rem;
  }
}
@media screen and (max-width: 767px) {
  #hbm_btn {
    width: 60px;
    height: 60px;
  }
  #hbm_btn .bars {
    width: 25px;
    height: 17px;
  }
  #hbm_btn .text {
    font-size: 0.625rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  #hbm_btn .text {
    font-size: 0.625rem;
  }
}

#hbm {
  /* この設定は後半で上書きされるため、最小限に */
  position: fixed;
  z-index: 9998;
}
#hbm .flex_box {
  display: block;
  height: 100%;
  width: 100%;
}
#hbm .flex_box .box_left {
  display: none;
}
#hbm .flex_box .box_left img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
@media screen and (max-width: 767px) {
  #hbm .flex_box .box_left {
    display: none;
  }
}
#hbm .flex_box .box_right {
  width: 100%;
  height: 100%;
  background: #E33C1C;
  padding: 180px 6%;
  overflow-y: auto;
  box-sizing: border-box;
}
@media screen and (max-width: 767px) {
  #hbm .flex_box .box_right {
    width: 100%;
    padding: 120px 6%;
  }
}
#hbm .hbm_main {
  margin-bottom: 4.5em;
}
#hbm .hbm_main li a {
  display: block;
  color: #fff;
  font-size: clamp(16px, 1.6vw, 32px);
  margin-bottom: 1em;
  background: url(../images/arrow_hbm.svg) no-repeat center right/20px;
  padding-right: 1em;
  line-height: 1.6;
}
#hbm .hbm_main li a .en {
  font-family: "Lato", sans-serif;
  font-size: 0.5em;
  margin-top: 0.5em;
}
#hbm .hbm_sub_01 {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  border-top: 1px solid #fff;
  padding: 2em 0 4em;
  gap: 1em 0;
}
#hbm .hbm_sub_01 li {
  border-right: 1px solid #fff;
}
#hbm .hbm_sub_01 li a {
  display: block;
  padding: 0 1em;
  color: #fff;
  line-height: 1;
}
#hbm .hbm_sub_01 li:first-child {
  border-left: 1px solid #fff;
}
#hbm .hbm_sub_02 {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 1em 2%;
}
@media screen and (max-width: 767px) {
  #hbm .hbm_sub_02 {
    flex-direction: column;
    gap: 2em;
  }
}
#hbm .hbm_sub_02 li {
  width: 40%;
  min-width: 256px;
}
@media screen and (max-width: 767px) {
  #hbm .hbm_sub_02 li {
    width: 100%;
  }
}
#hbm .hbm_sub_02 li a {
  font-weight: 700;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 1.2em;
  border-radius: 100px;
  background: #fff;
}
#hbm .hbm_sub_02 li a.contact {
  background: #fff url(../images/arrow_hbm_black.svg) no-repeat center right 1em/12px;
}
#hbm .hbm_sub_02 li a.line:before {
  content: "";
  display: block;
  width: 26px;
  height: 26px;
  background: url(../images/icon_line_color.svg) no-repeat center/contain;
  margin-right: 0.5em;
}

#hbm_btn.is-active {
  background-color: #fff;
}
#hbm_btn.is-active .bars .bar {
  background: #E33C1C;
}
#hbm_btn.is-active .bars .bar:nth-of-type(1) {
  top: calc(50% - 1px);
  transform: rotate(315deg);
}
#hbm_btn.is-active .bars .bar:nth-of-type(2) {
  display: none;
}
#hbm_btn.is-active .bars .bar:nth-of-type(3) {
  top: calc(50% - 1px);
  transform: rotate(225deg);
}
#hbm_btn.is-active .text {
  color: #E33C1C;
}

#hbm.is-active {
  opacity: 1;
  visibility: visible;
}

.list_dots li {
  padding-left: 1em;
  text-indent: -1em;
}
.list_dots li::before {
  content: "・";
}

.list_faq li:not(:last-child) {
  margin-bottom: 2em;
}
.list_faq li .question {
  cursor: pointer;
  box-shadow: 0 3px 6px #FFF0ED;
  border-radius: 100vw;
  font-size: 1.5rem;
  font-weight: 700;
  position: relative;
  background: url(../images/text_question.svg) no-repeat center left 60px/70px;
}
@media screen and (max-width: 767px) {
  .list_faq li .question {
    font-size: 1.5rem;
  }
}
@media screen and (min-width: 768px) {
  .list_faq li .question {
    padding: 1.6em 160px;
  }
}
@media screen and (max-width: 767px) {
  .list_faq li .question {
    background: url(../images/text_question.svg) no-repeat center left 33px/35px;
    font-size: 0.875rem;
    padding: 1.6em 45px 1.6em 80px;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .list_faq li .question {
    font-size: 0.875rem;
  }
}
.list_faq li .question:after {
  content: "";
  display: block;
  width: 30px;
  height: 30px;
  background: url(../images/arrow_accordion.svg) no-repeat center/contain;
  position: absolute;
  top: calc(50% - 15px);
  right: 38px;
  transition: 0.3s;
}
@media screen and (max-width: 767px) {
  .list_faq li .question:after {
    width: 22px;
    height: 22px;
    top: calc(50% - 11px);
    right: 19px;
  }
}
.list_faq li .question:hover {
  color: #E33C1C;
}
.list_faq li .question.is-open:after {
  transform: rotate(180deg);
}
.list_faq li .answer {
  padding: 2.5em 160px 1.5em;
  background: url(../images/text_answer.svg) no-repeat top 35px left 62px/68px;
  font-size: 1.125rem;
}
@media screen and (max-width: 767px) {
  .list_faq li .answer {
    font-size: 1.125rem;
  }
}
@media screen and (max-width: 767px) {
  .list_faq li .answer {
    font-size: 0.875rem;
    padding: 2.5em 27px 1.5em 80px;
    background: url(../images/text_answer.svg) no-repeat top 35px left 34px/34px;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .list_faq li .answer {
    font-size: 0.875rem;
  }
}

.list_points {
  display: flex;
  gap: 4%;
  padding-top: 42px;
  margin-bottom: 3.75rem;
}
@media screen and (max-width: 767px) {
  .list_points {
    margin-left: -9vw;
    margin-right: -9vw;
    padding-top: 0px;
    padding-left: 9vw;
    padding-right: 9vw;
  }
}
@media screen and (max-width: 767px) and (min-width: 768px) {
  .list_points {
    padding-left: min(4.1vw, 80px);
    padding-right: min(4.1vw, 80px);
  }
}
@media screen and (max-width: 767px) {
  .list_points .slick-list {
    overflow-x: visible;
    margin-left: -9vw;
    margin-right: -9vw;
    padding-left: 9vw;
  }
  .list_points .slick-arrow {
    display: block;
    width: 38px;
    height: 38px;
    font-size: 0rem;
    border-radius: 50%;
    border: none;
    position: absolute;
    z-index: 5;
    top: calc(50% - 20px);
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .list_points .slick-arrow {
    font-size: 0rem;
  }
}
@media screen and (max-width: 767px) {
  .list_points .slick-arrow.slick-prev {
    background: url(../images/arrow_slide_prev_white.svg) no-repeat center/contain;
    left: 4.5vw;
  }
  .list_points .slick-arrow.slick-next {
    background: url(../images/arrow_slide_next_white.svg) no-repeat center/contain;
    right: 4.5vw;
  }
  .list_points .slick-arrow.slick-disabled {
    display: none !important;
  }
}
@media screen and (min-width: 768px) {
  .list_points {
    padding-top: 42px;
    margin-bottom: 5rem;
  }
}
.list_points li {
  width: 100%;
  position: relative;
}
@media screen and (max-width: 767px) {
  .list_points li {
    width: 240px;
    margin-top: 26px;
    margin-right: 35px;
  }
}
.list_points li .num {
  width: 36%;
  position: absolute;
  z-index: 2;
  top: 0;
  left: 50%;
  transform: translate(-50%, -50%);
}
.list_points li .image {
  position: relative;
  overflow: hidden;
  border-radius: 50%;
  box-shadow: 10px 10px 0 #FFF0ED;
  margin-bottom: 1.5em;
}
.list_points li .image:after {
  content: "";
  display: block;
  width: 100%;
  padding-top: 100%;
}
.list_points li .image img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  position: absolute;
  top: 0;
  left: 0;
}
.list_points li p {
  font-size: 1.125rem;
  font-weight: 700;
}
@media screen and (max-width: 767px) {
  .list_points li p {
    font-size: 1.125rem;
  }
}

.list_course {
  display: flex;
  flex-wrap: wrap;
  gap: 80px 4%;
}
@media screen and (max-width: 767px) {
  .list_course {
    gap: 60px;
  }
}
.list_course > li {
  width: 48%;
  color: #fff;
}
@media screen and (max-width: 767px) {
  .list_course > li {
    width: 100%;
  }
}
.list_course > li .label {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 315px;
  height: 63px;
  border-radius: 50px;
  background-color: #E33C1C;
  margin-bottom: 2.2em;
  color: #fff;
  font-size: 1.25rem;
  font-weight: 700;
  position: relative;
}
@media screen and (max-width: 767px) {
  .list_course > li .label {
    font-size: 1.25rem;
  }
}
.list_course > li .label:after {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 22px 28px 0 28px;
  border-color: #E33C1C transparent transparent transparent;
  position: absolute;
  top: calc(100% - 1px);
  left: 50%;
  transform: translateX(-50%);
}
@media screen and (max-width: 767px) {
  .list_course > li .label {
    width: 15em;
    height: 3.15em;
    font-size: 0.9375rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .list_course > li .label {
    font-size: 0.9375rem;
  }
}
@media screen and (max-width: 767px) {
  .list_course > li .label:after {
    border-width: 16px 21px 0 21px;
  }
}
.list_course > li .content_box {
  display: flex;
  background: #E33C1C;
}
@media screen and (max-width: 767px) {
  .list_course > li .content_box {
    flex-direction: column;
  }
}
.list_course > li .content_box .image {
  width: 40%;
  flex-shrink: 0;
}
@media screen and (max-width: 767px) {
  .list_course > li .content_box .image {
    width: 100%;
    position: relative;
  }
  .list_course > li .content_box .image:after {
    content: "";
    display: block;
    width: 100%;
    padding-top: 50%;
  }
  .list_course > li .content_box .image img {
    display: block;
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
    position: absolute;
    top: 0;
    left: 0;
  }
}
.list_course > li .content_box .image img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.list_course > li .content_box .texts {
  width: 60%;
  padding: 2em;
  font-size: 1rem;
  font-weight: 700;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
@media screen and (max-width: 767px) {
  .list_course > li .content_box .texts {
    font-size: 1rem;
  }
}
.list_course > li .content_box .texts .list_dots {
  margin-bottom: 1.5em;
}
.list_course > li .content_box .texts .list_dots li:not(:last-child) {
  margin-bottom: 0.5em;
}
@media screen and (max-width: 767px) {
  .list_course > li .content_box .texts {
    width: 100%;
    font-size: 0.875rem;
    padding: 1.5em;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .list_course > li .content_box .texts {
    font-size: 0.875rem;
  }
}
.list_course > li.course01 .label {
  background-color: #00BEA8;
}
.list_course > li.course01 .label:after {
  border-color: #00BEA8 transparent transparent transparent;
}
.list_course > li.course01 .content_box {
  background: #00BEA8;
}
.list_course > li.course02 .label {
  background-color: #00B7BE;
}
.list_course > li.course02 .label:after {
  border-color: #00B7BE transparent transparent transparent;
}
.list_course > li.course02 .content_box {
  background: #00B7BE;
}
.list_course > li.course03 .label {
  background-color: #0092BE;
}
.list_course > li.course03 .label:after {
  border-color: #0092BE transparent transparent transparent;
}
.list_course > li.course03 .content_box {
  background: #0092BE;
}

.list_check {
  font-size: 1.375rem;
  font-weight: 700;
  border-top: 1px dashed #E33C1C;
  border-bottom: 1px dashed #E33C1C;
  padding: 2.5em 0 2em;
}
@media screen and (max-width: 767px) {
  .list_check {
    font-size: 1.375rem;
  }
}
@media screen and (max-width: 767px) {
  .list_check {
    font-size: 1.0625rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .list_check {
    font-size: 1.0625rem;
  }
}
.list_check li {
  padding-left: 54px;
  margin-bottom: 1.5em;
  position: relative;
}
@media screen and (max-width: 767px) {
  .list_check li {
    padding-left: 40px;
  }
}
.list_check li:before {
  content: "";
  display: block;
  width: 40px;
  height: 40px;
  background: url(../images/icon_check_red.svg) no-repeat center/contain;
  position: absolute;
  top: -2px;
  left: 0;
}
@media screen and (max-width: 767px) {
  .list_check li:before {
    width: 30px;
    height: 30px;
  }
}
.list_check.list_warries {
  font-size: 0.9375rem;
}
@media screen and (max-width: 767px) {
  .list_check.list_warries {
    font-size: 0.9375rem;
  }
}
@media screen and (max-width: 767px) {
  .list_check.list_warries li:last-child {
    margin-bottom: 0;
  }
}
@media screen and (min-width: 768px) {
  .list_check.list_warries {
    font-size: 1.25rem;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1.5em;
  }
}
@media screen and (min-width: 768px) and (max-width: 767px) {
  .list_check.list_warries {
    font-size: 1.25rem;
  }
}
@media screen and (min-width: 768px) {
  .list_check.list_warries li {
    width: calc((100% - 1.5em) / 2);
    margin-bottom: 0;
  }
  .list_check.list_warries li:nth-child(1) {
    order: 1;
  }
  .list_check.list_warries li:nth-child(2) {
    order: 3;
  }
  .list_check.list_warries li:nth-child(3) {
    order: 5;
  }
  .list_check.list_warries li:nth-child(4) {
    order: 7;
  }
  .list_check.list_warries li:nth-child(5) {
    order: 2;
  }
  .list_check.list_warries li:nth-child(6) {
    order: 4;
  }
  .list_check.list_warries li:nth-child(7) {
    order: 6;
  }
}

.list_check_02 > li {
  font-size: 1.125rem;
  position: relative;
  padding-left: 52px;
  position: relative;
}
.list_check_02 > li:not(:last-child) {
  margin-bottom: 1.5em;
}
@media screen and (max-width: 767px) {
  .list_check_02 > li {
    font-size: 1.125rem;
  }
}
.list_check_02 > li:before {
  content: "";
  display: block;
  width: 35px;
  height: 35px;
  background: url(../images/icon_check_02.svg) no-repeat center/contain;
  position: absolute;
  top: 0;
  left: -3px;
}
@media screen and (max-width: 767px) {
  .list_check_02 > li {
    font-size: 0.875rem;
    padding-left: 30px;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .list_check_02 > li {
    font-size: 0.875rem;
  }
}
@media screen and (max-width: 767px) {
  .list_check_02 > li:before {
    width: 25px;
    height: 25px;
  }
}

@media screen and (max-width: 767px) {
  .list_feature {
    padding-top: 1px;
  }
}
@media screen and (min-width: 768px) {
  .list_feature li {
    display: grid;
    grid-template-columns: 48% 4% 48%;
    grid-template-rows: max-content;
  }
  .list_feature li:nth-child(odd) .image_box {
    grid-column: 1/3;
    grid-row: 1/2;
  }
  .list_feature li:nth-child(odd) .content_box {
    grid-column: 2/4;
    grid-row: 1/2;
  }
  .list_feature li:nth-child(even) .image_box {
    grid-column: 2/4;
    grid-row: 1/2;
  }
  .list_feature li:nth-child(even) .content_box {
    grid-column: 1/3;
    grid-row: 1/2;
  }
}
.list_feature li:not(:last-child) {
  margin-bottom: 5rem;
}
.list_feature li .image_box {
  align-self: flex-start;
  position: relative;
  overflow: hidden;
}
.list_feature li .image_box:before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background-color: #fff;
  overflow: hidden;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
}
.list_feature li .image_box:after {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background-color: #FFF0ED;
  overflow: hidden;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
}
.list_feature li .image_box.ignition:before {
  animation: fade_out 1s 0.5s forwards;
}
.list_feature li .image_box.ignition:after {
  animation: cover_slide_right 0.5s ease-out forwards;
}
.list_feature li .image {
  position: relative;
}
.list_feature li .image:after {
  content: "";
  display: block;
  width: 100%;
  padding-top: 485px;
}
.list_feature li .image img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  position: absolute;
  top: 0;
  left: 0;
}
@media screen and (max-width: 767px) {
  .list_feature li .image {
    position: relative;
  }
  .list_feature li .image:after {
    content: "";
    display: block;
    width: 100%;
    padding-top: 60%;
  }
  .list_feature li .image img {
    display: block;
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
    position: absolute;
    top: 0;
    left: 0;
  }
}
.list_feature li .ttl {
  margin-bottom: 1.5em;
}
@media screen and (max-width: 767px) {
  .list_feature li .ttl {
    text-align: center;
  }
}
.list_feature li .ttl .en {
  font-size: 1.375rem;
  font-weight: 700;
  color: #FAC2B7;
  margin-bottom: 1em;
}
@media screen and (max-width: 767px) {
  .list_feature li .ttl .en {
    font-size: 1.375rem;
  }
}
@media screen and (max-width: 767px) {
  .list_feature li .ttl .en {
    font-size: 1rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .list_feature li .ttl .en {
    font-size: 1rem;
  }
}
.list_feature li .ttl .ja {
  font-size: 2.25rem;
  color: #E33C1C;
  line-height: 1.4;
}
@media screen and (max-width: 767px) {
  .list_feature li .ttl .ja {
    font-size: 2.25rem;
  }
}
@media screen and (max-width: 767px) {
  .list_feature li .ttl .ja {
    font-size: 1.6875rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .list_feature li .ttl .ja {
    font-size: 1.6875rem;
  }
}
.list_feature li .texts {
  font-size: 1.125rem;
  line-height: 2;
}
@media screen and (max-width: 767px) {
  .list_feature li .texts {
    font-size: 1.125rem;
  }
}
@media screen and (max-width: 767px) {
  .list_feature li .texts {
    font-size: 0.875rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .list_feature li .texts {
    font-size: 0.875rem;
  }
}
.list_feature li .content_box {
  margin-top: 10%;
  padding: 10%;
  background: #fff;
  position: relative;
  z-index: 3;
  opacity: 0;
  transform: translateY(50px);
}
@media screen and (max-width: 767px) {
  .list_feature li .content_box {
    padding: 15% 10%;
  }
}
.list_feature li .content_box .num {
  width: 127px;
  height: 127px;
  position: absolute;
  right: 60px;
  top: 0;
  transform: translateY(-50%);
}
@media screen and (max-width: 767px) {
  .list_feature li .content_box .num {
    width: 95px;
    height: 95px;
    right: 50%;
    transform: translate(50%, -50%);
  }
}
.list_feature li .content_box.ignition {
  animation: fade_in 1s forwards;
}
.list_feature li:nth-child(even) .content_box .num {
  right: unset;
  left: 60px;
}

@media screen and (min-width: 768px) {
  .list_lecturer {
    display: flex;
    flex-wrap: wrap;
    gap: 5rem 5%;
  }
  .list_lecturer li {
    width: 30%;
  }
}
.list_lecturer .box .image {
  position: relative;
  overflow: hidden;
  margin-bottom: 1.5em;
}
.list_lecturer .box .image:after {
  content: "";
  display: block;
  width: 100%;
  padding-top: 70%;
}
.list_lecturer .box .image img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  position: absolute;
  top: 0;
  left: 0;
}
.list_lecturer .box .detail .name {
  color: #E33C1C;
  font-size: 2.125rem;
  font-weight: 700;
  line-height: 1.4;
}
@media screen and (max-width: 767px) {
  .list_lecturer .box .detail .name {
    font-size: 2.125rem;
  }
}
@media screen and (max-width: 767px) {
  .list_lecturer .box .detail .name {
    font-size: 1.5625rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .list_lecturer .box .detail .name {
    font-size: 1.5625rem;
  }
}
.list_lecturer .box .detail .licence {
  font-size: 1.125rem;
  margin-bottom: 2em;
}
@media screen and (max-width: 767px) {
  .list_lecturer .box .detail .licence {
    font-size: 1.125rem;
  }
}
@media screen and (max-width: 767px) {
  .list_lecturer .box .detail .licence {
    font-size: 0.875rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .list_lecturer .box .detail .licence {
    font-size: 0.875rem;
  }
}
.list_lecturer .box .detail .item:not(:last-of-type) {
  margin-bottom: 2em;
}
.list_lecturer .box .detail .item .head {
  font-size: 1.25rem;
  font-weight: 700;
  color: #EF836E;
  display: flex;
  align-items: center;
  margin-bottom: 0.5em;
}
@media screen and (max-width: 767px) {
  .list_lecturer .box .detail .item .head {
    font-size: 1.25rem;
  }
}
.list_lecturer .box .detail .item .head:after {
  content: "";
  display: inline-block;
  width: 2.8em;
  height: 1px;
  background-color: #EF836E;
  margin-left: 1em;
  vertical-align: middle;
}
@media screen and (max-width: 767px) {
  .list_lecturer .box .detail .item .head {
    font-size: 1rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .list_lecturer .box .detail .item .head {
    font-size: 1rem;
  }
}
@media screen and (max-width: 767px) {
  .list_lecturer .slick-list {
    margin-left: -9vw;
    margin-right: -9vw;
  }
  .list_lecturer .slick-arrow {
    display: block;
    width: 38px;
    height: 53px;
    font-size: 0rem;
    border: none;
    position: absolute;
    z-index: 5;
    top: 5%;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .list_lecturer .slick-arrow {
    font-size: 0rem;
  }
}
@media screen and (max-width: 767px) {
  .list_lecturer .slick-arrow.slick-prev {
    background: url(../images/arrow_slide_prev_w_text.svg) no-repeat center/contain;
    left: -19px;
  }
  .list_lecturer .slick-arrow.slick-next {
    background: url(../images/arrow_slide_next_w_text.svg) no-repeat center/contain;
    right: -19px;
  }
  .list_lecturer .slick-arrow.slick-disabled {
    display: none !important;
  }
  .list_lecturer li {
    padding: 0 9vw;
  }
}

.list_tag_label {
  font-size: 0;
}
.list_tag_label li {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  color: #fff;
}
.list_tag_label li:not(:last-child) {
  margin-right: 1rem;
}
.list_tag_label li:before {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 15px 15px 15px 0;
  border-color: transparent #F5FF00 transparent transparent;
}
@media screen and (max-width: 767px) {
  .list_tag_label li:before {
    border-width: 14px 15px 14px 0;
  }
}
.list_tag_label li span {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 2px 10px;
  background-color: #F5FF00;
  font-size: 0.875rem;
  color: #3E3A39;
}
@media screen and (max-width: 767px) {
  .list_tag_label li span {
    font-size: 0.875rem;
  }
}
@media screen and (max-width: 767px) {
  .list_tag_label li span {
    font-size: 0.75rem;
    line-height: 1;
    padding: 8px 10px;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .list_tag_label li span {
    font-size: 0.75rem;
  }
}

.list_news {
  font-size: 1.125rem;
  font-weight: 700;
}
@media screen and (max-width: 767px) {
  .list_news {
    font-size: 1.125rem;
  }
}
.list_news li {
  padding: 1.3em;
  border-bottom: 1px solid #D6D6D6;
}
.list_news a {
  display: flex;
  align-items: center;
}
.list_news a .date {
  width: 160px;
  flex-shrink: 0;
}
.list_news a .ttl {
  overflow: hidden;
  display: -webkit-box;
  text-overflow: ellipsis;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
}
@media screen and (max-width: 767px) {
  .list_news {
    font-size: 0.875rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .list_news {
    font-size: 0.875rem;
  }
}
@media screen and (max-width: 767px) {
  .list_news .date {
    width: unset;
  }
}
.list_news:hover {
  color: #E33C1C;
}

.list_category {
  font-size: 0;
}

.cat_label_01 {
  display: inline-block;
  width: -moz-fit-content;
  width: fit-content;
  padding: 3px 1em;
  border: 1px solid #E33C1C;
  background-color: #fff;
  font-size: 1rem;
  color: #E33C1C;
  text-align: center;
  border-radius: 50px;
}
@media screen and (max-width: 767px) {
  .cat_label_01 {
    font-size: 1rem;
  }
}
.cat_label_01:not(:first-child) {
  margin-left: 1em;
}
@media screen and (max-width: 767px) {
  .cat_label_01 {
    font-size: 0.75rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .cat_label_01 {
    font-size: 0.75rem;
  }
}

.links_feature {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 35px;
  padding-top: 5rem;
}
@media screen and (max-width: 767px) {
  .links_feature {
    flex-direction: column;
    gap: 25px;
    padding-top: 3.75rem;
  }
}
@media screen and (max-width: 767px) {
  .links_feature li {
    width: 100%;
  }
}
.links_feature li a {
  color: #E33C1C;
  font-size: 1.25rem;
  font-weight: 700;
  width: 500px;
  height: 75px;
  border-radius: 50px;
  border: 1px solid #E33C1C;
  display: flex;
  justify-content: center;
  align-items: center;
  background: url(../images/arrow_viewmore.svg) no-repeat center right 1em/36px;
}
@media screen and (max-width: 767px) {
  .links_feature li a {
    font-size: 1.25rem;
  }
}
.links_feature li a:hover {
  background-color: #E33C1C;
  color: #fff;
}
@media screen and (max-width: 767px) {
  .links_feature li a {
    font-size: 0.875rem;
    width: 100%;
    height: 56px;
    background: url(../images/arrow_viewmore.svg) no-repeat center right 1em/27px;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .links_feature li a {
    font-size: 0.875rem;
  }
}

.line_orange {
  background: linear-gradient(0deg, #ffbb00 0%, #ffbb00 5px, transparent 5px, transparent 100%);
}

.common_about {
  background-color: #E33C1C;
  background-image: url(../images/bg_left_common_about.png), url(../images/bg_right_common_about.png.png);
  background-repeat: no-repeat;
  background-position: top left, top right;
  background-size: 22%;
  border-radius: 30px;
  color: #fff;
}
@media screen and (max-width: 767px) {
  .common_about {
    background-image: url(../images/bg_common_about_sp.png);
    background-position: top center;
    background-size: 90%;
  }
}
.common_about .content {
  padding: 10em 0 12em;
  position: relative;
}
@media screen and (max-width: 767px) {
  .common_about .content {
    padding: 7.5em 0 9em;
  }
}
.common_about .content:before {
  content: "";
  display: block;
  width: 850px;
  height: 168px;
  background: url(../images/icon_common_about.svg) no-repeat center/contain;
  position: absolute;
  top: 0;
  left: 50%;
  transform: translate(-50%, -50%);
}
@media screen and (max-width: 767px) {
  .common_about .content:before {
    width: 100%;
    height: 105px;
  }
}
.common_about .ttl_common_about {
  font-weight: 700;
  line-height: 2;
  margin-bottom: 3em;
  border-bottom: 1px dashed #fff;
  max-width: 826px;
  margin-left: auto;
  margin-right: auto;
  padding-bottom: 2em;
}
.common_about .ttl_common_about .ja {
  font-size: 2.5rem;
  margin-bottom: 0.25em;
}
@media screen and (max-width: 767px) {
  .common_about .ttl_common_about .ja {
    font-size: 2.5rem;
  }
}
@media screen and (max-width: 767px) {
  .common_about .ttl_common_about .ja {
    font-size: 1.5rem;
    line-height: 1.5;
    padding-bottom: 0.5em;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .common_about .ttl_common_about .ja {
    font-size: 1.5rem;
  }
}
.common_about .ttl_common_about .ja .small {
  display: block;
  font-size: 1.625rem;
}
@media screen and (max-width: 767px) {
  .common_about .ttl_common_about .ja .small {
    font-size: 1.625rem;
  }
}
@media screen and (max-width: 767px) {
  .common_about .ttl_common_about .ja .small {
    font-size: 1.0625rem;
    margin-top: 1em;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .common_about .ttl_common_about .ja .small {
    font-size: 1.0625rem;
  }
}
.common_about .texts {
  font-weight: 700;
  line-height: 2;
}
.common_about .texts p:not(:last-of-type) {
  margin-bottom: 2em;
}
@media screen and (min-width: 768px) {
  .common_about .texts {
    font-size: 1.125rem;
  }
}
@media screen and (min-width: 768px) and (max-width: 767px) {
  .common_about .texts {
    font-size: 1.125rem;
  }
}

#bnr_trial {
  padding-left: 9vw;
  padding-right: 9vw;
  background: url(../images/bg_bnr_trial.jpg) no-repeat center/cover;
  position: relative;
  margin: 0 min((50vw - 50%) * -1, 0px);
}
@media screen and (min-width: 768px) {
  #bnr_trial {
    padding-left: min(4.1vw, 80px);
    padding-right: min(4.1vw, 80px);
  }
}
@media screen and (max-width: 767px) {
  #bnr_trial {
    background: url(../images/bg_bnr_trial_sp.jpg) no-repeat center/cover;
  }
}
#bnr_trial:before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background-color: rgba(227, 60, 28, 0.32);
  position: absolute;
  top: 0;
  left: 0;
}
#bnr_trial .container {
  position: relative;
  color: #fff;
  font-weight: 700;
  padding: 12.5rem 0;
}
@media screen and (max-width: 767px) {
  #bnr_trial .container {
    padding: 5.625rem 0;
  }
}
#bnr_trial .container h2 {
  font-size: 3rem;
  margin-bottom: 0.75em;
}
@media screen and (max-width: 767px) {
  #bnr_trial .container h2 {
    font-size: 3rem;
  }
}
@media screen and (max-width: 767px) {
  #bnr_trial .container h2 {
    font-size: 2.25rem;
    line-height: 1.5;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  #bnr_trial .container h2 {
    font-size: 2.25rem;
  }
}
#bnr_trial .container p {
  font-size: 1.125rem;
  line-height: 2;
  margin-bottom: 3em;
}
@media screen and (max-width: 767px) {
  #bnr_trial .container p {
    font-size: 1.125rem;
  }
}
@media screen and (max-width: 767px) {
  #bnr_trial .container p {
    font-size: 0.875rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  #bnr_trial .container p {
    font-size: 0.875rem;
  }
}
#bnr_trial .container .btn_ft_contact {
  border: none !important;
  margin: 0 auto;
}
@media screen and (min-width: 768px) {
  #bnr_trial .container .btn_ft_contact {
    font-size: 1.25rem;
  }
}
@media screen and (min-width: 768px) and (max-width: 767px) {
  #bnr_trial .container .btn_ft_contact {
    font-size: 1.25rem;
  }
}

#follow-banner {
  position: fixed;
  top: 50%;
  right: 0;
  transform: translateX(100%);
  transition: transform 0.5s;
}
#follow-banner.is-follow {
  transform: translateX(0);
}
#follow-banner li {
  border-radius: 20px 0 0 20px;
  transition: width 0.3s;
  width: 130px;
  margin-left: auto;
}
#follow-banner li:not(:last-child) {
  margin-bottom: 20px;
}
#follow-banner li:hover {
  width: 160px;
}
#follow-banner li a {
  border-radius: inherit;
  height: 160px;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  font-size: 0.9375rem;
  line-height: 1.5;
  font-weight: 700;
  color: #fff;
  text-align: center;
}
@media screen and (max-width: 767px) {
  #follow-banner li a {
    font-size: 0.9375rem;
  }
}
#follow-banner li a:before {
  content: "";
  display: block;
  width: 40px;
  height: 40px;
  background: no-repeat center/contain;
  margin-bottom: 10px;
}
#follow-banner li a:after {
  content: "";
  width: 12px;
  height: 10px;
  background: url(../images/arrow_follow_banner.svg) no-repeat center/contain;
  margin-top: 10px;
}
#follow-banner li.contact {
  background-color: #E33C1C;
}
#follow-banner li.contact a:before {
  background-image: url(../images/icon_phone_white.svg);
}
#follow-banner li.line {
  background-color: #4CAF50;
}
#follow-banner li.line a:before {
  background-image: url(../images/icon_line_white.svg);
}
@media screen and (max-width: 767px) {
  #follow-banner {
    width: 100%;
    top: unset;
    bottom: 0;
    transform: translate(0, 100%);
    display: flex;
  }
  #follow-banner li {
    width: 50%;
    border-radius: 0;
  }
  #follow-banner li:not(:last-child) {
    margin-bottom: 0px;
  }
  #follow-banner li a {
    padding: 15px 0;
    flex-direction: row;
    gap: 0.5em;
    height: auto;
    font-size: 0.75rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  #follow-banner li a {
    font-size: 0.75rem;
  }
}
@media screen and (max-width: 767px) {
  #follow-banner li a:before {
    margin-bottom: 0;
    width: 30px;
    height: 30px;
  }
  #follow-banner li a:after {
    margin-top: 0;
  }
}

@keyframes hide {
  100% {
    opacity: 0;
    visibility: hidden;
    z-index: 99999999;
  }
}
@keyframes l_view {
  100% {
    opacity: 1;
  }
}
#loading {
  position: fixed;
  z-index: 99999999;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: #fff;
}
#loading.end {
  animation: hide 0.8s forwards;
}
#loading .content {
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
}
#loading .content .logo {
  width: 278px;
  opacity: 0;
}
#loading .content.ignition .logo {
  animation: l_view 1s 0.5s forwards;
}

#breadcrumb {
  font-size: 0.875rem;
  text-align: right;
  color: #3E3A39;
  padding-bottom: 2em;
}
@media screen and (max-width: 767px) {
  #breadcrumb {
    font-size: 0.875rem;
  }
}
@media screen and (max-width: 767px) {
  #breadcrumb {
    padding-bottom: 4em;
    font-size: 0.625rem;
    overflow: hidden;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  #breadcrumb {
    font-size: 0.625rem;
  }
}
@media screen and (max-width: 767px) {
  #breadcrumb span[property=name] {
    display: inline-block;
    padding: 0;
    margin-top: -3px;
    vertical-align: middle;
    max-width: 120px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
}

.single span[property=name].current-item {
  width: 10em;
  overflow: hidden;
  display: inline-block;
  white-space: nowrap;
  text-overflow: ellipsis;
  vertical-align: bottom;
}

#sidebar .flex {
  display: flex;
  gap: 6%;
}
@media screen and (max-width: 767px) {
  #sidebar .flex {
    display: block;
  }
}
#sidebar .flex .box {
  width: 47%;
}
@media screen and (max-width: 767px) {
  #sidebar .flex .box {
    width: 100%;
  }
  #sidebar .flex .box:first-of-type {
    margin-bottom: 60px;
  }
}
#sidebar .flex .box .head {
  line-height: 1.4;
  margin-bottom: 2em;
}
#sidebar .flex .box .head .en {
  font-size: 1.875rem;
  font-weight: 700;
  color: #E33C1C;
}
@media screen and (max-width: 767px) {
  #sidebar .flex .box .head .en {
    font-size: 1.875rem;
  }
}
#sidebar .flex .box .head .ja {
  font-size: 1.0625rem;
  font-weight: 700;
  color: #FFF0ED;
}
@media screen and (max-width: 767px) {
  #sidebar .flex .box .head .ja {
    font-size: 1.0625rem;
  }
}
#sidebar .flex ul li:not(:last-child) {
  margin-bottom: 1em;
}
#sidebar .flex ul li a {
  display: block;
  background: #FFF0ED url(../images/arrow_slidebar_item.svg) no-repeat center right 1.6em/25px;
  color: #E33C1C;
  font-size: 1.125rem;
  font-weight: 700;
  padding: 1em 3.2em 1em 1.6em;
}
@media screen and (max-width: 767px) {
  #sidebar .flex ul li a {
    font-size: 1.125rem;
  }
}
#sidebar .flex ul li a:hover {
  color: #fff;
  background: #E33C1C url(../images/arrow_slidebar_item.svg) no-repeat center right 1.6em/25px;
}

.navigation.pagination {
  padding-top: 5rem;
}
@media screen and (max-width: 767px) {
  .navigation.pagination {
    padding-top: 3.75rem;
  }
}
.navigation.pagination .nav-links {
  font-size: 0;
}
.navigation.pagination .nav-links .page-numbers {
  margin-right: 1.5em;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: #FAC2B7;
  font-family: "Poppins", sans-serif;
  font-weight: 700;
  font-size: 1rem;
  color: #fff;
}
@media screen and (max-width: 767px) {
  .navigation.pagination .nav-links .page-numbers {
    font-size: 1rem;
  }
}
.navigation.pagination .nav-links .page-numbers.current {
  background: #E33C1C;
}
@media screen and (max-width: 767px) {
  .navigation.pagination .nav-links .page-numbers {
    width: 33px;
    height: 33px;
    font-size: 0.75rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .navigation.pagination .nav-links .page-numbers {
    font-size: 0.75rem;
  }
}
.navigation.pagination .nav-links .prev,
.navigation.pagination .nav-links .next,
.navigation.pagination .nav-links .scrreen-reader-text {
  display: none !important;
}

.single_pagination {
  border-top: 1px solid #E33C1C;
  border-bottom: 1px solid #E33C1C;
  padding: 2em 0;
  display: flex;
  align-items: center;
  gap: 5%;
}
@media screen and (max-width: 767px) {
  .single_pagination {
    flex-direction: column;
  }
}
.single_pagination li {
  width: 40%;
}
@media screen and (max-width: 767px) {
  .single_pagination li {
    width: 100%;
  }
}
.single_pagination li a {
  color: #E33C1C;
  width: -moz-fit-content;
  width: fit-content;
}
.single_pagination li.prev a {
  padding-left: 2em;
  background: url(../images/arrow_slidebar_item_prev.svg) no-repeat center left/25px;
  overflow: hidden;
  display: -webkit-box;
  text-overflow: ellipsis;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
}
.single_pagination li.next a {
  margin-left: auto;
  padding-right: 2em;
  background: url(../images/arrow_slidebar_item.svg) no-repeat center right/25px;
  overflow: hidden;
  display: -webkit-box;
  text-overflow: ellipsis;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
}
.single_pagination li.archive {
  width: 10%;
}
.single_pagination li.archive a {
  display: block;
  width: -moz-fit-content;
  width: fit-content;
  margin: 0 auto;
  padding-top: 2em;
  background: url(../images/arrow_slidebar_item_top.svg) no-repeat center top/25px;
}

.sp_archive {
  margin-top: 2em;
}
.sp_archive a {
  display: block;
  width: -moz-fit-content;
  width: fit-content;
  margin: 0 auto;
  padding-top: 2em;
  background: url(../images/arrow_slidebar_item_top.svg) no-repeat center top/25px;
  color: #E33C1C;
}

#header {
  position: fixed;
  z-index: 9;
  top: 0;
  width: 100%;
  padding-left: 9vw;
  padding-right: 9vw;
}
@media screen and (min-width: 768px) {
  #header {
    padding-left: min(4.1vw, 80px);
    padding-right: min(4.1vw, 80px);
  }
}
@media screen and (max-width: 767px) {
  #header {
    padding-left: 4.5vw;
    padding-right: 4.5vw;
  }
}
#header .header-container {
  margin-top: 20px;
  position: relative;
}
@media screen and (max-width: 767px) {
  #header .header-container {
    margin-top: 20px;
  }
}
#header .header-container .header_logo {
  width: 300px;
  position: absolute;
  top: 0;
  left: 0;
  transition: 1s;
  transform-origin: top left;
}
@media screen and (max-width: 767px) {
  #header .header-container .header_logo {
    width: 154px;
  }
}
#header .header-container .header_content {
  transition: 1s;
  transform-origin: top right;
  display: flex;
  align-items: center;
  gap: 2em;
  position: absolute;
  top: 0;
  right: 0;
}
@media screen and (max-width: 767px) {
  #header .header-container .header_content {
    gap: 1em;
  }
}
#header .header-container .header_content .instagram {
  width: 40px;
  flex-shrink: 0;
}
#header .header-container .header_content .tel {
  font-weight: 700;
  transition: 0.3s;
}
#header .header-container .header_content .tel p {
  font-family: "Lato", sans-serif;
  font-size: 1.875rem;
  line-height: 1.6;
}
@media screen and (max-width: 767px) {
  #header .header-container .header_content .tel p {
    font-size: 1.875rem;
  }
}
#header .header-container .header_content .tel p:before {
  content: "tel.";
  font-size: 0.67em;
  margin-right: 0.5em;
}
#header .header-container .header_content .tel .address {
  font-size: 0.875rem;
}
@media screen and (max-width: 767px) {
  #header .header-container .header_content .tel .address {
    font-size: 0.875rem;
  }
}

.footer_contact {
  padding-left: 9vw;
  padding-right: 9vw;
  margin-bottom: 7.5rem;
}
@media screen and (min-width: 768px) {
  .footer_contact {
    padding-left: min(4.1vw, 80px);
    padding-right: min(4.1vw, 80px);
  }
}
@media screen and (max-width: 767px) {
  .footer_contact {
    margin-bottom: 3.75rem;
  }
}
.footer_contact .container {
  background: #E33C1C;
  border-radius: 50px;
  color: #fff;
  display: flex;
  justify-content: center;
  padding: 4em 0;
}
@media screen and (max-width: 1200px) {
  .footer_contact .container {
    flex-direction: column;
    padding: 5em 0;
    border-radius: 38px;
  }
}
.footer_contact .container .head {
  font-size: 1.5rem;
  font-weight: 700;
  text-align: center;
  margin-bottom: 1em;
}
@media screen and (max-width: 767px) {
  .footer_contact .container .head {
    font-size: 1.5rem;
  }
}
@media screen and (max-width: 1200px) {
  .footer_contact .container .head {
    font-size: 1.25rem;
    line-height: 1.5;
  }
}
@media screen and (max-width: 1200px) and (max-width: 767px) {
  .footer_contact .container .head {
    font-size: 1.25rem;
  }
}
.footer_contact .container .tel {
  padding: 0 8%;
  border-right: 1px solid #fff;
}
@media screen and (max-width: 1200px) {
  .footer_contact .container .tel {
    border-right: none;
    padding-bottom: 40px;
    text-align: center;
  }
  .footer_contact .container .tel:after {
    content: "";
    display: block;
    width: 100%;
    height: 1px;
    background-color: #fff;
    margin-top: 40px;
  }
}
.footer_contact .container .tel > a {
  color: #fff;
  font-family: "Lato", sans-serif;
  font-weight: 700;
  font-size: 3.0625rem;
  line-height: 1.2;
  letter-spacing: 0.1em;
  padding-left: 60px;
  background: url(../images/icon_phone_white.svg) no-repeat center left/auto 64px;
  display: inline-block;
  margin-bottom: 0.5em;
}
@media screen and (max-width: 767px) {
  .footer_contact .container .tel > a {
    font-size: 3.0625rem;
  }
}
@media screen and (max-width: 1200px) {
  .footer_contact .container .tel > a {
    font-size: 1.5rem;
    padding-left: 30px;
    background: url(../images/icon_phone_white.svg) no-repeat center left/auto 100%;
  }
}
@media screen and (max-width: 1200px) and (max-width: 767px) {
  .footer_contact .container .tel > a {
    font-size: 1.5rem;
  }
}
.footer_contact .container .tel p {
  padding-left: 60px;
  font-family: 700;
}
@media screen and (max-width: 1200px) {
  .footer_contact .container .tel p {
    padding-left: 0;
    font-size: 0.75rem;
  }
}
@media screen and (max-width: 1200px) and (max-width: 767px) {
  .footer_contact .container .tel p {
    font-size: 0.75rem;
  }
}
.footer_contact .container .links {
  padding: 0 8%;
}
.footer_contact .container .links ul li:not(:last-child) {
  margin-bottom: 20px;
}
@media screen and (max-width: 1200px) {
  .footer_contact .container .links .btn_ft_contact {
    margin: 0 auto;
  }
}

#footer {
  padding-left: 9vw;
  padding-right: 9vw;
  padding-top: 5rem;
  padding-bottom: 5rem;
}
@media screen and (min-width: 768px) {
  #footer {
    padding-left: min(4.1vw, 80px);
    padding-right: min(4.1vw, 80px);
  }
}
@media screen and (max-width: 767px) {
  #footer {
    padding-top: 0;
    padding-bottom: 3.75rem;
  }
}
#footer .gmap {
  position: relative;
}
#footer .gmap:after {
  content: "";
  display: block;
  width: 100%;
  padding-top: 410px;
}
#footer .gmap iframe {
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}
@media screen and (max-width: 767px) {
  #footer .gmap {
    position: relative;
  }
  #footer .gmap:after {
    content: "";
    display: block;
    width: 100%;
    padding-top: 65%;
  }
  #footer .gmap iframe {
    display: block;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
  }
}
#footer .l-flex {
  display: flex;
  justify-content: space-between;
}
@media screen and (max-width: 767px) {
  #footer .l-flex {
    flex-direction: column-reverse;
    gap: 3.75rem;
  }
}
#footer .l-flex:nth-of-type(2) {
  padding-top: 4em;
}
@media screen and (max-width: 767px) {
  #footer .l-flex:nth-of-type(2) {
    flex-direction: column;
  }
}
#footer .l-flex .l-left {
  width: 100%;
  max-width: 530px;
  flex-shrink: 0;
}
#footer .l-flex .l-left .footer_logo {
  width: 278px;
  margin-bottom: 4em;
}
@media screen and (max-width: 767px) {
  #footer .l-flex .l-left .footer_logo {
    width: 208px;
  }
}
#footer .l-flex .l-left address .name {
  font-size: 1.375rem;
  font-weight: 700;
  margin-bottom: 0.5em;
}
@media screen and (max-width: 767px) {
  #footer .l-flex .l-left address .name {
    font-size: 1.375rem;
  }
}
@media screen and (max-width: 767px) {
  #footer .l-flex .l-left address .name {
    font-size: 1rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  #footer .l-flex .l-left address .name {
    font-size: 1rem;
  }
}
#footer .l-flex .l-left address dl .row {
  letter-spacing: 0.06em;
}
@media screen and (min-width: 768px) {
  #footer .l-flex .l-left address dl .row {
    display: flex;
    align-items: baseline;
  }
}
#footer .l-flex .l-left address dl .row:not(:last-of-type) {
  margin-bottom: 0.25em;
}
@media screen and (max-width: 767px) {
  #footer .l-flex .l-left address dl .row:not(:last-of-type) {
    margin-bottom: 0.75em;
  }
}
#footer .l-flex .l-left address dl dt {
  font-weight: 700;
  width: 10em;
  flex-shrink: 0;
}
#footer .l-flex .l-right {
  width: 48%;
}
@media screen and (max-width: 767px) {
  #footer .l-flex .l-right {
    width: 100%;
  }
}
#footer .copyright {
  font-family: "Lato", sans-serif;
  text-align: right;
}
@media screen and (max-width: 767px) {
  #footer .copyright {
    text-align: left;
  }
}
#footer .copyright small {
  font-size: 1rem;
}
@media screen and (max-width: 767px) {
  #footer .copyright small {
    font-size: 1rem;
  }
}
@media screen and (max-width: 767px) {
  #footer .copyright small {
    font-size: 0.625rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  #footer .copyright small {
    font-size: 0.625rem;
  }
}
#footer .nav_footer {
  font-size: 0rem;
}
@media screen and (max-width: 767px) {
  #footer .nav_footer {
    font-size: 0rem;
  }
}
#footer .nav_footer li {
  display: inline-block;
  border-right: 1px solid #3E3A39;
}
#footer .nav_footer li:first-child {
  border-left: 1px solid #3E3A39;
}
#footer .nav_footer li a {
  padding: 0 1em;
  font-size: 1rem;
}
@media screen and (max-width: 767px) {
  #footer .nav_footer li a {
    font-size: 1rem;
  }
}
@media screen and (max-width: 767px) {
  #footer .nav_footer li a {
    font-size: 0.75rem;
    padding: 0 0.5em;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  #footer .nav_footer li a {
    font-size: 0.75rem;
  }
}

@keyframes txt_view {
  100% {
    transform: translateY(0);
  }
}
.home #first_view {
  height: 100svh;
  height: 100dvh;
  min-height: 900px;
  background: url(../images/top_fv_01.jpg) no-repeat center/cover;
  padding-left: 9vw;
  padding-right: 9vw;
  display: flex;
  align-items: center;
}
@media screen and (min-width: 768px) {
  .home #first_view {
    padding-left: min(4.1vw, 80px);
    padding-right: min(4.1vw, 80px);
  }
}
@media screen and (max-width: 767px) {
  .home #first_view {
    background: url(../images/top_fv_01_sp.jpg) no-repeat center/cover;
    min-height: unset;
    padding: 0;
  }
}
.home #first_view .text_box {
  transform: translateY(20%);
}
.home #first_view .text_box p {
  font-size: 2.625rem;
  font-weight: 700;
  background-color: #fff;
  width: -moz-fit-content;
  width: fit-content;
  padding: 0 0.6em 0.13em;
  overflow: hidden;
  margin-bottom: 0.5em;
}
@media screen and (max-width: 767px) {
  .home #first_view .text_box p {
    font-size: 2.625rem;
  }
}
@media screen and (max-width: 767px) {
  .home #first_view .text_box p {
    font-size: 1.5rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .home #first_view .text_box p {
    font-size: 1.5rem;
  }
}
.home #first_view .text_box p.small {
  font-size: 2.125rem;
  margin-bottom: 0;
}
@media screen and (max-width: 767px) {
  .home #first_view .text_box p.small {
    font-size: 2.125rem;
  }
}
@media screen and (max-width: 767px) {
  .home #first_view .text_box p.small {
    font-size: 1rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .home #first_view .text_box p.small {
    font-size: 1rem;
  }
}
.home #first_view .text_box p span {
  transform: translateY(100%);
  transition: transform 1s;
  display: block;
}
.home #first_view .text_box.ignition p span {
  animation: txt_view 1s 1s forwards;
}
.home #first_view .text_box.ignition p.small span {
  animation: txt_view 1s 2s forwards;
}
.home #top_content {
  margin-top: -220px;
}
@media screen and (max-width: 767px) {
  .home #top_content {
    margin-top: -170px;
  }
}
.home #top_content .item {
  position: relative;
  background: url(../images/bg_top_content.png) no-repeat center top/cover;
  padding-top: 8%;
}
@media screen and (max-width: 767px) {
  .home #top_content .item {
    background: url(../images/bg_top_content_sp.png) no-repeat center top/cover;
    padding-top: 3em;
  }
}
.home #top_content .logo {
  width: 300px;
  margin: 0 auto;
  padding-bottom: 4.5em;
}
@media screen and (max-width: 767px) {
  .home #top_content .logo {
    width: 225px;
  }
}
.home #top_content nav {
  padding-left: 9vw;
  padding-right: 9vw;
}
@media screen and (min-width: 768px) {
  .home #top_content nav {
    padding-left: min(4.1vw, 80px);
    padding-right: min(4.1vw, 80px);
  }
}
.home #top_content nav ul {
  max-width: 1560px;
  margin: 0 auto;
  display: flex;
  justify-content: center;
  gap: 2em 2%;
  flex-wrap: wrap;
}
.home #top_content nav ul li {
  text-align: center;
  white-space: nowrap;
}
.home #top_content nav ul li .ja {
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.5;
  transition: 0.3s;
}
@media screen and (max-width: 767px) {
  .home #top_content nav ul li .ja {
    font-size: 1.125rem;
  }
}
.home #top_content nav ul li .en {
  font-size: 0.8125rem;
  color: #E33C1C;
  transition: 0.3s;
}
@media screen and (max-width: 767px) {
  .home #top_content nav ul li .en {
    font-size: 0.8125rem;
  }
}
.home #top_content nav ul li a {
  display: block;
  transition: 0.3s;
}
.home #top_content nav ul li a:hover .ja {
  color: #E33C1C;
}
.home #top_content nav ul li a:hover .en {
  color: #FFF0ED;
}
.home #about {
  padding: 7.6em 0 0;
  margin-bottom: 7.5rem;
}
@media screen and (max-width: 767px) {
  .home #about {
    padding-top: 3.5em;
    margin-bottom: 5.625rem;
  }
  .home #about > .inner {
    padding-left: 0;
    padding-right: 0;
  }
}
.home #about .warries {
  padding-left: 9vw;
  padding-right: 9vw;
  margin-top: -7em;
}
@media screen and (min-width: 768px) {
  .home #about .warries {
    padding-left: min(4.1vw, 80px);
    padding-right: min(4.1vw, 80px);
  }
}
@media screen and (max-width: 767px) {
  .home #about .warries {
    padding-left: 4.5vw;
    padding-right: 4.5vw;
    margin-top: -3.5em;
  }
  .home #about .warries:after {
    content: "";
    display: block;
    margin: 45px -4.5vw 0;
    aspect-ratio: 3/2;
    background: url(../images/top_about_01_sp.jpg?ver=1.1) no-repeat center/cover;
  }
}
.home #about .warries .container {
  padding-top: 6em;
  background: #fff;
  border-radius: 30px;
  padding-left: 9vw;
  padding-right: 9vw;
  position: relative;
}
@media screen and (min-width: 768px) {
  .home #about .warries .container {
    padding-left: min(4.1vw, 80px);
    padding-right: min(4.1vw, 80px);
  }
}
@media screen and (max-width: 767px) {
  .home #about .warries .container {
    padding-top: 2.5em;
    padding-left: 4.5vw;
    padding-right: 4.5vw;
  }
}
.home #about .warries .container:before {
  content: "";
  display: block;
  width: 77%;
  max-width: 350px;
  height: 10px;
  background: #ffbb00;
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
}
.home #about .warries .container h3 {
  font-size: 2rem;
  font-weight: 700;
  text-align: center;
  color: #E33C1C;
  margin-bottom: 0.5em;
}
@media screen and (max-width: 767px) {
  .home #about .warries .container h3 {
    font-size: 2rem;
  }
}
@media screen and (max-width: 767px) {
  .home #about .warries .container h3 {
    font-size: 1.3125rem;
    line-height: 1.6;
    margin-bottom: 1em;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .home #about .warries .container h3 {
    font-size: 1.3125rem;
  }
}
.home #about .warries .container .flex {
  border-top: 1px dashed #E33C1C;
  border-bottom: 1px dashed #E33C1C;
  padding: 2.5em 0 2em;
  display: flex;
  gap: 4%;
}
.home #about .warries .container .flex .image {
  width: 40%;
  flex-shrink: 0;
  align-self: flex-start;
  position: relative;
}
.home #about .warries .container .flex .image:after {
  content: "";
  display: block;
  width: 100%;
  padding-top: 67%;
}
.home #about .warries .container .flex .image img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  position: absolute;
  top: 0;
  left: 0;
}
@media screen and (max-width: 767px) {
  .home #about .warries .container .flex .image {
    display: none;
  }
}
.home #about .warries .container .flex .list_check.list_warries {
  border: none;
  padding: 0;
  flex-grow: 1;
}
.home #about .warries .container .flex .list_check.list_warries li {
  width: 100%;
}
.home #about .warries .container > p {
  font-weight: 700;
  line-height: 2;
  margin-top: 2em;
}
@media screen and (min-width: 768px) {
  .home #about .warries .container > p {
    font-size: 1.125rem;
  }
}
@media screen and (min-width: 768px) and (max-width: 767px) {
  .home #about .warries .container > p {
    font-size: 1.125rem;
  }
}
.home #points {
  padding-bottom: 12.5rem;
}
@media screen and (max-width: 767px) {
  .home #points {
    padding-bottom: 5.625rem;
  }
}
.home .top_movie {
  padding-left: 9vw;
  padding-right: 9vw;
  margin-bottom: 7.5rem;
}
@media screen and (min-width: 768px) {
  .home .top_movie {
    padding-left: min(4.1vw, 80px);
    padding-right: min(4.1vw, 80px);
  }
}
@media screen and (max-width: 767px) {
  .home .top_movie {
    margin-bottom: 5.625rem;
  }
}
.home .top_movie .movie_container {
  position: relative;
}
.home .top_movie .movie_container:after {
  content: "";
  display: block;
  width: 100%;
  padding-top: 56.25%;
}
.home .top_movie .movie_container iframe {
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}
.home #top_program {
  padding-bottom: 12.5rem;
}
@media screen and (max-width: 767px) {
  .home #top_program {
    padding-bottom: 5.625rem;
  }
}
.home #top_program .list_top_program {
  display: flex;
  gap: 3.5%;
}
@media screen and (max-width: 767px) {
  .home #top_program .list_top_program {
    flex-direction: column;
    gap: 3em;
  }
}
.home #top_program .list_top_program li {
  width: 31%;
}
@media screen and (max-width: 767px) {
  .home #top_program .list_top_program li {
    width: 100%;
  }
}
.home #top_program .list_top_program li:before {
  content: "";
  display: block;
  width: 110px;
  aspect-ratio: 110/70;
  background: no-repeat center/contain;
  margin-bottom: 0.5em;
}
@media screen and (max-width: 767px) {
  .home #top_program .list_top_program li:before {
    width: 82px;
  }
}
.home #top_program .list_top_program li:nth-child(1):before {
  background-image: url(../images/num_slash_01.svg);
}
.home #top_program .list_top_program li:nth-child(2):before {
  background-image: url(../images/num_slash_02.svg);
}
.home #top_program .list_top_program li:nth-child(3):before {
  background-image: url(../images/num_slash_03.svg);
}
.home #top_program .list_top_program li .image {
  position: relative;
}
.home #top_program .list_top_program li .image:after {
  content: "";
  display: block;
  width: 100%;
  padding-top: 67%;
}
.home #top_program .list_top_program li .image img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  position: absolute;
  top: 0;
  left: 0;
}
.home #top_program .list_top_program li h3 {
  font-size: 1.625rem;
  font-weight: 700;
  padding: 0.75em 0 0.25em;
}
@media screen and (max-width: 767px) {
  .home #top_program .list_top_program li h3 {
    font-size: 1.625rem;
  }
}
@media screen and (max-width: 767px) {
  .home #top_program .list_top_program li h3 {
    font-size: 1.375rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .home #top_program .list_top_program li h3 {
    font-size: 1.375rem;
  }
}
.home #top_program .details .box_ttl {
  padding: 80px 0 70px;
}
@media screen and (max-width: 767px) {
  .home #top_program .details .box_ttl {
    padding: 60px 0 52px;
  }
}
.home #top_program .details .box_ttl h3 {
  font-size: 1.75rem;
  font-weight: 700;
  padding: 0.65em;
  text-align: center;
  border-radius: 50px;
  background-color: #F5FF00;
  position: relative;
}
@media screen and (max-width: 767px) {
  .home #top_program .details .box_ttl h3 {
    font-size: 1.75rem;
  }
}
@media screen and (max-width: 767px) {
  .home #top_program .details .box_ttl h3 {
    font-size: 1rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .home #top_program .details .box_ttl h3 {
    font-size: 1rem;
  }
}
.home #top_program .details .box_ttl h3:after {
  content: "";
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 22px 28px 0 28px;
  border-color: #F5FF00 transparent transparent transparent;
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
}
@media screen and (max-width: 767px) {
  .home #top_program .details .box_ttl h3:after {
    border-width: 14px 18.75px 0 18.75px;
  }
}
.home #top_program .details .box_ttl h3:before {
  content: "";
  display: block;
  width: 184px;
  aspect-ratio: 184/271;
  background: url(../images/icon_melody.svg) no-repeat center/contain;
  position: absolute;
  z-index: 2;
  top: -75px;
  right: 1em;
}
@media screen and (max-width: 767px) {
  .home #top_program .details .box_ttl h3:before {
    width: 67px;
    top: 0;
    right: -1em;
  }
}
.home #top_program .details .box01 {
  display: flex;
  margin-bottom: 3.5em;
}
@media screen and (max-width: 767px) {
  .home #top_program .details .box01 {
    flex-direction: column;
  }
}
.home #top_program .details .box01 .box_left {
  width: 41%;
  flex-shrink: 0;
  margin-right: -6%;
}
@media screen and (max-width: 767px) {
  .home #top_program .details .box01 .box_left {
    width: 100%;
    margin-right: 0;
  }
}
.home #top_program .details .box01 .box_left .slider_item {
  position: relative;
}
.home #top_program .details .box01 .box_left .slider_item:after {
  content: "";
  display: block;
  width: 100%;
  padding-top: 67%;
}
.home #top_program .details .box01 .box_left .slider_item img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  position: absolute;
  top: 0;
  left: 0;
}
.home #top_program .details .box01 .box_left .slick-dots {
  margin-top: 1.3em;
}
.home #top_program .details .box01 .box_left .slick-dots li {
  display: inline-block;
}
.home #top_program .details .box01 .box_left .slick-dots li:not(:last-child) {
  margin-right: 0.875em;
}
.home #top_program .details .box01 .box_left .slick-dots li button {
  text-indent: -99999px;
  display: block;
  border: none;
  background: #FFF0ED;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  padding: 0;
}
.home #top_program .details .box01 .box_left .slick-dots li.slick-active button {
  background: #E33C1C;
}
.home #top_program .details .box01 .box_right {
  flex-grow: 1;
  position: relative;
  padding-top: 10%;
}
.home #top_program .details .box01 .box_right .en {
  width: 47.4%;
  margin-right: 2em;
  margin-left: auto;
}
@media screen and (max-width: 767px) {
  .home #top_program .details .box01 .box_right .en {
    width: 100%;
    margin: 0;
  }
}
.home #top_program .details .box01 .box_right ul {
  margin-top: -1px;
  display: flex;
  flex-wrap: wrap;
  padding: 100px 8%;
  background: #FFF0ED;
  gap: 0 2em;
}
@media screen and (max-width: 767px) {
  .home #top_program .details .box01 .box_right ul {
    margin-left: -9vw;
    margin-right: -9vw;
    display: block;
    padding: 60px 9vw 158px;
  }
}
.home #top_program .details .box01 .box_right ul li {
  width: calc(50% - 1em);
  font-size: 1.375rem;
  font-weight: 700;
  line-height: 2.25;
}
@media screen and (max-width: 767px) {
  .home #top_program .details .box01 .box_right ul li {
    font-size: 1.375rem;
  }
}
@media screen and (max-width: 767px) {
  .home #top_program .details .box01 .box_right ul li {
    width: 100%;
    font-size: 1rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .home #top_program .details .box01 .box_right ul li {
    font-size: 1rem;
  }
}
@media screen and (min-width: 768px) {
  .home #top_program .details .box01 .box_right ul li:nth-child(1) {
    order: 1;
  }
  .home #top_program .details .box01 .box_right ul li:nth-child(2) {
    order: 3;
  }
  .home #top_program .details .box01 .box_right ul li:nth-child(3) {
    order: 5;
  }
  .home #top_program .details .box01 .box_right ul li:nth-child(4) {
    order: 7;
  }
  .home #top_program .details .box01 .box_right ul li:nth-child(5) {
    order: 9;
  }
  .home #top_program .details .box01 .box_right ul li:nth-child(6) {
    order: 2;
  }
  .home #top_program .details .box01 .box_right ul li:nth-child(7) {
    order: 4;
  }
  .home #top_program .details .box01 .box_right ul li:nth-child(8) {
    order: 6;
  }
  .home #top_program .details .box01 .box_right ul li:nth-child(9) {
    order: 8;
  }
}
.home #top_program .details .box01 .box_right .btn_viewmore_large {
  margin: -38px 2em 0 auto;
}
@media screen and (max-width: 767px) {
  .home #top_program .details .box01 .box_right .btn_viewmore_large {
    width: 240px;
    height: 52px;
    margin: -105px auto 50px;
    font-size: 0.875rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .home #top_program .details .box01 .box_right .btn_viewmore_large {
    font-size: 0.875rem;
  }
}
@media screen and (max-width: 767px) {
  .home #top_program .details .box01 .box_right .btn_viewmore_large:after {
    width: 27px;
    height: 27px;
  }
}
.home #top_program .details .box2 .main {
  font-size: 1.375rem;
  font-weight: 700;
  line-height: 1.68;
  text-align: center;
  margin-bottom: 2.2em;
}
@media screen and (max-width: 767px) {
  .home #top_program .details .box2 .main {
    font-size: 1.375rem;
  }
}
@media screen and (max-width: 767px) {
  .home #top_program .details .box2 .main {
    font-size: 1rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .home #top_program .details .box2 .main {
    font-size: 1rem;
  }
}
.home #top_program .details .box2 .sub {
  font-size: 1.25rem;
  line-height: 1.68;
  text-align: center;
  padding: 1.5em 0 calc(0.75em + 38px);
  border-top: 1px dashed #E33C1C;
  border-bottom: 1px dashed #E33C1C;
}
@media screen and (max-width: 767px) {
  .home #top_program .details .box2 .sub {
    font-size: 1.25rem;
  }
}
@media screen and (max-width: 767px) {
  .home #top_program .details .box2 .sub {
    font-size: 0.9375rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .home #top_program .details .box2 .sub {
    font-size: 0.9375rem;
  }
}
.home #top_program .details .box2 .wide {
  margin: -38px auto 0;
}
@media screen and (max-width: 767px) {
  .home #top_program .details .box2 .wide {
    width: 240px;
    height: 52px;
    padding-right: 2em;
    margin: -26px auto 0;
    font-size: 0.875rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .home #top_program .details .box2 .wide {
    font-size: 0.875rem;
  }
}
@media screen and (max-width: 767px) {
  .home #top_program .details .box2 .wide:after {
    width: 27px;
    height: 27px;
  }
}
.home #faq {
  padding-top: 7.5rem;
  margin-bottom: 12.5rem;
}
@media screen and (max-width: 767px) {
  .home #faq {
    margin-bottom: 5.625rem;
  }
}
.home #faq .ttl_common_01 {
  margin-bottom: 3.5em;
}
.home #faq .list_btn_tab {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  margin-bottom: 3.75rem;
  font-weight: 700;
  gap: 1.5em 2.5em;
}
@media screen and (min-width: 768px) {
  .home #faq .list_btn_tab {
    font-size: 1.25rem;
    margin-bottom: 5rem;
  }
}
@media screen and (min-width: 768px) and (max-width: 767px) {
  .home #faq .list_btn_tab {
    font-size: 1.25rem;
  }
}
.home #faq .list_btn_tab li a {
  display: block;
  padding: 0.125em 1.5em 0.125em 0;
  position: relative;
  overflow: hidden;
}
.home #faq .list_btn_tab li a:after {
  content: "";
  display: block;
  width: 100%;
  height: 1px;
  background-color: #3E3A39;
  position: absolute;
  bottom: 0;
  left: 0;
  transition: transform 0.5s;
}
.home #faq .list_btn_tab li a:before {
  content: "";
  display: block;
  width: 1em;
  aspect-ratio: 1/1;
  background: url(../images/arrow_right_red.svg) no-repeat center/contain;
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  transition: transform 0.5s;
}
.home #faq .list_btn_tab li a:hover:before, .home #faq .list_btn_tab li a.is-active:before {
  transform: translateY(-50%) rotate(90deg);
}
.home #faq .list_btn_tab li a:hover:after, .home #faq .list_btn_tab li a.is-active:after {
  transform: translateX(-100%);
}
.home #faq .cnt_faq {
  display: none;
}
.home #faq .cnt_faq.is-active {
  display: block;
}
.home .section_cover {
  margin-bottom: 12.5rem;
}
@media screen and (max-width: 767px) {
  .home .section_cover {
    margin-bottom: 5.625rem;
  }
}
.home .section_cover:before, .home .section_cover:after {
  content: "";
  display: block;
  width: 100%;
  padding-top: 2.5%;
  background: url(../images/wave_top_main.svg) no-repeat center bottom/cover;
}
@media screen and (max-width: 767px) {
  .home .section_cover:before, .home .section_cover:after {
    padding-top: 9%;
    background: url(../images/wave_top_main_sp.svg) no-repeat center bottom/cover;
  }
}
.home .section_cover:after {
  background: url(../images/wave_bottom_main.svg) no-repeat center top/cover;
}
@media screen and (max-width: 767px) {
  .home .section_cover:after {
    background: url(../images/wave_bottom_main_sp.svg) no-repeat center top/cover;
  }
}
.home .section_cover .inner {
  background: #E33C1C url(../images/bg_top_posts.png) no-repeat center/cover;
  padding-top: 7.5rem;
  padding-bottom: 7.5rem;
}
@media screen and (max-width: 767px) {
  .home .section_cover .inner {
    background: #E33C1C;
    padding: 3.75rem;
    padding-left: 9vw;
    padding-right: 9vw;
  }
}
@media screen and (max-width: 767px) and (min-width: 768px) {
  .home .section_cover .inner {
    padding-left: min(4.1vw, 80px);
    padding-right: min(4.1vw, 80px);
  }
}
.home .section_cover .flex_box {
  display: flex;
  gap: 6%;
}
@media screen and (max-width: 767px) {
  .home .section_cover .flex_box {
    flex-direction: column;
    gap: 3.75rem;
  }
}
@media screen and (min-width: 768px) {
  .home .section_cover .flex_box #top_case,
  .home .section_cover .flex_box #top_voice {
    width: 47%;
  }
}
.home .section_cover .flex_box #top_case .section_header,
.home .section_cover .flex_box #top_voice .section_header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  margin-bottom: 1.5em;
}
@media screen and (max-width: 767px) {
  .home .section_cover .flex_box #top_case .section_header,
  .home .section_cover .flex_box #top_voice .section_header {
    gap: 1.5em;
  }
}
.home .section_cover .flex_box #top_case .section_header .ttl,
.home .section_cover .flex_box #top_voice .section_header .ttl {
  font-weight: 700;
  line-height: 1.6;
  color: #fff;
}
.home .section_cover .flex_box #top_case .section_header .ttl .ja,
.home .section_cover .flex_box #top_voice .section_header .ttl .ja {
  font-size: 2.75rem;
}
@media screen and (max-width: 767px) {
  .home .section_cover .flex_box #top_case .section_header .ttl .ja,
  .home .section_cover .flex_box #top_voice .section_header .ttl .ja {
    font-size: 2.75rem;
  }
}
@media screen and (max-width: 767px) {
  .home .section_cover .flex_box #top_case .section_header .ttl .ja,
  .home .section_cover .flex_box #top_voice .section_header .ttl .ja {
    font-size: 2.0625rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .home .section_cover .flex_box #top_case .section_header .ttl .ja,
  .home .section_cover .flex_box #top_voice .section_header .ttl .ja {
    font-size: 2.0625rem;
  }
}
.home .section_cover .flex_box #top_case .section_header .ttl .en,
.home .section_cover .flex_box #top_voice .section_header .ttl .en {
  font-size: 1.25rem;
}
@media screen and (max-width: 767px) {
  .home .section_cover .flex_box #top_case .section_header .ttl .en,
  .home .section_cover .flex_box #top_voice .section_header .ttl .en {
    font-size: 1.25rem;
  }
}
@media screen and (max-width: 767px) {
  .home .section_cover .flex_box #top_case .section_header .ttl .en,
  .home .section_cover .flex_box #top_voice .section_header .ttl .en {
    font-size: 0.9375rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .home .section_cover .flex_box #top_case .section_header .ttl .en,
  .home .section_cover .flex_box #top_voice .section_header .ttl .en {
    font-size: 0.9375rem;
  }
}
.home .section_cover .flex_box #top_case .section_header a,
.home .section_cover .flex_box #top_voice .section_header a {
  display: flex;
  align-items: center;
  color: #fff;
  gap: 1em;
}
.home .section_cover .flex_box #top_case .section_header a span,
.home .section_cover .flex_box #top_voice .section_header a span {
  display: inline-block;
  font-size: 1.125rem;
  border-bottom: 3px solid #fff;
}
@media screen and (max-width: 767px) {
  .home .section_cover .flex_box #top_case .section_header a span,
  .home .section_cover .flex_box #top_voice .section_header a span {
    font-size: 1.125rem;
  }
}
.home .section_cover .flex_box #top_case .section_header a:after,
.home .section_cover .flex_box #top_voice .section_header a:after {
  content: "";
  display: inline-block;
  width: 40px;
  height: 40px;
  background: url(../images/arrow_ft_contact_white.svg) no-repeat center/contain;
}
@media screen and (max-width: 767px) {
  .home .section_cover .flex_box #top_case .section_header a,
  .home .section_cover .flex_box #top_voice .section_header a {
    font-size: 0.875rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .home .section_cover .flex_box #top_case .section_header a,
  .home .section_cover .flex_box #top_voice .section_header a {
    font-size: 0.875rem;
  }
}
@media screen and (max-width: 767px) {
  .home .section_cover .flex_box #top_case .section_header a:after,
  .home .section_cover .flex_box #top_voice .section_header a:after {
    width: 30px;
    height: 30px;
  }
}
.home .section_cover .flex_box #top_case .list_items > li,
.home .section_cover .flex_box #top_voice .list_items > li {
  padding: 2em 0;
  border-bottom: 1px solid #fff;
}
.home .section_cover .flex_box #top_case .list_items > li a,
.home .section_cover .flex_box #top_voice .list_items > li a {
  display: block;
}
.home .section_cover .flex_box #top_case .list_items > li .ttl,
.home .section_cover .flex_box #top_voice .list_items > li .ttl {
  font-size: 1.625rem;
  color: #fff;
  padding: 0.5em 0 0.5em;
  overflow: hidden;
  display: -webkit-box;
  text-overflow: ellipsis;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
}
@media screen and (max-width: 767px) {
  .home .section_cover .flex_box #top_case .list_items > li .ttl,
  .home .section_cover .flex_box #top_voice .list_items > li .ttl {
    font-size: 1.625rem;
  }
}
@media screen and (max-width: 767px) {
  .home .section_cover .flex_box #top_case .list_items > li .ttl,
  .home .section_cover .flex_box #top_voice .list_items > li .ttl {
    font-size: 1.25rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .home .section_cover .flex_box #top_case .list_items > li .ttl,
  .home .section_cover .flex_box #top_voice .list_items > li .ttl {
    font-size: 1.25rem;
  }
}
.home .section_cover .flex_box #top_case .list_items > li .list_category,
.home .section_cover .flex_box #top_voice .list_items > li .list_category {
  display: inline-block;
  margin-right: 1rem;
}
.home .section_cover .flex_box #top_case .list_items > li .list_category .cat_label_01,
.home .section_cover .flex_box #top_voice .list_items > li .list_category .cat_label_01 {
  background: transparent;
  color: #fff;
  border: 1px solid #fff;
}
.home .section_cover .flex_box #top_case .list_items > li .name,
.home .section_cover .flex_box #top_voice .list_items > li .name {
  font-size: 1.125rem;
  color: #fff;
}
@media screen and (max-width: 767px) {
  .home .section_cover .flex_box #top_case .list_items > li .name,
  .home .section_cover .flex_box #top_voice .list_items > li .name {
    font-size: 1.125rem;
  }
}
.home .section_cover .flex_box #top_case .no-post,
.home .section_cover .flex_box #top_voice .no-post {
  padding: 2em 0;
  color: #fff;
  color: #fff;
}
.home #top_times:before {
  content: "";
  display: block;
  width: 100%;
  padding-top: 2.1%;
  background: url(../images/wave_top_sub.svg) no-repeat center bottom/cover;
}
@media screen and (max-width: 767px) {
  .home #top_times:before {
    background: url(../images/wave_top_sub_sp.svg) no-repeat center bottom/cover;
    padding-top: 8%;
  }
}
.home #top_times .inner {
  background: #FFF0ED;
  padding-top: 5.625rem;
  padding-bottom: 5.625rem;
}
@media screen and (min-width: 768px) {
  .home #top_times .inner {
    padding-top: 7.5rem;
    padding-bottom: 7.5rem;
  }
}
@media screen and (max-width: 767px) {
  .home #top_times .list_times_01 {
    flex-direction: column;
  }
  .home #top_times .list_times_01 li {
    width: 100%;
  }
}
@media screen and (min-width: 768px) {
  .home #top_times .list_times_01 > li:nth-child(2) {
    margin-top: 4em;
  }
}
.home #top_times .content_times {
  margin-bottom: 5rem;
}
.home #top_times .content_times .no-post {
  font-size: 1.125rem;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .home #top_times .content_times .no-post {
    font-size: 1.125rem;
  }
}
.home .content_news {
  display: flex;
  gap: 4%;
}
@media screen and (max-width: 767px) {
  .home .content_news {
    flex-direction: column;
  }
}
.home .content_news .ttl_news {
  flex-shrink: 0;
  width: 242px;
  height: 242px;
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 50%;
  background: #F5FF00;
  color: #E33C1C;
  font-weight: 700;
  line-height: 1.4;
}
.home .content_news .ttl_news .en {
  font-family: "Noto Sans JP", "游ゴシック体", "Yu Gothic", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, "MS Pゴシック", "MS PGothic", sans-serif;
  font-size: 3rem;
}
@media screen and (max-width: 767px) {
  .home .content_news .ttl_news .en {
    font-size: 3rem;
  }
}
@media screen and (max-width: 767px) {
  .home .content_news .ttl_news {
    width: 184px;
    height: 184px;
  }
  .home .content_news .ttl_news .en {
    font-size: 2.25rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .home .content_news .ttl_news .en {
    font-size: 2.25rem;
  }
}
@media screen and (max-width: 767px) {
  .home .content_news .ttl_news .ja {
    font-size: 0.75rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .home .content_news .ttl_news .ja {
    font-size: 0.75rem;
  }
}
.home .content_news .list_news {
  flex-grow: 1;
}
@media screen and (max-width: 767px) {
  .home .content_news .list_news {
    margin-top: -3.5em;
  }
  .home .content_news .list_news li {
    padding: 1.3em 0;
  }
  .home .content_news .list_news li a {
    flex-direction: column;
    align-items: flex-start;
  }
}

.page_mv {
  background: no-repeat center/cover;
  background-image: url(../images/bg_page_about.jpg?ver=20240610);
  position: relative;
  height: 50vw;
}
@media screen and (min-width: 768px) {
  .page_mv {
    height: 420px;
  }
}
.page_mv:after {
  content: "";
  display: block;
  width: 100%;
  height: 100px;
  background: url(../images/decoration_page_mv.png) no-repeat top center/cover;
  position: absolute;
  bottom: -1px;
  left: 0;
}
@media screen and (max-width: 767px) {
  .page_mv:after {
    height: 11vw;
    background: url(../images/decoration_page_mv_sp.svg) no-repeat top center/cover;
  }
}

.page.program .page_mv {
  background-image: url(../images/bg_page_program.jpg);
}

.page.recruit .page_mv {
  background-image: url(../images/bg_page_recruit.jpg);
}

.page.treatment .page_mv {
  background-image: url(../images/bg_page_treatment.jpg);
}

.page.flow .page_mv {
  background-image: url(../images/bg_page_flow.jpg);
}

.archive .page_mv,
.single .page_mv {
  background-image: url(../images/bg_page_post.jpg);
}

.post-type-archive-case .page_mv,
.single-case .page_mv {
  background-image: url(../images/bg_page_case.jpg);
}

.post-type-archive-voice .page_mv,
.single-voice .page_mv {
  background-image: url(../images/bg_page_voice.jpg);
}

@media screen and (min-width: 1920px) {
  .page_mv {
    height: 22vw;
  }
  .page_mv:after {
    height: 5.2vw;
  }
}
.archive.voice .page_mv,
.single.voice .page_mv {
  background-image: url(../images/bg_post_voice.jpg);
}

.archive.case .page_mv,
.single.case .page_mv {
  background-image: url(../images/bg_post_case.jpg);
}

.page.about #about {
  padding-left: 9vw;
  padding-right: 9vw;
  background: linear-gradient(0deg, #FFF0ED 0%, #FFF0ED 50%, transparent 50%, transparent 100%);
  padding-bottom: 7.5rem;
  margin: 0 min((50vw - 50%) * -1, 0px);
}
@media screen and (min-width: 768px) {
  .page.about #about {
    padding-left: min(4.1vw, 80px);
    padding-right: min(4.1vw, 80px);
  }
}
@media screen and (max-width: 767px) {
  .page.about #about {
    padding-left: 0;
    padding-right: 0;
    padding-bottom: 5.625rem;
  }
}
.page.about #about .common_about {
  margin-top: 7.5rem;
  background-position: center left, center right;
  background-size: 23%;
}
.page.about #about .common_about .content:before {
  width: 374px;
  aspect-ratio: 374/273;
  background: url(../images/icon_about_common_about.png) no-repeat center/contain;
}
@media screen and (max-width: 767px) {
  .page.about #about .common_about {
    margin-top: 3.5em;
    background: #E33C1C url(../images/bg_page_about_about.png) no-repeat top center/contain;
  }
}
@media screen and (max-width: 767px) {
  .page.about #about > .inner {
    padding-left: 0;
    padding-right: 0;
  }
}
.page.about #feature {
  margin: 0 min((50vw - 50%) * -1, 0px);
  padding-bottom: 12.5rem;
  background: #FFF0ED url(../images/decoration_about_feature.svg) no-repeat center bottom/100%;
}
@media screen and (max-width: 767px) {
  .page.about #feature {
    padding-bottom: 5.625rem;
    background: #FFF0ED url(../images/decoration_about_feature_sp.svg) no-repeat center bottom/100%;
  }
}
@media screen and (min-width: 768px) {
  .page.about #feature .list_feature .content_box {
    min-height: 464px;
  }
}
.page.about #lecturer {
  padding-top: 12.5rem;
}
@media screen and (max-width: 767px) {
  .page.about #lecturer {
    padding-top: 5.625rem;
  }
}

.page.program #about {
  margin-bottom: 7.5rem;
}
@media screen and (max-width: 767px) {
  .page.program #about {
    margin-bottom: 5.625rem;
  }
}
.page.program #about .container {
  background: #FFF0ED;
  border-radius: 20px;
  padding: 56px 3.3%;
  display: flex;
  align-items: flex-start;
}
@media screen and (max-width: 767px) {
  .page.program #about .container {
    flex-direction: column;
    padding: 38px 9vw;
  }
}
.page.program #about .container h2 {
  width: 30.7%;
  flex-shrink: 0;
  font-size: 1.75rem;
  color: #E33C1C;
  line-height: 1.5;
  font-weight: 700;
  text-align: center;
  padding-top: 105px;
}
@media screen and (max-width: 767px) {
  .page.program #about .container h2 {
    font-size: 1.75rem;
  }
}
@media screen and (max-width: 767px) {
  .page.program #about .container h2 {
    padding-top: 0px;
    width: 100%;
    font-size: 1.3125rem;
    margin-bottom: 1em;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .page.program #about .container h2 {
    font-size: 1.3125rem;
  }
}
.page.program #about .container h2:before {
  content: "";
  display: block;
  width: 80px;
  aspect-ratio: 1/1;
  background: url(../images/icon_onpu.svg) no-repeat center/contain;
  margin: 0 auto 0.5em;
}
@media screen and (max-width: 767px) {
  .page.program #about .container h2:before {
    width: 60px;
  }
}
.page.program #about .container .descr {
  font-size: 1.125rem;
  padding: 50px 3.5%;
  background-color: #fff;
  border-radius: 20px;
}
@media screen and (max-width: 767px) {
  .page.program #about .container .descr {
    font-size: 1.125rem;
  }
}
@media screen and (max-width: 767px) {
  .page.program #about .container .descr {
    font-size: 0.875rem;
    background-color: transparent;
    padding: 0;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .page.program #about .container .descr {
    font-size: 0.875rem;
  }
}
.page.program #about .container .descr .para_wrap {
  height: 9em;
  overflow: hidden;
}
.page.program #about .container .descr .para_wrap.is-view {
  height: auto;
}
.page.program #about .container #readmore {
  transition: none;
  display: block;
  width: 100%;
  font-size: 1.25rem;
  font-weight: 700;
  padding: 0.5em 0;
  color: #E33C1C;
  border: 1px solid #E33C1C;
  text-align: center;
  margin-top: 1em;
  background: url(../images/arrow_accordion.svg) no-repeat center right 0.7em/1em;
}
@media screen and (max-width: 767px) {
  .page.program #about .container #readmore {
    font-size: 1.25rem;
  }
}
@media screen and (max-width: 767px) {
  .page.program #about .container #readmore {
    font-size: 0.875rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .page.program #about .container #readmore {
    font-size: 0.875rem;
  }
}
.page.program #about .container #readmore:hover {
  background: #E33C1C url(../images/arrow_accordion_top.svg) no-repeat center right 0.7em/1em;
  color: #fff;
}
.page.program #attempt {
  margin-bottom: 7.5rem;
}
.page.program #attempt .content01 {
  margin-bottom: 60px;
}
.page.program #attempt .content01.l_flex {
  display: flex;
  gap: 50px 3.8%;
}
@media screen and (max-width: 767px) {
  .page.program #attempt .content01.l_flex {
    flex-direction: column;
  }
}
.page.program #attempt .content01.l_flex .l_left,
.page.program #attempt .content01.l_flex .l_right {
  width: 100%;
}
.page.program #attempt .content01 .box {
  color: #fff;
}
.page.program #attempt .content01 .box h3 {
  text-align: center;
  width: 80%;
  margin: 0 auto;
  border-radius: 20px 20px 0 0;
  font-size: 1.5rem;
  font-weight: 700;
  padding: 0.75em 1em 0;
}
@media screen and (max-width: 767px) {
  .page.program #attempt .content01 .box h3 {
    font-size: 1.5rem;
  }
}
@media screen and (max-width: 767px) {
  .page.program #attempt .content01 .box h3 {
    font-size: 1.125rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .page.program #attempt .content01 .box h3 {
    font-size: 1.125rem;
  }
}
.page.program #attempt .content01 .box .descr {
  padding: 50px;
  border-radius: 20px;
}
@media screen and (max-width: 767px) {
  .page.program #attempt .content01 .box .descr {
    margin-top: -25px;
    padding: 50px 10%;
  }
}
.page.program #attempt .content01 .box .descr .head {
  font-size: 1.25rem;
  font-weight: 700;
  width: -moz-fit-content;
  width: fit-content;
  border-bottom: 2px solid #fff;
  padding-bottom: 0.25em;
  margin: 0 auto 1em;
}
@media screen and (max-width: 767px) {
  .page.program #attempt .content01 .box .descr .head {
    font-size: 1.25rem;
  }
}
@media screen and (max-width: 767px) {
  .page.program #attempt .content01 .box .descr .head {
    font-size: 0.9375rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .page.program #attempt .content01 .box .descr .head {
    font-size: 0.9375rem;
  }
}
.page.program #attempt .content01 .box .descr ol li {
  font-size: 1.125rem;
}
@media screen and (max-width: 767px) {
  .page.program #attempt .content01 .box .descr ol li {
    font-size: 1.125rem;
  }
}
@media screen and (max-width: 767px) {
  .page.program #attempt .content01 .box .descr ol li {
    font-size: 0.875rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .page.program #attempt .content01 .box .descr ol li {
    font-size: 0.875rem;
  }
}
.page.program #attempt .content01 .box .descr ol li:not(:last-child) {
  padding-bottom: 3em;
  position: relative;
}
.page.program #attempt .content01 .box .descr ol li:not(:last-child):after {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 26px 15px 0 15px;
  border-color: #fff transparent transparent transparent;
  position: absolute;
  bottom: 14px;
  left: 50%;
  transform: translateX(-50%);
}
@media screen and (max-width: 767px) {
  .page.program #attempt .content01 .box .descr ol li:not(:last-child):after {
    border-width: 19px 12px 0 12px;
    bottom: 10px;
  }
}
.page.program #attempt .content01 .box.blue h3,
.page.program #attempt .content01 .box.blue .descr {
  background-color: #3FAFD1;
}
.page.program #attempt .content01 .box.red h3,
.page.program #attempt .content01 .box.red .descr {
  background-color: #D6715D;
}
@media screen and (max-width: 767px) {
  .page.program #attempt .content02 {
    margin-left: calc((50vw - 50%) * -1);
    margin-right: calc((50vw - 50%) * -1);
  }
}
.page.program #attempt .content02 dl .group {
  display: flex;
}
@media screen and (min-width: 768px) {
  .page.program #attempt .content02 dl .group {
    gap: 2%;
    padding: 1.375em 0;
  }
  .page.program #attempt .content02 dl .group:nth-of-type(even) {
    background-color: #FFF0ED;
  }
}
@media screen and (max-width: 767px) {
  .page.program #attempt .content02 dl .group {
    flex-direction: column;
    padding: 30px 18vw;
  }
  .page.program #attempt .content02 dl .group:nth-of-type(odd) {
    background-color: #FFF0ED;
  }
}
.page.program #attempt .content02 dl .group dt {
  font-size: 0.9375rem;
  font-weight: 700;
}
@media screen and (max-width: 767px) {
  .page.program #attempt .content02 dl .group dt {
    font-size: 0.9375rem;
  }
}
@media screen and (min-width: 768px) {
  .page.program #attempt .content02 dl .group dt {
    border-right: 1px solid #3E3A39;
    width: 25%;
    flex-shrink: 0;
    font-size: 1.25rem;
  }
}
@media screen and (min-width: 768px) and (max-width: 767px) {
  .page.program #attempt .content02 dl .group dt {
    font-size: 1.25rem;
  }
}
@media screen and (max-width: 767px) {
  .page.program #attempt .content02 dl .group dt {
    margin-bottom: 1em;
  }
  .page.program #attempt .content02 dl .group dt:after {
    content: "";
    display: block;
    width: 30px;
    height: 1px;
    background: #3E3A39;
    margin-top: 0.75em;
  }
}
.page.program #attempt .content02 dl .group dd {
  font-size: 0.875rem;
}
@media screen and (max-width: 767px) {
  .page.program #attempt .content02 dl .group dd {
    font-size: 0.875rem;
  }
}
@media screen and (min-width: 768px) {
  .page.program #attempt .content02 dl .group dd {
    font-size: 1.125rem;
  }
}
@media screen and (min-width: 768px) and (max-width: 767px) {
  .page.program #attempt .content02 dl .group dd {
    font-size: 1.125rem;
  }
}
.page.program #program {
  padding-bottom: 7.5rem;
}
@media screen and (max-width: 767px) {
  .page.program #program .ttl_border_tb {
    padding: 1em 0;
  }
}
.page.program #program .wide_1475 {
  max-width: 1475px;
  margin: 0 auto;
}
@media screen and (max-width: 767px) {
  .page.program #program .wide_1475 {
    margin: 0 -9vw;
  }
}
.page.program #program .tbl_program {
  width: 100%;
  border-collapse: separate;
  border-spacing: 10px;
}
@media screen and (max-width: 767px) {
  .page.program #program .tbl_program {
    width: 984px;
  }
}
.page.program #program .tbl_program tr:nth-of-type(1) th {
  font-size: 1rem;
  line-height: 1.5;
  padding: 0.65em;
  color: #fff;
  text-align: center;
  border-radius: 10px 10px 0 0;
}
@media screen and (max-width: 767px) {
  .page.program #program .tbl_program tr:nth-of-type(1) th {
    font-size: 0.875rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .page.program #program .tbl_program tr:nth-of-type(1) th {
    font-size: 0.875rem;
  }
}
.page.program #program .tbl_program tr:nth-of-type(1) th:nth-of-type(1) {
  width: 30%;
  color: unset;
  background-color: #F7F7F7;
  text-align: left;
}
@media screen and (max-width: 767px) {
  .page.program #program .tbl_program tr:nth-of-type(1) th:nth-of-type(1) {
    width: 30%;
  }
}
.page.program #program .tbl_program tr:nth-of-type(1) th:nth-of-type(2) {
  width: 14%;
  background-color: #B8E2BE;
}
@media screen and (max-width: 767px) {
  .page.program #program .tbl_program tr:nth-of-type(1) th:nth-of-type(2) {
    width: 80px;
  }
}
.page.program #program .tbl_program tr:nth-of-type(1) th:nth-of-type(3) {
  width: 14%;
  background-color: #94DDF4;
}
@media screen and (max-width: 767px) {
  .page.program #program .tbl_program tr:nth-of-type(1) th:nth-of-type(3) {
    width: 80px;
  }
}
.page.program #program .tbl_program tr:nth-of-type(1) th:nth-of-type(4) {
  width: 14%;
  background-color: #E2ACDD;
}
@media screen and (max-width: 767px) {
  .page.program #program .tbl_program tr:nth-of-type(1) th:nth-of-type(4) {
    width: 80px;
  }
}
.page.program #program .tbl_program tr:nth-of-type(1) th:nth-of-type(5) {
  width: 14%;
  background-color: #F7D89D;
}
@media screen and (max-width: 767px) {
  .page.program #program .tbl_program tr:nth-of-type(1) th:nth-of-type(5) {
    width: 80px;
  }
}
.page.program #program .tbl_program tr:nth-of-type(1) th:nth-of-type(6) {
  width: 14%;
  background-color: #FCB2B2;
}
@media screen and (max-width: 767px) {
  .page.program #program .tbl_program tr:nth-of-type(1) th:nth-of-type(6) {
    width: 80px;
  }
}
.page.program #program .tbl_program tr:nth-of-type(1) th:nth-of-type(7) {
  width: 14%;
  background-color: #BABABA;
}
@media screen and (max-width: 767px) {
  .page.program #program .tbl_program tr:nth-of-type(1) th:nth-of-type(7) {
    width: 172px;
  }
}
.page.program #program .tbl_program tr:not(:first-of-type) th {
  background-color: #F7F7F7;
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.5;
  padding: 0.8em 1em;
  vertical-align: middle;
}
@media screen and (max-width: 767px) {
  .page.program #program .tbl_program tr:not(:first-of-type) th {
    font-size: 1.25rem;
  }
}
.page.program #program .tbl_program tr:not(:first-of-type) th .ico_video {
  display: inline-block;
  width: 25px;
  aspect-ratio: 25/15;
  background: url(../images/icon_video.svg) no-repeat center/contain;
  text-indent: -99999px;
  margin-left: 0.5em;
}
@media screen and (max-width: 767px) {
  .page.program #program .tbl_program tr:not(:first-of-type) th {
    font-size: 0.875rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .page.program #program .tbl_program tr:not(:first-of-type) th {
    font-size: 0.875rem;
  }
}
.page.program #program .tbl_program tr:not(:first-of-type) td {
  text-align: center;
  font-size: 1.375rem;
  color: #fff;
  line-height: 1.5;
  padding: 0.65em;
}
@media screen and (max-width: 767px) {
  .page.program #program .tbl_program tr:not(:first-of-type) td {
    font-size: 1.375rem;
  }
}
@media screen and (max-width: 767px) {
  .page.program #program .tbl_program tr:not(:first-of-type) td {
    font-size: 1rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .page.program #program .tbl_program tr:not(:first-of-type) td {
    font-size: 1rem;
  }
}
.page.program #program .tbl_program tr:not(:first-of-type) td:nth-of-type(1) {
  background-color: #B8E2BE;
}
.page.program #program .tbl_program tr:not(:first-of-type) td:nth-of-type(2) {
  background-color: #94DDF4;
}
.page.program #program .tbl_program tr:not(:first-of-type) td:nth-of-type(3) {
  background-color: #E2ACDD;
}
.page.program #program .tbl_program tr:not(:first-of-type) td:nth-of-type(4) {
  background-color: #F7D89D;
}
.page.program #program .tbl_program tr:not(:first-of-type) td:nth-of-type(5) {
  background-color: #FCB2B2;
}
.page.program #program .tbl_program tr:not(:first-of-type) td:nth-of-type(6) {
  background-color: #BABABA;
}
.page.program #program .detail {
  padding-top: 5rem;
}
.page.program #program .detail .ico_video.red {
  display: inline-block;
  width: 35px;
  aspect-ratio: 35/20;
  background: url(../images/ico_video_red.svg) no-repeat center/contain;
  margin-left: 0.5em;
  text-indent: -99999px;
}
@media screen and (max-width: 767px) {
  .page.program #program .detail .ico_video.red {
    width: 26px;
  }
}
.page.program #program .list_program_detail {
  display: flex;
  flex-wrap: wrap;
  gap: 5em 5%;
}
.page.program #program .list_program_detail.set_mb {
  margin-bottom: 3.75em;
}
@media screen and (max-width: 767px) {
  .page.program #program .list_program_detail {
    flex-direction: column;
    gap: 4em;
  }
}
.page.program #program .list_program_detail li {
  width: 30%;
}
@media screen and (max-width: 767px) {
  .page.program #program .list_program_detail li {
    width: 100%;
  }
}
.page.program #program .list_program_detail li .image {
  position: relative;
  overflow: hidden;
  border-radius: 20px;
}
.page.program #program .list_program_detail li .image:after {
  content: "";
  display: block;
  width: 100%;
  padding-top: 60%;
}
.page.program #program .list_program_detail li .image img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  position: absolute;
  top: 0;
  left: 0;
}
.page.program #program .list_program_detail li h4 {
  font-size: 1.75rem;
  color: #E33C1C;
  line-height: 1.5;
  padding: 0.75em 0 0.5em;
}
@media screen and (max-width: 767px) {
  .page.program #program .list_program_detail li h4 {
    font-size: 1.75rem;
  }
}
@media screen and (max-width: 767px) {
  .page.program #program .list_program_detail li h4 {
    font-size: 1.3125rem;
    padding: 0.75em 0 0.5em;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .page.program #program .list_program_detail li h4 {
    font-size: 1.3125rem;
  }
}
.page.program #program .list_program_detail li p {
  font-size: 1.125rem;
}
@media screen and (max-width: 767px) {
  .page.program #program .list_program_detail li p {
    font-size: 1.125rem;
  }
}
@media screen and (max-width: 767px) {
  .page.program #program .list_program_detail li p {
    font-size: 0.875rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .page.program #program .list_program_detail li p {
    font-size: 0.875rem;
  }
}
.page.program #program .list_program_detail li .watch_video {
  margin-top: 1em;
  display: block;
  width: -moz-fit-content;
  width: fit-content;
  font-size: 1.125rem;
  font-weight: 700;
  border-bottom: 3px solid #3E3A39;
  padding: 0.125em 2.5em 0.125em 0;
  background: url(../images/icon_video.svg) no-repeat center right/2em;
}
@media screen and (max-width: 767px) {
  .page.program #program .list_program_detail li .watch_video {
    font-size: 1.125rem;
  }
}
@media screen and (max-width: 767px) {
  .page.program #program .list_program_detail li .watch_video {
    font-size: 1rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .page.program #program .list_program_detail li .watch_video {
    font-size: 1rem;
  }
}
.page.program #price {
  margin: 0 calc((50vw - 50%) * -1);
  background: url(../images/bg_program_price.png) no-repeat top center/cover;
  padding-left: 9vw;
  padding-right: 9vw;
  padding-top: 7.5rem;
  padding-bottom: 7.5rem;
}
@media screen and (min-width: 768px) {
  .page.program #price {
    padding-left: min(4.1vw, 80px);
    padding-right: min(4.1vw, 80px);
  }
}
@media screen and (max-width: 767px) {
  .page.program #price {
    background: url(../images/bg_program_price_sp.png) no-repeat top center/cover;
    padding-top: 5.625rem;
  }
}
.page.program #price .ttl_common_01 + p {
  font-size: 1.125rem;
  margin-bottom: 2.75em;
}
@media screen and (max-width: 767px) {
  .page.program #price .ttl_common_01 + p {
    font-size: 1.125rem;
  }
}
@media screen and (max-width: 767px) {
  .page.program #price .ttl_common_01 + p {
    font-size: 0.875rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .page.program #price .ttl_common_01 + p {
    font-size: 0.875rem;
  }
}
.page.program #price .boxes table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 5px;
}
.page.program #price .boxes table tr:nth-of-type(odd) td {
  background-color: #FFF0ED;
}
.page.program #price .boxes table th {
  background-color: #FAC2B7;
  font-size: 1.25rem;
  color: #fff;
  font-weight: 700;
  line-height: 1.5;
  padding: 0.75em;
  width: 50%;
}
@media screen and (max-width: 767px) {
  .page.program #price .boxes table th {
    font-size: 1.25rem;
  }
}
@media screen and (max-width: 767px) {
  .page.program #price .boxes table th {
    font-size: 0.875rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .page.program #price .boxes table th {
    font-size: 0.875rem;
  }
}
.page.program #price .boxes table td {
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.5;
  padding: 1em;
}
@media screen and (max-width: 767px) {
  .page.program #price .boxes table td {
    font-size: 1.125rem;
  }
}
@media screen and (max-width: 767px) {
  .page.program #price .boxes table td {
    font-size: 0.75rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .page.program #price .boxes table td {
    font-size: 0.75rem;
  }
}
.page.program #price .boxes .box {
  background-color: #fff;
  border-radius: 30px;
  padding: 50px 5.5%;
  display: flex;
  gap: 3.6%;
}
@media screen and (max-width: 767px) {
  .page.program #price .boxes .box {
    flex-direction: column;
    gap: 1.75em;
    padding: 38px 5.5%;
  }
}
.page.program #price .boxes .box:not(:last-of-type) {
  margin-bottom: 50px;
}
.page.program #price .boxes .box .box_left {
  flex-grow: 1;
}
@media screen and (max-width: 767px) {
  .page.program #price .boxes .box .box_left {
    padding: 0 5px;
  }
}
.page.program #price .boxes .box .box_left .head {
  font-size: 1.75rem;
  font-weight: 700;
  line-height: 1.3;
  margin-bottom: 0.75em;
}
@media screen and (max-width: 767px) {
  .page.program #price .boxes .box .box_left .head {
    font-size: 1.75rem;
  }
}
@media screen and (max-width: 767px) {
  .page.program #price .boxes .box .box_left .head {
    font-size: 1.3125rem;
    text-align: center;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .page.program #price .boxes .box .box_left .head {
    font-size: 1.3125rem;
  }
}
.page.program #price .boxes .box .box_right {
  width: 465px;
  flex-shrink: 0;
}
@media screen and (max-width: 767px) {
  .page.program #price .boxes .box .box_right {
    width: 100%;
  }
}
.page.program .btn_viewmore_exlarge {
  width: 100%;
  max-width: 700px;
  height: 108px;
  font-size: 1.75rem;
  font-weight: 700;
  margin: -54px auto 0;
}
@media screen and (max-width: 767px) {
  .page.program .btn_viewmore_exlarge {
    font-size: 1.75rem;
  }
}
.page.program .btn_viewmore_exlarge:after {
  width: 50px;
  height: 50px;
}
@media screen and (max-width: 767px) {
  .page.program .btn_viewmore_exlarge {
    width: 100%;
    height: 82px;
    font-size: 0.875rem;
    margin-top: -41px;
    padding-right: 0.5em;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .page.program .btn_viewmore_exlarge {
    font-size: 0.875rem;
  }
}
@media screen and (max-width: 767px) {
  .page.program .btn_viewmore_exlarge:after {
    width: 22px;
    height: 22px;
  }
}

.page.flow .list_step {
  display: flex;
  gap: 4.5%;
}
@media screen and (max-width: 767px) {
  .page.flow .list_step {
    flex-direction: column;
  }
}
.page.flow .list_step li {
  width: 31%;
  position: relative;
}
@media screen and (max-width: 767px) {
  .page.flow .list_step li {
    width: 100%;
  }
  .page.flow .list_step li:not(:last-child):after {
    content: "";
    display: block;
    width: 100%;
    padding-top: 135px;
    background: url(../images/arrow_flow_bottom.svg) no-repeat center/70px;
  }
}
.page.flow .list_step li .num {
  position: absolute;
  z-index: 2;
  top: 0;
  left: 0;
  background: #fff;
  border-radius: 0 0 50px 0;
  color: #E33C1C;
  font-size: 1.125rem;
  font-weight: 700;
  width: 10em;
  height: 3.6em;
  display: flex;
  justify-content: center;
  align-items: center;
}
@media screen and (max-width: 767px) {
  .page.flow .list_step li .num {
    font-size: 1.125rem;
  }
}
@media screen and (max-width: 767px) {
  .page.flow .list_step li .num {
    font-size: 0.75rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .page.flow .list_step li .num {
    font-size: 0.75rem;
  }
}
.page.flow .list_step li .image {
  position: relative;
  overflow: hidden;
  border-radius: 20px;
}
.page.flow .list_step li .image:after {
  content: "";
  display: block;
  width: 100%;
  padding-top: 60%;
}
.page.flow .list_step li .image img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  position: absolute;
  top: 0;
  left: 0;
}
.page.flow .list_step li h3 {
  font-size: 1.75rem;
  color: #E33C1C;
  padding: 0.75em 0 0.5em;
  line-height: 1.5;
}
@media screen and (max-width: 767px) {
  .page.flow .list_step li h3 {
    font-size: 1.75rem;
  }
}
@media screen and (max-width: 767px) {
  .page.flow .list_step li h3 {
    font-size: 1.5625rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .page.flow .list_step li h3 {
    font-size: 1.5625rem;
  }
}
.page.flow .list_step li p {
  font-size: 1.125rem;
}
@media screen and (max-width: 767px) {
  .page.flow .list_step li p {
    font-size: 1.125rem;
  }
}
@media screen and (max-width: 767px) {
  .page.flow .list_step li p {
    font-size: 0.875rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .page.flow .list_step li p {
    font-size: 0.875rem;
  }
}
.page.flow #procedure:after {
  content: "";
  display: block;
  width: 100%;
  padding-top: 180px;
  background: url(../images/arrow_flow_single.svg) no-repeat center/94px;
}
@media screen and (max-width: 767px) {
  .page.flow #procedure:after {
    padding-top: 135px;
    background: url(../images/arrow_flow_single.svg) no-repeat center/70px;
  }
}
.page.flow #procedure .list_procedure li:not(:last-child):after {
  content: "";
  display: block;
  width: 100%;
  padding-top: 7.5rem;
  background: url(../images/arrow_flow_beta.svg) no-repeat center/50px;
}
@media screen and (max-width: 767px) {
  .page.flow #procedure .list_procedure li:not(:last-child):after {
    padding-top: 108px;
    background: url(../images/arrow_flow_beta.svg) no-repeat center/38px;
  }
}
.page.flow #procedure .list_procedure li .container {
  background: #FFF0ED;
  border-radius: 20px;
  padding: 56px 3.3%;
  display: flex;
  align-items: center;
}
@media screen and (max-width: 767px) {
  .page.flow #procedure .list_procedure li .container {
    flex-direction: column;
    padding: 38px 9vw;
  }
}
.page.flow #procedure .list_procedure li .container h3 {
  width: 30.7%;
  flex-shrink: 0;
  font-size: 1.75rem;
  color: #E33C1C;
  line-height: 1.5;
  font-weight: 700;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .page.flow #procedure .list_procedure li .container h3 {
    font-size: 1.75rem;
  }
}
@media screen and (max-width: 767px) {
  .page.flow #procedure .list_procedure li .container h3 {
    width: 100%;
    font-size: 1.3125rem;
    margin-bottom: 1em;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .page.flow #procedure .list_procedure li .container h3 {
    font-size: 1.3125rem;
  }
}
.page.flow #procedure .list_procedure li .container h3:before {
  content: "";
  display: block;
  width: 60px;
  aspect-ratio: 1/1;
  background: url(../images/icon_procedure_01.svg) no-repeat center/contain;
  margin: 0 auto 0.5em;
}
@media screen and (max-width: 767px) {
  .page.flow #procedure .list_procedure li .container h3:before {
    width: 45px;
  }
}
.page.flow #procedure .list_procedure li .descr {
  font-size: 1.125rem;
  padding: 50px 3.5%;
  background-color: #fff;
  border-radius: 20px;
}
@media screen and (max-width: 767px) {
  .page.flow #procedure .list_procedure li .descr {
    font-size: 1.125rem;
  }
}
@media screen and (max-width: 767px) {
  .page.flow #procedure .list_procedure li .descr {
    font-size: 0.875rem;
    background-color: transparent;
    padding: 0;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .page.flow #procedure .list_procedure li .descr {
    font-size: 0.875rem;
  }
}
.page.flow #procedure .list_procedure li:nth-child(2) .container h3:before {
  background: url(../images/icon_procedure_02.svg) no-repeat center/contain;
}
.page.flow #contact:after {
  content: "";
  display: block;
  width: 100%;
  padding-top: 180px;
  background: url(../images/arrow_flow_single.svg) no-repeat center/94px;
}
@media screen and (max-width: 767px) {
  .page.flow #contact:after {
    padding-top: 135px;
    background: url(../images/arrow_flow_single.svg) no-repeat center/70px;
  }
}
.page.flow #contact .list_step_01 {
  margin-bottom: 20px;
}
@media screen and (max-width: 767px) {
  .page.flow #contact .btn_viewmore_large {
    width: 240px;
    height: 52px;
    font-size: 0.875rem;
    margin: 0 auto;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .page.flow #contact .btn_viewmore_large {
    font-size: 0.875rem;
  }
}
@media screen and (max-width: 767px) {
  .page.flow #contact .btn_viewmore_large:after {
    width: 22px;
    height: 22px;
  }
}
.page.flow #flow_02 {
  padding-top: 150px;
}
@media screen and (max-width: 767px) {
  .page.flow #flow_02 {
    padding-top: 5rem;
  }
}
.page.flow #flow_02 .ttl_border_bottom {
  font-size: 2.25rem;
  font-weight: 700;
  text-align: center;
  color: #E33C1C;
  margin-bottom: 5rem;
}
@media screen and (max-width: 767px) {
  .page.flow #flow_02 .ttl_border_bottom {
    font-size: 2.25rem;
  }
}
.page.flow #flow_02 .ttl_border_bottom span {
  display: inline-block;
  border-bottom: 3px solid #E33C1C;
}
@media screen and (max-width: 767px) {
  .page.flow #flow_02 .ttl_border_bottom {
    font-size: 1.375rem;
    margin-bottom: 2em;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .page.flow #flow_02 .ttl_border_bottom {
    font-size: 1.375rem;
  }
}
.page.flow #flow_02 .list_btn {
  display: flex;
  align-items: flex-end;
}
@media screen and (max-width: 767px) {
  .page.flow #flow_02 .list_btn {
    flex-direction: column;
    gap: 1.5em;
    margin-bottom: 2em;
  }
}
.page.flow #flow_02 .list_btn li {
  width: 50%;
}
@media screen and (max-width: 767px) {
  .page.flow #flow_02 .list_btn li {
    width: 100%;
  }
}
.page.flow #flow_02 .list_btn li a {
  display: block;
  background: #E89281 url(../images/arrow_flow_02.svg) no-repeat center right 1em/1.6em;
  font-size: 1.75rem;
  font-weight: 700;
  line-height: 1.5;
  color: #fff;
  padding: 1.25em;
  border-radius: 30px 30px 0 0;
  cursor: pointer;
  transition: none;
}
@media screen and (max-width: 767px) {
  .page.flow #flow_02 .list_btn li a {
    font-size: 1.75rem;
  }
}
.page.flow #flow_02 .list_btn li a.is-active {
  background: #E33C1C url(../images/arrow_flow_02_active.svg) no-repeat center right 1em/1.6em;
  padding: 1.75em 1.25em;
}
@media screen and (max-width: 767px) {
  .page.flow #flow_02 .list_btn li a {
    font-size: 1.125rem;
    border-radius: 0;
    padding: 0.75em 1.25em;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .page.flow #flow_02 .list_btn li a {
    font-size: 1.125rem;
  }
}
.page.flow #flow_02 .wrap_tab_content {
  border: 1px solid #E33C1C;
  background-color: #fff;
  padding: 5rem 4%;
}
@media screen and (max-width: 767px) {
  .page.flow #flow_02 .wrap_tab_content {
    padding: 3.75rem 8%;
  }
}
.page.flow #flow_02 .tab_content_flow {
  display: none;
}
.page.flow #flow_02 .tab_content_flow.is-active {
  display: block;
}
.page.flow #flow_02 .tab_content_flow .head {
  font-size: 1.875rem;
  font-weight: 700;
  text-align: center;
  margin-bottom: 1.66em;
}
@media screen and (max-width: 767px) {
  .page.flow #flow_02 .tab_content_flow .head {
    font-size: 1.875rem;
  }
}
.page.flow #flow_02 .tab_content_flow .head span {
  display: inline-block;
  border-bottom: 3px solid #3E3A39;
}
@media screen and (max-width: 767px) {
  .page.flow #flow_02 .tab_content_flow .head {
    font-size: 1.375rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .page.flow #flow_02 .tab_content_flow .head {
    font-size: 1.375rem;
  }
}
.page.flow #flow_02 .tab_content_flow ol {
  font-weight: 700;
  display: flex;
  flex-direction: column;
}
.page.flow #flow_02 .tab_content_flow ol > li:not(:last-child):not(.l--small) {
  margin-bottom: 96px;
  position: relative;
}
.page.flow #flow_02 .tab_content_flow ol > li:not(:last-child):not(.l--small):after {
  content: "";
  width: 0;
  height: 0;
  border-style: solid;
  border-right: 56px solid transparent;
  border-left: 56px solid transparent;
  border-top: 46px solid #dddddd;
  border-bottom: 0;
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translate(-50%, 50%);
}
.page.flow #flow_02 .tab_content_flow ol .box {
  padding: 1.5em 10%;
}
.page.flow #flow_02 .tab_content_flow ol .box .txt_main {
  font-size: 1.625rem;
  line-height: 1.5;
  margin-bottom: 0.3rem;
}
@media screen and (max-width: 767px) {
  .page.flow #flow_02 .tab_content_flow ol .box .txt_main {
    font-size: 1.625rem;
  }
}
@media screen and (max-width: 767px) {
  .page.flow #flow_02 .tab_content_flow ol .box .txt_main {
    font-size: 1.25rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .page.flow #flow_02 .tab_content_flow ol .box .txt_main {
    font-size: 1.25rem;
  }
}
.page.flow #flow_02 .tab_content_flow ol .box .txt_sub {
  font-size: 1.125rem;
  line-height: 1.5;
}
@media screen and (max-width: 767px) {
  .page.flow #flow_02 .tab_content_flow ol .box .txt_sub {
    font-size: 1.125rem;
  }
}
@media screen and (max-width: 767px) {
  .page.flow #flow_02 .tab_content_flow ol .box .txt_sub {
    font-size: 1rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .page.flow #flow_02 .tab_content_flow ol .box .txt_sub {
    font-size: 1rem;
  }
}
.page.flow #flow_02 .tab_content_flow ol .box_type_01 {
  border: 1px solid #1A1311;
  background-color: #F2FAFF;
}
.page.flow #flow_02 .tab_content_flow ol .box_type_01.large {
  flex-grow: 1;
}
.page.flow #flow_02 .tab_content_flow ol .box_type_02 {
  background-color: #006FBE;
  color: #fff;
}
.page.flow #flow_02 .tab_content_flow ol .l--small {
  display: flex;
  gap: 5.8%;
}
.page.flow #flow_02 .tab_content_flow ol .l--small .col_left,
.page.flow #flow_02 .tab_content_flow ol .l--small .col_right {
  width: 50%;
}
.page.flow #flow_02 .tab_content_flow ol .box_type_03 {
  border: 1px solid #3E3A39;
  background-color: #fff;
  position: relative;
  margin-bottom: 96px;
}
.page.flow #flow_02 .tab_content_flow ol .box_type_03:after {
  content: "";
  width: 0;
  height: 0;
  border-style: solid;
  border-right: 40px solid transparent;
  border-left: 40px solid transparent;
  border-top: 34px solid #dddddd;
  border-bottom: 0;
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translate(-50%, 31px);
}
.page.flow #flow_02 .tab_content_flow ol .list_kome {
  padding: 1em 0 2em;
  font-size: 1.125rem;
}
@media screen and (max-width: 767px) {
  .page.flow #flow_02 .tab_content_flow ol .list_kome {
    font-size: 1.125rem;
  }
}
@media screen and (max-width: 767px) {
  .page.flow #flow_02 .tab_content_flow ol .list_kome {
    font-size: 1rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .page.flow #flow_02 .tab_content_flow ol .list_kome {
    font-size: 1rem;
  }
}
.page.flow #flow_02 .tab_content_flow ol .list_kome li {
  padding-left: 1em;
  text-indent: -1em;
}
.page.flow #flow_02 .tab_content_flow ol .list_kome li::before {
  content: "※";
}
.page.flow #flow_02 .tab_content_flow ol .list_item > li {
  font-size: 1.375rem;
}
@media screen and (max-width: 767px) {
  .page.flow #flow_02 .tab_content_flow ol .list_item > li {
    font-size: 1.375rem;
  }
}
@media screen and (max-width: 767px) {
  .page.flow #flow_02 .tab_content_flow ol .list_item > li {
    font-size: 1.125rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .page.flow #flow_02 .tab_content_flow ol .list_item > li {
    font-size: 1.125rem;
  }
}
.page.flow #flow_02 .tab_content_flow ol .list_item > li:not(:last-child) {
  margin-bottom: 0.5em;
}
.page.flow #flow_02 .tab_content_flow ol .list_item > li .list_item_child {
  padding-left: 1em;
  padding-top: 0.125em;
}
.page.flow #flow_02 .tab_content_flow ol .list_item > li .list_item_child li {
  font-size: 1.25rem;
}
@media screen and (max-width: 767px) {
  .page.flow #flow_02 .tab_content_flow ol .list_item > li .list_item_child li {
    font-size: 1.25rem;
  }
}
@media screen and (max-width: 767px) {
  .page.flow #flow_02 .tab_content_flow ol .list_item > li .list_item_child li {
    font-size: 0.875rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .page.flow #flow_02 .tab_content_flow ol .list_item > li .list_item_child li {
    font-size: 0.875rem;
  }
}
.page.flow #flow_02 .tab_content_flow ol .list_item > li .list_item_child li:not(:last-child) {
  margin-bottom: 0.125em;
}
.page.flow #flow_02 .tab_content_flow ol .list_item > li .list_dot li {
  padding-left: 1em;
  text-indent: -1em;
}
.page.flow #flow_02 .tab_content_flow ol .list_item > li .list_dot li::before {
  content: "・";
}
.page.flow #flow_02 .tab_content_flow .l--cnt_col2 {
  display: flex;
  gap: 2.8%;
}
@media screen and (max-width: 767px) {
  .page.flow #flow_02 .tab_content_flow .l--cnt_col2 {
    flex-direction: column;
    gap: 40px;
  }
}
.page.flow #flow_02 .tab_content_flow .l--cnt_col2 .cnt_left,
.page.flow #flow_02 .tab_content_flow .l--cnt_col2 .cnt_right {
  width: 100%;
  display: flex;
  flex-direction: column;
}
.page.flow #flow_02 .tab_content_flow .l--cnt_col2 .cnt_left ol,
.page.flow #flow_02 .tab_content_flow .l--cnt_col2 .cnt_right ol {
  flex-grow: 1;
}
.page.flow #flow_02 .tab_content_flow .l--cnt_col2 .cnt_left .head {
  color: #006FBE;
}
.page.flow #flow_02 .tab_content_flow .l--cnt_col2 .cnt_left .head span {
  border-color: #006FBE;
}
.page.flow #flow_02 .tab_content_flow .l--cnt_col2 .cnt_right .head {
  color: #E33C1C;
}
.page.flow #flow_02 .tab_content_flow .l--cnt_col2 .cnt_right .head span {
  border-color: #E33C1C;
}
.page.flow #flow_02 .tab_content_flow .l--cnt_col2 .cnt_right ol .box_type_01 {
  background-color: #FFE9E5;
}
.page.flow #flow_02 .tab_content_flow .l--cnt_col2 .cnt_right ol .box_type_02 {
  background-color: #E33C1C;
}

.page.treatment .lead {
  font-size: 1.25rem;
  margin-bottom: 7em;
}
@media screen and (max-width: 767px) {
  .page.treatment .lead {
    font-size: 1.25rem;
  }
}
@media screen and (max-width: 767px) {
  .page.treatment .lead {
    font-size: 0.9375rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .page.treatment .lead {
    font-size: 0.9375rem;
  }
}
.page.treatment .links_feature {
  padding-top: 0;
}
.page.treatment .section_container {
  margin: 0 calc((50vw - 50%) * -1);
  background-color: #FFF0ED;
  padding-left: 9vw;
  padding-right: 9vw;
  padding-top: 150px;
  padding-bottom: 150px;
  position: relative;
}
@media screen and (min-width: 768px) {
  .page.treatment .section_container {
    padding-left: min(4.1vw, 80px);
    padding-right: min(4.1vw, 80px);
  }
}
@media screen and (max-width: 767px) {
  .page.treatment .section_container {
    padding-top: 5.625rem;
    padding-bottom: 5.625rem;
  }
}
.page.treatment .section_container:before {
  content: "";
  display: block;
  width: 130px;
  height: 130px;
  background: url(../images/icon_magnifier.svg) no-repeat center/contain;
  position: absolute;
  top: 0;
  left: 50%;
  transform: translate(-50%, -50%);
}
@media screen and (max-width: 767px) {
  .page.treatment .section_container:before {
    width: 82px;
    height: 82px;
  }
}
.page.treatment .section_container section {
  margin-bottom: 7.5rem;
}
@media screen and (max-width: 767px) {
  .page.treatment .section_container section {
    margin-bottom: 5.625rem;
  }
}
.page.treatment .section_container .ttl_border_tb {
  margin-bottom: 0;
}
@media screen and (max-width: 767px) {
  .page.treatment .section_container .ttl_border_tb {
    border-width: 1px;
  }
}
.page.treatment .section_container .ttl_border_tb + .descr {
  font-size: 1.25rem;
  font-weight: 700;
  padding: 3em 0;
}
@media screen and (max-width: 767px) {
  .page.treatment .section_container .ttl_border_tb + .descr {
    font-size: 1.25rem;
  }
}
@media screen and (max-width: 767px) {
  .page.treatment .section_container .ttl_border_tb + .descr {
    font-size: 0.9375rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .page.treatment .section_container .ttl_border_tb + .descr {
    font-size: 0.9375rem;
  }
}
.page.treatment .section_container .box_wh {
  background-color: #fff;
  border-radius: 20px;
  padding: 54px 3.6%;
  display: flex;
  align-items: center;
}
@media screen and (max-width: 767px) {
  .page.treatment .section_container .box_wh {
    flex-direction: column;
    padding: 40px 9vw;
  }
}
.page.treatment .section_container .box_wh .box_common {
  width: 31%;
  min-width: 265px;
  flex-shrink: 0;
  font-size: 1.75rem;
  color: #E33C1C;
  font-weight: 700;
  line-height: 1.6;
  padding-right: 1em;
}
@media screen and (max-width: 767px) {
  .page.treatment .section_container .box_wh .box_common {
    font-size: 1.75rem;
  }
}
.page.treatment .section_container .box_wh .box_common .logo {
  width: 160px;
  margin-bottom: 0.5em;
}
@media screen and (max-width: 767px) {
  .page.treatment .section_container .box_wh .box_common {
    min-width: unset;
    width: 100%;
    font-size: 1.1875rem;
    padding-right: 0em;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .page.treatment .section_container .box_wh .box_common {
    font-size: 1.1875rem;
  }
}
@media screen and (max-width: 767px) {
  .page.treatment .section_container .box_wh .box_common .logo {
    margin: 0 auto 1em;
  }
}
.page.treatment .section_container .box_wh .box_red {
  flex-grow: 1;
  background: #FFF0ED;
  border-radius: 20px;
  font-size: 1.125rem;
  line-height: 2;
  padding: 2.5em 3%;
}
@media screen and (max-width: 767px) {
  .page.treatment .section_container .box_wh .box_red {
    font-size: 1.125rem;
  }
}
@media screen and (max-width: 767px) {
  .page.treatment .section_container .box_wh .box_red {
    background: transparent;
    font-size: 0.875rem;
    padding-left: 0;
    padding-right: 0;
    padding-bottom: 0;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .page.treatment .section_container .box_wh .box_red {
    font-size: 0.875rem;
  }
}
@media screen and (max-width: 767px) {
  .page.treatment .section_container .box_wh .box_red p:not(:last-of-type) {
    margin-bottom: 1.75em;
  }
}

.page.information #school_info .gmap {
  position: relative;
  border-radius: 50px;
  overflow: hidden;
}
.page.information #school_info .gmap:after {
  content: "";
  display: block;
  width: 100%;
  padding-top: 444px;
}
.page.information #school_info .gmap iframe {
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}
@media screen and (max-width: 767px) {
  .page.information #school_info .gmap {
    position: relative;
    border-radius: 38px;
  }
  .page.information #school_info .gmap:after {
    content: "";
    display: block;
    width: 100%;
    padding-top: 65%;
  }
  .page.information #school_info .gmap iframe {
    display: block;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
  }
}
.page.information #school_info .l-flex {
  display: flex;
  flex-direction: row-reverse;
  gap: 6%;
  margin-bottom: 7.5rem;
}
@media screen and (max-width: 767px) {
  .page.information #school_info .l-flex {
    flex-direction: column-reverse;
  }
}
.page.information #school_info .l-flex:nth-of-type(2) {
  padding-top: 4em;
}
.page.information #school_info .l-flex .l-left {
  width: 44%;
  padding-top: 5rem;
}
@media screen and (max-width: 767px) {
  .page.information #school_info .l-flex .l-left {
    width: 100%;
    padding-top: 3.75rem;
  }
}
.page.information #school_info .l-flex .l-left .footer_logo {
  width: 253px;
  margin-bottom: 3em;
}
@media screen and (max-width: 767px) {
  .page.information #school_info .l-flex .l-left .footer_logo {
    width: 208px;
    margin: 0 auto 2em;
  }
}
.page.information #school_info .l-flex .l-left address dl .row {
  display: flex;
  align-items: baseline;
  letter-spacing: 0.06em;
}
@media screen and (max-width: 767px) {
  .page.information #school_info .l-flex .l-left address dl .row {
    flex-direction: column;
  }
}
.page.information #school_info .l-flex .l-left address dl .row:not(:last-of-type) {
  margin-bottom: 1em;
}
.page.information #school_info .l-flex .l-left address dl dt {
  font-weight: 700;
  width: 10em;
  flex-shrink: 0;
  font-size: 1.25rem;
}
@media screen and (max-width: 767px) {
  .page.information #school_info .l-flex .l-left address dl dt {
    font-size: 1.25rem;
  }
}
@media screen and (max-width: 767px) {
  .page.information #school_info .l-flex .l-left address dl dt {
    width: auto;
    font-size: 0.9375rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .page.information #school_info .l-flex .l-left address dl dt {
    font-size: 0.9375rem;
  }
}
.page.information #school_info .l-flex .l-left address dl dd {
  font-size: 1.125rem;
}
@media screen and (max-width: 767px) {
  .page.information #school_info .l-flex .l-left address dl dd {
    font-size: 1.125rem;
  }
}
@media screen and (max-width: 767px) {
  .page.information #school_info .l-flex .l-left address dl dd {
    font-size: 0.875rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .page.information #school_info .l-flex .l-left address dl dd {
    font-size: 0.875rem;
  }
}
.page.information #school_info .l-flex .l-right {
  width: 50%;
}
@media screen and (max-width: 767px) {
  .page.information #school_info .l-flex .l-right {
    width: 100%;
  }
}
.page.information #school_info #info_slider {
  margin: 0 min((50vw - 50%) * -1, 0px);
  background: linear-gradient(0deg, #E33C1C 0%, #E33C1C 50%, transparent 50%, transparent 100%);
  padding-bottom: 7.5rem;
}
@media screen and (max-width: 767px) {
  .page.information #school_info #info_slider {
    padding-bottom: 0;
  }
}
.page.information #school_info #info_slider .slider_container {
  max-width: 1160px;
  margin: 0 auto;
}
.page.information #school_info #info_slider .slider_container .wrap {
  padding: 0 25px;
}
.page.information #school_info #info_slider .slider_container .wrap .slide_item {
  width: 580px;
  position: relative;
}
.page.information #school_info #info_slider .slider_container .wrap .slide_item:after {
  content: "";
  display: block;
  width: 100%;
  padding-top: 60%;
}
.page.information #school_info #info_slider .slider_container .wrap .slide_item img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  position: absolute;
  top: 0;
  left: 0;
}
@media screen and (max-width: 767px) {
  .page.information #school_info #info_slider .slider_container .wrap .slide_item {
    width: 100%;
  }
}
.page.information #school_info #info_slider .slider_container .slick-list {
  overflow: visible;
}
.page.information #school_info #info_slider .slider_container .slick-arrow {
  border: none;
  text-indent: -999999px;
  background: no-repeat center/contain;
  display: block;
  width: 72px;
  height: 72px;
  position: absolute;
  top: 50%;
}
.page.information #school_info #info_slider .slider_container .slick-arrow.slick-prev {
  background-image: url(../images/arrow_slide_prev.svg);
  left: 0;
  transform: translate(-50%, -50%);
  z-index: 2;
}
@media screen and (max-width: 767px) {
  .page.information #school_info #info_slider .slider_container .slick-arrow.slick-prev {
    left: 50px;
  }
}
.page.information #school_info #info_slider .slider_container .slick-arrow.slick-next {
  background-image: url(../images/arrow_slide_next.svg);
  right: 0;
  transform: translate(50%, -50%);
}
@media screen and (max-width: 767px) {
  .page.information #school_info #info_slider .slider_container .slick-arrow.slick-next {
    right: 50px;
  }
}
.page.information #school_info #info_slider .slider_container .slick-arrow.slick-disabled {
  display: none !important;
}
@media screen and (max-width: 767px) {
  .page.information #school_info #info_slider .slider_container .slick-arrow {
    width: 45px;
    height: 45px;
  }
}
.page.information #school_info #info_slider .dot_container {
  padding: 3em 0;
  padding-left: 9vw;
  padding-right: 9vw;
}
@media screen and (min-width: 768px) {
  .page.information #school_info #info_slider .dot_container {
    padding-left: min(4.1vw, 80px);
    padding-right: min(4.1vw, 80px);
  }
}
@media screen and (max-width: 767px) {
  .page.information #school_info #info_slider .dot_container {
    padding-top: 1.5em;
    padding-bottom: 1.5em;
  }
}
.page.information #school_info #info_slider .dot_container .slide-dots {
  max-width: 1110px;
  margin: 0 auto;
}
.page.information #school_info #info_slider .dot_container .slide-dots li {
  display: inline-block;
}
.page.information #school_info #info_slider .dot_container .slide-dots li button {
  border: none;
  display: block;
  height: 5px;
  background-color: #fff;
  width: 7vw;
  font-size: 0rem;
}
@media screen and (max-width: 767px) {
  .page.information #school_info #info_slider .dot_container .slide-dots li button {
    font-size: 0rem;
  }
}
.page.information #school_info #info_slider .dot_container .slide-dots li.slick-active button {
  background: #FAC2B7;
}
.page.information #company_info {
  margin: 0 min((50vw - 50%) * -1, 0px);
  padding-left: 9vw;
  padding-right: 9vw;
  background: linear-gradient(180deg, #E33C1C 0px, #E33C1C 187px, transparent 187px, transparent 100%);
}
@media screen and (min-width: 768px) {
  .page.information #company_info {
    padding-left: min(4.1vw, 80px);
    padding-right: min(4.1vw, 80px);
  }
}
@media screen and (max-width: 767px) {
  .page.information #company_info {
    background: linear-gradient(180deg, #E33C1C 0px, #E33C1C 80px, transparent 80px, transparent 100%);
  }
}
.page.information #company_info .container {
  background-color: white;
  border-radius: 50px 50px 0 0;
  padding: 7.5rem 0 0;
  padding-left: 9vw;
  padding-right: 9vw;
}
@media screen and (min-width: 768px) {
  .page.information #company_info .container {
    padding-left: min(4.1vw, 80px);
    padding-right: min(4.1vw, 80px);
  }
}
@media screen and (max-width: 767px) {
  .page.information #company_info .container {
    padding: 3.75rem 0 0;
  }
}
.page.information #company_info .content .flex_box {
  display: flex;
  gap: 5%;
  margin-bottom: 5rem;
}
@media screen and (max-width: 767px) {
  .page.information #company_info .content .flex_box {
    display: block;
  }
}
.page.information #company_info .content .flex_box .ttl {
  width: 22%;
  flex-shrink: 0;
  font-weight: 700;
}
@media screen and (max-width: 767px) {
  .page.information #company_info .content .flex_box .ttl {
    width: 100%;
    text-align: center;
  }
}
.page.information #company_info .content .flex_box .ttl .ja {
  font-size: 3rem;
  color: #E33C1C;
}
@media screen and (max-width: 767px) {
  .page.information #company_info .content .flex_box .ttl .ja {
    font-size: 3rem;
  }
}
@media screen and (max-width: 767px) {
  .page.information #company_info .content .flex_box .ttl .ja {
    font-size: 1.75rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .page.information #company_info .content .flex_box .ttl .ja {
    font-size: 1.75rem;
  }
}
.page.information #company_info .content .flex_box .ttl .en {
  font-size: 1.375rem;
  color: #FFF0ED;
}
@media screen and (max-width: 767px) {
  .page.information #company_info .content .flex_box .ttl .en {
    font-size: 1.375rem;
  }
}
@media screen and (max-width: 767px) {
  .page.information #company_info .content .flex_box .ttl .en {
    font-size: 1rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .page.information #company_info .content .flex_box .ttl .en {
    font-size: 1rem;
  }
}
.page.information #company_info .content .flex_box dl {
  flex-grow: 1;
  display: flex;
  flex-wrap: wrap;
}
@media screen and (max-width: 767px) {
  .page.information #company_info .content .flex_box dl {
    display: block;
  }
}
.page.information #company_info .content .flex_box dl .row {
  padding: 2em 0;
  border-top: 1px solid #FAC2B7;
  border-bottom: 1px solid #FAC2B7;
  width: 100%;
}
.page.information #company_info .content .flex_box dl .row:not(:last-of-type) {
  width: 50%;
  border-bottom: none;
}
@media screen and (max-width: 767px) {
  .page.information #company_info .content .flex_box dl .row:not(:last-of-type) {
    width: 100%;
  }
}
@media screen and (max-width: 767px) {
  .page.information #company_info .content .flex_box dl .row:first-of-type {
    border-top: none;
  }
}
.page.information #company_info .content .flex_box dl dt {
  font-size: 1.375rem;
  font-weight: 700;
  margin-bottom: 0.25em;
}
@media screen and (max-width: 767px) {
  .page.information #company_info .content .flex_box dl dt {
    font-size: 1.375rem;
  }
}
@media screen and (max-width: 767px) {
  .page.information #company_info .content .flex_box dl dt {
    font-size: 1rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .page.information #company_info .content .flex_box dl dt {
    font-size: 1rem;
  }
}
.page.information #company_info .content .flex_box dl dd {
  font-size: 1.125rem;
}
@media screen and (max-width: 767px) {
  .page.information #company_info .content .flex_box dl dd {
    font-size: 1.125rem;
  }
}
@media screen and (max-width: 767px) {
  .page.information #company_info .content .flex_box dl dd {
    font-size: 0.875rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .page.information #company_info .content .flex_box dl dd {
    font-size: 0.875rem;
  }
}
.page.information #company_info .content .list_links {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 64px;
}
.page.information #company_info .content .list_links li {
  width: 100%;
  max-width: 460px;
}
@media screen and (max-width: 767px) {
  .page.information #company_info .content .list_links {
    flex-direction: column;
    gap: 1em;
  }
}

.page.recruit .lead {
  margin-bottom: 5rem;
}
.page.recruit .lead p {
  font-size: 2.375rem;
  font-weight: 700;
  color: #E33C1C;
  line-height: 1.58;
}
@media screen and (max-width: 767px) {
  .page.recruit .lead p {
    font-size: 2.375rem;
  }
}
@media screen and (max-width: 767px) {
  .page.recruit .lead p {
    font-size: 1.5rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .page.recruit .lead p {
    font-size: 1.5rem;
  }
}
.page.recruit .cnt_main {
  background: url(../images/bg_recruit_cnt.jpg) no-repeat center top/100%;
  padding-left: 9vw;
  padding-right: 9vw;
  padding-top: 34.6%;
}
@media screen and (min-width: 768px) {
  .page.recruit .cnt_main {
    padding-left: min(4.1vw, 80px);
    padding-right: min(4.1vw, 80px);
  }
}
@media screen and (max-width: 767px) {
  .page.recruit .cnt_main {
    margin: 0 calc((50vw - 50%) * -1);
    background: url(../images/bg_recruit_cnt.jpg) no-repeat center top/120%;
    padding: 56% 4.5vw 0;
  }
}
.page.recruit .cnt_white {
  background-color: #fff;
  border-radius: 5em 5em 0 0;
  padding-left: 9vw;
  padding-right: 9vw;
  padding-top: 5rem;
}
@media screen and (min-width: 768px) {
  .page.recruit .cnt_white {
    padding-left: min(4.1vw, 80px);
    padding-right: min(4.1vw, 80px);
  }
}
@media screen and (max-width: 767px) {
  .page.recruit .cnt_white {
    border-radius: 3.75em 3.75em 0 0;
    padding: 2.5rem 4.5vw;
  }
}
.page.recruit #r_about {
  padding-bottom: 7.5rem;
}
@media screen and (max-width: 767px) {
  .page.recruit #r_about {
    padding-bottom: 5rem;
  }
}
.page.recruit #r_about h2 {
  text-align: center;
  font-size: 1.75rem;
  font-weight: 700;
  color: #E33C1C;
  margin-bottom: 1.5em;
}
@media screen and (max-width: 767px) {
  .page.recruit #r_about h2 {
    font-size: 1.75rem;
  }
}
.page.recruit #r_about h2:before {
  content: "＼";
}
.page.recruit #r_about h2:after {
  content: "／";
}
@media screen and (max-width: 767px) {
  .page.recruit #r_about h2 {
    font-size: 1.375rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .page.recruit #r_about h2 {
    font-size: 1.375rem;
  }
}
@media screen and (max-width: 767px) {
  .page.recruit #r_about h2:before, .page.recruit #r_about h2:after {
    content: none;
  }
}
.page.recruit #r_about .list_check {
  border: none;
  padding: 0;
  margin-bottom: 5rem;
}
.page.recruit #r_about .para {
  font-size: 1.25rem;
  line-height: 1.9;
}
.page.recruit #r_about .para:before {
  content: "";
  display: block;
  width: 77%;
  aspect-ratio: 850/168;
  background: url(../images/icon_common_about.svg) no-repeat center/contain;
  margin: 0 auto 2.5rem;
}
@media screen and (max-width: 767px) {
  .page.recruit #r_about .para:before {
    width: auto;
  }
}
@media screen and (max-width: 767px) {
  .page.recruit #r_about .para {
    font-size: 1.25rem;
  }
}
@media screen and (max-width: 767px) {
  .page.recruit #r_about .para {
    font-size: 1rem;
    text-align: left;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .page.recruit #r_about .para {
    font-size: 1rem;
  }
}
.page.recruit #r_works {
  padding-bottom: 7.5rem;
}
@media screen and (max-width: 767px) {
  .page.recruit #r_works {
    padding-bottom: 5rem;
  }
}
.page.recruit #r_works h2 {
  font-size: 1.75rem;
  font-weight: 700;
  line-height: 1.5;
  padding: 1.4em;
  color: #E33C1C;
  background-color: #FFDED8;
  border-radius: 100px;
  text-align: center;
  margin-bottom: 5rem;
}
@media screen and (max-width: 767px) {
  .page.recruit #r_works h2 {
    font-size: 1.75rem;
  }
}
@media screen and (max-width: 767px) {
  .page.recruit #r_works h2 {
    font-size: 1.25rem;
    margin-bottom: 2em;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .page.recruit #r_works h2 {
    font-size: 1.25rem;
  }
}
.page.recruit #r_works .schedule li {
  display: flex;
  font-size: 1.375rem;
  font-weight: 700;
}
@media screen and (max-width: 767px) {
  .page.recruit #r_works .schedule li {
    font-size: 1.375rem;
  }
}
.page.recruit #r_works .schedule li:not(:last-child) {
  margin-bottom: 2em;
}
@media screen and (max-width: 767px) {
  .page.recruit #r_works .schedule li {
    font-size: 1rem;
    flex-direction: column;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .page.recruit #r_works .schedule li {
    font-size: 1rem;
  }
}
.page.recruit #r_works .schedule li .time {
  width: 26%;
  min-width: 280px;
  flex-shrink: 0;
  padding: 1em 3%;
}
@media screen and (max-width: 767px) {
  .page.recruit #r_works .schedule li .time {
    min-width: unset;
    width: 100%;
    border-left: 3px solid #3E3A39;
    padding: 0.25em 3%;
  }
}
.page.recruit #r_works .schedule li .task {
  border-left: 1px solid #707070;
  padding: 1em 3%;
}
@media screen and (max-width: 767px) {
  .page.recruit #r_works .schedule li .task {
    border-left: none;
    padding: 0.5em 3% 0;
  }
}
.page.recruit #r_works .schedule li .task .descr {
  font-size: 1.125rem;
  font-weight: 400;
}
@media screen and (max-width: 767px) {
  .page.recruit #r_works .schedule li .task .descr {
    font-size: 1.125rem;
  }
}
@media screen and (max-width: 767px) {
  .page.recruit #r_works .schedule li .task .descr {
    font-size: 0.875rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .page.recruit #r_works .schedule li .task .descr {
    font-size: 0.875rem;
  }
}
.page.recruit #application .ttl_page_h1 {
  margin-bottom: 3.5em;
}
@media screen and (max-width: 767px) {
  .page.recruit #application .ttl_page_h1 {
    margin-bottom: 2em;
  }
}
.page.recruit #application .application_cmn {
  border-radius: 30px;
  background-color: #FFF3F0;
  padding-left: 9vw;
  padding-right: 9vw;
  padding-top: 5rem;
  padding-bottom: 5rem;
}
@media screen and (min-width: 768px) {
  .page.recruit #application .application_cmn {
    padding-left: min(4.1vw, 80px);
    padding-right: min(4.1vw, 80px);
  }
}
.page.recruit #application .application_cmn:not(:last-of-type) {
  margin-bottom: 60px;
}
@media screen and (max-width: 767px) {
  .page.recruit #application .application_cmn:not(:last-of-type) {
    margin-bottom: 45px;
  }
}
@media screen and (max-width: 767px) {
  .page.recruit #application .application_cmn {
    margin: 0 calc((50vw - 50%) * -1);
    padding-top: 3.75rem;
    padding-bottom: 3.75rem;
  }
}
.page.recruit #application .application_cmn .head {
  font-size: 1.75rem;
  font-weight: 700;
  text-align: center;
  line-height: 1.5;
  margin-bottom: 1.5em;
}
@media screen and (max-width: 767px) {
  .page.recruit #application .application_cmn .head {
    font-size: 1.75rem;
  }
}
@media screen and (max-width: 767px) {
  .page.recruit #application .application_cmn .head {
    font-size: 1.375rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .page.recruit #application .application_cmn .head {
    font-size: 1.375rem;
  }
}
.page.recruit #application .application_cmn .dlist_application .group {
  display: flex;
  gap: 1em;
}
@media screen and (max-width: 767px) {
  .page.recruit #application .application_cmn .dlist_application .group {
    display: block;
    background-color: #fff;
    padding: 1.5em 1em;
  }
}
.page.recruit #application .application_cmn .dlist_application .group:not(:last-of-type) {
  margin-bottom: 1em;
}
.page.recruit #application .application_cmn .dlist_application .group dt {
  width: 28%;
  flex-shrink: 0;
  font-size: 1.125rem;
  font-weight: 700;
  background-color: #fff;
  padding: 1rem;
  min-width: 8em;
}
@media screen and (max-width: 767px) {
  .page.recruit #application .application_cmn .dlist_application .group dt {
    font-size: 1.125rem;
  }
}
@media screen and (max-width: 767px) {
  .page.recruit #application .application_cmn .dlist_application .group dt {
    font-size: 1rem;
    width: 100%;
    min-width: unset;
    padding: 0;
    margin-bottom: 0.5em;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .page.recruit #application .application_cmn .dlist_application .group dt {
    font-size: 1rem;
  }
}
.page.recruit #application .application_cmn .dlist_application .group dd {
  flex-grow: 1;
  background-color: #fff;
  padding: 1rem;
}
@media screen and (max-width: 767px) {
  .page.recruit #application .application_cmn .dlist_application .group dd {
    padding: 0;
  }
}

.page.policy {
  /* ********** プライバシーポリシー ********** */
}
.page.policy .txt_polisy {
  margin-bottom: 4em;
  font-size: 0.9375em;
}
.page.policy .dlist_policy .dlist_policy_inner {
  margin-bottom: 4em;
}
.page.policy .dlist_policy dt {
  font-size: 1.4em;
  line-height: 1.6;
  font-weight: bold;
  margin-bottom: 0.5em;
  color: #E33C1C;
}
.page.policy .dlist_policy dd {
  font-size: 0.9375em;
}
.page.policy .dlist_policy dd ul {
  padding-left: 20px;
}
.page.policy .dlist_policy dd ul li {
  list-style-type: disc;
}
.page.policy .policy_box {
  background-color: #FFF0ED;
  padding: 2em;
}
@media screen and (max-width: 767px) {
  .page.policy .policy_box {
    width: calc(100% + 16vw);
    margin-left: -8vw;
    padding: 2em 8vw;
  }
}
.page.policy .policy_box .ttl {
  font-size: 1.125em;
  margin-bottom: 0.5em;
}
.page.policy .policy_box .txt {
  font-size: 0.9375em;
}

.page.contact .lead,
.page.confirm .lead {
  margin-bottom: 5rem;
}
.page.contact .lead p,
.page.confirm .lead p {
  font-size: 1.125rem;
  color: #3E3A39;
  margin-bottom: 2em;
}
@media screen and (max-width: 767px) {
  .page.contact .lead p,
  .page.confirm .lead p {
    font-size: 1.125rem;
  }
}
@media screen and (max-width: 767px) {
  .page.contact .lead p,
  .page.confirm .lead p {
    font-size: 0.875rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .page.contact .lead p,
  .page.confirm .lead p {
    font-size: 0.875rem;
  }
}
.page.contact .lead .box_tel,
.page.confirm .lead .box_tel {
  text-align: center;
  color: #E33C1C;
  line-height: 1.6;
}
.page.contact .lead .box_tel .head,
.page.confirm .lead .box_tel .head {
  font-size: 1.3125rem;
  font-weight: 700;
}
@media screen and (max-width: 767px) {
  .page.contact .lead .box_tel .head,
  .page.confirm .lead .box_tel .head {
    font-size: 1.3125rem;
  }
}
@media screen and (max-width: 767px) {
  .page.contact .lead .box_tel .head,
  .page.confirm .lead .box_tel .head {
    font-size: 1rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .page.contact .lead .box_tel .head,
  .page.confirm .lead .box_tel .head {
    font-size: 1rem;
  }
}
.page.contact .lead .box_tel .num,
.page.confirm .lead .box_tel .num {
  font-size: 3.5625rem;
  font-weight: 600;
}
@media screen and (max-width: 767px) {
  .page.contact .lead .box_tel .num,
  .page.confirm .lead .box_tel .num {
    font-size: 3.5625rem;
  }
}
@media screen and (max-width: 767px) {
  .page.contact .lead .box_tel .num,
  .page.confirm .lead .box_tel .num {
    font-size: 2.125rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .page.contact .lead .box_tel .num,
  .page.confirm .lead .box_tel .num {
    font-size: 2.125rem;
  }
}
.page.contact .lead .box_tel .info,
.page.confirm .lead .box_tel .info {
  font-size: 1.125rem;
}
@media screen and (max-width: 767px) {
  .page.contact .lead .box_tel .info,
  .page.confirm .lead .box_tel .info {
    font-size: 1.125rem;
  }
}
@media screen and (max-width: 767px) {
  .page.contact .lead .box_tel .info,
  .page.confirm .lead .box_tel .info {
    font-size: 0.875rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .page.contact .lead .box_tel .info,
  .page.confirm .lead .box_tel .info {
    font-size: 0.875rem;
  }
}

#form_box .dlist_form .group {
  display: flex;
  align-items: baseline;
  gap: 5%;
  margin-bottom: 3em;
}
@media screen and (max-width: 767px) {
  #form_box .dlist_form .group {
    flex-direction: column;
    gap: 1em;
  }
}
#form_box .dlist_form .group dt {
  width: 22%;
  flex-shrink: 0;
  font-size: 1.125rem;
  font-weight: 700;
}
@media screen and (max-width: 767px) {
  #form_box .dlist_form .group dt {
    font-size: 1.125rem;
  }
}
#form_box .dlist_form .group dt.require:after {
  content: "必須";
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 68px;
  height: 31px;
  background-color: #E33C1C;
  margin-left: 1em;
  font-size: 1rem;
  font-weight: 400;
  color: #fff;
}
@media screen and (max-width: 767px) {
  #form_box .dlist_form .group dt.require:after {
    font-size: 1rem;
  }
}
@media screen and (max-width: 767px) {
  #form_box .dlist_form .group dt {
    width: 100%;
    font-size: 0.875rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  #form_box .dlist_form .group dt {
    font-size: 0.875rem;
  }
}
@media screen and (max-width: 767px) {
  #form_box .dlist_form .group dt.require:after {
    width: 51px;
    height: 23px;
  }
}
#form_box .dlist_form .group dd {
  flex-grow: 1;
  font-size: 1.125rem;
}
@media screen and (max-width: 767px) {
  #form_box .dlist_form .group dd {
    font-size: 1.125rem;
  }
}
#form_box .dlist_form .group dd input, #form_box .dlist_form .group dd textarea, #form_box .dlist_form .group dd select {
  font-size: inherit;
  padding: 1em;
  border: none;
  background-color: #F7F7F7;
}
#form_box .dlist_form .group dd .attention {
  display: block;
  font-size: 1rem;
  padding-top: 0.5em;
}
@media screen and (max-width: 767px) {
  #form_box .dlist_form .group dd .attention {
    font-size: 1rem;
  }
}
@media screen and (max-width: 767px) {
  #form_box .dlist_form .group dd {
    font-size: 0.875rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  #form_box .dlist_form .group dd {
    font-size: 0.875rem;
  }
}
@media screen and (max-width: 767px) {
  #form_box .dlist_form .group dd .attention {
    font-size: 0.75rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  #form_box .dlist_form .group dd .attention {
    font-size: 0.75rem;
  }
}
#form_box .box_privacy {
  border-top: 1px dashed #3E3A39;
  padding-top: 3em;
}
#form_box .box_privacy .head {
  font-size: 1.25rem;
  font-weight: 700;
  margin-bottom: 0.5em;
}
@media screen and (max-width: 767px) {
  #form_box .box_privacy .head {
    font-size: 1.25rem;
  }
}
#form_box .box_privacy .list_dots {
  margin-bottom: 3em;
}
#form_box .layout_form_btns {
  padding-top: 5rem;
}
@media screen and (max-width: 767px) {
  #form_box .layout_form_btns {
    padding-top: 3.75rem;
  }
}
#form_box .layout_form_btns button:not(:last-of-type) {
  margin-bottom: 2em;
}
.box_agreement {
  font-size: 1.125rem;
  background: #F2F2F2;
  padding: 3em;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .box_agreement {
    font-size: 1.125rem;
  }
}
@media screen and (max-width: 767px) {
  .box_agreement {
    font-size: 0.875rem;
    padding: 2em 1em;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .box_agreement {
    font-size: 0.875rem;
  }
}

.mwform-radio-field {
  margin-bottom: 1em;
}

input[name=your-content],
input.your-agree {
  display: none;
}

input[name=your-content] + .mwform-radio-field-text,
input.your-agree + .mwform-checkbox-field-text {
  display: flex;
  align-items: center;
  gap: 1em;
}
input[name=your-content] + .mwform-radio-field-text:before,
input.your-agree + .mwform-checkbox-field-text:before {
  content: "";
  display: inline-block;
  width: 31px;
  height: 31px;
  background: url(../images/icon_checkbox.svg) no-repeat center/contain;
}
@media screen and (max-width: 767px) {
  input[name=your-content] + .mwform-radio-field-text:before,
  input.your-agree + .mwform-checkbox-field-text:before {
    width: 24px;
    height: 24px;
  }
}

input.your-agree + .mwform-checkbox-field-text {
  justify-content: center;
}

input.your-agree + .mwform-checkbox-field-text:before {
  background: #fff url(../images/icon_checkbox_blue.svg) no-repeat center/contain;
  border-radius: 3px;
}

input[name=your-content]:checked + .mwform-radio-field-text:before,
input.your-agree:checked + .mwform-checkbox-field-text:before {
  background: url(../images/icon_checkbox_checked.svg) no-repeat center/contain;
}

input.your-agree:checked + .mwform-checkbox-field-text:before {
  background: #fff url(../images/icon_checkbox_blue_checked.svg) no-repeat center/contain;
}

.page.confirm dt.require:after,
.page.confirm .box_privacy,
.page.confirm .attention {
  display: none !important;
}

.page.thanks .thanks_text {
  font-size: 1.125rem;
  line-height: 2;
}
@media screen and (max-width: 767px) {
  .page.thanks .thanks_text {
    font-size: 1.125rem;
  }
}
@media screen and (max-width: 767px) {
  .page.thanks .thanks_text {
    font-size: 0.875rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .page.thanks .thanks_text {
    font-size: 0.875rem;
  }
}
.page.thanks .thanks_text + .btn_common_01, .page.thanks .thanks_text + .btn_common_11, .page.thanks .page.program .thanks_text + .btn_viewmore_exlarge, .page.program .page.thanks .thanks_text + .btn_viewmore_exlarge {
  margin: 3em auto 0;
}

.error404 .content_error404 p {
  margin-bottom: 2em;
}
@media screen and (min-width: 768px) {
  .error404 .content_error404 p {
    font-size: 1.125rem;
    line-height: 2;
  }
}
@media screen and (min-width: 768px) and (max-width: 767px) {
  .error404 .content_error404 p {
    font-size: 1.125rem;
  }
}
@media screen and (min-width: 768px) and (max-width: 767px) {
  .error404 .content_error404 p {
    font-size: 0.875rem;
  }
}
@media screen and (min-width: 768px) and (max-width: 767px) and (max-width: 767px) {
  .error404 .content_error404 p {
    font-size: 0.875rem;
  }
}
.error404 .content_error404 .btn_common_01, .error404 .content_error404 .btn_common_11, .error404 .content_error404 .page.program .btn_viewmore_exlarge, .page.program .error404 .content_error404 .btn_viewmore_exlarge {
  margin: 0 auto;
}

@media screen and (min-width: 768px) {
  .list_times_01 {
    display: flex;
    flex-wrap: wrap;
    gap: 3.5em 5%;
  }
}
@media screen and (min-width: 768px) {
  .list_times_01 > li {
    width: 30%;
  }
}
@media screen and (max-width: 767px) {
  .list_times_01 > li:not(:last-child) {
    margin-bottom: 4em;
  }
}
.list_times_01 > li a {
  display: block;
}
.list_times_01 > li a:hover .thumbnail img {
  transform: scale(1.1);
}
.list_times_01 > li .thumbnail {
  position: relative;
  overflow: hidden;
}
.list_times_01 > li .thumbnail:after {
  content: "";
  display: block;
  width: 100%;
  padding-top: 67%;
}
.list_times_01 > li .thumbnail img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  position: absolute;
  top: 0;
  left: 0;
}
.list_times_01 > li .thumbnail img {
  transition: transform 0.3s;
}
.list_times_01 > li .post_ttl {
  font-size: 1.5rem;
  font-weight: 700;
  overflow: hidden;
  display: -webkit-box;
  text-overflow: ellipsis;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
  padding: 1em 0 0.4em;
}
@media screen and (max-width: 767px) {
  .list_times_01 > li .post_ttl {
    font-size: 1.5rem;
  }
}
@media screen and (max-width: 767px) {
  .list_times_01 > li .post_ttl {
    font-size: 1rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .list_times_01 > li .post_ttl {
    font-size: 1rem;
  }
}
.list_times_01 > li .post_content {
  font-size: 1rem;
  color: #3E3A39;
  overflow: hidden;
  display: -webkit-box;
  text-overflow: ellipsis;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  margin-bottom: 1.5em;
}
@media screen and (max-width: 767px) {
  .list_times_01 > li .post_content {
    font-size: 1rem;
  }
}
@media screen and (max-width: 767px) {
  .list_times_01 > li .post_content {
    font-size: 0.875rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .list_times_01 > li .post_content {
    font-size: 0.875rem;
  }
}
.list_times_01 > li .attr {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.list_times_01 > li .attr .date {
  font-size: 1.125rem;
  font-weight: 500;
}
@media screen and (max-width: 767px) {
  .list_times_01 > li .attr .date {
    font-size: 1.125rem;
  }
}
@media screen and (max-width: 767px) {
  .list_times_01 > li .attr .date {
    font-size: 0.8125rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .list_times_01 > li .attr .date {
    font-size: 0.8125rem;
  }
}
.list_times_01 > li .attr .cat {
  font-weight: 700;
  color: #E33C1C;
  display: flex;
  gap: 0.5em;
}
.list_times_01 > li .attr .cat:before {
  content: "";
  display: block;
  width: 25px;
  height: 25px;
  background: url(../images/icon_pencil_cat.svg) center/contain;
}
@media screen and (max-width: 767px) {
  .list_times_01 > li .attr .cat:before {
    width: 19px;
    height: 19px;
  }
}
.list_times_01 > li .attr .cat span {
  display: block;
  border-bottom: 1px dashed #E33C1C;
}

@media screen and (max-width: 767px) {
  .list_times_02 {
    margin: 0 calc((50vw - 50%) * -1);
  }
}
.list_times_02 > li {
  padding: 6%;
}
@media screen and (max-width: 767px) {
  .list_times_02 > li {
    padding: 3em 0;
    padding-left: 9vw;
    padding-right: 9vw;
  }
}
@media screen and (max-width: 767px) and (min-width: 768px) {
  .list_times_02 > li {
    padding-left: min(4.1vw, 80px);
    padding-right: min(4.1vw, 80px);
  }
}
.list_times_02 > li:nth-child(odd) {
  background: #FFF0ED;
}
.list_times_02 > li .post_title {
  font-size: 2rem;
  line-height: 1.4;
  color: #E33C1C;
  padding: 0.5em 0 0.25em;
}
@media screen and (max-width: 767px) {
  .list_times_02 > li .post_title {
    font-size: 2rem;
  }
}
@media screen and (max-width: 767px) {
  .list_times_02 > li .post_title {
    font-size: 1.5rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .list_times_02 > li .post_title {
    font-size: 1.5rem;
  }
}
.list_times_02 > li .name {
  font-size: 1.125rem;
  color: #3E3A39;
}
@media screen and (max-width: 767px) {
  .list_times_02 > li .name {
    font-size: 1.125rem;
  }
}
@media screen and (max-width: 767px) {
  .list_times_02 > li .name {
    font-size: 0.875rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .list_times_02 > li .name {
    font-size: 0.875rem;
  }
}
.list_times_02 > li .post_content {
  padding: 1em 0 2em;
}
.list_times_02 > li .post_content p {
  color: #3E3A39;
  line-height: 2;
  overflow: hidden;
  display: -webkit-box;
  text-overflow: ellipsis;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 4;
}
.list_times_related > li > a {
  display: block;
  padding: 2em 4em 2em 0;
  border-bottom: 1px solid #D6D6D6;
  background: url(../images/arrow_related.svg) no-repeat center right/50px;
}
@media screen and (max-width: 767px) {
  .list_times_related > li > a {
    background: url(../images/arrow_related.svg) no-repeat center right/35px;
  }
}
.list_times_related > li .attr {
  display: flex;
  align-items: center;
  gap: 1.5em;
  margin-bottom: 0.5em;
}
.list_times_related > li .attr .name {
  color: #E33C1C;
  font-size: 1.125rem;
}
@media screen and (max-width: 767px) {
  .list_times_related > li .attr .name {
    font-size: 1.125rem;
  }
}
@media screen and (max-width: 767px) {
  .list_times_related > li .attr .name {
    font-size: 0.875rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .list_times_related > li .attr .name {
    font-size: 0.875rem;
  }
}
@media screen and (max-width: 767px) {
  .list_times_related > li .attr {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.5em;
  }
}
.list_times_related > li .ttl {
  font-size: 1.625rem;
  color: #E33C1C;
  overflow: hidden;
  display: -webkit-box;
  text-overflow: ellipsis;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
}
@media screen and (max-width: 767px) {
  .list_times_related > li .ttl {
    font-size: 1.625rem;
  }
}
@media screen and (max-width: 767px) {
  .list_times_related > li .ttl {
    font-size: 1rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  .list_times_related > li .ttl {
    font-size: 1rem;
  }
}

article .article-header .attr.attr_top {
  margin-bottom: 1em;
}
article .article-header .attr.attr_top .date {
  font-family: "Lato", sans-serif;
  font-size: 1.125rem;
  font-weight: 500;
  color: #E33C1C;
}
@media screen and (max-width: 767px) {
  article .article-header .attr.attr_top .date {
    font-size: 1.125rem;
  }
}
@media screen and (max-width: 767px) {
  article .article-header .attr.attr_top .date {
    font-size: 0.875rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  article .article-header .attr.attr_top .date {
    font-size: 0.875rem;
  }
}
article .article-header .attr.attr_bottom .list_category {
  display: inline;
}
@media screen and (max-width: 767px) {
  article .article-header .attr.attr_bottom .list_category {
    display: block;
  }
}
article .article-header .attr.attr_bottom .name {
  margin-left: 2em;
}
@media screen and (max-width: 767px) {
  article .article-header .attr.attr_bottom .name {
    display: block;
    margin-left: 0;
    margin-top: 0.5em;
  }
}
article .article-header .article-ttl {
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.4;
  color: #E33C1C;
  padding-bottom: 0.75em;
  border-bottom: 1px solid #E33C1C;
  margin-bottom: 1em;
}
@media screen and (max-width: 767px) {
  article .article-header .article-ttl {
    font-size: 2rem;
  }
}
@media screen and (max-width: 767px) {
  article .article-header .article-ttl {
    font-size: 1.5rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  article .article-header .article-ttl {
    font-size: 1.5rem;
  }
}
article .article-content {
  padding: 2.5rem 0 5rem;
}

#related {
  padding-top: 7.5rem;
}
@media screen and (max-width: 767px) {
  #related {
    padding-top: 5.625rem;
  }
}
#related .ttl_related {
  font-weight: 700;
  text-align: center;
  margin-bottom: 2.5em;
}
#related .ttl_related .ja {
  font-size: 2.25rem;
  color: #E33C1C;
}
@media screen and (max-width: 767px) {
  #related .ttl_related .ja {
    font-size: 2.25rem;
  }
}
@media screen and (max-width: 767px) {
  #related .ttl_related .ja {
    font-size: 1.5rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  #related .ttl_related .ja {
    font-size: 1.5rem;
  }
}
#related .ttl_related .en {
  font-size: 1.25rem;
  color: #FAC2B7;
}
@media screen and (max-width: 767px) {
  #related .ttl_related .en {
    font-size: 1.25rem;
  }
}
@media screen and (max-width: 767px) {
  #related .ttl_related .en {
    font-size: 1rem;
  }
}
@media screen and (max-width: 767px) and (max-width: 767px) {
  #related .ttl_related .en {
    font-size: 1rem;
  }
}
#related .container {
  margin-bottom: 7.5rem;
}

#editor img {
  display: block;
  margin-bottom: 2rem;
}

.footer .map_illust {
  height: 410px;
  border-radius: none;
}

.footer .map_illust:before {
  content: none;
}

.footer .map_illust img {
  margin-left: auto;
  display: block;
  height: 100%;
  width: auto;
}

@media screen and (max-width: 767px) {
  .footer .map_illust {
    height: auto !important;
    margin: 0 auto;
    padding: 0 var(--sideW);
  }
  .footer .map_illust img {
    width: 100%;
    height: auto;
  }
}
.link_to_map {
  display: block;
  width: -moz-fit-content;
  width: fit-content;
  padding: 1em 2em;
  border-radius: 50px;
  background-color: #E33C1C;
  color: #fff;
  font-size: 1.25em;
  font-weight: 700;
  margin: 2em auto 0;
}

@media screen and (max-width: 767px) {
  .link_to_map {
    font-size: 1em;
    padding: 0.5em 2em;
  }
}
.footer .link_to_map {
  margin-bottom: 3em;
}

.link_to_youtube {
  display: block;
  width: -moz-fit-content;
  width: fit-content;
  padding: 1em 2em;
  border-radius: 50px;
  background-color: #E33C1C;
  color: #fff;
  font-size: 1.25em;
  font-weight: 700;
  margin: 2em auto 0;
}

/* 2024 05 30　プログラムページに時間割を追加 */
.sec_program {
  background-color: #FFFEF2;
  padding-top: 7.5em;
  padding-bottom: 8em;
  margin: 0 calc((50vw - 50%) * -1);
}
@media screen and (max-width: 767px) {
  .sec_program {
    padding-top: 6.25em;
    padding-bottom: 6.25em;
  }
}

.sec_program .program_schedule {
  width: 1100px;
  max-width: 100%;
  margin: 0 auto;
}

.sec_program .program_schedule h3 {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 20px;
  position: relative;
  font-size: 1.375em;
  font-weight: 700;
  line-height: 1.5;
  margin-bottom: 1em;
}

.sec_program .program_schedule h4 {
  font-size: 1.25em;
  font-weight: 700;
  line-height: 1.5;
  margin: 1.5em 0 1em;
}

@media screen and (max-width: 767px) {
  .sec_program .program_schedule h3 {
    font-size: 1.125em;
  }
}
.sec_program .program_schedule h3::before {
  content: "";
  display: block;
  width: 84px;
  aspect-ratio: 84/79;
  background: url(../images/ico_time_schedule.svg) no-repeat center/contain;
  transform: translateY(10px);
}

@media screen and (max-width: 767px) {
  .sec_program .program_schedule h3::before {
    width: 55px;
  }
}
.sec_program .program_schedule h3 span {
  display: block;
  font-size: 1.23em;
}

.sec_program .program_schedule ul {
  display: flex;
  flex-wrap: wrap;
  flex-flow: column;
  gap: 25px;
}

.sec_program .program_schedule ul li {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  background-color: #fff;
  gap: 10px 25px;
  font-size: 1.25em;
  font-weight: 700;
  padding: 1em 45px;
}

@media screen and (max-width: 767px) {
  .sec_program .program_schedule ul li {
    font-size: 1.125em;
    padding: 1em;
  }
}
.sec_program .program_schedule ul li span {
  font-size: 1.1em;
}

div[data-test="test"] {
	display: none !important;
}

/* -------------------------------------------
   ヘッダー2段組みレイアウト調整
------------------------------------------- */

/* 1. 親コンテナ（左右に分割） */
#header .header-container .header_content {
  display: flex;            /* 横並びにする */
  align-items: center;      /* 上下中央揃え */
  justify-content: flex-end; /* 右寄せ（ロゴとの兼ね合いで調整可） */
  gap: 20px;                /* 左側エリアとボタンの間の余白 */
}

/* 2. 左側エリア（上段・下段を縦に積む） */
.header_info_group {
  display: flex !important;
  flex-direction: column;   /* 縦並びにする */
  justify-content: center;
  align-items: flex-end;    /* 右揃え（ボタン側に寄せる） */
  gap: 10px;                /* 上段と下段の間の余白 */
  transition: opacity 0.3s ease, visibility 0.3s ease;
  visibility: visible !important;
  opacity: 1 !important;
}

/* メニュー展開時にheader_info_groupを非表示 */
body.menu-open .header_info_group {
  opacity: 0 !important;
  visibility: hidden !important;
}

/* 3. 各行の中身（横並び） */
.info_row {
  display: flex;
  align-items: center;      /* アイコンと文字を上下中央揃え */
  gap: 15px;                /* LINE・Insta・Telの間の余白 */
}

/* --- 微調整（2段になって高さが出るための調整） --- */

/* アイコンサイズを少し小さくする */
.header_info_group .img_only img {
  width: 30px; 
  height: auto;
}

/* 電話番号の文字サイズ調整 */
.header_info_group .tel {
  text-align: right;
}
.header_info_group .tel p {
  font-size: 1.25rem; /* サイズ調整 */
  line-height: 1.2;
  margin-bottom: 0;
}
.header_info_group .tel .address {
  font-size: 12px !important;
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  color: #333 !important;
  line-height: 1.5 !important;
  white-space: normal !important;
  overflow: visible !important;
}


/* アイコンを横並びにして、少し隙間を空ける設定 */
.sns_links {
    display: flex;             /* 横並びにする */
    justify-content: flex-end; /* ★ここが重要：右揃えにする */
    gap: 10px;                 /* アイコン同士の間隔 */
    margin-top: 5px;           /* 上の住所との隙間（お好みで調整） */
}

/* もしアイコンが大きすぎる場合はサイズを調整（必要に応じて） */
.sns_links a img {
    width: 30px;         /* 好みのサイズに変更してください */
    height: auto;
}

/* 親枠の設定（基準点） */
.header-container {
    position: relative !important;
    width: 100%;
}

/* header_contentの設定（基準点の記述を削除） */
.header_content {
    width: 100%;
}

/* 店名（pタグ）の前に自動でつくtel.を消す */
.tel.pc p::before {
    content: none !important;
    display: none !important;
}

/* 店名（pタグ）の下の余白を強制的に消す */
.tel.pc p {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

/* 念のため、下の住所ブロックの上の余白も消す */
.tel.pc .address {
    margin-top: 0 !important;
}

/* ▼▼▼ ここが修正ポイント ▼▼▼ */
.header_info_group {
    width: 100%;
    text-align: center; /* 文字を中央揃え */    
    /* ボタンと重ならないように右側に余白を確保 */
    padding-right: 150px !important; 
    box-sizing: border-box !important;
}

/* 3. ボタンを右上に固定配置 */
#hbm_btn {
    position: absolute !important;
    top: 20px !important;
    right: 10px !important;
    margin: 0 !important;
    z-index: 9999 !important; /* 最前面に表示 */
}

#header {
    padding-right: 0 !important;
    padding-left: 0 !important; /* 念のため左も0に */
    width: 100% !important;     /* 横幅いっぱいに広げる */
}

/* 1. ベース設定 */
.header-container, #header, #l-container_wrap {
    overflow: visible !important;
    z-index: 9999 !important;
}

/* 2. ハンバーガーボタン本体 */
#hbm_btn {
    /* 位置と固定 */
    position: fixed !important;
    top: 20px !important;
    right: 20px !important;
    z-index: 9999 !important; /* メニューより前面に */
    
    /* デザイン */
    width: 100px !important;
    height: 100px !important;
    background: #e33c1c !important;
    border-radius: 50% !important;
    
    /* ★最重要:はみ出しを物理的にカット(これでスクロールバーは消えます) */
    overflow: hidden !important;
    
    /* クリック機能 */
    cursor: pointer !important;
    pointer-events: auto !important;
    
    /* リセット */
    border: none !important;
    box-shadow: none !important;
    margin: 0 !important;
    padding: 0 !important;
    -webkit-tap-highlight-color: transparent !important;
}

/* 3. ボタンの中身の「選別・排除」
   スクロールの原因になっている「箱（div, nav, ul）」を完全に消去します */
#hbm_btn div,
#hbm_btn nav,
#hbm_btn ul,
#hbm_btn section,
#hbm_btn header,
#hbm_btn footer,
#hbm_btn iframe,
#hbm_btn .menu {
    display: none !important;
}

/* 4. クリック判定用の「芯（spanやa）」だけは残す
   ただし、悪さをしないように透明にして固定します */
#hbm_btn span,
#hbm_btn a {
    display: block !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    
    /* 透明 */
    opacity: 0 !important;
    visibility: visible !important;
    
    /* はみ出し防止 */
    overflow: hidden !important;
    
    /* クリック有効化 */
    pointer-events: auto !important;
    cursor: pointer !important;
    z-index: 100 !important;
}

/* 5. 3本線と×印の描画（CSSで上書き） */
#hbm_btn::before, #hbm_btn::after {
    content: "" !important;
    display: block !important;
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    width: 50px !important;
    height: 4px !important;
    background: #fff !important;
    border-radius: 4px !important;
    transition: all 0.3s ease !important;
    pointer-events: none !important;
    z-index: 200 !important;
}

/* ▼ 閉まっている時 */
#hbm_btn::before {
    transform: translate(-50%, -50%);
    box-shadow: 0 -14px 0 0 #fff, 0 14px 0 0 #fff !important;
}
#hbm_btn::after {
    transform: translate(-50%, -50%);
    opacity: 0 !important;
}

/* ▼ 開いている時（×印） */
#hbm_btn[class*="active"]::before,
#hbm_btn.open::before,
body.open #hbm_btn::before,
.header-container.active #hbm_btn::before {
    box-shadow: none !important;
    transform: translate(-50%, -50%) rotate(45deg) !important;
}

#hbm_btn[class*="active"]::after,
#hbm_btn.open::after,
body.open #hbm_btn::after,
.header-container.active #hbm_btn::after {
    opacity: 1 !important;
    transform: translate(-50%, -50%) rotate(-45deg) !important;
}

/* 7. テキスト情報など */
.header_content {
    position: absolute !important;
    top: 0 !important;
    right: 130px !important;
    width: auto !important;
    pointer-events: none !important;
    z-index: 20 !important;
    padding-right: 20px !important;
}
.header_info_group * {
    text-align: right !important;
    white-space: nowrap !important;
    color: #333 !important;
    pointer-events: auto !important;
}

/* ハンバーガーメニュー展開時のbody固定 */
body.menu-open {
  overflow: hidden;
  position: fixed;
  width: 100%;
  height: 100%;
}

/* メニュー本体のスタイル */
#hbm {
  visibility: hidden; /* 初期状態は非表示 */
  transition: transform 0.4s ease, visibility 0s 0.4s; /* visibilityは遅延させて非表示 */
  position: fixed;
  top: 0;
  right: 0; /* 画面右端に配置 */
  width: 33.33%; /* PC: 画面の1/3 */
  height: 100vh;
  z-index: 9998;
  overflow-y: auto;
  background: transparent;
  transform: translateX(100%); /* 初期状態は右側に完全に隠す */
}

/* スマホ時はもう少し広く */
@media screen and (max-width: 767px) {
  #hbm {
    width: 85%; /* スマホ: 画面の85% */
  }
}

#hbm .flex_box {
  display: block; /* flexを解除 */
  height: 100%;
  width: 100%;
}

#hbm .flex_box .box_left {
  display: none; /* 左側の画像は非表示 */
}

#hbm .flex_box .box_right {
  width: 100%; /* メニュー部分を100%に */
  height: 100%;
  background: #E33C1C;
  padding: 180px 6%;
  overflow-y: auto;
  box-sizing: border-box;
}

@media screen and (max-width: 767px) {
  #hbm .flex_box .box_right {
    padding: 120px 6%;
  }
}

/* メニューが開いた時 */
#hbm.is-active {
  visibility: visible; /* 即座に表示 */
  transition: transform 0.4s ease, visibility 0s 0s; /* visibilityの遅延なし */
  transform: translateX(0); /* 画面右端に表示 */
}

/* オーバーレイ */
#hbm_overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.5);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.4s ease, visibility 0.4s ease;
  z-index: 9997; /* メニューとボタンの間 */
  pointer-events: none; /* 非表示時はクリックを通す */
}

#hbm_overlay.is-active {
  opacity: 1;
  visibility: visible;
}

/* .pcクラスのdisplay:noneより詳細度を高くして上書き */
.header-container .header_content .header_info_group .tel.pc {
  display: block;
}

/* 各行の表示 */
.header_info_group .info_row {
  display: flex;
  align-items: center;
  gap: 15px;
}

/* 店名 */
.header_info_group .tel.pc p {
  font-size: 1.25rem;
  line-height: 1.2;
  margin-bottom: 5px;
  color: #333;
}

/* 住所 */
.header_info_group .tel.pc .address {
  font-size: 12px;
  color: #333;
  line-height: 1.5;
  white-space: normal;
}

/* SNSリンク */
.header_info_group .tel.pc .sns_links {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 5px;
}

.header_info_group .tel.pc .sns_links a {
  display: inline-block;
}

.header_info_group .tel.pc .sns_links img {
  width: 30px;
  height: auto;
}

/* メニュー展開時のみ非表示 */
body.menu-open .header_info_group {
  opacity: 0;
  visibility: hidden;
}

/* メニュー閉じた状態では表示 */
body:not(.menu-open) .header_info_group {
  opacity: 1;
  visibility: visible;
}

/* 店舗情報は画面サイズに関わらず表示 */
@media screen and (min-width: 768px) {
  .header_info_group .tel.pc {
    display: block;
  }
}

/* ========================================
   画面右側のfollow-banner(2店舗用)
======================================== */
/* LINEタブ全体のスタイル（お問い合わせと同じ160px） */
#follow-banner li.line-stores {
  background-color: #4CAF50;
}

#follow-banner li.line-stores a {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  text-decoration: none !important;
  height: 80px !important;
  padding: 0 !important;
  border-radius: 0 !important;
}

/* LINEアイコンを疑似要素で表示（お問い合わせと同じ40px） */
#follow-banner li.line-stores a:before {
  content: "" !important;
  display: block !important;
  width: 35px !important;
  height: 35px !important;
  background: url(../images/icon_line_white.svg) no-repeat center/contain !important;
  margin-bottom: 5px !important;
  margin-top: 0 !important;
}

/* 元の:afterの矢印を削除 */
#follow-banner li.line-stores a:after {
  content: none !important;
  display: none !important;
}

/* 店舗名のスタイル（お問い合わせと同じ0.9375rem = 15px） */
#follow-banner li.line-stores .store-name {
  display: block !important;
  font-size: 0.9375rem !important;
  line-height: 1.3 !important;
  color: #fff !important;
  font-weight: 700 !important;
  text-align: center !important;
}

/* レスポンシブ対応 */
@media screen and (max-width: 767px) {
  #follow-banner li.line-stores a {
    height: 80px !important;
  }
  
  #follow-banner li.line-stores a:before {
    width: 30px !important;
    height: 30px !important;
    margin-bottom: 4px !important;
  }
  
  #follow-banner li.line-stores .store-name {
    font-size: 0.875rem !important;
  }
}

/* ========================================
   フッターのマップ画像を縮小
======================================== */
#footer .map_illust img {
  width: 50% !important;
  height: auto !important;
  display: block;
  margin: 0 auto;
}

/* レスポンシブ対応 */
@media screen and (max-width: 767px) {
  #footer .map_illust img {
    width: 70% !important;
  }
}

/* ========================================
   フッターの電話番号とLINEボタン(2店舗用)
======================================== */
/* お問い合わせ対応時間を中央揃え */
.footer_contact .tel .contact-hours {
  text-align: center;
  margin: 10px 0 20px;
  font-size: 14px;
  color: #fff;
}

/* 電話番号を横並びに */
.footer_contact .tel .tel-numbers {
  display: flex;
  gap: 30px;
  justify-content: center;
  margin: 20px 0;
}

.footer_contact .tel .tel-item {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.footer_contact .tel .tel-item a {
  font-size: 24px;
  font-weight: bold;
  color: #fff !important;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
}

.footer_contact .tel .tel-item .store-name {
  font-size: 16px;
  font-weight: bold;
  color: #fff !important;
  margin: 0;
  display: block;
}

/* LINEボタンを横並びに */
.footer_contact .links li.line-buttons {
  display: flex;
  gap: 10px;
  justify-content: center;
}

.footer_contact .links li.line-buttons a {
  flex: 1;
  max-width: 200px;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0 !important;
  position: relative !important;
  transition: transform 0.3s ease !important;
  padding: 15px 25px 15px 0 !important;
  text-align: center !important;
}

/* LINEアイコンを:beforeで追加 */
.footer_contact .links li.line-buttons a.to_line:before {
  content: "" !important;
  display: inline-block !important;
  width: 30px !important;
  height: 30px !important;
  background: url(../images/icon_line_white.svg) no-repeat center/contain !important;
  margin: 0 !important;
  flex-shrink: 0 !important;
}

/* ホバー時の既存スタイルを上書き（緑色を維持） */
.footer_contact .links li.line-buttons a.to_line:hover {
  background-color: #4CAF50 !important;
  color: #fff !important;
  opacity: 1 !important;
}

/* ホバー時に3px大きくなる */
.footer_contact .links li.line-buttons a.to_line:hover {
  transform: scale(1.03) !important;
}

/* レスポンシブ対応 */
@media screen and (max-width: 767px) {
  .footer_contact .tel .tel-numbers {
    flex-direction: column;
    gap: 20px;
  }
  
  .footer_contact .tel .tel-item a {
    font-size: 20px;
  }
  
  .footer_contact .links li.line-buttons {
    flex-direction: column;
    gap: 10px;
  }
  
  .footer_contact .links li.line-buttons a {
    max-width: 100%;
  }
}

/* ========================================
   店舗情報のスタイル(header.phpから移行)
======================================== */

/* 既存の.tel p::beforeを無効化 */
#header .header-container .header_content .tel p:before,
#header .header-container .header_content .tel .store-name:before {
  content: none !important;
  display: none !important;
}

/* ========================================
   ハンバーガーメニューのLINEボタン(2店舗用)
======================================== */
/* LINEアイコンをline-icon-wrapperの:beforeで表示 */
#hbm .hbm_sub_02 li.line-buttons a.line .line-icon-wrapper:before {
  content: "" !important;
  display: block !important;
  width: 24px !important;
  height: 24px !important;
  background: url(../images/icon_line_color.svg) no-repeat center/contain !important;
  margin: 0 auto 3px !important;
}

/* 既存の:beforeを無効化 */
#hbm .hbm_sub_02 li.line-buttons a.line:before {
  content: none !important;
  display: none !important;
}

.hbm_sub_02 .line-buttons {
  display: flex !important;
  gap: 10px;
  width: 100%;
}

.hbm_sub_02 .line-buttons a.line {
  flex: 1;
  display: flex !important;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0;
  padding: 8px 10px !important;
  min-height: auto !important;
  height: 58px !important;
  border-radius: 29px;
  background: white;
}

.hbm_sub_02 .line-buttons .line-icon-wrapper {
  display: block;
  width: 24px;
  height: 24px;
  margin: 0;
  padding: 0;
}

.hbm_sub_02 .line-buttons .line-text {
  font-size: 13px;
  font-weight: bold;
  margin: 0;
  padding: 0;
  line-height: 1.2;
}

/* レスポンシブ対応 */
@media screen and (max-width: 767px) {
  .hbm_sub_02 .line-buttons {
    flex-direction: row;
  }
  
  .hbm_sub_02 .line-buttons a.line {
    height: 58px !important;
  }
}

/* ========================================
   スクロール時にロゴと店舗情報を非表示
======================================== */
/* sizedownクラスが付いた時（スクロール時）にロゴと店舗情報を非表示 */
#header.sizedown .header_logo {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}

#header.sizedown .header_content .tel {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}

/* スクロール時でもSNSリンクはクリック可能にする */
#header.sizedown .header_content .tel .sns_links {
  pointer-events: auto !important;
  opacity: 1 !important;
  visibility: visible !important;
}

/* ロゴと店舗情報にトランジションを追加（通常時） */
.header_logo {
  transition: opacity 0.3s ease, visibility 0.3s ease;
}

/* ========================================
   first_viewのtext_boxを常に表示
======================================== */
.home #first_view .text_box p span {
  transform: translateY(0) !important;
  animation: none !important;
}

.home #first_view .text_box {
  opacity: 1 !important;
  visibility: visible !important;
}

/* text_boxを30%小さく、左寄せに */
.home #first_view .text_box {
  transform: scale(0.7) translateY(20%);
  transform-origin: left center;
  text-align: left;
  margin-left: 0;
  padding-left: 5%;
}

/* リンクのスタイルを見やすく */
.home #first_view .text_box a {
  color: #333;
  text-decoration: none;
  transition: opacity 0.3s;
}

.home #first_view .text_box a:hover {
  opacity: 0.7;
}

/* ↑クリック!の部分だけ赤色に */
.home #first_view .text_box .click-text {
  color: #E33C1C !important;
}

/* ========================================
   店舗情報のスタイル続き
======================================== */

/* 店舗情報コンテナ */
.header_content {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}

/* メニュー展開時に店舗情報を非表示 */
body.menu-open .header_content .tel {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

/* メニュー展開時でもSNSリンクはクリック可能にする */
body.menu-open .header_content .tel .sns_links {
  pointer-events: auto !important;
}

/* 各店舗ブロック */
.header_content .tel {
  display: block;
  text-align: right;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}

/* SNSリンクは常にクリック可能 */
.header_content .tel .sns_links {
  pointer-events: auto !important;
}

/* 店舗情報のまとまり */
.header_content .tel .store-info {
  display: flex;
  flex-direction: column;
  gap: 0;
}

/* 最初の店舗 */
.header_content .tel-first {
  /* 特に追加スタイルなし */
}

/* 2番目の店舗(区切り線付き) */
.header_content .tel-second {
  margin-left: 20px;
  padding-left: 20px;
  border-left: 2px solid #ccc;
}

/* 店舗名 - 白のアウトライン付き */
.header_content .tel .store-name {
  display: block;
  font-size: 14px;
  font-weight: bold;
  color: #333;
  margin: 0;
  line-height: 1.4;
  text-shadow: 
    0.5px 0.5px 0 #fff,
    -0.5px 0.5px 0 #fff,
    0.5px -0.5px 0 #fff,
    -0.5px -0.5px 0 #fff,
    0.5px 0 0 #fff,
    -0.5px 0 0 #fff,
    0 0.5px 0 #fff,
    0 -0.5px 0 #fff;
}

/* 電話番号 - 白のアウトライン付き */
.header_content .tel .phone-number {
  display: block;
  font-size: 12px;
  color: #333;
  margin: 0;
  line-height: 1.4;
  text-shadow: 
    0.5px 0.5px 0 #fff,
    -0.5px 0.5px 0 #fff,
    0.5px -0.5px 0 #fff,
    -0.5px -0.5px 0 #fff,
    0.5px 0 0 #fff,
    -0.5px 0 0 #fff,
    0 0.5px 0 #fff,
    0 -0.5px 0 #fff;
}

/* tel.ラベル(電話番号内のインライン要素) - 白のアウトライン付き */
.header_content .tel .phone-number .tel-label {
  font-size: 12px;
  color: #333;
  margin-right: 4px;
  text-shadow: 
    0.5px 0.5px 0 #fff,
    -0.5px 0.5px 0 #fff,
    0.5px -0.5px 0 #fff,
    -0.5px -0.5px 0 #fff,
    0.5px 0 0 #fff,
    -0.5px 0 0 #fff,
    0 0.5px 0 #fff,
    0 -0.5px 0 #fff;
}

/* 住所 - 白のアウトライン付き */
.header_content .tel .address {
  display: block;
  font-size: 12px;
  color: #333;
  line-height: 1.4;
  margin-top: 2px;
  text-shadow: 
    0.5px 0.5px 0 #fff,
    -0.5px 0.5px 0 #fff,
    0.5px -0.5px 0 #fff,
    -0.5px -0.5px 0 #fff,
    0.5px 0 0 #fff,
    -0.5px 0 0 #fff,
    0 0.5px 0 #fff,
    0 -0.5px 0 #fff;
}

/* SNSリンクコンテナ */
.header_content .tel .sns_links {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 5px;
}

/* SNSアイコン */
.header_content .tel .sns_links a {
  display: inline-block;
}

.header_content .tel .sns_links img {
  width: 30px;
  height: auto;
}

/* レスポンシブ対応 */
@media screen and (max-width: 767px) {
  .header_content {
    flex-direction: column;
    gap: 15px;
  }
  
  .header_content .tel {
    text-align: center;
  }
  
  .header_content .tel .store-info {
    align-items: center;
    text-align: center;
  }
  
  .header_content .tel-second {
    margin-left: 0;
    padding-left: 0;
    border-left: none;
    border-top: 2px solid #ccc;
    padding-top: 15px;
  }
  
  .header_content .tel .sns_links {
    justify-content: center;
  }
}