/* =========================================================
   Business Page（事業概要 /business/） page-id:300
   Theme: Lightning / Builder: SiteOrigin
   Policy:
   - セクション単位で管理（コメント区切り）
   - Lightning/SiteOriginの装飾・余白は必要箇所のみKill
   - PC/SP両対応
========================================================= */


/* =========================================================
   1) Cover（事業概要）
   Row Class: page-cover business-cover
   Background image: Row側で設定
========================================================= */
.page-cover.business-cover{
  position: relative;
  overflow: hidden;
}

/* Row背景の上に暗幕＋横ラインを重ねる */
.page-cover.business-cover::after{
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    repeating-linear-gradient(
      to bottom,
      rgba(0,0,0,.22) 0px,
      rgba(0,0,0,.22) 2px,
      rgba(0,0,0,0) 4px,
      rgba(0,0,0,0) 7px
    ),
    linear-gradient(
      90deg,
      rgba(0,0,0,.55) 0%,
      rgba(0,0,0,.38) 55%,
      rgba(0,0,0,.18) 100%
    );
}

/* 中身（文字） */
.page-cover.business-cover .pageCover{
  position: relative;
  z-index: 1;
}
.page-cover.business-cover .pageCover__inner{
  max-width: 1200px;
  margin: 0 auto;
  padding: 62px 20px 58px;
}
.page-cover.business-cover .pageCover__ja{
  margin: 0 0 10px;
  font-size: 34px;
  line-height: 1.15;
  font-weight: 700;
  color: #fff;
  text-shadow: 0 2px 0 rgba(0,0,0,.45);
}
.page-cover.business-cover .pageCover__en{
  margin: 0;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: .06em;
  color: rgba(255,255,255,.9);
}

@media (max-width: 767px){
  .page-cover.business-cover .pageCover__inner{
    padding: 46px 16px 42px;
  }
  .page-cover.business-cover .pageCover__ja{
    font-size: 26px;
  }
  .page-cover.business-cover .pageCover__en{
    font-size: 14px;
  }
}


/* =========================================================
   2) Layout（このページのみ：サイドバー非表示）
========================================================= */
.page-id-300 .sub-section{
  display: none !important;
}
.page-id-300 .main-section,
.page-id-300 .main-section--col--two{
  width: 100% !important;
  float: none !important;
}
.page-id-300 .site-body-container.container{
  max-width: none;
}


/* =========================================================
   3) Intro（導入文）
   Row Class: business-intro
========================================================= */
.page-id-300 .business-intro{
  padding: 56px 0 60px;
}
.page-id-300 .business-intro .business-intro-inner{
  max-width: 1000px;
  margin: 0 auto;
  padding: 0 20px;
  text-align: center;
}
.page-id-300 .business-intro .business-intro-inner p{
  margin: 0;
  font-size: 18px;
  line-height: 2.0;
  font-weight: 700;
  color: #111;
  letter-spacing: .01em;
}
.page-id-300 .business-intro .so-panel,
.page-id-300 .business-intro .panel-grid-cell{
  margin-bottom: 0 !important;
}

@media (max-width: 767px){
  .page-id-300 .business-intro{
    padding: 40px 0 44px;
  }
  .page-id-300 .business-intro .business-intro-inner{
    padding: 0 16px;
  }
  .page-id-300 .business-intro .business-intro-inner p{
    font-size: 15px;
    line-height: 1.9;
  }
}


/* =========================================================
   4) Business Blocks（共通：青帯ブロック）
   - .businessBlock（青帯）
   - .businessBlock--reverse（左右反転）
========================================================= */

/* ---- Row padding kill（対象Rowのみ） ---- */
.businessRow--block01.panel-row-style,
.businessRow--block01.so-panel-row,
.businessRow--block01,
.businessRow--02a.panel-row-style,
.businessRow--02a.so-panel-row,
.businessRow--02a{
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* ---- Base section ---- */
.page-id-300 .businessBlock{
  width: 100%;
  background: #0b55a6;
}

/* ---- Layout ---- */
.page-id-300 .businessBlock .businessBlock__inner{
  max-width: none;
  margin: 0 auto;
  padding: clamp(44px, 5vw, 70px) clamp(18px, 4vw, 72px) clamp(40px, 4vw, 58px) clamp(36px, 6vw, 120px);

  display: flex;
  justify-content: space-between;
  gap: clamp(20px, 4vw, 48px);
  align-items: center;
  min-width: 0;
}

/* reverse */
.page-id-300 .businessBlock--reverse .businessBlock__inner{
  flex-direction: row-reverse;
}

/* ---- Text ---- */
.page-id-300 .businessBlock .businessBlock__head{
  flex: 0 1 clamp(360px, 32vw, 460px);
  min-width: 0;
  color: #fff;
}

.page-id-300 .businessBlock .businessBlock__index{
  display: flex;
  align-items: center;
  gap: 18px;
  margin: 0 0 18px;
}
.page-id-300 .businessBlock .businessBlock__num{
  font-size: 18px;
  font-weight: 700;
  letter-spacing: .02em;
  line-height: 1;
}
.page-id-300 .businessBlock .businessBlock__dash{
  display: block;
  width: 56px;
  height: 2px;
  background: rgba(255,255,255,.85);
  transform: translateY(1px);
}

.page-id-300 .businessBlock .businessBlock__title{
  margin: 0 0 10px;
  font-size: 36px;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: .02em;

  /* kill Lightning decorations */
  border: 0 !important;
  text-decoration: none !important;
  box-shadow: none !important;
}
.page-id-300 .businessBlock .businessBlock__title::before,
.page-id-300 .businessBlock .businessBlock__title::after{
  content: none !important;
  display: none !important;
}

.page-id-300 .businessBlock .businessBlock__en{
  margin: 0 0 18px;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: .04em;
  color: rgba(255,255,255,.95);
}
.page-id-300 .businessBlock .businessBlock__lead{
  margin: 0;
  font-size: 13px;
  font-weight: 500;
  line-height: 2.05;
  letter-spacing: .02em;
  color: rgba(255,255,255,.95);
}

/* ---- Image ---- */
.page-id-300 .businessBlock .businessBlock__media{
  flex: 1 1 auto;
  min-width: 0;
  margin-left: auto;

  display: flex;
  justify-content: flex-end;
  align-items: flex-end;
}
.page-id-300 .businessBlock .businessBlock__media img{
  display: block;
  width: 100%;
  height: auto;
  max-width: 820px;
  margin: 0 !important;
}

/* ---- Responsive ---- */
@media (max-width: 1100px){
  .page-id-300 .businessBlock .businessBlock__title{ font-size: 34px; }
}
@media (max-width: 900px){
  .page-id-300 .businessBlock .businessBlock__title{ font-size: 32px; }
}
@media (max-width: 780px){
  .page-id-300 .businessBlock .businessBlock__inner{
    padding: 34px 16px 16px;
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
  }
  .page-id-300 .businessBlock--reverse .businessBlock__inner{
    flex-direction: column;
  }
  /* image full-bleed */
  .page-id-300 .businessBlock .businessBlock__media{
    margin-left: -16px;
    margin-right: -16px;
    justify-content: flex-start;
  }
  .page-id-300 .businessBlock .businessBlock__media img{
    max-width: none;
  }
}
@media (max-width: 480px){
  .page-id-300 .businessBlock .businessBlock__inner{
    padding: 30px 14px 16px;
    gap: 8px;
  }
  .page-id-300 .businessBlock .businessBlock__media{
    margin-left: -14px;
    margin-right: -14px;
  }
}


/* =========================================================
   5) Business : Spec list（設計品目一覧）02b — match reference
   Section class: .businessSpec--02
========================================================= */

/* Row padding kill（02b row only） */
.businessRow--02b.panel-row-style,
.businessRow--02b.so-panel-row,
.businessRow--02b{
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.page-id-300 .businessSpec--02{
  background: #fff;
  padding: 66px 0 84px;
}

.page-id-300 .businessSpec--02 .businessSpec__inner{
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 20px;
}

.page-id-300 .businessSpec--02 .businessSpec__head{
  display: flex;
  align-items: center;
  gap: 26px;
  margin: 0 0 30px;
}

.page-id-300 .businessSpec--02 .businessSpec__title{
  margin: 0;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: .02em;
  color: #111;

  border: 0 !important;
  text-decoration: none !important;
  box-shadow: none !important;
}
.page-id-300 .businessSpec--02 .businessSpec__title::before,
.page-id-300 .businessSpec--02 .businessSpec__title::after{
  content: none !important;
  display: none !important;
}

.page-id-300 .businessSpec--02 .businessSpec__line{
  display: block;
  width: 150px;
  height: 1px;
  background: rgba(0,0,0,.65);
  transform: translateY(6px); /* 確定位置 */
}

.page-id-300 .businessSpec--02 .businessSpec__grid{
  margin: 0;
  padding: 0;
  list-style: none;

  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 34px 28px;
}

.page-id-300 .businessSpec--02 .businessSpec__item{
  border: 1px solid #d6d6d6;
  background: #fff;

  min-height: 92px;
  padding: 18px 14px;

  display: flex;
  align-items: center;
  justify-content: center;

  text-align: center;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.65;
  color: #111;
}

@media (max-width: 1100px){
  .page-id-300 .businessSpec--02 .businessSpec__inner{ max-width: 980px; }
  .page-id-300 .businessSpec--02 .businessSpec__grid{
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
@media (max-width: 900px){
  .page-id-300 .businessSpec--02{ padding: 58px 0 72px; }
  .page-id-300 .businessSpec--02 .businessSpec__inner{ max-width: 820px; }
  .page-id-300 .businessSpec--02 .businessSpec__grid{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (max-width: 767px){
  .page-id-300 .businessSpec--02{ padding: 46px 0 54px; }
  .page-id-300 .businessSpec--02 .businessSpec__inner{ padding: 0 16px; }

  .page-id-300 .businessSpec--02 .businessSpec__head{
    gap: 16px;
    margin-bottom: 22px;
  }
  .page-id-300 .businessSpec--02 .businessSpec__title{ font-size: 18px; }
  .page-id-300 .businessSpec--02 .businessSpec__line{ width: 120px; }

  .page-id-300 .businessSpec--02 .businessSpec__grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px 16px;
  }
  .page-id-300 .businessSpec--02 .businessSpec__item{
    min-height: 82px;
    font-size: 14px;
    padding: 16px 10px;
  }
}


/* =========================================================
   6) Business 03（split）
   03a: blue / 03b: white
========================================================= */

/* Row padding kill (03 only) */
.businessRow--03a.panel-row-style,
.businessRow--03a.so-panel-row,
.businessRow--03a,
.businessRow--03b.panel-row-style,
.businessRow--03b.so-panel-row,
.businessRow--03b{
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* 03a: blue tweaks */
.page-id-300 .businessBlock--03a{
  background: #0b55a6;
}
.page-id-300 .businessBlock--03a .businessBlock__titleEnWord{
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 700;
}
.page-id-300 .businessBlock--03a .businessBlock__lead{
  font-size: 14px;
  line-height: 2.05;
}
@media (max-width: 780px){
  .page-id-300 .businessBlock--03a .businessBlock__lead{
    font-size: 13px;
    line-height: 2.0;
  }
}

/* 03b: white info */
.page-id-300 .businessInfo--03{
  background: #fff;
  padding: 70px 0 72px;
}
.page-id-300 .businessInfo--03 .businessInfo__inner{
  max-width: 1100px;
  margin: 0 auto;
  padding-left: clamp(36px, 6vw, 120px);
  padding-right: clamp(18px, 4vw, 72px);
}
.page-id-300 .businessInfo--03 .businessInfo__block + .businessInfo__block{
  margin-top: 28px;
}
.page-id-300 .businessInfo--03 .businessInfo__head{
  display: flex;
  align-items: center;
  gap: 18px;
  margin: 0 0 10px;
}
.page-id-300 .businessInfo--03 .businessInfo__title{
  margin: 0;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: .02em;
  color: #111;

  border: 0 !important;
  text-decoration: none !important;
  box-shadow: none !important;
}
.page-id-300 .businessInfo--03 .businessInfo__title::before,
.page-id-300 .businessInfo--03 .businessInfo__title::after{
  content: none !important;
  display: none !important;
}
.page-id-300 .businessInfo--03 .businessInfo__line{
  display: block;
  width: 150px;
  height: 1px;
  background: rgba(0,0,0,.65);
  transform: translateY(1px);
}
.page-id-300 .businessInfo--03 .businessInfo__text{
  margin: 0;
  font-size: 20px;
  line-height: 1.8;
  color: #111;
}
.page-id-300 .businessInfo--03 .businessInfo__list{
  margin: 0;
  padding-left: 1.2em;
  color: #111;
}
.page-id-300 .businessInfo--03 .businessInfo__list li{
  margin: 8px 0 0;
  font-size: 18px;
  line-height: 1.9;
}
@media (max-width: 780px){
  .page-id-300 .businessInfo--03{
    padding: 50px 0 54px;
  }
  .page-id-300 .businessInfo--03 .businessInfo__inner{
    padding: 0 16px;
  }
  .page-id-300 .businessInfo--03 .businessInfo__text{
    font-size: 18px;
  }
  .page-id-300 .businessInfo--03 .businessInfo__list li{
    font-size: 16px;
  }
  .page-id-300 .businessInfo--03 .businessInfo__line{
    width: 120px;
  }
}


/* =========================================================
   7) Business 04（split）
   04a: blue / 04b: white
========================================================= */

/* Row padding kill (04 only) */
.businessRow--04a.panel-row-style,
.businessRow--04a.so-panel-row,
.businessRow--04a,
.businessRow--04b.panel-row-style,
.businessRow--04b.so-panel-row,
.businessRow--04b{
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* 04a */
.page-id-300 .businessBlock--04a{
  background: #0b55a6;
}

/* 04b */
.page-id-300 .businessInfo--04{
  background: #fff;
  padding: 70px 0 72px;
}
.page-id-300 .businessInfo--04 .businessInfo__inner{
  max-width: 1100px;
  margin: 0 auto;
  padding-left: clamp(36px, 6vw, 120px);
  padding-right: clamp(18px, 4vw, 72px);
}
.page-id-300 .businessInfo--04 .businessInfo__block + .businessInfo__block{
  margin-top: 28px;
}
.page-id-300 .businessInfo--04 .businessInfo__head{
  display: flex;
  align-items: center;
  gap: 18px;
  margin: 0 0 10px;
}
.page-id-300 .businessInfo--04 .businessInfo__title{
  margin: 0;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: .02em;
  color: #111;

  border: 0 !important;
  text-decoration: none !important;
  box-shadow: none !important;
}
.page-id-300 .businessInfo--04 .businessInfo__title::before,
.page-id-300 .businessInfo--04 .businessInfo__title::after{
  content: none !important;
  display: none !important;
}
.page-id-300 .businessInfo--04 .businessInfo__line{
  display: block;
  width: 150px;
  height: 1px;
  background: rgba(0,0,0,.65);
  transform: translateY(1px);
}
.page-id-300 .businessInfo--04 .businessInfo__text{
  margin: 0;
  font-size: 20px;
  line-height: 1.8;
  color: #111;
}
@media (max-width: 780px){
  .page-id-300 .businessInfo--04{
    padding: 50px 0 54px;
  }
  .page-id-300 .businessInfo--04 .businessInfo__inner{
    padding: 0 16px;
  }
  .page-id-300 .businessInfo--04 .businessInfo__text{
    font-size: 18px;
  }
  .page-id-300 .businessInfo--04 .businessInfo__line{
    width: 120px;
  }
}


/* =========================================================
   Business 05（プリント基板製造） split
   05a: blue intro
   05b: grid gallery
   05c: description
========================================================= */

/* ---------------------------------------------------------
   Row padding kill（05 rows）
--------------------------------------------------------- */
.businessRow--05a,
.businessRow--05b,
.businessRow--05c,
.businessRow--05a.panel-row-style,
.businessRow--05b.panel-row-style,
.businessRow--05c.panel-row-style,
.businessRow--05a.so-panel-row,
.businessRow--05b.so-panel-row,
.businessRow--05c.so-panel-row{
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.businessRow--05a .so-panel,
.businessRow--05b .so-panel,
.businessRow--05c .so-panel{
  margin-bottom: 0 !important;
}

/* ---------------------------------------------------------
   05a: Blue intro
--------------------------------------------------------- */
.businessBlock--05{
  background: #0b55a6;
  width: 100%;
}

.businessBlock--05 .businessBlock__inner{
  max-width: none;
  margin: 0 auto;
  padding:
    clamp(44px, 5vw, 70px)
    clamp(18px, 4vw, 72px)
    clamp(40px, 4vw, 58px)
    clamp(36px, 6vw, 120px);

  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: clamp(20px, 4vw, 48px);
  min-width: 0;
}

.businessBlock--05 .businessBlock__head{ min-width: 0; color: #fff; }

.businessBlock--05 .businessBlock__index{
  display: flex;
  align-items: center;
  gap: 18px;
  margin: 0 0 18px;
}
.businessBlock--05 .businessBlock__num{
  font-size: 18px;
  font-weight: 700;
  line-height: 1;
  color: #fff;
}
.businessBlock--05 .businessBlock__dash{
  display: block;
  width: 56px;
  height: 2px;
  background: rgba(255,255,255,.85);
  transform: translateY(1px);
}

.businessBlock--05 .businessBlock__title{
  margin: 0 0 10px;
  font-size: 36px;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: .02em;
  color: #fff;
  border: 0 !important;
  text-decoration: none !important;
  box-shadow: none !important;
}
.businessBlock--05 .businessBlock__title::before,
.businessBlock--05 .businessBlock__title::after{
  content: none !important;
  display: none !important;
}

.businessBlock--05 .businessBlock__en{
  margin: 0 0 18px;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: .04em;
  color: rgba(255,255,255,.95);
}
.businessBlock--05 .businessBlock__lead{
  margin: 0;
  font-size: 13px;
  font-weight: 500;
  line-height: 2.05;
  letter-spacing: .02em;
  color: rgba(255,255,255,.95);
}

.businessBlock--05 .businessBlock__media{
  flex: 1 1 auto;
  min-width: 0;
  margin-left: auto;
  display: flex;
  justify-content: flex-end;
  align-items: flex-end;
}
.businessBlock--05 .businessBlock__media img{
  display: block;
  width: 100%;
  height: auto;
  max-width: 820px;
  margin: 0 !important;
}

/* =========================================================
   05b: Gallery（枠線にピタ / 4col grid）
   - 画像上下の“外側の白”/黒帯下の白を完全に消す
   - PC: 4col / Tablet: 2col / SP: 1col
   - 05c との間に余計な縦余白を作らない（05bは下padding 0）
========================================================= */

.pcbGallery--05{
  background: #fff;
  padding: 44px 0 0;          /* お手本の上余白（必要なら 40〜52 で微調整） */
}

/* 05bの幅（05cと揃える） */
.pcbGallery--05 .pcbGallery__inner{
  max-width: 1040px;
  margin: 0 auto;
  padding: 0 20px;
}

/* 4カラムグリッド */
.pcbGallery--05 .pcbGallery__grid{
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 28px 26px;             /* お手本の“白い間”感（必要なら微調整） */
}

/* カード：枠にピタ付け（inline由来の隙間を根こそぎ潰す） */
.pcbGallery--05 a.pcbCard{
  display: flex;
  flex-direction: column;
  box-sizing: border-box;

  border: 1px solid #d6d6d6;
  background: #fff;
  overflow: hidden;

  text-decoration: none !important;
  color: inherit;

  /* “黒帯の下に白が出る” 典型原因（行ボックス）を遮断 */
  line-height: 0;
  font-size: 0;
}

/* 画像エリア（高さ固定しない：SPの余白バグを避ける） */
.pcbGallery--05 .pcbCard__img{
  display: block;
  overflow: hidden;
}

/* 画像：枠内に収める（画像自体の白背景はOK） */
.pcbGallery--05 .pcbCard__img img{
  display: block;
  width: 100%;
  height: 100%;
  margin: 0;

  object-fit: contain;
  object-position: center;
  background: #fff;
}

/* 黒帯キャプション：高さ固定＋中央 */
.pcbGallery--05 .pcbCard__cap{
  display: flex;
  align-items: center;
  justify-content: center;

  height: 40px;
  margin: 0;
  padding: 0 10px;

  background: #111;
  color: #fff;

  /* 親で font-size:0 にしているので戻す */
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .02em;
  line-height: 1;
}

/* hover（お手本がほぼ無いなら弱め） */
.pcbGallery--05 a.pcbCard:hover{
  opacity: .92;
}

/* -------------------------
   Responsive
------------------------- */
@media (max-width: 980px){
  .pcbGallery--05{
    padding-top: 36px;
  }
  .pcbGallery--05 .pcbGallery__grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px 16px;
  }
  .pcbGallery--05 .pcbCard__img{
    height: 190px;
  }
}

@media (max-width: 780px){
  .pcbGallery--05 .pcbGallery__inner{
    padding: 0 16px;
  }
}

@media (max-width: 640px){
  .pcbGallery--05{
    padding-top: 26px;
  }
  .pcbGallery--05 .pcbGallery__grid{
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .pcbGallery--05 .pcbCard__img{
    height: 180px;
  }
}


/* ---------------------------------------------------------
   05c: Description
   - 05bと左端ラインを揃える
   - 下に空白を作らない
   - 文字サイズ/行間をお手本寄せ
--------------------------------------------------------- */
.pcbDesc--05{
  background: #fff;
  padding: 28px 0 0;   /* ← 下paddingゼロ（余白を作らない） */
}

.pcbDesc--05 .pcbDesc__inner{
  max-width: 1040px;   /* ← 05bと合わせる */
  margin: 0 auto;
  padding: 0 20px;     /* ← 05bと合わせる */
}

.pcbDesc--05 p{
  margin: 0 0 22px;
  font-size: 14px;     /* ← お手本寄せ（大きすぎを抑える） */
  line-height: 2.0;
  letter-spacing: .02em;
  color: #111;
}
.pcbDesc--05 p:last-child{ margin-bottom: 0; }

/* ---------------------------------------------------------
   05 Responsive
--------------------------------------------------------- */
@media (max-width: 1100px){
  .businessBlock--05 .businessBlock__title{ font-size: 34px; }
}

@media (max-width: 980px){
  .businessBlock--05 .businessBlock__title{ font-size: 32px; }

  .pcbGallery--05 .pcbGallery__grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px 14px; /* 2列時も詰める */
  }
  .pcbGallery--05 .pcbCard__img img{
    height: 190px;
  }
}

@media (max-width: 780px){
  /* 05a */
  .businessBlock--05 .businessBlock__inner{
    padding: 34px 16px 18px;
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
  }
  .businessBlock--05 .businessBlock__media{
    margin-left: -16px;
    margin-right: -16px;
    justify-content: flex-start;
  }
  .businessBlock--05 .businessBlock__media img{ max-width: none; }

  /* 05b/05c */
  .pcbGallery--05 .pcbGallery__inner,
  .pcbDesc--05 .pcbDesc__inner{
    padding: 0 16px;
  }
}

@media (max-width: 640px){
  .pcbGallery--05{
    padding: 26px 0 0;
  }
  .pcbGallery--05 .pcbGallery__grid{
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .pcbGallery--05 .pcbCard__img img{
    height: 180px;
  }

  .pcbDesc--05{
    padding: 22px 0 0;
  }
  .pcbDesc--05 p{
    font-size: 14px;
    line-height: 1.9;
    margin-bottom: 18px;
  }
}

/* =========================================================
   Modal（Fancybox風：白フレーム + 灰キャプション帯）
========================================================= */
.pcbModal{
  position: fixed;
  inset: 0;
  display: none;
  z-index: 99999;
}
.pcbModal.is-open{ display: block; }

.pcbModal__overlay{
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.75);
}

.pcbModal__content{
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);

  /* お手本の “白い枠” */
  background: #fff;
  padding: 10px;

  box-shadow: 0 10px 30px rgba(0,0,0,.35);
  max-width: min(900px, 92vw);
}

.pcbModal__imgWrap{
  position: relative;
  background: #fff;
}

.pcbModal__img{
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 70vh;
}

/* 下の灰色帯（=説明/キャプション） */
.pcbModal__caption{
  display: block;
  padding: 12px 14px;
  background: rgba(0,0,0,.55);
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.3;
}

/* 右上の ×（丸ボタン寄せ） */
.pcbModal__close{
  position: absolute;
  top: -12px;
  right: -12px;

  width: 22px;
  height: 22px;
  border-radius: 50%;

  background: #fff;
  border: 2px solid #111;
  color: #111;

  display: grid;
  place-items: center;

  font-size: 16px;
  line-height: 1;
  cursor: pointer;
}

/* Responsive */
@media (max-width: 980px){
  .pcbGallery--05 .pcbGallery__grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px 14px;
  }
}

@media (max-width: 780px){
  .pcbGallery--05 .pcbGallery__inner,
  .pcbDesc--05 .pcbDesc__inner{
    padding-left: 16px;
    padding-right: 16px;
  }
}

@media (max-width: 640px){
  .pcbGallery--05{
    padding: 26px 0 0;
  }
  .pcbGallery--05 .pcbGallery__grid{
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .pcbGallery--05 .pcbCard__img img{
    height: 140px;
  }

  .pcbDesc--05{
    padding: 0 0 56px;
  }
  .pcbDesc--05 .pcbDesc__inner{
    padding-top: 18px;
  }

  .pcbModal__content{
    padding: 8px;
    max-width: 94vw;
  }
  .pcbModal__img{
    max-height: 64vh;
  }
}

/* =========================================================
   Business 06（実装） split
   06a: blue intro（05a同型）
   Row Class: businessRow--06（全幅ストレッチ）
========================================================= */

/* ---------------------------------------------------------
   Row padding kill（06 row）
--------------------------------------------------------- */
.businessRow--06,
.businessRow--06.panel-row-style,
.businessRow--06.so-panel-row{
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.businessRow--06 .so-panel{
  margin-bottom: 0 !important;
}

/* ---------------------------------------------------------
   06a: Blue intro（05a踏襲）
--------------------------------------------------------- */
.businessBlock--06{
  background: #0b55a6;
  width: 100%;
}

.businessBlock--06 .businessBlock__inner{
  max-width: none;
  margin: 0 auto;
  padding:
    clamp(44px, 5vw, 70px)
    clamp(18px, 4vw, 72px)
    clamp(40px, 4vw, 58px)
    clamp(36px, 6vw, 120px);

  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: clamp(20px, 4vw, 48px);
  min-width: 0;
}

.businessBlock--06 .businessBlock__head{ min-width: 0; color: #fff; }

.businessBlock--06 .businessBlock__index{
  display: flex;
  align-items: center;
  gap: 18px;
  margin: 0 0 18px;
}

.businessBlock--06 .businessBlock__num{
  font-size: 18px;
  font-weight: 700;
  line-height: 1;
  color: #fff;
}

.businessBlock--06 .businessBlock__dash{
  display: block;
  width: 56px;
  height: 2px;
  background: rgba(255,255,255,.85);
  transform: translateY(1px);
}

.businessBlock--06 .businessBlock__title{
  margin: 0 0 10px;
  font-size: 36px;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: .02em;
  color: #fff;

  border: 0 !important;
  text-decoration: none !important;
  box-shadow: none !important;
}
.businessBlock--06 .businessBlock__title::before,
.businessBlock--06 .businessBlock__title::after{
  content: none !important;
  display: none !important;
}

.businessBlock--06 .businessBlock__en{
  margin: 0 0 18px;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: .04em;
  color: rgba(255,255,255,.95);
}

.businessBlock--06 .businessBlock__lead{
  margin: 0;
  font-size: 13px;
  font-weight: 500;
  line-height: 2.05;
  letter-spacing: .02em;
  color: rgba(255,255,255,.95);
}

.businessBlock--06 .businessBlock__media{
  flex: 1 1 auto;
  min-width: 0;
  margin-left: auto;
  display: flex;
  justify-content: flex-end;
  align-items: flex-end;
}

.businessBlock--06 .businessBlock__media img{
  display: block;
  width: 100%;
  height: auto;
  max-width: 820px;
  margin: 0 !important;
}


/* =========================================================
   businessBlock__head（全体）: SPで空間ができる問題の解消
   - flex-basis clamp をやめる
   - PC: max-widthで読み幅制御
   - SP: max-width解除で100%
========================================================= */
.page-id-300 .businessBlock .businessBlock__head{
  flex: 0 1 auto; /* ← clampをflexに入れない */
  max-width: clamp(360px, 32vw, 460px); /* ← ここで幅を制御 */
  min-width: 0;
  color: #fff;
}

@media (max-width: 780px){
  .page-id-300 .businessBlock .businessBlock__head{
    flex: 0 0 auto;
    max-width: none;
    width: 100%;
  }
}