/* ==========================================
   中学受験スリースターズ 伴走プラン LP
   Light theme — white base, no dark sections
   Accent: orange only.  CTA: LINE green.
   ========================================== */

:root {
  --navy: #1B2A4A;
  --orange: #F5811F;
  --orange-dark: #D96E12;
  --orange-light: #FFF7F0;
  --white: #FFFFFF;
  --bg: #F7F8FA;
  --bg-alt: #F0F1F4;
  --border: #E2E5EB;
  --text: #1E1E1E;
  --text-sub: #5A5A5A;
  --text-light: #9A9A9A;
  --green-line: #06C755;
  --green-line-hover: #05B34C;
  --shadow-sm: 0 1px 6px rgba(0,0,0,0.05);
  --shadow-md: 0 3px 12px rgba(0,0,0,0.07);
  --shadow-lg: 0 6px 20px rgba(0,0,0,0.09);
  --radius-sm: 6px;
  --radius-md: 12px;
  --radius-lg: 20px;
  --radius-full: 50%;
  --font: 'Noto Sans JP','Hiragino Sans',Meiryo,sans-serif;
  --font-num: 'Montserrat',sans-serif;
  --max-w: 480px;
}

/* Reset */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;font-size:16px;-webkit-text-size-adjust:100%}
body{font-family:var(--font);color:var(--text);background:#fff;line-height:1.9;overflow-x:hidden;max-width:var(--max-w);margin:0 auto;-webkit-font-smoothing:antialiased;font-size:16px}
img{max-width:100%;height:auto;display:block}
a{text-decoration:none;color:inherit}
ul,ol{list-style:none}
strong{font-weight:700}
em{font-style:normal;color:var(--orange)}
.text-orange{color:var(--orange)}
.text-red{color:var(--orange)}
.text-blue{color:var(--navy)}
.text-yellow{color:var(--orange)}

/* ==================================
   HEADER
   ================================== */
.header{position:fixed;top:0;left:0;right:0;z-index:1000;background:rgba(255,255,255,.97);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--border);max-width:var(--max-w);margin:0 auto;transition:box-shadow .3s}
.header.scrolled{box-shadow:var(--shadow-md)}
.header-inner{display:flex;align-items:center;justify-content:space-between;padding:12px 16px}
.header-logo{display:flex;align-items:center}
.logo-img{height:32px;width:auto}
.header-cta{display:flex;align-items:center;gap:6px;background:var(--green-line);color:#fff;padding:10px 18px;border-radius:var(--radius-sm);font-size:14px;font-weight:700;box-shadow:0 2px 8px rgba(6,199,85,.25);transition:background .3s}
.header-cta:hover{background:var(--green-line-hover)}
.header-cta i{font-size:16px}

/* ==================================
   HERO  — clean white, reference-image style
   ================================== */
.hero{padding-top:56px;background:#fff;position:relative;overflow:hidden}

/* Concern line at top */
.hero-concern{text-align:center;padding:36px 24px 24px;background:var(--bg)}
.hero-concern-text{font-size:22px;font-weight:800;color:var(--navy);line-height:1.7}
.hero-concern-sub{font-size:17px;color:var(--orange);margin-top:12px;font-weight:700;line-height:1.7}

/* Hero visual: image + overlaid copy */
.hero-visual{position:relative;margin:0}
.hero-visual-img{width:100%;overflow:hidden}
.hero-visual-img img{width:100%;height:380px;object-fit:cover;object-position:center top;display:block}
.hero-visual-copy{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(to top,rgba(255,255,255,.97) 55%,rgba(255,255,255,0) 100%);padding:48px 24px 20px;text-align:center}
.hero-copy-lead{font-size:14px;font-weight:700;color:var(--orange);letter-spacing:1.5px;margin-bottom:6px}
.hero-copy-brand{font-size:22px;font-weight:900;color:var(--navy);letter-spacing:.5px;margin-bottom:8px;line-height:1.5}
.brand-stars{font-size:34px;color:var(--navy);letter-spacing:2px}
.brand-plan{font-size:26px;color:var(--orange);letter-spacing:1px}
.hero-copy-tagline{font-size:16px;color:var(--text-sub);font-weight:500}
.hero-copy-tagline strong{color:var(--navy);font-weight:800}

/* Sub photo strip */
.hero-sub-photo{padding:0 16px;margin-top:16px}
.hero-sub-photo img{width:100%;height:180px;object-fit:cover;border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}

/* Check-mark trust points */
.hero-checks{padding:28px 24px 0}
.hero-check-item{display:flex;align-items:center;gap:12px;padding:10px 0}
.hero-check-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-full);background:var(--orange);color:#fff;font-size:14px;flex-shrink:0}
.hero-check-text{font-size:17px;font-weight:700;color:var(--navy)}

/* Main Headline */
.hero-headline{text-align:center;padding:28px 24px 0}
.hero-headline-main{font-size:30px;font-weight:900;color:var(--navy);line-height:1.45}
.hero-headline-main em{color:var(--orange);font-size:36px}

/* Hero CTA */
.hero-cta{padding:28px 16px 36px;text-align:center}
.cta-arrow-text{font-size:15px;font-weight:700;color:var(--orange);margin-bottom:10px;letter-spacing:.5px}
.btn-cta{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:20px 24px;border-radius:var(--radius-md);font-weight:800;font-size:18px;border:none;cursor:pointer;transition:all .3s;text-decoration:none;line-height:1.5}
.btn-line{background:var(--green-line);color:#fff;box-shadow:0 4px 16px rgba(6,199,85,.3)}
.btn-line:hover{background:var(--green-line-hover);transform:translateY(-2px)}
.btn-line i{font-size:26px}
.btn-large{padding:22px 24px;font-size:19px}
.cta-note{font-size:13px;color:var(--text-light);margin-top:10px}

/* ==================================
   SECTION COMMON
   ================================== */
.section{padding:0}
.section-header-navy{background:var(--bg);padding:36px 24px;text-align:center;border-bottom:1px solid var(--border)}
.section-header-navy h2{font-size:26px;font-weight:900;line-height:1.55;color:var(--navy)}
.section-header-red{background:var(--bg);padding:36px 24px;text-align:center;border-bottom:1px solid var(--border)}
.section-header-red h2{font-size:26px;font-weight:900;line-height:1.55;color:var(--navy)}
.section-title-block{font-size:26px;font-weight:900;color:var(--navy);text-align:center;padding:40px 20px 16px;position:relative}
.section-title-block::after{content:'';display:block;width:56px;height:4px;background:var(--orange);border-radius:2px;margin:14px auto 0}

/* ==================================
   PROBLEM SECTION
   ================================== */
.section-problem{background:#fff}
.problem-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:28px 16px}
.problem-card{position:relative;padding-top:8px}
.problem-photo-wrap{position:relative;border-radius:var(--radius-md);overflow:visible}
.problem-photo-wrap img{width:100%;height:160px;object-fit:cover;border-radius:var(--radius-md)}
.problem-bubble{position:absolute;top:-12px;left:50%;transform:translateX(-50%);background:#fff;color:var(--navy);padding:5px 12px;border-radius:100px;font-size:12px;font-weight:700;white-space:nowrap;display:flex;align-items:center;gap:4px;box-shadow:var(--shadow-md);z-index:2;border:1px solid var(--border)}
.problem-bubble i{font-size:13px;color:var(--orange)}
.problem-chat-bubbles{padding:12px 16px 20px}
.chat-bubble-left{background:var(--bg);border-radius:0 var(--radius-md) var(--radius-md) var(--radius-md);padding:16px 18px;margin-bottom:10px;font-size:16px;line-height:1.8;position:relative;border:1px solid var(--border)}
.chat-bubble-left::before{content:'';position:absolute;top:0;left:-8px;border:8px solid transparent;border-right-color:var(--bg);border-top-color:var(--bg);width:0;height:0}
.problem-conclusion{text-align:center;padding:28px 24px 36px;font-size:18px;font-weight:600;color:var(--navy);line-height:1.9}
.problem-conclusion p{margin-bottom:8px}
.problem-conclusion p:last-child{margin-bottom:0}

.problem-urgent{border-left:3px solid var(--orange);background:var(--orange-light)}

/* ==================================
   SOLUTION SECTION
   ================================== */
.section-solution{background:var(--bg)}
.solution-infographic{padding:32px 16px}
.infographic-chart{background:#fff;border-radius:var(--radius-md);padding:28px 20px;text-align:center;box-shadow:var(--shadow-sm)}
.chart-title{font-size:16px;font-weight:700;color:var(--navy);margin-bottom:20px}
.bar-chart{display:flex;align-items:flex-end;justify-content:center;gap:24px;height:160px;margin-bottom:16px}
.bar-group{display:flex;flex-direction:column;align-items:center;height:100%;justify-content:flex-end}
.bar{width:60px;border-radius:8px 8px 0 0;display:flex;align-items:flex-start;justify-content:center;padding-top:8px;transition:height 1s ease}
.bar-before{background:#D0D4DB;color:#fff}
.bar-after{background:var(--orange);color:#fff}
.bar-val{font-family:var(--font-num);font-size:28px;font-weight:800}
.bar-label{font-size:14px;color:var(--text-sub);margin-top:10px;font-weight:600}
.bar-arrow{display:flex;align-items:center;font-size:24px;color:var(--orange);padding-bottom:40px}
.chart-badge{display:inline-block;background:var(--orange);color:#fff;padding:8px 24px;border-radius:100px;font-size:18px;font-weight:800}
.chart-badge strong{font-family:var(--font-num);font-size:26px}
.solution-message{text-align:center;padding:0 24px 40px;font-size:17px;line-height:1.9;color:var(--text)}
.solution-message p{margin-bottom:16px}

/* ==================================
   CHAT UI DIALOGUE SECTION
   ================================== */
.section-chat{background:var(--bg);padding-bottom:32px}
.chat-header{background:var(--green-line);color:#fff;display:flex;align-items:center;gap:10px;padding:16px 20px;font-size:17px;font-weight:700}
.chat-header-icon{font-size:24px;color:#fff}
.chat-container{padding:20px 14px}

.chat-row{display:flex;gap:10px;margin-bottom:16px;align-items:flex-start}
.chat-row-left{flex-direction:row}
.chat-row-right{flex-direction:row-reverse}
.chat-avatar{width:46px;height:46px;border-radius:var(--radius-full);overflow:hidden;flex-shrink:0;box-shadow:var(--shadow-sm);border:2px solid #fff}
.chat-avatar img{width:100%;height:100%;object-fit:cover}

.chat-msg{max-width:80%;padding:14px 18px;font-size:16px;line-height:1.8}
.chat-msg p{margin-bottom:8px}
.chat-msg p:last-child{margin-bottom:0}
.chat-name{font-size:12px;font-weight:700;margin-bottom:5px;opacity:.6}
.chat-msg-white{background:#fff;color:var(--text);border-radius:0 var(--radius-md) var(--radius-md) var(--radius-md);box-shadow:var(--shadow-sm)}
.chat-msg-blue{background:#DCF8C6;color:var(--text);border-radius:var(--radius-md) 0 var(--radius-md) var(--radius-md);box-shadow:var(--shadow-sm)}
.chat-msg-blue strong{color:var(--navy)}
.chat-msg-blue .text-yellow{color:var(--orange)}

/* Chat Inline */
.chat-inline-banner{border-radius:var(--radius-md);overflow:hidden;margin:8px 0 16px;box-shadow:var(--shadow-sm)}
.chat-inline-banner img{width:100%;height:180px;object-fit:cover}
.chat-inline-text-blue{background:var(--orange-light);color:var(--navy);padding:14px 16px;font-size:15px;font-weight:700;text-align:center;line-height:1.7}
.chat-inline-banner-red{background:var(--orange-light);color:var(--navy);padding:16px;text-align:center;border-radius:var(--radius-md);margin:20px 0 16px;border:1px solid rgba(245,129,31,.15)}
.banner-red-title{font-size:18px;font-weight:800}
.banner-red-title i{margin-right:6px;color:var(--orange)}

/* Chat Tables */
.chat-inline-table,.chat-inline-compare{margin:8px 0 16px;background:#fff;border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm);border:1px solid var(--border)}
.compare-title{background:var(--bg);color:var(--navy);padding:12px 16px;font-size:16px;font-weight:700;border-bottom:1px solid var(--border)}
.compare-title i{margin-right:6px;color:var(--orange)}
.pillar-table,.compare-table{width:100%;border-collapse:collapse;font-size:14px}
.pillar-table th,.compare-table th{background:var(--bg);color:var(--navy);padding:12px 10px;font-size:14px;font-weight:700;text-align:center;border-bottom:2px solid var(--border)}
.pillar-table td,.compare-table td{padding:12px 10px;font-size:14px;text-align:center;border-bottom:1px solid #EEE;vertical-align:middle}
.compare-label{font-weight:700;color:var(--navy);text-align:left !important;background:var(--bg)}
.compare-hl{background:var(--orange-light) !important;color:var(--orange);font-weight:800}
thead .compare-hl{background:var(--orange) !important;color:#fff !important}
.pillar-badge{display:inline-block;width:22px;height:22px;line-height:22px;border-radius:var(--radius-full);color:#fff;font-size:11px;font-weight:800;text-align:center;margin-right:4px;font-family:var(--font-num);background:var(--navy)}
.pillar-1{background:var(--navy)}
.pillar-2{background:var(--text-sub)}
.pillar-3{background:var(--orange)}
.pillar-4{background:var(--green-line)}

/* Chat Results */
.chat-inline-results{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 0 16px}
.result-mini-card{background:#fff;border-radius:var(--radius-md);padding:12px;text-align:center;box-shadow:var(--shadow-sm);border:1px solid var(--border)}
.result-mini-head{font-size:13px;font-weight:700;color:var(--navy);background:var(--bg);border-radius:100px;display:inline-block;padding:2px 10px;margin-bottom:6px}
.result-mini-body{font-size:14px;color:var(--text);margin-bottom:8px}
.result-mini-body .before{color:var(--text-light);text-decoration:line-through}
.result-mini-body .after{font-family:var(--font-num);font-size:24px;font-weight:900;color:var(--orange)}
.result-mini-badge{display:inline-block;background:var(--orange);color:#fff;padding:4px 12px;border-radius:100px;font-size:13px;font-weight:800;font-family:var(--font-num)}
.result-pass{background:var(--navy)}

/* Chat Timetable */
.chat-inline-timetable{margin:8px 0 16px;background:#fff;border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm);border:1px solid var(--border)}
.timetable-header{background:var(--bg);color:var(--navy);padding:10px 14px;font-size:13px;font-weight:700;display:flex;align-items:center;gap:6px;border-bottom:1px solid var(--border)}
.timetable-header i{font-size:16px;color:var(--orange)}
.timetable-grid{display:grid;grid-template-columns:80px 1fr;font-size:12px}
.timetable-cell{padding:8px 10px;border-bottom:1px solid #F0F0F0;display:flex;align-items:center}
.timetable-label{background:var(--bg);font-weight:700;color:var(--navy);justify-content:center}
.timetable-value{padding-left:12px}

/* Chat Compass */
.chat-inline-compass{margin:8px 0 16px;background:var(--orange-light);border-radius:var(--radius-md);padding:20px;text-align:center;color:var(--navy);border:1px solid rgba(245,129,31,.15)}
.compass-icon{font-size:36px;color:var(--orange);margin-bottom:8px}
.compass-title{font-size:20px;font-weight:800;margin-bottom:10px}
.compass-text{font-size:15px;color:var(--text-sub);line-height:1.8}

/* Chat Instructor Info */
.chat-inline-instructor-info{margin:8px 0 16px;background:#fff;border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm);border:1px solid var(--border)}
.instructor-info-header{background:var(--bg);color:var(--navy);padding:10px 14px;font-size:13px;font-weight:700;display:flex;align-items:center;gap:6px;border-bottom:1px solid var(--border)}
.instructor-info-header i{color:var(--orange)}
.instructor-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:12px}
.instructor-info-item{text-align:center;padding:10px 6px;background:var(--bg);border-radius:var(--radius-sm)}
.instructor-info-item i{font-size:22px;color:var(--text-sub);margin-bottom:4px}
.instructor-info-item p{font-size:11px;font-weight:700;color:var(--navy);line-height:1.4}
.instructor-info-item .info-val{font-family:var(--font-num);font-size:20px;font-weight:900;color:var(--orange);display:block}

/* ==================================
   METHOD SECTION
   ================================== */
.section-method{background:#fff;padding-bottom:40px}
.step-tabs{display:flex;gap:4px;padding:0 16px;margin-bottom:0}
.step-tab{flex:1;text-align:center;padding:14px 8px;font-size:15px;font-weight:800;color:var(--text-light);background:var(--bg);border-radius:var(--radius-md) var(--radius-md) 0 0;cursor:pointer;transition:all .3s;font-family:var(--font-num);border:1px solid var(--border);border-bottom:none}
.step-tab.active{background:#fff;color:var(--orange);border-color:var(--border);border-bottom:2px solid var(--orange)}
.step-content{display:none;padding:24px 16px;background:var(--bg);border-radius:0 0 var(--radius-md) var(--radius-md);margin:0 16px}
.step-content.active{display:block}
.step-title{font-size:20px;font-weight:800;color:var(--navy);margin-bottom:20px}
.step-num{display:inline-block;background:var(--orange);color:#fff;padding:2px 12px;border-radius:100px;font-size:12px;font-family:var(--font-num);font-weight:800;margin-right:8px}
.step-photo{border-radius:var(--radius-md);overflow:hidden;margin-bottom:16px}
.step-photo img{width:100%;height:160px;object-fit:cover}

/* Schedule Grid */
.schedule-grid{background:#fff;border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm);border:1px solid var(--border)}
.schedule-header{background:var(--bg);color:var(--navy);padding:12px 16px;font-size:16px;font-weight:700;border-bottom:1px solid var(--border)}
.schedule-row{display:flex;border-bottom:1px solid #EEE}
.schedule-time{width:90px;display:flex;align-items:center;justify-content:center;background:var(--bg);font-size:13px;font-weight:700;color:var(--navy);padding:14px 8px}
.schedule-item{flex:1;display:flex;align-items:center;gap:10px;padding:12px 14px}
.schedule-item i{font-size:20px;flex-shrink:0}
.schedule-child i{color:var(--navy)}
.schedule-parent i{color:var(--orange)}
.schedule-item strong{font-size:15px;display:block;margin-bottom:3px}
.schedule-item p{font-size:13px;color:var(--text-sub)}

/* Curriculum Map */
.curriculum-map{margin-top:16px;background:#fff;border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm);border:1px solid var(--border)}
.curriculum-map-header{background:var(--bg);color:var(--navy);padding:10px 14px;font-size:13px;font-weight:700;display:flex;align-items:center;gap:6px;border-bottom:1px solid var(--border)}
.curriculum-map-header i{color:var(--orange)}
.curriculum-map-body{padding:12px}
.curriculum-item{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid #F0F0F0}
.curriculum-item:last-child{border-bottom:none}
.curriculum-week{width:48px;height:48px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-family:var(--font-num);font-size:12px;font-weight:800;color:#fff;flex-shrink:0}
.curriculum-week-1{background:var(--navy)}
.curriculum-week-2{background:var(--text-sub)}
.curriculum-week-3{background:var(--orange)}
.curriculum-week-4{background:var(--text-light)}
.curriculum-text{font-size:13px;line-height:1.5}
.curriculum-text strong{display:block;color:var(--navy);font-size:13px}
.curriculum-text span{color:var(--text-sub);font-size:12px}

/* Daily Report */
.report-mockup{background:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow:hidden;margin-bottom:16px;border:1px solid var(--border)}
.report-header-bar{background:var(--bg);color:var(--navy);padding:12px 16px;font-size:16px;font-weight:700;border-bottom:1px solid var(--border)}
.report-header-bar i{margin-right:6px;color:var(--orange)}
.report-body{padding:14px}
.report-line{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid #F0F0F0;font-size:15px}
.report-label{font-weight:700;color:var(--navy)}
.report-val{color:var(--text)}
.report-star{color:var(--orange)}
.report-star-off{color:#DDD}
.report-feedback{margin-top:12px;background:var(--bg);padding:12px;border-radius:var(--radius-sm)}
.report-fb-label{font-size:12px;font-weight:700;color:var(--navy);margin-bottom:6px}
.report-fb-label i{margin-right:4px;color:var(--orange)}
.report-fb-text{font-size:15px;line-height:1.8;color:var(--text)}
.report-effects{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.report-effect{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--navy)}
.report-effect i{color:var(--orange);font-size:16px}

/* Support */
.support-banner{display:flex;align-items:center;gap:14px;background:var(--bg);color:var(--navy);padding:16px;border-radius:var(--radius-md);margin-bottom:16px;border:1px solid var(--border)}
.support-icon{font-size:32px;color:var(--orange)}
.support-title{font-size:18px;font-weight:800;margin-bottom:6px}
.support-desc{font-size:15px;color:var(--text-sub);line-height:1.7}
.support-features{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.support-feature{text-align:center;background:#fff;padding:16px 8px;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);border:1px solid var(--border)}
.support-feature-icon{width:48px;height:48px;margin:0 auto 8px;background:var(--bg);border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-size:22px;color:var(--navy)}
.support-feature p{font-size:13px;font-weight:700;color:var(--navy);line-height:1.5}

/* ==================================
   ABOUT SECTION
   ================================== */
.section-about{background:#fff;padding-bottom:40px}
.about-content{padding:0 20px}

.about-headline{text-align:center;padding:8px 0 20px}
.about-headline-main{font-size:28px;font-weight:900;color:var(--navy);line-height:1.5}
.about-headline-main em{color:var(--orange);font-style:normal;font-size:32px}

.about-description{background:var(--bg);border-radius:var(--radius-md);padding:24px 22px;margin-bottom:16px;border:1px solid var(--border);font-size:16px;line-height:2.0;color:var(--text)}
.about-description strong{color:var(--navy)}

.about-extra{background:var(--orange-light);border-radius:var(--radius-md);padding:18px 20px;font-size:16px;line-height:1.8;color:var(--navy);border:1px solid rgba(245,129,31,.15)}
.about-extra i{color:var(--orange);margin-right:6px}

/* LINE Consult Card */
.chat-inline-line-consult{margin:8px 0 16px;background:#fff;border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm);border:1px solid var(--border)}
.line-consult-header{background:#E8F5E9;color:#2E7D32;padding:10px 14px;font-size:13px;font-weight:700;display:flex;align-items:center;gap:6px;border-bottom:1px solid var(--border)}
.line-consult-header i{font-size:18px;color:var(--green-line)}
.line-consult-list{padding:8px 14px}
.line-consult-item{display:flex;align-items:flex-start;gap:10px;padding:10px 0;border-bottom:1px solid #F0F0F0}
.line-consult-item:last-child{border-bottom:none}
.line-consult-num{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:var(--radius-full);background:var(--green-line);color:#fff;font-size:12px;font-weight:800;flex-shrink:0;font-family:var(--font-num)}
.line-consult-item strong{font-size:16px;color:var(--navy);display:block;margin-bottom:3px}
.line-consult-item p{font-size:14px;color:var(--text-sub);line-height:1.6}

/* LINE Consult Banner in STEP */
.line-consult-banner{background:#E8F5E9 !important;border:1px solid #C8E6C9 !important}
.line-consult-banner .support-icon{color:var(--green-line)}

/* Extended results grid */
.results-extended{grid-template-columns:1fr 1fr}

/* ==================================
   TEACHER SECTION
   ================================== */
.section-teachers{background:var(--bg);padding-bottom:32px}
.teachers-subtitle{text-align:center;font-size:15px;color:var(--text-sub);padding:0 20px 24px;line-height:1.8}
.teacher-featured{display:flex;gap:14px;background:#fff;margin:0 16px 16px;padding:16px;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);border-left:4px solid var(--orange)}
.teacher-featured-photo{width:100px;flex-shrink:0;position:relative}
.teacher-featured-photo img{width:100px;height:120px;object-fit:cover;border-radius:var(--radius-sm)}
.teacher-badge-label{position:absolute;top:-6px;left:-6px;background:var(--orange);color:#fff;font-size:10px;font-weight:800;padding:2px 8px;border-radius:var(--radius-sm)}
.teacher-featured-info h3{font-size:20px;font-weight:800;color:var(--navy);margin-bottom:4px}
.teacher-role-text{font-size:14px;color:var(--orange);font-weight:700;margin-bottom:8px}
.teacher-bio{font-size:15px;line-height:1.8;color:var(--text-sub);margin-bottom:10px}
.teacher-feat-tags{display:flex;flex-wrap:wrap;gap:4px}
.teacher-feat-tags span{background:var(--bg);color:var(--navy);font-size:10px;font-weight:700;padding:2px 8px;border-radius:100px}
.teacher-grid-new{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 16px 16px}
.teacher-card-new{background:#fff;border-radius:var(--radius-md);padding:16px 12px;text-align:center;box-shadow:var(--shadow-sm)}
.teacher-avatar-new{width:64px;height:64px;margin:0 auto 10px;border-radius:var(--radius-full);overflow:hidden;box-shadow:var(--shadow-sm);border:3px solid var(--border)}
.teacher-avatar-new img{width:100%;height:100%;object-fit:cover}
.teacher-card-new h4{font-size:17px;font-weight:700;color:var(--navy);margin-bottom:3px}
.teacher-role-sm-new{font-size:13px;color:var(--orange);font-weight:700;margin-bottom:6px}
.teacher-desc-sm-new{font-size:14px;color:var(--text-sub);line-height:1.7}
.teacher-banner-red{background:var(--orange-light);color:var(--navy);text-align:center;padding:18px 20px;font-size:17px;font-weight:700;margin:0 16px;border-radius:var(--radius-md);border:1px solid rgba(245,129,31,.15)}
.teacher-group-photo{margin:0 16px 16px;border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-md)}
.teacher-group-photo img{width:100%;height:auto}

/* ==================================
   SUPPORT SECTION
   ================================== */
.section-support{background:#fff;padding-bottom:32px}
.support-section-content{padding:0 16px}
.daily-report-section{margin-bottom:20px}
.support-24h-banner{background:var(--bg);color:var(--navy);border-radius:var(--radius-md);padding:20px;display:flex;align-items:center;gap:14px;margin-bottom:16px;border:1px solid var(--border)}
.support-24h-icon{font-size:36px;color:var(--orange)}
.support-24h-text h4{font-size:18px;font-weight:800;margin-bottom:6px}
.support-24h-text p{font-size:15px;color:var(--text-sub);line-height:1.7}

/* ==================================
   FLOW SECTION
   ================================== */
.section-flow{background:var(--bg);padding-bottom:40px}
.flow-timeline{padding:0 16px;display:flex;flex-direction:column;align-items:center}
.flow-item{text-align:center;width:100%;padding:16px;background:#fff;border-radius:var(--radius-md);margin-bottom:0;box-shadow:var(--shadow-sm)}
.flow-num{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-full);background:var(--orange);color:#fff;font-family:var(--font-num);font-size:16px;font-weight:800;margin-bottom:10px}
.flow-icon-circle{width:56px;height:56px;margin:0 auto 10px;display:flex;align-items:center;justify-content:center;background:var(--bg);color:var(--navy);border-radius:var(--radius-full);font-size:24px;border:2px solid var(--border)}
.flow-item h4{font-size:18px;font-weight:800;color:var(--navy);margin-bottom:6px}
.flow-item p{font-size:15px;color:var(--text-sub)}
.flow-line{width:2px;height:20px;background:var(--border)}

/* ==================================
   FAQ SECTION
   ================================== */
.section-faq{background:#fff;padding-bottom:40px}
.faq-list{padding:0 16px}
.faq-item{background:var(--bg);border-radius:var(--radius-md);margin-bottom:8px;overflow:hidden;border:1px solid var(--border)}
.faq-q{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px;background:none;border:none;cursor:pointer;font-family:var(--font);font-size:16px;font-weight:700;color:var(--navy);text-align:left}
.faq-arrow{font-size:14px;color:var(--orange);transition:transform .3s;flex-shrink:0}
.faq-item.active .faq-arrow{transform:rotate(180deg)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .4s}
.faq-a p{padding:0 18px 18px;font-size:16px;color:var(--text-sub);line-height:1.9}

/* ==================================
   FINAL CTA  — light, not dark
   ================================== */
.section-final-cta{background:var(--bg);padding:48px 20px;text-align:center;border-top:1px solid var(--border)}
.final-cta-title{font-size:28px;font-weight:900;color:var(--navy);line-height:1.45;margin-bottom:20px}
.final-cta-subtitle{font-size:16px;color:var(--text-sub);margin-bottom:24px;line-height:1.8}
.final-cta-badges{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin-bottom:24px}
.final-badge{display:inline-flex;align-items:center;gap:5px;background:#fff;color:var(--navy);padding:8px 14px;border-radius:100px;font-size:14px;font-weight:700;border:1px solid var(--border)}
.final-badge i{color:var(--orange)}
.btn-cta-white{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:20px 24px;border-radius:var(--radius-md);font-weight:800;font-size:18px;line-height:1.5;border:none;cursor:pointer;transition:all .3s;text-decoration:none;background:var(--green-line);color:#fff;box-shadow:0 4px 16px rgba(6,199,85,.3)}
.btn-cta-white:hover{background:var(--green-line-hover);transform:translateY(-2px)}
.btn-cta-white i{font-size:24px}
.cta-note-white{font-size:13px;color:var(--text-light);margin-top:8px}

/* ==================================
   FOOTER  — light
   ================================== */
.footer{background:var(--bg);color:var(--text);padding:36px 16px 28px;text-align:center;border-top:1px solid var(--border)}
.footer-logo{display:flex;align-items:center;justify-content:center;margin-bottom:20px}
.logo-img-footer{height:32px;width:auto}
.footer-cta-btn{display:flex;align-items:center;justify-content:center;gap:10px;background:var(--green-line);color:#fff;padding:16px 20px;border-radius:var(--radius-md);font-size:17px;font-weight:700;line-height:1.5;box-shadow:0 4px 12px rgba(6,199,85,.25);margin-bottom:8px;width:100%;transition:background .3s}
.footer-cta-btn:hover{background:var(--green-line-hover)}
.footer-cta-btn i{font-size:22px}
.footer-note{font-size:11px;color:var(--text-light);margin-bottom:16px}
.footer-copy{font-size:11px;color:var(--text-light)}

/* ==================================
   FLOATING CTA
   ================================== */
.floating-cta{position:fixed;bottom:0;left:0;right:0;z-index:999;max-width:var(--max-w);margin:0 auto;background:rgba(255,255,255,.97);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:8px 12px;box-shadow:0 -2px 12px rgba(0,0,0,.06);transform:translateY(100%);transition:transform .3s}
.floating-cta.visible{transform:translateY(0)}
.floating-cta-btn{display:flex;align-items:center;justify-content:center;gap:8px;background:var(--green-line);color:#fff;padding:14px;border-radius:var(--radius-md);font-size:16px;font-weight:700;box-shadow:0 2px 8px rgba(6,199,85,.25);width:100%;transition:background .3s}
.floating-cta-btn:hover{background:var(--green-line-hover)}
.floating-cta-btn i{font-size:20px}

/* ==================================
   ANIMATIONS — 必要最小限のみ
   ================================== */
/* CTA ボタン: 控えめな光の脈動で視線誘導 */
@keyframes cta-glow{0%,100%{box-shadow:0 4px 16px rgba(6,199,85,.25)}50%{box-shadow:0 4px 24px rgba(6,199,85,.45)}}
.btn-cta,.btn-cta-white{animation:cta-glow 2.5s ease-in-out infinite}
.btn-cta:hover,.btn-cta-white:hover{animation:none}
/* 棒グラフの高さ変化は CSS transition で維持（.bar に定義済み） */

/* Responsive */
@media screen and (min-width:481px){body{box-shadow:var(--shadow-lg)}}
@media print{.header,.floating-cta,.btn-cta,.footer-cta-btn{display:none !important}}
