@charset "utf-8";

/*
* ベースカラーの設定 *
ヒアリングシートのベースカラーはここに設定してください
*/
:root {
  --color01: #1c9bc4;
  --color02: #069f2b;
  --color03: #d4e6e4;
  --color04: #e8f2f1;
  --color05: #fcac00;
}

/*
Theme Name: portals_responsive
Author: portals
*/
/*==================================
* reset
* html5doctor.com Reset Stylesheet
* v1.6.1
* Last Updated: 2010-09-17
* Author: Richard Clark - http://richclarkdesign.com
* Twitter: @rich_clark
==================================*/
html,
body,
div,
span,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
abbr,
address,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
samp,
small,
strong,
sub,
sup,
var,
b,
i,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section,
summary,
time,
mark,
audio,
video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
}

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

ol,
ul {
  list-style: none;
}

img {
  vertical-align: top;
  line-height: 0;
}

blockquote,
q {
  quotes: none;
}

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

a {
  margin: 0;
  padding: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
}

ins {
  background-color: #ff9;
  color: #000;
  text-decoration: none;
}

mark {
  background-color: #ff9;
  color: #000;
  font-style: italic;
  font-weight: bold;
}

del {
  text-decoration: line-through;
}

abbr[title],
dfn[title] {
  border-bottom: 1px dotted;
  cursor: help;
}

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

hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #cccccc;
  margin: 1em 0;
  padding: 0;
}

input,
select {
  vertical-align: middle;
}

address {
  font-style: normal;
}

.clearfix:after {
  content: ".";
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
}

/*==================================
  base
==================================*/
.clear {
  clear: both;
}

.right {
  text-align: right;
}

.left {
  text-align: left;
}

.center {
  text-align: center;
}

.img_left,
.img_right {
  margin: 0 auto 16px;
}

.img_center {
  display: block;
  margin: 0 auto 16px;
}

.only_pc {
  display: none;
}

img {
  display: block;
  margin: 0 auto;
  width: auto;
  max-width: 100%;
  height: auto;
}

a:link {
  color: #fff;
}

a:visited {
  color: #fff;
}

a:hover {
  color: #1c9bc4;
}

a:active {
  color: #1c9bc4;
}

body {
  overflow-x: hidden;
  background: #fff;
  color: #4d4d4d;
  font-size: 15px;
  line-height: 1.5;
  font-family: "Helvetica Neue", Arial, "Noto Sans JP", sans-serif;
  margin-top: 0 !important;
}

html,
body {
  overflow-x: hidden;
}

@media screen and (min-width: 480px) {

  .img_left,
  .img_right {
    width: 40%;
  }

  .img_left {
    float: left;
    margin: 0 16px 16px 0;
  }

  .img_right {
    float: right;
    margin: 0 0 16px 16px;
  }
}

@media screen and (min-width: 680px) {

  .img_left,
  .img_right {
    width: 40%;
  }

  .img_left {
    margin: 0 24px 24px 0;
  }

  .img_right {
    margin: 0 0 24px 24px;
  }

  .only_sp {
    display: none !important;
  }

  .only_pc {
    display: block;
  }

  a:hover img,
  a:active img {
    -webkit-opacity: 0.7;
    opacity: 0.7;
  }

  body {
    width: 100%;
    font-size: 18px;
    line-height: 1.6;
  }
}

@media screen and (min-width: 790px) {
  body {
    margin-top: 92px;
  }
}

@media screen and (min-width: 1364px) {
  body {
    min-width: 1364px;
  }
}

/*==================================
  layout
==================================*/
#main_contents,
#contents {
  margin: 24px auto 0;
  width: 98%;
  max-width: 1090px;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

.inner {
  margin: 0 calc(50% - 50vw);
  padding: 3em calc(50vw - 48%);
}

.conts {
  margin: 16px 12px;
}

.conts:after {
  visibility: hidden;
  display: block;
  font-size: 0;
  content: "";
  clear: both;
  height: 0;
}

.conts .conts_inner {
  overflow: hidden;
}

.conts p:not([class]) {
  margin-bottom: 8px;
}

.bnr {
  margin: clamp(16px, 5vw, 56px) auto;
}

.ttl {
  margin: clamp(20px, 4.5vw, 56px) auto;
}

/*色のみ変更すればチェックの色を変更可能*/
.bg01 {
  background-color: #f1f7e3;
  background-image: linear-gradient(rgba(0, 0, 0, 0.09) 1px, transparent 0),
    linear-gradient(90deg, rgba(0, 0, 0, 0.09) 1px, transparent 0);
  background-size: 10px 10px;
}

/*iframeレスポンシブ*/
.access_gmap,
.youtube {
  margin-top: 1em;
  position: relative;
  width: 100%;
  padding-top: 56.25%;
}

.access_gmap iframe,
.youtube iframe {
  position: absolute;
  top: 0;
  right: 0;
  width: 100% !important;
  height: 100% !important;
}

@media screen and (min-width: 680px) {
  .inner {
    padding: 5em calc(50vw - 48%);
  }

  .conts {
    margin: 24px;
  }

  .bnr {
    margin: clamp(16px, 10vw, 56px) auto;
  }

  .ttl {
    margin: clamp(20px, 9vw, 56px) auto;
  }
}

@media screen and (min-width: 960px) {
  #contents {
    margin: 40px auto 0;
  }
}

.no_toppadding {
  padding-top: 0;
}

.no_topmargin {
  margin-top: 0;
}

.no_bottommargin {
  margin-bottom: 0;
}

/*==================================
Header
==================================*/
#header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 999999;
  border-top: solid 12px transparent;
  border-image-source: linear-gradient(90deg,
      rgb(23, 142, 196),
      rgb(86, 170, 173) 49%,
      rgb(141, 209, 211));
  border-image-slice: 1;
  background: #fff;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.h_inner {
  max-width: 1500px;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 16px 8px;
  background-color: #fff;
}

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

.h_logo img.responsive_img {
  max-width: clamp(120px, 17vw, 190px);
  height: auto;
  display: block;
}

.header_info_right,
.header_info_left {
  margin-left: 8px;
  font-size: clamp(12px, 2vw, 16px);
}

.header_info_right p {
  margin: 0;
  white-space: nowrap;
}

.header_info_left {
  font-weight: bold;
  text-align: center;
  color: #f23a16;
  border: 2px solid #f23a16;
  border-radius: 2px;
  padding: 3px;
}

@media screen and (min-width: 680px) {
  #header {
    border-top: none;
    border-bottom: none;
    display: block;
    padding: 8px 0 0;
  }

  #header>* {
    width: auto;
  }

  .h_inner {
    padding: 16px;
  }

  .header_info_right,
  .header_info_left {
    margin-left: 16px;
  }
}

/*==================================
  ハンバーガーメニュー
==================================*/
.input-hidden {
  display: none;
}

/* label */
.hamburger_switch {
  cursor: pointer;
  position: absolute;
  right: -6px;
  top: -40px;
  z-index: 9999;
  width: 56px;
  height: 56px;
  display: flex;
  align-items: center;
  justify-content: center;
}

#hamburger:checked~.hamburger_switch {
  position: fixed;
}

.hamburger_icon {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 6px;
  width: 28px;
  height: 22px;
}

.hamburger_icon span {
  display: block;
  height: 3px;
  background: #4d4d4d;
  width: 100%;
  border-radius: 1px;
  transition: 0.3s ease;
}

#hamburger:checked~.hamburger_switch .hamburger_icon span:nth-child(1) {
  transform: rotate(45deg) translate(23px, 28px);
  background: #fff;
}

#hamburger:checked~.hamburger_switch .hamburger_icon span:nth-child(2) {
  opacity: 0;
}

#hamburger:checked~.hamburger_switch .hamburger_icon span:nth-child(3) {
  transform: rotate(-45deg) translate(-15px, 10px);
  background: #fff;
}

.hamburger_menuwrap {
  position: fixed;
  height: 100%;
  background: rgba(23, 142, 196, 0.8);
  padding: 3em 3% 2em;
  z-index: 9998;
  transition: 0.3s;
  overflow-y: scroll;
  top: 0;
  left: 100%;
  width: 70%;
}

.hamburger_menulist {
  margin-right: 3%;
  padding-left: 5%;
  list-style: none;
}

.hamburger_menulist li a {
  text-decoration: none;
  color: #ffffff;
  display: block;
  padding: 0.5em 0;
}

.contact_conts.nav_menu {
  width: 90%;
}

#hamburger:checked~.hamburger_menuwrap {
  left: 30%;
}

#hamburger:checked~.hamburger_cover {
  position: fixed;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  z-index: 9997;
  background: rgba(3, 3, 3, 0.5);
  display: block;
}

.hamburger_menubox {
  position: relative;
}

.nav_bt {
  width: 90%;
}

.nav_bt_tel,
.nav_bt_line {
  margin: 16px;
}

.nav_bt_tel p {
  color: #fff;
}

@media screen and (min-width: 680px) {
  .nav_bt {
    width: 50%;
    max-width: 360px;
    margin-left: 2rem;
  }

  .nav_bt_tel,
  .nav_bt_line {
    margin: 30px 0;
  }

  .hamburger_switch {
    right: 0px;
  }

  .hamburger_icon {
    width: 36px;
    height: 28px;
    gap: 8px;
  }

  .hamburger_icon span {
    height: 4px;
  }

  #hamburger:checked~.hamburger_switch .hamburger_icon span:nth-child(1) {
    transform: rotate(45deg) translate(28px, 32px);
  }
}

/*==================================
  スマホ固定ボタン
==================================*/
.sp_fix_bt {
  position: fixed;
  bottom: 0;
  left: 0;
  z-index: 999999;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 4px;
  padding: 1%;
  background-color: #ebf9f7;
}

/*==================================
  mainimg
==================================*/
.main_visual {
  position: relative;
  display: block;
  margin: 0 auto 1em;
  width: 100%;
  z-index: 1;
  padding-top: 91px;
}

.main_img {
  width: 100%;
  height: auto;
  display: block;
}

.campaign_banner {
  position: absolute;
  bottom: 6px;
  left: 45%;
  transform: translateX(-96%);
  width: 31%;
  z-index: 10;
}

.mainvisual_wrapper {
  background: #1b2830;
}

@media screen and (max-width: 680px) {
  .mainvisual_wrapper {
    background: #fff;
  }

  .campaign_banner {
    position: static;
    transform: none;
    margin-top: -30px;
    width: 95%;
    max-width: none;
  }

  .main_visual {
    display: flex;
    flex-direction: column;
    align-items: center;
  }
}

/*==================================
  heading
==================================*/
/*h2*/
.heading_01 {
  /* padding: 0.5em calc(50vw - 49%) 0; */
  text-align: center;
  font-size: clamp(60px, 8vw, 100px);
  font-family: adobe-caslon-pro, serif;
  font-style: normal;
  font-weight: 600;
}

.heading_ba {
  text-align: center;
  font-size: clamp(48px, 7vw, 110px);
  font-family: adobe-caslon-pro, serif;
  font-style: normal;
  font-weight: 600;
}

.section_ttl {
  margin: 0 calc(50% - 50vw) clamp(24px, 10vw, 100px);
  padding: 0.5em calc(50vw - 49%);
  text-align: center;
}

.em_01 {
  color: #1c9bc4;
}

.em_02 {
  color: #56aaad;
}

.em_03 {
  color: #1c9bc4;
  font-size: 2rem;
}

p.h2_sub_ttl {
  font-size: clamp(15px, 2vw, 30px);
  font-weight: bold;
  margin-top: -10px;
}

.heading_02 {
  position: relative;
  margin: 0 calc(50% - 50vw);
  padding: 0.5em calc(50vw - 49%);
  background: var(--color01);
  text-align: center;
  font-size: clamp(27px, 4.3vw, 48px);
  font-weight: bold;
  color: #fff;
}

.heading_02::after {
  content: "";
  position: absolute;
  top: 98%;
  left: 50%;
  transform: translateX(-50%);
  border-top: clamp(10px, 3vw, 35px) solid var(--color01);
  border-left: clamp(17px, 5vw, 60px) solid transparent;
  border-right: clamp(17px, 5vw, 60px) solid transparent;
}

.heading_03 {
  position: relative;
  margin: 0 calc(50% - 50vw);
  /* margin: 0 calc(50% - 50vw) clamp(24px, 10vw, 100px); */
  padding: 0.5em calc(50vw - 49%);
  background: var(--color01);
  text-align: center;
  font-size: clamp(20px, 4.3vw, 46px);
  font-weight: bold;
  color: #fff;
}

/*h3用　文字サイズ・色*/
.heading02 {
  position: relative;
  margin: 2em auto;
  padding: 0.5em 0.5em 1em;
  text-align: center;
  font-size: clamp(18px, 4vw, 47px);
}

.heading02::after {
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  display: block;
  content: "";
  width: 3em;
  height: 5px;
  background-size: 4px 4px;
  background-image: linear-gradient(-45deg,
      #ec6941 25%,
      transparent 25%,
      transparent 50%,
      #ec6941 50%,
      #ec6941 75%,
      transparent 75%,
      transparent);
}

/*問い合わせh4*/
.heading03_naruo {
  margin: 0 auto 0.5em;
  padding-left: 0.4em;
  font-size: clamp(18px, 3vw, 36px);
  border-left: solid 0.4em #178ec4;
  display: flex;
  align-items: flex-end;
  gap: 1rem;
}

.heading03_imazu {
  margin: 0 auto 0.5em;
  padding-left: 0.4em;
  font-size: clamp(18px, 3vw, 36px);
  border-left: solid 0.4em #7ac2c3;
  display: flex;
  align-items: flex-end;
  gap: 1rem;
}

h4.heading03_naruo img {
  width: 45%;
}

h4.heading03_imazu img {
  width: 45%;
}

img.contact_logo {
  margin: 0;
}

/*==================================
  オファーバナー
==================================*/
.offer_bnr {
  padding: 0 8px;
}

@media screen and (min-width: 680px) {
  .offer_bnr {
    display: flex;
    align-items: center;
    width: 80%;
    margin: 0 auto;
    gap: 24px;
  }
}

/*==================================
  店舗バナー
==================================*/
.shop_bnr {
  display: flex;
  margin: 0 0 1rem;
}

@media screen and (min-width: 680px) {
  .shop_bnr {
    display: flex;
    margin: 0 0 3rem;
    justify-content: center;
    gap: 40px;
  }
}

/*==================================
  無料トリプルキャンペーン
==================================*/
.anchor-adjust {
  height: 92px;
  /* ヘッダーの高さと同じに */
  margin-top: -92px;
}

#campaign {
  background-image: linear-gradient(90deg,
      rgb(23, 142, 196),
      rgb(86, 170, 173) 49%,
      rgb(141, 209, 211));
}

.campaign_conts {
  padding: 24px 8px;
}

h2.campaign_ttl {
  color: #fff;
  font-size: clamp(20px, 4vw, 50px);
  font-weight: bold;
  text-align: center;
  padding-bottom: 16px;
}

.campaign_catch_text {
  font-size: clamp(27px, 5vw, 80px);
}

.dots {
  background-image: radial-gradient(circle at center,
      #fff 20%,
      transparent 20%);
  background-position: top right;
  background-repeat: repeat-x;
  background-size: 1em 0.3em;
  padding-top: 0.4em;
}

.benefits {
  width: 86%;
  margin: 0 auto;
}

.benefit {
  margin: 16px auto;
}

.lowest_price {
  background-color: #d7ff20;
  text-align: center;
  padding: 0.5rem;
}

.lowest_price_catch {
  font-size: clamp(24px, 4vw, 36px);
  font-weight: 600;
}

.campaign_terms {
  color: #fff;
  display: flex;
  margin: 1rem 0 0;
}

.terms {
  width: 130px;
  height: 50px;
  border-radius: 50%;
  border: 1px solid #fff;
}

.terms p {
  text-align: center;
  line-height: 50px;
}

.terms_list li {
  text-indent: -1em;
  padding-left: 1em;
}

.terms_list li::before {
  content: "・";
}

@media screen and (min-width: 680px) {
  .benefits {
    display: flex;
    width: 100%;
    max-width: 1090px;
    gap: 16px;
    margin: 0 auto;
  }

  .campaign_conts {
    padding: 4rem;
  }

  .campaign_terms {
    justify-content: center;
  }

  .lowest_price {
    max-width: 1100px;
    margin: 0 auto;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 18px;
  }
}

/*==================================
  ギャラリー
==================================*/
.gallery_swiper {
  margin-top: 40px;
  padding-bottom: 50px;
  position: relative;
}

.swiper-slide {
  width: 200px;
  display: flex;
  justify-content: center;
}

.swiper-slide img {
  width: 100%;
  height: auto;
  object-fit: cover;
  border-radius: 8px;
}

.swiper-button-prev,
.swiper-button-next {
  color: #1c9bc4;
}

.swiper-button-prev:hover,
.swiper-button-next:hover {
  opacity: 0.7;
}

.swiper-pagination-bullet {
  background: #ccc;
  opacity: 1;
}

.swiper-pagination-bullet-active {
  background: #1c9bc4;
}

/*==================================
  コンセプト
==================================*/
.concept {
  background-image: url(image/bg_img_concept.webp);
  background-size: cover;
  background-position: center;
  position: relative;
  overflow: hidden;
}

.concept_ttl,
.concept_txt {
  color: #fff;
}

.concept_txt {
  max-width: 820px;
  margin: 0 auto;
  text-align: left;
  line-height: 1.8;
}

.concept_txt p {
  margin-bottom: 1.5rem;
  text-align: justify;
}

.concept_lead_sub {
  font-size: clamp(18px, 3vw, 28px);
}

.concept_lead_main {
  font-size: clamp(26px, 4vw, 40px);
  font-weight: bold;
}

@media screen and (min-width: 680px) {
  p.concept_lead_sub {
    margin-bottom: 3rem;
  }

  p.concept_lead_main {
    margin: 4rem 0;
  }
}

/*==================================
  ライトパーソナルとは？
==================================*/
.concept_more {
  background-color: #e7f1f0;
}

.more_ttl {
  font-size: clamp(18px, 2vw, 28px);
  font-weight: bold;
  text-align: center;
  margin-bottom: 10px;
}

.concept_more_ttl {
  margin-bottom: 3rem;
}

.concept_more_items p {
  margin: 0.5rem 1rem 2.5rem;
}

@media screen and (min-width: 680px) {
  .concept_more_ttl p {
    text-align: center;
  }

  .concept_more_items {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-start;
    gap: 2rem;
  }

  .concept_more_item {
    max-width: 360px;
  }
}

/*==================================
  シルエットが選ばれる理由
==================================*/
.inner.point {
  padding: 3em calc(50vw - 48%) 0;
}

.point_item {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 20px;
  margin-bottom: 60px;
  text-align: left;
}

.point_item .point_text {
  width: 100%;
  text-align: justify;
}

.point_item .point_pic {
  width: 100%;
}

.point_item img {
  width: 100%;
  height: auto;
}

.point_sub_ttl {
  font-size: clamp(24px, 3vw, 33px);
  margin: 6px 3px 16px;
  font-weight: bold;
}

/* 初期状態：透明＋左右にずらす */
.animate-left,
.animate-right {
  opacity: 0;
  transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

/* 左からスライドイン用 */
.animate-left {
  transform: translateX(-30px);
}

/* 右からスライドイン用 */
.animate-right {
  transform: translateX(30px);
}

/* in-view が付いたら元位置に戻してフェードイン */
.animate-left.in-view,
.animate-right.in-view {
  opacity: 1;
  transform: translateX(0);
}

@media screen and (min-width: 680px) {
  .point_item {
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 7rem;
    gap: 40px;
  }

  .point_item:nth-child(even) {
    flex-direction: row-reverse;
  }

  .point_item .point_text {
    flex: 1;
    min-width: 300px;
  }

  .point_item .point_pic {
    width: 46%;
    min-width: 280px;
  }
}

/*==================================
  さらに
==================================*/
.point_more {
  background: var(--color03);
}

.inner.point_more {
  padding-top: 0;
}

.point_more_ttl {
  margin: 2rem 0.5rem 1rem;
}

.point_more_text {
  border: 8px solid var(--color01);
  background: #fff;
  padding: 16px;
  text-align: justify;
}

p.more_text_read {
  font-weight: bold;
}

@media screen and (min-width: 680px) {
  .point_more_ttl {
    margin-top: 4rem;
  }

  .point_more_text {
    padding: 40px;
    max-width: 900px;
    margin: 0 auto;
  }

  .point_more_text p {
    margin-bottom: 1rem;
  }

  p.more_text_read {
    font-size: 20px;
  }
}

/*==================================
  他ジムとの違い
==================================*/
h2.comparison_heading {
  font-size: clamp(55px, 8vw, 95px);
}

p.comparison_ttl {
  margin-top: 0px;
}

@media screen and (min-width: 680px) {
  .difference_table {
    margin: 0 auto;
    width: 80%;
  }
}

/*==================================
  トレーナー紹介
==================================*/
.inner.trainer {
  background: var(--color04);
}

p.greet_message {
  margin: 1rem auto;
  text-align: justify;
}

.greet_pic01 {
  margin-bottom: 4rem;
  border-bottom: dotted;
}

.greet_pic01 img {
  width: 80%;
  margin-bottom: 2rem;
}

.greet_pic02 img {
  width: 80%;
  margin-bottom: 2rem;
}

.greet_message span {
  font-weight: bold;
}

@media screen and (min-width: 680px) {
  .greet_pic01 {
    display: flex;
    gap: 60px;
  }

  .greet_pic02 {
    display: flex;
    gap: 60px;
  }

  p.greet_message {
    margin-top: 3rem;
    line-height: 1.8;
    max-width: 560px;
  }
}

/*==================================
  コースについて
==================================*/
#course {
  padding-top: 90px;
  margin-top: -90px;
}

.course-list {
  display: flex;
  flex-direction: column;
  gap: 30px;
}

.course-card {
  border: 1px solid #4d4d4d;
  width: 100%;
  padding: 20px;
  box-sizing: border-box;
}

.course-img {
  width: 100%;
  height: auto;
  margin-bottom: 16px;
}

.course-title {
  font-size: 1.4rem;
  font-weight: bold;
  text-align: center;
  margin: 10px 0 10px;
  border-bottom: 10px solid transparent;
  border-image-source: linear-gradient(90deg,
      rgb(23, 142, 196),
      rgb(86, 170, 173) 49%,
      rgb(141, 209, 211));
  border-image-slice: 1;
  padding-bottom: 8px;
}

.course-check {
  display: flex;
  justify-content: center;
  align-items: center;
  padding-bottom: 10px;
  margin-bottom: 10px;
}

.course-check span {
  position: relative;
  padding-left: 28px;
  font-weight: bold;
  color: #444;
  font-size: 1.1rem;
}

.course-check span::before {
  content: "";
  position: absolute;
  left: 0;
  top: 2px;
  width: 20px;
  height: 20px;
  background-image: url("image/check_icon.png");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

.course-text {
  font-size: 0.95rem;
  color: #333;
  line-height: 1.8;
  text-align: justify;
}

@media screen and (min-width: 680px) {
  .course-list {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 40px;
    justify-content: center;
  }

  .course-card {
    max-width: 500px;
  }
}

/*==================================
  無料トレーニングまでの流れ
==================================*/
.inner.flow {
  background: var(--color04);
}

.flow_inner {
  position: relative;
  background-color: #fff;
  max-width: 1200px;
  margin: 0 auto;
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 40px;
  /* flex-wrap: wrap; */
  margin-bottom: 2rem;
}

.flow_left {
  position: relative;
  display: flex;
  flex-direction: column;
  padding-left: 60px;
}

.flow_badge {
  position: absolute;
  top: -20px;
  left: -20px;
  max-width: 75px;
  height: auto;
  z-index: 2;
}

.flow_text {
  margin: 0 8px;
}

.flow_desc {
  text-align: justify;
}

.flow_desc span {
  color: #1c9bc4;
  font-size: clamp(19px, calc(16.5px + 0.625vw), 24px);
  font-weight: bold;
}

.flow_title {
  font-size: clamp(21px, 2vw, 36px);
  font-weight: bold;
  margin: 0 0 1rem;
}

@media screen and (min-width: 680px) {
  .flow_inner {
    flex-direction: row;
    justify-content: space-between;
    gap: 40px;
    padding: 0 20px 20px;
    align-items: center;
    margin-bottom: 4rem;
    height: 390px;
    box-sizing: border-box;
  }

  .flow_left {
    flex-direction: row;
    align-items: flex-start;
    padding-left: 0;
    height: 280px;
  }

  img.flow_badge {
    width: 16%;
    position: relative;
    left: -20px;
    top: -45px;
    max-width: none;
  }

  .flow_text {
    max-width: 520px;
  }

  .flow_desc {
    margin-top: 10px;
  }

  .flow_image img {
    width: 100%;
    height: auto;
    display: block;
  }
}

@media screen and (min-width: 880px) {
  .desc01 {
    min-width: 440px;
  }
}

/*==================================
  Q＆A
==================================*/
#qa {
  padding-top: 90px;
  margin-top: -90px;
}

.qa {
  background-image: url(image/qa_bg.png);
}

.qa_ttl {
  color: #fff;
}

.cp_qa03 .cp_actab {
  position: relative;
  width: 100%;
  margin-bottom: 2rem;
  color: #4d4d4d;
}

.cp_qa03 .cp_actab input {
  display: none;
}

.cp_qa03 .cp_actab label {
  font-weight: bold;
  line-height: 1.6em;
  position: relative;
  display: block;
  margin: 0 0 0 0;
  padding: 1em 3em 1em 2.5em;
  text-indent: 1em;
  color: #fff;
  background: #1c9bc4;
}

.cp_qa03 .cp_actab label::before {
  content: "Q";
  font-family: serif;
  font-size: 1.5em;
  margin-left: -2em;
  padding-right: 0.5em;
}

.cp_qa03 .cp_actab label:hover {
  color: #fff;
  transition: all 0.3s;
}

.cp_qa03 .cp_actab label::after {
  width: 20px;
  height: 20px;
  background: url(image/qa_icon.png) no-repeat center center;
  background-size: contain;
  font-size: 1.7em;
  font-weight: bold;
  line-height: 2em;
  display: inline-block;
  position: absolute;
  top: 8px;
  right: 7px;
  content: "";
  transition: transform 0.3s;
}

.cp_qa03 .cp_actab .cp_actab-content {
  position: relative;
  overflow: hidden;
  max-height: 0;
  padding: 0 0 0 2.5em;
  transition: max-height 0.2s;
}

.cp_qa03 .cp_actab .cp_actab-content::before {
  position: absolute;
  content: "A";
  font-family: serif;
  font-size: 1.5em;
  color: #56aaad;
  margin-left: -1.3em;
  padding-right: 0.5em;
}

.cp_qa03 .cp_actab .cp_actab-content p {
  margin: 2em 1em 1em 0;
}

.cp_qa03 .cp_actab input:checked~.cp_actab-content {
  max-height: 40em;
  /* border: 10px solid rgba(27,37,56,0.1); */
  background-color: #fff;
}

.cp_qa03 .cp_actab input[type="checkbox"]:checked+label::after {
  transform: rotateZ(180deg);
  transform-origin: 50% 50%;
}

@media screen and (min-width: 480px) {
  .recommend .img_left {
    width: 40%;
  }
}

@media screen and (min-width: 680px) {
  .recommend_txt {
    margin-top: 0;
  }

  .cp_qa03 .cp_actab label::after {
    top: 20px;
  }
}

@media screen and (min-width: 1240px) {
  .recommend_txt {
    overflow: hidden;
  }
}

/*==================================
  ビフォーアフター
==================================*/
.inner.ba {
  background: var(--color04);
}

.ba_img {
  margin-bottom: 3rem;
}

/*==================================
  料金のご案内
==================================*/
.inner.price-list {
  padding-top: 10px;
}

.fee-info-box {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 20px;
  margin-bottom: 50px;
}

.fee-item {
  background: #e8f2f1;
  padding: 20px 30px;
}

.fee-label {
  color: #328fa5;
  font-weight: bold;
  font-size: 1rem;
  text-align: center;
}

.fee-price {
  font-size: 1.4rem;
  font-weight: bold;
}

.fee-price span {
  font-size: 0.9rem;
}

/* コース共通 */
.course-group {
  margin-bottom: 20px;
}

.course-label {
  text-align: center;
}

.course-list-title {
  font-size: 1.6rem;
  font-weight: bold;
  text-align: center;
  margin: 3px auto 8px;
  border-bottom: 10px solid transparent;
  border-image-source: linear-gradient(90deg,
      rgb(23, 142, 196),
      rgb(86, 170, 173) 49%,
      rgb(141, 209, 211));
  border-image-slice: 1;
  padding-bottom: 8px;
  width: 350px;
}

.course-time {
  text-align: center;
}

.course-boxes {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-evenly;
}

.course-box {
  background: #fff;
  padding: 20px;
  width: 100%;
  max-width: 400px;
}

.course-type {
  background: #1c9bc4;
  text-align: center;
  color: #fff;
  padding: 6px;
  /* font-size: 1.2rem; */
  margin-bottom: 12px;
}

.course-price {
  font-size: 1.6rem;
  font-weight: bold;
  text-align: center;
  line-height: 1.1;
}

.course-price span {
  font-size: 0.9rem;
}

@media screen and (min-width: 680px) {
  .fee-info-box {
    flex-wrap: nowrap;
  }

  .course-box {
    width: calc(33.333% - 20px);
  }
}

/*==================================
  監修者について
==================================*/
.inner.sv {
  background: repeating-linear-gradient(135deg, #eee 0, #eee 6px, #ffffff 6px, #ffffff 8px);
}

.sv_inner {
  position: relative;
  background-color: #fff;
  max-width: 1200px;
  margin: 0 auto;
  padding: 40px 20px;
  display: flex;
  flex-direction: column-reverse;
  gap: 40px;
  /* flex-wrap: wrap; */
  margin-bottom: 2rem;
}

.sv_left {
  position: relative;
  display: flex;
  flex-direction: column;
}

.sv_badge {
  position: absolute;
  top: -20px;
  left: -20px;
  max-width: 75px;
  height: auto;
  z-index: 2;
}

.sv_text {
  margin: 0 8px;
}

.sv_desc {
  text-align: justify;
}

.sv_desc span {
  color: #1c9bc4;
  font-size: clamp(19px, calc(16.5px + 0.625vw), 24px);
  font-weight: bold;
}

.sv_shikaku {
  font-weight: bold;
}

.sv_name {
  font-size: clamp(21px, 2vw, 36px);
  font-weight: bold;
  margin: 0 0 1rem;
}

@media screen and (min-width: 680px) {
  .sv_inner {
    flex-direction: row;
    justify-content: space-between;
    gap: 40px;
    align-items: center;
    margin-bottom: 4rem;
    box-sizing: border-box;
  }

  .sv_left {
    flex-direction: row;
    align-items: flex-start;
    padding-left: 0;
    height: 280px;
  }

  img.sv_badge {
    width: 16%;
    position: relative;
    left: -20px;
    top: -45px;
    max-width: none;
  }

  .sv_text {
    max-width: 520px;
  }

  .sv_desc {
    margin-top: 10px;
  }

  .sv_image img {
    width: 100%;
    height: auto;
    display: block;
  }
}

@media screen and (min-width: 880px) {
  .desc01 {
    min-width: 440px;
  }
}

/*==================================
  店舗情報
==================================*/
#access {
  padding-top: 90px;
  margin-top: -90px;
}

img.access_logo {
  width: 60%;
  margin-bottom: 1.2rem;
}

p.access_bt_tel {
  margin-bottom: 1rem;
}

@media screen and (min-width: 680px) {
  .access_conts {
    display: flex;
    align-items: flex-start;
    gap: 2rem;
  }

  .access_text {
    flex: 2;
    margin: 2rem auto;
  }

  .access_gmap {
    flex: 3;
  }

  img.access_logo {
    margin-bottom: 2.5rem;
  }

  p.access_bt_tel {
    margin-bottom: 2rem;
  }
}

/*複数院用*/
.contact_multiple>li {
  margin-top: 2em;
}

.contact_uketsuke_txt {
  margin-top: 1em;
  font-size: clamp(15px, 2vw, 20px);
  line-height: 1.4;
}

.contact_uketsuke_txt>p:first-child {
  margin: 0 auto .5em;
  padding: 0 1.5em .1em;
  display: inline-block;
  background: #4d4d4d;
  ;
  color: #fff;
}

.contact_multiple .contact_add {
  margin-top: .5em;
  padding-top: .5em;
  border-top: dotted 1px #7c6754;
  font-size: clamp(15px, 2vw, 20px);
  line-height: 1.2;
}

.contact_gmap {
  margin-top: 1em;
  position: relative;
  width: 100%;
  padding-top: 56.25%;
}

.contact_gmap iframe {
  position: absolute;
  top: 0;
  right: 0;
  width: 100% !important;
  height: 100% !important;
}

@media screen and (min-width: 680px) {
  .contact_multiple>li {
    margin-top: 2.5em;
  }

  .contact_multiple {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
  }

  .contact_multiple>* {
    width: 48%;
    max-width: 554px;
  }

  .contact_multiple .contact_add {
    margin-top: 1em;
    padding-top: 1em;
  }
}

@media screen and (min-width: 1240px) {
  .contact_multiple {
    margin: 0 -80px;
  }

  .contact_multiple .contact_bt li a {
    max-width: 554px;
  }

  .contact_uketsuke_txt {
    margin-top: 1em;
  }
}

/*==================================
  お問い合わせ
==================================*/
.contact {
  background-image: url(image/bg_img_contact.jpg);
  background-size: cover;
  background-position: -76%;
}

.contact_ttl {
  color: #fff;
}

.contact_bt_tel,
.contact_bt_line {
  margin: 2rem 1rem;
}

.contact_bt_tel,
.contact_bt_line p {
  text-align: center;
  color: #fff;
}

@media screen and (min-width: 680px) {
  .contact_conts {
    display: flex;
    gap: 2rem;
  }

  .contact {
    background-position: center;
  }
}

/*==================================
  お問合せ
==================================*/
/*共通*/
/*お問合せボタン共通スタイル*/
.contact_tel,
.contact_line,
.contact_net {
  color: inherit;
  text-decoration: none;
  border-radius: 10px;
  box-sizing: border-box;
}

.contact_tel a,
.contact_line a,
.contact_net a {
  color: inherit;
  text-decoration: none;
  text-align: center;
  font-weight: bold;
}

.contact_tel {
  border: solid 1px #413028;
  background: #fff;
  box-shadow: 0 5px 0 #413028;
}

.contact_line {
  color: #fff;
  background: #3cab00;
  box-shadow: 0 5px 0 #2c7d00;
}

.contact_net {
  color: #fff;
  background: var(--color01);
  box-shadow: 0 5px 0 #cc5000;
}

.contact_tel a::before,
.contact_line a::before,
.contact_net a::before {
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  display: inline-block;
}

.contact_tel a::before {
  content: "\f095";
  margin-right: 4px;
  width: 2em;
  height: 2em;
  line-height: 2em;
  font-size: 80%;
  color: #fff;
  background: var(--color01);
  border-radius: 50%;
}

.contact_line a::before {
  margin-right: 0.5em;
  padding-top: 0.1em;
  content: "\f075";
  transform: scale(-1, 1);
}

.contact_net a::before {
  margin-right: 0.5em;
  padding-top: 0.1em;
  content: "\f0e0";
}

.contact_store_name01 {
  color: #fff;
  font-size: 1.5rem;
  padding: .5em .7em;
  border-left: 0.4em solid #178ec4;
}

.contact_store_name02 {
  color: #fff;
  font-size: 1.5rem;
  padding: .5em .7em;
  border-left: 0.4em solid #7ac2c3;
}

@media screen and (min-width: 680px) {

  .contact_tel:hover,
  .contact_line:hover,
  .contact_net:hover {
    opacity: 0.7;
  }
}

.offer_contact_bt {
  margin: 1.5em auto;
}

.offer_contact_bt li {
  margin: 12px auto;
}

.offer_contact_bt .contact_tel,
.offer_contact_bt .contact_line,
.offer_contact_bt .contact_net {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 8px;
  font-size: 24px;
}

.offer_contact_bt .contact_tel a,
.offer_contact_bt .contact_line a,
.offer_contact_bt .contact_net a {
  display: flex;
  justify-content: center;
  align-items: center;
  text-decoration: none;
}

@media screen and (min-width: 480px) {
  .offer_contact_bt {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
  }

  .offer_contact_bt li {
    margin: 8px 0.5%;
    width: 32%;
    min-width: 190px;
  }
}

@media screen and (min-width: 480px) {
  .offer_contact_bt .contact_tel {
    font-size: clamp(19px, 2.6vw, 35px);
  }

  .offer_contact_bt .contact_line {
    font-size: clamp(22px, 3.2vw, 42px);
  }

  .offer_contact_bt .contact_net {
    font-size: clamp(22px, 3.2vw, 42px);
  }
}

/*ボタン*/
.contact_bt {
  margin: 1em auto 0;
  max-width: 500px;
  width: 98%;
}

.contact_bt li {
  position: relative;
  display: block;
  margin: 8px auto;
  text-decoration: none;
  text-align: center;
}

.contact_bt li a::before {
  position: absolute;
  left: 0.5em;
  top: 50%;
  transform: translateY(-50%);
  display: block;
  text-align: center;
  font-size: clamp(32px, 10vw, 52px);
}

/*電話ボタン*/
.contact_bt .contact_tel {
  padding: 0.3em 0.1em 0.3em 1.7em;
  font-size: clamp(32px, 10vw, 52px);
  line-height: 1;
}

.contact_bt .contact_tel a::before {
  left: 0.3em;
  font-size: clamp(18px, 8vw, 36px);
}

.contact_bt .contact_tel a span {
  display: block;
  font-size: 52%;
}

/*LINEボタン*/
.contact_bt .contact_line {
  padding: 0.2em 0.1em 0.2em 1.5em;
  font-size: clamp(32px, 8vw, 39px);
  line-height: 1;
}

.contact_bt .contact_line a::before {
  transform: translateY(-50%) scale(-1, 1);
}

/*Web予約ボタン*/
.contact_bt .contact_net {
  padding: 0.2em 0.1em 0.2em 1.5em;
  font-size: clamp(32px, 8vw, 39px);
  line-height: 1;
}

@media screen and (min-width: 680px) {
  .contact_bt li a::before {
    font-size: clamp(18px, 5vw, 52px);
  }

  /*電話ボタン*/
  .contact_bt .contact_tel {
    font-size: clamp(18px, 5vw, 52px);
  }

  .contact_bt .contact_tel a::before {
    font-size: 70%;
  }

  /*LINEボタン*/
  .contact_bt .contact_line {
    font-size: clamp(18px, 4vw, 39px);
  }

  /*Web予約ボタン*/
  .contact_bt .contact_net {
    font-size: clamp(18px, 4vw, 39px);
  }
}

@media screen and (min-width: 1240px) {
  .contact_bt li.contact_tel a::before {
    left: 0.5em;
  }

  .contact_bt li:not(.contact_bt_d):not(.contact_tel) a::before {
    left: 0.8em;
  }
}

/*予約ボタン横並び*/
.contact_bt {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}

.contact_bt_s {
  width: 100%;
}

.contact_bt_d {
  width: 49%;
}

.contact_bt li.contact_bt_d a::before {
  left: 0.3em;
  width: 1.2em;
  height: 0.95em;
  font-size: clamp(28px, 8vw, 40px);
}

/*LINEボタン*/
.contact_bt li.contact_bt_d.contact_line {
  font-size: clamp(22px, 7vw, 38px);
}

/*Web予約ボタン*/
.contact_bt li.contact_bt_d.contact_net {
  font-size: clamp(22px, 7vw, 38px);
}

@media screen and (min-width: 680px) {
  .contact_bt li.contact_bt_d a::before {
    font-size: clamp(28px, 4vw, 40px);
  }

  /*LINEボタン*/
  .contact_bt li.contact_bt_d.contact_line {
    font-size: clamp(22px, 3.5vw, 36px);
  }

  /*Web予約ボタン*/
  .contact_bt li.contact_bt_d.contact_net {
    font-size: clamp(22px, 3.5vw, 36px);
  }
}

/*1院用*/
.contact_single_add {
  margin: 1em auto;
}

@media screen and (min-width: 480px) {
  .contact_single_add br {
    display: none;
  }
}

@media screen and (min-width: 680px) {
  .contact_single {
    display: flex;
    justify-content: space-between;
    align-items: center;
  }

  .contact_single>* {
    width: 48%;
  }

  .contact_single .contact_bt {
    display: flex;
    flex-direction: column;
    justify-content: center;
    margin: 0 auto;
  }

  .contact_single ul.contact_bt li:first-child a {
    margin-top: 0;
  }

  .contact_single_add {
    margin: 2em auto;
    font-size: 20px;
    line-height: 1.4;
  }
}

/*==================================
問い合わせフォーム
==================================*/
#form_contact {
  padding-top: 90px;
  margin-top: -90px;
}

fieldset {
  margin: 2rem auto;
}

.form_contact {
  background-color: #e5f9fa;
}

label {
  margin: 8px 0;
}

.required {
  background: red;
  color: white;
  padding: 0.2em 0.5em;
  border-radius: 4px;
  font-weight: bold;
  margin-right: 0.5em;
  display: inline-block;
}

.price-note {
  color: red;
  font-weight: bold;
  display: block;
  margin-top: 0.2em;
  margin-left: 1.5em;
}

.campaign {
  font-weight: bold;
}

#course-select {
  margin-top: 2em;
}

.course-hidden {
  display: none;
}

.date-row {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  text-align: left;
  gap: 0.5em;
  margin-bottom: 1.5em;
}

.date-row label {
  display: block;
  width: 100%;
  margin-bottom: 0.3em;
  font-weight: bold;
}

.date-row input[type="date"],
.date-row select {
  padding: 0.6em 0.8em;
  height: 48px;
  line-height: 1.2;
  border: 2px solid #1c9bc4;
  font-size: 1em;
  width: 100%;
  box-sizing: border-box;
  appearance: none;
  border-radius: 0;
  background-color: #fff;
}

.form-group {
  margin-bottom: 2em;
  display: flex;
  flex-direction: column;
  gap: 0.5em;
}

select,
input[type="date"],
.form-group input[type="text"],
.form-group input[type="tel"],
.form-group input[type="email"] {
  padding: 0.6em 0.8em;
  height: 48px;
  font-size: 1em;
  border: 2px solid #1c9bc4;
  width: 100%;
  box-sizing: border-box;
  appearance: none;
  border-radius: 0;
  background-color: #fff;
}

.form-group textarea {
  padding: 0.8em 1em;
  font-size: 1em;
  border: 2px solid #1c9bc4;
  width: 100% !important;
  height: 180px !important;
  box-sizing: border-box;
  appearance: none;
  border-radius: 0;
  resize: vertical;
  background-color: #fff;
}

.privacy-box {
  border: 2px solid #1c9bc4;
  padding: 1em;
  background-color: #fff;
  height: 180px;
  overflow-y: scroll;
  overflow-x: auto;
  margin-bottom: 3rem;
  box-sizing: border-box;
}

.privacy-box::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}

.privacy-box::-webkit-scrollbar-thumb {
  background: #999;
  border-radius: 4px;
}

button#submitBtn {
  background: none;
  border: none;
}

.submit_btn {
  text-align: center;
}

input[type="date"].mfp_element_date {
  text-align: left !important;
}

select option[disabled] {
  color: #aaa;
}

/*メールフォームプロ修正用*/
#mfp_loading,
#mfp_loading_screen,
#mfp_overlay_background,
#mfp_overlay,
#mfp_hidden {
  display: none !important;
}

@media screen and (min-width: 680px) {
  .date-row {
    flex-direction: row;
    align-items: center;
    gap: 1em;
  }

  .date-row label {
    width: 100px;
    margin-bottom: 0;
  }

  .date-row input[type="date"],
  .date-row select {
    width: 220px;
  }

  .submit_btn img {
    width: 70%;
  }
}

/*==================================
プライバシーポリシーページ
==================================*/
h2.heading_policy {
  font-size: clamp(21px, 2vw, 36px);
  padding-top: 40px;
  margin-bottom: 2rem;
}

h2.heading_page_policy {
  font-size: clamp(21px, 2vw, 36px);
  margin-top: 40px;
}

.policy-items {
  margin: 2rem 0;
}

.policy-items p:first-child {
  font-weight: bold;
  border-bottom: 1px solid #4d4d4d;
  display: inline-block;
}

ul.policy-list {
  list-style-type: disc;
  margin: 0 2rem;
}

ol.policy-list_number {
  list-style-type: decimal;
  margin: 0 2rem;
}

.about-company {
  margin: 4rem 0;
}

@media screen and (min-width: 680px) {
  h2.heading_page {
    padding-top: 0;
  }
}

/*==================================
会社概要ページ
==================================*/
h2.heading_company {
  font-size: clamp(40px, 5vw, 55px);
  font-family: adobe-caslon-pro, serif;
  font-weight: 600;
  padding-top: 40px;
  margin-bottom: 2rem;
}

.company_item h3 {
  border-bottom: 5px solid #1c9bc4;
  display: inline-block;
  width: 88px;
  text-align: center;
}

.company_item {
  display: flex;
  justify-content: space-evenly;
  text-align: center;
  align-items: flex-end;
  margin-bottom: 2rem;
}

.company_item p {
  width: 190px;
  text-align: left;
}

.company_item a:link {
  color: #1c9bc4;
}

@media screen and (min-width: 680px) {
  h2.heading_company {
    padding-top: 0;
  }

  .company_item h3 {
    width: 120px;
  }

  .company_item p {
    width: 450px;
  }
}

/*==================================
サンクスページ
==================================*/
.thanks_text {
  text-align: center;
}

.thanks_text p {
  margin-bottom: 1rem;
}

/*==================================
Footer
==================================*/
#footer {
  background-color: #4d4d4d;
  padding: 32px 0 100px;
}

.footer_link {
  color: #fff;
  text-align: center;
}

.footer_link p {
  padding-bottom: 1rem;
}

.footer_link a {
  text-decoration: none;
}

.copyright {
  color: #fff;
  text-align: center;
  /* margin: 10% 0 16%; */
}

.copyright small {
  font-size: 1rem;
  font-size: 10px;
}

@media screen and (min-width: 680px) {
  #footer {
    padding: 32px 0 0;
  }

  .footer_link {
    margin-bottom: 3rem;
  }

  .copyright {
    padding: 8px 0;
    margin: 0;
  }

  .copyright small {
    font-size: 14px;
  }

  .footer_link a:hover {
    color: var(--color01);
  }
}