@charset "UTF-8";

/* -------------------------
   Google Fonts
------------------------- */
body {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 1.6rem;
  line-height: 1.8;
  color: #333;
  background: #fff;
  margin: 0;
  padding: 0;
}

/* -------------------------
   共通設定
------------------------- */
html {
  font-size: 62.5%; /* 1rem = 10px */
  scroll-behavior: smooth;
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: middle;
}

a {
  color: inherit;
  text-decoration: none;
}

h1, h2, h3, h4, h5, h6 {
  font-weight: 700;
  line-height: 1.4;
  margin-bottom: 1rem;
}
h1 { margin: 0; padding: 0; }

section {
}

.content {
  max-width: 1260px;
  margin: 0 auto;
}

/* 共通セクションタイトル */
ul.submit.flexC { display: flex; }

h2.headLine01 {
  font-size: 3rem;
  color: #333;
  font-weight: 700;
  margin-bottom: 2rem;
  text-align: left; /* ← セクションによって中央 or 左寄せ切り替えるなら別途 */
}
@media screen and (min-width: 768px) { /*PC*/
  h2.headLine01 {
    font-size: 3.6rem;
  }
}

/* 強調赤（見出しの赤い語） */
.col01{ color:#d53a3a; }

/* PC（768px以上）の場合は電話番号リンク無効化 */
@media screen and (min-width: 768px) {
  a[href^="tel:"] {
    pointer-events: none;
    cursor: default;   /* 見た目もクリックできない感じに */
    text-decoration: none; /* 下線も消したい時 */
  }
}



/* ========================
   表示切り替え（レスポンシブ制御用）
======================== */
.sp {
	display: none !important;
}

.pc {
	display: none !important;
}

@media screen and (max-width: 767px) {
	.sp {
		display: inline !important;
	}
}

@media screen and (min-width: 768px) {
	.pc {
		display: inline !important;
	}
}

/* -------------------------
   お問い合わせ01セクション（デザイン準拠）
------------------------- */
.contact01{
  background:#f3f4f6;          /* うっすらグレー背景 */
  text-align:center;
  padding: 4rem 2rem;
  margin: 4rem 0;
}
@media (max-width: 767px){
	.contact01{
		margin: 2rem 0;
	}
}

.contact01 p{
  font-weight:800;
  font-size:2.4rem;
  line-height:1.6;
  color:#111;                   /* 見出しは黒 */
  margin:0 0 2.4rem;
}
@media (max-width: 767px){
	.contact01 p{ font-size: 2.2rem; }
}
@media (min-width:768px){
  .contact01 p{ font-size:3.0rem; }
}

/* ボタン画像の見せ方（影＆角丸） */
.contact01 .btn01{
  position:relative;
  display:inline-block;
}
.contact01 .btn01 a{ display:inline-block; }
.contact01 .btn01 img{
  display:block;
  width:min(860px, 92vw);       /* PCで大きめ／SPは幅いっぱい */
  height:auto;
  border-radius:14px;
  box-shadow: 0 6px 14px rgba(0,0,0,.16);
  transition: transform .2s ease, box-shadow .2s ease, opacity .2s ease;
}
.contact01 .btn01 a:hover img{
  transform: translateY(-2px);
  box-shadow: 0 10px 26px rgba(0,0,0,.2);
  opacity:.98;
}

/* PC版はボタンを少し小さく（90%） */
@media (min-width:1024px){
  .contact01 .btn01 img{
    width:78vw; /* 元の約90%（860px基準なら約774px） */
    max-width:780px;
  }
}

img.btn_animate01 {
margin: 0 auto;
animation: fuwafuwa 1s ease 0s infinite alternate;
transform-origin:center;
cursor: pointer;
}
@keyframes fuwafuwa {
from {transform: scale(0.95,0.95);}
to {transform: scale(1,1);}
}

/* -------------------------
   お問い合わせ02セクション（最終版）
------------------------- */
.contact02 {
  background:#f3f4f6;
  text-align:center;
  padding: 4rem 2rem;
}

.contact02 p {
  font-weight:800;
  font-size:2.4rem;
  line-height:1.6;
  color:#111;
  margin:0 0 2.4rem;
}
@media (max-width: 767px){
	.contact02 p{ font-size: 2.2rem; }
}
@media (min-width:768px){
  .contact02 p { font-size:3.0rem; }
}

/* ボタン部分（角丸・影・透過修正済） */
.contact02 .btn01 {
  display:inline-block;
  margin-bottom: 2rem;
}
.contact02 .btn01 a {
  display:inline-block;
  border-radius:14px;           /* 角丸をa側にまとめる */
  overflow:hidden;              /* imgの角丸崩れ防止 */
  box-shadow: 0 6px 14px rgba(0,0,0,.16); /* 影もa側に */
  transition: transform .2s ease, box-shadow .2s ease;
}
.contact02 .btn01 img {
  display:block;
  width:min(860px, 92vw);
  height:auto;
  border-radius:inherit;        /* aと同じ角丸に */
  transition: opacity .2s ease; /* 透過アニメは画像だけ */
}
@media (min-width:1024px){
  .contact02 .btn01 img {
    width:75vw;
    max-width:700px;
  }
}
.contact02 .btn01 a:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(0,0,0,.18);
}
.contact02 .btn01 a:hover img {
  opacity: .98;
}

/* 電話ボタン部分 */
.contact02 .fdTel {
  margin-top: 1rem;
}
.contact02 .fdTel img {
  max-width: 240px;
  height:auto;
}

/* 補足テキスト（受付時間など） */
.contact02 + p {
	line-height:1.6;
	text-align: center;
}
@media (max-width: 767px){
	.contact02 + p {
		padding: 0 2rem;
		font-size: 1.4rem;
		text-align: left;
	}
}

/* 電話ボタン部分（サイズ調整） */
.contact02 .fdTel {
  margin-top: -0.5rem;
}

/* SP版：ボタンの約75%幅 */
.contact02 .fdTel img {
  width: 75%;
  height: auto;
  max-width: none; /* max-widthの制限を解除 */
}

/* PC版：ボタンの半分くらい */
@media (min-width:1024px){
  .contact02 .fdTel img {
    width: 35vw;
  }
}


.fdMobile {
    margin: 2.5rem auto 0 auto;
	padding-top: 1.5rem;
	border-top: 1px solid #ccc;
}
.fdMobile img {
	width: 45vw;
	height: auto;
	max-width: none; /* max-widthの制限を解除 */
}


@media (max-width:767px){
	.fdMobile {
		padding-top: 2rem;
	}
    .fdMobile img {
		width: 60%;
    }
}



/* -------------------------
   メインビジュアル
------------------------- */
.mainVisual {
}


.copyTxt img {
}

.firstBox {
}


/* -------------------------
   メッセージ
------------------------- */

.message {
  text-align: center;
  padding: 1rem 0;
  background: #fff;
}

@media (max-width: 767px){
  .message{
    padding: 3rem 0;     /* 左右に余白追加（指で読んでも窮屈にならない） */
  }
}

.message .txt01 {
  margin: 0;
  font-size: 2rem;
  line-height: 1.6;
  color: #111; /* 黒文字 */
  font-weight: 400;
}
@media (max-width:767px){
	.message .txt01 { font-size: 1.8rem; }
}
@media (min-width:768px) {
  .message .txt01 {
    font-size: 2.5rem;
  }
}

.message .txt02 {
  margin: 1rem 0 0 0;
  font-size: 2.4rem;
  line-height: 1.6;
  font-weight: 600; /* 太字 */
  color: #111; /* 黒文字 */
}
@media (max-width:767px){
	.message .txt02 { font-size: 2.2rem; }
}
@media (min-width:768px) {
  .message .txt02 {
    font-size: 3rem;
  }
}


/* -------------------------
   料金セクション（デザイン準拠）
------------------------- */
.price{
  padding: 4rem 0;
  background:#fff;
}
@media (min-width:768px){
  .price{ padding: 5.6rem 0; }
}
.price .inner{
  margin-top: 1.6rem;
  padding-bottom: 2rem;
}

.price .table-scroll{
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

/* 角丸＆青枠の比較表 */
.price-compare {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  border: 2px solid #2e5ea8;
  border-radius: 16px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 6px 14px rgba(0,0,0,.06);
  min-width: 820px; /* PC基準の最小幅 */
}

/* 罫線（横・縦ともにやさしいブルー） */
.price-compare th,
.price-compare td{
  border-bottom:1px solid #c7d3ea;
  border-right:1px solid #c7d3ea;
  padding: 1.6rem 1.8rem;
  vertical-align: middle;
  white-space: nowrap;
}
.price-compare tr:last-child > *{ border-bottom:none; }
.price-compare tr > *:last-child{ border-right:none; }

/* ヘッダー行 */
.price-compare thead th{
  font-weight:800;
  text-align:center;
  white-space: nowrap;
  line-height:1.4;
  color:#0b1726;
  background:#e6eef6;                 /* デフォは薄いブルーグレー */
}
/* 1列目ヘッダー（比較項目）をややグレー寄りに */
.price-compare thead th:nth-child(1){
  background:#dfe5ee;
}

/* 3・4列目ヘッダーは淡いブルー */
.price-compare thead th:nth-child(3),
.price-compare thead th:nth-child(4){
  background:#eaf2ff;
}

/* 行見出し（左端） */
.price-compare tbody th[scope="row"]{
  background:#f7f9fc;
  font-weight:700;
  text-align:left;
  color:#111;
}

/* 2列目（ジーワークス列）を全面うす黄色で強調 */
.price-compare tbody td:nth-child(2){
  background:#fff5b1;                 /* うす黄色 */
  font-weight:700;
}

/* 2列目ヘッダー（ジーワークス）を大きく */
.price-compare thead th:nth-child(2){
  background:#2e5ea8;
  color:#fff;
  font-size: 1.3em; /* 他より少し大きく */
}

/* 強調価格（赤） */
.price-compare .price-red{
  font-size: 1.5em;  /* 通常より大きめ */
  font-weight: 800;
  letter-spacing:.02em;
}

/* 注記 */
.price .inner + p {
  margin-top: 1.2rem;
  font-size: 1.6rem;
  color:#555;
  text-align: right; /* 右寄せ */
}

/* レスポンシブ微調整 */
@media (max-width:767px){
  .price-compare th,
  .price-compare td{
    padding: 1.2rem 1.4rem;
    font-size: 1.5rem;
  }
  .price-compare {
    min-width: 100%;  /* 画面幅に合わせる */
    font-size: 1.4rem; /* 少し文字サイズを下げる */
  }
  .price-compare th,
  .price-compare td {
    padding: 1rem; /* 余白を少し減らす */
  }
	.price .inner {
		overflow-x: scroll;
	}
	.price .inner + p {
		font-size: 1.4rem;
		line-height: 1.5;
	}
}



/* -------------------------
   理由
------------------------- */
/* ========== Reason（前半）：写真＋コピー（空白解消・leadラップ） ========== */

/* レイアウト：左=透過PNGそのまま／右=コピー塊 */
.reason .inner{
  display: grid;
  grid-template-columns: clamp(200px, 20vw, 320px) 1fr; /* 写真幅は可変 */
  align-items: start;
  column-gap: 4rem;
  row-gap: 1.2rem;
  margin:  3rem 0;
}

/* 画像はそのまま表示 */
.reason .photo img{
  display:block;
  width: clamp(200px, 20vw, 320px);
  height:auto;
}

/* 右側のテキストは“塊”にして縦積み */
.reason .lead{
  display:flex;
  flex-direction: column;
  gap: .6rem;                 /* 大コピーと小コピーの間隔 */
}

/* PC/タブレット：leadを右カラムへ、左寄せ */
@media (min-width:768px){
  .reason .lead{ grid-column: 2 / 3; text-align:left; align-items:flex-start; }

  /* 以前の「pを右カラムに直接配置」指定をリセット */
  .reason .inner p:first-of-type,
  .reason .inner p:last-of-type{
    grid-column:auto; text-align:inherit; margin-top:0;
  }
}

/* 大コピーのタイポ */
.reason .lead p:first-of-type{
  font-weight: 500;
  font-size: clamp(2.4rem, 1.4rem + 2.0vw, 3rem);
  line-height: 1.55;
  letter-spacing: .01em;
	margin: 0 0 0.5rem 0;
	padding: 1rem 0 0 0;
  color:#111;
}

/* 小コピーのタイポ */
.reason .lead p:last-of-type{
  font-size: clamp(1.5rem, 1.3rem + .3vw, 1.8rem);
  line-height: 2.0;
  color:#333;
}

/* 改行制御（PCのみbr.pcを有効化） */
.reason .lead br.pc{ display:none; }
@media (min-width:768px){
  .reason .lead br.pc{ display:inline; }
}

/* スマホ：縦並び＆中央寄せ */
@media (max-width:767px){
  .reason .inner{
    grid-template-columns: 1fr;
    text-align:center;
	  margin-bottom: 1rem;
  }
  .reason .photo img{
    width: clamp(160px, 60vw, 220px);
    margin: 0 auto 1.2rem;
  }
  .reason .lead{ align-items:center; }
	.reason .lead p:last-of-type{
		margin: 0;
	}
}


/* ========== Reason（後半カード3枚）一式：デザイン準拠 ========== */

/* PC/Tabは 3→2 列、SPは 1 列。
   PC/Tabでは dt と dd を同じ列の上下に積むため column フロー、
   SPでは row フローに切り替えるのがポイント。 */
.reason .reasonList{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr)); /* PC:3列 */
  grid-template-rows: auto 1fr;                     /* 1行目=dt, 2行目=dd */
  grid-auto-flow: column;                           /* 列方向に自動配置 */
  gap: 0 4rem;
  margin-top: 2.4rem;
}
@media (max-width:1023px){ /* タブレット */
  .reason .reasonList{
	gap: 0 2rem;
    grid-template-columns: repeat(2, minmax(0, 1fr)); /* 2列 */
    /* columnフローのままでOK（dt/ddが上下で2列に並ぶ） */
  }
}

/* ヘッダー（青帯） */
.reason .reasonList dt{
  background:#275c9d;                 /* デザインの青 */
  color:#fff;
  border:3px solid #275c9d;
  border-bottom:0;
  border-radius:28px 28px 0 0;        /* 大きめ角丸 */
  padding: 2.0rem 2.6rem;
  font-weight:800;
  letter-spacing:.02em;
  font-size: clamp(2.1rem, 1.9rem + 0.6vw, 2.8rem);
  line-height:1.45;

  /* 中で「01 | 見出し」を2カラムにして折返し時も揃える */
  display:grid;
  grid-template-columns: auto 1fr;    /* [01] [見出し] */
  column-gap: 1.8rem;
  align-items:start;
}

/* 番号「01」 */
.reason .reasonList dt .num{
  font-size: clamp(2.6rem, 2.2rem + 1vw, 3.6rem);
  font-weight:800;
  line-height:1;
  font-variant-numeric: tabular-nums; /* 01/02/03の幅を揃える */
  min-width: 4.2rem;
  margin-top: .1em;                   /* 視覚中心を微調整 */
}

/* 見出し内の強制改行（PCのみ表示） */
.reason .reasonList dt br.pc{ display:none; }
@media (min-width:768px){
  .reason .reasonList dt br.pc{ display:inline; }
}

/* 本文（クリーム背景＋青枠） */
.reason .reasonList dd{
  background:#fffbd2;                 /* デザインのクリーム */
  color:#111;
  border:3px solid #275c9d;
  border-top:0;
  border-radius:0 0 28px 28px;
  padding: 2.4rem 2.8rem 3.0rem;
  font-size: clamp(1.6rem, 1.5rem + .2vw, 1.9rem);
  line-height:2.0;
  margin:0;
  box-shadow:none;
  min-height: 22rem;                  /* 面積感（必要に応じ調整） */
}

@media (max-width:767px){  /* スマホ */
  .reason .reasonList{
    grid-template-columns: 1fr; /* 1列 */
    grid-template-rows: none;   /* 2行固定を解除 */
    grid-auto-flow: row;        /* 行方向に変更（横スク防止） */
    gap: 0;
  }
  .reason .reasonList dd { margin-bottom: 2.4rem; min-height: auto; font-size: 1.4rem; }
  .reason .reasonList dd:last-of-type { margin-bottom: 0; }
}




/* -------------------------
   制作事例
------------------------- */

/*---------------------------------
  制作事例：カテゴリ見出し
---------------------------------*/
.category-title {
  margin: 1.6rem 0;
}
.category-title span {
  display: inline-block;
  background: #9ac93c; /* 緑背景 */
  color: #fff;
  font-weight: 700;
  padding: 0.4rem 0;
  width: 240px; /* 固定幅で共通 */
  text-align: center; /* テキスト中央揃え */
}

/*---------------------------------
  制作事例：スライダー共通
---------------------------------*/
/*---------------------------------
  制作事例：カテゴリ見出し
---------------------------------*/
.category-title {
  margin: 1.6rem 0;
}
.category-title span {
  display: inline-block;
  background: #9ac93c; /* 緑背景 */
  color: #fff;
  font-weight: 700;
  padding: 0.4rem 0;
  width: 240px; /* 固定幅で共通 */
  text-align: center; /* テキスト中央揃え */
}

/*---------------------------------
  制作事例：スライダー共通
---------------------------------*/
.slider {
  position: relative;
  --gap: 1.2rem;
  --slide-min: calc((100% - var(--gap)) / 2); /* SP: 2枚見せ */
}
.slides {
  display: flex;
  gap: var(--gap);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  list-style: none;
  padding: 0;
  margin: 0;

  /* 横スクロールバー非表示 */
  -ms-overflow-style: none;  /* IE/Edge */
  scrollbar-width: none;     /* Firefox */
}
.slides::-webkit-scrollbar {
  display: none;             /* Chrome/Safari/Opera */
}
.slide {
  scroll-snap-align: center;
  background: #fff;
  overflow: hidden;
  flex: 0 0 var(--slide-min);
  max-width: var(--slide-min);
}
.slide img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  background: #fff;
}

.category-namecard {
  margin-top: 4rem; /* 必要に応じて数値調整 */
}


/*---------------------------------
  カテゴリ別：アスペクト比
---------------------------------*/
.category-website .slide  { aspect-ratio: 16 / 10; }
.category-namecard .slide { aspect-ratio: 157 / 100; }

/*---------------------------------
  PC表示：ホームページは4枚見せ
---------------------------------*/
@media (min-width: 1024px) {
  .category-website .slider { --slide-min: calc((100% - var(--gap) * 3) / 4); }
}

/*---------------------------------
  名刺・ロゴ：SP3枚／PC6枚
---------------------------------*/
.category-namecard .slider {
  --slide-min: calc((100% - var(--gap) * 2) / 3); /* SP3枚見せ */
}
@media (min-width: 1024px) {
  .category-namecard .slider {
    --slide-min: calc((100% - var(--gap) * 5) / 6); /* PC6枚見せ */
  }
}

/*---------------------------------
  縦長名刺（横幅65%・中央寄せ）
---------------------------------*/
.category-namecard .slide.vertical {
  flex: 0 0 calc(var(--slide-min) * 0.55);
  max-width: calc(var(--slide-min) * 0.55);
  margin-left: auto;
  margin-right: auto;
}

/*---------------------------------
  矢印ボタン（共通）
---------------------------------*/
.slider-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 48px;
  height: 48px;
  border-radius: 50%;
  border: none;
  background: #e4472f; /* 赤背景 */
  cursor: pointer;
  display: block;
  z-index: 2;
}
.slider-btn:hover {
  background: color-mix(in srgb, #e4472f 85%, black 15%);
}
.slider-btn.prev { left: -2.4rem; }
.slider-btn.next { right: -2.4rem; }
@media (max-width: 768px) {
  .slider-btn.prev { left: 0; }
  .slider-btn.next { right: 0; }
}

/* 矢印アイコン（鋭角／光学補正） */
.slider-btn::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 16px; /* 偶数で揃える */
  height: 16px;
  border-top: 3px solid #fff;
  border-right: 3px solid #fff;
}
.slider-btn.prev::before {
  transform: translate(calc(-50% + 3px), -50%) rotate(-135deg);
}
.slider-btn.next::before {
  transform: translate(calc(-50% - 3px), -50%) rotate(45deg);
}

@media (max-width: 767px) {
	.slider-btn { width: 35px; height: 35px; }
	.slider-btn::before { width: 10px; height: 10px; }
}


/* -------------------------
   お客様の声セクション
------------------------- */
.voice {
  background: #fff;
  padding: 4rem 0 6rem;
}
@media (min-width: 1024px) {
  .voice {
    padding: 5.6rem 0 7.2rem;
  }
}
@media (max-width: 767px) {
	.voice {
		margin-top: -2rem;
		padding: 0;
	  }
}

/* 導入文と見出し */
.voice .content {
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
}
.voice .content > h2.headLine01 {
  order: 1;
}
.voice .content > p:first-of-type {
  order: 2;
  font-size: 1.6rem;
  line-height: 1.9;
  color: #111;
  margin: 0;
}

/* グリッド：PC3 / TB2 / SP1 */
.voice .voice-grid {
  order: 3;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2.4rem;
  margin-top: 0.8rem;
}
@media (max-width: 1023px) {
  .voice .voice-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 767px) {
  .voice .voice-grid {
    grid-template-columns: 1fr;
    gap: 1.8rem;
  }
}

/* 各カード */
.voice .voice-card {
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.08);
  display: flex;
  border: 1px solid rgba(0, 0, 0, 0.06);
  flex-direction: column;
  gap: 1.6rem;
  min-block-size: 100%;
  overflow: hidden; /* ← 角丸と影の安全処理 */
}
.voice .voice-card__inner {
  padding: 2.4rem;
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
  height: 100%;
}


/* 本文 */
.voice .voice-card p {
  margin: 0;
  font-size: 1.6rem;
  line-height: 1.9;
  color: #111;
  word-break: normal;
  overflow-wrap: anywhere;
}

/* 赤文字強調 */
.voice .col01 {
  color: #e4472f;
  font-weight: 700;
  font-size: 1.1em;
}

/* 地域・業種 */
.voice .voice-meta {
  font-size: 1.4rem;
  color: #333;
  line-height: 1.7;
  white-space: pre-line;
  margin-top: auto;
}

/* -------------------------
   よくあるご質問
------------------------- */
/* よくある質問セクション */
.faq {
  background: #fff;
  padding: 4rem 0 6rem;
}
@media (min-width: 1024px) {
  .faq {
    padding: 5.6rem 0 7.2rem;
  }
}
@media (max-width: 767px) {
	.faq {
		margin-top: -2rem;
		padding: 0;
	  }
}

/* 見出しと導入文 */
.faq .content {
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
}
.faq .content > h2.headLine01 {
}
.faq .content > p:first-of-type {
  font-size: 1.6rem;
  line-height: 1.9;
  color: #666;
  margin: 0;
}

/* 質問・回答ブロック */
.faq .faqList {
  margin-top: 2.4rem;
  display: flex;
  flex-direction: column;
  gap: 2.4rem;
  font-size: 1.6rem;
  line-height: 1.9;
}

/* Qのスタイル */
.faq .faqList dt {
  background: #f5f8ef;
  border: 1px solid #99aa66;
  padding: 1.2rem 1.6rem;
  position: relative;
  font-weight: 500;
  color: #111;
  display: flex;
  align-items: center;
  gap: 0.8rem;
}

/* Qアイコン風マーク */
.faq .faqList dt::before {
  content: "Q";
  color: #7a9933;
  font-weight: 700;
  font-size: 1.8rem;
  font-family: "Noto Sans JP", sans-serif;
  display: inline-block;
  margin-right: 0.4rem;
}

/* Aのスタイル */
.faq .faqList dd {
  margin: 0;
  padding-left: 1.6rem;
  display: flex;
  gap: 0.8rem;
  flex-wrap: wrap;
  align-items: flex-start;
}

/* Aの赤ラベル */
.faq .faqList dd::before {
  content: "A";
  color: #e4472f;
  font-weight: 700;
  font-size: 1.8rem;
  font-family: "Noto Sans JP", sans-serif;
  margin-right: 0.4rem;
}


/* -------------------------
   納品までの流れ
------------------------- */
.flow {
	padding-top: 4rem;
}
.flow-body {
	text-align: center;
}
.flow-img img {
  width: 70%;
  height: auto;
  max-width: 960px;
}

@media (max-width: 767px) {
	.flow {
		padding-top: 0.25rem;
	}
  .flow-img img {
    width: 90%;
	  max-width:none;
  }
}


/* -------------------------
   オプション
------------------------- */

.option {
  position: relative;
	margin-top: 4rem;
  padding: clamp(64px, 8vw, 120px) 0 clamp(56px, 7vw, 100px);
  background: url("../../image/top/opt_bg.png") no-repeat center top / cover;
}

.option .headLine02 {
  margin: 0;
  text-align: center;
  color: #86b83a;
  font-weight: 800;
  letter-spacing: .02em;
  line-height: 1.2;
  font-size: clamp(2.4rem, 3.6vw, 3.6rem);
}

.option .headLine02 span {
  display: block;
  margin-top: .8rem;
  color: #222;
  font-weight: 700;
  font-size: clamp(1.4rem, 1.8vw, 2rem);
}

/* ===== オプション項目リスト ===== */
.option .inner {
  margin-top: clamp(32px, 4vw, 48px);
  display: flex;
  flex-direction: column;
  gap: clamp(28px, 4vw, 40px); /* 上段と下段の間隔 */
}

.option .inner ul {
  display: flex;
  justify-content: center;
  gap: clamp(16px, 3vw, 40px);
  list-style: none;
  margin: 0;
  padding: 0;
}

.option .inner li {
  text-align: center;
}

.option .inner li img {
  display: block;
  max-width: 180px; /* デザインの実寸に合わせて調整 */
  height: auto;
  margin: 0 auto;
}

/* SP：3列×複数行レイアウト */
@media (max-width: 767px) {
  .option .inner ul {
    flex-wrap: wrap;
    justify-content: center;
    gap: 20px;
  }
  .option .inner li {
    width: calc(33.333% - 20px);
  }
  .option .inner li img {
    max-width: 100%;
  }
}

@media (max-width: 767px) {
  .option .inner li img {
    max-width: 120px;
    height: auto;
  }
}



/* -------------------------
   代表挨拶
------------------------- */

/* ===== 代表挨拶（rinen） ===== */
.rinen {
  padding: clamp(48px, 7vw, 96px) 0;
}

/* レイアウト：PCは写真左・本文右／SPは縦積み */
.rinen .inner {
  display: grid;
  grid-template-columns: minmax(280px, 38%) 1fr; /* 写真を控えめに */
  column-gap: clamp(24px, 4vw, 48px);
  row-gap: 0;               /* 署名直前の余白が増えないように行間は0 */
  align-items: start;
}

/* 写真 */
.rinen .photo img {
  width: 100%;
  height: auto;
  display: block;
}

/* 本文（段落） */
.rinen .inner p {
  margin: 0;
  line-height: 2;
  color: #111;
}

/* 署名：本文内の <span class="name"> を整える */
.rinen .inner .name {
  display: block;
  margin-top: 1em; 
  font-weight: 700;
  letter-spacing: .02em;
  color: #111;
  text-align: right; 
}

/* タブレット以下：余白だけ少し詰める */
@media (max-width: 1023px) {
  .rinen .inner {
    column-gap: clamp(20px, 4vw, 36px);
  }
}

/* スマホ：縦積み（画像→本文→署名） */
@media (max-width: 767px) {
  .rinen .inner {
    grid-template-columns: 1fr;
  }
	.rinen .photo { padding: 1.5rem 0; }
	.rinen .photo img { margin: 0 auto; width: 70%; }
  .rinen .inner p {
    font-size: 1.4rem;
    line-height: 1.9;
    margin-top: 12px;                      /* 画像との間を少しだけ */
  }
  .rinen .inner .name {
    margin-top: 8px;                        /* SPはややタイトに */
  }
}



/* -------------------------
   会社概要
------------------------- */
/* 会社概要セクション */
.summary {
  --col-left-min: 360px;     /* 左カラム最小幅 */
  --col-left-max: 46%;       /* 左カラム最大割合 */
  --gap-col: 64px;           /* カラム間余白 */
  --dt-width: 7em;           /* 見出し幅 */
  --dt-width2: 5em;           /* 見出し幅 */
  --dt-width3: 3em;           /* 見出し幅 */
  --line-h: 2;               /* 行間 */
  --table-year-width: 6em; /* 年カラム幅 */
  --radius-photo: 0;         /* 角丸なし */
  --rule: #e9e9e9;           /* 罫線色 */
}
.summary { padding-bottom: 8rem; }

.summary .flexBox {
  display: grid;
  grid-template-columns: minmax(var(--col-left-min), var(--col-left-max)) 1fr;
  gap: var(--gap-col);
}

/* 左カラム（会社情報） */
.summary .leftBox .txtDl {
  display: grid;
  grid-template-columns: var(--dt-width) 1fr;
  row-gap: 0;
  line-height: var(--line-h);
}
.summary .leftBox .txtDl dt,
.summary .leftBox .txtDl dd {
	margin: 0;
  padding: 0.6em 0;
  border-bottom: 1px solid var(--rule); /* 項目間ボーダー */
}
.summary .leftBox .txtDl dt { font-weight: bold; }
.summary .leftBox .txtDl dt:last-of-type { border-bottom: none; }
.summary .leftBox .txtDl dd:last-of-type {
  border-bottom: none; /* 最後はボーダーなし */
}

/* 右カラム（沿革） */
.summary .rightBox dl {
  display: grid;
  grid-template-columns: var(--dt-width2) 1fr;
  row-gap: 0;
  line-height: var(--line-h);
}
.summary .rightBox dt {
  padding: 1.6em 0;
	font-weight: bold;
}
.summary .rightBox dd {
  padding: 0.6em 0;
  border-bottom: 1px solid var(--rule);
}
.summary .rightBox dd:last-of-type {
  border-bottom: none;
}

/* 沿革テーブル */
.summary .rightBox table {
  width: 100%;
  border-collapse: collapse;
  margin: 0;
  table-layout: auto;
}
.summary .rightBox th,
.summary .rightBox td {
  border: none;
  vertical-align: top;
  line-height: 1.9;
  color: #111;
	margin: 0;
  padding: 1.6rem 0 0.5rem 0;
}
.summary .rightBox th {
  width: var(--table-year-width);
  white-space: nowrap;
  padding-right: 2rem;
  font-weight: normal; /* 太字解除 */
	text-align: left;
}
.summary .rightBox tr:last-child th,
.summary .rightBox tr:last-child td {
  padding-bottom: .6em;
}

/* 写真 */
.summary .photo img {
  display: block;
  max-width: 100%;
  border-radius: var(--radius-photo);
}

/* SP調整 */
@media (max-width:767px) {
  .summary .flexBox {
    grid-template-columns: 1fr;
    gap: 0;
  }
	
	.summary .leftBox .txtDl dt,
	.summary .leftBox .txtDl dd {
		font-size: 1.4rem;
	}
  .summary .rightBox th {
	padding-right: 0;
  }
	
	.summary .rightBox dd {
		margin: 0;
	}
  .summary .photo img {
    width: 95%;
    margin: 0 auto;
  }
}





/* -------------------------
   ヘッダー
------------------------- */
#gHeader{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:2.4rem;                 /* 列間 */
  padding:1.6rem 2rem;
}

/* ヘッダーを上に重ねる（他はそのまま） */
#gHeader{
  position: absolute;
  top: 0; left: 0; right: 0;
  z-index: 1000;
}

/* 画像は基本ブロック＆高さ基準で揃える */
#gHeader a img{ display:block; height:auto; }

/* ロゴ（左） */
#gHeader h1{ margin:0; line-height:1; }
#gHeader h1 img{ max-height: 25px; }

/* 電話（中央） */
#gHeader .hdTel { margin-left:auto; } /* ロゴの次に右へ寄せる */
#gHeader .hdTel img{ max-height: 42px; }

/* お問い合わせ（右の赤ボタン） */
#gHeader .hdContact img{ max-height: 42px; }

/* クリック範囲を確保（画像より少し広めに） */
#gHeader .hdTel a,
#gHeader .hdContact a{
  display:inline-block;
  padding:.2rem;              /* 視覚変化は出さずヒットエリア拡大 */
}

/* ホバー（PCのみ） */
@media (hover:hover){
  #gHeader .hdContact a:hover{ opacity:.9; transition:opacity .15s; }
}

/* --- PCでは電話リンクを無効化（誤タップ防止） --- */
@media (hover:hover) and (pointer:fine){
  #gHeader .hdTel a{ pointer-events:none; cursor:default; }
}

/* ===== タブレット縮小 ===== */
@media (max-width: 1024px){
  #gHeader{ gap:1.6rem; padding:1.2rem 1.6rem; }
  #gHeader h1 img{ max-height:25px; }
  #gHeader .hdTel img{ max-height: 42px; }
  #gHeader .hdContact img{ max-height: 42px; }
}

/* ===== スマホ ===== */
@media (max-width: 767px){
  #gHeader{
	  position: relative;
    flex-wrap:wrap;
    justify-content:center;
    text-align:center;
    gap: 0 1.2rem;
    padding: 1rem 1.2rem;
	  margin-bottom: -30px;
  }
  #gHeader h1 { flex: 1;} 
  #gHeader .hdTel{ margin-left:0; }        /* 中央寄せ */
  #gHeader .hdContact{ flex:1 1 100%; }    /* 下段フル幅にしてボタン強調 */
  #gHeader .hdContact a{ display:block; margin:0 auto; width: 70%; }
  #gHeader h1 img { max-height: 45px; }
  #gHeader .hdTel img { max-height: 35px; }
  #gHeader .hdContact img{ max-height:56px; width:100%; height:auto; }
}


/* アンカーに飛んだ時の食い込み防止（必要なら） */
:root{ --header-h: 72px; }   /* 実寸に合わせて調整してね */
@media (max-width:767px){ :root{ --header-h: 88px; } }
:target{ scroll-margin-top: var(--header-h); }


/* -------------------------
   フッター
------------------------- */

/* ===== フッター ===== */
#gFooter {
  padding: 3rem 1rem 4rem;
  text-align: center;
  background: #fff;
}

#gFooter .ftCopy img {
  max-width: 300px;
  height: auto;
  margin: 1rem 0;
}

#gFooter address {
  font-style: normal;
  font-size: 1.4rem;
  color: #111;
  margin-top: .8rem;
}

/* ===== ページトップボタン ===== */
#gFooter .pageTop {
  position: fixed;
  bottom: 2rem;
  right: 2rem;
  text-align: center;
  width: 80px; /* クリック範囲を確保 */
  opacity: 0; /* 初期は非表示 */
  pointer-events: none;
  transition: opacity .3s ease;
  z-index: 50; /* 他要素の上に出す */
}

#gFooter .pageTop.show {
  opacity: 1; /* 表示時 */
  pointer-events: auto;
}

#gFooter .pageTop a {
  display: inline-block;
  text-decoration: none;
  color: #111;
}

#gFooter .pageTop img {
  width: 80px;
  height: auto;
}

/* ===== スマホ用微調整 ===== */
@media (max-width: 767px) {
  #gFooter {
    padding: 2rem 1rem 5rem;
  }
  #gFooter .pageTop {
    width: 70px;
  }
  #gFooter .pageTop img {
    width: 70px;
  }
}



/* -------------------------
   Contact
------------------------- */

section#contact { border-bottom: none; }
.comContactBox {
	padding: 10.5rem 0 0;
}
section#contact h2.headLine01 { text-align: center; }
.comContactBox .tableBox {
	padding: 5rem 6rem;
	background-color: #f2f2f2;
}
.comContactBox .tableBox .headLine04 {
	margin-bottom: 2.6rem;
	font-size: 2.2rem;
}
.comContactBox .tableBox .headLine04.form-step2 {
	display: none;
}
.comContactBox .tableBox .noteUl {
	margin-bottom: 3.8rem;
	padding: 0;
}
.comContactBox .tableBox .noteUl li {
	padding-left: 1.5rem;
	color: #CC0000;
	text-indent: -1em;
	list-style: none;
}
.comContactBox .tableBox .noteText {
	margin: -0.3rem 0 3.7rem;
	padding: 1.1rem 2.3rem 0.9rem;
	color: #FFF;
	background-color: #DE0000;
	display: none;
}
.comContactBox .tableBox .wpcf7-not-valid-tip {
	margin: 1.1rem 0 0.8rem;
	padding-left: 1em;
	color: #DE0000;
	text-indent: -1em;
}
.comContactBox .tableBox table {
	margin-bottom: 4.7rem;
	width: 100%;
	border-collapse: collapse;
}
.comContactBox .tableBox th,
.comContactBox .tableBox td {
	padding: 2.3rem 0 1rem;
	text-align: left;
	vertical-align: top;
	box-sizing: border-box;
	word-break: break-all;
	border-bottom: 1px solid #CCC;
}
.comContactBox .tableBox tr:last-child th,
.comContactBox .tableBox tr:last-child td {
	border-bottom: none;
}
.comContactBox .tableBox th {
	width: 22.4%;
}
.comContactBox .tableBox th .sub {
	position: relative;
	display: block;
}
.comContactBox .tableBox th .sub .must {
	padding: 0.3rem;
	display: inline-block;
	position: absolute;
	top: -0.2rem;
	right: 0;
	width: 4.7rem;
	color: #FFF;
	font-size: 1.4rem;
	font-weight: normal;
	text-align: center;
	background-color: #CC0000;
}
.comContactBox .tableBox td {
	padding: 1.2rem 0 1.2rem 3.7rem;
}
.comContactBox .tableBox textarea,
.comContactBox .tableBox input[type="tel"],
.comContactBox .tableBox input[type="text"],
.comContactBox .tableBox input[type="email"] {
	appearance:none;
    -moz-appearance:none;
    -webkit-appearance:none;
    border-radius: 0.5rem;
    height: 4.6rem;
    border: 1px solid #DCDCDC;
    box-sizing: border-box;
    padding: 0 2rem;
    width: 48.2rem;
    letter-spacing: 0.05em;
	line-height: 2;
    background-color: #FFF;
}
.comContactBox .tableBox textarea {
	padding: 2rem;
	width: 100%;
	height: 18rem;
	resize: vertical;
}
.comContactBox input::-webkit-input-placeholder { color: #CCCCCC; opacity:1; }
.comContactBox input:-moz-placeholder { color: #CCCCCC; opacity:1; }
.comContactBox input::-moz-placeholder { color: #CCCCCC; opacity:1; }
.comContactBox input:-ms-input-placeholder { color: #CCCCCC; opacity:1; }
.comContactBox .tableBox td .text {
	margin: 0.5rem 0 2.5rem;
	letter-spacing: 0;
}
.comContactBox .tableBox .agree {
	margin-bottom: 3rem;
}
.comContactBox .tableBox .agree input[type="checkbox"] {
	display: none;
}
.comContactBox .tableBox .agree input[type="checkbox"] ~ span {
	padding: 0.5rem 0 0.5rem 3.4rem;
	cursor: pointer;
	letter-spacing: 0;
	font-weight: bold;
    font-size: 1.8rem;
	background: url(../../image/common/icon13.png) no-repeat left center / 2.5rem;
}
.comContactBox .tableBox .agree input[type="checkbox"]:checked ~ span {
	background-image: url(../../image/common/icon13_on.png);
}
.comContactBox .tableBox .scrollBox {
	padding: 1.5rem 3rem;
	height: 25rem;
	border: 1px solid #CCC;
	box-sizing: border-box;
	overflow-y: scroll;
}
.comContactBox .tableBox .scrollBox .ttl {
	margin-bottom: 1.6rem;
    font-size: 1.7rem;
    font-weight: 700;
}
.comContactBox .tableBox .scrollBox .txt {
	margin-bottom: 2rem;
	letter-spacing: 0;
}
.comContactBox .tableBox .submit {
	gap: 3rem;
	padding: 0;
}
.comContactBox .tableBox .submit li {
	margin: 0 auto;
	width: 41.4rem;
	list-style: none;
}
.comContactBox .tableBox .submit li input {
	padding: 0 9rem 0.2rem;
	appearance:none;
	width: 100%;
	height: 8.3rem;
	border-radius: 4.1rem;
	font-size: 2rem;
    font-weight: 700;
	text-align: center;
	cursor: pointer;
	letter-spacing: 0.05em;
	color: #FFF;
	border: none;
	background: #003150 url("../../image/common/icon14.png") no-repeat right 2.9rem center / 3.8rem;
}
.comContactBox .wpcf7-list-item { margin-left: 0; }
.comContactBox  .wpcf7-spinner { margin: 1rem auto 0; display: block; }
.comContactBox .tableBox.confirm textarea,
.comContactBox .tableBox.confirm input[type="tel"],
.comContactBox .tableBox.confirm input[type="text"],
.comContactBox .tableBox.confirm input[type="email"] {
    background-color: #DCDCDC;
}
.comContactBox .tableBox.confirm textarea,
.comContactBox .tableBox.confirm input {
	cursor: default;
}
.comContactBox .tableBox.confirm input:-internal-autofill-selected {
    box-shadow: inset 0 0 0 100rem #DCDCDC !important;
}
.comContactBox .tableBox.confirm tr:nth-last-child(2) th,
.comContactBox .tableBox.confirm tr:nth-last-child(2) td {
	border-bottom: none;
}
.comContactBox .tableBox .submit li.back input {
	padding: 0 5.2rem 0.2rem 7.4rem;
	background: #003150 url("../../image/common/icon14_back.png") no-repeat left 2.9rem center / 3.8rem;
}

.wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.unaccepted .wpcf7-response-output, .wpcf7 form.payment-required .wpcf7-response-output { display:none; }

/*#index.confirm , #index2.confirm , #index3.confirm { display: none; }*/

.comContactBox .tableBox .step2 td { padding-top: 2.2rem; }

@media all and (min-width: 897px) {
	.comContactBox .tableBox .submit li input:hover {
		opacity: 0.7;
	}
}
@media all and (max-width: 896px) {
	.comContactBox {
		padding: 3.9rem 0 0;
	}
	.comContactBox .headLine01 {
		margin-bottom: 3.4rem;
	}
	.comContactBox .telBox {
		margin-bottom: 2.5rem;
		padding: 2.4rem;
		display: block;
		border-radius: 1rem;
		box-shadow : none;
	}
	.comContactBox .tableBox {
		padding: 2rem 3rem;
	}
	.comContactBox .tableBox .noteUl {
		margin-bottom: -0.5rem;
	}
	.comContactBox .tableBox .noteUl li {
		margin-bottom: 1rem;
	}
	.comContactBox .tableBox .noteUl li:last-child {
		margin-bottom: 0;
	}
	.comContactBox .tableBox .noteText {
		margin: 2rem 0;
		padding: 1.1rem 2rem 0.9rem;
	}
	.comContactBox .tableBox .wpcf7-not-valid-tip {
		margin: -0.2rem 0 0.7rem;
	}
	.comContactBox .tableBox table { margin-bottom: 2rem; }
	.comContactBox .tableBox th,
	.comContactBox .tableBox td {
		padding: 2.5rem 0 0;
		width: 100% !important;
		display: block;
		border-bottom: 1px solid #CCC;
	}
	.comContactBox .tableBox th {
		border-bottom: none;
	}
	.comContactBox .tableBox th .sub .must {
		padding: 0.3rem;
		top: -0.4rem;
		right: 0.3rem;
		width: 4rem;
	}
	.comContactBox .tableBox td {
		padding: 0.8rem 0 1.2rem;
	}
	.comContactBox .tableBox textarea,
	.comContactBox .tableBox input[type="tel"],
	.comContactBox .tableBox input[type="text"],
	.comContactBox .tableBox input[type="email"] {
		border-radius: 0.3rem;
		height: 3.3rem;
		padding: 0 1.5rem;
		width: 100%;
	}
	.comContactBox .tableBox textarea {
		padding: 1.5rem;
		height: 19.7rem;
	}
	.comContactBox .tableBox td .text {
		margin: 0.5rem 0 2.5rem;
	}
	.comContactBox .tableBox .agree input[type="checkbox"] ~ span {
		padding: 0.5rem 0 0.5rem 3rem;
		background: url("../../image/common/icon13.png") no-repeat left center / 2rem;
	}
	.comContactBox .tableBox .scrollBox {
		padding: 0 2rem;
		height: 19rem;
	}
	.comContactBox .tableBox .scrollBox .ttl {
		margin-bottom: 1rem;
		font-size: 1.6rem;
	}
	.comContactBox .tableBox .scrollBox .txt {
		font-size: 1.4rem;
	}
	
	.comContactBox .tableBox .submit {
    display: flex;
    justify-content: center;
  }
  .comContactBox .tableBox .submit li {
    width: 100%;
  }
  .comContactBox .tableBox .submit li input {
	  padding: 0 4.25rem;
    width: 100%;
	  height: 7rem;
    text-align: center;
	  font-size: 1.8rem;
    background-position: right 1.6rem center; /* アイコンの位置も再調整 */
  }
	
}
@media screen and (max-width: 767px) {
	section.contact {
		padding-top: 2.5rem;
		padding-bottom: 6rem;
		padding-left: 2rem;
        padding-right: 2rem;
	}
	
	.comContactBox .tableBox .step2 td { padding-top: 0; }
	#thanks .textBox { text-align: left; }
	input,
	textarea,
	select {
		font-size: 1.6rem; /* 16px相当 */
	}
}



/* =========================================================
   Section spacing (SP tweaks)
========================================================= */
@media (max-width:767px){
  section{ margin-inline:2rem; }
  section.option{ margin-inline:0; }
  section.summary{ padding-bottom:2rem; }
  section.rinen{ padding-top:0; }
  section.price{ padding-top:1rem; padding-bottom:1rem; }
}