/* タレトレLP（静的） ---------------------------------------------------------
   参照元: https://taletore.jp/
   ブレークポイントは参照元(STUDIO)に合わせて 1140 / 840 / 540 / 320px。
   -------------------------------------------------------------------------- */

.ttlp {
  --ttlp-font: 'IBM Plex Sans JP', 'Hiragino Sans', 'Noto Sans JP', sans-serif;
  --ttlp-ink: #171919;
  --ttlp-gray: #767d80;
  --ttlp-gray2: #6b6e6f;
  --ttlp-blue: #008bc7;
  --ttlp-red: #e50012;
  --ttlp-bg: #f0f4f6;
  --ttlp-line: #c8cfd2;
  --ttlp-shadow: 0 0 20px rgba(6, 67, 92, 0.15);

  font-family: var(--ttlp-font);
  color: var(--ttlp-ink);
  background: #fff;
  overflow-x: hidden;
}

.ttlp *,
.ttlp *::before,
.ttlp *::after { box-sizing: border-box; }

.ttlp :where(p, h2, h3, ul, li) { margin: 0; padding: 0; }

.ttlp :where(ul) { list-style: none; }

.ttlp :where(img) {
  display: block;
  max-width: 100%;
  height: auto;
}

/* --- 和文タイポグラフィの基礎設定 ---------------------------------------
   palt で仮名のアキを詰め、折り返しは文節単位（auto-phrase）にする。
   auto-phrase 非対応のブラウザでは通常の折り返しにフォールバックする。 */
.ttlp {
  font-feature-settings: "palt" 1;
  text-spacing-trim: trim-start;
}

.ttlp :where(p, h2, h3, li, span, strong) {
  word-break: auto-phrase;
  line-break: strict;
}

/* 長い本文は 1 行だけ余る「ぶら下がり」を避ける */
.ttlp-detail__text,
.ttlp-qa__desc,
.ttlp-compare__note,
.ttlp-reason__text p,
.ttlp-detail__feature-text {
  text-wrap: pretty;
}

/* 2〜3行で収まる見出し・ラベルは行長を均等に割る */
.ttlp :where(h2, h3),
.ttlp-heading__title,
.ttlp-service__lead,
.ttlp-media__lead,
.ttlp-price__lead,
.ttlp-worry__item-text,
.ttlp-worry__note,
.ttlp-detail__sub,
.ttlp-detail__title,
.ttlp-qa__answer,
.ttlp-flow__note-title,
.ttlp-map__head,
.ttlp-map__body p,
.ttlp-map__cell p {
  text-wrap: balance;
}

/* 大きな数字は字送りを詰めて締める */
.ttlp-price__num,
.ttlp-compare__total-num,
.ttlp-compare__badge-num {
  letter-spacing: -0.02em;
  font-feature-settings: normal;
}

.ttlp-w1180 { width: min(1180px, 100% - 100px); margin-inline: auto; }

.ttlp-sp-only { display: none; }

/* セクション見出し（STUDIOのシンボル「見出し」相当） */
.ttlp-heading {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
}

.ttlp-heading__eyebrow {
  color: var(--ttlp-blue);
  font-size: 15px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.14em;
}

.ttlp-heading__bar {
  display: block;
  width: 25px;
  height: 2px;
  background: var(--ttlp-red);
}

.ttlp-heading__title {
  margin-top: 10px;
  font-size: 36px;
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: 0.02em;
}

/* ============================== FV ============================== */
.ttlp-fv {
  padding: 135px 0 80px;
  background: var(--ttlp-fv-bg) center center / cover no-repeat;
}

.ttlp-fv__inner {
  display: flex;
  align-items: flex-end;
  gap: 40px;
  width: 1440px;
  max-width: 100%;
  margin-inline: auto;
  padding-left: 100px;
}

.ttlp-fv__body {
  display: flex;
  flex: none;          /* 参照元(.sd)は flex:none。縮まずに max-content 幅を保つ */
  flex-direction: column;
  gap: 30px;
}

.ttlp-fv__eyebrow {
  color: var(--ttlp-gray);
  font-size: 15px;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.1em;
}

.ttlp-fv__catch {
  display: flex;
  flex-direction: column;
  margin-bottom: 31px;
  font-weight: 700;
  line-height: 1.5;
}

.ttlp-fv__catch-sub { font-size: 40px; }

.ttlp-fv__catch-main {
  display: flex;
  align-items: flex-end;
}

.ttlp-fv__catch-em {
  color: var(--ttlp-blue);
  font-size: 60px;
}

.ttlp-fv__catch-wo {
  margin: 0 8px 5px 5px;
  font-size: 40px;
}

.ttlp-fv__catch-verb { font-size: 60px; }

.ttlp-fv__lead {
  font-size: 20px;
  font-weight: 700;
  line-height: 1.9;
}

.ttlp-fv__visual { flex: none; width: 76%; }
.ttlp-fv__visual img { margin-bottom: -24px; }
.ttlp-fv__visual-sp { display: none; }

/* ====================== 採用のこんなお悩み ====================== */
.ttlp-worry {
  /* 見出しピルが margin-top:-36px で上にはみ出す分の余白（参照元と同じ見え方にする） */
  padding: 36px 0 80px;
}

.ttlp-worry__outer {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: min(1180px, 100% - 100px);
  margin-inline: auto;
}

.ttlp-worry__panel {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 30px;
  width: 100%;
  padding: 0 50px;
  border-radius: 10px;
  background: #eaebec;
}

.ttlp-worry__title {
  margin-top: -36px;
  padding: 10px 50px;
  border-radius: 60px;
  background: #4f4f4f;
  color: #fff;
  font-size: 36px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.02em;
}

.ttlp-worry__body {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 50px;
  width: 1020px;
  max-width: 100%;
  margin-bottom: 50px;
}

.ttlp-worry__list {
  display: flex;
  align-items: stretch;
  justify-content: center;
  gap: 50px;
  width: 100%;
}

.ttlp-worry__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  width: 33.3%;
  padding: 30px;
  border-radius: 10px;
  background: #fff;
}

.ttlp-worry__item-text {
  color: var(--ttlp-gray2);
  font-size: 24px;
  font-weight: 700;
  line-height: 1.55;
  text-align: center;
}

.ttlp-worry__item img { width: 198px; }

.ttlp-worry__note {
  font-size: 24px;
  font-weight: 700;
  line-height: 1.75;
  text-align: center;
}

.ttlp-worry__note strong { color: var(--ttlp-red); }

.ttlp-worry__arrow {
  width: 120px;
  margin-top: -1px;
}

.ttlp-worry__answer {
  margin-inline: 50px;
  font-size: 36px;
  font-weight: 700;
  line-height: 1.8;
  text-align: center;
}

.ttlp-worry__answer h2 {
  font-size: 36px;
  font-weight: 700;
  line-height: 1.7;
}

.ttlp-worry__answer strong {
  color: #b80c0c;
  font-size: 50px;
  font-weight: 700;
}

/* ====================== 選ばれる理由 ====================== */
.ttlp-reason {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 30px;
  padding: 80px 0;
  background: var(--ttlp-bg);
}

.ttlp-reason__list {
  display: flex;
  align-items: stretch;
  gap: 20px;
  padding-top: 20px;
}

.ttlp-reason__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 33.3%;
  padding: 20px 30px 30px;
  border-radius: 15px;
  background: #fff;
  box-shadow: var(--ttlp-shadow);
}

.ttlp-reason__icon {
  width: 50px;
  margin-top: -40px;
}

.ttlp-reason__text {
  width: 100%;
  padding: 20px 0;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.85;
}

.ttlp-reason__text h3 {
  margin-bottom: 10px;
  font-size: 24px;
  font-weight: 700;
  text-align: center;
  line-height: 1.5;
}

.ttlp-reason__text h3 strong { color: var(--ttlp-red); }

.ttlp-reason__text p { margin-top: 10px; }

.ttlp-reason__photo { width: 100%; }

/* ====================== できること ====================== */
.ttlp-service {
  padding: 80px 0 100px;
  background: var(--ttlp-service-bg) center top / cover no-repeat;
}

.ttlp-service__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 30px;
}

.ttlp-service__lead {
  font-size: 19px;
  font-weight: 500;
  line-height: 1.9;
  text-align: center;
}

/* サービス概念図 */
/* 各列の「見出し帯」と「中身」を親グリッドの同じ行に載せることで、
   文字量が違っても見出し帯の高さが揃うようにしている（subgrid）。 */
.ttlp-map {
  display: grid;
  grid-template-columns: 19fr auto 53fr auto 19fr;
  grid-template-rows: auto 1fr;
  justify-content: center;
  width: 100%;
}

.ttlp-map__col {
  display: grid;
  grid-row: 1 / -1;
  grid-template-rows: subgrid;
}

/* subgrid 非対応環境向けのフォールバック（帯を2行分の高さで揃える） */
@supports not (grid-template-rows: subgrid) {
  .ttlp-map__head { min-height: calc(1.7em * 2 + 10px); }
}

.ttlp-map__head {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 5px 10px;
  border-radius: 10px 10px 0 0;
  background: var(--ttlp-blue);
  color: #fff;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.7;
  text-align: center;
}

.ttlp-map__body {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 15px 30px 20px;
  border-radius: 0 0 10px 10px;
  background: var(--ttlp-bg);
}

.ttlp-map__body--row {
  flex-direction: row;
  gap: 30px;
  padding: 15px 50px 20px;
}

.ttlp-map__cell {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}

.ttlp-map__body img,
.ttlp-map__cell img { width: 100px; }

.ttlp-map__body p,
.ttlp-map__cell p {
  color: var(--ttlp-blue);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
}

.ttlp-map__arrow {
  display: flex;
  grid-row: 1 / -1;
  align-items: center;
}

.ttlp-map__arrow img {
  width: 15px;
  margin-inline: 20px;
}

/* サービス詳細 */
.ttlp-detail {
  display: flex;
  flex-direction: column;
  gap: 30px;
  width: 100%;
  padding: 80px;
  background: #fff;
  box-shadow: var(--ttlp-shadow);
}

.ttlp-detail__head {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: -10px;
}

.ttlp-detail__icon { width: 36px; }

.ttlp-detail__label {
  color: var(--ttlp-blue);
  font-size: 28px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.02em;
}

.ttlp-detail__row {
  display: flex;
  align-items: center;
  gap: 50px;
}

.ttlp-detail__body {
  flex: 1;
  min-width: 0;
}

.ttlp-detail__sub {
  font-size: 24px;
  font-weight: 700;
  line-height: 1.6;
}

.ttlp-detail__title {
  font-size: 36px;
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: 0.02em;
}

.ttlp-detail__text {
  margin-top: 10px;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.9;
}

.ttlp-detail__photo { width: 51%; }

.ttlp-detail__features {
  display: flex;
  gap: 30px;
}

.ttlp-detail__features li {
  flex: 1;
  padding: 20px;
  border-radius: 10px;
  background: var(--ttlp-bg);
}

.ttlp-detail__feature-title {
  margin-bottom: 8px;
  color: var(--ttlp-blue);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.55;
}

.ttlp-detail__feature-text {
  font-size: 15px;
  font-weight: 500;
  line-height: 1.85;
}

/* ============================== Q&A ============================== */
.ttlp-qa {
  padding-bottom: 30px;
  background: var(--ttlp-bg);
}

.ttlp-qa__head {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  margin-top: -30px;
}

.ttlp-qa__badge {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 15px 30px;
  border-radius: 40px;
  background: var(--ttlp-gray2);
}

.ttlp-qa__q {
  display: flex;
  flex: none;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: #fff;
  color: var(--ttlp-gray);
  font-size: 15px;
  font-weight: 700;
}

.ttlp-qa__question {
  color: #fff;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.6;
}

.ttlp-qa__arrow {
  width: 20px;
  margin: -1px 0 0 35px;
}

.ttlp-qa__body {
  display: flex;
  align-items: flex-start;
  gap: 50px;
}

.ttlp-qa__text {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 20px;
  margin-top: 50px;
  min-width: 0;
}

.ttlp-qa__answer {
  color: #c90010;
  font-size: 28px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.02em;
}

.ttlp-qa__desc {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.9;
}

.ttlp-qa__source {
  color: var(--ttlp-gray);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.8;
}

.ttlp-qa__figure { flex: none; }
.ttlp-qa__figure img { width: 350px; }
.ttlp-qa__figure-sp { display: none; }

/* ====================== サービスの流れ ====================== */
.ttlp-flow {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  padding-top: 50px;
  background: #fff;
  scroll-margin-top: 110px;
}

.ttlp-flow__panel {
  width: 100%;
  padding: 50px 0;
  background: var(--ttlp-bg);
}

.ttlp-flow__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 30px;
  padding-top: 50px;
}

.ttlp-flow__list {
  display: flex;
  align-items: stretch;
  gap: 20px;
  width: 100%;
}

.ttlp-flow__item {
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: center;
  padding: 0 15px 20px;
  border-radius: 10px;
  background: #fff;
}

.ttlp-flow__item img {
  width: 50px;
  margin-top: -40px;
}

.ttlp-flow__item-body {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  margin-top: 10px;
}

.ttlp-flow__item-title {
  font-size: 18px;
  font-weight: 700;
  line-height: 1.55;
}

.ttlp-flow__item-text {
  font-size: 15px;
  font-weight: 500;
  line-height: 1.8;
}

.ttlp-flow__note {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
}

.ttlp-flow__note-title {
  font-size: 24px;
  font-weight: 700;
  line-height: 1.6;
  text-align: center;
  letter-spacing: 0.02em;
}

.ttlp-flow__note-text {
  color: var(--ttlp-gray);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.8;
  text-align: center;
}

/* ============================== 料金 ============================== */
.ttlp-price {
  padding: 100px 0;
  background: #fff;
  scroll-margin-top: 110px;
}

.ttlp-price__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 30px;
}

.ttlp-price__lead {
  font-size: 18px;
  font-weight: 500;
  line-height: 1.9;
  text-align: center;
}

.ttlp-price__main {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 15px;
}

.ttlp-price__ribbon {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.ttlp-price__ribbon-box {
  width: 730px;
  max-width: 100%;
  padding: 8px 15px;
  background: #fff;
  box-shadow: var(--ttlp-shadow);
  color: var(--ttlp-blue);
  font-size: 15px;
  font-weight: 700;
  line-height: 1.7;
  text-align: center;
}

.ttlp-price__ribbon-tail {
  width: 30px;
  margin-top: -1px;
}

.ttlp-price__amount {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  color: var(--ttlp-blue);
  font-weight: 700;
  line-height: 1;
}

.ttlp-price__num {
  margin: 0 15px -10px;
  font-size: 80px;
}

.ttlp-price__unit { font-size: 45px; }
.ttlp-price__tax { font-size: 20px; }

.ttlp-price__term {
  color: var(--ttlp-gray);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.7;
}

/* 他社比較 */
.ttlp-compare {
  width: 100%;
  border: 3px solid var(--ttlp-gray);
  border-radius: 13px;
  background: #fff;
}

.ttlp-compare__title {
  padding: 15px 0;
  border-radius: 10px 10px 0 0;
  background: #3e4243;
  color: #fff;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
  letter-spacing: 0.02em;
}

.ttlp-compare__body {
  display: flex;
  flex-direction: column;
  gap: 4px;
  width: min(1080px, 100% - 100px);
  margin: 50px auto 0;
}

.ttlp-compare__row {
  display: flex;
  align-items: center;
  gap: 20px;
}

.ttlp-compare__label {
  flex: none;
  width: 105px;
  color: var(--ttlp-gray);
}

.ttlp-compare__label-main {
  font-size: 14px;
  font-weight: 700;
  line-height: 1.7;
}

.ttlp-compare__label-note {
  font-size: 14px;
  font-weight: 500;
  line-height: 1.7;
}

.ttlp-compare__logo { width: 105px; }

.ttlp-compare__cards {
  display: flex;
  flex: 1;
  align-items: stretch;
  gap: 6px;
  min-width: 0;
}

.ttlp-compare__card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  padding: 20px 10px 8px;
  border: 1px solid var(--ttlp-line);
  border-radius: 5px;
  background: var(--ttlp-bg);
  color: var(--ttlp-gray);
}

.ttlp-compare__card--a { width: 14%; }
.ttlp-compare__card--b { width: 52%; }
.ttlp-compare__card--c { width: 17%; }
.ttlp-compare__card--d { width: 17%; }

.ttlp-compare__tag {
  margin-top: -31px;
  margin-bottom: 8px;
  padding: 5px 10px;
  border-radius: 15px;
  background: var(--ttlp-gray);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
}

.ttlp-compare__name {
  font-size: 13px;
  font-weight: 500;
  line-height: 1.5;
  text-align: center;
}

.ttlp-compare__price {
  font-size: 15px;
  font-weight: 700;
  line-height: 1.5;
}

.ttlp-compare__total {
  display: flex;
  flex: none;
  align-items: baseline;
  justify-content: center;
  gap: 2px;
  width: 150px;
  color: var(--ttlp-gray);
  white-space: nowrap;
}

.ttlp-compare__total-label {
  font-size: 15px;
  font-weight: 700;
}

.ttlp-compare__total-num {
  font-size: 36px;
  font-weight: 700;
  line-height: 1;
}

.ttlp-compare__total-unit {
  font-size: 15px;
  font-weight: 700;
}

.ttlp-compare__total--red { color: var(--ttlp-red); }

.ttlp-compare__arrow {
  width: 23px;
  margin: 6px auto;
}

.ttlp-compare__ijgn {
  display: flex;
  flex: 1;
  align-items: center;
  justify-content: center;
  gap: 20px;
  min-width: 0;
  padding: 10px;
  border: 2px dashed var(--ttlp-red);
  border-radius: 5px;
  background: rgba(229, 0, 18, 0.05);
}

.ttlp-compare__ijgn-text {
  color: var(--ttlp-gray2);
  font-size: 15px;
  font-weight: 700;
  line-height: 1.5;
}

.ttlp-compare__badge {
  display: flex;
  flex: none;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  width: 110px;
  height: 110px;
  margin: -20px 0;
  border-radius: 64px;
  background: var(--ttlp-red);
  color: #fff;
}

.ttlp-compare__badge-num {
  font-size: 30px;
  font-weight: 700;
  line-height: 1;
}

.ttlp-compare__badge-unit {
  color: var(--ttlp-bg);
  font-size: 15px;
  font-weight: 700;
  line-height: 1;
}

.ttlp-compare__badge-label {
  color: var(--ttlp-bg);
  font-size: 13px;
  font-weight: 700;
  line-height: 1;
}

.ttlp-compare__note {
  width: min(1080px, 100% - 100px);
  margin: 35px auto 50px;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.9;
}

/* ====================== メディア掲載 ====================== */
.ttlp-media {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  padding: 80px 0;
  background: #fff;
}

.ttlp-media__inner {
  display: flex;
  flex-direction: column;
  gap: 30px;
}

.ttlp-media__lead {
  font-size: 19px;
  font-weight: 500;
  line-height: 1.9;
  text-align: center;
}

.ttlp-media__list {
  display: flex;
  align-items: stretch;
  gap: 20px;
  width: 100%;
}

.ttlp-media__item {
  display: flex;
  flex-direction: column;
  width: 25%;
  padding: 20px;
  border-radius: 10px;
  background: #fff;
  box-shadow: var(--ttlp-shadow);
}

.ttlp-media__date {
  color: var(--ttlp-gray);
  font-size: 13px;
  font-weight: 500;
  line-height: 1.6;
}

.ttlp-media__name {
  margin-top: 5px;
  color: var(--ttlp-blue);
  font-size: 15px;
  font-weight: 700;
  line-height: 1.6;
  order: 3;
}

.ttlp-media__title {
  margin-top: 5px;
  font-size: 19px;
  font-weight: 700;
  line-height: 1.6;
  order: 2;
}

.ttlp-media__note {
  margin-top: 8px;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.75;
  order: 4;
}

/* ====================== よくある質問 ====================== */
.ttlp-faq {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 80px 0;
  background: #fff;
  scroll-margin-top: 110px;
}

.ttlp-faq__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  width: min(900px, 100% - 100px);
}

.ttlp-faq__list {
  display: flex;
  flex-direction: column;
  gap: 30px;
  width: 100%;
}

.ttlp-faq__q,
.ttlp-faq__a {
  display: flex;
  align-items: flex-start;
  gap: 15px;
  padding: 20px 30px;
}

.ttlp-faq__q {
  border-radius: 10px;
  background: var(--ttlp-bg);
}

.ttlp-faq__a { background: #fff; }

.ttlp-faq__mark {
  display: flex;
  flex: none;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  color: #fff;
  font-size: 15px;
  font-weight: 700;
}

.ttlp-faq__mark--q { background: var(--ttlp-blue); }
.ttlp-faq__mark--a { background: var(--ttlp-red); }

.ttlp-faq__text {
  margin-top: 3px;
  flex: 1;
  font-size: 17px;
  line-height: 1.8;
}

.ttlp-faq__q .ttlp-faq__text { font-weight: 700; }
.ttlp-faq__a .ttlp-faq__text { font-weight: 500; }

/* ============================ 1140px 以下 ============================ */
@media screen and (max-width: 1140px) {
  .ttlp-fv__inner { gap: 20px; padding-left: 50px; }
  .ttlp-fv__body { flex: 1; }
  .ttlp-fv__catch-sub,
  .ttlp-fv__catch-wo { font-size: 24px; }
  .ttlp-fv__catch-em,
  .ttlp-fv__catch-verb { font-size: 40px; }
  .ttlp-fv__lead { font-size: 18px; }

  .ttlp-reason__list { gap: 30px; }

  .ttlp-map { grid-template-columns: 20fr auto 1fr auto 20fr; }
  .ttlp-map__arrow img { margin-inline: 10px; }
  .ttlp-map__body--row { gap: 20px; padding: 15px 20px 20px; }
  .ttlp-map__cell { flex: 1; }
  .ttlp-map__body p,
  .ttlp-map__cell p { font-size: 15px; }

  .ttlp-detail { padding: 50px; }

  .ttlp-compare__body,
  .ttlp-compare__note { width: min(1080px, 100% - 40px); }
}

/* ============================= 840px 以下 ============================= */
@media screen and (max-width: 840px) {
  .ttlp-pc-only { display: none; }
  .ttlp-sp-only { display: inline; }

  /* FV */
  .ttlp-fv {
    padding: 110px 0 80px;
    background-image: var(--ttlp-fv-bg-sp);
  }

  .ttlp-fv__inner {
    flex-direction: column;
    padding: 0 20px;
  }

  .ttlp-fv__body {
    align-items: center;
    width: 100%;
    text-align: center;
  }

  .ttlp-fv__catch { align-items: center; }
  .ttlp-fv__catch-main { justify-content: center; }
  .ttlp-fv__visual { width: 100%; }
  .ttlp-fv__visual-pc { display: none; }
  .ttlp-fv__visual-sp { display: block; width: 100%; }

  /* お悩み */
  .ttlp-worry__outer { width: 100%; }
  .ttlp-worry__panel { border-radius: 0; }
  .ttlp-worry__title { font-size: 18px; }

  .ttlp-worry__list {
    flex-direction: column;
    gap: 20px;
  }

  .ttlp-worry__item {
    flex-direction: row;
    align-items: center;
    justify-content: center;
    width: 100%;
  }

  .ttlp-worry__item-text {
    flex: 1;
    font-size: 18px;
  }

  .ttlp-worry__note {
    font-size: 18px;
    text-align: left;
  }

  .ttlp-worry__answer {
    font-size: 24px;
    text-align: left;
  }

  .ttlp-worry__answer h2 { font-size: 24px; }
  .ttlp-worry__answer strong { font-size: 36px; }

  /* 選ばれる理由 */
  .ttlp-reason__list {
    flex-direction: column;
    gap: 50px;
  }

  .ttlp-reason__item { width: 100%; }
  .ttlp-reason__text { margin: 15px 0 20px; padding: 0; }
  .ttlp-reason__text h3 { text-align: left; }

  /* できること */
  .ttlp-service__lead { font-size: 18px; }

  .ttlp-map {
    grid-template-columns: 1fr;
    grid-template-rows: none;
  }

  .ttlp-map__col {
    grid-row: auto;
    grid-template-rows: none;
  }

  .ttlp-map__arrow { grid-row: auto; }
  .ttlp-map__arrow img {
    margin: 10px 0;
    transform: rotate(90deg);
  }
  .ttlp-map__body--row { flex-direction: column; }
  .ttlp-map__body p,
  .ttlp-map__cell p { font-size: 18px; }

  .ttlp-detail { padding: 30px; }

  .ttlp-detail__label { font-size: 24px; }
  .ttlp-detail__row { flex-direction: column; gap: 20px; }
  .ttlp-detail__sub { font-size: 18px; }
  .ttlp-detail__title { font-size: 24px; }
  .ttlp-detail__photo { width: 100%; }
  .ttlp-detail__features { flex-direction: column; gap: 20px; }

  /* Q&A */
  .ttlp-qa__answer { font-size: 22px; }

  .ttlp-qa__body {
    flex-direction: column;
    align-items: center;
    gap: 20px;
  }

  .ttlp-qa__text { margin-top: 20px; }
  .ttlp-qa__figure-pc { display: none; }
  .ttlp-qa__figure-sp { display: block; }

  /* 流れ */
  .ttlp-flow__panel { padding: 30px 0; }
  .ttlp-flow__inner { align-items: flex-start; gap: 35px; padding-top: 20px; }

  .ttlp-flow__list {
    flex-direction: column;
    gap: 30px;
  }

  .ttlp-flow__note { align-items: flex-start; }
  .ttlp-flow__note-title { font-size: 22px; text-align: left; }
  .ttlp-flow__note-text { text-align: left; }

  /* 料金 */
  .ttlp-price__lead { font-size: 15px; }
  .ttlp-price__num { font-size: 36px; margin: 0 5px -5px; }
  .ttlp-price__unit { font-size: 18px; }
  .ttlp-price__tax { font-size: 12px; }
  .ttlp-price__term { font-size: 12px; }

  .ttlp-compare__title { border-radius: 10px; }

  .ttlp-compare__row {
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
  }

  .ttlp-compare__label {
    display: flex;
    align-items: center;
    gap: 10px;
    width: auto;
  }

  .ttlp-compare__cards { flex-direction: column; }

  .ttlp-compare__card,
  .ttlp-compare__card--a,
  .ttlp-compare__card--b,
  .ttlp-compare__card--c,
  .ttlp-compare__card--d { width: 100%; }

  .ttlp-compare__total {
    width: 100%;
    justify-content: flex-end;
  }

  .ttlp-compare__ijgn { flex-direction: column; gap: 30px; padding: 20px 10px; }
  .ttlp-compare__badge { margin: 0; }

  /* メディア掲載 */
  .ttlp-media__list { flex-direction: column; }
  .ttlp-media__item { width: 100%; }
}

/* ============================= 540px 以下 ============================= */
@media screen and (max-width: 540px) {
  .ttlp-w1180 { width: min(1180px, 100% - 40px); }

  .ttlp-heading__title { font-size: 20px; }

  .ttlp-worry__panel { padding: 0 20px; }
  .ttlp-worry__item { gap: 10px; padding: 30px 20px; }
  .ttlp-worry__item-text { text-align: left; }
  .ttlp-worry__item img { width: 100px; }

  .ttlp-reason { gap: 25px; padding: 50px 0; }
  .ttlp-reason__item { padding: 20px; }

  .ttlp-service { padding: 50px 0; }

  .ttlp-detail { padding: 30px 20px; }

  .ttlp-qa__badge { align-items: flex-start; }

  .ttlp-price { padding: 50px 0; }
  .ttlp-price__main { gap: 10px; }

  .ttlp-compare__body,
  .ttlp-compare__note { width: calc(100% - 30px); }

  .ttlp-faq__inner { width: calc(100% - 40px); }
  .ttlp-faq__q,
  .ttlp-faq__a { gap: 10px; padding: 20px 15px; }

  .ttlp-media { padding: 50px 0; }
}

/* ============================= 320px 以下 ============================= */
@media screen and (max-width: 320px) {
  .ttlp-fv__catch-sub { text-align: center; }
  .ttlp-fv__catch-em,
  .ttlp-fv__catch-verb { font-size: 32px; }
  .ttlp-fv__catch-wo { margin: 0 3px; }

  .ttlp-price__num { font-size: 24px; }
}
