body{
margin:0;
font-family:sans-serif;
color:#333;
line-height:1.7;
font-family: 'Inter', 'Noto Sans JP', "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
}

.container{
max-width:1100px;
margin:auto;
padding:40px 20px;
}

.top-box {
    width: 1000px;
    margin: 0 auto;
    text-align: center;
    margin-top: 60px;
    padding: 60px 20px 20px 20px;


}
.top-text {
    text-align: left;
    padding:40px;
    font-size:18px;
}

.top-text span {
    color: #2196f3;
    font-weight: bold;
    font-size: 22px;

}

/* HERO */
.hero{
height:420px;
background:#0d47a1;
display:flex;
align-items:center;
justify-content:center;
color:white;
text-align:center;
background-image: url(../img/index/pc-top.png);
margin-top: 100px;
}

.hero-inner{
max-width:700px;
}

.hero h1{
font-size:52px;
margin-bottom:10px;
color: #000;
font-weight: bold;
text-shadow:0 0 5px #fff,0 0 5px #fff,0 0 5px #fff,0 0 5px #fff,0 0 5px #fff,0 0 5px #fff,0 0 5px #fff,0 0 5px #fff,0 0 5px #fff,0 0 5px #fff,0 0 5px #fff,0 0 3px #fff,0 0 5px #fff,0 0 5px #fff,0 0 5px #fff,0 0 5px #fff;
}

.hero p{
font-size:22px;
opacity:0.9;
color: #000;
color: #ffffff;
background-color: #000000;
border-radius: 10px;
padding:8px;
}

.hero-btns{
margin-top:20px;
}

.mlab-logo { width: 100%; }
.mlab-fotter-logo { width: 60%; }

.btn{
display:inline-block;
padding:12px 20px;
border-radius:6px;
background:rgb(43, 41, 41);
color:#f9f9fa;
margin:10px;
font-weight: 600;
text-decoration: none;
}

.btn.primary{
background:#158ef1;
color:white;
}

/* =========================
   スクロールアニメーション共通
========================= */
.anim{
  opacity:0;
  transition:
    opacity 0.8s ease,
    transform 0.8s ease;
  will-change:opacity, transform;
}

.anim.from-left{
  transform:translateX(-50px);
}

.anim.from-right{
  transform:translateX(50px);
}

.anim.from-top{
  transform:translateY(-50px);
}

.anim.from-bottom{
  transform:translateY(50px);
}

.anim.show{
  opacity:1;
  transform:translate(0, 0);
}

.feature-image-01,
.feature-image-02{
  position:relative;
  overflow:hidden;
}

.feature-image-inner{
  width:100%;
  height:100%;
  background:inherit;
  background-size:cover;
  background-position:center;
}

/* SECTION */
.section{
padding:60px 20px;
}

.section.blue{
background-image: linear-gradient(90deg, #0765c4, #33bbff);
color:white;
}

.flex{
display:flex;
gap:40px;
flex-wrap:wrap;
align-items:center;
}

.text{
flex:1;
}

h2 { font-size:30px; padding-left:20px;}

.features{
flex:1;
}

.feature{
background:white;
color:#333;
padding:14px 10px 14px 10px ;
margin-bottom:10px;
border-radius:6px;
margin-top:20px;
border:4px solid #eeeeee;
box-shadow: 0 5px 10px 0 rgba(104, 103, 103, 0.5);
}

/* 掴み */
.problem-section{
background:#f3f5f7;
padding:80px 20px;
text-align:center;
}

.problem-title{
font-size:40px;
margin-bottom:40px;
color:#1798e4;
}

.problem-wrap{
display:flex;
align-items:center;
justify-content:center;
gap:40px;
max-width:1000px;
margin:auto;
}

.problem-illustration{
width:200px;
height:200px;
background:#ddd;
border-radius:50%;
background-image: url(../img/index/top-point.jpg);
border: 6px solid #fff;
box-shadow: 1px 1px #999999;
}

.problem-list{
list-style:none;
padding:0;
text-align:left;
}

.problem-list li{
margin-bottom:15px;
font-size:20px;
position:relative;
padding-left:30px;
}

.problem-list li::before{
content:"✔";
position:absolute;
left:0;
color:#4f6ef7;
font-weight:bold;
}

/* ４つの学べるポイント */
.feature-section{
padding:80px 20px;
max-width:1200px;
margin:auto;
}

/* 親 */
.feature-overlay{
position:relative;
height:320px;
}

/* 背景画像 */
.feature-image{
position:absolute;
top:0;
right:0;
width:60%;
height:100%;
background:#ddd;
border-radius:20px;
z-index:1;
}

.feature-image-01{
position:absolute;
top:0;
right:0;
width:60%;
height:100%;
background:#ddd;
background-image: url(../img/index/toppage-01.jpg);
border-radius:20px;
z-index:1;
}

.feature-image-02{
position:absolute;
top:0;
right:0;
width:60%;
height:100%;
background:#ddd;
background-image: url(../img/index/toppage-02.jpg);
border-radius:20px;
z-index:1;
}

.feature-image-03{
position:absolute;
top:0;
right:0;
width:60%;
height:100%;
background:#ddd;
background-image: url(../img/index/toppage-03.jpg);
border-radius:20px;
z-index:1;
}

.feature-image-04{
position:absolute;
top:0;
right:0;
width:60%;
height:100%;
background:#ddd;
background-image: url(../img/index/toppage-04.jpg);
border-radius:20px;
z-index:1;
}

/* 前面テキスト */
.feature-text{
position:absolute;
top:50%;
left:0;
transform:translateY(-50%);

width:45%;
background:white;
padding:40px;
border-radius:20px;

box-shadow:0 10px 30px rgba(0,0,0,0.1);

z-index:2;
}

.feature-text .num{
font-size:40px;
color:#fff;
font-weight:bold;
display:block;
margin-bottom:6px;
 background-image: linear-gradient(90deg, #565656, #ffffff 74%);
padding-left:20px;
border-radius: 4px;
}

.feature-text h2{
font-size:32px;
margin-bottom:10px;
color:#1798e4;
padding:8px;

}

.feature-text p{
color:#555;
}

.feature-overlay.reverse .feature-image-02{
left:0;
right:auto;
}

.feature-overlay.reverse .feature-image-04{
left:0;
right:auto;
}

.feature-overlay.reverse .feature-text{
right:0;
left:auto;
}

/* スマホ */
@media(max-width:768px){

    .anim.from-left{
    transform:translateX(-30px);
  }

  .anim.from-right{
    transform:translateX(30px);
  }

  .anim.from-top{
    transform:translateY(-30px);
  }

  .anim.from-bottom{
    transform:translateY(30px);
  }

  .anim.show{
    transform:translate(0, 0);
  }

.feature-overlay{
height:auto;
}

.feature-image{
position:relative;
width:100%;
height:200px;
margin-bottom:20px;
}

.feature-image-01{
position:relative;
width:100%;
height:300px;
margin-bottom:8px;
background-image: url(../img/index/top-image-01-smt.jpg);
}

.feature-image-02{
position:relative;
width:100%;
height:300px;
margin-bottom:8px;
background-image: url(../img/index/top-image-02-smt.jpg);
}

.feature-image-03{
position:relative;
width:100%;
height:300px;
margin-bottom:8px;
background-image: url(../img/index/top-image-03-smt.jpg);
}
.feature-image-04{
position:relative;
width:100%;
height:300px;
margin-bottom:8px;
background-image: url(../img/index/top-image-04-smt.jpg);
}


.feature-text{
position:relative;
transform:none;
width:95%;
padding:20px;
}

}

/* GRID */
.grid-3{
display:grid;
grid-template-columns:repeat(3,1fr);
gap:20px;
}

.img-box{
  width:100%;
  height:320px;
  overflow:hidden;
  border-radius:10px;
}

.img-box img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:0.4s;
}

/* ホバーでプロ感 */
.card:hover img{
  transform:scale(1.05);
}


/* 横スクロール */
.scroll-x{
display:flex;
overflow-x:auto;
gap:20px;
}

.content-card{
min-width:250px;
height:150px;
background:#ddd;
border-radius:10px;
}


/* CTA */
.cta{
background:linear-gradient(135deg,#2196f3,#1e40af);
color:white;
text-align:center;
padding:80px 20px;
}

.course{
height:120px;
background:#eee;
border-radius:10px;
}


/* Netflix風 ボタン */
.scroll-btn{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:50px;
  height:70px;
  background:rgba(0,0,0,0.5);
  color:#fff;
  border:none;
  font-size:32px;
  cursor:pointer;
  z-index:20;
  border-radius:6px;
}

/* 左右位置 */
.scroll-btn.left{
  left:0;
}

.scroll-btn.right{
  right:0;
}

/* ホバー */
.scroll-btn:hover{
  background:rgba(0,0,0,0.8);
}

/* レーンに余白（ボタン分） */
.netflix-row{
  padding:0 40px;
  position: relative;  /* ← これ追加！！ */
  min-height:300px;  /* ← これ追加 */
}

.netflix-track{
  display:flex;
  gap:24px; /* 16 → 24 */
  overflow-x:auto;
  scroll-behavior:smooth;
  padding-bottom:10px;
  min-height:270px;
}

/* スクロールバー消す */
.netflix-track::-webkit-scrollbar{
  display:none;
}

.netflix-card{
  min-width:320px;  /* ← 約1.8倍 */
  height:190px;     /* ← バランス調整 */
  border-radius:12px;
  overflow:hidden;
  position:relative;
  cursor:pointer;
  flex-shrink:0;
}

.netflix-card img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:0.4s;
}

/* ホバー拡大 */
.netflix-card:hover{
  transform:scale(1.07);
  z-index:10;
}

.netflix-card:hover img{
  filter:brightness(0.6);
}

/* タイトル重ね */
.netflix-title{
  position:absolute;
  bottom:20px;
  left:10px;
  color:#fff;
  font-weight:bold;
  font-size:20px;
  text-shadow: 1px 1px #000;
}

/* レスポンシブ */
@media(max-width:768px){

.hero{
height:300px;
background-image: url(../img/index/smt-top.png);
margin-top:54px;
}

.hero h1{
font-size:26px;
color: #000;
font-weight: bold;
text-shadow:0 0 5px #fff,0 0 5px #fff,0 0 5px #fff,0 0 5px #fff,0 0 5px #fff,0 0 5px #fff,0 0 5px #fff,0 0 5px #fff,0 0 5px #fff,0 0 5px #fff,0 0 5px #fff,0 0 3px #fff,0 0 5px #fff,0 0 5px #fff,0 0 5px #fff,0 0 5px #fff;
}

.hero p{
font-size:16px;
opacity:0.9;
color: #ffffff;
background-color: #000000;
border-radius: 10px;
padding:8px;
}

.mlab-logo { width: 90%; margin: 0 auto; text-align: center;}

.text h2 { font-size:28px; }

.img-box{
  width:100%;
  height:160px;
  overflow:hidden;
  border-radius:10px;
}

.grid-3{
grid-template-columns:1fr;
}

.flex{
flex-direction:column;
}

.top-box {
    width: 95%;
    margin: 0 auto;
    text-align: center;
    margin-top: 60px;
    padding: 40px 10px 40px 10px;
}
.top-text {
    text-align: left;
    padding:10px;
    font-size:17px;
}

  .netflix-card{
    min-width:280px;
    height:160px;
  }

}