@charset "UTF-8";
/* http://meyerweb.com/eric/tools/css/reset/
   v2.0 | 20110126
   License: none (public domain)
*/
@import url("https://fonts.googleapis.com/css2?family=Jost:wght@500;700&amp;display=swap");
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video, ::before, ::after {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
  box-sizing: border-box;
}

/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
  display: block;
}

body {
  line-height: 1;
}

ol, ul {
  list-style: none;
}

blockquote, q {
  quotes: none;
}

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

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

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

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

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

.slick-track {
  position: relative;
  left: 0;
  top: 0;
  display: block;
}
.slick-track::before, .slick-track::after {
  content: "";
  display: table;
}
.slick-track::after {
  clear: both;
}
.slick-loading .slick-track {
  visibility: hidden;
}

.slick-slide {
  float: left;
  height: 100%;
  min-height: 1px;
  display: none;
}
[dir=rtl] .slick-slide {
  float: right;
}
.slick-slide img {
  display: block;
  height: auto;
}
.slick-slide.slick-loading img {
  display: none;
}
.slick-slide.dragging img {
  pointer-events: none;
}
.slick-initialized .slick-slide {
  display: block;
}
.slick-loading .slick-slide {
  visibility: hidden;
}
.slick-vertical .slick-slide {
  display: block;
  height: auto;
  border: 1px solid transparent;
}

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

/* =========================================================
animation
========================================================= */
.inview {
  transition: all 1s;
  opacity: 0;
}
.inview.show {
  opacity: 1;
}

.marquee_title {
  position: relative;
}

.marquee_wrap {
  opacity: 1;
  animation: marquee 30s linear infinite;
  display: flex;
  position: static;
  transform: translate(-50%, 0%);
  white-space: nowrap;
  transition: all 0.5s;
}
@media screen and (max-width: 1024px) {
  .marquee_wrap {
    animation: marquee 15s linear infinite;
  }
}

.marquee {
  position: static;
  color: rgba(255, 255, 255, 0.3);
  font-size: 9rem;
  line-height: 1.4;
  letter-spacing: 1px;
  margin-left: 1em;
}
@media screen and (max-width: 1024px) {
  .marquee {
    font-size: 5.2rem;
  }
}
@media screen and (max-width: 320px) {
  .marquee {
    font-size: 4.5rem;
  }
}

@keyframes marquee {
  0% {
    transform: translate(-40%, 0%);
  }
  100% {
    transform: translate(-60%, 0%);
  }
}
/* =========================================================
first_fadein
========================================================= */
.first_fadein {
  position: fixed;
  bottom: 0;
  left: 0;
  height: 100%;
  width: 100%;
  background: #FFF;
  z-index: 999;
  transition: height 1s ease-in-out;
}

/* =========================================================
見出し
========================================================= */
.secTitle {
  display: flex;
  align-items: center;
  font-size: 4.4rem;
  line-height: 1.3;
  letter-spacing: 2.5px;
  margin: 0 0 30px;
  overflow: hidden;
}
@media screen and (max-width: 1024px) {
  .secTitle {
    flex-wrap: wrap;
    font-size: 4.6rem;
    margin: 0 0 20px;
  }
}
@media screen and (max-width: 320px) {
  .secTitle {
    font-size: 4rem;
  }
}
.secTitle.large {
  font-size: 8rem;
}
@media screen and (max-width: 1024px) {
  .secTitle.large {
    font-size: 4.6rem;
  }
}
@media screen and (max-width: 320px) {
  .secTitle.large {
    font-size: 4rem;
  }
}
.secTitle.small {
  font-size: 3rem;
}
@media screen and (max-width: 1024px) {
  .secTitle.small {
    font-size: 3.4rem;
  }
}
@media screen and (max-width: 1024px) {
  .secTitle .text_en {
    width: 100%;
    margin: 0 0 10px;
  }
}
.secTitle .text_jp {
  font-size: 1.2rem;
  font-weight: 600;
  color: #a3a3a3;
  letter-spacing: 0;
}
@media screen and (max-width: 1024px) {
  .secTitle .text_jp {
    display: block;
    font-size: 1.3rem;
  }
}
.secTitle .line {
  display: block;
  position: relative;
  width: 60px;
  height: 1px;
  margin: 0 10px;
}
@media screen and (max-width: 1024px) {
  .secTitle .line {
    margin: 0 10px 0 0;
  }
}
.secTitle .line::before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  width: 60px;
  height: 1px;
  background: #d7d7d7;
}
.secTitle.white .text_en,
.secTitle.white .text_jp {
  color: #fff;
}
.secTitle.white .line::before {
  background: #fff;
}
.secTitle.long {
  align-items: flex-end;
}
.secTitle.long .text_jp {
  margin-bottom: 2.2rem;
}
@media screen and (max-width: 1024px) {
  .secTitle.long .text_jp {
    margin-bottom: 2.3rem;
  }
}
@media screen and (max-width: 320px) {
  .secTitle.long .text_jp {
    margin-bottom: 2rem;
  }
}
.secTitle.long.large .text_jp {
  margin-bottom: 4rem;
}
@media screen and (max-width: 1024px) {
  .secTitle.long.large .text_jp {
    margin-bottom: 2.3rem;
  }
}
@media screen and (max-width: 320px) {
  .secTitle.long.large .text_jp {
    margin-bottom: 2rem;
  }
}
.secTitle.long.small .text_jp {
  margin-bottom: 1.5rem;
}
@media screen and (max-width: 1024px) {
  .secTitle.long.small .text_jp {
    margin-bottom: 1.7rem;
  }
}
.secTitle.long .line::before {
  top: auto;
  bottom: 0.6em;
}
.secTitle.inview {
  opacity: 1;
}
.secTitle.inview .text_en {
  transform: translateY(100%);
  transition: transform 0.5s;
}
.secTitle.inview .text_jp {
  opacity: 0;
  transition: opacity 0.5s;
  transition-delay: 1.3s;
}
.secTitle.inview .line::before {
  width: 0;
  transition: width 0.5s;
  transition-delay: 0.8s;
}
.secTitle.inview.show .text_en {
  transform: translateY(0);
}
.secTitle.inview.show .text_jp {
  opacity: 1;
}
.secTitle.inview.show .line::before {
  width: 60px;
}

.secTitle02 {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  position: relative;
  font-size: 4rem;
  line-height: 1.8;
  margin: 0 0 30px;
}
@media screen and (max-width: 1024px) {
  .secTitle02 {
    font-size: 2.9rem;
    margin: 0 0 20px;
  }
}
@media screen and (max-width: 320px) {
  .secTitle02 {
    font-size: 2.5rem;
  }
}
.secTitle02.large {
  font-size: 9.1rem;
  line-height: 1.3;
}
@media screen and (max-width: 1024px) {
  .secTitle02.large {
    font-size: 4.8rem;
  }
}
@media screen and (max-width: 320px) {
  .secTitle02.large {
    font-size: 4.1rem;
  }
}
.secTitle02.small {
  font-size: 2.4rem;
}
@media screen and (max-width: 1024px) {
  .secTitle02.small {
    font-size: 2.3rem;
  }
}
@media screen and (max-width: 320px) {
  .secTitle02.small {
    font-size: 2rem;
  }
}
.secTitle02 .mincho,
.secTitle02 .gothic {
  display: block;
  width: 100%;
  margin: 0.5em 1em 0;
  line-height: 1.8;
}
@media screen and (max-width: 1024px) {
  .secTitle02 .mincho,
  .secTitle02 .gothic {
    line-height: 1.5;
  }
}
.secTitle02 .gothic {
  font-family: inherit;
  font-weight: 600;
}
.secTitle02 .text_jp {
  font-size: 1.2rem;
  font-weight: 600;
  color: #c8102e;
  letter-spacing: 0;
}
@media screen and (max-width: 1024px) {
  .secTitle02 .text_jp {
    display: block;
    font-size: 1.3rem;
  }
}
.secTitle02 .line {
  display: block;
  position: relative;
  width: 60px;
  height: 1px;
  margin: 0 10px;
}
.secTitle02 .line::before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  width: 60px;
  height: 1px;
  background: #d7d7d7;
}
.secTitle02.white .mincho,
.secTitle02.white .gothic,
.secTitle02.white .text_jp {
  color: #fff;
}
.secTitle02.white .line::before {
  background: #fff;
}
.secTitle02.white .quote01,
.secTitle02.white .quote02 {
  fill: #fff;
}
.secTitle02.noJP {
  align-items: flex-start;
}
.secTitle02.noJP .mincho,
.secTitle02.noJP .gothic {
  display: inline;
  width: auto;
  margin: 0 0.5em;
}
.secTitle02.inview:not(.noQuote) {
  opacity: 1;
}
.secTitle02.inview:not(.noQuote) .text_jp {
  opacity: 0;
  transition: opacity 0.5s;
  transition-delay: 0.5s;
}
.secTitle02.inview:not(.noQuote) .line::before {
  width: 0;
  transition: width 0.5s;
}
.secTitle02.inview:not(.noQuote) .mincho,
.secTitle02.inview:not(.noQuote) .gothic {
  transition-delay: 1s;
}
.secTitle02.inview:not(.noQuote).noJP .mincho,
.secTitle02.inview:not(.noQuote).noJP .gothic {
  transition-delay: 0s;
}
.secTitle02.inview:not(.noQuote).show .text_jp {
  opacity: 1;
}
.secTitle02.inview:not(.noQuote).show .line::before {
  width: 60px;
}
.secTitle02 .quote01,
.secTitle02 .quote02 {
  fill: #c8102e;
  width: 24px;
  height: 19px;
}
@media screen and (max-width: 1024px) {
  .secTitle02 .quote01,
  .secTitle02 .quote02 {
    width: 14px;
    height: 11px;
  }
}
.secTitle02 .quote02 {
  position: absolute;
  right: 0;
  bottom: 1em;
}

.secTitle03 {
  font-size: 2.4rem;
  font-weight: 600;
  letter-spacing: 2.5px;
  line-height: 1.7125;
  margin: 0 0 30px;
}
@media screen and (max-width: 1024px) {
  .secTitle03 {
    font-size: 2.3rem;
    margin: 0 0 20px;
  }
}
@media screen and (max-width: 320px) {
  .secTitle03 {
    font-size: 2rem;
  }
}

.secTitle04 {
  font-size: 3rem;
  line-height: 1.8;
  writing-mode: vertical-rl;
  font-feature-settings: normal;
}
@media screen and (max-width: 1024px) {
  .secTitle04 {
    font-size: 2.3rem;
  }
}
@media screen and (max-width: 320px) {
  .secTitle04 {
    font-size: 2rem;
  }
}

.leadText {
  margin: 0 0 40px;
}
@media screen and (max-width: 1024px) {
  .leadText {
    margin: 0 0 30px;
  }
}
.leadText.center {
  text-align: center;
}
.leadText.white {
  color: #fff;
}

strong {
  font-weight: bold;
}
@media screen and (max-width: 1024px) {
  strong {
    font-weight: 600;
  }
}

.c_blue {
  color: #c8102e;
}

.c_yellow {
  color: #191919;
}

.c_red {
  color: #c8102e;
}

.circle {
  display: inline-block;
  position: relative;
  width: 70px;
  height: 70px;
  border: 1px solid #d7d7d7;
  border-radius: 50%;
  transition: all 0.5s;
}
@media screen and (max-width: 1024px) {
  .circle {
    width: 45px;
    height: 45px;
  }
}
.circle.white {
  border-color: #fff;
}

.allMark {
  position: relative;
  width: 70px;
  height: 70px;
}
@media screen and (max-width: 1024px) {
  .allMark {
    width: 45px;
    height: 45px;
  }
}
.allMark::after {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  width: 15px;
  height: 6px;
  border-top: 1px solid #c8102e;
  border-bottom: 1px solid #c8102e;
  transition: all 0.5s;
}
.allMark.white::after {
  border-top-color: #fff;
  border-bottom-color: #fff;
}

.circle .allMark {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
}
.circle.white .allMark::after {
  border-top-color: #fff;
  border-bottom-color: #fff;
}

.arrowMark {
  position: relative;
}
.arrowMark::after {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  bottom: 0;
  left: -3px;
  right: 0;
  margin: auto;
  width: 6px;
  height: 6px;
  border-top: 1px solid #c8102e;
  border-right: 1px solid #c8102e;
  transform: rotate(45deg) translate(0px, 0px);
  transition: all 0.5s;
}
.arrowMark.down {
  transform: rotate(90deg);
}
.arrowMark.white::after {
  border-top-color: #fff;
  border-right-color: #fff;
}

.circle .arrowMark {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
}
.circle.white .arrowMark::after {
  border-top-color: #fff;
  border-right-color: #fff;
}

a:hover .arrowMark::after,
.btnLink:hover .arrowMark::after,
.slick-arrow:hover .arrowMark::after,
.globalHeaderNav .gnavList > li .hoverBtn:hover .arrowMark::after,
.globalNav .gnavList > li .nestBtn:hover .arrowMark::after {
  animation: arrowafter 0.4s cubic-bezier(0.215, 0.61, 0.355, 1) forwards;
}

@keyframes arrowafter {
  0% {
    transform: rotate(45deg) translate(0px, 0px);
  }
  15% {
    border-top-color: inherit;
    border-right-color: inherit;
  }
  50% {
    transform: rotate(45deg) translate(9px, -9px);
    border-top-color: transparent;
    border-right-color: transparent;
  }
  50.01% {
    transform: rotate(45deg) translate(-6px, 6px);
    border-top-color: inherit;
    border-right-color: inherit;
  }
  100% {
    transform: rotate(45deg) translate(0px, 0px);
  }
}
.skewList {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  width: 100%;
  padding: 10px 0 0 15px;
  margin: 0 0 10px;
}
@media screen and (max-width: 1024px) {
  .skewList {
    width: calc(100% + 10px);
    padding: 10px 0 0 10px;
    margin: 0 0 10px;
  }
}
.skewList li {
  display: flex;
  flex-direction: column;
  position: relative;
  background: #272727;
  width: calc(33.3333333333% - 40px);
  padding: 21px 20px;
  transform: skewX(-11deg);
}
@media screen and (max-width: 1024px) {
  .skewList li {
    width: calc(100% - 10px);
    padding: 20px 10px;
    transform: skewX(-5deg);
  }
}
.skewList li:nth-child(n+4) {
  margin-top: 40px;
}
@media screen and (max-width: 1024px) {
  .skewList li:nth-child(n+4) {
    margin-top: 0;
  }
}
@media screen and (max-width: 1024px) {
  .skewList li:not(:first-child) {
    margin-top: 30px;
  }
}
.skewList li::before {
  content: "";
  display: block;
  position: absolute;
  top: -10px;
  left: -15px;
  width: 100%;
  height: 100%;
  background: #fff;
}
@media screen and (max-width: 1024px) {
  .skewList li::before {
    top: -10px;
    left: -10px;
  }
}
.skewList li.bdRed::before {
  border: 1px solid #c8102e;
}
.skewList li.shadowRed {
  background: #c8102e;
}
.skewList li .skewInner {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  padding: 10px 36px;
  margin: -30px 0 0 -45px;
  transform: skewX(11deg);
}
@media screen and (max-width: 1024px) {
  .skewList li .skewInner {
    padding: 10px 25px;
    margin: -30px 0 0 -30px;
    transform: skewX(5deg);
  }
}
.skewList.large {
  width: calc(100% - 45px);
  padding: 20px 0 0 60px;
  margin: 0 0 20px;
}
@media screen and (max-width: 1024px) {
  .skewList.large {
    width: calc(100% + 10px);
    padding: 10px 0 0 10px;
    margin: 0 0 10px;
  }
}
.skewList.large li {
  width: 100%;
  padding: 50px 40px;
  transform: skewX(-40deg);
}
@media screen and (max-width: 1024px) {
  .skewList.large li {
    width: calc(100% - 10px);
    padding: 20px 10px;
    transform: skewX(-5deg);
  }
}
.skewList.large li:nth-child(n+4), .skewList.large li:nth-child(n+3) {
  margin-top: 0;
}
.skewList.large li:not(:first-child) {
  margin-top: 40px;
}
.skewList.large li::before {
  top: -20px;
  left: -30px;
}
@media screen and (max-width: 1024px) {
  .skewList.large li::before {
    top: -10px;
    left: -10px;
  }
}
.skewList.large .skewInner {
  padding: 20px 60px;
  margin: -60px 0 0 -90px;
  transform: skewX(40deg);
}
@media screen and (max-width: 1024px) {
  .skewList.large .skewInner {
    padding: 10px 25px;
    margin: -30px 0 0 -30px;
    transform: skewX(5deg);
  }
}

/* =========================================================
block
========================================================= */
.bgGray {
  background: #f9f9f9;
}

.bgRed {
  background: #c8102e;
}

.contentsBlock {
  background: #fff;
  padding: 70px 95px 90px;
}
@media screen and (max-width: 1024px) {
  .contentsBlock {
    padding: 30px 12% 30px;
  }
}
.contentsBlock + .contentsBlock {
  margin-top: 50px;
}
@media screen and (max-width: 1024px) {
  .contentsBlock + .contentsBlock {
    margin-top: 30px;
  }
}
.contentsBlock p:not([class]) a {
  color: #c8102e;
  text-decoration: underline;
}
.contentsBlock p:not([class]) a:hover {
  text-decoration: none;
}

/* =========================================================
リンクボタン
========================================================= */
a {
  color: inherit;
  text-decoration: none;
  transition: all 0.5s;
}
a:hover {
  opacity: 0.8;
}
@media screen and (max-width: 1024px) {
  a:hover {
    opacity: 1;
  }
}
@media screen and (min-width: 1025px) {
  a[href^="tel:"] {
    pointer-events: none;
  }
}
a svg {
  transition: all 0.5s;
}

p:not([class]) a {
  color: inherit;
  text-decoration: none;
}
p:not([class]) a:hover {
  text-decoration: underline;
}

.btn {
  margin: 30px 0;
  font-size: 0;
}
@media screen and (max-width: 1024px) {
  .btn {
    margin: 20px 0;
  }
}
.btn a,
.btn .btnLink {
  position: relative;
  display: flex;
  align-items: center;
  max-width: 100%;
  width: 180px;
  height: 70px;
  line-height: 70px;
  text-align: center;
  text-decoration: none;
  font-size: 1.2rem;
  font-weight: 600;
  transition: all 0.5s;
}
@media screen and (max-width: 1024px) {
  .btn a,
  .btn .btnLink {
    width: 100%;
    font-size: 1.4rem;
    height: 45px;
    line-height: 45px;
  }
}
.btn a .circle,
.btn .btnLink .circle {
  margin-right: 25px;
}
@media screen and (max-width: 1024px) {
  .btn a .circle,
  .btn .btnLink .circle {
    margin-right: 10px;
  }
}
.btn a:hover .circle,
.btn .btnLink:hover .circle {
  border-color: #272727;
}
.btn a:hover .circle.white,
.btn .btnLink:hover .circle.white {
  border-color: #fff;
}
.btn a svg,
.btn .btnLink svg {
  fill: #fff;
  display: inline-block;
  vertical-align: middle;
  width: 16px;
  height: 16px;
  margin: 0 20px 3px -10px;
}
@media screen and (max-width: 1024px) {
  .btn a svg,
  .btn .btnLink svg {
    margin: 0 15px 2px -10px;
  }
}
.btn.center a,
.btn.center .btnLink {
  justify-content: center;
  width: auto;
}
.btn.right {
  text-align: right;
}
.btn.white a,
.btn.white .btnLink {
  color: #fff;
}
.btn.white a .circle,
.btn.white .btnLink .circle {
  border-color: #fff;
}
.btn.white a .circle .arrowMark::after,
.btn.white .btnLink .circle .arrowMark::after {
  border-top-color: #fff;
  border-right-color: #fff;
}
.btn a.external {
  background: url("../img/common/icon_external.svg") no-repeat center 5px/13px auto;
}
.btn a[href$=".pdf"] {
  background: url("../img/common/icon_pdf.svg") no-repeat center right 5px/38px auto;
}

.btnList {
  display: flex;
  flex-wrap: wrap;
  margin: 30px 0;
}
@media screen and (max-width: 1024px) {
  .btnList {
    width: 100%;
    margin: 20px 0;
  }
}
.btnList li {
  margin: 0;
}
@media screen and (max-width: 1024px) {
  .btnList li {
    width: calc(50% - 10px);
    margin: 5px 0;
  }
}
.btnList li + li {
  margin-left: 20px;
}
.btnList.vertical {
  display: block;
}
.btnList.vertical li + li {
  margin: 15px 0 0;
}

.textLink {
  color: #c8102e;
  text-decoration: none;
}
.textLink:hover {
  opacity: 1;
  text-decoration: underline;
}

/* =========================================================
リスト
========================================================= */
.checkPointList {
  color: #3b4043;
  font-size: 1.8rem;
  font-weight: 600;
}
@media screen and (max-width: 1024px) {
  .checkPointList {
    font-size: 1.6rem;
    font-weight: 600;
  }
}
.checkPointList li {
  margin-left: 35px;
  text-indent: -35px;
}
@media screen and (max-width: 1024px) {
  .checkPointList li {
    line-height: 1.8;
    margin-left: 25px;
    text-indent: -25px;
  }
  .checkPointList li + li {
    margin-top: 5px;
  }
}
.checkPointList li .icon {
  display: inline-flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  vertical-align: middle;
  border-radius: 50%;
  background: #c8102e;
  width: 20px;
  height: 20px;
  margin: 0 10px 3px 0;
}
@media screen and (max-width: 1024px) {
  .checkPointList li .icon {
    width: 18px;
    height: 18px;
    margin: 0 5px 3px 0;
  }
}
.checkPointList li svg {
  fill: #fff;
  width: 10px;
  height: 7px;
}

.anchorList {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
}
@media screen and (max-width: 1024px) {
  .anchorList {
    justify-content: space-between;
  }
}
.anchorList li {
  border-bottom: 1px solid #d7d7d7;
  width: calc(25% - 3.75px);
  margin: 0 5px 0 0;
  transition: border 0.5s;
}
@media screen and (max-width: 1024px) {
  .anchorList li {
    width: calc(50% - 2px);
    margin: 5px 0 0;
  }
}
.anchorList li:nth-child(4n) {
  margin-right: 0;
}
@media screen and (max-width: 1024px) {
  .anchorList li:last-child:nth-child(odd) {
    width: 100%;
  }
}
.anchorList li:hover {
  border-color: #3b4043;
}
.anchorList li a {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  height: 65px;
  line-height: 1.7;
  font-weight: 600;
}
@media screen and (max-width: 1024px) {
  .anchorList li a {
    display: flex;
    flex-direction: column;
    justify-content: center;
    height: 55px;
    line-height: 1.5;
    font-weight: 600;
  }
}
.anchorList li svg {
  position: absolute;
  top: 0;
  bottom: 0;
  right: 10px;
  width: 20px;
  height: 22px;
  margin: auto;
}
@media screen and (max-width: 1024px) {
  .anchorList li svg {
    width: 10px;
    height: 11px;
  }
}

/* =========================================================
table
========================================================= */
.table01 {
  border-top: 1px solid #d7d7d7;
  width: 100%;
  margin: 30px 0;
}
.table01:first-child {
  margin-top: 0;
}
.table01:last-child {
  margin-bottom: 0;
}
.table01 th,
.table01 td {
  border-bottom: 1px solid #d7d7d7;
  padding: 20px 40px;
  text-align: left;
}
@media screen and (max-width: 1024px) {
  .table01 th,
  .table01 td {
    padding: 20px 0;
    display: block;
    border-top: none;
    width: 100%;
    padding: 12px 20px;
  }
}
.table01 th a,
.table01 td a {
  color: #c8102e;
  text-decoration: underline;
}
.table01 th a:hover,
.table01 td a:hover {
  text-decoration: none;
}
@media screen and (min-width: 1025px) {
  .table01 th a[href^=tel],
  .table01 td a[href^=tel] {
    color: inherit;
    text-decoration: none;
  }
}
.table01 th {
  vertical-align: middle;
  width: 12%;
  padding: 20px 0;
  color: #c8102e;
  text-align: center;
  font-weight: 600;
}
@media screen and (max-width: 1024px) {
  .table01 th {
    background: #f9f9f9;
    width: 100%;
    padding: 12px 20px;
    text-align: left;
    font-weight: 600;
  }
}

.table02 {
  width: 100%;
  margin: 30px 0;
}
.table02:first-child {
  margin-top: 0;
}
.table02:last-child {
  margin-bottom: 0;
}
.table02 th,
.table02 td {
  border: 1px solid #d7d7d7;
  background: #fff;
  padding: 16px 40px;
  text-align: left;
}
.table02 th a,
.table02 td a {
  color: #c8102e;
  text-decoration: underline;
}
.table02 th a:hover,
.table02 td a:hover {
  text-decoration: none;
}
@media screen and (min-width: 1025px) {
  .table02 th a[href^=tel],
  .table02 td a[href^=tel] {
    color: inherit;
    text-decoration: none;
  }
}
.table02 th {
  background: #f9f9f9;
  vertical-align: middle;
  text-align: center;
  color: #c8102e;
  font-weight: 600;
}
@media screen and (max-width: 1024px) {
  .table02 th {
    font-weight: 600;
  }
}

/* =========================================================
tablist
========================================================= */
.tabList {
  display: flex;
  flex-wrap: wrap;
  text-align: center;
}
.tabList li {
  line-height: 1;
}
@media screen and (max-width: 1024px) {
  .tabList li {
    margin: 7px 0;
  }
}
.tabList li:not(:first-child) {
  border-left: 1px solid #a3a3a3;
}
.tabList li a {
  color: #a3a3a3;
  font-weight: 600;
  padding: 0 20px;
}
@media screen and (max-width: 1024px) {
  .tabList li a {
    font-size: 1.3rem;
    padding: 0 15px;
  }
}
@media screen and (max-width: 320px) {
  .tabList li a {
    padding: 0 10px;
  }
}
.tabList li:last-child a {
  padding-right: 0;
}
.tabList li.active a {
  color: #c8102e;
}

/* =========================================================
SLICK
========================================================= */
.slick-slider .slick-arrow {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  position: absolute;
  bottom: -18px;
  z-index: 1;
  margin: auto;
  padding: 0;
  cursor: pointer;
  transition: all 0.5s;
}
@media screen and (max-width: 1024px) {
  .slick-slider .slick-arrow {
    bottom: -14px;
    z-index: 10;
  }
}
.slick-slider .slick-arrow .circle {
  width: 40px;
  height: 40px;
}
@media screen and (max-width: 1024px) {
  .slick-slider .slick-arrow .circle {
    width: 30px;
    height: 30px;
  }
}
.slick-slider .slick-arrow:hover .circle {
  border-color: #272727;
}
.slick-slider .slick-prev {
  left: 28%;
  transform: scale(-1, 1);
}
@media screen and (max-width: 1024px) {
  .slick-slider .slick-prev {
    left: 0;
  }
}
.slick-slider .slick-next {
  right: 28%;
}
@media screen and (max-width: 1024px) {
  .slick-slider .slick-next {
    right: 0;
  }
}
.slick-slider .slick-dots {
  position: static;
  text-align: center;
  font-size: 0;
}
@media screen and (max-width: 1024px) {
  .slick-slider .slick-dots {
    width: 100%;
    margin: 40px auto 0;
    text-align: center;
  }
}
.slick-slider .slick-dots li {
  display: inline-block;
  width: 6px;
  height: 6px;
  margin: 0 5px;
  font-size: 12px;
}
.slick-slider .slick-dots li button {
  border: 2px solid #d7d7d7;
  border-radius: 50%;
  background: none;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  text-indent: -9999px;
  cursor: pointer;
}
.slick-slider .slick-dots li.slick-active button {
  border-color: #c8102e;
}

/* =========================================================
layout.css
========================================================= */
html,
body {
  font-size: 62.5%;
}

body {
  color: #3b4043;
  font-size: 14px;
  font-family: YuGothic, "游ゴシック", Hiragino Sans, "ヒラギノ角ゴシック", Hiragino Kaku Gothic ProN, "ヒラギノ角ゴ ProN W3", Roboto, "Droid Sans", Meiryo, "メイリオ", Verdana, sans-serif;
  font-weight: 500;
  line-height: 2;
  min-width: 1020px;
  padding-top: 78px;
  -webkit-text-size-adjust: 100%;
  font-feature-settings: "palt";
  /* フォントレンダリング設定: 1x解像度ではsubpixel、2x以上の解像度ではgrayscale */
  -webkit-font-smoothing: subpixel-antialiased;
  -moz-osx-font-smoothing: unset;
}
body.fixed {
  overflow: hidden;
}
@media screen and (max-width: 1024px) {
  body {
    overflow-x: hidden;
    min-width: 0;
    padding-top: 52px;
  }
}
@media screen and (min-width: 1020px) {
  body {
    overflow-x: hidden;
  }
}
@media only screen and (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {
  body {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
  }
}

img,
svg {
  vertical-align: top;
  max-width: 100%;
}
@media screen and (max-width: 1024px) {
  img,
  svg {
    height: auto;
  }
}

.wrapper {
  max-width: 1020px;
  margin: 0 auto;
  padding: 60px 0 60px;
}
@media screen and (max-width: 1024px) {
  .wrapper {
    max-width: 76%;
    padding: 40px 0 40px;
  }
}

.mincho {
  font-family: 游明朝, "Yu Mincho", YuMincho, "Hiragino Mincho ProN", HGS明朝E, メイリオ, Meiryo, serif;
  font-weight: 400;
}

.text_en {
  font-family: "Jost", sans-serif;
  font-weight: 500;
}
.text_en.bold {
  font-weight: 700;
}

@media screen and (max-width: 1024px) {
  .pc {
    display: none;
  }
}

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

@media screen and (min-width: 321px) {
  .exsp {
    display: none;
  }
}

.snsList {
  display: flex;
  align-items: center;
}
.snsList li + li {
  margin-left: 15px;
}
.snsList li a {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 50px;
  height: 50px;
  border: 1px solid #d7d7d7;
  border-radius: 50%;
}
@media screen and (max-width: 1024px) {
  .snsList li a {
    width: 57px;
    height: 57px;
  }
}
@media screen and (max-width: 320px) {
  .snsList li a {
    width: 50px;
    height: 50px;
  }
}
.snsList li a svg {
  display: block;
  fill: #c8102e;
  width: 17px;
  height: 17px;
}
.snsList li a:hover {
  border-color: #c8102e;
  background: #c8102e;
  opacity: 1;
}
.snsList li a:hover svg {
  fill: #fff;
}

/* =========================================================
globalHeader
========================================================= */
.globalHeader {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  margin: auto;
  z-index: 100;
  background: #fff;
  width: 100%;
  height: 80px;
  transition: all 0.5s;
}
@media screen and (max-width: 1024px) {
  .globalHeader {
    height: 52px;
  }
}
.globalHeader.scroll {
  animation: headerAnime 0.3s ease;
}
.globalHeader.scroll .globalHeaderNav .siteLogo {
  display: none !important;
}
.globalHeader .wrapper {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0;
}
@media screen and (max-width: 1024px) {
  .globalHeader .wrapper {
    max-width: 88%;
    padding: 4.5px 0;
  }
}
.globalHeader .siteLogo a {
  display: block;
  transition: none;
}
.globalHeader .siteLogo img {
  margin: 5px 0;
}
@media screen and (max-width: 1024px) {
  .globalHeader .siteLogo img {
    width: 96px;
    height: auto;
    margin: 4px 0;
  }
}
.globalHeaderNav {
  margin: 0 50px 0 auto;
}
.globalHeaderNav .siteLogo {
  display: none;
  position: absolute;
  top: 11px;
  left: calc((100% - 1020px) / 2);
}
.globalHeaderNav .siteLogo.show {
  display: inline;
}
.globalHeaderNav .gnavList {
  display: flex;
  height: 80px;
}
.globalHeaderNav .gnavList > li {
  display: flex;
  flex-direction: column;
  justify-content: center;
  cursor: pointer;
}
.globalHeaderNav .gnavList > li + li {
  margin-left: 40px;
}
.globalHeaderNav .gnavList > li.single {
  display: flex;
  align-items: center;
  font-weight: 600;
  text-align: center;
}
.globalHeaderNav .gnavList > li.single a {
  position: relative;
  display: flex;
  align-items: center;
  height: 80px;
}
.globalHeaderNav .gnavList > li.single a::after {
  content: "";
  display: block;
  position: absolute;
  left: 0;
  bottom: 0;
  width: 0;
  height: 2px;
  background: #c8102e;
  transition: width 0.5s cubic-bezier(0.25, 1, 0.28, 1);
}
.globalHeaderNav .gnavList > li .hoverBtn {
  display: flex;
  align-items: center;
  position: relative;
  height: 80px;
  font-weight: 600;
  text-align: center;
}
.globalHeaderNav .gnavList > li .hoverBtn a:hover {
  opacity: 1;
}
.globalHeaderNav .gnavList > li .hoverBtn::after {
  content: "";
  display: block;
  position: absolute;
  left: 0;
  bottom: 0;
  width: 0;
  height: 2px;
  background: #c8102e;
  transition: width 0.5s cubic-bezier(0.25, 1, 0.28, 1);
}
.globalHeaderNav .gnavList > li .hoverBtn .arrowMark.down {
  display: inline-block;
  margin: -4px 0 0 10px;
  vertical-align: middle;
}
.globalHeaderNav .gnavList > li .nestList {
  opacity: 0;
  visibility: hidden;
  transition: all 0.5s;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  background: #fff;
  width: 100%;
  padding-top: 130px;
  padding-bottom: 50px;
  padding-left: calc((100% - 1020px) / 2);
  padding-right: calc((100% - 1020px) / 2);
  margin-top: -15px;
  z-index: -1;
}
.globalHeaderNav .gnavList > li .nestList li {
  width: 244px;
  margin-right: 1.3%;
}
.globalHeaderNav .gnavList > li .nestList li:nth-of-type(4n) {
  margin-right: 0;
}
.globalHeaderNav .gnavList > li .nestList li.nestListTitle {
  width: 1020px;
  margin: 0 0 30px;
}
.globalHeaderNav .gnavList > li .nestList li.nestListTitle .secTitle {
  margin: 0;
}
.globalHeaderNav .gnavList > li .nestList li a {
  display: block;
  position: relative;
}
.globalHeaderNav .gnavList > li .nestList li a:not(.external)::before, .globalHeaderNav .gnavList > li .nestList li a:not(.external)::after {
  content: "";
  display: block;
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 1px;
  background: #d7d7d7;
  transition: width 0.8s cubic-bezier(0.25, 1, 0.28, 1);
}
.globalHeaderNav .gnavList > li .nestList li a:not(.external)::after {
  width: 0;
  background: #c8102e;
}
.globalHeaderNav .gnavList > li .nestList li a:not(.external) .photo {
  overflow: hidden;
}
.globalHeaderNav .gnavList > li .nestList li a:not(.external) .photo img {
  transition: all 0.5s ease-out;
}
.globalHeaderNav .gnavList > li .nestList li a:not(.external):hover {
  opacity: 1;
}
.globalHeaderNav .gnavList > li .nestList li a:not(.external):hover::after {
  width: 100%;
}
.globalHeaderNav .gnavList > li .nestList li a:not(.external):hover .photo img {
  transform: scale(1.1);
}
.globalHeaderNav .gnavList > li .nestList li a .title {
  position: relative;
  padding: 15px 0 20px;
  font-size: 1.6rem;
  font-weight: 600;
}
.globalHeaderNav .gnavList > li .nestList li a .title .arrowMark {
  position: absolute;
  bottom: 36px;
  right: 9px;
}
.globalHeaderNav .gnavList > li .nestList li .detailList {
  margin: 10px 0 0;
}
.globalHeaderNav .gnavList > li .nestList li .detailList li {
  padding: 3px 0;
}
.globalHeaderNav .gnavList > li .nestList li .detailList a.detail {
  font-size: 1.4rem;
  font-weight: 600;
  color: #a3a3a3;
  margin-left: 1em;
}
.globalHeaderNav .gnavList > li .nestList li .detailList a.detail:hover {
  color: #c8102e;
}
.globalHeaderNav .gnavList > li .nestList li .detailList a.external::after {
  content: "";
  display: inline-block;
  margin: auto 0 auto 10px;
  background: url("../img/common/icon_external.svg") no-repeat center/13px auto;
  width: 13px;
  height: 13px;
}
.globalHeaderNav .gnavList > li:hover.single a {
  opacity: 1;
}
.globalHeaderNav .gnavList > li:hover.single a::after {
  width: 100%;
}
.globalHeaderNav .gnavList > li:hover .hoverBtn::after {
  width: 100%;
}
.globalHeaderNav .gnavList > li:hover .nestList {
  opacity: 1;
  visibility: visible;
  margin-top: -1px;
}
.globalHeaderNav .gnavList > li:hover .nestList.hover {
  opacity: 1 !important;
  visibility: visible !important;
  margin-top: -1px !important;
}

@keyframes headerAnime {
  0% {
    opacity: 0;
    top: -50px;
  }
  100% {
    opacity: 1;
    top: 0;
  }
}
.gnavBtn {
  position: absolute;
  right: 0;
  z-index: 1;
  background: transparent;
  width: 52px;
  height: 52px;
  cursor: pointer;
}
.gnavBtn .menuLine,
.gnavBtn .menuLine::before,
.gnavBtn .menuLine::after {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background: #272727;
  width: 20px;
  height: 2px;
  margin: auto;
  text-align: center;
  transition: all 0.3s;
}
.gnavBtn .menuLine {
  background: transparent;
}
.gnavBtn .menuLine::before {
  top: -3px;
  bottom: auto;
}
.gnavBtn .menuLine::after {
  bottom: -3px;
  top: auto;
}
.gnavBtn.on .menuLine::before {
  top: 0;
  transform: rotate(45deg);
}
.gnavBtn.on .menuLine::after {
  bottom: 0;
  transform: rotate(-45deg);
}

.contactHeaderBtn {
  margin: 0;
}
@media screen and (max-width: 1024px) {
  .contactHeaderBtn {
    margin: 2px 32px 2px 0;
  }
}
.contactHeaderBtn a {
  justify-content: center;
  width: 150px;
  height: 50px;
  line-height: 50px;
  background: #c8102e;
  font-size: 1.2rem;
  font-weight: 600;
  color: #fff;
}
@media screen and (max-width: 1024px) {
  .contactHeaderBtn a {
    width: 133px;
    height: 39px;
    line-height: 39px;
    font-size: 1.3rem;
  }
}
.contactHeaderBtn a svg {
  margin-right: 10px;
  fill: #fff;
  width: 21px;
  height: 15px;
}
.contactHeaderBtn a:hover {
  background: #272727;
}

/* =========================================================
fixedBtn
========================================================= */
.fixedBtn {
  position: fixed;
  top: 20%;
  right: 0;
  width: 80px;
  z-index: 99;
}
@media screen and (max-width: 1024px) {
  .fixedBtn {
    top: 15%;
    width: 40px;
  }
}
.fixedBtn .snsList {
  flex-direction: column;
}
.fixedBtn .snsList li + li {
  margin-left: 0;
  margin-top: 5px;
}
.fixedBtn .snsList li.title {
  height: 80px;
  line-height: 80px;
  margin-bottom: -5px;
  font-size: 1.2rem;
  white-space: nowrap;
  transform: rotate(90deg);
  font-weight: 600;
  transition: color 0.5s;
}
@media screen and (max-width: 1024px) {
  .fixedBtn .snsList li.title {
    height: 40px;
    line-height: 40px;
    margin-bottom: 15px;
    font-size: 1.3rem;
  }
}
.fixedBtn .snsList li a {
  background: #fff;
  border-color: #fff;
}
@media screen and (max-width: 1024px) {
  .fixedBtn .snsList li a {
    width: 29px;
    height: 29px;
  }
}
.fixedBtn .snsList li a svg {
  width: 19px;
  height: 19px;
}
@media screen and (max-width: 1024px) {
  .fixedBtn .snsList li a svg {
    width: 12px;
    height: 12px;
  }
}
.fixedBtn .snsList li a:hover {
  background: #c8102e;
  border-color: #c8102e;
}

/* =========================================================
globalNav
========================================================= */
.globalNav {
  opacity: 0;
  visibility: hidden;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 99;
  background: transparent;
  width: 100%;
  height: 100%;
  transition: all 0.5s;
}
.globalNav.is_show {
  opacity: 1;
  visibility: visible;
  background: #fff;
}
.globalNav.is_show .wrapper {
  top: 0;
}
.globalNav > div {
  width: 100%;
  height: 100%;
  overflow-y: auto;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
}
.globalNav .wrapper {
  position: relative;
  top: -15px;
  padding-top: 10px;
  margin-top: 52px;
  transition: all 0.5s;
}
.globalNav .gnavList {
  display: block;
  width: 100%;
  border-bottom: 1px solid rgba(255, 255, 255, 0.3);
}
.globalNav .gnavList > li {
  width: 100%;
  overflow: hidden;
}
.globalNav .gnavList > li .nestBtn {
  display: flex;
  align-items: center;
  position: relative;
  font-size: 1.7rem;
  font-weight: 600;
  border-top: 1px solid rgba(255, 255, 255, 0.3);
  padding: 5px 0;
}
.globalNav .gnavList > li .nestBtn .arrowMark.down {
  margin: -2px 0 0 10px;
}
.globalNav .gnavList > li .nestBtn.on .arrowMark.down {
  transform: rotate(270deg);
}
.globalNav .gnavList > li .nestBtn.on .arrowMark.down::after {
  animation: none;
}
.globalNav .gnavList > li.single {
  font-weight: 600;
  padding-bottom: 10px;
  position: relative;
  border-top: 1px solid rgba(255, 255, 255, 0.3);
  padding: 5px 0;
  font-size: 1.7rem;
  font-weight: 600;
}
.globalNav .gnavList > li.single a {
  display: block;
}
.globalNav .gnavList > li.single a:hover {
  color: #c8102e;
}
.globalNav .gnavList > li .nestList {
  display: none;
  border-top: 1px solid rgba(255, 255, 255, 0.3);
  padding: 0 5px;
}
.globalNav .gnavList > li .nestList li {
  line-height: 3;
}
.globalNav .gnavList > li .nestList li a {
  display: block;
  padding-left: 1em;
  font-size: 1.4rem;
  font-weight: 600;
}
.globalNav .gnavList > li .nestList li a:hover {
  color: #c8102e;
}
.globalNav .gnavList > li .nestList li a.detail {
  font-size: 1.3rem;
  color: #a3a3a3;
  margin-left: 1em;
}
.globalNav .gnavList > li .nestList li a.detail:hover {
  color: #c8102e;
}
.globalNav .gnavList > li .nestList li a.external::after {
  content: "";
  display: inline-block;
  margin: auto 0 auto 10px;
  background: url("../img/common/icon_external.svg") no-repeat center/13px auto;
  width: 13px;
  height: 13px;
}
.globalNav .bnrLink {
  display: block;
  margin: 20px 0 30px;
  padding-bottom: 30px;
  border-bottom: 1px solid #d7d7d7;
  overflow: hidden;
}
.globalNav .bnrLink img {
  width: 100%;
  height: auto;
}
@media screen and (min-width: 768px) and (max-width: 1024px) {
  .globalNav .contactWrap {
    display: flex;
    align-items: center;
    justify-content: space-between;
  }
}
.globalNav .telWrap {
  overflow: hidden;
}
.globalNav .tel {
  display: block;
  position: relative;
  font-size: 1.4rem;
  font-weight: 600;
  padding-left: 45px;
}
.globalNav .tel svg {
  position: absolute;
  bottom: 12px;
  left: 0;
  fill: #c8102e;
  width: 33px;
  height: 33px;
}
.globalNav .tel a {
  display: block;
  font-size: 3.6rem;
  line-height: 1.2;
  white-space: nowrap;
}
@media screen and (max-width: 320px) {
  .globalNav .tel a {
    font-size: 3.1rem;
  }
}
.globalNav .btnList_contact {
  margin: 20px 0 0;
  overflow: hidden;
}
@media screen and (min-width: 768px) and (max-width: 1024px) {
  .globalNav .btnList_contact {
    width: calc(50% - 30px);
  }
}
.globalNav .btnList_contact li {
  margin: 0 5px;
}
.globalNav .btnList_contact li + li {
  margin-left: 0;
}
.globalNav .btnList_contact li a {
  flex-direction: column;
  justify-content: center;
  border-radius: 50%;
  width: 100%;
  height: auto;
  aspect-ratio: 1/1;
  line-height: 2;
}
@media screen and (max-width: 320px) {
  .globalNav .btnList_contact li a {
    font-size: 1.2rem;
  }
}
.globalNav .btnList_contact li a svg {
  margin: 0 0 10px;
  width: 21px;
  height: 15px;
}
.globalNav .btnList_contact li a.contactBtn {
  background: #c8102e;
  color: #fff;
}
.globalNav .btnList_contact li a.contactBtn svg {
  fill: #fff;
}
.globalNav .btnList_contact li a.mailBtn {
  background: #fff;
  border: 1px solid #d7d7d7;
}
.globalNav .btnList_contact li a.mailBtn svg {
  fill: #272727;
}
@media screen and (max-width: 1024px) {
  .globalNav .gnavList > li .nestBtn,
  .globalNav .gnavList > li.single a,
  .globalNav .bnrLink img,
  .globalNav .telWrap .tel,
  .globalNav .btnList_contact li {
    transform: translateY(200%);
    transition: transform 0.8s cubic-bezier(0.215, 0.61, 0.355, 1);
  }
  .globalNav.is_show .gnavList > li .nestBtn,
  .globalNav.is_show .gnavList > li.single a,
  .globalNav.is_show .bnrLink img,
  .globalNav.is_show .telWrap .tel,
  .globalNav.is_show .btnList_contact li {
    transform: translateY(0);
  }
  .globalNav.is_show .gnavList > li.single:nth-child(1) a {
    transition-delay: 0.5s;
  }
  .globalNav.is_show .gnavList > li.single:nth-child(2) a {
    transition-delay: 0.55s;
  }
  .globalNav.is_show .gnavList > li.single:nth-child(3) a {
    transition-delay: 0.6s;
  }
  .globalNav.is_show .gnavList > li.single:nth-child(6) a {
    transition-delay: 0.75s;
  }
  .globalNav.is_show .gnavList > li:nth-child(4) .nestBtn {
    transition-delay: 0.65s;
  }
  .globalNav.is_show .gnavList > li:nth-child(5) .nestBtn {
    transition-delay: 0.7s;
  }
  .globalNav.is_show .bnrLink img {
    transition-delay: 0.8s;
  }
  .globalNav.is_show .telWrap .tel {
    transition-delay: 0.85s;
  }
  .globalNav.is_show .btnList_contact li {
    transition-delay: 0.9s;
  }
}

/* =========================================================
titleArea
========================================================= */
.titleArea {
  position: relative;
  background: #3b4043 no-repeat center/cover;
  line-height: 1.6;
  background: #f9f9f9;
  border-bottom: 1px solid #d7d7d7;
}
.titleArea::before {
  content: "";
  display: block;
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 290px 50vw 0 50vw;
  border-color: transparent #fff transparent #c8102e;
}
@media screen and (max-width: 1024px) {
  .titleArea::before {
    border-width: 145px 50vw 0 50vw;
  }
}
.titleArea .wrapper {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  position: relative;
  height: 290px;
  padding: 0;
  z-index: 1;
}
@media screen and (max-width: 1024px) {
  .titleArea .wrapper {
    height: 220px;
  }
}

.pageTitle {
  text-align: center;
  font-size: 4rem;
  line-height: 1.3;
  letter-spacing: 2.5px;
}
@media screen and (max-width: 1024px) {
  .pageTitle {
    font-size: 3.4rem;
    margin-top: -30px;
  }
}
.pageTitle .text_jp {
  display: block;
  color: #a3a3a3;
  letter-spacing: 0;
  font-size: 1.2rem;
  font-weight: 600;
  margin: 30px 0 0;
}
@media screen and (max-width: 1024px) {
  .pageTitle .text_jp {
    font-size: 1.3rem;
    margin: 20px 0 0;
  }
}

.breadcrumbs {
  display: flex;
  padding: 19px 0;
  font-size: 1.1rem;
  font-weight: 600;
}
@media screen and (max-width: 1024px) {
  .breadcrumbs {
    display: block;
    padding: 12px 0;
  }
}
@media screen and (max-width: 1024px) {
  .breadcrumbs li {
    display: inline;
  }
}
.breadcrumbs li a {
  color: #a3a3a3;
}
.breadcrumbs li a:hover {
  color: #c8102e;
}
.breadcrumbs li .arrowMark {
  padding: 0 10px;
}
.breadcrumbs + section {
  border-top: 1px solid #d7d7d7;
}

/* =========================================================
contents
========================================================= */
.contents {
  display: block;
  overflow: hidden;
}

/* =========================================================
globalFooter
========================================================= */
.footerBg {
  position: relative;
}
.footerBg::before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 290px 50vw;
  border-color: #f9f9f9 transparent transparent #f9f9f9;
}
@media screen and (max-width: 1024px) {
  .footerBg::before {
    border-width: 145px 50vw;
  }
}

.globalFooter .wrapper {
  display: flex;
  flex-wrap: wrap;
  position: relative;
  padding: 0 0 25px;
  z-index: 1;
}
@media screen and (max-width: 1024px) {
  .globalFooter .wrapper {
    display: block;
  }
}
.globalFooter .companyInfo {
  position: relative;
  width: 28%;
  padding: 10px 0;
}
@media screen and (max-width: 1024px) {
  .globalFooter .companyInfo {
    width: 100%;
    padding: 0;
    line-height: 1.7;
  }
}
.globalFooter .companyInfo dd .snsList {
  margin: 20px 0;
}
.globalFooter .companyInfo dd .snsList li.title {
  font-size: 1.2rem;
  font-weight: 600;
  color: #a3a3a3;
  white-space: nowrap;
}
@media screen and (max-width: 1024px) {
  .globalFooter .companyInfo dd .snsList li.title {
    font-size: 1.4rem;
  }
}
.globalFooter .copyright {
  font-size: 1.2rem;
  color: #a3a3a3;
}
@media screen and (max-width: 1024px) {
  .globalFooter .copyright {
    font-size: 1.3rem;
  }
}
.globalFooter .footerNav {
  display: flex;
  width: 72%;
  padding: 10px 0 10px 25px;
}
@media screen and (max-width: 1024px) {
  .globalFooter .footerNav {
    display: block;
    width: 100%;
    margin: 30px 0;
    padding: 0;
  }
}
.globalFooter .footerNavList:nth-child(1) {
  width: 20%;
}
@media screen and (max-width: 1024px) {
  .globalFooter .footerNavList:nth-child(1) {
    width: 100%;
  }
}
.globalFooter .footerNavList:nth-child(2) {
  width: 49%;
}
@media screen and (max-width: 1024px) {
  .globalFooter .footerNavList:nth-child(2) {
    width: 100%;
  }
}
.globalFooter .footerNavList:nth-child(3) {
  width: 31%;
}
@media screen and (max-width: 1024px) {
  .globalFooter .footerNavList:nth-child(3) {
    width: 100%;
  }
}
.globalFooter .footerNavList + .footerNavList {
  padding-left: 20px;
  margin-left: 15px;
  border-left: 1px solid #d7d7d7;
}
@media screen and (max-width: 1024px) {
  .globalFooter .footerNavList + .footerNavList {
    padding-left: 0;
    margin-left: 0;
    border-left: none;
    padding-top: 15px;
    margin-top: 20px;
    border-top: 1px solid #d7d7d7;
  }
}
.globalFooter .footerNavList > li + li {
  margin-top: 25px;
}
@media screen and (max-width: 1024px) {
  .globalFooter .footerNavList > li + li {
    margin-top: 0;
  }
}
.globalFooter .footerNavList > li .nestBtn {
  font-size: 1.2rem;
  color: #a3a3a3;
  line-height: 3;
}
@media screen and (max-width: 1024px) {
  .globalFooter .footerNavList > li .nestBtn {
    font-size: 1.3rem;
  }
}
.globalFooter .footerNavList > li .nestList li {
  line-height: 3;
  white-space: nowrap;
}
.globalFooter .footerNavList > li .nestList li a {
  display: block;
  position: relative;
  font-weight: 600;
}
.globalFooter .footerNavList > li .nestList li a:hover {
  color: #c8102e;
}
.globalFooter .footerNavList > li .nestList li a.detail {
  font-size: 1.2rem;
  color: #a3a3a3;
  margin-left: 1em;
}
@media screen and (max-width: 1024px) {
  .globalFooter .footerNavList > li .nestList li a.detail {
    font-size: 1.3rem;
  }
}
.globalFooter .footerNavList > li .nestList li a.detail:hover {
  color: #c8102e;
}
.globalFooter .footerNavList > li .nestList li a.external::after {
  content: "";
  display: inline-block;
  margin: auto 0 auto 10px;
  background: url("../img/common/icon_external.svg") no-repeat center/13px auto;
  width: 13px;
  height: 13px;
}
.globalFooter .footerNavList > li .nestList.column02 {
  position: relative;
  column-count: 2;
  column-gap: 15px;
}
@media screen and (max-width: 1024px) {
  .globalFooter .footerNavList > li .nestList.column02 {
    column-gap: 20px;
  }
}
.globalFooter .footerNavList > li .nestList.column02::after {
  content: "";
  display: block;
  width: 100%;
  height: 170px;
}
@media screen and (max-width: 1024px) {
  .globalFooter .footerNavList > li .nestList.column02::after {
    height: 44px;
  }
}
@media screen and (max-width: 1024px) {
  .globalFooter .footerNavList > li .nestList.column02_sp {
    column-count: 2;
    column-gap: 5px;
  }
}

.pagetop {
  position: fixed;
  bottom: 0;
  right: 0;
  z-index: 98;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 220px;
  height: 80px;
  line-height: 80px;
  transform: rotate(90deg);
  transform-origin: 100% 0;
  color: #a3a3a3;
  font-size: 1.2rem;
  text-align: center;
  white-space: nowrap;
  margin: 0 0 -80px auto;
  padding-left: 140px;
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transition: all 0.5s;
}
@media screen and (max-width: 1024px) {
  .pagetop {
    width: 190px;
    height: 40px;
    line-height: 40px;
    margin: 0 0 -40px auto;
    padding-left: 110px;
  }
}
.pagetop::before {
  content: "";
  display: block;
  position: absolute;
  left: 55px;
  margin: 0 auto;
  background: #a3a3a3;
  width: 80px;
  height: 1px;
}
@media screen and (max-width: 1024px) {
  .pagetop::before {
    left: 45px;
    width: 60px;
  }
}
.pagetop svg {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 15px;
  margin: auto 0;
  fill: #a3a3a3;
  width: 20px;
  height: 20px;
  transform: rotate(90deg);
  transition: all 0.5s;
}
@media screen and (max-width: 1024px) {
  .pagetop svg {
    width: 18px;
    height: 18px;
  }
}
.pagetop:hover svg {
  left: 10px;
}
.pagetop:hover::before {
  animation: borderAnim_pagetop 2s cubic-bezier(0.25, 1, 0.28, 1) infinite;
}
@media screen and (max-width: 1024px) {
  .pagetop:hover::before {
    animation: borderAnim_pagetop_sp 2s cubic-bezier(0.25, 1, 0.28, 1) infinite;
  }
}
.pagetop.scroll {
  opacity: 1;
  visibility: visible;
}

@keyframes borderAnim_pagetop {
  0% {
    width: 80px;
  }
  100% {
    width: 0;
  }
}
@keyframes borderAnim_pagetop_sp {
  0% {
    width: 60px;
  }
  100% {
    width: 0;
  }
}
/* =========================================================
contactSec
========================================================= */
.contactSec {
  background: linear-gradient(to right, #d70345 0%, rgba(215, 3, 69, 0.4) 100%);
  overflow: hidden;
}
.contactSec .wrapper {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}
@media screen and (max-width: 1024px) {
  .contactSec .wrapper {
    display: block;
    padding-top: 50px;
  }
}
@media screen and (min-width: 768px) and (max-width: 1024px) {
  .contactSec .wrapper {
    display: flex;
    align-items: center;
  }
}
.contactSec .wrapper h2 {
  display: flex;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  margin: auto 0;
  height: 100px;
}
@media screen and (max-width: 1024px) {
  .contactSec .wrapper h2 {
    top: 20px;
    bottom: auto;
    height: auto;
  }
}
.contactSec .wrapper .tel {
  display: block;
  position: relative;
  font-size: 1.2rem;
  font-weight: 600;
  color: #fff;
  padding-left: 45px;
}
@media screen and (max-width: 1024px) {
  .contactSec .wrapper .tel {
    font-size: 1.4rem;
  }
}
.contactSec .wrapper .tel svg {
  position: absolute;
  bottom: 12px;
  left: 0;
  fill: #fff;
  width: 33px;
  height: 33px;
}
.contactSec .wrapper .tel a {
  display: block;
  font-size: 3.6rem;
  line-height: 1.2;
  white-space: nowrap;
}
@media screen and (max-width: 1024px) {
  .contactSec .wrapper .tel a {
    font-size: 3.6rem;
  }
}
@media screen and (max-width: 320px) {
  .contactSec .wrapper .tel a {
    font-size: 3.1rem;
  }
}
.contactSec .wrapper .btnList_contact {
  margin: 0 0 0 30px;
}
@media screen and (max-width: 1024px) {
  .contactSec .wrapper .btnList_contact {
    margin: 20px 0 0;
    justify-content: center;
  }
}
@media screen and (min-width: 768px) and (max-width: 1024px) {
  .contactSec .wrapper .btnList_contact {
    margin: 0 0 0 30px;
  }
}
.contactSec .wrapper .btnList_contact li {
  margin: 0 5px;
}
@media screen and (max-width: 1024px) {
  .contactSec .wrapper .btnList_contact li + li {
    margin-left: 0;
  }
}
.contactSec .wrapper .btnList_contact li a {
  flex-direction: column;
  justify-content: center;
  border-radius: 50%;
  width: 165px;
  height: 165px;
  aspect-ratio: 1/1;
  line-height: 2;
}
@media screen and (max-width: 1024px) {
  .contactSec .wrapper .btnList_contact li a {
    width: 100%;
    height: auto;
  }
}
@media screen and (max-width: 320px) {
  .contactSec .wrapper .btnList_contact li a {
    font-size: 1.2rem;
  }
}
.contactSec .wrapper .btnList_contact li a svg {
  margin: 0 0 10px;
  width: 21px;
  height: 15px;
}
.contactSec .wrapper .btnList_contact li a.contactBtn {
  background: #c8102e;
  color: #fff;
}
.contactSec .wrapper .btnList_contact li a.contactBtn svg {
  fill: #fff;
}
.contactSec .wrapper .btnList_contact li a.mailBtn {
  background: #fff;
}
.contactSec .wrapper .btnList_contact li a.mailBtn svg {
  fill: #272727;
}

/* =========================================================
bnrSlide
========================================================= */
.bnrSlide {
  overflow: hidden;
}
.bnrSlide .wrapper {
  position: relative;
  max-width: 1256px;
  z-index: 1;
}
@media screen and (max-width: 1024px) {
  .bnrSlide .wrapper {
    max-width: 88%;
    margin-right: 0;
  }
}
@media screen and (max-width: 1024px) {
  .bnrSlideList {
    margin-left: -8px;
  }
}
.bnrSlideList .listItem {
  width: 240px;
  padding: 0 8px;
  position: relative;
}
@media screen and (max-width: 1024px) {
  .bnrSlideList .listItem {
    width: 80%;
  }
}
.bnrSlideList .listItem img {
  width: 100%;
  height: auto;
}
.bnrSlideList a {
  display: block;
}
@media screen and (max-width: 1024px) {
  .bnrSlideList .slick-list {
    padding: 0 25% 0 0 !important;
  }
}
@media screen and (min-width: 768px) and (max-width: 1024px) {
  .bnrSlideList .slick-list {
    padding: 0 !important;
  }
}