@charset "UTF-8";
@import url("vegas.css");
/***** スライダー *****/
#vegas {
  width: 100%;
  height: 700px; }
  @media screen and (max-width: 800px) {
    #vegas {
      height: 500px; } }
  @media screen and (max-width: 640px) {
    #vegas {
      height: 400px; } }

.swiper {
  width: 100%;
  overflow: hidden; }
  @media screen and (max-width: 640px) {
    .swiper {
      height: 300px; } }

.swiper-slide {
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center; }

.swiper-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform-origin: center center;
  /* アニメーションの初期状態 */
  transform: scale(1);
  transition: transform 0s linear; }

/* ケン・バーンズアニメーションの定義 */
@keyframes kenburns-effect {
  0% {
    transform: scale(1) translateX(0) translateY(0); }
  50% {
    transform: scale(1.1) translateX(-3%) translateY(2%);
    /* 拡大し、少し左上へ移動 */ }
  100% {
    transform: scale(1) translateX(0) translateY(0);
    /* 元のスケールに戻す */ } }
/* アクティブな（表示中の）スライドにケン・バーンズエフェクトを適用 */
.swiper-slide-active img {
  animation: kenburns-effect 15s forwards; }

/********** #topNews **********/
#topNews {
  padding-bottom: 0; }

#topNews .modBloc {
  max-width: 1000px;
  margin-bottom: 150px; }
  @media screen and (max-width: 640px) {
    #topNews .modBloc {
      margin-bottom: 100px; } }

#topNews .modNews {
  margin-bottom: 40px; }

#topNews .flexWrap {
  justify-content: space-between; }

#topNews .flexWrap img {
  width: 33.33333%;
  height: auto; }

#topNews .modBtn {
  margin: 0 auto; }

/********** #topAbout **********/
@media screen and (max-width: 800px) {
  #topAbout {
    padding: 50px 0; } }

#topAbout .flexWrap {
  justify-content: space-between; }
  @media screen and (max-width: 800px) {
    #topAbout .flexWrap {
      display: block; } }

#topAbout img {
  width: 45%; }
  @media screen and (max-width: 800px) {
    #topAbout img {
      width: 70%;
      margin: 0 auto 40px; } }

#topAbout .topAbout {
  width: 55%;
  display: flex;
  align-items: center; }
  @media screen and (max-width: 800px) {
    #topAbout .topAbout {
      width: 100%;
      display: block; } }

#topAbout .topAbout .inner {
  padding-left: 100px; }
  @media screen and (max-width: 1050px) {
    #topAbout .topAbout .inner {
      padding-left: 50px; } }
  @media screen and (max-width: 800px) {
    #topAbout .topAbout .inner {
      padding-left: 0;
      text-align: center; } }

#topAbout .topAbout .inner p {
  margin-bottom: 40px; }

@media screen and (max-width: 800px) {
  #topAbout .topAbout .inner .modBtn {
    margin: 0 auto; } }

/********** #topService **********/
#topService {
  background: url("../img/index/bg_service.jpg");
  position: relative;
  background-size: cover;
  background-position: center center; }

#topService::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(255, 255, 255, 0.8);
  z-index: 1; }

#topService > * {
  position: relative;
  z-index: 2; }

#topService .modTtl h2 {
  text-align: center; }

#topService .modBloc p {
  margin-bottom: 60px;
  text-align: center; }

#topService .flexWrap {
  width: 80%;
  margin: 0 auto;
  justify-content: space-between; }
  @media screen and (max-width: 1200px) {
    #topService .flexWrap {
      width: 90%; } }
  @media screen and (max-width: 800px) {
    #topService .flexWrap {
      width: 100%; } }

.serviceBox {
  width: 32%;
  margin: 0 auto;
  background: #fff; }

.serviceBox h3 {
  text-align: center;
  padding: 20px 0;
  font-weight: normal; }
  @media screen and (max-width: 800px) {
    .serviceBox h3 {
      font-size: 0.85rem; } }

.serviceBox a {
  text-decoration: none; }
