@charset "UTF-8";
/* =========================================================
   teamsbiz LP スタイル
   - 本番（WordPress + Elementor）の見た目を静的HTMLで再現
   - ブレークポイントは本番の Elementor 設定に合わせる
       PC      : 769px 以上
       タブレット: 601px〜768px   （@media (max-width:768px) は「タブレット以下」）
       スマホ   : 600px 以下
   ========================================================= */

/* ---------- 変数 ---------- */
:root {
  --teal: #398589;
  --teal-shadow: #2e6366;
  --orange: #ff7a00;
  --orange-soft: #ff9533;
  --ink: #263238;
  --pale: #f2feff;
  --white: #fff;
  --font-jp: "Noto Sans JP", sans-serif;
  --font-en: "Roboto", sans-serif;
}

/* ---------- リセット / ベース ---------- */
*,
*::before,
*::after { box-sizing: border-box; }

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  font-family: var(--font-jp);
  font-size: 16px;
  font-weight: 600;
  line-height: 1.7;
  color: var(--ink);
  background: var(--white);
}

main { overflow-x: clip; }
/* 本番（Elementor）同様、各セクションを配置の基準にする（はみ出した画像の重なり順も本番に合わせる） */
main > section,
main > div { position: relative; }

h1, h2, h3, h4, p, ul, ol, figure, figcaption { margin: 0; padding: 0; }
ul, ol { list-style: none; }
em { font-style: normal; }
a { color: inherit; }
img { max-width: 100%; height: auto; border: 0; vertical-align: middle; }

/* 見出し（本番のサイト共通設定：h2 は字間3px・語間22px） */
.section-title {
  font-size: 36px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 3px;
  word-spacing: 22px;
  text-align: center;
  color: var(--ink);
}

/* 区切り線（Elementor の divider ウィジェット相当） */
.rule {
  display: block;
  height: 0;
  margin: 22px auto;
  border: 0;
  border-top: 3px solid var(--orange);
  width: 28%;
}
.rule--white { border-top-color: var(--white); }

/* ---------- 斜線つき小見出し（＼ テキスト ／） ---------- */
.slash-heading {
  display: flex;
  max-width: 1140px;
  margin: 0 auto;
}
.slash-heading__side {
  display: flex;
  align-items: flex-start;
  width: 25%;
  padding: 10px;
}
.slash-heading__side--left { justify-content: flex-end; }
.slash-heading__side--right { justify-content: flex-start; }
.slash-heading__side i {
  position: relative;
  display: block;
  width: 1em;
  height: 1em;
  margin-bottom: 7px;
  font-size: 27px;
  line-height: 1;
  color: var(--ink);
}
.slash-heading__side i::before {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
}
.slash-heading__side--right i { transform: rotate(99deg); }
.slash-heading__text {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 50%;
  padding: 10px;
  font-size: 24px;
  font-weight: 700;
  line-height: 1;
  text-align: center;
  color: var(--ink);
}
/* 白（オレンジ背景用） */
.slash-heading--light .slash-heading__side i { font-size: 50px; color: var(--white); }
.slash-heading--light .slash-heading__side--right i { transform: rotate(101deg); }

/* ---------- ボタン類 ---------- */
.btn-hero {
  display: inline-flex;
  align-items: center;
  padding: 15px 30px;
  font-size: 24px;
  font-weight: 600;
  line-height: 1.7;
  letter-spacing: 1.8px;
  color: var(--white);
  text-decoration: none;
  background: var(--orange);
  border-radius: 23px;
  box-shadow: 4px 4px 0 0 #b95a02;
  transition: background-color .3s;
}
.btn-hero i { margin-left: 16px; }
.btn-hero:hover,
.btn-hero:focus { background-color: #ff7a00c2; }

.btn-outline {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 15px 30px;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: 1px;
  color: var(--orange);
  text-decoration: none;
  background: var(--white);
  border: 5px solid var(--orange);
  border-radius: 50px;
  transition: color .3s, background-color .3s;
}
.btn-outline i { margin-left: 36px; }
.btn-outline:hover,
.btn-outline:focus { color: var(--white); background: var(--orange); }

/* =========================================================
   ヒーロー
   ========================================================= */
.hero {
  position: relative;
  height: 100vh;
  background: url("../assets/img/hero-pc.png") center center / cover no-repeat;
}
.hero__inner {
  display: flex;
  align-items: center;
  max-width: 1171px;
  height: 100%;
  margin: 0 auto;
}
.hero__body { width: 53%; padding: 10px; }
.hero__spacer { height: 70px; }
.hero__spacer--a { width: 22%; }
.hero__spacer--b { width: 25%; }

.hero__title {
  font-size: 36px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 5px;
  color: var(--ink);
}
.hero__title-line { display: block; }
.hero__title-line + .hero__title-line { margin-top: 20px; }
.hero__accent { font-size: 48px; color: var(--teal); }

.hero__brand {
  margin-top: 20px;
  padding: 20px;
  font-family: var(--font-en);
  font-size: 48px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 5.3px;
  word-spacing: 22px;
  text-align: center;
  color: var(--white);
  background: var(--teal);
  border-radius: 10px;
  box-shadow: 5px 5px 0 0 var(--teal-shadow);
}
.hero__brand small { font-size: 36px; }

.hero__cta {
  display: flex;
  align-items: center;
  margin-top: 20px;
}
.hero__badge {
  position: relative;
  z-index: 2;
  width: 20.044%;
  padding: 10px;
  text-align: center;
}
.hero__badge img { width: 100%; max-width: 86px; margin-left: 8%; }
.hero__cta-btn {
  position: relative;
  z-index: 1;
  width: 79.956%;
  padding: 10px;
}
.hero__cta-btn .btn-hero { margin-left: -44px; }

/* =========================================================
   掲載実績（比較biz）
   ========================================================= */
.award {
  position: relative;
  padding: 0 0 8px;
  background: var(--teal);
}
.award__inner {
  display: flex;
  max-width: 1140px;
  margin: 0 auto;
}
.award__laurel {
  display: flex;
  align-items: center;
  width: 15%;
  padding: 10px;
}
.award__laurel img { display: block; width: 100%; max-width: 115px; margin: 0 auto; }
.award__laurel--left img { position: relative; left: 42.5px; }   /* 本番の margin-right:-85px 相当 */
.award__laurel--right img { position: relative; left: -46px; max-width: 116px; } /* 本番の margin-left:-92px 相当 */
.award__text { width: 45%; padding: 10px; }
.award__lead {
  margin: 5px 0 17px;
  font-size: 28px;
  font-weight: 600;
  line-height: 1.7;
  letter-spacing: 1.9px;
  text-align: center;
  color: var(--white);
}
.award__title {
  margin-top: -3%;
  font-size: 28px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 5.5px;
  text-align: center;
  color: var(--white);
}
.award__title span { font-size: 36px; }
.award__device {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  width: 25%;
}
.award__device-pc { display: block; width: 100%; max-width: 790px; margin: -100px 0 20px; }
.award__device-sp { display: none; }

/* =========================================================
   期間限定キャンペーン（上部）
   ========================================================= */
.offer {
  padding: 50px 0;
  background: var(--orange-soft);
}
.offer__title {
  font-size: 36px;
  letter-spacing: 3px;
  word-spacing: 22px;
  color: var(--white);
}
.offer__image {
  max-width: 1140px;
  margin: 0 auto;
  padding: 10px;
}
.offer__image picture { display: block; margin-bottom: 20px; }
.offer__image img { display: block; width: 100%; }

/* =========================================================
   お悩み
   ========================================================= */
.trouble {
  position: relative;
  padding-top: 50px;
  background: var(--pale);
}
.trouble__sub .slash-heading__text { letter-spacing: 3px; word-spacing: 22px; }
.trouble__title {
  max-width: 1140px;
  margin: 0 auto;
  padding: 10px;
  font-size: 36px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 3px;
  text-align: center;
}
.trouble__list {
  display: flex;
  max-width: 1140px;
  margin: 0 auto;
  padding: 4% 0 30%;
}
.trouble__item { display: flex; width: 33.3333%; }
.trouble__card {
  display: flex;
  flex-direction: column;
  width: 100%;
  margin: 0 10% 20%;
  padding: 5%;
  background: var(--white);
  border-radius: 10px;
  box-shadow: 4px 4px 4px 1px rgba(115, 115, 115, .5);
}
.trouble__text {
  padding-bottom: 1.7em;          /* 本番の空段落ぶんの余白 */
  margin-bottom: 20px;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: 1px;
}
.trouble__text em { color: var(--orange); }
.trouble__img { display: block; width: 100%; max-width: 194px; margin: 0 auto; }

/* 下のセクションに重なる「お任せください！」画像 */
.trouble__bridge {
  position: relative;
  max-width: 1140px;
  height: 20px;
  margin: 0 auto;
}
.trouble__bridge img {
  position: absolute;
  z-index: 14;
  left: 12px;
  bottom: -1.07px;
  width: 100%;
  max-width: 1180px;
}

/* =========================================================
   teamsbizだからできること
   ========================================================= */
.strength {
  position: relative;
  z-index: 1;
  padding: 13% 0 6%;
  background: url("../assets/img/bg-pattern.png") center center / cover no-repeat;
}
.strength__shape {
  position: absolute;
  top: -1px;
  left: 0;
  width: 100%;
  overflow: hidden;
  line-height: 0;
  pointer-events: none;
}
.strength__shape svg {
  position: relative;
  left: 50%;
  display: block;
  width: calc(100% + 1.3px);
  height: 78px;
  transform: translateX(-50%);
}
.strength__shape path { fill: var(--pale); }
.strength__inner {
  position: relative;
  max-width: 1140px;
  margin: 0 auto;
  padding: 10px;
}
.strength__rule { width: 46%; border-top: 2px solid var(--ink); }
.strength__body { display: flex; }
.strength__others { width: 51%; padding: 10px; }

.compare-item { display: flex; align-items: center; }
.compare-item + .compare-item { margin-top: 20px; }
.compare-item__icon { width: 27%; margin-right: 20px; }
.compare-item__icon img { display: block; width: 100%; max-width: 108px; }
.compare-item__content { width: 100%; }
.compare-item__title {
  margin-bottom: 14px;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 1px;
  color: var(--ink);
}
.compare-item__desc {
  font-size: 18px;
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: 3px;
  color: var(--white);
}
.compare-item__desc span { padding: 10px; background: var(--teal); }

.strength__arrow {
  display: flex;
  align-items: center;
  width: 11.726%;
  padding: 10px;
}
.strength__arrow img { display: block; width: 100%; max-width: 115px; margin: 0 auto; }

.strength__answer {
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: 36.607%;
  padding: 1.83%;
  background: var(--white);
  border: 9px solid var(--orange);
}
.strength__answer-title {
  margin-bottom: 20px;
  font-size: 36px;
  font-weight: 700;
  line-height: 45px;
  letter-spacing: 2.9px;
  text-align: center;
  color: var(--orange);
}
.strength__answer-title span { font-size: 24px; color: var(--ink); }
.strength__answer-text {
  font-size: 24px;
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: 1px;
  text-align: center;
}
.strength__answer-rule {
  width: 100%;
  height: 0;
  margin: 1px auto 3px;
  border: 0;
  border-top: 3px solid var(--orange);
}

/* PC用：オレンジの見出し画像（下のセクションへはみ出す） */
.strength__band {
  position: absolute;
  z-index: 6;
  left: 0;
  bottom: -171px;
  text-align: center;
}
.strength__band img { display: block; max-width: 100%; }

/* スマホ専用の見出し帯 */
.band-sp { display: none; }

/* =========================================================
   準備いただくもの
   ========================================================= */
.prepare {
  position: relative;
  background: #fff3a6;
}
.prepare::before {   /* ドット柄のオーバーレイ */
  content: "";
  position: absolute;
  inset: 0;
  background: url("../assets/img/bg-dot.png") top center;
  opacity: .24;
  pointer-events: none;
}
.prepare__inner {
  position: relative;
  display: flex;
  max-width: 1140px;
  margin: 0 auto;
}
.prepare__main { width: 70%; margin-top: 9.1%; padding: 10px; }
.prepare__title {
  font-size: 34px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: -.6px;
  word-spacing: 22px;
  color: var(--ink);
}
.prepare__rule { width: 100%; border-top: 2px solid var(--ink); }
.prepare__items { display: flex; }
.prepare__item {
  width: 38.112%;
  padding: 10px;
  text-align: center;
}
.prepare__item:last-child { width: 37.869%; }
.prepare__item img { display: block; width: 98%; max-width: 200px; margin: 0 auto 15px; }
.prepare__item figcaption {
  font-size: 18px;
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: 1px;
  color: var(--ink);
}
.prepare__and {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 23.281%;
  padding: 10px;
  font-size: 116px;
  font-weight: 700;
  line-height: 1;
  color: var(--ink);
}
.prepare__staff {
  display: flex;
  align-items: flex-end;
  width: 30%;
  padding: 10px;
}
.prepare__staff img { display: block; width: 100%; margin-bottom: -5%; }

/* =========================================================
   7つのサポート
   ========================================================= */
.support {
  padding: 0 0 7%;
  background: var(--white);
}
.support__inner {
  max-width: 1140px;
  margin: 0 auto;
  padding: 10px;
}
.support__sub { padding-top: 50px; }
.support__sub .slash-heading__text { font-size: 24px; letter-spacing: 0; }
.support__title { margin-top: 1px; }
.support__list { padding-top: calc(4% - 1px); padding-bottom: 4%; }
.support-item {
  /* アイコン列の幅（--col）と、アイコンを右へはみ出させる量（--mr）。本番の負マージン配置を再現 */
  --col: 13.665%;
  --mr: 102px;
  --c: calc(var(--col) - 10px + var(--mr));
  --w: min(121px, var(--c));
  display: flex;
  max-width: 1023px;
  margin: 0 auto;
}
.support-item__icon {
  position: relative;
  z-index: 2;
  flex: 0 0 auto;
  align-self: flex-start;
  width: var(--w);
  max-width: none;
  margin: 5px calc(var(--col) - 5px - (var(--c) - var(--w)) / 2 - var(--w)) 5px calc(5px + (var(--c) - var(--w)) / 2);
}
.support-item__text {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  flex: 0 0 auto;
  width: 86%;
  margin: 15px 0 5px -38px;
  padding: 0 0 0 97px;
  font-size: 24px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 1px;
  color: var(--ink);
  border: 4px solid var(--teal);
  border-radius: 100px;
}
.support-item__text em { color: var(--orange); }

/* =========================================================
   キャンペーン告知（人物＋価格＋ボタン）
   ========================================================= */
.campaign {
  padding: 3% 0 2%;
  background: url("../assets/img/bg-campaign.png") right center;
}
.campaign__inner {
  display: flex;
  align-items: center;
  max-width: 1140px;
  margin: 0 auto;
}
.campaign__staff {
  position: relative;   /* 上のセクションへはみ出す人物を前面に */
  z-index: 1;
  width: 33.333%;
  margin-bottom: -5%;
  padding: 10px;
}
.campaign__staff img { display: block; width: 100%; margin: -39% 0 -4%; }
.campaign__body {
  position: relative;
  z-index: 2;
  width: 66.666%;
  padding: 10px;
  text-align: center;
}
.campaign__price { display: block; width: 100%; max-width: 778px; margin: 0 auto 20px; }
.campaign__note {
  margin-bottom: 75px;
  font-family: var(--font-en);
  font-size: 22px;
  font-weight: 600;
  line-height: 1;
  color: var(--white);
}

/* =========================================================
   「高額になるんじゃないの？」
   ========================================================= */
.worry { background: var(--teal); }
.worry__inner {
  display: flex;
  max-width: 1097px;
  margin: 0 auto;
}
.worry__text {
  display: flex;
  align-items: center;
  width: 67.069%;
  padding: 10px;
  font-size: 36px;
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: 1px;
  color: var(--white);
}
.worry__img {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  width: 31.669%;
  padding: 10px;
}
.worry__img img { display: block; width: 100%; max-width: 221px; margin-bottom: -5%; }

/* =========================================================
   他社比較
   ========================================================= */
.price {
  padding: 0 0 9%;
  background: var(--pale);
}
.price__inner {
  max-width: 1199px;
  margin: 0 auto;
  padding: 10px;
}
.price__sub { padding-top: 50px; }
.price__sub .slash-heading__side { width: 33.333%; }
.price__sub .slash-heading__text { width: 33.333%; letter-spacing: 6.7px; }
.price__table {
  margin-top: calc(4% + 22px);   /* 区切り線の下余白 + 4%（マージン相殺を避ける） */
  padding: 3%;
  background: var(--teal);
  border-radius: 30px;
}
.price__table img { display: block; width: 100%; }

/* =========================================================
   お客様の声
   ========================================================= */
.voice__block { padding: 0; }
.voice__block--1 {
  padding-top: 5%;
  background-image: linear-gradient(200deg, #fc993d 31%, var(--white) 59%);
}
.voice__block--2 {
  background: var(--white) url("../assets/img/bg-column.png") 0 157px / cover no-repeat;
}
.voice__block--3 {
  background: var(--white) url("../assets/img/bg-column.png") 0 -404px / cover no-repeat;
}
.voice__block--4 {
  padding-bottom: 5%;
  background-image: linear-gradient(190deg, var(--white) 31%, var(--orange) 59%);
}
.voice__inner {
  max-width: 1006px;
  margin: 0 auto;
  padding: 10px;
}

.voice-card { --card-color: var(--orange); margin-top: 4%; }
.voice-card--teal { --card-color: var(--teal); }
.voice__title + .rule + .voice-card { margin-top: calc(4% + 22px); }
.voice-card__head {
  display: flex;
  padding: 2% 0 0;
  background: var(--white);
  border: 3px solid var(--card-color);
  border-bottom: 0;
  border-radius: 70px 70px 0 0;
}
.voice-card__person { width: 23.661%; padding: 10px; text-align: center; }
.voice-card__person img { display: block; margin: 0 auto 20px; }
.voice-card__name {
  margin-bottom: 9px;
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 1px;
}
.voice-card__catch {
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: 76.339%;
  padding: 10px;
}
.voice-card__title {
  display: flex;
  align-items: flex-start;
  font-size: 36px;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 4.3px;
  color: var(--card-color);
}
.voice-card__title i {
  flex: 0 0 auto;
  width: 30px;
  margin-right: 15px;
  font-size: 30px;
  line-height: 1;
  text-align: center;
}
.voice-card__rule {
  width: 100%;
  height: 0;
  margin: 22px 0 2px;
  border: 0;
  border-top: 3px solid var(--card-color);
}
.voice-card__body {
  display: flex;
  align-items: center;
  padding: 28px;
  background: var(--white);
  border: 3px solid var(--card-color);
  border-top: 0;
  border-radius: 0 0 70px 70px;
  transition: box-shadow .3s;
}
.voice-card:hover .voice-card__body { box-shadow: 0 4px 8px 0 rgba(0, 0, 0, .1); }
.voice-card__text-col { width: 59.471%; padding: 0 32px 32px; }
.voice-card__text {
  padding: 3%;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: 1px;
  border: 3px solid var(--orange);
  border-radius: 18px;
}
.voice-card__img-col { width: 40.478%; padding-right: 32px; }
.voice-card__img-col img { display: block; width: 100%; }

/* 4件目：ビフォー → アフター */
.voice-card__body--result { align-items: center; }
.result__before { width: 33.765%; padding: 0 32px; text-align: center; }
.result__caption {
  margin-bottom: 5px;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: 1px;
}
.result__before-img { padding: 10%; background: #c5c5c5; }
.result__before-img img { display: block; width: 100%; }
.result__arrow { width: 25.387%; padding: 32px; text-align: center; }
.result__arrow img { display: block; width: 100%; max-width: 115px; margin: 0 auto; }
.result__arrow-text {
  margin: 5%;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: 1px;
}
.result__after { align-self: flex-start; width: 40.478%; padding-right: 32px; }
.result__box {
  margin-bottom: 20px;
  padding: 3%;
  font-size: 18px;
  font-weight: 700;
  line-height: 31px;
  letter-spacing: 1px;
  border: 3px solid var(--orange);
}
.result__box em { color: var(--orange); }
.result__box em span { font-size: 24px; }
.result__after img { display: block; width: 100%; }

/* =========================================================
   制作の流れ
   ========================================================= */
.flow {
  position: relative;
  padding: 5% 0 11%;
  background: var(--pale) url("../assets/img/bg-flow.png") center center / cover no-repeat;
}
.flow::before {   /* 白の半透明オーバーレイ */
  content: "";
  position: absolute;
  inset: 0;
  background: var(--white);
  opacity: .73;
}
.flow__inner {
  position: relative;
  max-width: 972px;
  margin: 0 auto;
  padding: 10px;
}
.flow__lead {
  margin-bottom: 20px;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: 1px;
}
.flow__list { display: flex; margin: calc(4% + 20px) 0 2%; }
.flow-step {
  display: flex;
  flex-direction: column;
  width: calc(20% - 20px);
  margin: 10px;
  padding: 1.8% 1.4% 1.4%;
  background: var(--white);
  border-radius: 19px;
  box-shadow: 2px 2px 10px 0 rgba(83, 83, 83, .5);
}
.flow-step__title {
  margin-bottom: 20px;
  font-family: var(--font-en);
  font-size: 16px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 1.5px;
  color: var(--ink);
}
.flow-step__title span { font-size: 24px; color: var(--teal); }
.flow-step__title--sm { font-size: 12px; }
.flow-step__icon { display: block; width: 59%; max-width: 73px; margin: 0 auto 15px; }
.flow-step__icon--wide { max-width: 85px; }
.flow-step__text {
  font-size: 14px;
  font-weight: 700;
  line-height: 1.7;
  text-align: center;
}

/* =========================================================
   よくある質問
   ========================================================= */
.faq {
  position: relative;
  padding: 5% 0;
  background: var(--teal);
}
.faq::before {   /* 背景写真のオーバーレイ */
  content: "";
  position: absolute;
  inset: 0;
  background: url("../assets/img/bg-faq.jpg") center center / cover no-repeat fixed;
  opacity: .21;
}
.faq__inner { position: relative; padding: 10px; }
.faq__title { color: var(--white); }
.faq__list {
  max-width: 874px;
  margin: 0 auto;
  padding: 10px 10px 10px;
}
.faq-item { margin-bottom: 10px; }
.faq-item:last-child { margin-bottom: 0; }
.faq-item__q {
  position: relative;
  display: flex;
  align-items: center;
  padding: 20px 20px 20px 25px;
  font-size: 18px;
  font-weight: 700;
  line-height: 24px;
  color: var(--ink);
  background: var(--white);
  border: 1px solid #f0f5fd;
  border-radius: 20px 20px 0 0;
  cursor: pointer;
  list-style: none;
}
.faq-item__q::-webkit-details-marker { display: none; }
.faq-item__q::marker { content: ""; }
.faq-item__mark {
  flex: 0 0 auto;
  width: 42px;
  padding-right: 26px;
  font-family: var(--font-en);
  font-size: 19px;
  font-weight: 700;
  line-height: 25px;
  color: var(--teal);
}
.faq-item__title { padding-right: 10px; }
.faq-item__icon {   /* 本番同様、右端に絶対配置（長い質問では文字と重なる） */
  position: absolute;
  top: 50%;
  right: 30px;
  margin-top: -9px;
  font-size: 18px;
  line-height: 1;
  color: var(--teal);
}
.faq-item__mark::before { content: "Q"; }
.faq-item[open] .faq-item__mark { color: var(--orange); }
.faq-item[open] .faq-item__mark::before { content: "A"; }   /* 開いている間は「A」表示（本番と同じ） */
.faq-item[open] .faq-item__icon { color: var(--orange); transform: rotate(180deg); }
.faq-item__a {
  padding: 30px 65px;
  font-size: 18px;
  font-weight: 500;
  line-height: 24px;
  letter-spacing: 1px;
  background: var(--white);
  border-radius: 0 0 27.5px 27.5px;
}
.faq-item__a strong { font-weight: 800; }

/* =========================================================
   集客お役立ち情報（ブログ）
   ========================================================= */
.column {
  position: relative;
  z-index: 1;
  padding: 5% 0 7%;
  background: var(--white) url("../assets/img/bg-column.png") 0 0 / cover;
}
.column::before {   /* 白の半透明オーバーレイ */
  content: "";
  position: absolute;
  inset: 0;
  background: var(--white);
  opacity: .53;
}
.column__inner {
  position: relative;
  max-width: 1140px;
  margin: 0 auto;
  padding: 10px;
}
.column__lead {
  margin-bottom: 20px;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: 1px;
  text-align: center;
}
.column__list { display: flex; align-items: flex-start; margin-top: calc(4% + 20px); }
.column__item { width: 25%; padding: 10px; }
.column__item--2 { margin-top: 3.25%; }
.column__item--4 { margin-top: 3.75%; }
.post-card {
  padding: 15px;
  background: var(--white);
  border-radius: 11px;
  box-shadow: 2px 2px 10px 0 rgba(111, 111, 111, .5);
}
.post-card--pb { padding-bottom: 35px; }
.post-card__thumb { display: block; margin-bottom: 15px; }
.post-card__thumb img { display: block; width: 100%; border-radius: 11px; }
.post-card__title {
  margin-bottom: 10px;
  font-size: 18px;
  font-weight: 700;
  line-height: 23px;
  letter-spacing: 1px;
  color: var(--teal);
}
.post-card__title--tight { letter-spacing: .9px; }
.post-card__title a { text-decoration: none; }
.post-card__title a:hover { text-decoration: underline; }
.post-card__text {
  font-size: 14px;
  font-weight: 500;
  line-height: 19px;
  letter-spacing: 1px;
}

/* =========================================================
   お問い合わせ
   ========================================================= */
.contact {
  position: relative;
  z-index: 1;
  padding: 8% 0 5%;
  background: var(--white);
  scroll-margin-top: 0;
}
.contact__inner {
  position: relative;
  max-width: 1140px;
  margin: 0 auto;
  padding: 10px;
}
.contact__band {
  position: absolute;
  z-index: 3;
  top: -133px;
  left: 60px;
}
.contact__band img { display: block; max-width: 100%; }
.contact__lead {
  margin-bottom: 20px;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: 1px;
  text-align: center;
}

.contact-form {
  max-width: 773px;
  margin: 0 auto;
  padding: 10px;
}
.contact-form__item + .contact-form__item { margin-top: 20px; }
.contact-form__item:has(textarea) + .contact-form__item { margin-top: 27px; }
.contact-form__label {
  display: block;
  margin-bottom: 27px;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: .5px;
}
.contact-form__must {
  margin-left: 10px;
  padding: 3px 10px;
  font-size: 10px;
  line-height: 1.7;
  vertical-align: 2px;
  color: var(--white);
  background: #e9444d;
  border-radius: 3px;
}
.contact-form__input,
.contact-form__textarea {
  display: block;
  margin: 1px 0 0;
  padding: 10px;
  font-family: sans-serif;
  font-size: 14px;
  font-weight: 400;
  color: #28303d;
  background: var(--white);
  border: 1px solid #cdcdcd;
  border-radius: 3px;
}
.contact-form__input { width: 350px; max-width: 100%; margin-left: 2px; line-height: 23.8px; }
.contact-form__textarea {
  width: 100%;
  height: 200px;
  line-height: 1.15;
  color: #000;
  border-radius: 5px;
  resize: vertical;
}
.contact-form__input::placeholder,
.contact-form__textarea::placeholder { color: #757575; }
.contact-form__input:focus,
.contact-form__textarea:focus { outline: 2px solid var(--teal); outline-offset: 0; }
.contact-form__turnstile { margin-top: 20px; text-align: center; }
.contact-form__turnstile:empty { display: none; }
.contact-form__submit { margin-top: 28px; text-align: center; }
.contact-form__btn {
  width: 30%;
  margin-top: 20px;
  padding: 15px 0;
  font-family: var(--font-jp);
  font-size: 16px;
  font-weight: 600;
  line-height: 1.7;
  color: #d1e4dd;
  background: #28303d;
  border: 3px solid transparent;
  border-radius: 10px;
  cursor: pointer;
  transition: all .3s;
}
.contact-form__btn:hover:not(:disabled) { color: var(--white); background: #ff7a40; border-color: #ff7a40; }
.contact-form__btn:disabled { cursor: wait; opacity: .6; }
.form-status {
  margin-top: 16px;
  font-size: 15px;
  font-weight: 700;
  text-align: center;
}
/* 空のときも display:none にしない（aria-live の初回読み上げを落とさないため）。見た目だけ畳む */
.form-status:empty { min-height: 0; margin-top: 0; padding: 0; border: 0; }
.form-status.is-success { color: var(--teal); }
.form-status.is-error { color: #e9444d; }
/* ボット対策の入力欄（画面外へ） */
.hp-field {
  position: absolute !important;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

/* ページ末尾の帯 */
.page-end { height: 146px; background: var(--teal); }

/* =========================================================
   右下固定のお問い合わせボタン
   ========================================================= */
.fixed-cta {
  position: fixed;
  z-index: 15;
  right: 0;
  bottom: 60px;
  display: inline-flex;
  align-items: center;
  padding: 12px 24px;
  font-size: 18px;
  font-weight: 600;
  line-height: 1.7;
  letter-spacing: .2px;
  color: var(--white);
  text-decoration: underline;
  background: var(--orange);
  border: 3px solid var(--white);
  border-radius: 29px;
  transition: all .3s;
}
/* お問い合わせセクション表示中は非表示（main.js が付与） */
.fixed-cta.is-hidden { opacity: 0; pointer-events: none; visibility: hidden; transition: opacity .3s, visibility 0s .3s; }
.fixed-cta i { margin-left: 20px; }
.fixed-cta:hover,
.fixed-cta:focus { color: var(--orange); background: var(--white); border-color: var(--orange); }

/* =========================================================
   タブレット以下（〜768px）
   ========================================================= */
@media (max-width: 768px) {
  .hero__title { font-size: 24px; letter-spacing: 0; }
  .hero__brand { padding: 14px 0; font-size: 44px; }
  .hero__badge img { margin-left: 0; }
  .hero__cta-btn .btn-hero { margin-left: -40px; }
  .btn-hero { font-size: 18px; }

  .award { margin-bottom: -15px; }
  .award__lead { font-size: 18px; letter-spacing: 0; }
  .award__title { font-size: 18px; letter-spacing: .8px; }
  .award__laurel img { height: 71px; }
  .award__device-pc { margin-top: -40px; }

  .trouble__title { font-size: 30px; }
  .trouble__text--tight { letter-spacing: -.5px; }
  .trouble__img--last { margin-top: 15%; }
  .trouble__bridge img { left: -7px; bottom: -54px; }

  .strength__answer-rule { width: 92%; }
  .strength__band { width: 100%; bottom: -128px; padding: 10px; }
  .strength__band img { margin: 0 auto; }

  .prepare__title { font-size: 22px; }
  .prepare__items { padding: 12px; }
  .prepare__item figcaption { font-size: 14px; }
  .prepare__and { font-size: 82px; }

  .support__title,
  .price__title,
  .voice__title { font-size: 30px; letter-spacing: -.4px; }
  .support-item { --mr: 70px; }
  .support-item__text { font-size: 18px; }

  .campaign__body { padding-bottom: 5%; }
  .campaign__note { margin: 0 10% 20px; font-size: 18px; line-height: 23px; }   /* タブレット以下は本番のスペーサー非表示 */
  .btn-outline { font-size: 18px; }

  .worry__inner { padding: 0 3%; }
  .worry__text { font-size: 24px; }
  .worry__img img { margin-bottom: -10%; }

  .voice__inner { max-width: 716px; }
  .voice-card__title { font-size: 24px; }
  .voice-card__text-col,
  .result__before,
  .result__arrow { padding: 2px; }
  .voice-card__img-col,
  .result__after { padding-right: 10px; }
  .voice-card__text,
  .result__caption,
  .result__box { font-size: 14px; }
  .result__arrow img { margin: 20%; }
  .result__arrow-text { margin: 0; }

  .flow { padding: 3% 3% 11%; }
  .flow-step { width: calc(20% - 10px); margin: 5px; padding: 8%; }
  .flow-step__title { font-size: 14px; letter-spacing: .2px; }
  .flow-step__title--sm { font-size: 12px; letter-spacing: -.1px; }

  .faq { padding: 10% 0; }
  .faq__list { max-width: 874px; }
  .faq-item__q,
  .faq-item__a { font-size: 14px; }

  .column { padding: 5%; }

  .contact { padding: 8% 5% 5%; }
  .contact__band { top: -80px; left: 0; }

  .fixed-cta { font-size: 18px; }
}

/* =========================================================
   タブレットのみ（601px〜768px）
   ========================================================= */
@media (min-width: 601px) and (max-width: 768px) {
  .hero__body { width: 56%; }
  .hero__spacer--a { width: 19%; }
  .hero__badge { width: 20%; }

  .award__laurel { width: 10%; }
  .award__text { width: 53%; }
  .award__device { width: 27%; }

  .slash-heading__side { width: 15%; }
  .slash-heading__text { width: 70%; }
  .price__sub .slash-heading__side { width: 30%; }
  .price__sub .slash-heading__text { width: 40%; }

  .strength__body { flex-wrap: wrap; }
  .strength__others { width: 100%; margin: 0 6px 0 113px; }
  .strength__arrow { width: 100%; }
  .strength__arrow img { transform: rotate(90deg); }
  .strength__answer { width: 100%; margin: 0 150px; padding: 3%; }

  .worry__text { width: 69%; }
  .worry__img { width: 31%; }

  .voice-card__img-col,
  .result__after { width: 38%; }

  .column__item { width: 50%; }
}

/* =========================================================
   スマホ（〜600px）
   ========================================================= */
@media (max-width: 600px) {
  .section-title { font-size: 24px; }

  /* 斜線つき小見出し */
  .slash-heading__side { width: 10%; align-items: flex-end; }
  .slash-heading__text { width: 80%; font-size: 18px; line-height: 22px; }
  .slash-heading__side i { font-size: 25px; }
  .slash-heading__side--left { justify-content: flex-end; }
  .slash-heading--light .slash-heading__side { width: 15%; align-items: flex-start; }
  .slash-heading--light .slash-heading__text { width: 70%; line-height: 1; }
  .slash-heading--light .slash-heading__side i { font-size: 26px; }
  .slash-heading--light .slash-heading__side--left { justify-content: flex-start; padding-left: 30px; }
  .slash-heading--light .slash-heading__side--right i { transform: rotate(99deg); }

  /* ヒーロー */
  .hero {
    height: auto;
    background-image: url("../assets/img/hero-sp.png");
  }
  .hero__inner { flex-direction: column-reverse; max-width: 1600px; }
  .hero__body,
  .hero__spacer { width: 100%; }
  .hero__spacer--a { height: 170px; }
  /* 375px 幅でも「手軽に作れてプロの仕上がり」が折り返さないよう詰める */
  .hero__title { font-weight: 700; letter-spacing: .5px; text-shadow: 1px 2px 26px #fff; }
  .hero__title-line + .hero__title-line { text-shadow: 1px 2px 14px #fff; }
  .hero__accent {
    font-size: 32px;
    font-weight: 900;
    -webkit-text-stroke: 1px #fff;
  }
  .hero__brand {
    padding: 14px 5px;
    font-size: 30px;
    letter-spacing: 1.3px;
    text-shadow: 0 0 10px rgba(0, 0, 0, .3);
    box-shadow: 5px 5px 0 0 #214f51;
  }
  .hero__brand small { font-size: 24px; }
  .hero__cta { margin-bottom: 10px; }
  .hero__badge { width: 30%; }
  .hero__cta-btn { width: 70%; }
  .hero__cta-btn .btn-hero { margin-left: -50px; }
  .btn-hero { font-size: 20px; letter-spacing: .7px; }

  /* 掲載実績 */
  .award { padding: 5px 0 10px; }
  .award__inner { flex-wrap: wrap; }
  .award__laurel { display: none; }
  .award__text { width: 100%; margin-bottom: 6px; }
  .award__title { font-size: 19px; }
  .award__device { width: 100%; padding: 10px 40px; }
  .award__device-pc { display: none; }
  .award__device-sp { display: block; width: 100%; }

  /* キャンペーン（上部） */
  .offer__title { font-size: 18px; letter-spacing: .1px; }
  .offer__image picture { margin-bottom: 0; }

  /* お悩み */
  .trouble__title { font-size: 26px; line-height: 37px; letter-spacing: .4px; }
  .trouble__list { flex-wrap: wrap; }
  .trouble__item { width: 100%; }
  .trouble__card { margin: 5% 20%; }
  .trouble__text { font-size: 14px; }
  .trouble__img { width: 60%; }
  .trouble__img--last { margin-top: 0; }
  .trouble__bridge img { left: -1px; bottom: -30px; }

  /* できること */
  .strength__inner { margin-top: 10%; }
  .strength__title { font-size: 23px; }
  .strength__body { flex-wrap: wrap; max-width: 683px; }
  .strength__others { width: 100%; }
  .compare-item { display: block; text-align: center; }
  .compare-item__icon { display: block; width: 28%; margin: 0 auto; }
  .compare-item__icon img { margin: 0 auto; }
  .compare-item__title { font-size: 14px; }
  .compare-item__desc { font-size: 14px; }
  .compare-item__desc--narrow { letter-spacing: 1.1px; }
  .strength__arrow { width: 100%; }
  .strength__arrow img { transform: rotate(90deg); }
  .strength__answer { width: auto; flex: 1 1 100%; margin: 0 30px 30px; padding: 3%; }
  .strength__answer-title { font-size: 24px; line-height: 1.4; }
  .strength__answer-text { font-size: 14px; }
  .strength__answer-rule { width: 80%; margin-bottom: 16px; }
  .strength__band { display: none; }

  /* スマホ専用の見出し帯 */
  .band-sp {
    display: block;
    padding: 10px;
    background: var(--orange);
  }
  .band-sp--teal { background: var(--teal); }
  .band-sp__text {
    font-size: 20px;
    font-weight: 700;
    line-height: 26px;
    letter-spacing: 3px;
    text-align: center;
    color: var(--white);
  }
  .band-sp__text span { font-size: 28px; }

  /* 準備いただくもの */
  .prepare::before { background-position: bottom center; background-repeat: no-repeat; }
  .prepare__inner { flex-wrap: wrap; }
  .prepare__main { width: 100%; margin-top: 50px; }
  .prepare__title { font-size: 15px; text-align: center; }
  .prepare__items { max-width: 500px; margin: 0 auto; }
  .prepare__item,
  .prepare__item:last-child { width: 40%; }
  .prepare__and { width: 20%; font-size: 54px; }
  .prepare__staff { justify-content: center; width: 100%; padding: 0 10px; }
  .prepare__staff img { width: 40%; }

  /* サポート */
  .support__sub .slash-heading__side { width: 20%; align-items: flex-start; }
  .support__sub .slash-heading__side i { font-size: 27px; }
  .support__sub .slash-heading__text { width: 60%; font-size: 18px; }
  .support__title { line-height: 1.3; }
  .support-item { --col: 20%; --mr: 30px; }
  .support-item__text {
    width: 80%;
    margin: 5px 10px 5px 5px;
    padding: 0 0 0 8%;
    font-size: 14px;
    line-height: 17px;
  }
  .support-item:first-child .support-item__text { padding: 0 3px 0 20px; }

  /* キャンペーン */
  .campaign { padding: 3% 0; }
  .campaign__inner { flex-wrap: wrap; }
  .campaign__staff { width: 60%; margin: 5% 20% 20%; }
  .campaign__staff img { width: 100%; margin: 0; aspect-ratio: 214 / 349; object-fit: cover; }
  .campaign__body { width: 100%; margin: -40% 0 5%; padding: 0 3%; }
  .campaign__note { margin: 0 10% 20px; font-size: 16px; line-height: 1.3; }
  .btn-outline { padding: 5%; font-size: 14px; border-width: 3px; }

  /* 高額？ */
  .worry__inner { flex-wrap: wrap; }
  .worry__text,
  .worry__img { width: 100%; }
  .worry__text { justify-content: center; font-size: 18px; letter-spacing: -1.4px; text-align: center; }
  .worry__img img { width: 100%; }

  /* 比較 */
  .price__sub .slash-heading__side { width: 20%; align-items: flex-start; }
  .price__sub .slash-heading__side i { font-size: 27px; }
  .price__sub .slash-heading__text { width: 60%; font-size: 20px; letter-spacing: 2.3px; line-height: 1; }
  .support__title,
  .price__title,
  .voice__title { font-size: 24px; line-height: 1.3; }

  /* お客様の声 */
  .voice-card__head,
  .voice-card__body { flex-wrap: wrap; }
  .voice-card__person,
  .voice-card__catch { width: 100%; }
  .voice-card__title { display: block; font-size: 24px; letter-spacing: .3px; }
  .voice-card__title--sm { font-size: 20px; }
  .voice-card__title i { display: block; height: 30px; margin: 0; font-size: 23px; text-align: left; }
  .voice-card__text-col,
  .voice-card__img-col,
  .result__before,
  .result__arrow,
  .result__after { width: 100%; }
  .voice-card__img-col { padding: 60px 10px 60px 0; }
  .result__before-img { margin: 20px; }
  .result__arrow { padding: 2px; }
  .result__arrow img { margin: 0 auto; transform: rotate(90deg) scale(.7); }
  .result__after { padding: 20px 0; }

  /* 制作の流れ */
  .flow {
    padding: 11% 3%;
    background-image: url("../assets/img/bg-flow-sp.png");
  }
  .flow__lead { font-size: 14px; }
  .flow__list { flex-direction: column; }
  .flow-step { width: auto; margin: 2% 10%; padding: 8%; }
  .flow-step__title--sm { font-size: 16px; }

  /* FAQ（スマホ版は右側の開閉アイコンなし） */
  .faq { padding: 10% 0; }
  .faq::before { background-image: url("../assets/img/bg-faq-sp.png"); background-position: top center; background-attachment: scroll; }
  .faq__title { font-size: 25px; }
  .faq__list { padding: 20px 10px 0; }
  .faq-item__q { padding: 20px 0 20px 20px; font-size: 14px; }
  .faq-item__icon { display: none; }
  .faq-item__a { padding: 20px; font-size: 12px; }

  /* ブログ */
  .column { padding: 7% 5%; }
  .column__lead { font-size: 14px; }
  .column__list { flex-direction: column; align-items: stretch; }
  .column__item,
  .column__item--2,
  .column__item--4 { width: 100%; margin: 5% 0; }

  /* お問い合わせ */
  .contact { padding: 0; }
  .contact__band { display: none; }
  .contact__title { margin-top: 20%; font-size: 21px; }
  .contact__lead { font-size: 14px; }
  .contact-form__item + .contact-form__item { margin-top: 25px; }
  .contact-form__item:has(textarea) + .contact-form__item { margin-top: 33px; }
  .contact-form__label { margin-bottom: 35px; font-size: 16px; }
  .contact-form__input { padding: .4rem; width: calc(100% - 7px); }
  .contact-form__submit { margin-top: 33px; }
  .contact-form__btn { width: 100%; }
  .contact-form { padding-bottom: 41px; }

  .page-end { height: 91px; }

  .fixed-cta { bottom: 40px; letter-spacing: .7px; border-width: 0; }
  .fixed-cta:hover,
  .fixed-cta:focus { color: var(--white); background: var(--orange); }
}

/* PCのみ：FAQ背景の固定（本番は 769px 以上で background-attachment: fixed） */
@media (max-width: 768px) {
  .faq::before { background-attachment: scroll; }
}
