/* === Reset & Variables === */
        :root {
            /* Colors */
            --color-bg: #f0f2f5;
            --color-white: #ffffff;
            --color-bg-gray: #f9fcf8;  /* セクション用の薄いグレー (slate-50) */
            --color-text-main: #1e293b; /* slate-800 */
            --color-text-sub: #475569;  /* slate-600 */
            --color-text-light: #94a3b8; /* slate-400 */
            --color-primary: #027453;   /* Navy */
            --color-primary-dark: #121858;
            --color-primary-light: #deffcf;
            --color-accent: #deff00;    /* Gold */
            --color-green-deep: #1e4e3d;
            --color-green-light: #34d399;
            --color-border: #e2e8f0;
            
            /* ▼▼▼ ここに追加してください ▼▼▼ */
            /* Fonts: iPhone(ヒラギノ), Win(メイリオ/Yuゴシック), Android(Roboto/Noto) に対応 */
            --font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
            /* ▲▲▲ ここまで ▲▲▲ */

            /* Shadows */
            --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
            --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
            --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
            
            /* Spacing & Sizes */
            --header-h: 3.5rem;
            --max-w-content: 480px; /* Mobile LP Width */
        }

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    scroll-behavior: smooth;
}

body {
    font-family: var(--font-family);
    color: var(--color-text-main);
    background-color: var(--color-bg);
    line-height: 1.5;
    min-height: 100vh;
    display: flex;
    justify-content: center;
    overflow-x: hidden;
    scroll-padding-top: calc(var(--header-height) + 1rem);
}

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

img {
    max-width: 100%;
    height: auto;
    display: block;
}

button {
    background: none;
    border: none;
    cursor: pointer;
    font-family: inherit;
}

/* === Utility Utility Classes === */
.text-center { text-align: center; }
.text-primary { color: var(--color-primary); }
.font-bold { font-weight: 700; }
.mb-2 { margin-bottom: 0.5rem; }
.mb-4 { margin-bottom: 1rem; }
.mb-8 { margin-bottom: 2rem; }
.mb-10 { margin-bottom: 2.5rem; }

/* === Layout === */
/* PC用 左右カラム (デフォルトは非表示) */
.side-column {
    display: none; /* モバイルでは非表示 */
    position: fixed;
    top: 0;
    height: 100vh;
    width: 20rem; /* w-80 */
    z-index: 10;
    pointer-events: none; /* コンテンツ以外クリック透過 */
    padding: 2rem;
}

.side-column-content {
    pointer-events: auto;
    margin-top: 5rem;
    width: 100%;
    max-width: 20rem;
}

.side-left {
    left: 0;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-end;
}

.side-right {
    right: 0;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
}

@media (min-width: 1024px) {
    .side-column {
display: flex;
    }
    .side-column.side-left, .side-column.side-right {
width: 20rem;
    }
}
@media (min-width: 1280px) {
    .side-column.side-left, .side-column.side-right {
width: 24rem; /* xl:w-96 */
    }
}

/* メインカラム */
.main-column {
    width: 100%;
    background-color: var(--color-white);
    box-shadow: var(--shadow-2xl);
    min-height: 100vh;
    position: relative;
    z-index: 20;
    display: flex;
    flex-direction: column;
    /* box-shadowのカスタム定義 */
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25); 
}

@media (min-width: 1024px) {
    .main-column {
max-width: 480px;
    }
}

 /* =========================================
    3. Common Components
    ========================================= */
 .section { padding: 4rem 1.25rem; }
 .bg-gray { background-color: var(--color-bg-gray); } /* 修正: 正しい変数を参照 */
 .bg-white { background-color: var(--color-white); }
 .text-center { text-align: center; }
 .mb-4 { margin-bottom: 1rem; }
 .mb-8 { margin-bottom: 2rem; }
 .mb-12 { margin-bottom: 3rem; }

/* === Header === */

header {
  /* box-shadow: 0px 0.3rem 0.6rem #00000029; */
  position: relative;
  z-index: 1000;
}

.header_container {
  max-width: 172rem;
  height: 3.6rem;
  margin-inline: auto;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding: 0.5rem 1rem;
}

.header_container img{
    width: 238px;
}

.header-btn {
    background-color: var(--color-primary);
    color: var(--color-white);
    font-size: 0.75rem;
    font-weight: 700;
    padding: 0.5rem 1rem;
    border-radius: 9999px;
    transition: background-color 0.2s;
    box-shadow: 0 4px 6px -1px rgba(30, 58, 138, 0.1);
}

.header-btn:hover {
    background-color: var(--color-primary-dark);
}

/* === Sections Common === */
.bg-white { background-color: var(--color-white); }
.bg-gray {background-color: var(--color-bg-gray);}
.bg-navy { background-color: var(--color-primary); color: var(--color-white); }
.bg-sub { background-color: #f0f2f5; }
.sec-title h2 {
     font-size: 1.25rem;
     font-weight: 700;
     line-height: 1.4;
     color: var(--color-text-main);
 }
 .sec-label {
     display: inline-block;
     font-size: 0.75rem;
     font-weight: 700;
     letter-spacing: 0.1em;
     margin-bottom: 0.5rem;
     color: var(--color-primary);
     border-bottom: 1px solid var(--color-primary);
     padding-bottom: 2px;
 }
 .highlight {
     background: linear-gradient(transparent 60%, rgba(255, 215, 0, 0.3) 60%);
 }

/* === FV (First View) === */
.section-fv {
    margin-top: 40px;
    padding: 0;
    position: relative;
    background-color: var(--color-white);
}

.cta-button-container {
    padding: 1rem 1rem 0rem;
    background-color: var(--color-white);
}

.cta-img {
    width: 100%;
    /* max-width: 24rem; */ /* max-w-sm */
    margin: 0 auto;
    margin-top: -110px;
    margin-bottom: 20px;
    /* border-radius: 9999px; */
    /*box-shadow: var(--shadow-xl);*/
    transition: transform 0.2s, opacity 0.2s;
}

.cta-img:hover {
    transform: scale(1.02);
    opacity: 0.9;
}

.fv-points {
    background-color: rgba(255, 255, 255, 0.8);
    backdrop-filter: blur(4px);
    border-radius: 0.5rem;
    border: 1px solid var(--color-blue-100);
    padding: 1rem;
    margin: 0 1rem 2rem 1rem;
    box-shadow: var(--shadow-sm);
    text-align: left;
}

.section-fv p{
    padding: 0 1rem 1rem;
    font-size: 0.8rem;
}

.point-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.875rem;
    margin-top: 0.75rem;
}

.point-item .lucide {
    color: var(--color-primary);
    fill: var(--color-primary-light);
    flex-shrink: 0;
}

.underline-accent {
    font-weight: 700;
    text-decoration: underline;
    text-decoration-color: var(--color-accent);
    text-decoration-thickness: 4px;
}


/* === present Section === */

.cta-button-body{
    padding: 1rem 1rem;
}

.cta-button-body .cta-img{
    width: 100%;
    /* max-width: 24rem; */
    margin: 0 auto;
    margin-top: 0px;
    /* border-radius: 9999px; */
    /*box-shadow: var(--shadow-xl);*/
    transition: transform 0.2s, opacity 0.2s;    
}

/* === Solution Section (Navy) === */
.section-solution-navy {
    background-color: var(--color-primary);
    color: var(--color-white);
    padding: 5rem 1.25rem 3rem; /* 下部パディング調整 */
    position: relative;
    overflow: hidden;
    text-align: center;
}

.solution-bg-pattern {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0.1;
    background-image: 
radial-gradient(circle at 2px 2px, white 1px, transparent 0);
    background-size: 24px 24px;
    pointer-events: none;
}

.solution-main-header {
    margin-bottom: 4rem;
}

.solution-label {
    display: inline-block;
    color: var(--color-accent); /* ゴールド */
    font-size: 0.875rem;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    margin-bottom: 1rem;
    position: relative;
}

.solution-label::before,
.solution-label::after {
    content: '';
    position: absolute;
    top: 50%;
    width: 30px;
    height: 1px;
    background-color: var(--color-accent);
}
.solution-label::before { left: -40px; }
.solution-label::after { right: -40px; }

.solution-heading {
    font-size: 1.75rem;
    font-weight: 700;
    line-height: 1.5;
}

.solution-heading .arrow {
    color: var(--color-accent);
    font-weight: 900;
    margin: 0 0.25rem;
}

/* CBA Header Area */
.cba-header {
    margin-bottom: 3rem;
    position: relative;
    padding: 2rem;
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-radius: 0.5rem;
    background: rgba(255, 255, 255, 0.05);
}

.cba-title-en {
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    opacity: 0.8;
    margin-bottom: 0.25rem;
}

.cba-title-ja {
    font-size: 1.4rem;
    font-weight: 700;
    margin-bottom: 1rem;
}

.cba-subtitle {
    display: inline-block;
    background-color: var(--color-accent);
    color: var(--color-primary);
    font-weight: 700;
    font-size: 0.875rem;
    padding: 0.25rem 1rem;
    border-radius: 9999px;
    color: var(--color-primary-dark);
}

/* Steps */
.steps-container {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    max-width: 500px;
    margin: 0 auto;
}

.step-card {
    background-color: var(--color-white);
    color: var(--color-text-main);
    border-radius: 0.75rem;
    padding: 2rem 1.5rem;
    position: relative;
    text-align: left;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2);
}

.step-badge {
    position: absolute;
    top: -0.75rem;
    left: 1.5rem;
    background-color: var(--color-primary);
    color: var(--color-white);
    font-size: 0.75rem;
    font-weight: 700;
    padding: 0.25rem 0.75rem;
    border-radius: 0.25rem;
    border: 1px solid var(--color-accent);
    box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}

.step-title {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--color-primary);
    margin-top: 0.5rem;
    margin-bottom: 0.75rem;
    padding-bottom: 0.5rem;
    border-bottom: 2px solid var(--color-bg);
    line-height: 1.4;
}

.step-desc {
    font-size: 0.875rem;
    line-height: 1.6;
    color: var(--color-text-sub);
}

/* === Green Card Area (White BG) === */
.section-green-card-area {
    background-color: var(--color-white);
    padding: 4rem 1.25rem;
}

.green-card {
    background-color: var(--color-green-deep);
    color: var(--color-white);
    border-radius: 1.5rem; /* かなり丸く */
    padding: 2.5rem 2rem;
    position: relative;
    overflow: hidden;
    box-shadow: var(--shadow-xl);
}

.green-card::before {
    content: '';
    position: absolute;
    top: -50px;
    right: -50px;
    width: 200px;
    height: 200px;
    background: radial-gradient(circle, rgba(255,255,255,0.1) 0%, rgba(255,255,255,0) 70%);
    border-radius: 50%;
    pointer-events: none;
}

.green-card-title {
    text-align: center;
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.4;
    margin-bottom: 2rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid rgba(255,255,255,0.2);
}

.green-card-body {
    margin-bottom: 2rem;
}

.green-card-text {
    font-size: 0.95rem;
    line-height: 1.8;
    margin-bottom: 1.5rem;
    text-align: left;
    opacity: 0.95;
}

.green-card-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.green-card-item {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    font-weight: 700;
    font-size: 1rem;
    color: #ffffff;
}

.check-icon-circle {
    background-color:var(--color-accent);
    color: var(--color-green-deep);
    border-radius: 50%;
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    margin-top: 2px;
}

.check-icon-circle svg {
    width: 16px;
    height: 16px;
    stroke-width: 3px;
}

/* === Social Proof === */
.proof-box {
    background-color: var(--color-bg-gray);
    border: 1px solid var(--color-border);
    border-radius: 0.75rem;
    padding: 1.5rem;
    text-align: center;
}

.logo-cross {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    color: var(--color-text-light);
    margin-bottom: 1.5rem;
}

.company-logo {
    height: 3rem;
    padding: 0 1.25rem;
    background-color: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: 0.25rem;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 0.875rem;
    color: var(--color-text-sub);
    box-shadow: var(--shadow-sm);
}

.proof-text {
    font-size: 0.875rem;
    color: var(--color-text-sub);
    line-height: 1.6;
    text-align: left;
    margin-bottom: 1.5rem;
}

.highlight-blue {
    font-weight: 700;
    color: var(--color-primary);
    background-color: var(--color-primary-light);
    padding: 0 0.25rem;
}

.instructor-profile {
    display: flex;
    align-items: center;
    gap: 1rem;
    text-align: left;
    padding-top: 1.5rem;
    border-top: 1px solid var(--color-border);
}

.instructor-img {
    width: 3.5rem;
    height: 3.5rem;
    border-radius: 9999px;
    overflow: hidden;
    border: 2px solid var(--color-white);
    box-shadow: var(--shadow-sm);
}

.instructor-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.instructor-label {
    font-size: 0.75rem;
    color: var(--color-primary);
    font-weight: 700;
    margin-bottom: 0.25rem;
    background-color: var(--color-primary-light);
    display: inline-block;
    padding: 0.125rem 0.5rem;
    border-radius: 9999px;
}
/* =========================================
   7. Curriculum (Timeline)
   ========================================= */
.roadmap {
  position: relative;
  padding-left: 1rem;
}

.roadmap-item {
  display: flex;
  gap: 1rem;
  padding-bottom: 2.5rem;
  position: relative;
}

.roadmap-item:last-child {
  padding-bottom: 0;
}

.rm-marker {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 3rem;
  flex-shrink: 0;
}

.rm-circle {
  width: 3rem;
  height: 3rem;
  border-radius: 50%;
  background: var(--color-primary);
  color: var(--color-accent);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 900;
  font-size: 1.2rem;
  border: 2px solid var(--color-white);
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
  z-index: 2;
  /* 数字なので少し詰めると締まります */
  letter-spacing: -0.02em; 
}

.rm-circle.last {
  background: var(--color-accent);
  color: var(--color-primary);
}

.rm-line {
  width: 4px;
  background: #cbd5e1;
  flex-grow: 1;
  margin: 0.5rem 0;
  border-radius: 2px;
}

.rm-content {
  background: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: 0.75rem;
  flex-grow: 1;
  overflow: hidden;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);
}

.rm-head {
  background: var(--color-primary-light);
  padding: 0.75rem 1rem;
  border-bottom: 1px solid var(--color-border);
}

.rm-month {
  font-size: 0.7rem;
  font-weight: 700;
  color: var(--color-primary);
  text-transform: uppercase;
  /* 英字大文字は字間を広げると可読性が上がります */
  letter-spacing: 0.08em;
}

.rm-title {
  font-size: 1rem;
  font-weight: 700;
  margin-bottom: 0.5rem;
  /* 見出しのカーニング調整 */
  letter-spacing: 0.05em;
  line-height: 1.4;
}

.rm-body {
  padding: 1rem;
  display: flex;
  gap: 0.75rem;
  align-items: flex-start;
}

.rm-icon {
  color: var(--color-primary);
  flex-shrink: 0;
  padding-top: 0.2rem;
}

.rm-desc {
  font-size: 0.85rem;
  /* 本文の可読性向上 */
  line-height: 1.6;
  letter-spacing: 0.02em;
}


/* =========================================
   8. Skill & Support (Modern Grid)
   ========================================= */
.skill-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
  margin-bottom: 4rem;
}

.skill-card {
  background: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: 0.5rem;
  padding: 1rem 0.5rem;
  text-align: center;
  position: relative;
  overflow: hidden;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.03);
}

.skill-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 4px;
  height: 100%;
  background: var(--color-primary);
}

.skill-icon {
  width: 2.5rem;
  height: 2.5rem;
  background: var(--color-primary-light);
  color: var(--color-primary);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 0.5rem;
}

.skill-name {
  font-size: 0.8rem;
  font-weight: 700;
  /* 狭いカード内での改行調整とカーニング */
  line-height: 1.4;
  letter-spacing: 0.04em;
}

.support-list {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.support-card {
  background: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: 1rem;
  padding: 2rem 1.5rem;
  text-align: center;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
  position: relative;
}

.support-num {
  position: absolute;
  top: 1rem;
  right: 1.5rem;
  font-size: 3rem;
  font-weight: 900;
  color: #f1f5f9;
  line-height: 1;
  /* 背景の巨大数字は詰めて塊感を出す */
  letter-spacing: -0.05em;
}

.support-icon-wrap {
  width: 4rem;
  height: 4rem;
  margin: 0 auto 1.5rem;
  background: linear-gradient(135deg, var(--color-primary), #deff00);
  color: var(--color-white);
  border-radius: 1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  transform: rotate(-5deg);
  box-shadow: 0 5px 15px rgba(26, 35, 126, 0.2);
  position: relative;
  z-index: 1;
}

.support-title {
  font-size: 1.2rem;
  font-weight: 700;
  color: var(--color-primary);
  margin-bottom: 0.75rem;
  position: relative;
  z-index: 1;
  /* 見出しの強調 */
  letter-spacing: 0.05em;
  line-height: 1.4;
}

.support-desc {
  font-size: 0.9rem;
  text-align: left;
  position: relative;
  z-index: 1;
  /* 説明文の読みやすさ */
  line-height: 1.7;
  letter-spacing: 0.03em;
}

.marker {
  background: linear-gradient(transparent 60%, rgba(255, 215, 0, 0.4) 60%);
  font-weight: 700;
  /* マーカー部分は少し強調 */
  letter-spacing: 0.02em;
}


/* =========================================
   9. Social Proof & Footer
   ========================================= */
.proof-box {
  background: var(--color-bg-gray);
  padding: 2rem;
  border-radius: 1rem;
  text-align: center;
}

.logos {
  display: flex;
  justify-content: center;
  gap: 1rem;
  align-items: center;
  margin-bottom: 1.5rem;
  font-weight: 700;
  color: var(--color-text-light);
  letter-spacing: 0.05em;
}

.logo-item {
  background: var(--color-white);
  padding: 0.5rem 1rem;
  border-radius: 4px;
  border: 1px solid var(--color-border);
  color: var(--color-text-sub);
}

.instructor {
  display: flex;
  align-items: center;
  gap: 1rem;
  text-align: left;
  margin-top: 1.5rem;
  border-top: 1px solid var(--color-border);
  padding-top: 1.5rem;
}

.inst-img {
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 50%;
  overflow: hidden;
  background: #ddd;
}

.inst-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.voice-card {
  background: var(--color-white);
  padding: 1.5rem;
  border-radius: 1rem;
  border: 1px solid var(--color-border);
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.03);
  /* 口コミ等のカード内テキスト */
  line-height: 1.6;
  letter-spacing: 0.03em;
}

.faq-item {
  border: 1px solid var(--color-border);
  border-radius: 0.5rem;
  overflow: hidden;
  margin-bottom: 0.75rem;
}

.faq-q {
  background: var(--color-bg-gray);
  padding: 1rem;
  font-weight: 700;
  display: flex;
  justify-content: space-between;
  align-items: center;
  cursor: pointer;
  /* 質問文のカーニング */
  line-height: 1.4;
  letter-spacing: 0.04em;
}

.faq-a {
  padding: 1.5rem;
  display: none;
  font-size: 0.9rem;
  border-top: 1px solid var(--color-border);
  /* 回答文の読みやすさ */
  line-height: 1.7;
  letter-spacing: 0.03em;
}

.faq-item.active .faq-a {
  display: block;
}

.faq-icon {
  transition: transform 0.3s;
}

.faq-item.active .faq-icon {
  transform: rotate(180deg);
}

.footer {
  background: #0f172a;
  color: #64748b;
  padding: 3rem 1rem;
  text-align: center;
  font-size: 0.75rem;
  /* フッターの細かい文字は見やすく広げる */
  letter-spacing: 0.05em;
  line-height: 1.5;
}

.section-fv p {
  text-align: center;
  color: var(--color-text-sub);
  margin-top: 0.5rem;
  font-size: 0.75rem;
  /* 注釈テキスト */
  letter-spacing: 0.05em;
}

/* Images in Side Columns */
.banner-img {
  width: 100%;
  height: auto;
  border-radius: 0.75rem;
  box-shadow: var(--shadow-lg);
  border: 1px solid var(--color-border);
  transition: box-shadow 0.2s;
  cursor: pointer;
}

.banner-img:hover {
  box-shadow: var(--shadow-xl);
}

.side-logo-img {
  width: auto;
  height: 3rem;
  object-fit: contain;
  opacity: 0.8;
}
/* === Before / After Section === */
.ba-container {
    max-width: 500px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 0 0.5rem;
}

.ba-box {
    width: 100%;
    padding: 2rem 1.5rem;
    border-radius: 1rem;
    text-align: left;
}

/* Before Style */
.ba-before {
    background-color: #e2e8f0; /* slate-200 (濃いめのグレーに変更して視認性UP) */
    color: var(--color-text-sub);
    padding-bottom: 3.5rem; /* 矢印のスペース確保 */
    border: 1px solid #cbd5e1;
}

/* After Style */
.ba-after {
    background: linear-gradient(135deg, var(--color-primary), #1e4e3d);
    color: var(--color-white);
    box-shadow: 0 20px 25px -5px rgba(30, 58, 138, 0.3);
    position: relative;
    z-index: 2;
    margin-top: -1.5rem; /* 重ねる */
    border: 1px solid rgba(255,255,255,0.1);
}

.ba-title {
    font-size: 0.9rem;
    font-weight: 700;
    margin-bottom: 1.25rem;
    text-align: center;
    opacity: 0.9;
    letter-spacing: 0.05em;
}

.ba-list {
    display: flex;
    flex-direction: column;
    gap: 1.25rem; /* 行間広め */
}

.ba-item {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    font-weight: 700;
    line-height: 1.5;
    font-size: 0.95rem;
}

.ba-icon-x {
    color: #94a3b8; /* slate-400 */
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    margin-top: 2px;
}

.ba-icon-check {
    color: var(--color-accent);
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    margin-top: 2px;
    stroke-width: 3px;
}

.ba-arrow {
    background-color: var(--color-white);
    color: var(--color-primary);
    width: 3rem;
    height: 3rem;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 6px rgba(0,0,0,0.1);
    position: relative;
    z-index: 3;
    margin-top: -1.5rem;
    border: 2px solid var(--color-bg);
}

/* === FAQ === */
.faq-list {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.faq-item {
    border: 1px solid var(--color-border);
    border-radius: 0.5rem;
    overflow: hidden;
    transition: border-color 0.2s;
}

.faq-item:hover {
    border-color: var(--color-blue-200);
}

.faq-button {
    width: 100%;
    text-align: left;
    padding: 1rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-weight: 700;
    font-size: 0.875rem;
    color: var(--color-text-main);
    background-color: var(--color-bg-gray);
    transition: background-color 0.2s;
}

.faq-button:hover {
    background-color: var(--color-primary-light);
}

.faq-q-mark {
    color: var(--color-primary);
    font-weight: 900;
    font-size: 1.125rem;
    margin-right: 0.5rem;
}

.faq-icon {
    width: 18px;
    height: 18px;
    color: var(--color-text-light);
    transition: transform 0.3s;
}

/* アクティブ時のスタイル */
.faq-button.is-open .faq-icon {
    transform: rotate(180deg);
    color: var(--color-primary);
}

.faq-answer {
    background-color: var(--color-white);
    font-size: 0.875rem;
    color: var(--color-text-sub);
    border-top: 1px solid var(--color-slate-100);
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    transition: max-height 0.3s ease-out, opacity 0.3s ease-out;
}

.faq-answer.is-open {
    opacity: 1;
    /* max-heightはJSで設定 */
}

.faq-answer-content {
    padding: 1.25rem;
    line-height: 1.6;
}

.faq-a-mark {
    font-weight: 700;
    color: var(--color-primary);
    margin-right: 0.5rem;
    font-size: 1.125rem;
}

/* === CTA Section === */
.section-cta {
    background-color: var(--color-primary);
    text-align: center;
    padding-top: 5rem;
    padding-bottom: 5rem;
    color: var(--color-white);
}

.cta-sub {
    color: var(--color-blue-200);
    font-weight: 700;
    font-size: 0.875rem;
    margin-bottom: 1rem;
}

.cta-title {
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.4;
    margin-bottom: 2rem;
}

.cta-note {
    font-size: 0.625rem;
    color: var(--color-blue-200);
    margin-top: 1rem;
}

/* === Footer === */
.site-footer {
    background-color: var(--color-slate-900);
    color: var(--color-slate-500);
    padding: 2rem 1.25rem;
    text-align: center;
    font-size: 0.75rem;
}

.footer-logo {
    font-weight: 700;
    color: var(--color-text-light);
    margin-bottom: 1rem;
}

/* === Images in Side Columns === */
.banner-img {
    width: 100%;
    height: auto;
    border-radius: 0.75rem;
    box-shadow: var(--shadow-lg);
    border: 1px solid var(--color-border);
    transition: box-shadow 0.2s;
    cursor: pointer;
}

.banner-img:hover {
    box-shadow: var(--shadow-xl);
}

.side-logo-img {
    /* height: 3rem; */
    width: auto;
    object-fit: contain;
    opacity: 0.2;
    transition: opacity 0.2s;
}


.side-logo-img:hover {
    opacity: 1;
}


/*CBA（長期講座）を受講したクライアント様の変化*/


.section-10 {
    background: #f0f2f5;
}
.section-10__body {
    flex-direction: column;
    margin-top: 2rem;
}

.section-10__body-grid {
    flex-direction: column;
    gap: 1.5rem;
    display: flex;
    padding: 2rem 1.5rem;
    justify-content: space-between;
    background: #ffffff;
}

.section-10__body-grid-item-img {
    margin: 1.5rem 0 0;
}

.section-10__body-grid-item-img figcaption {
    font-size: 0.8rem;
    margin-top: 1rem;
    text-align: right;
}

.section-10__body-grid-item-text {
    font-size: 0.9rem;
    line-height: calc(34 / 20);
}

.section-10__body-grid-item-text--emphasis {
background: linear-gradient(transparent 60%, rgba(255, 215, 0, 0.3) 60%);
}

.section-6__body-profile {
    font-size:1.5rem;
    font-weight: 700;
    line-height: calc(61 / 36);
}

.section-6__body-profile-company {
    display: block;
    font-size: 1.3rem;
    line-height: calc(44 / 26);
}

.section-6__body {
    flex-direction: column;
    margin: 2rem 0;
    display: flex;
    align-items: center;
    gap: 2rem;
}

.section-6__body-text-description {
    margin-top: 2rem;
    font-size: 1rem;
    line-height: calc(34 / 20);
}


.side-area {
    flex: 1;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    position: fixed;
    top: 0;
    width: calc(50vw - 212.5px);
    height: 100vh;
}

.bg_logo {
    position: relative;
    width: 71.5%;
    max-width: 390px;
}

.side-area.left-area {
    left: 0;
}

.side-area.right-area {
    right: 0;
}
.right-area_text {
    margin-top: -15%;
    width: 76.33%;
    max-width: 416px;
}



/* Swiper Customization */
.swiper {
    width: 100%;
    padding-bottom: 3rem; /* Pagination space */
}
.swiper-slide {
    text-align: center;
    background: #fff;
    display: flex;
    justify-content: center;
    align-items: center;
}

/* ▼▼▼ ここを変更しました ▼▼▼ */
.swiper-slide img,
.swiper-slide video {
    display: block;
    width: 100%;
    height: 330px;     /* 固定の高さを指定 */
    border-radius: 0.5rem;
    object-fit: cover; /* 枠からはみ出る部分（上下）をトリミング */
}
/* ▲▲▲ ここまで ▲▲▲ */

.swiper-button-next, .swiper-button-prev {
    color: var(--color-primary);
}
.swiper-pagination-bullet-active {
    background: var(--color-primary);
}


/* === Partnership Section Styles === */
.section-partnership {
    background-color: #fff;
    padding: 4rem 1.25rem 2rem;
    text-align: center;
}

.partnership-container {
    max-width: 440px;
    margin: 0 auto;
    border: 2px solid #e2e8f0;
    border-radius: 1rem;
    padding: 2rem 1.5rem;
    background: linear-gradient(to bottom, #ffffff, #f8fafc);
    position: relative;
}

.partnership-badge {
    display: inline-block;
    background-color: #1e293b;
    color: #fff;
    font-size: 0.7rem;
    font-weight: 900;
    padding: 0.2rem 0.75rem;
    border-radius: 9999px;
    letter-spacing: 0.1em;
    margin-bottom: 1rem;
}

.partnership-title {
    font-size: 1.25rem;
    line-height: 1.5;
    font-weight: 900;
    color: var(--color-text-main);
    margin-bottom: 1.5rem;
}

.text-blue { color: #2563eb; } /* Hajimariカラーイメージ */
.text-green { color: var(--color-primary); }

.partnership-text {
    font-size: 0.9rem;
    line-height: 1.6;
    color: var(--color-text-sub);
    margin-bottom: 1.5rem;
    text-align: left;
}

.partnership-features {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.p-feature-item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    background: #fff;
    padding: 0.75rem;
    border-radius: 0.5rem;
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
    text-align: left;
}

.p-icon {
    color: var(--color-primary);
    flex-shrink: 0;
}

.p-feature-item span {
    font-size: 0.875rem;
    line-height: 1.4;
}

.p-feature-item small {
    font-size: 0.7rem;
    color: #94a3b8;
}

.partnership-summary {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--color-primary);
    line-height: 1.6;
    border-top: 1px dashed #cbd5e1;
    padding-top: 1rem;
}

/* === Partnership Logo Styles === */
.partnership-logos {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.logo-wrapper {
    flex: 1;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 50px; /* ロゴの高さの目安 */
}

.partner-logo-img {
    max-width: 100%;
    max-height: 70px; /* ロゴのサイズを一定に揃える */
    object-fit: contain;
}

.logo-divider {
    font-size: 1.2rem;
    font-weight: 700;
    color: #cbd5e1;
}

/* 既存のタイトル周りを微調整 */
.partnership-title {
    font-size: 1.2rem;
    line-height: 1.4;
    font-weight: 900;
    color: var(--color-text-main);
    margin-top: 0.5rem;
    margin-bottom: 1.5rem;
}
/* === Special Guest Lecturer Styles === */
.section-ai-lecturer {
    padding: 4rem 1.25rem;
    border-top: 1px solid var(--color-border);
}

.lecturer-container {
    max-width: 440px;
    margin: 0 auto;
}

.lecturer-label-wrap {
    text-align: center;
    margin-bottom: 2rem;
}

.lecturer-badge {
    background-color: #fef3c7;
    color: #92400e;
    font-size: 0.75rem;
    font-weight: 800;
    padding: 0.25rem 1rem;
    border-radius: 4px;
    letter-spacing: 0.1em;
}

.lecturer-main-title {
    font-size: 1.4rem;
    font-weight: 900;
    margin-top: 0.5rem;
    color: var(--color-text-main);
}

.lecturer-card {
    background: #f8fafc;
    border-radius: 1.5rem;
    overflow: hidden;
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.05);
    border: 1px solid #e2e8f0;
}

.lecturer-visual {
    position: relative;
    width: 100%;
}

.lecturer-photo {
    width: 100%;
    height: 300px; /* 必要に応じて調整 */
    object-fit: cover;
    object-position: center top;
}

.lecturer-name-tag {
    position: absolute;
    bottom: 1rem;
    left: 1rem;
    background: rgba(255, 255, 255, 0.95);
    padding: 0.75rem 1.25rem;
    border-radius: 0.5rem;
    box-shadow: var(--shadow-md);
    display: flex;
    flex-direction: column;
}

.l-title {
    font-size: 0.7rem;
    color: var(--color-primary);
    font-weight: 700;
}

.l-name {
    font-size: 1.1rem;
    font-weight: 900;
}

.lecturer-profile {
    padding: 1.5rem;
}

.lecturer-catch {
    font-size: 1rem;
    line-height: 1.5;
    color: var(--color-primary);
    margin-bottom: 1rem;
}

.lecturer-bio {
    font-size: 0.85rem;
    line-height: 1.6;
    color: var(--color-text-sub);
    margin-bottom: 1.5rem;
}

.lecturer-message {
    background: #fff;
    padding: 1rem;
    border-radius: 0.75rem;
    position: relative;
    border-left: 4px solid var(--color-accent);
}

.quote-icon {
    position: absolute;
    top: -0.5rem;
    left: 0.5rem;
    width: 16px;
    color: var(--color-accent);
    fill: var(--color-accent);
}

.lecturer-message p {
    font-size: 0.85rem;
    font-style: italic;
    line-height: 1.6;
}

.ai-learning-points {
    margin-top: 2rem;
    background: #eff6ff; /* 薄い青 */
    padding: 1.5rem;
    border-radius: 1rem;
}

.points-title {
    font-size: 0.95rem;
    font-weight: 800;
    text-align: center;
    margin-bottom: 1rem;
    color: #1e40af;
}

.points-list {
    list-style: none;
    padding: 0;
}

.points-list li {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.85rem;
    font-weight: 700;
    margin-bottom: 0.5rem;
    color: var(--color-text-main);
}

.check-icon {
    color: #3b82f6;
    width: 18px;
    flex-shrink: 0;
}

.lecturer-sub-text {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--color-primary); /* 講座のメインカラーで強調 */
    margin-top: 0.5rem;
    letter-spacing: 0.05em;
    position: relative;
    display: inline-block;
}

/* 少し目立たせたい場合は、短い下線を引くのも効果的です */
.lecturer-sub-text::after {
    content: '';
    position: absolute;
    bottom: -4px;
    left: 10%;
    width: 80%;
    height: 2px;
    background-color: var(--color-accent); /* ゴールドのアクセント */
    opacity: 0.6;
}