@charset "UTF-8";
*,
*::before,
*::after {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

html {
  color: #333;
  font-size: 62.5%;
  line-height: 1;
  -webkit-text-size-adjust: 100%;
  -webkit-tap-highlight-color: transparent;
}

body {
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  -webkit-text-size-adjust: 100%;
  word-wrap: break-word;
  margin: 0;
  width: 100%;
  min-width: 320px;
  background-color: #fff;
  -webkit-tap-highlight-color: transparent;
  -webkit-print-color-adjust: exact;
  overscroll-behavior-y: none;
}

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

h1, h2, h3, h4, h5, h6 {
  font-size: 1em;
  font-weight: normal;
  margin: 0;
}

address,
blockquote,
dd,
dl,
dt,
figure,
li,
p,
pre {
  margin: 0;
}

ol,
ul {
  list-style-type: none;
  margin: 0;
  padding: 0;
}

table {
  border-collapse: collapse;
}

caption {
  caption-side: bottom;
  padding: 0;
}

th {
  text-align: inherit;
}

address {
  font-style: normal;
  line-height: inherit;
}

pre,
code {
  font-size: 1em;
}

pre {
  overflow: auto;
}

a {
  text-decoration: none;
  border: 0;
  -ms-user-select: none;
  -webkit-user-select: none;
  user-select: none;
}

a:active, a:focus {
  outline: rgba(255, 255, 255, 0);
}

em {
  font-style: normal;
}

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

svg {
  vertical-align: bottom;
  overflow: hidden;
  width: 100%;
  height: auto;
}

button,
input,
select,
textarea {
  font-family: inherit;
  font-size: inherit;
  padding: 0;
  outline: none;
  border: none;
  background: none;
}

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

input[type="reset"],
input[type="submit"],
input[type="text"] {
  border-radius: 0;
}

input[type="reset"],
input[type="submit"] {
  -webkit-appearance: button;
  appearance: button;
}

input[type="reset"]::-webkit-search-decoration,
input[type="submit"]::-webkit-search-decoration {
  display: none;
}

input[type="reset"]:focus,
input[type="submit"]:focus {
  outline-offset: -2px;
}

textarea {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

.loader.-init {
  position: fixed;
  z-index: 999;
  top: 0;
  bottom: 0;
  right: 0;
  left: 0;
  background-color: #fff;
}

.home .loader.-init {
  background-image: url(../images/home/loader.jpg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}

.-descTop body.-noscroll {
  overflow: hidden;
}

.-iphone body.-noscroll,
.-ipad body.-noscroll {
  position: fixed;
  width: 100%;
}

.l-layout {
  overflow: hidden;
  width: 100%;
  height: 100%;
}

@media print, screen and (max-width: 734px) {
  .l-part {
    padding-bottom: 60px;
    padding-right: 25px;
    padding-left: 25px;
  }
}

@media print, screen and (min-width: 735px) and (max-width: 1068px) {
  .l-part {
    padding-bottom: 100px;
    padding-right: 45px;
    padding-left: 45px;
  }
}

@media print, screen and (min-width: 1069px) {
  .l-part {
    padding-bottom: 100px;
    padding-right: 80px;
    padding-left: 80px;
  }
}

@media print, screen and (min-width: 1069px) and (max-width: 1440px) {
  .l-part {
    padding-right: 80px;
    padding-left: 80px;
  }
}

@media print, screen and (min-width: 1441px) {
  .l-part {
    margin-right: auto;
    margin-left: auto;
    padding-bottom: 120px;
    width: 100%;
    max-width: 1440px;
  }
}

@media print, screen and (max-width: 734px) {
  .-for-t {
    display: none;
  }
  .-for-td {
    display: none;
  }
}

@media print, screen and (max-width: 1068px) {
  .-for-d {
    display: none;
  }
}

@media print, screen and (min-width: 735px) {
  .-for-m {
    display: none;
  }
}

@media print, screen and (min-width: 1069px) {
  .-for-t {
    display: none;
  }
}

.-ie .ie-none {
  display: none;
}

.js-inview[inview-fadeup="false"] {
  opacity: 0;
  -webkit-transform: translateY(60px);
  -ms-transform: translateY(60px);
  transform: translateY(60px);
}

.js-inview[inview-fadeup="true"] {
  -webkit-transition: opacity 1000ms, transform 1000ms;
  -webkit-transition: opacity 1000ms, -webkit-transform 1000ms;
  -ms-transition: opacity 1000ms, transform 1000ms;
  transition: opacity 1000ms, transform 1000ms;
}

a {
  color: #333;
}

small {
  font-size: 80%;
}

.c-title,
.c-paragraph,
.c-description {
  -webkit-font-feature-settings: "palt" 1;
  font-feature-settings: "palt" 1;
}

.c-heading {
  font-weight: bold;
}

.c-heading.-center {
  text-align: center;
}

.c-subheading {
  font-weight: bold;
  letter-spacing: .05em;
  line-height: 1.5;
  padding-top: 10px;
  padding-bottom: 10px;
}

.c-subheading.-center {
  text-align: center;
}

.c-title {
  font-size: 2rem;
  line-height: 1.5;
}

.c-paragraph {
  letter-spacing: .05em;
  line-height: 2.2;
}

.c-paragraph + .c-paragraph {
  margin-top: 1.5em;
}

.c-description {
  font-size: 1.3rem;
  line-height: 1.5;
}

@media print, screen and (max-width: 734px) {
  .c-heading {
    font-size: 1.6rem;
    margin-bottom: 10px;
  }
  .c-heading.-ms {
    margin-bottom: 0;
  }
  .c-subheading {
    font-size: 2.1rem;
  }
}

@media print, screen and (max-width: 1068px) {
  .c-paragraph {
    font-size: 1.5rem;
  }
}

@media print, screen and (min-width: 735px) {
  .c-heading {
    font-size: 1.8rem;
    margin-bottom: 30px;
  }
  .c-heading.-ms {
    margin-bottom: 10px;
  }
  .c-subheading {
    font-size: 2.4rem;
  }
  .c-title {
    font-size: 3.6rem;
  }
  .c-paragraph.-center {
    text-align: center;
  }
  .c-description {
    font-size: 1.4rem;
  }
}

@media print, screen and (min-width: 1069px) {
  .c-subheading {
    font-size: 3rem;
  }
  .c-paragraph {
    font-size: 1.6rem;
  }
}

@media print, screen and (min-width: 1441px) {
  .c-heading {
    font-size: 2.1rem;
  }
  .c-subheading {
    font-size: 3.6rem;
  }
}

.c-button.-center {
  text-align: center;
}

.c-button.-right {
  text-align: right;
}

.button-circle,
.button-circle__link {
  position: relative;
  display: inline-block;
}

.button-circle__link {
  font-size: 1rem;
  overflow: hidden;
  width: inherit;
  height: inherit;
  border-radius: 50%;
}

.button-circle__link span {
  text-align: center;
  vertical-align: middle;
  display: table-cell;
  width: inherit;
  height: inherit;
}

.c-button.-white .button-circle__link span {
  color: #fff;
}

.button-circle__line {
  position: absolute;
  top: 0;
  display: inline-block;
  width: auto;
  height: inherit;
}

.c-button.-white .button-circle__line {
  color: #fff;
}

.c-button.-left .button-circle__line {
  left: 0;
}

.c-button.-right .button-circle__line {
  right: 0;
}

.c-button.-top .button-circle__line {
  width: 100%;
  height: auto;
}

.button-circle__line path {
  fill: none;
  stroke: #333;
  stroke-width: 1;
  stroke-miterlimit: 10;
}

.button-circle__line path.-line {
  stroke-dasharray: 101 151;
  stroke-dashoffset: 0;
}

.button-circle__line path.-c {
  stroke-dasharray: 165 165;
  stroke-dashoffset: 0;
}

.c-button.-white .button-circle__line path {
  stroke: #fff;
}

.-descTop .button-circle__line path.-line {
  transition: stroke-dasharray 900ms, stroke-dashoffset 600ms 300ms;
}

.-descTop .button-circle__line path.-c {
  transition: stroke-dashoffset 600ms 300ms;
}

.-descTop .button-circle__line.-hover path.-line {
  stroke-dasharray: 151 151;
  stroke-dashoffset: -101;
  transition-duration: 900ms, 600ms;
  transition-delay: 200ms, 0ms;
}

.-descTop .button-circle__line.-hover path.-c {
  stroke-dashoffset: 165;
  transition-duration: 900ms;
  transition-delay: 0ms;
}

@media print, screen and (max-width: 734px) {
  .button-circle {
    width: 60px;
    height: 60px;
  }
  .c-button.-top .button-circle {
    padding-top: 77px;
  }
  .button-circle.-small {
    width: 50px;
    height: 50px;
  }
  .button-circle.-small .button-circle__line .-line {
    display: none;
  }
  .-ie .button-circle__line {
    width: 138px;
  }
  .-ie .c-button.-top .button-circle__line {
    height: 138px;
  }
}

@media print, screen and (min-width: 735px) {
  .button-circle {
    width: 70px;
    height: 70px;
  }
  .c-button.-top .button-circle {
    padding-top: 90px;
  }
  .-ie .button-circle__line {
    width: 160px;
  }
  .-ie .c-button.-top .button-circle__line {
    height: 160px;
  }
}

.bg-gradient {
  background-image: linear-gradient(90deg, #f2faff 0%, #fdf7fa 50%, #f5fbfc 100%);
}

.c-wave {
  width: 100%;
}

.c-wave__svg {
  height: 100%;
}

.c-wave.-bottom .c-wave__svg {
  vertical-align: top;
}

.c-wave__svg path {
  fill: #fff;
}

.c-wave__svg.-gradient path {
  fill: url(#g);
}

.c-gradient {
  overflow: hidden;
  height: 0;
}

@media print, screen and (max-width: 734px) {
  .c-wave .-middle {
    display: none;
  }
}

@media print, screen and (min-width: 735px) {
  .c-wave .-small {
    display: none;
  }
}

@media print, screen and (max-width: 1068px) {
  .c-wave {
    height: 30px;
  }
}

@media print, screen and (min-width: 1069px) {
  .c-wave {
    height: 60px;
  }
}

.c-gradient {
  overflow: hidden;
  height: 0;
}

.bg-gradient {
  background-image: linear-gradient(90deg, #f2faff 0%, #fdf7fa 50%, #f5fbfc 100%);
}

.l-mask {
  width: 100%;
}

.l-mask__svg {
  display: block;
  height: 100%;
}

.l-mask__svg path {
  fill: #fff;
}

.l-mask-gradient path {
  fill: url(#g);
}

@media print, screen and (max-width: 734px) {
  .l-mask {
    height: 30px;
  }
}

@media print, screen and (min-width: 735px) {
  .l-mask {
    height: 60px;
  }
}

.c-return {
  text-align: right;
  position: relative;
  z-index: 3;
}

.c-return .l-part {
  padding-bottom: 0;
}

.c-return a {
  color: #fff;
  display: inline-block;
  background-image: url(../images/common/flag.gif);
  background-repeat: no-repeat;
  background-size: 100% auto;
}

.c-return span {
  text-align: center;
  vertical-align: middle;
  position: relative;
  display: table-cell;
  width: inherit;
  height: inherit;
}

.c-return span::before {
  content: "";
  position: absolute;
  top: 5px;
  right: 0;
  display: block;
  width: 1px;
  border-left: 1px solid #333;
}

.c-return__flag {
  display: none;
  width: 50px;
}

.-descTop .c-return a:hover {
  background-image: url(../images/common/flag_anim.gif);
}

@media print, screen and (max-width: 734px) {
  .c-return {
    padding-top: 50px;
    padding-bottom: 30px;
  }
  .c-return a {
    font-size: 1rem;
    width: 60px;
    height: 33px;
  }
  .c-return span::before {
    height: 90px;
  }
}

@media print, screen and (min-width: 735px) {
  .c-return {
    padding-top: 0;
    padding-bottom: 30px;
  }
  .c-return a {
    font-size: 1.2rem;
    width: 68px;
    height: 41px;
  }
}

@media print, screen and (min-width: 735px) and (max-width: 1068px) {
  .c-return span::before {
    height: 186px;
  }
}

@media print, screen and (min-width: 1069px) {
  .c-return {
    padding-bottom: 0;
  }
  .c-return span::before {
    height: 225px;
  }
}

header {
  position: fixed;
  z-index: 99;
  top: 0;
  left: 0;
  width: 100%;
}

.header {
  position: relative;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
}

.header::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 0;
  left: 0;
  display: block;
  opacity: .095;
  width: 100%;
  height: 100%;
  border-radius: 0 20px;
  background-image: linear-gradient(90deg, lightblue 0%, lightcoral 50%, honeydew 100%);
  background-repeat: no-repeat;
  mix-blend-mode: multiply;
  box-shadow: 0 3px 40px rgba(0, 0, 0, 0.25);
}

.-ie .header-logo svg {
  height: 18px;
}

.header-logo svg path {
  fill: #333;
}

.header-nav__item a {
  display: inline-block;
  padding: 3px;
}

.header-nav__item a.-current {
  color: lightseagreen;
}

.header-nav__item a.pointer-none {
  pointer-events: none;
}

.-descTop .header-logo svg path {
  transition: fill 200ms;
}

.-descTop .header-logo a:hover svg path {
  transition-duration: 80ms;
  transition-timing-function: linear;
}

.-descTop .header-logo a:hover svg g:nth-child(2n) path {
  fill: #f0a0a0;
}

.-descTop .header-logo a:hover svg g:nth-child(4n+1) path {
  fill: #add8e6;
}

.-descTop .header-logo a:hover svg g:nth-child(4n+3) path {
  fill: lightseagreen;
}

.-descTop .header-logo a:hover svg g:nth-child(2n) path {
  transition-delay: 50ms;
}

.-descTop .header-logo a:hover svg g:nth-child(3n) path {
  transition-delay: 200ms;
}

.-descTop .header-logo a:hover svg g:nth-child(4n) path {
  transition-delay: 100ms;
}

.-descTop .header-logo a:hover svg g:nth-child(5n) path {
  transition-delay: 150ms;
}

.-descTop .header-logo a:hover svg g:nth-child(6n) path {
  transition-duration: 200ms;
  transition-delay: 250ms;
  transition-timing-function: ease-out;
}

.-descTop .header-nav__item a {
  transition: color 200ms;
}

.-descTop .header-nav__item a svg {
  transition: fill 200ms;
}

.-descTop .header-nav__item a:hover {
  color: lightseagreen;
}

.-descTop .header-nav__item a:hover svg {
  fill: lightseagreen;
}

@media print, screen and (max-width: 415px) {
  .header-logo {
    width: 90px;
  }
  .header-logo svg {
    display: none;
  }
  .header-nav nav {
    top: 80px;
  }
  .header-nav__item {
    font-size: 1.8rem;
  }
}

@media print, screen and (min-width: 416px) {
  .header-logo a,
  .header-logo svg {
    display: block;
  }
  .header-logo .-sp {
    display: none;
  }
}

@media print, screen and (min-width: 416px) and (max-width: 1280px) {
  .header-logo {
    width: 270px;
  }
  .header-nav nav {
    top: 90px;
  }
  .header-nav__item {
    font-size: 2.1rem;
  }
}

@media print, screen and (max-width: 1280px) {
  .header {
    margin-top: 15px;
    margin-right: 15px;
    margin-left: 15px;
    padding: 15px 20px;
  }
  .header-logo,
  .header-trigger {
    position: relative;
    z-index: 2;
  }
  .header-trigger {
    margin-left: auto;
    width: 30px;
    height: 30px;
  }
  .header-trigger.-lock {
    pointer-events: none;
  }
  .header-trigger__open,
  .header-trigger__close {
    visibility: hidden;
    opacity: 0;
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    width: inherit;
    height: inherit;
  }
  .header-trigger__open.-active,
  .header-trigger__close.-active {
    visibility: visible;
    opacity: 1;
  }
  .header-trigger__bar {
    position: absolute;
    left: 0;
    display: block;
    width: 100%;
    height: 2px;
  }
  .header-trigger__open .header-trigger__bar.-top {
    top: 5px;
  }
  .header-trigger__open .header-trigger__bar.-bottom {
    bottom: 5px;
  }
  .header-trigger__open .header-trigger__bar.-middle {
    top: 0;
    bottom: 0;
    margin-top: auto;
    margin-bottom: auto;
  }
  .header-trigger__close .header-trigger__bar.-top, .header-trigger__close .header-trigger__bar.-bottom {
    top: 0;
    bottom: 0;
    margin-top: auto;
    margin-bottom: auto;
  }
  .header-trigger__close .header-trigger__bar.-top {
    -webkit-transform: rotate(45deg);
    -ms-transform: rotate(45deg);
    transform: rotate(45deg);
  }
  .header-trigger__close .header-trigger__bar.-bottom {
    -webkit-transform: rotate(135deg);
    -ms-transform: rotate(135deg);
    transform: rotate(135deg);
  }
  .header-trigger__bar::before {
    content: "";
    display: block;
    opacity: 0;
    height: 100%;
    background-color: #707070;
    -webkit-transform: scaleX(0);
    -ms-transform: scaleX(0);
    transform: scaleX(0);
    -webkit-transition: opacity 200ms, transform 200ms 200ms;
    -webkit-transition: opacity 200ms, -webkit-transform 200ms 200ms;
    -ms-transition: opacity 200ms, transform 200ms 200ms;
    transition: opacity 200ms, transform 200ms 200ms;
  }
  .-active .header-trigger__bar::before {
    opacity: 1;
    -webkit-transform: scaleX(1);
    -ms-transform: scaleX(1);
    transform: scaleX(1);
    -webkit-transform-origin: 0 0;
    -ms-transform-origin: 0 0;
    transform-origin: 0 0;
  }
  .header-trigger__open.-active .header-trigger__bar.-middle::before {
    transition-delay: 250ms;
  }
  .header-trigger__open.-active .header-trigger__bar.-bottom::before {
    transition-delay: 300ms;
  }
  .header-trigger__close.-active .header-trigger__bar.-bottom::before {
    transition-delay: 300ms;
  }
  .header-nav {
    opacity: 0;
    overflow: hidden;
    position: fixed;
    z-index: 1;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    display: none;
    background-color: rgba(255, 255, 255, 0.95);
  }
  .header-nav.-active {
    display: block;
  }
  .header-nav::before {
    content: "";
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;
    display: block;
    opacity: .095;
    width: 100%;
    height: 100%;
    border-radius: 0 20px;
    background-image: linear-gradient(90deg, lightblue 0%, lightcoral 50%, honeydew 100%);
    background-repeat: no-repeat;
  }
  .header-nav nav {
    overflow-y: auto;
    position: absolute;
    bottom: 0;
    left: 0;
    padding-bottom: 50px;
    width: 100%;
    padding-right: 15px;
    padding-left: 15px;
  }
  .header-nav__item {
    text-align: center;
    padding-top: 18px;
    padding-bottom: 18px;
    border-top: 1px solid #e5e5e5;
  }
  .header-nav__sns {
    padding-top: 20px;
  }
  .header-nav__sns a {
    margin-right: 5px;
    margin-left: 5px;
    width: 30px;
    height: 30px;
  }
  .header-nav__sns svg {
    fill: #333;
  }
  .header-copyright {
    font-size: 1.2rem;
    text-align: center;
    margin-top: 45px;
  }
}

@media print, screen and (min-width: 1069px) {
  .header-nav__item {
    font-size: 1.5rem;
  }
}

@media print, screen and (min-width: 1281px) {
  header {
    pointer-events: none;
  }
  header a {
    pointer-events: auto;
  }
  .header {
    margin-top: 25px;
    margin-right: 20px;
    margin-left: 20px;
    padding: 20px 35px;
  }
  .header-logo {
    width: 300px;
  }
  .header-trigger {
    display: none;
  }
  .header-nav {
    margin-left: auto;
  }
  .header-nav__top {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
  }
  .header-nav__bottom {
    position: absolute;
    top: 150px;
    right: 0;
    padding-left: 20px;
    padding-right: 5px;
    border-left: 1px solid #e0e0e0;
  }
}

@media print, screen and (min-width: 1281px) and (max-height: 500px) {
  .header-nav__bottom {
    top: 100px;
  }
}

@media print, screen and (min-width: 1281px) {
  .header-nav__bottom a {
    color: #e0e0e0;
  }
  .header-nav__top .header-nav__item {
    padding-left: 50px;
  }
  .header-nav__top .header-nav__item:last-child {
    position: relative;
    margin-left: 50px;
  }
  /* .header-nav__top .header-nav__item:last-child::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    display: inline-block;
    margin-top: auto;
    margin-bottom: auto;
    height: 1em;
    border-left: 1px solid;
  } */
  .header-nav__bottom .header-nav__item {
    width: 2.1rem;
  }
  .header-nav__bottom .header-nav__item + .header-nav__item {
    margin-top: 50px;
  }
  .header-nav__item.-rotate {
    position: relative;
  }
  .header-nav__item.-rotate a {
    height: 2.1rem;
    -webkit-transform: rotate(90deg) translateY(-100%);
    transform: rotate(90deg) translateY(-100%);
    -webkit-transform-origin: 0 0;
    transform-origin: 0 0;
  }
  .header-nav__item.-about {
    height: 4.5em;
  }
  .header-nav__item.-about a {
    width: 4.5em;
  }
  .header-nav__item.-news {
    height: 4em;
  }
  .header-nav__item.-news a {
    width: 4em;
  }
  .header-nav__sns a + a {
    margin-top: 12px;
  }
  .header-nav__sns svg {
    fill: #e0e0e0;
  }
  .header-copyright {
    display: none;
  }
}

.footer {
  position: relative;
}

.footer .c-wave {
  margin-top: -1px;
}

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

.footer-logo svg path {
  fill: #333;
}

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

.footer-nav__item a {
  display: inline-block;
  padding: 3px;
}

.footer-nav__sns svg {
  fill: #333;
}

.-descTop .footer .c-wave__svg path.-middle {
  animation: footerWave 60000ms linear infinite;
}

.-descTop .footer-logo svg path {
  transition: fill 200ms;
}

.-descTop .footer-logo a:hover svg path {
  fill: lightseagreen;
}

.-descTop .footer-nav__item a {
  transition: color 200ms;
}

.-descTop .footer-nav__item a svg {
  transition: fill 200ms;
}

.-descTop .footer-nav__item a:hover {
  color: lightseagreen;
}

.-descTop .footer-nav__item a:hover svg {
  fill: lightseagreen;
}

@-webkit-keyframes footerWave {
  from {
    -webkit-transform: translateX(0%);
  }
  to {
    -webkit-transform: translateX(-900%);
  }
}

@-webkit-keyframes footerWave {
  from {
    transform: translateX(0%);
  }
  to {
    transform: translateX(-900%);
  }
}

@keyframes footerWave {
  from {
    transform: translateX(0%);
  }
  to {
    transform: translateX(-900%);
  }
}

@media print, screen and (max-width: 734px) {
  .footer-totop {
    top: -50px;
    right: 20px;
  }
  .footer-totop::before {
    height: 70px;
  }
  .footer-totop a {
    font-size: 1rem;
    width: 60px;
    height: 31px;
  }
  .footer-body {
    padding-top: 30px;
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
    -webkit-flex-direction: column-reverse;
    -ms-flex-direction: column-reverse;
    flex-direction: column-reverse;
  }
  .footer-logo {
    width: 180px;
  }
  .footer-logo svg {
    margin-bottom: 15px;
  }
  .footer-copyright {
    font-size: 1.3rem;
  }
  .footer-nav__list {
    margin-bottom: 50px;
    margin-right: -12px;
    margin-left: -12px;
  }
  .footer-nav__item {
    font-size: 1.4rem;
    padding: 12px;
    width: 50%;
  }
  .footer-nav__sns a {
    width: 26px;
    height: 26px;
  }
}

@media print, screen and (min-width: 735px) {
  .footer-totop {
    top: -100px;
    right: 50px;
  }
  .footer-totop::before {
    height: 210px;
  }
  .footer-totop a {
    font-size: 1.2rem;
    width: 68px;
    height: 34px;
  }
  .footer-logo {
    width: 170px;
  }
  .footer-copyright {
    font-size: 1.3rem;
    margin-top: 15px;
  }
  .footer-body {
    padding-top: 30px;
    -webkit-box-align: end;
    -webkit-align-items: flex-end;
    -ms-flex-align: end;
    align-items: flex-end;
  }
  .footer-nav {
    -webkit-box-flex: 1 0 0%;
    -webkit-flex: 1 0 0%;
    -ms-flex: 1 0 0%;
    flex: 1 0 0%;
    margin-left: 10%;
  }
  .footer-nav__list {
    margin-bottom: -20px;
    margin-right: -20px;
    margin-left: -20px;
  }
  .footer-nav__item {
    font-size: 1.4rem;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
    padding: 20px;
  }
  .footer-nav__sns a {
    width: 26px;
    height: 26px;
  }
  .footer-nav__sns a + a {
    margin-left: 20px;
  }
}

@media print, screen and (min-width: 735px) and (max-width: 1068px) {
  .footer-nav__item {
    width: 50%;
  }
}

@media print, screen and (min-width: 1069px) {
  .footer-nav__item {
    width: 25%;
  }
}

.area-same .bg-gradient {
  padding-top: 30px;
}

.c-area__list {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  border-top: 1px solid;
  border-left: 1px solid;
}

.c-area__list li {
  text-align: center;
  width: 50%;
  border-bottom: 1px solid;
  border-right: 1px solid;
}

.c-area__list li a {
  position: relative;
  display: block;
}

.c-area__list li a.pointer-none {
  pointer-events: none;
}

.c-area__list li a::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  display: block;
  margin-top: auto;
  margin-bottom: auto;
  background-image: url(../images/common/area_arrow.svg);
  background-repeat: no-repeat;
  background-size: 100% auto;
}

.c-area__list li.-all a {
  color: #fff;
  background-color: #898989;
}

.c-area__list li.-all a::before {
  background-image: url(../images/common/area_arrow_wh.svg);
}

.c-area + .c-wave {
  position: relative;
  z-index: 2;
}

.c-area + .l-mask {
  position: relative;
  z-index: 2;
}

.-descTop .c-area__list a {
  background-color: rgba(255, 255, 255, 0);
  transition: background-color 300ms;
}

.-descTop .c-area__list a[aria-current="page"] {
  background-color: white;
}

.-descTop .c-area__list.-all {
  transition: color 300ms;
}

.-descTop .c-area__list a:hover {
  background-color: white;
}

.-descTop .c-area__list .-all a:hover {
  color: #333;
}

.-descTop .c-area__list .-all a:hover::before {
  background-image: url(../images/common/area_arrow.svg);
}

@media print, screen and (max-width: 480px) {
  .c-area__list li.-all {
    font-size: 1rem;
  }
}

@media print, screen and (max-width: 734px) {
  .c-area__body {
    padding-top: 30px;
  }
  .area-select .c-area__body {
    padding-top: 60px;
  }
  .c-area__list li {
    font-size: 1.3rem;
  }
  .c-area__list li.-all {
    font-size: 1.3rem;
  }
  .c-area__list a {
    padding: 12px 30px;
  }
  .c-area__list a::before {
    right: 5px;
    width: 15px;
    height: 5px;
  }
  .c-area__map {
    display: none;
  }
}

@media print, screen and (min-width: 735px) {
  .c-area {
    padding-top: 60px;
  }
  .c-area__body {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: start;
    -webkit-align-items: flex-start;
    -ms-flex-align: start;
    align-items: flex-start;
    padding-top: 60px;
  }
  .area-select .c-area__body {
    padding-top: 100px;
  }
  .c-area__list {
    width: 50%;
  }
  .c-area__list a {
    padding: 15px 40px;
  }
  .c-area__list a::before {
    right: 20px;
    width: 15px;
    height: 5px;
  }
  .c-area__map {
    position: relative;
    padding-left: 15%;
    width: 50%;
  }
  .c-area__map img[usemap],
  .c-area__map map area {
    outline: none;
  }
  .c-area__hover {
    position: absolute;
    top: 0;
    top: 0;
    left: 30%;
    right: 0;
    height: 100%;
    pointer-events: none;
  }
  .c-area__svg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
  }
  .c-area__svg path {
    fill: lightseagreen;
    opacity: 0;
    transition: opacity 300ms;
  }
  .c-area__svg path[aria-current="page"] {
    opacity: .5;
  }
}

@media print, screen and (min-width: 735px) and (max-width: 1068px) {
  .c-area__list {
    font-size: 1.2rem;
  }
}

@media print, screen and (min-width: 1069px) {
  .c-area__list {
    font-size: 1.5rem;
  }
}

.c-campaign__banner {
  padding-top: 20px;
}

.c-banner {
  font-weight: bold;
  letter-spacing: .05em;
  text-align: center;
  position: relative;
  display: block;
  border: 1px solid;
}

.c-banner .-icon {
  vertical-align: middle;
  display: inline-block;
}

.c-banner .-icon svg {
  fill: #333;
  width: auto;
}

.c-banner .-arrow {
  position: absolute;
  top: 0;
  bottom: 0;
  display: block;
  margin-top: auto;
  margin-bottom: auto;
  width: 1.1em;
  height: 1.1em;
}

.c-banner .-arrow svg {
  fill: none;
  stroke: #333;
  stroke-miterlimit: 10;
  stroke-width: 3px;
  width: auto;
  height: 100%;
}

.-descTop .c-campaign__banner .-hover {
  transition: opacity 300ms;
}

.-descTop .c-campaign__banner .-hover:hover {
  opacity: .6;
}

.-descTop .c-banner {
  transition: color 300ms;
}

.-descTop .c-banner .-icon svg {
  transition: fill 300ms;
}

.-descTop .c-banner .-arrow {
  -webkit-transition: transform 300ms;
  -webkit-transition: -webkit-transform 300ms;
  -ms-transition: transform 300ms;
  transition: transform 300ms;
}

.-descTop .c-banner .-arrow svg {
  transition: stroke 300ms;
}

.-descTop .c-banner:hover {
  color: lightseagreen;
}

.-descTop .c-banner:hover .-icon svg {
  fill: lightseagreen;
}

.-descTop .c-banner:hover .-arrow {
  -webkit-transform: translateX(12px);
  -ms-transform: translateX(12px);
  transform: translateX(12px);
}

.-descTop .c-banner:hover .-arrow svg {
  stroke: lightseagreen;
}

@media print, screen and (max-width: 734px) {
  .c-campaign + .c-campaign {
    margin-top: 20px;
  }
  .-category .c-campaign {
    padding-top: 30px;
  }
  .c-banner {
    font-size: 1.5rem;
    text-indent: -10px;
    padding-top: 25px;
    padding-bottom: 25px;
  }
  .c-banner::before {
    right: 15px;
  }
  .c-banner .-icon {
    margin-right: 30px;
  }
  .c-banner .-icon svg {
    height: 30px;
  }
  .-ie .c-banner .-icon svg {
    width: 23px;
  }
  .c-banner .-arrow {
    right: 15px;
  }
}

@media print, screen and (min-width: 735px) {
  .c-campaign + .c-campaign {
    margin-top: 30px;
  }
  .-category .c-campaign {
    padding-top: 60px;
  }
  .c-banner {
    font-size: 2.4rem;
    padding-top: 35px;
    padding-bottom: 35px;
  }
  .c-banner::before {
    right: 50px;
  }
  .c-banner .-icon {
    margin-right: 60px;
  }
  .c-banner .-icon svg {
    height: 62px;
  }
  .-ie .c-banner .-icon svg {
    width: 46px;
  }
  .c-banner .-arrow {
    right: 50px;
  }
}

.c-special .c-list {
  margin-top: 30px;
}

@media print, screen and (min-width: 735px) {
  .c-special__header {
    position: relative;
    padding-right: 170px;
  }
  .c-special__header .c-button {
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    margin-top: auto;
    margin-bottom: auto;
    height: 70px;
  }
}

@media print, screen and (max-width: 734px) {
  .c-special .c-list {
    margin-bottom: 30px;
  }
}

.c-ad hr {
  display: block;
  width: 100%;
  height: 0;
  margin-top: 0;
  padding: 0;
  border-top: 1px solid #ebebeb;
  border-bottom: none;
  border-left: none;
  border-right: none;
}

.c-ad__item a {
  display: inline-block;
}

.-descTop .c-ad__item a {
  transition: opacity 300ms;
}

.-descTop .c-ad__item a:hover {
  opacity: .6;
}

@media print, screen and (max-width: 734px) {
  .c-ad hr {
    margin-bottom: 30px;
  }
  .c-ad__list {
    margin-right: auto;
    margin-left: auto;
    width: 100%;
    max-width: 480px;
  }
  .c-ad__item {
    padding-top: 10px;
    padding-bottom: 10px;
  }
}

@media print, screen and (min-width: 735px) {
  .c-ad hr {
    margin-bottom: 30px;
  }
  .c-ad__list {
    font-size: 0;
    margin-right: -15px;
    margin-left: -15px;
  }
  .c-ad__item {
    display: inline-block;
    padding: 15px;
    width: 33.333%;
  }
}

.c-list {
  margin-right: -12px;
  margin-left: -12px;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
}

.c-list__item {
  position: relative;
  padding: 15px 12px;
}

.c-list__tag {
  color: #fff;
  position: absolute;
  z-index: 2;
  top: 15px;
  left: 12px;
  display: inline-block;
  padding: .5em 1em;
  background-color: #000;
}

.c-list__figure {
  overflow: hidden;
  display: block;
}

.c-list__name {
  line-height: 1.5;
  margin-bottom: 10px;
}

.c-list__time {
  display: block;
}

.-descTop .c-list__figure figure {
  overflow: hidden;
  backface-visibility: hidden;
  -webkit-transition: transform 300ms ease-out;
  -webkit-transition: -webkit-transform 300ms ease-out;
  -ms-transition: transform 300ms ease-out;
  transition: transform 300ms ease-out;
}

.-descTop .c-list__figure img {
  backface-visibility: hidden;
  -webkit-transition: transform 300ms ease-out;
  -webkit-transition: -webkit-transform 300ms ease-out;
  -ms-transition: transform 300ms ease-out;
  transition: transform 300ms ease-out;
}

.-descTop .c-list__name a {
  transition: color 300ms;
}

.-descTop .c-list__item.-hover .c-list__figure figure {
  -webkit-transform: scale(0.9, 0.9);
  -ms-transform: scale(0.9, 0.9);
  transform: scale(0.9, 0.9);
}

.-descTop .c-list__item.-hover .c-list__figure img {
  -webkit-transform: scale(1.111, 1.111);
  -ms-transform: scale(1.111, 1.111);
  transform: scale(1.111, 1.111);
}

.-descTop .c-list__item.-hover .c-list__name a {
  color: lightseagreen;
}

@media print, screen and (max-width: 734px) {
  .list {
    margin-bottom: 50px;
    padding-top: 30px;
  }
  .c-list__item {
    width: 50%;
  }
  .c-list__figure {
    margin-bottom: 15px;
    border-radius: 0 8px;
  }
  .c-list__tag {
    font-size: 1.2rem;
  }
  .c-list__name {
    font-size: 1.4rem;
  }
  .c-list__time {
    font-size: 1.3rem;
  }
}

@media print, screen and (min-width: 735px) {
  .list {
    margin-bottom: 120px;
    padding-top: 30px;
  }
  .c-list__item {
    padding-top: 25px;
    padding-bottom: 25px;
    width: 33.333%;
  }
  .c-list__tag {
    font-size: 1.4rem;
    padding-top: 1em;
    padding-bottom: 1em;
    top: 25px;
  }
  .c-list__figure {
    margin-bottom: 20px;
    border-radius: 0 16px;
  }
  .c-list__name {
    font-size: 1.6rem;
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden;
  }
  .c-list__time {
    font-size: 1.4rem;
  }
}

.c-hero {
  overflow: hidden;
  position: relative;
}

.c-hero .l-mask {
  position: absolute;
  left: 0;
  bottom: 0;
}

.c-hero__bg {
  object-fit: cover;
  object-position: center;
  height: 100%;
}

.c-hero__titles {
  color: #fff;
  text-align: center;
  position: absolute;
  bottom: 50%;
  left: 25px;
  right: 25px;
  -webkit-transform: translateY(50%);
  -ms-transform: translateY(50%);
  transform: translateY(50%);
}

.c-hero__subtitle,
.c-hero__title {
  font-weight: bold;
  text-shadow: 1px 1px 5px #888;
}

.c-hero__subtitle {
  letter-spacing: .05em;
  text-indent: .05em;
}

.c-hero__title {
  letter-spacing: .5em;
  text-indent: .5em;
}

@media print, screen and (max-width: 734px) {
  .c-hero {
    height: 300px;
    margin-bottom: 30px;
  }
  .c-hero__subtitle {
    font-size: 1.6rem;
    margin-bottom: 10px;
  }
  .c-hero__title {
    font-size: 2.4rem;
  }
}

@media print, screen and (min-width: 735px) {
  .c-hero {
    height: 450px;
    margin-bottom: 50px;
  }
  .c-hero__subtitle {
    font-size: 2.1rem;
    margin-bottom: 20px;
  }
  .c-hero__title {
    font-size: 3.6rem;
  }
}

.home-hero {
  background-color: #333;
}

.home-hero__inner {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100vh;
}

.home-hero__inner .c-wave,
.home-hero__inner .l-mask {
  position: absolute;
  bottom: 0;
  left: 0;
}

.home-slider {
  position: absolute;
  z-index: -1;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.home-slider__images,
.home-slider__blur {
  display: none;
}

.home-slider__controller {
  position: absolute;
  left: 0;
  width: 100%;
}

.home-slider__controller ul {
  font-size: 0;
  text-align: center;
}

.home-slider__controller li,
.home-slider__controller .home-slider__button,
.home-slider__controller svg {
  line-height: 0;
  vertical-align: bottom;
  display: inline-block;
}

.home-slider__controller li {
  overflow: hidden;
  padding-left: 8px;
  padding-right: 8px;
}

.home-slider__controller svg {
  width: 100%;
  height: auto;
}

.home-slider__controller svg path {
  fill: #fff;
}

.home-slider__button {
  width: 27px;
  -webkit-transform: translateY(100%);
  -ms-transform: translateY(100%);
  transform: translateY(100%);
}

.nopointer .home-slider__button, .home-slider__button.-current {
  pointer-events: none;
}

.home-hero__bg {
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.home-hero__title {
  font-family: 'Noto Sans JP', sans-serif;
  line-height: 1.25;
  position: absolute;
  bottom: 50%;
  left: 0;
  right: 0;
  margin-left: auto;
  margin-right: auto;
  width: 100%;
  -webkit-transform: translateY(50%);
  -ms-transform: translateY(50%);
  transform: translateY(50%);
}

.home-hero__title div {
  display: inline-block;
  background-color: transparent;
  background-image: linear-gradient(135deg, #f5fbfc 0%, #fdeff6 50%, #d9fffe 100%);
  -webkit-background-clip: text;
  background-clip: text;
}

.-ie .home-hero__title div {
  background: none;
}

.home-hero__title .-letter {
  color: lightseagreen;
  opacity: 0;
  transition: color 150ms ease-out, opacity 150ms ease-out;
}

.home-hero__title .-letter:nth-child(1), .home-hero__title .-letter:nth-child(4) {
  transition-delay: 500ms, 0ms;
}

.home-hero__title .-letter:nth-child(2), .home-hero__title .-letter:nth-child(3) {
  transition-delay: 600ms, 100ms;
}

.home-hero__title .-letter:nth-child(10), .home-hero__title .-letter:nth-child(11) {
  transition-delay: 500ms, 0ms;
}

.home-hero__title .-letter:nth-child(9), .home-hero__title .-letter:nth-child(12) {
  transition-delay: 600ms, 100ms;
}

.home-hero__title .-letter:nth-child(8), .home-hero__title .-letter:nth-child(13) {
  transition-delay: 700ms, 200ms;
}

.home-hero__title .-letter:nth-child(7), .home-hero__title .-letter:nth-child(14) {
  transition-delay: 800ms, 300ms;
}

.home-hero__title .-letter:nth-child(6), .home-hero__title .-letter:nth-child(15) {
  transition-delay: 900ms, 400ms;
}

.home-hero__title .-letter:nth-child(17), .home-hero__title .-letter:nth-child(25) {
  transition-delay: 500ms, 0ms;
}

.home-hero__title .-letter:nth-child(18), .home-hero__title .-letter:nth-child(24) {
  transition-delay: 600ms, 100ms;
}

.home-hero__title .-letter:nth-child(19), .home-hero__title .-letter:nth-child(23) {
  transition-delay: 700ms, 200ms;
}

.home-hero__title .-letter:nth-child(20), .home-hero__title .-letter:nth-child(22) {
  transition-delay: 800ms, 300ms;
}

.home-hero__title .-letter:nth-child(21) {
  transition-delay: 900ms, 400ms;
}

.home-hero__title.is-animate .-letter {
  color: rgba(255, 255, 255, 0);
  opacity: 1;
}

.-ie .home-hero__title.is-animate .-letter {
  color: #fff;
}

@media print, screen and (max-width: 350px) {
  .home-hero__title {
    font-size: 3.6rem;
  }
}

@media print, screen and (min-width: 351px) and (max-width: 734px) {
  .home-hero__title {
    font-size: 4.2rem;
  }
}

@media print, screen and (max-width: 734px) {
  .home-hero {
    margin-bottom: 50px;
  }
  .home-slider__controller {
    bottom: 45px;
  }
  .home-hero__title {
    padding-right: 25px;
    padding-left: 25px;
  }
}

@media print, screen and (min-width: 735px) {
  .home-slider__controller {
    bottom: 90px;
  }
}

@media print, screen and (min-width: 735px) and (max-width: 1068px) {
  .home-hero__title {
    padding-right: 45px;
    padding-left: 45px;
  }
}

@media print, screen and (min-width: 1069px) {
  .home-hero__title {
    padding-right: 80px;
    padding-left: 80px;
  }
}

@media print, screen and (min-width: 735px) and (max-width: 899px) {
  .home-hero__title {
    font-size: 6rem;
  }
}

@media print, screen and (min-width: 900px) and (max-width: 1440px) {
  .home-hero__title {
    font-size: 7.2rem;
  }
}

@media print, screen and (min-width: 1441px) {
  .home-hero__title {
    font-size: 9rem;
    max-width: 1440px;
  }
}

.home-news__list {
  margin-top: -10px;
}

.home-news__item {
  padding-top: 10px;
  padding-bottom: 10px;
}

.home-news__time {
  color: #999;
}

.-descTop .home-news__item a {
  transition: color 300ms;
}

.-descTop .home-news__item a:hover {
  color: lightseagreen;
}

@media print, screen and (max-width: 734px) {
  .home-news__time {
    display: block;
  }
  .home-news__list {
    margin-bottom: 20px;
  }
}

@media print, screen and (min-width: 735px) {
  .home-news__item {
    position: relative;
    padding-left: 10em;
  }
  .home-news__time {
    position: absolute;
    top: 10px;
    left: 0;
  }
}

@media print, screen and (min-width: 1069px) {
  .home-news__body {
    position: relative;
    padding-right: 170px;
  }
  .home-news__body .c-button {
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    margin-top: auto;
    margin-bottom: auto;
    height: 70px;
  }
}

.home-about__intro {
  margin-top: 30px;
  background-color: #fff;
}

@media print, screen and (max-width: 734px) {
  .home-about__intro .c-button {
    margin-top: 30px;
  }
  .home-about__figure {
    margin-top: 30px;
  }
}

@media print, screen and (min-width: 735px) {
  .home-about .l-part {
    position: relative;
    z-index: 1;
  }
  .home-about__intro {
    padding-top: 30px;
    padding-right: 50px;
    width: 420px;
    border-radius: 0 18px 0 0;
    transition: width 300ms 100ms;
  }
  .home-about__intro .c-button {
    margin-top: 30px;
  }
  .home-about__figure {
    position: absolute;
    z-index: -2;
    top: 0;
    bottom: 150px;
    left: 375px;
    right: -45px;
  }
  .home-about__figure img {
    object-fit: cover;
    object-position: center;
    height: 100%;
  }
}

@media print, screen and (min-width: 1069px) {
  .home-about__intro {
    padding-right: 70px;
    width: 570px;
  }
  .home-about__figure {
    left: 500px;
    right: -80px;
  }
}

@media print, screen and (min-width: 1441px) {
  .home-about__intro {
    width: 630px;
  }
  .home-about__figure {
    left: 560px;
    right: 0;
  }
}

.home-area {
  position: relative;
}

.home-area::before {
  content: "";
  position: absolute;
  z-index: 2;
  right: 0;
  left: 0;
  display: inline-block;
  margin-right: auto;
  margin-left: auto;
  top: -30px;
  width: 1px;
  background-color: #333;
}

.home-area .l-mask-top {
  position: absolute;
  left: 0;
  top: 0;
}

@media print, screen and (max-width: 734px) {
  .home-area {
    padding-top: 70px;
  }
  .home-area::before {
    height: 70px;
  }
}

@media print, screen and (min-width: 735px) {
  .home-area {
    padding-top: 100px;
  }
  .home-area::before {
    height: 100px;
  }
}

.home-facility {
  position: relative;
  z-index: 1;
  background-image: url(../images/home/home_facility.jpg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}

.home-facility::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5);
}

.home-facility .c-heading,
.home-facility .c-subheading {
  color: #fff;
}

@media print, screen and (max-width: 734px) {
  .home-facility {
    margin-bottom: 50px;
  }
  .home-facility__body {
    padding-top: 90px;
    padding-bottom: 60px;
  }
}

@media print, screen and (min-width: 735px) {
  .home-facility__body {
    padding-top: 120px;
    padding-bottom: 60px;
  }
}

@media print, screen and (max-width: 734px) {
  .home-facility {
    margin-top: -29px;
  }
}

@media print, screen and (min-width: 735px) {
  .home-facility {
    margin-top: -59px;
  }
}

.home-guide__map {
  position: relative;
  z-index: 1;
}

.home-guide__map::before {
  content: "";
  display: inline-block;
  position: absolute;
  z-index: 2;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  background-image: url(../images/home/home_area_balloon.png);
  background-position: 50% 0;
  background-repeat: no-repeat;
  background-size: auto 100%;
  pointer-events: none;
}

.home-guide__map img {
  display: block;
}

.home-guide__link {
  display: block;
}

.home-guide__pointer {
  overflow: hidden;
  position: absolute;
  z-index: 3;
  top: 0;
  left: 0;
  right: 0;
  margin-right: auto;
  margin-left: auto;
  border-radius: 50%;
}

.home-guide__pointer a {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  width: inherit;
  height: inherit;
}

.home-guide__title {
  display: inline-block;
  margin: auto;
}

.home-guide__title span {
  display: inline-block;
  width: 100%;
}

.home-guide__title .c-heading {
  margin-bottom: 0;
}

.-descTop .home-guide__link {
  transition: opacity 300ms;
}

.-descTop .home-guide__link:hover {
  opacity: .75;
}

@media print, screen and (max-width: 734px) {
  .home-guide__map {
    padding-top: 60px;
  }
  .home-guide__map::before {
    height: 120px;
  }
  .home-guide__pointer {
    height: 105px;
    pointer-events: none;
  }
}

@media print, screen and (min-width: 735px) {
  .home-guide {
    margin-top: 75px;
    margin-bottom: 60px;
  }
  .home-guide__map {
    padding-top: 80px;
  }
}

@media print, screen and (min-width: 735px) and (max-width: 1068px) {
  .home-guide__map::before {
    height: 210px;
  }
  .home-guide__pointer {
    width: 173px;
    height: 173px;
  }
  .home-guide__pointer .c-subheading {
    font-size: 2.1rem;
  }
}

@media print, screen and (min-width: 1069px) {
  .home-guide__map::before {
    height: 300px;
  }
  .home-guide__pointer {
    width: 247px;
    height: 247px;
  }
}

.lists-headline {
  text-align: center;
  margin-bottom: 1em;
}

@media print, screen and (max-width: 734px) {
  .lists-introduction {
    margin-bottom: 30px;
  }
}

@media print, screen and (min-width: 735px) {
  .lists-introduction {
    margin-bottom: 60px;
  }
}

@media print, screen and (max-width: 734px) {
  .area-select,
  .area-same {
    margin-bottom: 50px;
  }
}

@media print, screen and (min-width: 735px) {
  .area-select,
  .area-same {
    margin-bottom: 50px;
  }
}

@media print, screen and (max-width: 734px) {
  .area-heading {
    margin-bottom: 20px;
  }
  .area-introduction,
  .area-introduction__text {
    margin-bottom: 30px;
  }
}

@media print, screen and (min-width: 735px) {
  .area-introduction {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
  }
  .area-heading {
    margin-bottom: 35px;
  }
  .area-introduction__text,
  .area-introduction__figure {
    width: 50%;
  }
  .area-introduction__text {
    padding-right: 60px;
  }
}

@media print, screen and (max-width: 734px) {
  .area-same .area-list {
    margin-bottom: 30px;
  }
}

@media print, screen and (min-width: 735px) {
  .area-same .area-list {
    margin-bottom: 60px;
  }
}

.detail-titles {
  text-align: center;
  margin-bottom: 45px;
}

.detail-title,
.detail-icon__mark {
  font-weight: bold;
}

.detail-icon {
  margin-bottom: 2em;
}

.detail-icon__mark {
  color: #fff;
  display: inline-block;
  padding: 5px 1.5em;
  background-color: #333;
}

.detail-title {
  letter-spacing: 0.25em;
  text-indent: 0.25em;
}

.detail-mv {
  overflow: hidden;
  border-radius: 0 20px;
}

@media print, screen and (max-width: 734px) {
  .detail-titles {
    margin-top: 110px;
  }
  .detail-icon__mark {
    font-size: 1.3rem;
    border-radius: 0 10px;
  }
  .detail-title {
    font-size: 2.1rem;
  }
  .detail-mv {
    margin-bottom: 30px;
  }
}

@media print, screen and (min-width: 735px) {
  .detail-titles {
    margin-top: 160px;
  }
  .detail-icon__mark {
    font-size: 1.6rem;
    border-radius: 0 20px;
  }
  .detail-title {
    font-size: 2.7rem;
  }
  .detail-mv {
    margin-bottom: 50px;
    margin-right: auto;
    margin-left: auto;
    width: 100%;
    max-width: 900px;
  }
}

.detail-block .wp-block-image {
  overflow: hidden;
  padding-top: 15px;
  padding-bottom: 15px;
}

.detail-outline__map {
  display: block;
}

.detail-outline__map a {
  color: #fff;
  line-height: 1;
  text-align: center;
  display: inline-block;
  padding-top: 5px;
  padding-bottom: 5px;
  border-radius: 0 10px;
  background-color: #333;
}

.detail-outline {
  border-top: 1px solid;
}

.-mobile .detail-outline a,
.-tablet .detail-outline a {
  text-decoration: underline;
}

.-descTop .detail-outline a {
  transition: color 300ms;
}

.-descTop .detail-outline a:hover {
  color: lightseagreen;
}

@media print, screen and (max-width: 734px) {
  .detail-outline__map a {
    font-size: 1.3rem;
    width: 170px;
  }
  .detail-block {
    margin-bottom: 50px;
  }
  .detail-block p {
    margin-bottom: 20px;
  }
  .detail-block .wp-block-image {
    margin-bottom: 20px;
    border-radius: 0 10px;
  }
  .detail-outline {
    margin-bottom: 50px;
  }
  .detail-outline dt, .detail-outline dd {
    padding-right: 5px;
    padding-left: 5px;
  }
  .detail-outline dt {
    padding-top: 7px;
    border-bottom: 1px solid #e0e0e0;
  }
  .detail-outline dd {
    padding-bottom: 7px;
    border-bottom: 1px solid;
  }
}

@media print, screen and (min-width: 735px) {
  .detail-content {
    margin-right: auto;
    margin-left: auto;
    width: 100%;
    max-width: 900px;
  }
  .detail-block {
    margin-bottom: 120px;
  }
  .detail-block p {
    margin-bottom: 30px;
  }
  .detail-block .wp-block-image {
    margin-bottom: 30px;
    border-radius: 0 20px;
  }
  .detail-outline {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    margin-bottom: 90px;
  }
  .detail-outline dt, .detail-outline dd {
    padding-top: 10px;
    padding-bottom: 10px;
    border-bottom: 1px solid;
  }
  .detail-outline dt {
    width: 8em;
  }
  .detail-outline dd {
    padding-left: 45px;
    width: calc( 100% - 8em);
  }
  .detail-outline dd.-maps {
    position: relative;
    padding-right: 200px;
  }
  .detail-outline__map {
    position: absolute;
    top: 11px;
    right: 5px;
  }
  .detail-outline__map a {
    font-size: 1.4rem;
    display: inline-block;
    width: 190px;
  }
}

.detail-pagination {
  position: relative;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  height: 72px;
}

.detail-pagination .c-button {
  position: absolute;
  top: 0;
}

.detail-pagination .c-button.-prev {
  left: 0;
}

.detail-pagination .c-button.-next {
  right: 0;
}

.detail-pagination__index {
  text-decoration: underline;
  display: inline-block;
  padding: 3px;
}

.c-pagenation {
  text-align: center;
  position: relative;
  z-index: 1;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
}

.c-pagenation nav {
  width: 100%;
}

.c-pagenation .c-button {
  position: absolute;
  top: 0;
  z-index: -1;
}

.c-pagenation .c-button.-prev {
  left: 0;
}

.c-pagenation .c-button.-next {
  right: 0;
}

.page-numbers {
  display: inline-block;
  padding: 3px;
}

.page-numbers.current {
  text-decoration: underline;
}

.-descTop .page-numbers {
  transition: color 200ms;
}

.-descTop .page-numbers:hover {
  color: lightseagreen;
}

@media print, screen and (max-width: 480px) {
  .c-pagenation {
    padding-right: 60px;
    padding-left: 60px;
  }
  .c-pagenation .c-button__button {
    font-size: 1.3rem;
    width: auto;
    height: auto;
  }
  .c-pagenation .-prev .c-button__button::before {
    content: "< BACK";
  }
  .c-pagenation .-next .c-button__button::before {
    content: "NEXT >";
  }
  .c-pagenation .c-button__circle,
  .c-pagenation .c-button__text,
  .c-pagenation .c-button__bar {
    display: none;
  }
}

@media print, screen and (min-width: 481px) and (max-width: 734px) {
  .c-pagenation {
    padding-right: 132px;
    padding-left: 132px;
  }
}

@media print, screen and (max-width: 734px) {
  .c-pagenation {
    margin-bottom: 30px;
    height: 50px;
  }
  .page-numbers {
    font-size: 1.2rem;
    margin-right: 10px;
    margin-left: 10px;
  }
}

@media print, screen and (min-width: 735px) {
  .c-pagenation {
    margin-bottom: 50px;
    height: 70px;
    padding-right: 162px;
    padding-left: 162px;
  }
  .page-numbers {
    font-size: 1.3rem;
    margin-right: 25px;
    margin-left: 25px;
  }
}

.notfound-heading {
  font-weight: bold;
  margin-bottom: 5px;
}

.notfound-subheading {
  margin-bottom: 20px;
}

.notfound-button a {
  text-decoration: underline;
}

@media print, screen and (max-width: 734px) {
  .notfound-wrapper {
    padding-top: 120px;
  }
  .notfound-heading {
    font-size: 3rem;
  }
  .notfound-subheading {
    font-size: 1.4rem;
  }
  .notfound-button {
    padding-top: 30px;
    padding-bottom: 30px;
  }
  .notfound-button a {
    font-size: 1.4rem;
  }
}

@media print, screen and (min-width: 735px) {
  .notfound-wrapper {
    padding-top: 150px;
  }
  .notfound-heading {
    font-size: 3.6rem;
  }
  .notfound-subheading {
    font-size: 1.5rem;
  }
  .notfound-button {
    padding-top: 60px;
    padding-bottom: 60px;
  }
  .notfound-button a {
    font-size: 1.6rem;
  }
}

.about-hero {
  position: relative;
  height: 100vh;
  background-image: url(../images/about/about_mv.jpg);
  background-position: top center;
  background-repeat: no-repeat;
  background-size: cover;
}

.about-hero__title {
  position: absolute;
  bottom: 50%;
  left: 0;
  -webkit-transform: translateY(50%);
  -ms-transform: translateY(50%);
  transform: translateY(50%);
}

.about-title,
.about-subtitle {
  color: #fff;
  font-weight: bold;
}

.about-subtitle {
  line-height: 1.5;
}

@media print, screen and (max-width: 415px) {
  .about-title {
    font-size: 1.5rem;
    margin-bottom: 30px;
  }
  .about-subtitle {
    font-size: 2.1rem;
  }
}

@media print, screen and (min-width: 416px) and (max-width: 734px) {
  .about-title {
    font-size: 1.6rem;
    margin-bottom: 35px;
  }
  .about-subtitle {
    font-size: 2.7rem;
  }
}

@media print, screen and (min-width: 735px) and (max-width: 1068px) {
  .about-title {
    font-size: 1.8rem;
    margin-bottom: 40px;
  }
  .about-subtitle {
    font-size: 4.2rem;
  }
}

@media print, screen and (max-width: 734px) {
  .about-hero {
    margin-bottom: -33px;
  }
  .-ie .about-hero {
    margin-bottom: -9%;
  }
}

@media print, screen and (max-width: 1068px) {
  .about-hero__title {
    padding-right: 25px;
    padding-left: 25px;
  }
}

@media print, screen and (min-width: 735px) {
  .about-hero {
    margin-bottom: -63px;
  }
  .-ie .about-hero {
    margin-bottom: -7.5%;
  }
  .about-hero__title {
    padding-right: 45px;
    padding-left: 45px;
  }
}

@media print, screen and (min-width: 1069px) {
  .about-hero__title {
    padding-right: 80px;
    padding-left: 80px;
  }
  .about-title {
    font-size: 2.1rem;
    margin-bottom: 60px;
  }
  .about-subtitle {
    font-size: 6rem;
  }
}

.about-introduction {
  position: relative;
  z-index: 1;
  padding-top: 2px;
}

.about-introduction .l-mask-bottom {
  position: absolute;
  z-index: 9;
  bottom: 0;
  left: 0;
}

.about-introduction .c-wave.-top {
  position: absolute;
  left: 0;
}

.about-introduction .c-wave.-top {
  z-index: -1;
  top: 0;
}

.about-introduction .c-wave__svg {
  vertical-align: top;
}

.about-introduction__body {
  padding-top: 0;
  padding-bottom: 0;
}

.about-introduction__body .c-paragraph {
  color: #fff;
}

.about-introduction__wrapper {
  overflow: hidden;
  position: relative;
  z-index: 1;
}

.about-introduction__image,
.about-introduction__mask {
  position: absolute;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: url(../images/about/about_introduction.jpg);
  background-repeat: no-repeat;
  background-size: cover;
}

.about-introduction__image {
  z-index: -1;
  top: 60px;
  border-top: 3px solid #fff;
  background-position: 50% -60px;
}

.-ie .about-introduction__image {
  top: 0;
  border-top: none;
  background-position: 50% 0%;
}

.about-introduction__bg,
.about-introduction__bg svg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
}

.about-introduction__bg {
  z-index: -1;
}

.about-introduction__bg svg {
  display: block;
  height: 100%;
}

.about-introduction__bg path {
  fill: #fff;
}

.about-introduction__mask {
  top: 3px;
  background-position: 50% 0%;
  -webkit-clip-path: url(#clipWave);
  clip-path: url(#clipWave);
}

@media print, screen and (max-width: 734px) {
  .about-introduction__wrapper {
    padding-top: 90px;
    padding-bottom: 90px;
  }
  .about-introduction__bg {
    height: 100%;
  }
  .-ie .about-introduction__bg {
    background-image: url(../images/about/about_introduction_small_ie.png);
    background-position: 50% 0%;
    background-repeat: no-repeat;
    background-size: 100% auto;
  }
  .-ie .about-introduction__bg svg,
  .-ie .about-introduction__bg .about-introduction__mask {
    display: none;
  }
}

@media print, screen and (min-width: 735px) and (max-width: 1068px) {
  .about-introduction__wrapper {
    padding-top: 120px;
    padding-bottom: 120px;
  }
  .about-introduction__body .c-paragraph {
    width: 65%;
  }
}

@media print, screen and (min-width: 735px) {
  .about-introduction__bg {
    height: 60px;
  }
  .-ie .about-introduction__bg {
    display: none;
  }
  .-ie .about-introduction__image {
    background-image: url(../images/about/about_introduction_ie.png);
  }
}

@media print, screen and (min-width: 1069px) {
  .about-introduction__wrapper {
    padding-top: 150px;
    padding-bottom: 150px;
  }
  .about-introduction__body .c-paragraph {
    width: 65%;
  }
}

.about-contact {
  position: relative;
  z-index: 2;
}

@media print, screen and (max-width: 734px) {
  .about-contact__inner {
    padding-top: 30px;
  }
}

@media print, screen and (min-width: 735px) {
  .about-contact__inner {
    padding-top: 60px;
  }
}

.campaign-headings {
  text-align: center;
}

.campaign-heading,
.campaign-heading {
  font-weight: bold;
}

.campaign-mv {
  border-radius: 0 20px;
}

.campaign-lead {
  margin-bottom: 20px;
}

@media print, screen and (max-width: 350px) {
  .campaign-heading {
    font-size: 1.8rem;
  }
}

@media print, screen and (min-width: 351px) and (max-width: 734px) {
  .campaign-heading {
    font-size: 2.1rem;
  }
}

@media print, screen and (max-width: 734px) {
  .campaign-headings {
    padding-top: 20px;
    padding-bottom: 20px;
  }
  .campaign-subheading {
    font-size: 1.4rem;
    margin-bottom: 10px;
  }
  .campaign-mv {
    padding-top: 10px;
    margin-bottom: 20px;
  }
}

@media print, screen and (min-width: 735px) {
  .campaign-headings {
    padding-top: 30px;
    padding-bottom: 30px;
  }
  .campaign-subheading {
    font-size: 2.4rem;
    margin-bottom: 20px;
  }
  .campaign-heading {
    font-size: 4.2rem;
  }
  .campaign-mv {
    padding-top: 20px;
    margin-bottom: 30px;
  }
}

.campaign-button.-center {
  text-align: center;
}

.campaign-button .-black {
  display: block;
}

.campaign-button .-normal {
  text-decoration: underline;
}

.campaign-button__body {
  padding-right: 1em;
  padding-left: 1em;
}

.-black .campaign-button__body {
  color: #fff;
  font-weight: bold;
  text-align: center;
  display: block;
  border: 1px solid #707070;
  background-color: #000;
}

/* animation */
.-descTop .campaign-button .-black .campaign-button__body {
  transition: color 200ms, background-color 200ms;
}

.-descTop .campaign-button .-black:hover .campaign-button__body {
  color: #000;
  background-color: #fff;
}

@media print, screen and (max-width: 734px) {
  .campaign-button {
    padding-top: 20px;
    padding-bottom: 20px;
  }
  .campaign-button .-normal {
    font-size: 1.4rem;
  }
  .campaign-button__body {
    font-size: 1.6rem;
    padding-top: 15px;
    padding-bottom: 15px;
  }
}

@media print, screen and (min-width: 735px) {
  .campaign-button {
    padding-top: 35px;
    padding-bottom: 35px;
  }
  .campaign-button .-normal {
    font-size: 1.5rem;
  }
  .campaign-button .-black {
    margin-right: auto;
    margin-left: auto;
    max-width: 900px;
  }
  .campaign-button__body {
    padding-top: 35px;
    padding-bottom: 35px;
  }
}

@media print, screen and (min-width: 735px) {
  .campaign-button .-normal {
    font-size: 1.6rem;
  }
}

@media print, screen and (min-width: 735px) and (max-width: 1068px) {
  .campaign-button__body {
    font-size: 1.8rem;
  }
}

@media print, screen and (min-width: 1069px) {
  .campaign-button__body {
    font-size: 2.4rem;
  }
}

.campaign-list {
  line-height: 1.3;
}

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

.campaign-list dt.-lv2, .campaign-list dt.-lv3 {
  padding-right: 1em;
}

.campaign-list dt.-lv2:not(:nth-of-type(1)), .campaign-list dt.-lv3:not(:nth-of-type(1)) {
  border-top: 1px solid #d6d6d6;
}

.campaign-list dd.-lv2, .campaign-list dd.-lv3 {
  padding-left: 1em;
}

.campaign-list dd.-lv2:not(:nth-of-type(1)), .campaign-list dd.-lv3:not(:nth-of-type(1)) {
  border-top: 1px solid #d6d6d6;
}

.campaign-list dd a {
  text-decoration: underline;
}

.campaign-list--arrow li:not(:last-child)::after {
  content: "↓";
  display: block;
  padding-top: 10px;
}

.campaign-annotation {
  text-indent: -1em;
  margin-top: 2em;
  padding-left: 1em;
}

.campaign-annotation::before {
  content: "※";
}

@media print, screen and (max-width: 734px) {
  .campaign-list {
    font-size: 1.4rem;
    margin-bottom: 60px;
  }
  .campaign-list dt, .campaign-list dd {
    padding-top: 15px;
    padding-bottom: 15px;
  }
  .campaign-list dt.-lv1, .campaign-list dd.-lv1 {
    border-top: 1px solid;
  }
  .campaign-list dt.-lv2 {
    width: 5em;
  }
  .campaign-list dt.-lv3 {
    width: 8em;
  }
  .campaign-list dd.-lv1 {
    padding-left: 1em;
    border-top-color: #e0e0e0;
  }
  .campaign-list dd.-lv2 {
    width: calc( 100% - 5em);
  }
  .campaign-list dd.-lv3 {
    width: calc( 100% - 8em);
  }
  .campaign-list--second {
    margin-top: -15px;
    margin-bottom: -15px;
  }
  .campaign-list--unorder,
  .campaign-list--arrow {
    margin-top: -5px;
    margin-bottom: -5px;
  }
  .campaign-list--unorder li,
  .campaign-list--arrow li {
    padding-top: 5px;
    padding-bottom: 5px;
  }
}

@media print, screen and (min-width: 735px) {
  .campaign-list {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    margin-bottom: 120px;
    margin-right: auto;
    margin-left: auto;
    width: 100%;
    max-width: 900px;
  }
  .campaign-list dt.-lv1, .campaign-list dd.-lv1 {
    padding-top: 30px;
    padding-bottom: 30px;
    border-top: 1px solid;
  }
  .campaign-list dt.-lv2, .campaign-list dt.-lv3, .campaign-list dd.-lv2, .campaign-list dd.-lv3 {
    padding-top: 20px;
    padding-bottom: 20px;
  }
  .campaign-list dt.-lv1 {
    padding-right: 35px;
    width: 10em;
  }
  .campaign-list dt.-lv2 {
    width: 7em;
  }
  .campaign-list dt.-lv3 {
    width: 12em;
  }
  .campaign-list dd.-lv1 {
    position: relative;
    padding-left: 35px;
    width: calc( 100% - 10em);
  }
  .campaign-list dd.-lv1::before {
    content: "";
    position: absolute;
    top: 10px;
    bottom: 10px;
    left: 0;
    display: block;
    width: 0;
    border-left: 1px solid;
  }
  .campaign-list dd.-lv2 {
    width: calc( 100% - 7em);
  }
  .campaign-list dd.-lv3 {
    width: calc( 100% - 12em);
  }
  .campaign-list--second {
    margin-top: -20px;
    margin-bottom: -20px;
  }
  .campaign-list--unorder,
  .campaign-list--arrow {
    margin-top: -10px;
    margin-bottom: -10px;
  }
  .campaign-list--unorder li,
  .campaign-list--arrow li {
    padding-top: 10px;
    padding-bottom: 10px;
  }
}

@media print, screen and (min-width: 735px) and (max-width: 1068px) {
  .campaign-list {
    font-size: 1.5rem;
  }
}

@media print, screen and (min-width: 1069px) {
  .campaign-list {
    font-size: 1.6rem;
  }
}
