@charset "UTF-8";
/*
MEDIA QUERY MANAGER

1em = 16px
max-width 23.75em 		(380px):    	screen-from-xsss
max-width 26.25em 		(420px):    	screen-from-xss
max-width 30em 			(480px):   		screen-from-xs
max-width 47.9375em 	(767px):     	screen-from-sm
max-width 61.9375em 	(991px):     	screen-from-md
max-width 64em 			(1024px):      	screen-from-lg
max-width 74.9375em 	(1199px):      	screen-from-xl
max-width 112.4375em 	(1799px):      	screen-from-xxl

min-width 23.8125em 	(381px):    	screen-to-xsss
min-width 26.3125em 	(421px):    	screen-to-xss
min-width 30.0625em 	(481px):   		screen-to-xs
min-width 48em 			(768px):     	screen-to-sm
min-width 62em 			(992px):     	screen-to-md
min-width 64.0625em 	(1025px):      	screen-to-lg
min-width 75em 			(1200px):      	screen-to-xl
min-width 112.5em 		(1800px):      	screen-to-xxl

@MEDIA
@media only screen and (min-width: 1800px){}
@media only screen and (min-width: 1550px){}
@media only screen and (min-width: 1200px){}
@media only screen and (max-width: 1199px){}
@media only screen and (min-width: 1200px) and (max-width: 1440px){}
@media only screen and (min-width: 992px){}
@media only screen and (max-width: 991px){}
@media only screen and (min-width: 768px){}
@media only screen and (min-width: 768px) and (max-width: 991px){}
@media only screen and (max-width: 767px){}
@media only screen and (min-width: 481px) and (max-width: 767px){}
@media only screen and (max-width: 480px){}
@media only screen and (max-width: 420px){}
@media only screen and (max-width: 380px){}

*/
/*====================================================================================
TABLE OF CONTENT
1. COMMON BASE
2. COMMON CONTAINER.
3. COMMON HEADER.
4. COMMON FOOTER.
5. COMMON BACK TO TOP.
6. COMMON SECTION.
7. COMMON TITLE.
8. COMMON ICON.
9. COMMON BUTTON.
10. COMMON DECORATION.
11. COMMON KEYFRAMES.
12. COMMON TEXT.
13. COMMON LINK
14. COMMON ITEM.
15. COMMON LIST.
16. COMMON BOX.
17. COMMON BLOCK.
18. COMMON IMAGE.
19. COMMON EFFECT.
20. COMMON LAYOUT.
21. COMMON BACKGROUND
22. COMMON COLOR
====================================================================================*/
/*====================================================================================
1. START COMMON BASE
====================================================================================*/
/*---------- Start Font Noto Sans JP ----------*/
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100;300;400;500;700;900&display=swap");
/*---------- End Font Noto Sans JP ----------*/
/*---------- Start Font Cormorant Garamond ----------*/
@import url("https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;0,700;1,300;1,400;1,500;1,600;1,700&display=swap");
/*---------- End Font Cormorant Garamond ----------*/
/*---------- Start Font Shippori Mincho ----------*/
@import url("https://fonts.googleapis.com/css2?family=Shippori+Mincho:wght@400;500;600;700;800&display=swap");
/*---------- End Font Shippori Mincho ----------*/
.noto-sans-jp {
  font-family: "Noto Sans JP", sans-serif;
}

.cormorant-garamond {
  font-family: "Cormorant Garamond", serif;
}

.shippori-mincho {
  font-family: "Shippori Mincho", serif;
}

.yu-gothic {
  font-family: "游ゴシック体", "游ゴシック", "Yu Gothic", YuGothic, "Noto Sans JP", "Sawarabi Gothic", "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, "ＭＳ ゴシック", sans-serif;
}

html {
  font-size: 62.5%;
  overflow-y: auto;
  line-height: normal;
}

img {
  width: 100%;
  height: 100%;
}

@media only screen and (min-width: 112.5em) {
  html {
    font-size: 75%;
  }
}
body {
  font-size: 1.6rem;
  line-height: 1.8;
  font-weight: 400;
  letter-spacing: 0.05em;
  font-family: "Noto Sans JP", sans-serif;
  color: #222222;
  background-color: #f3f3f3;
  -webkit-text-size-adjust: 100%;
  -moz-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
  -o-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
body.is-open, body.lb-disable-scrolling {
  position: fixed;
  width: 100%;
}

@media only screen and (max-width: 47.9375em) {
  body {
    font-size: 1.4rem;
    line-height: 1.6;
  }
}
#wrapper {
  position: relative;
  width: 100%;
  height: 100%;
  min-width: 320px;
  overflow: hidden;
}

.main {
  padding-top: 10rem;
}

@media only screen and (max-width: 47.9375em) {
  .main {
    padding-top: 7rem;
  }
}
/*====================================================================================
1. END COMMON BASE
====================================================================================*/
/*====================================================================================
2. START COMMON CONTAINER
====================================================================================*/
.container,
.container-fluid,
.container-xxl,
.container-xl,
.container-lg,
.container-md,
.container-sm,
.container-xs {
  position: relative;
  width: 100%;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  margin-left: auto;
  margin-right: auto;
}

.container {
  max-width: 120.6rem;
}

.container-sm {
  max-width: 111rem;
}

.container-md {
  max-width: 123rem;
}

.container-xs {
  max-width: 103rem;
}

/*====================================================================================
2. END COMMON CONTAINER
====================================================================================*/
/*====================================================================================
3. START COMMON HEADER
====================================================================================*/
/*---------- START GLOBAL NAV ----------*/
.gnav a {
  text-decoration: none;
}

.gnav__link {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  cursor: pointer;
}

.gnav__text {
  font-size: 1.4rem;
  line-height: 1.5;
  font-weight: 900;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.gnav__icon {
  position: relative;
  z-index: 100000;
  display: inline-block;
  width: 1rem;
  height: 1rem;
}
.gnav__icon::before, .gnav__icon::after {
  position: absolute;
  content: "";
  top: 50%;
  left: 0;
  width: 100%;
  height: 2px;
  margin-top: -1px;
  border-radius: 2px;
  background-color: #222222;
}
.gnav__icon::before {
  -webkit-transform: rotate(-90deg);
  -ms-transform: rotate(-90deg);
      transform: rotate(-90deg);
  -webkit-transition: -webkit-transform 0.35s cubic-bezier(0.65, 0.05, 0.36, 1);
  transition: -webkit-transform 0.35s cubic-bezier(0.65, 0.05, 0.36, 1);
  -o-transition: transform 0.35s cubic-bezier(0.65, 0.05, 0.36, 1);
  transition: transform 0.35s cubic-bezier(0.65, 0.05, 0.36, 1);
  transition: transform 0.35s cubic-bezier(0.65, 0.05, 0.36, 1), -webkit-transform 0.35s cubic-bezier(0.65, 0.05, 0.36, 1);
}

.gnav-submenu {
  display: none;
  border-radius: 0.8rem;
  background-color: #ffffff;
}

.gnav-submenu__row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  padding: 2.4rem;
}

.gnav-submenu__left {
  width: 20rem;
}

.gnav-submenu__right {
  -webkit-box-flex: 1;
  -ms-flex: 1;
  flex: 1;
  min-width: 1px;
  padding-left: 2.4rem;
}

.gnav-submenu__img {
  border-radius: 0.4rem;
  overflow: hidden;
}

.gnav-submenu__head {
  margin-bottom: 1.6rem;
}

@media only screen and (min-width: 48em) {
  .gnav .dropdown__wrap {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
  }
  .gnav__icon {
    margin-left: 0.5rem;
  }
}
@media only screen and (max-width: 47.9375em) {
  .gnav {
    position: fixed;
    z-index: 999;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100vh;
    overflow-y: auto;
    visibility: hidden;
    padding: 7rem 1.5rem 5rem 1.5rem;
    background-color: #f3f3f3;
    -webkit-transition: all 0.3s ease;
    -o-transition: all 0.3s ease;
    transition: all 0.3s ease;
  }
  .gnav.active {
    left: 0;
    visibility: visible;
  }
  .gnav.active .gnav__item {
    -webkit-animation-name: fadeInLeft;
    animation-name: fadeInLeft;
    -webkit-animation-iteration-count: 1;
    animation-iteration-count: 1;
    -webkit-animation-duration: 0.6s;
    animation-duration: 0.6s;
    -webkit-animation-delay: 0s;
    animation-delay: 0s;
    -webkit-animation-timing-function: cubic-bezier(0, 0.2, 0.8, 1);
    animation-timing-function: cubic-bezier(0, 0.2, 0.8, 1);
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
  }
  .gnav.active .gnav__item:nth-child(1) {
    -webkit-animation-delay: 0.1s;
    animation-delay: 0.1s;
  }
  .gnav.active .gnav__item:nth-child(2) {
    -webkit-animation-delay: 0.2s;
    animation-delay: 0.2s;
  }
  .gnav.active .gnav__item:nth-child(3) {
    -webkit-animation-delay: 0.3s;
    animation-delay: 0.3s;
  }
  .gnav.active .gnav__item:nth-child(4) {
    -webkit-animation-delay: 0.4s;
    animation-delay: 0.4s;
  }
  .gnav.active .gnav__item:nth-child(5) {
    -webkit-animation-delay: 0.5s;
    animation-delay: 0.5s;
  }
  .gnav.active .gnav__item:nth-child(6) {
    -webkit-animation-delay: 0.6s;
    animation-delay: 0.6s;
  }
  .gnav.active .gnav__item:nth-child(7) {
    -webkit-animation-delay: 0.7s;
    animation-delay: 0.7s;
  }
  .gnav.active .gnav__item:nth-child(8) {
    -webkit-animation-delay: 0.8s;
    animation-delay: 0.8s;
  }
  .gnav.active .gnav__item:nth-child(9) {
    -webkit-animation-delay: 0.9s;
    animation-delay: 0.9s;
  }
  .gnav.active .gnav__item:nth-child(10) {
    -webkit-animation-delay: 1s;
    animation-delay: 1s;
  }
  .gnav.active .gnav__item:nth-child(11) {
    -webkit-animation-delay: 1.1s;
    animation-delay: 1.1s;
  }
  .gnav.active .gnav__item:nth-child(12) {
    -webkit-animation-delay: 1.2s;
    animation-delay: 1.2s;
  }
  .gnav.active .gnav__item:nth-child(13) {
    -webkit-animation-delay: 1.3s;
    animation-delay: 1.3s;
  }
  .gnav.active .gnav__item:nth-child(14) {
    -webkit-animation-delay: 1.4s;
    animation-delay: 1.4s;
  }
  .gnav.active .gnav__item:nth-child(15) {
    -webkit-animation-delay: 1.5s;
    animation-delay: 1.5s;
  }
  .gnav .dropdown__wrap {
    position: relative;
  }
  .gnav__item {
    border-bottom: 1px solid #d5d5d5;
  }
  .gnav__link {
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
    padding: 1.4rem 0;
  }
  .gnav__icon {
    position: absolute;
    top: 0;
    right: 0;
    width: 5rem;
    height: 5rem;
  }
  .gnav__icon::before, .gnav__icon::after {
    right: 0;
    left: auto;
    width: 1.6rem;
  }
  .gnav-submenu {
    width: 100%;
    margin-bottom: 1.5rem;
  }
  .gnav-submenu__row {
    padding: 2.5rem 1.5rem;
  }
  .gnav-submenu__left {
    width: 35%;
  }
  .gnav-submenu__right {
    padding-left: 1.5rem;
  }
}
/*---------- END GLOBAL NAV ----------*/
/*---------- START HEADER ----------*/
.header {
  position: fixed;
  z-index: 999;
  top: 0;
  width: 100%;
  background-color: #f3f3f3;
}

.header__row {
  border-bottom: 1px solid #d5d5d5;
}

.header-logo__link img {
  max-height: 5.3rem;
}

.header .dropdown.active .gnav__link::after {
  -webkit-transform: scaleX(1);
  -ms-transform: scaleX(1);
      transform: scaleX(1);
  -webkit-transform-origin: left center;
  -ms-transform-origin: left center;
      transform-origin: left center;
}
.header .dropdown.active .gnav__icon::before {
  -webkit-transform: rotate(0deg);
  -ms-transform: rotate(0deg);
      transform: rotate(0deg);
}

@media only screen and (min-width: 75em) {
  .header .gnav__link {
    position: relative;
  }
  .header .gnav__link::after {
    position: absolute;
    z-index: 2;
    content: "";
    left: 0;
    bottom: -1px;
    width: 100%;
    height: 0.4rem;
    -webkit-transform: scaleX(0);
    -ms-transform: scaleX(0);
        transform: scaleX(0);
    -webkit-transform-origin: right center;
    -ms-transform-origin: right center;
        transform-origin: right center;
    background-color: #17439A;
    -webkit-transition: -webkit-transform 0.4s cubic-bezier(0.37, 0.31, 0.31, 0.9);
    transition: -webkit-transform 0.4s cubic-bezier(0.37, 0.31, 0.31, 0.9);
    -o-transition: transform 0.4s cubic-bezier(0.37, 0.31, 0.31, 0.9);
    transition: transform 0.4s cubic-bezier(0.37, 0.31, 0.31, 0.9);
    transition: transform 0.4s cubic-bezier(0.37, 0.31, 0.31, 0.9), -webkit-transform 0.4s cubic-bezier(0.37, 0.31, 0.31, 0.9);
  }
  .header .gnav__link:hover::after {
    -webkit-transform: scaleX(1);
    -ms-transform: scaleX(1);
        transform: scaleX(1);
    -webkit-transform-origin: left center;
    -ms-transform-origin: left center;
        transform-origin: left center;
  }
}
@media only screen and (min-width: 48em) {
  .header.is-fixed .gnav__link {
    min-height: 8rem;
  }
  .header-main {
    position: relative;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
  }
  .header-main__right {
    margin-left: 5.6rem;
  }
  .header .gnav__list {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
  }
  .header .gnav__item {
    margin-left: 5.2rem;
  }
  .header .gnav__link {
    min-height: 10rem;
  }
  .header .gnav-submenu {
    position: absolute;
    top: calc(100% + 2rem);
    right: 0;
    min-width: 81.5rem;
  }
  .header .gnav-submenu__body {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
  }
  .header .gnav-submenu__list {
    width: calc(50% - 3rem);
  }
}
@media only screen and (max-width: 47.9375em) {
  .header__row {
    padding: 1rem 0;
  }
  .header-logo__link img {
    max-height: 5rem;
  }
  .header-mobile__list {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }
  .header-mobile__list li {
    margin-left: 1rem;
  }
  .header-mobile__list li a {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    width: 5rem;
    height: 5rem;
  }
}
/*---------- END HEADER ----------*/
/*---------- START HAMBURGER ----------*/
@media only screen and (max-width: 47.9375em) {
  .hamburger {
    position: relative;
    cursor: pointer;
    z-index: 1000;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    width: 5rem;
    height: 5rem;
    border-radius: 50%;
    background-color: #222222;
    -webkit-transition: all 0.3s ease-in-out;
    -o-transition: all 0.3s ease-in-out;
    transition: all 0.3s ease-in-out;
  }
  .hamburger__wrap {
    position: relative;
    width: 2.8rem;
    height: 2rem;
  }
  .hamburger span {
    display: inline-block;
    position: absolute;
    top: 0;
    right: 0;
    width: 2.8rem;
    height: 0.3rem;
    border-radius: 0.3rem;
    background-color: #ffffff;
    -webkit-transition: all 0.3s ease-in-out;
    -o-transition: all 0.3s ease-in-out;
    transition: all 0.3s ease-in-out;
  }
  .hamburger span:nth-child(1), .hamburger span:nth-child(3) {
    -webkit-transform-origin: center;
    -ms-transform-origin: center;
        transform-origin: center;
  }
  .hamburger span:nth-child(1) {
    top: 0;
  }
  .hamburger span:nth-child(2) {
    top: 0.9rem;
  }
  .hamburger span:nth-child(3) {
    top: 1.8rem;
  }
  .hamburger.is-active span:nth-child(1), .hamburger.is-active span:nth-child(3) {
    top: 9px;
    width: 100%;
  }
  .hamburger.is-active span:nth-child(1) {
    -webkit-transform: rotate(-225deg);
    -ms-transform: rotate(-225deg);
        transform: rotate(-225deg);
  }
  .hamburger.is-active span:nth-child(2) {
    opacity: 0;
  }
  .hamburger.is-active span:nth-child(3) {
    -webkit-transform: rotate(225deg);
    -ms-transform: rotate(225deg);
        transform: rotate(225deg);
  }
}
/*---------- END HAMBURGER ----------*/
/*====================================================================================
3. END COMMON HEADER
====================================================================================*/
/*====================================================================================
4. START COMMON FOOTER
====================================================================================*/
/*---------- START GROUP FOOTER ----------*/
.group-footer__head {
  padding-bottom: 1rem;
  border-bottom: 1px solid #575757;
}
.group-footer__head li {
  margin-bottom: 1rem;
}
.group-footer__head li:last-child {
  margin-bottom: 0;
}

.group-footer__body {
  padding-top: 2.2rem;
}

.group-footer__item {
  margin-bottom: 0.7rem;
  font-size: 1.2rem;
}
.group-footer__item:last-child {
  margin-bottom: 0;
}

.group-footer__item--en {
  color: #575757;
}

.group-footer__item--big {
  font-size: 1.4rem !important;
}

.group-footer__item a {
  display: inline-block;
}

@media only screen and (min-width: 75em) {
  .group-footer__item a {
    position: relative;
  }
  .group-footer__item a::after {
    position: absolute;
    z-index: 2;
    content: "";
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    -webkit-transform: scaleX(0);
    -ms-transform: scaleX(0);
        transform: scaleX(0);
    -webkit-transform-origin: right center;
    -ms-transform-origin: right center;
        transform-origin: right center;
    background-color: #17439A;
    -webkit-transition: -webkit-transform 0.4s cubic-bezier(0.37, 0.31, 0.31, 0.9);
    transition: -webkit-transform 0.4s cubic-bezier(0.37, 0.31, 0.31, 0.9);
    -o-transition: transform 0.4s cubic-bezier(0.37, 0.31, 0.31, 0.9);
    transition: transform 0.4s cubic-bezier(0.37, 0.31, 0.31, 0.9);
    transition: transform 0.4s cubic-bezier(0.37, 0.31, 0.31, 0.9), -webkit-transform 0.4s cubic-bezier(0.37, 0.31, 0.31, 0.9);
  }
  .group-footer__item a:hover::after {
    -webkit-transform: scaleX(1);
    -ms-transform: scaleX(1);
        transform: scaleX(1);
    -webkit-transform-origin: left center;
    -ms-transform-origin: left center;
        transform-origin: left center;
  }
}
@media only screen and (max-width: 47.9375em) {
  .group-footer__head li {
    margin-bottom: 0.7rem;
  }
  .group-footer__item {
    margin-bottom: 1rem;
    font-size: 1.3rem;
  }
}
/*---------- END GROUP FOOTER ----------*/
/*---------- START FOOTER NAV ----------*/
.fnav a {
  text-decoration: none;
}

.fnav__head {
  padding: 5.5rem 0 6.5rem;
}

.fnav__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: start;
  -ms-flex-pack: start;
  justify-content: start;
}

.fnav__sns .fnav__list {
  -webkit-box-pack: end;
  -ms-flex-pack: end;
  justify-content: end;
  padding: 5.5rem 0 0;
}

.fnav__item {
  margin-right: 30px;
}

.fnav__sns .fnav__list .fnav__item {
  width: 30px !important;
  margin-left: 20px;
  margin-right: 0;
}
.fnav__sns .fnav__list .fnav__item:last-of-type {
  width: 45px !important;
  margin-left: 10px;
}
.fnav__sns .fnav__list img {
  width: 100%;
}

.fnav__link {
  position: relative;
  display: inline-block;
  font-size: 1.4rem;
}

.fnav__group {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  max-width: 56rem;
}
.fnav__group .group-footer {
  width: calc(50% - 4rem);
}

@media only screen and (min-width: 75em) {
  .fnav__link::after {
    position: absolute;
    z-index: 2;
    content: "";
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    -webkit-transform: scaleX(0);
    -ms-transform: scaleX(0);
        transform: scaleX(0);
    -webkit-transform-origin: right center;
    -ms-transform-origin: right center;
        transform-origin: right center;
    background-color: #17439A;
    -webkit-transition: -webkit-transform 0.4s cubic-bezier(0.37, 0.31, 0.31, 0.9);
    transition: -webkit-transform 0.4s cubic-bezier(0.37, 0.31, 0.31, 0.9);
    -o-transition: transform 0.4s cubic-bezier(0.37, 0.31, 0.31, 0.9);
    transition: transform 0.4s cubic-bezier(0.37, 0.31, 0.31, 0.9);
    transition: transform 0.4s cubic-bezier(0.37, 0.31, 0.31, 0.9), -webkit-transform 0.4s cubic-bezier(0.37, 0.31, 0.31, 0.9);
  }
  .fnav__link:hover::after {
    -webkit-transform: scaleX(1);
    -ms-transform: scaleX(1);
        transform: scaleX(1);
    -webkit-transform-origin: left center;
    -ms-transform-origin: left center;
        transform-origin: left center;
  }
}
@media only screen and (max-width: 47.9375em) {
  .fnav__head {
    padding: 3rem 0px;
  }
  .fnav__list {
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    margin: 0;
  }
  .fnav__item {
    width: 48%;
    margin: 0 0 10px;
  }
  .fnav__item:nth-child(2) {
    -webkit-box-ordinal-group: 4;
    -ms-flex-order: 3;
    order: 3;
  }
  .fnav__item:nth-child(3) {
    -webkit-box-ordinal-group: 6;
    -ms-flex-order: 5;
    order: 5;
  }
  .fnav__item:nth-child(4) {
    -webkit-box-ordinal-group: 3;
    -ms-flex-order: 2;
    order: 2;
    width: 55%;
  }
  .fnav__item:nth-child(5) {
    -webkit-box-ordinal-group: 5;
    -ms-flex-order: 4;
    order: 4;
    width: 55%;
  }
  .fnav__group {
    max-width: 100%;
  }
  .fnav__group .group-footer {
    width: calc(50% - 2rem);
  }
}
/*---------- END FOOTER NAV ----------*/
.footer__row {
  padding: 6rem 0;
}

.footer-logo {
  margin-bottom: 5.3rem;
}

.footer-info__item {
  margin-bottom: 3.3rem;
  font-size: 1.2rem;
}
.footer-info__item:last-of-type {
  margin-bottom: 0;
}

.footer__copy {
  padding: 1.5rem 0 4rem 0;
  text-align: center;
  font-size: 1.2rem;
  line-height: 1.5;
}

@media only screen and (min-width: 48em) {
  .footer__row {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }
  .footer__left {
    width: 40%;
  }
  .footer__right {
    -webkit-box-flex: 1;
    -ms-flex: 1;
    flex: 1;
    min-width: 1px;
  }
  .footer-info__item {
    line-height: 2;
  }
}
@media only screen and (max-width: 47.9375em) {
  .footer__row {
    padding: 5rem 0 4rem 0;
  }
  .footer-logo {
    margin-bottom: 3.5rem;
  }
  .footer-logo img {
    max-height: 7.5rem;
  }
  .footer-info__item {
    margin-bottom: 2rem;
    font-size: 1.4rem;
  }
  .footer__copy {
    padding: 0 0 2.5rem 0;
    font-size: 1.4rem;
  }
}
/*====================================================================================
4. END COMMON FOOTER
====================================================================================*/
/*====================================================================================
5. START COMMON BACK TO TOP
====================================================================================*/
.to-top {
  position: fixed;
  cursor: none;
  z-index: 200;
  bottom: 20px;
  right: 20px;
  width: 80px;
  height: 75px;
  opacity: 0;
  visibility: hidden;
  -webkit-transition: opacity 0.4s ease, visibility 0.4s ease;
  -o-transition: opacity 0.4s ease, visibility 0.4s ease;
  transition: opacity 0.4s ease, visibility 0.4s ease;
}

.to-top__inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  width: 100%;
  height: 100%;
  text-align: center;
}

.to-top__text {
  font-size: 14px;
  line-height: 1.4;
  font-weight: 900;
  letter-spacing: 0.1em;
  font-family: "Zen Old Mincho", serif;
}

.to-top__icon img {
  max-height: 32px;
}

.to-top.is-show {
  opacity: 1;
  visibility: visible;
}

/*====================================================================================
5. END COMMON BACK TO TOP
====================================================================================*/
/*====================================================================================
6. START COMMON SECTION
====================================================================================*/
/*---------- START COMMON CONTACT ----------*/
.cm-contact {
  position: relative;
  padding: 9rem 0 8rem 0;
  overflow: hidden;
}
.cm-contact::before {
  position: absolute;
  content: "";
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-image: url("./../images/common/cm-contact-bg.png");
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
  -webkit-transition: -webkit-transform 0.5s cubic-bezier(0.43, 0.05, 0.17, 1);
  transition: -webkit-transform 0.5s cubic-bezier(0.43, 0.05, 0.17, 1);
  -o-transition: transform 0.5s cubic-bezier(0.43, 0.05, 0.17, 1);
  transition: transform 0.5s cubic-bezier(0.43, 0.05, 0.17, 1);
  transition: transform 0.5s cubic-bezier(0.43, 0.05, 0.17, 1), -webkit-transform 0.5s cubic-bezier(0.43, 0.05, 0.17, 1);
}

.cm-contact__row {
  position: relative;
  z-index: 2;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
}

.cm-contact__right {
  text-align: center;
}

.cm-contact .title-main {
  margin-bottom: 5.5rem;
}

.cm-contact__desc {
  color: #ffffff;
  font-size: 1.5rem;
}

.cm-contact .arrow-main {
  display: inline-block;
  margin: 0 auto;
}

@media only screen and (min-width: 48em) {
  .cm-contact__left,
  .cm-contact__right {
    width: 50%;
  }
  .cm-contact__desc {
    line-height: 2.2;
  }
}
@media only screen and (max-width: 47.9375em) {
  .cm-contact {
    padding: 5rem 0 4.5rem 0;
  }
  .cm-contact::before {
    background-image: url("./../images/common/cm-contact-bg-sp.png");
  }
  .cm-contact__left {
    -webkit-box-flex: 1;
    -ms-flex: 1;
    flex: 1;
    min-width: 1px;
    padding-right: 0.6rem;
  }
  .cm-contact__right {
    width: 9rem;
  }
  .cm-contact .title-main {
    margin-bottom: 4rem;
  }
  .cm-contact__desc {
    font-size: 1.4rem;
  }
}
@media only screen and (max-width: 26.25em) {
  .cm-contact__right {
    width: 6rem;
  }
}
/*---------- END COMMON CONTACT ----------*/
/*---------- START COMMON BUSINESS ----------*/
.cm-business__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
}
.cm-business__list .card-top:last-child {
  margin-right: 0;
}

@media only screen and (min-width: 48em) {
  .cm-business__list .card-top {
    width: calc(33.33% - 3.4rem);
    margin-right: 5rem;
  }
}
@media only screen and (min-width: 30.0625em) and (max-width: 47.9375em) {
  .cm-business__list .card-top {
    width: calc(50% - 1.5rem);
    margin-right: 3rem;
  }
  .cm-business__list .card-top:nth-child(even) {
    margin-right: 0;
  }
}
@media only screen and (max-width: 47.9375em) {
  .cm-business__list .card-top {
    margin-bottom: 5rem;
  }
  .cm-business__list .card-top:last-child {
    margin-bottom: 0;
  }
}
@media only screen and (max-width: 30em) {
  .top-business__list .card-top {
    width: 100%;
  }
}
/*---------- END COMMON BUSINESS ----------*/
/*====================================================================================
6. END COMMON SECTION
====================================================================================*/
/*====================================================================================
7. START COMMON TITLE
====================================================================================*/
/*---------- START TITLE HEADER ----------*/
.title-header span {
  display: block;
  line-height: 1.5;
  letter-spacing: 0.05em;
}

.title-header__en {
  font-size: 1.6rem;
  font-weight: 700;
}

.title-header__ja {
  font-size: 1.2rem;
  font-weight: 400;
}

/*---------- END TITLE HEADER ----------*/
/*---------- START TITLE SECTION ----------*/
.title-section {
  position: relative;
}
.title-section::before {
  position: absolute;
  top: -5.2rem;
  left: 50%;
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
      transform: translateX(-50%);
  font-size: 10.5rem;
  line-height: 1;
  font-weight: 500;
  font-style: italic;
  font-family: "Cormorant Garamond", serif;
}

.title-section__text {
  position: absolute;
  top: -5.2rem;
  left: 50%;
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
      transform: translateX(-50%);
  font-size: 10.5rem;
  line-height: 1;
  font-weight: 500;
  font-style: italic;
  font-family: "Cormorant Garamond", serif;
}

.title-section::before {
  content: attr(data-title);
  color: #222222;
}

.title-section__text {
  z-index: 2;
  color: #ffffff;
}

@media only screen and (max-width: 47.9375em) {
  .title-section::before,
  .title-section__text {
    top: -2.5rem;
    font-size: 5rem;
  }
}
/*---------- END TITLE SECTION ----------*/
/*---------- START TITLE LINE ----------*/
.title-line {
  position: relative;
  color: #0B318F;
  font-size: 2.4rem;
  padding-left: 3rem;
}
.title-line::before {
  position: absolute;
  content: "";
  left: 0;
  width: 1rem;
  height: 120%;
  background: rgb(11, 49, 143);
  background: -webkit-gradient(linear, left top, left bottom, from(rgb(11, 49, 143)), to(rgb(126, 206, 244)));
  background: -o-linear-gradient(top, rgb(11, 49, 143) 0%, rgb(126, 206, 244) 100%);
  background: linear-gradient(to bottom, rgb(11, 49, 143) 0%, rgb(126, 206, 244) 100%);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#0b318f", endColorstr="#7ecef4", GradientType=0);
}

@media only screen and (max-width: 47.9375em) {
  .title-line {
    padding-left: 2rem;
    font-size: 2rem;
  }
  .title-line::before {
    width: 0.6rem;
    height: 100%;
  }
}
/*---------- END TITLE LINE ----------*/
/*---------- START HEADING PAGE, TITLE PAGE ----------*/
.heading-page {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
}

.title-page span {
  display: block;
  font-weight: 700;
}

.title-page__en {
  position: relative;
  color: #717170;
  line-height: 1;
}
.title-page__en::before {
  position: absolute;
  content: "";
  bottom: 0.5rem;
  width: 100%;
  height: 1px;
  background-color: #D5D5D5;
}
.title-page__en small {
  position: relative;
  display: inline-block;
  padding-right: 1rem;
  font-size: 1.2rem;
  line-height: 1;
}

.title-page__ja {
  margin-top: 0.6rem;
  font-size: 4.8rem;
  line-height: 1.4;
}

@media only screen and (min-width: 48em) {
  .title-page__ja {
    letter-spacing: 0.24rem;
  }
}
@media only screen and (max-width: 47.9375em) {
  .title-page__ja {
    font-size: 3rem;
    letter-spacing: 0.05rem;
  }
}
@media only screen and (max-width: 30em) {
  .title-page__ja {
    font-size: 2.5rem;
  }
}
/*---------- END HEADING PAGE, TITLE PAGE ----------*/
/*---------- START HEADING MAIN ----------*/
.heading-main {
  padding-top: 3.5rem;
  border-top: 1px solid #d5d5d5;
}

@media only screen and (max-width: 47.9375em) {
  .heading-main {
    padding-top: 1rem;
  }
}
/*---------- END HEADING MAIN ----------*/
/*---------- START TITLE MAIN ----------*/
.title-main span {
  display: block;
}

.title-main__en {
  font-size: 7.9rem;
  font-weight: 500;
  line-height: 0.98;
  letter-spacing: normal;
  text-transform: uppercase;
  font-family: "Cormorant Garamond", serif;
}

.title-main__ja {
  font-size: 2rem;
  line-height: 1.5;
  font-weight: 700;
  letter-spacing: 0.1em;
}

@media only screen and (max-width: 47.9375em) {
  .title-main__en {
    font-size: 4.7rem;
  }
  .title-main__ja {
    font-size: 1.7rem;
  }
}
@media only screen and (max-width: 30em) {
  .title-main__en {
    font-size: 4.4rem;
  }
  .title-main__ja {
    margin-top: 0.1rem;
    font-size: 1.5rem;
  }
}
/*---------- END TITLE MAIN ----------*/
/*---------- START TITLE MAIN WHITE ----------*/
.title-main--white span {
  color: #ffffff;
}

/*---------- END TITLE MAIN WHITE ----------*/
/*---------- START HEADING GROUP ----------*/
.heading-group {
  position: relative;
  padding: 0.8rem 1rem 0.8rem 3rem;
  background-color: #ffffff;
}
.heading-group::before {
  position: absolute;
  content: "";
  top: 0;
  left: 0;
  width: 1rem;
  height: 100%;
  background: rgb(126, 206, 244);
  background: -o-linear-gradient(45deg, rgb(126, 206, 244) 0%, rgb(11, 49, 143) 100%);
  background: linear-gradient(45deg, rgb(126, 206, 244) 0%, rgb(11, 49, 143) 100%);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#7ecef4", endColorstr="#0b318f", GradientType=1);
}
.heading-group__title {
  color: #0B318F;
  font-size: 2.4rem;
}

@media only screen and (max-width: 47.9375em) {
  .heading-group {
    padding: 0.8rem 1rem 0.8rem 2.2rem;
  }
  .heading-group::before {
    width: 0.6rem;
  }
  .heading-group__title {
    font-size: 1.8rem;
  }
}
/*---------- END HEADING GROUP ----------*/
/*---------- START HEADING CHART ----------*/
.heading-chart {
  margin-left: 5rem;
  border: 2px solid #0B318F;
}
.heading-chart__left, .heading-chart__right {
  padding: 0.5rem 2rem;
}
.heading-chart__left-inner, .heading-chart__right-inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 100%;
  height: 100%;
}
.heading-chart__left {
  position: relative;
  background-color: #0B318F;
}
.heading-chart__left::before {
  position: absolute;
  content: "";
  width: 5rem;
  top: 50%;
  left: -5rem;
  height: 1px;
  background-color: #0B318F;
}
.heading-chart__left h3 {
  font-size: 2.6rem;
  color: #ffffff;
}
.heading-chart__right {
  font-size: 2rem;
  font-weight: 500;
  background-color: #ffffff;
}

@media only screen and (max-width: 47.9375em) {
  .heading-chart {
    margin-left: 3.5rem;
  }
  .heading-chart__left, .heading-chart__right {
    padding: 0.8rem 1.5rem;
  }
  .heading-chart__left::before {
    left: -3.5rem;
    width: 3.5rem;
  }
  .heading-chart__left h3 {
    font-size: 2rem;
  }
  .heading-chart__right {
    font-size: 1.6rem;
  }
}
@media only screen and (min-width: 30.0625em) {
  .heading-chart {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }
  .heading-chart__left {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
  }
  .heading-chart__right {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    min-width: 1px;
  }
}
/*---------- START HEADING CHART ----------*/
/*====================================================================================
7. END COMMON TITLE
====================================================================================*/
/*====================================================================================
8. START COMMON ICON
====================================================================================*/
/*---------- START ICON ZOOM  ----------*/
.lightbox-zoom {
  position: relative;
  display: block;
  overflow: hidden;
}
.lightbox-zoom:before {
  position: absolute;
  display: inline-block;
  content: "";
  z-index: 3;
  right: 2rem;
  bottom: 2rem;
  width: 3rem;
  height: 3rem;
  background-image: url("./../images/common/icon-zoom01.png");
  background-image: -webkit-image-set(url("./../images/common/icon-zoom01.png") 1x, url("./../images/common/icon-zoom01@2x.png") 2x);
  background-image: image-set(url("./../images/common/icon-zoom01.png") 1x, url("./../images/common/icon-zoom01@2x.png") 2x);
  background-repeat: no-repeat;
  background-position: center center;
  background-size: contain;
}

@media only screen and (min-width: 75em) {
  .lightbox-zoom img {
    -webkit-transition: -webkit-transform 0.5s ease;
    transition: -webkit-transform 0.5s ease;
    -o-transition: transform 0.5s ease;
    transition: transform 0.5s ease;
    transition: transform 0.5s ease, -webkit-transform 0.5s ease;
  }
  .lightbox-zoom:hover img {
    -webkit-transform: scale(1.08);
    -ms-transform: scale(1.08);
        transform: scale(1.08);
  }
}
@media only screen and (max-width: 47.9375em) {
  .lightbox-zoom::before {
    right: 1rem;
    bottom: 1rem;
  }
}
/*---------- END ICON ZOOM ----------*/
/*---------- START ARROW MAIN  ----------*/
.arrow-main {
  position: relative;
  display: inline-block;
  border-radius: 50%;
  -webkit-transition: background-color 0.3s ease;
  -o-transition: background-color 0.3s ease;
  transition: background-color 0.3s ease;
}
.arrow-main::before, .arrow-main::after {
  position: absolute;
  content: "";
}
.arrow-main::before {
  opacity: 1;
  top: 1px;
  left: 1px;
  right: 1px;
  bottom: 1px;
  border-radius: 50%;
  border: 1px solid #c2c2c2;
  -webkit-transition: opacity 0.3s cubic-bezier(0.445, 0.05, 0.55, 0.95) 0s;
  -o-transition: opacity 0.3s cubic-bezier(0.445, 0.05, 0.55, 0.95) 0s;
  transition: opacity 0.3s cubic-bezier(0.445, 0.05, 0.55, 0.95) 0s;
}
.arrow-main::after {
  top: 50%;
  left: 50%;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: contain;
}

@media only screen and (min-width: 75em) {
  .arrow-main__circle {
    position: absolute;
    right: 0;
    top: 0;
    -webkit-transform: rotate(-90deg);
    -ms-transform: rotate(-90deg);
        transform: rotate(-90deg);
    stroke: #17439A;
    stroke-width: 1px;
  }
}
/*---------- END ARROW MAIN  ----------*/
/*---------- START ARROW MAIN XS  ----------*/
.arrow-main--xs {
  width: 2rem;
  height: 2rem;
  margin-top: -1rem;
}
.arrow-main--xs::after {
  width: 1.2rem;
  height: 1.2rem;
  margin-top: -0.6rem;
  margin-left: -0.6rem;
  background-image: url("./../images/common/icon-arrow-xs-right01.svg");
}

@media only screen and (min-width: 75em) {
  .arrow-main--xs .arrow-main__circle {
    width: 2rem;
    height: 2rem;
    stroke-dasharray: 5rem;
    stroke-dashoffset: 5rem;
    -webkit-animation: borderCircleXS 0.8s cubic-bezier(0.445, 0.05, 0.55, 0.95) 0s;
    animation: borderCircleXS 0.8s cubic-bezier(0.445, 0.05, 0.55, 0.95) 0s;
  }
}
/*---------- END ARROW MAIN XS ----------*/
/*---------- START ARROW MAIN SM  ----------*/
.arrow-main--sm {
  width: 3.6rem;
  height: 3.6rem;
}
.arrow-main--sm::after {
  width: 1.6rem;
  height: 1.6rem;
  margin-top: -0.8rem;
  margin-left: -0.8rem;
  background-image: url("./../images/common/icon-arrow-sm-right02.svg");
}

@media only screen and (min-width: 75em) {
  .arrow-main--sm .arrow-main__circle {
    width: 3.6rem;
    height: 3.6rem;
    stroke-dasharray: 10rem;
    stroke-dashoffset: 10rem;
    -webkit-animation: borderCircleSM 0.8s cubic-bezier(0.445, 0.05, 0.55, 0.95) 0s;
    animation: borderCircleSM 0.8s cubic-bezier(0.445, 0.05, 0.55, 0.95) 0s;
  }
}
@media only screen and (max-width: 47.9375em) {
  .arrow-main--sm {
    width: 3rem;
    height: 3rem;
  }
  .arrow-main--sm::after {
    width: 1.4rem;
    height: 1.4rem;
    margin-top: -0.7rem;
    margin-left: -0.7rem;
  }
}
/*---------- END ARROW MAIN SM  ----------*/
/*---------- START ARROW MAIN LG  ----------*/
.arrow-main--lg {
  width: 18rem;
  height: 18rem;
  -webkit-transition: background-color 0.5s ease;
  -o-transition: background-color 0.5s ease;
  transition: background-color 0.5s ease;
}
.arrow-main--lg::after {
  width: 10.4rem;
  height: 10.4rem;
  margin-top: -5.4rem;
  margin-left: -5.4rem;
  background-image: url("./../images/common/icon-arrow-lg-right01.svg");
}

@media only screen and (min-width: 75em) {
  .arrow-main--lg:hover {
    background-color: #17439A;
  }
  .arrow-main--lg .arrow-main__circle {
    width: 18rem;
    height: 18rem;
    stroke-dasharray: 55.5rem;
    stroke-dashoffset: 55.5rem;
    -webkit-animation: borderCircleMD 0.8s cubic-bezier(0.445, 0.05, 0.55, 0.95) 0s;
    animation: borderCircleMD 0.8s cubic-bezier(0.445, 0.05, 0.55, 0.95) 0s;
  }
}
@media only screen and (max-width: 47.9375em) {
  .arrow-main--lg {
    width: 9rem;
    height: 9rem;
  }
  .arrow-main--lg::after {
    width: 5.2rem;
    height: 5.2rem;
    margin-top: -2.6rem;
    margin-left: -2.6rem;
  }
}
@media only screen and (max-width: 26.25em) {
  .arrow-main--lg {
    width: 6rem;
    height: 6rem;
  }
  .arrow-main--lg::after {
    width: 3.4rem;
    height: 3.4rem;
    margin-top: -1.7rem;
    margin-left: -1.7rem;
  }
}
/*---------- END ARROW MAIN LG  ----------*/
/*---------- START  ----------*/
/*---------- END  ----------*/
/*====================================================================================
8. END COMMON ICON
====================================================================================*/
/*====================================================================================
9. START COMMON BUTTON
====================================================================================*/
/*---------- START BUTTON BASE ----------*/
.btn {
  position: relative;
  display: inline-block;
  cursor: pointer;
  width: 100%;
  padding: 0;
  border: 0;
  outline: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  vertical-align: middle;
  -ms-touch-action: manipulation;
  touch-action: manipulation;
  text-decoration: none !important;
}
.btn:focus {
  outline: none;
}
.btn.full-width {
  display: block;
  width: 100%;
}

/*---------- END BUTTON BASE ----------*/
/*---------- START BUTTON ARROW ----------*/
.btn-arrow {
  position: relative;
  width: 18rem;
  height: 18rem;
  border-radius: 50%;
  -webkit-transition: background-color 0.3s ease;
  -o-transition: background-color 0.3s ease;
  transition: background-color 0.3s ease;
}
.btn-arrow::before {
  position: absolute;
  content: "";
  opacity: 1;
  top: 1px;
  left: 1px;
  right: 1px;
  bottom: 1px;
  border-radius: 50%;
  border: 1px solid #000000;
  -webkit-transition: opacity 0.3s cubic-bezier(0.445, 0.05, 0.55, 0.95) 0s;
  -o-transition: opacity 0.3s cubic-bezier(0.445, 0.05, 0.55, 0.95) 0s;
  transition: opacity 0.3s cubic-bezier(0.445, 0.05, 0.55, 0.95) 0s;
}

.btn-arrow__svg {
  position: absolute;
  right: 0;
  top: 0;
  width: 18rem;
  height: 18rem;
  -webkit-transform: rotate(-90deg);
  -ms-transform: rotate(-90deg);
      transform: rotate(-90deg);
  stroke: #3695D6;
  stroke-width: 1px;
  stroke-dasharray: 55.5rem;
  stroke-dashoffset: 55.5rem;
  -webkit-animation: borderCircle 0.8s cubic-bezier(0.445, 0.05, 0.55, 0.95) 0s;
  animation: borderCircle 0.8s cubic-bezier(0.445, 0.05, 0.55, 0.95) 0s;
}

.btn-arrow:hover::before {
  opacity: 0;
}
.btn-arrow:hover .btn-arrow__svg {
  -webkit-animation: borderCircleHover 0.8s cubic-bezier(0.445, 0.05, 0.55, 0.95) 0s forwards;
  animation: borderCircleHover 0.8s cubic-bezier(0.445, 0.05, 0.55, 0.95) 0s forwards;
}

/*---------- END BUTTON ARROW ----------*/
/*---------- START BUTTON HEADER ----------*/
.btn-header {
  overflow: hidden;
  border-radius: 50%;
  width: 6.4rem;
  height: 6.4rem;
  -webkit-transition: background-color 0.3s ease;
  -o-transition: background-color 0.3s ease;
  transition: background-color 0.3s ease;
}
.btn-header a {
  display: block;
  width: 100%;
  height: 100%;
}
.btn-header a::before {
  position: absolute;
  content: "";
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
      transform: translate(-50%, -50%);
  background-position: center center;
  background-repeat: no-repeat;
  background-size: contain;
}

@media only screen and (max-width: 47.9375em) {
  .btn-header {
    width: 5rem;
    height: 5rem;
  }
}
/*---------- END BUTTON HEADER ----------*/
/*---------- START BUTTON HEADER MAIL ----------*/
.btn-header--mail {
  background-color: #17439A;
  border: 1px solid #17439A;
}
.btn-header--mail a::before {
  width: 2.4rem;
  height: 2.4rem;
  background-image: url("./../images/common/icon-mail01.svg");
}

@media only screen and (min-width: 75em) {
  .btn-header--mail:hover {
    background-color: #ffffff;
  }
  .btn-header--mail:hover a::before {
    background-image: url("./../images/common/icon-mail02.svg");
  }
}
@media only screen and (max-width: 47.9375em) {
  .btn-header--mail a::before {
    width: 3rem;
    height: 2.4rem;
    background-image: url("./../images/common/icon-mail03.svg");
  }
}
/*---------- END BUTTON HEADER MAIL ----------*/
/*---------- START BUTTON MAIN ----------*/
.btn-main {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  border-radius: 3rem;
}

.btn-main__text {
  position: relative;
  z-index: 2;
  font-size: 1.6rem;
  font-weight: 700;
  letter-spacing: 0.07rem;
  -webkit-transition: color 0.3s ease;
  -o-transition: color 0.3s ease;
  transition: color 0.3s ease;
}

.btn-main__icon {
  position: absolute;
  top: 50%;
  right: 0.8rem;
  background-color: #ffffff;
  -webkit-transition: width 0.4s ease;
  -o-transition: width 0.4s ease;
  transition: width 0.4s ease;
}
.btn-main__icon::before {
  position: absolute;
  content: "";
  top: 50%;
  right: 1rem;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: contain;
}

@media only screen and (min-width: 75em) {
  .btn-main:hover .btn-main__icon {
    width: calc(100% - 1.6rem);
  }
}
@media only screen and (max-width: 47.9375em) {
  .btn-main__text {
    font-size: 1.5rem;
  }
  .btn-main__icon::before {
    right: 0.8rem;
  }
}
/*---------- END BUTTON MAIN ----------*/
/*---------- START BUTTON MAIN MD ----------*/
.btn-main--md {
  max-width: 30rem;
  min-height: 6rem;
  padding: 0.5rem 0.5rem 0.5rem 3.6rem;
}
.btn-main--md .btn-main__icon {
  width: 4.4rem;
  height: 4.4rem;
  margin-top: -2.2rem;
  border-radius: 4.4rem;
}
.btn-main--md .btn-main__icon::before {
  width: 2.4rem;
  height: 2.4rem;
  margin-top: -1.2rem;
  background-image: url("./../images/common/icon-arrow-md-right01.svg");
}
.btn-main--md.btn-main--left {
  padding: 0.5rem 3.6rem 0.5rem 0.5rem;
}

@media only screen and (max-width: 47.9375em) {
  .btn-main--md {
    max-width: 24rem;
    min-height: 5rem;
    padding: 0.5rem 0.5rem 0.5rem 2.9rem;
  }
  .btn-main--md .btn-main__icon {
    width: 3.5rem;
    height: 3.5rem;
    margin-top: -1.75rem;
  }
  .btn-main--md .btn-main__icon::before {
    width: 1.8rem;
    height: 1.8rem;
    margin-top: -0.9rem;
  }
  .btn-main--md.btn-main--left {
    padding: 0.5rem 2.9rem 0.5rem 0.5rem;
  }
}
/*---------- END BUTTON MAIN MD ----------*/
/*---------- START BUTTON MAIN SM ----------*/
.btn-main--sm {
  max-width: 21.5rem;
  min-height: 5rem;
  padding: 0.5rem 0.5rem 0.5rem 2.8rem;
}
.btn-main--sm .btn-main__text {
  font-size: 1.3rem;
}
.btn-main--sm .btn-main__icon {
  width: 3.6rem;
  height: 3.6rem;
  margin-top: -1.8rem;
  border-radius: 3.6rem;
}
.btn-main--sm .btn-main__icon::before {
  right: 1rem;
  width: 1.6rem;
  height: 1.6rem;
  margin-top: -0.8rem;
  background-image: url("./../images/common/icon-arrow-sm-right02.svg");
}

@media only screen and (max-width: 47.9375em) {
  .btn-main--sm {
    max-width: 17rem;
    min-height: 4.5rem;
    padding: 0.5rem 0.5rem 0.5rem 2.5rem;
  }
  .btn-main--sm .btn-main__icon {
    width: 3.2rem;
    height: 3.2rem;
    margin-top: -1.6rem;
  }
  .btn-main--sm .btn-main__icon::before {
    right: 0.9rem;
    width: 1.4rem;
    height: 1.4rem;
    margin-top: -0.7rem;
  }
}
/*---------- END BUTTON MAIN SM ----------*/
/*---------- START BUTTON MAIN BLUE ----------*/
.btn-main--blue {
  background-color: #17439A;
}
.btn-main--blue .btn-main__text {
  color: #ffffff;
}

@media only screen and (min-width: 75em) {
  .btn-main--blue:hover .btn-main__text {
    color: #17439A;
  }
}
/*---------- END BUTTON MAIN BLUE ----------*/
/*---------- START BUTTON MAIN LIGHT BLUE ----------*/
.btn-main--light-blue {
  background-color: #7ECEF4;
}
.btn-main--light-blue .btn-main__text {
  color: #ffffff;
}

@media only screen and (min-width: 75em) {
  .btn-main--light-blue:hover .btn-main__text {
    color: #7ECEF4;
  }
}
/*---------- END BUTTON MAIN LIGHT BLUE ----------*/
/*---------- START BUTTON MAIN WHITE ----------*/
.btn-main--white {
  background-color: #ffffff;
}
.btn-main--white .btn-main__icon {
  background-color: #17439A;
}
.btn-main--white .btn-main__icon::before {
  background-image: url("./../images/common/icon-arrow-md-right03.svg");
}

@media only screen and (min-width: 75em) {
  .btn-main--white:hover .btn-main__text {
    color: #ffffff;
  }
}
/*---------- END BUTTON MAIN WHITE ----------*/
/*---------- START BUTTON MAIN LEFT ----------*/
.btn-main--left {
  -webkit-box-pack: end;
  -ms-flex-pack: end;
  justify-content: flex-end;
  padding: 0.5rem 2.8rem 0.5rem 0.5rem;
}
.btn-main--left .btn-main__icon {
  left: 0.8rem;
  right: auto !important;
}
.btn-main--left .btn-main__icon::before {
  left: 1rem;
  right: auto !important;
  background-image: url("./../images/common/icon-arrow-sm-left01.svg");
}

@media only screen and (max-width: 47.9375em) {
  .btn-main--left .btn-main__icon::before {
    left: 0.9rem;
  }
}
/*---------- END BUTTON MAIN LEFT ----------*/
/*---------- START BUTTON MAIN INPUT ----------*/
.btn-main--ipt {
  padding: 0;
}
.btn-main--ipt input {
  position: relative;
  cursor: pointer;
  z-index: 3;
  width: 100%;
  min-height: 6rem;
  padding: 0.5rem 0.5rem 0.5rem 3.6rem;
  color: #ffffff;
  font-size: 1.6rem;
  text-align: left;
  font-weight: 700;
  letter-spacing: 0.07rem;
  border: none;
  border-radius: 3rem;
  -webkit-transition: color 0.3s ease;
  -o-transition: color 0.3s ease;
  transition: color 0.3s ease;
}
.btn-main--ipt:hover input {
  color: #17439A;
}

@media only screen and (max-width: 47.9375em) {
  .btn-main--ipt input {
    min-height: 5rem;
    padding: 0.5rem 0.5rem 0.5rem 2.9rem;
  }
}
/*---------- END BUTTON MAIN INPUT ----------*/
/*---------- START  ----------*/
/*---------- END  ----------*/
/*---------- START  ----------*/
/*---------- END  ----------*/
/*---------- START  ----------*/
/*---------- END  ----------*/
/*====================================================================================
9. END COMMON BUTTON
====================================================================================*/
/*====================================================================================
10. START COMMON DECORATION
====================================================================================*/
/*---------- START SHAPE DECORATION ----------*/
.shape-deco {
  position: absolute;
  display: inline-block;
  pointer-events: none;
  line-height: 0;
}

/*---------- END SHAPE DECORATION ----------*/
/*---------- START  ----------*/
/*---------- END  ----------*/
/*---------- START  ----------*/
/*---------- END  ----------*/
/*====================================================================================
10. END COMMON DECORATION
====================================================================================*/
/*====================================================================================
11. START COMMON KEYFRAMES
====================================================================================*/
/*---------- START FADE IN LEFT ----------*/
@-webkit-keyframes fadeInLeft {
  0% {
    opacity: 0;
    -webkit-transform: translateX(-30px);
    transform: translateX(-30px);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }
}
@keyframes fadeInLeft {
  0% {
    opacity: 0;
    -webkit-transform: translateX(-30px);
    transform: translateX(-30px);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }
}
/*---------- END FADE IN LEFT ----------*/
/*---------- START BORDER CIRCLE MD  ----------*/
@-webkit-keyframes borderCircleMD {
  0% {
    -webkit-transform: rotate(90deg);
    transform: rotate(90deg);
    stroke-dashoffset: 0;
  }
  100% {
    -webkit-transform: rotate(270deg);
    transform: rotate(270deg);
    stroke-dashoffset: -55.5rem;
  }
}
@keyframes borderCircleMD {
  0% {
    -webkit-transform: rotate(90deg);
    transform: rotate(90deg);
    stroke-dashoffset: 0;
  }
  100% {
    -webkit-transform: rotate(270deg);
    transform: rotate(270deg);
    stroke-dashoffset: -55.5rem;
  }
}
/*---------- END BORDER CIRCLE MD ----------*/
/*---------- START BORDER CIRCLE MD ----------*/
@-webkit-keyframes borderCircleMDHover {
  0% {
    -webkit-transform: rotate(-90deg);
    transform: rotate(-90deg);
    stroke-dashoffset: 55.5rem;
  }
  100% {
    -webkit-transform: rotate(90deg);
    transform: rotate(90deg);
    stroke-dashoffset: 0;
  }
}
@keyframes borderCircleMDHover {
  0% {
    -webkit-transform: rotate(-90deg);
    transform: rotate(-90deg);
    stroke-dashoffset: 55.5rem;
  }
  100% {
    -webkit-transform: rotate(90deg);
    transform: rotate(90deg);
    stroke-dashoffset: 0;
  }
}
/*---------- END BORDER CIRCLE MD ----------*/
/*---------- START BORDER CIRCLE SM ----------*/
@-webkit-keyframes borderCircleSM {
  0% {
    -webkit-transform: rotate(90deg);
    transform: rotate(90deg);
    stroke-dashoffset: 0;
  }
  100% {
    -webkit-transform: rotate(270deg);
    transform: rotate(270deg);
    stroke-dashoffset: -10rem;
  }
}
@keyframes borderCircleSM {
  0% {
    -webkit-transform: rotate(90deg);
    transform: rotate(90deg);
    stroke-dashoffset: 0;
  }
  100% {
    -webkit-transform: rotate(270deg);
    transform: rotate(270deg);
    stroke-dashoffset: -10rem;
  }
}
/*---------- END BORDER CIRCLE SM ----------*/
/*---------- START BORDER CIRCLE SM HOVER ----------*/
@-webkit-keyframes borderCircleSMHover {
  0% {
    -webkit-transform: rotate(-90deg);
    transform: rotate(-90deg);
    stroke-dashoffset: 10rem;
  }
  100% {
    -webkit-transform: rotate(90deg);
    transform: rotate(90deg);
    stroke-dashoffset: 0;
  }
}
@keyframes borderCircleSMHover {
  0% {
    -webkit-transform: rotate(-90deg);
    transform: rotate(-90deg);
    stroke-dashoffset: 10rem;
  }
  100% {
    -webkit-transform: rotate(90deg);
    transform: rotate(90deg);
    stroke-dashoffset: 0;
  }
}
/*---------- END BORDER CIRCLE SM HOVER ----------*/
/*---------- START BORDER CIRCLE XS ----------*/
@-webkit-keyframes borderCircleXS {
  0% {
    -webkit-transform: rotate(90deg);
    transform: rotate(90deg);
    stroke-dashoffset: 0;
  }
  100% {
    -webkit-transform: rotate(270deg);
    transform: rotate(270deg);
    stroke-dashoffset: -5rem;
  }
}
@keyframes borderCircleXS {
  0% {
    -webkit-transform: rotate(90deg);
    transform: rotate(90deg);
    stroke-dashoffset: 0;
  }
  100% {
    -webkit-transform: rotate(270deg);
    transform: rotate(270deg);
    stroke-dashoffset: -5rem;
  }
}
/*---------- END BORDER CIRCLE XS ----------*/
/*---------- START BORDER CIRCLE XS HOVER ----------*/
@-webkit-keyframes borderCircleXSHover {
  0% {
    -webkit-transform: rotate(-90deg);
    transform: rotate(-90deg);
    stroke-dashoffset: 5rem;
  }
  100% {
    -webkit-transform: rotate(90deg);
    transform: rotate(90deg);
    stroke-dashoffset: 0;
  }
}
@keyframes borderCircleXSHover {
  0% {
    -webkit-transform: rotate(-90deg);
    transform: rotate(-90deg);
    stroke-dashoffset: 5rem;
  }
  100% {
    -webkit-transform: rotate(90deg);
    transform: rotate(90deg);
    stroke-dashoffset: 0;
  }
}
/*---------- END BORDER CIRCLE SM HOVER ----------*/
/*---------- START CIRCLE ROTATE ----------*/
@-webkit-keyframes circleRotate {
  0% {
    -webkit-transform: rotate(0);
    transform: rotate(0);
  }
  100% {
    -webkit-transform: rotate(1turn);
    transform: rotate(1turn);
  }
}
@keyframes circleRotate {
  0% {
    -webkit-transform: rotate(0);
    transform: rotate(0);
  }
  100% {
    -webkit-transform: rotate(1turn);
    transform: rotate(1turn);
  }
}
/*---------- END CIRCLE ROTATE ----------*/
/*---------- START  ----------*/
/*---------- END  ----------*/
/*---------- START  ----------*/
/*---------- END  ----------*/
/*====================================================================================
11. END COMMON KEYFRAMES
====================================================================================*/
/*====================================================================================
12. START COMMON TEXT
====================================================================================*/
/*---------- START TEXT INDENT ----------*/
.text-indent,
.text-indent02 {
  display: block;
  padding-left: 1em;
  text-indent: -1em;
}

/*---------- END TEXT INDENT ----------*/
/*---------- START  ----------*/
/*---------- END  ----------*/
/*---------- START  ----------*/
/*---------- END  ----------*/
/*====================================================================================
12. END COMMON TEXT
====================================================================================*/
/*====================================================================================
13. START COMMON LINK
====================================================================================*/
/* ---------- LINK DECORATION ---------- */
.not-mobile .link-sp {
  text-decoration: none;
}

.mobile .link-sp {
  text-decoration: underline;
}

/* ---------- END LINK DECORATION ---------- */
/* ---------- ADD LINK ---------- */
.add-link {
  position: relative;
}
.add-link > a {
  position: absolute;
  z-index: 5;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}

/* ---------- END ADD LINK ---------- */
/*---------- START LINK MAIN  ----------*/
.link-main {
  position: relative;
  padding: 1rem 2.2rem 1rem 0;
}
.link-main > a {
  position: absolute;
  z-index: 5;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}
.link-main::before {
  position: absolute;
  z-index: 1;
  content: "";
  left: 0;
  bottom: 0px;
  width: 100%;
  height: 1px;
  background-color: #efefef;
}
.link-main::after {
  position: absolute;
  z-index: 2;
  content: "";
  left: 0;
  bottom: 0;
  width: 100%;
  height: 1px;
  -webkit-transform: scaleX(0);
  -ms-transform: scaleX(0);
      transform: scaleX(0);
  -webkit-transform-origin: right center;
  -ms-transform-origin: right center;
      transform-origin: right center;
  background-color: #17439A;
  -webkit-transition: -webkit-transform 0.4s cubic-bezier(0.37, 0.31, 0.31, 0.9);
  transition: -webkit-transform 0.4s cubic-bezier(0.37, 0.31, 0.31, 0.9);
  -o-transition: transform 0.4s cubic-bezier(0.37, 0.31, 0.31, 0.9);
  transition: transform 0.4s cubic-bezier(0.37, 0.31, 0.31, 0.9);
  transition: transform 0.4s cubic-bezier(0.37, 0.31, 0.31, 0.9), -webkit-transform 0.4s cubic-bezier(0.37, 0.31, 0.31, 0.9);
}

.link-main__text {
  font-size: 1.4rem;
  font-weight: 700;
}

.link-main .arrow-main {
  position: absolute;
  top: 50%;
  right: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
}

@media only screen and (min-width: 75em) {
  .link-main:hover::after {
    -webkit-transform: scaleX(1);
    -ms-transform: scaleX(1);
        transform: scaleX(1);
    -webkit-transform-origin: left center;
    -ms-transform-origin: left center;
        transform-origin: left center;
  }
  .link-main:hover .arrow-main--xs::before {
    opacity: 0;
  }
  .link-main:hover .arrow-main--xs::after {
    background-image: url("./../images/common/icon-arrow-xs-right02.svg");
  }
  .link-main:hover .arrow-main--xs .arrow-main__circle {
    -webkit-animation: borderCircleXSHover 0.8s cubic-bezier(0.445, 0.05, 0.55, 0.95) 0s forwards;
    animation: borderCircleXSHover 0.8s cubic-bezier(0.445, 0.05, 0.55, 0.95) 0s forwards;
  }
  .safari .link-main:hover .arrow-main--xs::after {
    background-image: url("./../images/common/icon-arrow-xs-right03.svg");
  }
  .safari .link-main:hover .arrow-main {
    background-color: #17439A;
  }
}
/*---------- END LINK MAIN  ----------*/
/*====================================================================================
13. END COMMON LINK
====================================================================================*/
/*====================================================================================
14. START COMMON ITEM
====================================================================================*/
/*---------- START  ----------*/
/*---------- END  ----------*/
/*---------- START  ----------*/
/*---------- END  ----------*/
/*---------- START  ----------*/
/*---------- END  ----------*/
/*====================================================================================
14. END COMMON ITEM
====================================================================================*/
/*====================================================================================
15. START COMMON LIST
====================================================================================*/
/*---------- START LIST INDENT ----------*/
.list-indent li {
  padding-left: 1em;
  text-indent: -1em;
}

/*---------- END  LIST INDENT ----------*/
/*---------- START LIST MARK DISC ----------*/
.list-mark-disc > li {
  position: relative;
  padding-left: 1em;
}
.list-mark-disc > li:first-child {
  margin-top: 0;
}
.list-mark-disc > li::before {
  content: "・";
  position: absolute;
  top: 0;
  left: 0;
}

/*---------- END  LIST MARK DISC ----------*/
/*---------- START  ----------*/
/*---------- END  ----------*/
/*====================================================================================
15. END COMMON LIST
====================================================================================*/
/*====================================================================================
16. START COMMON BOX
====================================================================================*/
/*---------- START CARD TOP ----------*/
.card-top__img {
  margin-bottom: 3rem;
  text-align: center;
}

.card-top__title {
  margin-bottom: 3.2rem;
  text-align: center;
  font-size: 1.9rem;
  font-weight: 700;
  letter-spacing: 0.05em;
}

.card-top__desc {
  margin-bottom: 4.5rem;
  font-size: 1.5rem;
  line-height: 1.6;
  letter-spacing: 0.05em;
}

.card-top__btn {
  margin-top: auto;
}
.card-top__btn .btn-main {
  margin: 0 auto;
}

@media only screen and (max-width: 47.9375em) {
  .card-top__img {
    margin-bottom: 2.5rem;
  }
  .card-top__title {
    margin-bottom: 1.6rem;
    font-size: 1.7rem;
  }
  .card-top__desc {
    margin-bottom: 2.5rem;
  }
}
/*---------- END CARD TOP ----------*/
/*---------- START  ----------*/
/*---------- END  ----------*/
/*---------- START  ----------*/
/*---------- END  ----------*/
/*====================================================================================
16. END COMMON BOX
====================================================================================*/
/*====================================================================================
17. START COMMON BLOCK
====================================================================================*/
/*---------- START  ----------*/
/*---------- END  ----------*/
/*---------- START  ----------*/
/*---------- END  ----------*/
/*---------- START  ----------*/
/*---------- END  ----------*/
/*====================================================================================
17. END COMMON BLOCK
====================================================================================*/
/*====================================================================================
18. START COMMON IMAGES
====================================================================================*/
/*---------- START IMAGE OBJECT FIT  ----------*/
.img-ofi {
  width: 100%;
  height: 100%;
}

.img-ofi--center {
  -o-object-fit: cover;
  object-fit: cover;
  -o-object-position: center;
  object-position: center;
  font-family: "object-fit: cover; object-position: center", sans-serif;
}

.img-ofi--top {
  -o-object-fit: cover;
  object-fit: cover;
  -o-object-position: center top;
  object-position: center top;
  font-family: "object-fit: cover; object-position: center top", sans-serif;
}

.img-ofi--bottom {
  -o-object-fit: cover;
  object-fit: cover;
  -o-object-position: center bottom;
  object-position: center bottom;
  font-family: "object-fit: cover; object-position: center bottom", sans-serif;
}

.img-ofi--left {
  -o-object-fit: cover;
  object-fit: cover;
  -o-object-position: left center;
  object-position: left center;
  font-family: "object-fit: cover; object-position: left center", sans-serif;
}

.img-ofi--right {
  -o-object-fit: cover;
  object-fit: cover;
  -o-object-position: right center;
  object-position: right center;
  font-family: "object-fit: cover; object-position: right center", sans-serif;
}

/*---------- END IMAGE OBJECT FIT ----------*/
/*---------- START BACKGROUND IMAGE  ----------*/
.bg-img {
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center center;
}

/*---------- END BACKGROUND IMAGE ----------*/
/*---------- START  ----------*/
/*---------- END  ----------*/
/*====================================================================================
18. END COMMON IMAGES
====================================================================================*/
/*====================================================================================
19. START COMMON EFFECT
====================================================================================*/
/*---------- ZOOM LOGO EFFECT ----------*/
.zoom-logo {
  display: inline-block;
}

@media only screen and (min-width: 48em) {
  .zoom-logo {
    -webkit-transition: -webkit-transform 0.4s ease;
    transition: -webkit-transform 0.4s ease;
    -o-transition: transform 0.4s ease;
    transition: transform 0.4s ease;
    transition: transform 0.4s ease, -webkit-transform 0.4s ease;
  }
  .zoom-logo:hover {
    -webkit-transform: scale(1.03);
    -ms-transform: scale(1.03);
        transform: scale(1.03);
  }
}
/*---------- END ZOOM LOGO EFFECT ----------*/
/*---------- START  ----------*/
/*---------- END  ----------*/
/*---------- START  ----------*/
/*---------- END  ----------*/
/*====================================================================================
19. END COMMON EFFECT
====================================================================================*/
/*====================================================================================
20. START COMMON LAYOUT
====================================================================================*/
/*---------- START FLEX LAYOUT ----------*/
.height-center {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
}

.width-center {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
}

.width-between {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
}

.center-center {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
}

.center-between {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
}

/*---------- END FLEX LAYOUT ----------*/
/*---------- START FLEX LIST ----------*/
.list-center {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
}

.list-between {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
}

.list-wrap {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
}

/*---------- END FLEX LIST ----------*/
/*---------- START  ----------*/
/*---------- END  ----------*/
/*====================================================================================
20. END COMMON LAYOUT
====================================================================================*/
/*====================================================================================
21. START COMMON BACKGROUND
====================================================================================*/
.bg-ffffff {
  background-color: #ffffff !important;
}

.bg-000000 {
  background-color: #000000 !important;
}

.bg-f3f3f3 {
  background-color: #f3f3f3 !important;
}

.bg-e9e9e6 {
  background-color: #e9e9e6 !important;
}

.bg-17439a {
  background-color: #17439A !important;
}

.bg-7ECEF4 {
  background-color: #7ECEF4 !important;
}

.bg-5487B4 {
  background-color: #5487B4 !important;
}

.bg-96B5D1 {
  background-color: #96B5D1 !important;
}

/*---------- START BACKGROUND  ----------*/
.bg-gradient-blue01 {
  background: #7ecef4;
  background: -webkit-gradient(linear, left top, right top, from(#7ecef4), to(#0b318f));
  background: -o-linear-gradient(left, #7ecef4 0%, #0b318f 100%);
  background: linear-gradient(to right, #7ecef4 0%, #0b318f 100%);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#7ecef4", endColorstr="#0b318f", GradientType=1);
}

.bg-gradient-blue02 {
  background: rgb(126, 206, 244);
  background: -o-linear-gradient(45deg, rgb(126, 206, 244) 0%, rgb(11, 49, 143) 100%);
  background: linear-gradient(45deg, rgb(126, 206, 244) 0%, rgb(11, 49, 143) 100%);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#7ecef4", endColorstr="#0b318f", GradientType=1);
}

/*====================================================================================
21. END COMMON BACKGROUND
====================================================================================*/
/*====================================================================================
22. START COMMON COLOR
====================================================================================*/
.c-ffffff {
  color: #ffffff !important;
}

.c-000000 {
  color: #000000 !important;
}

.c-222222 {
  color: #222222 !important;
}

.c-757575 {
  color: #757575 !important;
}

.c-0B318F {
  color: #0B318F !important;
}

.c-ff0000 {
  color: #ff0000 !important;
}

.c-5487B4 {
  color: #5487B4 !important;
}

.c-7ECEF4 {
  color: #7ECEF4 !important;
}

.c-17439A {
  color: #17439A !important;
}

/*====================================================================================
22. END COMMON COLOR
====================================================================================*/
/*====================================================================================
23. START COMMON CUSTOM PADDING, MARGIN
====================================================================================*/
/*---------- TITLE MARGIN, PADDING RES ----------*/
/*TOP*/
/*END TOP*/
/*BOTTOM*/
.tt-bottom01 {
  margin-bottom: 3.5rem;
}

.tt-bottom02 {
  margin-bottom: 5rem;
}

.tt-bottom03 {
  margin-bottom: 8.5rem;
}

@media only screen and (max-width: 47.9375em) {
  .tt-bottom01 {
    margin-bottom: 2rem;
  }
  .tt-bottom02 {
    margin-bottom: 2.5rem;
  }
  .tt-bottom03 {
    margin-bottom: 5rem;
  }
}
/*END BOTTOM*/
/*LEFT*/
/*END LEFT*/
/*RIGHT*/
/*END RIGHT*/
/*---------- END TITLE MARGIN, PADDING RES ----------*/
/*---------- TABLE MARGIN, PADDING RES ----------*/
/*TOP*/
/*END TOP*/
/*BOTTOM*/
.tbl-mg-bottom01 {
  margin-bottom: 1.5rem;
}

.tbl-mg-bottom02 {
  margin-bottom: 1rem;
}

/*END BOTTOM*/
/*LEFT*/
/*END LEFT*/
/*RIGHT*/
/*END RIGHT*/
/*---------- END TABLE MARGIN, PADDING RES ----------*/
/*---------- LAYOUT MARGIN, PADDING RES ----------*/
/*MARGIN*/
.mg-layout01 {
  margin: 10rem 0 !important;
}

@media only screen and (max-width: 47.9375em) {
  .mg-layout01 {
    margin: 5rem 0 !important;
  }
}
/*END MARGIN*/
/*PADDING*/
.pd-layout01 {
  padding: 10rem 0 !important;
}

.pd-layout02 {
  padding: 8rem 0 10rem 0 !important;
}

.pd-layout03 {
  padding: 9rem 0 6rem 0 !important;
}

.pd-layout04 {
  padding: 9rem 0 10rem 0 !important;
}

@media only screen and (max-width: 47.9375em) {
  .pd-layout01 {
    padding: 5rem 0 !important;
  }
  .pd-layout02 {
    padding: 4rem 0 5rem 0 !important;
  }
  .pd-layout03 {
    padding: 4.5rem 0 1rem 0 !important;
  }
  .pd-layout04 {
    padding: 4.5rem 0 5rem 0 !important;
  }
}
/*END PADDING*/
/*---------- END LAYOUT MARGIN, PADDING RES ----------*/
/*---------- MARGIN RES ----------*/
/*TOP*/
.mg-top01 {
  margin-top: 10rem !important;
}

.mg-top02 {
  margin-top: 8rem !important;
}

@media only screen and (max-width: 47.9375em) {
  .mg-top01 {
    margin-top: 5rem !important;
  }
  .mg-top02 {
    margin-top: 4rem !important;
  }
}
/*END TOP*/
/*BOTTOM*/
.mg-bottom01 {
  margin-bottom: 10rem !important;
}

.mg-bottom02 {
  margin-bottom: 9rem !important;
}

.mg-bottom03 {
  margin-bottom: 5.5rem !important;
}

.mg-bottom04 {
  margin-bottom: 6.5rem !important;
}

.mg-bottom05 {
  margin-bottom: 6rem !important;
}

.mg-bottom06 {
  margin-bottom: 3rem !important;
}

@media only screen and (max-width: 47.9375em) {
  .mg-bottom01 {
    margin-bottom: 5rem !important;
  }
  .mg-bottom02 {
    margin-bottom: 4.5rem !important;
  }
  .mg-bottom03 {
    margin-bottom: 3.5rem !important;
  }
  .mg-bottom04 {
    margin-bottom: 3.2rem !important;
  }
  .mg-bottom05 {
    margin-bottom: 3.5rem !important;
  }
  .mg-bottom06 {
    margin-bottom: 2rem !important;
  }
}
/*END BOTTOM*/
/*LEFT*/
/*END LEFT*/
/*RIGHT*/
@media only screen and (min-width: 48em) {
  .mg-minus-right01 {
    margin-right: -1rem;
  }
}
/*END RIGHT*/
/*---------- END MARGIN RES ----------*/
/*---------- PADDING RES ----------*/
/*TOP*/
.pd-top01 {
  padding-top: 9rem !important;
}

.pd-top02 {
  padding-top: 10rem !important;
}

@media only screen and (max-width: 47.9375em) {
  .pd-top01 {
    padding-top: 4.5rem !important;
  }
  .pd-top02 {
    padding-top: 5rem !important;
  }
}
/*END TOP*/
/*BOTTOM*/
.pd-bottom01 {
  padding-bottom: 10rem !important;
}

.pd-bottom02 {
  padding-bottom: 9rem !important;
}

@media only screen and (max-width: 47.9375em) {
  .pd-bottom01 {
    padding-bottom: 5rem !important;
  }
  .pd-bottom02 {
    padding-bottom: 4.5rem !important;
  }
}
/*END BOTTOM*/
/*LEFT*/
/*END LEFT*/
/*RIGHT*/
/*END RIGHT*/
/*---------- END PADDING RES ----------*/
/*====================================================================================
23. END COMMON CUSTOM PADDING, MARGIN
====================================================================================*/