/* =========================
   フロントページ用ヒーロースタイル
========================= */


.hero-slider {
  position: relative;
  width: 100%;
  height: 600px;
  overflow: hidden;
}

.hero-slider .slide {
  position: absolute;
  top: 0; left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  transition: opacity 1.5s ease;
  z-index: 1;
}

.hero-slider .slide.active {
  opacity: 1;
  z-index: 2;
}

.hero-slider .slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}







/* ヒーローテキスト位置調整（1枚目のみ表示） */
.hero-text {
  position: absolute;
  top: 4rem;
  left: 4rem;
  color: var(--congress-title);
  font-family: var(--font-family-zen_maru_gothic);
  line-height: 1.2;
  z-index: 5;
}

.hero-text .subtitle {
  font-size: 20px;
  margin: 0;
  color: var(--congress-title);
    

  letter-spacing: 0.5em;
}

.hero-text .rubititle {
  font-size: 14px;
  margin: 0;
  color: var(--congress-title);
    

  letter-spacing: 0.2em;
}


.hero-text .main-title {
  font-family: 'Shippori Mincho', serif;
  color: var(--congress-title);
  

  font-size: 120px;
  font-weight: bold;
  margin: 0;
  padding: 0;
  line-height: 1;
  letter-spacing: normal;
}

/* キャッチフレーズ配置（1枚目のみ） */
.hero-catchphrase {
  position: absolute;
  bottom: 5%;
  right: 5%;
  color: #fff;
  text-align: left;
  z-index: 5;
}
.hero-catchphrase h1 {
  font-size: 3.5rem;
  line-height: 1.4;
  margin: 0;
}

/* 以下、他セクション省略（必要に応じて追加） */







.section-course-registration {
  padding: 60px 20px;
  text-align: center;
}

.course-link {
  display: inline-block;
  position: relative;
  cursor: pointer;
  overflow: hidden;
  border-radius: 8px;
  transition: transform 0.3s ease;
}

.course-link img {
  max-width: 100%;
  height: auto;
  display: block;
  transition: 0.3s ease;
}

.course-link .overlay-text {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  background: rgba(0, 0, 0, 0.4);
  color: #fff;
  padding: 10px;
  font-size: 1.2rem;
  opacity: 0;
  transition: 0.3s ease;
}

.course-link:hover img {
  transform: scale(1.05);
  opacity: 0.9;
}

.course-link:hover .overlay-text {
  opacity: 1;
}


.flex-section {
  display: flex;
  align-items: center;
  margin-bottom: 60px;
}

.vision .vision-text {
  width: 70%;
  padding-right: 30px;
}

.vision .vision-image {
  width: 30%;
}

.overview .overview-image {
  width: 30%;
  padding-right: 30px;
}

.overview .overview-text {
  width: 70%;
}

.flex-section img {
  width: 100%;
  height: auto;
  border-radius: 8px;
}

.section-learn p {
  margin-bottom: 1.6em;
}

.section-course-registration {
  position: relative;
}

.course-image-wrapper {
  position: relative;
  display: inline-block;
  width: 100%;
}

.course-image {
  display: block;
  width: 100%;
  height: auto;
}

.section-course-registration {
  position: relative;
}

.course-image-wrapper {
  position: relative;
  display: inline-block;
  width: 100%;
}

.course-image {
  display: block;
  width: 100%;
  height: auto;
}

/****************************************/


.course-buttons {
  position: absolute;
  bottom: 5%;
  left: 10%;
  display: flex;
  gap: 40px;
  z-index: 4;
}

.btn-with-img {
  position: relative;
}



.btn-img {
  position: absolute;
  right: -28px; /* ボタンより右にずらす */
  top: 54%;
  transform: translateY(-50%);
  height: 130px;/* イラストのサイズに応じて調整 */
  pointer-events: none; /* イラストがクリックを邪魔しないように */
  z-index: 99;
}

.course-btn{
  position: relative;
  z-index: 5;
  line-height: 1;
  width: 260px;
  display: inline-block;
  background-color: var(--lily-white);
  color: var(--congress-blue);
  padding: 30px 28px;
  border-radius: 36px;
  text-decoration: none;
  font-size: 40px;
  font-weight: normal;
  transition: background-color 0.6s, transform 0.5s;
  font-family: var(--font-family-zen_maru_gothic);
}

/****************************************/
.course-btn:hover {
  background-color: var(--congress-blue);
  color: var(--white);
  transform: translateY(-0px);
}


label {
  display: block; /* ← 横並び防止＆余白を効かせる */
  margin-bottom: 6px; /* ← ラベル下に余白 */
}

@media (max-width: 768px) {
  .flex-section {
    flex-direction: column;
  }

  .vision .vision-image,
  .overview .overview-image {
    display: none;
  }

  .vision .vision-text,
  .overview .overview-text {
    width: 100%;
    padding: 0;
  }

  .section-course-registration {
    padding: 20px 10px;
  }

  .course-btn {
    padding: 8px 8px;
  }

  .course-buttons {
    bottom: 5px; /* 下からの距離を少し大きめ */
    right: 10px; /* 右からの距離 */
    display: flex;
  }
}

.hero-slider {
  position: relative;
  overflow: hidden;
}

.hero-slider::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.1); /* ← 黒の半透明（0.4で40%） */
  z-index: 2; /* ← 写真より上、文字より下 */
}

/* 背景に流れるテキスト（写真の下に置く） */
.hero-marquee {
  position: absolute;
  bottom: 30%;
  left: 0;
  width: 100%;
  white-space: nowrap;
  z-index: 0; /* ← 写真の下に表示 */
}
.hero-marquee span {
  display: inline-block;
  font-size: 10rem;
  font-weight: bold;
  color: rgba(0, 0, 0, 0.2); /* 黒っぽく薄く */
  animation: marquee 30s linear infinite;
}

@keyframes marquee {
  0% {
    transform: translateX(100%);
  }
  100% {
    transform: translateX(-100%);
  }
}

.kiin-container {
  position: relative; /* ナビの配置基準になる */
}


/* =========================
   frontページ用ヘッダー
========================= */
.front-top-header{
  display:flex; align-items:center; justify-content:space-between;
  /*padding:10px 40px;*/
  background:#fff; border-bottom:1px solid #eee; color:var(--brand-fg);
}




/* ==================================*/
/* フロントページ限定のお知らせ */
/* ==================================*/

.news-header-flex {
  display: flex;
  align-items: flex-start;
  gap: 20px;
}

.news-header-flex h2 {
  flex-shrink: 0;
  margin: 0;
  line-height: 1.4;
}

.news-list {
  margin: 0;
  padding: 0;
  list-style: none;
}






/* 追加しました。*/

.hero-slider {
  position: relative;
  width: 100%;
  height: 600px;
  overflow: hidden;
}

.hero-slider .slide {
  width: 100%;
  height: 100%;
  opacity: 0;
  transition: opacity 2s ease;
  z-index: 1;
}
.hero-slider .slide.active {
  opacity: 1;
  z-index: 2;
}
.hero-slider .slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}








/* ==================================*/
/* フロントページ限定のナビ背景スタイル */
/* ==================================*/

.front-universal-nav {
  position: absolute;
  top: 40px;
  right: 3rem; /* ← paddingの内側に固定 */
  padding: 10px 20px;
  display: flex;
  align-items: center;
  background-color: white;
  border-top-left-radius: 50px;
  border-bottom-left-radius: 50px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.15);
  z-index: 1000;
}


/* ナビ共通スタイル */

.front-nav-list {
  display: flex;
  align-items: center;
  gap: 16px;
  margin: 0;
  padding: 0;
  list-style: none;
}



.front-nav-item {
  display: flex;
  align-items: center;
}


.front-nav-link {
  color: #333;
  text-decoration: none;
  font-size: 14px;
}


/* アイコンと文字を縦並びにする */
.vertical-nav {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

/* 共通の縦並び用リンク */
.vertical-link {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-decoration: none;
  color:var(--congress-blue);
  font-size: 0.8rem;
}



.front-icon-img {
  width: 32px;
  height: 32px;
 /* filter: brightness(0) invert(1);*/
  margin-bottom: 4px;
  transition: transform 0.2s ease; /* ← スムーズな拡大 */
}

.front-nav-link:hover .front-icon-img,
.front-nav-hamburger:hover .front-icon-img {
  transform: scale(1.2); /* ← ホバーで1.2倍に拡大 */
}

/* ホバーでアイコン拡大 */
.front-nav-hamburger-icon:hover .front-icon-img {
  transform: scale(1.2);
  transition: transform 0.3s ease;
}

.front-universal-nav .front-nav-list {
  display: flex;
  align-items: center;
  gap: 1rem;
}


.front-icon-text {
  margin-top: 4px;
  font-size: 0.75rem;
  font-weight: 500;
  line-height: 1;
  text-align: center;
}



.front-nav-hamburger {
  margin-top: 2px; /* 必要に応じて */
  display: flex;
  flex-direction: column;
  align-items: center;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  margin-bottom: -4px; /* 必要に応じて */
}

.front-hamburger-lines {

  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 4px; /* ← ここ重要：線の間隔を確保 */
  margin-top: -4px; /* 必要に応じて */
  margin-bottom: 4px; /* 必要に応じて */
}


/* ハンバーガー */
.front-hb-bar {
  width: 22px;
  height: 4px;
  background-color: #003366;
  display: block;
}


.nav-item.vertical-nav {
  margin-top: -5px; /* 必要に応じて */
}




.btn-with-x {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px; /* テキストとアイコンの間 */
  color: #63b8ce;
  border: 1px solid #63b8ce;
  border-radius: 22.5px;
  background-color: #fff;
  font-family: 'Zen Maru Gothic', sans-serif;
  font-weight: 500;
  font-size: 14px;
  padding: 10px 20px;
  text-decoration: none;
}

.btn-with-x:hover {
  background-color: #e6f5f7;
}


.btn-with-x .x-icon {
  width: 20px;   /* ← 横幅 */   
  height: 20px;  /* ← 高さ */
  vertical-align: middle; /* or top, bottom, baseline */
  margin-top: 8px;  /* ← 上に2px持ち上げる */

}

.btn-with-x .x-path {
  fill: #63b8ce;
  transition: fill 0.3s ease;
}

.btn-with-x:hover .x-path {
  fill: #fff;
}



/***************************/
/* フッター内共通レイアウト */
/***************************/
.front-c-btn--footer.front-c-btn--footer-large {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.5em 1.2em;
  border: 1px solid var(--aqua-pearl, #00aacc); /* fallback color */
  border-radius: 100px;
  font-size: 0.9rem;
  color: var(--aqua-pearl, #00aacc);
  background-color: #fff;
  text-decoration: none;
  white-space: nowrap;
  transition: all 0.3s ease;
}

.front-c-btn--footer.front-c-btn--footer-large:hover {
  background-color: var(--aqua-pearl, #00aacc);
  color: #fff;
}

.front-c-btn--footer .x-icon {
  width: 1em;
  height: 1em;
  fill: currentColor;
  margin-left: 0.4em;
}

/* 下段リンク */
.front-footer-link {
  color: var(--aqua-pearl, #7FDBDA); /* ← 通常時の色（仮に指定） */
  text-decoration: none;
  transition: color 0.3s ease;
}

.front-footer-link:hover {
  color: var(--aqua-pearl-hover, #5CC5C0); /* ← ホバー時の色に変化 */
  text-decoration: none; /* アンダーラインを無効に */
}



/* レイアウト全体 */
.front-site-footer {
  /*padding: 40px 0;*/
  background: #fff;
  font-size: 0.9rem;
  color: #333;
}

.front-footer-buttons {
  max-width: 1200px;
  margin: 0 auto;
  padding: 2rem 1rem;
}

.front-footer-buttons-top {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 20px;
  margin-bottom: 1.5rem;
}


.front-footer-bottom-row {
  display: flex;
  justify-content: center; /* 中央寄せに変更 */
  align-items: center;
  flex-wrap: wrap;
  gap: 20px; /* 要素同士の間隔 */
  text-align: center;
}


.front-footer-links-bottom {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
}

.front-footer-copy-wrapper {
  white-space: nowrap;
  margin: 0; /* 左寄せの余白を消す */
}

.front-footer-copy {
  margin: 0;
  color: #333;
  font-size: 0.85rem;
}
