@charset "UTF-8";
@import url("work-flow.css");
/* ===================== 共通 / 変数 ===================== */ :root {
  --header-h: 64px; /* PC/Tabletのヘッダー高さ */
}
/* 改行制御：PC/Tablet 既定は PC/TB 改行を有効、SP改行は無効 */
.sp-only {
  display: none;
}
.tab-only {
  display: inline;
}
.pc-tab-only {
  display: inline;
}
/* ===================== 固定ナビ ===================== */
.site-header {
  position: fixed;
  inset: 0 0 auto 0;
  height: var(--header-h);
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-right: 30px;
  padding-bottom: 0;
  z-index: 100;
  background: #fff;
  backdrop-filter: blur(6px);
  color: #000;
}
.site-header .logo {
  font-family: "henderson-sans-basic", sans-serif;
  font-weight: 400;
  font-style: normal;
  display: flex;
  margin-left: 20px;
  padding-left: 0px;
  flex-shrink: 0;
}
.logo img {
  width: 40px;
  height: auto;
}
.name {
  margin-left: 10px;
  align-items: center;
  margin-top: 10px;
}
.name a {
  color: #000; /* ヘッダーの文字色に合わせる場合 */
  text-decoration: none;
}
.site-header nav ul {
  display: flex;
  gap: 35px;
  list-style: none;
}
.site-header nav a {
  color: #000;
  text-decoration: none;
  font-family: "henderson-sans-basic", sans-serif;
  font-weight: 100;
  font-style: normal;
  white-space: nowrap;
}
/* 1. ボタン全体のサイズと位置 */
.hamburger {
  display: none;
  position: relative; /* 中の線の位置の基準にする */
  width: 30px; /* ボタン全体の横幅 */
  height: 18px; /* ボタン全体の高さ */
  background: none;
  border: none;
  cursor: pointer;
  padding: 0; /* 余計な余白を消す */
}
/* 2. 3本の線に共通するスタイル（ここで太さを決める） */
.hamburger span {
  display: block;
  position: absolute; /* 自由に配置できるようにする */
  left: 0;
  width: 100%; /* 30pxいっぱいに線を引く */
  height: 1px; /* ★ここが「線の太さ」！1px〜4pxでお好み調整 */
  background-color: #000; /* 線の色 */
  border-radius: 10px; /* 角を丸くすると柔らかい印象になります */
  transition: all 0.3s; /* あとでアニメーションさせるための準備 */
}
/* 1番上の線 */
.hamburger span:nth-child(1) {
  top: 0;
}
/* 真ん中の線 */
.hamburger span:nth-child(2) {
  top: 50%; /* 上から50%の位置へ */
  transform: translateY(-50%); /* 線の厚みの分だけ微調整して真ん中へ */
}
/* 1番下の線 */
.hamburger span:nth-child(3) {
  bottom: 0; /* 1番下に配置 */
}

/* クラスがついた時、上の線を45度傾ける */
.hamburger.is-active span:nth-child(1) {
  top: 50%;
  transform: translateY(-50%) rotate(45deg);
}
/* クラスがついた時、真ん中の線を消す */
.hamburger.is-active span:nth-child(2) {
  opacity: 0;
}
/* クラスがついた時、下の線を-45度傾ける */
.hamburger.is-active span:nth-child(3) {
  top: 50%;
  bottom: auto; /* ★元の bottom: 0 を無効化 */
  transform: translateY(-50%) rotate(-45deg);
}
/* SPドロワー */
.drawer {
  position: fixed;
  inset: var(--header-h) 0 auto 0;
  z-index: 80;
  background: #fff;
  transform: translateY(-100%);
  opacity: 0; /* 追加：透明にして見えなくする */
  pointer-events: none; /* 追加：裏側のクリック干渉を防ぐ */
  transition: transform .25s ease, opacity .25s ease; /* opacityのアニメーション追加 */
  display: block;
}
.drawer.open {
  transform: translateY(0);
  opacity: 1; /* 追加：開いた時に表示 */
  pointer-events: auto; /* 追加：クリック判定を復活 */
}

.drawer ul {
  list-style: none;
  margin: 0;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.drawer a {
  color: #000;
  text-decoration: none;
  display: block;
  padding: 12px 4px;
    font-family: "henderson-sans-basic", sans-serif;
  font-weight: 100;
  font-style: normal;
}
/* ヘッダー分のスペーサー（固定ヘッダーの下に余白を確保） */
.spacer {
  height: var(--header-h);
    display: none;
}

/* =========================== 共通 =========================== */
.work-flow {
  font-size: 30pt;
  font-family: "henderson-sans-basic", sans-serif;
  font-weight: 100;
  text-align: center;
  margin-top: 160px;
  margin-bottom: 50px;
}
.work-process {
  display: block; /* ブロック要素に変更 */
  margin-left: auto; /* 左の余白を自動調整 */
  margin-right: auto; /* 右の余白を自動調整 */
}
.production-process img {
  width: 80%
}
.sample-title {
  text-align: center;
  font-family: ryo-gothic-plusn, sans-serif;
  font-weight: 500;
  font-style: normal;
  font-size: 14pt;
  margin-top: 80px;
}
.sample-media {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  max-width: 1000px;
  margin: 30px auto;
  gap: 10px;
  text-align: center;
}
.real-text, .digital-text, .video-text {
  font-size: 18pt;
  font-family: "henderson-sans-basic", sans-serif;
  font-weight: 100;
}
.real img {
  width: 80%;
}
.digital img {
  width: 50%;
}
.video img {
  width: 80%;
}
.sample-text {
  text-align: center;
  font-family: ryo-gothic-plusn, sans-serif;
  font-weight: 500;
  font-style: normal;
  font-size: 14pt;
  margin-top: 70px;
}
/* ======================== Step 01 ======================== */
.step01, .step02, .step03, .final {
  display: flex;
  justify-content: center; /* 左右の中央に配置 */
  align-items: center; /* 上下の中央に配置（縦ズレ防止） */
  border-top: 1px solid #3F3F3F;
  border-bottom: 1px solid #3F3F3F;
  margin-top: 120px;
  max-width: 1100px;
  margin-left: auto;
  margin-right: auto;
  padding-top: 16px; /* 上のラインと文字の空き */
  padding-bottom: 16px; /* 下のラインと文字の空き */
    
}
.step01-number, .step02-number, .step03-number {
  font-size: 15pt;
  font-family: "henderson-sans-basic", sans-serif;
  font-weight: 400;
}
.step01-lead, .step02-lead, .step03-lead, .final {
  font-family: ryo-gothic-plusn, sans-serif;
  font-size: 15pt;
  font-weight: 500;
  font-style: normal;
  line-height: 0.7;
}
.step01-a-copy, .step01-b-copy, .step02-a-copy, .step02-b-copy, .step02-c-copy, .step02-d-copy, .step03-a-copy, .step03-b-copy, .final-a-copy, .final-b-copy {
  font-family: ryo-gothic-plusn, sans-serif;  
}
.step01-container, .step02-container, .step03-container, .final-container {
  margin-top: 60px;
}
.step01-a {
  display: flex;
  max-width: 800px;
  margin: auto;
  gap: 30px;
  text-align: left;
  align-items: center; /* 上下の中央に配置（縦ズレ防止） */
}
.step01-a img {
  width: 20%;
}
.step01-b {
  display: flex;
  max-width: 800px;
  margin: auto;
  gap: 30px;
  text-align: left;
  margin-top: 60px;
  align-items: center; /* 上下の中央に配置（縦ズレ防止） */
}
.step01-b img {
  width: 20%;
}
/* ======================== Step 02 ======================== */
.step02-a {
  display: flex;
  max-width: 900px;
  margin: auto;
  gap: 30px;
  text-align: left;
  align-items: center; /* 上下の中央に配置（縦ズレ防止） */
}
.step02-a img {
  width: 25%;
}
.step02-b {
  display: flex;
  max-width: 760px;
  margin: auto;
  gap: 30px;
  text-align: left;
  margin-top: 60px;
  align-items: center; /* 上下の中央に配置（縦ズレ防止） */
}
.step02-b img {
  width: 12%
}
.plus {
  text-align: center;
}
.plus img {
  width: 5%;
  margin-top: 20px;
}
.step02-c {
  display: flex;
  max-width: 760px;
  margin: auto;
  gap: 30px;
  text-align: left;
  align-items: center; /* 上下の中央に配置（縦ズレ防止） */
}
.step02-c img {
  width: 12%
}
.step02-d {
  display: flex;
  max-width: 900px;
  margin: auto;
  gap: 30px;
  text-align: left;
  margin-top: 60px;
  align-items: center; /* 上下の中央に配置（縦ズレ防止） */
}
.step02-d img {
  width: 25%
}
/* ======================== Step 03 ======================== */
.step03-a {
  display: flex;
  max-width: 900px;
  margin: auto;
  gap: 30px;
  text-align: left;
  align-items: center; /* 上下の中央に配置（縦ズレ防止） */
}
.step03-a img {
  width: 20%
}
.step03-b {
  display: flex;
  max-width: 900px;
  margin: auto;
  gap: 30px;
  text-align: left;
  margin-top: 30px;
  align-items: center; /* 上下の中央に配置（縦ズレ防止） */
}
.step03-b img {
  width: 20%
}
/*  ====================== 最終的な成果 ====================== */
.final-a {
  display: flex;
  max-width: 900px;
  margin: auto;
  gap: 30px;
  text-align: left;
  align-items: center; /* 上下の中央に配置（縦ズレ防止） */
}
.final-a img {
  width: 20%
}
.final-b {
  display: flex;
  max-width: 900px;
  margin: auto;
  gap: 30px;
  text-align: left;
  margin-top: 30px;
  align-items: center; /* 上下の中央に配置（縦ズレ防止） */
}
.final-b img {
  width: 20%
}
/* ====================== スマホ（〜599px） ===================== */
@media screen and (max-width:599px) {
  :root {
    --header-h: 56px;
  } /* スマホは少し低いヘッダー */
  .hamburger {
    display: block;
  }
  .site-header .global-nav {
    display: none;
  }
  /* 改行制御（SPはSP改行のみ有効） */
  .sp-only {
    display: inline;
  }
  .tab-only {
    display: none;
  }
  .pc-only {
    display: none;
  }
  .pc-tab-only {
    display: none;
  }
  .work-flow {
    font-size: 24pt;
    margin-top: 60px;
    margin-bottom: 40px;
  }
  .production-process img {
    width: 100%
  }
  .sample-title {
    text-align: justify;
    font-size: 12pt;
    line-height: 18pt;
    font-weight: 500;
    margin: 30px;
  }
  .sample-media {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    max-width: 1000px;
    margin: 30px 20px;
    gap: 10px;
    text-align: center;
  }
  .real-text, .digital-text, .video-text {
    font-size: 15pt;
    font-family: "henderson-sans-basic", sans-serif;
    font-weight: 100;
  }
  .real img {
    width: 100%;
  }
  .digital img {
    width: 70%;
  }
  .video img {
    width: 100%;
  }
  .sample-text {
    text-align: justify;
    font-size: 12pt;
    line-height: 18pt;
    margin: 50px 20px;
    margin-bottom: 100px;
  }
  .step01-container, .step02-container, .step03-container, .final-container {
    margin-top: 50px;
    margin-bottom: 100px;
  }
  .step01, .step02, .step03 {
    display: block;
    margin: 0px 20px;
  }
  .final {
    margin: 20px 20px;
  }
  .step01-lead, .step02-lead, .step03-lead {
    font-size: 12pt;
  }
  .step01-a, .step01-b, .step03-a, .step03-b, .final-a, .final-b {
    display: block;
    margin-top: 0px;
    margin-bottom: 50px;
    margin-left: 20px;
    margin-right: 20px;
    text-align: center;
  }
  .step02-c, .step02-d {
    display: block;
    margin-left: 20px;
    margin-right: 20px;
    text-align: center;
  }
  .step02-a {
    display: block;
    margin-left: 20px;
    margin-right: 20px;
    text-align: center;
  }
  .step02-b {
    display: block;
    margin-left: 50px;
    margin-right: 50px;
    margin-top: 30px;
    text-align: center;
    font-size: 10pt;
  }
  .step02-c {
    display: block;
    margin-left: 50px;
    margin-right: 50px;
    margin-top: 20px;
    text-align: center;
    font-size: 10pt;
  }
  .step02-d {
    display: block;
    margin-left: 20px;
    margin-right: 20px;
    margin-top: 50px;
    text-align: center;
  }
  .step01-a-copy, .step01-b-copy, .step02-a-copy, .step02-b-copy, .step02-c-copy, .step02-d-copy, .step03-a-copy, .step03-b-copy, .final-a-copy, .final-b-copy {
    text-align: justify
  }
  .step01-a img, .step01-b img, .step03-a img, .step03-b img, .final-a img, .final-b img {
    min-width: 40%;
  }
  .step02-a img, .step02-d img {
    min-width: 50%;
  }
  .step02-b img, .step02-c img {
    min-width: 24%;
  }
  .plus img {
    min-width: 12%;
    margin-top: 10px;
  }
}
/* ================= タブレット（600px〜1024px====================*/
@media screen and (min-width:600px) and (max-width:1024px) {
  .media-16x9 {
    margin-top: 56px;
  }
  .hamburger {
    display: none;
  }
  .site-header nav {
    display: block;
  }
  /* 改行制御（PC/Tablet改行を有効） */
  .pc-only {
    display: none;
  }
  .tab-only {
    display: inline;
  }
  .sp-only {
    display: none;
  }
  .production-process img {
    width: 100%
  }
  .project-sample {
    margin-right: 60px;
    margin-left: 60px;
  }
  .step01-container, .step02-container, .step03-container, .final-container {
    margin-top: 50px;
    margin-bottom: 100px;
      margin-right: 60px;
      margin-left: 60px;
  }
  .step01, .step02, .step03 {
    display: block;
    margin: 0px 60px;
  }
    .step02-b, .step02-c {
        margin-right: 60px;
        margin-left: 60px;
        
    }
  .final {
    margin: 60px 60px;
  }
  .step01-a img, .step01-b img, .step03-a img, .step03-b img, .final-a img, .final-b img {
    max-width: 18%;
  }
  .step02-a img, .step02-d img {
    max-width: 20%;
  }
  .step02-b img, .step02-c img {
    max-width: 10%;
  }
  .plus img {
    max-width: 10%;
    margin-top: 10px;
  }
}
/* ===================== PC（1025px〜）======================== */
@media screen and (min-width: 1025px) {
  .media-16x9 {
    margin-top: 56px;
  }
  .hamburger { display: none; }
  .site-header .global-nav { display: block; }
  .drawer { display: none; } /* ★追加：PCではSPドロワー自体を無効化 */
  /* 改行制御（PC/Tablet改行を有効） */
  .pc-only {
    display: inline;
  }
  .sp-only {
    display: none;
  }
  .tab-only {
    display: none;
  }
}