﻿@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Barlow:wght@300;400;500;600;700&family=Noto+Serif+JP:wght@400;500&family=Zen+Kaku+Gothic+Antique:wght@400;500;700&family=Zen+Kaku+Gothic+New:wght@400;500;700&display=swap');
@import url('https://cdn.jsdelivr.net/npm/yakuhanjp@3.4.1/dist/css/yakuhanjp-narrow.min.css');

:root {
  --base-color: #333;
  --key-color: #fe0000;
  --txt-gray: #aaa;
  --txt-lgray: #c6c6c6;
  --main-bg-color: #faf9f6;
  --bg-gray: #eee;
  --bg-column: #fef6e3;
  --line-color: #e6e6e6;
  --img-mask: rgba(0,0,0,0.25);
  --txt-en: 'Barlow', sans-serif;
  --txt-jp2: 'Zen Kaku Gothic Antique', sans-serif;
  --txt-min: 'Noto Serif JP', serif;
  --transition-time: .4s;
}

/*---------------------------------------------
	リセット
  ---------------------------------------------*/
html {overflow-y: scroll;}

body, div, dl, dt, dd, ul, ul li, h1, h2, h3, h4, h5, h6,
pre, form, fieldset, input, button, textarea, p, blockquote, th, td,
section, nav, article, aside, header, address,
figure, figcaption {
  margin: 0;
  padding: 0;
}

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

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

caption, th {text-align: left;}
iframe {border: none; vertical-align: top;}
q:before, q:after {content: '';}
object, embed {verticalc-align: top;}
legend {display: none;}

button {
  background: none;
  border: none;
  outline: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  cursor: pointer;
}

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

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

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

*:focus {
  outline: none;
}

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

html {
  font-size: 93.75%;
}

@media screen and (max-width: 767px) {
  html {
    font-size: 87.5%;
  }
}

body {
  color: #333;
  font-weight: 500;
  line-height: 2; 
  text-align: left;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
html.menu-open body {
  position: fixed;
  width: 100%;
  height: 100%;
}

html.ios-sp body {
  font-weight: 400;
}


/*---------------------------------------------
	リンク
  ---------------------------------------------*/
a {
  text-decoration: none;
}
.main a {
  color: var(--key-color);
  outline: none;
  background: linear-gradient(90deg, var(--key-color), var(--key-color)) no-repeat left bottom;
  background-size: 0 1px;
  transition: var(--transition-time);
}
.main a.underline {
  background-size: 100% 1px;
  background-position: right bottom;
}
.main a[href^="tel:"] {
  color: var(--base-color);
}
.col-tel {
  cursor: text;
}


@media (hover: hover) and (pointer: fine) {
  .main a:hover {
    background-size: 100% 1px;
  }
  .main a.underline:hover {
    background-size: 0 1px;
  }
  a[href^="tel:"] {
    pointer-events: none;
  }
}


/*---------------------------------------------
	フォント
  ---------------------------------------------*/

body {
  font-family: YakuHanJP_Narrow, -apple-system, BlinkMacSystemFont, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック体", YuGothic, sans-serif;
}

h1, h2, h3, h4, h5, h6, .h2, .h3, .h4, .h5, .h6 {
  font-family: 'Zen Kaku Gothic New', sans-serif;
  font-weight: 700;
  letter-spacing: 0.075em;
  line-height: 1.6;
}

input,
select,
textarea,
button {font-family: inherit;}

.txt-en {
  font-family: 'Barlow', sans-serif !important;
}


/*---------------------------------------------
	強制指定
  ---------------------------------------------*/
/* ----- 上下左右中央寄せ ----- */
.main .left {text-align: left !important;}
.main .center {text-align: center !important;}
.main .right {text-align: right !important;}
.main .top {vertical-align: top !important;}
.main .middle {vertical-align: middle !important;}
.main .bottom {vertical-align: bottom !important;}
.main .btn.center {justify-content: center;}
.main .btn.right {justify-content: flex-end;}

/* ----- 表示／非表示 ----- */
@media screen and (min-width: 768px), print {
  .show-sp {display: none !important;}
}

@media screen and (max-width: 767px) {
  .show-pc {display: none !important;}
  .main .sp-left {text-align: left !important;}
  .main .sp-center {text-align: center !important;}
  .main .sp-right {text-align: right !important;}
}

/* ----- 文字サイズ ----- */
.main .l {font-size: 1.2rem !important;}
.main .m {font-size: 1rem !important;}
.main .s {font-size: 0.8rem !important; line-height: 1.8;}

@media screen and (max-width: 767px) {
  .main .l {font-size: 1.125rem !important;}
  .main .m {font-size: 1rem !important;}
  .main .s {font-size: 0.8571rem !important;}
}

/* ----- 文字装飾 ----- */
.main .normal {font-weight: 400 !important;}
.main .medium {font-weight: 500 !important;}
.main .bold {font-weight: 700 !important;}
.main .italic{ font-style: italic !important;}
.main .oblique {font-style: oblique !important;}

/* ----- 幅 ----- */
.main .w50 {width: 50px !important;}
.main .w60 {width: 60px !important;}
.main .w70 {width: 70px !important;}
.main .w80 {width: 80px !important;}
.main .w90 {width: 90px !important;}
.main .w100 {width: 100px !important;}
.main .w110 {width: 110px !important;}
.main .w120 {width: 120px !important;}
.main .w130 {width: 130px !important;}
.main .w140 {width: 140px !important;}
.main .w150 {width: 150px !important;}
.main .w160 {width: 160px !important;}
.main .w170 {width: 170px !important;}
.main .w180 {width: 180px !important;}
.main .w190 {width: 190px !important;}
.main .w200 {width: 200px !important;}

.main .w50p {width: 50% !important;}
@media screen and (max-width: 767px) {
  .main .sp-w50p {width: 50% !important;}
}

.main .w750 {
  max-width: 750px;
  margin-left: auto;
  margin-right: auto;
}

/* -----上余白 ----- */
.main .mt0 {margin-top: 0 !important;}
.main .mt5 {margin-top: 5px !important;}
.main .mt10 {margin-top: 10px !important;}
.main .mt20 {margin-top: 20px !important;}
.main .mt30 {margin-top: 30px !important;}
.main .mt40 {margin-top: 40px !important;}
.main .mt50 {margin-top: 50px !important;}
.main .mt60 {margin-top: 60px !important;}
.main .mt70 {margin-top: 70px !important;}
.main .mt80 {margin-top: 80px !important;}
.main .mt90 {margin-top: 90px !important;}
.main .mt100 {margin-top: 100px !important;}
.main .mt-sec {margin-top: 120px !important;}

@media screen and (max-width: 767px) {
  .main .sp-mt0 {margin-top: 0 !important;}
  .main .sp-mt5 {margin-top: 5px !important;}
  .main .sp-mt10 {margin-top: 10px !important;}
  .main .sp-mt20 {margin-top: 20px !important;}
  .main .sp-mt30 {margin-top: 30px !important;}
  .main .sp-mt40 {margin-top: 40px !important;}
  .main .sp-mt50 {margin-top: 50px !important;}
  .main .sp-mt60 {margin-top: 60px !important;}
  .main .sp-mt70 {margin-top: 70px !important;}
  .main .sp-mt80 {margin-top: 80px !important;}
  .main .sp-mt90 {margin-top: 90px !important;}
  .main .sp-mt100 {margin-top: 100px !important;}
  .main .mt-sec {margin-top: 70px !important;}
}

/* ----- 下余白 ----- */
.main .mb0 {margin-bottom: 0 !important;}
.main .mb5 {margin-bottom: 5px !important;}
.main .mb10 {margin-bottom: 10px !important;}
.main .mb20 {margin-bottom: 20px !important;}
.main .mb30 {margin-bottom: 30px !important;}
.main .mb40 {margin-bottom: 40px !important;}
.main .mb50 {margin-bottom: 50px !important;}
.main .mb60 {margin-bottom: 60px !important;}
.main .mb70 {margin-bottom: 70px !important;}
.main .mb80 {margin-bottom: 80px !important;}
.main .mb90 {margin-bottom: 90px !important;}
.main .mb100 {margin-bottom: 100px !important;}

@media screen and (max-width: 767px) {
  .main .sp-mb0 {margin-bottom: 0 !important;}
  .main .sp-mb5 {margin-bottom: 5px !important;}
  .main .sp-mb10 {margin-bottom: 10px !important;}
  .main .sp-mb20 {margin-bottom: 20px !important;}
  .main .sp-mb30 {margin-bottom: 30px !important;}
  .main .sp-mb40 {margin-bottom: 40px !important;}
  .main .sp-mb50 {margin-bottom: 50px !important;}
  .main .sp-mb60 {margin-bottom: 60px !important;}
  .main .sp-mb70 {margin-bottom: 70px !important;}
  .main .sp-mb80 {margin-bottom: 80px !important;}
  .main .sp-mb90 {margin-bottom: 90px !important;}
  .main .sp-mb100 {margin-bottom: 100px !important;}
}

/* ----- 背景色 ----- */
.main .bg-white {background-color: #fff !important;}
.main .bg-gray {background-color: var(--main-bg-color) !important;}
.main .bg-img {
	background-repeat: no-repeat;
	background-position: center center;
	background-size: cover;
}

/* ----- 文字色 ----- */
.color-key {color: var(--key-color) !important;}
.color-normal {color: var(--base-color) !important;}
.color-gray {color: var(--txt-gray) !important;}



/*---------------------------------------------
	ヘッダー
  ---------------------------------------------*/
.header {
}
.header-wrap {
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  padding: 20px 40px;
  z-index: 99998;
  transition: var(--transition-time);
}
.cv-btns {
  display: flex;
  justify-content: flex-end;
}
.cv-btns li + li {
  margin-left: 16px;
} 
.cv-btns a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 140px;
  height: 40px;
  color: var(--base-color);
  font-size: 0.8666rem;
  font-weight: 700;
  border-radius: 5px;
  border: 2px solid var(--line-color);
  background-color: #fff;
  transition: var(--transition-time);
}
.cv-btns a:before {
  content: "";
  width: 24px;
  height: 24px;
  background-repeat: no-repeat;
  background-position: left center;
  transition: var(--transition-time);
}
.cv-btns .btn-contact a {
  color: #fff;
  background-color: var(--key-color);
  border-color: var(--key-color);
}
.cv-btns .btn-contact a:before {
  background-image: url("../images/icon_contact_wh.svg");
}
.cv-btns .btn-recruit a {
  letter-spacing: 0.075em;
}
.cv-btns .btn-recruit a:before {
  background-image: url("../images/icon_recruit_blk.svg");
}
.cv-btns .btn-column a {
  border-color: #e50012;
}
.cv-btns .btn-column a:before {
  background-image: url("../images/logo_gofun02.svg");
}

.header .menu-btn {
  position: relative;
  display: none;
  width: 50px;
  height: 50px;
  overflow: hidden;
  text-indent: -9999px;
  border-radius: 4px;
  background-color: var(--base-color);
}
.header .menu-btn:before,
.header .menu-btn span:before,
.header .menu-btn span:after {
  content: "";
  position: absolute;
  left: 13px;
  width: 24px;
  height: 2px;
  background-color: #fff;
  transition: var(--transition-time);
}
.header .menu-btn:before {
  top: 24px;
}
.header .menu-btn span:before {
  top: 14px;
}
.header .menu-btn span:after {
  top: 34px;
}

@media screen and (min-width: 1080px), print {
  .header .logo,
  .navi-lang {
    display: none;
  }
  .cv-btns .btn-column a {
    width: 170px;
  }
  .cv-btns .btn-column a:before {
    width: 74px;
    height: 28px;
    margin-right: 12px;
  }
}

@media screen and (max-width: 1079px) {
  .header-wrap {
    display: flex;
    justify-content: flex-end;
    height: 74px;
    padding: 0 0 0 85px;
  }
  .header .logo {
    position: absolute;
    left: 0;
    top: 0;
    width: 85px;
    height: 59px;
    padding: 13px 16px 0 12px;
    border-radius: 0 0 8px 0;
    z-index: 99999;
  }
  .header .menu-btn {
    display: block;
    margin: 10px 12px 14px 8px;
  }
  .header .cv-btns {
    margin: 10px 0 0 auto;
  }
  .cv-btns a {
    flex-direction: column;
    width: 70px;
    height: 50px;
    padding-top: 4px;
    font-size: 10px;
    border-radius: 4px;
  }
  .cv-btns a:before {
    width: 18px;
    height: 18px;
    background-position: center;
    background-size: contain;
  }
  .header .cv-btns .btn-column {
    display: none;
  }
  .cv-btns .btn-column a:before {
    width: 46px;
  }
  .cv-btns li + li {
    margin-left: 4px;
  }
  
  .navi-lang {
    display: none;
    margin-right: auto;
    font-size: 0.8571rem;
    line-height: 1;
    align-self: center;
  }
  .navi-lang li {
    padding: 0 20px;
  }
  .navi-lang li:not(:first-of-type) {
    border-left: 1px solid #cfcfcf;
  }
  .navi-lang a {
    color: var(--base-color);
    font-weight: bold;
  }
  .navi-lang li.current a {
    color: var(--txt-gray);
  }
  
  html.menu-open .header-wrap {
    background-color: var(--main-bg-color);
  }
  html.menu-open .header .logo {
    position: fixed;
    background-color: #fff;
  } 
  html.menu-open .header .menu-btn:before {
    opacity: 0;
  }
  html.menu-open .header .menu-btn span:before {
    top: 24px;
    transform: rotate(-45deg);
  }
  html.menu-open .header .menu-btn span:after {
    top: 24px;
    transform: rotate(45deg);
  }
  html.menu-open .header .cv-btns {
    display: none;
  }
  html.menu-open .header .navi-lang {
    display: flex;
  }
}

@media (hover: hover) and (pointer: fine) {
  .cv-btns a:hover {
    color: var(--key-color);
  }
  .cv-btns .btn-contact a:hover {
    color: var(--key-color);
    background-color: #fff;
  }
  .cv-btns .btn-column a:hover {
    color: #e50012;
  }
  .cv-btns .btn-contact a:hover:before {
    background-image: url("../images/icon_contact_red.svg");
  }
  .cv-btns .btn-recruit a:hover:before {
    background-image: url("../images/icon_recruit_red.svg");
  }
}


/*---------------------------------------------
	サイドナビ
  ---------------------------------------------*/
.site-navigation {
  position: fixed;
  display: block;
  top: 0;
  width: 100%;
  font-family: 'Zen Kaku Gothic New', sans-serif;
  background-color: #fff;
  z-index: 99999;
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
.site-navigation .logo {
  position: relative;
  width: 98px;
  margin: 0 auto 34px;
  padding: 0 1px 0 0;
}
.is-scroll .site-navigation:not(.is-open) .logo {
  width: 84px;
}

.site-navigation .menu-layer {
  position: relative;
  line-height: 1.6;
}
.site-navigation li {
  position: relative;
}
.site-navigation a {
  color: var(--base-color);
  transition: color var(--transition-time);
}
.site-navigation .navi-primary .navi-parent {
  position: relative;
}
.site-navigation .navi-primary .navi-parent a {
  position: relative;
  display: flex;
  align-items: center;
  height: 56px;
  padding: 5px 40px;
  font-weight: 700;
}
.site-navigation .navi-secondary {
  margin-top: 22px;
  font-size: 0.8666rem;
}
.site-navigation .navi-secondary a {
  position: relative;
  display: flex;
  align-items: center;
  height: 40px;
  padding: 5px 40px;
}
.site-navigation .navi-secondary .current a:before,
.site-navigation .navi-primary .current .navi-parent a:before {
  content: "";
  position: absolute;
  left: 24px;
  width: 6px;
  height: 6px;
  border-radius: 100%;
  background-color: var(--key-color);
}

.site-navigation .navi-primary button {
  position: absolute;
  display: block;
  right: 0;
  top: 5px;
  width: 36px;
  height: 50px;
  margin: 0;
  padding: 0;
  z-index: 2;
} 
.site-navigation .navi-primary button:before,
.site-navigation .navi-primary button:after {
  content: "";
  position: absolute;
  display: block;
  left: calc(50% - 6.5px);
  width: 13px;
  height: 1px;
  background-color: var(--key-color);
  transition: transform var(--transition-time);
}
.site-navigation .navi-primary button:after {
  transform: rotate(90deg);
}
.site-navigation .navi-primary .navi-parent.is-active > button:after,
.site-navigation .subnavi-layer li.is-active > button:after {
  transform: rotate(0deg);
}
.site-navigation .subnavi-layer .subnavi-body-elem li.current > a,
.site-navigation .subnavi-layer .subnavi-body-elem li.current > span {
  color: var(--key-color);
}

.site-navigation .list-sns {
  justify-content: center;
}

.list-sns {
  display: flex;
}
.list-sns li + li {
  margin-left: 16px;
}
.list-sns li a {
  position: relative;
  display: block;
  width: 24px;
  height: 24px;
  overflow: hidden;
  text-indent: -9999px;
  transition: opacity var(--transition-time);
}
.list-sns li a:before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}
.list-sns li.fb a:before {
  background-image: url("../images/icon_fb.svg");
}
.list-sns li.ig a:before {
  background-image: url("../images/icon_ig.svg");
}

@media screen and (min-width: 1080px), print {
  .site-navigation {
    width: 200px;
    transition: width 0.5s ease;
  }
  .is-scroll .site-navigation {
    width: 120px;
  }
  .navigation-wrap {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    width: 100%;
    height: 100vh;
    padding: 52px 0;
  }
  .navigation-wrap:before,
  .navigation-wrap:after {
    content: "";
    position: absolute;
    top: 0;
    height: 100%;
  }
  .navigation-wrap:before {
    left: 0;
    width: 100%;
    background-color: #fff;
  }
  .navigation-wrap:after {
    right: 0;
    width: 1px;
    background-color: var(--line-color);
  }
  
  .site-navigation .menu-container {
    position: relative;
    margin-bottom: auto;
  }
  /*.is-scroll .site-navigation .menu-container {
    height: calc(100vh - 104px - 53px - 34px - 24px);
  }*/
  .site-navigation .menu-layer {
    left: 0;
    min-width: 200px;
    background-color: #fff;
    transition: left 0.5s ease;
  }
  .is-scroll .site-navigation .menu-layer {
    left: -200px;
    /*visibility: hidden;*/
    pointer-events: none;
  }
  .is-scroll .site-navigation.is-open {
    width: 200px;
  }
  .is-scroll .site-navigation.is-open ~ main {
    margin-left: 200px;
  }
  .is-scroll .site-navigation.is-open .menu-layer {
    left: 0;
    visibility: visible;
    pointer-events: auto;
    animation: delay-pointer 0.5s;
  }
  .site-navigation .navi-primary-btn {
    position: absolute;
    left: 0;
    top: 0;
    width: 120px;
    height: 100%;
    overflow: hidden;
    text-indent: -9999px;
    opacity: 0;
    pointer-events: none;
  }
  .site-navigation .navi-primary-btn:before,
  .site-navigation .navi-primary-btn span:before,
  .site-navigation .navi-primary-btn span:after {
    content: "";
    position: absolute;
    left: calc(50% - 16px);
    width: 32px;
    height: 3px;
    background-color: var(--base-color);
  }
  .site-navigation .navi-primary-btn:before {
    top: calc(50% - 1px);
  }
  .site-navigation .navi-primary-btn span:before {
    top: calc(50% - 12px);
  }
  .site-navigation .navi-primary-btn span:after {
    top: calc(50% + 10px);
  }
  .is-scroll .site-navigation .navi-primary-btn {
    opacity: 1;
    pointer-events: auto;
    cursor: pointer;
    transition: var(--transition-time);
  }
  .site-navigation .navi-primary {
    position: relative;
  }
  .site-navigation .navi-primary .subnavi-layer {
    position: fixed;
    display: block;
    top: 0;
    left: 200px;
    min-width: 420px;
    max-width: 940px;
    height: 100%;
    background-color: #fff;
    z-index: -1;
    opacity: 0;
    visibility: hidden;
    transition: opacity var(--transition-time) ease-in-out;
  }
  .site-navigation .navi-primary > li.has-menu.menu-on .subnavi-layer {
    opacity: 1;
    visibility: visible;
    transition-timing-function: ease-out;
  }
  .site-navigation .navi-primary li.has-menu .navi-parent {
    cursor: pointer;
  }
  .site-navigation .navi-primary li.has-menu .navi-parent a {
    pointer-events: none;
  }
  .site-navigation .subnavi-layer .subnavi-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 50px 0 20px;
    margin: 0 50px 20px;
    border-bottom: 1px solid var(--line-color);
  }
  .site-navigation .subnavi-layer .subnavi-img {
    border: 1px solid var(--line-color);
    border-radius: 8px;
    overflow: hidden;
  }
  .site-navigation .subnavi-layer .subnavi-title {
    font-size: 22px;
    font-weight: bold;
    flex: 1;
  }
  .site-navigation .subnavi-layer .subnavi-title a {
    display: inline-block;
    padding-left: 0;
  }
  .site-navigation .subnavi-layer .subnavi-title + .subnavi-img {
    width: 180px;
  }
  .site-navigation .subnavi-layer a,
  .site-navigation .subnavi-layer span {
    position: relative;
    display: flex;
    align-items: center;
    padding: 6px 50px;
  }
  .site-navigation .subnavi-layer .subnavi-body {
    height: calc(100% - 170px);
    overflow-y: scroll;
    -ms-overflow-style: none;
    scrollbar-width: none;
  }
  .site-navigation .subnavi-layer .subnavi-body.service-elem {
    height: calc(100% - 166px);
  }
  .site-navigation .subnavi-layer .subnavi-body::-webkit-scrollbar {
    display:none;
  }

  .site-navigation .subnavi-layer .subnavi-body-elem > ul > li > a ,
  .site-navigation .subnavi-layer .subnavi-body-elem > ul > li > span {
    min-height: 53px;
    font-weight: bold;
  }
  .site-navigation .subnavi-layer a {
    padding-right: 80px;
    background: url("../images/icon_arrow_pcmenu.svg") no-repeat right 50px center;
    background-size: 8px auto;
  }
  .site-navigation .subnavi-layer a[target="_blank"] {
    background-image: url("../images/icon_window.svg");
    background-size: 14px;
  }
  
  .site-navigation .subnavi-layer .subnavi-body-elem li li a,
  .site-navigation .subnavi-layer .subnavi-body-elem li.s a {
    min-height: auto;
    font-size: 13px;
    font-weight: unset;
  }
  .site-navigation .subnavi-layer li ul {
    margin: -6px 0 8px;
  }
  .site-navigation .subnavi-layer .row-spacer-m {
    margin-top: 18px;
  }
  
  .site-navigation .subnavi-layer .service-elem .subnavi-body-elem {
    display: flex;
    flex-direction: column;
    padding: 20px 50px 0 10px;
  }
  .site-navigation .subnavi-layer .service-elem .subnavi-body-elem > ul > li {
    padding-left: 40px;
  }
  .site-navigation .subnavi-layer .elem-panel {
    column-count: 2;
    column-gap: 40px;
  }
  .site-navigation .subnavi-layer .elem-panel > * {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    margin-bottom: 25px;
    page-break-inside: avoid;
    break-inside: avoid;
  }
  .site-navigation .subnavi-layer .elem-panel > li .subnavi-img {
    width: 140px;
  }
  .site-navigation .subnavi-layer .elem-panel > li ul {
    width: calc(100% - 140px);
    padding-left: 16px;
  }
  .site-navigation .subnavi-layer .elem-panel + ul {
    width: calc(50% - 20px);
  }
  .site-navigation .subnavi-layer .service-elem .subnavi-body-elem span {
    width: 100%;
    padding: 0 0 15px;
    min-height: 0;
  }
  .site-navigation .subnavi-layer .service-elem .subnavi-body-elem a {
    padding-left: 0;
    padding-right: 20px;
    background-position: right center;
  }
  .site-navigation .subnavi-layer button:not(.nolink) ~ ul {
    display: none;
    margin: 11px 0 8px;
  }
  .site-navigation .subnavi-layer button + a,
  .site-navigation .subnavi-layer a ~ ul li a {
    background-image: none;
  }
  .site-navigation .subnavi-layer a ~ ul li a:before {
    content: "";
    margin: -2px 3px 0 0;
    border: 4px solid transparent;
    border-left: 6px solid var(--key-color);
  }
  .site-navigation .subnavi-layer .subnavi-body-elem > ul > li > a:before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    z-index: -1;
    transition: var(--transition-time);
  }
  .site-navigation .subnavi-layer button {
    right: 0;
    width: 70px;
  }
  .site-navigation .subnavi-layer button.nolink {
    display: none;
  }
  .site-navigation .subnavi-layer button:before,
  .site-navigation .subnavi-layer button:after {
    left: 8px;
    top: calc(50% - 5px);
    width: 12px;
    height: 2px;
  }
  .site-navigation .cv-btns,
  .site-navigation .navi-primary .navi-parent a .txt-en,
  .site-navigation .navi-primary .navi-parent button {
    display: none;
  }
  .site-navigation .subnavi-layer > button {
    right: 20px;
    top: 17px;
    width: 16px;
    height: 16px;
    cursor: pointer;
  }
  .site-navigation .subnavi-layer > button:before,
  .site-navigation .subnavi-layer > button:after {
    left: calc(50% - 8px);
    top: 50%;
    width: 16px;
    background-color: var(--base-color);
    transition: background-color var(--transition-time);
  }
  .site-navigation .subnavi-layer > button:before {
    transform: rotate(45deg);
  }
  .site-navigation .subnavi-layer > button:after {
    transform: rotate(135deg);
  }
  .site-navigation .navi-primary > li.has-menu .navi-bg {
    content: "";
    position: fixed;
    top: 0;
    left: 200px;
    width: 100vw;
    height: 100%;
    background-color: var(--img-mask);
    opacity: 0;
    z-index: -1;
    pointer-events: none;
    transition: var(--transition-time);
  }
  .site-navigation .navi-primary > li.has-menu.menu-on .navi-bg {
    opacity: 1;
    pointer-events: auto;
    cursor: pointer;
  }
}

@keyframes delay-pointer {
  0%,99% {pointer-events: none;}
  100% {pointer-events: auto;}
}

@media screen and  (min-width: 1080px) and (hover: hover) and (pointer: fine) {
  .site-navigation .navi-primary .has-menu .navi-parent:hover a {
    color: var(--key-color);
  }
  .site-navigation .subnavi-layer .subnavi-body-elem > ul > li.is-active > a:before,
  .site-navigation .subnavi-layer .subnavi-body-elem > ul > li > a:hover:before,
  .site-navigation .subnavi-layer button:hover + a:before {
    color: var(--key-color);
    background-color: var(--main-bg-color);
  }
  .site-navigation .subnavi-layer .subnavi-body-elem li.s a:hover:before {
    background-color: transparent;
  }
  .site-navigation .subnavi-layer li:not(.is-active) button:hover:before {
    transform: rotate(180deg);
  }
  .site-navigation .subnavi-layer li:not(.is-active) button:hover:after {
    transform: rotate(270deg);
  }
  .site-navigation .subnavi-layer > button:hover:before,
  .site-navigation .subnavi-layer > button:hover:after {
    background-color: var(--key-color);
  }
}

@media screen and (max-width: 1079px) {
  /*.navigation {
    display: none;
  }*/
  .site-navigation {
    height: calc(100% - 74px);
    top: 74px;
    padding: 30px 5%;
    background-color: var(--main-bg-color);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
  }
  html.menu-open .site-navigation {
    transition: .6s;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }
  .navigation-wrap {
    height: 100%;
    overflow-y: scroll;
    -ms-overflow-style: none;
    scrollbar-width: none;
  }
  .navigation-wrap::-webkit-scrollbar {
    display:none;
  }
  .site-navigation .logo {
    display: none;
  }
  .site-navigation .navi-primary .subnavi-layer > button {
    display: none;
  }
  .site-navigation .navi-primary .navi-parent a {
    min-height: 60px;
    padding: 5px 0 5px 22px;
    font-size: 1.0714rem;
  }
  .site-navigation .navi-primary .navi-parent a .txt-en {
    position: absolute;
    left: 50vw;
    padding-left: 6px;
    color: var(--txt-gray);
    font-size: 0.7857rem;
    font-weight: 400;
  }
  .site-navigation .navi-primary .navi-parent button {
    top: 5px;
    height: calc(100% - 10px);
  }
  .site-navigation .navi-primary .navi-parent button + a {
    margin-right: 35px;
    background-image: none;
  }
  .site-navigation .navi-primary li.has-menu > a,
  .site-navigation .navi-primary li.has-menu > span {
    margin-right: 30px;
    background-image: none;
  } 
  
  .site-navigation .subnavi-layer li a,
  .site-navigation .subnavi-layer li span {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 45px;
    padding: 5px 36px;
    font-size: 1rem;
  }

  .site-navigation .subnavi-layer button {
    height: 35px;
  }
  .site-navigation .subnavi-layer li ul {
    display: none;
    padding-left: 15px;
  }
  
  .site-navigation .navi-secondary {
    margin-top: 8px;
    font-size: 0.9285rem;
  }
  .site-navigation .navi-secondary a {
    min-height: 46px;
    padding: 5px 22px;
  }
  
  .site-navigation .navi-primary a,
  .site-navigation .navi-secondary a {
    padding-right: 40px;
    background: url("../images/icon_arrow_spmenu.svg") no-repeat right 15px center;
    background-size: 6px auto;
  }
  
  .site-navigation .navi-secondary .current a:before,
  .site-navigation .navi-primary .current .navi-parent a:before {
    left: 0;
  }
  
  .navi-primary-btn,
  .site-navigation .subnavi-layer .subnavi-header,
  .site-navigation .subnavi-layer .subnavi-img {
    display: none;
  }
  
  .site-navigation .list-sns  {
    margin-top: 20px;
  }
  
  .site-navigation .cv-btns {
    margin-top: 26px;
  }
  .site-navigation .cv-btns li {
    width: calc(50% - 7px);
  }
  .site-navigation .cv-btns a {
    width: 100%;
    height: 76px;
    padding-top: 4px;
    font-size: 1rem;
    border-radius: 8px;
  }
  .site-navigation .cv-btns a:before {
    width: 27px;
    height: 27px;
  }
  .site-navigation .cv-btns .btn-column a:before {
    width: 69px;
  }
  .site-navigation .cv-btns li + li {
    margin-left: 14px;
  }
  .site-navigation .navi-primary .navi-bg {
    display: none;
  }

}

@media (hover: hover) and (pointer: fine) {
  .site-navigation a:hover {
    color: var(--key-color);
  }
  .list-sns li a:hover {
    opacity: 0.7;
  }
}


/*---------------------------------------------
	フッタ
  ---------------------------------------------*/
.footer {
  position: relative;
  margin: 0 0 0 120px;
  padding: 24px 0 80px;
  border-top: 1px solid var(--line-color);
  background-color: #fff;
}
.footer a {
  color: var(--base-color);
  transition: color var(--transition-time);
}
.footer .logo {
  width: 96px;
  margin: 16px auto 0;
}
.footer .logo img {
  width: 100%;
}
.footer .footer-conts {
  position: relative;
  padding: 0 5.5vw;
}
.footer .btm-menu {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  margin-top: 52px;
  font-size: 0.8rem;
  line-height: 1.3;
}
.footer .btm-menu li {
  margin: 10px 20px;
}
.footer .btm-menu a[target="_blank"] {
  padding-right: 24px;
  background: url("../images/icon_window_thin_blk.svg") no-repeat right center;
  background-size: 14px;
}
.footer .copyright {
  margin-top: 20px;
  color: var(--txt-gray);
  font-size: 10px;
  text-align: center;
}
.footer .list-sns + * {
  margin-top: 52px;
}
.footer #btn-pagetop {
  padding: 0 40px 0 0;
  text-align: right;
}
.footer #btn-pagetop a {
  position: relative;
  display: inline-block;
  padding-right: 56px;
  font-family: var(--txt-en);
  line-height: 40px;
}
.footer #btn-pagetop a:before,
.footer #btn-pagetop a:after {
  content: "";
  position: absolute;
  right: 0;
  top: 0;
  width: 40px;
  height: 40px;
}
.footer #btn-pagetop a:before {
  border-radius: 100%;
  background-color: var(--key-color);
  transition: transform var(--transition-time);
}
.footer #btn-pagetop a:after {
  background: url("../images/icon_arrow_wh.svg") no-repeat center;
  transform: rotate(-90deg);
}

@media screen and (min-width: 1080px), print {
  .footer .list-sns {
    display: none;
  }
}

@media screen and (max-width: 1079px) {
  .footer {
    margin: 0;
    padding: 24px 0;
  }
  .footer .logo {
    width: 100px;
    margin-top: 55px;
  }
  .footer .list-sns {
    margin-top: 24px;
    justify-content: center;
  }
  .footer .footer-conts {
    padding: 0 5%;
  }
  .footer .btm-menu {
    margin-top: 32px;
    font-size: 0.8571rem;
  }
  .footer .list-sns + * {
    margin-top: 32px;
  }
  .footer #btn-pagetop {
    padding-right: 5%;
    font-size: 1.1785rem;
  }
  .footer #btn-pagetop a {
    padding-right: 0;
    padding-top: 36px;
    line-height: inherit;
  }
  .footer #btn-pagetop a:before,
  .footer #btn-pagetop a:after {
    width: 36px;
    height: 36px;
    left: 0;
    right: 0;
    margin: auto;
  }
}

@media screen and (max-width: 767px) {
  .footer .btm-menu {
    max-width: 350px;
    margin: 42px auto 0;
    justify-content: flex-start;
  }
  .footer .btm-menu li {
    width: 50%;
    margin: 0;
    padding: 12px;
  }
  .footer .copyright {
    margin-top: 35px;
  }
}

@media (hover: hover) and (pointer: fine) {
  .footer a:hover {
    color: var(--key-color);
  }
  .footer .btm-menu a[target="_blank"]:hover {
    background-image: url("../images/icon_window_thin.svg");
  }
  #btn-pagetop a:hover:before {
    transform: scale(1.1);
  }
}


/*---------------------------------------------
	メインコンテンツ
  ---------------------------------------------*/
#wrapper {
  position: relative;
  z-index: 0;
}
#wrapper:after {
  content: "";
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color:#fff;
  z-index: 99;
  pointer-events: none;
  opacity: 0;
  transition: opacity var(--transition-time) ease;
}
#wrapper.loading:after {
  opacity: 1;
  animation: fadein 1s ease 1s 1 forwards;
}
@keyframes fadein {
  100% {
    opacity: 0;
  }
}

.main {
  position: relative;
  display: block;
  overflow: clip;
  padding-bottom: 144px;
}

.main .section {
  padding: 0 5% 4px;
}
.main .section > *:last-child {
  margin-bottom: 0;
}

.main .section .article {
  max-width: 920px;
  margin: 0 auto;
  padding-top: 81px;
}
.main .section .inner {
  max-width: 1080px;
  margin: 0 auto;
  padding-top: 95px;
}

@media screen and (min-width: 1080px), print {
  .main {
    margin-left: 200px;
    transition: margin-left 0.5s ease;
  }
  .is-scroll main {
    margin-left: 120px;
  }
}

@media screen and (max-width: 1079px) {
  .main {
    padding-bottom: 130px;
  }
  .main .section .article {
    padding-top: 45px;
  }
  .main .section .inner {
    padding-top: 45px;
  }
}


.main #page-title {
  position: relative;
  display: flex;
  align-items: flex-end;
  min-height: 292px;
  padding: 66px 5% 64px;
  background-color: var(--main-bg-color);
}
.main .page-title-body {
  position: relative;
  width: 100%;
  max-width: 1080px;
  margin: 0 auto;
  flex: 1;
  z-index: 2;
}
.main .page-title-body h1 {
  color: var(--key-color);
  font-size: 3rem;
}
.main .page-title-body h1.page-title-level2 {
  line-height: 1.4;
}
.main .page-title-body h1.page-title-level2 .en {
  display: block;
  font-family: var(--txt-en);
  font-size: 3.8rem;
}
.main .page-title-body h1.page-title-level2 .jp {
  display: block;
  padding-bottom: 13px;
  color: var(--base-color);
  font-size: 1rem;
}
.main #page-title .page-title-lead {
  margin: 0;
  font-weight: bold;
}

@media screen and (max-width: 767px) {
  .main #page-title {
    display: block;
    min-height: 160px;
    padding: 88px 5% 24px;
  }
  .main .page-title-body .page-title-body {
    width: auto;
  }
  .main .page-title-body h1 {
    font-size: 2.1428rem;
  }
  .main .page-title-body h1.page-title-level2 .en {
    font-size: 3.1428rem;
  }
}

.main #breadcrumb {
  padding: 16px 5% 0;
  font-size: 0.8rem;
  line-height: 1.6;
}
.main #breadcrumb ul {
  max-width: 1080px;
  margin: 0 auto;
}
.main #breadcrumb ul > li {
  display: inline;
  margin: 5px 0;
  padding: 0 2em 0 0;
}
.main #breadcrumb ul > li:before {
  left: auto;
  right: 9px;
  top: calc(0.5em - 2px);
  width: 7px;
  height: 7px;
  border: 1px solid transparent;
  border-top-color: var(--txt-gray);
  border-right-color: var(--txt-gray);
  border-radius: 0;
  background-color: transparent;
  transform: rotate(45deg);
}
.main #breadcrumb ul > li:last-of-type:before {
  content: none;
}

@media screen and (max-width: 767px) {
  .main #breadcrumb {
    display: none;
  }
}

/*---------------------------------------------
	動画埋め込み
  ---------------------------------------------*/
.main .embed-video iframe {
	width: 100%;
  height: auto;
  aspect-ratio: 16/9;
  border-radius: 8px;
  overflow: hidden;
}



/*---------------------------------------------
	モーダル
  ---------------------------------------------*/
/* Magnific Popup CSS */
.mfp-bg {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 100042;
	overflow: hidden;
	background: #000;
	opacity: .6;
	-moz-animation: mfp-bg-fadein .3s linear;
	-webkit-animation: mfp-bg-fadein .3s linear;
	animation: mfp-bg-fadein .3s linear;
}

@-moz-keyframes mfp-bg-fadein {
	0% {opacity: 0;}
	100% {opacity: .8;}
}
@-webkit-keyframes mfp-bg-fadein {
	0% {opacity: 0;}
	100% {opacity: .8;}
}
@keyframes mfp-bg-fadein {
	0% {opacity: 0;}
	100% {opacity: .8;}
}
.mfp-bg.mfp-ready.mfp-removing {
	opacity: 0;
	transition: opacity .3s linear .3s;
}

.mfp-wrap {
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 100043;
	position: fixed;
	outline: none !important;
}

.mfp-container {
	position: absolute;
	width: 100%;
	max-width: none;
	height: 100%;
	left: 0;
	top: 0;
	text-align: center;
	box-sizing: border-box;
}

.mfp-container:before {
	content: '';
	display: inline-block;
	height: 100%;
	vertical-align: middle;
}
.mfp-align-top .mfp-container:before {display: none;}

.mfp-content {
	position: relative;
	display: inline-block;
	margin: 20px auto;
	text-align: left;
	vertical-align: middle;
	opacity: 0;
	z-index: 100045;
	-webkit-backface-visibility: hidden;
	transform: scale(.9);
}
.mfp-wrap.mfp-ready .mfp-content  {
	opacity: 1;
	-moz-transform: scale(1);
	-webkit-transform: scale(1);
	transform: scale(1);

	-moz-transition: -moz-transform .3s ease-out, opacity .3s linear;
	-webkit-transition: -webkit-transform .3s ease-out, opacity .3s linear;
	transition: transform .3s ease-out, opacity .3s linear;
}
.mfp-wrap.mfp-ready.mfp-removing .mfp-content  {
	opacity: 0;
	-moz-transform: scale(.9);
	-webkit-transform: scale(.9);
	transform: scale(.9);
	-moz-transition: -moz-transform .3s ease-in .3s, opacity .3s linear .3s;
	-webkit-transition: -webkit-transform .3s ease-in .3s, opacity .3s linear .3s;
	transition: transform .3s ease-in .3s, opacity .3s linear .3s;
}

.mfp-inline-holder .mfp-content,
.mfp-ajax-holder .mfp-content {
	width: 100%;
	padding: 0 5%;
	cursor: auto;
}

.mfp-inline-holder .mfp-content > div {
	position: relative;
  width: 100%;
  max-width: 920px;
  max-height: calc(100vh - 40px);
	margin: 0 auto;
  padding: 74px 58px;
  border-radius: 8px;
  background-color: #fff;
  box-shadow: 0px 0px 30px 0px rgba(0, 0, 0, 0.1);
}
.mfp-inline-holder .mfp-content > div .outer {
  max-height: calc(100vh - 40px - 148px);
  overflow-y: auto; 
  scrollbar-width: thin;
  scrollbar-color: var(--key-color) var(--main-bg-color);
}
.mfp-inline-holder .mfp-content > div .outer::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}
.mfp-inline-holder .mfp-content > div .outer::-webkit-scrollbar-track {
  background-color: var(--main-bg-color);
  border-radius: 100px;
}
.mfp-inline-holder .mfp-content > div .outer::-webkit-scrollbar-thumb {
  background-color: var(--key-color);
  border-radius: 100px;
}
.mfp-inline-holder .mfp-content > div .inner {
  padding: 0 22px;
  overflow: clip;
}
.mfp-inline-holder .mfp-content > div .inner > *:nth-last-child(2) {
  margin-bottom: 0;
}
.mfp-inline-holder .mfp-content > div h4 {
  margin-bottom: 28px;
}
.mfp-inline-holder .mfp-content > div li:before {
  top: calc(0.8em - 2px);
  width: 4px;
  height: 4px;
  background-color: var(--base-color);
}

.mfp-ajax-cur {cursor: progress;}

.mfp-zoom-out-cur, .mfp-zoom-out-cur .mfp-image-holder .mfp-close {
	cursor: -moz-zoom-out;
	cursor: -webkit-zoom-out;
	cursor: zoom-out;
}

.mfp-zoom {
	cursor: pointer;
	cursor: -webkit-zoom-in;
	cursor: -moz-zoom-in;
	cursor: zoom-in;
}

.mfp-auto-cursor .mfp-content {cursor: auto;}

.mfp-close,
.mfp-arrow,
.mfp-preloader,
.mfp-counter {
	-webkit-user-select: none;
	-moz-user-select: none;
	user-select: none;
}

.mfp-loading.mfp-figure {display: none;}

.mfp-hide {display: none !important;}

.mfp-preloader {
	position: absolute;
	top: 50%;
	width: 100%;
	height: 60px;
	margin-top: -30px;
	text-indent: -9999px;
	z-index: 100044;
	overflow: hidden;
}
.mfp-preloader:before {
	content: "";
	display: block;
	width: 60px;
	height: 60px;
	margin: 0 auto;
	background-image: url(../images/preloader.svg);
	background-repeat: no-repeat;
	background-position: 0 0;
	background-size: 60px 60px;
}

.mfp-s-ready .mfp-preloader {display: none;}

.mfp-s-error .mfp-content {display: none;}

.mfp-close {
	position: absolute;
	width: 40px;
	height: 40px;
	right: 40px;
	top: 40px;
	text-indent: -9999px;
	cursor: pointer;
	overflow: hidden;
	border: none;
	background: var(--key-color);
	outline: none;
  border-radius: 100%;
  transition: transform var(--transition-time);
}

.mfp-close:before,
.mfp-close:after {
	content: "";
	position: absolute;
	display: block;
	width: 2px;
	height: 18px;
	right: 19px;
	top: 11px;
	background-color: #fff;
	border-radius: 2px;
}
.mfp-close:before {
	transform: rotate(45deg);
}
.mfp-close:after {
	transform: rotate(-45deg);
}

.mfp-counter {
	position: absolute;
	top: 0;
	right: 0;
	color: #ccc;
	font-size: .96rem;
	line-height: 1.6;
	white-space: nowrap;
}

.mfp-arrow {
	position: absolute;
	z-index: 100046;
	width: 40px;
	height: 40px;
	top: 50%;
	margin-top: -20px;
	text-indent: -9999px;
	background-color: var(--key-color);
	border: 0 none;
	overflow: hidden;
	cursor: pointer;
	outline: none;
	-moz-appearance: none;
	-webkit-appearance: none;
	appearance: none;
	border-radius: 50%;
}
.mfp-arrow:before,
.mfp-arrow:after {
  content: "";
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  width: 40px;
  height: 40px;
  margin: auto;
}
.mfp-arrow:before {
  border-radius: 100%;
  background-color: var(--key-color);
  transition: transform var(--transition-time);
}
.mfp-arrow:after {
  background: url("../images/icon_arrow_wh.svg") no-repeat center;
}
.mfp-arrow-left {left: -100px;}
.mfp-arrow-right {right: -100px;}

.mfp-arrow-left:after {
	left: 7px;
	transform: rotate(180deg);
}
.mfp-arrow-right:after {right: 7px;}

.mfp-ready .mfp-arrow-left {
	left: 20px;
	transition: left .3s cubic-bezier(.47, 1.83, .71, 1) .3s;
}
.mfp-ready.mfp-removing .mfp-arrow-left {
	left: -100px;
	transition: left .5s ease-in 0s;
}
.mfp-ready .mfp-arrow-right {
	right: 20px;
	transition: right .3s cubic-bezier(.47, 1.83, .71, 1) .3s;
}
.mfp-ready.mfp-removing .mfp-arrow-right {
	right: -100px;
	transition: right .5s ease-in 0s;
}

.mfp-iframe-holder .mfp-content {
	line-height: 0;
	width: 100%;
	max-width: 980px;
	padding: 40px 5%;
}

.mfp-iframe-scaler {
	position: relative;
	width: 100%;
	height: 0;
	padding-top: 56.25%;
}

.mfp-iframe-scaler iframe {
	position: absolute;
	display: block;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	-moz-box-shadow: 0 0 30px rgba(0, 0, 0, .6);
	-webkit-box-shadow: 0 0 30px rgba(0, 0, 0, .6);
	box-shadow: 0 0 30px rgba(0, 0, 0, .6);
	background: #000;
}
.mfp-iframe-scaler .mfp-close {
	width: 64px;
	height: 64px;
	right: -32px;
	top: -32px;
  z-index: 2;
}
.mfp-iframe-scaler .mfp-close:before,
.mfp-iframe-scaler .mfp-close:after {
	height: 24px;
	right: 31px;
	top: 19px;
}

/* Main image in popup */
img.mfp-img {
	position: relative;
	z-index: 1;
	display: block;
	width: auto;
	max-width: 100%;
	height: auto;
	margin: 0 auto;
	line-height: 0;
	-moz-box-sizing: border-box;
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
}

/* The shadow behind the image */
.mfp-figure {
	line-height: 0;
	padding: 40px 0;
}
.mfp-figure:after {
	content: '';
	position: absolute;
	z-index: -1;
	display: block;
	width: auto;
	height: auto;
	left: 0;
	top: 40px;
	bottom: 40px;
	right: 0;
	background: #444;
	-moz-box-shadow: 0 0 50px rgba(0, 0, 0, .6);
	-webkit-box-shadow: 0 0 50px rgba(0, 0, 0, .6);
	box-shadow: 0 0 50px rgba(0, 0, 0, .6);
}

.mfp-figure small {
	color: #BDBDBD;
	display: block;
	font-size: .75rem;
	line-height: 1.6;
}

.mfp-figure figure {
	position: relative;
	margin: 0;
}

.mfp-title {
	float: left;
	height: 1.6em;
	padding-right: 4em;
	text-align: left;
	line-height: 1.6;
	color: #fff;
}

.mfp-image-holder .mfp-content {max-width: 100%;}

.mfp-gallery .mfp-image-holder .mfp-figure {cursor: pointer;}

@media (hover: hover) and (pointer: fine) {
  .mfp-close:hover {
    transform: scale(1.1);
  }

  .mfp-close:hover:before {
    transform: rotate(45deg) scale(0.909);
  }
  .mfp-close:hover:after {
    transform: rotate(-45deg) scale(0.909);
  }
}

@media screen and (max-width: 767px) {
  .mfp-close {
    width: 38px;
    height: 38px;
    right: 12px;
    top: 12px;
  }
  .mfp-close:before,
  .mfp-close:after {
    right: 18px;
    top: 10px;
  }
  .mfp-inline-holder .mfp-content > div {
    padding: 28px;
  }
  .mfp-inline-holder .mfp-content > div .outer {
    max-height: calc(100vh - 40px - 56px);
  }
  .mfp-inline-holder .mfp-content > div .inner {
    padding: 0 12px;
  }
  .mfp-inline-holder .mfp-content.main > div * + h5 {
    margin-top: 24px;
  }
  .mfp-iframe-scaler .mfp-close {
    width: 50px;
    height: 50px;
    right: -25px;
    top: -25px;
  }
  .mfp-iframe-scaler .mfp-close:before,
  .mfp-iframe-scaler .mfp-close:after {
    height: 20px;
    right: 24px;
    top: 14px;
  }
}

/*---------------------------------------------
	スライダー
  ---------------------------------------------*/
.main .slider {position: relative;}
.main .slider-container {
  width: 100%;
  overflow: hidden;
}

/* ----- Slick Slider ----- */
.main .slick-slider {
  position: relative;
  display: block;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
  -khtml-user-select: none;
  -ms-touch-action: pan-y;
  touch-action: pan-y;
  -webkit-tap-highlight-color: transparent;
}

.main .slick-list{
  position: relative;
  display: block;
  overflow: hidden;
  margin: 0;
  padding: 0;
}
.main .slick-list:focus{outline: none;}
.main .slick-list.dragging{
  cursor: pointer;
  cursor: hand;
}

.main .slick-slider .slick-track,
.main .slick-slider .slick-list{
  -webkit-transform: translate3d(0, 0, 0);
  -moz-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
}

.main .slick-track{
  display: -webkit-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  position: relative;
  top: 0;
  left: 0;
  -webkit-box-align: stretch;
  -ms-flex-align: stretch;
  -webkit-align-items: stretch;
  align-items: stretch;
}
.main .slick-track:before,
.main .slick-track:after {
  display: table;
  content: '';
}
.main .slick-track:after {clear: both;}

.main .slick-loading .slick-track {visibility: hidden;}

.main .slick-slide {
  display: none;
  min-height: 1px;
  margin-bottom: 0;
}

.main .slick-slide img {display: block;}

.main .slick-slide.slick-loading img {display: none;}

.main .slick-slide.dragging img {pointer-events: none;}

.main .slick-initialized .slick-slide {display: block;}

.main .slick-loading .slick-slide {visibility: hidden;}

.main .slick-vertical .slick-slide {
  display: block;
  height: auto;
  border: 1px solid transparent;
}

.main .slick-arrow.slick-hidden {display: none;}

.main .slick-arrow {
  position: absolute;
  bottom: 0;
  width: 18px;
  height: 27px;
  text-indent: -9999px;
  border: 0 none;
  background-image: url("../images/icon_arrow_slide.svg");
  background-repeat: no-repeat;
  background-size: contain;
  overflow: hidden;
  cursor: pointer;
  outline: none;
  z-index: 2;
  -moz-appearance: none;
  -webkit-appearance: none;
  appearance: none;
}

.main .slick-next {right: 5%;}
.main .slick-prev {
  left: 5%;
  transform: scaleX(-1);
}

.main .slick-dots {
  width: auto;
  margin: 22px -8px 0 auto;
  padding: 0;
  line-height: 1;
  text-align: right;
}
.main .slick-dots li {
  display: inline-block;
  width: 10px;
  height: 10px;
  margin: 0 8px;
  padding: 0;
  vertical-align: middle;
  border-radius: 10px;
  transition: background-color .2s linear;
}
.main .slick-dots li:before {display: none;}
.main .slick-dots li button {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  text-indent: -9999px;
  overflow: hidden;
  cursor: pointer;
  outline: none;
  border-radius: 10px;
  background-color: var(--bg-gray);
  transition: background-color .2s linear;
}
.main .slick-dots li:hover button,
.main .slick-dots .slick-active button {background-color: var(--key-color);}

@media screen and (max-width: 767px) {
  .main .slick-arrow {
    width: 9px;
    height: 14px;
  }
  .main .slick-dots {
    margin-right: auto;
    text-align: center;
  }
}


/*---------------------------------------------
	module
  ---------------------------------------------*/
.main h2,
.main .h2 {
  margin: 0 0 16px;
  font-size: 2.066rem;
}
.main h2:before,
.main .h2:before {
  content: "";
  position: relative;
  display: block;
  width: 64px;
  height: 3px;
  margin-bottom: 30px;
  background-color: var(--key-color);
}
.main h2.noline:before,
.main .h2.noline:before {
  content: none;
}
.main * + h2 {
  margin-top: 78px;
}
.main h2:not(:first-child) {
  margin-top: 116px;
}
.main h2 + * {
  margin-top: 52px;
}
.main h2 + p {
  margin-top: 26px;
}

.main h3,
.main .h3 {
  position: relative;
  padding-bottom: 22px;
  margin: 0 0 32px;
  font-size: 1.733rem;
  border-bottom: 3px solid var(--line-color);
}
.main h3:before,
.main .h3:before {
  content: "";
  position: absolute;
  display: block;
  left: 0;
  bottom: -3px;
  width: 33px;
  height: 3px;
  margin-bottom: 0;
  background-color: var(--key-color);
}
.main h3.noline,
.main .h3.noline {
  padding-bottom: 0;
  border-bottom: none;
}
.main h3.noline:before,
.main .h3.noline:before {
  content: none;
}
.main h3.with-icon,
.main .h3.with-icon {
  display: flex;
  align-items: center;
  padding-bottom: 0;
  border-bottom: none;
}
.main h3.with-icon:before,
.main .h3.with-icon:before {
  content: none;
}
.main h3.with-icon img,
.main .h3.with-icon img {
  width: 56px;
  height: auto;
  margin-right: 28px;
}
.main * + h3,
.main * + .h3 {
  margin-top: 46px;
}
.main h2 + h3 {
  margin-top: 46px;
}
.main .col-set figure + h3,
.main .col-set figure + .h3 {
  margin-top: 30px;
}

.main h3 + figure,
.main h3 + table,
.main h3 + .col-set,
.main h3 + .img-set {
  margin-top: 40px;
}

.main h4,
.main .h4 {
  margin: 0 0 20px;
  padding: 0;
  font-size: 1.466rem;
  border: none;
}
.main * + h4,
.main * + .h4 {
  margin-top: 48px;
}
.main h3 + h4,
.main .h3 + .h4,
.main .img-set[class*="column"] + h4 {
  margin-top: 0;
}
.main h4 + figure,
.main h4 + table,
.main h4 + .col-set,
.main h4 + .img-set {
  margin-top: 32px;
}

.main h5,
.main .h5 {
  margin: 0 0 18px;
  padding: 0;
  font-size: 1.2rem;
  border: none;
}
.main * + h5,
.main * + .h5 {
  margin-top: 50px;
}
.main h5 + .img-set {
  margin-top: 24px;
}

.main .h4:before,
.main .h5:before {
  content: none;
}

.main p {
  margin: 0 0 16px;
}

@media screen and (max-width: 767px) {
  .main h2,
  .main .h2 {
    font-size: 1.4285rem;
  }
  .main h2:before,
  .main .h2:before {
    margin-bottom: 24px;
  }
  .main h2:not(:first-child) {
    margin-top: 80px;
  }
  .main * + h2 {
    margin-top: 78px;
  }
  .main h3,
  .main .h3 {
    font-size: 1.2857rem;
  }
  .main * + h3,
  .main * + .h3 {
    margin-top: 66px;
  }
  .main .h3 + * {
    margin-top: 0;
  }

  .main h4,
  .main .h4 {
    font-size: 1.1428rem;
  }
  .main * + h4,
  .main * + .h4 {
    margin-top: 56px;
  }
  .main h5,
  .main .h5 {
    font-size: 1rem;
  }
}

/* ------- link icon ------- */
.main .link-icon a,
.main a.link-icon {
  display: inline-block;
  background: none;
}
.main .link-icon a[target="_blank"]:after,
.main a.link-icon[target="_blank"]:after {
  content: "";
  position: relative;
  display: inline-block;
  width: 1em;
  height: 1em;
  margin-top: -0.25em;
  margin-left: 0.5em;
  vertical-align: middle;
  background: url("../images/icon_window.svg") no-repeat center;
}
.main .link-icon a[href$=".pdf"]:after,
.main a.link-icon[href$=".pdf"]:after {
  background-image: url("../images/icon_pdf.svg");
}
.main .link-icon a span,
.main a.link-icon span {
  background: linear-gradient(90deg, var(--key-color), var(--key-color)) no-repeat left bottom;
  background-size: 0 1px;
  transition: var(--transition-time);
}
.main ul.link-icon li {
  padding-left: 0;
}
.main ul.link-icon li:before {
  content: none;
}
.main .link-icon.black a,
.main a.link-icon.black {
  color: var(--base-color);
  transition: 0s;
}


@media (hover: hover) and (pointer: fine) {
  .main .link-icon a:hover span,
  .main a.link-icon:hover span {
    background-size: 100% 1px;
  }
  .main .link-icon.black a:hover,
  .main a:hover.link-icon.black {
    color: var(--key-color);
  }
}

/* ------- circle btn ------- */
.main .btn-circle {
  margin: 0 0 16px;
  padding: 0;
  border: none;
}
.main .btn-circle:before {
  content: none;
}
.main .btn-circle a {
  position: relative;
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding-right: 56px;
  color: var(--base-color);
  line-height: 1.6;
  background: none;
}
.main .btn-circle a:not(:last-child) {
  margin-right: 60px;
}
.main .btn-circle a:before,
.main .btn-circle a:after {
  content: "";
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  width: 40px;
  height: 40px;
  margin: auto;
}
.main .btn-circle a:before {
  border-radius: 100%;
  background-color: var(--key-color);
  transition: transform var(--transition-time);
}
.main .btn-circle a:after {
  background: url("../images/icon_arrow_wh.svg") no-repeat center;
}
.main .btn-circle.right {
  align-items: flex-end;
}

.main .btn-circle.link-back a {
  padding-right: 0;
  padding-left: 56px;
}
.main .btn-circle.link-back a:before,
.main .btn-circle.link-back a:after {
  right: auto;
  left: 0;
}
.main .btn-circle.link-back a:after {
  transform: scaleX(-1);
}

.main .btn-circle li,
.main .btn-circle-s li {
  padding-left: 0;
}
.main .btn-circle li:before,
.main .btn-circle-s li:before {
  content: none;
}

.main .btn-circle-s a {
  position: relative;
  display: inline-flex;
  align-items: center;
  padding: 0 30px 0 0;
  color: var(--base-color);
  font-weight: bold;
  line-height: 1.4;
  background: none;
}
.main .btn-circle-s a:before,
.main .btn-circle-s a:after {
  content: "";
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  width: 18px;
  height: 18px;
  margin: auto;
}
.main .btn-circle-s a:before {
  border-radius: 100%;
  background-color: var(--key-color);
  transition: transform var(--transition-time);
}
.main .btn-circle-s a:after {
  background-image: url("../images/icon_arrow_s_wh.svg");
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
}
.main .btn-circle-s a[target="_blank"]:after {
  background-image: url("../images/icon_window_wh.svg");
  background-size: 10px;
}
.main h2.btn-circle:before {
  content: "";
}


@media (hover: hover) and (pointer: fine) {
  .main .btn-circle a:hover,
  .main .btn-circle-s a:hover {
    color: var(--key-color);
  }
  .main .btn-circle a:hover:before,
  .main .btn-circle-s a:hover:before {
    transform: scale(1.1);
  }
}

@media screen and (min-width: 768px), print {
  .main .btn-circle.is-vertical {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
  }
  .main .btn-circle.is-vertical a:not(:last-child) {
    margin-right: 0;
    margin-bottom: 16px;
  }
}

@media screen and (max-width: 767px) {
  .main .btn-circle {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
  }
  .main .btn-circle a {
    min-height: 38px;
    padding-right: 52px;
  }
  .main .btn-circle a:before,
  .main .btn-circle a:after {
    width: 38px;
    height: 38px;
  }
  .main .btn-circle a:not(:last-child) {
    margin-right: 0;
    margin-bottom: 12px;
  }

}

/* ------- button ------- */
.main .btn {
  display: flex;
  flex-wrap: wrap;
  margin-right: -20px;
  margin-bottom: 20px;
}
.main * + .btn {
  margin-top: 22px;
}
.main .btn a {
  position: relative;
  display: inline-flex;
  align-items: center;
  min-width: 300px;
  min-height: 62px;
  padding: 10px 60px 10px 30px;
  margin-right: 20px;
  color: var(--base-color);
  font-weight: bold;
  line-height: 1.4;
  border: 2px solid var(--line-color);
  border-radius: 5px;
  background: #fff;
}
.main .btn a:before,
.main .btn a:after {
  content: "";
  position: absolute;
  right: 30px;
  top: 0;
  bottom: 0;
  width: 18px;
  height: 18px;
  margin: auto;
}
.main .btn a:before {
  border-radius: 100%;
  background-color: var(--key-color);
  transition: transform var(--transition-time);
}
.main .btn a:after {
  background-image: url("../images/icon_arrow_s_wh.svg");
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
}
.main .btn a[target="_blank"]:after {
  background-image: url("../images/icon_window_wh.svg");
  background-size: 10px;
}
.main .btn a[href$=".pdf"]:after {
  background-image: url("../images/icon_download_wh.svg");
  background-size: 18px;
}
.main .col1-3 .btn a {
  min-width: 84.9%;
}

.main .btn.related-btn-set {
  position: relative;
  margin: 96px 0 0;
  border: 2px solid var(--line-color);
  border-radius: 8px;
  overflow: clip;
}
.main .btn.related-btn-set > a {
  display: flex;
  width: 33.3333%;
  min-width: 0;
  margin: 0;
  border: none;
  border-radius: 0;
}
.main .btn.related-btn-set > a.current {
  background-color: #fff3f2;
  pointer-events: none;
}

.main .related-btn-level4 {
  margin: 96px 0 0;
  padding: 12px 0;
  border: 1px solid var(--line-color);
  border-left: none;
  border-right: none;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}
.main .related-btn-level4 a {
  position: relative;
  margin: 12px 28px;
  padding: 0 0 0 14px;
  color: var(--base-color);
  background: none;
}
.main .related-btn-level4 a:before {
  content: "";
  position: absolute;
  left: 0;
  top: calc(50% - 4px);
  width: 6px;
  height: 8px;
  background-color: var(--key-color);
  clip-path: polygon(0 0, 0% 100%, 100% 50%);
}
.main .related-btn-level4 a.current {
  color: var(--txt-gray);
  pointer-events: none;
}
.main .related-btn-level4 a.current:before {
  background-color: var(--txt-gray);
}

@media (hover: hover) and (pointer: fine) {
  .main .btn a:hover {
    color: var(--key-color);
  }
  .main .btn a:hover:before {
    transform: scale(1.3);
  }
  .main .related-btn-level4 a:hover {
    color: var(--key-color);
  }
}

@media screen and (min-width: 768px), print {
  .main .btn.related-btn-set {
    border: none;
    border-radius: 0;
  }
  .main .btn.related-btn-set > a {
    border: 2px solid var(--line-color);
    overflow: hidden;
  }
  .main .btn.related-btn-set > a:nth-child(n+4) {
    margin-top: -2px;
  }
  .main .btn.related-btn-set > a:nth-child(3n+2) {
    margin-left: -2px;
    margin-right: -2px;
  }
  .main .btn.related-btn-set > a:first-child {
    border-top-left-radius: 8px;
  }
  .main .btn.related-btn-set.row1 > a:last-child,
  .main .btn.related-btn-set > a:nth-child(3) {
    border-top-right-radius: 8px;
  }
  .main .btn.related-btn-set > a:last-child,
  .main .btn.related-btn-set.row2less > a:nth-child(3),
  .main .btn.related-btn-set.row3less > a:nth-child(6),
  .main .btn.related-btn-set.row4less > a:nth-child(9) {
    border-bottom-right-radius: 8px;    
  }
  .main .btn.related-btn-set.row1 > a:first-child,
  .main .btn.related-btn-set.row2less > a:nth-child(4),
  .main .btn.related-btn-set.row2 > a:nth-child(4),
  .main .btn.related-btn-set.row3less > a:nth-child(7),
  .main .btn.related-btn-set.row3 > a:nth-child(7),
  .main .btn.related-btn-set.row4less > a:nth-child(10),
  .main .btn.related-btn-set.row4 > a:nth-child(10) {
    border-bottom-left-radius: 8px;    
  }
  
  .main .related-btn-level4.multi-line {
    justify-content: flex-start;
  }
}

@media screen and (max-width: 1079px) {
  .main .col1-2 .btn a {
    width: 100%;
    min-width: 0;
  }
}

@media screen and (max-width: 767px) {
  .main .btn a {
    width: 100%;
    min-width: 0;
  }
  .main .btn a + a {
    margin-top: 12px;
  }
  .main .btn.related-btn-set {
    display: block;
    margin: 84px 0 0;
  }
  .main .btn.related-btn-set > a {
    width: auto;
    min-height: 56px;
    border: none;
  }
  .main .btn.related-btn-set > a:not(:first-of-type) {
    background-image: linear-gradient(var(--line-color) 50%, rgba(255,255,255,0) 50%);
    background-position: center top;
    background-repeat: no-repeat;
    background-size: calc(100% - 24px) 2px;
  }
  .main .related-btn-level4 {
    flex-direction: column;
  }
}


/* ------- anchor link ------- */
.main .link-anchor {
  display: flex;
  flex-wrap: wrap;
  margin: 32px 0;
}
.main .link-anchor a {
  position: relative;
  display: flex;
  align-items: center;
  margin: 12px 0;
  padding: 0 50px 0 32px;
  color: var(--base-color);
  line-height: 1.4;
  border: 1px solid var(--line-color);
  border-top: none;
  border-bottom: none;
  background: transparent;
}
.main .link-anchor a:not(:last-child) {
  margin-right: -1px;
}
.main .link-anchor a:before {
  content: "";
  position: absolute;
  right: 32px;
  top: calc(50% - 3px);
  width: 10px;
  height: 6px;
  background: url("../images/icon_arrow_down_thin.svg") no-repeat center;
  transition: transform .2s;
}
.main .link-anchor.ver2 {
  width: calc(100% + 32px);
  margin: 98px -16px 120px;
}
.main .link-anchor.ver2 a {
  display: flex;
  align-items: center;
  width: calc(33.3333% - 32px);
  margin: 0 16px 16px;
  padding: 0;
  font-size: 1.2rem;
  font-weight: bold;
  border: none;
  background: linear-gradient(90deg, var(--line-color), var(--line-color)) no-repeat left bottom;
  background-size: 100% 1px;
}
.main .link-anchor.ver2 a span {
  width: 100%;
  padding: 18px 50px 18px 0;
  background: linear-gradient(90deg, var(--key-color), var(--key-color)) no-repeat left bottom;
  background-size: 0 1px;
  transition: var(--transition-time);
}
.main .link-anchor.ver2 a:before {
  right: 0;
  top: calc(50% - 4px);
  width: 12px;
  height: 9px;
  background-image: url("../images/icon_arrow_down.svg");
}
.main .link-anchor.is-single {
  margin: 16px 0;
}
.main .link-anchor.is-single a {
  margin: 0;
  padding: 0 56px 0 0;
  border: none;
}
.main .link-anchor.right {
  justify-content: flex-end;
}

@media screen and (max-width: 767px) {
  .main .link-anchor a {
    width: 50%;
  }
  .main .link-anchor a {
    padding: 0 34px 0 16px;
  }
  .main .link-anchor a:before {
    right: 16px;
  }
  .main .link-anchor.ver2 {
    margin-top: 76px;
  }
  .main .link-anchor.ver2 a {
    width: calc(100% - 32px);
    font-size: 1rem;
  }
  .main .link-anchor.ver2 a:before {
    right: 0;
  }
}

@media (hover: hover) and (pointer: fine) {
  .main .link-anchor:not(.ver2) a:hover {
    color: var(--key-color);
  }
  .main .link-anchor a:hover:before {
    transform: translateY(2px);
  }
  .main .link-anchor.ver2 a:hover span {
    background-size: 100% 1px;
  }
}

/* ----- 注釈 ----- */
.main .note {
  position: relative;
  padding-left: 1.4em;
  color: #555;
}
.main .note-num {
  position: relative;
  padding-left: 2.4em;
}
.main .note + .note,
.main .note-num + .note-num {
  margin-top: -15px;
}
.main .note:before,
.main .note-num:before {
  position: absolute;
  width: auto;
  height: auto;
  top: 0;
  left: 0;
  margin: 0;
  border-radius: 0;
}
.main .note:before {
  content: "※";
}
.main .note-num:before {
  content: "※" attr(data-num);
}

/* ------- リスト ------- */
.main ul {
  margin-bottom: 20px;
}
.main ul > li {
  position: relative;
  margin-bottom: 10px;
  padding: 0 0 0 1em;
  line-height: 1.6;
}
.main ul > li:before {
  content: "";
  position: absolute;
  display: block;
  left: 2px;
  top: calc(0.8em - 3px);
  width: 6px;
  height: 6px;
  background-color: var(--key-color);
  border-radius: 100%;
}
.main ol {
  margin-bottom: 20px;
  padding: 0;
  counter-reset: list-num;
  list-style-type: none;
}
.main ol > li {
  position: relative;
  margin-bottom: 10px;
  padding: 0 0 0 1.5em;
  line-height: 1.6;
}
.main ol > li:before {
  counter-increment: list-num;
  content: counter(list-num)'.';
  position: absolute;
  left: 0;
  color: var(--key-color);
  font-weight: bold;
}
.main ol.list-kana > li {
  padding-left: 2em;
}
.main ol.list-kana > li:before {
  counter-increment: list-num;
  content: counter(list-num, katakana)'.';
}
.main ul li:last-of-type,
.main ol li:last-of-type {
  margin-bottom: 0;
}
.main ul ul,
.main ul ol,
.main ol ol,
.main ol ul {
  margin: 10px 0 0;
}
.main li ul > li:before {
  background-color: var(--base-color);
}
.main li ol > li:before {
  color: var(--base-color);
}

.main ul.mark-blk > li:before {
  background-color: var(--base-color);
}


/* ------- 表 ------- */
.main table {
  width: 100%;
  margin-bottom: 32px;
  border: 1px solid var(--line-color);
  border-collapse: separate;
  border-spacing: 0;
  border-radius: 5px;
  overflow: hidden;
}
.main table th,
.main table td {
  padding: 32px 40px;
  vertical-align: top;
}
.main table tbody tr:not(:first-child) > * {
  border-top: 1px solid var(--line-color);
} 
.main table tr > *:not(:last-child) {
  border-right: 1px solid var(--line-color);
} 
.main table th {
  font-weight: bold;
  background-color: var(--main-bg-color);
}

.main table th > *:last-child,
.main table td > *:last-child {
  margin-bottom: 0;
}
.main table thead th {
  border-bottom: 1px solid var(--line-color);
}
.main table.table-hd-both thead th {
  background-color: #f3f1ea;
}
.main table.table-thin th,
.main table.table-thin td {
  padding: 16px 20px;
  vertical-align: top;
}
.main table.col-evenly {
  table-layout: fixed;
}
.main table thead.is-red th {
  color: #fff;
  background-color: var(--key-color);
}

.main table tbody.is-striped tr:nth-child(even) td {
  background-color: var(--main-bg-color);
}


@media screen and (max-width: 767px) {
  .main *:not(.scroll) > table th,
  .main *:not(.scroll) > table td {
    display: block;
    width: 100%;
    padding: 22px 5%;
  }
  .main *:not(.scroll) > table tbody tr:first-child > *:not(:first-child) {
    border-top: 1px solid var(--line-color);
  } 
  .main *:not(.scroll) > table tr > *:not(:last-child) {
    border-right: none;
  } 
  .main .scroll {
    margin: 0 0 15px;
    overflow-x: auto;
  }
  .main .scroll::-webkit-scrollbar {
    height: 5px;
  }
  .main .scroll::-webkit-scrollbar-track {
    background: var(--main-bg-color);
    border-radius: 100px;
  }
  .main .scroll::-webkit-scrollbar-thumb {
    background: var(--line-color);
    border-radius: 100px;
  }
  .main .scroll > * {
    min-width: calc(767px - 10%);
    margin-bottom: 15px;
  }
}


/* ------- 定義リスト ------- */
.main dl.dl {
  display: flex;
  flex-wrap: wrap;
  margin-bottom: 32px;
}
.main dl.dl dt:not(:first-of-type),
.main dl.dl dd:not(:first-of-type) {
  margin-top: 32px;
}
.main dl.dl dt {
  width: 84px;
}
.main dl.dl dd {
  width: calc(100% - 84px);
}
.main dl.dl dd > *:last-child {
  margin-bottom: 0;
}


@media screen and (max-width: 767px) {
  .main dl.dl {
    flex-direction: column;
  }
  .main dl.dl dt,
  .main dl.dl dd {
    width: 100%;
  }
  .main dl.dl dt:not(:first-of-type) {
    margin-top: 24px;
  }
  .main dl.dl dd,
  .main dl.dl dd:not(:first-of-type) {
    margin-top: 8px;
  }
}

/* ------- カラム ------- */
.main .col-set {
  display: flex;
  flex-wrap: wrap;
  margin-left: -20px;
  margin-right: -20px;
  margin-bottom: -20px;
}

.main .col-set.item-center {justify-content: center;}
.main .col-set.middle {align-items: center;}

.main .col-set > *{ margin: 0 20px 32px;}
.main .col-set .col1-2 {width: calc(50% - 40px);}
.main .col-set .col1-3 {width: calc(33.3333% - 40px);}
.main .col-set .col1-4 {width: calc(25% - 40px);}
.main .col-set .col1-5 {width: calc(20% - 40px);}
.main .col-set .col2-3 {width: calc(66.6667% - 40px);}
.main .col-set .col3-4 {width: calc(75% - 40px);}
.main .col-set .col2-5 {width: calc(40% - 40px);}
.main .col-set .col3-5 {width: calc(60% - 40px);}
.main .col-set .col4-5 {width: calc(80% - 40px);}

.main .col-set.no-gutter {margin: 0;}
.main .col-set.no-gutter > * {margin: 0 0 40px;}
.main .col-set.no-gutter .col1-2 {width: 50%;}
.main .col-set.no-gutter .col1-3 {width: 33.3333%;}
.main .col-set.no-gutter .col1-4 {width: 25%;}
.main .col-set.no-gutter .col1-5 {width: 20%;}
.main .col-set.no-gutter .col2-3 {width: 66.6667%;}
.main .col-set.no-gutter .col3-4 {width: 75%;}
.main .col-set.no-gutter .col2-5 {width: 40%;}
.main .col-set.no-gutter .col3-5 {width: 60%;}
.main .col-set.no-gutter .col4-5 {width: 80%;}

.main .col-set > * > *:last-child {
  margin-bottom: 0;
}

@media screen and (min-width: 768px), print {
  .main .pc-col1-2 {width: 50%;}
}

@media screen and (max-width: 767px) {
  .main .col-set .col1-2,
  .main .col-set .col1-3,
  .main .col-set .col1-4,
  .main .col-set .col1-5,
  .main .col-set .col2-3,
  .main .col-set .col3-4,
  .main .col-set .col2-5,
  .main .col-set .col3-5,
  .main .col-set .col4-5 {width: calc(100% - 40px);}
  .main .col-set .sp-col1-2 {width: calc(50% - 40px);}

  .main .col-set.no-gutter .col1-2,
  .main .col-set.no-gutter .col1-3,
  .main .col-set.no-gutter .col1-4,
  .main .col-set.no-gutter .col1-5,
  .main .col-set.no-gutter .col2-3,
  .main .col-set.no-gutter .col3-4,
  .main .col-set.no-gutter .col2-5,
  .main .col-set.no-gutter .col3-5,
  .main .col-set.no-gutter .col4-5 {width: 100%;}
}

.main .col-set.text-panel > * {
  padding: 32px 40px 30px;
  border-radius: 8px;
  background-color: var(--main-bg-color);
}
.main .col-set.text-panel > * h3 {
  margin: 0 0 14px;
}

@media screen and (max-width: 767px) {
  .main .col-set.text-panel > * {
    padding: 24px 20px 22px;
  }
}


/* ------- ボックス ------- */
.main .box {
  margin: 0 0 40px;
  padding: 50px 80px 40px;
  border-radius: 8px;
  background-color: var(--main-bg-color);
}
.main .col-set .box.col1-2 {
  padding: 40px;
  margin-left: auto;
  margin-right: auto;
}
.main h2 + .box {
  margin-top: 66px;
}
.main .box + h2 {
  margin-top: 120px;
}
.main .box h3 + .col-set {
  margin-top: 12px;
}

.bg-block {
  position: relative;
  margin: 112px 0 0;
  padding: 80px 0;
}
.bg-block:before {
  content: "";
  position: absolute;
  left: calc(50% - 50vw);
  top: 0;
  width: 100vw;
  height: 100%;
  background-color: var(--main-bg-color);
  z-index: -1;
}
.bg-block > *:last-child {
  margin-bottom: 0 !important;
}
.bg-block .box {
  background-color: #fff;
}

.main .box-notes {
  margin: 0 0 64px;
  padding: 74px 80px;
  border-radius: 8px;
  background-color: #fff;
  box-shadow: 0px 0px 30px 0px rgba(0, 0, 0, 0.1);
}
.main .box-notes > *:last-child {
  margin-bottom: 0;
}
.main .box-notes h4 {
  margin-bottom: 28px;
}
.main .box-notes li:before {
  top: calc(0.8em - 2px);
  width: 4px;
  height: 4px;
  background-color: var(--base-color);
}
.main  h2 + .box-notes {
  margin-top: 46px;
}

@media screen and (max-width: 767px) {
  .main .box {
    margin: 0 0 50px;
    padding: 28px 32px 16px;
  }
  .main .box.col1-2 {
    padding: 24px;
  }
  .main .box + h2 {
    margin-top: 80px;
  }
  .bg-block {
    margin-top: 72px;
    padding: 32px 0;
  }
  .bg-block .box + .box {
    margin-top: -30px;
  }
  .main .box-notes {
    margin: 0 0 48px;
    padding: 44px 40px;
  }
  .main .box-notes * + h5 {
    margin-top: 24px;
  }
}

/* ------- 画像 ------- */
.main figure {
  display: table;
  margin: 0 auto 20px;
}
.main .section > * > * + figure {
  margin-top: 58px;
}
.main figure img {
  border-radius: 8px;
  overflow: hidden;
}
.main .is-frame img {
  border: 1px solid var(--line-color);
  border-radius: 8px;
  overflow: hidden;
}
.main figcaption {
  display: table-caption;
  caption-side: bottom;
  margin: 10px 0 0 0;
  font-size: 0.94rem;
  line-height: 1.6;
  text-align: left;
}
.main figure.left {
  margin-left: 0;
}
.main figure.right {
  margin-right: 0;
}
.main figure.full {
  width: 100%;
}
.main figure.full img {
  width: 100%;
  max-width: none;
}

@media screen and (max-width: 767px) {
  .main .section > * > h2 + figure {
    margin-top: 32px;
  }
  .main figcaption {
    font-size: 1rem;
  }
}

/* ----- 画像 > 画像＋テキスト ----- */
.main .img-set {
  margin: 56px 0 20px;
  overflow: hidden;
}
.main .inner > .img-set:first-child {
  margin-top: 0;
}
.main .img-set > figure {
  float: left;
  max-width: 50%;
  margin: 0 40px 40px 0;
}
.main .img-set > figure.right {
  float: right;
  margin: 0 0 40px 40px;
}
.main .img-set > *:last-child {
  margin-bottom: 0;
}

@media screen and (max-width: 767px) {
  .main .img-set {
    margin: 72px 0 30px;
  }
  .main h2 + .img-set {
    margin-top: 56px;
  }
  .main .img-set > figure {
    float: none;
    max-width: none;
    margin: 0 auto 27px;
  }
  .main .img-set > figure.right {
    float: none;
    margin: 0 auto 27px;
  }
  .main .img-set > *:last-child {
    margin-bottom: 0;
  }
  .main .img-set .text + figure {
    margin-top: 32px;
  }
  .main .img-set h3 + figure {
    margin-top: -16px;
  }
}

/* ----- 画像 > 画像＋テキスト(横並び) ----- */
.main .img-set.fixed {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-left: -20px;
  margin-right: -20px;
}
.main .img-set.fixed > * {
  width: calc(100% - 40px);
  margin-left: 20px;
  margin-right: 20px;
  flex: 1;
}
.main .img-set.fixed > figure.right {
  margin-right: 20px;
  order: 1;
}

@media screen and (min-width: 768px), print {
  .main .img-set.fixed.column2,
  .main .img-set.fixed.column3 {
    flex-wrap: wrap;
    justify-content: flex-start;
  }
  .main .img-set.fixed.column2 > * {
    width: calc(50% - 40px);
    flex: initial;
  }
  .main .img-set.fixed.column3 > * {
    width: calc(33.3333% - 40px);
    flex: initial;
  }
}

@media screen and (max-width: 767px) {
  .main .img-set.fixed {
    display: block;
    margin-left: 0;
    margin-right: 0;
  }
  .main .img-set.fixed > * {
    width: auto;
    margin-left: auto;
    margin-right: auto;
  }
  .main .img-set.fixed > figure.right {
    margin-left: auto;
    margin-right: auto;
  }
}

/* ------- panel type video ------- */
.main .video-col-set {
  display: flex;
  flex-wrap: wrap;
  margin: 120px -10px 20px;
}
.main .video-col-set .col1-2 {width: calc(50% - 20px);}
.main .video-col-set .col1-3 {width: calc(33.3333% - 20px);}
.main .video-col-set .col1-4 {width: calc(25% - 20px);}
.main .video-col-set > *{ margin: 0 10px 20px;}
.main .video-col-set .panel-video {margin: 0 10px 20px;}
.main .video-col-set .panel-video > a {
  display: flex;
  height: 100%;
  flex-direction: column;
}
.main .panel-video {
  margin: 120px 0 20px;
  line-height: 1.8;
  background: #fff;
  border-radius: 8px;
  box-shadow: 0px 0px 30px 0px rgba(0, 0, 0, 0.1);
}
.main .panel-video > * {
  display: block;
  padding: 20px;
  background: none;
}
.main .panel-video > * > *:last-child {
  margin-bottom: 0;
}
.main .panel-video > a .img:before,
.main .panel-video > a .img:after {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
}
.main .panel-video > a .img:before {
  background: linear-gradient(rgba(0,0,0,0) 0%, rgba(0,0,0,0) 20%, rgba(0,0,0,0.2) 50%);
  background-size: auto 200%;
  z-index: 1;
  transition: var(--transition-time);
}
.main .panel-video > a .img:after {
  background: url("../images/icon_play_b.png") no-repeat center;
  z-index: 2;
}
.main .panel-video .img {
  position: relative;
  margin-bottom: 28px;
  border-radius: 8px;
  overflow: hidden;
}
.main .panel-video .img img {
  transition: var(--transition-time);
}
.main .panel-video .title {
  margin: 0 12px 6px;
  padding-left: 20px;
	color: var(--key-color);
  font-weight: bold;
  background: url("../images/icon_play.svg") no-repeat left 0.4em;
}
.main .panel-video .title span {
  background: linear-gradient(90deg, var(--key-color), var(--key-color)) no-repeat left bottom;
  background-size: 0 1px;
  transition: var(--transition-time);
}
.main .panel-video .caption {
  margin: 0 12px;
  color: var(--base-color);
  font-size: 0.8666rem;
}


@media (hover: hover) and (pointer: fine) {
  .main .panel-video > a:hover .img:before {
    background-position: left bottom;
  }
  .main .panel-video a:hover .img img {
    transform: scale(1.1);
  }
  .main .panel-video a:hover .title span {
    background-size: 100% 1px;
  }
}

@media screen and (min-width: 768px), print {
  .main .inner .video-col-set {
    margin: -27px -15px 0;
  }
  .main .inner .panel-video {
    margin: 64px 15px 0;
  }
  .main .inner .video-col-set .col1-2 {width: calc(50% - 30px);}
  .main .inner .video-col-set .col1-3 {width: calc(33.3333% - 30px);}
  .main .inner .video-col-set .col1-4 {width: calc(25% - 30px);}
}

@media screen and (max-width: 767px) {
  .main .video-col-set {
    display: block;
    margin: 72px 0 30px;
  }
  .main .video-col-set .col1-2,
  .main .video-col-set .col1-3,
  .main .video-col-set .col1-4 {width:100%;}
  .main .video-col-set > *,
  .main .video-col-set .panel-video {margin: 0 0 30px;}
  .main .panel-video {
    margin: 72px 0 30px;
  }
  .main .panel-video > * {
    padding: 10px 10px 18px;
  }
  .main .panel-video > a .img:after {
    background-size: 63px;
  }
  .main .panel-video .img {
    margin-bottom: 20px;
  }
  .main .panel-video .caption {
    font-size: 12px;
  }
  .main .inner .video-col-set {
    margin-top: 40px;
  }
  .main .inner .panel-video {
    margin-bottom: 40px;
  }
}

/* ------- panel type card ------- */
.main .panel-card {
  display: flex;
  flex-wrap: wrap;
  margin: 0 -15px -30px !important;
}
.main .panel-card > * {
  width: calc(50% - 30px);
  margin: 0 15px 30px;
  border-radius: 10px;
  overflow: hidden;
}
.main .panel-card a {
  position: relative;
  display: block;
}
.main .panel-card a:before,
.main .panel-card a:after {
  content: "";
  position: absolute;
  right: 30px;
  bottom: 30px;
  width: 40px;
  height: 40px;
  margin: auto;
  z-index: 1;
}
.main .panel-card a:before {
  border-radius: 100%;
  background-color: var(--key-color);
  transition: transform var(--transition-time);
}
.main .panel-card a:after {
  background: url("../images/icon_arrow_wh.svg") no-repeat center;
}
.main .panel-card .img {
  position: relative;
  transition: var(--transition-time);
}
.main .panel-card .img:after {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background-color: var(--img-mask);
}
.main .panel-card .title {
  position: absolute;
  left: 0;
  top: 50%;
  width: 100%;
  margin: auto;
  padding: 0 80px;
  color: #fff;
  font-size: 2rem;
  font-weight: 700;
  letter-spacing: 0.075em;
  line-height: 1.6;
  align-self: center;
  transform: translateY(-50%);
}

@media (hover: hover) and (pointer: fine) {
  .main .panel-card a:hover {
    color: var(--key-color);
  }
  .main .panel-card a:hover:before {
    transform: scale(1.1);
  }
  .main .panel-card a:hover .img {
    transform: scale(1.1);
  }
}

@media screen and (max-width: 767px) {
  .main .panel-card {
    margin: 0 0 -20px !important;
  }
  .main .panel-card > * {
    width: 100%;
    margin: 0 0 20px;
  }
  .main .panel-card a:before,
  .main .panel-card a:after {
    right: 10px;
    bottom: 10px;
    width: 38px;
    height: 38px;
  }
  .main .panel-card .title {
    padding: 0 25px;
    font-size: 1.4285rem;
  }
}

/* ------- panel type news ------- */
.main .news-list {
  display: flex;
  flex-wrap: wrap;
  margin: 0 -20px;
}
.main .news-item {
  position: relative;
  width: calc(33.3333% - 40px);
  margin: 0 20px 40px;
}
.main .news-item a {
  color: var(--base-color);
  background: none;
}
.main .news-item .img {
  position: relative;
  border: 1px solid var(--line-color);
  border-radius: 8px;
  overflow: hidden;
  aspect-ratio: 1.5;
}
.main .news-item .img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--transition-time);
}
.main .news-item .title {
  margin: 10px 0 0;
  line-height: 1.6;
  display: -webkit-box;
  overflow: hidden;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
}

.main .article-desc {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 22px;
}
.main .article-desc .label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 90px;
  height: 22px;
  padding: 2px 12px;
  color: var(--base-color);
  font-size: 12px;
  line-height: 1.5;
  border-radius: 11px;
  background-color: var(--bg-gray);
}
.main [data-category="topics"] .article-desc .label,
.main .article-desc .label.cat-topics {
  color: #fff;
  background-color: #f2ae65;
}
.main [data-category="info"] .article-desc .label,
.main .article-desc .label.cat-info {
  color: #fff;
  background-color: #f26570;
}
.main [data-category="sustainability"] .article-desc .label,
.main .article-desc .label.cat-sustainability {
  color: #fff;
  background-color: #92ca43;
}
.main [data-category="sports"] .article-desc .label,
.main .article-desc .label.cat-sports {
  color: #fff;
  background-color: #438cca;
}

.main .article-desc .date {
  color: var(--txt-gray);
  font-family: var(--txt-en);
  font-size: 0.8666rem;
}
.main .news-item.pickup:after {
  content: "Pick UP";
  position: absolute;
  right: 16px;
  top: 0;
  padding: 2px 1em;
  color: #fff;
  font-size: 0.8rem;
  font-weight: bold;
  background-color: var(--key-color);
  border-radius: 0 0 8px 8px;
}
.main .news-item.new .article-desc .date:before {
  content: "New";
  display: inline-block;
  margin-right: 0.5em;
  color: var(--key-color);
  font-size: 1rem;
  font-weight: bold;
  line-height: 1;
}

@media (hover: hover) and (pointer: fine) {
  .main .news-item a:hover {
    color: var(--key-color);
  }
  .main .news-item a:hover img {
    transform: scale(1.1);
  }
}

@media screen and (max-width: 767px) {
  .main .news-list {
    display: block;
    margin: 0;
  }
  .main .news-item {
    width: 100%;
    margin: 0 0 40px;
  }
  .main .news-item.pickup:after {
    right: 10px;
    font-size: 1rem;
  }
  .main .news-item.new .article-desc .date:before {
    font-size: 1.0714rem;
  }
  .main .news-item .title {
    -webkit-line-clamp: 2;
  }
  
  .main .news-list.sp-horizontal {
    display: block;
    margin: 0;
    border-top: 1px solid var(--line-color);
  }
  .main .news-list.sp-horizontal .news-item {
    width: 100%;
    margin: 0;
    padding: 20px 0;
    border-bottom: 1px solid var(--line-color);
  }
  .main .news-list.sp-horizontal .news-item a {
    display: flex;
    align-items: flex-start;
  }
  .main .news-list.sp-horizontal .news-item .img {
    width: 30.96%;
  }
  .main .news-list.sp-horizontal .news-item .news-list-body {
    flex: 1;
    padding-left: 20px;
  }
  .main .news-list.sp-horizontal .article-desc {
    margin-top: 0;
  }
  .main .news-list.sp-horizontal .news-item .title {
    font-size: 1rem;
  }
  .main .news-list.sp-horizontal .news-item.pickup:after {
    right: auto;
    left: 0;
  }
}

/* ------- news page ------- */
.main .article .article-desc .date {
  font-size: 1rem;
}
.main .article .article-desc .label + .date {
  margin-left: 24px;
}
.main .article .article-desc + * {
  margin-top: 36px;
}
.main .article .article-desc .icon-action {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  width: calc(100% + 24px);
  margin: 0 0 -12px auto;
}
.main .article .article-desc .icon-action img {
  max-width: 100px;
  margin: 0 0 24px 24px;
}

.main .btn-article-back {
  margin: 64px auto 0;
  max-width: 1080px;
}
.main .btn-article-back + * {
  margin-top: 120px;
}

@media screen and (min-width: 768px), print {
  .main .article .article-desc {
    justify-content: flex-start;
  }
  .main p:not(.related-btn-set) + .btn-article-back,
  .main ul + .btn-article-back {
    margin-top: 110px;
  }
}

@media screen and (max-width: 767px) {
  .main .article .article-desc {
    display: flex;
    justify-content: space-between;
    margin-top: 16px;
  }
  .main .article .article-desc .date {
    font-size: 1.1428rem;
  }
  .main .article .article-desc .icon-action {
    margin: 0 -5px;
  }
  .main .article .article-desc .icon-action img {
    width: calc(33.3333% - 10px);
    margin: 0 5px 10px;
  }
  
  .main .btn-article-back {
    margin-top: 50px;
  }
  .main .img-set + .btn-article-back {
    margin-top: 70px;
  }
  .main p:not(.related-btn-set) + .btn-article-back,
  .main ul + .btn-article-back,
  .main .btn-article-back + * {
    margin-top: 80px;
  }
}


/* ------- 関連リンク ------- */
.main .related-area {
  position: relative;
  margin-top: 86px;
  padding: 60px 0 40px;
}
.main .related-area:before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 1px;
  background-color: var(--line-color);
}

@media screen and (max-width: 767px) {
  .main .related-area {
    margin-top: 44px;
    padding: 76px 0 56px;
  }
  .main .related-area:before {
    left: calc(50% - 50vw);
    width: 100vw;
  }
}

/* ------- article-contact ------- */
.main .article-contact {
  display: flex;
  margin-top: 88px;
  padding: 35px 40px;
  line-height: 1.6;
  background-color: var(--main-bg-color);
}
.main .related-area + .article-contact {
  margin-top: 0;
}
.main .article-contact .contact-title {
  width: 40.5%;
  padding-right: 2em;
}
.main .article-contact .contact-body {
  width: 59.5%;
}
.main .article-contact .contact-body > *:last-child {
  margin-bottom: 0;
}

@media screen and (max-width: 767px) {
  .main .article-contact {
    display: block;
    margin-top: 44px;
    padding: 30px 24px;
  }
  .main .article-contact .contact-title {
    width: auto;
    padding-right: 0;
  }
  .main .article-contact .contact-body {
    width: auto;
  }
}

/* ------- ページ送り ------- */
.main .pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 40px 0 0;
}
.main .pagination .pager-btn {
  margin: 0;
}
.main .pagination .pager-btn.disabled {
  visibility: hidden;
  pointer-events: none;
}
.main .pagination .pager-btn a {
  position: relative;
  display: block;
  width: 40px;
  height: 40px;
  text-indent: -9999px;
}
.main .pagination .pager-btn a:before,
.main .pagination .pager-btn a:after {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
}
.main .pagination .pager-btn a:before {
  border-radius: 100%;
  background-color: var(--key-color);
  transition: transform var(--transition-time);
}
.main .pagination .pager-btn a:after {
  background: url(../images/icon_arrow_wh.svg) no-repeat center;
}
.main .pagination .pager-btn.prev a:after {
  transform: scaleX(-1);
}
.main .pagination a {
  color: var(--base-color);
  background: none;
}
.main .pagination .pager-num {
  display: flex;
  flex-wrap: wrap;
  margin: 0 24px;
}
.main .pagination .pager-num li {
  margin: 0 4px;
  padding: 0;
}
.main .pagination .pager-num li:before {
  content: none;
}
.main .pagination .pager-num > * {
  display: block;
  width: 48px;
  text-align: center;
}
.main .pagination .pager-num li.current * {
  color: var(--key-color);
  background: linear-gradient(90deg, var(--key-color), var(--key-color)) no-repeat left bottom;
  background-size: 100% 1px;
  pointer-events: none;
}

@media (hover: hover) and (pointer: fine) {
  .main .pagination a:hover {
    color: var(--key-color);
  }
  .main .pagination .pager-btn a:hover:before {
    transform: scale(1.1);
  }
}

@media screen and (max-width: 767px) {
  .main .pagination {
    justify-content: space-between;
    margin: 28px 0 0;
  }
  .main .pagination .pager-btn a {
    width: 38px;
    height: 38px;
  }
  .main .pagination .pager-num {
    margin: 0 16px;
  }
  .main .pagination .pager-num li {
    font-size: 1.1428rem;
  }
  .main .pagination .pager-num > * {
    width: 36px;
  }
}

.main .article-selector {
  display: flex;
  justify-content: space-between;
  margin-bottom: 64px;
}

.main .article-selector .selector-category {
  flex: 1;
}
.main .article-selector .selector-year {
  position: relative;
  width: 240px;
}
.main .article-selector * + .selector-year {
  margin-left: 80px;
}
.main .article-selector li {
  margin: 0;
  padding: 0;
  cursor: pointer;
  transition: var(--transition-time);
}
.main .article-selector li:before {
  content: none;
}
.main .js-selector {
  position: relative;
  margin: 0;
  border: solid 2px var(--line-color);
  border-radius: 5px;
  background-color: #fff;
  z-index: 2;
  cursor: pointer;
}
.main .js-selector:before,
.main .js-selector:after {
  content: "";
  position: absolute;
  right: 14px;
  top: 17px;
  width: 18px;
  height: 18px;
  margin: auto;
  z-index: 1;
  pointer-events: none;
}
.main .js-selector:before {
  border-radius: 100%;
  background-color: var(--key-color);
  transition: transform var(--transition-time);
}
.main .js-selector:after {
  background: url("../images/icon_arrow_s_wh.svg") no-repeat center;
  transform: rotate(90deg);
}
.main .js-selector.is-open:after {
  transform: rotate(-90deg);
}
.main .js-selector ul {
  position: absolute;
  left: -2px;
  top: 100%;
  width: calc(100% + 4px);
  margin: 0;
  border: solid 2px var(--line-color);
  border-top-color: #fff;
  border-radius: 0 0 8px 8px;
  background-color: #fff;
  overflow: hidden;
  transform: scaleY(0);
  transform-origin: top left;
  transition: var(--transition-time);
}
.main .js-selector.is-open ul {
  transform: scaleY(1);
}
.main .js-selector li {
  line-height: 52px;
}
.main .js-selector li.category-sub-item {
  background-color: var(--bg-gray);
}
.main .js-selector .selector-value,
.main .js-selector li a {
  display: flex;
  align-items: center;
  padding: 0 40px 0 16px;
  color: var(--base-color);
  line-height: 52px;
  background: transparent;
}
.main .js-selector .selector-value {
  font-weight: bold;
}

.main  .list-category .list-category-sub {
  background-color: var(--bg-gray);
}


@media screen and  (min-width: 768px) and (hover: hover) and (pointer: fine) {
  .main .list-category li a:hover,
  .main .list-category li.has-menu:hover > a {
    color: var(--base-color);
  }
  .main .list-category-sub li a:hover {
    color: var(--key-color);
  }
  .main .js-selector li a:hover {
    background-color: var(--bg-gray);
  }
}

@media screen and (min-width: 768px), print {
  .main .list-category {
    position: relative;
    margin: 0;
  }
  .main .list-category > ul {
    position: relative;
    display: flex;
    margin: 0;
  }
  .main .selector-news .list-category > ul {
    padding-bottom: 56px;
  }
  .main .list-category > ul > li {
    position: static;
    display: flex;
    width: 100%;
    height: 56px;
    border-top: 2px solid var(--line-color);
    border-bottom: 2px solid var(--line-color);
  }
  .main .list-category > ul > li > a {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    color: var(--txt-lgray);
    line-height: 1.4;
    background: none;
  }
  .main .list-category > ul > li.selected > a {
    color: var(--base-color);
    font-weight: bold;
  }
  .main .list-category > ul > li.selected > a:after {
    content: "";
    position: absolute;
    width: 100%;
    height: 3px;
    left: 0;
    bottom: -2px;
    background-color: var(--key-color);
  }
  .main .list-category .list-category-sub {
    position: absolute;
    display: flex;
    left: 0;
    top: 56px;
    width: 100%;
    margin: 0;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: var(--transition-time) .4s;
  }
  .main .list-category > ul > li.selected .list-category-sub,
  .main .list-category > ul > li:hover .list-category-sub {
    opacity: 1;
    visibility: visible;
    pointer-events: all;
    transition: var(--transition-time);
  }
  .main .list-category-sub li {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 56px;
  }
  .main .list-category-sub li a {
    color: var(--base-color);
    background: none;
  }
  .main .list-category-sub li.selected {
    color: var(--key-color);
  }
  .main .list-category-sub li.selected a {
    border-bottom: 1px solid var(--key-color);
  }
}

@media screen and (max-width: 1079px) {
  .main .article-selector {
    display: block;
  }
  .main .article-selector .selector-category {
    width: auto;
    margin-bottom: 32px;
  }
  .main .article-selector .selector-year {
    width: auto;
  }
  .main .article-selector * + .selector-year {
    margin-left: 0;
  }
}

@media screen and (max-width: 767px) {
  .main .article-selector {
    margin-bottom: 0;
  }
  .main .article-selector .selector-category {
    position: relative;
    margin-bottom: 20px;
    z-index: 2;
  }
  .main .article-selector .selector-year {
    margin-bottom: 48px;
  }
  .main .js-selector .selector-value {
    color: var(--key-color);
  }
}

/* ------- form ------- */
.main .form-block {
  position: relative;
  margin-top: 64px;
  padding: 24px 5% 64px;
}
.main .form-block:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: var(--main-bg-color);
  border-radius: 5px;
  z-index: -1;
}
.main .mw_wp_form_complete .form-block {
  padding-top: 0;
  padding-left: 0;
  padding-right: 0;
}
.main .mw_wp_form_complete .form-block:before {
  content: none;
}
.main .form-block > * {
  max-width: 820px;
  margin: 0 auto;
}

.main .mw_wp_form_confirm .is-input,
.main .mw_wp_form_complete .is-input,
.main .mw_wp_form_error .is-input:not(.form-agreement),
.main .mw_wp_form_input .is-confirm,
.main .mw_wp_form_complete .is-confirm,
.main .mw_wp_form_input .is-complete,
.main .mw_wp_form_confirm .is-complete {
  display: none;
}
.main .mw_wp_form_error .btn-form .is-input {
  display: block;
}
.main .mw_wp_form_error .is-input + h2,
.main .mw_wp_form_confirm .is-input + h2,
.main .mw_wp_form_complete .is-input + h2 {
  margin-top: 0;
}

.main .form-steps {
  max-width: none;
  margin: 0 0 74px;
  padding: 40px 0 35px;
  background-color: var(--main-bg-color);
  border-radius: 5px;
  overflow: hidden;
}
.main .form-steps ul {
  display: flex;
  margin: 0;
  padding: 0;
  justify-content: center;
  counter-reset: list-num 0; 
}
.main .form-steps ul li {
  width: 186px;
  padding: 0;
  margin: 0;
  color: var(--txt-lgray);
  text-align: center;
}
.main .form-steps ul li:before {
  content: none;
}
.main .form-steps ul li:not(:last-child) {
  margin-right: 18px;
}
.main .form-steps ul li:not(:last-child):after {
  content: "";
  position: absolute;
  top: 30px;
  left: 100%;
  width: 18px;
  height: 32px;
  background: url("../images/icon_arrow_step.svg") no-repeat center;
  background-size: contain;
}
.main .form-steps ul li span {
  position: relative;
  display: block;
  padding: 90px 0 0;
}
.main .form-steps ul li span:before {
  counter-increment: list-num;
  content: counter(list-num,decimal-leading-zero);
  top: 0;
  left: calc(50% - 39px);
  width: 78px;
  height: 78px;
  padding-top: 32px;
  font-size: 2rem;
  background-color: var(--line-color);
  border-radius: 100%;
}
.main .form-steps ul li span:after {
  content: "STEP";
  left: 0;
  top: 18px;
  width: 100%;
  font-size: 0.93rem;
}
.main .form-steps ul li span:before,
.main .form-steps ul li span:after {
  position: absolute;
  display: block;
  color: var(--txt-lgray);
  font-family: var(--txt-en);
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.025em;
  text-align: center; 
}
.main .mw_wp_form_complete .form-steps ul li,
.main .mw_wp_form_confirm .form-steps ul li:nth-of-type(2),
.main .mw_wp_form .form-steps ul li:first-of-type {
  color: var(--base-color);
  font-weight: bold;
}
.main .mw_wp_form_complete .form-steps ul li span:before,
.main .mw_wp_form_confirm .form-steps ul li:nth-of-type(2) span:before,
.main .mw_wp_form .form-steps ul li:first-of-type span:before {
  background-color: var(--key-color);
}
.main .mw_wp_form_complete .form-steps ul li span:before,
.main .mw_wp_form_complete .form-steps ul li span:after,
.main .mw_wp_form_confirm .form-steps ul li:nth-of-type(2) span:before,
.main .mw_wp_form_confirm .form-steps ul li:nth-of-type(2) span:after,
.main .mw_wp_form .form-steps ul li:first-of-type span:before,
.main .mw_wp_form .form-steps ul li:first-of-type span:after {
  color: #fff;
}

.main .mw_wp_form input,
.main .mw_wp_form textarea,
.main .mw_wp_form select {
  width: 100%;
  margin: 0;
  padding: 13px 16px;
  font-size: 1rem;
  line-height: 1.6;
  vertical-align: middle;
  border: 1px solid transparent;
  border-bottom-color:  var(--line-color);
  background-color: #fff;
  -moz-appearance: none;
  -webkit-appearance: none;
  appearance: none;
  transition: var(--transition-time);
}
.main .mw_wp_form textarea {
  margin-bottom: 6px;
  resize: vertical;
}
.main .mw_wp_form input:focus,
.main .mw_wp_form textarea:focus,
.main .mw_wp_form select:focus {
  border-bottom-color:  var(--txt-lgray);
}
.main .mw_wp_form select.js-change {
  color: var(--txt-lgray);
  background: #fff url("../images/icon_arrow_select.svg") no-repeat right 15px center;
}
.main .mw_wp_form select option {
  color: var(--base-color);
}

.main .form-block .btn-form input[type="submit"],
.main .form-block .btn-form a {
  display: block;
  width: 100%;
  max-width: 424px;
  margin: 0 auto;
  color: #fff;
  font-size: 1rem;
  font-weight: bold;
  letter-spacing: 0.025em;
  line-height: normal;
  text-align: center;
  padding: 14px 24px;
  background: var(--key-color);
  border: 3px solid transparent;
  border-radius: 4px;
  transition: var(--transition-time);
}

.main .form-block .btn-form button[value="back"] {
  position: relative;
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  margin: 48px 0 0;
  padding-left: 56px;
  color: var(--base-color);
  font-size: 1rem;
  line-height: 1.6;
  transition: color var(--transition-time);
  cursor: pointer;
}
.main .form-block .btn-form button[value="back"]:before,
.main .form-block .btn-form button[value="back"]:after {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 40px;
  height: 40px;
  margin: auto;
}
.main .form-block .btn-form button[value="back"]:before {
  border-radius: 100%;
  background-color: var(--key-color);
  transition: transform var(--transition-time);
}
.main .form-block .btn-form button[value="back"]:after {
  background: url("../images/icon_arrow_wh.svg") no-repeat center;
  transform: scaleX(-1);
}

.main .mw_wp_form label {
  display: inline-flex;
  align-items: center;
  line-height: 21px;
}
.main .mw_wp_form input[type="radio"],
.main .mw_wp_form input[type="checkbox"] {
  position: absolute;
  width: 0;
  height: 0;
  opacity: 0;
}
.main .mw_wp_form input[type="radio"] + span,
.main .mw_wp_form input[type="checkbox"] + span {
  position: relative;
  display: inline-block;
  min-width: 96px;
  margin-right: 24px;
  padding: 4px 0 4px 28px;
  cursor: pointer;
}
/*.main .mw_wp_form label:last-of-type input[type="radio"] + span,
.main .mw_wp_form label:last-of-type input[type="checkbox"] + span {
  margin-right: 0;
}*/
.main .mw_wp_form input[type="radio"] + span:before,
.main .mw_wp_form input[type="radio"] + span:after,
.main .mw_wp_form input[type="checkbox"] + span:before,
.main .mw_wp_form input[type="checkbox"] + span:after {
  content: "";
  position: absolute;
  display: block;
}
.main .mw_wp_form input[type="radio"] + span:before,
.main .mw_wp_form input[type="checkbox"] + span:before {
  left: 0;
  top: 4px;
  width: 20px;
  height: 20px;
  border: 2px solid var(--txt-lgray);
  background-color: #fff;
  border-radius: 100%;
  transition: var(--transition-time);
}
.main .mw_wp_form input[type="radio"]:checked + span:before,
.main .mw_wp_form input[type="checkbox"]:checked + span:before {
  background-color: #fff !important;
}
.main .mw_wp_form input[type="checkbox"] + span:before {
  border-radius: 3px;
}
.main .mw_wp_form input[type="radio"] + span:after {
  top: 9px;
  left: 5px;
  width: 10px;
  height: 10px;
  background-color: var(--key-color);
  transform: scale(0);
  transition: var(--transition-time);
  border-radius: 100%;
}
.main .mw_wp_form input[type="radio"]:checked + span:after {
  transform: scale(1);
}
.main .mw_wp_form input[type="checkbox"]:checked + span:after {
  top: 9px;
  left: 5px;
  width: 10px;
  height: 7px;
  border: 2px solid transparent;
  border-bottom-color: var(--key-color);
  border-left-color: var(--key-color);
  transform: rotate(-45deg);
  animation: var(--transition-time) check-anim;
}

::placeholder {
  color: var(--txt-lgray);
}

.main .mw_wp_form .field-zip input {
  display: inline-flex;
  width: 80px;
}
.main .mw_wp_form .field-zip input:nth-of-type(2) {
  width: 96px;
}
.main .mw_wp_form .field-tel input {
  display: inline-flex;
  width: 72px;
}
.main .mw_wp_form select {
  width: 192px;
}
.main .mw_wp_form .field-birth > * {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}
.main .mw_wp_form .field-birth select {
  width: 80px;
}
.main .mw_wp_form .field-zip input,
.main .mw_wp_form .field-birth select,
.main .mw_wp_form .field-tel input {
  margin: 0 8px;  
}
.main .mw_wp_form .field-zip input:first-of-type,
.main .mw_wp_form .field-birth select:first-of-type,
.main .mw_wp_form .field-tel input:first-of-type {
  margin-left: 0;
}
.main .mw_wp_form .field-zip input:last-of-type,
.main .mw_wp_form .field-tel input:last-of-type {
  margin-right: 0;
}
.main .mw_wp_form .field-check-col2 {
  display: flex;
  flex-wrap: wrap;
  margin-right: -32px;
}
.main .mw_wp_form .field-check-col2 > * {
  width: calc(50% - 32px);
  margin: 0 32px 20px 0;
}
.main .mw_wp_form input[type="checkbox"] + span {
  min-width: 0;
}
.main .mw_wp_form input[type="checkbox"] + span + input[type="text"] {
  flex: 1;
  margin-left: 28px;
}

.main .form-agreement {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  width: 100%;
  margin: 32px auto 74px; 
  padding: 15px 16px;
  font-size: 1rem;
  font-weight: bold;
  line-height: 1.6;
  border: 1px solid var(--line-color);
  border-radius: 8px;
}
.main .form-agreement .mwform-checkbox-field-text {
  text-indent: -9999px;
}
.main .mw_wp_form .form-agreement input[type="checkbox"] + span:before {
  top: calc(50% - 16px);
  width: 32px;
  height: 32px;
}
.main .mw_wp_form .form-agreement input[type="checkbox"]:checked + span:after {
  top: calc(50% - 11px);
  left: 5px;
  width: 22px;
  height: 13px;
  border-width: 3px;
  animation: var(--transition-time) check-anim-c;
}
.main .mw_wp_form .form-agreement .not-valid input[type="checkbox"] + span:before {
    border-color: var(--key-color);
}
.main .mw_wp_form .form-agreement .error-message {
  text-align: center;
  order: 3;
}


.main .mw_wp_form table.field-style-horizontal {
  border: none;
  margin: 0 0 74px;
}
.main .mw_wp_form table.field-style-horizontal.row-spacer-m {
  margin-bottom: 32px;
}
.main .mw_wp_form table.field-style-horizontal.row-spacer-l {
  margin-bottom: 56px;
}
.main .mw_wp_form table.field-style-horizontal th,
.main .mw_wp_form table.field-style-horizontal td {
  padding: 8px 0;
  border: none !important;
  line-height: 1.4;
  vertical-align: top;
}
.main .mw_wp_form table.field-style-horizontal th {
  position: relative;
  width: 30%;
  padding-right: 80px;
}
.main .mw_wp_form table.field-style-horizontal td {
  width: 70%;
}

.main .mw_wp_form .c-label {
  display: inline-block;
  width: 40px;
  margin-left: 1em;
  padding: 1px 0;
  font-size: 13px;
  font-weight: bold;
  line-height: 15px;
  letter-spacing: 0.075em;
  text-align: center;
  border: 1px solid transparent;
  border-radius: 3px;
}
.main .mw_wp_form .c-label.c-required {
  color: #fff;
  background-color: var(--key-color);
}
.main .mw_wp_form .c-label.c-option {
  color: var(--txt-lgray);
  border-color: var(--txt-lgray);
  background-color: #fff;
}

.main .mw_wp_form dl.field-style-vertical {
  display: block;
}
.main .mw_wp_form dl.field-style-vertical dt,
.main .mw_wp_form dl.field-style-vertical dd {
  width: auto;
  margin: 0;
  padding: 0;
}
.main .mw_wp_form dl.field-style-vertical dt {
  font-weight: bold;
}
.main .mw_wp_form dl.field-style-vertical dd + dt {
  margin-top: 32px;
}
.main .mw_wp_form dl.field-style-vertical dd {
  margin-top: 15px;
}

.main .mw_wp_form .student-info-field {
  margin-top: 46px;
  padding: 40px 48px;
  border-radius: 8px;
  background-color: #fff;
  box-shadow: 0px 0px 30px 0px rgba(0, 0, 0, 0.1);
}
.main .mw_wp_form .student-info-field .field-student {
  margin: 0 0 24px;
  border: 1px solid var(--line-color);
  border-radius: 5px;
  overflow: hidden;
}
.main .mw_wp_form .student-info-field .field-student .entry-title {
  position: relative;
  display: block;
  margin: 0;
  padding: 9px 16px;
  background-color: var(--main-bg-color);
}
.main .mw_wp_form .student-info-field .field-student .entry-data {
  padding: 25px 32px 20px;
}
.main .mw_wp_form .student-info-field .field-student .entry-data dd + dt {
  margin-top: 12px;
}
.main .mw_wp_form .student-info-field .field-student .entry-data dd {
  margin-top: 5px;
  padding-left: 24px;
}
.main .mw_wp_form .student-info-field .field-student .entry-data input,
.main .mw_wp_form .student-info-field .field-student .entry-data textarea,
.main .mw_wp_form .student-info-field .field-student .entry-data select {
  background-color: var(--main-bg-color);
}
.main .mw_wp_form .student-info-field .field-student .entry-data .field-group + textarea,
.main .mw_wp_form .student-info-field .field-student .entry-data .error-message + textarea {
  margin-top: 8px;
}

.main .mw_wp_form .student-info-field .field-student .entry-data .area-field select {
  width: 100%;
}
.main .mw_wp_form .student-info-field .field-student .entry-data .area-field > * > label {
  display: block;
}
.main .mw_wp_form .student-info-field .field-student .entry-data .area-field > * > label span {
  display: inline-block;
  margin-bottom: 8px;
}
.main .mw_wp_form .student-info-field .field-student .field-more {
  display: flex;
}
.main .mw_wp_form .student-info-field .field-student .field-more + .note {
  margin-top: 24px;
}
.main .mw_wp_form .student-info-field .field-student .field-more .field-item {
  display: flex;
  align-items: flex-end;
  white-space: nowrap;
}
.main .mw_wp_form .student-info-field .field-student .field-more .field-item:not(:last-child) {
  margin-right: 48px;
}
.main .mw_wp_form .student-info-field .field-student .field-more .field-item p {
  margin: 0;
}
.main .mw_wp_form .student-info-field .field-student .field-more .field-item select {
  width: 128px;
  margin: 0 8px;
}
.main .mw_wp_form.mw_wp_form_confirm .student-info-field .field-student .field-more .field-value {
  min-height: 1.4em;
  padding: 0;
}

.main .mw_wp_form.mw_wp_form_input .student-info-field .field-student.is-option {
  border-color : transparent;
}
.main .mw_wp_form.mw_wp_form_input .student-info-field .field-student.is-option .entry-title {
  cursor: pointer;
}
.main .mw_wp_form.mw_wp_form_input .student-info-field .field-student.is-option .entry-title:before,
.main .mw_wp_form.mw_wp_form_input .student-info-field .field-student.is-option .entry-title:after {
  content: "";
  position: absolute;
  display: block;
  top: 50%;
  right: 16px;
  width: 13px;
  height: 1px;
  background-color: var(--key-color);
}
.main .mw_wp_form.mw_wp_form_input .student-info-field .field-student.is-option .entry-title:after{
  transform: rotate(90deg);
  transition: transform var(--transition-time);
}
.main .mw_wp_form.mw_wp_form_input .student-info-field .field-student.is-option.is-open .entry-title:after {
  transform: rotate(0deg);
}
.main .mw_wp_form .student-info-field .field-student.is-option.is-open {
  border-color : var(--line-color);
}
.main .mw_wp_form.mw_wp_form_input .student-info-field .field-student.is-option .entry-data {
  display: none;
}

.main .mw_wp_form .btn-form {
  margin-top: 80px;
}

.main .form-alert {
  display: none;
  margin: 32px auto 0;
  padding: 15px 5%;
  color: var(--key-color);
  font-size: 1rem;
  font-weight: bold;
  line-height: 1.6;
  text-align: center;
  border: 2px solid var(--key-color);
  border-radius: 8px;
  background-color: #fff;
}
.main .form-alert:before,
.main .mw_wp_form .error-message:before {
  content: "";
  position: relative;
  display: inline-block;
  top: -2px;
  width: 32px;
  height: 32px;
  margin-right: 12px;
  vertical-align: middle;
  background: url("../images/icon_alert.svg") no-repeat;
  background-size: contain;
}

.main .mw_wp_form input.not-valid,
.main .mw_wp_form textarea.not-valid,
.main .mw_wp_form select.not-valid {
  border-bottom-color: var(--key-color) !important;
  background-color: #fcf0f0 !important;
}
.main .mw_wp_form .field-group.not-valid input[type="radio"] + span:before,
.main .mw_wp_form .field-group.not-valid input[type="checkbox"] + span:before {
  border-color: var(--key-color);
}
.main .mw_wp_form .field-group.not-valid input[type="text"] {
  border-bottom-color: var(--line-color);
  background-color: #fff;
}
.main .mw_wp_form .error-message {
  display: block !important;
  width: 100%;
  margin: 8px 0 0 !important;
  color: var(--key-color);
  font-size: 0.8666rem;
  font-weight: bold;
}
.main .mw_wp_form .error-message:before {
  width: 1rem;
  height: 1rem;
  margin-right: 0.5em;
}

.main .form-block .complete-message {
  margin: 120px 0;
}
.main .form-block .complete-message h3 {
  font-weight: unset;
}

.main .mw_wp_form.mw_wp_form_confirm .field-value {
  min-height: calc(1.4em + 26px);
  padding: 13px 16px;
  background-color: #fff;
}
.main .mw_wp_form.mw_wp_form_confirm .entry-data .field-value {
  background-color: var(--main-bg-color);
}
.main .mw_wp_form .field-value + .field-value {
  margin-top: 12px;
}
.main .mw_wp_form.mw_wp_form_confirm .field-value + .field-value {
  margin-top: 24px;
}

.main .mw_wp_form.mw_wp_form_confirm .field-check-col2.q13-input {
  margin-top: 16px;
  margin-right: 0;
}
.main .mw_wp_form.mw_wp_form_confirm .field-check-col2.q13-input > * {
  width: 100%;
  margin-right: 0;
}
.main .mw_wp_form .field-check-col2.q13-input .field-value {
  margin-top: 6px;
}
.main .mw_wp_form.mw_wp_form_confirm .field-check-col2.q13-input .field-value {
  margin-top: 12px;
}


@media (hover: hover) and (pointer: fine) {
  .main .mw_wp_form input:hover,
  .main .mw_wp_form textarea:hover,
  .main .mw_wp_form select:hover {
    border-bottom-color:  var(--txt-lgray);
  }
  .main .mw_wp_form input[type="radio"] + span:hover:before,
  .main .mw_wp_form input[type="checkbox"] + span:hover:before {
    background: var(--line-color);
  }
  .main .form-block .btn-form input[type="submit"]:hover,
  .main .form-block .btn-form a:hover {
    color: var(--key-color);
    background-color: #fff;
    border-color: var(--key-color);
  }
  .main .form-block .btn-form button[value="back"]:hover {
    color: var(--key-color);
  }
  .main .form-block .btn-form button[value="back"]:hover:before {
    transform: scale(1.1);
  }
  .main .form-agreement:hover {
    border-color:  var(--txt-lgray);
  }
  .main .form-agreement:hover input[type="checkbox"] + span:before {
    background: var(--line-color);
  }
}

@media screen and (min-width: 768px), print {
  .main .mw_wp_form .student-info-field .field-student .entry-data .area-field {
    display: flex;
    margin-right: -24px;
  }
  .main .mw_wp_form .student-info-field .field-student .entry-data .area-field .field-col2 {
    width: calc(50% - 24px);
  }
  .main .mw_wp_form .student-info-field .field-student .entry-data .area-field > *:not(:last-child) {
    margin-right: 24px;
  }
  
  .main .mw_wp_form table.field-style-horizontal th {
    padding-top: 23px;
  }
  .main .mw_wp_form table.field-style-horizontal .c-label {
    position: absolute;
    top: 24px;
    right: 24px;
  }
  .main .mw_wp_form.mw_wp_form_input table.field-style-horizontal tr.row-check th {
    padding-top: 12px;
  }
  .main .mw_wp_form.mw_wp_form_input table.field-style-horizontal tr.row-check .c-label {
    top: 13px;
  }
  
  .main .form-confirm table th {
    width: 28.5%;
  }
  .main .form-confirm table td {
    width: 71.5%;
  }
}

@media screen and (max-width: 767px) {
  .main .form-block {
    margin: 50px 0 0;
  }
  .main .form-block:before {
    left: calc(50% - 50vw);
    width: 100vw;
    border-radius: 0;
  }
  .main .form-block > * {
  }
  .main .form-steps {
    margin: 0 -5vw 42px;
    padding: 30px 0 25px;
    border-radius: 0;
  }
  .main .form-steps ul li {
    width: 100px;
    font-size: 0.8571rem;
  }
  .main .form-steps ul li:not(:last-child) {
    margin-right: 11px;
  }
  .main .form-steps ul li:not(:last-child):after {
    top: 24px;
    width: 11px;
    height: 18px;
  }
  .main .form-steps ul li span {
    padding: 68px 0 0;
  }
  .main .form-steps ul li span:before {
    left: calc(50% - 30px);
    width: 60px;
    height: 60px;
    padding-top: 28px;
    font-size: 1.4285rem;
  }
  .main .form-steps ul li span:after {
    top: 14px;
    font-size: 0.8571rem;
  }
  
  .main .form-agreement {
    margin: 32px 0 50px;
  }
  .main .mw_wp_form table.field-style-horizontal {
    margin-bottom: 50px
  }
  .main .mw_wp_form table.field-style-horizontal.row-spacer-m {
    margin-bottom: 16px;
  }
  .main .mw_wp_form table.field-style-horizontal.row-spacer-l {
    margin-bottom: 32px;
  }
  .main .mw_wp_form table.field-style-horizontal th,
  .main .mw_wp_form table.field-style-horizontal td {
    width: auto;
  }
  
  .main .mw_wp_form input[type="radio"] + span,
  .main .mw_wp_form input[type="checkbox"] + span {
    display: block;
  }
  .main .mw_wp_form .field-birth select {
    width: 70px;
  }
  .main .mw_wp_form .field-zip input,
  .main .mw_wp_form .field-birth select,
  .main .mw_wp_form .field-tel input {
    margin: 0 6px;  
  }

  .main .mw_wp_form .field-check-col2 {
    display: block;
    margin: 0;
  }
  .main .mw_wp_form .field-check-col2 > *,
  .main .mw_wp_form .field-group label {
    display: block;
    width: 100%;
    margin: 0 0 10px;
  }
  
  .main .mw_wp_form .student-info-field {
    padding: 25px 10%;
  }
  .main .mw_wp_form .student-info-field .field-student {
    margin: 0 -5vw 30px;
  }
  .main .mw_wp_form .student-info-field .field-student > label {
    padding: 14px 16px;
  }
  .main .mw_wp_form .student-info-field .field-student .entry-data {
    padding: 25px 16px 20px;
  }
  .main .mw_wp_form .student-info-field .field-student .entry-data dd {
    padding-left: 0;
  }
  
  .main .mw_wp_form .student-info-field .field-student .field-more {
    display: block;
  }
  .main .mw_wp_form .student-info-field .field-student .field-more .field-item:not(:last-child) {
    margin-right: 0;
  }
  .main .mw_wp_form .student-info-field .field-student .field-more .field-item:not(:first-child) {
    margin-top: 16px;
  }
  
  .main .form-block .btn-form input[value="send"],
  .main .form-block .btn-form input[value="confirm"],
  .main .form-block .btn-form a {
    border-radius: 10px;
  }
  
  .main .form-alert {
    margin-top: 32px;
  }
  
  .main .form-confirm h3 {
    margin-top: 74px;
    margin-bottom: 28px;
  }
  .main .form-confirm h3 + table {
    margin-top: 32px;
  }
  .main .form-confirm h3 + h4 {
    margin-top: 28px;
  }
  .main .form-confirm table {
    margin-bottom: 42px;
  }
  .main .form-confirm .btn-form {
    margin-top: 48px;
  }

  
  .main .form-block .complete-message {
    margin: 45px 0;
  }

}

@keyframes check-anim {
  0% {
    width: 0;
    height: 0;
    top: 9px;
  }
  30% {
    width: 0;
    height: 7px;
    top: 11px;
  }
  100% {
    width: 10px;
    height: 7px;
    top: 9px;
  }
}
@keyframes check-anim-b {
  0% {
    width: 0;
    height: 0;
    top: 5px;
  }
  30% {
    width: 0;
    height: 13px;
    top: 7px;
  }
  100% {
    width: 22px;
    height: 13px;
    top: 5px;
  }
}
@keyframes check-anim-c {
  0% {
    width: 0;
    height: 0;
    top: calc(50% - 11px);
  }
  30% {
    width: 0;
    height: 13px;
    top: calc(50% - 15px);
  }
  100% {
    width: 22px;
    height: 13px;
    top: calc(50% - 11px);
  }
}


.main .box.contact-shinki .col-set > * {
  padding: 35px 24px 32px;
  text-align: center;
  background-color: #fff;
}
.main .box.contact-shinki a[href^="tel:"] {
  display: inline-block;
  color: var(--key-color);
  font-family: var(--txt-en);
  font-size: 2.7526rem;
  font-weight: 600;
  line-height: 1;
  background: none;
}
.main .box.contact-shinki .btn {
  margin-top: 40px;
}

@media screen and (max-width: 1199px) {
  .main .box.contact-shinki .col1-2 .btn a {
    width: 100%;
    min-width: 0;
  }
}

@media screen and (max-width: 767px) {
  .main .box.contact-shinki {
    padding-bottom: 32px;
  }
  .main .box.contact-shinki .col-set > * {
    padding: 28px 16px 32px;
  }
  .main .box.contact-shinki h5 {
    font-size: 1.1428rem;
  }
  .main .box.contact-shinki .s {
    font-size: 1rem !important;
  }
  .main .box.contact-shinki a[href^="tel:"] {
    font-size: 2.1428rem;
  }
  .main .box.contact-shinki .btn {
    margin-top: 0;
  }
}

/* ------- sustainability activity list ------- */
.main .activity-list {
  display: flex;
  flex-wrap: wrap;
  margin: 0 -20px;
}
.main .activity-item {
  position: relative;
  width: calc(33.3333% - 40px);
  margin: 0 20px 32px;
}
.main .activity-item a {
  position: relative;
  display: block;
  color: var(--base-color);
  background: none;
  border: 1px solid var(--line-color);
  border-radius: 8px;
  overflow: hidden;
}
.main .activity-item .img {
  position: relative;
  aspect-ratio: 335 / 365;
}
.main .activity-item a .img:before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;  background: linear-gradient(rgba(0,0,0,0) 0%, rgba(0,0,0,0) 20%, rgba(0,0,0,0.2) 40%);
  background-size: auto 200%;
  z-index: 1;
  transition: var(--transition-time);
}
.main .activity-item .img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--transition-time);
}
.main .activity-item .activity-item-body {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  min-height: 98px;
  padding: 0 20px 12px;
  z-index: 1;
}
.main .activity-item .title {
  margin: 0;
  color: #fff;
  line-height: 1.8;
  display: -webkit-box;
  overflow: hidden;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
}
.main #page-title .activity-label,
.main .activity-item .article-desc {
  flex-wrap: wrap;
  justify-content: flex-start;
  margin-top: 0;
}
.main #page-title .activity-label .label,
.main .activity-item .article-desc .label {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 92px;
  height: 24px;
  margin: 0 8px 8px 0;
  color: var(--key-color);
  font-size: 12px;
  line-height: 14px;
  border-radius: 12px;
  background-color: #fff;
}
.main #page-title .activity-label .label:before,
.main .activity-item .article-desc .label:not(.other):before {
  content: "";
  width: 14px;
  height: 14px;
  margin-right: 4px;
  vertical-align: top;
  background-position: left center;
  background-repeat: no-repeat;
  background-size: contain;
}
.main #page-title .activity-label .label.food_safety:before,
.main .selector-activity .js-selector .selector-value.label-food_safety:before,
.main .activity-item .article-desc .label.food_safety:before {
  background-image: url("../images/icon_food_safety_red.svg");
}
.main #page-title .activity-label .label.environment:before,
.main .selector-activity .js-selector .selector-value.label-environment:before,
.main .activity-item .article-desc .label.environment:before {
  background-image: url("../images/icon_environment_red.svg");
}
.main #page-title .activity-label .label.human_rights:before,
.main .selector-activity .js-selector .selector-value.label-human_rights:before,
.main .activity-item .article-desc .label.human_rights:before {
  background-image: url("../images/icon_human_rights_red.svg");
}
.main #page-title .activity-label .label.labor:before,
.main .selector-activity .js-selector .selector-value.label-labor:before,
.main .activity-item .article-desc .label.labor:before {
  background-image: url("../images/icon_labor_red.svg");
}
.main #page-title .activity-label .label.economy:before,
.main .selector-activity .js-selector .selector-value.label-economy:before,
.main .activity-item .article-desc .label.economy:before {
  background-image: url("../images/icon_economy_red.svg");
}

.main .selector-activity .js-selector .selector-value:not(.label-all):not(.label-other):before,
.main .selector-activity li:not([data-label="all"]):not([data-label="other"]) a:before {
  content: "";
  position: relative;
  display: inline-flex;
  width: 17px;
  height: 100%;
  margin-right: 6px;
  vertical-align: top;
  background-color: transparent;
  background-position: left center;
  background-repeat: no-repeat;
  background-size: contain;
  transition: var(--transition-time);
}
.main .selector-activity .js-selector .selector-value:not(.label-all):not(.label-other):before,
.main .selector-activity .js-selector li:not([data-label="all"]):not([data-label="other"]) a:before {
  width: 16px;
  height: 16px;
  vertical-align: middle;
}
.main .selector-activity li[data-label="food_safety"] a:before {
  background-image: url("../images/icon_food_safety_gray.svg");
}
.main .selector-activity li[data-label="environment"] a:before {
  background-image: url("../images/icon_environment_gray.svg");
}
.main .selector-activity li[data-label="human_rights"] a:before {
  background-image: url("../images/icon_human_rights_gray.svg");
}
.main .selector-activity li[data-label="labor"] a:before {
  background-image: url("../images/icon_labor_gray.svg");
}
.main .selector-activity li[data-label="economy"] a:before {
  background-image: url("../images/icon_economy_gray.svg");
}
.main .selector-activity .js-selector li[data-label="food_safety"] a:before,
.main .selector-activity li.selected[data-label="food_safety"] a:before {
  background-image: url("../images/icon_food_safety.svg");
}
.main .selector-activity .js-selector li[data-label="environment"] a:before,
.main .selector-activity li.selected[data-label="environment"] a:before {
  background-image: url("../images/icon_environment.svg");
}
.main .selector-activity .js-selector li[data-label="human_rights"] a:before,
.main .selector-activity li.selected[data-label="human_rights"] a:before {
  background-image: url("../images/icon_human_rights.svg");
}
.main .selector-activity .js-selector li[data-label="labor"] a:before,
.main .selector-activity li.selected[data-label="labor"] a:before {
  background-image: url("../images/icon_labor.svg");
}
.main .selector-activity .js-selector li[data-label="economy"] a:before,
.main .selector-activity li.selected[data-label="economy"] a:before {
  background-image: url("../images/icon_economy.svg");
}

.main #page-title .activity-label {
  display: flex;
  margin-bottom: 18px;
}
.main #page-title .activity-label .label {
  border: 1px solid var(--line-color);
}


@media (hover: hover) and (pointer: fine) {
  .main .activity-item a:hover .img:before {
    background-position: left bottom;
  }
  .main .activity-item a:hover .img img {
    transform: scale(1.1);
  }
  .main .selector-activity li:hover[data-label="food_safety"] a:before {
    background-image: url("../images/icon_food_safety.svg");
  }
  .main .selector-activity li:hover[data-label="environment"] a:before {
    background-image: url("../images/icon_environment.svg");
  }
  .main .selector-activity li:hover[data-label="human_rights"] a:before {
    background-image: url("../images/icon_human_rights.svg");
  }
  .main .selector-activity li:hover[data-label="labor"] a:before {
    background-image: url("../images/icon_labor.svg");
  }
  .main .selector-activity li:hover[data-label="economy"] a:before {
    background-image: url("../images/icon_economy.svg");
  }
}

@media screen and (max-width: 767px) {
  .main .activity-list {
    display: block;
    margin: 0;
  }
  .main .activity-item {
    width: 100%;
    margin: 0 0 50px;
  }
  .main .activity-item .title {
    -webkit-line-clamp: 2;
  }
  .main .selector-activity {
    margin-bottom: 50px;
  }
}


/* ------- sustainability index ------- */
.main #page-mv.c_sustainability {
  height: 100vh;
  overflow: hidden;
  background-color: var(--main-bg-color);
}
.main #page-mv.c_sustainability img {/* ダミー用 */
  max-width: none;
  width: 100%;
  height: 100%; 
  object-fit: contain;
}
.main .sus-index-activity {
  position: relative;
  margin: 42px 0 120px;
  padding-bottom: 40px;
}
.main .sus-index-activity:before,
.main .sus-index-activity:after {
  content: "";
  position: absolute;
  width: 100vw;
  z-index: -1;
}
.main .sus-index-activity:before {
  top: 0;
  left: calc(50% - 50vw);
  height: 280px;
  background-color: var(--main-bg-color);
}
.main .sus-index-activity:after {
  bottom: 0;
  left: -40px;
  height: 340px;
  background-color: #96d3ad;
}
.main .sus-index-activity .btn-circle {
  margin-top: 8px;
}
.main .sus-index-library + h2 {
  margin-top: 100px;
}
.main .sus-index-news .btn-circle {
  margin-top: 26px;
}

@media screen and (min-width: 768px), print {
  .main #page-mv.c_sustainability + .section .inner {
    padding-top: 0;
    margin-top: -150px;
  }
}

@media screen and (max-width: 767px) {
  .main .sus-index-activity {
    padding-bottom: 8px;
  }
  .main .sus-index-activity:before {
    top: -150px;
    height: 100vw;
  }
  .main .sus-index-activity:after {
    left: calc(50% - 50vw);
    height: 75.7%;
  }
  .main #page-mv.c_sustainability + .section .inner {
    padding-top: 25px;
  }
  .main .sus-index-activity .btn-circle {
    margin-top: 28px;
  }
  .main .activity-list.js-slider {
    margin: 0 -5vw;
  }
  .main .activity-list.js-slider .activity-item {
    margin: 0;
    padding: 0 10px;
  }
  .main .activity-list.js-slider .slick-dots li button {
    background-color: transparent;
    box-shadow: 0 0 0 1px #fff inset;
  }
  .main .activity-list.js-slider .slick-dots li:hover button,
  .main .activity-list.js-slider .slick-dots .slick-active button {background-color: #fff;}
  .main .sus-index-library {
    margin-top: 36px;
  }
  .main .sus-index-library + h2 {
    margin-top: 108px;
  }
  .main .sus-index-library h3 {
    margin: 56px 0 16px;
  }
  .main .sus-index-library h3:first-of-type {
    margin-top: 0;
  }
  .main .sus-index-library .btn {
    margin-top: 8px;
  }
  .main .sus-index-news .btn-circle {
    margin-top: 40px;
  }
}


/* ------- sustainability approach ------- */
.main .approach-mv {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 41.6vw;
  max-height: 600px;
  margin: -75px 0 96px;
  padding: 80px 0;
  text-align: center;
}
.main .approach-mv .bg-img {
  position: absolute;
  top: 0;
  left: calc(50% - 50vw + 60px);
  width: calc(100vw - 120px);
  height: 100%;
  z-index: -1;
}
.main .approach-mv .bg-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.main .approach-mv .h4 {
  margin: 0;
  color: #fff;
  font-weight: bold;
  line-height: 2.2;
}
.main .sdgs-goal8 {
  display: flex;
  max-width: 992px;
  margin: 0 auto;
}
.main .sdgs-goal8 > * {
  margin: 12px;
}

@media screen and (max-width: 1079px) {
  .main .approach-mv {
    margin-top: -25px;
  }
  .main .approach-mv .bg-img {
    left: -5vw;
    width: calc(100vw + 10vw);
  }
}

@media screen and (max-width: 767px) {
  .main .approach-mv {
    margin-bottom: 0;
    padding: 90px 0 70px;
  }
  .main .approach-mv .bg-img img {
    object-position: 90% 50%;
  }
  .main .sdgs-goal8 {
    flex-wrap: wrap;
    max-width: 464px;
  }
  .main .sdgs-goal8 > * {
    width: calc(25% - 16px);
    margin: 8px;
  }
}


/* ------- recruit / company index ------- */
.main .panel-index {
  margin-bottom: -80px;
}
.main .panel-index > * {
  margin-bottom: 80px;
}
.main .panel-index + .panel-index {
  margin-top: 80px;
}
.main .panel-index * + h3 {
  margin-top: 32px;
}
.main .panel-index .btn-circle-s {
  margin-top: 20px;
}
.main .panel-index .box {
  margin:  0 20px 32px;
  padding: 50px 40px;
}
.main .panel-index .box h3 {
  margin-bottom: 22px;
}
.main .panel-index figure img {
  border: 1px solid var(--line-color);
}
.main .recruit-index-other .col-set .col2-3 {
  padding-right: 40px;
}
.main .recruit-index-other .col-set .btn a {
  width: 100%;
  min-width: 0;
}
.main .panel-index + .note {
  margin-top: 16px;
}

@media screen and (min-width: 768px), print {
}

@media screen and (max-width: 767px) {
  .main .panel-index {
    margin-top: 42px;
    margin-bottom: -52px;
  }
  .main .panel-index > * {
    margin-bottom: 52px;
  }
  .main .panel-index.middle > *:first-child {
    margin-bottom: 30px;
  }
  .main .panel-index figure + h3 {
    margin-top: 24px;
  }
  .main .panel-index .box {
    margin-bottom: 52px;
    padding: 26px 30px;
  }
  .main .panel-article {
    margin-bottom: -48px;
  }
  .main .panel-article > * {
    margin-bottom: 48px;
  }
}


/* ------- company - history ------- */
.main .timeline-body .hd-year {
  margin: 0;
  padding: 0;
  color: var(--key-color);
  font-family: var(--txt-en);
  font-size: 3.8rem;
  line-height: 1.5;
  border-bottom: 1px solid var(--line-color);
}
.main .timeline-body .hd-year:not(:first-of-type) {
  margin-top: 15px;
}
.main .timeline-body .hd-year:before {
  content: none;
}
.main .timeline-section ul {
  position: relative;
  margin: 0 40px;
  padding-top: 40px;
}
.main .timeline-section ul:before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 1px;
  height: 100%;
  background-color: var(--line-color);
}
.main .timeline-section ul li {
  margin: 0;
  padding: 0 0 45px 40px;
  color: var(--line-color);
  line-height: 2.2;
}
.main .timeline-section ul li:before {
  left: -4px;
  top: calc(1.1em - 5px);
  width: 9px;
  height: 9px;
  background-color: var(--line-color);
}
.main .timeline-section ul li .timeline-date {
  font-weight: bold;
}
.main .timeline-section ul p {
  margin: 0;
}
.main .timeline-detail {
  display: flex;
}
.main .timeline-detail .detail-text {
  flex: 1;
}
.main .timeline-detail .detail-img {
  width: 43%;
  margin-left: 20px;
  background-color: var(--main-bg-color);
  border-radius: 8px;
  overflow: hidden;
}
.main .timeline-detail .detail-img img {
  opacity: 0;
  transition: opacity var(--transition-time);
}
.main .timeline-section ul li.active:before {
  background-color: var(--key-color);
}
.main .timeline-section ul li.active .timeline-date {
  color: var(--key-color);
  transition: var(--transition-time);
}
.main .timeline-section ul li.active .detail-text {
  color: var(--base-color);
  transition: var(--transition-time);
}
.main .timeline-section ul li.active .detail-img img {
  opacity: 1;
}

.main .timeline-nav {
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  width: 100%;
  margin: auto;
  padding: 15px 24px;
  border: 1px solid var(--line-color);
  border-radius: 8px;
}
.main .timeline-nav a {
  position: relative;
  padding: 6px 16px;
  color: var(--line-color);
  font-family: var(--txt-en);
  letter-spacing: 0.1em;
  background: none;
}

@media (hover: hover) and (pointer: fine) {
  .main .timeline-nav a:hover {
    color: var(--key-color);
  }
}

@media screen and (min-width: 768px), print {
  .main .timeline-set {
    display: flex;
    flex-direction: row-reverse;
  }
  .main .timeline-body {
    flex: 1;
  }
  .main .timeline-side {
    width: 116px;
  }
  .main .fixed .timeline-nav {
    position: sticky;
    top: 50%;
    transform: translateY(-50%);
    transition: .8s;
  }
  .main .timeline-nav a.active {
    color: var(--key-color);
  }
  .main .timeline-nav a.active:before {
    content: "";
    position: absolute;
    left: 0;
    top: calc(1em - 2px + 6px);
    width: 4px;
    height: 4px;
    border-radius: 100%;
    background-color: var(--key-color);
  }
}

@media screen and (max-width: 767px) {
  .main .timeline-body .hd-year {
    font-size: 3.1428rem;
  }
  .main .timeline-section + .timeline-section {
    margin-top: 60px;
  }
  .main .timeline-section ul {
    margin: 0 20px;
  }
  .main .timeline-section ul li {
    padding: 0 0 60px 20px;
  }
  .main .timeline-detail {
    display: block;
  }
  .main .timeline-detail .detail-img {
    width: auto;
    margin: 20px 0 0;
  }

  .main .timeline-nav {
    flex-direction: row;
    width: calc(100% + 24px);
    margin: 0 -12px 42px;
    padding: 0;
    border: none;
    border-radius: 0;
  }
  .main .timeline-nav a {
    width: calc(33.3333% - 24px);
    margin: 0 12px 18px;
    padding: 3px 12px;
    color: var(--base-color);
    font-weight: bold;
    border-bottom: 1px solid var(--line-color);
    background: url("../images/icon_arrow_down.svg") no-repeat right 12px center;
  }
}

/* ------- company -other ------- */
.main .brand-logo {
  display: inline-block;
  width: 160px;
  vertical-align: middle;
}

.main .lead-slogan {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: center;
  font-family: var(--txt-min);
  font-size: 2.6666rem;
  line-height: 1.6;
}
.main .lead-slogan .em {
  margin-right: -0.25em;
  color: var(--key-color);
  font-size: 1.6em;
}

.main .company-division-map {
  margin-bottom: 65px;
  aspect-ratio: 2.48;
}
.main .company-division-map iframe {
  width: 100%;
  height: 100%;
}
.main .list-group {
  margin-top: 70px;
}
.main .logo-concept {
  text-align: center;
}

.main .company-brochure {
  display: flex;
}
.main .company-brochure .thumb {
  width: 156px;
}
.main .company-brochure .brochure-body {
  flex: 1;
  padding-left: 40px;
}

@media screen and (min-width: 768px), print {
  .main table.table-division th {
    width: 140px;
  }
  .main table.table-division td {
    border-right: none !important;
  }
  .main table.table-division td:not(:first-of-type) {
    padding-left: 0;
  }
  .main .list-group.col-set {
    margin: 70px -40px -26px;
  }
  .main .list-group.col-set .col1-2 {
    width: calc(50% - 80px);
    margin: 0 40px 26px;
  }
}

@media screen and (max-width: 767px) {
  .main .lead-slogan {
    font-size: 2rem;
  }
  .main table.table-division td:not(:first-of-type) {
    border-top: none !important;
    padding-top: 0;
  }
  .main .company-division-map {
    aspect-ratio: 3/2;
  }
  .main .hd-group {
    margin-bottom: 8px;
  }
  .main .logo-concept {
    max-width: 70%;
    margin: 0 auto;
  }
  .main .company-brochure {
    flex-direction: column;
    align-items: center;
  }
  .main .company-brochure .brochure-body {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-top: 10px;
    padding-left: 0;
  }
}


/* ------- column ------- */
.main #page-title.c_column {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  min-height: 100vh;
  padding: 0 0 32px;
  background-color: var(--bg-column);
}
.main #page-title.c_column.lower-level {
  min-height: 0;
}
.main #page-title.c_column + #breadcrumb {
  padding-bottom: 24px;
  background-color: var(--bg-column);
}
.main #page-title.c_column:not(.lower-level) ~ .section .inner {
  padding-top: 0;
}

.main .header-column {
  height: 182px;
  padding: 47px 40px 0 80px;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
}
.main .header-column .gofun img {
  width: 220px;
  mix-blend-mode: multiply;
}
.main .header-column .gofun a {
  background: none;
}
.main .column-navigation ul {
  display: flex;
  margin: 32px 0 0;
  padding: 0;
}
.main .column-navigation li {
  margin: 0 20px;
  padding: 0;
}
.main .column-navigation li:last-of-type {
  margin-right: 0;
}
.main .column-navigation li:before {
  content: none;
}
.main .column-navigation a {
  position: relative;
  display: block;
  margin-bottom: 10px;
  padding-bottom: 3px;
  color: #1b1b1b;
  font-family: var(--txt-jp2);
  font-weight: bold;
  background-image: none;
  border-bottom: 1px solid #1b1b1b;
}
.main .column-navigation a:before {
  margin: 0 auto;
}

.main .column-list {
  display: flex;
  flex-wrap: wrap;
  margin: 50px -40px -80px;
}
.main .column-list > * {
  width: calc(50% - 80px);
  margin: 0 40px 80px;
}
.main .column-item {
  display: flex;
  flex-direction: column;
  font-family: var(--txt-jp2);
  line-height: 2;
  border: 1px solid var(--base-color);
  border-radius: 20px;
  background: #fff;
  overflow: hidden;
}
.main .column-item > a {
  padding: 0 32px;
  color: var(--base-color);
  background: transparent;
}
.main .column-item .img {
  position: relative;
  margin: 0 -32px;
  overflow: hidden;
  aspect-ratio: 1.618;
  border-bottom: 1px solid var(--base-color);
}
.main .column-item .img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--transition-time);
}
.main .column-item .tag {
  margin-top: 14px;
  padding: 16px 32px 32px;
  background-image: linear-gradient(var(--base-color) 50%, rgba(255,255,255,0) 50%);
  background-position: center top;
  background-repeat: no-repeat;
  background-size: calc(100% - 72px) 2px;
}

.main .column-list.is-horizontal {
  display: block;
  margin: 0;
}
.main .column-list.is-horizontal .column-item {
  width: 100%;
  margin: 0;
  padding: 40px 0;
  border: none;
  border-bottom: 1px solid var(--line-color);
  border-radius: 0;
  background: transparent;
}
.main .column-list.is-horizontal .column-item > a {
  display: flex;
  align-items: flex-start;
  padding: 0;
  border: none;
  border-radius: 0;
}
.main .column-list.is-horizontal .column-item .img {
  width: 26%;
  margin: 0;
  padding: 0;
  border: 1px solid var(--base-color);
  border-radius: 8px;
}
.main .column-list.is-horizontal .column-item .column-item-body {
  flex: 1;
  padding-left: 40px;
}
.main .column-list.is-horizontal .column-item .article-desc {
  margin-top: 0;
}
.main .column-list.is-horizontal .column-item .tag {
  margin-left: calc(26% + 40px - 4px);
  padding: 0;
  background: none;
}

.main .column-item .article-desc {
  justify-content: flex-start;
  margin-top: 24px;
  margin-bottom: 14px;
}
.main .article-desc .column-category + .date {
  color: var(--base-color);
  font-weight: 400;
}
.main .article-desc .column-category {
  position: relative;
  display: flex;
  align-items: center;
  margin-right: 16px;
  padding-right: 16px;
  color: var(--base-color);
  font-size: 10px;
  font-weight: 700;
  border-right: 1px solid var(--base-color);
}
.main .column-navigation a:before,
.main .article-desc .column-category:before {
  content: "";
  display: block;
  width: 28px;
  height: 28px;
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
}
.main .article-desc .column-category:before {
  margin-right: 8px;
}
.main .column-navigation .shoku a:before,
.main .article-desc .column-category.shoku:before {
  background-image: url("../images/icon_shoku.svg");
}
.main .column-navigation .hito a:before,
.main .article-desc .column-category.hito:before {
  background-image: url("../images/icon_hito.svg");
}
.main .column-navigation .koto a:before,
.main .article-desc .column-category.koto:before {
  background-image: url("../images/icon_koto.svg");
}
.main .column-item .title {
  display: -webkit-box;
  margin: 0;
  font-size: 1.2rem;
  font-weight: 700;
  overflow: hidden;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}
.main .tag {
  position: relative;
  margin: 0 -4px;
  display: inline-flex;
  flex-wrap: wrap;
  font-size: 12px;
  line-height: calc(2em - 2px);
}
.main .tag > * {
  margin: 8px 4px 0;
  padding: 0 1em;
  color: var(--base-color);
  border: 1px solid var(--line-color);
  border-radius: 1em;
  background-color: #fff;
  background-image: none;
}
.main .column-list + .pagination {
  margin-top: 80px;
}

.main .pickup-column {
  margin: auto 0;
  line-height: 0;
}
.main .pickup-column .column-item {
  border: none;
  border-radius: 0;
  background: transparent;
}
.main .pickup-column .column-item > a {
  display: block;
  border: 1px solid var(--base-color);
  border-radius: 20px;
  background: #fff;
  overflow: hidden;
}
.main .pickup-column .slick-dots {
  width: calc(60.6% - 80px);
  margin: 18px auto 0;
}
.main .pickup-column .slick-dots li button {
  box-shadow: 0 0 0 1px var(--key-color) inset;
  background-color: #fff;
}
.main .pickup-column .slick-dots li:hover button,
.main .pickup-column .slick-dots .slick-active button {background-color: var(--key-color);}
.main .pickup-column .slick-arrow {
  bottom: auto;
  top: calc(50% - 24px - 16px);
  width: 48px;
  height: 48px;
  border: 1px solid var(--base-color);
  border-radius: 100%;
  background-color: var(--key-color);
  background-image: url("../images/icon_arrow_s_wh.svg");
  background-position: center;
  background-size: 28px;
  transition: var(--transition-time);
}
.main .slick-next {right: calc(19% - 24px);}
.main .slick-prev {
	left: calc(19% - 24px);
	transform: scaleX(-1);
}
.main .topic-keywords {
  text-align: center;
}
.main .topic-keywords .title {
  position: relative;
  padding-top: 48px;
}
.main .topic-keywords .title:before,
.main .topic-keywords .title:after {
  content: "";
  position: absolute;
  top: 0;
  z-index: -1;
}
.main .topic-keywords .title:before {
  left: calc(50% - 50vw);
  width: 100vw;
  height: 100%;
  background-color: var(--bg-column);
}
.main .topic-keywords .title:after {
  left: calc(50% - 276px);
  width: 552px;
  height: 420px;
  border-radius: 100%;
  background-color: #fff;
}
.main .topic-keywords .title img {
  width: 276px;
}
.main .topic-keywords .tag {
  justify-content: center;
  max-width: 648px;
  margin: 0 auto 0;
  font-size: 1rem;
  font-family: var(--txt-jp2);
}
.main .topic-keywords .tag > * {
  margin: 16px 5px 0;
}

.main .h-column01 {
  margin: 32px 0 64px;
  font-size: 1rem;
}
.main .h-column01:before {
  content: none;
}
.main .h-column01 * + img {
  margin-top: 12px;
}
.main .h-column01 img {
  width: 319px;
}

.main .marquee-text {
  position: relative;
  display: flex;
  width: 100vw;
  margin: 64px calc(50% - 50vw) 0;
  color: #f6ebcf;
  font-size: 90px;
  font-family: var(--txt-en);
  font-weight: bold;
  line-height: 1.2;
  white-space:nowrap;
  overflow: hidden;
  pointer-events: none;
}  
.main .marquee-text span {
  width: auto;
  padding-right: 0.5em;
  will-change: transform;
  backface-visibility: hidden;
  animation: marquee 15s linear infinite;
}

@keyframes marquee {
  0% {transform: translateX(0);}
  100% {transform: translateX(-100%);}
}

#gofun-notes {
  font-family: var(--txt-jp2);
  font-weight: 500;
  text-align: center;
  border: 1px solid #1b1b1b;
  border-radius: 20px;
}
#gofun-notes h4 {
  margin: 0 0 50px;
}
#gofun-notes h4 img {
  max-width: 260px;
}
#gofun-notes .mfp-close {
  border: 1px solid #1b1b1b;
}

.main .topic-keywords.is-lower {
  display: flex;
  margin-bottom: 100px;
  padding: 24px 40px 40px;
  background-color: #f6f5f4;
  border-radius: 20px;
}
.main .topic-keywords.is-lower .title {
  width: 25.5%;
  max-width: 276px;
  padding-top: 32px;
}
.main .topic-keywords.is-lower .title:before,
.main .topic-keywords.is-lower .title:after {
  content: none;
}
.main .topic-keywords.is-lower .tag-accordion {
  flex: 1;
  padding-left: 40px;
}
.main .topic-keywords.is-lower .tag {
  justify-content: flex-start;
  max-width: none;
  margin: 0;
}
.main .topic-keywords.is-lower .tag a {
  transition-property: background-color;
}

.main .btn-more {
  margin: 30px 0 0;
  cursor: pointer;
}
.main .btn-more span {
  position: relative;
  display: inline-block;
  padding-right: 22px;
  font-weight: bold;
}
.main .btn-more span:before,
.main .btn-more span:after {
  content: "";
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  margin: auto;
  width: 14px;
  height: 2px;
  background-color: var(--key-color);
}
.main .btn-more span:after {
  transform: rotate(90deg);
}
.main .btn-more.js-close {
  display: none;
}
.main .btn-more.js-close span:after {
  content: none;
}

.main .section .article-column {
  position: relative;
  max-width: 1080px;
  margin: 0 auto;
  padding: 56px 80px 0;
  background-color: #fff;
  border-radius: 20px 20px 0 0;
}
.main .section .article-column:before {
  content: "";
  position: absolute;
  top: 0;
  left: calc(50% - 50vw);
  width: 100vw;
  height: 88px;
  background-color: var(--bg-column);
  z-index: -1;
}
.main .section .article-column > .article-desc {
  justify-content: flex-start;
  margin-top: 0;
}
.main .section .article-column h1 {
  margin: 25px 0 0;
  font-size: 2.4rem;
}

.main .article-share {
  display: flex;
  justify-content: flex-end;
  margin: 80px 0 48px;
}
.main .article-share + h2 {
  margin-top: 0;
}
.main .related-area + .article-share {
  margin: 56px 0 0;
}
.main .article-share li {
  margin: 0 0 0 16px;
  padding: 0;
}
.main .article-share li:before {
  content: none;
}
.main .article-share a {
  position: relative;
  display: block;
  width: 32px;
  height: 32px;
  overflow: hidden;
  text-indent: -9999px;
  background: none;
  transition: opacity var(--transition-time);
}
.main .article-share a:before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}
.main .article-share li.fb a:before {
  background-image: url("../images/icon_fb_color.svg");
}
.main .article-share li.tw a:before {
  background-image: url("../images/icon_tw_color.svg");
}
.main .article-share li.ln a:before {
  background-image: url("../images/icon_ln_color.svg");
}

.main .related-article {
  position: relative;
  margin-top: 96px;
  padding-top: 96px;
}
.main .related-article:before {
  content: "";
  position: absolute;
  left: calc(50% - 50vw);
  top: 0;
  width: 100vw;
  height: 1px;
  background-color: var(--line-color);
}

@media (hover: hover) and (pointer: fine) {
  .main .column-navigation a:hover {
    margin-top: 10px;
    margin-bottom: 0;
  }
  .main .tag a:hover {
    background-color: #ffe6e6;
  }
  .main .column-item > a:hover {
    color: var(--key-color);
  }
  .main .column-item > a:hover img {
    transform: scale(1.1);
  }
  .main .pickup-column .slick-arrow:hover {
    background-color: #fff;
    background-image: url("../images/icon_arrow_s_red.svg");
  }
  .main .article-share a:hover {
    opacity: 0.7;
  }
}

@media screen and (max-width: 1439px) {
  .main .header-column {
    padding-left: 5.5vw;
  }
  .main .section .article-column {
    padding-left: 5.5vw;
    padding-right: 5.5vw;
  }
}

@media screen and (max-width: 1079px) {
  .main .header-column {
    align-items: center;
    height: auto;
    padding-top: 90px;
  }
  .main .header-column .gofun {
  }
  .main .header-column .gofun img {
    width: 184px;
  }
  .main .column-list {
    margin: 50px -2.5vw -80px;
  }
  .main .column-list > * {
    width: calc(50% - 5vw);
    margin: 0 2.5vw 80px;
  }
}

@media screen and (min-width: 768px), print {
  .main .pickup-column .slick-slide {
    transform: scale(0.95);
    transform-origin: center 97.5%;
    transition: transform .3s ease;
  }
  .main .pickup-column .slick-slide.slick-center {
    transform: scale(1);
    transform-origin: center 100%;
  }
  .main .pickup-column .column-item > a {
    padding: 0;
    margin: 0 40px;
  }
  .main .pickup-column .column-item .img {
    margin: 0;
  }
  .main .pickup-column .column-item .column-item-body {
    display: flex;
    padding: 24px 32px;
  }
  .main .pickup-column .column-item .article-desc {
    flex-direction: column;
    justify-content: center;
    margin: 0 24px 0 0;
  }
  .main .pickup-column .column-item .article-desc .column-category {
    flex-direction: column;
    width: 100%;
    margin-right: 0;
    padding-right: 0;
    padding-bottom: 2px;
    border-right: none;
    border-bottom: 1px solid var(--base-color);
}
  .main .pickup-column .column-item .article-desc .column-category:before {
    margin: 0;
  }
  .main .pickup-column .column-item .row {
    flex: 1;
  }
}

@media screen and (max-width: 767px) {
  .main #page-title.c_column {
    min-height: 0;
    padding-bottom: 40px;
  }

  .main .header-column {
    height: auto;
    padding: 90px 5% 0;
    flex-direction: column;
    align-items: center;
    justify-content: center;
  }
  .main .header-column .gofun img {
    width: 184px;
  }
  .main .column-navigation ul {
    margin-top: 24px;
  }
  .main .column-navigation li {
    margin: 0 16px;
  }
  .main .column-navigation li:first-of-type {
    margin-left: 0;
  }
  .main .column-navigation a {
    font-size: 11px;
  }
  .main .column-navigation a:before {
    width: 22px;
    height: 22px;
  }
  
  .main .column-list {
    display: block;
    margin: 50px 0 0;
  }
  .main .column-list > * {
    width: 100%;
    margin: 0 0 48px;
  }
  .main .column-item > a {
    padding: 0 20px;
  }
  .main .column-item .img {
    margin: 0 -20px;
  }
  .main .column-item .article-desc {
    margin-top: 18px;
    margin-bottom: 10px;
  }
  .main .column-item .article-desc .date {
    font-size: 1rem;
  }
  .main .article-desc .column-category {
    font-size: 12px;
  }
  .main .article-desc .column-category:before {
    width: 25px;
    height: 25px;
  }
  .main .column-item .title {
    font-size: 1rem;
    -webkit-line-clamp: 3;
  }
  .main .tag {
    font-size: 11px;
  }
  .main .column-item .tag {
    margin-top: 12px;
    padding: 12px 20px 20px;
    background-size: calc(100% - 48px) 2px;
  }
  
  .main .column-list.is-horizontal .column-item {
    padding: 20px 0;
  }
  .main .column-list.is-horizontal .column-item > a {
  }
  .main .column-list.is-horizontal .column-item .img {
    width: 25%;
    border-radius: 8px;
  }
  .main .column-list.is-horizontal .column-item .column-item-body {
    padding-left: 20px;
  }
  .main .column-list.is-horizontal .column-item .tag {
    margin-top: 8px;
    margin-left: calc(25% + 20px - 4px);   
  }
  
  .main .pickup-column {
    margin: 38px 0 0;
  }
  .main .pickup-column .column-item > a {
    margin: 0 5%;
    padding-bottom: 20px;
  }
  .main .pickup-column .slick-slide {
    transform: none;
  }
  .main .pickup-column .slick-dots {
    width: auto;
  }
  .main .pickup-column .slick-arrow {
    top: calc(50% - 20px - 16px);
    width: 40px;
    height: 40px;
    background-size: 24px;
  }
  .main .slick-next {right: calc(5% + 24px);}
  .main .slick-prev {left: calc(5% + 24px);}
  
  .main .topic-keywords .title {
    padding-top: 46px;
  }
  .main .topic-keywords .title:before {
    height: 54px;
  }
  .main .topic-keywords .title:after {
    top: 12px;
    left: calc(50% - 138px);
    width: 276px;
    height: 210px;
  }
  .main .topic-keywords .title img {
    width: 262px;
  }
  .main .topic-keywords .tag {
    justify-content: flex-start;
  }
  .main .topic-keywords .tag > * {
    margin-top: 12px;
  }
  
  .main .h-column01 {
    margin: 50px 0;
  }
  .main .h-column01 img {
    width: 241px;
  }

  .main .marquee-text {
    margin-top: 50px;
    font-size: 60px;
  }
  #gofun-notes {
    padding: 64px 40px 40px;
  }
  #gofun-notes h4 {
    margin-bottom: 20px;
  }
  #gofun-notes h4 img {
    max-width: 230px;
  }

  .main .topic-keywords.is-lower {
    display: block;
    margin-bottom: 116px;
    padding: 50px 20px 40px;
  }
  .main .topic-keywords.is-lower .title {
    width: auto;
    max-width: 262px;
    margin: 0 auto 16px;
    padding-top: 0;
  }
  .main .topic-keywords.is-lower .tag-accordion {
    padding-left: 0;
  } 
  
  .main .section .article-column {
    padding: 44px 0 0;
    border-radius: 0;
  }
  .main .section .article-column:before {
    content: none;
  }
  .main .section .article-column h1 {
    font-size: 1.6428rem;
  }

  .main .article-share {
    margin-top: 50px;
  }
  .main .related-area + .article-share {
    margin-top: -30px;
  }

  .main .related-article {
    margin-top: 80px;
    padding-top: 50px;
  }
  
}


/* ------- case ------- */
.main .case-list {
  display: flex;
  flex-wrap: wrap;
  margin: 0 -40px -48px;
}
.main .case-list > * {
  position: relative;
  width: calc(50% - 80px);
  margin: 0 40px 48px;
}
.main .case-item a {
  display: block;
  color: var(--base-color);
  line-height: 1.8;
  background-image: none;
}
.main .case-item .img {
  position: relative;
  aspect-ratio: 1.5;
  border: 1px solid var(--line-color);
  border-radius: 8px;
  overflow: clip;
}
.main .case-item .img:after {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background-image: linear-gradient(rgba(0,0,0,0) 60%, rgba(0,0,0,0.4));
}
.main .case-item .img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--transition-time);
}
.main .case-item .article-desc {
  position: relative;
  margin: -40px 0 0;
  padding: 0 16px;
}
.main .case-item .article-desc .label {
  padding: 0 24px;
  color: #fff;
  background-color: var(--key-color);
}
.main .case-item p {
  margin: 0;
}
.main .case-item .label-sub {
  margin-top: 36px;
  color: var(--key-color);
  font-size: 0.8666rem;
}
.main .case-item .title {
  margin: 0 0 6px;
  font-size: 1.2rem;
  font-weight: bold;
}

.main .case-desc {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin: 0 0 54px;
}
.main .case-desc > * {
  width: calc(50% - 20px);
}
.main .case-desc .desc-img {
  border-radius: 8px;
  overflow: hidden;
}
.main .case-desc .desc-body {
  letter-spacing: 0.075em;
  line-height: 1.6;
}
.main .case-desc .desc-body .label-sub {
  margin: 0 0 6px;
  color: var(--key-color);
  font-size: 1.2rem;
  font-weight: bold;
}
.main .case-desc .desc-body .title {
  margin: 0 0 28px;
  padding-bottom: 28px;
  font-size: 2.0666rem;
  font-weight: bold;
  border-bottom: 1px solid var(--line-color);
}
.main .case-desc .desc-body .title:before {
  content: none;
}
.main .case-desc .desc-body dl {
  display: block;
  margin: 0;
}
.main .case-desc .desc-body dl dt,
.main .case-desc .desc-body dl dd {
  margin: 0;
  padding: 0;
}
.main .case-desc .desc-body dl dt {
  margin-bottom: 4px;
  font-size: 1.2rem;
  font-weight: bold;
}
.main .case-desc .desc-body dl dd {
  margin-bottom: 22px;
}

@media (hover: hover) and (pointer: fine) {
  .main .case-item a:hover {
    color: var(--key-color);
  }
  .main .case-item a:hover img {
    transform: scale(1.1);
  }
}

@media screen and (max-width: 1089px) {
  .main .case-list .ellipsis {
    display: none;
  }
}

@media screen and (max-width: 1079px) {
  .main .case-list {
    margin: 0 -2.5vw -80px;
  }
  .main .case-list > * {
    width: calc(50% - 5vw);
    margin: 0 2.5vw 80px;
  }
}

@media screen and (min-width: 768px) and (max-width: 830px) {
  .main .case-item .article-desc .label {
    padding: 0 12px;
    font-size: 11px;
  }
}

@media screen and (max-width: 767px) {
  .main .case-list {
    display: block;
    margin: 0;
  }
  .main .case-list > * {
    width: 100%;
    margin: 0 0 74px;
  }
  .main .case-item .article-desc .label {
    padding: 0 12px;
  }
  .main .case-item .label-sub {
    margin-top: 28px;
    font-size: 0.8571rem;
  }
  .main .case-item .title {
    margin: 5px 0 18px;
    font-size: 1.2857rem;
  }
  
  .main .case-desc {
    display: block;
    margin-bottom: 45px;
  }
  .main .case-desc > * {
    width: 100%;
  }
  .main .case-desc .desc-body {
    margin-top: 46px;
  }
  .main .case-desc .desc-body .label-sub {
    font-size: 1.1428rem;
  }
  .main .case-desc .desc-body .title {
    margin-bottom: 24px;
    padding-bottom: 24px;
    font-size: 1.4285rem;
  }
  .main .case-desc .desc-body dl dt {
    margin-bottom: 2px;
    font-size: 1.1428rem;
  }

}


/* ------- vision ------- */
.main #page-title.c_vision.index {
  padding-top: 0;
  padding-bottom: 0;
  display: block;
  background-color: transparent;
}
.main #page-title.c_vision.index .page-title-body {
  display: flex;
  flex-direction: column;
  height: 84.5vh;
}
.main #page-title.c_vision.index .page-title-level2 {
  margin: 114px 0 auto;
  flex: 1; 
}
.main #page-title.c_vision.index .vision-index-tagline {
  padding: 40px 80px 0;
  background-color: #fff;
  border-radius: 8px 8px 0 0;
}
.main #page-title.c_vision.index .vision-index-tagline h2 {
  margin: 0;
  padding: 0;
  font-size: 3rem;
  letter-spacing: normal;
  text-align: center;
}
.main #page-title.c_vision.index .vision-index-tagline h2:before {
  content: none;
}
.main #page-title.c_vision.index .vision-index-tagline h2 span {
  color: var(--key-color);
}
.main #page-title.c_vision.index .kv-img {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 84.5vh;
  z-index: -1;
}
.main #page-title.c_vision.index .kv-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.main #page-title.c_vision.index .vision-index-lead {
  display: flex;
  align-items: flex-end;
  width: 100%;
  max-width: 1080px;
  margin: 148px auto 126px;
}
.main #page-title.c_vision.index .vision-index-lead .lead-title {
  width: 48.5%;
}
.main #page-title.c_vision.index .vision-index-lead .lead-title h3 {
  margin: 0;
  padding: 0;
  font-size: 2.066rem;
  letter-spacing: normal;
  line-height: 1.8;
  border: none;
}
.main #page-title.c_vision.index .vision-index-lead .lead-title h3:before {
  content: none;
}
.main #page-title.c_vision.index .vision-index-lead .lead-body {
  width: 51.5%;
}
.main #page-title.c_vision.index .vision-index-lead .lead-body p {
  margin-bottom: 6px;
  font-size: 1.2rem;
}
.main #page-title.c_vision.index ~ .section {
  padding: 20px 0 0;
  margin-bottom: -144px;
}
.main .vision-index-container {
  position: relative;
  display: flex;
  background-color: var(--main-bg-color);
  overflow: clip;
}
.main .vision-index-container > * {
  width: 50%;
}
.main .vision-index-container .img img {
  width: 100%;
  height: 100vh;
  object-fit: cover;
}
.main .vision-index-block {
}
.main .vision-index-block > * {
  min-height: 100vh;
}
.main .vision-index-block .text {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 40px 5%;
}
.main .vision-index-block .text + .text {
  min-height: 0;
}
.main .vision-index-block .text-inner {
  width: 100%;
  max-width: 480px;
}
.main .vision-index-block.first .text-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  max-width: none;
  background: url("../images/sign_vision.png") no-repeat center bottom;
  background-size: 70% auto;
}
.main .vision-index-block h2 {
  margin: 0;
  padding: 0;
  font-size: 3rem;
  line-height: 1.6;
  writing-mode: vertical-rl;
  text-orientation: upright;
}
.main .vision-index-block h2:before {
  content: none;
}
.main .vision-index-block h2 .num {
  color: var(--key-color);
  font-size: 4.733rem;
}
.main .vision-index-block h3 {
  margin: 0 0 18px 0;
  padding: 0 0 0 48px;
  font-size: 2.066rem;
  letter-spacing: normal;
  line-height: 1.8;
  border: none;
}
.main .vision-index-block h3:before {
  content: none;
}
.main .vision-index-block h3 .num {
  position: absolute;
  left: 0;
  top: 0;
  width: 48px;
  padding-right: 10px;
  color: var(--key-color);
  font-family: var(--txt-en);
  font-size: 3rem;
  line-height: 1.1;
  text-align: right;
}
.main .vision-index-block .btn-circle {
  margin: 32px 0 0;
}
.main .scrolldown {
  position: relative;
  width: 3em;
  height: 94px;
  margin: 100px 0 20px;
  letter-spacing: 0.075em;
  line-height: 1;
}
.main .scrolldown:after {
  content: "";
  position: absolute;
  top: 30px;
  left: 0;
  right: 0;
  margin: 0 auto;
  width: 1px;
  height: 64px;
  background-color: var(--base-color);
  animation: scrolldown 1.4s ease-in-out infinite;
  opacity: 0;
}

@keyframes scrolldown {
  0% {
		transform: scaleY(0);
    transform-origin: top;
		opacity: 0;
	}
	30% {
		transform: scaleY(1);
    transform-origin: top;
		opacity: 1;
	}
	31% {
    transform-origin: bottom;
	}
	100% {
		transform: scaleY(0);
    transform-origin: bottom;
		opacity: 0;
	}
}


.main #page-title.c_vision.lower-level .page-title-desc {
  margin: 22px 0 -52px;
  font-size: 0.8666rem;
}

.main .v-page-lead {
  position: relative;
  margin: 28px 0 120px;
  padding: 66px 80px;
  text-align: center;
  background-color: var(--main-bg-color);
  border-radius: 8px;
}
.main .v-page-lead:before,
.main .v-page-lead:after {
  content: "";
  position: absolute;
  width: 35px;
  height: 30px;
  background: url("../images/icon_quote.svg") no-repeat center;
  background-size: contain;
}
.main .v-page-lead:before {
  left: 40px;
  top: 40px;
  transform: rotate(180deg);
}
.main .v-page-lead:after {
  right: 40px;
  bottom: 40px;
}
.main .v-page-lead p {
  margin: 0;
  font-size: 2.0666rem;
  font-weight: bold;
  line-height: 1.8;
  letter-spacing: 0.075em;
}


@media screen and (max-width: 1439px) {
  .main #page-title.c_vision.index .vision-index-tagline {
    padding-left: 5.5vw;
    padding-right: 5.5vw;
  }
  .main #page-title.c_vision.index .vision-index-tagline h2 {
    font-size: 3.125vw;   
  }
  .main #page-title.c_vision.index .vision-index-lead .lead-title h3 {
    font-size: 2.152vw;   
  }
}

@media screen and (max-width: 1079px) {
  .main #page-title.c_vision.index .vision-index-tagline h2 {
    font-size: 2.25rem;   
  }
  .main #page-title.c_vision.index .vision-index-lead .lead-title h3 {
    font-size: 1.4285rem;   
  }
  .main #page-title.c_vision.index .vision-index-lead .lead-body p {
    font-size: 1rem;
  }
}

@media screen and (min-width: 768px), print {
  .main .vision-index-container > .img {
    min-height: 100vh;
  }
  .main .vision-index-container > .img .img-inner {
    position: sticky;
    top: 0;
    left: 0;
  }
  .main .vision-index-container > .img img {
    position: absolute;
    top: 0;
    opacity: 0;
    visibility: hidden;
    transition: .6s;
  }
  .main .vision-index-container > .img img:first-of-type,
  .main .vision-index-container > .img img.active {
    opacity: 1;
    visibility: visible;
  }
}

@media screen and (max-width: 767px) {
  .main #page-title.c_vision.index .page-title-body {
    height: 400px;
  }
  .main #page-title.c_vision.index .page-title-level2 {
    margin-top: 88px;
  }
  .main #page-title.c_vision.index .vision-index-tagline {
    padding: 20px 5vw 0;
  }

  .main #page-title.c_vision.index .vision-index-tagline h2 {
    font-size: 1.6428rem; 
  }
  .main #page-title.c_vision.index .kv-img {
    height: 400px;
  }
  .main #page-title.c_vision.index .vision-index-lead {
    display: block;
    margin: 72px 0;
  }
  .main #page-title.c_vision.index .vision-index-lead .lead-title,
  .main #page-title.c_vision.index .vision-index-lead .lead-body {
    width: auto;
  }
  .main #page-title.c_vision.index .vision-index-lead .lead-body {
    margin-top: 50px;
  }
  .main #page-title.c_vision.index ~ .section {
    padding: 0;
    margin-bottom: -130px;
  }
  .main .vision-index-container {
    display: block;
  }
  .main .vision-index-container > * {
    width: auto;
  }
  .main .vision-index-block .text {
    position: relative;
    margin-top: 80px;
    padding: 62px 5% 128px;
    background-color: var(--main-bg-color);
  }
  .main .vision-index-block .text + .text {
    margin-top: 0;
  }
  .main .vision-index-block .img {
    position: sticky;
    top: 0;
  }
  .main .vision-index-block.first .text-inner {
    padding-bottom: 100px;
    background-size: 224px auto;
  }
  .main .vision-index-block h2,
  .main .vision-index-block h2 .num {
    font-size: 2.1428rem;
  }
  .main .vision-index-block h3 {
    margin-bottom: 10px;
    padding-left: 30px;
    font-size: 1.4285rem;
  }
  .main .vision-index-block h3 .num {
    width: 30px;
    font-size: 2.1428rem;
  }
  .main .vision-index-block .btn-circle {
    margin-top: 0;
  }
  .main .scrolldown {
    position: absolute;
    left: calc(50% - 1.5em);
    bottom: 0;
    height: 82px;
    margin: 0;
    color: #fff;
  }
  .main .scrolldown span {
    position: relative;
  }
  .main .scrolldown:after {
    top: 24px;
    height: 58px;
    background-color: #fff;
  }
  
  .main #page-title.c_vision.lower-level .page-title-desc {
    margin: 14px 0 0;
    font-size: 0.8571rem;
  }
  
  .main .v-page-lead {
    padding: 96px 20px;
  }
  .main .v-page-lead:before,
  .main .v-page-lead:after {
    width: 30px;
    height: 26px;
  }
  .main .v-page-lead:before {
    left: 30px;
    top: 30px;
  }
  .main .v-page-lead:after {
    right: 30px;
    bottom: 30px;
  }
  .main .v-page-lead p {
    font-size: 1.6428rem;
  }
}

/* ------- vision - academy ------- */
.main .academy-lead {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 0 0 120px;
  padding: 50px 60px;
  color: #fff;
  font-size: 1.2rem;
  line-height: 2.2;
  border-radius: 8px;
  background-color: #e30212;
}
.main .academy-lead .text {
  width: 46%;
}
.main .academy-lead .img {
  width: 44%;
}

.main .academy-value {
  position: relative;
  display: flex;
  padding-left: 60px;
  font-size: 1.466rem;
  font-weight: bold;
  line-height: 1.6;
}
.main .academy-value:not(:last-child) {
  margin-bottom: 40px;
}
.main .academy-value .num {
  position: absolute;
  left: 0;
  top: calc(50% - 20px);
  width: 40px;
  height: 40px;
  color: #fff;
  font-family: var(--txt-en);
  letter-spacing: 0.075em;
  line-height: 40px;
  text-align: center;
  background-color: var(--key-color);
  border-radius: 100%;
}
.main .academy-value .value-task,
.main .academy-value .value-effect {
  display: flex;
  align-items: center;
  width: calc(50% - 48px);
  min-height: 100px;
  padding: 20px 40px;
  background-color: var(--main-bg-color);
  border-radius: 8px;
}
.main .academy-value .value-task {
  position: relative;
  margin-right: 96px;
}
.main .academy-value .value-task:after {
  content: "";
  position: absolute;
  right: -74px;
  top: calc(50% - 17px);
  width: 51px;
  height: 34px;
  background: url("../images/icon_arrow_academy_pc.svg") no-repeat center;
  background-size: contain;
}
.main .academy-value .value-effect {
  color: var(--key-color); 
}

.main .style-bg {
  padding: 0.475em 1em;
  font-weight: bold;
  text-align: center;
  background-color: #f1f1f1;
  border-radius: 8px;
}

.main .academy-message {
  display: flex;
  justify-content: space-between;
}
.main .academy-message .img {
  width: 26%;
}
.main .academy-message .text {
  width: 68%;
  line-height: 2.2;
}
.main .academy-message .caption {
  font-size: 12px;
  line-height: 1.6;
}
.main .academy-message .caption strong {
  display: inline-block;
  margin-bottom: 2px;
  font-size: 1rem;
}

.main .academy-training-slide-container {
  margin-right: calc((100vw - 1080px) / 2 * -1);
  padding-right: calc((100vw - 1080px) / 2);
  overflow: hidden;
}
.main .academy-training-slide {
  margin-top: 40px;
}
.main .academy-training-slide .slick-list {
  margin: 0 -20px;
  overflow: visible;
}
.main .academy-training-item {
  padding: 0 20px;
}
.main .academy-training-item > * {
  display: flex;
  min-height: 344px;
  height: 100%;
  color: var(--base-color);
  background: #fff;
  border-radius: 8px;
  box-shadow: 0px 0px 30px 0px rgba(0, 0, 0, 0.1);
  overflow: hidden;
}
.main .academy-training-item .training-summary {
  position: relative;
  width: 52%;
  color: #fff;
  overflow: hidden;
}
.main .academy-training-item .training-summary:after {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background-image: linear-gradient(transparent 40%, rgba(51,51,51,0.8))
}
.main .academy-training-item .training-summary .text {
  position: absolute;
  left: 0;
  bottom: 0;
  margin: 0;
  padding: 30px 40px;
  z-index: 2;
}
.main .academy-training-item .training-summary img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--transition-time);
}
.main .academy-training-item .training-voice {
  display: flex;
  flex-direction: column;
  width: 48%;
  padding: 20px 40px 30px;
}
.main .academy-training-item .training-voice .label {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  margin: 0 0 6px;
}
.main .academy-training-item .training-voice .label span {
  padding: 0 12px;
  font-size: 0.8666rem;
  font-weight: bold;
  line-height: 30px;
  border-radius: 15px;
  background-color: var(--bg-gray);
}
.main .academy-training-item .training-voice .text {
  margin: 0;
}
.main .academy-training-item .training-title {
  min-height: 100px;
  position: relative;
  padding-left: 124px;
  margin-bottom: 30px;
}
.main .academy-training-item .training-title .thumb {
  position: absolute;
  left: 0;
  top: 0;
  width: 100px;
  height: 100px;
  border-radius: 100%;
  overflow: hidden;
}
.main .academy-training-item .training-title .title {
  margin: 0 0 4px;
  font-weight: bold;
}
.main .academy-training-item .training-title .title span {
  color: var(--key-color);
  font-size: 1.2rem;
}
.main .academy-training-item .training-title .name {
  margin: 0;
  font-size: 0.8666rem;
}

@media (hover: hover) and (pointer: fine) {
  .main .academy-training-item a:hover .training-summary img {
    transform: scale(1.1);
  }
}

@media screen and (max-width: 1099px) {
  .main .academy-training-slide-container {
    margin-right: -2.5vw;
    padding-right: 2.5vw;
  }
  .main .academy-training-item > * {
    box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, 0.1);
  }
}

@media screen and (min-width: 768px), print {
}

@media screen and (max-width: 767px) {
  .main .academy-lead {
    display: block;
    margin-bottom: 80px;
    padding: 40px 30px;
    font-size: 1rem;
  }
  .main .academy-lead .text,
  .main .academy-lead .img {
    width: auto;
  }
  
  .main .academy-value {
    display: block;
    margin-left: 44px;
    padding: 20px;
    font-size: 1rem;
    font-weight: bold;
    line-height: 1.6;
    background-color: var(--main-bg-color);
    border-radius: 8px;
  }
  .main .academy-value:not(:last-child) {
    margin-bottom: 20px;
  }
  .main .academy-value .num {
    left: -44px;
    top: 0;
    width: 32px;
    height: 32px;
    font-size: 1.1842rem;
    line-height: 32px;
  }
  .main .academy-value .value-task,
  .main .academy-value .value-effect {
    justify-content: center;
    width: auto;
    min-height: 0;
    padding: 0;
    text-align: center;
  }
  .main .academy-value .value-task {
    margin-right: 0;
    padding-bottom: 24px;
  }
  .main .academy-value .value-task:after {
    right: unset;
    left: calc(50% - 7px);
    top: unset;
    bottom: 8px;
    width: 14px;
    height: 9px;
    background-image: url("../images/icon_arrow_academy_sp.svg");
    background-size: contain;
  }
  
  .main .academy-message {
    display: block;
  }
  .main .academy-message .img {
    width: auto;
    margin-bottom: 32px;
  }
  .main .academy-message .text {
    width: auto;
  }

  .main .academy-training-slide-container {
    margin-right: 0;
    padding-right: 0;
    overflow: visible;
  }
  .main .academy-training-item > * {
    display: block;
    min-height: 0;
    font-size: 0.8571rem;
  }
  .main .academy-training-item .training-summary {
    width: auto;
  }
  .main .academy-training-item .training-summary:after {
    background: rgba(0,0,0,0.3);
  }
  .main .academy-training-item .training-summary .text {
    padding: 25px 30px;
  }
  .main .academy-training-item .training-voice {
    width: auto;
    padding: 20px 30px 25px;
  }
  .main .academy-training-item .training-voice .label {
    margin-bottom: 20px;
  }
  .main .academy-training-item .training-voice .label span {
    font-size: 0.8571rem;
    line-height: 26px;
    border-radius: 13px;
  }
  .main .academy-training-item .training-title {
    min-height: 96px;
    margin-bottom: 22px;
    padding-left: 118px;
  }
  .main .academy-training-item .training-title .thumb {
    width: 96px;
    height: 96px;
  }
  .main .academy-training-item .training-title .title span {
    color: var(--key-color);
    font-size: 1rem;
  }
  .main .academy-training-item .training-title .name {
    font-size: 0.8571rem;
  }

}

/* ------- vision - other ------- */
.main .pillars-set {
  display: flex;
  justify-content: center;
  margin: 64px -16px;
}
.main .pillars-set > * {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 210px;
  margin: 0 16px;
  text-align: center;
  background-color: #fff3f2;
  border-radius: 100%;
  aspect-ratio: 1;
}
.main .pillars-set p {
  margin: 0;
  font-weight: bold;
  line-height: 1.6;
}
.main .flow-set {
  position: relative;
  left: 0;
  display: flex;
  align-items: center;
  margin: 32px -4px;
}
.main .flow-set li {
  position: static;
  width: calc(25% - 8px);
  margin: 0 4px;
  padding: 0;
  font-size: 13px;
  font-weight: bold;
}
.main .flow-set li:before {
  content: none;
}
.main .flow-set li .flow-body-wrap {
  position: relative;
  display: flex;
  height: 56px;
}
.main .flow-set li:last-child .flow-body-wrap {
  padding-right: 0;
}

.main .flow-set li .flow-body-wrap .flow-body {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background-color: var(--main-bg-color);
  width: 100%;
  height: 100%;
}
.main .flow-set li .flow-body-wrap:before,
.main .flow-set li .flow-body-wrap:after,
.main .flow-set li .flow-body-wrap .flow-body:before,
.main .flow-set li .flow-body-wrap .flow-body:after {
  content: "";
  position: absolute;
  top: 0;
  width: 32px;
  height: 100%;
  border-radius: 0;
  z-index: 2;
}
.main .flow-set li .flow-body-wrap:before,
.main .flow-set li .flow-body-wrap .flow-body:before {
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%, 50% 50%);
}
.main .flow-set li .flow-body-wrap:after,
.main .flow-set li .flow-body-wrap .flow-body:after {
  clip-path: polygon(0 0, 50% 0, 100% 50%, 50% 100%, 0 100%);
}
.main .flow-set li .flow-body-wrap:before,
.main .flow-set li .flow-body-wrap:after {
  background-color: var(--main-bg-color);
}
.main .flow-set li .flow-body-wrap .flow-body:before,
.main .flow-set li .flow-body-wrap .flow-body:after {
  background-color: #fff;
  z-index: 1;
}
.main .flow-set li .flow-body-wrap:before {
  left: -8px;
}
.main .flow-set li .flow-body-wrap .flow-body:before {
  left: -16px;
}
.main .flow-set li .flow-body-wrap:after {
  right: -8px;
}
.main .flow-set li .flow-body-wrap .flow-body:after {
  right: -16px;
}
.main .flow-set li:first-child .flow-body-wrap .flow-body {
  border-radius: 8px 0 0 8px;
}
.main .flow-set li:last-child .flow-body-wrap .flow-body {
  border-radius: 0 8px 8px 0;
}
.main .flow-set li:first-child .flow-body-wrap:before,
.main .flow-set li:first-child .flow-body-wrap .flow-body:before,
.main .flow-set li:last-child .flow-body-wrap:after,
.main .flow-set li:last-child .flow-body-wrap .flow-body:after {
  content: none;
}
.main .flow-set li.current .flow-body-wrap {
  height: 68px;
  color: var(--key-color);
  font-size: 1rem;
  z-index: 3;
}
.main .flow-set li.current .flow-body-wrap:before,
.main .flow-set li.current .flow-body-wrap:after,
.main .flow-set li.current .flow-body-wrap .flow-body:before,
.main .flow-set li.current .flow-body-wrap .flow-body:after {
  width: 39px;
}
.main .flow-set li.current .flow-body-wrap:before {
  left: -12px;
}
.main .flow-set li .flow-body-wrap .flow-body p {
  margin: 0;
}
.main .flow-set li .flow-body-wrap .flow-body > * {
  z-index: 3;
}

.main .lifestage-table table {
  font-size: 14px;
  border-spacing: 8px;
  border: none;
  overflow: visible;
}
.main .lifestage-table table th,
.main .lifestage-table table td {
  position: relative;
  padding: 16px;
  font-weight: bold;
  line-height: 1.4;
  text-align: center;
  vertical-align: middle;
  border: none;
}
.main .lifestage-table table tbody tr:not(:first-child) > * {
  border: none;
}
.main .lifestage-table table th {
  color: #fff;
  background-color: #aaa79d;
}
.main .lifestage-table table td {
  width: 14%;
  background-color: #f4f2eb;
}
.main .lifestage-table table thead th,
.main .lifestage-table table thead td {
  color: #fff;
}
.main .lifestage-table table tbody td {
  vertical-align: top;
}
.main .lifestage-table table p {
  margin: 0;
}
.main .lifestage-table table td p span {
  display: block;
  font-size: 0.8em;
}
.main .lifestage-table table thead tr:nth-of-type(2) td p {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100%;
}
.main .lifestage-table table tbody td p:not(:first-child) {
  margin-top: 12px;
  padding-top: 12px;
  border-top: dashed 1px var(--base-color);
}
.main .lifestage-table table thead th {
  background-color: #cc0000;
}

.main .lifestage-table table thead tr:first-of-type td {
  padding: 4px 0;
  color: var(--base-color);
  background-color: #d9d7cf;
}
.main .lifestage-table table thead tr:nth-of-type(2) td {
  background-color: #f69393;
}
.main .lifestage-table table thead tr:nth-of-type(2) td:not(:first-of-type):before,
.main .lifestage-table table thead tr:nth-of-type(2) td:after {
  content: "";
  position: absolute;
  top: 0;
  width: 48px;
  height: 100%;
  clip-path: polygon(0 0, 50% 0, 100% 50%, 50% 100%, 0 100%);
}
.main .lifestage-table table thead tr:nth-of-type(2) td:not(:first-of-type):before {
  left: -23px;
  background-color: #fff;
}
.main .lifestage-table table thead tr:nth-of-type(2) td:after {
  right: -24px;
  background-color: #f69393;
  z-index: 1; 
}
.main .lifestage-table table thead tr:nth-of-type(2) td:nth-of-type(n+4),
.main .lifestage-table table thead tr:nth-of-type(2) td:nth-of-type(n+4):after {
  background-color: #f57474;
}
.main .lifestage-table table thead tr:nth-of-type(2) td:nth-of-type(n+6),
.main .lifestage-table table thead tr:nth-of-type(2) td:nth-of-type(n+6):after {
  background-color: #f25151;
}

.main .shashoku-flow-set {
  display: flex;
  flex-wrap: wrap;
  margin: 0 -40px;
}
.main .shashoku-flow-set > * {
  position: relative;
  width: calc(50% - 80px);
  padding: 40px;
  margin: 80px 40px 0;
  background-color: var(--main-bg-color);
  border-radius: 8px;
}
.main .shashoku-flow-set > * > *:last-child {
  margin-bottom: 0;
}
.main .shashoku-flow-set > *:after {
  content: "";
  position: absolute;
  width: 44px;
  height: 25px;
  background: url("../images/icon_arrow_shashoku.svg") no-repeat center;
  background-size: contain;
}
.main .shashoku-flow-set > *:nth-child(odd):after {
  right: -62px;
  top: calc(50% - 12px); 
}
.main .shashoku-flow-set > *:nth-child(even):after {
  left: -62px;
  top: calc(100% + 28px); 
  transform: rotate(135deg);
}
.main .shashoku-flow-set > *:last-child:after {
  content: none;
}
.main .shashoku-flow-set .title {
  padding: 10px;
  color: #fff;
  text-align: center;
  background-color: var(--key-color);
  border-radius: 8px;
}
.main .shashoku-flow-set .img {
  padding: 20px 0;
}

@media screen and (max-width: 1079px) {
  .main .lifestage-table table {
    font-size: 10px;
  }
  .main .lifestage-table table th,
  .main .lifestage-table table td {
      padding: 8px;
  }
  .main .lifestage-table table th {
    font-size: 12px;
  }
  .main .lifestage-table table thead tr:nth-of-type(2) td:not(:first-of-type):before,
  .main .lifestage-table table thead tr:nth-of-type(2) td:after {
    width: 24px;
  }
  .main .lifestage-table table thead tr:nth-of-type(2) td:not(:first-of-type):before {
    left: -11px;
  }
  .main .lifestage-table table thead tr:nth-of-type(2) td:after {
    right: -12px;
  }
}

@media screen and (max-width: 767px) {
  .main .pillars-set {
    margin: 48px -6px 40px;
  }
  .main .pillars-set > * {
    width: 210px;
    margin: 0 6px;
  }
  
  .main .flow-set + .img-set {
    margin-top: 40px;
  }
  .main .flow-set li {
    font-size: 12px;
  }
  
  .main .lifestage-table table {
    width: 750px;
    border-spacing: 5px;
  }
  
  .main .shashoku-flow-set {
    display: block;
    margin: 50px 0 0;
  }
  .main .shashoku-flow-set > * {
    width: auto;
    padding: 20px;
    margin: 30px 0 0;
  }
  .main .shashoku-flow-set > *:after {
    width: 34px;
    height: 15px;
    background: var(--main-bg-color);
    clip-path: polygon(0 0, 50% 100%, 100% 0);
  }
  .main .shashoku-flow-set > *:nth-child(odd):after,
  .main .shashoku-flow-set > *:nth-child(even):after {
    right: unset;
    left: calc(50% - 17px);
    top: 100%; 
    transform: none;
  }
  .main .shashoku-flow-set .img {
    padding: 4px 0;
  }
}


/* ------- service - index ------- */
.map-service {
  margin: 56px 5% 0;
  border-radius: 8px;
  overflow-x: scroll;
  -ms-overflow-style: none;
    scrollbar-width: none;
}
.map-service::-webkit-scrollbar {
  display: none;
}
@media screen and (max-width: 767px) and (-webkit-max-device-pixel-ratio: 1) {
  .map-service {
    padding-bottom: 10px;
    scrollbar-width: thin;
  }
  .map-service::-webkit-scrollbar {
    display: block;
    width: 6px;
    height: 6px;
  }
  .map-service::-webkit-scrollbar-track {
    background-color: var(--main-bg-color);
    border-radius: 100px;
  }
  .map-service::-webkit-scrollbar-thumb {
    background: var(--line-color);
    border-radius: 100px;
  }
}
.map-service-body {
  position: relative;
  max-width: 1080px;
  min-width: 670px;
  margin: 0 auto;
  border-radius: 8px;
  overflow: hidden;
}
.map-service-img {
  position: relative;
}
.map-service .map-pin {
  position: absolute;
  display: block;
  width: 30px;
  height: 41px;
  background: url("../images/icon_pin.svg") no-repeat center !important;
  background-size: contain;
  transition: var(--transition-time);
}
.map-service .map-pin.pin01 {
  left: calc(73.89% - 15px);
  bottom: 19.5%;
}
.map-service .map-pin.pin02 {
  left: calc(90.93% - 15px);
  bottom: 65.58%;
}
.map-service .map-pin.pin03 {
  left: calc(23.98% - 15px);
  bottom: 40.58%;
}
.map-service .map-pin.pin04 {
  left: calc(62.78% - 15px);
  bottom: 38.35%;
}
.map-service .map-pin.pin05 {
  left: calc(19.26% - 15px);
  bottom: 68.98%;
}
.map-service .map-pin.pin06 {
  left: calc(29.26% - 15px);
  bottom: 60.6%;
}
.map-service .map-pin.pin07 {
  left: calc(42.5% - 15px);
  bottom: 28.8%;
}
.map-service .map-pin.pin08 {
  left: calc(43.15% - 15px);
  bottom: 87.96%;
}
.map-service .map-pin.pin09 {
  left: calc(61.94% - 15px);
  bottom: 64.4%;
}
.map-service .map-pin.pin10 {
  left: calc(82.69% - 15px);
  bottom: 48.69%;
}
.map-service .map-pin span {
  display: none;
}

.main .service-notes:before {
  content: "";
  position: absolute;
  left: 80px;
  top: 0;
  width: 64px;
  height: 3px;
  background-color: var(--key-color);
}
.main .service-notes .service-cat {
  color: var(--key-color);
  font-weight: bold;
}

.main .panel-service {
  margin-top: 50px;
}

@media (hover: hover) and (pointer: fine) {
  .map-service .map-pin:hover {
    transform: translateY(3px);
  }
}

@media screen and (max-width: 767px) {
  .map-service {
    margin-bottom: 26px;
  }
  .map-service .map-pin {
    width: 16px;
    height: 20px;
  }
  .map-service .map-pin.pin01 {
    left: calc(73.89% - 8px);
  }
  .map-service .map-pin.pin02 {
    left: calc(90.93% - 8px);
  }
  .map-service .map-pin.pin03 {
    left: calc(23.98% - 8px);
  }
  .map-service .map-pin.pin04 {
    left: calc(62.78% - 8px);
  }
  .map-service .map-pin.pin05 {
    left: calc(19.26% - 8px);
  }
  .map-service .map-pin.pin06 {
    left: calc(29.26% - 8px);
  }
  .map-service .map-pin.pin07 {
    left: calc(42.5% - 8px);
  }
  .map-service .map-pin.pin08 {
    left: calc(43.15% - 8px);
  }
  .map-service .map-pin.pin09 {
    left: calc(61.94% - 8px);
  }
  .map-service .map-pin.pin10 {
    left: calc(82.69% - 8px);
  }
  .main .service-notes:before {
    left: 32px;
  }
  .main .service-notes .service-cat {
    margin-bottom: 6px;
  }
  .main .service-notes .col-set {
    flex-direction: column-reverse;
    margin-top: 24px;
  }
  .main .service-notes h3 {
    margin: 8px 0 18px;
  }
  .main .panel-service .col2-3 {
    margin-bottom: 16px;
  }
}


/* ------- service - lower ------- */
#page-title.c_service.lower-level .page-title-body {
  display: flex;
}
#page-title.c_service.lower-level .title-text {
  flex: 1;
}
#page-title.c_service.lower-level .title-img {
  width: calc(50% - 20px);
  margin: 0 0 0 40px;
}
.main .page-title-body h1 + .h3 {
  margin: 28px 0 10px;
  font-weight: bold;
}

.main .flow-set.service-flow li .flow-body-wrap {
  height: 150px;
  line-height: 1.2;
}
.main .flow-set.service-flow li .flow-body {
  padding-top: 2px; 
}
.main .flow-set.service-flow li .flow-body .label span {
  display: inline-block;
  width: 4em;
  color: #fff;
  font-family: var(--txt-en);
  font-weight: 600;
  line-height: 20px;
  text-align: center;
  background-color: #c1c1c1;
  border-radius: 20px;
}
.main .flow-set.service-flow li .flow-body .icon {
  width: 50px;
  margin: 14px 0 12px;
  aspect-ratio: 1;
  background-color: #fff;
  border-radius: 100%;
}
.main .flow-set.service-flow li .flow-body .title {
  display: flex;
  align-items: center;
  height: 2.4em;
}

.main .service-flow-content	{
	position: relative;
  display: flex;
  align-items: center;
	padding: 15px 30px;
	border: 2px solid var(--line-color);
	border-radius: 8px;
	background-color: #fff;
}
.main .service-flow-content:first-child	{
	margin-top: 1.5em;
}
.main .service-flow-content:before,
.main .service-flow-content:after	{
  content: "";
	position: absolute;
	top: -16px;
  width: 14px;
  height: 16px;
  background-color: var(--line-color);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
}
.main .service-flow-content:after	{
	top: -11px;
	background-color: #fff;
}
.main .service-flow-content h3 {
  width: 140px;
  margin: 0 24px 0 0;
  padding: 8px 0;
  color: var(--key-color);
  font-size: 1.1333rem;
  letter-spacing: 0;
  line-height: 1.2;
  border: none;
  border-right: 1px solid var(--line-color);
}
.main .service-flow-content h3:before {
  content: none;
}
.main .service-flow-content h3 .num {
  display: inline-block;
  width: 4em;
  margin-bottom: 8px;
  color: #fff;
  font-family: var(--txt-en);
  font-size: 1rem;
  font-weight: 600;
  line-height: 20px;
  text-align: center;
  background-color: #c1c1c1;
  border-radius: 20px;
}
.main .service-flow-content .text {
  margin: 0;
  padding: 8px 0;
  flex: 1;
}

.main .menu-img-set .img .item > *:last-child {
  margin-bottom: 0;
}

@media screen and (min-width: 1080px), print {
}

@media screen and (max-width: 1079px) {
}
@media screen and (min-width: 768px), print {
  .main .flow-set.service-flow {
    padding-bottom: 100px;
  }
  .main .flow-set.service-flow li {
    width: 20%;
  }
  .main .service-flow-content {
    position: absolute;
    left: 4px;
    width: calc(100% - 8px);
    opacity: 0;
    transition: opacity var(--transition-time);
  }
  .main .flow-set.service-flow li .flow-body-wrap {
    margin-bottom: 32px;
    transition: transform var(--transition-time);
  }
  .main .flow-set.service-flow li:nth-child(1) .service-flow-content:before,
  .main .flow-set.service-flow li:nth-child(1) .service-flow-content:after	{
    left: calc(10% - 12px);
  }
  .main .flow-set.service-flow li:nth-child(2) .service-flow-content:before,
  .main .flow-set.service-flow li:nth-child(2) .service-flow-content:after	{
    left: calc(30% - 10px);
  }
  .main .flow-set.service-flow li:nth-child(3) .service-flow-content:before,
  .main .flow-set.service-flow li:nth-child(3) .service-flow-content:after	{
    left: calc(50% - 8px);
  }
  .main .flow-set.service-flow li:nth-child(4) .service-flow-content:before,
  .main .flow-set.service-flow li:nth-child(4) .service-flow-content:after	{
    left: calc(70% - 6px);
  }
  .main .flow-set.service-flow li:nth-child(5) .service-flow-content:before,
  .main .flow-set.service-flow li:nth-child(5) .service-flow-content:after	{
    left: calc(90% - 4px);
  }
  .main .flow-set.service-flow:not(:hover) li:nth-child(1) .flow-body-wrap + .service-flow-content,
  .main .flow-set.service-flow li .flow-body-wrap:hover + .service-flow-content {
    opacity: 1;
  }
  .main .flow-set.service-flow:not(:hover) li:nth-child(1) .flow-body-wrap,
  .main .flow-set.service-flow li .flow-body-wrap:hover  {
    transform: scale(1.2);
    z-index: 5;
  }
  .main .flow-set.service-flow:not(:hover) li:nth-child(1) .flow-body .icon img,
  .main .flow-set.service-flow li:hover .flow-body .icon img {
    filter: invert(17%) sepia(93%) saturate(6941%) hue-rotate(358deg) brightness(103%) contrast(111%);
  }
  
  .main .service-flow-content .icon {
    display: none;
  }
  
  .main .menu-img-set {
    display: flex;
  }
  .main .menu-img-set .text {
    padding-right: 80px;
    flex: 1;
  }
  .main .menu-img-set .img {
    width: 55.5%;
  }
  .main .menu-img-set .img .item {
    padding: 0 12px;
  }
}

@media screen and (max-width: 767px) {
  #page-title.c_service.lower-level .page-title-body {
    display: block;
    padding-bottom: 16px;
  }
  #page-title.c_service.lower-level .title-img {
    width: auto;
    margin: 32px 0 0;
  }
  
  .main .flow-set.service-flow {
    display: block;
    margin: 32px 0 0;
  }
  .main .flow-set.service-flow li {
    width: auto;
    margin: 0;
  }
  .main .flow-set.service-flow li .flow-body-wrap {
    display: none;
  }
  .main .service-flow-content {
    flex-wrap: wrap;
    padding: 20px 24px;
    margin-bottom: 16px;
    border: none;
    border-radius: 8px 8px 0 0;
    background-color: var(--main-bg-color);
  }
  .main .flow-set.service-flow li:not(:first-child) .service-flow-content {
    padding-top: 48px;
  }
  .main .service-flow-content:before,
  .main .service-flow-content:after {
    left: 0;
    width: 100%;
    height: 36px;
    background-color: var(--main-bg-color);
    clip-path: polygon(0 0, 50% 100%, 100% 0);
  }
  .main .service-flow-content:before {
    top: 0;
    background-color: #fff;
  }
  .main .service-flow-content:after {
    top: auto;
    bottom: -36px;
    z-index: 2;
  }
  .main .flow-set.service-flow li:first-child .service-flow-content:before,
  .main .flow-set.service-flow li:last-child .service-flow-content:after {
    content: none;
  }
  .main .service-flow-content .icon {
    width: 82px;
    margin: 0;
    padding: 0;
    aspect-ratio: 1;
    background-color: #fff;
    border-radius: 100%;
  }
  .main .service-flow-content .icon img {
    filter: invert(17%) sepia(93%) saturate(6941%) hue-rotate(358deg) brightness(103%) contrast(111%);
  }
  .main .service-flow-content h3 {
    width: calc(100% - 82px);
    margin: 0;
    padding: 0 0 0 24px;
    font-size: 1.4285rem;
    border: none;
  }
  .main .service-flow-content .text {
    margin-top: 6px;
  }
  
  .main .menu-img-set {
    margin-top: 32px;
  }
  .main .menu-img-set .img {
    margin-top: 42px;
  }
}


/* ------- sports - index ------- */
.main #page-mv.c_sports {
  position: relative;
  margin-bottom: 6px;
}
.main #page-mv.c_sports .sports-h1 {
  position: absolute;
  top: 0;
  left: 0;
  width: 600px;
  height: 150px;
}
.main #page-mv.c_sports .sports-h1:before {
  content: "";
  position: absolute;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: var(--key-color);
  clip-path: polygon(0 0, 0% 100%, 100% 0);
}
.main #page-mv.c_sports h1 {
  position: relative;
  padding: 34px 0 0 40px;
  color: #fff;
  font-size: 2rem;
  letter-spacing: 0.025em;
  line-height: 1;
}
.main #page-mv.c_sports h1 .en {
  font-family: var(--txt-en);
  font-size: 2.2346rem;
  font-weight: 600;
}
.main #page-mv.c_sports .inner {
  position: absolute;
  width: 100%;
  left: 0;
  bottom: 128px;
  padding: 0 5%;
}
.main #page-mv.c_sports .inner .lead {
  max-width: 1080px;
  margin: 0 auto;
  color: #fff;
  font-size: 4.2666rem;
  font-weight: bold;
  letter-spacing: 0.075em;
  line-height: 1.2;
}
.main #page-mv.c_sports .inner .lead ruby rt {
  font-size: 1.0666rem;
  letter-spacing: 0.2em;
  text-align: center;
}
.main #page-mv.c_sports .sports-mv-silde .item {
  width: 100%;
  height: 100vh;
  overflow: hidden;
}
.main #page-mv.c_sports .sports-mv-silde .item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.main #page-mv.c_sports .sports-mv-silde .slick-dots {
  width: auto;
  max-width: 1080px;
  margin: 16px auto 0;
  line-height: 0;
}
.main #page-mv.c_sports .sports-mv-silde .slick-dots li {
  width: 40px;
  height: 4px;
  margin: 0 4px;
  border-radius: 0;
}
.main #page-mv.c_sports .sports-mv-silde .credit {
  position: absolute;
  right: 25px;
  bottom: 20px;
  margin: 0;
  color: #fff;
  font-family: var(--txt-en);
  font-size: 1.0666rem;
  font-weight: 600;
  letter-spacing: 0.025em;
  line-height: 1.6;
  pointer-events: none;
}

.main .sports-about {
  padding-bottom: 0;
}
.main .sports-about:before {
  height: calc(100% - 5.4vw);
}
.main .sports-about h3 {
  padding: 0;
  font-size: 2.4rem;
  font-weight: bold;
  line-height: 1.7;
  border: none;
}
.main .sports-about h3:before {
  content: none;
}
.main .sports-about h3 strong {
  color: var(--key-color);
  font-size: 3rem;
}
.main .sports-about .lead {
  font-size: 1.2rem;
  line-height: 2.2;
}
.main .sports-about .about-img-unit {
  margin: 160px calc(50% - 50vw + 60px) 0;
}
.main .sports-about .about-img {
  position: relative;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
}
.main .sports-about .about-img .img {
  position: relative;
  overflow: clip;
  box-shadow: 0px 10px 30px 0px rgba(0, 0, 0, 0.1);
}
.main .sports-about .about-img .img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.main .sports-about .about-img .img01 {
  margin-top: -60px;
  width: 21%;
  aspect-ratio: 1.2944;
}
.main .sports-about .about-img .img01 img {
  object-position: right center;
}
.main .sports-about .about-img .img02 {
  margin-top: -30px;
  width: 13.7%;
  aspect-ratio: 0.75;
}
.main .sports-about .about-img .img03 {
  margin-top: -60px;
  width: 18.25%;
  aspect-ratio: 1;
}
.main .sports-about .about-img .img04 {
  width: 24.3%;
  aspect-ratio: 1.5;
}
.main .sports-about .about-img .img05 {
  margin-top: -70px;
  width: 11.35%;
  aspect-ratio: 0.62;
}

.main .sports-activity {
  padding: 100px 0 0;
  color: #fff;
}
.main .sports-activity:before {
  height: calc(100% - 160px);
  background: url("../images/bg_sports_activity_pc.jpg") no-repeat center top;
  background-size: cover;
}
.main .sports-activity:after {
  content: "";
  position: absolute;
  left: calc(50% - 50vw);
  top: 0;
  width: 100vw;
  height: calc(100% - 160px);
  background-image: linear-gradient(rgba(255,255,255,0) 76%, rgb(255,255,255) 100%);
  z-index: 0;
  pointer-events: none;
}
.main .sports-activity h3 {
  padding: 0;
  font-size: 2.4rem;
  line-height: 1.7;
  border: none;
}
.main .sports-activity h3:before {
  content: none;
}
.main .sports-activity .lead {
  font-size: 1.2rem;
  line-height: 2.2;
}
.main .sports-activity .athlete-index {
  display: flex;
  margin-top: 46px;
}
.main .sports-activity .athlete-index a {
  position: relative;
  display: block;
  width: 100%;
  color: #fff;
  background: none;
  z-index: 2;
}
.main .sports-activity .athlete-index a:after {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background-color: transparent;
  transition: background-color var(--transition-time);
}
.main .sports-activity .athlete-index .thumb {
  position: relative;
}
.main .sports-activity .athlete-index .text {
  position: absolute;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  bottom: 0;
  width: 100%;
  height: 180px;
  padding: 0 24px 20px;
  line-height: 1.6;
  overflow: clip;
}
.main .sports-activity .athlete-index .text:before {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  background-color: var(--key-color);
  background-image: linear-gradient(120deg, var(--key-color) 0%, #ea0000 27%, #d50000 50%);
  clip-path: polygon(0 36%, 100% 0, 100% 100%, 0% 100%);
}
.main .sports-activity .athlete-index .text:after {
  content: "";
  position: absolute;
  right: 24px;
  bottom: 24px;
  width: 40px;
  height: 40px;
  border-radius: 100%;
  background: var(--base-color) url(../images/icon_arrow_wh.svg) no-repeat center;
}
.main .sports-activity .athlete-index .text p {
  position: relative;
  font-weight: bold;
}
.main .sports-activity .athlete-index .title {
  margin: 0;
  color: var(--base-color);
  font-size: 13px;
}
.main .sports-activity .athlete-index .name {
  margin: 5px 0 0;
  font-size: 18px;
}
.main .sports-activity .athlete-index .bg-img {
  position: absolute;
  display: block;
  left: calc(50% - 50vw);
  top: 0;
  width: 100vw;
  height: calc(100% - 160px);
  overflow: clip;
  z-index: -1;
  opacity: 0;
  visibility: hidden;
  transition: opacity var(--transition-time);
}
.main .sports-activity .athlete-index .bg-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}

.main .sports-history {
  padding: 114px 0 84px;
}
.main .sports-history:before {
  background: var(--main-bg-color) url("../images/bg_sports_history_pc.jpg") no-repeat center bottom;
  background-size: 100% auto;
}
.main .sports-history:after {
  content: "";
  position: absolute;
  left: calc(50% - 50vw);
  top: 0;
  width: 400px;
  height: 100px;
  background-color: var(--key-color);
  clip-path: polygon(0 0, 0% 100%, 100% 0);
}
.main .sports-history h2 {
  padding: 0;
  font-size: 2.4rem;
  line-height: 1.2;
}
.main .sports-history h2:before {
  content: none;
}
.main .sports-history h2 .num {
  color: var(--key-color);
  font-family: var(--txt-en);
  font-size: 6.4rem;
}
.main .sports-history .lead {
  font-size: 1.2rem;
  line-height: 2.2;
}
.main .sports-history .sports-index-timeline {
  position: relative;
  margin: 80px 0 0 40px;
  padding: 0;
}
.main .sports-history .sports-index-timeline:before,
.main .sports-history .sports-index-timeline:after {
  content: "";
  position: absolute;
  left: 148px;
  width: 4px;
  z-index: -1;
}
.main .sports-history .sports-index-timeline:before {
  top: 20px;
  height: calc(100% - 50px);
  background-color: var(--key-color);
}
.main .sports-history .sports-index-timeline:after {
  bottom: 0;
  height: 30px;
  background-image: linear-gradient(to bottom, transparent, transparent 6px, var(--key-color) 6px, var(--key-color) 10px);
  background-repeat: repeat-y;
  background-size: 4px 10px;
}
.main .sports-history .sports-index-timeline li {
  display: flex;
  margin: 0;
  padding: 0 0 64px;
  font-weight: bold;
  letter-spacing: 0.075em;
}
.main .sports-history .sports-index-timeline li:before {
  left: 140px;
  top: 12px;
  width: 20px;
  height: 20px;
  border: 4px solid var(--key-color);
  background-color: #fff;
}
.main .sports-history .sports-index-timeline li:first-child {
  padding-bottom: 32px;
}
.main .sports-history .sports-index-timeline .timeline-year {
  width: 160px;
  font-size: 1.0666rem;
}
.main .sports-history .sports-index-timeline .timeline-year .num {
  display: inline-block;
  margin-right: 8px;
  color: var(--key-color);
  font-family: var(--txt-en);
  font-size: 2em;
  font-weight: 600;
  letter-spacing: 0.025em;
  line-height: 1;
  vertical-align: text-bottom;
}
.main .sports-history .sports-index-timeline .timeline-text {
  padding: 8px 0 0 1em;
  font-size: 1.2rem;
  flex: 1;
}

@media screen {
  .main .sports-history .sports-index-timeline.js-inview li {
    opacity: 0;
    transform: translateY(30px);
  }
  .main .sports-history .sports-index-timeline.js-inview.active li {
    opacity: 1;
    transform: translateY(0);
    transition: var(--transition-time);
  }
  .main .sports-history .sports-index-timeline.js-inview.active li:nth-child(2) {
    transition-delay: .2s;
  }
  .main .sports-history .sports-index-timeline.js-inview.active li:nth-child(3) {
    transition-delay: .4s;
  }
  .main .sports-history .sports-index-timeline.js-inview.active li:nth-child(4) {
    transition-delay: .6s;
  }
  .main .sports-history .sports-index-timeline.js-inview.active li:nth-child(5) {
    transition-delay: .8s;
  }
  .main .sports-history .sports-index-timeline.js-inview.active li:nth-child(6) {
    transition-delay: 1s;
  }
  .main .sports-history .sports-index-timeline.js-inview.active li:nth-child(7) {
    transition-delay: 1.2s;
  }
  .main .sports-history .sports-index-timeline.js-inview.active li:nth-child(8) {
    transition-delay: 1.4s;
  }
}

@media screen and (min-width: 768px) and (hover: hover) and (pointer: fine) {
  .main .sports-activity .athlete-index:hover a:not(:hover):after {
    background-color: rgba(0,0,0,0.4);
  }
  .main .sports-activity .athlete-index a:hover {
    transform: scale(1.1);
    z-index: 3;
  }
  .main .sports-activity .athlete-index a:hover + .bg-img {
    opacity: 1;
    visibility: visible;
  }
}

@media screen and (max-width: 1079px) {
  .main #page-mv.c_sports {
    padding-top: 74px;
  }
  .main #page-mv.c_sports .sports-h1 {
    padding-top: 74px;
  }
  .main #page-mv.c_sports .sports-mv-silde .item {
    height: calc(100vh - 74px);
  }
  .main .sports-about:before {
    height: calc(100% - 7.2vw);
  }
  .main .sports-about .about-img-unit {
    margin-left: -5vw;
    margin-right: -5vw;
  }
  .main .sports-history .sports-index-timeline {
    margin-left: 0;
  }
}

@media screen and (min-width: 768px) and (max-width: 959px) {
  .main .sports-activity .athlete-index .title {
    font-size: 1.3vw;
  }
  .main .sports-activity .athlete-index .name {
    display: flex;
    align-items: center;
    min-height: 40px;
    font-size: 1.5vw;
  }
}

@media screen and (max-width: 767px) {
  .main #page-mv.c_sports .sports-h1 {
    width: 300px;
    height: 75px;
  }
  .main #page-mv.c_sports h1 {
    padding: 18px 0 0 20px;
    font-size: 1.0775rem;
  }
  .main #page-mv.c_sports h1 .en {
    font-size: 1.1971rem;
  }
  .main #page-mv.c_sports .inner {
    bottom: 54px;
  }
  .main #page-mv.c_sports .inner .lead {
    font-size: 2.28576rem;
  }
  .main #page-mv.c_sports .inner .lead ruby rt {
    font-size: 10px;
  }
  .main #page-mv.c_sports .sports-mv-silde .item {
    height: auto;
  }
  .main #page-mv.c_sports .sports-mv-silde .item img {
    height: auto;
  }
  .main #page-mv.c_sports .sports-mv-silde .credit {
    right: 20px;
    bottom: 16px;
    font-size: 10px;
  }

  .main .sports-about:before {
    height: calc(100% - 15.2vw);
  }
  .main .sports-about h3 {
    margin-bottom: 22px;
    font-size: 1.7142rem;
  }
  .main .sports-about h3 strong {
    font-size: 2.2857rem;
  }
  .main .sports-about .lead {
    font-size: 1rem;
  }
  .main .sports-about .about-img-unit {
    margin-top: 80px;
  }
  .main .sports-about .about-img .img01 {
    margin-top: -7.6vw;
    width: 11.5%;
    aspect-ratio: 0.4;
  }
  .main .sports-about .about-img .img02 {
    margin-top: -3.8vw;
    width: 24.1%;
  }
  .main .sports-about .about-img .img03 {
    margin-top: -7.6vw;
    width: 32.1%;
  }
  .main .sports-about .about-img .img04 {
    width: 17.3%;
    aspect-ratio: 0.61;
  }
  .main .sports-about .about-img .img04 img {
    object-position: 15% center;
  }
  .main .sports-about .about-img .img05 {
    display: none;
  }
  
  .main .sports-activity {
    padding: 54px 0 0;
  }
  .main .sports-activity:before {
    height: 100%;
    background-image: url("../images/bg_sports_activity_sp.jpg");
    background-size: contain;
  }
  .main .sports-activity:after {
    content: none;
  }
  .main .sports-activity h3 {
    margin-bottom: 22px;
    font-size: 1.7142rem;
  }
  .main .sports-activity .lead {
    font-size: 1rem;
  }
  .main .sports-activity .athlete-index {
    display: block;
    margin-top: 30px;
  }
  .main .sports-activity .athlete-index .item {
    margin-top: 20px;
  }
  .main .sports-activity .athlete-index .text:before {
    clip-path: polygon(0 55%, 100% 0, 100% 100%, 0% 100%);
  }
  .main .sports-activity .athlete-index .title {
    font-size: 12px;
  }
  .main .sports-activity .athlete-index .bg-img {
    display: none;
  }
  
  .main .sports-history {
    padding: 60px 0 10px;
  }
  .main .sports-history:before {
    background-image: url("../images/bg_sports_history_sp.jpg");
  }
  .main .sports-history:after {
    width: 200px;
    height: 50px;
  }
  .main .sports-history h2 {
    font-size: 1.7142rem;
  }
  .main .sports-history h2 .num {
    font-size: 4.4642rem;
  }
  .main .sports-history .lead {
    font-size: 1rem;
  }
  .main .sports-history .sports-index-timeline {
    margin: 0;
  }
  .main .sports-history .sports-index-timeline:before,
  .main .sports-history .sports-index-timeline:after {
    left: 118px;
  }
  .main .sports-history .sports-index-timeline li {
    padding-bottom: 56px;
  }
  .main .sports-history .sports-index-timeline li:first-child {
    padding-bottom: 28px;
  }
  .main .sports-history .sports-index-timeline li:before {
    left: 110px;
    top: 5px;
  }
  .main .sports-history .sports-index-timeline .timeline-year {
    width: 130px;
    font-size: 12px;
  }
  .main .sports-history .sports-index-timeline .timeline-text {
    padding-top: 4px;
    font-size: 13px;
  }
}


/* ------- sports - lower ------- */
.main .sports-message {
  position: relative;
  margin: 120px 0 0;
  padding: 160px 60px 50px;
  text-align: center;
  background: var(--main-bg-color) url("../images/logo.svg") no-repeat center 48px;
  background-size: 134px auto;
}
.main .img-set + .sports-message {
  margin-top: 80px;
}
.main .sports-message:before,
.main .sports-message:after {
  content: "";
  position: absolute;
  width: 240px;
  height: 60px;
  background-color: var(--key-color);
}
.main .sports-message:before {
  left: 0;
  top: 0;
  clip-path: polygon(0 0, 0% 100%, 100% 0);
}
.main .sports-message:after {
  right: 0;
  bottom: 0;
  clip-path: polygon(0 100%, 100% 100%, 100% 0);
}
.main .sports-message .h4 {
  margin: 0;
  font-weight: bold;
  line-height: 1.6;
}

@media screen and (max-width: 767px) {
  .main .sports-message {
    margin-top: 80px;
    padding: 96px 20px 30px;
    background-position: center 30px;
    background-size: 72px auto;
  }
  .main .img-set + .sports-message {
    margin-top: 66px;
  }
  .main .sports-message:before,
  .main .sports-message:after {
    width: 120px;
    height: 30px;
  }
}

.main .sitemap-body {
  display: flex;
  flex-wrap: wrap;
  margin: -20px 0 0;
}
.main h2 + .sitemap-body {
  margin-top: 45px;
}
.main .sitemap-body > ul {
  min-width: 50%;
  margin: 0;
  flex: 1;
}
.main .sitemap-body > ul > li {
  margin: 20px 0;
}
.main .sitemap-body > ul ul {
  margin: 0 0 38px;
}
.main .sitemap-body > ul ul li {
  margin: 12px 0;
}
.main .sitemap-body li a {
  color: var(--base-color);
}


@media screen and (max-width: 767px) {
  .main .sitemap-body {
    display: block;
  }
  .main .sitemap-body > ul {
    min-width: 0;
  }
}

@media (hover: hover) and (pointer: fine) {
  .main .sitemap-body li a:hover {
    color: var(--key-color);
  }
}


/*---------------------------------------------
	animation
  ---------------------------------------------*/
@media screen {
  .main .js-inview.js-fadein-up {
    opacity: 0;  
    transform: translateY(80px);
    transition: .8s;
  }
  .main .js-inview.js-fadein-up.active {
    opacity: 1;  
    transform: translateY(0);
  }
}

