/* Google Fonts */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700&display=swap');

.fc-main {
    color: #2097B4;
}

section {
    padding: 100px 0;
}

/* btn-outline-primary を var(--green) に統一 */
.btn-outline-primary {
  color: var(--green);
  border-color: var(--green);
}

.btn-outline-primary:hover,
.btn-outline-primary:focus,
.btn-outline-primary:active {
  background-color: var(--green);
  border-color: var(--green);
  color: #fff;
}

strong {
    color: var(--green);
}

body {
  font-family: 'Noto Sans JP', sans-serif;
  background: #ffffff;
  color: #333;
  line-height: 1.7;
}

h1, h2, h3, h4, h5 {
  font-weight: 700;
  color: #333;
}

header, .hero, section, footer {
  letter-spacing: 0.02em;
}

/* --- Color Tokens --- */
:root {
  --mint: #C7EFE6;
  --green: #0BB187;
  --gray-bg: #F7F9FA;
  --border-light: #e5e7eb;
}

/* HEADER */
header {
  background: #fff;
  border-bottom: 1px solid var(--border-light);
}

header .btn-success {
  background: var(--green);
  border-radius: 50px;
  font-weight: 600;
  border: none;
}

/* HERO */
.hero img {
  border-radius: 24px;
}

.hero .btn-primary {
  background: var(--green);
  border: none;
  padding: 14px 32px;
  font-weight: 700;
  border-radius: 50px;
}

/* Section titles */
section h2 {
  font-size: 1.8rem;
  margin-bottom: 24px;
  color: #333;
}

/* Reason cards */
.reason-card {
  border-radius: 20px;
  background: #ffffff;
  border: 1px solid var(--border-light);
  transition: .2s;
}
.reason-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 6px 20px rgba(0,0,0,0.07);
}
.reason-card img {
  border-radius: 16px;
}

/* Gallery captions */
.gallery p,
.reason-card p,
.teacher-section p {
  font-size: 0.95rem;
  color: #555;
}

/* Teacher images */
.rounded-circle {
  border: 3px solid var(--mint);
}

/* Curriculum list */
ul {
  padding-left: 1.2em;
}
ul li {
  margin-bottom: 6px;
}

/* Step list */
.list-group-item {
  border: none;
  border-bottom: 1px solid #e3e3e3;
  background: #fff;
  font-size: 1rem;
}

/* Price & Voice Cards */
.bg-light.rounded-4,
.bg-white.rounded,
.reason-card {
  border-radius: 20px;
}

/* CTA Buttons */
.btn-lg {
  border-radius: 50px;
  font-weight: bold;
}

/* Footer */
footer {
  background: #4E4E4E;
}


.cta-free-trial {
  background: #e9faf7;
}

.cta-free-trial h2 {
  color: #008d7d;
  font-weight: 700;
}

.btn-line {
  background: #00c300;
  color: #fff;
  border-radius: 8px;
}

.btn-line:hover {
  background: #00a000;
  color: #fff;
}

.btn-primary {
  background: #00aeb3;
  border: none;
  border-radius: 8px;
}

.btn-primary:hover {
  background: #008f92;
}

#lesson-flow h2 {
  color: #333;
}

#lesson-flow .fw-bold {
  font-size: 1.1rem;
}

#lesson-flow img {
  border: 4px solid #e5f5f6; /* ミント寄りの仮色 */
}

.carousel-control-prev-icon,
.carousel-control-next-icon {
  filter: invert(45%) sepia(19%) saturate(500%) hue-rotate(140deg);
}

.lesson-flow {
  background: #FAFAF3;
}

.section-title {
  font-size: 32px;
  font-weight: 700;
  color: #2097B4;
}

/* 時間配分バー */
.time-flow-bar {
  gap: 8px;
}

.time-item {
  padding: 10px 16px;
  border-radius: 30px;
  font-weight: 700;
  color: #333;
  text-align: center;
  min-width: 120px;
}

.bg-mint { background: #B6E2D3; }
.bg-pink { background: #F3C6D3; }
.bg-blue { background: #A7C6ED; }
.bg-yellow { background: #F8E3A2; }

.flow-title {
  font-size: 24px;
  font-weight: 700;
  margin-bottom: 12px;
}

.flow-time {
  font-size: 16px;
  color: #2097B4;
  font-weight: 600;
}

/* レッスンの流れ：カルーセル矢印ボタンを正方形の丸に統一 */
.control-btn {
  width: 48px;
  height: 48px;
  padding: 0;
  border-radius: 50%;
  display: flex;
  align-items: center;      /* ← 完全に中央へ */
  justify-content: center;  /* ← 完全に中央へ */
  line-height: 1;           /* ← ベースラインのズレをリセット */
  font-size: 20px;
  font-weight: 700;
  border: 2px solid #2097B4;
  background: white;
  color: #2097B4;
  transition: .3s;
}

.control-btn span {
  line-height: 1;           /* 念のためテキスト側もフラットに */
  display: inline-block;    /* 位置ずれ防止 */
}


.control-btn:hover {
  background: #2097B4;
  color: #fff;
}

/* ===== レッスンの流れ コンテンツレイアウト ===== */

.lesson-carousel-item {
  display: flex;
  align-items: center;
  gap: 40px;
  justify-content: center;
  padding: 20px;
  height: 400px;
}

.lesson-carousel-item img {
  width: 45%;
  max-width: 360px;
  border-radius: 12px;
  object-fit: cover;
}

.lesson-carousel-text {
  width: 45%;
  max-width: 480px;
}

.lesson-carousel-text h4 {
  font-size: 1.4rem;
  font-weight: 700;
  margin-bottom: 12px;
}

.lesson-carousel-text p {
  font-size: 1.1rem;
  line-height: 1.6;
}

.lesson-step-btn.active {
  background: var(--green);
  color: #fff;
  border-color: var(--green);
}

.lesson-step-btn {
    font-size: 13px;
    font-weight: 700;
}

.carousel-item {
  transition: transform 0.6s ease;
}

/* ACCESS SECTION */
.access-section {
  background: #F7FCFA; /* Mint Very Light */
}

.access-section .section-title {
  font-weight: 700;
  color: #33AFA8; /* Mint */
}

.gallery-grid img {
  object-fit: cover;
  width: 100%;
  height: auto;
}

.map-container {
  overflow: hidden;
  border: 3px solid #AEE6E1; /* Mint border */
  border-radius: 12px;
  min-height: 300px;
}

/* 新CTAタイトルのアクセント色 */
.cta-free-trial h2 {
  color: #008d7d; /* 既存CTAと同じグリーン系 */
  font-weight: 700;
}

/* 新バッジ（すでに存在するbg-successに馴染む形） */
.cta-free-trial .badge {
  font-size: 0.95rem;
  padding: 10px 18px;
}

/* CTA説明文 */
.cta-free-trial p {
  font-size: 1rem;
  line-height: 1.8;
}

.reason-card img {
  height: 180px;          /* 好みで調整可能（160〜220pxが目安） */
  object-fit: cover;      /* 枠いっぱいにきれいに収まる */
  width: 100%;            /* 横幅はカードにフィット */
  border-radius: 16px;    /* 元のデザインの角丸を維持 */
}

/* === 先生紹介セクション === */
.teacher-section .teacher-avatar {
  border: 4px solid var(--mint);
  max-width: 220px;
}

.teacher-tagline {
  font-size: 0.9rem;
  color: var(--green);
  font-weight: 600;
}

.teacher-block {
  background: #ffffff;
  border-radius: 16px;
  border: 1px solid var(--border-light);
  padding: 16px 20px;
}

.teacher-block-title {
  font-size: 1rem;
  font-weight: 700;
  color: #2097B4;
  margin-bottom: 8px;
}

.teacher-list {
  padding-left: 1.2em;
  margin-bottom: 0;
}

.teacher-list li {
  margin-bottom: 6px;
  font-size: 0.95rem;
}

/* 家族の推し漫画カード */
.teacher-manga-card {
  background: #f7f9fa;
  border-radius: 12px;
  padding: 8px 10px;
  height: 100%;
}

.teacher-manga-card .label {
  font-size: 0.75rem;
  color: #777;
}

.teacher-manga-card .title {
  font-size: 0.9rem;
  font-weight: 700;
}

.teacher-manga-card .author {
  font-size: 0.8rem;
  color: #555;
}

/* === curriculum cards (フラットカード) === */
.curriculum-card {
  background: #f7f9fa;
  border-radius: 16px;
  border: 1px solid var(--border-light);
  padding: 3vw;
  height: 100%; /* ← 高さ揃えの基本 */
  display: flex;
  flex-direction: column;
}

/* === チェックアイコンをデザイン風に === */
.check-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.check-list li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 0.95rem;
  margin-bottom: 10px;
}

/* --- アイコン（四角＋チェック） --- */
.check-icon {
  width: 20px;
  height: 20px;
  border-radius: 4px;              /* ← 丸なら 50% に変更可 */
  background: var(--green);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  flex-shrink: 0;
  margin-top: 2px;
}

/* アクセス：左右のカラムを同じ高さに */
.access-row {
  min-height: 360px; /* 好みで調整：320〜420pxくらい */
}

.access-row .map-container,
.access-row .gallery-grid {
  height: 100%;
}

/* マップiframeを親いっぱいにフィット */
.access-row .map-container iframe {
  width: 100%;
  height: 100%;
}

/* 右ギャラリー：正方形4枚＋高さ揃え */
.gallery-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  gap: 12px;
}

.gallery-square {
  position: relative;
  width: 100%;
  padding-bottom: 100%;   /* 正方形トリック */
  overflow: hidden;
  border-radius: 12px;
}

.gallery-square img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 12px;
}



/* ===== SP縦並び ===== */
@media (max-width: 768px) {

  .curriculum-card {
    padding: 16px;
  }

    .teacher-section .teacher-avatar {
    max-width: 180px;}

  .lesson-carousel-item {
    flex-direction: column;
    text-align: center;
    gap: 20px;
  }

  .lesson-carousel-item img,
  .lesson-carousel-text {
    width: 100%;
    max-width: none;
  }

  .lesson-carousel-text h4 {
    font-size: 1.25rem;
  }
}

@media (min-width: 769px) {

  .sp {
    display: none;
  }
}