/* =========================================================
   style_design.css — Claude Design「ひより整体院LP」忠実移植
   出典: claude.ai/design handoff (ひより整体院LP.dc.html)
   - 見た目はデザインに忠実、データは {{placeholder}} で院別化
   - 配色/フォント/余白はデザインの実値をそのまま採用
   ========================================================= */
:root {
  --dz-bg:        #ffffff;
  --dz-text:      #3f3f3a;
  --dz-ink:       #3c3c36;   /* 見出し */
  --dz-ink-soft:  #3a3a34;
  --dz-hero-bg:   #ffffff;   /* ヒーロー背景＝白（レビュー反映） */
  --dz-card-bg:   #f8f8f6;   /* お悩みカード・院情報＝クール白 */
  --dz-cta-bg:    #f5f5f2;   /* CTAバンド＝クール白（濃い緑をやめCTAボタンのみ緑） */
  --dz-sage:      #6f7c4d;   /* ブランド/アイコン */
  --dz-sage-soft: #e9eede;   /* CTAボタン淡色塗り（案A） */
  --dz-sage-ink:  #4f5a37;   /* CTAボタン文字（濃緑） */
  --dz-sage-border: #d7e0c6; /* CTAボタン枠（淡） */
  --dz-line:      #06C755;
  --dz-star:      #efa92c;
  --dz-muted:     #86867c;
  --dz-muted2:    #7c7c72;
  --dz-review:    #6f6f66;
  --dz-nav:       #56564e;
  --dz-border:    #ece8dd;
  --dz-border2:   #e8e3d7;
  --dz-footer-bg: #41452f;
  --dz-footer-tx: #d9dac9;
  --dz-serif: 'Shippori Mincho', "Noto Serif JP", serif;
  --dz-sans:  'Noto Sans JP', "Hiragino Kaku Gothic ProN", メイリオ, Meiryo, sans-serif;
}

* { box-sizing: border-box; }
.dz-page {
  background: var(--dz-bg);
  font-family: var(--dz-sans);
  color: var(--dz-text);
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
.dz-page img { display: block; max-width: 100%; }
.dz-section { padding: 64px 0 24px; }
.dz-section-title {
  width: fit-content; max-width: 100%;
  margin: 0 auto 44px;
  text-align: center;
  font-family: var(--dz-serif);
  font-size: 30px;
  color: var(--dz-ink);
  font-weight: 600;
  letter-spacing: 0.03em;
}
/* 見出し直下の補足リード（中央・控えめ） */
.dz-section-lead {
  text-align: center;
  margin: -28px 0 42px;
  font-size: 15.5px;
  line-height: 1.8;
  color: #6f6f66;
}

/* ---------- HEADER (独立・白背景・上部固定) ---------- */
.dz-header {
  background: rgba(255,255,255,0.92);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid #eceae4;
  position: sticky; top: 0; z-index: 50;
}
.dz-header-inner {
  max-width: 1180px; margin: 0 auto; padding: 15px 24px;
  display: flex; align-items: center; gap: 28px;
}
.dz-hero { background: #fff; }
.dz-hero-wrap {
  position: relative;
  max-width: 1180px; margin: 0 auto; padding: 0 24px;
  display: flex; align-items: center; min-height: 580px;
}
.dz-brand {
  font-family: var(--dz-serif);
  font-size: 23px; letter-spacing: 0.16em; color: var(--dz-ink-soft);
  font-weight: 600; white-space: nowrap; text-decoration: none;
}
.dz-nav { display: flex; align-items: center; gap: 26px; margin-left: 18px; }
.dz-nav a { font-size: 13.5px; color: var(--dz-nav); text-decoration: none; white-space: nowrap; }
.dz-nav a:hover { color: var(--dz-sage); }
.dz-header-actions { display: flex; align-items: center; gap: 12px; margin-left: auto; }
.dz-line-btn {
  display: inline-flex; align-items: center; gap: 9px;
  background: var(--dz-sage-soft); color: var(--dz-sage-ink); border: 1px solid var(--dz-sage-border);
  padding: 10px 20px; border-radius: 9px;
  font-size: 13.5px; font-weight: 600; text-decoration: none; white-space: nowrap;
}
.dz-line-badge {
  display: inline-flex; align-items: center; justify-content: center;
  width: 22px; height: 22px; background: #fff; border-radius: 6px;
  color: var(--dz-line); font-size: 8.5px; font-weight: 800; letter-spacing: -0.04em;
}
.dz-tel-circle {
  display: inline-flex; align-items: center; justify-content: center;
  width: 46px; height: 46px; border-radius: 50%;
  background: #fff; border: 1px solid #e3e0d8; color: var(--dz-sage); text-decoration: none;
}

/* ---------- HERO ---------- */
.dz-hero-text {
  position: relative; z-index: 2;
  flex: 0 0 56%; max-width: 56%; min-width: 0; padding: 72px 0;
}
.dz-hero-text h1 {
  margin: 0; font-family: var(--dz-serif);
  font-size: clamp(31px, 3.4vw, 45px); line-height: 1.55; letter-spacing: 0.02em;
  color: var(--dz-ink-soft); font-weight: 600;
  /* nowrap は外す：中幅でテキスト列が枠を超えるのを防止（<br>で改行制御） */
}
.dz-hero-sub { margin: 26px 0 0; font-size: 16px; line-height: 2; color: #5d5d54; }
.dz-hero-photo {
  position: absolute; top: 50%; right: 24px; transform: translateY(-50%);
  width: 50%; max-width: 560px; min-width: 0; z-index: 1;
}
/* ヒーロー：正方形・角丸なし・左フェード・3枚クロスフェード（テキストは前面で重ねOK） */
.dz-hero-ss {
  position: relative; width: 100%; aspect-ratio: 1 / 1;
  overflow: hidden; background: var(--dz-card-bg);
}
.dz-hero-ss .dz-hero-slide {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; border-radius: 0; opacity: 0;
  animation: dzHeroFade 13.5s infinite;
}
/* 女性写真は顔が左寄り → 左に寄せて右側をトリミング（顔を残す） */
.dz-hero-ss .dz-hero-slide--face { object-position: 30% center; }
.dz-hero-ss .dz-hero-slide:nth-child(1) { animation-delay: 0s; }
.dz-hero-ss .dz-hero-slide:nth-child(2) { animation-delay: 4.5s; }
.dz-hero-ss .dz-hero-slide:nth-child(3) { animation-delay: 9s; }
@keyframes dzHeroFade { 0%{opacity:0} 4%{opacity:1} 30%{opacity:1} 37%{opacity:0} 100%{opacity:0} }
/* 左端フェード（白へ向かって薄くなる） */
.dz-hero-ss::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(90deg, #ffffff 0%, rgba(255,255,255,0) 26%);
}
@media (prefers-reduced-motion: reduce) {
  .dz-hero-ss .dz-hero-slide { animation: none; }
  .dz-hero-ss .dz-hero-slide:nth-child(1) { opacity: 1; }
}
.dz-google-badge {
  margin-top: 30px; display: inline-flex; align-items: center; gap: 13px;
  background: #fff; border: 1px solid var(--dz-border); border-radius: 12px;
  padding: 13px 18px; box-shadow: 0 4px 14px rgba(60,60,40,0.05);
}
.dz-google-badge .g-label { font-size: 13px; color: #5a5a52; font-weight: 500; white-space: nowrap; }
.dz-google-badge .g-rating { font-size: 19px; font-weight: 700; color: var(--dz-ink-soft); line-height: 1; }
.dz-google-badge .g-stars { color: var(--dz-star); letter-spacing: 1px; font-size: 14px; white-space: nowrap; }
.dz-google-badge .g-count { font-size: 12px; color: #a09a8c; white-space: nowrap; }

/* ---------- CTA BAND ---------- */
.dz-cta { padding: 32px 0 8px; }
.dz-cta.dz-cta-2 { padding: 40px 0 8px; }
.dz-cta-wrap { max-width: 1040px; margin: 0 auto; padding: 0 24px; }
.dz-cta-band {
  background: var(--dz-cta-bg); border-radius: 16px; padding: 28px 40px;
  display: flex; align-items: center; justify-content: space-between; gap: 28px; flex-wrap: wrap;
}
.dz-cta-lead { margin: 0; font-family: var(--dz-serif); font-size: 21px; line-height: 1.7; color: #42423a; }
.dz-cta-actions { display: flex; gap: 14px; flex-wrap: wrap; }
/* CTAボタン＝案A：薄色で統一・低コントラスト・影なし */
.dz-btn-line {
  display: inline-flex; align-items: center; gap: 11px;
  background: var(--dz-sage-soft); color: var(--dz-sage-ink); border: 1px solid var(--dz-sage-border);
  padding: 15px 30px; border-radius: 10px;
  font-size: 16px; font-weight: 600; text-decoration: none;
}
.dz-btn-line .dz-line-badge { width: 24px; height: 24px; font-size: 9px; }
.dz-btn-tel {
  display: inline-flex; align-items: center; gap: 11px;
  background: #F4EFE3; color: #6a5e4a; padding: 15px 30px; border-radius: 10px;
  font-size: 16px; font-weight: 600; text-decoration: none; border: 1px solid #e7ddc8;
}
.dz-btn-tel svg { stroke: #a98f63; }

/* ---------- WORRIES ---------- */
.dz-worry-grid {
  max-width: 1000px; margin: 0 auto; padding: 0 24px;
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px;
}
/* お悩みカード＝写真カード（アイコンチップから刷新・2026-06-20 S-Design）。
   症状写真をカード上部にフルブリード表示＋hoverで軽い浮き上がり/写真ズーム。 */
.dz-worry-card {
  background: var(--dz-card-bg); border-radius: 14px; overflow: hidden;
  text-align: center; box-shadow: 0 2px 10px rgba(60,60,40,0.04);
  transition: transform .25s ease, box-shadow .25s ease;
}
.dz-worry-card img { display: block; width: 100%; height: 172px; object-fit: cover; margin: 0; padding: 0; border: 0; border-radius: 0; background: none; transition: transform .45s ease; }
.dz-worry-card h3 { margin: 18px 20px 8px; font-size: 18px; font-weight: 700; color: #41413a; }
.dz-worry-card p { margin: 0 20px 22px; font-size: 13.5px; line-height: 1.85; color: var(--dz-muted); }
.dz-worry-card:hover { transform: translateY(-3px); box-shadow: 0 12px 26px rgba(60,60,40,0.10); }
.dz-worry-card:hover img { transform: scale(1.05); }
@media (prefers-reduced-motion: reduce) {
  .dz-worry-card, .dz-worry-card img { transition: none; }
  .dz-worry-card:hover { transform: none; }
  .dz-worry-card:hover img { transform: none; }
}

/* ---------- REASONS ---------- */
/* 選ばれる理由：写真と文章カードを「ずらし重ね」。写真=前面/左右交互、カード=クリーム背面 */
.dz-reasons { max-width: 1080px; margin: 0 auto; padding: 0 24px; display: flex; flex-direction: column; gap: 64px; }
.dz-reason-row { position: relative; min-height: 420px; }
/* 文章カード（前面・クリーム）— 既定は右寄せ（写真左）。重なり側(左端)を半透明にして写真が薄く透ける */
.dz-reason-card {
  position: relative; z-index: 2;
  width: 54%; margin-left: auto;
  background: linear-gradient(90deg, rgba(247,243,234,0.82) 0, #F7F3EA 96px);
  border-radius: 6px;
  box-shadow: 0 12px 32px rgba(60,60,40,0.10);
  padding: 52px 50px 52px 104px;
  min-height: 380px;
  display: flex; flex-direction: column; justify-content: center;
}
/* 写真（背面・左右に絶対配置で重ねる） */
.dz-reason-photo {
  position: absolute; top: 50%; transform: translateY(-50%);
  left: 0; width: 54%; z-index: 1;
}
.dz-reason-photo img { width: 100%; height: 380px; object-fit: cover; border-radius: 4px; display: block; }
/* 交互（写真右・カード左）— 重なり側(右端)を半透明に */
.dz-reason-row--rev .dz-reason-card { margin-left: 0; margin-right: auto; padding: 56px 108px 56px 52px; background: linear-gradient(270deg, rgba(247,243,234,0.82) 0, #F7F3EA 96px); }
.dz-reason-row--rev .dz-reason-photo { left: auto; right: 0; }
/* Point ラベル＋見出し＋本文 */
.dz-reason-point { align-self: flex-start; font-family: var(--dz-serif); font-size: 19px; font-weight: 700; letter-spacing: 0.1em; color: #5f6e4e; padding-bottom: 9px; border-bottom: 2px solid var(--dz-sage); margin-bottom: 20px; }
.dz-reason-title { margin: 0 0 16px; font-family: var(--dz-serif); font-size: 27px; color: var(--dz-ink); font-weight: 600; line-height: 1.5; }
.dz-reason-body { margin: 0; font-size: 15px; line-height: 1.95; color: var(--dz-muted2); }

/* ---------- REVIEWS (live) ---------- */
.dz-reviews-wrap { max-width: 1040px; margin: 0 auto; padding: 0 24px; }
.dz-reviews-head { position: relative; margin-bottom: 36px; display: flex; align-items: center; justify-content: center; }
.dz-reviews-head h2 { margin: 0; font-family: var(--dz-serif); font-size: 30px; color: var(--dz-ink); font-weight: 600; letter-spacing: 0.03em; }
.dz-reviews-link {
  position: absolute; right: 0; bottom: 4px; font-size: 13.5px; color: var(--dz-sage);
  text-decoration: none; border-bottom: 1px solid #b6bd9c; padding-bottom: 2px;
}
.dz-voice-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.dz-voice-fallback {
  grid-column: 1 / -1; text-align: center; color: #b0aca0; font-size: 13px; padding: 22px;
}
.dz-voice-card {
  background: #fff; border: 1px solid var(--dz-border); border-radius: 14px;
  padding: 24px 24px 26px; box-shadow: 0 2px 10px rgba(60,60,40,0.03);
}
.dz-voice-card-head { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.dz-voice-avatar {
  width: 40px; height: 40px; border-radius: 50%; background: #9c9183; color: #fff;
  display: flex; align-items: center; justify-content: center; font-size: 16px; font-weight: 600; flex-shrink: 0;
}
.dz-voice-stars { color: var(--dz-star); letter-spacing: 1px; font-size: 15px; }
.dz-voice-time { margin-left: auto; font-size: 12px; color: #a8a89e; }
.dz-voice-card { align-self: start; }  /* 高さを最長カードに引き伸ばさない */
.dz-voice-card p {
  margin: 0; font-size: 14px; line-height: 1.95; color: var(--dz-review);
  /* 本文は5行でクランプ（…省略）。全文は「Googleで口コミを見る」へ誘導 */
  display: -webkit-box; -webkit-line-clamp: 5; line-clamp: 5; -webkit-box-orient: vertical; overflow: hidden;
}
.dz-voice-disclaimer { text-align: right; margin: 16px 0 0; font-size: 12px; color: #b0aca0; line-height: 1.7; }

/* ---------- DIRECTOR ---------- */
.dz-narrow { max-width: 960px; margin: 0 auto; padding: 0 24px; }
.dz-block-title { width: fit-content; max-width: 100%; margin: 0 auto 36px; font-family: var(--dz-serif); font-size: 30px; color: var(--dz-ink); font-weight: 600; letter-spacing: 0.03em; text-align: center; }
/* 院長：見出しは上部中央（dz-block-title）。本文は 左=写真／右=あいさつ（名前は最下部・肩書なし） */
.dz-director-row {
  display: grid;
  grid-template-columns: 300px 1fr;
  gap: 44px; align-items: center;
}
.dz-director-photo img { width: 300px; height: 360px; object-fit: cover; object-position: top center; border-radius: 14px; }
.dz-director-msg blockquote { margin: 0; padding: 0; border: 0; font-size: 15px; line-height: 2; color: var(--dz-nav); }
.dz-director-msg .dz-director-name { margin: 22px 0 0; font-family: var(--dz-serif); font-size: 17px; color: var(--dz-ink); text-align: right; }

/* ---------- ABOUT ---------- */
/* About：写真なし。左=紹介文（主役・広め）／右=店舗情報カード（参照・整理） */
.dz-about-row { display: grid; grid-template-columns: 1.4fr minmax(300px, 360px); gap: 76px; align-items: start; }
.dz-about-body p { margin: 0 0 20px; font-size: 15.5px; line-height: 2.05; color: var(--dz-review); }
.dz-about-body p:last-child { margin-bottom: 0; }
.dz-about-lead { color: var(--dz-text); }   /* リード文は少し濃く */

/* 店舗情報：枠で囲まず、見出しの下線アクセント＋細い区切り線で整理（脱・チープな箱） */
.dz-about-info { background: transparent; border: 0; border-radius: 0; padding: 0; }
.dz-info-caption { margin: 0; font-family: var(--dz-serif); font-size: 16px; font-weight: 600; color: var(--dz-ink); letter-spacing: 0.06em; padding-bottom: 10px; border-bottom: 2px solid var(--dz-sage-border); }
.dz-info-table { border-top: 0; margin-top: 0; }
.dz-info-row { display: flex; border-bottom: 1px solid var(--dz-border); padding: 11px 0; }
.dz-info-row .k { flex: 0 0 64px; font-size: 13px; color: #8a8578; font-weight: 600; }
.dz-info-row .v { font-size: 13.5px; color: #46463f; line-height: 1.6; }
.dz-hours-caption { margin: 20px 0 0; font-size: 13px; color: #8a8578; font-weight: 600; }
.dz-about-info .dz-hours-table { max-width: none; margin-top: 8px; }
.dz-about-info .dz-hours-table th { background: transparent; width: 56px; padding: 9px 0; font-size: 13px; color: #6a6a60; }
.dz-about-info .dz-hours-table td { padding: 9px 0; font-size: 13.5px; }
.dz-about-info .dz-hours-table th, .dz-about-info .dz-hours-table td { border-bottom: 1px solid var(--dz-border); }

/* ---------- FLOW ---------- */
.dz-flow-row { max-width: 1040px; margin: 0 auto; padding: 0 24px; display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.dz-flow-step { flex: 1; text-align: center; }
.dz-flow-num { font-family: var(--dz-serif); font-size: 22px; color: #9aa07f; letter-spacing: 0.08em; }
.dz-flow-label { font-size: 18px; font-weight: 700; color: var(--dz-ink); letter-spacing: 0.04em; margin-top: 4px; }
.dz-flow-icon { height: 52px; display: flex; align-items: center; justify-content: center; margin: 12px 0 8px; color: var(--dz-sage); }
.dz-flow-step p { margin: 0; font-size: 14px; line-height: 1.85; color: var(--dz-nav); }
/* 営業時間：縦テーブル（月〜日祝） */
.dz-hours-table { width: 100%; max-width: 380px; border-collapse: collapse; margin-top: 18px; }
.dz-hours-table th, .dz-hours-table td { padding: 11px 16px; border-bottom: 1px solid #efeadd; font-size: 14px; text-align: left; }
.dz-hours-table th { width: 76px; background: var(--dz-card-bg); color: #6a6a60; font-weight: 600; }
.dz-hours-table td { color: #46463f; }
.dz-hours-table tr:last-child th, .dz-hours-table tr:last-child td { border-bottom: 0; }
.dz-hours-table .is-off td { color: var(--dz-muted); }
.dz-hours-note { margin: 10px 0 0; font-size: 12px; color: var(--dz-muted); }
.dz-flow-arrow { padding-top: 18px; color: #cbc6b6; flex: 0 0 auto; }

/* ---------- PRICING ---------- */
.dz-price-wrap { max-width: 720px; margin: 0 auto; padding: 0 24px; }
.dz-price-table { border: 1px solid var(--dz-border2); border-radius: 12px; overflow: hidden; }
.dz-price-row { display: flex; align-items: center; border-bottom: 1px solid #efeadd; }
.dz-price-row:last-child { border-bottom: none; }
.dz-price-row .name { flex: 1; padding: 20px 26px; font-size: 15px; color: #46463f; }
.dz-price-row .val { flex: 0 0 240px; padding: 20px 26px; font-size: 15px; color: #46463f; text-align: center; border-left: 1px solid #efeadd; }
.dz-price-row .val small { font-size: 12px; color: #8f8f84; }

/* ---------- FAQ ---------- */
.dz-faq-wrap { max-width: 760px; margin: 0 auto; padding: 0 24px; }
.dz-faq-item { border-top: 1px solid var(--dz-border); }
.dz-faq-wrap .dz-faq-end { border-top: 1px solid var(--dz-border); }
.dz-faq-item summary {
  list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between;
  gap: 16px; padding: 20px 8px; font-size: 15px; color: #46463f; font-weight: 500;
}
.dz-faq-item summary::-webkit-details-marker { display: none; }
.dz-faq-item summary::after { content: '＋'; font-size: 21px; color: #9a958a; font-weight: 400; line-height: 1; width: 18px; text-align: center; flex-shrink: 0; }
.dz-faq-item[open] summary::after { content: '−'; }
.dz-faq-answer { margin: 0; padding: 0 8px 22px; font-size: 14px; line-height: 1.95; color: #7d7a70; }

/* ---------- ACCESS ---------- */
.dz-access-wrap { max-width: 880px; margin: 0 auto; padding: 0 24px; }
.dz-access-map { height: 300px; border-radius: 14px; overflow: hidden; border: 1px solid var(--dz-border2); }
.dz-access-map iframe { width: 100%; height: 100%; border: 0; display: block; }
.dz-access-info { margin-top: 26px; display: flex; flex-direction: column; gap: 14px; max-width: 560px; }
.dz-access-info .row { display: flex; align-items: center; gap: 14px; }
.dz-access-info .row .ic { color: var(--dz-sage); display: inline-flex; }
.dz-access-info .row span:last-child { font-size: 14.5px; color: #4a4a42; }

/* ---------- FINAL CTA ---------- */
.dz-final-cta { padding: 48px 0 64px; }
.dz-final-box { background: var(--dz-cta-bg); border-radius: 16px; padding: 44px 40px; text-align: center; }
.dz-final-box p { margin: 0 0 26px; font-family: var(--dz-serif); font-size: 25px; line-height: 1.6; color: #42423a; }
.dz-final-box .dz-cta-actions { justify-content: center; }

/* ---------- FOOTER ---------- */
.dz-footer { background: var(--dz-footer-bg); color: var(--dz-footer-tx); padding: 42px 24px; text-align: center; }
.dz-footer-brand { font-family: var(--dz-serif); font-size: 21px; letter-spacing: 0.18em; margin-bottom: 12px; }
.dz-footer p { margin: 0; font-size: 13px; color: #a9ab97; line-height: 1.9; }
.dz-footer .dz-footer-copy { margin: 16px 0 0; font-size: 12px; color: #888a73; }
.dz-footer-legal { margin-top: 22px; padding-top: 18px; border-top: 1px solid rgba(255,255,255,0.12); }
.dz-footer-legal a { color: #c7c9b4; font-size: 12px; text-decoration: none; margin: 0 8px; }
.dz-footer-legal a:hover { text-decoration: underline; }

/* ---------- MOBILE CTA BAR ---------- */
.dz-mobile-cta { display: none; }

/* =========================================================
   Responsive
   ========================================================= */
@media (max-width: 920px) {
  .dz-hero-wrap { flex-direction: column; gap: 24px; min-height: 0; padding-top: 28px; padding-bottom: 8px; }
  .dz-hero-text { position: static; flex: none; max-width: 100%; width: 100%; padding: 8px 0 0; order: 2; }
  .dz-hero-text h1 { font-size: clamp(26px, 6vw, 34px); }
  .dz-hero-photo { position: static; transform: none; right: auto; flex: none; width: 100%; max-width: none; order: 1; }
  .dz-hero-ss { max-width: 420px; margin: 0 auto; }
  .dz-nav { display: none; }
  /* 選ばれる理由：モバイルは重なり解除＝写真上・カード下に縦積み */
  .dz-reasons { gap: 36px; }
  .dz-reason-row, .dz-reason-row--rev { position: static; min-height: 0; }
  .dz-reason-photo, .dz-reason-row--rev .dz-reason-photo {
    position: static; transform: none; left: auto; right: auto; width: 100%;
  }
  .dz-reason-photo img { height: auto; aspect-ratio: 3 / 2; }
  .dz-reason-photo::after { display: none; }
  .dz-reason-card, .dz-reason-row--rev .dz-reason-card {
    width: 92%; margin: -28px auto 0; padding: 40px 26px 26px; min-height: 0;
  }
  .dz-director-row, .dz-about-row { grid-template-columns: 1fr; gap: 22px; }
  .dz-director-photo img { width: 100%; height: auto; aspect-ratio: 4 / 5; max-width: 320px; }
  .dz-flow-row { flex-wrap: wrap; gap: 18px 8px; }
  .dz-flow-step { flex: 0 0 28%; }
  .dz-flow-arrow { display: none; }
}
@media (max-width: 720px) {
  .dz-worry-grid { grid-template-columns: 1fr 1fr; gap: 14px; }
  .dz-worry-card img { height: 122px; }
  .dz-worry-card h3 { margin: 14px 14px 6px; }
  .dz-worry-card p { margin: 0 14px 18px; }
  .dz-voice-cards { grid-template-columns: 1fr; }
  .dz-reviews-link { position: static; display: inline-block; margin-top: 10px; }
  .dz-reviews-head { flex-direction: column; gap: 6px; }
  .dz-cta-band, .dz-final-box { padding: 24px; }
  .dz-cta-band { flex-direction: column; align-items: stretch; text-align: center; }
  .dz-cta-actions { justify-content: center; }
  .dz-price-row .val { flex: 0 0 130px; padding: 16px; }
  /* モバイル固定CTA */
  .dz-mobile-cta {
    display: flex; position: fixed; bottom: 0; left: 0; right: 0; z-index: 90;
    background: rgba(255,255,255,0.96); border-top: 1px solid var(--dz-border);
    padding: 8px; gap: 8px; box-shadow: 0 -4px 16px rgba(60,60,40,0.08);
  }
  .dz-mobile-cta a {
    flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: 7px;
    padding: 13px; border-radius: 9px; font-size: 14px; font-weight: 600; text-decoration: none;
  }
  .dz-mobile-cta .m-line { background: var(--dz-sage); color: #fff; }
  .dz-mobile-cta .m-tel { background: #fff; color: #45453d; border: 1px solid #d9d4c7; }
  .dz-page { padding-bottom: 64px; }
  .dz-flow-step { flex: 0 0 44%; }
}

/* =========================================================
   忠実度フィックス（元デザイン .dc.html の実値に合わせる）
   - id 指定でセクション個別の余白を上書き（base/responsive より優先）
   ========================================================= */
/* B1: 院長・院について の上パディングは 56px（他セクションは 64px） */
#director.dz-section, #clinic.dz-section { padding-top: 56px; }
/* B2: 見出し下マージンをデザインのセクション別実値へ */
#reason .dz-section-title { margin-bottom: 46px; }   /* 選ばれる理由 */
#flow   .dz-section-title { margin-bottom: 48px; }   /* 施術の流れ */
#price  .dz-section-title,
#faq    .dz-section-title,
#access .dz-section-title { margin-bottom: 40px; }   /* 料金・FAQ・アクセス */

/* =========================================================
   2026-06-17 タイポ可読性 ＋ CTA奥行き ＋ 見出しアクセント（レビュー反映）
   ========================================================= */
/* 本文：薄グレー・小さすぎを是正（濃度UP＋サイズUP） */
.dz-hero-sub { font-size: 17px; color: #54504a; }
.dz-worry-card p { font-size: 15px; color: #5a5852; }
.dz-worry-card h3 { font-size: 19px; color: #38382f; }
.dz-reason-body { font-size: 16px; line-height: 2; color: #56544d; }
.dz-voice-card p { font-size: 15px; color: #58564f; }
.dz-director-msg blockquote { font-size: 16px; color: #53514a; }
.dz-about-body p { font-size: 16px; color: #56544d; }
.dz-flow-step p { font-size: 15px; color: #55534c; }
.dz-faq-answer { font-size: 15.5px; color: #5a584f; }
.dz-faq-item summary { font-size: 15.5px; color: #3c3c36; }   /* 質問は濃く */
.dz-info-row .v { font-size: 14px; color: #3f3e38; }          /* 店舗情報の値を濃く */

/* 見出し下の短いアクセント線（セージ・控えめ） */
.dz-section-title::after,
.dz-block-title::after,
.dz-reviews-head h2::after {
  content: ""; display: block; width: 100%; height: 2px; border-radius: 2px;
  background: var(--dz-sage); opacity: 0.5; margin: 16px auto 0;
}

/* CTA：のっぺり解消＝奥行き（枠＋影＋微グラデ）＋主ボタン焦点化 */
.dz-cta-band, .dz-final-box {
  background: linear-gradient(180deg, #fbfaf6 0%, #f2f0e8 100%);
  border: 1px solid #ebe7db;
  box-shadow: 0 8px 26px rgba(60,60,40,0.08);
}
.dz-cta-band { padding: 32px 44px; border-radius: 18px; }
.dz-cta-lead { font-size: 22px; }
.dz-btn-line { box-shadow: 0 6px 16px rgba(111,124,77,0.18); }

/* =========================================================
   FAQバンク（動的・build_faq_bank_html の .faq-stack/.faq-row）を新デザイン調に
   ========================================================= */
.dz-faq-wrap .faq-stack { }
.dz-faq-wrap .faq-row { border-top: 1px solid var(--dz-border); }
.dz-faq-wrap .faq-row:last-child { border-bottom: 1px solid var(--dz-border); }
.dz-faq-wrap .faq-row > summary {
  list-style: none; cursor: pointer; display: flex; align-items: center; gap: 12px;
  padding: 20px 8px; font-size: 15.5px; color: #3c3c36; font-weight: 500;
}
.dz-faq-wrap .faq-row > summary::-webkit-details-marker { display: none; }
.dz-faq-wrap .faq-row > summary > span:nth-child(2) { flex: 1; }
.dz-faq-wrap .faq-q-mark {
  font-family: var(--dz-serif); font-size: 17px; font-weight: 700; color: var(--dz-sage);
  width: 18px; flex-shrink: 0; text-align: center;
}
.dz-faq-wrap .faq-priority-badge {
  font-size: 11px; color: var(--dz-sage-ink); background: var(--dz-sage-soft);
  border: 1px solid var(--dz-sage-border); border-radius: 999px; padding: 3px 11px; flex-shrink: 0;
}
.dz-faq-wrap .faq-row > summary::after {
  content: '＋'; font-size: 21px; color: #9a958a; width: 18px; text-align: center; flex-shrink: 0;
}
.dz-faq-wrap .faq-row[open] > summary::after { content: '−'; }
.dz-faq-wrap .faq-a { display: flex; gap: 12px; padding: 0 8px 22px; }
.dz-faq-wrap .faq-a-mark {
  font-family: var(--dz-serif); font-size: 17px; font-weight: 700; color: #bd9667;
  width: 18px; flex-shrink: 0; text-align: center;
}
.dz-faq-wrap .faq-a p { margin: 0; font-size: 15.5px; line-height: 1.95; color: #5a584f; }
