@charset "UTF-8";

/* ============================================
   Variables（CSS変数）
   ============================================ */
:root {
  /* --- Color --- */
  --color_main: #e04870;         /* メインカラー（ピンク） */
  --color_main_rgb: 224, 72, 112;
  --color_sub: ;                 /* サブカラー（デザイン確認後に設定） */
  --color_emphasis: #dc0000;     /* 強調カラー（赤） */
  --color_gold: #bf9c46;
  --color_brown: #5d460f;
  --color_gray: #636161;
  --color_light-gray: #dbdada;
  --color_light-gray2: #e7e7e7;
  --color_base: #fff;
  --color_base2: #f5e8e3;        /* 淡ピンクベージュ */
  --color_text: #333;            /* 基本テキスト */
  --color_anchor: #06F;
  --color_cta: #0c9c00;          /* CTAグリーン */
  --color_cta_emphasis: #dc0000;

  /* --- Spacing（8px基準） --- */
  --space_base: 8px;
  --space_2xs: calc(var(--space_base) * 1);   /*  8px */
  --space_xs:  calc(var(--space_base) * 2);   /* 16px */
  --space_sm:  calc(var(--space_base) * 3);   /* 24px */
  --space_md:  calc(var(--space_base) * 4);   /* 32px */
  --space_lg:  calc(var(--space_base) * 5);   /* 40px */
  --space_xl:  calc(var(--space_base) * 6);   /* 48px */
  --space_2xl: calc(var(--space_base) * 7);   /* 56px */
  --space_3xl: calc(var(--space_base) * 8);   /* 64px */
  --space_4xl: calc(var(--space_base) * 10);  /* 80px */

  /* --- Font Size（16px基準） --- */
  --font-size_base: 16px;
  --font-size_xs:  calc(var(--font-size_base) * 0.75);    /* 12px */
  --font-size_sm:  calc(var(--font-size_base) * 0.875);   /* 14px */
  --font-size_md:  var(--font-size_base);                 /* 16px */
  --font-size_2md: calc(var(--font-size_base) * 1.125);   /* 18px */
  --font-size_3md: calc(var(--font-size_base) * 1.25);    /* 20px */
  --font-size_lg:  calc(var(--font-size_base) * 1.5);     /* 24px */
  --font-size_xl:  calc(var(--font-size_base) * 2);       /* 32px */

  /* --- Border Radius --- */
  --border-radius_xs: 4px;
  --border-radius_s:  8px;
  --border-radius_m:  16px;
  --border-radius_l:  32px;
  --border-radius_xl: 40px;
  --border-radius: var(--border-radius_m); /* デフォルト */

  /* --- Layout --- */
  --inner_width: 1200px;         /* コンテンツ最大幅（デザイン確認後に調整） */
  --inner_padding: var(--space_xs); /* SP時の左右余白 */
}

/* ブレークポイント参考（min-widthで記述）
   576px  : スマホ横〜小画面
   768px  : タブレット〜PC（主要BP）
   992px  : PC中〜
   1200px : PC大〜
*/


/* ============================================
   Reset & Base
   ============================================ */
*,
*::before,
*::after {
  box-sizing: border-box;
}

* {
  margin: 0;
  padding: 0;
  overflow-wrap: break-word;
}

html {
  width: 100%;
  height: 100%;
  -webkit-text-size-adjust: 100%;
}

body {
  width: 100%;
  min-height: 100%;
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", "BIZ UDPGothic", 游ゴシック, sans-serif;
  font-size: var(--font-size_base);
  line-height: 1.6;
  color: var(--color_text);
  background-color: var(--color_base);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
  -webkit-font-feature-settings: "palt" 1;
  font-feature-settings: "palt" 1;
}

img,
picture,
video,
canvas,
svg {
  display: block;
  max-width: 100%;
}

ul,
ol {
  list-style: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

a {
  color: var(--color_anchor);
  text-decoration: none;
}

a:hover {
  opacity: 0.8;
}

button {
  display: block;
  appearance: none;
  cursor: pointer;
  background-color: transparent;
  border: none;
  color: inherit;
  outline: none;
  font: inherit;
}

input,
textarea,
select {
  font: inherit;
  -webkit-appearance: none;
  appearance: none;
  border: none;
  outline: none;
}

summary {
  display: block;
  cursor: pointer;
  list-style: none;
}

summary::-webkit-details-marker {
  display: none;
}


/* ============================================
   Layout
   ============================================ */
.wrapper {
  min-height: 100%;
  overflow-x: hidden;
}

.section {
  padding-top: var(--space_3xl);
  padding-bottom: var(--space_3xl);
}

@media screen and (min-width: 768px) {
  .section {
    padding-top: var(--space_4xl);
    padding-bottom: var(--space_4xl);
  }
}

.section__inner {
  max-width: var(--inner_width);
  margin-inline: auto;
  padding-inline: var(--inner_padding);
}

/* ユーティリティ */
.none--sm-over  { display: block; }
.none--md-over  { display: block; }
.none--md-under { display: none; }

@media screen and (min-width: 576px) {
  .none--sm-over  { display: none; }
}

@media screen and (min-width: 768px) {
  .none--md-over  { display: none; }
  .none--md-under { display: block; }
}


/* ============================================
   Header
   ============================================ */
.header {
  background-color: var(--color_base);
  padding-bottom: 20px;
}

/* --- ヘッダーメインエリア --- */
.header__main {
  background-color: var(--color_base);
}

.header__inner {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding: 12px 4%;
}

/* --- ロゴ --- */
.header__logo img {
  width: 120px;
  height: auto;
}

/* --- 右エリア --- */
.header__right {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-left: 16px;
}

/* --- ボタン共通 --- */
.header__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  height: 38px;
  padding: 0 12px;
  border-radius: 4px;
  color: #fff;
  font-weight: bold;
  font-size: 10px;
  white-space: nowrap;
  text-decoration: none;
}

.header__btn img {
  width: auto;
  height: 13px;
  flex-shrink: 0;
}

/* --- 電話ボタン（SP） --- */
.header__btn--tel {
  background-color: #049f00;
}

/* --- メールボタン --- */
.header__btn--mail {
  background-color: #f77e23;
}

/* --- PC用電話画像：SP時は非表示 --- */
.header__tel--pc {
  display: none;
}

/* --- お知らせバー --- */
.header__notice {
}

.header__notice-inner {
  background-color: #fad5df;
  margin: 0 5%;
}

.header__notice-link {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  text-decoration: none;
  color: var(--color_main);
  font-weight: bold;
  padding: 10px 16px;
}

.header__notice-icon {
  width: auto;
  height: 20px;
  flex-shrink: 0;
}

.header__notice-text {
  font-size: 13px;
  font-weight: bold;
  color: var(--color_main);
  text-decoration: underline;
}


/* PC */
@media screen and (min-width: 768px) {

  .header__inner {
    padding: 0 0 0 100px;
    align-items: center;
  }

  .header__logo img {
    width: 230px;
  }

  .header__right {
    align-items: center;
    gap: 0;
    margin-left: auto;
  }

  /* PC用電話テキスト */
  .header__tel--pc {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 20px;
  }

  .header__tel-link {
    display: flex;
    flex-direction: column;
    gap: 4px;
  }

  .header__tel-info {
    font-size: 14px;
    color: #049f00;
    line-height: 1;
    white-space: nowrap;
  }

  .header__tel-num-row {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 5px;
  }

  .header__tel-icon {
    width: 34px;
    height: 34px;
    flex-shrink: 0;
  }

  .header__tel-num {
    font-size: 34px;
    font-weight: bold;
    color: #049f00;
    line-height: 1;
    letter-spacing: 0.02em;
    font-family: sans-serif;
  }

  /* SP電話ボタン：PC時は非表示 */
  .header__btn--tel {
    display: none;
  }

  /* メールボタン：上端揃え、260×88px */
  .header__btn--mail {
    align-self: flex-start;
    width: 260px;
    height: 88px;
    border-radius: 0;
    font-size: 20px;
    gap: 10px;
    padding: 0 20px;
  }

  /* メールアイコン：幅34px指定 */
  .header__btn--mail img {
    width: 34px;
    height: auto;
  }

  /* お知らせバー */
  .header__notice {
    padding: 0;
    margin-top: 15px;
  }

  .header__notice-inner {
    max-width: 1020px;
    margin-inline: auto;
    padding: 12px 24px;
  }

  .header__notice-text {
    font-size: 22px;
  }
}


/* ============================================
   CTA
   ============================================ */
.cta {
  background-color: #fef1f0;
  padding: 30px 5%;
  position: relative;
  z-index: 0;
}

.cta__inner {
  max-width: 860px;
  margin-inline: auto;
}

/* PC時のみ表示テキスト */
.cta__lead {
  display: none;
}

/* 白ボックス */
.cta__box {
  background-color: #fff;
  padding: 24px 5%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}

/* 電話エリア */
.cta__tel {
  width: 100%;
}

/* PC用電話：SP時は非表示 */
.cta__tel--pc {
  display: none;
}

/* SP用電話ボタン */
.cta__tel--sp {
  display: block;
  width: 100%;
}

.cta__tel--sp img,
.cta__mail img {
  width: 100%;
  height: auto;
}

/* メールボタン */
.cta__mail {
  display: block;
  width: 100%;
}

.cta__mail--pc {
  display: none;
}

.cta__mail--sp {
  display: block;
  width: 100%;
  height: auto;
}

/* PC */
@media screen and (min-width: 768px) {

  .cta {
    padding: 40px 5%;
  }

  .cta {
    padding: 60px 5%;
  }

  .cta__inner {
    max-width: 1060px;
  }

  /* 「まずは～」テキスト */
  .cta__lead {
    display: block;
    text-align: center;
    font-family: "Noto Serif JP", "游明朝", YuMincho, "Hiragino Mincho ProN", serif;
    font-size: 48px;
    font-weight: 900;
    color: var(--color_main);
    margin-bottom: 24px;
  }

  /* 白ボックス：横並び */
  .cta__box {
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 32px;
    padding: 50px 40px;
  }

  .cta__tel {
    width: auto;
    flex-shrink: 0;
  }

  /* PC用電話テキスト */
  .cta__tel--pc {
    display: flex;
    flex-direction: column;
    gap: 0;
  }

  .cta__tel-info {
    font-size: 16px;
    font-weight: bold;
    color: #82c50f;
    line-height: 1;
    white-space: nowrap;
  }

  .cta__tel-num-row {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 6px;
  }

  .cta__tel-icon {
    width: 48px;
    height: 48px;
    flex-shrink: 0;
  }

  .cta__tel-num {
    font-size: 44px;
    font-weight: bold;
    color: #82c50f;
    line-height: 1;
    letter-spacing: 0.02em;
    font-family: sans-serif;
  }

  /* SP用電話ボタン：PC時は非表示 */
  .cta__tel--sp {
    display: none;
  }

  /* メールボタン */
  .cta__mail {
    width: auto;
    flex-shrink: 0;
  }

  .cta__mail--pc {
    display: block;
    width: auto;
    height: auto;
  }

  .cta__mail--sp {
    display: none;
  }
}


/* ============================================
   実績
   ============================================ */
.results {
  padding: 40px 0;
  background-color: #fff;
}

.results__inner {
  max-width: 940px;
  margin-inline: auto;
  padding: 0 5%;
}

/* 見出し */
.results__title {
  display: inline-flex;
  align-items: center;
  background-color: #e5577a;
  border-radius: 5px;
  padding: 8px 20px;
  font-size: 26px;
  font-weight: bold;
  font-family: "Noto Serif JP", "游明朝", YuMincho, "Hiragino Mincho ProN", serif;
  margin-bottom: 24px;
  /* h2ごとセンタリング */
  display: flex;
  justify-content: center;
  width: fit-content;
  margin-inline: auto;
}

.results__title--white {
  color: #fff;
}

.results__title--gold {
  color: #fffdba;
}

/* 実績リスト */
.results__list {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

/* 実績カード */
.results__card {
  display: flex;
  align-items: center;
  gap: 16px;
  border: 2px solid #e5577a;
  border-radius: 25px;
  padding: 16px;
  background-color: #fff;
}

.results__card-image {
  width: 35%;
  flex-shrink: 0;
  aspect-ratio: 2 / 3;
  overflow: hidden;
  border-radius: 8px;
}

.results__card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  border-radius: 0;
}

.results__card-body {
  flex: 1;
}

.results__card-name {
  font-size: 20px;
  font-weight: bold;
  margin-bottom: 6px;
  color: #333;
}

.results__card-badge {
  display: inline-block;
  background-color: #979797;
  color: #fff;
  font-size: 12px;
  padding: 2px 8px;
  border-radius: 3px;
  margin-bottom: 4px;
}

.results__card-price {
  font-size: 36px;
  font-weight: bold;
  color: #dc0000;
  line-height: 1.2;
  margin-bottom: 8px;
}

.results__card-price--unit {
  font-size: 22px;
}

.results__card-desc {
  font-size: 15px;
  color: #333;
  line-height: 1.7;
}

/* 小さいカードスライダー */
.results-slider {
  position: relative;
  margin-top: 24px;
  /* SP：左右にはみ出す余白確保 */
  margin-left: -5%;
  margin-right: -5%;
  padding: 0 5%;
}

.results-slider .splide__track {
  overflow: visible;
}

.results-slider .splide__slide {
  overflow: hidden;
}

.results-slider .splide__slide img {
  width: 100%;
  height: auto;
  display: block;
}

/* 矢印共通 */
.results-slider__arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  width: 44px;
  height: 44px;
  padding: 0;
  background: none;
  border: none;
  cursor: pointer;
}

.results-slider__arrow img {
  width: 100%;
  height: auto;
}

/* SP：右矢印のみ表示 */
.results-slider .splide__arrow--prev {
  display: none;
}

.results-slider .splide__arrow--next {
  right: 23%;
}

/* wrapperでposition:relativeを確保 */
.results-slider__wrap {
  position: relative;
}

/* スワイプヒント：SP時のみ表示 */
.scroll_ico--results {
  background: rgba(0, 0, 0, 0.66);
  color: #fff;
  text-align: center;
  padding: 5% 0;
  width: 33.33vw;
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translateX(-50%) translateY(-50%);
  z-index: 10;
  border-radius: 2vw;
  pointer-events: none;
  transition: opacity 0.4s ease;
}

.scroll_ico--results img {
  width: 10vw;
  display: block;
  margin-inline: auto;
  animation: scroll_ico_anim ease-in-out 1.0s alternate infinite;
}

.scroll_ico--results p {
  font-size: 0.6rem;
  font-weight: bold;
  line-height: 1em;
  margin-top: 1em;
}

.scroll_ico--results.is-hidden {
  opacity: 0;
  pointer-events: none;
}

@keyframes scroll_ico_anim {
  0%   { transform: translateX(-3vw); }
  100% { transform: translateX(3vw); }
}

/* PC */
@media screen and (min-width: 768px) {

  /* PCではヒント非表示 */
  .scroll_ico--results {
    display: none;
  }

  .results-slider {
    margin-left: 0;
    margin-right: 0;
    padding: 0;
  }

  .results-slider__arrow {
    width: 65px;
    height: 65px;
  }

  /* PC：左右矢印表示、中央カードの左右に配置（20px内側） */
  .results-slider .splide__arrow--prev {
    display: block;
    left: calc(50% - 267px - 65px + 20px);
  }

  .results-slider .splide__arrow--next {
    right: auto;
    left: calc(50% + 267px - 20px);
  }
}

/* 注釈 */
.results__annotation {
  font-size: 12px;
  color: #666;
  margin-top: 20px;
  line-height: 1.8;
}

/* PC */
@media screen and (min-width: 768px) {

  .results {
    padding: 60px 0;
  }

  .results__inner {
    padding: 0 24px; /* 縮小時の最低限の余白のみ */
  }

  .results__title {
    font-size: 38px;
    padding: 12px 32px;
    margin-bottom: 40px;
  }

  .results__list {
    gap: 28px;
  }

  .results__card {
    gap: 32px;
    padding: 28px;
  }

  .results__card-image {
    width: 350px;
    aspect-ratio: unset;
  }

  .results__card-name {
    font-size: 30px;
    margin-bottom: 10px;
  }

  .results__card-price {
    font-size: 58px;
    margin-bottom: 14px;
  }

  .results__card-price--unit {
    font-size: 36px;
  }

  .results__card-desc {
    font-size: 20px;
  }

  .results__card-badge {
    font-size: 15px;
    margin-bottom: 8px;
    padding: 3px 10px;
  }

  .results__annotation {
    font-size: 17px;
    margin-top: 24px;
    text-align: center;
  }
}


/* ============================================
   キャンペーン
   ============================================ */
.campaign {
  padding: 30px 5%;
}

.campaign__inner {
  max-width: 1000px;
  margin-inline: auto;
}

.campaign__link {
  /* → ファイル末尾に新定義あり */
}

@media screen and (min-width: 768px) {
  .campaign {
    padding: 60px 0;
  }
}


/* ============================================
   MV下バナーエリア
   ============================================ */
.mv-under {
  background-image: url(../image/mv_under_bg_sp.png);
  background-size: cover;
  background-position: center;
  padding: 20px 4%;
}

.mv-under__inner {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 12px;
}

.mv-under__item {
  flex: 1;
}

.mv-under__item img {
  width: 100%;
  height: auto;
  display: block;
}

@media screen and (min-width: 768px) {
  .mv-under {
    background-image: url(../image/mv_under_bg_pc.png);
    padding: 30px 5%;
  }

  .mv-under__inner {
    max-width: 900px;
    margin-inline: auto;
    gap: 20px;
  }
}


/* ============================================
   MV
   ============================================ */
.mv__h1 {
  margin: 0;
  padding: 0;
  font-size: 0;
  line-height: 0;
}

.mv {
  width: 100%;
}

.mv picture,
.mv img {
  width: 100%;
  height: auto;
  display: block;
}

@media screen and (min-width: 768px) {
  .mv {
    min-height: 820px;
  }

  .mv img {
    min-height: 820px;
    object-fit: cover;
    object-position: center;
  }
}


/* ============================================
   コツセクション
   ============================================ */
.kotsu {
  background-color: #fff;
  padding-bottom: 40px;
}

/* メイン画像：CTAに-30pxかぶる */
.kotsu__main {
  margin-top: -30px;
  position: relative;
  z-index: 1;
}

.kotsu__main img {
  width: 100%;
  height: auto;
  display: block;
}

.kotsu__inner {
  padding: 0 5%;
}

/* 「さらに～」タイトル画像 */
.kotsu__title {
  margin-bottom: 32px;
}

.kotsu__title img {
  width: 100%;
  height: auto;
  display: block;
}

/* 3つのボックス */
.kotsu__list {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.kotsu__item {
  display: flex;
  align-items: center;
  gap: 16px;
}

.kotsu__item-image {
  width: 40%;
  flex-shrink: 0;
}

.kotsu__item-image img {
  width: 100%;
  height: auto;
  display: block;
}

.kotsu__item-body {
  flex: 1;
}

.kotsu__item-title {
  font-size: 20px;
  font-weight: bold;
  color: #e5577a;
  margin-bottom: 6px;
}

.kotsu__item-desc {
  font-size: 15px;
  color: #333;
  line-height: 1.7;
}

/* PC */
@media screen and (min-width: 768px) {

  .kotsu {
    padding-bottom: 60px;
  }

  .kotsu__inner {
    max-width: 940px;
    margin-inline: auto;
    padding: 0 24px;
  }

  .kotsu__main {
    max-width: 960px;
    margin-inline: auto;
  }

  .kotsu__title {
    width: 937px;
    max-width: 100%;
    margin-inline: auto;
    margin-bottom: 48px;
  }

  .kotsu__title img {
    width: 100%;
  }

  .kotsu__list {
    gap: 40px;
  }

  .kotsu__item {
    gap: 40px;
  }

  .kotsu__item-image {
    width: 360px;
  }

  .kotsu__item-title {
    font-size: 32px;
    margin-bottom: 10px;
  }

  .kotsu__item-desc {
    font-size: 22px;
  }
}


/* ============================================
   Footer
   ============================================ */
/* ============================================
   SP追従バナー（fixed-cta）
   ============================================ */
.fixed-cta {
  display: none; /* デフォルト非表示 */
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 64px;
  background: #fff;
  box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.12);
  z-index: 900;
  opacity: 0;
  transform: translateY(100%);
  transition: opacity 0.3s ease, transform 0.3s ease;
}

.fixed-cta.is-visible {
  display: flex;
  opacity: 1;
  transform: translateY(0);
}

/* displayをflexにしてからtransitionが効くよう2段階制御 */
.fixed-cta.is-show {
  opacity: 1;
  transform: translateY(0);
}

.fixed-cta__btn {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  text-decoration: none;
  color: #3d2d0e;
  font-size: 12px;
  font-weight: bold;
  padding: 8px 0;
}

.fixed-cta__icon {
  width: 28px;
  height: auto;
}

.fixed-cta__label {
  line-height: 1;
  white-space: nowrap;
}

.fixed-cta__divider {
  width: 1px;
  height: 40px;
  background: #ddd;
  align-self: center;
  flex-shrink: 0;
}

/* PC時は非表示 */
@media screen and (min-width: 768px) {
  .fixed-cta {
    display: none !important;
  }
}

.footer {
}

/* SP時：固定バナー分の余白 */
@media not screen and (min-width: 768px) {
  .footer {
    padding-bottom: 64px;
  }
}

/* --- 上エリア（白背景） --- */
.footer__info {
  background-color: var(--color_base);
  padding: 32px 0 24px;
}

.footer__info-inner {
  max-width: 800px;
  margin-inline: auto;
  padding: 0 5%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}

/* 許可番号 */
.footer__license {
  font-size: 12px;
  color: #333;
  text-align: center;
  letter-spacing: 0.05em;
}

/* ナビ */
.footer__nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 24px;
  flex-wrap: wrap;
}

.footer__nav-link {
  display: flex;
  align-items: center;
  gap: 6px;
  color: #333;
  font-size: 12px;
  text-decoration: underline;
}

.footer__nav-arrow {
  width: auto;
  height: 12px;
  flex-shrink: 0;
}

/* --- 下エリア（ピンク背景） --- */
.footer__copyright {
  background-color: #e5577a;
  padding: 20px 5% 40px;
}

.footer__copyright-text {
  text-align: center;
  color: #fff;
  font-size: 11px;
  letter-spacing: 0.03em;
}

@media screen and (min-width: 768px) {

  .footer__info {
    padding: 80px 0 64px;
  }

  .footer__nav {
    gap: 48px;
  }

  .footer__nav-link {
    font-size: 18px;
  }

  .footer__nav-arrow {
    height: 18px;
  }

  .footer__license {
    font-size: 18px;
  }

  .footer__copyright {
    padding: 40px 5% 80px;
  }

  .footer__copyright-text {
    font-size: 16px;
  }
}


/* ============================================
   査定員セクション（staff）
   ============================================ */
.staff {
  background-color: #fff;
  padding: 50px 0;
}

.staff__inner {
  max-width: 860px;
  margin-inline: auto;
  padding: 0 5%;
}

/* 見出し */
.staff__title {
  font-family: "Noto Serif JP", "游明朝", YuMincho, "Hiragino Mincho ProN", serif;
  font-size: 20px;
  font-weight: 800;
  line-height: 1.7;
  margin-bottom: 32px;
  position: relative;
  text-align: center;
  padding-top: 24px;
  text-indent: 1.5em;
}

/* 吹き出し「福ちゃんなら」 */
.staff__title--deco {
  position: absolute;
  left: 0;
  top: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 95px;
  height: 72px;
  text-indent: 0;
  color: #fff;
  font-size: 16px;
  font-weight: bold;
  line-height: 1.3;
  text-align: center;
  background: url('data:image/svg+xml;charset=utf8,<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 79 60"><path fill="%23d94c6e" d="M0 28.8669C0 44.8095 17.6852 57.7337 39.5 57.7337C46.1187 57.7337 52.3521 56.5383 57.832 54.4353C67.6041 57.7337 69.8117 56.4493 69.8117 56.4493C66.2037 55.5876 65.3562 50.1119 65.3562 50.1119C72.271 44.9127 79.0007 36.6901 79.0007 28.8669C79 12.9242 61.3155 0 39.5 0C17.6844 0 0 12.9242 0 28.8669Z"/></svg>') no-repeat top center/contain;
}

.staff__title--deco-small {
  font-size: 14px;
}

.staff__title--strong {
  color: var(--color_main);
  font-size: 1.3em;
}

/* 査定員写真 */
.staff__people {
  margin-bottom: 40px;
}

.staff__people-text {
  font-size: 18px;
  font-weight: bold;
  color: #fffdba;
  background-color: var(--color_main);
  padding: 10px 16px;
  margin-bottom: 16px;
  display: block;
  text-align: center;
}

.staff__people img {
  width: 100%;
  height: auto;
  display: block;
}

/* 研修制度 */
.staff__unit-wrapper {
  margin-bottom: 40px;
}

.staff__unit {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.staff__unit-overview {
  font-size: 18px;
  font-weight: bold;
  text-align: left;
  color: var(--color_main);
  margin-bottom: 24px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.staff__unit-overview::before,
.staff__unit-overview::after {
  content: '';
  display: inline-block;
  width: 15px;
  height: 14px;
  flex-shrink: 0;
  background: url('data:image/svg+xml;charset=utf8,<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 15 14"><path fill="%23d94c6e" d="M11.4364 10.0636L8.37339 7L11.4364 3.93642L14.5 7L11.4364 10.0636ZM4.43641 3.06246L7.5 0L10.5636 3.06246L7.5 6.12661L4.43641 3.06246ZM3.56358 10.0636L0.5 7L3.56358 3.93642L6.62661 7L3.56358 10.0636ZM10.5636 10.9364L7.5 14L4.43641 10.9364L7.5 7.87227L10.5636 10.9364Z"/></svg>') no-repeat center/contain;
}

.staff__unit-item {
  padding: 24px;
  background-color: #fff;
  border: 3px solid var(--color_main);
  margin-bottom: 8px;
}

.staff__unit-item:last-child {
  margin-bottom: 0;
}

.staff__unit-description {
  font-size: 17px;
  text-align: center;
  margin-bottom: 16px;
  line-height: 1.7;
}

.staff__unit-description--strong {
  color: var(--color_main);
  font-weight: bold;
}

.staff__unit-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 16px;
}

.staff__unit-title {
  font-size: 22px;
  font-weight: bold;
  color: var(--color_main);
}

.staff__unit-head img {
  width: 90px;
  height: auto;
  flex-shrink: 0;
}

.staff__unit-text {
  font-size: 15px;
  line-height: 1.8;
  color: #333;
}

.staff__unit-text--annotation {
  display: block;
  font-size: 12px;
  color: #666;
  margin-top: 8px;
}

/* ボトム */
.staff__bottom {
  text-align: center;
  font-family: "Noto Serif JP", "游明朝", YuMincho, "Hiragino Mincho ProN", serif;
  font-weight: 700;
}

.staff__bottom-text {
  font-size: 22px;
  color: #333;
  margin-bottom: 16px;
  line-height: 1.7;
}

.staff__emphasis {
  font-size: 22px;
  font-weight: 700;
  color: #333;
  line-height: 1.8;
}

.staff__emphasis--pink {
  color: var(--color_main);
}

.staff__emphasis--logo {
  color: var(--color_main);
}

.staff__emphasis--fukuchan {
  font-size: 1.3em;
  position: relative;
  display: inline-block;
  background: linear-gradient(transparent 50%, #fffdba 50%);
  padding: 0 2px;
  color: var(--color_main);
}

/* PC */
@media screen and (min-width: 768px) {

  .staff {
    padding: 70px 0;
  }

  .staff__inner {
    max-width: 1000px;
    padding: 0 24px;
  }

  .staff__title {
    font-size: 36px;
    margin-bottom: 40px;
    padding-top: 30px;
    padding-left: 0;
    text-indent: 0;
  }

  .staff__title--deco {
    width: 95px;
    height: 72px;
    font-size: 17px;
    left: 100px;
  }

  .staff__title--deco-small {
    font-size: 14px;
  }

  .staff__people-text {
    font-size: 18px;
    padding: 10px 20px;
    width: 636px;
    max-width: 100%;
    margin-inline: auto;
  }

  .staff__people img {
    width: 636px;
    max-width: 100%;
    margin-inline: auto;
  }

  .staff__unit-overview {
    font-size: 24px;
    text-align: center;
    justify-content: center;
  }

  .staff__unit {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
    align-items: stretch;
    flex-direction: unset;
  }

  .staff__unit-item {
    padding: 32px;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    margin-bottom: 0;
  }

  .staff__unit-head {
    margin-top: 0;
    margin-bottom: 20px;
    padding-top: 20px;
  }

  .staff__unit-head img {
    width: 80px;
  }

  .staff__unit-description {
    font-size: 18px;
  }

  .staff__unit-title {
    font-size: 26px;
  }

  .staff__unit-text {
    font-size: 16px;
  }

  .staff__unit-text--annotation {
    font-size: 13px;
  }

  .staff__bottom-text {
    font-size: 20px;
  }

  .staff__emphasis {
    font-size: 24px;
  }
}

/* ============================================
   声セクション（reviews）
   ============================================ */
.reviews {
  background-color: #fff;
  padding: 50px 0;
}

.reviews__inner {
  max-width: 1100px;
  margin-inline: auto;
  padding: 0 5%;
}

/* 見出し */
.reviews__title {
  font-family: "Noto Serif JP", "游明朝", YuMincho, "Hiragino Mincho ProN", serif;
  font-size: 20px;
  font-weight: 400;
  text-align: center;
  line-height: 1.7;
  margin-bottom: 8px;
  color: #333;
}

.reviews__title--strong {
  color: var(--color_main);
  font-size: 1.3em;
  font-weight: 700;
}

.reviews__annotation {
  text-align: center;
  font-size: 12px;
  color: #666;
  margin-bottom: 32px;
}

/* カード */
.reviews__item {
  background-color: #fff;
  border: 1px solid #ddd;
  display: flex;
  flex-direction: column;
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.10);
}

/* splide__trackの下影対応 */
#reviews-slider .splide__track {
  padding-bottom: 16px !important;
  overflow: visible !important;
}

/* カードヘッダー */
.reviews__item-head {
  background-color: var(--color_main);
  padding: 12px 16px;
  display: flex;
  align-items: center;
  gap: 12px;
}

.reviews__item-icon {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  overflow: hidden;
  flex-shrink: 0;
  background-color: #fff;
}

.reviews__item-icon img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.reviews__item-title {
  color: #fff;
  font-size: 14px;
  font-weight: bold;
  line-height: 1.5;
}

/* カード内容 */
.reviews__item-inner {
  padding: 16px;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* バッジ＋ユーザー情報 */
.reviews__item-information {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.reviews__item-heading {
  display: inline-block;
  border: 1px solid var(--color_main);
  color: var(--color_main);
  font-size: 11px;
  padding: 2px 8px;
  white-space: nowrap;
}

.reviews__item-user {
  font-size: 13px;
  font-weight: bold;
  color: #333;
}

/* 商品画像 */
.reviews__item-image {
  width: 80%;
  height: auto;
  display: block;
  margin-inline: auto;
}

/* コメント */
.reviews__item-comment {
  font-size: 16px;
  line-height: 1.8;
  color: #333;
  letter-spacing: 0.05em;
  text-decoration: underline;
  text-decoration-style: dotted;
  text-decoration-color: #aaa;
  text-underline-offset: 6px;
}

/* スライダー */
.reviews-slider {
  overflow: hidden;
  padding-inline: 16px;
  margin-inline: -16px;
}
.reviews-slider__controls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  margin-top: 24px;
}

.reviews-slider__arrow,
.reviews-slider__toggle {
  width: 44px;
  height: 44px;
  padding: 0;
  background: none;
  border: none;
  cursor: pointer;
  flex-shrink: 0;
}

.reviews-slider__arrow img,
.reviews-slider__toggle img {
  width: 100%;
  height: auto;
}

/* 再生/停止切替 */
.reviews-slider__toggle--pause {
  display: none;
}

.reviews-slider__toggle.is-playing .reviews-slider__toggle--play {
  display: none;
}

.reviews-slider__toggle.is-playing .reviews-slider__toggle--pause {
  display: block;
}

/* PC */
@media screen and (min-width: 768px) {

  .reviews {
    padding: 70px 0;
  }

  .reviews__inner {
    padding: 0 24px;
  }

  .reviews__title {
    font-size: 34px;
    margin-bottom: 12px;
  }

  .reviews__annotation {
    font-size: 13px;
    margin-bottom: 40px;
  }

  .reviews__item-title {
    font-size: 16px;
  }

  .reviews__item-icon {
    width: 60px;
    height: 60px;
  }

  .reviews__item-inner {
    padding: 20px;
  }

  .reviews__item-comment {
    font-size: 14px;
  }

  .reviews__item-user {
    font-size: 14px;
  }

  .reviews-slider__arrow,
  .reviews-slider__toggle {
    width: 65px;
    height: 65px;
  }
}


/* ============================================
   買取アイテム一覧（all-categories）
   ============================================ */
.all-categories {
  background-color: #f4f6f9;
  padding: 50px 0;
}

.all-categories__inner {
  max-width: 1100px;
  margin-inline: auto;
  padding: 0 16px;
  box-sizing: border-box;
}

/* 見出しエリア */
.all-categories__title-area {
  text-align: center;
  margin-bottom: 32px;
}

.all-categories__title {
  font-family: "Noto Serif JP", "游明朝", YuMincho, "Hiragino Mincho ProN", serif;
  line-height: 1.4;
  margin-bottom: 20px;
}

.all-categories__title--sub {
  display: block;
  font-size: 24px;
  font-weight: 700;
  color: #333;
}

.all-categories__title--main {
  display: block;
  font-size: 36px;
  font-weight: 700;
}

/* 「着物意外のお品物」：ピンク＋イエローマーカー */
.all-categories__title--pink {
  color: var(--color_main);
  background: linear-gradient(transparent 50%, #fffdba 50%);
  padding: 0 2px;
}

/* 「も」：ピンクのみ・少し小さく */
.all-categories__title--mo {
  color: var(--color_main);
  font-size: 0.75em;
}

/* 「大歓迎！」：ピンク */
.all-categories__title--large {
  display: block;
  font-size: 48px;
  font-weight: 900;
  color: var(--color_main);
}

.all-categories__lead {
  font-size: 14px;
  color: #333;
  line-height: 1.8;
}

/* アイテムリスト：SP時3カラム */
.all-categories__list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  width: 100%;
}

/* ボックス：SPは背景なし・ボーダーなし */
.all-categories__button {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  padding: 8px 2px;
  background-color: transparent;
  border: none;
  border-radius: 0;
  cursor: pointer;
  text-align: center;
  gap: 6px;
  box-sizing: border-box;
}

/* アイコン円形エリア：SP時は白背景＋影・大きめ */
.all-categories__item-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: min(22vw, 90px);
  height: min(22vw, 90px);
  border-radius: 50%;
  background-color: #fff;
  flex-shrink: 0;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.10);
}

.all-categories__item-icon-svg {
  width: 55%;
  height: 55%;
  fill: var(--color_main);
}

/* アイテム名 */
.all-categories__item-name {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  font-size: 13px;
  font-weight: bold;
  color: #333;
  text-decoration: underline;
  text-decoration-color: #333;
  line-height: 1.4;
  flex-wrap: wrap;
}

.all-categories__item-arrow {
  width: 16px;
  height: auto;
  flex-shrink: 0;
}

/* 説明テキスト：SP時は非表示 */
.all-categories__item-detail {
  display: none;
  font-size: 11px;
  color: #666;
  line-height: 1.6;
  text-align: center;
}

/* PC：5カラム */
@media screen and (min-width: 768px) {

  .all-categories {
    padding: 70px 0;
  }

  .all-categories__inner {
    padding: 0 24px;
  }

  .all-categories__title--sub {
    font-size: 28px;
  }

  .all-categories__title--main {
    font-size: 36px;
  }

  .all-categories__title--large {
    font-size: 64px;
  }

  .all-categories__lead {
    font-size: 16px;
  }

  .all-categories__list {
    grid-template-columns: repeat(5, 1fr);
    gap: 16px;
  }

  /* PC：白背景・角丸14px・ボーダーなし・影なし */
  .all-categories__button {
    padding: 20px 12px;
    gap: 10px;
    background-color: #fff;
    border-radius: 14px;
    border: none;
    box-shadow: none;
  }

  /* PC：丸110px・SVGアイコン70px */
  .all-categories__item-icon {
    width: 110px;
    height: 110px;
    max-width: 110px;
    max-height: 110px;
    background-color: #fff;
    box-shadow: none;
  }

  .all-categories__item-icon-svg {
    width: 70px;
    height: 70px;
  }

  .all-categories__item-name {
    font-size: 15px;
  }

  /* PC：説明テキスト表示 */
  .all-categories__item-detail {
    display: block;
    font-size: 12px;
  }
}


/* ============================================
   モーダル
   ============================================ */
.modal {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 1000;
  overflow-y: auto;
  overscroll-behavior: contain;
}

.modal.is-open {
  display: flex;
  align-items: flex-start;
  justify-content: center;
}

.modal__overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.6);
  z-index: 1001;
}

.modal__container {
  position: relative;
  z-index: 1002;
  background: #fff;
  width: 90%;
  max-width: 900px;
  margin: 5vh auto;
  padding: 88px 32px 40px;
  border-radius: 4px;
}

/* SP時 */
@media not screen and (min-width: 768px) {
  .modal__container {
    width: 95%;
    padding: 56px 16px 32px;
    margin: 16px auto;
    border-radius: 8px;
  }
  .modal__close {
    width: 56px;
    height: 56px;
    font-size: 36px;
  }
}

.modal__close {
  position: absolute;
  top: 0;
  right: 0;
  width: 88px;
  height: 88px;
  background: none;
  border: none;
  font-size: 60px;
  cursor: pointer;
  color: #333;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* セクション見出し */
.modal__section-title {
  font-size: 22px;
  font-weight: bold;
  color: #333;
  padding-left: 14px;
  border-left: 4px solid var(--color_main);
  margin-bottom: 20px;
}

/* 買取実績 */
.modal__result {
  display: flex;
  gap: 20px;
  margin-bottom: 16px;
  align-items: flex-start;
}

.modal__result-image {
  width: 160px;
  flex-shrink: 0;
}

.modal__result-image img {
  width: 100%;
  height: auto;
  display: block;
}

.modal__result-body {
  flex: 1;
}

.modal__result-name {
  font-size: 14px;
  color: #333;
  margin-bottom: 16px;
  line-height: 1.6;
}

.modal__result-label {
  font-size: 12px;
  color: #666;
  margin-bottom: 4px;
}

.modal__result-price {
  font-size: 36px;
  font-weight: bold;
  color: var(--color_emphasis);
  line-height: 1.2;
  background: linear-gradient(transparent 50%, #fffdba 50%);
  display: inline;
}

.modal__result-unit {
  font-size: 20px;
}

.modal__result-note {
  font-size: 12px;
  color: #666;
  line-height: 1.7;
  margin-bottom: 32px;
}

/* FAQ */
.modal__faq {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.modal__faq-item {
  border: 1px solid #e0e0e0;
  border-radius: 4px;
  overflow: hidden;
}

.modal__faq-question {
  display: flex;
  align-items: center;
  gap: 12px;
  background-color: #fef1f0;
  padding: 14px 16px;
}

.modal__faq-q {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  background-color: var(--color_main);
  color: #fff;
  font-size: 20px;
  font-weight: bold;
  border-radius: 4px;
  flex-shrink: 0;
}

.modal__faq-question p {
  font-size: 16px;
  font-weight: bold;
  color: #333;
}

.modal__faq-answer {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  background-color: #fff;
  padding: 14px 16px;
}

.modal__faq-a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  background-color: #fef1f0;
  color: var(--color_main);
  font-size: 20px;
  font-weight: bold;
  border-radius: 4px;
  flex-shrink: 0;
}

.modal__faq-answer p {
  font-size: 16px;
  color: #333;
  line-height: 1.7;
}

/* SP */
@media screen and (max-width: 767px) {

  .modal__container {
    width: 95%;
    margin: 20px auto;
    padding: 24px 16px;
  }

  .modal__result {
    gap: 12px;
  }

  .modal__result-image {
    width: 120px;
  }

  .modal__result-price {
    font-size: 28px;
  }

  .modal__section-title {
    font-size: 16px;
  }
}


/* ============================================
   選ばれる理由（reasons）
   ============================================ */
.reasons {
  background-color: #fff;
  padding: 50px 0 56px;
  text-align: center;
}

.reasons__inner {
  max-width: 940px;
  margin-inline: auto;
  padding: 0 5%;
}

/* 見出し */
.reasons__title {
  font-family: "Noto Serif JP", "游明朝", YuMincho, "Hiragino Mincho ProN", serif;
  line-height: 1.6;
  margin-bottom: 28px;
}

.reasons__title--black {
  display: block;
  font-size: 22px;
  font-weight: 700;
  color: #5d460f;
}

.reasons__title--pink {
  display: block;
  font-size: 28px;
  font-weight: 700;
  color: var(--color_main);
  line-height: 1.4;
}

.reasons__title--large {
  font-size: 34px;
  font-weight: 900;
}

/* ピンク背景リスト */
.reasons__list {
  background-color: #ffedf2;
  border-radius: 16px;
  padding: 28px 20px;
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-bottom: 36px;
  text-align: left;
}

.reasons__item {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 20px 0;
  border-bottom: 1px solid rgba(224, 72, 112, 0.15);
}

.reasons__item:last-child {
  border-bottom: none;
  padding-bottom: 4px;
}

.reasons__item:first-child {
  padding-top: 4px;
}

/* 番号アイコン：ゴシック・大きめ */
.reasons__item-num {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background-color: #fff;
  color: var(--color_main);
  font-size: 20px;
  font-weight: bold;
  flex-shrink: 0;
  font-family: "Noto Sans JP", "ヒラギノ角ゴ ProN", sans-serif;
  letter-spacing: 0;
  box-shadow: 0 1px 4px rgba(224, 72, 112, 0.15);
}

.reasons__item-body {
  flex: 1;
}

/* テキスト：ゴシック・サイズアップ */
.reasons__item-text {
  font-family: "Noto Sans JP", "ヒラギノ角ゴ ProN", sans-serif;
  font-size: 22px;
  font-weight: 500;
  color: var(--color_main);
  line-height: 1.5;
  padding-top: 8px;
}

.reasons__item-text strong {
  font-weight: 700;
}

/* 大きいテキスト */
.reasons__item-text--large {
  font-size: 28px;
  font-weight: 700;
}

/* 小さいテキスト（「を持った」など） */
.reasons__item-text--small {
  font-size: 18px;
  font-weight: 400;
}

/* 黒文字 */
.reasons__item-text--black {
  color: #333;
}

.reasons__item-note {
  font-size: 12px;
  color: #666;
  font-family: "Noto Sans JP", "ヒラギノ角ゴ ProN", sans-serif;
  margin-top: 5px;
  line-height: 1.7;
}

/* ボトムテキスト：サイズアップ */
.reasons__bottom {
  font-size: 17px;
  color: #333;
  line-height: 1.9;
  text-align: center;
  padding: 0 5%;
}

.reasons__bottom--strong {
  color: var(--color_main);
  font-weight: bold;
}

/* PC */
@media screen and (min-width: 768px) {

  .reasons {
    padding: 72px 0 80px;
  }

  .reasons__inner {
    padding: 0 24px;
  }

  .reasons__title {
    margin-bottom: 40px;
  }

  .reasons__title--black {
    font-size: 28px;
  }

  .reasons__title--pink {
    font-size: 42px;
  }

  .reasons__title--large {
    font-size: 54px;
  }

  .reasons__list {
    padding: 16px 48px 20px;
    border-radius: 20px;
    margin-bottom: 48px;
  }

  .reasons__item {
    gap: 20px;
    padding: 28px 0;
    align-items: center;
  }

  .reasons__item-num {
    width: 88px;
    height: 88px;
    font-size: 34px;
  }

  .reasons__item-text {
    font-size: 34px;
    padding-top: 0;
  }

  .reasons__item-text--large {
    font-size: 46px;
  }

  .reasons__item-text--small {
    font-size: 28px;
  }

  .reasons__item-note {
    font-size: 17px;
    margin-top: 6px;
  }

  .reasons__bottom {
    font-size: 32px;
  }
}


/* ============================================
   自宅にいたまま（zitaku）
   ============================================ */
.zitaku {
  width: 100%;
  line-height: 0;
}

.zitaku img {
  width: 100%;
  height: auto;
  display: block;
}

@media screen and (min-width: 768px) {
  .zitaku img {
    min-height: 1422px;
    object-fit: cover;
    object-position: top center;
  }
}


/* ============================================
   よくあるご質問（faq）
   ============================================ */
.faq {
  background-color: #f0f2f7;
  padding: 56px 0 64px;
}

.faq__inner {
  max-width: 860px;
  margin-inline: auto;
  padding: 0 5%;
}

/* 見出し */
.faq__title {
  font-family: "Noto Serif JP", "游明朝", YuMincho, "Hiragino Mincho ProN", serif;
  font-size: 28px;
  font-weight: 700;
  color: var(--color_main);
  text-align: center;
  margin-bottom: 40px;
}

/* アイテム */
.faq__item {
  background-color: #fff;
  border-radius: 8px;
  margin-bottom: 12px;
  overflow: hidden;
  border: 1px solid #e5577a;
}

.faq__item--hidden {
  display: none;
}

.faq__item--hidden.is-visible {
  display: block;
}

/* 質問ボタン */
.faq__question {
  width: 100%;
  display: flex;
  align-items: stretch;
  gap: 0;
  padding: 0;
  background: none;
  border: none;
  cursor: pointer;
  text-align: left;
  min-height: 56px;
}

.faq__q-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  min-width: 44px;
  background-color: var(--color_main);
  color: #fff;
  font-size: 20px;
  font-weight: bold;
  font-family: "Noto Serif JP", serif;
  flex-shrink: 0;
  align-self: stretch;
}

.faq__q-text {
  flex: 1;
  font-size: 15px;
  font-weight: bold;
  color: #333;
  line-height: 1.6;
  padding: 14px 12px;
}

/* トグルアイコン（+/-） */
.faq__toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 1.5px solid var(--color_main);
  flex-shrink: 0;
  position: relative;
  margin: auto 14px auto 8px;
}

.faq__toggle span {
  display: block;
  width: 12px;
  height: 2px;
  background-color: var(--color_main);
  position: relative;
}

.faq__toggle span::before {
  content: '';
  display: block;
  width: 2px;
  height: 12px;
  background-color: var(--color_main);
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  transition: transform 0.3s, opacity 0.3s;
}

/* 開いている状態：縦線を消す */
.faq__item.is-open .faq__toggle span::before {
  transform: translate(-50%, -50%) rotate(90deg);
  opacity: 0;
}

/* 回答エリア */
.faq__answer {
  display: flex;
  align-items: flex-start;
  gap: 0;
  padding: 0;
  height: 0;
  overflow: hidden;
  opacity: 0;
  transition: height 0.35s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s ease;
}

.faq__answer-inner {
  display: flex;
  align-items: flex-start;
  width: 100%;
  border-top: 1px solid #f0d0d8;
  flex-shrink: 0;
}

.faq__item.is-open .faq__answer {
  opacity: 1;
}

.faq__a-icon {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  width: 44px;
  min-width: 44px;
  color: var(--color_main);
  font-size: 20px;
  font-weight: bold;
  font-family: "Noto Serif JP", serif;
  padding-top: 14px;
  flex-shrink: 0;
}

.faq__a-text {
  flex: 1;
  font-size: 14px;
  color: #333;
  line-height: 1.8;
  padding: 14px 16px 18px 12px;
}

/* もっと見るボタン */
.faq__more-wrap {
  text-align: center;
  margin-top: 28px;
}

.faq__more-btn {
  display: inline-block;
  padding: 14px 40px;
  border-radius: 100px;
  border: 1.5px solid var(--color_main);
  background-color: #fff;
  color: var(--color_main);
  font-size: 15px;
  font-weight: bold;
  cursor: pointer;
  transition: background-color 0.2s, color 0.2s;
}

.faq__more-btn:hover {
  background-color: var(--color_main);
  color: #fff;
}

/* PC */
@media screen and (min-width: 768px) {

  .faq {
    padding: 72px 0 80px;
  }

  .faq__inner {
    padding: 0 24px;
  }

  .faq__title {
    font-size: 36px;
    margin-bottom: 48px;
  }

  .faq__question {
    min-height: 64px;
  }

  .faq__q-icon {
    width: 52px;
    min-width: 52px;
    font-size: 22px;
  }

  .faq__q-text {
    font-size: 17px;
    padding: 18px 14px;
  }

  .faq__toggle {
    width: 32px;
    height: 32px;
    margin: auto 16px auto 10px;
  }

  .faq__a-icon {
    width: 52px;
    min-width: 52px;
    font-size: 22px;
  }

  .faq__a-text {
    font-size: 15px;
    padding: 18px 20px 22px 14px;
  }

  .faq__more-btn {
    font-size: 16px;
    padding: 16px 48px;
  }
}


/* ============================================
   キャンペーンバナー 角丸・ホバーアクション
   ============================================ */
.campaign__link {
  display: block;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  width: 100%;
  transition: opacity 0.2s ease, transform 0.2s ease;
}

.campaign__link:hover {
  opacity: 0.88;
  transform: scale(1.01);
}

.campaign__link picture,
.campaign__link img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 15px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

/* ============================================
   キャンペーンモーダル
   ============================================ */
.modal__container--campaign {
  max-width: 1080px;
  padding: 88px 20px 36px;
}

.campaign-modal__banner {
  margin-bottom: 20px;
  border-radius: 8px;
  overflow: hidden;
}

.campaign-modal__banner img {
  width: 100%;
  height: auto;
  display: block;
}

.campaign-modal__body {
  padding: 0 4px;
}

.campaign-modal__section {
  margin-bottom: 12px;
}

.campaign-modal__title {
  font-size: 16px;
  font-weight: bold;
  color: #333;
  margin-bottom: 6px;
}

.campaign-modal__text {
  font-size: 14px;
  color: #333;
  line-height: 1.7;
}

.campaign-modal__text--bold {
  font-weight: bold;
  font-size: 17px;
}

.campaign-modal__num {
  display: inline-block;
  margin-right: 4px;
  color: #333;
  font-weight: bold;
}

/* 注釈リスト */
.campaign-modal__notes {
  list-style: none;
  padding: 0;
  margin: 16px 0 24px;
  border-top: 1px solid #eee;
  padding-top: 12px;
}

.campaign-modal__notes li {
  font-size: 11px;
  color: #666;
  line-height: 1.7;
  padding-left: 1.5em;
  position: relative;
  margin-bottom: 3px;
}

.campaign-modal__notes li::before {
  content: '※';
  position: absolute;
  left: 0;
}

/* CTAエリア */
.campaign-modal__cta {
  display: flex;
  align-items: center;
  gap: 12px;
}

.campaign-modal__cta-tel {
  flex: 1;
}

.cta-switch--sp {
  display: flex;
}

.cta-switch--pc {
  display: none;
}

.campaign-modal__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  text-align: center;
  padding: 14px 10px;
  border-radius: 8px;
  font-size: 14px;
  font-weight: bold;
  line-height: 1.5;
  text-decoration: none;
  transition: opacity 0.2s;
  width: 100%;
}

.campaign-modal__btn:hover {
  opacity: 0.85;
}

.campaign-modal__btn--tel {
  background-color: var(--color_main);
  color: #fff;
}

.campaign-modal__btn--mail {
  flex: 1;
  background-color: var(--color_main);
  color: #fff;
}

.campaign-modal__btn-icon {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}

@media screen and (min-width: 768px) {
  .modal__container--campaign {
    max-width: 1080px;
    padding: 88px 48px 48px;
  }

  .campaign-modal__banner {
    margin-bottom: 28px;
  }

  .campaign-modal__title {
    font-size: 15px;
  }

  .campaign-modal__text {
    font-size: 15px;
  }

  .campaign-modal__text--bold {
    font-size: 20px;
  }

  .campaign-modal__notes li {
    font-size: 12px;
  }

  .cta-switch--sp {
    display: none;
  }

  .cta-switch--pc {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
  }

  .campaign-modal__tel-num {
    font-size: 28px;
    font-weight: bold;
    color: var(--color_main);
    letter-spacing: 0.05em;
    font-family: sans-serif;
  }

  .campaign-modal__tel-icon {
    flex-shrink: 0;
  }

  .campaign-modal__btn {
    font-size: 16px;
    padding: 16px 20px;
  }

  .campaign-modal__btn-icon {
    width: 22px;
    height: 22px;
  }
}


/* ============================================
   選べる買取方法（how-to-purchase）
   ============================================ */
.how-to-purchase {
  background-color: #f0f2f7;
  padding: 40px 0 24px;
}

.how-to-purchase__inner {
  max-width: 1000px;
  margin-inline: auto;
  padding: 0 16px;
}

/* 見出し */
.how-to-purchase__title-wrap {
  text-align: center;
  margin-bottom: 28px;
}

.how-to-purchase__subtitle {
  font-size: 20px;
  font-weight: 700;
  color: #666;
  margin-bottom: 10px;
  letter-spacing: 0.12em;
}

.how-to-purchase__title {
  font-family: "Noto Serif JP", serif;
  font-size: 32px;
  font-weight: 700;
  color: var(--color_main);
}

/* ============================
   PC タブ
   ============================ */
.htp-tab {
  display: none;
}

/* タブボタン行 */
.htp-tab__buttons {
  display: flex;
  gap: 6px;
}

.htp-tab__btn {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  padding: 16px 8px;
  background-color: #dbdada;
  color: #636161;
  border-radius: 8px 8px 0 0;
  cursor: pointer;
  margin-top: 8px;
  transition: background-color 0.2s, color 0.2s, margin-top 0.2s;
  border: none;
}

.htp-tab__btn.is-active {
  background-color: var(--color_main);
  color: #fff;
  margin-top: 0;
}

/* タブSVGアイコン色: 非アクティブはグレー、アクティブは白 */
.htp-tab__btn svg {
  color: #636161;
  fill: #636161;
}
.htp-tab__btn.is-active svg {
  color: #fff;
  fill: #fff;
}

.htp-tab__btn-copy {
  font-size: 18px;
}

.htp-tab__btn-name {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 34px;
  font-weight: bold;
}

.htp-tab__btn-icon {
  width: 1.8em;
  height: 1.8em;
}

/* タブコンテンツ */
.htp-tab__contents {
  background-color: #f7f2ef;
  border-radius: 0 0 8px 8px;
  overflow: hidden;
}

.htp-tab__content {
  display: none;
}

.htp-tab__content.is-active {
  display: block;
}

/* ============================
   SP アコーディオン
   ============================ */
.htp-accordion {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.htp-accordion__btn {
  display: flex;
  align-items: center;
  gap: 14px;
  width: 100%;
  padding: 16px 16px;
  background-color: var(--color_main);
  color: #fff;
  border-radius: 8px;
  text-align: left;
  cursor: pointer;
  border: none;
}

.htp-accordion__btn.is-open {
  border-radius: 8px 8px 0 0;
}

.htp-accordion__btn-icon {
  width: 48px;
  height: 48px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.htp-accordion__btn-icon svg {
  width: 48px;
  height: 48px;
  fill: #fff;
  color: #fff;
  display: block;
}

.htp-accordion__btn-label {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.htp-accordion__btn-copy {
  font-size: 14px;
  opacity: 0.9;
}

.htp-accordion__btn-name {
  font-size: 24px;
  font-weight: bold;
}

.htp-accordion__btn-arrow {
  /* 白丸＋ピンク矢印 */
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  flex-shrink: 0;
  background-color: #fff;
  border-radius: 50%;
  position: relative;
  flex-shrink: 0;
}
.htp-accordion__btn-arrow::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 7px;
  height: 7px;
  border-right: 2px solid var(--color_main);
  border-bottom: 2px solid var(--color_main);
  transform: translate(-50%, -65%) rotate(45deg);
  transition: transform 0.3s;
}

.htp-accordion__btn.is-open .htp-accordion__btn-arrow::after {
  transform: translate(-50%, -35%) rotate(-135deg);
}

.htp-accordion__body {
  height: 0;
  overflow: hidden;
  transition: height 0.35s cubic-bezier(0.4, 0, 0.2, 1);
  background-color: #f7f2ef;
  border-radius: 0 0 8px 8px;
}
/* 開いた状態ではoverflow:visibleにして内部コンテンツが隠れないように */
.htp-accordion__body.is-open {
  overflow: visible;
}

/* ============================
   コンテンツ共通
   ============================ */
.htp-content {
  padding: 24px 20px 32px;
}

/* タイトルボックス（出張のみ） */
.htp-content__title-wrap {
  text-align: center;
  margin-bottom: 20px;
}

.htp-content__title-box {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 16px;
  background: #fff;
  border: 1px solid #ddd;
  font-size: 13px;
  margin-bottom: 12px;
}

.htp-content__title-box strong {
  color: var(--color_main);
  font-size: 16px;
}

.htp-content__title-desc {
  font-size: 15px;
  font-weight: 700;
  line-height: 1.7;
}

.htp-content__heading {
  font-size: 20px;
  font-weight: bold;
  text-align: center;
  margin-bottom: 16px;
  line-height: 1.5;
}

.htp-content__desc {
  font-size: 16px;
  line-height: 1.9;
  margin-bottom: 24px;
}

/* ============================
   フロー（ステップ）
   ============================ */
.htp-flow__title {
  background-color: var(--color_main);
  color: #fff;
  text-align: center;
  font-weight: bold;
  font-size: 20px;
  padding: 12px;
  border-radius: 6px;
  margin-bottom: 12px;
}

/* PC: 4カラム横並び */
.htp-flow__list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
  margin-bottom: 24px;
}

/* SP: 1カラム縦並び */
.htp-flow__list--sp {
  grid-template-columns: 1fr;
}

/* PC カード: Step番号 → アイコン → テキスト */
.htp-flow__item {
  display: grid;
  grid-template-rows: auto auto 1fr;
  grid-template-areas:
    "step"
    "icon"
    "text";
  justify-items: center;
  text-align: center;
  gap: 8px;
  padding: 16px 8px 20px;
  background: #fff;
  border-radius: 6px;
}

/* SP アイテム: icon左・step+text右の2カラム */
.htp-flow__item--sp {
  display: grid;
  grid-template-columns: 48px 1fr;
  grid-template-rows: auto auto;
  grid-template-areas:
    "icon step"
    "icon text";
  align-items: start;
  justify-items: start;
  gap: 0 12px;
  text-align: left;
  padding: 12px;
  border-radius: 6px;
  background: #fff;
}

.htp-flow__icon {
  grid-area: icon;
  width: 4em;
  height: 4em;
  color: var(--color_main);
}
.htp-flow__icon svg {
  width: 100%;
  height: 100%;
  fill: var(--color_main);
  color: var(--color_main);
}

.htp-flow__item--sp .htp-flow__icon {
  grid-area: icon;
  align-self: center;
  width: 44px;
  height: 44px;
}

.htp-flow__step {
  grid-area: step;
  color: var(--color_main);
  font-size: 16px;
  font-weight: bold;
}

.htp-flow__item--sp .htp-flow__step {
  grid-area: step;
  font-size: 12px;
  font-weight: bold;
  display: block;
  width: 100%;
  border-bottom: 1px solid currentColor;
  padding-bottom: 4px;
  padding-top: 4px;
}

.htp-flow__text {
  grid-area: text;
  font-size: 17px;
  font-weight: bold;
  line-height: 1.3;
}

.htp-flow__item--sp .htp-flow__text {
  grid-area: text;
  font-size: 14px;
  font-weight: bold;
  padding-top: 6px;
  text-align: left;
}

/* ============================
   注意事項アコーディオン（宅配内）
   ============================ */
.htp-caution {
  margin-bottom: 20px;
  position: relative;
  z-index: 2;
}

.htp-caution__btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 14px 16px;
  border: 2px solid var(--color_emphasis);
  border-radius: 6px;
  background: #fff;
  cursor: pointer;
  color: var(--color_emphasis);
  font-weight: bold;
  font-size: 14px;
  text-align: center;
}

.htp-caution__btn.is-open {
  border-radius: 6px 6px 0 0;
}

.htp-caution__btn-text {
  flex: 1;
  text-align: center;
}

.htp-caution__btn-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  border: 1.5px solid var(--color_emphasis);
  flex-shrink: 0;
  position: relative;
}

.htp-caution__btn-icon span {
  display: block;
  width: 10px;
  height: 2px;
  background-color: var(--color_emphasis);
  position: relative;
}

.htp-caution__btn-icon span::before {
  content: '';
  display: block;
  width: 2px;
  height: 10px;
  background-color: var(--color_emphasis);
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  transition: transform 0.3s, opacity 0.3s;
}

.htp-caution__btn.is-open .htp-caution__btn-icon span::before {
  opacity: 0;
}

.htp-caution__body {
  height: 0;
  overflow: hidden;
  transition: height 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}
.htp-caution__body.is-open {
  overflow: visible;
}

.htp-caution__inner {
  border: 2px solid var(--color_emphasis);
  border-top: none;
  border-radius: 0 0 6px 6px;
  padding: 16px 16px 20px;
  background: #fff;
}

.htp-caution__list {
  list-style: none;
  display: grid;
  gap: 6px;
}

.htp-caution__list li {
  font-size: 12px;
  color: #555;
  line-height: 1.7;
  padding-left: 1.5em;
  position: relative;
}

.htp-caution__list li::before {
  content: '※';
  position: absolute;
  left: 0;
}

/* ============================
   内部CTA（お問合せエリア）
   ============================ */
.htp-inner-contact {
  text-align: center;
  padding-top: 8px;
}

/* SP時: PC用CTAエリアの電話番号・受付時間を非表示 */
.htp-inner-contact .htp-inner-contact__tel,
.htp-inner-contact .htp-inner-contact__info {
  display: none;
}

.htp-inner-contact__title {
  font-size: 26px;
  font-weight: bold;
  color: var(--color_main);
  margin-bottom: 20px;
}

.htp-inner-contact__tel {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-bottom: 6px;
}

.htp-inner-contact__freedial-icon {
  height: auto;
  flex-shrink: 0;
}

.htp-inner-contact__tel-num {
  font-size: 40px;
  font-weight: bold;
  color: var(--color_main);
  font-family: sans-serif;
  letter-spacing: 0.02em;
}

.htp-inner-contact__info {
  font-size: 16px;
  color: #555;
  margin-bottom: 24px;
}

.htp-inner-contact__note {
  font-size: 11px;
  color: #666;
  line-height: 1.7;
  margin-top: 12px;
  text-align: left;
}

.htp-inner-contact__mail-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  padding: 16px 20px;
  background-color: var(--color_cta);
  color: #fff;
  border-radius: 100px;
  font-size: 20px;
  font-weight: bold;
  text-decoration: none;
  white-space: nowrap;
  transition: opacity 0.2s, box-shadow 0.2s;
  box-shadow: 0 6px 16px rgba(12, 156, 0, 0.35);
}
.htp-inner-contact__mail-btn svg {
  width: 1.4em;
  height: 1.4em;
  fill: #fff;
  color: #fff;
  flex-shrink: 0;
}

.htp-inner-contact__mail-btn:hover {
  opacity: 0.85;
}

/* SP用CTA: title/tel-btn/infoを非表示に */
.htp-inner-contact--sp .htp-inner-contact__tel-btn,
.htp-inner-contact--sp .htp-inner-contact__info,
.htp-inner-contact--sp .htp-inner-contact__title {
  display: none !important;
}

.htp-inner-contact__tel-icon {
  width: 1.2em;
  height: 1.2em;
}

/* ============================
   店舗一覧
   ============================ */
.htp-store-list {
  margin-bottom: 24px;
}

/* SP: 1カラム縦並び */
.htp-store-list--sp .htp-store-list__block {
  display: block;
  margin-bottom: 12px;
}

.htp-store-list__block dt {
  color: var(--color_main);
  font-weight: bold;
  font-size: 13px;
  padding-bottom: 6px;
  border-bottom: 1px solid var(--color_main);
  margin-bottom: 6px;
}

.htp-store-list__block dd {
  display: grid;
  gap: 6px;
}

.htp-store-list__btn {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 4px;
  width: 100%;
  padding: 10px 12px;
  background: #fff;
  border-radius: 6px;
  text-align: left;
  cursor: pointer;
  font-size: 14px;
  font-weight: bold;
  border: none;
  position: relative;
}

.htp-store-list__btn::after {
  content: '';
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 5px 0 5px 8px;
  border-color: transparent transparent transparent var(--color_main);
}

.htp-store-list__btn small {
  font-size: 12px;
  font-weight: normal;
  color: #666;
}

/* PC: 3カラムグリッド */
.htp-store-list:not(.htp-store-list--sp) {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px 16px;
}

.htp-store-list:not(.htp-store-list--sp) .htp-store-list__block {
  display: block;
}

/* ============================
   本人確認書類アコーディオン
   ============================ */
.htp-personal-id {
  margin-top: 24px;
  padding-bottom: 40px;
}

.htp-personal-id__btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 16px 20px;
  background-color: #fee8e8;
  border: 1px solid var(--color_emphasis);
  border-radius: 8px;
  cursor: pointer;
  text-align: left;
  color: var(--color_emphasis);
  font-weight: bold;
  font-size: 16px;
}

.htp-personal-id__btn.is-open {
  border-radius: 8px 8px 0 0;
}

.htp-personal-id__btn-inner {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

.htp-personal-id__btn-caution-icon {
  width: 1.4em;
  height: 1.4em;
  flex-shrink: 0;
  color: var(--color_emphasis);
  fill: var(--color_emphasis);
}

.htp-personal-id__btn-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  border: 1.5px solid var(--color_emphasis);
  flex-shrink: 0;
}

.htp-personal-id__btn-toggle span {
  display: block;
  width: 10px;
  height: 2px;
  background-color: var(--color_emphasis);
  position: relative;
}

.htp-personal-id__btn-toggle span::before {
  content: '';
  display: block;
  width: 2px;
  height: 10px;
  background-color: var(--color_emphasis);
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  transition: transform 0.3s, opacity 0.3s;
}

.htp-personal-id__btn.is-open .htp-personal-id__btn-toggle span::before {
  opacity: 0;
}

.htp-personal-id__body {
  height: 0;
  overflow: hidden;
  transition: height 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

.htp-personal-id__inner {
  padding: 24px 20px 28px;
  background: #fff;
  border: 1px solid var(--color_main);
  border-top: none;
  border-radius: 0 0 8px 8px;
}

.htp-personal-id__text {
  font-size: 14px;
  line-height: 1.8;
  color: #555;
  margin-bottom: 16px;
}

.htp-personal-id__box {
  background: #f5f5f5;
  padding: 20px;
  border-radius: 4px;
}

.htp-personal-id__box-title {
  text-align: center;
  font-weight: bold;
  font-size: 16px;
  margin-bottom: 14px;
  line-height: 1.5;
}

/* SP: 1カラムリスト */
.htp-personal-id__list {
  display: grid;
  grid-template-columns: 1fr;
  border: 1px solid #999;
  background: #fff;
}

.htp-personal-id__item {
  padding: 12px 16px;
  font-size: 15px;
  border-top: 1px solid #999;
}

.htp-personal-id__item:first-child {
  border-top: none;
}

.htp-personal-id__item--empty {
  display: none;
}

/* ============================
   店舗モーダル
   ============================ */
.modal__container--store {
  max-width: 960px;
}

.store-modal-content {
  display: grid;
  grid-template-areas:
    "name"
    "photo"
    "detail";
  gap: 16px 0;
}

.store-modal-content__name {
  grid-area: name;
  font-size: 22px;
  font-weight: bold;
  display: flex;
  align-items: center;
  gap: 8px;
  padding-bottom: 16px;
  align-self: end;
}

.store-modal-content__name::before {
  content: '';
  display: block;
  width: 6px;
  height: 1.2em;
  background-color: var(--color_main);
  border-radius: 3px;
  flex-shrink: 0;
}

.store-modal-content__photo {
  grid-area: photo;
}

.store-modal-content__photo img {
  width: 100%;
  height: auto;
  object-fit: cover;
  border-radius: 4px;
  display: block;
}

/* SP時: 写真を80%幅でセンタリング */
@media not screen and (min-width: 768px) {
  .store-modal-content__photo img {
    width: 80%;
    margin-inline: auto;
  }
}

.store-modal-content__detail {
  grid-area: detail;
  line-height: 1.4;
}

/* SP: dt/dd縦並び */
.store-modal__detail-box {
  padding: 12px 0;
  border-bottom: 1px solid #d2d2d2;
}

.store-modal__detail-box:last-child {
  border-bottom: none;
}

.store-modal__detail-heading {
  display: block;
  margin-bottom: 6px;
  font-weight: bold;
  font-size: 16px;
  color: #333;
}

.store-modal__detail-body {
  font-size: 16px;
  color: #444;
  line-height: 1.6;
}

.store-modal-content__map-btn {
  display: inline-block;
  margin-top: 6px;
  padding: 4px 14px;
  background-color: var(--color_main);
  color: #fff;
  border-radius: 100px;
  font-size: 13px;
  text-decoration: none;
}

/* ============================
   PC対応
   ============================ */
@media screen and (min-width: 768px) {
  .htp-tab {
    display: block;
  }

  .htp-accordion {
    display: none !important;
  }

  .how-to-purchase__title {
    font-size: 40px;
  }

  .htp-tab__btn-copy {
    font-size: 18px;
  }

  .htp-tab__btn-name {
    font-size: 34px;
  }

  .htp-content {
    padding: 40px 48px 48px;
  }

  .htp-content__title-box {
    font-size: 20px;
    padding: 12px 28px;
  }

  .htp-content__title-box strong {
    font-size: 28px;
  }


  .htp-content__title-desc {
    font-size: 20px;
  }

  .htp-content__heading {
    font-size: 26px;
  }

  .htp-content__desc {
    font-size: 16px;
    text-align: center;
  }

  .htp-flow__title {
    font-size: 22px;
  }

  .htp-flow__icon {
    width: 4.5em;
    height: 4.5em;
  }

  .htp-flow__step {
    font-size: 17px;
  }

  .htp-flow__text {
    font-size: 18px;
  }

  .htp-caution__btn {
    font-size: 16px;
  }

  .htp-inner-contact__title {
    font-size: 30px;
  }

  .htp-inner-contact__tel-num {
    font-size: 60px;
  }

  .htp-inner-contact__mail-btn {
    display: inline-flex;
    width: auto;
    white-space: nowrap;
    font-size: 26px;
    padding: 24px 72px;
  }

  /* PC店舗一覧 */
  .htp-store-list:not(.htp-store-list--sp) .htp-store-list__block dt {
    font-size: 14px;
    margin-bottom: 8px;
    padding-bottom: 8px;
  }

  .htp-store-list:not(.htp-store-list--sp) .htp-store-list__btn {
    font-size: 14px;
  }

  /* 本人確認PC */
  .htp-personal-id__btn {
    font-size: 18px;
  }

  .htp-personal-id__list {
    grid-template-columns: repeat(4, 1fr);
  }

  .htp-personal-id__item {
    display: flex;
    align-items: center;
    border-top: none;
    border-left: 1px solid #999;
  }

  .htp-personal-id__item:nth-child(-n+4) {
    border-top: none;
  }

  .htp-personal-id__item:nth-child(4n+1) {
    border-left: none;
  }

  .htp-personal-id__item:nth-child(n+5) {
    border-top: 1px solid #999;
  }

  .htp-personal-id__item--empty {
    display: flex;
  }

  /* PC時: tel/infoを再表示 */
  .htp-inner-contact .htp-inner-contact__tel {
    display: flex;
  }
  .htp-inner-contact .htp-inner-contact__info {
    display: block;
  }

    /* 店舗モーダルPC: 写真左・右カラムに店舗名+詳細 */
  .store-modal-content {
    grid-template-areas:
      "photo name"
      "photo detail";
    grid-template-columns: 380px 1fr;
    grid-template-rows: auto 1fr;
    gap: 0 28px;
    align-items: start;
  }

  /* 店舗モーダルdetail: PC時 dl内をdt/dd 2カラム横並び */
  .store-modal__detail-box {
    display: grid;
    grid-template-columns: 7em 1fr;
    gap: 0 20px;
    align-items: start;
    padding: 14px 0;
  }
  .store-modal__detail-box:last-child {
    padding-bottom: 0;
  }
  .store-modal__detail-heading {
    margin-bottom: 0;
    white-space: nowrap;
    padding-top: 2px;
  }
}