
/* =========================================================
   法人PC調達・構築・キッティング LP
   既存ZOAヘッダー / フッターは共通CSSを使用
   このCSSは <main> 内のLP専用スタイルです
   ========================================================= */

:root{
  --bpc-blue:#053d9c;
  --bpc-royal:#064ebf;
  --bpc-blue-dark:#022f79;
  --bpc-orange:#ff5a00;
  --bpc-orange-dark:#e94f00;
  --bpc-text:#071a3c;
  --bpc-muted:#5f6f86;
  --bpc-line:#cbdaf3;
  --bpc-pale:#f7faff;
  --bpc-white:#fff;
  --bpc-shadow:0 14px 34px rgba(4,61,156,.10);
  --bpc-radius:8px;
  --bpc-max:1180px;
}

.contents main,
.contents main *{box-sizing:border-box}

.contents main{
  color:var(--bpc-text);
  font-family:"Noto Sans JP","Yu Gothic",Meiryo,Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
}
.contents main img{max-width:100%;height:auto}
.contents main a{color:inherit;text-decoration:none}
.contents main .wrap{width:min(var(--bpc-max),calc(100% - 48px));margin-inline:auto}
.contents main .narrow{width:min(1000px,calc(100% - 48px))}

/* =========================================================
   パンくず非表示
========================================================= */

.pankuzu{
  display:none;
}


/* =========================================================
   LP上部ナビ
========================================================= */

.contents main .lp-nav{
  background:linear-gradient(90deg,#06358f 0%,#0752bd 100%);
  border-bottom:none;
}


.contents main .lp-nav-inner{
  min-height:64px;
  display:flex;
  align-items:center;
  gap:28px;
}

/* ナビメニュー */
.contents main .lp-nav-menu{
  display:flex;
  align-items:center;
  gap:28px;
  margin-right:auto;
}

.contents main .lp-nav-menu a{
  position:relative;
  color:#fff;
  font-size:20px;
  font-weight:800;
  white-space:nowrap;
}

.contents main .lp-nav-menu a::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-8px;
  height:2px;
  background:#fff;
  transform:scaleX(0);
  transition:transform .2s ease;
}

.contents main .lp-nav-menu a:hover{
  color:#fff;
  opacity:.8;
}

.contents main .lp-nav-menu a:hover::after{
  transform:scaleX(1);
}


/* 電話番号 */
.contents main .lp-nav-phone{
  display:flex;
  align-items:center;
  gap:10px;
  color:#fff;
  white-space:nowrap;
}

.contents main .lp-nav-phone > i{
  font-size:22px;
  color:#fff;
}

.contents main .lp-nav-phone span{
  display:flex;
  flex-direction:column;
  line-height:1.15;
}

.contents main .lp-nav-phone small{
  margin-bottom:3px;
  color:#fff;
  font-size:8px;
  font-weight:700;
}

.contents main .lp-nav-phone strong{
  color:#fff;
  font-size:20px;
  font-weight:900;
  letter-spacing:.01em;
}


/* お問い合わせボタン */
.contents main .lp-nav-cta{
  min-height:44px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:0 20px;

  color:#fff;
  background:linear-gradient(135deg,#ff6a00,#f45100);

  border:1px solid rgba(255,255,255,.2);
  border-radius:5px;

  box-shadow:0 6px 16px rgba(0,0,0,.15);

  font-size:12px;
  font-weight:900;
  white-space:nowrap;
}

.contents main .lp-nav-cta i{
  color:#fff;
  font-size:22px;
}

.contents main .lp-nav-cta:hover{
  color:#fff;
  opacity:.9;
}

/* FV */
.contents main .hero{
  position:relative;
  overflow:hidden;
  min-height:610px;
  background:
    linear-gradient(90deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.96) 41%,rgba(255,255,255,.10) 73%),
    url("../img/houjin-pc-kitting-lp/FV.png") right center/cover no-repeat;
}
.contents main .hero::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(180deg,rgba(255,255,255,0),rgba(246,249,255,.08));
}
.contents main .hero-inner{
  position:relative;
  z-index:1;
  min-height:610px;
  display:grid;
  grid-template-columns:56% 44%;
  align-items:center;
}
.contents main .hero-copy{padding:62px 0}
.contents main .label{
  margin:0 0 12px;
  color:var(--bpc-royal);
  font-size:14px;
  font-weight:900;
  letter-spacing:.16em;
}
.contents main .hero h1{
  margin:0;
  max-width:690px;
  font-size:clamp(36px,4vw,54px);
  line-height:1.35;
  letter-spacing:.02em;
  font-weight:900;
}
/* 「調達・構築・キッティングを、」を1行固定 */
.contents main .hero h1 .nowrap{
  white-space:nowrap;
}

/* FV説明文を3行固定 */
.contents main .hero-description{
  font-weight:700;
  line-height:1.8;
}

.contents main .hero-description span{
  display:block;
  white-space:nowrap;
}

.contents main .hero h1 strong{color:var(--bpc-blue);font-size:1.18em}
.contents main .lead{
  max-width:620px;
  margin:22px 0 0;
  font-size:14px;
  line-height:2;
  font-weight:600;
}
.contents main .tags{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  margin-top:24px;
}

.contents main .tags span{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:38px;
  padding:8px 12px;
  color:var(--bpc-blue);
  background:#fff;
  border:1px solid #dbe5f5;
  border-radius:5px;
  box-shadow:0 5px 16px rgba(5,61,156,.06);
  font-weight:900;
  font-size:14px;
}

.contents main .tags i{
  width:22px;
  color:var(--bpc-blue);
  font-size:18px;
  text-align:center;
  flex-shrink:0;
}

/* =========================================================
   FV CTA
========================================================= */

.contents main .actions{
  display:flex;
  gap:14px;
  margin-top:28px;
  max-width:650px;
}

.contents main .actions .btn{
  min-height:60px;

  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:14px;

  padding:0 24px;

  border-radius:6px;

  font-size:14px;
  line-height:1.4;
  font-weight:900;

  white-space:nowrap;

  transition:.18s ease;
}

.contents main .actions .btn:hover{
  transform:translateY(-2px);
}


/* 左：PC購入・キッティング */
.contents main .actions .orange{
  flex:1;
  color:#fff;
  background:var(--bpc-blue);
  border:2px solid var(--bpc-blue);
  box-shadow:0 8px 22px rgba(5,61,156,.20);
}


/* 右：法人向け見積り */
.contents main .actions .outline{
  flex:1;
  color:#fff;
  background:linear-gradient(135deg,#ff6a00,#f44a00);
  border:2px solid transparent;
  box-shadow:0 8px 22px rgba(255,90,0,.25);
}

/* 矢印 */
.contents main .actions .btn i{
  font-size:12px;
}


/* FV右側の旧PCステージは非表示 */
.contents main .pc-stage{
  display:none;
}

/* 共通セクション */
.contents main .section{padding:48px 0}
.contents main .pale{background:var(--bpc-pale)}
.contents main .title{margin-bottom:28px}
.contents main .title>p{
  margin:0 0 8px;
  color:var(--bpc-royal);
  font-size:14px;
  font-weight:900;
  letter-spacing:.15em;
}
.contents main .title h2{
  margin:0;
  font-size:clamp(26px,3vw,36px);
  line-height:1.4;
  font-weight:900;
}
.contents main .title>div{
  max-width:900px;
  margin-top:14px;
  color:#34455f;
  font-size:14px;
  line-height:1.95;
  font-weight:600;
}

/* =========================================================
   ABOUT 商品カード
========================================================= */

.contents main .products{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
}

/* カード */
.contents main .products article{
  min-height:auto;
  padding:16px 22px 18px;
  overflow:hidden;
  border:1px solid var(--bpc-line);
  border-radius:var(--bpc-radius);
  background:linear-gradient(145deg,#fff,#f7faff);
  box-shadow:var(--bpc-shadow);
}
.contents main .products article>h3{
  height:48px;
  margin:0 0 6px;

  display:flex;
  align-items:flex-start;
  justify-content:center;

  color:var(--bpc-blue);
  font-size:19px;
  line-height:1.4;
  font-weight:900;
  text-align:center;
}

/* メーカーPC・ZOAオリジナルPCだけ1行固定 */
.contents main .products article:nth-child(1)>h3,
.contents main .products article:nth-child(2)>h3{
  white-space:nowrap;
}


/* 画像＋説明文 */
.contents main .products .product-body{
  display:grid;
  grid-template-columns:46% 1fr;
  gap:20px;
  align-items:center;
}

/* 商品画像 */
.contents main .products .product-image{
  width:100%;
  height:115px;
  display:block;
  background-position:center;
  background-repeat:no-repeat;
  background-size:contain;
  color:transparent;
  font-size:0;
}

/* 説明文 */
.contents main .products .product-body p{
  min-width:0;
  margin:0;
  font-size:12px;
  line-height:1.85;
  font-weight:600;
}

/* メーカーPC */
.contents main .products article:nth-child(1) .product-image{
  background-image:url("../img/houjin-pc-kitting-lp/hp2009139243522.png");
}

/* ZOAオリジナルPC */
/* ZOAオリジナルPC */
.contents main .products article:nth-child(2) .product-image{
  background-image:url("../img/houjin-pc-kitting-lp/2658408_ZSJ1015-R7430U-icon-02.png");
  background-position:center;
  background-repeat:no-repeat;
  background-size:contain;

  transform:scale(1.25);
  transform-origin:center;
}
/* カスタムPC・ワークステーション */
.contents main .products article:nth-child(3) .product-image{
  background-image:url("../img/houjin-pc-kitting-lp/custom-workstation_2681599_SYS-741A-T.png");
  transform:translateY(15px);
}

/* カスタムPC・ワークステーションの見出しだけ少し上へ */
.contents main .products article:nth-child(3)>h3{
  transform:translateY(-6px);
}


/* =========================================================
   サービスラインナップ
========================================================= */

.contents main .service-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px;
}

/* カード */
.contents main .service-grid article{
  position:relative;
  min-height:180px;
  padding:22px 44% 22px 22px;
  overflow:hidden;

  border:1px solid var(--bpc-line);
  border-radius:8px;
  background:#fff;
  box-shadow:var(--bpc-shadow);
}

/* 番号 */
.contents main .service-grid article>span{
  position:absolute;
  top:18px;
  left:20px;

  width:40px;
  height:40px;

  display:flex;
  align-items:center;
  justify-content:center;

  color:var(--bpc-blue);
  background:#eaf2ff;
  border-radius:50%;

  font-size:19px;
  line-height:1;
  font-weight:900;
}

/* サービスタイトル */
.contents main .service-grid h3{
  position:relative;
  z-index:2;

  min-height:34px;
  margin:0 0 10px;
  padding-left:44px;
  padding-bottom:8px;

  display:flex;
  align-items:flex-start;

  color:var(--bpc-blue);
  font-size:15px;
  line-height:1.35;
  font-weight:900;
}

.contents main .service-grid h3::after{
  content:"";
  position:absolute;
  left:44px;
  right:0;
  bottom:0;
  height:2px;
  background:#dbe8fa;
}


/* 2・4・5・6は1行固定 */
.contents main .service-grid article:nth-child(2) h3,
.contents main .service-grid article:nth-child(4) h3,
.contents main .service-grid article:nth-child(5) h3,
.contents main .service-grid article:nth-child(6) h3{
  white-space:nowrap;
}

/* 1・3はHTMLの<br>位置だけで2行 */
.contents main .service-grid article:nth-child(1) h3,
.contents main .service-grid article:nth-child(3) h3{
  white-space:nowrap;
}

/* 説明文 */
.contents main .service-grid p{
   margin:20px 0 0;

  font-size:12px;
  line-height:1.45;
  font-weight:600;
}

/* 右側画像 */
.contents main .service-grid article::before{
  content:"";
  position:absolute;

  right:12px;
  bottom:10px;

  width:42%;
  height:72%;

  background-position:right bottom;
  background-repeat:no-repeat;
  background-size:contain;

  pointer-events:none;
}

/* 01：PC・ワークステーション組み立て */
.contents main .service-grid article:nth-child(1)::before{
  background-image:url("../img/houjin-pc-kitting-lp/service-05-custom-pc.png");
}

/* 02：キッティング */
.contents main .service-grid article:nth-child(2)::before{
  background-image:url("../img/houjin-pc-kitting-lp/service-02-kitting.png");

  right:0;
  bottom:0;

  width:52%;
  height:88%;

  background-position:right bottom;
  background-size:contain;

  /* 左側を自然にフェード */
  -webkit-mask-image:linear-gradient(
    to right,
    transparent 0%,
    rgba(0,0,0,.35) 10%,
    #000 24%,
    #000 100%
  );

  mask-image:linear-gradient(
    to right,
    transparent 0%,
    rgba(0,0,0,.35) 10%,
    #000 24%,
    #000 100%
  );
}

/* 03 */
.contents main .service-grid article:nth-child(3)::before{
  background-image:url("../img/houjin-pc-kitting-lp/service-03-hdd-screening.png");
}

/* 04 */
.contents main .service-grid article:nth-child(4)::before{
  background-image:url("../img/houjin-pc-kitting-lp/service-04-os-install.png");
}

/* 05 */
.contents main .service-grid article:nth-child(5)::before{
  background-image:url("../img/houjin-pc-kitting-lp/service-05-custom-pc.png");
}

/* 06 */
.contents main .service-grid article:nth-child(6)::before{
  background-image:url("../img/houjin-pc-kitting-lp/service-06-pc-deployment.png");
}

/* =========================================================
   RECOMMEND / STRENGTH
========================================================= */

.contents main .recommend{
  background:linear-gradient(90deg,#f4f8ff,#fff,#f4f8ff);
}

.contents main .icon-grid{
  display:grid;
  gap:14px;
}

/* RECOMMEND：3列 × 2段 */
.contents main .icon-grid.six{
  grid-template-columns:repeat(3,1fr);
  gap:14px;
}

.contents main .recommend .icon-grid article{
  min-height:150px;
  padding:18px 8px;
}

/* STRENGTH：5列 */
.contents main .icon-grid.five{
  grid-template-columns:repeat(5,1fr);
}

/* カード共通 */
.contents main .icon-grid article{
  min-height:165px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;

  text-align:center;

  border:1px solid var(--bpc-line);
  border-radius:6px;
  background:#fff;

  box-shadow:0 8px 24px rgba(5,61,156,.06);
}

/* HTMLに入っている仮記号を非表示 */
.contents main .icon-grid b{
  font-size:0;
}

/* Font Awesome アイコン */
.contents main .icon-grid b::before{
  display:block;
  margin-bottom:14px;

  color:var(--bpc-blue);

  font-family:"Font Awesome 6 Free";
  font-weight:900;
  font-size:42px;
  line-height:1;
}

/* =========================
   RECOMMEND アイコン
========================= */

/* 大量PC一括導入 */
.contents main .recommend .bulk-pc{
  display:flex;
  align-items:flex-end;
  justify-content:center;
  gap:5px;

  margin-bottom:14px;

  font-size:0;
}

.contents main .recommend .bulk-pc i{
  color:var(--bpc-blue);
  font-size:30px;
}

/* 中央のPCを少し大きく */
.contents main .recommend .bulk-pc i:nth-child(2){
  font-size:38px;
}

/* 02：届いた日からすぐ使いたい */
.contents main .recommend .icon-grid article:nth-child(2) b{
  position:relative;
  width:64px;
  height:48px;
  display:block;
  margin-bottom:14px;
}

/* 時計 */
.contents main .recommend .icon-grid article:nth-child(2) b::before{
  content:"\f017";

  position:absolute;
  right:0;
  top:2px;

  margin:0;

  color:var(--bpc-blue);

  font-family:"Font Awesome 6 Free";
  font-weight:900;
  font-size:42px;
  line-height:1;
}

/* スピード線 */
.contents main .recommend .icon-grid article:nth-child(2) b::after{
  content:"";

  position:absolute;
  left:0;
  top:12px;

  width:22px;
  height:3px;

  background:var(--bpc-blue);

  box-shadow:
    5px 9px 0 var(--bpc-blue),
    0 18px 0 var(--bpc-blue);

  border-radius:3px;
}

.contents main .recommend .icon-grid article:nth-child(3) b::before{
  content:"\f2db";
}

/* 04：複数拠点へ展開したい */
.contents main .recommend .multi-office{
  height:52px;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  gap:3px;
  margin-bottom:14px;
  font-size:0;
}

.contents main .recommend .multi-office i{
  color:var(--bpc-blue);
  font-size:31px;
}

/* 中央だけ高くして「複数拠点」感を出す */
.contents main .recommend .multi-office i:nth-child(2){
  font-size:43px;
}

.contents main .recommend .icon-grid article:nth-child(5) b::before{
  content:"\f2f1";
}

.contents main .recommend .icon-grid article:nth-child(6) b::before{
  content:"\f590";
}

/* =========================
   STRENGTH アイコン
========================= */

.contents main #strength .icon-grid article:nth-child(1) b::before{
  content:"\f1ad";
}

.contents main #strength .icon-grid article:nth-child(2) b::before{
  content:"\f54f";
}

.contents main #strength .icon-grid article:nth-child(3) b::before{
  content:"\f5da";
}

.contents main #strength .icon-grid article:nth-child(4) b::before{
  content:"\f0a1";
}

.contents main #strength .icon-grid article:nth-child(5) b::before{
  content:"\f590";
}

/* テキスト */
.contents main .icon-grid p{
  margin:0;

  color:var(--bpc-blue);
  font-size:13px;
  line-height:1.6;
  font-weight:900;
}

/* =========================================================
   導入事例
========================================================= */

.contents main .case-head{
  margin:0 0 20px;
  font-size:22px;
}

.contents main .case-head small{
  font-size:16px;
  font-weight:700;
}


/* =========================================================
   画像・課題・ZOA対応 3カラム
========================================================= */

.contents main .case-grid{
  display:grid;

  /* ZOA対応だけ320px固定 */
  grid-template-columns:
    minmax(0,1.4fr)
    minmax(0,.75fr)
    320px;

  gap:14px;
  align-items:stretch;
}


/* =========================================================
   3つの天地を統一
========================================================= */

.contents main .meeting,
.contents main .case-grid>article{
  height:300px;
  min-width:0;
  box-sizing:border-box;
}


/* =========================================================
   導入事例画像
========================================================= */

.contents main .meeting{
  width:100%;
  overflow:hidden;

  border-radius:6px;
  background:#f5f5f5;
}


/* 画像自体の比率を固定 */
.contents main .meeting img{
  display:block;

  width:100%;
  height:100%;

  /*
   枠いっぱいには表示するが、
   トリミングの基準位置を固定
  */
  object-fit:cover;
  object-position:center center;
}


/* =========================================================
   課題・対応カード共通
========================================================= */

.contents main .case-grid>article{
  width:100%;
  min-width:0;

  padding:24px 26px;

  border:1px solid var(--bpc-line);
  border-radius:6px;

  background:#fff;

  /*
   文字が消えないようにする
  */
  overflow:visible;
}


/* =========================================================
   課題
========================================================= */

.contents main .case-grid>article:not(.solution){
  width:100%;
  min-width:0;

  background:#f5f5f5;
}


/* 課題 見出し */
.contents main .case-grid>article:not(.solution) h3{
  margin:0 0 18px;
  padding:0;

  font-size:20px;
  line-height:1.4;
  font-weight:900;
}


/* 課題 リスト */
.contents main .case-grid>article:not(.solution) ul{
  margin:0;
  padding-left:24px;
}


/* 課題 各項目 */
.contents main .case-grid>article:not(.solution) li{
  margin:0 0 14px;
  padding-left:2px;

  font-size:16px;
  line-height:1.55;
  font-weight:700;

  /*
   狭くなっても文字を消さず、
   カード内で自然に折り返す
  */
  white-space:normal;
  overflow-wrap:break-word;
  word-break:normal;
}

.contents main .case-grid>article:not(.solution) li:last-child{
  margin-bottom:0;
}


/* =========================================================
   ZOAの対応
========================================================= */

.contents main .solution{
  width:100%;
  min-width:0;

  background:#fff;

  border:2px solid var(--bpc-royal)!important;

  /*
   青見出しも含めてカード内で表示
  */
  overflow:hidden;
}


/* ZOAの対応 見出し */
.contents main .solution h3{
  width:max-content;

  margin:-24px -26px 14px;
  padding:10px 18px;

  color:#fff;
  background:var(--bpc-royal);

  font-size:20px;
  line-height:1.4;
  font-weight:900;
}


/* ZOA対応 リスト */
.contents main .solution ul{
  margin:0;
  padding-left:24px;
}


/* ZOA対応 各項目 */
.contents main .solution li{
  margin:8px 0;

  font-size:15px;
  line-height:1.5;
  font-weight:700;

  /* ZOA対応は固定幅なので1行維持 */
  white-space:nowrap;
}


/* チェック */
.contents main .solution li::marker{
  content:"✓  ";
  color:var(--bpc-royal);
}
/* =========================
   下部結果バー
========================= */

.contents main .result{
  margin-top:22px;
  padding:18px;

  color:#fff;
  background:linear-gradient(90deg,#013490,#0756c7,#013490);

  text-align:center;
  border-radius:5px;

  font-size:0;
  font-weight:700;
}

.contents main .result::before{
  content:"\f2b5";
  margin-right:12px;

  font-family:"Font Awesome 6 Free";
  font-weight:900;
  font-size:22px;
}

.contents main .result b{
  font-size:20px;
}

/* =========================================================
   フロー
========================================================= */

.contents main .flow-title{
  margin:50px 0 40px;
  text-align:center;
  font-size:30px;
}

.contents main .flow{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:0;

  border:1px solid var(--bpc-line);
  border-radius:6px;
  background:#fff;
  overflow:visible;
}

.contents main .flow article{
  position:relative;
  min-height:125px;
  padding:28px 15px 22px;

  text-align:center;
  border-right:1px solid var(--bpc-line);
}

/* 最後だけ右線なし */
.contents main .flow article:last-child{
  border-right:0;
}


/* =========================
   工程間の矢印
========================= */

.contents main .flow article:not(:last-child)::after{
  content:"›";

  position:absolute;
  top:50%;
  right:-8px;
  transform:translateY(-50%);
  z-index:10;

  width:16px;
  height:30px;

  display:flex;
  align-items:center;
  justify-content:center;

  color:var(--bpc-blue);
  background:#fff;

  font-size:25px;
  line-height:1;
  font-weight:900;
}


/* =========================
   番号
========================= */

.contents main .flow span{
  position:absolute;
  top:-16px;
  left:50%;

  width:32px;
  height:32px;

  display:grid;
  place-items:center;

  transform:translateX(-50%);

  color:#fff;
  background:var(--bpc-blue);
  border-radius:50%;

  font-weight:900;
  z-index:5;
}


/* =========================
   タイトル
========================= */

.contents main .flow h4{
  margin:10px 0 6px;

  color:var(--bpc-blue);
  font-size:14px;
  font-weight:900;
}


/* =========================
   説明文
========================= */

.contents main .flow p{
  margin:0;
  font-size:15px;
  line-height:1.65;
  white-space:nowrap;
}

/* =========================================================
   FAQ
========================================================= */

.contents main .faq{
  padding-top:52px;
}

.contents main .faq h2{
  margin:0 0 24px;
  text-align:center;
  font-size:30px;
}

.contents main .faq details{
  border-bottom:1px solid var(--bpc-line);
  background:#fff;
}

/* 質問 */
.contents main .faq summary{
  position:relative;

  padding:20px 54px 20px 20px;

  cursor:pointer;
  list-style:none;

  font-size:16px;
  line-height:1.6;
  font-weight:800;
}

.contents main .faq summary::-webkit-details-marker{
  display:none;
}

/* ＋ / − */
.contents main .faq summary::after{
  content:"+";

  position:absolute;
  right:20px;
  top:50%;

  transform:translateY(-50%);

  color:var(--bpc-blue);

  font-size:24px;
  line-height:1;
  font-weight:700;
}

.contents main .faq details[open] summary::after{
  content:"−";
}

.contents main .faq summary b,
.contents main .faq details p b{
  color:var(--bpc-royal);
}

/* 回答 */
.contents main .faq details p{
  margin:0;

  padding:18px 20px;

  background:#f6f9fe;

  font-size:15px;
  line-height:1.8;
}

/* =========================================================
   CONTACT 比率完全連動版
========================================================= */

.contents main .contact{
  position:relative;

  width:min(1180px, calc(100% - 48px));
  max-width:1180px;

  aspect-ratio:6 / 1;

  margin:0 auto;
  overflow:hidden;

  color:#fff;

  background:linear-gradient(
    90deg,
    #003894 0%,
    #0758c7 58%,
    #123b78 100%
  );

  box-sizing:border-box;

  /* CONTACT自身の幅を基準にする */
  container-type:inline-size;
}


/* =========================================================
   人物
========================================================= */

.contents main .contact::after{
  content:"";

  position:absolute;
  right:2.2%;
  bottom:0;

  width:25%;
  height:100%;

  background:
    url("../img/houjin-pc-kitting-lp/contact-support-staff.png")
    right bottom / contain no-repeat;

  pointer-events:none;
}


/* =========================================================
   CONTACT内部
========================================================= */

.contents main .contact-inner{
  position:absolute !important;
  inset:0 !important;

  z-index:2;

  width:100% !important;
  height:100% !important;

  display:grid !important;

  /* 左 ｜ CTA ｜ 人物 */
  grid-template-columns:42% 34% 24% !important;

  align-items:center !important;

  margin:0 !important;
  padding:0 3.5% !important;

  box-sizing:border-box !important;
}


/* =========================================================
   左テキスト
========================================================= */

.contents main .contact-inner>div:first-child{
  width:100% !important;
  min-width:0 !important;

  margin:0 !important;
  padding:0 2.2cqw 0 0 !important;

  box-sizing:border-box !important;
}


/* CONTACT */
.contents main .contact .label{
  margin:0 0 .6cqw !important;

  color:#c8dcff !important;

  font-size:1.2cqw !important;
  line-height:1.2 !important;

  font-weight:900 !important;
  letter-spacing:.15em !important;
}


/* 法人PC導入のご相談は、ZOAへ。 */
.contents main .contact h2{
  margin:0 0 .75cqw !important;

  color:#fff !important;

  font-size:2.5cqw !important;
  line-height:1.22 !important;

  font-weight:900 !important;

  white-space:nowrap !important;
}


/* 説明文 */
.contents main .contact p{
  margin:0 !important;

  color:#fff !important;

  font-size:1.25cqw !important;      /* 文字を少し大きく */
  line-height:1.65 !important;

  letter-spacing:.04em !important;  /* ← 文字間を広げる */

  font-weight:700 !important;

  white-space:nowrap !important;
}

/* =========================================================
   CTAエリア
========================================================= */

.contents main .contact-inner>div:last-child{
  grid-column:2;

  width:100% !important;

  display:flex !important;
  flex-direction:column !important;

  gap:.65cqw !important;

  justify-self:start !important;
  align-self:center !important;

  margin:0 !important;
  padding:0 !important;

  position:relative;
  z-index:3;

  /* 人物側へ少し寄せる */
  transform:translateX(1.6cqw) !important;
}


/* =========================================================
   オレンジボタン
========================================================= */

.contents main .contact .btn.orange{
  width:112% !important;

  height:5.6cqw !important;
  min-height:0 !important;

  display:flex !important;
  align-items:center !important;
  justify-content:center !important;

  padding:0 1.2cqw !important;

  box-sizing:border-box !important;

  color:#fff !important;
  background:#ff5a00 !important;

  border:0 !important;
  border-radius:.4cqw !important;

  /* CTA文字をさらに大きく */
  font-size:1.85cqw !important;
  line-height:1 !important;

  font-weight:900 !important;

  white-space:nowrap !important;
}


/* メールアイコン */
.contents main .contact .btn.orange i{
  margin-right:.9cqw !important;

  color:#fff !important;

  /* アイコンもさらに大きく */
  font-size:2.35cqw !important;

  flex-shrink:0 !important;
}

/* =========================================================
   電話ボタン
========================================================= */

.contents main .contact-phone{
  width:112% !important;

  height:5.6cqw !important;
  min-height:0 !important;

  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  align-content:center !important;
  flex-wrap:wrap !important;

  padding:.35cqw 1.2cqw !important;

  box-sizing:border-box !important;

  color:#fff !important;
  background:rgba(0,55,145,.30) !important;

  border:.08cqw solid rgba(255,255,255,.9) !important;
  border-radius:.4cqw !important;
}


.contents main .contact-phone i{
  margin-right:.65cqw !important;

  color:#fff !important;

  font-size:1.7cqw !important;
}


.contents main .contact-phone span{
  color:#fff !important;

  font-size:2cqw !important;
  line-height:1 !important;

  font-weight:900 !important;

  white-space:nowrap !important;
}


.contents main .contact-phone small{
  width:100% !important;

  margin-top:.18cqw !important;

  color:#fff !important;

  text-align:center !important;

  font-size:.7cqw !important;
  line-height:1 !important;

  font-weight:700 !important;
}

/* =========================================================
   電話リンク PC / SP 切り替え
========================================================= */

/* PCではリンクなし版を表示 */
.contents main .contact-phone-pc{
  display:flex !important;
}

/* スマホ用リンクは非表示 */
.contents main .contact-phone-sp{
  display:none !important;
}


/* スマホ */
@media (max-width:767px){

  /* PC用を非表示 */
  .contents main .contact-phone-pc{
    display:none !important;
  }

  /* スマホでは電話リンクを表示 */
  .contents main .contact-phone-sp{
    display:flex !important;
  }

}


/* =========================================================
   スマホ
========================================================= */

@media (max-width:767px){

  .contents main .contact{
    aspect-ratio:auto;
    min-height:430px !important;
  }

  .contents main .contact-inner{
    position:relative !important;

    display:block !important;

    height:auto !important;

    padding:30px 24px 190px !important;
  }

  .contents main .contact .label{
    font-size:11px !important;
  }

  .contents main .contact h2{
    font-size:22px !important;
    white-space:normal !important;
  }

  .contents main .contact p{
    font-size:12px !important;
    white-space:normal !important;
  }

  .contents main .contact-inner>div:last-child{
    width:100% !important;
    max-width:340px !important;

    margin-top:22px !important;
  }

  .contents main .contact::after{
    right:10px !important;
    bottom:0 !important;

    width:230px !important;
    height:180px !important;
  }

  .contents main .contact .btn.orange,
  .contents main .contact-phone{
    width:100% !important;

    height:52px !important;
    min-height:52px !important;

    aspect-ratio:auto !important;
  }

  .contents main .contact .btn.orange{
    font-size:13px !important;
  }

  .contents main .contact-phone span{
    font-size:20px !important;
  }

  .contents main .contact-phone small{
    font-size:8px !important;
  }
}




/* タブレット */
@media (max-width:1050px){
  .contents main .hero h1{font-size:40px}
  .contents main .products article{padding:22px;gap:16px}
  .contents main .products article>b{min-width:100px}
  .contents main .icon-grid.six{grid-template-columns:repeat(3,1fr)}
  .contents main .contact-inner>div:last-child{padding-right:70px}
}

/* スマホ */
@media (max-width:760px){
  .contents main .wrap,
  .contents main .narrow{width:min(100% - 32px,600px)}

  .contents main .hero{
    min-height:auto;
    padding-bottom:240px;
    background:
      linear-gradient(180deg,#fff 0%,rgba(255,255,255,.96) 58%,rgba(255,255,255,.18) 80%),
      url("../img/houjin-pc-kitting-lp/FV.png") center bottom/cover no-repeat;
  }
  .contents main .hero-inner{min-height:auto;display:block}
  .contents main .hero-copy{padding:46px 0 20px}
  .contents main .hero h1{font-size:31px}
  .contents main .lead{font-size:12px}
  .contents main .actions{flex-direction:column;max-width:100%}
  .contents main .btn{width:100%}
  .contents main .section{padding:50px 0}
  .contents main .title h2{font-size:24px}

  .contents main .products,
  .contents main .service-grid,
  .contents main .case-grid{grid-template-columns:1fr}

  .contents main .products article{min-height:160px}
  .contents main .products article>b{width:36%;min-width:105px;height:110px}
  .contents main .service-grid article{min-height:245px}

  .contents main .icon-grid.six,
  .contents main .icon-grid.five{grid-template-columns:repeat(2,1fr)}
  .contents main .icon-grid.five article:last-child{grid-column:1/-1}

  .contents main .case-head{font-size:18px}
  .contents main .case-head small{display:block;margin-top:6px;font-size:13px}
  .contents main .meeting{min-height:220px}
  .contents main .result b{font-size:15px}

  .contents main .flow{grid-template-columns:1fr;gap:16px;border:0;background:transparent}
  .contents main .flow article{
    min-height:100px;
    border:1px solid var(--bpc-line)!important;
    border-radius:6px;
    background:#fff;
  }

  .contents main .contact::after{opacity:.22;width:75%}
  .contents main .contact-inner{
    min-height:370px;
    grid-template-columns:1fr;
    gap:24px;
    padding:44px 0;
  }
  .contents main .contact h2{font-size:24px}
  .contents main .contact-inner>div:last-child{padding-right:0;max-width:360px}
  .contents main .faq h2{font-size:25px}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .contents main .btn{transition:none}
}

/* ========================================
   スマホ：上部ナビ 電話番号表示
======================================== */
@media (max-width:767px){

  .contents main .lp-nav-phone{
    grid-column:1 / -1;
    display:flex;
    justify-content:center;
    margin:0 0 12px;
  }

  .contents main .lp-nav-phone > i{
    font-size:20px;
  }

  .contents main .lp-nav-phone small{
    font-size:9px;
  }

  .contents main .lp-nav-phone strong{
    font-size:20px;
  }

  .contents main .lp-nav-cta{
    grid-column:1 / -1;
  }

}

/* スマホ専用改行：PCでは非表示 */
.contents main .sp-br{
  display:none;
}




/* =========================================================
   RESPONSIVE OVERRIDE
   tablet / smartphone
   既存PCデザインを維持したまま末尾で上書き
========================================================= */

/* ---------- タブレット：768px - 1050px ---------- */
@media (max-width:1050px) and (min-width:768px){
  .contents main .wrap,
  .contents main .narrow{
    width:min(100% - 40px, 960px);
  }

  /* LP上部ナビ */
  .contents main .lp-nav-inner{
    gap:16px;
  }
  .contents main .lp-nav-menu{
    gap:20px;
  }
  .contents main .lp-nav-menu a{
    font-size:16px;
  }
  .contents main .lp-nav-phone{
    display:flex;
  }
  .contents main .lp-nav-cta{
    min-height:42px;
    padding:0 16px;
  }

  /* FV */
  .contents main .hero{
    min-height:560px;
    background:
      linear-gradient(90deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.96) 49%,rgba(255,255,255,.28) 74%),
      url("../img/houjin-pc-kitting-lp/FV.png") 68% center/cover no-repeat;
  }
  .contents main .hero-inner{
    min-height:560px;
    grid-template-columns:64% 36%;
  }
  .contents main .hero-copy{
    padding:48px 0;
  }
  .contents main .hero h1{
    font-size:38px;
  }
  .contents main .hero-description{
    font-size:13px;
  }
  .contents main .hero-description span{
    white-space:normal;
  }
  .contents main .actions{
    max-width:600px;
  }
  .contents main .actions .btn{
    min-height:56px;
    padding:0 16px;
    font-size:13px;
  }

  /* ABOUT */
  .contents main .products{
    gap:14px;
  }
  .contents main .products article{
    padding:16px;
  }
  .contents main .products .product-body{
    grid-template-columns:42% 1fr;
    gap:14px;
  }
  .contents main .products .product-body p{
    font-size:11px;
  }

  /* サービス */
  .contents main .service-grid{
    grid-template-columns:repeat(2,1fr);
  }

  /* 導入事例 */
  .contents main .case-grid{
    grid-template-columns:1.15fr .85fr;
  }
  .contents main .case-grid .meeting{
    grid-row:span 2;
    height:auto;
    min-height:360px;
  }
  .contents main .case-grid>article{
    height:auto;
    min-height:173px;
  }
  .contents main .solution li{
    white-space:normal;
  }

  /* フロー */
  .contents main .flow h4{
    font-size:13px;
  }
  .contents main .flow p{
    font-size:11px;
    white-space:normal;
  }

  /* CONTACT */
  .contents main .contact{
    width:min(100% - 40px, 960px);
  }
}

/* ---------- スマホ：767px以下 ---------- */
@media (max-width:767px){
    
    .contents main .about-nowrap{
  white-space:nowrap;
  font-size:0.88em;
  letter-spacing:-0.04em;
}

  /* スマホのみ改行 */
  .contents main .sp-br{
    display:block;
  }

  .contents main .wrap,
  .contents main .narrow{
    width:min(calc(100% - 28px), 600px);
  }


  /* LP上部ナビ：メニューを横スクロール＋CTAを下段 */
  .contents main .lp-nav{
    position:relative;
  }
  .contents main .lp-nav-inner{
    width:100%;
    min-height:auto;
    display:grid;
    grid-template-columns:1fr auto;
    gap:0;
    padding:0 14px 12px;
  }
  .contents main .lp-nav-menu{
    grid-column:1 / -1;
    width:calc(100% + 28px);
    margin:0 -14px 10px;
    padding:12px 14px;
    gap:22px;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
  }
  .contents main .lp-nav-menu::-webkit-scrollbar{
    display:none;
  }
  .contents main .lp-nav-menu a{
    flex:0 0 auto;
    font-size:12px;
  }
  .contents main .lp-nav-menu a::after{
    display:none;
  }
  .contents main .lp-nav-phone{
    display:flex;
  }
  .contents main .lp-nav-cta{
    grid-column:1 / -1;
    width:100%;
    min-height:44px;
    padding:0 14px;
    font-size:12px;
  }
  .contents main .lp-nav-cta i{
    font-size:18px;
  }

/* FV */
.contents main .hero{
  min-height:auto;
  padding-bottom:0;
  background:#fff;
}
    
  .contents main .hero-inner{
    min-height:auto;
    display:block;
  }

.contents main .hero-inner::before{
  content:"";
  display:block;

  width:100vw;
  height:250px;

  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);

  background:
    linear-gradient(
      to bottom,
      rgba(255,255,255,0) 70%,
      #fff 100%
    ),
    url("../img/houjin-pc-kitting-lp/FV.png");

  background-repeat:no-repeat;
  background-position:70% 70%;
  background-size:cover;
}

.contents main .hero-copy{
  position:relative;
  z-index:2;
  margin-top:-70px;
  padding:0 0 18px;
}
  .contents main .label{
    font-size:10px;
  }
.contents main .hero h1{
  max-width:none;
  font-size:clamp(27px,8vw,34px);
  line-height:1.38;
  font-weight:900 !important;
}
.contents main .hero h1 .nowrap{
  white-space:nowrap;
  letter-spacing:-0.06em;
  font-size:0.88em;
  font-weight:900 !important;
}
  .contents main .hero-description{
    margin-top:18px;
    font-size:12px;
    line-height:1.75;
  }
  .contents main .hero-description span{
    display:inline;
    white-space:normal;
  }
  .contents main .hero-description span:not(:last-child)::after{
    content:" ";
  }
  .contents main .tags{
    gap:7px;
    margin-top:20px;
  }
  .contents main .tags span{
    min-height:34px;
    padding:7px 9px;
    font-size:11px;
  }
  .contents main .tags i{
    width:18px;
    font-size:15px;
  }
  .contents main .actions{
    flex-direction:column;
    gap:10px;
    width:100%;
    max-width:none;
    margin-top:22px;
  }
  .contents main .actions .btn{
    width:100%;
    min-height:54px;
    padding:0 16px;
    font-size:13px;
    white-space:normal;
  }

  /* セクション共通 */
  .contents main .section{
    padding:48px 0;
  }
  .contents main .title{
    margin-bottom:22px;
  }
  .contents main .title h2{
    font-size:22px;
    line-height:1.4;
  }

  /* ABOUT見出し：長いため少しだけ小さく調整 */
.contents main .about-title{
  font-size:20px;
  line-height:1.45;
  letter-spacing:-0.03em;
  font-weight:900 !important;
}
    
.contents main .about-title span{
  font-weight:900 !important;
}
    
  .contents main .title>div{
    font-size:12px;
    line-height:1.8;
  }

  /* ABOUT：1列、画像＋文章は横並び */
  .contents main .products{
    grid-template-columns:1fr;
    gap:12px;
  }
  .contents main .products article{
    min-height:0;
    padding:16px;
  }
  .contents main .products article>h3{
    height:auto;
    min-height:34px;
    margin-bottom:8px;
    font-size:17px;
  }
  .contents main .products article:nth-child(3)>h3{
    transform:none;
  }
  .contents main .products .product-body{
    grid-template-columns:38% 1fr;
    gap:14px;
  }
  .contents main .products .product-image{
    height:100px;
  }
  .contents main .products article:nth-child(2) .product-image{
    transform:scale(1.12);
  }
  .contents main .products .product-body p{
    font-size:12px;
    line-height:1.75;
  }

/* サービス：スマホ 2列 */
.contents main .service-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
    
  .contents main .service-grid article{
    min-height:170px;
    padding:20px 42% 20px 18px;
  }
  .contents main .service-grid article>span{
    top:16px;
    left:16px;
    width:36px;
    height:36px;
    font-size:17px;
  }
  .contents main .service-grid h3{
    min-height:30px;
    padding-left:42px;
    font-size:14px;
  }
  .contents main .service-grid article:nth-child(n) h3{
    white-space:normal;
  }
  .contents main .service-grid p{
    font-size:11px;
  }
  .contents main .service-grid article::before{
    right:6px;
    width:42%;
    height:76%;
  }
  .contents main .service-grid article:nth-child(2)::before{
    width:48%;
    height:82%;
  }

  /* RECOMMEND / STRENGTH */
  .contents main .icon-grid.six,
  .contents main .icon-grid.five{
    grid-template-columns:repeat(2,1fr);
    gap:10px;
  }
  .contents main .icon-grid.five article:last-child{
    grid-column:1 / -1;
  }
  .contents main .recommend .icon-grid article,
  .contents main .icon-grid article{
    min-height:132px;
    padding:14px 6px;
  }
  .contents main .icon-grid b::before{
    margin-bottom:10px;
    font-size:34px;
  }
  .contents main .recommend .bulk-pc,
  .contents main .recommend .multi-office{
    margin-bottom:10px;
  }
  .contents main .icon-grid p{
    font-size:11px;
  }

  /* 導入事例 */
  .contents main .case-head{
    margin-bottom:16px;
    font-size:18px;
    line-height:1.5;
  }
  .contents main .case-head small{
    display:block;
    margin-top:4px;
    font-size:12px;
  }
  .contents main .case-grid{
    grid-template-columns:1fr;
    gap:12px;
  }
  .contents main .meeting,
  .contents main .case-grid>article{
    height:auto;
  }
  .contents main .meeting{
    aspect-ratio:16 / 10;
    min-height:0;
  }
  .contents main .case-grid>article{
    min-height:0;
    padding:20px;
  }
  .contents main .case-grid>article:not(.solution) h3,
  .contents main .solution h3{
    font-size:18px;
  }
  .contents main .case-grid>article:not(.solution) li,
  .contents main .solution li{
    font-size:13px;
    white-space:normal;
  }
  .contents main .solution h3{
    margin:-20px -20px 14px;
  }
  .contents main .result{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    padding:15px 12px;
  }
  .contents main .result::before{
    margin-right:0;
    font-size:18px;
  }
  .contents main .result b{
    font-size:13px;
    line-height:1.55;
  }

/* フロー：縦並び */  
/* フロー：数字を左へ移動して矢印との重なりを防ぐ */
.contents main .flow span{
  top:14px;
  left:16px;
  transform:none;
}
    
.contents main .flow article{
  padding:20px 18px 16px;
}

.contents main .flow h4{
  margin:0 0 4px;
}

.contents main .flow p{
  margin:0;
}    
    
  .contents main .flow-title{
    margin:42px 0 30px;
    font-size:24px;
  }
  .contents main .flow{
    grid-template-columns:1fr;
    gap:14px;
    border:0;
    background:transparent;
  }
.contents main .flow article{
  min-height:0;
  padding:20px 18px 16px;
  border:1px solid var(--bpc-line) !important;
  border-radius:6px;
  background:#fff;
}
  .contents main .flow article:not(:last-child)::after{
    content:"↓";
    top:auto;
    right:50%;
    bottom:-19px;
    width:28px;
    height:24px;
    transform:translateX(50%);
    font-size:19px;
  }
.contents main .flow h4{
  margin:0 0 4px;
  font-size:14px;
}
  .contents main .flow p{
    font-size:12px;
    white-space:normal;
  }

  /* FAQ */
  .contents main .faq{
    padding-top:44px;
  }
  .contents main .faq h2{
    margin-bottom:18px;
    font-size:24px;
  }
  .contents main .faq summary{
    padding:17px 46px 17px 14px;
    font-size:13px;
  }
  .contents main .faq summary::after{
    right:14px;
    font-size:21px;
  }
  .contents main .faq details p{
    padding:15px 14px;
    font-size:12px;
  }

  /* CONTACT：縦長カード */
  .contents main .contact{
    width:calc(100% - 28px);
    min-height:470px !important;
    margin:0 auto;
  }
  .contents main .contact-inner{
    position:relative !important;
    inset:auto !important;
    display:block !important;
    width:100% !important;
    height:auto !important;
    min-height:470px !important;
    padding:28px 20px 190px !important;
  }
  .contents main .contact-inner>div:first-child{
    padding:0 !important;
  }
  .contents main .contact .label{
    margin-bottom:7px !important;
    font-size:10px !important;
  }
  .contents main .contact h2{
    margin-bottom:10px !important;
    font-size:21px !important;
    line-height:1.4 !important;
    white-space:normal !important;
  }
  .contents main .contact p{
    font-size:11px !important;
    line-height:1.7 !important;
    white-space:normal !important;
  }
  .contents main .contact p br{
    display:none;
  }
  .contents main .contact-inner>div:last-child{
    width:100% !important;
    max-width:none !important;
    display:flex !important;
    gap:8px !important;
    margin:20px 0 0 !important;
    padding:0 !important;
    transform:none !important;
  }
  .contents main .contact .btn.orange,
  .contents main .contact-phone{
    width:100% !important;
    height:52px !important;
    min-height:52px !important;
    border-radius:5px !important;
  }
  .contents main .contact .btn.orange{
    padding:0 12px !important;
    font-size:13px !important;
  }
  .contents main .contact .btn.orange i{
    margin-right:8px !important;
    font-size:18px !important;
  }
  .contents main .contact-phone{
    padding:4px 12px !important;
  }
  .contents main .contact-phone i{
    margin-right:7px !important;
    font-size:16px !important;
  }
  .contents main .contact-phone span{
    font-size:19px !important;
  }
  .contents main .contact-phone small{
    margin-top:2px !important;
    font-size:8px !important;
  }

.contents main .contact::after{
  right:0 !important;
  bottom:0 !important;
  width:280px !important;
  height:260px !important;
  opacity:1 !important;
}
/* =========================================
   サービスラインナップ：スマホ2列 調整
========================================= */

.contents main .service-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}

.contents main .service-grid article{
  min-width:0;
  min-height:190px;
  padding:14px 12px 60px;
}

/* 番号 */
.contents main .service-grid article>span{
  position:static;
  width:36px;
  height:36px;
  margin:0 0 10px 0;

  display:flex;
  align-items:center;
  justify-content:center;

  font-size:16px;
}

/* タイトル */
.contents main .service-grid h3{
  min-height:auto;
  margin:0 0 10px;
  padding:0 0 8px;

  display:block;

  font-size:14px;
  line-height:1.35;
  text-align:left;

  white-space:normal !important;
word-break:normal;
overflow-wrap:anywhere;
}

/* タイトル下の線：スマホでは左端から */
.contents main .service-grid h3::after{
  left:0;
  right:0;
  bottom:0;
}

/* 説明文 */
.contents main .service-grid p{
  margin:0;
  padding:0;

  font-size:12px;
  line-height:1.4;
  font-weight:700;
  text-align:left;

  word-break:normal;
  overflow-wrap:break-word;
}

/* 画像 */
.contents main .service-grid article::before{
  right:8px;
  bottom:8px;
  width:58%;
  height:74px;

  background-position:right bottom;
  background-repeat:no-repeat;
  background-size:contain;
}

/* ① PC・ワークステーション */
.contents main .service-grid article:nth-child(1)::before{
  bottom:6px;
  height:62px;
}

/* ⑤ CTO・カスタムPCサービス */
.contents main .service-grid article:nth-child(5)::before{
  bottom:10px;
  height:62px;
}

/* キッティング画像 */
.contents main .service-grid article:nth-child(2)::before{
  right:0;
  bottom:0;
  width:68%;
  height:82px;

  -webkit-mask-image:none;
  mask-image:none;
}

}


/* =========================================
   小さいスマホ：420px以下
========================================= */

@media (max-width:420px){
    
  /* FV */
.contents main .hero{
  padding-bottom:0;
  background-size:auto 235px;
}

  .contents main .hero h1{
    font-size:27px;
  }

  .contents main .tags span{
    font-size:10px;
  }


  /* ABOUT */
  .contents main .products .product-body{
    grid-template-columns:34% 1fr;
    gap:10px;
  }

  .contents main .products article:nth-child(1)>h3,
  .contents main .products article:nth-child(2)>h3{
    height:auto;
    margin-bottom:0;
  }


  /* RECOMMEND / STRENGTH */
  .contents main .icon-grid.six,
  .contents main .icon-grid.five{
    grid-template-columns:1fr 1fr;
  }


/* CONTACT */
.contents main .contact{
  min-height:400px !important;
}

.contents main .contact-inner{
  min-height:400px !important;
  padding-inline:16px !important;
}

.contents main .contact::after{
  right:0 !important;
  bottom:0 !important;
  width:260px !important;
  height:240px !important;
  opacity:1 !important;
}

}

/* =========================================================
   PC版：全体の文字サイズ調整
   768px以上のみ
========================================================= */

@media (min-width:768px){

  /* セクション説明文 */
.contents main .title>div{
  font-size:21px;
  line-height:1.8;
  font-weight:700;
}


  /* ABOUT：商品カードタイトル */
  .contents main .products article>h3{
    font-size:21px;
  }

  /* ABOUT：商品カード説明文 */
  .contents main .products .product-body p{
    font-size:17px;
    line-height:1.8;
  }


  /* LINEUP：サービスタイトル */
  .contents main .service-grid h3{
    font-size:17px;
    line-height:1.4;
  }

 /* LINEUP：サービス説明文 */
.contents main .service-grid p{
  font-size:19px;
  line-height:1.35;
}

/* RECOMMEND / STRENGTH：カード内文字 */
.contents main .icon-grid p{
  font-size:19px !important;
  line-height:1.6;
}

  /* CASE STUDY：企業名 */
  .contents main .case-head{
    font-size:24px;
  }

  .contents main .case-head small{
    font-size:17px;
  }

  /* CASE STUDY：課題タイトル */
  .contents main .case-grid>article:not(.solution) h3{
    font-size:21px;
  }

  /* CASE STUDY：課題本文 */
  .contents main .case-grid>article:not(.solution) li{
    font-size:17px;
  }

  /* CASE STUDY：ZOAの対応タイトル */
  .contents main .solution h3{
    font-size:21px;
  }

  /* CASE STUDY：ZOAの対応本文 */
  .contents main .solution li{
    font-size:16px;
  }

  /* CASE STUDY：結果 */
  .contents main .result b{
    font-size:21px;
  }


  /* FLOW：各工程タイトル */
  .contents main .flow h4{
    font-size:18px;
  }

/* FLOW：各工程説明 */
.contents main .flow p{
  font-size:16px;
  line-height:1.4;
}


  /* FAQ：質問 */
  .contents main .faq summary{
    font-size:17px;
  }

  /* FAQ：回答 */
  .contents main .faq details p{
    font-size:16px;
  }

}
/* =========================================================
   PC版 最終調整
   FV文字サイズ / タグ / CONTACT
   2026-08-21
========================================================= */

@media (min-width:768px){

  /* FV 説明文 */
  .contents main .hero-description{
    margin:24px 0 0;
    color:var(--bpc-text);
    font-size:16px;
    line-height:2.05;
    font-weight:700;
    letter-spacing:.01em;
  }

  .contents main .hero-description span{
    display:block;
    white-space:nowrap;
  }

  /* FV タグ */
  .contents main .tags{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-top:28px;
  }

  .contents main .tags span{
    min-height:46px;
    display:inline-flex;
    align-items:center;
    gap:9px;
    padding:9px 17px;
    color:var(--bpc-blue);
    background:#fff;
    border:1px solid #cbdaf3;
    border-radius:6px;
    box-shadow:0 5px 16px rgba(5,61,156,.06);
    font-size:15px;
    line-height:1.2;
    font-weight:900;
    white-space:nowrap;
  }

  .contents main .tags i{
    width:24px;
    flex-shrink:0;
    color:var(--bpc-blue);
    font-size:20px;
    line-height:1;
    text-align:center;
  }

  /* CONTACT CTAエリア */
  .contents main .contact-inner>div:last-child{
    grid-column:2;
    width:100% !important;
    display:flex !important;
    flex-direction:column !important;
    gap:.7cqw !important;
    justify-self:start !important;
    align-self:center !important;
    margin:0 !important;
    padding:0 !important;
    position:relative;
    z-index:3;
    transform:translateX(1.6cqw) !important;
  }

  /* CONTACT オレンジボタン */
  .contents main .contact .btn.orange{
    width:112% !important;
    height:5.6cqw !important;
    min-height:0 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    padding:0 1.2cqw !important;
    box-sizing:border-box !important;
    color:#fff !important;
    background:#ff5a00 !important;
    border:0 !important;
    border-radius:.4cqw !important;
    font-size:1.85cqw !important;
    line-height:1 !important;
    font-weight:900 !important;
    white-space:nowrap !important;
  }

  .contents main .contact .btn.orange i{
    margin-right:.9cqw !important;
    color:#fff !important;
    font-size:2.35cqw !important;
    flex-shrink:0 !important;
  }

  /* CONTACT 電話ボタン */
  .contents main .contact-phone{
    width:112% !important;
    height:5.6cqw !important;
    min-height:0 !important;
    display:grid !important;
    grid-template-columns:auto auto;
    grid-template-rows:auto auto;
    align-content:center !important;
    justify-content:center !important;
    align-items:center !important;
    column-gap:.65cqw !important;
    row-gap:.45cqw !important;
    padding:.45cqw 1.2cqw !important;
    box-sizing:border-box !important;
    color:#fff !important;
    background:rgba(0,55,145,.30) !important;
    border:.08cqw solid rgba(255,255,255,.9) !important;
    border-radius:.4cqw !important;
  }

  /* 電話アイコン */
  .contents main .contact-phone i{
    grid-column:1;
    grid-row:1;
    margin:0 !important;
    align-self:center;
    color:#fff !important;
    font-size:1.8cqw !important;
    line-height:1 !important;
  }

  /* 電話番号 */
  .contents main .contact-phone span{
    grid-column:2;
    grid-row:1;
    align-self:center;
    color:#fff !important;
    font-family:"Noto Sans JP","Yu Gothic",Meiryo,Arial,sans-serif !important;
    font-size:2.15cqw !important;
    line-height:1.05 !important;
    font-weight:900 !important;
    letter-spacing:-.02em !important;
    white-space:nowrap !important;
  }

  /* 営業時間 */
  .contents main .contact-phone small{
    grid-column:1 / -1;
    grid-row:2;
    width:100% !important;
    margin:0 !important;
    color:#fff !important;
    text-align:center !important;
    font-family:"Noto Sans JP","Yu Gothic",Meiryo,Arial,sans-serif !important;
    font-size:1cqw !important;
    line-height:1.2 !important;
    font-weight:800 !important;
    letter-spacing:.01em !important;
    white-space:nowrap !important;
  }

  /* PC版電話表示 */
  .contents main .contact-phone-pc{
    display:grid !important;
  }

  /* スマホ用電話リンクはPCでは非表示 */
  .contents main .contact-phone-sp{
    display:none !important;
  }
}

/* =========================================
   PC版 FV テキスト 最終調整
========================================= */
@media (min-width:768px){

  /* FV説明文 */
.contents main .hero-description{
  margin-top:26px;
  font-size:20px;
  line-height:1.8;
  font-weight:700 !important;
  letter-spacing:.01em;
  font-family:"Noto Sans JP","Yu Gothic",Meiryo,sans-serif !important;
}

.contents main .hero-description span{
  font-size:22px !important;
  font-weight:550 !important;
}

  /* タグ全体 */
  .contents main .tags{
    gap:11px;
    margin-top:30px;
  }

  /* タグ */
  .contents main .tags span{
    min-height:50px;
    padding:10px 18px;

    font-size:16px;
    line-height:1.2;
    font-weight:900;
  }

  /* タグアイコン */
  .contents main .tags i{
    width:25px;
    font-size:21px;
  }

}

/* =========================================
   PC版 大見出し 太さ 最終修正
========================================= */
@media (min-width:768px){

  .contents main .hero h1,
  .contents main .hero h1 .nowrap,
  .contents main .hero h1 strong,
  .contents main .title h2,
  .contents main .title h2 span,
  .contents main .about-title,
  .contents main .about-title span{
    font-family:"Noto Sans JP","Yu Gothic",Meiryo,sans-serif !important;
    font-weight:900 !important;
    font-synthesis:none;
  }

}

/* =========================================
   PC版 CONTACT 最終修正
   電話位置・営業時間・CTA太さ
========================================= */
@media (min-width:768px){

  /* -----------------------------------------
     無料で相談・見積りする
  ----------------------------------------- */
  .contents main .contact .btn.orange{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;

    font-family:
      "Noto Sans JP",
      "Yu Gothic",
      Meiryo,
      sans-serif !important;

    font-size:1.9cqw !important;
    line-height:1.2 !important;
    font-weight:900 !important;

    letter-spacing:0 !important;
  }

  .contents main .contact .btn.orange i{
    margin:0 .9cqw 0 0 !important;

    font-size:2.35cqw !important;
    line-height:1 !important;
  }


  /* -----------------------------------------
     電話番号ボックス
  ----------------------------------------- */
  .contents main .contact-phone{
    display:grid !important;

    grid-template-columns:auto auto !important;
    grid-template-rows:2.5cqw 1.35cqw !important;

    align-content:center !important;
    align-items:center !important;
    justify-content:center !important;

    column-gap:.6cqw !important;
    row-gap:.3cqw !important;

    padding:.45cqw 1.2cqw !important;
  }


  /* 電話アイコン */
  .contents main .contact-phone i{
    grid-column:1 !important;
    grid-row:1 !important;

    align-self:center !important;

    margin:0 !important;

    font-size:1.85cqw !important;
    line-height:1 !important;

    transform:none !important;
  }


  /* 電話番号 */
  .contents main .contact-phone span{
    grid-column:2 !important;
    grid-row:1 !important;

    align-self:center !important;

    margin:0 !important;

    font-family:
      "Noto Sans JP",
      "Yu Gothic",
      Meiryo,
      sans-serif !important;

    font-size:2.1cqw !important;
    line-height:1 !important;
    font-weight:900 !important;

    letter-spacing:-.02em !important;

    transform:none !important;
  }


  /* -----------------------------------------
     平日 9:00〜16:00
  ----------------------------------------- */
  .contents main .contact-phone small{
    grid-column:1 / -1 !important;
    grid-row:2 !important;

    align-self:center !important;
    justify-self:center !important;

    width:auto !important;

    margin:0 !important;

    font-family:
      "Noto Sans JP",
      "Yu Gothic",
      Meiryo,
      sans-serif !important;

    font-size:1.15cqw !important;
    line-height:1 !important;
    font-weight:800 !important;

    letter-spacing:0 !important;

    transform:none !important;
  }

}

/* =========================================
   CONTACT PC / SP 表示 最終固定
========================================= */

@media (min-width:768px){

  .contents main .contact-phone-pc{
    display:grid !important;
  }

  .contents main .contact-phone-sp{
    display:none !important;
  }

}

@media (max-width:767px){

  .contents main .contact-phone-pc{
    display:none !important;
  }

  .contents main .contact-phone-sp{
    display:grid !important;
  }

  /* ABOUT：カスタムPC画像だけ少し上へ */
  .contents main .products article:nth-child(3) .product-image{
    transform:translateY(-7px);
  }

}
/* =========================================================
   IMPLEMENTATION SAFE FINAL OVERRIDE
   実装先共通CSSの影響を受けにくくする最終固定
   2026-08-21
========================================================= */

/* LP内はNoto Sans JPを優先 */
.contents main,
.contents main button,
.contents main input,
.contents main select,
.contents main textarea{
  font-family:"Noto Sans JP","Yu Gothic",Meiryo,Arial,sans-serif;
}

/* PC / tablet */
@media (min-width:768px){

  /* CONTACT本体 */
  .contents main .contact{
    width:min(1180px,calc(100% - 48px)) !important;
    max-width:1180px !important;
    aspect-ratio:6 / 1 !important;
    min-height:196px !important;
    container-type:normal !important;
  }

  .contents main .contact-inner{
    position:absolute !important;
    inset:0 !important;
    width:100% !important;
    height:100% !important;
    min-height:0 !important;
    display:grid !important;
    grid-template-columns:42% 34% 24% !important;
    align-items:center !important;
    margin:0 !important;
    padding:0 3.5% !important;
  }

  .contents main .contact-inner>div:first-child{
    width:100% !important;
    min-width:0 !important;
    margin:0 !important;
    padding:0 26px 0 0 !important;
  }

  /* 左側文字 */
  .contents main .contact .label{
    margin:0 0 7px !important;
    font-size:14px !important;
    line-height:1.2 !important;
    font-weight:900 !important;
    letter-spacing:.15em !important;
  }

  .contents main .contact h2{
    margin:0 0 9px !important;
    font-size:29px !important;
    line-height:1.22 !important;
    font-weight:900 !important;
    white-space:nowrap !important;
  }

  .contents main .contact p{
    margin:0 !important;
    font-size:15px !important;
    line-height:1.65 !important;
    letter-spacing:.03em !important;
    font-weight:700 !important;
    white-space:nowrap !important;
  }

  /* CTAエリア */
  .contents main .contact-inner>div:last-child{
    grid-column:2 !important;
    width:100% !important;
    max-width:none !important;
    display:flex !important;
    flex-direction:column !important;
    gap:8px !important;
    justify-self:start !important;
    align-self:center !important;
    margin:0 !important;
    padding:0 !important;
    transform:translateX(19px) !important;
  }

  /* オレンジCTA */
  .contents main .contact .btn.orange{
    width:112% !important;
    height:66px !important;
    min-height:66px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    padding:0 14px !important;
    box-sizing:border-box !important;
    color:#fff !important;
    background:#ff5a00 !important;
    border:0 !important;
    border-radius:5px !important;
    font-family:"Noto Sans JP","Yu Gothic",Meiryo,Arial,sans-serif !important;
    font-size:22px !important;
    line-height:1.2 !important;
    font-weight:900 !important;
    letter-spacing:0 !important;
    white-space:nowrap !important;
  }

  .contents main .contact .btn.orange span{
    color:#fff !important;
    font:inherit !important;
    font-weight:900 !important;
  }

  .contents main .contact .btn.orange i{
    margin:0 11px 0 0 !important;
    color:#fff !important;
    font-size:28px !important;
    line-height:1 !important;
    flex-shrink:0 !important;
  }

  /* 電話ボックス */
  .contents main .contact-phone{
    width:112% !important;
    height:66px !important;
    min-height:66px !important;
    display:grid !important;
    grid-template-columns:auto auto !important;
    grid-template-rows:30px 17px !important;
    align-content:center !important;
    align-items:center !important;
    justify-content:center !important;
    column-gap:8px !important;
    row-gap:4px !important;
    padding:5px 14px !important;
    box-sizing:border-box !important;
    color:#fff !important;
    background:rgba(0,55,145,.30) !important;
    border:1px solid rgba(255,255,255,.9) !important;
    border-radius:5px !important;
    flex-wrap:nowrap !important;
  }

  .contents main .contact-phone i{
    grid-column:1 !important;
    grid-row:1 !important;
    align-self:center !important;
    justify-self:end !important;
    margin:0 !important;
    color:#fff !important;
    font-size:22px !important;
    line-height:1 !important;
    transform:none !important;
  }

  .contents main .contact-phone span{
    grid-column:2 !important;
    grid-row:1 !important;
    align-self:center !important;
    justify-self:start !important;
    margin:0 !important;
    color:#fff !important;
    font-family:"Noto Sans JP","Yu Gothic",Meiryo,Arial,sans-serif !important;
    font-size:25px !important;
    line-height:1 !important;
    font-weight:900 !important;
    letter-spacing:-.02em !important;
    white-space:nowrap !important;
    transform:none !important;
  }

  .contents main .contact-phone small{
    grid-column:1 / -1 !important;
    grid-row:2 !important;
    align-self:center !important;
    justify-self:center !important;
    width:auto !important;
    margin:0 !important;
    color:#fff !important;
    font-family:"Noto Sans JP","Yu Gothic",Meiryo,Arial,sans-serif !important;
    font-size:14px !important;
    line-height:1.2 !important;
    font-weight:800 !important;
    letter-spacing:0 !important;
    white-space:nowrap !important;
    transform:none !important;
  }

  .contents main .contact-phone-pc{
    display:grid !important;
  }

  .contents main .contact-phone-sp{
    display:none !important;
  }
}

/* tablet幅だけCONTACTを少し縮める */
@media (min-width:768px) and (max-width:1050px){
  .contents main .contact{
    width:min(calc(100% - 40px),960px) !important;
  }

  .contents main .contact h2{
    font-size:25px !important;
  }

  .contents main .contact p{
    font-size:13px !important;
  }

  .contents main .contact .btn.orange{
    font-size:18px !important;
  }

  .contents main .contact-phone span{
    font-size:22px !important;
  }

  .contents main .contact-phone small{
    font-size:12px !important;
  }
}

/* smartphone */
@media (max-width:767px){

  .contents main .contact{
    container-type:normal !important;
  }

  .contents main .contact-phone-pc{
    display:none !important;
  }

  .contents main .contact-phone-sp{
    display:grid !important;
    grid-template-columns:auto auto !important;
    grid-template-rows:25px 13px !important;
    align-content:center !important;
    align-items:center !important;
    justify-content:center !important;
    column-gap:7px !important;
    row-gap:2px !important;
    padding:4px 12px !important;
  }

  .contents main .contact-phone-sp i{
    grid-column:1 !important;
    grid-row:1 !important;
    margin:0 !important;
    font-size:16px !important;
    line-height:1 !important;
  }

  .contents main .contact-phone-sp span{
    grid-column:2 !important;
    grid-row:1 !important;
    margin:0 !important;
    font-family:"Noto Sans JP","Yu Gothic",Meiryo,Arial,sans-serif !important;
    font-size:19px !important;
    line-height:1 !important;
    font-weight:900 !important;
    white-space:nowrap !important;
  }

  .contents main .contact-phone-sp small{
    grid-column:1 / -1 !important;
    grid-row:2 !important;
    width:auto !important;
    margin:0 !important;
    justify-self:center !important;
    font-family:"Noto Sans JP","Yu Gothic",Meiryo,Arial,sans-serif !important;
    font-size:9px !important;
    line-height:1 !important;
    font-weight:800 !important;
    white-space:nowrap !important;
  }

  .contents main .contact .btn.orange,
  .contents main .contact .btn.orange span{
    font-family:"Noto Sans JP","Yu Gothic",Meiryo,Arial,sans-serif !important;
    font-weight:900 !important;
  }
}

/* =========================================
   CONTACT：画面幅による文字・CTA重なり防止
========================================= */

@media (min-width:768px) and (max-width:1250px){

  .contents main .contact-inner{
    grid-template-columns:44% 32% 24% !important;
  }

  .contents main .contact h2{
    font-size:2.15cqw !important;
    letter-spacing:-0.03em !important;
  }

  .contents main .contact-inner>div:first-child{
    padding-right:2.8cqw !important;
  }

  .contents main .contact-inner>div:last-child{
    transform:none !important;
  }

  .contents main .contact .btn.orange,
  .contents main .contact-phone{
    width:100% !important;
  }
}

/* =========================================
   PC版 上部ナビ
   電話案内・お問い合わせ文字サイズ調整
========================================= */
@media (min-width:768px){

  /* 電話番号の上
     法人向け相談窓口（平日9:00〜16:00） */
  .contents main .lp-nav-phone small{
    font-size:12px !important;
    line-height:1.3 !important;
    font-weight:800 !important;
    margin-bottom:4px !important;
  }

  /* 電話番号 */
  .contents main .lp-nav-phone strong{
    font-size:22px !important;
    line-height:1.1 !important;
    font-weight:900 !important;
  }

  /* 無料で相談・見積りする */
  .contents main .lp-nav-cta{
    font-size:16px !important;
    font-weight:900 !important;
  }

  /* メールアイコン */
  .contents main .lp-nav-cta i{
    font-size:24px !important;
  }
}
/* =========================================================
   2026-08-21 最終追加修正
   ※既存箇所は変更せず、指摘箇所のみ末尾で上書き
========================================================= */

/* 上部ナビ：画面幅によって下端が崩れないよう直線で固定 */
.contents main .lp-nav,
.contents main .lp-nav-inner{
  border-radius:0 !important;
  clip-path:none !important;
}

/* 上部CTA：文字の太さを固定 */
.contents main .lp-nav-cta,
.contents main .lp-nav-cta span{
  font-family:"Noto Sans JP","Yu Gothic",Meiryo,sans-serif !important;
  font-weight:900 !important;
}

/* PC版 */
@media (min-width:768px){

  /* FV 2つのボタン：文字サイズを大きく */
  .contents main .hero .actions .btn{
    font-size:20px !important;
    font-weight:900 !important;
    line-height:1.3 !important;
  }

  .contents main .hero .actions .btn i{
    font-size:18px !important;
  }

  /* FV下～ABOUTの余白を詰める */
  .contents main .hero + .section{
    padding-top:45px !important;
  }
}

/* スマホ版 */
@media (max-width:767px){

  /* FV下～ABOUTの余白を詰める */
  .contents main .hero + .section{
    padding-top:25px !important;
  }
}

/* 大見出し：太さ調整 */
.contents main .case-head,
.contents main .flow-title,
.contents main .faq h2{
  font-family:"Noto Sans JP","Yu Gothic",Meiryo,sans-serif !important;
  font-weight:600 !important;
}

.contents main .case-head span,
.contents main .case-head b,
.contents main .flow-title span,
.contents main .flow-title b,
.contents main .faq h2 span,
.contents main .faq h2 b{
  font-weight:600 !important;
}