@charset "UTF-8";

/* TOP flow-txt */

.flow-txt-area {
  padding-top: 40px;
  padding-bottom: 50px;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  overflow: hidden;
  font-family: neulis-sans, sans-serif;
  font-style: normal;
  font-weight: 800;
}
.flow-txt-box {
  display: flex;
  animation: loop-text 10s linear infinite;
}
.double-content {
  display: inline-block;
  font-size: 6rem;
  white-space: nowrap;
  /* 左から右へグラデーション */
  background: linear-gradient(90deg, #E3FDF5 0%, #FFE6FA 80%);
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
@keyframes loop-text {
  0% {
    transform: translateX(0%);
  }
  100% {
    transform: translateX(-50%);
  }
}
@media screen and (max-width: 750px) {
.flow-txt-area {
  padding-top: 20px;
  padding-bottom: 30px;
}
.double-content {
  font-size: 4rem;
}
}

/*========= TOP 年齢で選ぶ ===============*/

h3.prg-area-title{
  text-align: center;
  text-transform: uppercase;
  font-family: "neulis-sans", "heisei-kaku-gothic-std", sans-serif;
  font-size: 26px;
  font-weight: 700;
  margin:15px 0 20px 0;
  color: #178e3c;
}

.prg-age-area{
  width: 100%;
  display: flex;
  justify-content: space-around;
  margin-bottom: 40px;
}

.prg-age-area div{
  margin: 0 10px;
}

.prg-age-area div a{
  text-decoration: none;
  font-weight: 600;
  color: #000;
}

.prg-age-area div a:hover{
  opacity: 0.7;
  transition: 0.3s;
  color: #C4DB60;
}

.prg-age-area div a p{
  margin: 5px 0;
  text-align: center;
}

/* ===== SP（<=750px）で微調整 ===== */
@media (max-width: 750px){
  h3.prg-area-title{
    font-size: 20px;
    margin:15px 0 11px 0 !important;
  }
  .prg-age-area{
    flex-wrap: wrap;
  }
  .prg-age-area div{
    margin: 0 10px 20px;
  }
}

/* ========= TOP 目的で選ぶ／国で選ぶ：slickフレーム＋矢印（最適化） ========= */

/* セクション間余白（既存踏襲） */
.prg-slider-area01,
.prg-slider-area02{
  margin-bottom: 40px;
}

/* 共有変数（ガター・矢印サイズ・フォーカス色） */
:is(.prg-slider01, .prg-slider02){
  --gutter: 10px;            /* スライド間余白 */
  --arrow-size: 48px;        /* 矢印のヒットエリア */
  --arrow-icon: 16px;        /* 矢印アイコンの見た目サイズ */
  --arrow-inset: 8px;        /* 左右の寄せ量 */
  --ring: #0ea5e9;           /* フォーカスリング */
}

/* リンク外観（スライダ内だけに限定） */
:is(.prg-slider01, .prg-slider02) .slick-slide a{
  display: block;
  text-decoration: none;
  font-weight: 600;
  color: #000;
  transition: color .3s ease, opacity .3s ease; /* ← hover側でなくベースに書く */
}
:is(.prg-slider01, .prg-slider02) .slick-slide a:hover{
  opacity: .7;
  color: #C4DB60;
}
:is(.prg-slider01, .prg-slider02) .slick-slide a p{
  margin: 5px 0;
  text-align: center;
  line-height: 1.6;
}

/* 画像のはみ出し/行間ズレ防止 */
:is(.prg-slider01, .prg-slider02) .slick-slide img{
  display: block;
  width: 100%;
  height: auto;
}

/* ガター実装（左右マイナス → 各スライドに余白） */
:is(.prg-slider01, .prg-slider02) .slick-list{
  margin: 0 calc(var(--gutter) * -1);
}
:is(.prg-slider01, .prg-slider02) .slick-slide{
  margin: 0 var(--gutter);
}

/* ===== 矢印（3スライダ共通） ===== */
:is(.prg-slider01, .prg-slider02, .counselor-slider){ position: relative; }

:is(.prg-slider01, .prg-slider02, .counselor-slider) .slide-arrow{
  appearance: none;
  -webkit-appearance: none;
  background: none;
  border: 0;
  padding: 0;
  margin: 0;
  line-height: 1;
  cursor: pointer;
  display: grid;
  place-items: center;
  width: var(--arrow-size, 48px);
  height: var(--arrow-size, 48px);
  z-index: 5;
  user-select: none;
  touch-action: manipulation;
  transition: opacity .2s ease;
  border-radius: 9999px;              /* hover時の背景に備えて */
}

/* アイコン画像（見た目サイズと独立） */
:is(.prg-slider01, .prg-slider02, .counselor-slider) .slide-arrow img{
  display: block;
  width: var(--arrow-icon, 16px);
  height: 26px;
  pointer-events: none;
}

/* 位置（中央寄せ） */
:is(.prg-slider01, .prg-slider02, .counselor-slider) .prev-arrow{
  position: absolute; top: 35%; left: var(--arrow-inset, 8px); transform: translateY(-35%);
}
:is(.prg-slider01, .prg-slider02, .counselor-slider) .next-arrow{
  position: absolute; top: 35%; right: var(--arrow-inset, 8px); transform: translateY(-35%);
}

/* フォーカスリング（キーボード操作の視認性） */
:is(.prg-slider01, .prg-slider02, .counselor-slider) .slide-arrow:focus-visible{
  outline: 3px solid var(--ring, #0ea5e9);
  outline-offset: 2px;
}

/* 無効時の視覚表現 */
.slick-disabled{ opacity: .35; pointer-events: none; }

/* ===== SP（<=750px）で微調整 ===== */
@media (max-width: 750px){
  :is(.prg-slider01, .prg-slider02){
    --gutter: 8px;
    --arrow-inset: 4px;
    /* 必要なら
    --arrow-size: 44px;
    --arrow-icon: 22px;
    */
  }
  :is(.prg-slider01, .prg-slider02, .counselor-slider) .prev-arrow{
    position: absolute; top: 40%; left: 40px; transform: translateY(-40%);
  }
  :is(.prg-slider01, .prg-slider02, .counselor-slider) .next-arrow{
    position: absolute; top: 40%; right: 40px; transform: translateY(-40%);
  }
}

/* ============ slick dots (scope: .prg-dots) ============ */
/* カラー/サイズはここで調整 */

.post_content ul.prg-dots{
  margin-left:0px;
}

.prg-dots{
  --dot: 12px;
  --dot-gap: 16px;
  --dot-active-scale: 1.25;
  --dot-color: #C4DB60;
  --dot-active: #178e3c;
  --dot-hover: #178e3c;

  list-style: none;
  padding-left: 0;
  margin: 5px 0 0;
  display: flex !important;
  justify-content: center;
  gap: var(--dot-gap);
}
.prg-dots li{ list-style: none; }
.prg-dots li::marker,
.prg-dots li::before{ content: none; } /* テーマの箇条書き装飾を無効化 */

/* ボタン本体（数字は視覚的に隠す） */
.prg-dots li button{
  appearance: none; -webkit-appearance: none;
  background: none; border: 0; padding: 0;
  width: var(--dot); height: var(--dot);
  position: relative; cursor: pointer;
  text-indent: -9999px; overflow: hidden;
  border-radius: 9999px;
}

/* 見た目のドット */
.prg-dots li button::before{
  content: '';
  position: absolute; inset: 0;
  border-radius: inherit;
  background: var(--dot-color);
  opacity: 1;                       /* slick-theme の opacity を打ち消し */
  transform: scale(1);
  transition: transform .2s ease, background-color .2s ease;
}

/* 状態 */
.prg-dots li.slick-active button::before{
  background: var(--dot-active);
  transform: scale(var(--dot-active-scale));
}
.prg-dots li button:hover::before{ background: var(--dot-hover); }
.prg-dots li button:focus-visible{
  outline: 3px solid var(--dot-active);
  outline-offset: 3px;
  border-radius: 9999px;
}

/* SP 微調整 */
@media (max-width: 750px){
  .prg-dots{ --dot: 10px; --dot-gap: 8px; }
}

/* ======= バー型（ライン）にしたい時のオプション ======= */
.prg-dots.prg-dots--pill li button{
  width: 22px; height: 6px; border-radius: 9999px;
}


/* ======= 目的で選ぶ - 画像の上にレイヤー表示 ======= */

.prg-slider-item {
  display: block;
  position: relative;
}

.prg-slider-img {
  position: relative;
}

.prg-slider-img img {
  display: block;
  width: 100%;
  height: auto;
}

.prg-slider-overlay {
  position: absolute;
  bottom: 0px;
  left: 0px;
  color: #fff;
  padding: 18px;
}

.prg-slider-overlay p {
  text-align: left !important;
  font-family: "neulis-sans", "heisei-kaku-gothic-std", sans-serif;
  font-weight: normal;
  font-style: normal;
}
.prg-slider-overlay p span.prg-slider-catch {
  display:block;
  font-size:11px;
  font-weight: bold;
  line-height: 1.4;
  padding-bottom:2px;
}
.prg-slider-overlay p span.prg-slider-txt {
  display:block;
  font-size:9px;
}

.prg-slider-title {
  margin-top: 8px; /* 画像下のタイトル */
  font-size: 1rem;
}

@media (max-width: 750px){
.prg-slider-overlay p span.prg-slider-catch {
  font-size:13px;
  line-height: 1.4;
}
.prg-slider-overlay p span.prg-slider-txt {
  font-size:11px;
}
}

/*=========テキストグラフ表示のためのCSS ===============*/

.record-box{
  width: 100%;
  display: flex;
  margin: 20px 0;
  justify-content: space-around;
  font-family: "neulis-sans", "heisei-kaku-gothic-std", sans-serif;
}

.record-box h3{
  text-align: center;
  text-transform: uppercase;
  font-size: 1.4rem;
  margin-bottom: 10px !important;
}

.record-box p{
  text-align: center;
  line-height: 1.0 !important;
}

.record-count{
  width: 45%;
}

.count-box{
  padding: 30px 20px 32px 20px;
  background-image: linear-gradient(150deg, rgba(253, 251, 251, 1), rgba(235, 237, 238, 1));
  text-align: center;
  border-radius: 10px;
  margin-bottom: 40px
}

.count-size{
  font-size:3.2rem;
  font-weight: 600;
  color: #178E3C;
}

/*=========円グラフ表示のためのCSS ===============*/

.record-graph{
  width: 45%;
}

.graph-box{
  width: 100%;
  padding: 20px 12px 14px;
  background-image: linear-gradient(150deg, rgba(253, 251, 251, 1), rgba(235, 237, 238, 1));
  text-align: center;
  border-radius: 10px;
}

.chart-area{/*円グラフがスマホでつぶれないようにする*/
  position: relative;
  width:100%;
  height:50vh;
}

.record-box p.graph-note{
  margin: 10px 0 !important;
}

@media screen and (max-width: 750px) {
  .record-box{
    flex-wrap: wrap;
  }
  .record-box h3{
    font-size: 18px;
    margin-bottom: 0px !important;
  }
  .record-count{
    width: 100%;
  }
  .record-graph{
    width: 100%;
    margin-bottom: 12px;
  }
  .graph-box{
    padding: 20px 0px 14px;
  }
}

/*========= 留学コンサルタント紹介 ===============*/

.counselor-slider div a{
  text-decoration: none;
  font-size: 22px;
  font-weight: 600;
}

.counselor-slider div a:hover{
  opacity: 0.7;
  transition: 0.3s;
  color: #C4DB60;
}

.counselor-slider div a p.counselor-msg{
  margin: -30px 10px 10px 10px;
  text-align: left;
  line-height: 2;
}

.counselor-slider div a p.counselor-msg span{
  display:inline;
  background-color: #C4DB60;
  color: #fff;
  letter-spacing: 0.2;
  padding: 2px 8px 4px;
}

.counselor-slider div p.counselor-tag{
  text-align: left;
  margin: 0 10px 20px 10px;
}

.counselor-slider div p.counselor-tag a{
  color: #000;
  text-decoration: none;
  font-size: 12px;
  font-weight: 400;
}

.counselor-slider .slick-list {
  margin: 0 -10px;
}
.counselor-slider .slick-slide {
  margin: 0 10px;
}

.counselor-slider .slick-dots li button:before{
  font-size: 12px;
  content: '•';
  color: #C4DB60;
}

.counselor-slider .slick-dots li.slick-active button:before{
  color: #178e3c;
}

@media screen and (max-width: 750px) {
  .counselor-slider div a{
    font-size: 18px;
  }
}
