@charset "UTF-8";
/* CSS Document */

	  
	.pg_ttl{display: none;}	
	.breadcrumbs{display: none;}
	.sns-tit-chi{display: none;}
	.sns_icon{display: none;}
	.oc_field{display: none;}
	.bnr{display: none;}
	.main-float{display: none;}
	footer{display: none;}
	#fixed_top{
  display:none !important;
}  
	  
html{
  scroll-behavior:smooth;
}
  
  section{
    scroll-margin-top:70px;
  }  
  	  
    /* =========================
       背景エリア
    ========================= */
    /* 背景全体 */
  
  .jp-bg-loop{
  
    position:fixed;
  
    inset:0;
  
    overflow:hidden;
  
    pointer-events:none;
  
    z-index:-1;
  
    opacity:.08;
  }
  
  
  /* 横スクロール行 */
  
  .jp-row{
  
    position:absolute;
  
    display:flex;
  
    gap:80px;
  
    white-space:nowrap;
  
    font-weight:700;
  
    color:#7d9800;
  
    width:max-content;
  }
  
  
  /* 1行目 */
  
  .row1{
  
    top:15%;
  
    font-size:64px;
  
    animation:
    moveLeft 35s linear infinite;
  }
  
  
  /* 2行目 */
  
  .row2{
  
    top:45%;
  
    font-size:90px;
  
    animation:
    moveRight 45s linear infinite;
  }
  
  
  /* 3行目 */
  
  .row3{
  
    top:75%;
  
    font-size:72px;
  
    animation:
    moveLeft 40s linear infinite;
  }
  
  
  /* 左流れ */
  
  @keyframes moveLeft{
  
    from{
      transform:translateX(0);
    }
  
    to{
      transform:translateX(-50%);
    }
  
  }
  
  
  /* 右流れ */
  
  @keyframes moveRight{
  
    from{
      transform:translateX(-50%);
    }
  
    to{
      transform:translateX(0);
    }
  
  }
  	/*学生スライド*/  
    .bg-students{
        display:none;
    }
    
    .lp-container{
        width:100%;
        background:#fff;
        position:relative;
        z-index:1;
    }
    
    /* =========================
       PC
    ========================= */
    
    @media screen and (min-width:1024px){
    
        body{
            background:#fff;
            overflow-x:hidden;
        }
    
        .lp-container{
            width:480px;
            margin:auto;
            background:#fff;
            min-height:100vh;
    	　　/*margin-top: -30px;*/
            box-shadow:
            0 0 30px rgba(0,0,0,.08);
        }
    
        .bg-students{
            display:block;
    
            position:fixed;
            inset:0;
    
            overflow:hidden;
    
            z-index:1;
    
            pointer-events:none;
        }
    
        /* 左レーン */
    
        .track-left{
            position:absolute;
    
            top:0;
            left:0;
    
            width:300px;
    
            display:flex;
            flex-direction:column;
            gap:30px;
    
            animation:
            scrollDown 80s linear infinite;
        }
    
        /* 右レーン */
    
        .track-right{
            position:absolute;
    
            top:-1000px;
            right:0;
    
            width:300px;
    
            display:flex;
            flex-direction:column;
            gap:30px;
    
            animation:
            scrollUp 90s linear infinite;
        }
    
        .student-track img{
    
            width:240px;
            margin:auto;
    
            aspect-ratio:1/1;
    
            object-fit:cover;
    
            border-radius:28px;
    
            filter:
            grayscale(10%)
            saturate(70%)
            brightness(.9);
    
            opacity:.55;
    
            transform:scale(1);
    
            animation:
            floatScale 8s ease-in-out infinite;
    
            box-shadow:
            0 15px 40px rgba(0,0,0,.08);
        }
    
    }
    
    /* =========================
       アニメーション
    ========================= */
    
    @keyframes scrollDown{
    
        from{
            transform:translateY(-50%);
        }
    
        to{
            transform:translateY(0%);
        }
    
    }
    
    @keyframes scrollUp{
    
        from{
            transform:translateY(0%);
        }
    
        to{
            transform:translateY(-50%);
        }
    
    }
    
    @keyframes floatScale{
    
        0%{
            transform:
            translateY(0)
            scale(1);
        }
    
        50%{
            transform:
            translateY(-10px)
            scale(1.03);
        }
    
        100%{
            transform:
            translateY(0)
            scale(1);
        }
    
    }
    		
    /*MV*/
    .mv-grid{
      max-width:1200px;
      margin:auto;
      display:grid;
      grid-template-columns:1fr 1fr;
      grid-template-rows:1fr 1fr;
      overflow:hidden;
    }
    
    .panel{
      overflow:hidden;
    }
    
    .panel img{
      width:100%;
      height:100%;
      object-fit:cover;
    
      opacity:0;
      transform:scale(0.4) rotate(-8deg);
      animation:popIn .55s cubic-bezier(.17,.89,.32,1.35) forwards;
    }
    
    /* 時差を付ける */
    .tourism img{
      animation-delay:0s;
    }
    
    .travel img{
      animation-delay:0.12s;
    }
    
    .hotel img{
      animation-delay:0.24s;
    }
    
    .airline img{
      animation-delay:0.36s;
    }
    
    @keyframes popIn{
      0%{
        opacity:0;
        transform:scale(0.4) rotate(-8deg);
      }
    
      70%{
        opacity:1;
        transform:scale(1.08) rotate(2deg);
      }
    
      100%{
        opacity:1;
        transform:scale(1) rotate(0);
      }
    }
    		
    /* ==================================
       固定フッターCTA
    ================================== */
    
    
    /* フッター全体 */
    .fixed-footer-cta{
      position:fixed;
      left:0;
      right:0;
      bottom:0;
    
      z-index:9999;
    
      display:flex;
      gap:12px;
    
      max-width:480px;
      margin:0 auto;
    
      padding:12px;
      box-sizing:border-box;
    
      background:rgba(245,240,235,.96);
      backdrop-filter:blur(8px);
    
      padding-bottom:calc(
        12px + env(safe-area-inset-bottom)
      );
    }
    
    /* 共通 */
    .fixed-footer-cta a{
      position:relative;
      overflow:hidden;
    
      display:flex;
      align-items:center;
      justify-content:center;
    
      text-decoration:none;
      border-radius:12px;
    
      font-weight:700;
      line-height:1.3;
    
      transition:
        transform .25s ease,
        box-shadow .25s ease,
        opacity .25s ease;
    }
    
    /* ==========================
       メインCTA
    ========================== */
    
    .cta-main{
      flex:1;
    
      min-height:72px;
    
      color:#fff;
      font-size:20px;
    
      background:linear-gradient(
        90deg,
        #f1a33b 0%,
        #e37220 100%
      );
    
      box-shadow:
        0 4px 12px rgba(227,114,32,.3);
    
      animation:pulse 2s infinite;
    }
    
    /* ==========================
       LINE
    ========================== */
    
    .cta-line{
      width:110px;
      flex-shrink:0;
    
      min-height:72px;
    
      color:#fff;
      font-size:22px;
    
      background:#59c35f;
    
      box-shadow:
        0 4px 12px rgba(89,195,95,.3);
    }
    
    /* ==========================
       ホバー
    ========================== */
    
    @media (hover:hover){
    
      .fixed-footer-cta a:hover{
        transform:
          translateY(-4px)
          scale(1.02);
    
        box-shadow:
          0 10px 24px rgba(0,0,0,.18);
      }
    
    }
    
    /* ==========================
       タップ
    ========================== */
    
    .fixed-footer-cta a:active{
      transform:scale(.96);
    }
    
    /* ==========================
       光沢アニメ
    ========================== */
    
    .fixed-footer-cta a::before{
      content:"";
    
      position:absolute;
      top:0;
      left:-130%;
    
      width:60%;
      height:100%;
    
      background:linear-gradient(
        90deg,
        transparent,
        rgba(255,255,255,.35),
        transparent
      );
    
      transform:skewX(-25deg);
    }
    
    .fixed-footer-cta a:hover::before{
      animation:shine .7s ease;
    }
    
    @keyframes shine{
    
      0%{
        left:-130%;
      }
    
      100%{
        left:150%;
      }
    
    }
    
    /* ==========================
       CTA鼓動アニメ
    ========================== */
    
    @keyframes pulse{
    
      0%{
        transform:scale(1);
      }
    
      50%{
        transform:scale(1.03);
      }
    
      100%{
        transform:scale(1);
      }
    
    }
    
    /* ==========================
       スクロール出現用
    ========================== */
    
    .fixed-footer-cta.fadein{
      opacity:0;
      transform:translateY(100%);
      transition:.4s;
    }
    
    .fixed-footer-cta.fadein.show{
      opacity:1;
      transform:translateY(0);
    }
    
    /* ==========================
       PC表示
    ========================== */
    
    @media (min-width:481px){
    
      .fixed-footer-cta{
        width:480px;
        left:50%;
        right:auto;
        transform:translateX(-50%);
      }
    
    }	
    		
    		*{
    margin:0;
    padding:0;
    box-sizing:border-box;
    }
    
    body{
    font-family:
    "Hiragino Sans",
    "Yu Gothic",
    sans-serif;
    background:#f5f5f5;
    }
    
    .wrapper{
    max-width:480px;
    margin:auto;
    padding:20px 15px 0px;
    }
    
    /* ==========
    Point
    ========== */
	  .point-wrap h2{font-size: 26px;}
    .point-title{
    text-align:center;
    font-size:28px;
    font-weight:700;
    color:#b29a3f;
    margin-bottom:10px;
    line-height:1.3;
    }
    
    .point-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:15px;
    }
    
    .point-box{
    position: relative;
    overflow: hidden;
  
    background:#b29a3f;
    border-radius:36px;
    padding:15px;
    color:#fff;
    min-height:150px;
  }
  
  /* 光沢 */
  .point-box::before{
    content:"";
    position:absolute;
    top:0;
    left:-120%;
  
    width:60%;
    height:100%;
  
    background:linear-gradient(
      120deg,
      rgba(255,255,255,0) 0%,
      rgba(255,255,255,.15) 35%,
      rgba(255,255,255,.5) 50%,
      rgba(255,255,255,.15) 65%,
      rgba(255,255,255,0) 100%
    );
  
    transform:skewX(-25deg);
    animation:shine 3s infinite;
  }
  
  @keyframes shine{
    0%{
      left:-120%;
    }
    100%{
      left:160%;
    }
  }
    
    .point-num{
    font-size:24px;
    font-weight:700;
    margin-bottom:10px;
    }
    
    .point-text{
    font-size:19px;
    font-weight:700;
    line-height:1.5;
    text-align:center;
    margin-top:13px;
    }
    
    .employment{
    font-size:19px;
    font-weight:700;
    text-align:center;
    margin-top:13px;
    }
    
    .employment span{
    font-size:70px;
    line-height:1;
    }
    
    
    
    /* ==========
    Menu
    ========== */
    
    .menu-area{
    background:#c9de8a;
    border-radius:35px;
    padding:30px 18px;
    margin-top:20px;
    box-shadow:
    0 15px 30px rgba(0,0,0,.08);
    }
    
    .menu-title{
    font-size:26px;
    color:#8baa00;
    margin-bottom:25px;
    }
    
    .menu-grid{
    display:grid;
    grid-template-columns:
    repeat(3,1fr);
    gap:18px;
    }
    
    .menu-card{
    background:#fff;
    border-radius:20px;
    padding:10px 10px 5px 10px;
    min-height:130px;
    
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    
    text-decoration:none;
    color:#000;
    
    box-shadow:
    0 8px 15px rgba(0,0,0,.15);
    
    transition:.3s;
    }
    
    .menu-card i{
    font-size:55px;
    color:#a7c437;
    margin-bottom:5px;
    }
    
    .menu-card span{
    font-size:16px;
    font-weight:500;
    margin-bottom:5px;
    }
    
    .menu-card small{
    font-size:18px;
    }
    
    .menu-card:hover{
    transform:translateY(-6px);
    }
    
    /* ==========
    スクロール出現
    ========== */
    
    .fadeup{
    opacity:0;
    transform:translateY(80px);
    transition:
    opacity .8s ease,
    transform .8s ease;
    }
    
    .fadeup.show{
    opacity:1;
    transform:translateY(0);
    }
    
    .menu-card{
    opacity:0;
    transform:translateY(30px);
    }
    
    .fadeup.show .menu-card{
    opacity:1;
    transform:translateY(0);
    transition:.6s;
    }
    
    .fadeup.show .menu-card:nth-child(1){transition-delay:.05s;}
    .fadeup.show .menu-card:nth-child(2){transition-delay:.1s;}
    .fadeup.show .menu-card:nth-child(3){transition-delay:.15s;}
    .fadeup.show .menu-card:nth-child(4){transition-delay:.2s;}
    .fadeup.show .menu-card:nth-child(5){transition-delay:.25s;}
    .fadeup.show .menu-card:nth-child(6){transition-delay:.3s;}
    .fadeup.show .menu-card:nth-child(7){transition-delay:.35s;}
    .fadeup.show .menu-card:nth-child(8){transition-delay:.4s;}
    .fadeup.show .menu-card:nth-child(9){transition-delay:.45s;}
    
    /*学科・コース*/		
    .course-section{
      max-width:480px;
    	margin-top:50px;
      padding:0px;
    }
    
    .course-title{
      font-size:36px;
      color:#7d9700;
      font-weight:600;
    }
    
    .course-title i{
      margin-right:10px;
    }
    .course-title_w{
      font-size:36px;
      color:#fff;
      font-weight:600;
    }
    
    .course-title_w i{
      margin-right:10px;
    } 
    
    .course-subtitle{
      font-size:18px;
      color:#666;
      margin:15px 0 30px;
    }
  .course-subtitle_w{
      font-size:18px;
      color:#fff;
      margin:15px 0 30px;
    }	  
    
    /* ====================
      ボックス本体
    ==================== */
    
    .course-box{
    
      --box-bg:#f3e0c5;
      --head-bg:#ff9f00;
      --accent:#22b4ff;
    
      background:var(--box-bg);
    
      
      border-radius:30px;
    
      overflow:hidden;
    
      margin-bottom:35px;
    
      box-shadow:
      0 10px 25px rgba(0,0,0,.08);
    }
    
    .course-content{
      padding:20px;
    }
    
    .course-head{
      background:var(--head-bg);
      color:#fff;
      font-weight:bold;
      font-size:22px;
    
      margin:20px;
      margin-bottom:0;
    
      padding:14px 20px;
    }
    
    .course-major{
      font-size:18px;
      line-height:1.9;
      font-weight:600;
    
      margin:20px 0;
    }
    
    .course-line{
      width:60px;
      height:5px;
    
      background:var(--accent);
    
      margin-bottom:40px;
    }
    
    .course-content h3{
      font-size:22px;
      margin-bottom:20px;
    }
    
    .course-slider img{
      width:100%;
      display:block;
      border-radius:8px;
    }
    
    .job-name{
      font-size:16px;
      margin-top:10px;
      margin-bottom:10px;
    }
    
    /* ------------------
       SWIPER
    ------------------ */
    
    .course-swiper{
      margin-bottom:30px;
    }
    
    .course-swiper img{
    
      width:100%;
    
      display:block;
    
      border-radius:8px;
    }
    
    .job-name{
    
      margin-top:10px;
    
      font-size:16px;
    }
    
    .course-swiper .swiper-pagination{
      position:relative;
      margin-top:0px;
    }
    
    .course-swiper .swiper-pagination-bullet{
    
      width:14px;
      height:14px;
    
      opacity:1;
    
      background:#fff;
    }
    
    .course-swiper
    .swiper-pagination-bullet-active{
    
      background:var(--accent);
    }
    
    /* ------------------
       POINT
    ------------------ */
    
    .point-list{
      list-style:none;
    }
    
    .point-list li{
    
      position:relative;
    
      padding-left:28px;
    
      margin-bottom:12px;
    
      line-height:1.8;
    
      font-size:18px;
    }
    
    .point-list li::before{
    
      content:"●";
    
      position:absolute;
    
      left:0;
    
      top:0;
    }
    
    /* ------------------
       BUTTON
    ------------------ */
    
    .detail-btn{
    
      display:block;
    
      width:300px;
    
      max-width:100%;
    
      margin:40px auto 10px;
    
      text-align:center;
    
      text-decoration:none;
    
      color:var(--accent);
    
      border:2px solid var(--accent);
    
      border-radius:999px;
    
      padding:18px;
    
      font-size:20px;
    
      font-weight:bold;
    
      transition:.3s;
    }
    
    .detail-btn:hover{
    
      background:var(--accent);
    
      color:#fff;
    }
    
    /* ------------------
       FADEUP
    ------------------ */
    
    .fadeup{
    
      opacity:0;
    
      transform:translateY(80px);
    
      transition:.8s;
    }
    
    .fadeup.show{
    
      opacity:1;
    
      transform:none;
    }
    		
    /*STEP*/		
    .step-section{
      max-width:480px;
      margin:auto;
      padding-top:20px;
    }
    
    .step-main-title{
      font-size:40px;
      color:#7d9800;
      font-weight:600;
  	
    }
    
    .step-subtitle{
      font-size:18px;
      color:#666;
      margin:15px 0 30px;
    }
    
    /* ====================
    STEP CARD
    ==================== */
    
    .step-card{
    
      --step-color:#cf82a7;
    
    }
    
    .step-head{
    
      background:var(--step-color);
    
      color:#fff;
    
      font-size:30px;
      font-weight:600;
    
      padding:10px 20px;
    
      position:relative;
    
      margin-bottom:15px;
    }
    
    /* 矢印 */
    
    .step-head::after{
    
      content:"";
    
      position:absolute;
    
      top:0;
      right:-30px;
    
      width:0;
      height:0;
    
      border-top:39px solid transparent;
      border-bottom:39px solid transparent;
      border-left:30px solid var(--step-color);
    }
    
    .step-image{
    
      /*border:2px solid var(--step-color);
    
      border-radius:20px;*/
    
      overflow:hidden;
    }
    
    .step-image img{
    
      width:100%;
    
      display:block;
    }
    
    /* ====================
    Swiper
    ==================== */
    
    .step-swiper{
    
      padding-bottom:50px;
    }
    
    .step-swiper .swiper-pagination{
    
      bottom:0 !important;
    }
    
    .step-swiper .swiper-pagination-bullet{
    
      width:16px;
      height:16px;
    
      opacity:1;
    
      background:#888;
    }
    
    .step-swiper .swiper-pagination-bullet-active{
    
      background:#444;
    }
  	  
  /*ロードマップ*/
    /* 全体幅100% */
    .roadmap-wrap {
      width: 100%;
      /*padding: 40px 16px;*/
      box-sizing: border-box;
      margin-top: 30px;
    }
    
    /* 中央固定カラム（スマホでも崩さない） */
    .roadmap {
      max-width: 480px;
      margin: 0 auto;
      position: relative;
    }
    
    /* タイトル */
    .roadmap h1 {
      text-align: center;
      font-size: 26px;
      font-weight: 700;
      margin-bottom: 32px;
    }
    
    .roadmap h1::after {
      content: "";
      display: block;
      width: 80px;
      height: 4px;
      background: #ff6f3d;
      margin: 12px auto 0;
    }
    
    /* 縦ライン */
    .roadmap::before {
      content: "";
      position: absolute;
      left: 8px;
      top: 20px;                /* 01の黒丸中心 */
      bottom: 75px;              /* ← 08の黒丸中心で止める */
      width: 4px;
      background: #c9de8a;
    
      transform-origin: top;    /* 上から伸びる */
      transform: scaleY(0);     /* 最初は見えない */
      animation: lineGrow 1.2s ease-out forwards;
    }
    
    /* ステップ */
    .step {
      position: relative;
      padding-left: 37px;
      margin-bottom: 40px;
    }
    
    /* 黒丸 */
    .step::before {
      content: "";
      position: absolute;
      left: 2px;
      top: 6px;
      width: 16px;
      height: 16px;
      background: #c9de8a;
      border-radius: 50%;
      opacity: 0;
      transform: scale(0.5);
      animation: dotAppear 0.4s ease-out forwards;
    }
    
    .step-title {
      display: flex;
      align-items: flex-start; /* ← 改行しても上揃え */
      gap: 10px;
      margin-bottom: 12px;
    }
    
    /* 番号 */
    .step-num {
      min-width: 36px;         /* ← 桁ズレ防止 */
      font-size: 24px;
      font-weight: bold;
      color: #7d9800;
      line-height: 1.4;
    }
    
    /* テキスト */
    .step-text {
      font-size: 18px;
      font-weight: 700;
      color: #7d9800;
      line-height: 1.4;
      padding-top: 7px;	
    }
    
    /* 説明ボックス */
    .box {
      background: #e1e8c5;
      padding: 15px;
      border-radius: 6px;
      font-size: 14px;
      line-height: 1.7;
      margin-bottom: 5px;	
    }
    
    /* 画像完全寄せボタン */
    .btn-oc {
      display: inline-flex;
      align-items: center;
      justify-content: space-between;
      gap: 10px;
      margin-top: 14px;
      padding: 10px 18px;
      min-width: 260px;
      border: 2px solid #7d9800;
      border-radius: 999px;
      color: #7d9800;
      text-decoration: none;
      font-size: 13px;
      font-weight: 700;
      box-sizing: border-box;
      background-color: #fff;	
    }
    
    /* 右矢印丸 */
    .btn-oc span {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 15px;
      height: 15px;
      background: #7d9800;
      color: #fff;
      border-radius: 50%;
      font-size: 11px;
      line-height: 1;
      padding-left: 3px; padding-bottom: 2px	
    }
  	  
  .step_line a{ color:#666; }	  
  	  .step_line a:hover{text-decoration: none;}	  
    	
    /* 縦線アニメーション */
    @keyframes lineGrow {
      to {
        transform: scaleY(1);
      }
    }
    @keyframes dotAppear {
      to {
        opacity: 1;
        transform: scale(1);
      }
    }	
    .step:nth-of-type(1)::before { animation-delay: 0.4s; }
    .step:nth-of-type(2)::before { animation-delay: 0.7s; }
    .step:nth-of-type(3)::before { animation-delay: 1.0s; }
    .step:nth-of-type(4)::before { animation-delay: 1.3s; }
    .step:nth-of-type(5)::before { animation-delay: 1.6s; }
    .step:nth-of-type(6)::before { animation-delay: 1.9s; }
    .step:nth-of-type(7)::before { animation-delay: 2.2s; }
    .step:nth-of-type(8)::before { animation-delay: 2.5s; }	
    	
    /*FAQ*/
    .faq-wrapper {
      max-width: 720px;
      margin: 0 auto;
      padding: 30px 15px 50px;
  	background-color: #c9de8a;  
    }
    
    /* ===== タイトル ===== */
    .faq-title {
      color: #fff;
      text-align: center;
      font-size: 32px;
      margin-bottom: 32px;
      position: relative;
    }
    
    .faq-title::after {
      content: "";
      display: block;
      width: 124px;
      height: 3px;
      background: #fff;
      margin: 12px auto 0;
    }
    
    /* ===== FAQカード ===== */
    .faq-item {
      background: #fff;
      border-radius: 20px;
      margin-bottom: 20px;
      overflow: hidden;
    }
    
    /* ===== 質問 ===== */
    .faq-question {
      display: flex;
      align-items: left;
      width: 100%;
      border: none;
      background: none;
      padding: 20px;
      cursor: pointer;
    }
    
    .faq-q {
      font-size: 28px;
      font-weight: 800;
      color: #7d9800;
      margin-right: 12px;
      
    }
    
    .faq-question-text {
      font-size: 17px;
      font-weight: 700;
      flex: 1;
      text-align: left;	
      padding-top: 5px;	
  	  color: #333;
    }
    
    /* ===== 矢印 ===== */
    .faq-arrow {
      margin-top: 8px;	
      width: 20px;
      height: 20px;
      background: #7d9800;
      border-radius: 50%;
      position: relative;
      flex-shrink: 0;
      transition: transform 0.3s ease;
    }
    
    .faq-arrow::after {
      content: "";
      position: absolute;
      top: 50%;
      left: 50%;
      width: 4px;
      height: 4px;
      border-right: 2px solid #fff;
      border-bottom: 2px solid #fff;
      transform: translate(-50%, -60%) rotate(45deg);
    }
    
    /* ===== 点線 ===== */
        .faq-divider {
    border-top: 2px dotted #333;
    margin: 0 20px;
    display: none; /* ここで最初は見えなくする */
  }
    
    /* ===== 回答 ===== */
    .faq-answer {
      display: flex;
      gap: 12px;
      padding: 0 20px;
      max-height: 0;
      overflow: hidden;
      transition: max-height 0.45s ease, padding 0.45s ease;
    }
    
    .faq-a {
      font-size: 26px;
      font-weight: bold;
      color: #fff;
      line-height: 1.6;
      
      -webkit-text-stroke: 1.5px #7d9800; /* 縁の太さ(1px)と色(黒) */	
    }
    
    .faq-answer-text {
      font-size: 15px;
      line-height: 1.8;
  	  color: #333;
    }
    
    /* ===== 開いた状態 ===== */
    .faq-item.active .faq-answer {
      max-height: 400px;
      padding: 16px 20px 20px;
    }
  /* ===== 開いた状態 (アクティブ時のみ表示) ===== */
  .faq-item.active .faq-divider {
    display: block; /* 開いた時だけ表示 */
  }		  
    
    .faq-item.active .faq-arrow {
      transform: rotate(180deg);
    }
    
    /* ===== レスポンシブ ===== */
    @media (max-width: 480px) {
      .faq-title {
        font-size: 26px;
      }
	  
	   
    }	  
  	  
  /*----------------------------
  scroll_up ｜下から上へ出現
  ----------------------------*/
  .scroll_up {
    transition: 0.8s ease-in-out;
    transform: translateY(30px);
    opacity: 0;
  }
  .scroll_up.on {
    transform: translateY(0);
    opacity: 1.0;
  }
  
  /*----------------------------
  scroll_left ｜左から出現
  ----------------------------*/
  .scroll_left {
      -webkit-transition: 0.8s ease-in-out;
      -moz-transition: 0.8s ease-in-out;
      -o-transition: 0.8s ease-in-out;
      transition: 0.8s ease-in-out;
      transform: translateX(-30px);
      opacity: 0;
      filter: alpha(opacity=0);
      -moz-opacity: 0;
  }
  .scroll_left.on {
      opacity: 1.0;
      filter: alpha(opacity=100);
      -moz-opacity: 1.0;
      transform: translateX(0);
  }
  
  /*----------------------------
  scroll_right ｜右から出現
  ----------------------------*/
  .scroll_right {
      -webkit-transition: 0.8s ease-in-out;
      -moz-transition: 0.8s ease-in-out;
      -o-transition: 0.8s ease-in-out;
      transition: 0.8s ease-in-out;
      transform: translateX(30px);
      opacity: 0;
      filter: alpha(opacity=0);
      -moz-opacity: 0;
  }
  .scroll_right.on {
      opacity: 1.0;
      filter: alpha(opacity=100);
      -moz-opacity: 1.0;
      transform: translateX(0);
  }	
  	  
  /* ==========================
     LP本体
  ========================== */
  
  .lp-wrap{
    position:relative;
    max-width:480px;
    margin:0 auto;
    overflow:hidden;
  }
  
  /* ==========================
     MENU BUTTON
  ========================== */
  
  .sp-menu-btn{
    position:fixed;
  
    /* 480pxコンテンツ右下基準 */
    left:calc(50% + 240px - 90px - 16px);
  
    bottom:105px;
  
    width:90px;
    height:90px;
  
    border:none;
    border-radius:50%;
  
    background:#c8d987;
    box-shadow:0 6px 15px rgba(0,0,0,.25);
  
    cursor:pointer;
    z-index:9999;
  
    color:#89a300;
    font-size:16px;
    font-weight:700;
  
    transition:.3s;
  }
  
  .sp-menu-btn:hover{
    transform:translateY(-3px);
  }
  
  .sp-menu-btn span{
    display:block;
  }
  
  /* ==========================
     OVERLAY
  ========================== */
  
  .menu-overlay{
    position:fixed;
    inset:0;
  
    background:rgba(0,0,0,.45);
  
    opacity:0;
    visibility:hidden;
  
    transition:.35s;
  
    z-index:9997;
  }
  
  .menu-overlay.active{
    opacity:1;
    visibility:visible;
  }
  
  /* ==========================
     MODAL
  ========================== */
  
  .menu-modal{
    position:fixed;
    top:50%;
    left:50%;
  
    width:90%;
    max-width:400px;
  
    background:#c9de8a;
    border-radius:20px;
    padding:20px;
  
    box-shadow:0 15px 40px rgba(0,0,0,.25);
  
    opacity:0;
    visibility:hidden;
  
    transform:translate(-50%, -50%) scale(.92);
    transition:.35s;
  
    z-index:9998;
  }
  
  .menu-modal.active{
    opacity:1;
    visibility:visible;
    transform:translate(-50%, -50%) scale(1);
  }
  
  /* 2カラム */
  
  .menu-modal ul{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:12px;
  
    margin:0;
    padding:0;
    list-style:none;
   
  }
  
  .menu-modal li{
    margin:0;
  	
  }
  
  .menu-modal li + li{
    margin-top:0;
  	
  }
  
  .menu-modal a{
    display:flex;
    align-items:center;
    gap:10px;
  
    min-height:60px;
  
    padding:14px;
  
    border-radius:12px;
  
    background:#f5f5f5;
  
    color:#333;
    text-decoration:none;
    font-weight:700;
  
    transition:.2s;
  }
  
  .menu-modal a:hover{
    background:#ececec;
  }
  
  .menu-modal a i{
    width:20px;
    text-align:center;
    font-size:18px;
    flex-shrink:0;
  }
  
  /* ==========================
     アンカー調整
  ========================== */
  
  html{
  scroll-behavior:auto !important;
}
  
  /*section{
    scroll-margin-top:80px;
  }*/
  
  /* ==========================
     480px以下
  ========================== */
  
  @media (max-width:480px){
  
    .sp-menu-btn{
      left:auto;
      right:16px;
    }
  
    .menu-modal{
      width:calc(100% - 20px);
    }
  
  }
  
  /* ==========================
     学費
  ========================== */
  .fee-section{margin-top: 20px;}
  .table-scroll{
    width:100%;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    margin:20px 0;
  }
  
  .table-scroll{
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
  }
  
  .fee-table{
    border-collapse:collapse;
    width:max-content;
    min-width:1020px;
    background:#fff;
  }
  
  .fee-table th,
  .fee-table td,
  .textbook-table th,
  .textbook-table td{
    border:1px solid #666;
    padding:12px 10px;
    text-align:center;
    white-space:nowrap;
  }
  
  .fee-table thead th{
    background:#a7c437;
    color:#fff;
  }
  	  
  .textbook-table{
    border-collapse:collapse;
    width:max-content;
    min-width:700px;
    background:#fff;
  }
  
    
  
  .subtotal{
    background:#e9edd1;
    font-weight:bold;
  }
  
  .total{
    background:#a7c437;
    color:#fff;
    font-weight:bold;
  }
  	  
  .fee-notes{
      font-size:12px;
  	padding-left: 20px;
    }	  
  	  
  /*出願*/
  .application-section {
      font-family: sans-serif;
      max-width: 480px;
      margin-top: 50px;
      padding: 15px;
      line-height: 1.6;
      color: #333;
  	border: 2px solid #c8d987;
  	border-radius: 15px;
    }
  	  .application-section p{margin-bottom: 10px; font-size: 16px;}	  
    /*.section-title {
      background-color: #a4c639; 
      color: #fff;
      padding: 10px 15px;
      font-size: 24px;
      font-weight: bold;
      display: flex;
      align-items: center;
      border-radius: 4px;
    }*/
    /*.section-title::before {
      content: "■";
      margin-right: 10px;
    }*/
    .subtitle { font-size: 18px; font-weight: bold; margin: 10px 0; }
    .tag {
      background-color: #8fb332;
      color: white;
      display: inline-block;
      padding: 4px 12px;
      border-radius: 8px;
      font-weight: bold;
      margin-top: 15px;
  	  margin-bottom: 10px;
    }
    .content-list { padding-left: 20px; }
    .content-list li { margin-bottom: 10px; font-size: 15px;}	  
  	  
  /*入学試験*/
  .ent-section {
      font-family: sans-serif;
      max-width: 480px;
      margin-top: 50px;
      padding:50px 15px 20px 15px;
      line-height: 1.6;
      color: #333;
  	background-color: #e9edd9;
  	
    }
  	  .ent-section p{margin-bottom: 10px; font-size: 16px;}	
  	  
  /*卒業生*/
  .voiceSection{
    
    padding:0 0 0;
    max-width:480px;
  	margin-top:20px;
  }
  
  /* swiper */
  
  .voiceSwiper{
    padding:0 0px 34px;
  }
  
  .voiceCard{
    background:#fff;
    border-radius:24px;
    overflow:hidden;
    cursor:pointer;
    border: 2px solid #c8d987;
  }
  
  .voiceCard_img img{
    width:100%;
    display:block;
  }
  
  .voiceCard_body{
    padding:24px 20px 28px;
    text-align:center;
  }
  
  .voiceCard_body h3{
    font-size:18px;
    font-weight:700;
    line-height:1.6;
    color:#333;
  }
  
  .voiceCard_body h3 span{
    display:block;
  }
  
  .voiceCard_body p{
    margin-top:24px;
    font-size:16px;
    line-height:1.8;
    color:#89a300;
    font-weight:500;
  }
  
 
  
  
  /* line */
  
  .lineArea{
    
    padding:10px 0px;
  }
  
  .lineArea_head{
    text-align:center;
  }
  
  .lineArea_head span{
    color:#799900;
    font-size:18px;
    font-weight:700;
  }
  
  .lineArea_head h2{
    font-size:18px;
    margin-top:12px;
    font-weight:500;
  }
  
  .lineBtn{
    margin-top:24px;
    background:#59c55f;
    border-radius:20px;
    min-height:110px;
  
    display:flex;
    align-items:center;
    justify-content:center;
    gap:16px;
  
    text-decoration:none;
  }
  
  .lineBtn_logo{
    width:52px;
    height:52px;
    object-fit:contain;
    flex-shrink:0;
  }
  
  .lineBtn span{
    color:#fff;
    font-size:18px;
    font-weight:700;
    line-height:1.4;
  }
  
  
  /* modal */
  
  .modal{
    position:fixed;
    inset:0;
    z-index:999;
    opacity:0;
    visibility:hidden;
    transition:.35s;
  }
  
  .modal.show{
    opacity:1;
    visibility:visible;
  }
  
  .modal_bg{
    position:absolute;
    inset:0;
    background:rgba(0,0,0,.55);
    backdrop-filter:blur(4px);
  }
  
  .modal_content{
    position:absolute;
    top:50%;
    left:50%;
  
    width:88%;
    max-width:420px;
  
    transform:translate(-50%,-45%);
    transition:.35s;
  
    background:#fff;
    border-radius:24px;
  
    overflow:hidden;
    padding:0;
  
    /* 追加 */
    max-height:70vh;
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
  }
  
  
  
  .modal_content h3{
    font-size:20px;
    margin-bottom:18px;
    line-height:1.5;
  }
  
  .modal_content p{
    line-height:2;
    color:#555;
  }
  
  .modal_close{
    position:absolute;
    right:14px;
    top:10px;
  
    border:none;
    background:none;
  
    font-size:28px;
    cursor:pointer;
    z-index:10;
  }
  
  /* スクロールバー */
  .modal_content::-webkit-scrollbar{
    width:6px;
  }
  
  .modal_content::-webkit-scrollbar-thumb{
    background:#ccc;
    border-radius:999px;
  }
  	  
  .modal_content{
    max-height:70vh;
    display:flex;
    flex-direction:column;
    overflow:hidden;
  }
  
  
  
  .modal_body{
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
    padding:24px;
  }	  
  
  .modal_img{
    height:340px;
    overflow:hidden;
  }
  
  .modal_img img{
    width:100%;
    height:100%;
  
    object-fit:cover;
  
    /* 上寄りで表示 */
    object-position:center top;
  
    display:block;
  }
  
  .modal_body{
    padding:24px;
  }
  
  .modal_body h3{
    font-size:20px;
    line-height:1.5;
    margin-bottom:8px;
    color:#222;
  }
  
  .modal_sub{
    font-size:14px;
    color:#777;
    margin-bottom:20px;
  }
  
  .modal_body p{
    font-size:15px;
    line-height:2;
    color:#555;
  }
  
  .modal_close{
    position:absolute;
    top:12px;
    right:12px;
  
    width:40px;
    height:40px;
  
    border:none;
    border-radius:50%;
  
    background:rgba(255,255,255,.9);
  
    font-size:24px;
    z-index:10;
  }	  
  	
  /*アクセス*/
  .access{
    max-width:480px;
    margin-top:30px;
  	margin-bottom: 80px;
	padding-bottom: 50px;
    
  }
  
  
  /* Google Map */
  
  .access_map{
    position:relative;
    width:100%;
    aspect-ratio:1 / 0.76;
  	margin-top: 20px;
  	
  }
  
  .access_map iframe{
    position:absolute;
    inset:0;
  
    width:100%;
    height:100%;
  
    border:none;
  }
  
  
  /* info */
  
  .access_info{
    padding:36px 48px 65px;
  }
  
  .access_info h3{
    font-size:1.8rem;
    line-height:1.35;
    font-weight:600;
    margin:0 0 40px;
  }
  
  .access_info ul{
    list-style:none;
    padding:0;
    margin:0;
  }
  
  .access_info li{
    display:flex;
    align-items:flex-start;
    gap:16px;
  
    margin-bottom:15px;
  }
  
  .access_info li svg{
    width:34px;
    height:34px;
    color:#8aa400;
    flex-shrink:0;
  }
  
  .access_info li span,
  .access_info li a{
    font-size:1.6rem;
    line-height:1.5;
    color:#111;
    text-decoration:none;
  }
  
  
  /* max480 */
  
  @media (max-width:480px){
  
    .access_head{
      padding:32px 24px;
    }
  
    /*.access_head h2{
      font-size:2.6rem;
    }*/
  
    .access_info{
      padding:40px 24px 50px;
    }
  
    .access_info h3{
      font-size:1.8rem;
    }
  
    .access_info li span,
    .access_info li a{
      font-size:1.6rem;
    }
	  
	  .mv-grid{
      max-width:1200px;
      margin-top: -30px;
      display:grid;
      grid-template-columns:1fr 1fr;
      grid-template-rows:1fr 1fr;
      overflow:hidden;
    }
  
  }	
  .sp-br{
    display:none;
  }
  
  @media (max-width: 768px){
    .sp-br{
      display:inline;
    }
	  .lp-container{
            width:100%;
            margin-top: -40px;
            background:#fff;
            min-height:100vh;
    
            box-shadow:
            0 0 30px rgba(0,0,0,.08);
        }
	  #fixed_top{
  display:none !important;
}
	  
	  .modal.show .modal_content{
    transform:translate(-50%,-62%);
  }
  }
	  
@media (min-width: 769px){
	.lp-container{
            width:480px;
            margin-top: -20px;
            background:#fff;
            min-height:100vh;
    
            box-shadow:
            0 0 30px rgba(0,0,0,.08);
        }
	
	.modal.show .modal_content{
    transform:translate(-50%,-58%);
  }
	  }
