/* =========================================================================
   GDOCK 第3層：フロントページ（TOP）
   出所：gdock-top-preview.html のページ層 <style>

   SWELL との住み分け：
     - リセット / body / header / footer / nav は移植しない（SWELL の領分）
     - 残りはすべて .post_content .gd-front の中にスコープ
     - TOP は画面幅いっぱいの帯が連続するので、本文全体を .gd-front で
       フルブリードにし、内側の .wrap で最大幅と左右余白を作り直す
   ========================================================================= */

/* ===== フルブリード容器 ===== */
.post_content .gd-front{
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
  width:100vw;
  max-width:100vw;
  overflow-x:clip;
}
/* gdock-components.css で無効化した .wrap を、この中だけ復活させる */
.post_content .gd-front .wrap{
  max-width:var(--maxw);
  margin-left:auto;
  margin-right:auto;
  padding-left:var(--pad);
  padding-right:var(--pad);
}

/* ===== SWELL の見出しデザインを TOP 内では全部外す ===== */
.post_content .gd-front h1,
.post_content .gd-front h2,
.post_content .gd-front h3,
.post_content .gd-front h4{
  background:none;background-image:none;padding:0;border:none;
  border-radius:0;box-shadow:none;margin:0;
}
.post_content .gd-front h1::before, .post_content .gd-front h1::after,
.post_content .gd-front h2::before, .post_content .gd-front h2::after,
.post_content .gd-front h3::before, .post_content .gd-front h3::after,
.post_content .gd-front h4::before, .post_content .gd-front h4::after{
  content:none;display:none;
}

/* ===== 固定ページのタイトルは TOP では出さない ===== */
body.home h1.c-pageTitle,
body.home .p-articleHead{display:none}

/* ===== ここから下はモックからの移植 ===== */

.post_content .gd-front .wrap{max-width:var(--maxw);margin:0 auto;padding-left:var(--pad);padding-right:var(--pad)}
.post_content .gd-front .eyebrow{
    font-size:12px;letter-spacing:.28em;text-transform:uppercase;
    color:var(--accent);font-weight:700;display:inline-block;margin-bottom:14px;
  }
.post_content .gd-front .eyebrow.light{color:#ffb877}
.post_content .gd-front h2.sec-title{
    font-size:clamp(24px,3.4vw,40px);font-weight:600;line-height:1.35;
    letter-spacing:.01em;color:var(--ink);
  }
.post_content .gd-front .sec-sub{color:var(--ink-2);margin-top:14px;font-size:15px;max-width:640px}
.post_content .gd-front .btn-ghost{
    display:inline-flex;align-items:center;gap:10px;font-size:14px;font-weight:600;
    padding:14px 26px;border:1px solid rgba(255,255,255,.7);color:#fff;border-radius:2px;
    transition:.25s;backdrop-filter:blur(2px);
  }
.post_content .gd-front .btn-ghost:hover{background:#fff;color:var(--ink);border-color:#fff}
.post_content .gd-front .btn-line{
    display:inline-flex;align-items:center;gap:10px;font-size:14px;font-weight:600;
    color:var(--ink);border-bottom:1px solid var(--ink);padding-bottom:4px;transition:.25s;
  }
.post_content .gd-front .btn-line:hover{gap:16px;color:var(--accent);border-color:var(--accent)}
.post_content .gd-front .arrow{transition:.25s}
/* ===== mock ribbon ===== */
/* ===== header ===== */
/* ===== hero ===== */
.post_content .gd-front .hero{
    position:relative;min-height:88vh;display:flex;align-items:flex-end;
    color:#fff;overflow:hidden;margin-top:-72px;padding-top:72px;
  }
.post_content .gd-front .hero-video{
    position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;
  }
.post_content .gd-front .hero-bg{
    position:absolute;inset:0;z-index:-3;
    background:
      radial-gradient(1200px 500px at 75% 20%, rgba(255,120,24,.35), transparent 60%),
      linear-gradient(120deg,#1a1c22 0%,#23252d 40%,#141519 100%);
  }
.post_content .gd-front .hero-bg::after{
    /* faux video texture */
    content:"";position:absolute;inset:0;
    background:
      radial-gradient(600px 600px at 20% 80%, rgba(255,171,46,.18), transparent 60%),
      repeating-linear-gradient(115deg, rgba(255,255,255,.015) 0 2px, transparent 2px 7px);
    mix-blend-mode:screen;
  }
.post_content .gd-front .hero-scrim{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(0,0,0,.25),rgba(0,0,0,.05) 40%,rgba(0,0,0,.55))}
.post_content .gd-front .hero-inner{padding-bottom:clamp(48px,8vh,110px);width:100%}
.post_content .gd-front .hero h1{
    font-size:clamp(34px,6vw,74px);font-weight:600;line-height:1.15;letter-spacing:.02em;
    text-shadow:0 2px 30px rgba(0,0,0,.35);max-width:16ch;
  }
.post_content .gd-front .hero .lead{margin-top:22px;font-size:clamp(15px,1.6vw,19px);opacity:.92;max-width:40ch}
.post_content .gd-front .hero-actions{margin-top:34px;display:flex;gap:16px;flex-wrap:wrap;align-items:center}
.post_content .gd-front .play{
    display:inline-flex;align-items:center;gap:12px;font-size:14px;font-weight:600;color:#fff;
  }
.post_content .gd-front .play .circle{
    width:52px;height:52px;border-radius:50%;border:1px solid rgba(255,255,255,.6);
    display:grid;place-items:center;transition:.25s
  }
.post_content .gd-front .play:hover .circle{background:#fff;color:var(--ink);transform:scale(1.05)}
.post_content .gd-front .play .circle svg{margin-left:3px}
.post_content .gd-front .hero-tag{
    position:absolute;top:96px;left:var(--pad);font-size:12px;letter-spacing:.3em;
    text-transform:uppercase;opacity:.75
  }
/* ===== section base ===== */
.post_content .gd-front section.block{padding:clamp(64px,9vw,120px) 0}
.post_content .gd-front .sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-bottom:44px}
/* ===== concept carousel ===== */
.post_content .gd-front .concept{background:var(--paper)}
.post_content .gd-front .rail{
    display:grid;grid-auto-flow:column;grid-auto-columns:minmax(300px,32%);
    gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:12px;
    scrollbar-width:thin;
  }
.post_content .gd-front .rail::-webkit-scrollbar{height:6px}
.post_content .gd-front .rail::-webkit-scrollbar-thumb{background:var(--line);border-radius:6px}
.post_content .gd-front .c-card{scroll-snap-align:start;cursor:pointer;display:block}
.post_content .gd-front .c-thumb{
    position:relative;aspect-ratio:3/2;border-radius:4px;overflow:hidden;
    box-shadow:0 10px 30px rgba(20,21,26,.10);
  }
.post_content .gd-front .c-thumb .ph{position:absolute;inset:0;transition:.5s}
.post_content .gd-front .c-card:hover .c-thumb .ph{transform:scale(1.05)}
.post_content .gd-front .c-thumb .tint{position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(0,0,0,.18))}
.post_content .gd-front .c-cat{position:absolute;top:14px;left:14px;font-size:11px;letter-spacing:.14em;color:#fff;
    background:rgba(10,10,12,.55);border:1px solid rgba(255,255,255,.35);padding:5px 11px;border-radius:2px;backdrop-filter:blur(2px)}
.post_content .gd-front .c-title{display:block;margin-top:18px;color:var(--ink);font-size:18px;font-weight:600;line-height:1.55;transition:.2s}
.post_content .gd-front .c-card:hover .c-title{color:var(--accent)}
.post_content .gd-front .c-meta{margin-top:10px;color:var(--accent);font-size:12.5px;font-weight:600;letter-spacing:.02em}
.post_content .gd-front .c-lead{margin-top:8px;color:var(--ink-2);font-size:14px;line-height:1.7}
.post_content .gd-front .rail-nav{display:flex;gap:10px}
.post_content .gd-front .rail-btn{width:46px;height:46px;border-radius:50%;border:1px solid var(--line);background:#fff;
    display:grid;place-items:center;cursor:pointer;transition:.2s}
.post_content .gd-front .rail-btn:hover{border-color:var(--ink);background:var(--ink);color:#fff}
/* placeholders — faux photography */
.post_content .gd-front .ph1{background:linear-gradient(135deg,#2b3140,#39506b 60%,#6a7f96)}
.post_content .gd-front .ph2{background:linear-gradient(135deg,#3a2a2a,#7a4a2f 55%,#ffab2e)}
.post_content .gd-front .ph3{background:linear-gradient(135deg,#26303a,#31586a 60%,#7fb0b5)}
.post_content .gd-front .ph4{background:linear-gradient(135deg,#2e2a3a,#5a466f 55%,#b98fd0)}
.post_content .gd-front .ph5{background:linear-gradient(135deg,#31302b,#6b6350 60%,#c9b98a)}
/* ===== set products 2x3 ===== */
.post_content .gd-front .setprod{background:var(--mist)}
.post_content .gd-front .grid6{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.post_content .gd-front .b-card{
    position:relative;aspect-ratio:16/10;border-radius:4px;overflow:hidden;cursor:pointer;
    box-shadow:0 8px 24px rgba(20,21,26,.08)
  }
.post_content .gd-front .b-card .ph{position:absolute;inset:0;transition:.55s}
.post_content .gd-front .b-card:hover .ph{transform:scale(1.05)}
.post_content .gd-front .b-card .scrim{position:absolute;inset:0;background:linear-gradient(115deg,rgba(10,10,12,.62) 0%,rgba(10,10,12,.15) 55%,transparent)}
.post_content .gd-front .b-body{position:absolute;inset:0;padding:24px;display:flex;flex-direction:column;justify-content:flex-end;color:#fff}
.post_content .gd-front .b-kicker{font-size:11px;letter-spacing:.2em;opacity:.85;margin-bottom:8px}
.post_content .gd-front .b-title{font-size:20px;font-weight:600;line-height:1.4}
.post_content .gd-front .b-more{margin-top:12px;display:inline-flex;gap:8px;align-items:center;font-size:13px;font-weight:600;opacity:.95;transition:.25s}
.post_content .gd-front .b-card:hover .b-more{gap:14px}
.post_content .gd-front .ph-a{background:linear-gradient(135deg,#20242d,#37445c 60%,#5b7ca6)}
.post_content .gd-front .ph-b{background:linear-gradient(135deg,#2a211d,#6d3f28 55%,#ff8a3d)}
.post_content .gd-front .ph-c{background:linear-gradient(135deg,#1f2a2a,#2f5a55 60%,#66b39d)}
.post_content .gd-front .ph-d{background:linear-gradient(135deg,#28242f,#4d3f66 55%,#9b7fc9)}
.post_content .gd-front .ph-e{background:linear-gradient(135deg,#2c2a24,#5f5540 60%,#c2a86a)}
.post_content .gd-front .ph-f{background:linear-gradient(135deg,#232a30,#3a5566 58%,#7fa7bd)}
/* ===== product DB entrance ===== */
.post_content .gd-front .db{background:var(--paper);border-top:1px solid var(--line)}
.post_content .gd-front .db-head{max-width:720px;margin-bottom:36px}
.post_content .gd-front .db-note{display:inline-flex;gap:10px;align-items:center;font-size:13px;color:var(--ink-2);
    background:var(--mist);border:1px solid var(--line);padding:8px 14px;border-radius:40px;margin-top:18px}
.post_content .gd-front .db-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
.post_content .gd-front .db-tile{
    border:1px solid var(--line);border-radius:4px;padding:22px 18px;transition:.2s;background:#fff;cursor:pointer;
    display:flex;flex-direction:column;gap:6px;min-height:118px;justify-content:space-between
  }
.post_content .gd-front .db-tile:hover{border-color:var(--ink);transform:translateY(-3px);box-shadow:0 12px 26px rgba(20,21,26,.08)}
.post_content .gd-front .db-tile .n{font-size:15px;font-weight:600}
.post_content .gd-front .db-tile .c{font-size:12px;color:var(--ink-2)}
.post_content .gd-front .db-tile .go{font-size:12px;color:var(--accent);font-weight:700}
/* ===== footer / recent ===== */
.post_content .gd-front .recent{background:var(--ink);color:#fff;padding:clamp(56px,8vw,96px) 0 0}
.post_content .gd-front .recent .eyebrow{color:#ffb877}
.post_content .gd-front .recent h2.sec-title{color:#fff}
.post_content .gd-front .r-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px 30px;margin-top:44px}
.post_content .gd-front .r-item{display:flex;gap:16px;padding:18px 0;border-top:1px solid rgba(255,255,255,.12);cursor:pointer}
.post_content .gd-front .r-thumb{width:96px;height:70px;border-radius:3px;flex:0 0 auto}
.post_content .gd-front .r-date{font-size:12px;color:#ffb877;letter-spacing:.08em}
.post_content .gd-front .r-title{font-size:14.5px;font-weight:500;margin-top:6px;line-height:1.55;opacity:.95;transition:.2s}
.post_content .gd-front .r-item:hover .r-title{color:#ffb877}
@media(max-width:900px){
.post_content .gd-front .grid6{grid-template-columns:repeat(2,1fr)}
.post_content .gd-front .db-grid{grid-template-columns:repeat(2,1fr)}
.post_content .gd-front .r-grid{grid-template-columns:1fr}
}
@media(max-width:560px){
.post_content .gd-front .grid6{grid-template-columns:1fr}
.post_content .gd-front .rail{grid-auto-columns:82%}
.post_content .gd-front .sec-head{margin-bottom:30px}
}
/* ===== how it works (4 steps) ===== */
.post_content .gd-front .flow{background:var(--paper);padding:clamp(48px,7vw,88px) 0 clamp(40px,6vw,72px)}
.post_content .gd-front .flow-head{text-align:center;margin-bottom:clamp(34px,5vw,52px)}
.post_content .gd-front .flow-head .eyebrow{margin-bottom:12px}
.post_content .gd-front .flow-title{font-size:clamp(22px,3vw,34px);font-weight:600;color:var(--ink);letter-spacing:.01em}
.post_content .gd-front .flow-steps{display:flex;align-items:stretch;justify-content:center;gap:8px;flex-wrap:nowrap}
.post_content .gd-front .fstep{flex:1 1 0;min-width:0;text-align:center;padding:8px 6px}
.post_content .gd-front .fic{width:60px;height:60px;margin:0 auto 16px;border-radius:16px;background:var(--mist);border:1px solid var(--line);display:grid;place-items:center;color:var(--accent)}
.post_content .gd-front .fstep.hl .fic{background:var(--grad);border-color:transparent;color:#fff;box-shadow:0 12px 26px rgba(255,90,31,.28)}
.post_content .gd-front .fnum{display:block;font-size:11px;letter-spacing:.16em;color:var(--accent);font-weight:700;margin-bottom:8px;text-transform:uppercase}
.post_content .gd-front .ftitle{font-size:16px;font-weight:700;color:var(--ink);line-height:1.5}
.post_content .gd-front .fstep.hl .ftitle{color:var(--accent)}
.post_content .gd-front .fsub{font-size:13px;color:var(--ink-2);margin-top:7px;line-height:1.65}
.post_content .gd-front .farrow{display:flex;align-items:center;color:#cbcac6;font-size:20px;flex:0 0 auto}
@media(max-width:760px){
.post_content .gd-front .flow-steps{flex-direction:column;align-items:stretch;gap:0;max-width:440px;margin:0 auto}
.post_content .gd-front .fstep{display:flex;text-align:left;gap:16px;align-items:center;padding:14px 4px}
.post_content .gd-front .fic{margin:0;flex:0 0 auto}
.post_content .gd-front .fbody{flex:1}
.post_content .gd-front .farrow{justify-content:center;transform:rotate(90deg);padding:2px 0}
}
/* ===== two ways to start ===== */
.post_content .gd-front .routes-lead{font-size:clamp(17px,2vw,20px);font-weight:700;color:var(--ink);margin:0 0 20px}
.post_content .gd-front .routes{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:40px}
.post_content .gd-front .route{background:#fff;border:1px solid var(--line);border-radius:8px;padding:clamp(22px,3vw,30px);position:relative;overflow:hidden}
.post_content .gd-front .route::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--grad)}
.post_content .gd-front .route-k{font-size:11px;letter-spacing:.18em;color:var(--accent);font-weight:700;text-transform:uppercase}
.post_content .gd-front .route-t{font-size:clamp(17px,2vw,20px);font-weight:700;color:var(--ink);margin:10px 0}
.post_content .gd-front .route-d{font-size:14px;color:var(--ink-2);line-height:1.85}
@media(max-width:760px){
.post_content .gd-front .routes{grid-template-columns:1fr}
}


/* =========================================================================
   「最近のコラム」= SWELL の [post_list type="card" max_col="3"]

   ⚠️ レイアウトには手を出さない。
      SWELL のカード型は flex ＋ .p-postList__item{width:…} で組まれており、
      上から grid を被せると衝突して段組みが崩れる（実際に崩れた）。
      ここでは暗い帯の上で読めるように「色」だけを上書きする。
   ========================================================================= */
.post_content .gd-front .recent-list{margin-top:8px}

/* リンク全体とタイトル */
.post_content .gd-front .recent-list .p-postList__link{color:#fff}
.post_content .gd-front .recent-list .c-postTitle__ttl,
.post_content .gd-front .recent-list .p-postList__title{
  color:#fff;
  font-size:15px;
  line-height:1.6;
  font-weight:600;
  transition:.2s;
}
.post_content .gd-front .recent-list .p-postList__link:hover .c-postTitle__ttl,
.post_content .gd-front .recent-list .p-postList__link:hover .p-postList__title{
  color:var(--accent-on-dark);
}

/* 日付・メタ・抜粋 */
.post_content .gd-front .recent-list .c-postTitle__date,
.post_content .gd-front .recent-list .p-postList__meta,
.post_content .gd-front .recent-list .p-postList__times{
  color:var(--accent-on-dark);
  opacity:.9;
}
.post_content .gd-front .recent-list .p-postList__excerpt{
  color:rgba(255,255,255,.72);
}

/* 項目の区切り線は暗い地に合わせる（SWELL は明るい地前提の色を使う） */
.post_content .gd-front .recent-list .p-postList__item{
  border-color:rgba(255,255,255,.14);
}

/* サムネイルの角丸だけ、TOP のトーンに揃える */
.post_content .gd-front .recent-list .c-postThumb{
  border-radius:var(--r-card);
  overflow:hidden;
}

/* 「コラム一覧」ボタンを暗い地の上でも読めるように */
.post_content .gd-front .btn-line.light{color:#fff;border-color:rgba(255,255,255,.6)}
.post_content .gd-front .btn-line.light:hover{color:var(--accent-on-dark);border-color:var(--accent-on-dark)}


/* =========================================================================
   TOP のレイアウト補正（2026-08-23・実機確認後）
   ========================================================================= */

/* ① ヘッダー直下の白い帯を消す
   SWELL は .l-mainContent__inner > .post_content に margin:4em 0 を入れている。
   TOP はヒーローが画面上端から始まる設計なので、これを外す。 */
body.home .l-mainContent__inner > .post_content{
  margin-top:0;
  margin-bottom:0;
  padding-left:0;
  padding-right:0;
}
body.home .post_content > .gd-front{
  margin-bottom:0;
}

/* ② セクション間の余白は .gd-front 側で持つ（SWELL の block-margin を無効化） */
.post_content .gd-front > *{
  margin-top:0;
  margin-bottom:0;
}

/* 4ステップ図とコンセプトの間が空きすぎていたので詰める */
.post_content .gd-front .flow{
  padding-top:clamp(44px,6vw,76px);
  padding-bottom:clamp(28px,4vw,48px);
}
.post_content .gd-front section.block.concept{
  padding-top:clamp(44px,6vw,76px);
}

/* ③ 製品DB入口：SWELL のリンク色（青）が漏れていたので打ち消す */
.post_content .gd-front .db-tile,
.post_content .gd-front .db-tile:visited{
  color:var(--ink);
}
.post_content .gd-front .db-tile .n{
  color:var(--ink);
}
.post_content .gd-front .db-tile:hover .n{
  color:var(--accent);
}
.post_content .gd-front .db-tile .c{
  color:var(--ink-3);
}

/* 念のため：TOP 内のリンクは既定の青にしない（各パーツの色指定を優先） */
.post_content .gd-front a{
  color:inherit;
}
.post_content .gd-front a:hover{
  color:inherit;
}


/* =========================================================================
   ソリューション6バナー：Coming Soon 状態（2026-08-23）
   詳細ページが未作成のため、<a> ではなく <span class="b-card is-soon"> で出す。
   押せないことが見た目で分かるようにする。
   ========================================================================= */
.post_content .gd-front .b-card.is-soon{
  cursor:default;
}
.post_content .gd-front .b-card.is-soon .ph{
  filter:saturate(.55) brightness(.9);
}
/* ホバーで動かない（期待させない） */
.post_content .gd-front .b-card.is-soon:hover .ph{
  transform:none;
}
.post_content .gd-front .b-card.is-soon .b-more{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:11px;
  letter-spacing:.18em;
  text-transform:uppercase;
  font-weight:700;
  color:rgba(255,255,255,.72);
  border:1px solid rgba(255,255,255,.34);
  border-radius:var(--r-pill);
  padding:5px 12px;
  opacity:1;
  transform:none;
}
.post_content .gd-front .b-card.is-soon:hover .b-more{
  transform:none;
  color:rgba(255,255,255,.72);
}
