/* ================================
   CSS Variables
================================ */
:root {
  --color-primary:       #FF6B35;
  --color-primary-dark:  #E05520;
  --color-primary-light: #FFB347;
  --color-primary-pale:  #FFD4A8;
  --color-bg:            #FFFBF7;
  --color-bg-card:       #FFF3E8;
  --color-bg-section:    #FFF8F2;
  --color-line:          #06C755;
  --color-line-dark:     #05A847;
  --color-text:          #2E1E0F;
  --color-text-mid:      #5A3E2B;
  --color-text-light:    #8B6A50;
  --color-white:         #ffffff;
  --color-border:        #FFE0C0;

  --font-rounded: 'M PLUS Rounded 1c', 'Hiragino Maru Gothic Pro', sans-serif;
  --font-sans:    'Noto Sans JP', 'Hiragino Sans', sans-serif;

  --radius-sm:  8px;
  --radius-md:  16px;
  --radius-lg:  24px;
  --radius-xl:  32px;
  --radius-full: 999px;

  --shadow-sm: 0 2px 8px rgba(255,107,53,.10);
  --shadow-md: 0 4px 20px rgba(255,107,53,.14);
  --shadow-lg: 0 8px 32px rgba(255,107,53,.18);

  --transition: .25s ease;
}

/* ================================
   Reset & Base
================================ */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
}

body {
  font-family: var(--font-sans);
  font-size: 15px;
  line-height: 1.75;
  color: var(--color-text);
  background: var(--color-bg);
  overflow-x: hidden;
  padding-bottom: 76px; /* fixed-cta height */
}

img { max-width: 100%; height: auto; display: block; }
a   { text-decoration: none; color: inherit; }
ul  { list-style: none; }

/* ================================
   固定CTAバー
================================ */
.fixed-cta {
  position: fixed;
  bottom: 0; left: 0; right: 0;
  z-index: 200;
  display: flex;
  height: 76px;
  box-shadow: 0 -3px 20px rgba(0,0,0,.14);
}

.fixed-cta__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  flex: 1;
  font-family: var(--font-rounded);
  font-weight: 700;
  font-size: 15px;
  color: var(--color-white);
  transition: filter var(--transition);
}
.fixed-cta__btn:active { filter: brightness(.9); }

.fixed-cta__btn--line { background: var(--color-line); }
.fixed-cta__btn--tel  { background: var(--color-primary); }

/* ================================
   ヘッダー
================================ */
.site-header {
  background: var(--color-white);
  border-bottom: 2px solid var(--color-border);
  padding: 10px 20px;
  position: sticky;
  top: 0;
  z-index: 100;
}

.site-header__inner {
  max-width: 900px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.site-header__logo {
  height: 70px;
  width: auto;
  object-fit: contain;
}

.site-header__line-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font-rounded);
  font-weight: 700;
  font-size: 13px;
  color: white;
  background: var(--color-line);
  padding: 8px 16px;
  border-radius: var(--radius-full);
  white-space: nowrap;
  transition: filter var(--transition);
  box-shadow: 0 2px 10px rgba(6,199,85,.25);
}
.site-header__line-btn:hover { filter: brightness(1.08); }

/* ================================
   ボタン共通
================================ */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 15px 28px;
  border-radius: var(--radius-full);
  font-family: var(--font-rounded);
  font-weight: 700;
  font-size: 16px;
  cursor: pointer;
  transition: transform var(--transition), box-shadow var(--transition), filter var(--transition);
}
.btn:hover  { transform: translateY(-2px); box-shadow: var(--shadow-lg); }
.btn:active { transform: translateY(0); filter: brightness(.95); }

.btn--line {
  background: var(--color-line);
  color: var(--color-white);
  box-shadow: 0 4px 16px rgba(6,199,85,.30);
}
.btn--tel {
  background: var(--color-primary);
  color: var(--color-white);
  box-shadow: 0 4px 16px rgba(255,107,53,.30);
}
.btn--large {
  width: 100%;
  max-width: 400px;
  font-size: 18px;
  padding: 18px 32px;
}

/* ================================
   ヒーロー
================================ */
.hero {
  position: relative;
  padding: 44px 24px 56px;
  background: linear-gradient(160deg, #FFF6EE 0%, #FFEBD4 55%, #FFD9B0 100%);
  overflow: hidden;
}

.hero__bg-circle {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
}
.hero__bg-circle--1 {
  width: 220px; height: 220px;
  top: -80px; right: 0;
  background: radial-gradient(circle, rgba(255,179,71,.25) 0%, transparent 70%);
}
.hero__bg-circle--2 {
  width: 180px; height: 180px;
  bottom: -60px; left: 0;
  background: radial-gradient(circle, rgba(255,107,53,.18) 0%, transparent 70%);
}

.hero__inner {
  position: relative;
  z-index: 1;
  max-width: 560px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.hero__badge {
  display: inline-block;
  background: var(--color-primary);
  color: var(--color-white);
  font-family: var(--font-rounded);
  font-weight: 700;
  font-size: 12px;
  line-height: 1.6;
  text-align: center;
  padding: 8px 18px;
  border-radius: var(--radius-lg);
  margin-bottom: 18px;
  letter-spacing: .04em;
}
.hero__badge-name {
  font-size: 1.5em;
  font-weight: 800;
}

.hero__title {
  font-family: var(--font-rounded);
  font-weight: 900;
  font-size: 28px;
  line-height: 1.45;
  color: var(--color-text);
  margin-bottom: 18px;
  text-align: center;
}
.hero__title--accent {
  color: var(--color-primary);
  background: linear-gradient(90deg, var(--color-primary), var(--color-primary-light));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.hero__sub {
  font-size: 14px;
  line-height: 1.85;
  color: var(--color-text-mid);
  margin-bottom: 30px;
  text-align: center;
}

/* こんな方の味方です（ターゲット） */
.hero__targets {
  display: flex;
  flex-direction: column;
  gap: 10px;
  width: 100%;
  max-width: 360px;
  margin: 6px auto 0;
  padding: 0;
  list-style: none;
}
.hero__target {
  display: flex;
  align-items: center;
  gap: 12px;
  background: var(--color-white);
  border: 2px solid var(--color-primary-pale);
  border-radius: var(--radius-full);
  padding: 12px 22px;
  font-family: var(--font-rounded);
  font-weight: 700;
  font-size: 15px;
  color: var(--color-text);
  box-shadow: var(--shadow-sm);
}
.hero__target::before {
  content: "✓";
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--color-primary);
  color: var(--color-white);
  border-radius: 50%;
  font-size: 14px;
  font-weight: 900;
}
.hero__targets-cta {
  font-family: var(--font-rounded);
  font-weight: 900;
  font-size: 23px;
  color: var(--color-primary);
  text-align: center;
  margin-top: 26px;
  margin-bottom: 30px;
}

.hero__cta {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 28px;
  width: 100%;
}
.hero__cta .btn { width: 100%; }
.btn--hero { font-size: 17px; padding: 17px 28px; }

/* 安心3点 */
.hero__trust {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: center;
}
.hero__trust-item {
  display: flex;
  align-items: center;
  gap: 7px;
  background: var(--color-white);
  border-radius: var(--radius-full);
  padding: 8px 16px;
  font-family: var(--font-rounded);
  font-weight: 700;
  font-size: 13px;
  color: var(--color-text);
  box-shadow: var(--shadow-sm);
}
.hero__trust-icon { display: flex; align-items: center; }

/* Hero illustration */
.hero__illust {
  max-width: 280px;
  margin: 32px auto 0;
  opacity: .85;
}
.hero__illust svg { width: 100%; height: auto; }

/* ================================
   セクション共通
================================ */
.section {
  padding: 60px 24px;
}

.section__inner {
  max-width: 560px;
  margin: 0 auto;
  text-align: center;
}

.section__label {
  display: inline-block;
  font-family: var(--font-rounded);
  font-weight: 700;
  font-size: 11px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--color-primary);
  background: rgba(255,107,53,.10);
  padding: 4px 14px;
  border-radius: var(--radius-full);
  margin-bottom: 10px;
}

.section__title {
  font-family: var(--font-rounded);
  font-weight: 800;
  font-size: 24px;
  line-height: 1.5;
  color: var(--color-text);
  margin-bottom: 32px;
}

/* ================================
   お悩みセクション
================================ */
.worries {
  background: var(--color-white);
}

.worries__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin-bottom: 36px;
}

.worry-card {
  background: var(--color-bg-card);
  border-radius: var(--radius-md);
  padding: 20px 14px;
  text-align: center;
  border: 1.5px solid var(--color-border);
  transition: transform var(--transition), box-shadow var(--transition);
}
.worry-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow-md);
}

.worry-card__emoji {
  width: 64px;
  height: 64px;
  margin: 0 auto 12px;
}
.worry-card__emoji svg { width: 100%; height: 100%; }

.worry-card__text {
  font-size: 12.5px;
  font-weight: 500;
  line-height: 1.65;
  color: var(--color-text-mid);
}

.worries__cta {
  text-align: center;
}
.worries__cta-text {
  font-family: var(--font-rounded);
  font-weight: 700;
  font-size: 15px;
  color: var(--color-text-mid);
  margin-bottom: 16px;
}

/* ================================
   選ばれる理由
================================ */
.reasons {
  background: var(--color-bg-section);
}

.reasons__grid {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.reason-card {
  background: var(--color-white);
  border-radius: var(--radius-md);
  padding: 20px 18px;
  box-shadow: var(--shadow-sm);
  border: 1.5px solid var(--color-border);
}

.reason-card__top {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
}

.reason-card__num {
  font-family: var(--font-rounded);
  font-weight: 800;
  font-size: 11px;
  color: var(--color-primary);
  background: rgba(255,107,53,.10);
  padding: 4px 10px;
  border-radius: var(--radius-sm);
  white-space: nowrap;
  flex-shrink: 0;
}

.reason-card__icon {
  width: 52px;
  height: 52px;
  flex-shrink: 0;
}
.reason-card__icon svg { width: 100%; height: 100%; }

.reason-card__title {
  font-family: var(--font-rounded);
  font-weight: 700;
  font-size: 15px;
  line-height: 1.45;
  color: var(--color-text);
  margin-bottom: 6px;
  text-align: left;
}

.reason-card__desc {
  font-size: 13px;
  color: var(--color-text-light);
  line-height: 1.75;
  text-align: left;
}

/* ================================
   ご利用の流れ
================================ */
.flow {
  background: var(--color-white);
}

.flow__list {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
}

.flow-step {
  background: var(--color-bg-card);
  border-radius: var(--radius-md);
  border: 1.5px solid var(--color-border);
  padding: 18px 16px;
}

.flow-step--final {
  background: linear-gradient(135deg, #FFF0E0, #FFD9B0);
  border-color: var(--color-primary);
  border-width: 2px;
}

.flow-step__badge {
  display: inline-flex;
  align-items: baseline;
  gap: 2px;
  font-family: var(--font-rounded);
  font-weight: 700;
  font-size: 11px;
  color: var(--color-primary);
  background: var(--color-white);
  padding: 3px 12px;
  border-radius: var(--radius-full);
  margin-bottom: 14px;
  border: 1.5px solid var(--color-border);
}
.flow-step__badge span {
  font-size: 18px;
  font-weight: 900;
  line-height: 1;
}
.flow-step__badge--final {
  background: var(--color-primary);
  color: var(--color-white);
  border-color: var(--color-primary);
}

.flow-step__content {
  display: flex;
  align-items: center;
  gap: 16px;
}

.flow-step__icon {
  width: 64px;
  height: 64px;
  flex-shrink: 0;
}
.flow-step__icon svg { width: 100%; height: 100%; }

.flow-step__title {
  font-family: var(--font-rounded);
  font-weight: 700;
  font-size: 16px;
  color: var(--color-text);
  margin-bottom: 5px;
  line-height: 1.4;
  text-align: left;
}

.flow-step__desc {
  font-size: 12.5px;
  color: var(--color-text-light);
  line-height: 1.7;
  text-align: left;
}

.flow__connector {
  text-align: center;
  font-size: 22px;
  color: var(--color-primary);
  line-height: 1;
  padding: 6px 0;
  opacity: .7;
}

.flow__cta {
  text-align: center;
  margin-top: 40px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
}
.flow__cta-text {
  font-family: var(--font-rounded);
  font-weight: 700;
  font-size: 15px;
  color: var(--color-text-mid);
  margin-bottom: 16px;
}

/* ================================
   スクロールアニメーション
================================ */
.fade-in {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity .55s ease, transform .55s ease;
}
.fade-in.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* ================================
   PC レイアウト (768px+)
================================ */
@media (min-width: 768px) {

  body { padding-bottom: 0; }

  /* PC では固定CTAバーを非表示（ヘッダーのTELリンクで代用） */
  .fixed-cta { display: none; }

  /* ヘッダー */
  .site-header { padding: 14px 40px; }
  .site-header__logo { height: 80px; }
  .site-header__line-btn { font-size: 15px; padding: 10px 22px; }

  /* ヒーロー */
  .hero {
    padding: 72px 40px 80px;
  }
  .hero__inner {
    max-width: 700px;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
  }
  .hero__title  { font-size: 42px; }
  .hero__sub    { font-size: 16px; max-width: 560px; }
  .hero__cta    {
    flex-direction: row;
    max-width: 520px;
    width: 100%;
  }
  .hero__cta .btn { flex: 1; }
  .hero__trust  { justify-content: center; }

  /* セクション共通 */
  .section { padding: 80px 40px; }
  .section__inner { max-width: 900px; }
  .section__title { font-size: 30px; }

  /* お悩み */
  .worries__grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
  }
  .worry-card { padding: 24px 16px; }
  .worry-card__emoji { width: 72px; height: 72px; }
  .worry-card__text  { font-size: 13px; }

  /* 選ばれる理由 */
  .reasons__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
  }

  /* ご利用の流れ */
  .flow__list {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-template-rows: auto auto auto;
    gap: 12px;
    align-items: start;
  }

  .flow-step {
    height: 100%;
  }
  .flow-step__content {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }

  /* PC では矢印を非表示（グリッドレイアウトのため） */
  .flow__connector { display: none; }

  /* STEP 5-7 は2行目以降に配置 */
  .flow-step:nth-child(9)  { grid-column: 1; grid-row: 2; } /* step5 */
  .flow-step:nth-child(11) { grid-column: 2; grid-row: 2; } /* step6 */
  .flow-step:nth-child(13) { grid-column: 3; grid-row: 2; } /* step7 */

  .flow__cta {
    grid-column: 1 / -1;
    margin-top: 32px;
  }

  .btn--large { max-width: 360px; }
}

@media (min-width: 1024px) {
  .hero__title { font-size: 44px; }
  .section__title { font-size: 34px; }
  /* 7ステップを1行で */
  .flow__list {
    grid-template-columns: repeat(7, 1fr);
  }
  .flow-step:nth-child(9)  { grid-column: auto; grid-row: auto; }
  .flow-step:nth-child(11) { grid-column: auto; grid-row: auto; }
  .flow-step:nth-child(13) { grid-column: auto; grid-row: auto; }
}

/* ================================
   対応できる相談内容
================================ */
.consultation {
  background: var(--color-white);
}

.consult__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

.consult-item {
  background: var(--color-bg-card);
  border-radius: var(--radius-md);
  border: 1.5px solid var(--color-border);
  padding: 24px 18px;
  text-align: center;
  transition: transform var(--transition), box-shadow var(--transition);
}
.consult-item:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow-md);
}

.consult-item__icon {
  width: 64px;
  height: 64px;
  margin: 0 auto 14px;
}
.consult-item__icon svg { width: 100%; height: 100%; }

.consult-item__title {
  font-family: var(--font-rounded);
  font-weight: 700;
  font-size: 14px;
  color: var(--color-primary);
  margin-bottom: 8px;
  line-height: 1.4;
}

.consult-item__desc {
  font-size: 12.5px;
  color: var(--color-text-light);
  line-height: 1.7;
}

/* ================================
   よくある質問
================================ */
.faq {
  background: var(--color-bg-section);
}

.faq__list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.faq-item {
  background: var(--color-white);
  border-radius: var(--radius-md);
  border: 1.5px solid var(--color-border);
  overflow: hidden;
}

.faq-item__q {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 18px 16px;
  background: none;
  border: none;
  cursor: pointer;
  text-align: left; /* FAQ質問は左揃えを維持 */
  font-family: var(--font-sans);
  font-size: 14px;
  font-weight: 700;
  color: var(--color-text);
  line-height: 1.5;
  transition: background var(--transition);
}
.faq-item__q:hover { background: var(--color-bg-card); }

.faq-item__q[aria-expanded="true"] {
  background: var(--color-bg-card);
  color: var(--color-primary);
}

.faq-item__q-icon {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  background: var(--color-primary);
  color: var(--color-white);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-rounded);
  font-weight: 800;
  font-size: 13px;
}

.faq-item__q span:nth-child(2) { flex: 1; }

.faq-item__arrow {
  flex-shrink: 0;
  font-size: 12px;
  color: var(--color-primary);
  transition: transform var(--transition);
}
.faq-item__q[aria-expanded="true"] .faq-item__arrow {
  transform: rotate(180deg);
}

.faq-item__a[hidden] { display: none; }

.faq-item__a {
  display: flex;
  gap: 12px;
  padding: 16px;
  background: var(--color-bg-card);
  border-top: 1.5px solid var(--color-border);
  animation: fadeDown .25s ease;
}

@keyframes fadeDown {
  from { opacity: 0; transform: translateY(-8px); }
  to   { opacity: 1; transform: translateY(0); }
}

.faq-item__a-icon {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  background: var(--color-primary-light);
  color: var(--color-white);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-rounded);
  font-weight: 800;
  font-size: 13px;
}

.faq-item__a p {
  font-size: 13.5px;
  line-height: 1.8;
  color: var(--color-text-mid);
  padding-top: 4px;
}

/* ================================
   SNS紹介
================================ */
.sns {
  background: var(--color-white);
}

.sns__desc {
  font-size: 14px;
  color: var(--color-text-light);
  line-height: 1.8;
  margin-bottom: 24px;
}

.sns__grid {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.sns-card {
  display: flex;
  align-items: center;
  gap: 16px;
  background: var(--color-bg-card);
  border-radius: var(--radius-md);
  border: 1.5px solid var(--color-border);
  padding: 18px 16px;
  transition: transform var(--transition), box-shadow var(--transition);
  color: var(--color-text);
}
.sns-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-md);
}

.sns-card__icon {
  width: 48px;
  height: 48px;
  flex-shrink: 0;
}
.sns-card__icon svg { width: 100%; height: 100%; border-radius: 14px; }

.sns-card__body { flex: 1; }

.sns-card__name {
  font-family: var(--font-rounded);
  font-weight: 800;
  font-size: 15px;
  color: var(--color-text);
  margin-bottom: 2px;
}

.sns-card__handle {
  font-size: 12px;
  color: var(--color-text-light);
  margin-bottom: 4px;
}

.sns-card__desc {
  font-size: 12.5px;
  color: var(--color-text-mid);
  line-height: 1.5;
}

.sns-card__arrow {
  font-size: 18px;
  color: var(--color-primary);
  flex-shrink: 0;
}

/* ================================
   会社概要
================================ */
.company {
  background: var(--color-bg-section);
}

.company__card {
  background: var(--color-white);
  border-radius: var(--radius-md);
  border: 1.5px solid var(--color-border);
  overflow: hidden;
}

.company__table {
  width: 100%;
  border-collapse: collapse;
}

.company__table tr {
  border-bottom: 1px solid var(--color-border);
}
.company__table tr:last-child { border-bottom: none; }

.company__table th {
  width: 36%;
  padding: 14px 14px;
  background: var(--color-bg-card);
  font-family: var(--font-rounded);
  font-weight: 700;
  font-size: 12.5px;
  color: var(--color-text-mid);
  text-align: left;
  vertical-align: top;
  white-space: nowrap;
}

.company__table td {
  padding: 14px 14px;
  font-size: 13px;
  color: var(--color-text);
  line-height: 1.7;
  text-align: left;
}

.company__link {
  color: var(--color-primary);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.company__link:hover { opacity: .8; }

/* ================================
   Googleマップ
================================ */
.map-section {
  background: var(--color-white);
}

.map-section__addr {
  font-size: 13.5px;
  color: var(--color-text-mid);
  margin-bottom: 16px;
  line-height: 1.7;
}

.map-section__frame {
  border-radius: var(--radius-md);
  overflow: hidden;
  border: 1.5px solid var(--color-border);
  margin-bottom: 12px;
}
.map-section__frame iframe { display: block; }

.map-section__placeholder {
  background: var(--color-bg-card);
  border: 1.5px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: 40px 20px;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
}

.map-section__placeholder-text {
  font-size: 14px;
  line-height: 1.8;
  color: var(--color-text-mid);
}

.map-section__link {
  display: inline-block;
  font-size: 13.5px;
  color: var(--color-primary);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.map-section__link:hover { opacity: .8; }

/* ================================
   最終CTA
================================ */
.final-cta {
  background: linear-gradient(160deg, #FFF6EE 0%, #FFEBD4 60%, #FFD9B0 100%);
}

.final-cta__inner {
  text-align: center;
  max-width: 500px;
  margin: 0 auto;
}

.final-cta__badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--color-white);
  border-radius: var(--radius-full);
  padding: 8px 20px;
  font-family: var(--font-rounded);
  font-weight: 700;
  font-size: 13px;
  color: var(--color-line);
  box-shadow: var(--shadow-sm);
  margin-bottom: 20px;
}

.final-cta__title {
  font-family: var(--font-rounded);
  font-weight: 900;
  font-size: 26px;
  line-height: 1.5;
  color: var(--color-text);
  margin-bottom: 16px;
}

.final-cta__sub {
  font-size: 14px;
  color: var(--color-text-mid);
  line-height: 1.85;
  margin-bottom: 32px;
}

.final-cta__btns {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
}
.final-cta__btns .btn--large { max-width: 100%; }
.final-cta__btns .btn--tel   { width: 100%; max-width: 400px; }

.final-cta__info {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  font-size: 12.5px;
  color: var(--color-text-light);
}

/* ================================
   フッター
================================ */
.footer {
  background: #2E1E0F;
  padding: 32px 24px;
  border-top: 3px solid var(--color-primary);
}

.footer__inner {
  max-width: 900px;
  margin: 0 auto;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}

.footer__logo {
  height: 56px;
  width: auto;
  background: white;
  border-radius: var(--radius-sm);
  padding: 6px 12px;
}

.footer__copy {
  font-size: 11px;
  color: rgba(255,255,255,.5);
  line-height: 1.7;
}

/* ================================
   PC 追加セクション対応 (768px+)
================================ */
@media (min-width: 768px) {
  .consult__grid {
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
  }
  .consult-item { padding: 28px 16px; }

  .faq__list { gap: 12px; }
  .faq-item__q { font-size: 15px; padding: 20px 20px; }

  .sns__grid {
    flex-direction: row;
    gap: 16px;
  }
  .sns-card { flex: 1; }

  .company__table th { width: 28%; font-size: 13px; padding: 16px 18px; }
  .company__table td { padding: 16px 18px; font-size: 14px; }

  .map-section__frame iframe { height: 400px; }

  .final-cta__title { font-size: 32px; }
  .final-cta__btns {
    flex-direction: row;
    justify-content: center;
  }
  .final-cta__btns .btn--large,
  .final-cta__btns .btn--tel { width: auto; max-width: none; flex: 1; max-width: 300px; }
}

/* ================================================================
   画像主体LP（2026.09 リニューアル v2）
================================================================ */

/* スクリーンリーダー用 */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}

/* スマホのみ改行 + 行内の再折り返し防止（対象の見出し/文のみ） */
@media (max-width:767px){
  .sp-only{display:block;}
  .sp-nowrap{white-space:nowrap;}
  .lp-lead__title,
  .company .section__title,
  .final-cta__sub{word-break:normal;overflow-wrap:normal;}
}
@media (min-width:768px){
  .sp-only{display:none;}
  .sp-nowrap{white-space:normal;}
}

/* 背景ユーティリティ（HTMLセクションの視覚リズム用） */
.bg-cream{background:#FFF8EF;}
.bg-cream2{background:#FFF6E8;}

.section__title--sm{font-size:22px;margin-bottom:16px;}

/* --- 大型画像ブロック --- */
.lp-block{background:var(--color-white);overflow:hidden;}
.lp-block__inner{margin:0 auto;}
.lp-visual{width:100%;height:auto;display:block;border-radius:0;}

/* お悩み画像下の橋渡しコピー */
.lp-bridge{font-family:var(--font-rounded);font-weight:700;font-size:15px;line-height:1.7;color:var(--color-text-mid);text-align:center;padding:16px 16px 24px;}

/* LINE相談セクション見出し */
.lp-lead__title{font-family:var(--font-rounded);font-weight:900;font-size:22px;line-height:1.5;color:var(--color-text);text-align:center;padding:8px 16px 4px;}
.lp-lead__sub{font-size:14px;line-height:1.8;color:var(--color-text-mid);text-align:center;padding:0 16px 14px;}

/* --- インラインCTA --- */
.lp-cta{text-align:center;padding:18px 14px 30px;display:flex;flex-direction:column;align-items:center;}
.lp-cta--inline{margin-top:26px;padding:0 0 4px;}
.lp-cta__btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;max-width:460px;min-height:64px;padding:14px 22px;background:var(--color-line);color:var(--color-white);border-radius:var(--radius-full);font-family:var(--font-rounded);font-weight:800;font-size:17px;line-height:1.3;box-shadow:0 6px 18px rgba(6,199,85,.32);transition:transform var(--transition),box-shadow var(--transition),filter var(--transition);}
.lp-cta__btn:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(6,199,85,.4);}
.lp-cta__btn:active{transform:translateY(0);filter:brightness(.95);}
.lp-cta__btn svg{flex-shrink:0;}
.lp-cta__arrow{font-weight:900;font-size:18px;}
.lp-cta__sub{margin-top:10px;font-family:var(--font-rounded);font-weight:700;font-size:13px;color:var(--color-text-mid);}

/* --- こんな方もご相談ください（軽い選択タグ） --- */
.audience{padding-top:48px;padding-bottom:48px;}
.audience .section__inner{max-width:540px;}
.audience__grid{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;list-style:none;padding:0;}
.audience__item{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;background:var(--color-white);border:1.5px solid var(--color-primary-pale);border-radius:24px;padding:12px 18px;font-family:var(--font-rounded);font-weight:700;font-size:15px;line-height:1;color:var(--color-text);box-shadow:0 1px 4px rgba(255,107,53,.08);}
.audience__item::before{content:"✓";color:var(--color-primary);font-weight:900;font-size:15px;}

/* --- スタッフ紹介カルーセル --- */
.staff{padding-top:48px;padding-bottom:40px;}
.staff .section__inner{max-width:560px;}
.staff__sub{font-size:14px;line-height:1.8;color:var(--color-text-mid);margin-bottom:22px;}
.staff__carousel{position:relative;width:100%;max-width:520px;margin:0 auto;}
.staff__viewport{overflow:hidden;border-radius:18px;}
.staff__track{display:flex;transition:transform .35s ease;will-change:transform;}
.staff__card{flex:0 0 100%;}
.staff__card img{width:100%;height:auto;display:block;border-radius:18px;}
.staff__nav{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--color-white);color:var(--color-primary);border:1.5px solid var(--color-border);border-radius:50%;box-shadow:0 3px 12px rgba(0,0,0,.16);cursor:pointer;transition:filter var(--transition),transform var(--transition);}
.staff__nav:hover{filter:brightness(1.02);}
.staff__nav:active{transform:translateY(-50%) scale(.94);}
.staff__nav--prev{left:-6px;}
.staff__nav--next{right:-6px;}
.staff__dots{display:flex;justify-content:center;gap:9px;margin-top:16px;}
.staff__dot{width:9px;height:9px;border-radius:50%;background:var(--color-primary-pale);border:none;padding:0;cursor:pointer;transition:background var(--transition),transform var(--transition);}
.staff__dot.is-active{background:var(--color-primary);transform:scale(1.15);}

/* --- ご入居までの流れ 4STEP --- */
.flow4{padding-top:46px;padding-bottom:46px;}
.flow4 .section__inner{max-width:460px;}
.flow4__list{list-style:none;padding:0;display:flex;flex-direction:column;gap:24px;}
.flow4-step{position:relative;display:flex;align-items:center;gap:14px;background:var(--color-white);border:1.5px solid var(--color-border);border-radius:var(--radius-md);padding:14px 16px;text-align:left;}
.flow4-step:not(:last-child)::after{content:"";position:absolute;left:34px;bottom:-24px;width:2px;height:24px;background:var(--color-primary-pale);}
.flow4-step__num{flex-shrink:0;width:38px;height:38px;display:flex;align-items:center;justify-content:center;background:var(--color-primary);color:#fff;border-radius:50%;font-family:var(--font-rounded);font-weight:900;font-size:14px;}
.flow4-step__text{font-family:var(--font-rounded);font-weight:700;font-size:14.5px;line-height:1.5;color:var(--color-text);}

/* --- FAQ前の小タグ --- */
.faq__pre{margin-bottom:20px;}
.faq__pre-text{font-size:13.5px;font-weight:700;color:var(--color-text-mid);margin-bottom:10px;}
.minitags{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;list-style:none;padding:0;}
.minitags li{background:var(--color-white);border:1.5px solid var(--color-primary-pale);border-radius:var(--radius-full);padding:5px 14px;font-family:var(--font-rounded);font-weight:700;font-size:12.5px;color:var(--color-primary-dark);}

/* --- SNS コンパクト --- */
.sns--compact{padding-top:44px;padding-bottom:44px;}
.sns--compact .sns__desc{font-size:12.5px;margin-bottom:16px;}
.sns--compact .sns-card{padding:12px 14px;}
.sns--compact .sns-card__icon{width:38px;height:38px;}

/* --- スマホ固定LINE CTA --- */
.sticky-cta{position:fixed;left:0;right:0;bottom:0;z-index:200;padding:6px 10px;padding-bottom:calc(10px + env(safe-area-inset-bottom));pointer-events:none;}
.sticky-cta__btn{pointer-events:auto;display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:66px;padding:8px 18px;background:var(--color-line);color:var(--color-white);border-radius:36px;box-shadow:0 6px 22px rgba(6,199,85,.42);font-family:var(--font-rounded);transition:filter var(--transition),transform var(--transition);}
.sticky-cta__btn:active{filter:brightness(.93);transform:translateY(1px);}
.sticky-cta__btn svg{flex-shrink:0;}
.sticky-cta__text{display:flex;flex-direction:column;align-items:flex-start;line-height:1.25;}
.sticky-cta__main{font-weight:800;font-size:16px;}
.sticky-cta__sub{font-weight:600;font-size:11px;opacity:.92;}
.sticky-cta__arrow{font-weight:900;font-size:18px;margin-left:2px;}

/* 固定CTAで本文が隠れない余白 */
body{padding-bottom:calc(92px + env(safe-area-inset-bottom));}

/* スマホ：ヘッダーを詰める */
@media (max-width:767px){
  .site-header{padding:7px 14px;}
  .site-header__logo{height:50px;}
  .site-header__line-btn{font-size:12px;padding:7px 13px;}
  .lp-visual{border-radius:0;}
}

/* PC：画像中央・適正サイズ、固定CTA非表示 */
@media (min-width:768px){
  body{padding-bottom:0;}
  .sticky-cta{display:none;}
  .lp-block{padding:6px 0;}
  .lp-block--fv{padding-top:0;}
  .lp-block__inner{max-width:860px;padding:0 24px;}
  .lp-visual{border-radius:14px;}
  .lp-lead__title{font-size:26px;}
  .lp-lead__sub{font-size:15px;}
  .lp-cta__btn{font-size:18px;min-height:66px;}
  .staff__carousel{max-width:520px;}
}
