/*
Theme Name: keni-child
Template: keni80_wp_standard_all_202402031650
*/

/* =========================
   賢威8：記事幅の本当の本丸
========================= */
@media (min-width: 1200px) {
  body.page #content .main-inner {
    max-width: 1240px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 40px;
    padding-right: 40px;
  }
}

/* =========================
   賢威8：記事幅の本丸
========================= */
body.page .keni-section_wrap {
  max-width: 1800px;
  margin-left: auto;
  margin-right: auto;
}

/* 全ページ：free-area を完全非表示 */
.free-area,
.free-area_before,
.free-area_after,
.free-area_before-cont,
.free-area_after-cont {
  display: none;
}

/* トップページ：コンテンツ後フリーエリアを無効化 */
body.home .free-area_after-cont {
  display: none;
}

/* ===== 共通 ===== */
section { padding: 100px 20px; }

.section-title {
  text-align: center;
  font-size: 36px;
  margin-bottom: 60px;
}

p {
  line-height: 1.8;
  color: #222;
}

/* ===== About ===== */
.about { max-width: 1300px; margin: 0 auto; }

.about-inner {
  display: flex;
  gap: 60px;
  align-items: center;
}

.about-sub {
  font-size: 38px;
  color: #555;
  margin-left: 169px;
}

h2.about-title.title_no-style {
  font-size: 94px;
  font-weight: 800;
  color: #f78c00;
  margin-bottom: 30px;
}

.about-lead { font-size: 23px; font-weight: 600; }

.about-image img {
  width: 100%;
  max-width: 800px;
  border-radius: 12px;
}

.about-body {
  max-width: 1200px;
  margin: 150px 251px;
  font-size: 24px;
}

@media (max-width: 1280px) {
  .about-sub {
    font-size: 28px;   /* 大きすぎる文字を抑える */
    margin-left: 0;    /* 強制オフセットを解除 */
  }

  h2.about-title.title_no-style {
    font-size: 72px;   /* 見出しも少し縮める */
  }

  .about-body {
    margin: 80px auto;
    font-size: 22px;
  }
}

@media (max-width: 768px) {

  .about {
    padding: 48px 16px 40px;
  }

  .about-inner {
    flex-direction: column;
    gap: 20px;
  }

  h2.about-title.title_no-style {
    font-size: 36px;
    line-height: 1.1;
    text-align: center;
    margin-bottom: 8px;
  }

  .about-sub {
    font-size: 15px;
    text-align: center;
    opacity: .75;
  }

  .about-lead {
    margin-top: 14px;
    font-size: 15.5px;
    line-height: 1.9;
    text-align: left;
  }

  .about-lead__strong {
    display: block;
    max-width: 34em;
    margin: 0 auto;
    font-weight: 600;
  }

  .about-image {
    margin-top: 12px;
  }

  .about-body {
    max-width: 34em;
    margin: 28px auto 0; /* ← ここで確実に詰まる */
    font-size: 15.5px;
    line-height: 1.95;
    text-align: left;
  }

  .about-body p + p {
    margin-top: 18px;
  }

}




/* ===== Reason ===== */
.reason-head{
  max-width: 1400px;
  margin: 0 auto 70px;
  padding: 44px 28px;
  border-radius: 22px;
  position: relative;
  overflow: hidden;
  background: linear-gradient(135deg, rgba(247,140,0,0.14), rgba(255,255,255,1) 55%);
  border: 1px solid rgba(247,140,0,0.20);
  box-shadow: 0 18px 45px rgba(0,0,0,0.10);
}

.reason-head::before{
  content:"";
  position:absolute;
  inset:-40px -80px auto auto;
  width: 600px;
  height: 220px;
  transform: rotate(12deg);
  background: linear-gradient(90deg, rgba(247,140,0,0.95), rgba(247,140,0,0.45));
  border-radius: 28px;
  opacity: 0.95;
}

.reason-head::after{
  content:"";
  position:absolute;
  left: -90px;
  bottom: -120px;
  width: 700px;
  height: 240px;
  border-radius: 50%;
  background: radial-gradient(circle at 30% 30%, rgba(46,125,50,0.35), rgba(46,125,50,0.10) 55%, transparent 70%);
}

.reason-title{
  position: relative;
  margin: 0;
  font-size: 50px;
  font-weight: 900;
  letter-spacing: 0.04em;
  line-height: 1.2;
  color: #fff;         /* ←ここは好みで #fff でもOK */
  padding-right: 160px;
}

.reason-kicker{
  position: relative;
  margin: 14px 0 0;
  font-size: 24px;
  font-weight: 700;
  color: #2e7d32;
  letter-spacing: 0.02em;
}

.reason-badge{
  position: absolute;
  right: 120px;
  top: 22px;
  padding: 10px 16px;
  border-radius: 999px;
  background: rgba(255,255,255,0.92);
  border: 1px solid rgba(255,255,255,0.85);
  box-shadow: 0 10px 22px rgba(0,0,0,0.10);
  color: #111;
  font-weight: 900;
  font-size: 25px;
  letter-spacing: 0.04em;
  z-index: 2;
}

.reason-grid {
  max-width: 1200px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
}

.reason-box {
  background: #fff;
  padding: 30px;
  border-radius: 16px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.08);
}

.reason-box1{
  padding: 30px;
  border-radius: 16px;
  background: #f7fff5;
  border: 2px solid #cfe9c8;
}

.reason-box1.reason-image{
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 16px;
  min-height: 360px;
}

.reason-box1.reason-image p{
  margin: 0;
  font-weight: 600;
  line-height: 1.6;
}

.reason-box1.reason-image img{
  display: block;
  margin: 0;
  width: 300px;
  height: auto;
}

.reason { padding-top: 0px; }

.reason-icon { margin: 16px 0 20px; }
.reason-icon img { width: 250px; height: auto; }
.reason-box h3 { text-align: center; }

/* ※ここは .reason-box1 用と被るので、必要なければ消してOK */
.reason-image p {
  text-align: center;
  font-weight: 600;
  line-height: 1.6;
  margin-bottom: 20px;
}

/* ===== Service ===== */

.service{
  padding-top: 0;
}

/* リード文（既存のまま） */
.service-lead{
  text-align: center;
  font-size: 27px;
  margin: -3px 0 50px;
  color: #444;
}

/* ===== Service Head ===== */

.service-head{
  position: relative;
  margin: 0 auto 26px;
  width: min(1400px, 100%);
  padding: 28px 28px 24px;
  border-radius: 22px;
  border: 1px solid rgba(0,0,0,.10);
  overflow: hidden;

  text-align: right;

  /* ベースは白膜（可読性） */
  background:
    /* 右下三角アクセント（上に重なる） */
    linear-gradient(135deg,
      rgba(247,140,0,0) 0 58%,
      rgba(247,140,0,.28) 58% 100%),
    /* ベース白膜（可読性） */
    linear-gradient(180deg, rgba(255,255,255,.88), rgba(255,255,255,.95));
}

/* トラック写真を薄く背景に敷く（色感を残す） */
.service-head::before{
  content:"";
  position: absolute;
  inset: 0;
  background: url("https://shouta1213.xsrv.jp/wp-content/uploads/2026/01/名称未設定のデザイン-23.png") right center / cover no-repeat;
  opacity: .26; /* 濃さ：0.12〜0.24で調整 */
  filter: grayscale(.15) blur(.6px);
  z-index: 0;
}


/* 見出し中身は前面へ */
.service-head > *{
  position: relative;
  z-index: 1;
}

/* 視線を止めるライン（下部） */
.service-head::after{
  content:"";
  position: absolute;
  left: 28px;
  right: 28px;
  bottom: 14px;
  height: 4px;
  border-radius: 999px;
  background: rgba(0,0,0,.12);
  z-index: 1;
}

/* ラベル */
.service-badge{
  display: inline-block;
  font-size: 40px;
  letter-spacing: .12em;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(255,255,255,.85);
}

/* Service見出し：白文字をくっきり浮かせる */
section.service h2.service-title.title_no-style{
  margin: 10px 0 0;
  text-align: right;
  font-size: clamp(80px, 6.2vw, 120px);
  font-weight: 900;
  line-height: 1.02;
  letter-spacing: .06em;

  color: #fff;

  /* くっきり：近い影（輪郭）＋遠い影（浮き） */
text-shadow:
  0 0 2px rgba(0,0,0,.60),
  0 2px 8px rgba(0,0,0,.50),
  0 16px 38px rgba(0,0,0,.30);

}


/* 説明文（右寄せで読みやすい幅に制限） */
section.service .service-head p.service-kicker{
  margin: 12px 0 0 auto;
  max-width: 52em;
  text-align: right;
  font-size: 26px;
  line-height: 1.9; 
  font-weight: 700;
  color: #2e7d32;
}

/* ===== Service Head：SP最適化 ===== */
@media (max-width: 768px){

  .service-head{
    padding: 18px 14px 20px;
    text-align: center;          /* ← 右寄せを解除 */
    border-radius: 16px;
  }

  /* 背景画像を少し弱めて可読性UP */
  .service-head::before{
    opacity: .18;
    filter: grayscale(.2) blur(1px);
  }

  /* 下ラインを細く・控えめに */
  .service-head::after{
    left: 14px;
    right: 14px;
    bottom: 10px;
    height: 3px;
    opacity: .6;
  }

  /* バッジ：一番上で案内役に */
  .service-badge{
    display: inline-block;
    margin: 0 auto 8px;
    font-size: 13px;
    letter-spacing: .12em;
    padding: 6px 12px;
    background: rgba(255,255,255,.9);
  }

  /* サービス見出し：主役 */
  section.service h2.service-title.title_no-style{
    margin: 6px 0 8px;
    text-align: center;
    font-size: clamp(42px, 11vw, 64px);
    line-height: 1.05;
    letter-spacing: .08em;
  }

  /* 説明文：読み物として最適化 */
  section.service .service-head p.service-kicker{
    margin: 8px auto 0;
    max-width: 32em;
    text-align: center;
    font-size: 14px;
    line-height: 1.9;
    font-weight: 700;
    color: #2e7d32;
  }

}


/* ===== Service Grid ===== */
.service-grid{
  max-width: 1400px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
}

/* ===== Cards ===== */
.service-card{
  position: relative;
  background: #fff;
  border: 4px solid rgba(247,140,0,0.28);
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 12px 30px rgba(0,0,0,0.10);
  transform: translateY(0);
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.service-card:hover{
  transform: translateY(-20px);
  box-shadow: 0 18px 45px rgba(0,0,0,0.14);
}

/* 全面クリック */
.service-card__link{
  position: absolute;
  inset: 0;
  z-index: 5;
  text-decoration: none;
}

/* 中身はリンクより前面（クリックはリンクが拾う） */
.service-card__media,
.service-card__body{
  position: relative;
  z-index: 10;
}

/* キーボード操作の可視化 */
.service-card__link:focus-visible{
  outline: 3px solid rgba(247,140,0,0.55);
  outline-offset: 4px;
  border-radius: 18px;
}

/* 画像エリア */
.service-card__media{
  background: #fff;
  aspect-ratio: 16 / 10;
  display: flex;
  align-items: center;
  justify-content: center;
}

.service-card__media img{
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

/* 本文 */
.service-card__body{
  padding: 18px 18px 20px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.service-card__desc{
  margin: 0 0 14px;
  font-size: 18px;
  line-height: 1.7;
  color: #333;
  min-height: 3.4em;
}

/* ===== SP ===== */
@media (max-width: 768px){
  .service-head{
    padding: 20px 14px 18px;
    border-radius: 18px;
  }

  .service-head::after{
    left: 14px;
    right: 14px;
  }

  .service-title{
    font-size: clamp(44px, 10vw, 64px);
  }

  section.service .service-head p.service-kicker{
    max-width: 40em;
    font-size: 14px;
    line-height: 1.85;
  }

  .service-grid{
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .service-card:hover{
    transform: translateY(-10px);
  }

  section.service h2.service-title.title_no-style{
    font-size: clamp(52px, 11vw, 76px);
  }
}

/* ===== 対応エリア：一般 / 産廃の分割表示 ===== */

/* ===== Area Map (simple) ===== */
.area-map{
  clear: both;
  width: 100%;
  margin: 18px 0 22px;
  text-align: center;
}

.area-map__img{
  width: 100%;
  max-width: 1200px;
  height: 800PX;
  display: block;
  margin: 0 auto;
  border-radius: 14px;
  border: 1px solid rgba(0,0,0,.08);
  box-shadow: 0 8px 18px rgba(0,0,0,.06);
}

.area-map__caption{
  margin: 10px 0 0;
  font-size: 13px;
  opacity: .8;
  line-height: 1.5;
}

@media (max-width: 768px){
  .area-map__img{ border-radius: 12px; }
  .area-map__caption{ font-size: 12px; }
}


.after-area__lead{
  margin: 10px 0 0;
  line-height: 1.9;
}

.area-split{
  margin-top: 12px;
}

.area-type{
  margin-top: 12px;
  padding: 12px 14px;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 12px;
  background: rgba(0,0,0,.02);
}

.area-type__title{
  margin: 0;
  font-size: 16px;
  font-weight: 800;
  line-height: 1.35;
}

.area-type__text{
  margin: 8px 0 0;
  line-height: 1.9;
}

/* 既存noteがあるならそのままでもOK。なければ */
.after-area__note{
  margin-top: 12px;
  font-size: 13px;
  opacity: .85;
  line-height: 1.8;
}

/* ===== 対応エリアを“目を引くパネル”に ===== */
.after-area{
  position: relative;
  overflow: hidden;

  /* 枠・背景・影を強めて「セクション感」 */
  border: 0;
  border-radius: 18px;
  padding: 22px 22px 18px;
  background: linear-gradient(135deg, rgba(255,140,0,.10), rgba(255,255,255,1) 55%);
  box-shadow: 0 18px 40px rgba(0,0,0,.10);
}

/* 右下のアクセント三角（サービスの三角とテイスト合わせ） */
.after-area::after{
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0 0 400px 400px;
  border-color: transparent transparent rgba(255,140,0,.18) transparent;
  pointer-events: none;
}

/* ふわっとした光（重くならない程度） */
.after-area::before{
  content: "";
  position: absolute;
  top: -60px;
  right: -90px;
  width: 320px;
  height: 320px;
  background: radial-gradient(circle, rgba(255,140,0,.25), rgba(255,140,0,0) 70%);
  pointer-events: none;
}

/* 見出し周りを強化：ナチュラル */
.after-area__kicker{
  display: inline-block;
  margin: 0 0 10px;
  padding: 6px 14px;
  border-radius: 999px;

  font-size: 40px;
  font-weight: 800;
  letter-spacing: .14em;

  color: rgba(0,70,45,.95);
  background: rgba(0,160,90,.12);
  border: 1px solid rgba(0,160,90,.28);
  box-shadow: 0 12px 22px rgba(0,0,0,.06);
  opacity: 1;
}


.after-area h2.after-area__title.title_no-style{
  margin: 0;
  font-size: 22px;
  line-height: 1.3;
  font-weight: 900;
  text-shadow: 0 8px 18px rgba(0,0,0,.10);
}

/* リード */
.after-area__lead{
  margin: 12px 0 0;
  line-height: 1.9;
}

/* ===== 一般 / 産廃カードを“2枚カード”風に（壊れにくいflex） ===== */
.after-area .area-split{
  display: flex;
  gap: 14px;
  margin-top: 14px;
  width: 100%;
  align-items: stretch;
}

/* Classic Editorが p で包んでも横並び維持する保険 */
.after-area .area-split > p{
  margin: 0;
  flex: 1 1 0%;
  min-width: 0;
}

/* aやdivが入っても高さを揃える */
.after-area .area-split > p > .area-type{
  height: 100%;
  width: 100%;
}

/* 通常（divが直下）のケース */
.after-area .area-split > .area-type{
  flex: 1 1 0%;
  min-width: 0;
}

/* カード本体 */
.after-area .area-type{
  position: relative;
  padding: 14px 14px 14px 16px;
  border-radius: 16px;
  background: rgba(255,255,255,.95);
  border: 1px solid rgba(0,0,0,.08);
  box-shadow: 0 14px 26px rgba(0,0,0,.08);
  transition: transform .18s ease, box-shadow .18s ease;
}

/* 左の太いラインで“違い”を一目で */
.after-area .area-type::before{
  content: "";
  position: absolute;
  left: 0;
  top: 12px;
  bottom: 12px;
  width: 10px;
  border-radius: 999px;
  background: rgba(255,140,0,.95);
}



/* 対応エリア見出しを中央寄せ（kicker / title をまとめて中央） */
.after-area__head{
  text-align: center;
}

/* kicker自体も“中央に見える”ように微調整（任意だが安定） */
.after-area__kicker{
  margin-left: auto;
  margin-right: auto;
}

/* ===== お問い合わせ（Quick Contact）===== */
.contact-quick{
  position: relative;
  margin-top: 18px;
  padding: 20px 20px 16px;
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(0,160,90,.08), rgba(255,255,255,1) 55%);
  box-shadow: 0 18px 40px rgba(0,0,0,.10);
  border: 1px solid rgba(0,0,0,.06);
  overflow: hidden;
}

/* 右下アクセント（三角） */
.contact-quick::after{
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0 0 110px 110px;
  border-color: transparent transparent rgba(0,160,90,.14) transparent;
  pointer-events: none;
}

/* 見出し */
.contact-quick__head{
  text-align: center; /* いまの対応エリアに合わせて中央 */
  margin-bottom: 10px;
}

.contact-quick__kicker{
  display: inline-block;
  margin: 0 0 10px;
  padding: 6px 14px;
  border-radius: 999px;

  font-size: 26px;
  font-weight: 800;
  letter-spacing: .14em;

  color: rgba(0,70,45,.95);
  background: rgba(0,160,90,.12);
  border: 1px solid rgba(0,160,90,.28);
  box-shadow: 0 12px 22px rgba(0,0,0,.06);
}

.contact-quick h2.contact-quick__title.title_no-style{
  margin: 0;
  font-size: 22px;
  line-height: 1.3;
  font-weight: 900;
}

.contact-quick__lead{
  margin: 10px 0 12px;
	padding: 6px 14px;
  line-height: 1.9;
  text-align: center;
	font-size: 24px;
	font-weight: 800;
  opacity: .92;
}

/* ===== CTAボタン（壊れにくいflex + p保険）===== */
.contact-quick__grid{
  display: flex;
  gap: 14px;
  margin-top: 10px;
  align-items: stretch;
}

/* ===== 対応エリア内：お客様の声（ライト1件）===== */
.after-area .area-voice{
  margin-top: 14px;
  padding: 12px 14px;
  border-radius: 14px;
  background: rgba(0,160,90,.06);
  border: 1px solid rgba(0,160,90,.14);
}

.after-area .area-voice__kicker{
  display: inline-block;
  margin: 0 0 8px;
  padding: 4px 10px;
  border-radius: 999px;

  font-size: 12px;
  font-weight: 800;
  letter-spacing: .12em;

  color: rgba(0,70,45,.95);
  background: rgba(0,160,90,.12);
  border: 1px solid rgba(0,160,90,.22);
}

.after-area .area-voice__quote{
  margin: 0;
  line-height: 1.9;
}

.after-area .area-voice__quote::before{
  content: "“";
  font-weight: 900;
  margin-right: 2px;
  opacity: .6;
}
.after-area .area-voice__quote::after{
  content: "”";
  font-weight: 900;
  margin-left: 2px;
  opacity: .6;
}

.after-area .area-voice__meta{
  margin: 8px 0 0;
  font-size: 13px;
  opacity: .85;
}

/* ===== 対応エリア：SP最適化 ===== */
@media (max-width: 768px){

  .after-area{
    padding: 20px 16px 22px;
    border-radius: 16px;
  }

  /* 見出しブロック */
  .after-area__head{
    text-align: center;
    margin-bottom: 14px;
  }

  .after-area__kicker{
    font-size: 14px;
    letter-spacing: .14em;
    padding: 6px 14px;
    margin-bottom: 8px;
  }

  .after-area h2.after-area__title.title_no-style{
    font-size: 18px;
    line-height: 1.45;
  }

  /* リード文：読み物として */
  .after-area__lead{
    font-size: 14.5px;
    line-height: 1.9;
    margin-top: 10px;
    text-align: left;
  }

  /* 地図 */
  .area-map{
    margin: 16px 0 18px;
  }

  .area-map__img{
    height: auto;
    max-height: none;
    border-radius: 12px;
  }

  .area-map__caption{
    font-size: 12px;
    line-height: 1.6;
    margin-top: 8px;
  }

  /* 一般 / 産廃：縦積み */
  .after-area .area-split{
    flex-direction: column;
    gap: 12px;
    margin-top: 14px;
  }

  .after-area .area-type{
    padding: 14px 14px 14px 18px;
  }

  .after-area .area-type::before{
    width: 8px;
    top: 10px;
    bottom: 10px;
  }

  .area-type__title{
    font-size: 16px;
  }

  .area-type__text{
    font-size: 14px;
    line-height: 1.85;
  }

  /* お客様の声 */
  .after-area .area-voice{
    margin-top: 16px;
    padding: 14px 14px;
    border-radius: 14px;
  }

  .after-area .area-voice__kicker{
    font-size: 12px;
    margin-bottom: 6px;
  }

  .after-area .area-voice__quote{
    font-size: 14px;
    line-height: 1.9;
  }

  .after-area .area-voice__meta{
    font-size: 12px;
    margin-top: 6px;
  }

}


/* =================================================
   Top FAQ（見出しデザイン完成版）
================================================= */

.top-faq{
  margin: 40px 0 48px;
}

/* ===== 見出し全体 ===== */
.top-faq__head{
  text-align: center;
  margin-bottom: 24px;
}

/* 画像＋テキスト（PC横並び） */
.top-faq__head-inner{
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 28px;
}

/* ===== テキストブロック ===== */
.top-faq__text{
  padding: 22px 28px;
  text-align: left;

  background:
    linear-gradient(
      135deg,
      rgba(247,140,0,.14),
      rgba(255,255,255,.96) 60%
    );
  border-radius: 20px;
  box-shadow: 0 14px 32px rgba(0,0,0,.08);
}

/* ラベル */
.top-faq__kicker{
  display: inline-block;
  margin: 0 0 10px;
  padding: 6px 16px;
  font-size: 14px;
  font-weight: 800;
  letter-spacing: .14em;
  color: #fff;
  background: #f78c00;
  border-radius: 999px;
}

/* タイトル */
.top-faq__title{
  margin: 0;
  font-size: 34px;
  font-weight: 900;
  line-height: 1.3;
  color: #111;
}

/* サブコピー（CSS管理） */
.top-faq__title::after{
  content: "ご依頼前の不安をここで解消できます";
  display: block;
  margin-top: 6px;
  font-size: 14px;
  font-weight: 600;
  color: #666;
}

/* ===== イラスト ===== */
.top-faq__head-illust{
  position: relative;
}

.top-faq__head-illust img{
  display: block;
  width: 510px;
  max-width: 40vw;
  height: auto;
  margin: 20px auto -24px; /* FAQと重ねる */
  position: relative;
  z-index: 5;
}

/* ===== FAQリスト ===== */
.top-faq__list{
  max-width: 980px;
  margin: 14px auto 0;
}

.faq-item{
  background: rgba(255,255,255,.96);
  border: 6px solid rgba(0,0,0,.10);
  border-radius: 14px;
  box-shadow: 0 10px 22px rgba(0,0,0,.06);
  overflow: hidden;
}

.faq-item + .faq-item{
  margin-top: 16px;
}

.faq-item__q{
  cursor: pointer;
  padding: 14px 16px;
  font-weight: 800;
  position: relative;
  list-style: none;
}

.faq-item__q::-webkit-details-marker{
  display: none;
}

.faq-item__q::after{
  content: "＋";
  position: absolute;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
  font-weight: 900;
  opacity: .65;
}

.faq-item[open] .faq-item__q::after{
  content: "－";
}

.faq-item__a{
  padding: 0 16px 14px;
  border-top: 2px solid rgba(0,0,0,.08);
}

.faq-item__a p{
  margin: 14px 0 0;
  line-height: 1.85;
}

.faq-item__more{
  margin-top: 10px;
}

.faq-more{
  font-weight: 800;
  text-decoration: none;
  border-bottom: 1px solid rgba(0,0,0,.25);
}

/* =================================================
   SP（768px以下）
================================================= */
@media (max-width: 768px){

  .top-faq{
    margin: 28px 0 36px;
  }

  .top-faq__head-inner{
    flex-direction: column;
    gap: 14px;
  }

  .top-faq__text{
    padding: 16px 18px;
    text-align: center;
  }

  .top-faq__kicker{
    font-size: 13px;
    margin-bottom: 8px;
  }

  .top-faq__title{
    font-size: 22px;
    line-height: 1.35;
  }

  .top-faq__title::after{
    font-size: 12px;
  }

  .top-faq__head-illust img{
    width: 200px;
    max-width: none; /* ← これを必ず追加 */
    margin: 8px auto -8px;
  }

  .top-faq__list{
    max-width: 100%;
    margin-top: 0;
  }

  .faq-item__q{
    padding-right: 44px;
  }

  .top-faq__head{
    margin-bottom: 8px; /* ← ここで距離を制御 */
  }
}



/* ===== FAQ BOT ===== */
.faq-bot{
  max-width: 780px;
  margin: 24px auto 0;
  padding: 18px 16px;
  border-radius: 16px;
  background: rgba(255,255,255,.96);
  border: 1px solid rgba(0,0,0,.08);
  box-shadow: 0 12px 24px rgba(0,0,0,.06);
}

/* 見出し */
.faq-bot > p:first-child{
  margin: 0 0 12px;
  font-size: 15px;
  font-weight: 800;
  text-align: center;
}

/* 入力欄 */
#faqInput{
  width: 100%;
  box-sizing: border-box;
  padding: 14px 14px;
  font-size: 16px;
  border-radius: 12px;
  border: 1px solid rgba(0,0,0,.18);
  margin-bottom: 10px;
}

/* フォーカス時 */
#faqInput:focus{
  outline: none;
  border-color: #ff8c00;
  box-shadow: 0 0 0 3px rgba(255,140,0,.2);
}

/* 送信ボタン */
#faqSubmit{
  width: 100%;
  padding: 14px 12px;
  border-radius: 12px;
  border: none;
  background: #ff8c00;
  color: #fff;
  font-size: 16px;
  font-weight: 800;
  cursor: pointer;
  transition: transform .15s ease, box-shadow .15s ease, opacity .15s ease;
}

/* hover / active */
#faqSubmit:hover{
  opacity: .92;
  box-shadow: 0 8px 18px rgba(255,140,0,.35);
}
#faqSubmit:active{
  transform: translateY(1px);
}

/* 回答表示エリア */
#faqAnswer{
  margin-top: 14px;
  padding: 12px 14px;
  border-radius: 12px;
  background: rgba(255,140,0,.08);
  font-size: 20px;
  line-height: 1.8;
  min-height: 1em;
}

/* SP最適化 */
@media (max-width: 768px){
  .faq-bot{
    padding: 16px 14px;
  }

  #faqInput,
  #faqSubmit{
    font-size: 16px; /* iOSズーム防止 */
  }
}

	
/* ===== お問い合わせCTA：pが勝手に入っても「増えない」最強版 ===== */
.contact-quick__grid{
  display: flex;
  gap: 14px;
  margin-top: 10px;
  align-items: stretch;
}

/* Classic Editorが自動で作るpを「箱として数えない」 */
.contact-quick__grid > p{
  margin: 0 !important;
  display: contents; /* pがflex itemにならない */
}

/* どの構造でもボタンを3等分にする（直下aでも p>aでもOK） */
.contact-quick__grid .cq-btn{
  flex: 1 1 0%;
  min-width: 0;
}

/* もし空pが残っても、余白をゼロに */
.contact-quick__grid p{
  margin: 0 !important;
}



.cq-btn{
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 92px;
  padding: 14px 14px;
  border-radius: 16px;
  text-decoration: none;

  background: rgba(255,255,255,.95);
  border: 1px solid rgba(0,0,0,.10);
  box-shadow: 0 14px 26px rgba(0,0,0,.08);
  transition: transform .18s ease, box-shadow .18s ease;
}

.cq-btn:hover{
  transform: translateY(-4px);
  box-shadow: 0 18px 34px rgba(0,0,0,.12);
}

.cq-btn__label{
  font-size: 22px;
  font-weight: 900;
  line-height: 1.2;
}

.cq-btn__sub{
  margin-top: 7px;
  font-size: 18px;
  opacity: .86;
  line-height: 1.1;
}

.cq-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.cq-visual {
  width: 140px;
  height: auto;
  margin-bottom: 10px;
}

/* “主LINE”だけ少し強く（でもやりすぎない） */
.cq-btn--line{
  background: rgba(0,160,90,.10);
  border-color: rgba(0,160,90,.22);
}
.cq-btn--line .cq-btn__label{
  color: rgba(0,70,45,.95);
}

/* 電話・メールは補助トーン */
.cq-btn--tel{
  background: rgba(255,140,0,.08);
  border-color: rgba(255,140,0,.18);
}
.cq-btn--mail{
  background: rgba(0,140,255,.07);
  border-color: rgba(0,140,255,.16);
}

.contact-quick__note{
  margin: 12px 0 0;
  padding-top: 30px;
  border-top: 1px solid rgba(0,0,0,.08);
  font-size: 20px;
  line-height: 1.8;
  opacity: .85;
	font-weight: 700;
}

/* お問い合わせ内に入った時の area-voice 調整 */
.contact-quick .area-voice{
  margin: 14px 0 18px;
}
.contact-quick .area-voice__quote{
  margin: 10px 0;
}

/* PC：横並び */
.contact-quick .contact-quick__grid{
  display: flex;
  gap: 12px;
}
.contact-quick .cq-btn{
  flex: 1;
  border-radius: 12px;
  text-decoration: none;
}

.contact-quick .area-voice {
  max-width: 720px;
  margin: 40px auto 0;
}

.area-voice__kicker {
  display: inline-block;
  margin-bottom: 10px;
  padding: 6px 14px;
  font-size: 14px;
  font-weight: 400;
  color: #ffffff;
  background-color: #d27828;
  border-radius: 999px;
}

/* SP：縦並び */
@media (max-width: 768px){
  .contact-quick .contact-quick__grid{
    flex-direction: column;
  }
  .contact-quick .cq-btn{
    width: 100%;
  }
}

/* ===== Recruit ===== */
.recruit{
  text-align: center;
}

.recruit img{
  max-width: 100%;
  margin-bottom: 40px;
}

.recruit-btn{
  display: inline-block;
  padding: 16px 40px;
  background: #f78c00;
  color: #fff;
  font-size: 18px;
  border-radius: 30px;
  text-decoration: none;
}


/* ===== スマホ ===== */
@media (max-width: 768px) {
  .about-inner { flex-direction: column; }
  .about-title { font-size: 48px; }
  .about-lead { font-size: 20px; }

  .reason-head{
    padding: 30px 18px;
    margin-bottom: 46px;
  }
  .reason-title{
    font-size: 32px;
    padding-right: 0;
  }
  .reason-head::before{
    inset:-60px -120px auto auto;
    width: 420px;
    height: 190px;
  }
  .reason-badge{
    position: static;
    display: inline-block;
    margin-bottom: 12px;
    font-size: 14px;
  }

  .reason-grid { grid-template-columns: 1fr; }
  .service-grid { grid-template-columns: 1fr; }

  .service-lead{
    font-size: 16px;
    margin: -20px 0 34px;
  }
}

.faq-bot {
  position: relative;
  z-index: 100;
}
.faq-bot input,
.faq-bot button {
  pointer-events: auto;
  position: relative;
  z-index: 101;
}

/* =================================================
   Footer（共通）
================================================= */
.keni-footer-cont{
  font-size: 18px;
  line-height: 1.9;
  color: #222;
}

footer.keni-footer{
  width: 100vw;
  margin-left: calc(50% - 50vw);
}

footer.keni-footer .keni-footer_inner{
  max-width: 1280px;
  margin: 0 auto;
  padding: 40px 32px;
}

/* =================================================
   Footer：各ブロック共通
================================================= */
.footer-col-title{
  font-size: 18px;
  font-weight: 600;
  color: #333;
  text-align: center;
  margin-bottom: 24px;
}

/* =================================================
   決済アイコン
================================================= */
.footer-payment{
  margin: 20px 0 32px;
}

.footer-payment__list{
  display: flex;
  gap: 14px;
  padding: 12px;
  margin: 8px 0 0;
  list-style: none;
  align-items: center;
  justify-content: center;
  background: #f7f7f7;
  border-radius: 6px;
}

.footer-payment__list img{
  width: 100px; /* PC基準 */
  height: auto;
  display: block;
}

/* =================================================
   SNS
================================================= */
.footer-sns{
  margin-top: 16px;
}

.footer-sns__list{
  display: flex;
  gap: 12px;
  padding: 12px;
  list-style: none;
  justify-content: center;
  background: #f7f7f7;
  border-radius: 6px;
}

.footer-sns__list li{
  flex: 0 0 auto;
  width: 56px;
  height: 56px;
  background: #fff;
  border-radius: 6px;
  box-shadow: 4px 3px rgba(0,0,0,.06);
  display: flex;
  align-items: center;
  justify-content: center;
}

.footer-sns__list img{
  width: 34px;
  height: auto;
  display: block;
}

/* =================================================
   採用
================================================= */
.footer-recruit img{
  max-width: 360px;
  width: 100%;
  height: auto;
  margin: 24px auto 0;
  display: block;
  border-radius: 4px;
}

/* =================================================
   Footer：SP最適化（768px以下）
================================================= */
@media (max-width: 768px){

  /* 全体の文字 */
  .keni-footer-cont{
    font-size: 17px;
    line-height: 1.9;
  }

  /* フッター全体余白 */
  footer.keni-footer .keni-footer_inner{
    padding: 28px 20px;
  }

  /* 見出し */
  .footer-col-title{
    font-size: 16px;
    margin-bottom: 12px;
  }

  /* 決済 */
  .footer-payment{
    margin: 16px 0 24px;
  }

  .footer-payment__list img{
    width: 48px;
  }

  /* SNS */
  .footer-sns__list{
    flex-wrap: wrap;
  }

  .footer-sns__list li{
    width: 48px;
    height: 48px;
    box-shadow: none;
  }

  .footer-sns__list img{
    width: 28px;
  }

  /* 採用 */
  .footer-recruit img{
    max-width: 280px;
    margin-top: 20px;
  }

}

@media (max-width: 768px){
  #block-21 > .keni-section,
  #block-30 > .keni-section,
  #block-31 > .keni-section{
    padding: 0 16px;
  }
}