@charset "UTF-8";
/* ==================================================================

Setting

================================================================== */
/* Break Point
--------------------------------- */
/* Width
--------------------------------- */
/* height
--------------------------------- */
/* Color
--------------------------------- */
/* Font
--------------------------------- */
/* Google Web Font */
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700&family=Noto+Serif+JP:wght@400;700&family=Roboto:wght@400;500;700&display=swap");
/* Space
--------------------------------- */
/* Vendor Prefix
--------------------------------- */
/* ==================================================================

Mixin

================================================================== */
/* Break Point
--------------------------------- */
/* Clearfix
--------------------------------- */
/* Vendor Prefix (@include vendor-prefix($name, $value);)
--------------------------------- */
/* Responsive Font (@include rwd-font($min-font, $max-font, $min-width, $max-width);)
--------------------------------- */
/* ==================================================================

Overlay

================================================================== */
/* .p-overlay
--------------------------------- */
.p-overlay {
  position: fixed;
  left: 0;
  bottom: 0;
  z-index: 100001;
  width: 100%;
  height: 100%;
  background: #fff;
}
.p-overlay .icon {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 60px;
  height: 60px;
  border-radius: 50%;
  -webkit-box-shadow: inset 0 0 0 3px #333;
          box-shadow: inset 0 0 0 3px #333;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
}
.p-overlay .icon::before, .p-overlay .icon::after {
  content: "";
  position: absolute;
}
.p-overlay .icon::before {
  top: -1px;
  left: -1px;
  width: 32px;
  height: 62px;
  background: #fff;
  border-radius: 62px 0 0 62px;
  -webkit-transform-origin: 32px 31px;
          transform-origin: 32px 31px;
  -webkit-animation: loading 2s infinite 1.5s;
          animation: loading 2s infinite 1.5s;
}
.p-overlay .icon::after {
  top: -1px;
  left: 31px;
  width: 32px;
  height: 62px;
  background: #fff;
  border-radius: 0 62px 62px 0;
  -webkit-transform-origin: 0 31px;
          transform-origin: 0 31px;
  -webkit-animation: loading 2s infinite;
          animation: loading 2s infinite;
}
@-webkit-keyframes loading {
  0% {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg);
  }
}
@keyframes loading {
  0% {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg);
  }
}
.p-overlay.is-active {
  height: 0;
  -webkit-transition: height 0.5s 1s;
  transition: height 0.5s 1s;
}
.p-overlay.is-active .icon {
  opacity: 0;
  visibility: hidden;
  -webkit-transition: opacity 1s, visibility 1s;
  transition: opacity 1s, visibility 1s;
}

/* ==================================================================

Hero

================================================================== */
/* .p-hero
--------------------------------- */
.p-hero {
  position: relative;
  height: calc(100vh - 82px - 72px - 120px);
  background: #fff;
  -webkit-box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.07);
          box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.07);
}
@media screen and (max-width: 767px) {
  .p-hero {
    height: calc(50vh - 60px);
  }
}
.p-hero__slider {
  overflow: hidden;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
@media screen and (max-width: 767px) {
  .p-hero__slider {
    position: absolute;
  }
}

/* ==================================================================

swiper
背景画像スライドショー

================================================================== */
@-webkit-keyframes zoomUp {
  0% {
    -webkit-transform: scale(1);
    transform: scale(1);
  }
  100% {
    -webkit-transform: scale(1.15);
    transform: scale(1.15);
  }
}
@keyframes zoomUp { /* 1.15倍させる指定 */
  0% {
    -webkit-transform: scale(1);
    transform: scale(1);
  }
  100% {
    -webkit-transform: scale(1.15);
    transform: scale(1.15);
  }
}
.swiper-slide {
  overflow: hidden;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}
.swiper-slide > a {
  display: block;
}
.swiper-slide > a:hover {
  -webkit-filter: brightness(1.1);
          filter: brightness(1.1);
  -webkit-transition: -webkit-filter 0.3s ease;
  transition: -webkit-filter 0.3s ease;
  transition: filter 0.3s ease;
  transition: filter 0.3s ease, -webkit-filter 0.3s ease;
}

.swiper-slide-active .slide-img,
.swiper-slide-duplicate-active .slide-img,
.swiper-slide-prev .slide-img { /* 12秒かけて拡大させる */ }

.slide-img {
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center center; /* 背景画像は中央を軸に表示させる */
  width: 100%;
  height: 100vh; /* 600pxの高さで表示させる */
  -webkit-transform-origin: center center;
          transform-origin: center center;
}
@media screen and (max-width: 767px) {
  .slide-img {
    height: calc(50vh - 60px);
  }
}

.slide-picture {
  display: block;
}
.slide-picture img {
  width: 100%;
  height: 100vh;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center center;
     object-position: center center; /* 画像は中央を軸に表示させる */
  -webkit-transform-origin: center center;
          transform-origin: center center;
}
@media screen and (max-width: 767px) {
  .slide-picture img {
    height: calc(50vh - 60px);
  }
}

.slide--coop {
  display: -webkit-box !important;
  display: -ms-flexbox !important;
  display: flex !important;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 100%;
  height: 100%;
  background-color: #A9EBF7;
}
.slide--coop > img {
  padding-block: 156px 121px;
  -o-object-fit: contain;
     object-fit: contain;
  -o-object-position: center center;
     object-position: center center;
  max-width: 900px;
}
@media screen and (max-width: 767px) {
  .slide--coop > img {
    padding-block: 0;
  }
}

.swiper-container-horizontal > .swiper-pagination-bullets, .swiper-pagination-custom, .swiper-pagination-fraction {
  bottom: 210px;
}
@media screen and (max-width: 767px) {
  .swiper-container-horizontal > .swiper-pagination-bullets, .swiper-pagination-custom, .swiper-pagination-fraction {
    top: calc(50vh - 60px - 30px);
  }
}

.swiper-pagination-bullet {
  background: #fff;
  opacity: 0.5;
  border: 1px solid rgba(255, 255, 255, 0.3);
}

.swiper-pagination-bullet-active {
  background: #007aff;
  opacity: 1;
}

.swiper-button-next, .swiper-button-prev {
  background-color: rgba(255, 255, 255, 0.6);
  background-size: 15px 24px;
  width: 47px;
  height: 54px;
}
@media screen and (max-width: 767px) {
  .swiper-button-next, .swiper-button-prev {
    width: 30px;
    height: 40px;
  }
}

.swiper-button-next, .swiper-container-rtl .swiper-button-prev {
  right: 0;
  border-radius: 5px 0 0 5px;
}

.swiper-button-prev, .swiper-container-rtl .swiper-button-next {
  left: 0;
  border-radius: 0 5px 5px 0;
}

/* ==================================================================

menu

================================================================== */
.l-hero-under__menu {
  width: 840px;
  margin: 0 auto;
  position: relative;
}
@media screen and (max-width: 850px) {
  .l-hero-under__menu {
    width: auto;
  }
}
.l-hero-under__menu__inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  width: 100%;
  position: absolute;
  bottom: 0;
  left: 0;
  -webkit-transform: translateY(50%);
          transform: translateY(50%);
  z-index: 999;
}
@media screen and (max-width: 767px) {
  .l-hero-under__menu__inner {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -ms-flex-pack: distribute;
        justify-content: space-around;
    -webkit-transform: translateY(90%);
            transform: translateY(90%);
  }
}
.l-hero-under__menu__inner > a {
  display: block;
  width: 180px;
  height: 180px;
  text-align: center;
  font-size: 1.5rem;
  color: #333;
  font-weight: bold;
  position: relative;
  -webkit-transform: translate(0, 0);
          transform: translate(0, 0);
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
}
.l-hero-under__menu__inner > a:hover {
  -webkit-transform: translate(0, -10%);
          transform: translate(0, -10%);
}
@media screen and (max-width: 767px) {
  .l-hero-under__menu__inner > a {
    width: 44vw;
    height: 44vw;
    margin-top: 10px;
  }
}
.l-hero-under__menu__inner > a::before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background: #fff;
  border: 4px solid #e0305a;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  -webkit-box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.07);
          box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.07);
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
}
.l-hero-under__menu__inner > a > span {
  display: block;
}
.l-hero-under__menu__inner > a > span.c-menu-img {
  height: 105px;
  line-height: 111px;
}
@media screen and (max-width: 767px) {
  .l-hero-under__menu__inner > a > span.c-menu-img {
    height: 80px;
    line-height: 80px;
  }
}
.l-hero-under__menu__inner > a > span.c-menu-img img {
  vertical-align: middle;
}
@media screen and (max-width: 767px) {
  .l-hero-under__menu__inner > a > span.c-menu-img img {
    width: auto;
    height: 60px;
  }
}
.l-hero-under__menu__inner > a > span.c-menu-text {
  line-height: 1.4;
  padding: 0.5em 0;
}
@media screen and (max-width: 767px) {
  .l-hero-under__menu__inner > a > span.c-menu-text {
    font-size: 1.2rem;
  }
}
.l-hero-under__menu__inner > a > span.c-menu-text.p-menu-text-2line {
  padding: 0;
}
.l-hero-under__menu__inner > a:nth-of-type(2)::before {
  border-color: #f78d3f;
}
.l-hero-under__menu__inner > a:nth-of-type(3)::before {
  border-color: #008bca;
}
.l-hero-under__menu__inner > a:nth-of-type(4)::before {
  border-color: #fed95c;
}

/* ==================================================================

Card

================================================================== */
/* .p-card
--------------------------------- */
.p-card {
  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;
}
@media screen and (max-width: 767px) {
  .p-card {
    display: block;
  }
}
.p-card__item {
  position: relative;
  width: calc(25% - 0.01px);
  padding: 20px 20px 90px;
  border-radius: 10px;
  -webkit-transition: background-color 0.3s;
  transition: background-color 0.3s;
}
@media screen and (max-width: 767px) {
  .p-card__item {
    display: block;
    width: 100%;
    padding: 20px;
  }
}
.p-card__item:hover {
  background: rgb(223.4375, 233.75, 244.0625);
}
@media print, screen and (min-width: 768px) {
  .p-card--2 .p-card__item {
    width: calc(33.3333333333% - 10px - 0.01px);
    padding: 0 0 90px;
  }
}
@media screen and (max-width: 767px) {
  .p-card--2 .p-card__item {
    margin-top: 20px;
    padding: 0;
  }
}
.p-card--2 .p-card__item:hover {
  text-decoration: underline;
  background: none;
}
.p-card__image {
  display: block;
  margin: 0 auto;
}
.p-card__title {
  margin-top: 30px;
  text-align: center;
  font-size: 2.4rem;
  font-weight: normal;
  color: #333;
}
@media screen and (max-width: 767px) {
  .p-card__title {
    font-size: 2rem;
  }
}
.p-card__text {
  color: rgb(127.5, 127.5, 127.5);
  -webkit-transition: color 0.3s;
  transition: color 0.3s;
}
.p-card__item:hover .p-card__text {
  color: #333;
}
.p-card__button {
  position: absolute;
  left: 50%;
  bottom: 20px;
  width: calc(100% - 40px);
  height: 50px;
  padding: 0 30px;
  text-align: center;
  line-height: 50px;
  border: 1px solid #ddd;
  color: #555;
  border-radius: 25px;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  -webkit-transition: color 0.3s, background-color 0.3s;
  transition: color 0.3s, background-color 0.3s;
}
@media screen and (max-width: 767px) {
  .p-card__button {
    position: static;
    width: 100%;
    margin-top: 20px;
    -webkit-transform: none;
            transform: none;
  }
}
@media print, screen and (min-width: 768px) {
  .p-card--2 .p-card__button {
    width: auto;
  }
}
.p-card__button .inner {
  position: relative;
  display: inline-block;
  padding-left: 15px;
}
.p-card__button .inner::before {
  content: "";
  position: absolute;
  top: 50%;
  left: -4px;
  width: 4px;
  height: 4px;
  margin-top: -4px;
  border-top: 2px solid #aaa;
  border-right: 2px solid #aaa;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
  -webkit-transition: border-color 0.3s;
  transition: border-color 0.3s;
}
.p-card__item:hover .p-card__button {
  color: #fff;
  background: #234465;
}
.p-card__item:hover .p-card__button .inner::before {
  border-color: #fff #fff transparent transparent;
}

/* ==================================================================

Text

================================================================== */
/* .p-lead
--------------------------------- */
.p-lead {
  font-size: 1.8rem;
  text-align: center;
  line-height: 2.5;
}
@media screen and (max-width: 767px) {
  .p-lead {
    font-size: 1.6rem;
    text-align: left;
    line-height: 2;
  }
}
.p-lead--2 {
  color: #fff;
}

/* ==================================================================

section

================================================================== */
.l-section .c-title {
  font-size: 3.4rem;
  font-weight: bold;
  margin-bottom: 25px;
}
@media screen and (max-width: 767px) {
  .l-section .c-title {
    font-size: 2.4rem;
  }
}
.l-section .p-lead {
  line-height: 1.8;
  font-weight: bold;
}
@media screen and (max-width: 767px) {
  .l-section .p-lead {
    font-size: 1.4rem;
    text-align: center;
  }
}

.l-section--1 {
  padding-top: 150px;
  padding-bottom: 55px;
  background: url(/img/bg_about_kasai_01.jpg) center/cover no-repeat;
}
@media screen and (max-width: 767px) {
  .l-section--1 {
    padding-top: calc(44vw * 2.1);
    background: url(/img/bg_about_kasai_01_sp.jpg) bottom center no-repeat;
    background-size: auto 100%;
  }
}
.l-section--1 .c-title,
.l-section--1 .p-lead {
  text-shadow: 0px 0px 5px rgba(255, 255, 255, 0.8);
}
.l-section--1 .p-lead.p-lead-sec--1 {
  font-size: 2.12rem;
}
@media screen and (max-width: 767px) {
  .l-section--1 .p-lead.p-lead-sec--1 {
    font-size: 1.8rem;
  }
}

.l-section--2 {
  position: relative;
  padding-top: 80px;
  padding-bottom: 70px;
}
@media screen and (max-width: 767px) {
  .l-section--2 {
    padding: 40px 0 30px;
  }
}
.l-section--2 > * {
  position: relative;
  z-index: 2;
}
.l-section--2::before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background: url(/img/bg_about_kyosai_03.jpg) center/cover no-repeat;
  position: absolute;
  left: 0;
  top: 0;
}
.l-section--2__bg--01, .l-section--2__bg--02 {
  position: absolute;
  z-index: 1;
}
@media screen and (max-width: 767px) {
  .l-section--2__bg--01 img, .l-section--2__bg--02 img {
    width: 30vw;
    height: auto;
  }
}
.l-section--2__bg--01 {
  left: 0;
  top: 0;
}
.l-section--2__bg--02 {
  right: 0;
  bottom: 0;
}

.l-section--3 {
  background: url(/img/bg_useful_01.png) center/cover no-repeat;
  padding-top: 70px;
  padding-bottom: 80px;
}
@media screen and (max-width: 767px) {
  .l-section--3 {
    padding: 40px 0 30px;
  }
}