@charset "UTF-8";
/* =============================================================
   車検紹介キャンペーンLP / カーショップフクダ
   SP専用（デザイン基準幅 828px）
   1rem = 10px（828px時）／828px以下はビューポート幅に比例して縮小
   ============================================================= */

/* -------------------------------------------------------------
   1. reset
   ------------------------------------------------------------- */
*,
*::before,
*::after { box-sizing: border-box; }

html, body, h1, h2, h3, h4, p, ul, ol, li, figure, figcaption, blockquote, dl, dd, fieldset {
  margin: 0;
  padding: 0;
}

ul, ol { list-style: none; }

img, svg { display: block; max-width: 100%; height: auto; }

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

button, input, select, textarea {
  font: inherit;
  color: inherit;
  margin: 0;
}

button { background: none; border: 0; cursor: pointer; }

hr { border: 0; }

[hidden] { display: none !important; }

/* -------------------------------------------------------------
   2. 変数
   ------------------------------------------------------------- */
:root {
  --content-width: 828;              /* デザイン基準幅（px） */

  --c-red:        #e3010e;           /* メインレッド */
  --c-red-deep:   #c9060b;
  --c-red-btn:    #d8040c;
  --c-orange:     #f07800;
  --c-green:      #019c31;
  --c-blue:       #0090df;
  --c-yellow:     #fbe28f;           /* 見出しの蛍光マーカー */
  --c-ray:        #f9b711;           /* 見出しの集中線 */

  --c-text:       #241c1a;
  --c-text-sub:   #55504e;
  --c-muted:      #9c9c9c;

  --c-bg:         #ffffff;
  --c-bg-cream:   #fefdfa;           /* 画像セクションの地色に合わせた継ぎ目用 */
  --c-bg-answer:  #f7f1ea;           /* FAQ回答の地色 */
  --c-bg-note:    #fff2d5;           /* 注記ボックスの地色 */

  --c-border:     #c6c7c8;
  --c-border-sep: #fbbfc5;

  --header-h:     9.6rem;

  --font-jp: "Noto Sans JP", "Hiragino Sans", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN",
             "BIZ UDPGothic", "Yu Gothic", "游ゴシック体", "Meiryo", sans-serif;
}

/* -------------------------------------------------------------
   3. base
   ------------------------------------------------------------- */
html {
  font-size: 10px;                                   /* 828px以上（PC）：デザイン等倍 */
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
}

@media screen and (max-width: 828px) {
  html { font-size: calc(1000vw / 828); }            /* 828px以下：ビューポートに比例 */
}

body {
  background: #ffffff;                               /* PC時の左右余白は白 */
  color: var(--c-text);
  font-family: var(--font-jp);
  font-size: 2.8rem;
  font-weight: 500;
  line-height: 1.75;
  letter-spacing: .02em;
  font-feature-settings: "palt" 1;
  -webkit-font-smoothing: antialiased;
  overflow-wrap: break-word;
}

.l-wrapper {
  width: 100%;
  max-width: 82.8rem;                                /* = 828px */
  margin-inline: auto;
  background: var(--c-bg);
  overflow: hidden;                                  /* 見出し装飾のはみ出し防止 */
}

.l-main { display: block; }

/* -------------------------------------------------------------
   4. header
   ------------------------------------------------------------- */
.l-header {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 100;
  height: var(--header-h);
  background: #fff;
  box-shadow: 0 .2rem 1.2rem rgba(0, 0, 0, .06);
  transition: box-shadow .3s ease;
}

.l-header.is-scrolled { box-shadow: 0 .3rem 1.6rem rgba(0, 0, 0, .12); }

.l-header__inner {
  width: 100%;
  max-width: 82.8rem;
  height: 100%;
  margin-inline: auto;
  padding-inline: 3.4rem;
  display: flex;
  align-items: center;
  gap: 1.6rem;
}

.l-header__kobac img {
  width: 15rem;
  height: auto;
}

.l-header__logo {
  font-size: 3.2rem;
  font-weight: 900;
  line-height: 1.2;
  letter-spacing: .01em;
  color: var(--c-text);
}

.l-header__sub {
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.2;
  color: #fff;
  background: var(--c-red);
  border-radius: 999px;
  padding: .5rem 1.4rem .6rem;
  white-space: nowrap;
}

/* 固定ヘッダー分の逃がし */
.l-wrapper { padding-top: var(--header-h); }

[id] { scroll-margin-top: calc(var(--header-h) + 2rem); }

/* -------------------------------------------------------------
   5. 画像セクション共通
   ------------------------------------------------------------- */
.p-sec { position: relative; margin-bottom: 5%;}

.p-sec__img,
.p-fv__visual img {
  width: 100%;
  height: auto;
  vertical-align: bottom;
}

/* 画像同士の継ぎ目に微妙な地色差が出ないように */
.p-sec--step   { background: #fffefc; }
.p-sec--target { background: #fefdf9; }
.p-sec--reason { background: #fcfcf8; }
.p-sec--shop   { background: #fdfcf8; }
.p-sec--terms  { background: #fefefe; }

/* -------------------------------------------------------------
   6. FV
   ------------------------------------------------------------- */
.p-fv { background: #ffffff; }

/* -------------------------------------------------------------
   7. CTAボタン
   ------------------------------------------------------------- */
.c-cta {
  padding: 4.4rem 3.6rem 6.4rem;
  background: transparent;
  margin-top: 5%;
}

.c-cta--cream { background: transparent; }

.c-cta__btn {
  display: block;
  width: 100%;
  transition: transform .2s ease, filter .2s ease;
  animation: cta-pulse 2.6s ease-in-out infinite;
}

.c-cta__btn img { width: 100%; }

@media (hover: hover) {
  .c-cta__btn:hover { transform: translateY(-.4rem) scale(1.015); filter: brightness(1.06); }
}

.c-cta__btn:active { transform: translateY(.3rem) scale(.99); }

.c-cta__btn:focus-visible {
  outline: .4rem solid var(--c-blue);
  outline-offset: .6rem;
  border-radius: 999px;
}

@keyframes cta-pulse {
  0%, 72%, 100% { transform: scale(1); }
  80%           { transform: scale(1.035); }
  88%           { transform: scale(.995); }
}

/* -------------------------------------------------------------
   8. セクション見出し
   デザインカンプ（07_faq.png / 08_form.png）から見出し帯を
   そのまま切り出して使用。紙吹雪・集中線・蛍光マーカーの再現度を優先。
   ------------------------------------------------------------- */
.c-sectitle {
  position: relative;
  margin: 0;
  padding: 0;
  line-height: 0;
}

.c-sectitle img {
  width: 100%;
  height: auto;
  vertical-align: bottom;
}

/* サブタイトル
   見出し画像の上部にある余白へ、HTML側の data-sub の文言を重ねて表示する。
   画像は左右に紙吹雪・集中線があり中央は空いているため、
   中央寄せで重ねても装飾に干渉しない。
   位置は画像の高さに対する割合で指定しているので、画面幅が変わっても比率を保つ。 */
.c-sectitle::before {
  content: attr(data-sub);
  position: absolute;
  left: 0;
  right: 0;
  text-align: center;
  font-size: 3.2rem;
  font-weight: 900;
  line-height: 1.3;
  letter-spacing: .04em;
  color: var(--c-red);
  pointer-events: none;
}

/* 画像ごとに余白の量が違うため、上端の位置は個別に指定 */
.c-sectitle--faq::before  { top: 33%; }
.c-sectitle--form::before { top: 38%; }

/* -------------------------------------------------------------
   9. よくある質問（常時表示）
   ------------------------------------------------------------- */
.p-faq {
  padding: 0 0 8.8rem;
  background: #ffffff;
}

.p-faq__list {
  margin-top: 4.4rem;
  padding-inline: 3.4rem;
  display: grid;
  gap: 2.4rem;
}

.c-qa {
  background: #fff;
  border-radius: 1.6rem;
  box-shadow: 0 .3rem 1.2rem rgba(90, 70, 40, .10);
  overflow: hidden;
}

.c-qa__head {
  display: flex;
  align-items: center;
  gap: 1.8rem;
  padding: 2.6rem 2.4rem;
  font-size: inherit;
  font-weight: inherit;
}

.c-qa__badge {
  flex: none;
  display: grid;
  place-content: center;
  width: 5.1rem;
  height: 5.1rem;
  border-radius: 50%;
  background: var(--c-red-deep);
  color: #fff;
  font-size: 2.9rem;
  font-weight: 900;
  line-height: 1;
  letter-spacing: 0;
  padding-bottom: .1rem;
}

.c-qa__badge--a {
  background: #f6e6a8;
  color: var(--c-text);
}

.c-qa__qtext {
  flex: 1 1 auto;
  font-size: 2.8rem;
  font-weight: 900;
  line-height: 1.45;
  color: var(--c-red);
}

.c-qa__body {
  display: flex;
  align-items: flex-start;
  gap: 1.8rem;
  padding: 2.6rem 2.4rem 3rem;
  background: var(--c-bg-answer);
}

.c-qa__atext {
  flex: 1 1 auto;
  padding-top: .5rem;
  font-size: 2.6rem;
  font-weight: 500;
  line-height: 1.65;
  color: var(--c-text);
}

/* 注記 */
.p-faq__note {
  display: flex;
  align-items: center;
  gap: 2.4rem;
  margin: 4rem 3.4rem 0;
  padding: 3rem 3.2rem;
  background: var(--c-bg-note);
  border-radius: 1.6rem;
}

.p-faq__noteIcon {
  flex: none;
  width: 6.6rem;
  color: var(--c-red);
}

.p-faq__noteIcon svg { width: 100%; height: auto; }

.p-faq__noteText {
  font-size: 2.7rem;
  font-weight: 700;
  line-height: 1.5;
}

.p-faq__noteText strong {
  font-weight: 900;
  color: var(--c-red);
}

/* -------------------------------------------------------------
   10. フォーム
   ------------------------------------------------------------- */
.p-form {
  padding: 0 0 9.6rem;
  background: #ffffff;
}

.p-form__lead {
  margin-top: 3.4rem;
  padding-inline: 3.4rem;
  text-align: center;
  font-size: 2.8rem;
  font-weight: 500;
  line-height: 1.7;
}

.p-form__body {
  margin: 4rem 3rem 0;
  padding: 4rem 3.2rem 4.4rem;
  background: #fff;
  border: .2rem solid #e6e4e0;
  border-radius: 2.2rem;
  box-shadow: 0 .4rem 1.6rem rgba(90, 70, 40, .07);
}

/* --- 各項目 --- */
.c-field + .c-field { margin-top: 3.4rem; }

.c-field__sep {
  height: 0;
  margin: 3.4rem 0;
  border-top: .3rem dotted var(--c-border-sep);
}

.c-field__label {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .6rem 1.4rem;
  margin-bottom: 1.4rem;
  font-size: 3rem;
  font-weight: 900;
  line-height: 1.4;
}

.c-badge {
  flex: none;
  display: inline-block;
  padding: .3rem 1.2rem .4rem;
  border-radius: .6rem;
  color: #fff;
  font-size: 2.2rem;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: .04em;
}

.c-badge--req { background: var(--c-red); }
.c-badge--any { background: var(--c-muted); }

.c-field__input {
  display: block;
  width: 100%;
  height: 8rem;
  padding: 0 2.4rem;
  background: #fff;
  border: .2rem solid var(--c-border);
  border-radius: 1.2rem;
  /* iOS Safari は文字サイズが16px未満の入力欄にフォーカスすると
     ページを自動的に拡大する。max() で16pxを下限にして拡大を防ぐ。
     828px幅では 2.9rem = 29px となり、デザイン通りのサイズを保つ。 */
  font-size: max(16px, 2.9rem);
  font-weight: 500;
  line-height: 1.4;
  color: var(--c-text);
  appearance: none;
  transition: border-color .2s ease, box-shadow .2s ease;
}

.c-field__input::placeholder {
  color: #b3b0ad;
  font-weight: 400;
}

.c-field__input:focus {
  outline: none;
  border-color: var(--c-red);
  box-shadow: 0 0 0 .4rem rgba(227, 1, 14, .12);
}

.c-field__input.is-error {
  border-color: var(--c-red);
  background: #fff6f6;
}

/* select */
.c-field__selectWrap { position: relative; }

.c-field__selectWrap::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 2.8rem;
  width: 1.8rem;
  height: 1.8rem;
  margin-top: -1.2rem;
  border-right: .4rem solid var(--c-text);
  border-bottom: .4rem solid var(--c-text);
  border-radius: .2rem;
  transform: rotate(45deg);
  pointer-events: none;
}

.c-field__select {
  padding-right: 6.4rem;
  cursor: pointer;
}

.c-field__select:invalid { color: #b3b0ad; }

/* -----------------------------------------------------------------
   カスタムセレクト
   OSが描画するネイティブの選択肢一覧は、このLPのように文字を大きく
   組んだ画面では文字が小さく・位置もずれて見えてしまう。
   （PCの検証モードでスマホ表示にした場合も同様）
   そのため選択肢の一覧をページ内に描画する独自UIへ差し替える。
   値の保持は <select> が担うので、送信処理は共通のまま。
   ----------------------------------------------------------------- */
.c-field__selectWrap.is-enhanced::after { display: none; }   /* 標準の矢印を隠す */

select.is-enhanced { display: none; }                        /* 値の保持用に残す */

.c-select { position: relative; }

.c-select__button {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.6rem;
  width: 100%;
  height: 8rem;
  padding: 0 2.4rem;
  background: #fff;
  border: .2rem solid var(--c-border);
  border-radius: 1.2rem;
  font-size: max(16px, 2.9rem);
  font-weight: 500;
  line-height: 1.4;
  color: var(--c-text);
  text-align: left;
  transition: border-color .2s ease, box-shadow .2s ease;
}

.c-select__button:focus-visible,
.c-select__button[aria-expanded="true"] {
  outline: none;
  border-color: var(--c-red);
  box-shadow: 0 0 0 .4rem rgba(227, 1, 14, .12);
}

.c-select__button.is-error {
  border-color: var(--c-red);
  background: #fff6f6;
}

.c-select__value.is-placeholder {
  color: #b3b0ad;
  font-weight: 400;
}

.c-select__icon {
  flex: none;
  width: 1.8rem;
  height: 1.8rem;
  margin-top: -.6rem;
  border-right: .4rem solid var(--c-text);
  border-bottom: .4rem solid var(--c-text);
  border-radius: .2rem;
  transform: rotate(45deg);
  transition: transform .2s ease, margin-top .2s ease;
}

.c-select__button[aria-expanded="true"] .c-select__icon {
  margin-top: .6rem;
  transform: rotate(225deg);
}

.c-select__list {
  position: absolute;
  z-index: 20;
  top: calc(100% + .8rem);
  left: 0;
  right: 0;
  max-height: 44rem;
  overflow-y: auto;
  margin: 0;
  padding: .8rem;
  background: #fff;
  border: .2rem solid var(--c-border);
  border-radius: 1.2rem;
  box-shadow: 0 1rem 3rem rgba(60, 45, 30, .22);
}

.c-select__option {
  /* スマートフォンでも指で押しやすいよう、
     縦の余白に12pxの下限を設けてタップ領域を44px以上確保する */
  padding: max(12px, 1.8rem) max(14px, 1.8rem);
  border-radius: .8rem;
  font-size: max(16px, 2.8rem);
  font-weight: 500;
  line-height: 1.45;
  color: var(--c-text);
  cursor: pointer;
}

.c-select__option.is-active { background: #f3f1ed; }

.c-select__option[aria-selected="true"] {
  background: #fdecec;
  color: var(--c-red);
  font-weight: 700;
}

.c-select__option--placeholder { color: #9c9995; }

.c-field__help {
  margin-top: 1rem;
  font-size: 2.4rem;
  font-weight: 400;
  line-height: 1.5;
  color: var(--c-text-sub);
}

.c-field__error {
  margin-top: 1rem;
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 1.5;
  color: var(--c-red);
}

.c-field__error--center { text-align: center; }

/* --- 送信ボタン --- */
.p-form__submit { margin-top: 4.8rem; }

.c-submit {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2rem;
  width: 100%;
  height: 9.2rem;
  padding: 0 8.4rem;
  border-radius: 999px;
  background: linear-gradient(180deg, #ea1b23 0%, var(--c-red-btn) 52%, #b90309 100%);
  box-shadow: 0 .6rem 0 #8e0206, 0 .9rem 1.6rem rgba(140, 0, 5, .28);
  color: #fff;
  font-size: 3.8rem;
  font-weight: 900;
  line-height: 1;
  letter-spacing: .04em;
  transition: transform .15s ease, box-shadow .15s ease, filter .2s ease;
}

@media (hover: hover) {
  .c-submit:hover { filter: brightness(1.06); }
}

.c-submit:active {
  transform: translateY(.5rem);
  box-shadow: 0 .1rem 0 #8e0206, 0 .3rem .8rem rgba(140, 0, 5, .28);
}

.c-submit:focus-visible {
  outline: .4rem solid var(--c-blue);
  outline-offset: .5rem;
}

.c-submit__arrow {
  position: absolute;
  top: 50%;
  right: 2.4rem;
  display: grid;
  place-content: center;
  width: 5.2rem;
  height: 5.2rem;
  margin-top: -2.6rem;
  border-radius: 50%;
  background: #fff;
  color: var(--c-red-btn);
}

.c-submit__arrow svg { width: 2.6rem; }

/* --- 同意チェック --- */
.p-form__agree { margin-top: 3.4rem; }

.c-check {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.6rem;
  cursor: pointer;
  font-size: 2.8rem;
  font-weight: 700;
  line-height: 1.5;
}

.c-check__input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.c-check__box {
  flex: none;
  position: relative;
  width: 4.2rem;
  height: 4.2rem;
  background: #fff;
  border: .3rem solid #a8a5a2;
  border-radius: .8rem;
  transition: background-color .2s ease, border-color .2s ease;
}

.c-check__box::after {
  content: "";
  position: absolute;
  left: 1.3rem;
  top: .5rem;
  width: 1.1rem;
  height: 2.1rem;
  border-right: .4rem solid #fff;
  border-bottom: .4rem solid #fff;
  transform: rotate(42deg) scale(.4);
  opacity: 0;
  transition: transform .2s ease, opacity .2s ease;
}

.c-check__input:checked + .c-check__box {
  background: var(--c-red);
  border-color: var(--c-red);
}

.c-check__input:checked + .c-check__box::after {
  transform: rotate(42deg) scale(1);
  opacity: 1;
}

.c-check__input:focus-visible + .c-check__box {
  outline: .3rem solid var(--c-blue);
  outline-offset: .4rem;
}

.c-check__input.is-error + .c-check__box { border-color: var(--c-red); }

.c-check__text a {
  color: #0a5bd3;
  text-decoration: underline;
  text-underline-offset: .3rem;
}

/* --- 個人情報の注記 --- */
.p-form__secure {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: 1rem;
  margin-top: 2.6rem;
  text-align: center;
  font-size: 2.3rem;
  font-weight: 400;
  line-height: 1.55;
  color: var(--c-text-sub);
}

.p-form__lock {
  flex: none;
  width: 2.6rem;
  margin-top: .5rem;
}

/* 第三者の個人情報に関する注意書き */
.p-form__consent {
  margin-top: 1.8rem;
  padding: 1.6rem 2rem;
  background: #fff6f6;
  border-radius: 1rem;
  text-align: center;
  font-size: 2.2rem;
  font-weight: 400;
  line-height: 1.55;
  color: var(--c-text-sub);
}

.p-form__consent strong {
  font-weight: 700;
  color: var(--c-red);
}

/* --- 手順表示（入力→確認→完了） --- */
.c-steps {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.2rem;
  margin: 3rem 3rem 0;
}

.c-steps__item {
  display: flex;
  align-items: center;
  gap: .9rem;
  flex: 1 1 0;
  justify-content: center;
  padding: 1.2rem .6rem;
  background: #f2f0ec;
  border-radius: 1rem;
  color: #8d8783;
  font-size: 2.3rem;
  font-weight: 700;
  line-height: 1;
  transition: background-color .3s ease, color .3s ease;
}

.c-steps__num {
  display: grid;
  place-content: center;
  width: 3.4rem;
  height: 3.4rem;
  border-radius: 50%;
  background: #d8d4cf;
  color: #fff;
  font-size: 2.1rem;
  font-weight: 900;
}

.c-steps__item.is-current {
  background: var(--c-red);
  color: #fff;
}

.c-steps__item.is-current .c-steps__num {
  background: #fff;
  color: var(--c-red);
}

.c-steps__item.is-done {
  background: #fde3e4;
  color: var(--c-red);
}

.c-steps__item.is-done .c-steps__num {
  background: var(--c-red);
  color: #fff;
}

/* --- 確認画面 --- */
.c-confirm { margin: 0; }

.c-confirm__row + .c-confirm__row {
  margin-top: 2.4rem;
  padding-top: 2.4rem;
  border-top: .3rem dotted var(--c-border-sep);
}

.c-confirm__label {
  font-size: 2.5rem;
  font-weight: 700;
  line-height: 1.4;
  color: var(--c-text-sub);
}

.c-confirm__value {
  margin: .8rem 0 0;
  font-size: 3rem;
  font-weight: 700;
  line-height: 1.5;
  overflow-wrap: anywhere;
}

.c-confirm__value.is-empty {
  color: var(--c-muted);
  font-weight: 500;
}

/* --- 戻るボタン --- */
.p-form__back {
  margin-top: 2.8rem;
  text-align: center;
}

.c-back {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 7.2rem;
  padding: 0 4rem;
  background: #fff;
  border: .3rem solid #b9b4b0;
  border-radius: 999px;
  color: var(--c-text-sub);
  font-size: 2.8rem;
  font-weight: 700;
  transition: background-color .2s ease, border-color .2s ease;
}

@media (hover: hover) {
  .c-back:hover { background: #f4f2ef; border-color: #8d8783; }
}

.c-back:focus-visible {
  outline: .4rem solid var(--c-blue);
  outline-offset: .4rem;
}

/* 送信中 */
.c-submit.is-sending {
  pointer-events: none;
  filter: saturate(.5) brightness(.95);
}

.c-submit:disabled { cursor: default; }

/* --- 完了画面 --- */
.c-done {
  margin: 4rem 3rem 0;
  padding: 5.6rem 3.2rem 5.2rem;
  background: #fff;
  border: .2rem solid #e6e4e0;
  border-radius: 2.2rem;
  box-shadow: 0 .4rem 1.6rem rgba(90, 70, 40, .07);
  text-align: center;
}

.c-done__icon {
  display: block;
  width: 10rem;
  margin: 0 auto 2.8rem;
  color: var(--c-green);
}

.c-done__title {
  font-size: 4rem;
  font-weight: 900;
  line-height: 1.4;
  color: var(--c-text);
}

.c-done__text {
  margin-top: 2.4rem;
  font-size: 2.7rem;
  font-weight: 500;
  line-height: 1.7;
}

.c-done__note {
  margin-top: 3rem;
  padding-top: 2.6rem;
  border-top: .3rem dotted var(--c-border-sep);
  font-size: 2.3rem;
  font-weight: 400;
  line-height: 1.6;
  color: var(--c-text-sub);
}

/* 案内が複数段落になる場合の間隔 */
.c-done__note p + p { margin-top: 1.6rem; }

/* --- ハニーポット（利用者には見せない） --- */
.u-honeypot {
  position: absolute;
  left: -9999px;
  top: auto;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

/* -------------------------------------------------------------
   10-2. 完了ページ（thanks.html）
   ------------------------------------------------------------- */
.p-thanks {
  padding: 6rem 0 9.6rem;
  background: #ffffff;
}

.p-thanks .c-steps { margin-top: 0; }

.p-thanks__subtitle {
  margin: 7.2rem 3rem 0;
  padding-bottom: 1.4rem;
  text-align: center;
  font-size: 3.6rem;
  font-weight: 900;
  line-height: 1.4;
  color: var(--c-text);
  position: relative;
}

.p-thanks__subtitle::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  width: 8rem;
  height: .6rem;
  margin-left: -4rem;
  background: var(--c-yellow);
  border-radius: .3rem;
}

/* --- この後の流れ --- */
.c-flow {
  display: grid;
  gap: 2rem;
  margin: 4rem 3rem 0;
}

.c-flow__item {
  display: flex;
  align-items: flex-start;
  gap: 2rem;
  padding: 2.8rem 2.8rem 3rem;
  background: #fffdf7;
  border: .2rem solid #f2e6cd;
  border-radius: 1.6rem;
}

.c-flow__num {
  flex: none;
  display: grid;
  place-content: center;
  width: 5.4rem;
  height: 5.4rem;
  border-radius: 50%;
  background: var(--c-red);
  color: #fff;
  font-size: 3rem;
  font-weight: 900;
  line-height: 1;
}

.c-flow__body { flex: 1 1 auto; }

.c-flow__title {
  font-size: 3rem;
  font-weight: 900;
  line-height: 1.4;
  color: var(--c-text);
}

.c-flow__text {
  margin-top: .8rem;
  font-size: 2.5rem;
  font-weight: 500;
  line-height: 1.6;
  color: var(--c-text-sub);
}

.c-flow__text em {
  font-style: normal;
  font-weight: 900;
  color: var(--c-red);
}

/* --- お問い合わせ先 --- */
.p-thanks__shop {
  margin: 6.4rem 3rem 0;
  padding: 3.6rem 3rem 3.4rem;
  background: var(--c-bg-note);
  border-radius: 1.6rem;
  text-align: center;
}

.p-thanks__shopTitle {
  font-size: 2.8rem;
  font-weight: 900;
  line-height: 1.4;
  color: var(--c-text);
}

.c-shopList {
  display: grid;
  gap: 2.4rem;
  margin-top: 2.8rem;
}

.c-shopList__name {
  font-size: 2.6rem;
  font-weight: 700;
  line-height: 1.4;
  color: var(--c-text-sub);
}

.c-shopList__tel {
  margin-top: .4rem;
  font-size: 4.4rem;
  font-weight: 900;
  line-height: 1.2;
  letter-spacing: .02em;
}

.c-shopList__tel a {
  color: var(--c-red);
  text-decoration: none;
}

.p-thanks__hours {
  margin-top: 2.4rem;
  font-size: 2.3rem;
  font-weight: 500;
  line-height: 1.6;
  color: var(--c-text-sub);
}

/* 「※日曜日・祝日は…」の注釈行だけ少し小さく */
.p-thanks__hours small {
  font-size: .9em;
  font-weight: 400;
}

/* --- トップへ戻る --- */
.p-thanks__back {
  margin-top: 5.6rem;
  text-align: center;
}

/* -------------------------------------------------------------
   11. footer
   ------------------------------------------------------------- */
.l-footer {
  padding: 5.6rem 3.4rem 6.4rem;
  background: #241c1a;
  color: #fff;
  text-align: center;
}

.l-footer__kobac img {
  width: 40rem;
  height: auto;
  margin: 0 auto 2rem;
}

.l-footer__logo {
  font-size: 3.2rem;
  font-weight: 900;
  line-height: 1.4;
  letter-spacing: .04em;
}

.l-footer__nav {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 1rem 3rem;
  margin-top: 2.8rem;
  font-size: 2.4rem;
  font-weight: 500;
}

.l-footer__nav a {
  padding-bottom: .3rem;
  border-bottom: 1px solid rgba(255, 255, 255, .35);
}

@media (hover: hover) {
  .l-footer__nav a:hover { border-bottom-color: #fff; }
}

.l-footer__copy {
  margin-top: 3.6rem;
  font-size: 2.1rem;
  letter-spacing: .06em;
  color: rgba(255, 255, 255, .7);
}

.l-footer__copy small { font-size: inherit; }

/* -------------------------------------------------------------
   12. スクロールアニメーション
   ------------------------------------------------------------- */
.js-reveal {
  opacity: 0;
  transform: translateY(2.4rem);
  transition: opacity .7s ease, transform .7s ease;
  will-change: opacity, transform;
}

.js-reveal.is-visible {
  opacity: 1;
  transform: none;
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }

  .js-reveal,
  .js-reveal.is-visible {
    opacity: 1;
    transform: none;
    transition: none;
  }

  .c-cta__btn { animation: none; }

  *, *::before, *::after {
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
  }
}

/* -------------------------------------------------------------
   13. print
   ------------------------------------------------------------- */
@media print {
  .l-header { position: static; }
  .l-wrapper { padding-top: 0; }
  .js-reveal { opacity: 1; transform: none; }
}

/* -------------------------------------------------------------
   プライバシーポリシー（privacy.html）
   ------------------------------------------------------------- */
.p-policy {
  padding: 6.4rem 3.4rem 8rem;
  font-size: 2.5rem;
  line-height: 1.9;
}

.p-policy__title {
  margin: 0 0 4.8rem;
  text-align: center;
  font-size: 4rem;
  font-weight: 900;
  line-height: 1.35;
  color: var(--c-text);
}

.p-policy__title small {
  display: block;
  margin-top: .6rem;
  font-size: .6em;
  font-weight: 700;
  color: var(--c-text-sub);
}

/* --- 事業者情報 --- */
.p-policy__company {
  padding: 3.2rem 3rem;
  background: var(--c-bg-cream);
  border: .2rem solid var(--c-border);
  border-radius: 1.4rem;
}

.p-policy__companyName {
  font-size: 2.9rem;
  font-weight: 900;
  line-height: 1.5;
  color: var(--c-text);
}

.p-policy__companyRole {
  margin-top: .4rem;
  font-size: 2.5rem;
  font-weight: 700;
}

/* --- 住所・電話・メール --- */
.p-policy__contact { margin-top: 1.8rem; }

.p-policy__contactRow {
  display: flex;
  gap: 1.6rem;
  padding: .7rem 0;
  border-top: 1px dashed var(--c-border);
}

.p-policy__contactRow dt {
  flex: none;
  width: 8em;
  max-width: 34%;
  font-weight: 700;
  color: var(--c-red);
}

.p-policy__contactRow dd { flex: 1 1 auto; min-width: 0; }

.p-policy__contact a {
  color: var(--c-red);
  text-decoration: underline;
  text-underline-offset: .25em;
  word-break: break-all;
}

/* --- リード文 --- */
.p-policy__lead { margin-top: 3.6rem; }

/* --- 各条 --- */
.p-policy__sec { margin-top: 4.8rem; }

.p-policy__h {
  display: flex;
  align-items: baseline;
  gap: 1.2rem;
  margin: 0 0 1.6rem;
  padding-bottom: 1rem;
  border-bottom: .3rem solid var(--c-red);
  font-size: 3rem;
  font-weight: 900;
  line-height: 1.4;
  color: var(--c-text);
}

.p-policy__hNum {
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2em;
  height: 2em;
  padding: 0 .35em;
  background: var(--c-red);
  border-radius: 999px;
  color: #fff;
  font-size: .72em;
  font-weight: 900;
  line-height: 1;
}

.p-policy__text + .p-policy__text { margin-top: 1.4rem; }

/* --- （1）（2）… の箇条書き --- */
.p-policy__num {
  margin: 1.6rem 0 0;
  padding: 0;
  list-style: none;
}

.p-policy__numItem {
  display: flex;
  gap: .2rem;
}

.p-policy__numItem + .p-policy__numItem { margin-top: .9rem; }

.p-policy__numMark {
  flex: none;
  font-weight: 700;
  color: var(--c-red);
}

.p-policy__numBody { flex: 1 1 auto; min-width: 0; }

/* --- 中黒の箇条書き（取扱保険会社） --- */
.p-policy__list {
  margin: 1.6rem 0 0;
  padding: 0;
  list-style: none;
}

.p-policy__list li {
  position: relative;
  padding-left: 1.8rem;
}

.p-policy__list li + li { margin-top: .7rem; }

.p-policy__list li::before {
  content: "";
  position: absolute;
  top: .82em;
  left: .2rem;
  width: .8rem;
  height: .8rem;
  background: var(--c-red);
  border-radius: 50%;
}

/* --- お問い合わせ窓口 --- */
.p-policy__window {
  margin-top: 2rem;
  padding: 3rem 3rem 3.2rem;
  background: var(--c-bg-cream);
  border: .2rem solid var(--c-border);
  border-radius: 1.4rem;
}

.p-policy__windowName {
  font-size: 2.7rem;
  font-weight: 900;
  line-height: 1.5;
  color: var(--c-text);
}

.p-policy__window .p-policy__contact { margin-top: 1.4rem; }

/* --- 制定日 --- */
.p-policy__date {
  margin-top: 5.6rem;
  padding-top: 2.4rem;
  border-top: 1px solid var(--c-border);
  text-align: right;
  font-size: 2.4rem;
  color: var(--c-text-sub);
}

.p-policy__back {
  margin-top: 6.4rem;
  text-align: center;
}
