@charset "UTF-8";

/* ===== 基本リセット ===== */
*{
box-sizing:border-box;
}

html,body{
margin:0;
padding:0;
width:100%;
overflow-x:hidden;
font-family:system-ui, sans-serif;
line-height:1.7;
}

/* ===== カラー ===== */
:root{
--orange:#f28c28;
--black:#111;
--gray:#f6f6f6;
}

/* ===== 共通セクション ===== */
section{
max-width:1100px;
margin:60px auto 0;
padding:40px 20px;
}
section h2{
text-align:center;
font-size:34px;
font-weight:700;
margin-bottom:48px;
position:relative;
letter-spacing:.04em;
}

section h2::after{
content:"";
display:block;
width:70px;
height:5px;
background:var(--orange);
margin:18px auto 0;
border-radius:10px;
}

/* ===== HERO ===== */
.hero{
  position:relative;
  width:100%;
  min-height:70vh;
  overflow:hidden;

  display:flex;
  align-items:flex-start;
  justify-content:center;
  padding-top:80px;
}

/* 背景動画 */
.hero{
  position:relative;
  width:100%;
  aspect-ratio:4 / 5;   /* ← ここが重要 */
  min-height:75vh;
  overflow:hidden;

  display:flex;
  align-items:flex-start;
  justify-content:center;
  padding-top:80px;
}
.hero-video{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 25%;
}
@media (max-width:600px){
  .hero{
    aspect-ratio:auto;
    min-height:100vh;
  }
}


/* 明るさレイヤー（元のグラデを再現） */
.hero::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(
      135deg,
      rgba(255,240,225,.35),
      rgba(255,255,255,.45)
    );
  z-index:1;
}

/* テキスト前面化 */
.hero-inner,
.logo-area{
  position:relative;
  z-index:2;
}

.hero-inner{
  max-width:900px;
  margin:0 auto;
  text-align:center;
  padding-top:20px;

  transform: translateY(-8vh);  /* ← 上へ持ち上げる */
}
.hero-lead{
  color:#111;
  font-size:clamp(28px,5vw,46px);
  font-weight:800;
  letter-spacing:.05em;
  line-height:1.25;

  padding-bottom:14px;
  border-bottom:1px solid rgba(0,0,0,.35);
}


/* ロゴ位置（下寄り中央） */
.logo-area{
  position:absolute;
  left:50%;
  bottom:10%;
  transform:translateX(-50%);
}

.logo-area img{
  max-width:300px;
  width:80vw;
}
@media (max-width:600px){
  .hero-inner{
    transform: translateY(-5vh);
  }
}


/* ===== 協賛プラン グリッド ===== */
.grid{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
gap:32px;
align-items:stretch;
}

/* ===== プランカード共通 ===== */
.card{
position:relative;
border-radius:28px;
padding:38px 32px;
background:linear-gradient(180deg,#fff9f4,#ffffff);
box-shadow:
0 14px 36px rgba(0,0,0,.10),
0 4px 10px rgba(0,0,0,.05);
border:1px solid rgba(0,0,0,.04);
transition:.3s ease;
}

.card:hover{
transform:translateY(-8px);
box-shadow:
0 22px 46px rgba(0,0,0,.14),
0 6px 14px rgba(0,0,0,.08);
}
/* ===== 協賛プラン専用カード ===== */
.card.plan{
position:relative;
border-radius:30px;
padding:40px 34px;
background:#ffffff;
box-shadow:
0 18px 40px rgba(0,0,0,.12),
0 4px 12px rgba(0,0,0,.06);
border:1px solid rgba(0,0,0,.05);
transition:.3s ease;
}

.card.plan:hover{
transform:translateY(-8px);
box-shadow:
0 26px 52px rgba(0,0,0,.16),
0 6px 18px rgba(0,0,0,.08);
}

/* ===== プラン別アクセント ===== */

/* プランA｜一番目立たせる */
.card.plan-a{
border-top:12px solid var(--orange);
background:#fffaf5;
}

/* プランB｜信頼感・落ち着き */
.card.plan-b{
border-top:12px solid #222;
background:#f9f9f9;
}

/* プランC｜ライト＆やさしめ */
.card.plan-c{
border-top:12px solid var(--orange);
background:#fffdf9;
}

/* ===== 価格 ===== */
.card.plan .price{
font-size:36px;
font-weight:800;
color:var(--orange);
margin:14px 0 20px;
letter-spacing:.04em;
}

/* ===== 限定タグ ===== */
.card.plan .limit{
background:var(--orange);
color:#fff;
font-size:12px;
padding:4px 12px;
border-radius:20px;
margin-left:8px;
font-weight:600;
vertical-align:middle;
}

/* ===== リスト ===== */
.card.plan ul{
padding-left:18px;
margin-top:10px;
}

.card.plan li{
margin-bottom:10px;
font-weight:500;
color:#333;
line-height:1.6;
}


/* ===== 実績画像 ===== */
.image-preview{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
gap:24px;
margin-top:32px;
}

.image-preview img{
width:100%;
border-radius:20px;
box-shadow:0 6px 18px rgba(0,0,0,.12);
}

/* ===== CTA フル幅背景 ===== */
.cta-wrap{
width:100%;
background:#fff7ef;   /* LP全体と統一感あるやさしい色 */
padding:120px 20px;
box-sizing:border-box;
}

/* ===== CTA本体 ===== */
.cta{
max-width:1100px;
margin:0 auto;
text-align:center;
}

/* ===== 見出し ===== */
.cta h2{
font-size:clamp(28px,4vw,42px);
color:#111;
margin-bottom:14px;
font-weight:800;
letter-spacing:.04em;
}

/* ===== テキスト ===== */
.cta p{
color:#444;
margin-bottom:34px;
font-size:17px;
}

/* ===== ボタン ===== */
.cta .btn{
display:inline-block;
background:var(--orange);
color:#fff;
padding:18px 46px;
border-radius:60px;
text-decoration:none;
font-weight:800;
box-shadow:0 8px 20px rgba(242,140,40,.35);
transition:.25s ease;
}

.cta .btn:hover{
transform:translateY(-3px);
box-shadow:0 12px 28px rgba(242,140,40,.45);
}

/* ===== 注意文 ===== */
.cta .note{
margin-top:28px;
font-size:14px;
color:#777;
}

/* ===== フッター ===== */
footer{
margin-top:80px;
padding:40px 20px;
text-align:center;
background:#000;
color:#fff;
}

/* ===== 補助 ===== */
.note{
max-width:900px;
margin:24px auto 0;
font-size:14px;
color:#666;
text-align:center;
}

.limit{
background:var(--orange);
color:#fff;
font-size:12px;
padding:4px 10px;
border-radius:20px;
margin-left:8px;
}

.tag{
font-size:13px;
color:#666;
margin-bottom:6px;
}

/* ===== YouTube ===== */
.youtube-wrapper{
position:relative;
padding-top:56.25%;
margin-top:32px;
border-radius:24px;
overflow:hidden;
box-shadow:0 6px 20px rgba(0,0,0,.15);
}

.youtube-wrapper iframe{
position:absolute;
inset:0;
width:100%;
height:100%;
}

/* ===== 画像共通 ===== */
img{
max-width:100%;
height:auto;
display:block;
margin-inline:auto;
}

/* ===== フレーム（白じゃなく薄グレー） ===== */
.image-preview img,
.wide-img{
background:#fafafa;
padding:14px;
border-radius:22px;
border:2px solid #e6e6e6;   /* ← 見える色 */
box-shadow:
0 10px 24px rgba(0,0,0,.10),
0 2px 6px rgba(0,0,0,.05);
margin-bottom:20px;        /* ← 縦の余白を保証 */
}

/* ===== 画像同士の間隔 ===== */
.image-preview{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
gap:40px;                  /* ← 横も縦も広く */
margin-top:40px;
}

/* ===== スマホ調整 ===== */
@media(max-width:600px){

.hero{
padding-top:60px;
}

.logo-area img{
max-width:220px;
}

section{
margin-top:40px;
padding:30px 18px;
}

@media(max-width:600px){
  .cta-wrap{
    padding:50px 16px;
  }
}
/* ===== 追従CTA ===== */
.fixed-cta{
position:fixed;
bottom:20px;
right:20px;
z-index:999;

background:var(--orange);
color:#fff;
padding:16px 26px;
border-radius:60px;
font-weight:700;
text-decoration:none;
box-shadow:0 10px 26px rgba(242,140,40,.45);
transition:.25s ease;
}

.fixed-cta:hover{
transform:translateY(-3px);
box-shadow:0 14px 34px rgba(242,140,40,.6);
}

/* PCでは少し控えめ */
@media(min-width:900px){
.fixed-cta{
bottom:28px;
right:28px;
padding:14px 22px;
font-size:14px;
}
}
/* ===== Q&Aセクション ===== */
.qa-container {
  max-width: 900px;
  margin: 0 auto;
}

.qa-item {
  margin-bottom: 20px;
  background: #ffffff;
  border-radius: 20px;
  border: 1px solid rgba(0,0,0,0.05);
  box-shadow: 0 4px 12px rgba(0,0,0,0.05);
  overflow: hidden;
  transition: .3s ease;
}

.qa-item:hover {
  box-shadow: 0 8px 20px rgba(0,0,0,0.08);
}

/* 質問部分（summary） */
.qa-question {
  padding: 24px 30px;
  padding-right: 60px; /* アイコン用の余白 */
  font-weight: 700;
  cursor: pointer;
  list-style: none; /* デフォルトの矢印を消す */
  position: relative;
  font-size: 18px;
  color: var(--black);
}

/* デフォルトの矢印を消す（Safari対策） */
.qa-question::-webkit-details-marker {
  display: none;
}

/* 独自のプラスアイコン */
.qa-question::after {
  content: "+";
  position: absolute;
  right: 30px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 24px;
  color: var(--orange);
  transition: .3s ease;
}

/* 開いている時のアイコン変化 */
.qa-item[open] .qa-question::after {
  transform: translateY(-50%) rotate(45deg); /* プラスを×にする */
}

/* 回答部分（内容） */
.qa-answer {
  padding: 0 30px 24px;
  color: #555;
  font-size: 16px;
  line-height: 1.8;
  border-top: 1px solid #f9f9f9;
}

.qa-answer p {
  margin: 0;
  padding-top: 15px;
}

/* スマホ調整 */
@media (max-width: 600px) {
  .qa-question {
    padding: 20px 24px;
    padding-right: 50px;
    font-size: 16px;
  }
  .qa-answer {
    padding: 0 24px 20px;
    font-size: 15px;
  }
}
