@import url('https://fonts.googleapis.com/css2?family=Klee+One:wght@400;600&family=M+PLUS+Rounded+1c:wght@400;500;700&family=Shippori+Mincho:wght@500;700;800&family=Yomogi&family=Zen+Kurenaido&family=Zen+Maru+Gothic:wght@400;500;700&display=swap');

:root {
  /* フェーズ2：カラー戦略の厳格規律 */
  /* 1. 信頼・安全：エメラルドグリーン (#10B981) */
  --color-trust: #10b981;
  --color-trust-dark: #059669;
  --color-trust-soft: #ecfdf5;
  
  /* 2. 緊急性・行動喚起：ブライトオレンジ (#F97316) 【最重要CTA】 */
  --color-cta: #f97316;
  --color-cta-dark: #ea580c;
  --color-cta-soft: #fff7ed;

  /* 3. 社会的証明：アンバー/ゴールド (#F59E0B) 【Googleマップ星評価専用】 */
  --color-star: #f59e0b;

  /* 4. 可読性・プロ感：ダークネイビー (#0F172A) 【目の保護テキスト】 */
  --text-main: #0f172a;
  --text-sub: #334155;

  /* 5. 清潔感・背景：ライトグレー (#F8FAFC) */
  --bg-main: #f8fafc;
  --card-bg: #ffffff;
  --line: #e2e8f0;
}

/* 全デバイスレスポンシブ標準リセット (sticky / fixed 互換) */
*, *::before, *::after {
  box-sizing: border-box;
  max-width: 100%;
}

html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
  overflow-x: clip;
  width: 100%;
}

body {
  font-family: "Zen Maru Gothic", "M PLUS Rounded 1c", sans-serif !important;
  font-weight: 500;
  color: var(--text-main);
  background-color: var(--bg-main);
  margin: 0;
  padding: 0;
  width: 100%;
  overflow-x: clip;
  line-height: 1.6;
  position: relative;
}

img, video, iframe, svg, canvas {
  max-width: 100%;
  height: auto;
}

h1, h2, h3, h4, h5, h6 {
  font-family: "Zen Maru Gothic", "M PLUS Rounded 1c", sans-serif !important;
  font-weight: 700;
  color: var(--text-main);
  letter-spacing: -0.01em;
  word-break: break-word;
  overflow-wrap: anywhere;
  max-width: 100%;
}

/* 情緒的メッセージ：遺品整理に対する想い等（上品な明朝体） */
.font-mincho {
  font-family: "Shippori Mincho", "Noto Serif JP", serif !important;
}

/* お客様の声：生の口コミ・手書きアンケート（温かみのある手書き風） */
.font-handmade {
  font-family: "Yomogi", "Klee One", "Zen Kurenaido", cursive !important;
}

/* レスポンシブラップ＆コンテナ最適化 */
.wrap {
  width: 100%;
  max-width: 1200px;
  padding-left: 16px;
  padding-right: 16px;
  margin-inline: auto;
}

@media (min-width: 640px) {
  .wrap {
    padding-left: 24px;
    padding-right: 24px;
  }
}

.narrow { max-width: 850px; width: 100%; }

.eyebrow {
  display: inline-flex;
  align-items: center;
  background: var(--color-trust-soft);
  color: var(--color-trust-dark);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .04em;
  border-radius: 999px;
  padding: 5px 14px;
  border: 1px solid #a7f3d0;
}

.hero h1, .page-hero h1 {
  font-size: clamp(22px, 4.2vw, 42px);
  line-height: 1.3;
  margin: 12px 0 16px;
  font-weight: 700;
  color: var(--text-main);
}

.actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 20px; }
.section { padding: 36px 0; }
@media (min-width: 640px) {
  .section { padding: 48px 0; }
}

.section-head h2, .split-content h2, .article h2, .cta-band h2 {
  font-size: clamp(20px, 3vw, 32px);
  line-height: 1.3;
  margin: 10px 0;
  font-weight: 700;
  color: var(--text-main);
}

.grid3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }

.service-card, .case-card, .topic-card, .area-card {
  background: var(--card-bg);
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 22px;
  transition: .2s ease;
  color: var(--text-main);
  max-width: 100%;
}

/* コンバージョン最大化：CTAバンド */
.cta-band {
  background: linear-gradient(135deg, var(--color-trust-dark) 0%, #064e3b 100%);
  color: #ffffff;
  padding: 32px 16px;
  border-radius: 20px;
  margin: 28px auto;
  max-width: 1200px;
  box-shadow: 0 10px 25px -5px rgba(16, 185, 129, 0.25);
  width: 100%;
}
@media (min-width: 640px) {
  .cta-band {
    padding: 44px 24px;
    margin: 36px auto;
  }
}
.cta-band h2 { color: #ffffff !important; font-weight: 700; }
.cta-band p { color: #ecfdf5; font-weight: 500; }
.cta-band-grid { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 24px; padding: 0; }

.breadcrumbs { display: flex; gap: 8px; align-items: center; padding: 14px 0; font-size: 13px; color: var(--text-sub); flex-wrap: wrap; }

/* 主要CTAボタン：ブライトオレンジ (#F97316) */
.cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 10px 22px;
  border-radius: 999px;
  font-weight: 700;
  border: 1px solid transparent;
  transition: .2s ease;
  text-decoration: none;
  max-width: 100%;
}
.cta.accent, .btn-cta-primary {
  background-color: var(--color-cta) !important;
  color: #ffffff !important;
  box-shadow: 0 4px 14px rgba(249, 115, 22, 0.35) !important;
}
.cta.accent:hover, .btn-cta-primary:hover {
  background-color: var(--color-cta-dark) !important;
  transform: translateY(-1px);
}

.faq-list details { background: #ffffff; border: 1px solid #e2e8f0; border-radius: 14px; padding: 14px 18px; margin-bottom: 10px; max-width: 100%; }
.faq-list summary { font-weight: 700; color: var(--text-main); font-size: 15px; cursor: pointer; list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after { content: '+'; font-size: 18px; color: var(--color-trust); font-weight: 700; shrink: 0; }
.faq-list details[open] summary::after { content: '−'; color: var(--color-cta); }

@media(max-width:960px){ .grid3 { grid-template-columns: repeat(2, 1fr); } .cta-band-grid { grid-template-columns: 1fr; } }
@media(max-width:640px){ .grid3 { grid-template-columns: 1fr; } .cta-band-grid { padding: 0; } }
.no-scrollbar::-webkit-scrollbar { display: none; }
.no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }

/* ⚡️ シニア向け3D沈み込み震える電話CTAボタン (全デバイスレスポンシブ最適化) */
@keyframes cta-vibrate {
  0%, 100% { transform: translate(0, 0) rotate(0deg); }
  10% { transform: translate(-2px, -1px) rotate(-1.5deg); }
  20% { transform: translate(2px, 1px) rotate(1.5deg); }
  30% { transform: translate(-2px, 1px) rotate(-1deg); }
  40% { transform: translate(2px, -1px) rotate(1deg); }
  50% { transform: translate(-1px, -1px) rotate(-0.5deg); }
  60% { transform: translate(1px, 1px) rotate(0.5deg); }
  70%, 90% { transform: translate(0, 0) rotate(0deg); }
}

.senior-cta-btn {
  background-color: #06C755;
  color: #ffffff !important;
  border: 3px solid #000000;
  border-radius: 1.5rem;
  box-shadow: 4px 4px 0px #000000;
  transition: all 0.15s cubic-bezier(0.4, 0, 0.2, 1);
  animation: cta-vibrate 2.8s infinite ease-in-out;
  cursor: pointer;
  text-decoration: none;
  max-width: 100%;
}

@media (min-width: 640px) {
  .senior-cta-btn {
    border-width: 3.5px;
    border-radius: 1.8rem;
    box-shadow: 6px 6px 0px #000000;
  }
}

.senior-cta-btn:hover,
.senior-cta-btn:active {
  box-shadow: 0px 0px 0px #000000 !important;
  transform: translate(4px, 4px) !important;
  animation: none !important;
}

@media (min-width: 640px) {
  .senior-cta-btn:hover,
  .senior-cta-btn:active {
    transform: translate(6px, 6px) !important;
  }
}

/* ⚡️ モバイル下部固定CTAバーの最前面固定保証 */
.mobile-fixed-cta {
  position: fixed !important;
  bottom: 0 !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 99999 !important;
}
