@charset "UTF-8";
/* =============================================================
   先取り42周年記念キャンペーンLP（チラシ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, dl, dd, figure, figcaption, 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; }

[hidden] { display: none !important; }

/* -------------------------------------------------------------
   2. 変数
   ------------------------------------------------------------- */
:root {
  --c-red:        #e00000;           /* 見出し・必須バッジの赤 */
  --c-red-deep:   #b00200;
  --c-red-btn1:   #f21b16;           /* 送信ボタンの上側 */
  --c-red-btn2:   #c50402;           /* 送信ボタンの下側 */
  --c-gold:       #f6cf45;           /* 金の縁取り */
  --c-gold-deep:  #c99a12;
  --c-navy:       #081040;           /* 見出し・ラベルの濃紺 */
  --c-green:      #0c4a2b;

  --c-text:       #1b1b1b;
  --c-text-sub:   #5a5a5a;
  --c-muted:      #7b8b9a;

  --c-yellow:     #fdc702;           /* ページ地の黄色 */
  --c-cta-bg:     #ffe9a6;           /* CTAブロックの背景（ご指定） */
  --c-border:     #d5d5d5;
  --c-white:      #fdfdfd;

  --header-h:     max(56px, 10rem);  /* 固定ヘッダーの高さ（狭い画面では56pxを下限に） */

  --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;
  padding-top: var(--header-h);                      /* 固定ヘッダーの高さぶん */
  background: var(--c-yellow);
  overflow: hidden;
}

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

/* 読み上げ用。画面には出さないがスクリーンリーダーには読ませる */
.u-visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  clip-path: inset(50%);
  overflow: hidden;
  white-space: nowrap;
}

/* -------------------------------------------------------------
   3-2. 固定ヘッダー
   ロゴは左寄せ、右側に「電話」と「来店予約」を配置。
   ------------------------------------------------------------- */
.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(90, 60, 0, .18);
}

.l-header__inner {
  width: 100%;
  max-width: 82.8rem;
  height: 100%;
  margin-inline: auto;
  padding: 0 max(10px, 2.4rem) 0 max(12px, 2.8rem);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: max(8px, 2rem);
}

.l-header__logo {
  flex: 0 1 auto;
  min-width: 0;
  line-height: 0;
}

.l-header__logo img {
  width: auto;
  height: max(22px, 4.4rem);                         /* ロゴの高さで揃える */
  max-width: 100%;
}

.l-header__actions {
  flex: none;
  display: flex;
  align-items: center;
  gap: max(7px, 1.4rem);
  /* 電話メニューの基準。ボタン基準にすると狭い画面で
     一覧が画面外へはみ出すため、操作部の右端を基準にする */
  position: relative;
}

/* --- 電話（押すとそのまま発信） --- */
.c-headtel {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .2rem;
  width: max(46px, 8.6rem);
  height: max(44px, 7.4rem);                         /* 指で押しやすい44px以上を確保 */
  background: #fff;
  border: .3rem solid var(--c-red);
  border-radius: max(6px, 1.2rem);
  color: var(--c-red);
  line-height: 1;
  transition: background-color .2s ease, color .2s ease;
}

.c-headtel__icon { width: max(17px, 3.2rem); }
.c-headtel__icon svg { width: 100%; height: auto; }

.c-headtel__label {
  font-size: max(11px, 2rem);
  font-weight: 900;
  letter-spacing: .02em;
}

@media (hover: hover) {
  .c-headtel:hover { background: var(--c-red); color: #fff; }
}

.c-headtel:active { background: var(--c-red); color: #fff; }

.c-headtel:focus-visible {
  outline: .4rem solid #0b64d8;
  outline-offset: .3rem;
}

/* --- 来店予約ボタン --- */
.c-headcta {
  display: flex;
  align-items: center;
  gap: max(4px, .8rem);
  height: max(44px, 7.4rem);                         /* 指で押しやすい44px以上を確保 */
  padding: 0 max(11px, 2.2rem);
  border: .3rem solid var(--c-gold);
  border-radius: max(6px, 1.2rem);
  background: linear-gradient(180deg, var(--c-red-btn1) 0%, var(--c-red-btn2) 100%);
  box-shadow: 0 .3rem 0 var(--c-gold-deep);
  color: #fff;
  font-size: max(13px, 2.6rem);
  font-weight: 900;
  line-height: 1;
  letter-spacing: .02em;
  white-space: nowrap;
  transition: filter .2s ease, transform .15s ease, box-shadow .15s ease;
}

.c-headcta__icon { width: max(15px, 2.8rem); }
.c-headcta__icon svg { width: 100%; height: auto; }

@media (hover: hover) {
  .c-headcta:hover { filter: brightness(1.07); }
}

.c-headcta:active {
  transform: translateY(.2rem);
  box-shadow: 0 .1rem 0 var(--c-gold-deep);
}

.c-headcta:focus-visible {
  outline: .4rem solid #0b64d8;
  outline-offset: .3rem;
}

/* -------------------------------------------------------------
   4. 画像セクション
   画像は上下の余白なしで積み、継ぎ目が出ないようにする
   ------------------------------------------------------------- */
.p-fv img,
.p-sec__img {
  width: 100%;
  height: auto;
  vertical-align: bottom;
}

/* -------------------------------------------------------------
   4-2. 店舗情報：電話番号のタップ領域
   画像に描かれた電話番号の上に透明なリンクを重ねる。
   位置・サイズをすべて％で指定しているため、
   画面幅が変わってもタップ領域は画像と同じ比率で追従する。
   ------------------------------------------------------------- */
.p-shop { position: relative; }

.p-shop__tel {
  position: absolute;
  left: 5.13%;
  width: 90.35%;
  border-radius: 1.2rem;
  -webkit-tap-highlight-color: rgba(224, 0, 0, .18);
}

/* 09_shop.jpg（974×1615）内での位置
   TEL 0120-81-5893 … y 775〜895 */
.p-shop__tel--1 { top: 47.99%; height: 7.43%; }

.p-shop__tel:focus-visible {
  outline: .4rem solid #0b64d8;
  outline-offset: .2rem;
}

/* -------------------------------------------------------------
   5. CTAボタン
   ------------------------------------------------------------- */
.c-cta {
  padding: 4.8rem 3.4rem 5.2rem;
  background: var(--c-cta-bg);
}

.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 #0b64d8;
  outline-offset: .6rem;
  border-radius: 999px;
}

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

/* -------------------------------------------------------------
   6. フォーム
   デザインカンプの装飾枠を3つに切り出して組み立てている。
     form_top.png … リボン見出し＋枠の上端（角丸を含む）
     form_tile.png … 枠の横断面。縦に引き伸ばして中身の高さに追従させる
     form_bot.png … 枠の下端（カンプの下端から切り出し）
   これにより、入力欄が増減しても枠が破綻しない。
   ------------------------------------------------------------- */
.p-form { background: var(--c-yellow); }

.p-form__top,
.p-form__bot {
  width: 100%;
  height: auto;
  vertical-align: bottom;
}

.p-form__frame {
  /* 高さ100%に引き伸ばすことで、繰り返しの継ぎ目が出ない */
  background-image: url("../img/form_tile.png");
  background-repeat: no-repeat;
  background-size: 100% 100%;
}

.p-form__inner {
  /* 左右はカンプの入力欄位置（80/883）に合わせて％指定。
     画面幅が変わっても枠との間隔が保たれる */
  padding: 2.6rem 9.05% 3.2rem;
}

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

.c-steps__item {
  display: flex;
  align-items: center;
  gap: .9rem;
  flex: 1 1 0;
  justify-content: center;
  padding: 1.2rem .6rem;
  background: #f0f0f2;
  border-radius: 1rem;
  color: #8d8d93;
  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: #d3d3d8;
  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: #fde0df; color: var(--c-red); }
.c-steps__item.is-done .c-steps__num { background: var(--c-red); color: #fff; }

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

.c-field__label {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .6rem 1.4rem;
  margin-bottom: 1.2rem;
  font-size: 3.2rem;
  font-weight: 900;
  line-height: 1.4;
  color: var(--c-navy);
}

.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: 7.6rem;
  padding: 0 2.2rem;
  background: #fff;
  border: .2rem solid var(--c-border);
  border-radius: 1.2rem;
  /* iOS Safari は16px未満の入力欄にフォーカスするとページを自動拡大するため下限を設ける */
  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: #b6b6b6;
  font-weight: 400;
}

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

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

/* 日付 */
.c-field__date { padding-right: 1.6rem; }

.c-field__date::-webkit-calendar-picker-indicator {
  width: 3rem;
  height: 3rem;
  cursor: pointer;
}

/* テキストエリア */
.c-field__textarea {
  height: auto;
  min-height: 16rem;
  padding: 1.8rem 2.2rem;
  line-height: 1.6;
  resize: vertical;
}

/* セレクト */
.c-field__selectWrap { position: relative; }

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

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

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

.c-field__fixed {
  display: flex;
  align-items: center;
  min-height: 7.6rem;
  padding: 1.4rem 2.2rem;
  background: #f7f7f5;
  border: .2rem solid var(--c-border);
  border-radius: 1.2rem;
  font-size: max(16px, 2.9rem);
  font-weight: 700;
  line-height: 1.4;
  color: var(--c-navy);
}

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

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

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

/* -----------------------------------------------------------------
   カスタムセレクト
   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: 7.6rem;
  padding: 0 2.2rem;
  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(224, 0, 0, .12);
}

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

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

.c-select__icon {
  flex: none;
  width: 1.6rem;
  height: 1.6rem;
  margin-top: -.5rem;
  border-right: .4rem solid var(--c-navy);
  border-bottom: .4rem solid var(--c-navy);
  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: .5rem;
  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, 40, 0, .28);
}

.c-select__option {
  /* スマートフォンでも押しやすいようタップ領域を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: #f3f3f3; }

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

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

/* --- 同意チェック --- */
.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 #a6a6a6;
  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 #0b64d8;
  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__note {
  margin-top: 2.2rem;
  text-align: center;
  font-size: 2.6rem;
  font-weight: 500;
  line-height: 1.6;
  color: var(--c-text);
}

.p-form__lead {
  margin-bottom: 3rem;
  text-align: center;
  font-size: 2.8rem;
  font-weight: 500;
  line-height: 1.7;
}

/* --- 送信ボタン（カンプの赤×金） --- */
.p-form__submit { margin-top: 3rem; }

.c-submit {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 9.6rem;
  padding: 0 7rem;
  border: .5rem solid var(--c-gold);
  border-radius: 999px;
  background: linear-gradient(180deg, var(--c-red-btn1) 0%, #e00d0a 48%, var(--c-red-btn2) 100%);
  box-shadow: 0 .5rem 0 var(--c-gold-deep), 0 .9rem 1.6rem rgba(120, 60, 0, .3);
  color: #fff;
  font-size: 3.6rem;
  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.07); }
}

.c-submit:active {
  transform: translateY(.4rem);
  box-shadow: 0 .1rem 0 var(--c-gold-deep), 0 .3rem .8rem rgba(120, 60, 0, .3);
}

.c-submit:focus-visible {
  outline: .4rem solid #0b64d8;
  outline-offset: .5rem;
}

.c-submit__arrow {
  position: absolute;
  top: 50%;
  right: 3.2rem;
  width: 2.8rem;
  margin-top: -1.6rem;
  color: #fff;
}

.c-submit.is-sending { pointer-events: none; filter: saturate(.5) brightness(.95); }
.c-submit:disabled { cursor: default; }

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

.c-confirm__row + .c-confirm__row {
  margin-top: 2.2rem;
  padding-top: 2.2rem;
  border-top: .3rem dotted #e3c9a0;
}

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

.c-confirm__value {
  margin: .6rem 0 0;
  font-size: 3rem;
  font-weight: 700;
  line-height: 1.5;
  color: var(--c-navy);
  overflow-wrap: anywhere;
  white-space: pre-wrap;
}

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

/* --- 戻るボタン --- */
.p-form__back {
  margin-top: 2.6rem;
  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 #b5b5b5;
  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: #f4f4f4; border-color: #8a8a8a; }
}

.c-back:focus-visible {
  outline: .4rem solid #0b64d8;
  outline-offset: .4rem;
}

/* --- 完了表示 --- */
.c-done { text-align: center; }

.c-done__icon {
  display: block;
  width: 10rem;
  margin: 1rem auto 2.6rem;
  color: #14a04a;
}

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

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

/* 受付確認メールの案内 */
.c-done__note {
  margin-top: 2.8rem;
  padding-top: 2.4rem;
  border-top: .3rem dotted #e0d3a8;
  font-size: 2.3rem;
  font-weight: 400;
  line-height: 1.6;
  color: var(--c-text-sub);
}

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

/* -------------------------------------------------------------
   6-2. 完了ページ（thanks.html）
   店舗情報セクションと同じ「白地＋赤＋金の縁取り」のカードで統一
   ------------------------------------------------------------- */
.p-thanks {
  padding: 5.6rem 3.4rem 8rem;
  background: var(--c-yellow);
}

.p-thanks .c-steps { margin-bottom: 3.6rem; }

.c-panel {
  padding: 4.4rem 3.2rem 4rem;
  background: #fff;
  border: .5rem solid var(--c-red);
  border-radius: 2rem;
  box-shadow: 0 0 0 .5rem var(--c-gold), 0 .6rem 1.6rem rgba(120, 60, 0, .25);
}

.c-panel--shop { padding: 3.6rem 3rem 3.4rem; }

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

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

/* --- この後の流れ --- */
.c-flow {
  display: grid;
  gap: 1.8rem;
  margin-top: 3.6rem;
}

.c-flow__item {
  display: flex;
  align-items: flex-start;
  gap: 1.8rem;
  padding: 2.6rem 2.6rem 2.8rem;
  background: #fffdf4;
  border: .3rem solid var(--c-gold);
  border-radius: 1.6rem;
}

.c-flow__num {
  flex: none;
  display: grid;
  place-content: center;
  width: 5.2rem;
  height: 5.2rem;
  border-radius: 50%;
  background: var(--c-red);
  color: #fff;
  font-size: 2.9rem;
  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-navy);
}

.c-flow__text {
  margin-top: .7rem;
  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);
}

/* --- お問い合わせ先 --- */
.c-panel--shop { margin-top: 6.4rem; text-align: center; }

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

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

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

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

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

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

.l-footer__copy {
  padding: 0 3.4rem 3.4rem;
  background: #001531;
  text-align: center;
  font-size: 2.1rem;
  letter-spacing: .04em;
  color: rgba(255, 255, 255, .72);
}

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

/* -------------------------------------------------------------
   7. footer
   画像は金の細帯までで切り、その下の紺色の帯はここで作る。
   カンプで「株式会社カーショップフクダ」だった位置に、
   チラシから切り出したロゴ（白抜き）を置いている。
   ------------------------------------------------------------- */
.l-footer { background: #ffffff; }

.l-footer__img {
  width: 100%;
  height: auto;
  vertical-align: bottom;
}

.l-footer__bottom {
  padding: 4.4rem 3.4rem 4rem;
  background: #001633;                               /* 画像の紺色と同じ */
  text-align: center;
}

/* 紺色の帯の上では読みづらいため、ロゴは白い枠の中に置く */
.l-footer__logo {
  display: inline-block;
  padding: 2.4rem 3.2rem;
  background: #fff;
  border-radius: 1.6rem;
  line-height: 0;
}

.l-footer__logo img {
  display: block;
  width: 46rem;
  max-width: 100%;
  height: auto;
}

/* 営業時間・定休日。紺色の帯の上なので白文字にする */
.l-footer__hours {
  margin-top: 3.2rem;
  font-size: 2.3rem;
  font-weight: 500;
  line-height: 1.65;
  letter-spacing: .02em;
  color: #fff;
}

.l-footer__hours-item + .l-footer__hours-note,
.l-footer__hours-note + .l-footer__hours-item { margin-top: .4rem; }

/* 注釈は本文よりわずかに小さく */
.l-footer__hours-note {
  font-size: 2.05rem;
  font-weight: 400;
  color: rgba(255, 255, 255, .88);
}

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

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

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

.l-footer__copy {
  margin-top: 2.6rem;
  text-align: center;
  font-size: 2.1rem;
  letter-spacing: .04em;
  color: rgba(255, 255, 255, .72);
}

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

/* -------------------------------------------------------------
   8. スクロール表示アニメーション
   ------------------------------------------------------------- */
.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;
  }
}

/* -------------------------------------------------------------
   9. print
   ------------------------------------------------------------- */
@media print {
  .js-reveal { opacity: 1; transform: none; }
}

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

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

.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: #fbf7ea;
  border: .2rem solid #e0d3a8;
  border-radius: 1.4rem;
}

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

.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 #e0d3a8;
}

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

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

.p-policy__contact a {
  color: var(--c-red-deep);
  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-gold-deep);
  font-size: 3rem;
  font-weight: 900;
  line-height: 1.4;
  color: var(--c-navy);
}

.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-navy);
  border-radius: 999px;
  color: var(--c-gold);
  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-navy);
}

.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-gold-deep);
  border-radius: 50%;
}

/* --- お問い合わせ窓口 --- */
.p-policy__window {
  margin-top: 2rem;
  padding: 3rem 3rem 3.2rem;
  background: #fbf7ea;
  border: .2rem solid #e0d3a8;
  border-radius: 1.4rem;
}

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

.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 #e0d3a8;
  text-align: right;
  font-size: 2.4rem;
  color: var(--c-text-sub);
}

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

/* 白パネルの中に本文を置くため、記事側の左右余白は持たせない */
.p-policy .c-panel { padding: 4.4rem 3rem 4.4rem; }
