@charset "UTF-8";


/* ■ main-vs-col---------------------------------*/
:root { 
  --main-pc-h: 600px; 
  --main-sp-h: 400px;
}
main{
}
.main-vs-col{
    width: 100%;
    height: var(--main-pc-h);
    background: #0F348B;
    margin-top: 78px;
    position: relative;
}
.tex-box{
  max-width: var(--xl);
  height: var(--main-pc-h);
  margin: 0 auto;
  position: relative;
  left: 20px;
  z-index: 0;
  opacity: 0;
  animation: fadekeep 32s linear forwards;
}
.main-vs-col .iori{
  position: absolute;
  right: -40px;
  bottom: 0;
  width: 350px;
  height: auto;
}
.main-vs{
  background: url("../../img/top/main/top_bg.jpg") repeat-x center center;
  background-size: cover;
  height: var(--main-pc-h);
  position: absolute;
  width: 100%;
  top: 0;
  left: 0;
  
  /* アニメーションを追加 */
  animation: bgScroll 60s linear infinite;
}

/* 左へゆっくり流すアニメーション */
@keyframes bgScroll {
  0% {
    background-position: 0 0;
  }
  100% {
    background-position: -2000px 0; /* 流す距離は画像サイズに応じて調整 */
  }
}

.main-vs .tex{
  position: absolute;
  top: 30px;
  color: var(--color-n-blue);
  z-index: 1;
}
.tex img {
  position: absolute;
  opacity: 0;
  animation: fadeLoop 32s infinite ease-in-out;
}

.tex {
  position: relative;
  width: 100%;
  height: auto;
}


/* 各画像の開始を8秒ずつずらす */
.tex img:nth-child(1) { animation-delay: 0s; }
.tex img:nth-child(2) { animation-delay: 8s; }
.tex img:nth-child(3) { animation-delay: 16s; }
.tex img:nth-child(4) { animation-delay: 24s; }

/* ▼ポイント：切り替えを早めにしたキーフレーム */
@keyframes fadeLoop {
  0%   { opacity: 0; }
  5%   { opacity: 1; }    /* ここでサッと現れる（フェードイン早め） */
  25%  { opacity: 1; }    /* ゆっくり表示区間（長め） */
  30%  { opacity: 0; }    /* すぐ消える（フェードアウト早め） */
  100% { opacity: 0; }
}

@keyframes fadekeep {
  0%   { opacity: 0; }
  5%   { opacity: 1; }  /* ←ここで表示された状態のまま維持される */
  100% { opacity: 1; }  /* ←止めたい最終形を明示 */
}

#heroTex { position: relative; }
#heroTex .hero-slide {
  position: absolute; inset: 0;
  /*width: 100%; height: auto;*/
/*  opacity: 0;
  transition: opacity .4s ease;*/
}
#heroTex .hero-slide.is-active {
  /*position: relative; /* 1枚目をレイアウト要素にしたいならこれが効く */*/
  /*opacity: 1;*/
}

/* ■ award-col---------------------------------*/
.award-col{
  position: absolute;
  bottom: 30px;
}
.award-col img{
  width: 180px;
  height: 180px;
}
/* ■ award-col---------------------------------*/
.p-mark-in{
  position: absolute;
  right: 20px;
  bottom: 10px;
}
.p-mark-in p{
  color: #fff;
  text-align: right;
  font-size: 1.4rem;
  display: inline-block;
  line-height: 1.5em;
}
.p-mark-in img{
  width: 300px;
  height: auto;
  display: inline-block;
}
@media screen and (max-width: 1201px) {
  .main-vs .tex img{
    width: 85%;
    height: auto;
  }
  .award-col img{
    width: 160px;
    height: auto;
  }  
}


@media screen and (max-width: 991px) {
  .main-vs .tex img{
    width: 85%;
    height: auto;
  }
  .main-vs-col .iori{
    position: absolute;
    right: 0;
    bottom: 0;
    width: 300px;
    height: auto;
  }
  .award-col{
    bottom: 105px;
  }
  .award-col img{
    width: 140px;
    height: auto;
  }
  .p-mark-in{
    left: 0;
    display: flex;
    flex-direction: column;
    flex-direction:column-reverse;
    font-size: 30px;
  }
   .p-mark-in p{
    text-align: left;
   }
  .p-mark-in p br{
    visibility: hidden;
    display: none;

  }
}


@media screen and (max-width: 991px) {
  .main-vs .tex img{
    width: 95%;
  }
  .award-col{
    bottom: 130px;
  }

}

@media screen and (max-width: 767px) {
  .main-vs-col,.tex-box, .main-vs{
    height: var(--main-sp-h);
  }
  .tex-box{
    left: 10px;
  }
  .main-vs-col{
    margin-top: 60px;
  }
  .main-vs-col .iori{
    width: 240px;
    right: -40px;
  }
  .award-col{
    bottom: 93px;
  }
  .award-col > div{
    gap: 10px;
  }
  .award-col img{
    width: 70px;
    height: auto;
  }
  .p-mark-in img{
    width: 260px;
  }
  .p-mark-in p{
    font-size: 1rem;
  }
}
@media screen and (max-width: 640px) {
  .award-col img{
    width: 85px;
    height: auto;
  }
}


/* ■ about-col---------------------------------*/
.about-col-bg{
  position: relative;
  z-index: 0;
  background: url("../../img/top/how_bg3.png") no-repeat center top;
  background-size: cover;
  width: 100%;
}
.about-col{
  color:#fff;
  background: rgba(8, 52, 139, 0.9);
}

.about-col .container{
  padding: 40px 20px 40px 20px;
}
.about-col .headTxt{
  color: #fff;
  padding-top: 0;
}
.point_list{
  color: var(--color-n-blue);
  margin-top: 20px;
  /*width: 80%;*/
}
.point_list .box{
  background: #fff;
  border-radius: 10px;
  margin: 10px;
  padding: 20px;
}
.point_list .box img{
  height: 120px;
  display: block;
  margin: 0 auto;
}
.point_list .box .head_Txt{
  font-size: 20px;
  font-weight: 600;
  margin: 10px 0;
}

@media screen and (max-width: 767px) {
  .point_list .box img{
    height: 80px;
  }
  .point_list{
    flex-direction: column;
    width: 100%;
  }
}


/* ■ star-col---------------------------------*/
.starBox{
  width: 70%; 
  margin: 0 auto;
}
.star-col .star{
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.star-col .star p{
  font-weight: 600;
  font-size: 17px;
  line-height: 1.3em;
  margin-top: 10px;
  color: var(--color-n-blue);
}
.star-col .star img{
  width: 70%;
  height: auto;
}
@media screen and (max-width: 767px) {
  .starBox{
    width: 100%;
    flex-wrap: wrap;
    justify-content: center;
  }
  .star-col .star{
    width: 30%;
  }
  .star-col .star p{
    font-size: 13px;
  }

}

/* ■ c_logo-col---------------------------------*/
.c_logo-col{
  margin-top: 40px;
}
.c_logo-col img{
  height: 76px;

}
.slider div{
  margin: 0 3px 3px 3px;
}
@media screen and (max-width: 767px) {
  .c_logo-col img{
    height: 60px;

  }
}

/* ■ movie-col---------------------------------*/
.movie-col{
  background: #f2f2f2;
}
.movie-col-box{
  padding: 40px 0;
}
.movie-col-box:nth-child(2){
  padding-right: 10vw;
  padding-left: 3vw;
}
.movie-col-box p .pc{
  display: inline-block;
}
.movie_bg{
  background: url("../../img/top/movie_bg.png") no-repeat center top;
  background-size: cover;
  height: auto;
}
.movie{
  width: 70%;
  display: flex;
  align-items: center;
}
.movie iframe{
  width: 100%;
  height: 19vw;
}
.movie-col .head-secTxt{
  margin-bottom: 20px;
}
@media screen and (max-width: 767px) {
  .movie-col-inner{
    flex-direction: column;
    align-items: center;
    flex-direction:column-reverse;
  }
  .movie-col-box{
    width: 100%;
  }
  .movie-col-box p .pc{
    display: none;
  }
  .movie-col-box p .sp{
    display: inline-block;
  }
  .movie-col-box:nth-child(2){
    padding: 0 0 30px 0;
  }
  .movie-col-box .headTxt,
  .movie-col-box .head-secTxt,
  .movie-col-box .head-secTxt + p{
    text-align: center;
    margin-right: 20px;
    margin-left: 20px;
  }
  .movie iframe{
    height: 39vw;
  }
}

/* ■ case-col---------------------------------*/
.case-col{
  background: url("../../img/top/bg_case.png") no-repeat center top;
  background-size: cover;
  height: auto;
  padding: 30px 0 60px 0;
}
.heading{
  font-size: 20px;
  font-weight: 600; 
}
.case-col .round_box:last-of-type .heading{
  background: var(--color-n-blue);
}
.case-col .round_box ul{
  padding: 30px; 
}
.case-col .round_box li{
  font-size: 17px;
  font-weight: 600;
  line-height: 2em;
  position: relative;
  margin-left: 2em;
}
.case-col .before li::before{
  content: '';
  background: url('../../img/top/check_off.png') no-repeat center center;
  width: 23px;
  height: 23px;
  position: absolute;
  left: -2em;
  top: 0.3em;
  background-size: cover; 
}
.case-col .after li::before{
  content: '';
  background: url('../../img/top/check_on.png') no-repeat center center;
  width: 23px;
  height: 23px;
  position: absolute;
  left: -2em;
  top: 0.3em;
  background-size: cover; 
}
.case_arrow{
  position: relative;
  width: 80px;
}
.case_arrow img{
  width: 50%;
  height: auto;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translateY(-50%) translateX(-50%);
  -webkit- transform: translateY(-50%) translateX(-50%); 
}
@media screen and (max-width: 767px) {
  .case-col-inner{
    flex-direction: column;
  }
  .case-col .round_box ul{
    padding: 20px 5px;
  }
  .case-col .round_box li{
    font-size: 11px;
  }
  .case_arrow{
    height: 80px;
    margin: 0 auto;
  }
  .case_arrow img{
    width: 100px;
  }
  .case-col .before li::before,.case-col .after li::before{
    width: 18px;
    height: 18px;
  }
}

/*price-col ---------------------------------*/
.price-col .price{
  text-align: center;
}
.price-col .price .heading{
  background: var(--color-l-blue);
}
.price-col .price .round_box:nth-child(2) .heading{
  background: var(--color-d-blue);
}
.price-col .price .round_box:nth-child(3) .heading{
  background: var(--color-n-blue);
}
.price-col .price .round_box:nth-child(2){
  border: 3px solid var(--color-d-blue);  
}
.price-col .price .round_box:nth-child(3){
  border: 3px solid var(--color-n-blue);  
}
.price-col .price .heading{
  padding:10px 20px 20px 20px ;
}
.price-col .price .heading .plan{
  font-size: 20px;
  font-weight: 600;
  margin-bottom: 10px;
}
.price-col .price .naisen_n {
  padding: 20px 0;
}
.price-col .price .naisen_n p{
  font-size: 20px;
  font-weight: 600;
}
.price-col .price .naisen_n p span{
  font-size:35px;
  padding: 0 5px;
}
.discount{
  border:  1px solid #ccc;
  align-items: center;
  background: #fff;
  width: 60%;
  margin: 20px auto 30px auto;
}
.discount p{
  padding: 20px;
}
.discount_price{
  border-left: 1px solid #ccc;
  font-size: 20px;
  font-size: 1.5rem;
  font-size: clamp(1.3rem, 1.4vw, 1.5rem);
}
.discount_price ul{
  padding: 20px;
}
.discount_price ul li{
  line-height: 1.5em;
}
.discount_price ul li span{
  color: #e60012;
}
@media screen and (max-width: 767px) {
  .discount{
    width: 100%;
    flex-direction: column;
  }
  .discount p{
    padding: 10px;
  }
  .price-col .price{
    flex-direction: column;
    gap:20px;
    padding: 0 20px;
  }
  .discount_price{
    border-left: none;
  }
  .discount_price ul {
    padding: 0 10px 10px 10px;
  }
  .discount_price ul li{
    font-size: 1.2rem;
  }
}

/*panel-list-col ■ ---------------------------------*/
.panel-list-col{
  background: #f2f2f2;
  padding: 0 0 50px 0;
}

.panel-list-col .support{
  margin: 5px 0;
}
.panel-list-col .support p{
  border: 1px solid #eee;
  padding: 3px 10px;
  border-radius: 8px;
  box-shadow: 2px 2px 4px #ccc;
}
.panel-list-col .func-tel{
  padding: 20px 0;
  margin: 0 20px;
}
.panel-list-col .func-tel:first-of-type{
  border-bottom: 1px solid #eee;
}

/*type-col ■ ---------------------------------*/
.type-col{
  background: red;
  background: url("../../img/top/type_bg.png") no-repeat center top;
  background-size: cover;
  height: auto;
  padding: 30px 0 60px 0;  
}
.type-col p{
  text-align: center;
  font-weight: 600;
  color: #fff;
}
.type-col p span{
  color: #fcee21;
}
.type-col .img img{
  width:15vw ;
  height: auto;
}
@media screen and (max-width: 767px) {
  .type-col .img img{
    width:18vw ;    
  }
  .type-col p.headTxt{
    text-align: center;
  }
  .type-col p{
    text-align: justify;
  }
}

/*plot-col ■ ---------------------------------*/
.plot-col{
  padding: 0 0 60px 0;
}
.plot-col .plot_img{
  margin-right:auto;
  margin-left: auto;
  display: block;
  height: auto;
  width: 90vw;
  width: clamp(500px, 85vw, 850px);
  display: block;
}
@media screen and (max-width: 767px) {
  .plot-col .plot_img{
    width: 100%;
    height: auto;
  }
}

/*tv-col ■ ---------------------------------*/
.tv-col{
  background: #f2f2f2;
  padding: 0 0 60px 0;
}
.tv-col .plot_img{
  display: block;
  margin-top: 30px;
  width: 80%;
  height: auto;
}
.tv-youtube iframe{
  margin: 0 auto;
  display: block;
}
.tv-youtube .tb_txt{
  text-align: center;
} 

/* スライダ行の初期化が終わるまでチラつきを防ぐ */
.c_logo-col .slider{ visibility:hidden; }

.c_logo-col .slider .slick-slide{ margin: 0 16px; }
.c_logo-col img{
  display:block;
  height:76px;      /* 既存に合わせる */
  width:180px;      /* ←横幅を固定して総幅を揃える ※ポイント */
  object-fit:contain;
}
@media screen and (max-width: 767px) {
  .tv-col .plot_img{
    width: 100%;
  }
  .tv-youtube iframe{
    width: 100%;
    height: 50vw;
  }
  .c_logo-col img{
    height:50px;      /* 既存に合わせる */
    width:118px;      /* ←横幅を固定して総幅を揃える ※ポイント */
  }
}

/*news-col ■ ---------------------------------*/
.news-col{
  background: #f2f2f2;
  padding-bottom: 30px;
}
.attention{
  border: 1px solid ;
  color: var(--color-n-blue);
  background: #fff;
}
.news_list time{
  font-weight: 600;
  margin-right: 2em;
  color:#888;
}
.news_list ul{
  background: #fff;
  padding: 0 30px 0 30px;
}
.news_list ul li{
  position: relative;
  padding-right: 20px;
}
.news_list ul a{
  width: 100%;
  display: inline-block;
  border-bottom:  1px solid #eee;
  padding: 20px 0;
  position: relative;
  color: var(--color-link);
}
.news_list ul a:hover{
  background: #f6fcff;
}
.news_list ul li::after{
  content: '';
  background: url('../../img/common/news_arrow.svg') no-repeat center center;
  width: 20px;
  height: 20px;
  right: 0;
  position: absolute;
  top: 0;
  bottom: 0;
  margin: auto 0;
  background-size: cover; 
}
.news_list .btn a{
  font-size: 15px;
  padding: 10px 30px;
  font-weight: 400;
}
@media screen and (max-width: 767px) {
  .news_list ul{
    padding: 0 10px 0 10px;
  }
  .news_list ul a{
    display: flex;
    flex-direction: column;
    text-decoration: justify;
  }

}

/*calendar_col ■ ---------------------------------*/
.calendar-col{
  background: #ebf6fa;
  padding: 30px 0 50px 0;
}
.schedule_txt{
  width: 50%;
}
.schedule_txt li{
  border-bottom: 1px solid #eee;
}
.schedule_txt span{
  color: #000;
  margin-right: 1em;
}
.schedule_txt .btn a{
  padding: 5px 15px;
  color: #fff;
  font-weight: 400;
  font-size: 1.4rem;
  float: right;
}
.schedule_txt .btn a:hover{
    color: #fff;
}
.calendar-col .round_box{
  padding: 20px;
}
.calendar-col .round_box .year{
  border-bottom: 1px solid #eee;
  padding-bottom: 10px;
}
.calendar-col .round_box li{
  padding: 10px 0;
}
.calendar-col .round_box a{
  line-height: 1.5em;
}
.schedule_txt a{
  color: var(--color-link);
}
.schedule_txt a:hover{
  color: var(--color-link-hover);
}

.schedule_month{
  width: 50%;
}
.schedule_month .ev-event a{
  font-size: 1.1rem;
}
.schedule_month img{
  width: 420px;
  height: auto;
}
.holiday_c{
  color:#f8cbcb;
  font-size: 2em;
}
.schedule_month .y-m{
  margin: 0 auto;
  display: block;
  text-align: center;
}
.ev-holiday a{
  font-size: 1.2rem;
}
.ev-holiday span{
  display: none;
}
.ev-holiday .cal-label-shopoff{
  color: #000;
  display: block;
  font-size: 1.2rem;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
  overflow: hidden;          /* はみ出した部分を非表示 */
  line-height: 1.3em;
}
.company-calendar-nav{
  text-align: center;
}
.cal-today{
  display: block;
}
.company-calendar-month .cal-head{
  display: none;
}
.company-calendar ul.events li a{
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
  overflow: hidden;          /* はみ出した部分を非表示 */
  text-overflow: ellipsis;   /* 省略記号(...)を表示 */
  line-height: 1.3em;
}
.company-calendar td{
  height: 40px;
  width: 30px;
}
.calendar-col .round_box li,.calendar-col .round_box a{
  font-size: 1.4rem;
  padding: 5px;
}
.eyl-heading{
  font-weight: bold;
}

@media screen and (max-width: 767px) {
  .calendar-in{
    flex-wrap: wrap;
  }
  .calendar-col{
    padding-top: 0;
  }
  .calendar-col .round_box{
    padding: 5px;
  }
  .calendar-col .round_box a{
    display: flex;
    flex-direction: column;
  }
  .schedule_month{
    margin-top: 20px;
  }
  .schedule_month img{
    width: 100%;
  }
  .schedule_txt,.schedule_month{
    width: 100%;
  }
  .schedule_txt .btn a{
    float: none;
  }
}

/*event_col ■ ---------------------------------*/
.event_col .plot_img{
  width: 60%;
  height: auto;
  margin: 40px auto;
}
@media screen and (max-width: 767px) {
  .event_col .plot_img{
    width: 100%;
  }
  .event_col .slick-slide img{
    height: auto;
  }
}

/*blog_col ■ ---------------------------------*/
.blog_col{
  background: #f2f2f2;
  padding-bottom: 50px;
}
#feed {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 20px;
  margin:20px 0 20px 0 ;
}
#feed .btnicon{
  text-align: right;
}
#feed .item {
  border-radius: 10px;
  overflow: hidden;
  transition: box-shadow 0.2s;
  background: #fff;
}
#feed .item:hover {
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}
#feed .item a {
  text-decoration: none;
  color: inherit;
  display: block;
}
#feed img {
  width: 100%;
  height: auto;
  display: block;
  border-bottom: 1px solid #eee;
}
#feed .item img {
  transition: transform 0.3s ease;
}

#feed .item:hover img {
  transform: scale(1.05);
}
#feed .content {
  padding: 10px;
}
#feed .date {
  font-size: 0.85em;
  color: #666;
  margin-bottom: 5px;
}
#feed .title {
  font-weight: bold;
  font-size: 1em;
  margin-bottom: 5px;
}
#feed .excerpt {
  font-size: 0.9em;
  color: #444;
}
@media screen and (max-width: 992px) {
  #feed {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media screen and (max-width: 768px) {
  #feed {
    grid-template-columns: repeat(2, 1fr);
  }
  #feed {
    gap:10px;
  }
  #feed .title{
    font-size: 0.9em;
    line-height: 1.4em;
  }
}

