@charset "utf-8";
/* CSS Document */
/* ページ全体 */
body {
  margin: 0;
  background: #000;              /* 両サイドを黒くする */
  font-family: "Noto Sans JP", sans-serif;
  color: #333;
}

/* 全体の中央寄せコンテナ */
.wrapper {
  max-width: 1280px;
  margin: 0 auto;                /* 中央寄せ */
  background: #fff;              /* コンテンツ部分の白背景 */
  overflow: hidden;              /* はみ出し防止 */
}


header{
	min-height: 100vh; /* 画面全体を確保 */
  background-image: url('../img/top_main_back.png');
  background-repeat: no-repeat;
  background-position: center top; /* 中央寄せ */
  background-size: 1280px auto; /* 横幅1280pxに固定、高さは自動 */
  background-color: #fff; /* 背景色（画像外の余白用） */
  width:100%;
  max-width:1280px;
  margin:0 auto;
}

/* ヒーローエリア全体 */
.hero {
  position: relative;       /* ← これが重要（画像の絶対位置基準） */
  min-height: 100vh;        /* 背景全体と同じ高さにする */
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding: 100px 80px;      /* 左に余白を確保 */
}

/* テキスト部分 */
.hero-text {
  flex: 1;
  max-width: 600px;
}

.hero-text h1 {
  font-size: 2.8rem;
  font-weight: 300;
  color:#fff;
  line-height: 1.8;
  margin-top: 180px;
}

.hero-text .desc {
  color: #000;
  line-height: 1.8;
  margin-bottom: 20px;
  margin-top:180px;
}

.hero-text .highlight {
  color: #e76400;
  font-weight: bold;
  font-size:28px;
}

/* スマートフォン画像 */
.hero-phone {
  position: absolute;
  right: 80px;              /* 右端からの距離 */
  top: 120px;                /* 下端に揃える */
  width: 380px;             /* 画像サイズ調整 */
  height: auto;
  z-index: 3;               /* 前面に表示 */
  transform: translateY(20px); /* 少し下にズラすと立体感が出ます（任意） */
}

/* 外枠ボックス */
.download-box {
  border: 2px solid #e76400;
  position: relative;
  max-width: 1120px;
  margin: 60px auto;
  padding: 60px 20px 40px;
  background-color: #fff;
  text-align: center;
}

/* タイトル帯（左上寄せ） */
.download-title {
  position: absolute;
  top: -18px;
  left: 30px;                    /* ← 左寄せに変更 */
  background: #e76400;
  color: #fff;
  font-weight: bold;
  padding: 8px 24px;
  border-radius: 3px 3px 0 0; /* 上部だけ丸みをつけると自然 */
  font-size: 1rem;
}

/* 内部レイアウト（iPhone / Android） */
.download-inner {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 60px;
  flex-wrap: wrap;
}

/* 各項目 */
.download-item p {
  margin-bottom: 10px;
  font-size: 1rem;
  color: #222;
}

/* ストアボタン */
.store-btn {
  width: 160px;
  height: auto;
  transition: transform 0.2s ease;
}
.store-btn:hover {
  transform: scale(1.05);
}

.features-section {
  background: #fffaf7;
  padding: 60px 0;
  text-align: center;
}

.features-section h2 {
  color: #e76400;
  font-size: 1.6rem;
  font-weight: bold;
  margin-bottom: 40px;
}

/* 2カラムレイアウト */
.features-container {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  max-width: 1280px;
  margin: 0 auto;
  gap: 40px;
  flex-wrap: wrap;
  padding-left:100px;
}

/* 左側リスト */
.features-list {
  flex: 1;
  min-width: 300px;
}

.feature-item {
  display: flex;
  align-items: center;
  margin-bottom: 25px;
  text-align: left;
}

.feature-icon {
  background: #e76400;
  color: #fff;
  border-radius: 50%;
  width: 110px;
  height: 110px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: bold;
  font-size: 18px;
  line-height: 1.2;
  flex-shrink: 0;
  margin-right: 16px;
  flex-wrap:wrap;
  text-align:center;
}

.feature-item p {
  margin: 0;
  font-size: 0.95rem;
  color: #333;
  line-height: 1.7;
}

/* 右側スマホ画像 */
.features-image {
  flex: 0 0 550px;
  text-align: right;
}
.features-image img {
  width: 100%;
  max-width: 550px;
  height: auto;
}

.steps-section {
  background: #fff;
  text-align: center;
  padding: 60px 20px;
}

.steps-section h2 {
  color: #e76400;
  font-size: 1.4rem;
  font-weight: bold;
  margin-bottom: 40px;
}

/* 3カラム全体 */
.steps-container {
  display: flex;
  justify-content: center;
  align-items: stretch;
  gap: 20px;
  flex-wrap: wrap;
  max-width: 1000px;
  margin: 0 auto;
}

/* 各ステップボックス */
.step-box {
  flex: 1;
  min-width: 280px;
  border: 3px solid #9ad17b; /* 緑枠 */
  border-radius: 6px;
  padding: 40px 20px;
  background-color: #fff;
  text-align: center;
  position: relative;
}

/* 番号部分 */
.step-number {
  position: absolute;
  top: -28px;
  left: 20px;
  font-size: 2.5rem;
  font-weight: bold;
  color: #8fd14f; /* 明るい緑 */
  background: #fff;
  padding: 0 10px;
}

/* テキスト */
.step-box p {
  color: #333;
  font-size: 1rem;
  line-height: 1.8;
  margin: 0;
  padding-top: 20px;
}

.design-section {
  background: #fff;
  text-align: center;
  padding: 60px 20px;
}

.design-section h2 {
  color: #e76400;
  font-size: 1.4rem;
  font-weight: bold;
  margin-bottom: 20px;
}

.design-section p {
  color: #333;
  line-height: 1.8;
  margin-bottom: 40px;
  font-size: 1rem;
}

/* 画像ギャラリー */
.design-gallery {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  flex-wrap: wrap;
  max-width: 1280px;
  margin: 0 auto;
}

/* 各スマホブロック */
.design-item {
  text-align: center;
}

.design-item img {
  width: 280px;
  height: auto;
  border-radius: 20px; /* シャドウ削除、角丸だけ */
}


/* CTA部分 */
.cta-section {
  background:url('../img/sec_back.png') center/cover no-repeat;
  color: #fff;
  text-align: left;
  padding: 120px 100px;
  position: relative;
  clip-path: polygon(0 0, 100% 10%, 100% 100%, 0% 100%);
}

.cta-section h2{
	font-size:24px;
	font-weight:bold
}

.cta-section p{
	margin-top:50px;
	margin-bottom:50px;
	line-height:1.5;
}

.cta-btn {
  display: inline-block;
  background: #000;             /* 背景：黒 */
  color: #fff;                  /* 文字：白 */
  text-decoration: none;
  font-weight: bold;
  font-size: 0.95rem;
  padding: 14px 36px;           /* 高さ・左右余白 */
  border-radius: 2px;
  transition: background 0.3s ease, transform 0.2s ease;
  letter-spacing: 0.02em;
}

/* ホバー時のアニメーション */
.cta-btn:hover {
  background: #222;             /* 少し明るい黒に */
  transform: translateY(-2px);  /* ちょっと浮かせる */
}

/* レイアウト中央寄せ */
.cta-content {
  text-align: left;
}

/* フッター部分 */
.footer-section {
  background: #f4a024;
  color: #000;
  text-align: center;
  padding: 50px 20px 80px;
  position: relative;
}


/* タイトル帯 */
.footer-title {
  display: block;
  width:70%;
  background: #e76400; /* オレンジ */
  color: #fff;
  font-weight: bold;
  padding: 8px 30px;
  font-size: 1rem;
  border-radius: 2px;
  margin:auto;
  margin-bottom: 30px;
}

/* ストアボタンの横並び配置 */
.footer-stores {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  gap: 60px; /* 間隔 */
  flex-wrap: wrap;
}

/* 各デバイスブロック */
.store {
  text-align: center;
}

.store p {
  color: #000;
  font-weight: bold;
  margin-bottom: 10px;
  font-size: 1rem;
}

/* ストア画像 */
.store img {
  width: 160px;
  height: auto;
}


.to-top {
  position: absolute;
  right: 60px;
  bottom: 220px;
  background: #f2791f;
  color: #fff;
  text-decoration: none;
  font-weight: bold;
  border-radius: 50%;
  width: 80px;
  height: 80px;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 0.9rem;
  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.2);
}


/* レスポンシブ対応 */
/* -----------------------------------
   📱 スマホ専用（〜768px）
   PCデザイン維持したまま、余白・配置を縮める
----------------------------------- */
@media (max-width: 768px) {

  /* 🌟 全体 */
  body {
    font-size: 14px;
    line-height: 1.6;
  }

  .wrapper {
    width: 100%;
    margin: 0;
    background: #fff;
  }

  /* 🌟 ヒーローセクション */
  header {
    background-size: cover;
    background-position: center top;
  }

  .hero {
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 40px 20px;
    min-height: auto;
    text-align: center;
  }

  .hero-text {
    max-width: 90%;
  }

  .hero-text h1 {
    font-size: 1.6rem;
    margin-top: 80px;
    line-height: 1.5;
  }

  .hero-text .desc {
    margin-top: 30px;
    font-size: 0.95rem;
	color:#fff;
  }

  .hero-phone {
    position: static;
    width: 75%;
    max-width: 320px;
    margin-top: 30px;
    transform: none;
  }

  /* 🌟 ダウンロードボックス */
  .download-box {
    margin: 40px 10px;
    padding: 40px 10px 30px;
  }

  .download-title {
    left: 10px;
    font-size: 0.9rem;
    padding: 6px 18px;
  }

  .download-inner {
    flex-direction: column;
    gap: 20px;
  }

  .store-btn {
    width: 140px;
  }

  /* 🌟 BALLERSでできること */
  .features-section {
    padding: 40px 15px;
    text-align: center;
  }

  .features-container {
    flex-direction: column;
    align-items: center;
    gap: 25px;
	padding-left:0;
  }

  .features-list {
    width: 100%;
  }

  .feature-item {
    flex-direction: column;
    align-items: center;
    margin-bottom: 20px;
  }

  .feature-icon {
    width: 80px;
    height: 80px;
    font-size: 14px;
    margin-bottom: 8px;
  }

  .feature-item p {
    font-size: 0.9rem;
    line-height: 1.7;
    padding: 0 5px;
  }

  .features-image {
    text-align: center;
    margin-top: 20px;
  }

  .features-image img {
    width: 85%;
    max-width: 300px;
  }

  /* 🌟 3ステップ */
  .steps-section {
    padding: 40px 10px;
  }

  .step-box {
    width: 90%;
    margin-bottom: 20px;
  }

  .step-number {
    left: 50%;
    transform: translateX(-50%);
    font-size: 2rem;
  }

  /* 🌟 デザインギャラリー */
  .design-section {
    padding: 40px 10px;
  }

  .design-gallery {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
    justify-items: center;
  }

  .design-item img {
    width: 90%;
    max-width: 160px;
  }

  /* 🌟 CTA */
  .cta-section {
    padding: 60px 20px;
    clip-path: none;
    text-align: center;
  }

  .cta-section h2 {
    font-size: 1.3rem;
  }

  .cta-section p {
    font-size: 0.9rem;
    margin: 20px 0 30px;
  }

  .cta-btn {
    padding: 12px 28px;
    font-size: 0.9rem;
  }

  /* 🌟 フッター */
  .footer-section {
    padding: 40px 10px 60px;
  }

  .footer-title {
    font-size: 0.9rem;
    padding: 8px 20px;
  }

  .footer-stores {
    flex-direction: column;
    gap: 20px;
  }

  .store img {
    width: 130px;
  }

  .to-top {
    width: 55px;
    height: 55px;
    bottom: 20px;
    right: 15px;
  }
  
  .hero-text .highlight{
	  font-size:1.3rem;
  }
  
  .features-image{
	  width:100%;
	  position:relative;
  }
  
   .features-image img{
	   position:absolute;
	   top:0;
	   right:-20px;
	   max-width: 400px;
       width: 95%;
   }
   
   .features-image {
    flex: 0 0 300px;
   }
}


