@charset "UTF-8";
/*! ----------------------------------------------------------
 base/_index.scss
 - 他のファイルからは `@use 'base'` でまとめて利用可能
 - forward 順序を変えると依存関係に影響する場合あり
---------------------------------------------------------- */
/*! -----------------------------
  common
----------------------------- */
/* ページ本体はスクロールさせない */
/* 外側はスクロールさせない */
html {
  box-sizing: border-box;
  position: relative;
  font-weight: 400;
  font-style: normal;
  font-size: 62.5%;
  font-weight: normal;
}
/* iOS Safariでも効く範囲での対策 */
html, body {
  overscroll-behavior: none;
  width: 100%;
} /* 新しめのiOSで有効 */
.your-scroll {
  overscroll-behavior: contain;
}
.overflow-wp{
  overflow: hidden;
  width: 100%;
}

*, *::before, *::after {
  box-sizing: inherit;
}

/* ノッチ分の安全領域を考慮 */
.app-root {
  padding-top: env(safe-area-inset-top);
  padding-bottom: env(safe-area-inset-bottom);
  padding-left: env(safe-area-inset-left);
  padding-right: env(safe-area-inset-right);
}

* {
  margin: 0;
  padding: 0;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-feature-settings: "palt";
  font-kerning: normal; /* カーニング有効 */
}

/*! -----------------------------
    フォント設定
----------------------------- */

/*! -----------------------------
  セレクタ　リセット
----------------------------- */
body {
  position: relative;
  -webkit-text-size-adjust: 100%;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 500;
  color: #2a2055;
  background: #FCFFF6;
}
.bg-ly{
  background: url(../images/common/dot.png);
  background-size: 50rem;
}

body.-fixed {
  overflow: hidden;
  position: fixed;
}

h1, h2, h3, h4, h5, h6 {
  font-weight: normal;
  line-height: 1.4;
  letter-spacing: 0;
}

img {
  width: 100%;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
  vertical-align: bottom;
}

a {
  cursor: pointer;
  text-decoration: none;
  color: inherit;
}

a[href^="tel:"] {
  text-decoration: none;
}

button {
  cursor: pointer;
  display: block;
  outline: none;
  display: block;
  padding: 0;
  border: none;
  border-radius: 0;
  margin: 0;
  font-family: inherit;
  font-weight: inherit;
  font-size: inherit;
  color: inherit;
  background-color: transparent;
}

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

table {
  width: 100%;
  border-spacing: 0;
  border-collapse: collapse;
  margin-bottom: 0;
}

tbody {
  display: block;
  width: 100%;
}

th, td {
  text-align: left;
}

::-webkit-input-placeholder,
:-moz-placeholder {
  color: #CCC9C4;
}

/*! -----------------------------
  フォームタグ　リセット
----------------------------- */
input,
textarea {
  box-sizing: border-box;
  display: block;
  width: 100%;
  padding: 0;
  border: unset;
  border-width: 0;
  background-color: transparent;
  border: none;
  -webkit-appearance: none;
}

input[type=button], input[type=text], input[type=tel], input[type=email], input[type=submit], input[type=image], textarea {
  -webkit-appearance: none;
  border-radius: 0;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 500;
  font-style: normal;
}

input[type=text i] {
  padding: 0;
}

input:focus-visible,
textarea:focus-visible {
  outline: none;
}

input:-webkit-autofill,
textarea:-webkit-autofill {
  -webkit-box-shadow: 0 0 0 1000px #f4f0eb inset;
  -webkit-text-fill-color: #222;
}

select {
  border-width: 0px;
  border: none;
  color: #242424;
  -moz-appearance: none;
  -webkit-appearance: none;
  appearance: none;
  border-radius: 0;
  border: 0;
  margin: 0;
  padding: 0;
  background: none transparent;
  vertical-align: middle;
  font-size: inherit;
  color: inherit;
  box-sizing: content-box;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 500;
  font-style: normal;
}

/* クリック/タップ時のハイライトも含めて視覚的フォーカスを全消し */
:focus,
:focus-visible,
:focus-within {
  outline: none !important;
  box-shadow: none !important;
}

a, button, [tabindex], input, select, textarea {
  outline: none !important;
  box-shadow: none !important;
}

button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
}

* {
  -webkit-tap-highlight-color: transparent; /* iOS/Android */
}
.-tabsp{
  display: none;
}
.-pc{
  display: block;
}
@media screen and (max-width:1000px){
  .-tabsp{
    display: block;
  }
  .-pc{
    display: none;
  }
}

/*! -----------------------------
  common
----------------------------- */
/*==================== 
  ヘッダーメニュー
====================*/
.header{
  position: fixed;
  z-index: 99999;
  top: 0;
  left: 0;
  width: 100%;
  margin: 0 auto;
  padding: 2rem 5%;
  display: flex;
  justify-content: space-between;
}
.home .hd-logo{
  width: 0;
  transition: .5s;
}
.home.is-scroll .hd-logo{
  width: 26rem;
}
.hd-logo{
  width: 26rem;
}
.c-menu{
  display: flex;
  justify-content: right;
  gap: 2rem 3.2rem;
}
.c-menu__link{
  position: relative;
  font-size: 2.2rem;
  font-weight: bold;
  color: #2a2055;
  font-family: "hatch-sans", sans-serif;
}
.c-menu__link:before{
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0.1rem;
  margin: 0 auto;
  display: block;
  content: "";
  border-radius: 3rem;
  background: #d8f700;
  z-index: -1;
  width: 0;
  height: 0;
  transition: .3s;
}
.c-menu__link:hover:before{
  width: 3rem;
  height: 3rem;
}
.-active .c-menu__link:before{
  width: 3rem;
  height: 3rem;
}

/* ハンバーガーボタン */
.hum-button{
  width: 3.4rem;
  height: 3.4rem;
  background: #d8ff00;
  border-radius: 50%;
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: .4rem;
  border: none;
  cursor: pointer;
  display: none;
}
/* ドット */
.hum-button span{
  width: .4rem;
  height: .4rem;
  background: #2b237a;
  border-radius: 50%;
  transition: all .35s ease;
}
/* ===== active ===== */
.hum-button.active span{
  position: absolute;
  width: 1.4rem;
  height: .2rem;
  border-radius: 0;
}
/* 左 */
.hum-button.active span:nth-child(1){
  transform: rotate(45deg);
}
/* 中央 */
.hum-button.active span:nth-child(2){
  opacity: 0;
}
/* 右 */
.hum-button.active span:nth-child(3){
  transform: rotate(-45deg);
}

@media screen and (max-width:1000px){
  .header{
    padding: 1.3rem 5%;
    height: 6rem;
  }
  .home.is-scroll .hd-logo{
    width: 22rem;
  }
  .hum-button{
    display: flex;
  }
  .c-menu{
    display: none!important;
  }
}

/* ヘッダーメニュー */
.hd-menu{
  position: fixed;
  display: flex;
  align-items: center;
  z-index: 9999;
  width: 100%;
  height: 100%;
  background: #fff;
  padding: 0 8%;
  top: 0;
  left: 0;
}
.hd-menu{
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(-8px);
  transition: opacity .25s ease, transform .25s ease, visibility .25s ease;
}
.hd-menu.is-open{
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}
/*==================== 
  NEW
====================*/
.new-block-wrap{
  position: relative;
  width: 10rem;
  height: 10rem;
}
.new-block-wrap img{
  position: absolute;
  width: 100%;
  object-fit: cover;
}
.new-block-text{
  z-index: 2;
}
.new-block-bg{
  animation: spin 5s linear infinite;
}
@keyframes spin{
  from{ transform: rotate(0deg); }
  to{ transform: rotate(360deg); }
}
/*========================================
  フッター
========================================*/
/* お問い合わせバー */
@keyframes infinity-scroll-left {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}
.scroll-infinity__wrap{
  display:flex;
  overflow:hidden;
  padding:1.4rem 0 1.5rem;
  background:#d8f700;
  border-top:1px solid #2a2055;
  border-bottom:1px solid #2a2055;
  white-space: nowrap; /* 念のため */
  transition: .4s;
}
.scroll-infinity__list{
  display:flex;
  list-style:none;
  padding:0;
  margin:0;           /* 重要：余白でズレるの防ぐ */
  flex-shrink:0;      /* 重要：縮まない */
}
.scroll-infinity__list--left{
  animation: infinity-scroll-left 50s linear infinite;
}
.scroll-infinity__item{
  flex: 0 0 auto;     /* 重要：幅固定 */
  width:1170px;
}
.scroll-infinity__item > img{
  display:block;
  width:100%;
  height:4.5rem;
  object-fit:cover;
}
@media (any-hover: hover) {
  .scroll-infinity__wrap:hover{
    background:#de6645;
  }
}

/* フッター */
.top-back{
  width: 4.4rem;
  position: fixed;
  right: 2rem;
  bottom: 2rem;
  z-index: 100;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.6s ease;
}
.top-back.is-show{
  opacity: 1;
  pointer-events: auto;
}
.top-back p{
  color: #2a2055;
  font-weight: 600;
  font-family: "hatch-sans", sans-serif;
  font-size: 1.5rem;
}
.top-back.is-footer-stop {
  position: absolute;
  right: 2rem;
  top: 2rem;
  bottom: auto;
}

.top-back a {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  text-decoration: none;
}

.top-back img {
  display: block;
  animation: topBackFloat 0.1s ease-in-out infinite alternate;
}

.top-back p {
  margin-top: 0.6rem;
}

@keyframes topBackFloat {
  0% {
    transform: translateY(-0.3rem);
  }
  100% {
    transform: translateY(0.2rem);
  }
}

@media screen and (max-width: 768px) {
  .top-back {
    right: 1.6rem;
    bottom: 1.6rem;
  }

  .top-back.is-footer-stop {
    right: 1.6rem;
    top: 1.6rem;
  }
}

.footer-wrap{
  display: flex;
}
.footer-item{
  width: 50%;
}
.footer-item-l{
  background: #2a2055;
}
.footer-item .footer-item-contents{
  min-height: 300px;
  height: clamp(300px ,100% , 1200px);
  overflow: hidden;
}
.footer-item.footer-item-l canvas{
  display: block;
}
.footer-item-r{
  position: relative;
  padding: 8rem 3% 2rem 9rem;
  background: #fff;
}
.ft-menu__item{
  position: relative;
  margin-bottom: 2rem;
  padding-left: 3.5rem;
}
.ft-menu__item:last-child{
  margin-bottom: 0;
}
.ft-menu__item::before{
  display: block;
  content: "";
  position: absolute;
  width: 2.4rem;
  height: 2.4rem;
  background: url(../images/common/arw.png)no-repeat;
  background-size: 100%;
  left: 0;
  top: 1.1rem;
}
.ft-btm-menu__item,
.ft-btm-menu p{
  font-size: 1.3rem;
  color: #2a2055;
}
.ft-btm-menu__item a{
  text-decoration: underline;
}
.ft-menu{
  margin-bottom: 4rem;
}
.ft-menu__title{
  font-size: 3rem;
  color: #2a2055;
  font-weight: bold;
  margin-bottom: 0.5rem;
  font-family: "hatch-sans", sans-serif;
}
.ft-menu__text{
  font-size: 1.3rem;
  color: #2a2055;
  font-weight: bold;
}
.ft-btm-menu{
  display: flex;
  justify-content: right;
  gap: 1rem 1.2rem;
}
@media screen and (max-width:1000px){
  .footer-item-r{
    padding: 5rem 5% 1.5rem;
  }
  .footer-wrap{
    flex-direction: column;
  }
  .footer-item{
    width: 100%;
  }
  .footer-item-l{
    height: 40rem;
  }
}

/*==================== 
  トップ　セクション
====================*/
/* トップ */
.home-top{
  padding: 6rem 0 11rem;
  position: relative;
}
.-cloud{
  position: absolute;
}
.home-top-cloud01{
  width: 52.8rem;
  top: 7rem;
  right: -15%;
}
.home-top-cloud02{
  width: 44rem;
  bottom: -3rem;
  left: -10%;
}
.home-top__inner{
  max-width: 110rem;
  width: 90%;
  margin: 0 auto;
}
.home-top__text{
  font-size: 1.7rem;
  line-height: 2.2;
  font-weight: bold;
  color: #2a2055;
  text-align: center;
}
.home-top__title{
  margin-top: 2rem;
  font-size: 2.6rem;
  font-weight: bold;
  color: #2a2055;
  text-align: center;
}
@media screen and (max-width:1000px){
  .home-top{
    padding: 5rem 0 7.5rem;
  }
  .home-top-cloud01{
    width: 30vw;
    top: 2rem;
    right: -10vw;
  }
  .home-top-cloud02{
    width: 26vw;
    bottom: -3rem;
    left: -5vw;
  }
}
/* ニュース */
.home-sec-news{
  padding: 10rem 0 11.5rem;
  background: #e7ede4;
}
@media screen and (max-width:1000px){
  .home-sec-news{
    padding: 7rem 0 7.5rem;
  }
}
/* コンペ */
.home-sec-compe{
  padding: 10rem 0 11.5rem;
}
@media screen and (max-width:1000px){
  .home-sec-compe{
    padding: 7rem 0 7rem;
  }
}
/*　お問い合わせ */
.home-contact{
  padding: 9rem 0 11rem;
  background: #e7ede4;
}
.home-contact__inner{
  display: flex;
  justify-content: space-between;
  width: 90%;
  max-width: 90rem;
  margin: 0 auto;
}
.home-contact-head{
  margin-bottom: 2.5rem;
}
.home-contact-head__title{
  font-size: 6rem;
  color: #2a2055;
  font-family: "hatch-sans", sans-serif;
  font-weight: 600;
  font-style: normal;
}
.home-contact-head__text{
  font-size: 1.5rem;
  font-weight: bold;
}
.home-contact__text{
  font-size: 2.2rem;
  line-height: 2.1;
  font-weight: bold;
  color: #2a2055;
  margin-bottom: 3.5rem;
}
.home-contact-right{
  max-width: 41rem;
}
@media screen and (max-width:1000px){
  .home-contact{
    padding: 6rem 0 7.5rem;
  }
  .home-contact-left{
    width: 100%;
  }
  .sp-contact{
    width: 80%;
    max-width: 48rem;
    margin: 0 auto 2rem;
  }
  .home-contact__text{
    font-size: 1.9rem;
    line-height: 1.84;
    margin-bottom: 3rem;
  }
}
/* インタビュー */
.home-interview{
  margin-bottom: 11rem;
}
.intarview-block{
  border-left: 5px solid #6f88f2;
  border-right: 5px solid #00c2a1;;
  padding: 0 9rem;
  display: flex;
  flex-wrap: wrap;
  gap: 5rem 9rem;
}
.intaview-side{
  max-width: 30rem;
}
.intaview-contents{
  flex: 1;
  display: flex;
  flex-wrap: wrap;
  gap: 3rem;
}
.intaview-contents__item{
  width: calc((100% - 3rem)/2);
}
.intaview-contents__link figure{
  overflow: hidden;
  border-radius: 1rem;
}
.intaview-contents__name{
  margin-top: 1.5rem;
  line-height: 1.7;
}
.intaview-contents__name .job{
  font-size: 2rem;
  font-weight: bold;
}
.intaview-contents__name .name{
  font-size: 2rem;
  font-weight: bold;
}
.intaview-head__title{
  font-size: 6rem;
  color: #2a2055;
  font-family: "hatch-sans", sans-serif;
  font-weight: 600;
  font-style: normal;
}
.intaview-head__text{
  font-size: 1.5rem;
  font-weight: bold;
}
.intaview__text{
  margin-top: 1.5rem;
  font-size: 1.7rem;
  line-height: 2.35;
  font-weight: bold;
  color: #2a2055;
}
.intaview__text + .read-more{
  margin-top: 2rem;
}
.intarview-block > .read-more{
  display: none;
}
@media screen and (max-width:1000px){
  .home-interview{
    margin-bottom: 7rem;
  }
  .intaview-head__title{
    padding-top: ;
    font-size: 4rem;
  }
  .intarview-block{
    border-left: 2px solid #6f88f2;
    border-right: 2px solid #00c2a1;;
    padding: 0 5%;
    flex-direction: column;
    gap: 2.5rem 0;
  }
  .intaview-side{
    max-width: 100%;
  }
  .intaview-contents__item{
    width: 100%;
  }
  .intaview-side .read-more{
    display: none;
  }
  .intarview-block > .read-more{
    display: flex;
    margin: 1rem 0 3rem;
  }
}


/*==================== 
　カテゴリーメニュ
====================*/
.c-category-block{
  max-width: 120rem;
  width: 90%;
  margin: 0 auto;
}
.c-card__tags{
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin-top: 2rem;
}
.c-card__tag{
  font-size: 1.3rem;
  padding: 0.1rem 1.5rem;
  background: #47d3bb;
  color: #2a2055;
  border: 1px solid #2a2055;
  border-radius: 2rem;
  font-weight: bold;
}
.-compe .c-card__tag{
  background: #ff8d9d;
}
.c-card__content{
  margin-top: 1.2rem;
}
.c-card__text{
  font-size: 2rem;
  font-weight: bold;
  color: #2a2055;
  line-height: 1.7;
}


/*==================== 
  カテゴリー
====================*/
.c-category-block{
  max-width: 120rem;
  margin: 0 auto;
}

.sec-inner{
  width: 90%;
  max-width: 120rem;
  margin: 0 auto;
}
/*==================== 
  カード 
====================*/
.-inner{
  max-width: 90rem;
  margin: 0 auto;
}
.c-category{
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin-bottom: 4rem;
}
.c-category__item__link{
  display: block;
  font-size: 1.5rem;
  padding: 0.5px 2rem;
  background: #ff8d9d;
  border: 1px solid #2a2055;
  color: #2a2055;
  border-radius: 2rem;
  font-weight: bold;
}
.-news .c-category__item__link{
  background: #47d3bb;
}
.-active .c-category__item__link{
  background: #2a2055;
  color: #fff;
}
.c-card__content{
  margin-top: 1.2rem;
}
.c-card__text{
  font-size: 2rem;
  font-weight: bold;
  color: #2a2055;
  line-height: 1.7;
}
.c-card-list{
  display: flex;
  flex-wrap: wrap;
  gap: 5rem 5%;
}
.c-card{
  width: calc((100% - 10%) / 3);
}
.c-card__figure{
  overflow: hidden;
  border-radius: 1rem;
}
.c-section-head__titles{
  text-align: center;
  margin-bottom: 4rem;
  font-family: "hatch-sans", sans-serif;
  font-weight: 500;
  font-style: normal;
}
.c-section-head__title{
  font-size: 5rem;
  font-weight: bold;
  color: #2a2055;
}
.c-section-head__subtitle{
  font-size: 1.5rem;
  margin-top: 1rem;
  font-weight: bold;
  color: #2a2055;
}
.c-section-head__text{
  font-size: 1.7rem;
  line-height: 2.35;
  font-weight: bold;
  margin-bottom: 4rem;
}

/* ホバー */
.c-card__figure {
  position: relative;
  border-radius: 16px; /* 画像と同じ値 */
  overflow: hidden;
}

/* 枠線用レイヤー */
.c-card__figure::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;

  border: 2px solid #2a2055;

  /* 初期は透明 */
  clip-path: inset(0 100% 100% 0);

  transition: clip-path .3s ease;
}

/* ホバーでぐるっと描く */
.c-card:hover .c-card__figure::before {
  clip-path: inset(0 0 0 0);
}

.c-card__link:hover .c-card__marker {
  background-size: 100% 50px;
}
.c-card__marker {
  background-image: linear-gradient(to bottom, transparent, #d8f700);
  background-repeat: no-repeat;
  background-position: left bottom;
  background-size: 0% 0%;
  transition: background .3s ease-out;
  cursor: pointer;
}



/* ボタン */
.c-button_wp{
  max-width: 20rem;
}
.wid280{
  max-width: 28rem;
}
.c-button_wp.-center{
  margin: 0 auto;
  margin-top: 4rem;
}
.c-section-head__link{
  font-size: 2rem;
  padding: 0.5rem 1.2rem 0.7rem 2rem;
  color: #2a2055;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-radius: 3rem;
  border: solid 1px #2a2055;
  background: #fff;
  font-family: "hatch-sans", sans-serif;
  font-weight: 600;
  font-style: normal;
  transition: .4s;
}
.c-section-text{
  display: block;
}
.c-section-icon{
  width: 2.4rem;
}
.c-section-icon img{
  vertical-align: middle;
}

@media (any-hover: hover) {
  .c-section-head__link:hover{
    background:#d8f700;
  }
}
@media screen and (max-width:1000px){
  .c-card{
    width: 100%;
  }
}
/*==================== 
  スライダー
====================*/
.top-slide-block{
  padding-top: 26rem;
  overflow: hidden;
  width: 100%;
}
.top-slider{
  position: relative;
}
.top-slider-logo{
  width: 80%;
  max-width: 92rem;
  position: absolute;
  top: -18.2rem;
  left: 0;
  right: 0;
  margin: 0 auto;
  z-index: 999;
}
.top-slide__link{
  position: relative;
}
.new-block{
  position: absolute;
  top: -3rem;
  left: -3rem;
}
.top-slide__item{ 
  display: flex;
  background: #47d3bb;
  border-radius: 2rem;
  border: 1px solid #2a2055;
  align-items: center;
}
.top-slide__thumb{
  overflow: hidden;
  width: 65%;
  border-radius: 2rem 0 0 2rem;
  border-right: 1px solid #2a2055;
}
.top-slide__thumb img{
  object-fit: cover;
  width: 100%;
  height: 100%;
}
.top-slide__contents{
  padding: 6rem;
  width: 35%;
}
.top-slide__cate{
  display: inline-block;
  font-size: 1.3rem;
  font-weight: bold;
  padding: 0.1rem 2rem;
  border-radius: 3rem;
  border: 1px solid #2a2055;
  font-weight: bold;
  margin-bottom: 3rem;
}
.top-slide__title{
  font-size: 2.2rem;
  font-weight: bold;
  line-height: 2;
  color: #2a2055;
}
.read-more{
  margin-top: 4rem;
  display: flex;
  gap: 1rem;
  align-items: anchor-center;
  font-family: "hatch-sans", sans-serif;
  font-weight: 600;
}
.read-more__text{
  font-size: 2.2rem;
  color: #2a2055;
  font-weight: bold;
}
/* 2rem × 2rem / 線幅0.4rem の十字 */
.read-more__icon{
  width: 2rem;
  height: 2rem;
  position: relative;
  display: inline-block;
}
.read-more__icon::before,
.read-more__icon::after{
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 100%;
  height: 0.4rem;              /* 線幅 */
  background: currentColor;     /* 文字色に追従 */
  transform: translate(-50%, -50%);
  border-radius: 9999px;        /* 角を少し丸く（不要なら消してOK） */
}
/* 縦棒 */
.read-more__icon::after{
  transform: translate(-50%, -50%) rotate(90deg);
}
/* 基本状態（左右） */
.top-slide-wp{
  width: 90%;
  max-width: 1200px;
  margin: 0 auto;
}
.js-topSwiper .swiper-slide {
  transition: transform .5s ease, opacity .5s ease;
  transform: translateY(40px) scale(1);
  opacity: .6;
}
/* 真ん中 */
.js-topSwiper .swiper-slide-active {
  transform: translateY(0) scale(1);
  opacity: 1;
  z-index: 2;
}
@media screen and (max-width:1000px){
  .top-slider-logo{
    width: 50rem;
    top: -9.2rem;
  }
  .top-slide-block{
    padding-top: 15rem;
  }
  .top-slide__cate{
    margin-bottom: 1.5rem;
  }
  .top-slide__item{ 
    display: flex;
    background: #47d3bb;
    border-radius: 1rem;
    border: 1px solid #2a2055;
    align-items: center;
  }
  .top-slide__thumb{
    width: 100%;
    border-radius: 1rem 1rem 0 0;
    overflow: hidden;
    border-right: none;
    border-bottom: 1px solid #2a2055;
  }
  .top-slide__item{
    flex-direction: column;
  }
  .top-slide__contents{
    position: relative;
    width: 100%;
    box-sizing: border-box;
    padding: 3rem;
  }
  .new-block{
    left: auto;
    right: -1rem;
  }
  .new-block-wrap{
    width: 6rem;
    height: 6rem;
  }
  .read-more{
    margin-top: 1.5rem;
  }
}
@media screen and (max-width:768px){
  .top-slider-logo{
    width: 80%;
    top: -16vw;
  }
  .top-slide-block{
    padding-top: 25vw;
  }
}
/*==================== 
  下層タイトル 
====================*/
.layer-head{
  padding-top: 18rem;
}
.layer-head__title{
  font-size: 7rem;
  color: #2a2055;
  font-family: "hatch-sans", sans-serif;
  font-weight: bold;
}
.layer-head__text{
  position: relative;
  font-size: 2.2rem;
  display: flex;
  align-items: center;
  gap: 0 1.4rem;
  line-height: 1;
  font-weight: bold;
  margin-top: 2rem;
  color: #2a2055;
}
.layer-head__catch{
  margin-top: 5rem;
  font-size: 4.5rem;
  color: #2a2055;
  font-weight: bold;
  line-height: 1.6;
}
.layer-head__text:before{
  display: block;
  content: "";
  width: 2rem;
  height: 2rem;
  border-radius: 3rem;
  background: #d8f700;
}
.layer-inner{
  max-width: 120rem;
  width: 90%;
  margin:0 auto 7rem;
}
@media screen and (max-width:1000px){
  .layer-head{
    padding-top: 11.5rem;
  }
  .layer-head__title{
    font-size: 5rem;
  }
  .layer-head__text{
    font-size: 2rem;
    margin-top: 1rem;
  }
  .layer-head__catch{
    margin-top: 4rem;
    font-size: 3.2rem;
  }
  .layer-inner{
    margin-bottom: 4rem;
  }
}
/*======================================== 
  about
========================================*/
/* コンペを通して */
.about-top{
  padding-bottom: 11rem;
  position: relative;
}
.about-top__title,
.about-top__contents{
  position: relative;
  z-index: 99;
}
.about-top__title{
  font-size: 5rem;
  line-height: 1.52;
  text-align: center;
  font-weight: bold;
  margin-bottom: 4rem;
}
.about-top__text{
  font-size: 2rem;
  line-height: 1.9;
  text-align: center;
  font-weight: bold;
}
.about-top__text + .about-top__text{
  margin-top: 3.5rem;
}
.cloud-wp div{
  position: absolute;
  z-index: 1;
}
.cloud1{
  width: 52.8rem;
  top: -18rem;
  right: -13vw;
}
.cloud2{
  width: 44rem;
  top: 48rem;
  left: -10vw;
}
.cloud3{
  width: 45rem;
  bottom: -5rem;
  right: -5vw;
}
@media screen and (max-width:1000px){
  .cloud1{
    width: 44vw;
    right: -25vw;
    top: 0;
  }
  .cloud2{
    width: 42.5vw;
    left: -0.19.4vw;
    top: 65rem;
  }
  .cloud3{
    width: 63vw;
    right: -0.23.6vw;
    bottom: -2.5rem;
  }
}

/* 流れ */
.about-flow{
  padding: 10.5rem 0;
  background: #e7ede4;
}

/* 運営会社 */
.about-management{
  padding: 11rem 0 12rem;
}
.c-inner{
  width: 90%;
  max-width: 120rem;
  margin: 0 auto;
}
.management-list{
  display: flex;
  flex-direction: column;
  gap: 4rem 5rem;
}
.management-list__item{
  display: flex;
  align-items: center;
  gap: 3rem 6rem;
}
.management-list__img{
  width: 42rem;
  border-radius: 1rem;
  border: 1px solid #2a2055;
  overflow: hidden;
}
.management-list__contents{
  flex: 1;
}
.management-list__title{
  font-size: 2.6rem;
  font-weight: bold;
}
.management-list__text{
  font-size: 1.5rem;
  line-height: 2;
  font-weight: bold;
  margin-top: 2rem;
}
.management-list__link{
  font-size: 1.5rem;
  line-height: 2;
  font-weight: bold;
  text-decoration: underline;
}
.sns-list{
  margin-top: 1rem;
  display: flex;
}
.sns-list__item{
  width: 4rem;
}
.about-button{
  margin-top: 4rem;
}
.about-button__link{
  padding: 2rem 0;
  display: block;
  max-width: 32rem;
  font-size: 2rem;
  font-weight: bold;
  text-align: center;
  color: #fff;
  margin: 0 auto;
  background: #2a2055;
  border-radius: 5rem;
}

@media screen and (max-width:1000px){
  .about-management{
    padding: 7rem 0 6rem;
  }
  .about-top__title{
    font-size: 3.3rem;
  }
  .about-top__text{
    font-size: 1.7rem;
  }
  .management-list__img{
    width: 100%;
  }
  .management-list__item{
    flex-direction: column;
  }
  .management-list__title{
    font-size: 2.2rem;
  }
  .management-list__text{
    margin-top: 1.5rem;
  }
}


/* メンバー */
.about-member{
  background: #e7ede4;
  padding: 11.5rem 0;
}
.member-inner{
  width: 90%;
  max-width: 82rem;
  margin: 0 auto;
}
.member-list{
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 3rem 10.25%;
}
.member-list__item{
  width: calc((100% - 20.5%)/3);
}
.member-head{
  margin-top: 1.5rem;
  text-align: center;
}
.member-head__en{
  font-size: 2.5rem;
  font-weight: 600;
  color: #2a2055;
}
.member-head__name{
  color: #2a2055;
  font-size: 1.5rem;
  font-weight: bold;
  margin-top: 1rem;
}
.member-text{
  margin-top: 2.5rem;
  font-size: 1.5rem;
  line-height: 2;
}

@media screen and (max-width:1000px){
  .member-list__item{
    width: 100%;
  }
  .member-list__image{
    max-width: 66%;
    margin: 0 auto;
  }
}

/*==================== 
  ニュースページ
====================*/
.c-news__inner{
  width: 90%;
  max-width: 1200px;
  margin: 0 auto;
  padding-bottom: 12rem;
}

/* ページネーション */
.p-news__pagination-area{
  margin-top: 9rem;
}
.page-numbers{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 1.5rem 3.5rem;
}
.page-number.prev,
.page-number.next{
  width: 3rem;
  display: block;
}
.page-number.prev img,
.page-number.next img{
  width: 100%;
}
.page-number{
  position: relative;
  font-size: 2.2rem;
  color: #2a2055;
  font-weight: bold;
}
.page-number.current:after{
  position: absolute;
  content: "";
  width: 100%;
  height: 2px;
  background: #000;
  bottom: -0.5rem;
  left: 0;
}


/*======================================== 
  シングルページ
========================================*/
.articles-single{
  padding-top: 25rem;
}
.articles-single__date-area{
  display: flex;
  align-items: center;
  gap: 1rem 1.5rem;
  margin-bottom: 1.5rem;
}
.articles-single__cate{
  display: inline-block;
  font-size: 1.3rem;
  padding: 0.5px 1.5rem;
  background: #47d3bb;
  border: 1px solid #2a2055;
  color: #2a2055;
  border-radius: 2rem;
  font-weight: bold;
}
.articles-single__date{
  font-size: 1.3rem;
  font-weight: bold;
  color: #2a2055;
}
.articles-single__inner{
  max-width: 80rem;
  width: 90%;
  margin: 0 auto;
}
.articles-single__title-area{
  margin-bottom: 5rem;
}
.articles-single__title{
  font-size: 3.6rem;
  font-weight: bold;
  color: #2a2055;
}
.c-single__figure{
  overflow: hidden;
  border-radius: 1rem;
}
.dorara-block-editor{}

/* その他 */
.other-block{
  padding: 10rem 0;
}
.other-block.bg{
  background: #e7ede4;
}
.other-head{
  margin-bottom: 4rem;
}
.other-head__title{
  font-size: 4rem;
  font-weight: bold;
  color: #2a2055;
  font-family: "hatch-sans", sans-serif;
}
.other-head__text{
  font-size: 1.7rem;
  font-weight: bold;
  color: #2a2055;
  margin-top: 1rem;
}
.other-inner{
  width: 90%;
  max-width: 120rem;
  margin: 0 auto;
}
@media screen and (max-width:1000px){
  .articles-single__title{
    font-size: 3rem;
  }
  .other-head__title{
    font-size: 3rem;
  }
  .other-head__text{
    font-size: 1.3rem;
  }
}

/*======================================== 
  コンペ シングルページ
========================================*/
.compe-single{
  padding-top: 8rem;
}
.compe-figure{
  margin-bottom: 5rem;
}
.compe-single__date-area{
  display: flex;
  align-items: center;
  gap: 1rem 1.5rem;
  margin-bottom: 1.5rem;
}
.compe-single__cate{
  display: inline-block;
  font-size: 1.3rem;
  padding: 0.5px 1.5rem;
  background: #47d3bb;
  border: 1px solid #2a2055;
  color: #2a2055;
  border-radius: 2rem;
  font-weight: bold;
}
.compe-single__date{
  font-size: 1.3rem;
  font-weight: bold;
  color: #2a2055;
}
.compe-single__inner{
  width: 90%;
  max-width: 120rem;
  margin: 0 auto;
}
.compe-menu{
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  gap: 4%;
  margin-top: 5rem;
}
.compe-menu__item{
  width: calc((100% - 12%)/4);
  border-bottom: 1px solid #2a2055;
}
.compe-menu__link{
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  padding-bottom: 1rem;
}
.compe-menu__icon{
  width: 2.4rem;
  margin-top: 1.2rem;
}
.compe-menu__text .-en{
  display: block;
  font-size: 2.6rem;
  font-weight: 600;
  color: #2a2055;
  font-family: "hatch-sans", sans-serif;
}
.compe-menu__text .-ja{
  display: block;
  font-size: 1.3rem;
  font-weight: bold;
  color: #2a2055;
}
@media screen and (max-width:1000px){
  .compe-menu{
    gap: 2rem;
    margin-top: 3.5rem;
  }
  .compe-menu__item{
    width: calc((100% - 2rem)/2);
  }
  .compe-menu__text .-en{
    font-size: 2rem;
  }
}
/* コンペブロック */
.copmpe-contents{
  margin-top: 11rem;
}
.compe-block{
  display: flex;
  gap: 5rem;
  align-items: flex-start;
}
.compe-side{
  position: sticky;
  top: 10rem;            
  flex: 0 0 220px;
}
.compe-side img{
  width: 3rem;
}
.compe-guide{
  flex: 1;
  min-width: 0;
  padding: 6.5rem 0 6rem;
  border-top: 1px solid #d3d8d2;
}
.compe-side-title{
  font-size: 4rem;
  font-weight: 600;
  color: #2a2055;
  font-family: "hatch-sans", sans-serif;
}
.compe-side-text{
  font-size: 1.7rem;
  font-weight: bold;
  color: #2a2055;
}
.judges-list{
  display: flex;
  flex-wrap: wrap;
  gap: 3rem 3.5rem;
}
.judges-item{
  width: calc((100% - 7rem)/3);
  text-align: center;
}
.judges-item-name{
  margin-top: 1.5rem;
}
.judges-item-name-job{
  font-size: 1.3rem;
  font-weight: bold;
  color: #2a2055;
}
.judges-item-name__title{
  margin-top: 0.5rem;
  font-size: 1.9rem;
  font-weight: bold;
  color: #2a2055;
}
@media screen and (max-width:1000px){
  .copmpe-contents{
    margin-top: 5rem;
  }
  .compe-block{
    display: block;
  }
  .compe-side{
    position: static;
    padding-top: 3rem;
    border-top: 1px solid #d3d8d2;
  }
  .compe-side img{
    width: 2rem;
  }
  .compe-side-title{
    font-size: 3rem;
  }
  .compe-side-text{
    font-size: 1.5rem;
  }
  .compe-guide{
    padding: 2rem 0 5rem;
    border: none;
  }
  .judges-item{
    width: calc((100% - 2rem)/2);
  }
}
/*==================== 
  プライバシー
====================*/
.c-privacy{
  padding-bottom: 13rem;
}
.c-privacy__inner{
  width: 90%;
  max-width: 800px;
  margin: 0 auto;
}
.c-privacy__block + .c-privacy__block{
  margin-top: 4rem;
}
.c-privacy__text{
  font-size: 1.7rem;
  font-weight: 600;
  line-height: 2.1;
  color: #2a2055;
}

/* ===================
  お問い合わせ 
===================*/
.u-visually-hidden{
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  width: 1px;
  height: 1px;
  overflow: hidden;
  position: absolute;
  white-space: nowrap;
}
.c-contact-block{
  padding: 6rem 0 3.5rem;
  border-bottom: 1px solid #d3d8d2;
}
.c-contact__header{
  margin-bottom: 3rem;
}
.c-contact__title{
  font-size: 1.9rem;
  color: #2a2055;
  font-weight: bold;
}
.c-contact__lead{
  font-size: 1.5rem;
  color: #2a2055;
  margin-top: 1rem;
}
.l-inner{
  width: 90%;
  max-width: 110rem;
  margin: 0 auto;
}
.c-contact{
  background: #e7ede4;
  padding: 2rem 0 13rem;
}
.c-contact-table{}
.c-contact-table__row{
  display: block;
  margin-bottom: 2.5rem;
}
.c-contact-table__head{
  font-size: 1.7rem;
  color: #2a2055;
  font-weight: bold;
  min-width: 24rem;
  vertical-align: top;
  padding: 1.5rem 0;
}
.c-contact-table__data{
  width: 100%;
}
.c-contact-table__input{
  font-size: 1.5rem;
  width: 100%;
  border: 1px solid #d3d8d2;
  background: #fff;
  border-radius: 5px!important;
  padding: 1.5rem 2rem!important;
  box-sizing: border-box;
}
.c-contact-table__textarea{
  font-size: 1.5rem;
  resize: vertical;
  width: 100%;
  border: 1px solid #d3d8d2;
  background: #fff;
  border-radius: 5px!important;
  padding: 1.5rem 2rem!important;
  box-sizing: border-box;
}
.c-contact-form table tr td input[type="radio"] {
  display: none;
}
.c-contact-form table tr td input[type="radio"] + label {
  cursor: pointer;
  position: relative;
  display: block;
  padding-left: 3rem;
  font-size: 1.5rem;
  font-weight: 400;
  line-height: 1.7;
}
.c-contact-form table tr td input[type="radio"] + label::before {
  content: '';
  box-sizing: border-box;
  position: absolute;
  top: 3px;
  left: 0;
  display: block;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  border: 1px solid #d3d8d2;
  background: #fff;
}
.c-contact-form table tr td input[type="radio"] + label::after {
  content: '';
  box-sizing: border-box;
  position: absolute;
  top: 8px;
  left: 5px;
  display: block;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background-color: #2a2055;
  opacity: 0;
  transition: opacity 0.2s;
}
.c-contact-form table tr td input[type="radio"]:checked + label::after {
  opacity: 1;
}
.radioList{
  margin-top: 1rem;
}
.radioList__item{
  margin-bottom: 0.5rem;
}
.radioList__item input[type="radio"]:checked + label {
  color: #2a2055; /* 好きな色に変更 */
  font-weight: 700;
}
section.form-block form table tr td input[type="radio"]:checked + label::after {
  border: 1px solid #2a2055;
}
.contact-caution{
  margin-top: 3rem;
  text-align: center;
}
.contact-caution__text{
  color: #2a2055;
  font-weight: bold;
  font-size: 1.5rem;
  line-height: 2;
}
.contact-caution__text a{
  text-decoration: underline;
}
.c-contact-form__actions{
  margin-top: 5rem;
}
.c-contact-form__submit{
  max-width: 32rem;
  width: 100%;
  font-size: 2rem;
  font-weight: bold;
  color: #fff;
  background: #2a2055;
  border-radius: 5rem;
  padding: 2rem;
  margin: 0 auto;
}
.c-contact__submit input{
  max-width: 32rem;
  width: 100%;
  font-size: 2rem;
  font-weight: bold;
  color: #fff;
  background: #2a2055;
  border-radius: 5rem;
  padding: 2rem;
  margin: 0 auto;
}
.hidden-fields-container{
  border: none;
}
@media screen and (max-width:1000px){
  .c-contact{
    padding: 1rem 0 9rem;
  }
  .c-contact-block{
    padding: 4rem 0 2.5rem;
  }
  .c-contact__title{
    font-size: 1.7rem;
  }
  .c-contact-table__head,
  .c-contact-table__data{
    display: block;
  }
  .c-contact-table__head{
    font-size: 1.5rem;
    padding: 0 0 1rem;
  }
}



/* Swiperの基本挙動を潰してるCSSを上書きする（切り分け用） */
.js-topSwiper {
  overflow: visible!important;
}
.js-topSwiper .swiper-wrapper{
  display: flex !important;
  transform: translate3d(0,0,0); /* GPU */
}
.js-topSwiper .swiper-slide{
  flex-shrink: 0 !important;
}
.pagenation{
  width: 90%;
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  gap: 0 2.5rem;
  align-items: center;
  justify-content: right;
  height: 4rem;
  margin-top: 2rem;
}
.swiper-pagination{
  width: auto!important;
}
.swiper-button-next, .swiper-button-prev{
  position: static;
  width: 4.5rem;
  height: auto;
  margin-top: 0;
}
.swiper-button-next:after, .swiper-button-prev:after{
  display: none!important;
}
.swiper-pagination{
  position: static;
}
.swiper-pagination-bullet{
  opacity: 1;
  background: #d3d8d2;
  border: 1px solid #2a2055;
}
.swiper-pagination-bullet-active{
  background: #2a2055;
}

@media screen and (max-width:1000px){
  .pagenation{
    justify-content: space-between;
  }
}