/* ============================================================
   予防歯科 v2 ページ専用CSS
   ============================================================ */

/* HERO */
.prev2-hero {
  position: relative;
  margin-top: 72px;
  padding: 4rem 0 3rem;
  background: linear-gradient(180deg, #A8DAEF 0%, #C7E6F2 40%, #E8F4FA 80%, #FFFAF0 100%);
  overflow: hidden;
  text-align: center;
}
.prev2-hero-inner {
  position: relative;
  z-index: 5;
  max-width: 1000px;
  margin: 0 auto;
  padding: 0 1.5rem;
}
.prev2-cloud {
  position: absolute;
  background: #fff;
  border-radius: 50%;
  filter: blur(2px);
  pointer-events: none;
  z-index: 1;
  animation: prev2-cloud-drift 18s ease-in-out infinite;
}
.prev2-cloud-1 { top: 10%; left: -6%; width: 260px; height: 110px; opacity: 0.7; }
.prev2-cloud-2 { top: 50%; right: -5%; width: 220px; height: 90px; opacity: 0.55; animation-delay: -4s; }
.prev2-cloud-3 { bottom: 16%; left: 12%; width: 200px; height: 80px; opacity: 0.5; animation-delay: -8s; }
.prev2-cloud-4 { top: 28%; left: 40%; width: 160px; height: 70px; opacity: 0.5; animation-delay: -12s; }
@keyframes prev2-cloud-drift {
  0%, 100% { transform: translateX(0); }
  50%      { transform: translateX(30px); }
}
.prev2-deco {
  position: absolute;
  z-index: 2;
  filter: drop-shadow(0 4px 8px rgba(80,130,170,0.18));
}
.prev2-deco-star1 { width: 36px; height: 36px; top: 18%; right: 14%; color: #FFCB47; animation: twinkle 2s ease-in-out infinite; }
.prev2-deco-star2 { width: 28px; height: 28px; bottom: 18%; left: 14%; color: #FF8FA0; animation: twinkle 2.4s ease-in-out infinite 0.6s; }
.prev2-deco-leaf { width: 36px; height: 36px; top: 56%; left: 6%; color: #6DCFB0; animation: prev2-cloud-drift 9s ease-in-out infinite; }
.prev2-deco-heart { width: 24px; height: 24px; top: 24%; left: 22%; color: #FF9874; animation: heart-bounce 2.2s ease-in-out infinite; }
@keyframes twinkle {
  0%, 100% { opacity: 0.6; transform: scale(0.9) rotate(-10deg); }
  50% { opacity: 1; transform: scale(1.15) rotate(15deg); }
}
@keyframes heart-bounce {
  0%, 100% { transform: scale(1) translateY(0); }
  50% { transform: scale(1.15) translateY(-6px); }
}

.prev2-eyebrow {
  display: inline-block;
  font-family: 'Cormorant Garamond', 'Noto Serif JP', serif;
  font-style: italic;
  font-size: 1.1rem;
  letter-spacing: 0.16em;
  color: var(--pop-pink);
  background: rgba(255,255,255,0.7);
  padding: 0.4rem 1.2rem;
  border-radius: 999px;
  margin-bottom: 1rem;
  font-weight: 600;
}
.prev2-title {
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-size: clamp(2.5rem, 6vw, 4rem);
  font-weight: 900;
  letter-spacing: 0.06em;
  line-height: 1.2;
  margin: 0.4rem 0 1rem;
  text-shadow: 0 3px 12px rgba(255,255,255,0.7);
}
.prev2-title .ch {
  display: inline-block;
  animation: h1-ch-bounce 2.2s ease-in-out infinite;
  transform-origin: center bottom;
}
.prev2-title .ch-1 { color: #FF8FA0; animation-delay: 0s; }
.prev2-title .ch-2 { color: #FFCB47; animation-delay: 0.12s; }
.prev2-title .ch-3 { color: #6DCFB0; animation-delay: 0.24s; }
.prev2-title .ch-4 { color: #FF9874; animation-delay: 0.36s; }
.prev2-sub {
  display: inline-block;
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-size: 1.1rem;
  font-weight: 800;
  color: var(--pop-text);
  background: #fff;
  padding: 0.6rem 1.4rem;
  border-radius: 999px;
  margin-top: 0.5rem;
  box-shadow: 0 6px 16px rgba(0,0,0,0.1);
  letter-spacing: 0.04em;
}
.prev2-sub strong {
  color: var(--pop-pink);
  font-size: 1.2em;
  position: relative;
}
.prev2-sub strong::after {
  content: '';
  position: absolute;
  left: -2px; right: -2px; bottom: 0;
  height: 10px;
  background: var(--pop-yellow);
  opacity: 0.55;
  z-index: -1;
  border-radius: 5px;
}
.prev2-crumb {
  font-size: 0.82rem;
  color: var(--pop-text-mid);
  margin-top: 1.2rem;
  letter-spacing: 0.04em;
}
.prev2-crumb a { color: var(--pop-pink); text-decoration: none; font-weight: 700; }
.prev2-crumb span { margin: 0 0.4rem; opacity: 0.5; }

/* セクション共通 */
.prev2-head { text-align: center; margin-bottom: 3rem; }
.prev2-h2 {
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-size: clamp(1.7rem, 3vw, 2.4rem);
  font-weight: 900;
  line-height: 1.4;
  color: var(--pop-text);
  margin: 0.5rem 0 0.8rem;
  letter-spacing: 0.04em;
}
.prev2-h2 em {
  position: relative;
  font-style: normal;
  color: var(--pop-pink);
  font-family: 'Noto Serif JP', serif;
  font-weight: 700;
}
.prev2-h2 em::after {
  content: '';
  position: absolute;
  left: -2px; right: -2px; bottom: 1px;
  height: 12px;
  background: var(--pop-yellow);
  opacity: 0.6;
  z-index: -1;
  border-radius: 6px;
}
.prev2-h2-sub {
  font-size: 0.95rem;
  color: var(--pop-text-mid);
  margin: 0;
  font-weight: 600;
}

/* イントロ(枠なしフルワイド) */
.prev2-intro-wide {
  position: relative;
  padding: 6rem 1.5rem;
  background: #fff;
  text-align: center;
  overflow: hidden;
}
.prev2-intro-bg-stripe {
  position: absolute;
  top: 50%; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent 0%, var(--pop-pink-light) 30%, var(--pop-pink-light) 70%, transparent 100%);
  pointer-events: none;
}
.prev2-intro-wide-inner {
  position: relative;
  max-width: 900px;
  margin: 0 auto;
}
.prev2-intro-en {
  font-family: 'Cormorant Garamond', serif;
  font-style: italic;
  font-size: 1.15rem;
  letter-spacing: 0.22em;
  color: var(--pop-pink);
  font-weight: 600;
  margin-bottom: 1.5rem;
}
.prev2-intro-h2-wide {
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-size: clamp(1.9rem, 3.8vw, 3rem);
  font-weight: 900;
  line-height: 1.5;
  color: var(--pop-text);
  margin: 0 0 2rem;
  letter-spacing: 0.04em;
}
.prev2-intro-h2-wide .line { display: block; }
.prev2-intro-h2-wide em {
  position: relative;
  font-style: normal;
  color: var(--pop-pink);
  font-family: 'Noto Serif JP', serif;
  font-weight: 700;
}
.prev2-intro-h2-wide em::after {
  content: '';
  position: absolute;
  left: -2px; right: -2px; bottom: 2px;
  height: 16px;
  background: var(--pop-yellow);
  opacity: 0.55;
  z-index: -1;
  border-radius: 8px;
}
.prev2-intro-body-wide {
  font-size: 1.05rem;
  line-height: 2.1;
  color: var(--pop-text-mid);
  margin: 0 0 2.5rem;
  max-width: 700px;
  margin-left: auto;
  margin-right: auto;
}
.prev2-intro-pull {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(1.2rem, 2.2vw, 1.6rem);
  font-weight: 600;
  color: var(--pop-text);
  margin: 0;
  letter-spacing: 0.04em;
  line-height: 1.5;
}
.prev2-intro-pull strong {
  color: var(--pop-pink);
  font-weight: 800;
}
.pull-mark {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.8em;
  color: var(--pop-pink);
  vertical-align: middle;
  line-height: 0;
  margin: 0 0.1em;
  font-weight: 700;
}

/* 旧カード型(レガシー保持) */
.prev2-intro {
  padding: 5rem 0;
  background: #fff;
  position: relative;
}
.prev2-intro-card {
  max-width: 760px;
  margin: 0 auto;
  text-align: center;
  background: linear-gradient(135deg, #FFF8FA 0%, #FFFDF5 100%);
  border: 3px dashed var(--pop-pink-light);
  border-radius: 28px;
  padding: 2.5rem 2rem;
  position: relative;
}
.prev2-intro-card::before {
  content: '🌱';
  position: absolute;
  top: -24px; left: 50%;
  transform: translateX(-50%);
  width: 48px; height: 48px;
  background: #fff;
  border: 3px solid var(--pop-pink);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 1.6rem;
  animation: heart-bounce 2.6s ease-in-out infinite;
}
.prev2-intro-en {
  font-family: 'Cormorant Garamond', serif;
  font-style: italic;
  font-size: 1rem;
  letter-spacing: 0.18em;
  color: var(--pop-pink);
  font-weight: 600;
  margin-bottom: 0.6rem;
}
.prev2-intro-h2 {
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-size: clamp(1.6rem, 2.8vw, 2.2rem);
  font-weight: 900;
  line-height: 1.5;
  color: var(--pop-text);
  margin-bottom: 1.2rem;
}
.prev2-intro-h2 em {
  font-style: normal;
  color: var(--pop-pink);
  font-family: 'Noto Serif JP', serif;
  position: relative;
}
.prev2-intro-h2 em::after {
  content: '';
  position: absolute;
  left: -2px; right: -2px; bottom: 2px;
  height: 14px;
  background: var(--pop-yellow);
  opacity: 0.65;
  z-index: -1;
  border-radius: 6px;
}
.prev2-intro-body {
  font-size: 1rem;
  line-height: 2;
  color: var(--pop-text-mid);
  margin-bottom: 1.2rem;
}
.prev2-intro-em {
  display: inline-block;
  padding: 0.7rem 1.3rem;
  background: rgba(255,203,71,0.4);
  border-radius: 12px;
  font-weight: 800;
  color: var(--pop-text);
  font-size: 1.05rem;
}

/* Benefits */
.prev2-benefits {
  padding: 5rem 0;
  background: #fff;
}
.prev2-benefit-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.4rem;
  max-width: 1180px;
  margin: 0 auto;
}
.prev2-benefit {
  position: relative;
  background: #fff;
  padding: 2.5rem 1.4rem 1.6rem;
  border-radius: 22px;
  border: 3px solid var(--pop-pink-light);
  text-align: center;
  transition: transform 0.4s ease, box-shadow 0.4s ease, border-color 0.4s ease;
  overflow: hidden;
}
.prev2-benefit[data-color="yellow"] { border-color: var(--pop-yellow-light); }
.prev2-benefit[data-color="coral"] { border-color: var(--pop-coral-light); }
.prev2-benefit[data-color="mint"] { border-color: var(--pop-mint-light); }
.prev2-benefit::before {
  content: '';
  position: absolute;
  top: -28px; right: -28px;
  width: 90px; height: 90px;
  background: rgba(255,143,160,0.12);
  border-radius: 50%;
}
.prev2-benefit[data-color="yellow"]::before { background: rgba(255,203,71,0.16); }
.prev2-benefit[data-color="coral"]::before { background: rgba(255,152,116,0.14); }
.prev2-benefit[data-color="mint"]::before { background: rgba(109,207,176,0.14); }
.prev2-benefit:hover {
  transform: translateY(-6px) rotate(-1deg);
  box-shadow: 0 20px 36px rgba(0,0,0,0.1);
  border-color: var(--pop-pink);
}
.prev2-benefit[data-color="yellow"]:hover { border-color: var(--pop-yellow); }
.prev2-benefit[data-color="coral"]:hover { border-color: var(--pop-coral); }
.prev2-benefit[data-color="mint"]:hover { border-color: var(--pop-mint); }
.prev2-benefit-num {
  position: absolute;
  top: 0.7rem; left: 0.9rem;
  font-family: 'Cormorant Garamond', serif;
  font-style: italic;
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--pop-pink);
  z-index: 1;
}
.prev2-benefit[data-color="yellow"] .prev2-benefit-num { color: #C18A00; }
.prev2-benefit[data-color="coral"] .prev2-benefit-num { color: #E07550; }
.prev2-benefit[data-color="mint"] .prev2-benefit-num { color: #4AB48F; }
.prev2-benefit-icon {
  width: 70px; height: 70px;
  border-radius: 50%;
  background: var(--pop-pink-light);
  color: var(--pop-pink);
  display: flex; align-items: center; justify-content: center;
  margin: 0 auto 1rem;
  position: relative;
  z-index: 1;
  animation: heart-bounce 3.4s ease-in-out infinite;
}
.prev2-benefit[data-color="yellow"] .prev2-benefit-icon { background: var(--pop-yellow-light); color: #C18A00; animation-delay: 0.3s; }
.prev2-benefit[data-color="coral"] .prev2-benefit-icon { background: var(--pop-coral-light); color: #E07550; animation-delay: 0.6s; }
.prev2-benefit[data-color="mint"] .prev2-benefit-icon { background: var(--pop-mint-light); color: #4AB48F; animation-delay: 0.9s; }
.prev2-benefit-icon svg { width: 36px; height: 36px; }
.prev2-benefit h3 {
  font-size: 1rem;
  font-weight: 800;
  color: var(--pop-text);
  margin-bottom: 0.6rem;
  line-height: 1.5;
  position: relative;
  z-index: 1;
}
.prev2-benefit p {
  font-size: 0.85rem;
  line-height: 1.75;
  color: var(--pop-text-mid);
  margin: 0;
  position: relative;
  z-index: 1;
}

/* 1ミリチャレンジ */
.prev2-1mm {
  position: relative;
  padding: 2.5rem 0 3rem;
  background: #fff;
  overflow: hidden;
}
.prev2-1mm-deco {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
  z-index: 0;
}
.prev2-1mm-deco-1 {
  top: 12%; right: 6%;
  width: 110px; height: 110px;
  background: rgba(255,203,71,0.25);
}
.prev2-1mm-deco-2 {
  bottom: 16%; left: 6%;
  width: 130px; height: 130px;
  background: rgba(109,207,176,0.2);
}
.prev2-1mm .section-inner { position: relative; z-index: 1; }
.prev2-1mm-head { text-align: center; margin-bottom: 3rem; max-width: 800px; margin-left: auto; margin-right: auto; }
.prev2-1mm-title {
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-size: clamp(2rem, 4vw, 3.2rem);
  font-weight: 900;
  line-height: 1.35;
  margin: 0.8rem 0;
  color: var(--pop-text);
  letter-spacing: 0.04em;
}
.prev2-1mm-title .hl-line { display: block; }
.prev2-1mm-title em {
  position: relative;
  font-style: normal;
  color: var(--pop-pink);
  font-size: 1.3em;
  font-weight: 900;
  font-family: 'Noto Serif JP', serif;
  display: inline-block;
}
.prev2-1mm-title em::after {
  content: '';
  position: absolute;
  left: -3px; right: -3px; bottom: 3px;
  height: 18px;
  background: var(--pop-yellow);
  opacity: 0.7;
  z-index: -1;
  border-radius: 8px;
}
.prev2-1mm-sub {
  font-family: 'Klee One', 'Noto Serif JP', cursive;
  font-size: 1.3rem;
  color: #E5894F;
  margin-top: 0.6rem;
  font-weight: 600;
}
.prev2-1mm-sub strong { color: var(--pop-pink); font-weight: 700; }

.prev2-1mm-define {
  max-width: 720px;
  margin: 0 auto 3rem;
  padding: 1.6rem 1.8rem;
  background: #fff;
  border-radius: 18px;
  border: 3px dashed var(--pop-pink);
  text-align: center;
}
.prev2-1mm-q {
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-size: 1.2rem;
  font-weight: 800;
  color: var(--pop-pink);
  margin-bottom: 0.6rem;
}
.prev2-1mm-a {
  font-size: 1rem;
  line-height: 1.85;
  color: var(--pop-text);
  margin: 0;
}
.prev2-1mm-a strong { color: var(--pop-text); font-weight: 800; }

.prev2-1mm-pillars {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  max-width: 1080px;
  margin: 0 auto 3rem;
}
.prev2-1mm-pillar {
  position: relative;
  display: block;
  background: #fff;
  padding: 2rem 1.6rem 3.2rem;
  border-radius: 18px;
  border-top: 6px solid var(--pop-pink);
  box-shadow: 0 12px 28px rgba(0,0,0,0.08);
  transition: transform 0.4s ease, box-shadow 0.4s ease;
  text-decoration: none;
  color: inherit;
  cursor: pointer;
}
.prev2-1mm-pillar[data-color="yellow"] { border-top-color: var(--pop-yellow); }
.prev2-1mm-pillar[data-color="mint"] { border-top-color: var(--pop-mint); }
.prev2-1mm-pillar:hover {
  transform: translateY(-6px) rotate(-1deg);
  box-shadow: 0 18px 36px rgba(0,0,0,0.12);
}
.pillar-arrow {
  position: absolute;
  right: 1rem; bottom: 0.9rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px; height: 32px;
  border-radius: 50%;
  background: var(--pop-pink);
  color: #fff;
  font-weight: 900;
  font-size: 0.95rem;
  box-shadow: 0 6px 14px rgba(255,143,160,0.4);
  transition: transform 0.3s ease;
}
.prev2-1mm-pillar[data-color="yellow"] .pillar-arrow {
  background: var(--pop-yellow);
  color: var(--pop-text);
  box-shadow: 0 6px 14px rgba(255,203,71,0.45);
}
.prev2-1mm-pillar[data-color="mint"] .pillar-arrow {
  background: var(--pop-mint);
  box-shadow: 0 6px 14px rgba(109,207,176,0.4);
}
.prev2-1mm-pillar:hover .pillar-arrow { transform: translateX(4px); }
.prev2-1mm-pillar .pillar-en {
  display: block;
  font-family: 'Cormorant Garamond', serif;
  font-style: italic;
  font-size: 0.95rem;
  letter-spacing: 0.16em;
  color: var(--pop-pink);
  margin-bottom: 0.3rem;
}
.prev2-1mm-pillar[data-color="yellow"] .pillar-en { color: #C18A00; }
.prev2-1mm-pillar[data-color="mint"] .pillar-en { color: #4AB48F; }
.prev2-1mm-pillar h3 {
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-size: 1.25rem;
  font-weight: 900;
  color: var(--pop-text);
  margin-bottom: 0.7rem;
  letter-spacing: 0.04em;
}
.prev2-1mm-pillar p {
  font-size: 0.9rem;
  line-height: 1.85;
  color: var(--pop-text-mid);
  margin: 0;
}
.prev2-1mm-msg {
  max-width: 720px;
  margin: 0 auto;
  text-align: center;
}
.prev2-1mm-msg p:first-child {
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-size: 1.4rem;
  font-weight: 800;
  color: var(--pop-text);
  margin-bottom: 0.8rem;
}
.prev2-1mm-msg p:first-child strong {
  color: #E5894F;
  font-size: 1.4em;
  font-weight: 900;
}
.prev2-1mm-msg p:last-child {
  font-size: 0.95rem;
  line-height: 2;
  color: var(--pop-text-mid);
}
.prev2-1mm-msg p:last-child strong { color: var(--pop-pink); font-weight: 700; }

/* Flow タイムライン */
.prev2-flow {
  padding: 1.5rem 0 5rem;
  background: #fff;
}
.prev2-head-tight {
  margin-top: 0 !important;
  padding-top: 0 !important;
}
.prev2-head-tight .prev2-h2 { margin-top: 0; }
.prev2-flow-timeline {
  position: relative;
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 1.4rem;
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 1rem 100px;
}
.prev2-flow-line {
  position: absolute;
  top: 60px; left: 6%; right: 6%;
  height: 140px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 140' preserveAspectRatio='none'%3E%3Cpath d='M0,40 C100,40 100,100 200,100 C300,100 300,40 400,40 C500,40 500,100 600,100 C700,100 700,40 800,40 C900,40 900,100 1000,100 C1100,100 1100,40 1200,40' stroke='%23FF8FA0' stroke-width='4' stroke-dasharray='10 8' stroke-linecap='round' fill='none'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-size: 100% 100%;
  z-index: 0;
  pointer-events: none;
  animation: prev2-rail-float 6s ease-in-out infinite;
}
@keyframes prev2-rail-float {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-4px); }
}

/* ジグザグ配置: Ch.02, Ch.04, Ch.06(親の3,5,7番目)を下にずらす */
.prev2-flow-station:nth-child(2n+1) {
  margin-top: 100px;
}
.prev2-flow-station {
  position: relative;
  z-index: 1;
  text-align: center;
  display: flex; flex-direction: column;
  align-items: center;
  animation: prev2-bob 4s ease-in-out infinite;
}
.prev2-flow-station:nth-child(2) { animation-delay: 0s; }
.prev2-flow-station:nth-child(3) { animation-delay: 0.3s; }
.prev2-flow-station:nth-child(4) { animation-delay: 0.6s; }
.prev2-flow-station:nth-child(5) { animation-delay: 0.9s; }
.prev2-flow-station:nth-child(6) { animation-delay: 1.2s; }
.prev2-flow-station:nth-child(7) { animation-delay: 1.5s; }
@keyframes prev2-bob {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-6px); }
}
.prev2-flow-photo {
  width: 100%;
  aspect-ratio: 1;
  overflow: hidden;
  border-radius: 16px;
  border: 4px solid #fff;
  box-shadow: 0 8px 18px rgba(0,0,0,0.1);
  margin-bottom: 0.8rem;
}
.prev2-flow-photo img {
  width: 100%; height: 100%;
  object-fit: cover;
}
.prev2-flow-dot {
  width: 44px; height: 44px;
  border-radius: 50%;
  background: var(--pop-pink);
  color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-size: 1rem;
  font-weight: 900;
  margin-bottom: 0.7rem;
  border: 3px solid #fff;
  box-shadow: 0 6px 14px rgba(255,143,160,0.4);
}
.prev2-flow-station:nth-child(3) .prev2-flow-dot { background: var(--pop-mint); box-shadow: 0 6px 14px rgba(109,207,176,0.4); }
.prev2-flow-station:nth-child(4) .prev2-flow-dot { background: var(--pop-yellow); color: var(--pop-text); box-shadow: 0 6px 14px rgba(255,203,71,0.4); }
.prev2-flow-station:nth-child(5) .prev2-flow-dot { background: var(--pop-coral); box-shadow: 0 6px 14px rgba(255,152,116,0.4); }
.prev2-flow-station:nth-child(6) .prev2-flow-dot { background: var(--pop-sky); box-shadow: 0 6px 14px rgba(141,200,226,0.4); }
.prev2-flow-station:nth-child(7) .prev2-flow-dot { background: #B69EE6; box-shadow: 0 6px 14px rgba(182,158,230,0.4); }
.prev2-flow-station h4 {
  font-size: 0.95rem;
  font-weight: 800;
  color: var(--pop-text);
  margin-bottom: 0.3rem;
  line-height: 1.4;
}
.prev2-flow-station p {
  font-size: 0.78rem;
  color: var(--pop-text-mid);
  line-height: 1.6;
  margin: 0;
}

/* 一緒に高めていく ジャーニー演出 */
.prev2-h2-time {
  display: inline-block;
  margin-left: 0.6rem;
  padding: 0.15rem 0.7rem;
  background: var(--pop-pink-light, #FFE5EA);
  color: var(--pop-text-mid);
  font-size: 0.78rem;
  font-weight: 700;
  border-radius: 999px;
  vertical-align: middle;
}
.prev2-flow-chapter {
  order: -1;
  display: inline-block;
  margin-bottom: 0.7rem;
  padding: 0.2rem 0.7rem;
  background: #fff;
  border: 2px solid var(--pop-pink);
  color: var(--pop-pink);
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-size: 0.72rem;
  font-weight: 800;
  border-radius: 999px;
  letter-spacing: 0.04em;
  white-space: nowrap;
}
.prev2-flow-station:nth-child(3) .prev2-flow-chapter { border-color: var(--pop-mint); color: var(--pop-mint); }
.prev2-flow-station:nth-child(4) .prev2-flow-chapter { border-color: #D4A100; color: #D4A100; }
.prev2-flow-station:nth-child(5) .prev2-flow-chapter { border-color: var(--pop-coral); color: var(--pop-coral); }
.prev2-flow-station:nth-child(6) .prev2-flow-chapter { border-color: var(--pop-sky); color: #4FA3C7; }
.prev2-flow-station:nth-child(7) .prev2-flow-chapter { border-color: #B69EE6; color: #8B6FD6; }
.prev2-flow-chapter-hi {
  background: linear-gradient(135deg, var(--pop-yellow) 0%, #FFD777 100%) !important;
  border-color: transparent !important;
  color: var(--pop-text) !important;
  box-shadow: 0 4px 12px rgba(255,203,71,0.45);
  animation: prev2-chapter-pulse 2s ease-in-out infinite;
}
@keyframes prev2-chapter-pulse {
  0%, 100% { transform: scale(1); }
  50%      { transform: scale(1.06); }
}
.prev2-flow-closing {
  max-width: 760px;
  margin: 3.2rem auto 0;
  padding: 1.6rem 1.8rem;
  background: linear-gradient(135deg, #FFF5F0 0%, #FFF9E6 100%);
  border-radius: 20px;
  text-align: center;
  border: 2px dashed var(--pop-pink-light, #FFE5EA);
}
.prev2-flow-closing-text {
  font-size: 0.98rem;
  line-height: 2;
  color: var(--pop-text);
  margin: 0;
  font-weight: 600;
}
.prev2-flow-closing-text strong {
  color: var(--pop-pink);
  font-weight: 900;
  font-size: 1.1em;
}

/* ============================================================
   ここを見ます! チェックポイント一覧
   ============================================================ */
.prev2-1mm-watch {
  max-width: 1080px;
  margin: 3.5rem auto 0;
  padding: 2.4rem 1.6rem 2.4rem;
  background: #fff;
  border-radius: 28px;
  box-shadow: 0 18px 40px rgba(80, 130, 170, 0.12);
  position: relative;
  z-index: 1;
}
.watch-head {
  text-align: center;
  margin-bottom: 2rem;
}
.watch-tag {
  display: inline-block;
  padding: 0.3rem 1rem;
  background: linear-gradient(135deg, var(--pop-pink) 0%, #FF9874 100%);
  color: #fff;
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-size: 0.8rem;
  font-weight: 900;
  letter-spacing: 0.14em;
  border-radius: 999px;
  box-shadow: 0 6px 14px rgba(255,143,160,0.35);
}
.watch-h {
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-size: clamp(1.4rem, 2.4vw, 1.9rem);
  font-weight: 900;
  color: var(--pop-text);
  line-height: 1.4;
  margin: 0.9rem 0 0.8rem;
  letter-spacing: 0.02em;
}
.watch-here {
  position: relative;
  display: inline-block;
  color: var(--pop-pink);
  font-size: 1.18em;
}
.watch-here::after {
  content: '';
  position: absolute;
  left: -4px; right: -4px; bottom: 4px;
  height: 12px;
  background: var(--pop-yellow);
  opacity: 0.7;
  z-index: -1;
  border-radius: 6px;
}
.watch-lead {
  font-size: 0.95rem;
  line-height: 1.95;
  color: var(--pop-text-mid);
  margin: 0;
}
.watch-lead strong {
  color: var(--pop-pink);
  font-weight: 800;
}
.watch-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
  margin-bottom: 1.6rem;
}
.watch-card {
  position: relative;
  padding: 1.4rem 1.1rem 1.2rem;
  background: #FFFAF6;
  border-radius: 18px;
  border: 2px solid transparent;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.watch-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 28px rgba(80, 130, 170, 0.15);
}
.watch-card-wide { grid-column: span 2; background: #F4FBFE; }
.watch-card[data-watch-color="pink"]   { border-color: var(--pop-pink); color: var(--pop-pink); background: #FFF5F7; }
.watch-card[data-watch-color="coral"]  { border-color: var(--pop-coral); color: var(--pop-coral); background: #FFF6F2; }
.watch-card[data-watch-color="yellow"] { border-color: var(--pop-yellow); color: #D4A100; background: #FFFBEE; }
.watch-card[data-watch-color="mint"]   { border-color: var(--pop-mint); color: var(--pop-mint); background: #F2FBF7; }
.watch-card[data-watch-color="sky"]    { border-color: var(--pop-sky); color: #4FA3C7; background: #F2F9FD; }

.watch-card-hi {
  box-shadow: 0 14px 32px rgba(255,203,71,0.35);
}
.watch-card-hi::before {
  content: '★ 1ミリ原点';
  position: absolute;
  top: -12px; right: 14px;
  padding: 0.18rem 0.7rem;
  background: linear-gradient(135deg, var(--pop-yellow) 0%, #FFD777 100%);
  color: var(--pop-text);
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-size: 0.7rem;
  font-weight: 900;
  letter-spacing: 0.06em;
  border-radius: 999px;
  box-shadow: 0 4px 10px rgba(255,203,71,0.45);
}

.watch-num {
  position: absolute;
  top: 0.9rem; right: 1.1rem;
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.5rem;
  font-weight: 700;
  color: currentColor;
  opacity: 0.5;
  line-height: 1;
}
.watch-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px; height: 44px;
  border-radius: 12px;
  background: #fff;
  margin-bottom: 0.7rem;
  box-shadow: 0 4px 10px rgba(0,0,0,0.06);
}
.watch-icon svg { width: 28px; height: 28px; }
.watch-card h4 {
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-size: 1.05rem;
  font-weight: 800;
  color: var(--pop-text);
  margin: 0 0 0.4rem;
  line-height: 1.4;
}
.watch-unit {
  font-size: 0.75em;
  color: var(--pop-text-mid);
  font-weight: 700;
  margin-left: 0.2rem;
}
.watch-card p {
  font-size: 0.82rem;
  line-height: 1.7;
  color: var(--pop-text-mid);
  margin: 0;
}
.watch-card p strong {
  color: currentColor;
  font-weight: 800;
}

.watch-summary {
  position: relative;
  padding: 1.6rem 1.4rem 1.4rem;
  background: linear-gradient(135deg, #FFF5F0 0%, #FFF9E6 100%);
  border-radius: 18px;
  text-align: center;
  border: 2px dashed var(--pop-pink-light, #FFE5EA);
}
.watch-summary-tag {
  display: inline-block;
  padding: 0.18rem 0.9rem;
  background: var(--pop-pink);
  color: #fff;
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.1em;
  border-radius: 999px;
  margin-bottom: 0.6rem;
}
.watch-summary-h {
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-size: 1.6rem;
  font-weight: 900;
  color: var(--pop-pink);
  margin: 0 0 0.6rem;
  letter-spacing: 0.05em;
}
.watch-summary p {
  font-size: 0.95rem;
  line-height: 1.9;
  color: var(--pop-text);
  margin: 0;
  font-weight: 600;
}
.watch-summary p strong {
  color: var(--pop-pink);
  font-weight: 900;
}

@media (max-width: 980px) {
  .watch-grid { grid-template-columns: repeat(2, 1fr); }
  .watch-card-wide { grid-column: span 2; }
}
@media (max-width: 560px) {
  .watch-grid { grid-template-columns: 1fr; }
  .watch-card-wide { grid-column: span 1; }
  .prev2-1mm-watch { padding: 1.8rem 1rem; border-radius: 22px; }
}

/* Before/After */
.prev2-ba {
  padding: 0.2rem 0 5rem;
  background: #fff;
}
.prev2-head-ba { margin-top: 0; padding-top: 0; }
.prev2-ba-title-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.2rem;
  flex-wrap: wrap;
}
.prev2-ba-title-row .prev2-h2 { margin: 0; }
.prev2-ba-title-row::before {
  content: '';
  display: block;
  width: 120px;
  flex-shrink: 0;
  visibility: hidden;
}
@media (max-width: 560px) {
  .prev2-ba-title-row::before { display: none; }
}
.prev2-ba-toothbrush {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 120px; height: 120px;
  flex-shrink: 0;
  background: linear-gradient(135deg, #FFF5F0 0%, #FFFBEE 100%);
  border-radius: 50%;
  box-shadow: 0 12px 26px rgba(255,143,160,0.28);
  animation: tb-wobble 2.6s ease-in-out infinite;
}
.prev2-ba-toothbrush svg { width: 72%; height: 72%; }
@keyframes tb-wobble {
  0%, 100% { transform: rotate(-6deg) translateY(0); }
  50%      { transform: rotate(6deg) translateY(-4px); }
}
@media (max-width: 560px) {
  .prev2-ba-toothbrush { width: 92px; height: 92px; }
}
.prev2-ba-grid {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 1.5rem;
  align-items: center;
  max-width: 900px;
  margin: 0 auto;
}
.prev2-ba-fig {
  position: relative;
  margin: 0;
  background: #fff;
  border-radius: 16px;
  padding: 14px;
  box-shadow: 0 12px 28px rgba(0,0,0,0.1);
}
.prev2-ba-fig img {
  width: 100%;
  border-radius: 8px;
  display: block;
}
.prev2-ba-tag {
  position: absolute;
  top: -14px; left: 14px;
  padding: 0.4rem 1rem;
  font-weight: 900;
  font-size: 0.85rem;
  letter-spacing: 0.12em;
  border-radius: 999px;
}
.prev2-ba-tag-before { background: #888; color: #fff; }
.prev2-ba-tag-after { background: var(--pop-mint); color: #fff; }
.prev2-ba-fig figcaption {
  margin-top: 0.85rem;
  text-align: center;
  font-size: 0.92rem;
  color: var(--pop-text);
  font-weight: 600;
}
.prev2-ba-fig figcaption strong {
  color: var(--pop-pink);
  font-weight: 900;
  font-size: 1.2em;
}
.prev2-ba-tag-after ~ img + figcaption strong { color: var(--pop-mint); }
.prev2-ba-arrow {
  font-size: 2rem;
  font-weight: 900;
  color: var(--pop-pink);
  animation: prev2-arrow-pulse 1.6s ease-in-out infinite;
}
@keyframes prev2-arrow-pulse {
  0%, 100% { transform: translateX(0); }
  50%      { transform: translateX(8px); }
}
.prev2-ba-note {
  text-align: center;
  font-size: 0.78rem;
  color: var(--pop-text-mid);
  margin-top: 1.2rem;
}

/* Before/After 意識の変化メッセージ */
.prev2-ba-message {
  max-width: 920px;
  margin: 2.8rem auto 0;
  padding: 2rem 1.8rem;
  background: linear-gradient(135deg, #FFF5F0 0%, #FFFBEE 50%, #F2FBF7 100%);
  border-radius: 24px;
  box-shadow: 0 14px 32px rgba(80, 130, 170, 0.1);
}
.prev2-ba-message-lead {
  text-align: center;
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-size: clamp(1.05rem, 2vw, 1.3rem);
  line-height: 1.7;
  color: var(--pop-text);
  margin: 0 0 1.6rem;
  font-weight: 700;
}
.prev2-ba-message-lead strong {
  color: var(--pop-pink);
  font-weight: 900;
}
.sp-br { display: none; }
@media (max-width: 560px) {
  .sp-br { display: inline; }
}
.prev2-ba-shift {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 1rem;
  align-items: stretch;
  margin-bottom: 1.6rem;
}
.ba-shift-item {
  padding: 1.2rem 1.2rem 1rem;
  background: #fff;
  border-radius: 16px;
  border: 2px solid transparent;
  position: relative;
}
.ba-shift-before { border-color: #D1D5DB; }
.ba-shift-after  { border-color: var(--pop-mint); background: #F2FBF7; }
.ba-shift-tag {
  display: inline-block;
  padding: 0.2rem 0.8rem;
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-size: 0.74rem;
  font-weight: 900;
  letter-spacing: 0.1em;
  border-radius: 999px;
  margin-bottom: 0.7rem;
}
.ba-shift-before .ba-shift-tag { background: #6B7280; color: #fff; }
.ba-shift-after .ba-shift-tag  { background: var(--pop-mint); color: #fff; }
.ba-shift-item p {
  margin: 0 0 0.4rem;
  font-size: 0.92rem;
  line-height: 1.7;
  color: var(--pop-text);
}
.ba-shift-item p:last-child { margin-bottom: 0; }
.ba-shift-item p strong {
  color: var(--pop-mint);
  font-weight: 900;
}
.ba-shift-before p { color: var(--pop-text-mid); }
.ba-shift-arrow {
  align-self: center;
  font-size: 1.8rem;
  font-weight: 900;
  color: var(--pop-pink);
  animation: prev2-arrow-pulse 1.6s ease-in-out infinite;
}
.prev2-ba-message-tail {
  text-align: center;
  font-size: 0.95rem;
  line-height: 1.95;
  color: var(--pop-text);
  margin: 0;
  padding-top: 1.2rem;
  border-top: 1px dashed rgba(255,143,160,0.4);
}
.prev2-ba-message-tail strong {
  color: var(--pop-pink);
  font-weight: 900;
}

@media (max-width: 700px) {
  .prev2-ba-shift { grid-template-columns: 1fr; }
  .ba-shift-arrow { transform: rotate(90deg); justify-self: center; }
}

/* Q&A セクション */
.prev2-faq {
  padding: 4rem 0 4rem;
  background: linear-gradient(180deg, #FFF9F5 0%, #FFFDF8 100%);
}
.prev2-faq-badge {
  display: inline-block;
  padding: 0.25rem 1rem;
  background: linear-gradient(135deg, var(--pop-pink) 0%, #FF9874 100%);
  color: #fff;
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-size: 0.8rem;
  font-weight: 900;
  letter-spacing: 0.16em;
  border-radius: 999px;
  margin-bottom: 0.7rem;
  box-shadow: 0 6px 14px rgba(255,143,160,0.35);
}
.prev2-faq-list {
  max-width: 820px;
  margin: 2.4rem auto 0;
  display: flex;
  flex-direction: column;
  gap: 0.9rem;
}
.prev2-faq-item {
  background: #fff;
  border-radius: 18px;
  border: 2px solid #FFE5EA;
  box-shadow: 0 8px 20px rgba(80, 130, 170, 0.08);
  overflow: hidden;
  transition: border-color 0.25s ease, box-shadow 0.25s ease;
}
.prev2-faq-item[open] {
  border-color: var(--pop-pink);
  box-shadow: 0 14px 30px rgba(255,143,160,0.18);
}
.prev2-faq-item summary {
  list-style: none;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 0.9rem;
  padding: 1rem 1.2rem;
  cursor: pointer;
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-weight: 800;
  color: var(--pop-text);
  font-size: 1rem;
  line-height: 1.5;
  user-select: none;
}
.prev2-faq-item summary::-webkit-details-marker { display: none; }
.faq-q {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px; height: 32px;
  background: var(--pop-pink);
  color: #fff;
  border-radius: 50%;
  font-family: 'Cormorant Garamond', serif;
  font-weight: 700;
  font-size: 1.1rem;
  flex-shrink: 0;
  box-shadow: 0 4px 10px rgba(255,143,160,0.35);
}
.faq-q-text { line-height: 1.55; }
.faq-toggle {
  position: relative;
  width: 22px; height: 22px;
  flex-shrink: 0;
}
.faq-toggle::before,
.faq-toggle::after {
  content: '';
  position: absolute;
  left: 50%; top: 50%;
  background: var(--pop-pink);
  border-radius: 2px;
  transition: transform 0.25s ease;
}
.faq-toggle::before {
  width: 14px; height: 3px;
  transform: translate(-50%, -50%);
}
.faq-toggle::after {
  width: 3px; height: 14px;
  transform: translate(-50%, -50%);
}
.prev2-faq-item[open] .faq-toggle::after {
  transform: translate(-50%, -50%) rotate(90deg);
  opacity: 0;
}
.faq-a-body {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.9rem;
  padding: 0 1.2rem 1.2rem 1.2rem;
  align-items: start;
}
.faq-a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px; height: 32px;
  background: var(--pop-mint);
  color: #fff;
  border-radius: 50%;
  font-family: 'Cormorant Garamond', serif;
  font-weight: 700;
  font-size: 1.1rem;
  flex-shrink: 0;
  box-shadow: 0 4px 10px rgba(109,207,176,0.35);
}
.faq-a-body p {
  margin: 0;
  font-size: 0.94rem;
  line-height: 1.95;
  color: var(--pop-text);
}
.faq-a-body p strong {
  color: var(--pop-pink);
  font-weight: 800;
}
@media (max-width: 560px) {
  .prev2-faq-item summary { font-size: 0.95rem; gap: 0.7rem; padding: 0.9rem 1rem; }
  .faq-q, .faq-a { width: 28px; height: 28px; font-size: 1rem; }
  .faq-a-body { gap: 0.7rem; padding: 0 1rem 1rem 1rem; }
  .faq-a-body p { font-size: 0.9rem; }
}

/* CTA */
.prev2-cta {
  padding: clamp(4rem,8vw,6.5rem) 1.5rem;
  background: linear-gradient(180deg, #FFFDF9 0%, #FBF6EE 100%);
}
.prev2-cta-box {
  max-width: 840px;
  margin: 0 auto;
  padding: clamp(3rem,6vw,4.6rem) clamp(1.6rem,4vw,3.2rem);
  background:
    radial-gradient(130% 100% at 50% 0%, #FFF6F0 0%, transparent 58%),
    radial-gradient(120% 120% at 100% 100%, #F1F9F4 0%, transparent 55%),
    linear-gradient(165deg, #FFFFFF 0%, #FFFAF3 100%);
  border-radius: 32px;
  text-align: center;
  border: 1px solid #F1E5D5;
  box-shadow: 0 34px 70px rgba(150,120,90,0.16), 0 10px 22px rgba(0,0,0,0.04);
  position: relative;
  overflow: hidden;
}
/* 上辺のパステルレインボー・アクセント */
.prev2-cta-box::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 5px;
  background: var(--mmc-rainbow);
}
/* やわらかな装飾ブロブ */
.prev2-cta-box::after {
  content: '';
  position: absolute;
  width: 260px; height: 260px; right: -90px; top: -90px;
  background: radial-gradient(circle, rgba(255,224,232,0.55), transparent 70%);
  filter: blur(8px);
  pointer-events: none;
}
.prev2-cta-box > * { position: relative; z-index: 1; }
.prev2-cta-box h2 {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(1.55rem, 3.4vw, 2.25rem);
  font-weight: 500;
  color: #3a342e;
  line-height: 1.65;
  margin-bottom: 1.2rem;
  letter-spacing: 0.05em;
}
.prev2-cta-box h2 em {
  position: relative;
  font-style: normal;
  color: #3a342e;
  font-weight: 600;
}
.prev2-cta-box h2 em::after {
  content: '';
  position: absolute;
  left: -2px; right: -2px; bottom: 0.06em;
  height: 0.34em;
  background: var(--mmc-rainbow);
  z-index: -1;
  border-radius: 4px;
}
.prev2-cta-box p {
  font-size: 1rem;
  color: #6b6258;
  line-height: 2;
  margin-bottom: 2rem;
}
.prev2-cta-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  background: linear-gradient(135deg, #E8C36E 0%, #C9A24C 100%);
  color: #fff;
  padding: 1.05rem 2.8rem;
  border-radius: 999px;
  text-decoration: none;
  font-family: 'Noto Serif JP', serif;
  font-weight: 600;
  font-size: 1.02rem;
  letter-spacing: 0.08em;
  box-shadow: 0 16px 30px rgba(201,162,76,0.32);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.prev2-cta-btn:hover {
  transform: translateY(-3px);
  box-shadow: 0 22px 40px rgba(201,162,76,0.46);
}

/* アクセス情報ブロック(予約CTAの代替) */
.prev2-cta-box--access { text-align: center; }
.prev2-cta-box--access h2 { margin-bottom: 1.8rem; }
.prev2-access { list-style: none; margin: 0 auto; padding: 0; display: grid; gap: 1rem; max-width: 540px; text-align: left; }
.prev2-access-item { display: flex; align-items: flex-start; gap: 1rem; padding: 1.1rem 1.3rem; background: rgba(255,255,255,0.72); border: 1px solid #F1E5D5; border-radius: 18px; }
.prev2-access-ico { flex: none; width: 48px; height: 48px; border-radius: 50%; background: #FBEFD9; color: #C9A24C; display: flex; align-items: center; justify-content: center; }
.prev2-access-ico svg { width: 24px; height: 24px; }
.prev2-access-tx { padding-top: 0.15rem; }
.prev2-access-lb { display: block; font-size: 0.76rem; font-weight: 700; letter-spacing: 0.1em; color: #a3927a; margin-bottom: 0.25rem; }
.prev2-access-tx p { font-size: 1.05rem; color: #3a342e; line-height: 1.6; margin: 0; font-weight: 600; }
.prev2-access-tx p small { display: inline-block; font-size: 0.8rem; color: #8a7f70; font-weight: 400; margin-top: 0.15rem; }
.prev2-access-tx a { color: #3a342e; text-decoration: none; }
.prev2-access-tx a:hover { text-decoration: underline; }


/* レスポンシブ */
@media (max-width: 1024px) {
  .prev2-benefit-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 980px) {
  .prev2-flow-timeline { grid-template-columns: repeat(3, 1fr); gap: 2rem 1.2rem; padding-bottom: 0; }
  .prev2-flow-line { display: none; }
  .prev2-flow-station:nth-child(2n+1) { margin-top: 0; }
  .prev2-1mm-pillars { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .prev2-benefit-grid { grid-template-columns: 1fr; }
  .prev2-flow-timeline { grid-template-columns: repeat(2, 1fr); }
  .prev2-ba-grid { grid-template-columns: 1fr; }
  .prev2-ba-arrow { transform: rotate(90deg); }
}

/* ============================================================
   1ミリチャレンジ "推し" デザイン
   ============================================================ */
.prev2-1mm-deco-3,
.prev2-1mm-deco-4 {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
  z-index: 0;
}
.prev2-1mm-deco-3 {
  top: 40%; left: 8%;
  width: 60px; height: 60px;
  background: rgba(255,143,160,0.18);
}
.prev2-1mm-deco-4 {
  top: 25%; right: 12%;
  width: 80px; height: 80px;
  background: rgba(141,200,226,0.15);
}
.prev2-1mm-spark {
  position: absolute;
  z-index: 1;
}
.prev2-1mm-spark.sp-1 { width: 30px; height: 30px; top: 8%; left: 14%; color: var(--pop-yellow); animation: twinkle 2s ease-in-out infinite; }
.prev2-1mm-spark.sp-2 { width: 26px; height: 26px; top: 22%; right: 8%; color: var(--pop-pink); animation: twinkle 2.4s ease-in-out infinite 0.6s; }
.prev2-1mm-spark.sp-3 { width: 24px; height: 24px; bottom: 18%; right: 14%; color: var(--pop-coral); animation: twinkle 2.6s ease-in-out infinite 1.2s; }

/* 推しバナー */
.prev2-1mm-banner {
  position: relative;
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 1.8rem;
  align-items: center;
  max-width: 1080px;
  margin: 0 auto 1.6rem;
  padding: 1.8rem 2.2rem 1.8rem 12rem;
  background: linear-gradient(135deg, #fff 0%, #FFF8FA 100%);
  border-radius: 20px;
  box-shadow: 0 14px 32px rgba(255,143,160,0.16);
  border: 2.5px solid var(--pop-pink-light);
  z-index: 2;
}
@media (max-width: 900px) {
  .prev2-1mm-banner { padding: 1.2rem 1.4rem 1.2rem 4rem; }
}
.banner-badge {
  position: relative;
  width: 200px; height: 200px;
  background: linear-gradient(135deg, #FF8FA0 0%, #FF9874 100%);
  border-radius: 50%;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  color: #fff;
  text-align: center;
  box-shadow: 0 14px 28px rgba(255,143,160,0.45), inset 0 -8px 14px rgba(0,0,0,0.1);
  transform: rotate(-8deg);
  animation: banner-spin 6s ease-in-out infinite;
}
@keyframes banner-spin {
  0%, 100% { transform: rotate(-8deg) scale(1); }
  50%      { transform: rotate(-2deg) scale(1.04); }
}
.banner-badge::before {
  content: '';
  position: absolute;
  inset: 8px;
  border: 2px dashed rgba(255,255,255,0.6);
  border-radius: 50%;
}
.banner-badge-num {
  font-family: 'Cormorant Garamond', serif;
  font-style: italic;
  font-size: 3.6rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.04em;
  text-shadow: 0 3px 6px rgba(0,0,0,0.15);
}
.banner-badge-label {
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-size: 1.05rem;
  font-weight: 800;
  margin-top: 0.5rem;
  letter-spacing: 0.08em;
}
.banner-text { flex: 1; }

/* 巨大1mm タイポ */
.prev2-1mm-title {
  margin: 0.2rem 0 0.4rem !important;
  font-family: 'M PLUS Rounded 1c', sans-serif !important;
  line-height: 1 !important;
}
.onemm-big {
  display: block;
  font-family: 'Cormorant Garamond', serif !important;
  font-size: clamp(5.5rem, 11vw, 9rem);
  font-weight: 700;
  font-style: italic;
  color: var(--pop-pink);
  line-height: 0.9;
  letter-spacing: -0.02em;
  text-shadow: 0 6px 14px rgba(255,143,160,0.3);
  position: relative;
}
.onemm-big::after {
  content: '';
  position: absolute;
  left: 0; right: 50%; bottom: 6px;
  height: 14px;
  background: var(--pop-yellow);
  opacity: 0.55;
  z-index: -1;
  border-radius: 7px;
}
.onemm-unit {
  font-family: 'Cormorant Garamond', serif;
  font-size: 0.55em;
  font-weight: 600;
  margin-left: 0.1em;
  color: var(--pop-coral);
}
.onemm-sub-jp {
  display: block;
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-size: clamp(1.6rem, 3vw, 2.6rem);
  font-weight: 900;
  color: var(--pop-text);
  letter-spacing: 0.04em;
  margin-top: 0.4rem;
  white-space: nowrap;
}

/* ものさし(ruler)風 視覚化 */
/* 歯周病検査の様子イラスト(ものさし図の上) */
.prev2-1mm-exam {
  max-width: 300px;
  margin: 2rem auto 0;
  position: relative;
  z-index: 1;
}
.prev2-1mm-exam figure {
  margin: 0;
  border-radius: 22px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 18px 40px rgba(224, 96, 128, 0.16);
}
.prev2-1mm-exam img {
  display: block;
  width: 100%;
  height: auto;
}
.prev2-1mm-exam figcaption {
  margin-top: 0.9rem;
  text-align: center;
  font-size: 0.92rem;
  font-weight: 600;
  line-height: 1.7;
  color: var(--pop-text);
}
.prev2-1mm-exam figcaption strong { color: var(--gold-deep); }
.prev2-1mm-ruler {
  position: relative;
  max-width: 760px;
  margin: 1.4rem auto 2.5rem;
  z-index: 1;
}
.ruler-track {
  position: relative;
  height: 80px;
  background: linear-gradient(180deg, #FFF8E5 0%, #FFFAF0 100%);
  border: 2px solid var(--pop-yellow);
  border-radius: 12px;
  padding: 1.5rem 1rem 0.5rem;
}
.ruler-tick {
  position: absolute;
  top: 1.5rem; bottom: 0.5rem;
  width: 2px;
  background: var(--pop-text);
}
.ruler-tick:nth-child(odd) { background: var(--pop-text-mid); }
.ruler-tick span {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  font-family: 'Cormorant Garamond', serif;
  font-size: 0.85rem;
  color: var(--pop-text-mid);
  font-weight: 700;
  margin-top: 0.2rem;
}
.ruler-mark {
  position: absolute;
  top: -28px;
  left: 25%;
  transform: translateX(-50%);
  display: flex; flex-direction: column;
  align-items: center;
  animation: ruler-bob 2.4s ease-in-out infinite;
}
@keyframes ruler-bob {
  0%, 100% { transform: translateX(-50%) translateY(0); }
  50%      { transform: translateX(-50%) translateY(-6px); }
}
.ruler-mark-tag {
  background: var(--pop-pink);
  color: #fff;
  padding: 0.35rem 0.95rem;
  border-radius: 999px;
  font-size: 0.82rem;
  font-weight: 800;
  white-space: nowrap;
  box-shadow: 0 6px 14px rgba(255,143,160,0.45);
}
.ruler-mark-tag strong {
  background: var(--pop-yellow);
  color: var(--pop-text);
  padding: 0.05rem 0.4rem;
  border-radius: 4px;
  margin: 0 0.1rem;
  font-weight: 900;
}
.ruler-mark-arrow {
  color: var(--pop-pink);
  font-size: 1.2rem;
  margin-top: 0.2rem;
  filter: drop-shadow(0 2px 4px rgba(255,143,160,0.4));
}
.ruler-caption {
  margin: 1rem 0 0;
  text-align: center;
  font-size: 0.95rem;
  color: var(--pop-text);
  font-weight: 600;
  line-height: 1.7;
}
.ruler-caption strong {
  color: var(--pop-pink);
  font-weight: 900;
  font-size: 1.15em;
}

/* ルーラー直下の宣誓ブロック */
.ruler-pledge {
  margin: 1.6rem auto 0;
  max-width: 620px;
  padding: 1.4rem 1.4rem 1.3rem;
  background: linear-gradient(135deg, #FFF5F0 0%, #FFFBEE 50%, #FFF5F7 100%);
  border-radius: 22px;
  border: 2px solid var(--pop-pink);
  text-align: center;
  position: relative;
  box-shadow: 0 14px 32px rgba(255,143,160,0.22);
}
.pledge-arrow {
  position: absolute;
  top: -16px; left: 50%;
  transform: translateX(-50%);
  width: 32px; height: 32px;
  display: flex; align-items: center; justify-content: center;
  background: var(--pop-pink);
  color: #fff;
  border-radius: 50%;
  font-weight: 900;
  font-size: 1rem;
  box-shadow: 0 6px 14px rgba(255,143,160,0.45);
  animation: pledge-arrow-bob 1.6s ease-in-out infinite;
}
@keyframes pledge-arrow-bob {
  0%, 100% { transform: translateX(-50%) translateY(0); }
  50%      { transform: translateX(-50%) translateY(4px); }
}
.pledge-line {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin: 0 0 0.6rem;
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-size: clamp(1.05rem, 2vw, 1.35rem);
  font-weight: 800;
  color: var(--pop-text);
  letter-spacing: 0.02em;
}
.pledge-with { white-space: nowrap; }
.pledge-do { white-space: nowrap; }
.pledge-minus {
  display: inline-flex;
  align-items: baseline;
  padding: 0.05rem 0.6rem;
  background: var(--pop-pink);
  color: #fff;
  border-radius: 10px;
  box-shadow: 0 6px 14px rgba(255,143,160,0.4);
  line-height: 1;
}
.pledge-sign {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.6em;
  font-weight: 700;
  line-height: 1;
  margin-right: 0.05em;
}
.pledge-num {
  font-family: 'Cormorant Garamond', serif;
  font-size: 2em;
  font-weight: 700;
  line-height: 1;
}
.pledge-unit {
  font-size: 0.78em;
  font-weight: 800;
  margin-left: 0.1em;
  letter-spacing: 0.04em;
}
.pledge-tail {
  margin: 0;
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-size: clamp(0.95rem, 1.6vw, 1.1rem);
  font-weight: 700;
  color: var(--pop-text-mid);
  line-height: 1.6;
}
.pledge-tail strong {
  color: var(--pop-pink);
  font-weight: 900;
  font-size: 1.12em;
}
.pledge-bang {
  display: inline-block;
  color: var(--pop-pink);
  font-weight: 900;
  font-size: 1.3em;
  animation: pledge-bang 1.4s ease-in-out infinite;
}
@keyframes pledge-bang {
  0%, 100% { transform: rotate(-6deg) translateY(0); }
  50%      { transform: rotate(6deg) translateY(-3px); }
}

/* Q&A 吹き出し */
.prev2-1mm-define {
  position: relative;
  z-index: 1;
}
.prev2-1mm-q,
.prev2-1mm-a {
  display: flex;
  align-items: flex-start;
  gap: 0.8rem;
  text-align: left;
}
.prev2-1mm-q { color: var(--pop-pink); margin-bottom: 0.8rem; }
.prev2-1mm-a { color: var(--pop-text); margin: 0; }
.q-mark, .a-mark {
  flex-shrink: 0;
  width: 32px; height: 32px;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-family: 'Cormorant Garamond', serif;
  font-style: italic;
  font-size: 1.1rem;
  font-weight: 700;
  color: #fff;
  background: var(--pop-pink);
}
.a-mark { background: var(--pop-mint); }

/* 立体カードの3本柱 */
.prev2-1mm-pillar {
  position: relative;
  overflow: visible;
}
.pillar-num {
  position: absolute;
  top: -16px; left: 50%;
  transform: translateX(-50%);
  width: 44px; height: 44px;
  border-radius: 50%;
  background: var(--pop-pink);
  color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-family: 'Cormorant Garamond', serif;
  font-style: italic;
  font-size: 1.1rem;
  font-weight: 700;
  box-shadow: 0 6px 14px rgba(255,143,160,0.45);
  border: 3px solid #fff;
}
.prev2-1mm-pillar[data-color="yellow"] .pillar-num { background: #FFCB47; color: var(--pop-text); box-shadow: 0 6px 14px rgba(255,203,71,0.45); }
.prev2-1mm-pillar[data-color="mint"] .pillar-num { background: #6DCFB0; box-shadow: 0 6px 14px rgba(109,207,176,0.45); }
.pillar-icon {
  width: 64px; height: 64px;
  margin: 1.5rem auto 0.8rem;
  border-radius: 50%;
  background: var(--pop-pink-light);
  color: var(--pop-pink);
  display: flex; align-items: center; justify-content: center;
  animation: heart-bounce 3s ease-in-out infinite;
}
.prev2-1mm-pillar[data-color="yellow"] .pillar-icon { background: var(--pop-yellow-light); color: #C18A00; animation-delay: 0.4s; }
.prev2-1mm-pillar[data-color="mint"] .pillar-icon { background: var(--pop-mint-light); color: #4AB48F; animation-delay: 0.8s; }
.pillar-icon svg { width: 34px; height: 34px; }
.prev2-1mm-pillars .prev2-1mm-pillar { text-align: center; padding-top: 2.5rem; }
.prev2-1mm-pillars .pillar-en { text-align: center; }
.prev2-1mm-pillars h3 { text-align: center; }
.prev2-1mm-pillars p { text-align: center; }

/* 大きな引用 */
.prev2-1mm-quote {
  position: relative;
  max-width: 800px;
  margin: 3rem auto 0;
  text-align: center;
  padding: 2.5rem 1.5rem;
  z-index: 1;
}
.quote-big {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(1.4rem, 2.6vw, 2rem);
  font-weight: 600;
  line-height: 1.7;
  color: var(--pop-text);
  margin: 0;
  position: relative;
}
.quote-big strong {
  color: var(--pop-pink);
  font-weight: 900;
  position: relative;
}
.quote-big strong::after {
  content: '';
  position: absolute;
  left: -3px; right: -3px; bottom: 0;
  height: 12px;
  background: var(--pop-yellow);
  opacity: 0.6;
  z-index: -1;
  border-radius: 6px;
}
.quote-mark {
  font-family: 'Cormorant Garamond', serif;
  font-size: 2.4em;
  color: var(--pop-pink);
  line-height: 0;
  vertical-align: middle;
  font-weight: 700;
  margin-right: 0.1em;
}
.quote-mark.closing { margin-right: 0; margin-left: 0.1em; }
.quote-cap {
  font-family: 'Cormorant Garamond', serif;
  font-style: italic;
  font-size: 0.92rem;
  color: var(--pop-text-mid);
  margin: 1rem 0 0;
  letter-spacing: 0.08em;
}

@media (max-width: 768px) {
  .prev2-1mm-banner { grid-template-columns: 1fr; padding: 1.6rem; text-align: center; }
  .banner-badge { width: 140px; height: 140px; margin: 0 auto; }
  .banner-badge-num { font-size: 2.4rem; }
}


/* ============================================================
   1mm Challenge: ピンク→ゴールド カラー変更のみ
   ============================================================ */
:root {
  --gold-main: #D4A04A;
  --gold-deep: #B0852E;
  --gold-light: #F8EFD4;
  --gold-soft: #FDFAF0;
}

/* バナーバッジ:ピンク→ゴールド */
.banner-badge {
  background: linear-gradient(135deg, #E5BC59 0%, #B0852E 100%) !important;
  box-shadow: 0 14px 28px rgba(180,140,46,0.45), inset 0 -8px 14px rgba(0,0,0,0.1) !important;
}

/* バナー周辺 */
.prev2-1mm-banner {
  background: linear-gradient(135deg, #fff 0%, #FDFAF0 100%) !important;
  border-color: #F0E1B0 !important;
  box-shadow: 0 18px 40px rgba(180,140,46,0.18) !important;
}

/* 巨大1mm */
.onemm-big {
  color: var(--gold-main) !important;
  text-shadow: 0 6px 14px rgba(212,160,74,0.3) !important;
}
.onemm-unit {
  color: var(--gold-deep) !important;
}
.prev2-1mm-sub strong { color: var(--gold-deep) !important; }

/* ものさし */
.ruler-track {
  background: linear-gradient(180deg, #FDFAF0 0%, #fff 100%) !important;
  border-color: var(--gold-main) !important;
}
.ruler-mark-tag {
  background: var(--gold-main) !important;
  box-shadow: 0 6px 14px rgba(212,160,74,0.45) !important;
}
.ruler-mark-tag strong {
  background: #FFE5EA !important;
  color: #B85C6E !important;
}
.ruler-mark-arrow { color: var(--gold-main) !important; }
.ruler-caption strong { color: var(--gold-deep) !important; }

/* Q&A */
.q-mark { background: var(--gold-main) !important; }
.prev2-1mm-q { color: var(--gold-deep) !important; }
.prev2-1mm-define {
  border-color: var(--gold-main) !important;
}

/* 3本柱カード(ピンクをゴールドに) */
.prev2-1mm-pillar[data-color="pink"] {
  border-top-color: var(--gold-main) !important;
}
.prev2-1mm-pillar[data-color="pink"] .pillar-num {
  background: var(--gold-main) !important;
  color: #fff !important;
  box-shadow: 0 6px 14px rgba(212,160,74,0.45) !important;
}
.prev2-1mm-pillar[data-color="pink"] .pillar-icon {
  background: var(--gold-light) !important;
  color: var(--gold-deep) !important;
}
.prev2-1mm-pillar[data-color="pink"] .pillar-en {
  color: var(--gold-deep) !important;
}

/* タイトル見出し(em ピンク→ゴールド) */
.prev2-1mm-title em {
  color: var(--gold-deep) !important;
}

/* 引用 */
.quote-big strong { color: var(--gold-deep) !important; }
.quote-big strong::after { background: var(--gold-light) !important; opacity: 0.75 !important; }
.quote-mark { color: var(--gold-main) !important; }
.quote-cap { color: var(--gold-deep) !important; }

/* 装飾もゴールド寄りに */
.prev2-1mm-deco-1 { background: rgba(229,188,89,0.22) !important; }
.prev2-1mm-deco-3 { background: rgba(229,188,89,0.18) !important; }
.prev2-1mm-spark.sp-1 { color: var(--gold-main) !important; }
.prev2-1mm-spark.sp-2 { color: var(--gold-deep) !important; }

/* eyebrow も統一 */
.prev2-1mm-head .eyebrow { color: var(--gold-deep) !important; }
.prev2-1mm-head .eyebrow-line { background: var(--gold-deep) !important; }

/* 指定箇所のみピンクに戻す */
/* No.1イチオシバッジ */
.banner-badge {
  background: linear-gradient(135deg, #FF8FA0 0%, #FF7388 100%) !important;
  box-shadow: 0 14px 28px rgba(255,143,160,0.45), inset 0 -8px 14px rgba(0,0,0,0.1) !important;
}

/* ものさし「この1ミリを見逃さない」タグ */
.ruler-mark-tag {
  background: var(--pop-pink) !important;
  box-shadow: 0 6px 14px rgba(255,143,160,0.45) !important;
}
.ruler-mark-tag strong {
  background: var(--pop-yellow) !important;
  color: var(--pop-text) !important;
}
.ruler-mark-arrow { color: var(--pop-pink) !important; }

/* Q&A「1ミリチャレンジって、なに？」 */
.q-mark { background: var(--pop-pink) !important; }
.prev2-1mm-q { color: var(--pop-pink) !important; }
.prev2-1mm-define {
  border-left-color: var(--pop-pink) !important;
}

/* Q&A 枠なし・大きめに */
.prev2-1mm-define {
  background: none !important;
  border: none !important;
  border-left: none !important;
  padding: 1.5rem 0 !important;
  text-align: left !important;
  max-width: 820px !important;
  margin: 0 auto 3rem !important;
}
.prev2-1mm-q,
.prev2-1mm-a {
  display: flex !important;
  align-items: flex-start !important;
  gap: 1.2rem !important;
  margin-bottom: 1.4rem !important;
}
.prev2-1mm-q {
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-size: 1.6rem !important;
  font-weight: 900 !important;
  line-height: 1.5 !important;
  letter-spacing: 0.04em;
}
.prev2-1mm-a {
  font-size: 1.25rem !important;
  font-weight: 700 !important;
  line-height: 1.85 !important;
  color: var(--pop-text) !important;
  margin-bottom: 0 !important;
}
.prev2-1mm-a strong {
  color: var(--pop-pink) !important;
  font-weight: 900;
  font-size: 1.05em;
}
.q-mark, .a-mark {
  width: 48px !important;
  height: 48px !important;
  font-size: 1.5rem !important;
  flex-shrink: 0;
  margin-top: 0.1rem;
}
@media (max-width: 768px) {
  .prev2-1mm-q { font-size: 1.3rem !important; }
  .prev2-1mm-a { font-size: 1.05rem !important; }
  .q-mark, .a-mark { width: 40px !important; height: 40px !important; font-size: 1.2rem !important; }
}

/* 1ミリチャレンジ意味セクション */
.prev2-1mm-meaning {
  position: relative;
  max-width: 820px;
  margin: 2rem auto 2.5rem;
  padding: 0 5rem 0 0;
  z-index: 1;
}
.meaning-en {
  font-family: 'Cormorant Garamond', serif;
  font-style: italic;
  font-size: 1rem;
  letter-spacing: 0.2em;
  color: var(--gold-deep, #B0852E);
  font-weight: 600;
  margin-bottom: 0.8rem;
  text-transform: uppercase;
}
.meaning-h {
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-size: clamp(1.5rem, 2.6vw, 2rem);
  font-weight: 900;
  color: var(--pop-text);
  margin: 0 0 1.5rem;
  letter-spacing: 0.04em;
  line-height: 1.4;
  position: relative;
}
.meaning-h::before {
  content: '';
  display: inline-block;
  width: 6px;
  height: 1.2em;
  background: var(--pop-pink);
  margin-right: 0.7rem;
  vertical-align: middle;
  border-radius: 3px;
}
.meaning-body {
  font-size: 1.02rem;
  line-height: 2;
  color: var(--pop-text-mid);
  margin-bottom: 1.1rem;
}
.meaning-body strong {
  color: var(--pop-pink);
  font-weight: 800;
  background: linear-gradient(transparent 65%, rgba(255,203,71,0.55) 65%);
  padding: 0 2px;
}

/* +1mm デコ表示 */
.meaning-plus {
  position: absolute;
  top: 1rem; right: 0;
  width: 110px;
  display: flex; align-items: baseline; justify-content: center;
  padding: 1rem 1.2rem;
  background: linear-gradient(135deg, #FFF8FA 0%, #FFFDF5 100%);
  border: 3px solid var(--pop-pink);
  border-radius: 16px;
  box-shadow: 0 10px 22px rgba(255,143,160,0.25);
  transform: rotate(4deg);
  animation: plus-bob 3s ease-in-out infinite;
}
@keyframes plus-bob {
  0%, 100% { transform: rotate(4deg) translateY(0); }
  50%      { transform: rotate(-2deg) translateY(-6px); }
}
.plus-sign {
  font-family: 'Cormorant Garamond', serif;
  font-style: italic;
  font-size: 2rem;
  font-weight: 700;
  color: var(--pop-pink);
  line-height: 1;
}
.plus-num {
  font-family: 'Inter', 'Helvetica Neue', sans-serif;
  font-size: 2.6rem;
  font-weight: 900;
  color: var(--pop-pink);
  line-height: 1;
  letter-spacing: -0.03em;
  margin-left: 0.05em;
}
.plus-unit {
  font-family: 'Inter', sans-serif;
  font-size: 1rem;
  font-weight: 700;
  color: var(--pop-pink);
  margin-left: 0.1em;
}

@media (max-width: 768px) {
  .prev2-1mm-meaning { padding: 0; }
  .meaning-plus {
    position: relative;
    top: auto; right: auto;
    margin: 1.5rem auto 0;
    transform: rotate(-3deg);
  }
}

/* パンチ・イントロ */
.prev2-1mm-punch {
  max-width: 760px;
  margin: 2rem auto 2.5rem;
  text-align: center;
  position: relative;
  z-index: 1;
}
.punch-h {
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-size: clamp(1.8rem, 3.4vw, 2.6rem);
  font-weight: 900;
  line-height: 1.45;
  color: var(--pop-text);
  margin: 0 0 1.4rem;
  letter-spacing: 0.04em;
}
.punch-h em {
  position: relative;
  font-style: normal;
  color: var(--pop-pink);
  font-family: 'Noto Serif JP', serif;
  font-size: 1.3em;
  font-weight: 900;
}
.punch-h em::after {
  content: '';
  position: absolute;
  left: -3px; right: -3px; bottom: 2px;
  height: 16px;
  background: var(--pop-yellow);
  opacity: 0.65;
  z-index: -1;
  border-radius: 8px;
}
.punch-body {
  font-size: 1.02rem;
  line-height: 2.05;
  color: var(--pop-text-mid);
  margin: 0 0 1rem;
  text-align: left;
}
.punch-body strong {
  color: var(--pop-pink);
  font-weight: 800;
  background: linear-gradient(transparent 65%, rgba(255,203,71,0.55) 65%);
  padding: 0 2px;
}

/* 「歯ぐきの」吹き出し */
.gum-callout {
  position: relative;
  display: inline-block;
  background: #fff;
  color: var(--pop-text);
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-size: clamp(0.85rem, 1.3vw, 1rem);
  font-weight: 800;
  padding: 0.32rem 0.9rem;
  border: 2px solid var(--pop-pink);
  border-radius: 18px;
  margin-bottom: 0.2rem;
  letter-spacing: 0.05em;
  vertical-align: middle;
  transform: rotate(-3deg);
  box-shadow: 0 4px 10px rgba(255,143,160,0.22);
  animation: gum-pop 2.4s ease-in-out infinite;
}
@keyframes gum-pop {
  0%, 100% { transform: rotate(-3deg) translateY(0); }
  50%      { transform: rotate(2deg) translateY(-4px); }
}
.gum-callout::after {
  content: '';
  position: absolute;
  bottom: -10px; left: 50%;
  transform: translateX(-50%) rotate(45deg);
  width: 14px; height: 14px;
  background: #fff;
  border-right: 2.5px solid var(--pop-pink);
  border-bottom: 2.5px solid var(--pop-pink);
}
.prev2-1mm-title {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
}

/* 炎アイコン付き「本気」サブ */
.fire-sub {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.7rem !important;
  background: linear-gradient(135deg, #FFF6E5 0%, #FFE5EA 100%) !important;
  padding: 0.7rem 1.2rem !important;
  border-radius: 14px !important;
  border: 2px solid #FFCB47 !important;
  box-shadow: 0 8px 20px rgba(255,107,51,0.18) !important;
  font-family: 'M PLUS Rounded 1c', sans-serif !important;
  font-size: clamp(1rem, 1.8vw, 1.25rem) !important;
  font-weight: 800 !important;
  color: var(--pop-text) !important;
  margin-top: 1rem !important;
}
.fire-sub strong {
  color: #FF4500 !important;
  font-weight: 900 !important;
  font-size: 1.15em !important;
  text-shadow: 0 1px 0 rgba(255,107,51,0.18);
}
.fire-ico {
  width: 28px; height: 42px;
  flex-shrink: 0;
  filter: drop-shadow(0 2px 4px rgba(255,107,51,0.4));
  animation: fire-flicker 0.6s ease-in-out infinite alternate;
}
.fire-ico-r {
  animation: fire-flicker 0.6s ease-in-out infinite alternate 0.3s;
}
@keyframes fire-flicker {
  0%   { transform: scale(1) rotate(-3deg); }
  100% { transform: scale(1.08) rotate(3deg); }
}

@media (max-width: 768px) {
  .gum-callout { font-size: 0.9rem; }
  .fire-sub { font-size: 0.95rem !important; padding: 0.6rem 1rem !important; }
  .fire-ico { width: 22px; height: 33px; }
}

/* −1mm バッジ単独表示 */
.prev2-1mm-badge-only {
  display: flex;
  justify-content: center;
  margin: 0 auto 2.5rem;
  position: relative;
  z-index: 1;
}
.prev2-1mm-badge-only .meaning-plus {
  position: static;
  margin: 0;
}

/* タイトル横の「本気」吹き出し */
.banner-title-row {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
}
.banner-title-row .prev2-1mm-title {
  flex: 1;
  min-width: 220px;
}
.serious-bubble {
  position: relative;
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1.2rem 1.6rem 1.2rem 1.2rem;
  background: linear-gradient(135deg, #FFF6E5 0%, #FFE5EA 100%);
  border: 4px solid #FF6B33;
  border-radius: 26px;
  box-shadow: 0 14px 28px rgba(255,107,51,0.3);
  align-self: center;
  margin: 0;
  transform: rotate(3deg);
  animation: serious-bob 2.6s ease-in-out infinite;
}
@keyframes serious-bob {
  0%, 100% { transform: rotate(3deg) translateY(0); }
  50%      { transform: rotate(-1deg) translateY(-5px); }
}
.serious-bubble::before {
  content: '';
  position: absolute;
  left: -14px; bottom: 24px;
  width: 0; height: 0;
  border-style: solid;
  border-width: 8px 14px 8px 0;
  border-color: transparent #FF6B33 transparent transparent;
}
.serious-bubble::after {
  content: '';
  position: absolute;
  left: -10px; bottom: 26px;
  width: 0; height: 0;
  border-style: solid;
  border-width: 6px 12px 6px 0;
  border-color: transparent #FFF6E5 transparent transparent;
}
.serious-bubble .fire-ico {
  width: 52px; height: 76px;
  flex-shrink: 0;
  filter: drop-shadow(0 4px 7px rgba(255,107,51,0.45));
  animation: fire-flicker 0.5s ease-in-out infinite alternate;
}
.serious-text {
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-size: 1.4rem;
  font-weight: 800;
  line-height: 1.4;
  margin: 0;
  color: var(--pop-text);
  letter-spacing: 0.04em;
}
.serious-text strong {
  color: #FF4500;
  font-weight: 900;
  font-size: 1.2em;
  display: inline-block;
  text-shadow: 0 1px 0 rgba(255,107,51,0.2);
}

/* 旧 .fire-sub は使わないので非表示 */
.prev2-1mm-sub.fire-sub { display: none !important; }

@media (max-width: 768px) {
  .banner-title-row { flex-direction: column; align-items: stretch; }
  .serious-bubble { align-self: center; transform: rotate(0); }
  .serious-bubble::before, .serious-bubble::after { display: none; }
  .serious-text { font-size: 0.95rem; }
}

/* パンチ・イントロに大きな−1mmバッジを横並び */
.punch-with-badge {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 2.5rem;
  align-items: center;
  max-width: 1040px;
  margin: 2rem auto 2.5rem;
  text-align: left !important;
}
/* 右列:検査イラスト + −1mm バッジを縦に */
.punch-side {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.6rem;
}
.punch-side .prev2-1mm-exam {
  max-width: 100%;
  margin: 0;
}
.punch-with-badge .punch-content { text-align: left; }
.punch-with-badge .punch-h { text-align: left; }
.punch-with-badge .punch-body { text-align: left; }

.punch-badge {
  position: relative;
  display: flex;
  align-items: baseline;
  justify-content: center;
  padding: 2rem 1.5rem;
  background: linear-gradient(135deg, #FFF8FA 0%, #FFFDF5 100%);
  border: 4px solid var(--pop-pink);
  border-radius: 24px;
  box-shadow: 0 18px 38px rgba(255,143,160,0.3);
  transform: rotate(4deg);
  animation: badge-bob 3s ease-in-out infinite;
}
@keyframes badge-bob {
  0%, 100% { transform: rotate(4deg) translateY(0); }
  50%      { transform: rotate(-2deg) translateY(-8px); }
}
.big-minus {
  font-family: 'Cormorant Garamond', serif;
  font-style: italic;
  font-size: 4.5rem;
  font-weight: 700;
  color: var(--pop-pink);
  line-height: 0.9;
}
.big-num {
  font-family: 'Inter', 'Helvetica Neue', sans-serif;
  font-size: 6rem;
  font-weight: 900;
  color: var(--pop-pink);
  line-height: 0.85;
  letter-spacing: -0.04em;
  margin-left: 0.05em;
}
.big-unit {
  font-family: 'Inter', sans-serif;
  font-size: 2rem;
  font-weight: 800;
  color: var(--pop-pink);
  margin-left: 0.15em;
}

/* 旧 -1mm バッジ単独表示は非表示 */
.prev2-1mm-badge-only { display: none !important; }

@media (max-width: 900px) {
  .punch-with-badge { grid-template-columns: 1fr; gap: 1.5rem; }
  .punch-badge { transform: rotate(-2deg); justify-self: center; padding: 1.5rem 2rem; }
  .big-minus { font-size: 3.5rem; }
  .big-num { font-size: 4.8rem; }
  .big-unit { font-size: 1.6rem; }
}

/* ============================================================
   A2: 位相差顕微鏡
   ============================================================ */
.prev2-micro {
  padding: 3rem 0 4rem;
  background: linear-gradient(180deg, #F5F9FC 0%, #FFFFFF 100%);
}
.prev2-micro-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2.5rem;
  align-items: center;
  max-width: 1100px;
  margin: 0 auto;
}
.prev2-micro-tag {
  display: inline-block;
  padding: 0.25rem 0.95rem;
  background: linear-gradient(135deg, #4FA3C7 0%, #6DCFB0 100%);
  color: #fff;
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-size: 0.74rem;
  font-weight: 900;
  letter-spacing: 0.12em;
  border-radius: 999px;
  margin-bottom: 0.7rem;
}
.prev2-micro-points {
  list-style: none;
  margin: 1.4rem 0 0;
  padding: 0;
  display: flex; flex-direction: column;
  gap: 0.7rem;
}
.prev2-micro-points li {
  display: flex;
  align-items: flex-start;
  gap: 0.7rem;
  font-size: 0.94rem;
  line-height: 1.8;
  color: var(--pop-text);
}
.prev2-micro-points strong {
  display: inline-block;
  color: var(--pop-pink);
  font-weight: 800;
  margin-right: 0.3rem;
}
.mp-dot {
  display: inline-block;
  width: 10px; height: 10px;
  flex-shrink: 0;
  margin-top: 0.55em;
  background: var(--pop-mint);
  border-radius: 50%;
  box-shadow: 0 0 0 4px rgba(109,207,176,0.2);
}
.prev2-micro-visual {
  position: relative;
}
.micro-photo {
  position: relative;
  border-radius: 24px;
  overflow: hidden;
  box-shadow: 0 16px 36px rgba(80,130,170,0.22);
}
.micro-photo img { width: 100%; height: auto; display: block; }
.micro-photo-tag {
  position: absolute;
  top: 14px; left: 14px;
  padding: 0.4rem 0.9rem;
  background: rgba(255,255,255,0.95);
  color: var(--pop-text);
  font-weight: 800;
  font-size: 0.82rem;
  border-radius: 999px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.12);
}
.micro-scope {
  position: absolute;
  right: -28px; bottom: -28px;
  width: 140px; height: 140px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 35%, #6DCFB0 0%, #2C8A7A 80%);
  box-shadow: 0 16px 30px rgba(44,138,122,0.4), inset 0 0 30px rgba(0,0,0,0.3);
  overflow: hidden;
  z-index: 2;
}
.ms-ring, .ms-ring-2 {
  position: absolute;
  inset: 10px;
  border: 2px dashed rgba(255,255,255,0.5);
  border-radius: 50%;
  animation: ms-spin 8s linear infinite;
}
.ms-ring-2 {
  inset: 26px;
  border-style: dotted;
  animation-direction: reverse;
  animation-duration: 6s;
}
@keyframes ms-spin { to { transform: rotate(360deg); } }
.ms-bact {
  position: absolute;
  border-radius: 50%;
  background: rgba(255,255,255,0.85);
  box-shadow: 0 0 6px rgba(255,255,255,0.6);
  animation: ms-bact-move 5s ease-in-out infinite;
}
.ms-bact-1 { width: 14px; height: 6px; top: 28%; left: 30%; animation-delay: 0s; }
.ms-bact-2 { width: 10px; height: 10px; top: 55%; left: 60%; animation-delay: -1.2s; background: #FFCB47; }
.ms-bact-3 { width: 8px; height: 14px; top: 40%; left: 70%; animation-delay: -2.4s; }
.ms-bact-4 { width: 12px; height: 6px; top: 65%; left: 35%; animation-delay: -3.6s; background: #FF8FA0; }
.ms-bact-5 { width: 6px; height: 6px; top: 30%; left: 55%; animation-delay: -4.8s; }
@keyframes ms-bact-move {
  0%, 100% { transform: translate(0, 0) rotate(0); }
  25%      { transform: translate(8px, -6px) rotate(15deg); }
  50%      { transform: translate(-4px, 4px) rotate(-10deg); }
  75%      { transform: translate(6px, 8px) rotate(20deg); }
}
@media (max-width: 820px) {
  .prev2-micro-grid { grid-template-columns: 1fr; gap: 1.6rem; }
  .micro-scope { width: 110px; height: 110px; right: -10px; bottom: -10px; }
}

/* ============================================================
   C1: お口の健康手帳
   ============================================================ */
.prev2-notebook {
  padding: 0.5rem 0 3.5rem;
  background: #fff;
}
.prev2-notebook-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2.8rem;
  align-items: center;
  max-width: 1100px;
  margin: 0 auto;
}
.nb-photo-stack {
  position: relative;
  border-radius: 24px;
  overflow: visible;
}
.nb-photo-main {
  width: 100%; height: auto;
  border-radius: 24px;
  box-shadow: 0 18px 38px rgba(80,130,170,0.2);
  display: block;
}
.nb-sticker {
  position: absolute;
  padding: 0.5rem 1rem;
  background: #fff;
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-weight: 900;
  font-size: 0.9rem;
  border-radius: 999px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.15);
}
.nb-sticker-1 {
  top: 18px; left: -14px;
  color: var(--pop-pink);
  transform: rotate(-6deg);
  border: 2px solid var(--pop-pink-light, #FFE5EA);
}
.nb-sticker-2 {
  bottom: 24px; right: -16px;
  color: var(--pop-mint);
  transform: rotate(4deg);
  border: 2px solid #C9EFE0;
}
.prev2-notebook-tag {
  display: inline-block;
  padding: 0.25rem 0.95rem;
  background: linear-gradient(135deg, var(--pop-pink) 0%, #FF9874 100%);
  color: #fff;
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-size: 0.74rem;
  font-weight: 900;
  letter-spacing: 0.12em;
  border-radius: 999px;
  margin-bottom: 0.7rem;
}
.prev2-notebook-eyebrow {
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-size: 0.95rem;
  font-weight: 800;
  color: var(--pop-text-mid);
  letter-spacing: 0.05em;
  margin: 0.5rem 0 0.6rem;
  line-height: 1.5;
}
.prev2-notebook-eyebrow em {
  font-style: normal;
  color: var(--pop-pink);
  font-weight: 900;
}
.nb-title-big {
  margin: 0.4rem 0 1rem;
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-size: clamp(1.6rem, 3.4vw, 2.4rem);
  font-weight: 900;
  line-height: 1.4;
  color: var(--pop-text);
  letter-spacing: 0.04em;
}
.nb-title-big strong {
  display: inline-block;
  font-size: 1.15em;
  font-weight: 900;
  color: var(--pop-pink);
  background: linear-gradient(transparent 68%, rgba(255,203,71,0.65) 68%);
  padding: 0 4px;
  letter-spacing: 0.06em;
}
.prev2-notebook-list {
  list-style: none;
  margin: 1.6rem 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.9rem;
}
.prev2-notebook-list li {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.9rem;
  align-items: flex-start;
  padding: 0.9rem 1rem;
  background: linear-gradient(135deg, #FFF9F5 0%, #FFFDF8 100%);
  border-radius: 14px;
  border-left: 4px solid var(--pop-pink);
}
.nbl-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px; height: 34px;
  background: var(--pop-pink);
  color: #fff;
  border-radius: 50%;
  font-family: 'Cormorant Garamond', serif;
  font-weight: 700;
  font-size: 0.95rem;
  flex-shrink: 0;
}
.prev2-notebook-list strong {
  color: var(--pop-pink);
  font-weight: 800;
  font-size: 1.02rem;
}
.prev2-notebook-list div {
  font-size: 0.9rem;
  line-height: 1.7;
  color: var(--pop-text);
}
@media (max-width: 820px) {
  .prev2-notebook-grid { grid-template-columns: 1fr; gap: 2rem; }
  .nb-sticker-1 { left: 0; }
  .nb-sticker-2 { right: 0; }
}

/* ============================================================
   C2: 患者さんの声
   ============================================================ */
.prev2-voice {
  padding: 3.5rem 0 4rem;
  background: linear-gradient(180deg, #FFF9F5 0%, #FFFFFF 100%);
}
.prev2-voice-badge,
.prev2-hyg-badge,
.prev2-check-badge {
  display: inline-block;
  padding: 0.25rem 0.95rem;
  background: linear-gradient(135deg, var(--pop-pink) 0%, #FF9874 100%);
  color: #fff;
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-size: 0.74rem;
  font-weight: 900;
  letter-spacing: 0.14em;
  border-radius: 999px;
  margin-bottom: 0.7rem;
}
.prev2-voice-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.2rem;
  max-width: 1180px;
  margin: 2.4rem auto 0;
}
.voice-card {
  position: relative;
  padding: 2rem 1.2rem 1.4rem;
  background: #fff;
  border-radius: 20px;
  box-shadow: 0 10px 26px rgba(80,130,170,0.12);
  border-top: 4px solid var(--pop-pink);
  text-align: center;
}
.voice-card[data-color="mint"]  { border-top-color: var(--pop-mint); }
.voice-card[data-color="coral"] { border-top-color: var(--pop-coral); }
.voice-card[data-color="sky"]   { border-top-color: var(--pop-sky); }
.voice-badge {
  position: absolute;
  top: -14px; left: 50%;
  transform: translateX(-50%);
  padding: 0.3rem 0.9rem;
  background: var(--pop-pink);
  color: #fff;
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-size: 0.74rem;
  font-weight: 900;
  border-radius: 999px;
  white-space: nowrap;
  box-shadow: 0 6px 14px rgba(255,143,160,0.35);
}
.voice-card[data-color="mint"]  .voice-badge { background: var(--pop-mint); box-shadow: 0 6px 14px rgba(109,207,176,0.35); }
.voice-card[data-color="coral"] .voice-badge { background: var(--pop-coral); box-shadow: 0 6px 14px rgba(255,152,116,0.35); }
.voice-card[data-color="sky"]   .voice-badge { background: var(--pop-sky); box-shadow: 0 6px 14px rgba(141,200,226,0.35); }
.voice-avatar {
  width: 72px; height: 72px;
  margin: 0.4rem auto 0.7rem;
  border-radius: 50%;
  overflow: hidden;
  background: #FFF6E5;
  box-shadow: 0 6px 14px rgba(0,0,0,0.08);
}
.voice-avatar svg { width: 100%; height: 100%; }
.voice-name {
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-size: 0.95rem;
  font-weight: 900;
  color: var(--pop-text);
  margin: 0 0 0.7rem;
}
.voice-name span {
  display: block;
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--pop-text-mid);
  margin-top: 0.2rem;
  letter-spacing: 0.02em;
}
.voice-text {
  font-size: 0.86rem;
  line-height: 1.85;
  color: var(--pop-text);
  margin: 0;
  text-align: left;
}
.voice-text strong {
  color: var(--pop-pink);
  font-weight: 800;
}
.prev2-voice-note {
  text-align: center;
  font-size: 0.78rem;
  color: var(--pop-text-mid);
  margin: 1.4rem 0 0;
}
@media (max-width: 980px) {
  .prev2-voice-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 520px) {
  .prev2-voice-grid { grid-template-columns: 1fr; }
}

/* ============================================================
   A1: 衛生士紹介
   ============================================================ */
.prev2-hyg {
  padding: 3.5rem 0 4rem;
  background: #fff;
}
.prev2-hyg-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.6rem;
  max-width: 1100px;
  margin: 2.4rem auto 0;
}
.hyg-card {
  background: #fff;
  border-radius: 22px;
  overflow: hidden;
  box-shadow: 0 12px 28px rgba(80,130,170,0.14);
  border: 2px solid #FFE5EA;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.hyg-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 18px 36px rgba(80,130,170,0.2);
}
.hyg-card[data-color="mint"]  { border-color: #C9EFE0; }
.hyg-card[data-color="coral"] { border-color: #FFD9C7; }
.hyg-photo {
  aspect-ratio: 4 / 3;
  overflow: hidden;
}
.hyg-photo img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
}
.hyg-body { padding: 1.2rem 1.2rem 1.4rem; }
.hyg-role {
  display: inline-block;
  padding: 0.15rem 0.7rem;
  background: var(--pop-pink-light, #FFE5EA);
  color: var(--pop-pink);
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-size: 0.72rem;
  font-weight: 900;
  border-radius: 999px;
  margin-bottom: 0.6rem;
}
.hyg-card[data-color="mint"]  .hyg-role { background: #DCF4E9; color: var(--pop-mint); }
.hyg-card[data-color="coral"] .hyg-role { background: #FFE5D7; color: var(--pop-coral); }
.hyg-name {
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-size: 1.1rem;
  font-weight: 900;
  color: var(--pop-text);
  margin: 0 0 0.6rem;
}
.hyg-name span {
  display: inline-block;
  margin-left: 0.6rem;
  font-size: 0.78rem;
  color: var(--pop-text-mid);
  font-weight: 700;
}
.hyg-msg {
  font-size: 0.92rem;
  line-height: 1.85;
  color: var(--pop-text);
  margin: 0 0 0.8rem;
  font-weight: 600;
}
.hyg-tags {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex; flex-wrap: wrap;
  gap: 0.4rem;
}
.hyg-tags li {
  font-size: 0.74rem;
  color: var(--pop-text-mid);
  background: #F5F5F0;
  padding: 0.18rem 0.6rem;
  border-radius: 999px;
}
.prev2-hyg-note {
  text-align: center;
  font-size: 0.76rem;
  color: var(--pop-text-mid);
  margin: 1.4rem 0 0;
  font-style: italic;
}
@media (max-width: 880px) {
  .prev2-hyg-grid { grid-template-columns: 1fr; max-width: 460px; }
}

/* ============================================================
   B1: お口セルフチェック
   ============================================================ */
.prev2-check {
  padding: 3.5rem 0 4rem;
  background: linear-gradient(180deg, #FFFDF8 0%, #FFF9F5 100%);
}
.prev2-check-card {
  max-width: 840px;
  margin: 2.4rem auto 0;
  padding: 2.2rem 1.8rem;
  background: #fff;
  border-radius: 26px;
  box-shadow: 0 16px 36px rgba(80,130,170,0.12);
}
.prev2-check-list {
  list-style: none;
  margin: 0 0 1.6rem;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.6rem 1rem;
}
.prev2-check-list label {
  display: flex;
  align-items: flex-start;
  gap: 0.7rem;
  padding: 0.7rem 0.9rem;
  background: #FFF9F5;
  border: 2px solid #FFE5EA;
  border-radius: 12px;
  cursor: pointer;
  transition: background 0.2s ease, border-color 0.2s ease;
}
.prev2-check-list label:hover {
  background: #FFF5F0;
  border-color: var(--pop-pink-light, #FFE5EA);
}
.check-item {
  position: absolute;
  opacity: 0;
  width: 0; height: 0;
}
.check-mark {
  display: inline-block;
  width: 22px; height: 22px;
  flex-shrink: 0;
  border-radius: 6px;
  background: #fff;
  border: 2px solid var(--pop-pink);
  position: relative;
  margin-top: 1px;
  transition: background 0.2s ease;
}
.check-mark::after {
  content: '';
  position: absolute;
  left: 6px; top: 2px;
  width: 6px; height: 11px;
  border-right: 3px solid #fff;
  border-bottom: 3px solid #fff;
  transform: rotate(45deg) scale(0);
  transition: transform 0.18s ease;
}
.check-item:checked + .check-mark {
  background: var(--pop-pink);
}
.check-item:checked + .check-mark::after {
  transform: rotate(45deg) scale(1);
}
.check-item:checked ~ .check-label {
  color: var(--pop-pink);
}
.prev2-check-list label:has(.check-item:checked) {
  background: #FFF0F4;
  border-color: var(--pop-pink);
}
.check-label {
  font-size: 0.92rem;
  line-height: 1.6;
  color: var(--pop-text);
  font-weight: 600;
}
.check-label strong { color: var(--pop-pink); font-weight: 800; }
.prev2-check-result {
  padding: 1.4rem 1.4rem 1.2rem;
  background: #F5F9FC;
  border-radius: 16px;
  text-align: center;
  transition: background 0.3s ease;
}
.prev2-check-result[data-state="low"]  { background: #FFFBEE; }
.prev2-check-result[data-state="mid"]  { background: #FFF0F4; }
.prev2-check-result[data-state="high"] { background: linear-gradient(135deg, #FFF0F4 0%, #FFFBEE 100%); animation: check-pulse 1.6s ease-in-out infinite; }
@keyframes check-pulse {
  0%, 100% { box-shadow: 0 0 0 rgba(255,143,160,0); }
  50%      { box-shadow: 0 0 0 8px rgba(255,143,160,0.15); }
}
.check-count {
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-size: 1rem;
  font-weight: 700;
  color: var(--pop-text-mid);
  margin: 0 0 0.5rem;
}
.check-count strong {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.6rem;
  font-weight: 700;
  color: var(--pop-pink);
  margin: 0 0.15em;
}
.check-message {
  font-size: 1rem;
  line-height: 1.7;
  color: var(--pop-text);
  margin: 0 0 1rem;
  font-weight: 700;
}
.check-message strong { color: var(--pop-pink); font-weight: 900; }
.check-cta {
  display: inline-block;
  padding: 0.85rem 1.8rem;
  background: linear-gradient(135deg, #FF8FA0 0%, #FF9874 100%);
  color: #fff;
  text-decoration: none;
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-weight: 900;
  font-size: 0.95rem;
  border-radius: 999px;
  box-shadow: 0 10px 22px rgba(255,143,160,0.4);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.check-cta:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 26px rgba(255,143,160,0.5);
}
@media (max-width: 640px) {
  .prev2-check-list { grid-template-columns: 1fr; }
}

/* セルフチェック おすすめカード */
.check-recos {
  margin: 1rem 0 1.2rem;
}
.check-recos-head {
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-size: 0.85rem;
  font-weight: 900;
  color: var(--pop-text-mid);
  letter-spacing: 0.08em;
  margin: 0 0 0.6rem;
  text-transform: uppercase;
}
.check-recos-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.7rem;
}
.reco-card {
  display: none;
  position: relative;
  padding: 0.9rem 2.2rem 0.9rem 0.95rem;
  background: #fff;
  border-radius: 12px;
  text-decoration: none;
  color: var(--pop-text);
  border: 2px solid var(--pop-pink-light, #FFE5EA);
  text-align: left;
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}
.reco-card.show { display: block; }
.reco-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 22px rgba(0,0,0,0.12);
  border-color: var(--pop-pink);
}
.reco-card[data-reco="gum"]       { border-color: var(--pop-pink-light, #FFE5EA); }
.reco-card[data-reco="halitosis"] { border-color: #C9EFE0; }
.reco-card[data-reco="general"]   { border-color: #FFE5D7; }
.reco-card[data-reco="scaling"]   { border-color: #FFF1B8; }
.reco-card[data-reco="brushing"]  { border-color: #D9EDF7; }
.reco-tag {
  display: inline-block;
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-size: 0.72rem;
  font-weight: 900;
  padding: 0.18rem 0.55rem;
  border-radius: 999px;
  background: var(--pop-pink-light, #FFE5EA);
  color: var(--pop-pink);
  margin-bottom: 0.4rem;
}
.reco-card[data-reco="halitosis"] .reco-tag { background: #DCF4E9; color: var(--pop-mint); }
.reco-card[data-reco="general"]   .reco-tag { background: #FFE5D7; color: var(--pop-coral); }
.reco-card[data-reco="scaling"]   .reco-tag { background: #FFF1B8; color: #B58800; }
.reco-card[data-reco="brushing"]  .reco-tag { background: #D9EDF7; color: #4FA3C7; }
.reco-title {
  display: block;
  font-family: 'M PLUS Rounded 1c', sans-serif;
  font-size: 0.86rem;
  font-weight: 800;
  line-height: 1.5;
}
.reco-arr {
  position: absolute;
  right: 0.7rem; top: 50%;
  transform: translateY(-50%);
  display: inline-flex;
  align-items: center; justify-content: center;
  width: 24px; height: 24px;
  border-radius: 50%;
  background: var(--pop-pink);
  color: #fff;
  font-weight: 900;
  font-size: 0.85rem;
  transition: transform 0.25s ease;
}
.reco-card[data-reco="halitosis"] .reco-arr { background: var(--pop-mint); }
.reco-card[data-reco="general"]   .reco-arr { background: var(--pop-coral); }
.reco-card[data-reco="scaling"]   .reco-arr { background: #D4A100; }
.reco-card[data-reco="brushing"]  .reco-arr { background: var(--pop-sky); }
.reco-card:hover .reco-arr { transform: translate(3px, -50%); }
@media (max-width: 760px) {
  .check-recos-grid { grid-template-columns: 1fr; }
}

/* ==========================================================
   1mm CHALLENGE マスキングテープ風ワッペン (左配置)
   ========================================================== */
.onemm-tape {
  position: absolute;
  top: 48px;
  left: 4%;
  z-index: 5;
  pointer-events: none;
  display: inline-flex;
  align-items: center;
  gap: 16px;
  padding: 22px 44px;
  background:
    repeating-linear-gradient(
      135deg,
      #E5BC59 0px,
      #E5BC59 20px,
      #C9A33D 20px,
      #C9A33D 40px
    );
  color: #fff;
  font-family: 'Cormorant Garamond', serif;
  font-weight: 700;
  white-space: nowrap;
  transform: rotate(-6deg);
  animation: onemmTapeFloat 4.4s ease-in-out infinite;
  box-shadow:
    0 18px 36px rgba(184,148,31,0.36),
    inset 0 3px 6px rgba(255,255,255,0.32),
    inset 0 -4px 8px rgba(0,0,0,0.22);
}
/* テープの端を不規則に切ったような演出 */
.onemm-tape::before,
.onemm-tape::after {
  content: '';
  position: absolute;
  top: 0; bottom: 0;
  width: 22px;
  background: inherit;
  -webkit-mask: linear-gradient(to right,
    rgba(0,0,0,1) 0%,
    rgba(0,0,0,0.7) 40%,
    rgba(0,0,0,0.25) 75%,
    transparent 100%);
          mask: linear-gradient(to right,
    rgba(0,0,0,1) 0%,
    rgba(0,0,0,0.7) 40%,
    rgba(0,0,0,0.25) 75%,
    transparent 100%);
}
.onemm-tape::before { left: -21px; transform: scaleX(-1); }
.onemm-tape::after  { right: -21px; }

.onemm-tape-star {
  font-size: 26px;
  line-height: 1;
  color: #FFE599;
  text-shadow: 0 1px 3px rgba(0,0,0,0.3);
}
.onemm-tape-main {
  display: inline-flex;
  align-items: baseline;
  gap: 2px;
  line-height: 1;
}
.onemm-tape-num {
  font-family: 'Inter', 'M PLUS Rounded 1c', sans-serif;
  font-style: normal;
  font-weight: 800;
  font-size: 60px;
  letter-spacing: -0.02em;
  text-shadow: 0 4px 7px rgba(0,0,0,0.3);
}
/* バナーの大きな「1」を数字とわかる書体に(Cormorant斜体だとIに見えるため) */
.onemm-one {
  font-family: 'Inter', 'M PLUS Rounded 1c', sans-serif;
  font-style: normal;
  font-weight: 800;
  letter-spacing: -0.04em;
}
.onemm-tape-unit {
  font-size: 28px;
  text-shadow: 0 3px 5px rgba(0,0,0,0.24);
}
.onemm-tape-sub {
  font-size: 22px;
  letter-spacing: 0.24em;
  margin-left: 10px;
  text-shadow: 0 2px 4px rgba(0,0,0,0.24);
}
@keyframes onemmTapeFloat {
  0%, 100% { transform: rotate(-6deg) translateY(0); }
  50%      { transform: rotate(-3deg) translateY(-6px); }
}

@media (max-width: 900px) {
  .onemm-tape { padding: 14px 26px; gap: 10px; top: 20px; left: 14px; }
  .onemm-tape-num { font-size: 42px; }
  .onemm-tape-unit { font-size: 20px; }
  .onemm-tape-sub { font-size: 15px; letter-spacing: 0.18em; margin-left: 6px; }
  .onemm-tape-star { font-size: 18px; }
}

/* お口の健康手帳:中央配置レイアウト */
.prev2-notebook-centered {
  max-width: 840px;
  margin: 0 auto;
  text-align: center;
}
.prev2-notebook-centered .nb-photo-stack {
  position: relative;
  max-width: 560px;
  margin: 2.4rem auto;
}
.prev2-notebook-centered .prev2-notebook-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.1rem 2.2rem;
  text-align: left;
  max-width: 700px;
  margin: 0 auto;
}
@media (max-width: 640px) {
  .prev2-notebook-centered .prev2-notebook-list { grid-template-columns: 1fr; gap: 0.9rem; }
}

/* === 健康手帳:中央イラスト＋四隅に01〜04を散りばめ === */
.nb-radial {
  position: relative;
  max-width: 1200px;
  margin: 2.6rem auto 0;
  min-height: 1080px;
}
.nb-orbit .nbl-num { margin: 0 0 0.7rem; }
/* カード内:上に文字・下にイラスト(縦並び・画像は高さ統一) */
.nb-orbit > div {
  display: block;
  width: 100%;
}
.nb-orbit .nbl-text {
  display: block;
  margin-bottom: 0.85rem;
}
.nb-orbit-img {
  display: block;
  width: 100%;
  height: 180px;
  object-fit: contain;
  margin: 0;
  border: none;
  box-shadow: none;
  background: none;
}
.nb-radial .nb-center {
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: 440px;
  margin: 0;
  z-index: 3;
}
.nb-radial .nb-center .nb-photo-main {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 18px;
}
.nb-orbit {
  position: absolute;
  width: 326px;
  min-height: 312px;
  display: block;
  background: #fff;
  border-radius: 18px;
  padding: 1.2rem 1.4rem 1.4rem;
  box-shadow: 0 14px 30px rgba(80,130,170,0.14);
  z-index: 2;
  box-sizing: border-box;
}
.nb-orbit > div {
  font-size: 0.95rem;
  line-height: 1.75;
  color: var(--pop-text-mid, #6B5D55);
}
.nb-orbit > div strong { color: var(--pop-pink, #F49CB4); font-weight: 800; }
.nb-orbit .nbl-num { flex-shrink: 0; }
.nb-orbit-1 { top: 0; left: 0; }
.nb-orbit-2 { top: 0; right: 0; }
.nb-orbit-3 { bottom: 0; left: 0; }
.nb-orbit-4 { bottom: 0; right: 0; }
/* 中央から各カードへ点線 */
.nb-radial::before {
  content: "";
  position: absolute;
  inset: 18% 24%;
  border: 2px dashed #FFD9E0;
  border-radius: 40px;
  z-index: 0;
  pointer-events: none;
}
@media (max-width: 1240px) {
  .nb-radial { min-height: 0; max-width: 560px; display: flex; flex-direction: column; align-items: center; }
  .nb-radial::before { display: none; }
  .nb-radial .nb-center { position: static; transform: none; order: -1; width: 260px; margin: 0 auto 1.6rem; }
  .nb-orbit { position: static; width: 100%; max-width: 480px; margin: 0 auto 0.9rem; }
}

/* === 健康手帳:タイトル横の表紙アイコン(文字は中央・ワッペンは右に浮かせる) === */
.nb-title-row {
  position: relative;
  display: inline-block;
}
.nb-title-icon {
  position: absolute;
  top: 50%;
  left: 100%;
  margin-left: 22px;
  width: 198px;
  height: auto;
  border-radius: 14px;
  border: 4px solid #fff;
  box-shadow: 0 10px 24px rgba(80,130,170,0.25);
  transform-origin: top center;
  animation: nbBadgeSwing 3.4s ease-in-out infinite;
  z-index: 2;
}
@keyframes nbBadgeSwing {
  0%, 100% { transform: translateY(-50%) rotate(-5deg); }
  50%      { transform: translateY(-58%) rotate(4deg); }
}
.nb-title-icon:hover {
  animation-play-state: paused;
  transform: translateY(-50%) scale(1.05) rotate(0deg);
}
@media (max-width: 860px) {
  .nb-title-row { display: flex; align-items: center; justify-content: center; gap: 0.9rem; }
  .nb-title-icon { position: static; margin: 0; width: 120px; transform: rotate(-5deg); animation: none; }
}

/* === 健康手帳:カード画像クリックで拡大(ライトボックス) === */
.nb-orbit-img { cursor: pointer; transition: transform 0.2s ease; }
.nb-orbit-img:hover { transform: scale(1.04); }
.nb-lightbox { cursor: pointer; }
.nb-lightbox {
  position: fixed;
  inset: 0;
  background: rgba(40,30,30,0.84);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 4vmin;
  z-index: 9999;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.25s ease;
  cursor: zoom-out;
}
.nb-lightbox.is-open { opacity: 1; visibility: visible; }
.nb-lightbox img {
  max-width: 96vw;
  max-height: 92vh;
  border-radius: 10px;
  box-shadow: 0 24px 70px rgba(0,0,0,0.55);
  background: #fff;
  cursor: default;
}
.nb-lightbox-close {
  position: absolute;
  top: 18px; right: 24px;
  width: 46px; height: 46px;
  border: none;
  border-radius: 50%;
  background: rgba(255,255,255,0.92);
  color: #4A3F38;
  font-size: 1.6rem;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 6px 16px rgba(0,0,0,0.3);
}

/* === 健康手帳カード:黄色の枠＋白背景で統一 === */
.nb-orbit-1,
.nb-orbit-2,
.nb-orbit-3,
.nb-orbit-4 {
  background: #fff;
  border: 2px solid #EFD57E;
}

/* === お口の健康手帳 リンクバナー === */
.nb-banner-link {
  display: block;
  max-width: 1080px;
  margin: 0 auto;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 14px 34px rgba(120,140,90,0.20);
  transition: transform .35s ease, box-shadow .35s ease;
}
.nb-banner-link:hover {
  transform: translateY(-5px);
  box-shadow: 0 22px 48px rgba(120,140,90,0.30);
}
.nb-banner-link:focus-visible {
  outline: 3px solid #8FB36B;
  outline-offset: 3px;
}
.nb-banner-img {
  display: block;
  width: 100%;
  height: auto;
}

/* === 歯周病ケア(1ミリチャレンジ独立ページ) === */
.perio-section { padding: 5rem 0; background: linear-gradient(180deg,#FFFFFF 0%,#F4FAF6 100%); }
.perio-head { text-align: center; max-width: 780px; margin: 0 auto 2.8rem; }
.perio-eyebrow { font-family:'Cormorant Garamond',serif; letter-spacing:0.3em; color:#5BA88B; font-size:0.98rem; font-weight:600; margin:0 0 0.5rem; text-indent:0.3em; }
.perio-twins { display:grid; grid-template-columns: 1fr auto 1fr; align-items:center; gap:1.4rem; max-width:1000px; margin:0 auto; }
.perio-card { background:#fff; border:1.5px solid #E2EFE8; border-radius:18px; padding:2.1rem 1.9rem; box-shadow:0 12px 30px rgba(90,140,110,0.10); }
.perio-card--pro { border-color:#CFE6D8; background:linear-gradient(180deg,#FBFFFD 0%,#EFF8F3 100%); }
.perio-card-tag { display:inline-block; font-size:0.72rem; font-weight:800; letter-spacing:0.12em; color:#fff; background:#7FB89A; padding:0.32rem 0.9rem; border-radius:999px; margin-bottom:0.95rem; }
.perio-card--pro .perio-card-tag { background:#3F9B73; }
.perio-card h3 { font-family:'Noto Serif JP',serif; font-size:1.32rem; font-weight:600; color:#2C5C46; margin:0 0 0.75rem; }
.perio-card p { font-size:0.97rem; line-height:1.9; color:#4a5550; margin:0; }
.perio-card strong { color:#3F9B73; }
.perio-plus { font-size:2.4rem; color:#7FB89A; font-weight:300; text-align:center; line-height:1; }
.perio-conclusion { max-width:880px; margin:2.8rem auto 0; text-align:center; background:#E9F5EF; border:1px solid #D2E9DD; border-radius:18px; padding:2rem 2.2rem; }
.perio-conclusion p { margin:0; font-size:1.04rem; line-height:1.95; color:#2C5C46; }
.perio-conclusion strong { color:#2E8B5E; }
.perio-lead { max-width:820px; margin:0 auto 2.6rem; text-align:center; font-size:1.02rem; line-height:1.95; color:#4a5550; }
.perio-lead strong { color:#2E8B5E; }
@media (max-width:760px){
  .perio-section { padding:3.4rem 0; }
  .perio-twins { grid-template-columns:1fr; gap:1rem; }
  .perio-plus { transform:rotate(90deg); margin:0.2rem 0; }
}

/* === 1ミリチャレンジ リンクバナー(予防ページ) === */
.prev2-1mm-link { padding: 3.5rem 0; }
.onemm-banner {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 1.8rem;
  max-width: 1000px;
  margin: 0 auto;
  background: linear-gradient(135deg,#FFF1F5 0%,#FFFBF4 100%);
  border: 2px solid #FFD3DE;
  border-radius: 24px;
  padding: 2rem 2.4rem;
  text-decoration: none;
  color: inherit;
  box-shadow: 0 14px 34px rgba(255,140,160,0.16);
  transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}
.onemm-banner:hover { transform: translateY(-5px); border-color:#FF9DB5; box-shadow: 0 22px 48px rgba(255,140,160,0.26); }
.onemm-banner-badge {
  width: 94px; height: 94px; border-radius: 50%;
  background: linear-gradient(135deg,#FF7AA0,#FF4D6D);
  color:#fff; display:flex; flex-direction:column; align-items:center; justify-content:center;
  box-shadow: 0 8px 18px rgba(255,77,109,0.4);
  flex-shrink:0;
}
.onemm-banner-badge .obm-minus { font-size:1.05rem; line-height:1; font-weight:700; }
.onemm-banner-badge .obm-num { font-family:'Cormorant Garamond',serif; font-size:2.6rem; line-height:0.85; font-weight:700; }
.onemm-banner-badge .obm-unit { font-size:0.92rem; font-weight:700; letter-spacing:0.05em; }
.onemm-banner-text { display:block; }
.onemm-banner-eyebrow { display:block; font-size:0.78rem; font-weight:800; letter-spacing:0.14em; color:#E0588A; margin:0 0 0.4rem; }
.onemm-banner-title { display:block; font-family:'Noto Serif JP',serif; font-size:1.55rem; font-weight:600; color:#3a342e; margin:0 0 0.5rem; line-height:1.4; }
.onemm-banner-title strong { color:#FF4D6D; font-size:1.85rem; }
.onemm-banner-desc { display:block; font-size:0.94rem; line-height:1.8; color:#6a625c; margin:0; }
.onemm-banner-arr { display:inline-flex; align-items:center; gap:0.6rem; font-weight:700; color:#E0588A; white-space:nowrap; flex-shrink:0; }
.onemm-banner-arr .arr-circle { width:34px; height:34px; border-radius:50%; background:#FF6B86; color:#fff; display:inline-flex; align-items:center; justify-content:center; transition:transform .3s ease; }
.onemm-banner:hover .arr-circle { transform: translateX(3px); }
@media (max-width:760px){
  .onemm-banner { grid-template-columns: 1fr; text-align:center; justify-items:center; gap:1rem; padding:1.8rem; }
}

/* === 予防ページ リニューアル(2026-06) === */
.prev-intro { padding: 4.5rem 0 1rem; text-align: center; }
.prev-intro .section-inner { max-width: 820px; }
.prev-eyebrow { font-family:'Cormorant Garamond',serif; letter-spacing:0.3em; color:#5BA88B; font-size:0.98rem; font-weight:600; margin:0 0 0.5rem; text-indent:0.3em; }
.prev-sec { padding: 4.5rem 0; }
.prev-sec .section-inner { max-width: 1080px; }
.prev-sec-head { text-align:center; max-width:780px; margin:0 auto 2.6rem; }
.prev-reason { background: linear-gradient(180deg,#FFFFFF,#F4FAF6); }
/* 虫歯になる理由カード */
.reason-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1.2rem; }
.reason-card { background:#fff; border:1px solid #E6EFE9; border-radius:16px; padding:1.7rem 1.2rem; text-align:center; box-shadow:0 8px 22px rgba(90,140,110,0.08); }
.reason-ico { width:58px;height:58px;border-radius:50%;background:#EAF5EF;color:#3F9B73;display:flex;align-items:center;justify-content:center;margin:0 auto 0.9rem;font-family:'Noto Serif JP',serif;font-size:1.5rem;font-weight:600; }
.reason-card h3 { font-family:'Noto Serif JP',serif; font-size:1.12rem; color:#2C5C46; margin:0 0 0.5rem; }
.reason-card p { font-size:0.88rem; line-height:1.75; color:#5a635e; margin:0; }
.reason-note { text-align:center; margin:2.2rem auto 0; max-width:780px; font-size:1rem; line-height:1.9; color:#2C5C46; background:#E9F5EF; border:1px solid #D2E9DD; border-radius:16px; padding:1.4rem 1.8rem; }
.reason-note strong { color:#2E8B5E; }
/* 1ミリ＋歯周病イントロ */
.prev-perio-intro .prev2-h2 em { font-style:normal; color:#3F9B73; }
/* 定期検診 */
.prev-checkup { background: linear-gradient(180deg,#F4FAF6,#FFFFFF); }
.checkup-points { display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; max-width:980px; margin:0 auto; }
.checkup-card { background:linear-gradient(180deg,#FBFFFD,#F1F9F4); border:1px solid #D8EAE0; border-radius:18px; padding:1.9rem 1.6rem; }
.checkup-card .cp-num { font-family:'Cormorant Garamond',serif; font-size:1.7rem; color:#7FB89A; font-weight:600; line-height:1; }
.checkup-card h3 { font-family:'Noto Serif JP',serif; font-size:1.14rem; color:#2C5C46; margin:0.4rem 0 0.6rem; }
.checkup-card p { font-size:0.92rem; line-height:1.8; color:#5a635e; margin:0; }
@media (max-width:820px){
  .reason-grid { grid-template-columns:1fr 1fr; }
  .checkup-points { grid-template-columns:1fr; }
}

/* === 歯周病ファクト(予防ページ訴求) === */
.perio-facts { display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem; max-width:900px; margin:0 auto 2rem; }
.perio-fact { background:#fff; border:1px solid #EADFD6; border-radius:16px; padding:1.7rem 1rem; text-align:center; box-shadow:0 8px 22px rgba(150,110,90,0.08); }
.pf-num { display:block; font-family:'Noto Serif JP',serif; font-size:1.95rem; font-weight:700; color:#C0392B; line-height:1.25; margin-bottom:0.5rem; }
.pf-label { display:block; font-size:0.86rem; line-height:1.65; color:#5a635e; }
.perio-lead-strong { text-align:center; max-width:840px; margin:0 auto 2.4rem; font-size:1.05rem; line-height:1.95; color:#2C5C46; }
.perio-lead-strong strong { color:#2E8B5E; }
@media (max-width:760px){ .perio-facts{ grid-template-columns:1fr; } }

/* ===================================================================
   1mm challenge ページ専用スタイル (.mmc-)
   =================================================================== */
:root {
  --mmc-ink: #3a342e;
  --mmc-soft: #6b6258;
  --mmc-cream: #FFFCF7;
  --mmc-rainbow: linear-gradient(90deg, #FFD3DC 0%, #FFE6C7 22%, #FFF5C9 42%, #D4EEDB 62%, #D2EAF6 82%, #E6D8F8 100%);
  --mmc-conic: conic-gradient(from 0deg, #FFD3DC, #FFE6C7, #FFF5C9, #D4EEDB, #D2EAF6, #E6D8F8, #FFD3DC);
}
/* === ページ別シグネチャーカラー(提案A) === */
/* レインボー=HOMEのまま。サブページは body のクラスでアクセントだけ差し替え */
/* ベース色のパステル・グラデーション(マーカーはやわらかく、リングは少し発色を残す) */
body.accent-green {
  --mmc-rainbow: linear-gradient(95deg, #DDF3E4 0%, #AEE6C6 50%, #C2EFE3 100%);
  --mmc-conic: conic-gradient(from 210deg, #D7F0DD, #9BDEB8, #6FCBAE, #5CC4C0, #88D6AC, #D7F0DD);
}
body.accent-blue {
  --mmc-rainbow: linear-gradient(95deg, #E4F2FB 0%, #C2E1F5 50%, #D8DFFB 100%);
  --mmc-conic: conic-gradient(from 210deg, #DEEFF9, #A9D6EE, #86B4EC, #9FA8F0, #A9D6EE, #DEEFF9);
}
body.accent-amber {
  --mmc-rainbow: linear-gradient(95deg, #FBEFD6 0%, #F1DBA6 50%, #F7DCC4 100%);
  --mmc-conic: conic-gradient(from 210deg, #F8E8C6, #EDCB86, #E6B266, #F0A878, #EDCB86, #F8E8C6);
}
body.accent-coral {
  --mmc-rainbow: linear-gradient(95deg, #FFEBEF 0%, #FFCAD6 50%, #FBD3E8 100%);
  --mmc-conic: conic-gradient(from 210deg, #FFE3E7, #FFBBC8, #FB9FB8, #F58FC2, #FFBBC8, #FFE3E7);
}
.mmc-narrow { max-width: 760px !important; }
.mmc-mm {
  position: relative;
  white-space: nowrap;
  font-weight: 700;
  color: var(--mmc-ink);
}
.mmc-mm::after {
  content: "";
  position: absolute;
  left: -2px; right: -2px; bottom: 0.04em;
  height: 0.34em;
  background: var(--mmc-rainbow);
  border-radius: 4px;
  z-index: -1;
}
.mmc-mm-light::after { opacity: 0.92; }

/* ---- HERO ---- */
.mmc-hero {
  position: relative;
  overflow: hidden;
  padding: clamp(7rem, 16vw, 11rem) 1.5rem clamp(5rem, 10vw, 7rem);
  text-align: center;
  background:
    radial-gradient(120% 90% at 18% 0%, #FFF4F7 0%, transparent 55%),
    radial-gradient(120% 90% at 88% 12%, #EEF7F2 0%, transparent 55%),
    linear-gradient(180deg, #FFFDF9 0%, #FBF6EE 100%);
}
.mmc-hero .section-inner { position: relative; z-index: 2; }
.mmc-hero-en {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(2.6rem, 7vw, 4.6rem);
  font-weight: 500;
  letter-spacing: 0.04em;
  line-height: 1;
  margin: 0 0 1.4rem;
  background: linear-gradient(95deg, #E59CB0, #E8B57A, #9ED1AE, #8FC2E0, #C2A6E6);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
}
.mmc-hero-jp {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(1.7rem, 4.6vw, 2.9rem);
  font-weight: 500;
  line-height: 1.7;
  letter-spacing: 0.06em;
  color: var(--mmc-ink);
  margin: 0;
}
.mmc-hero-blob {
  position: absolute; border-radius: 50%; filter: blur(8px); opacity: 0.5; z-index: 1;
}
.mmc-blob-1 { width: 220px; height: 220px; left: -60px; top: 18%; background: radial-gradient(circle, #FFE0E8, transparent 70%); }
.mmc-blob-2 { width: 280px; height: 280px; right: -80px; bottom: -40px; background: radial-gradient(circle, #DDF0E6, transparent 70%); }
.mmc-hero-spark { position: absolute; color: #F0C24A; opacity: 0.7; z-index: 1; animation: mmcTwinkle 3.4s ease-in-out infinite; }
.mmc-hero-spark.s1 { width: 26px; height: 26px; left: 16%; top: 30%; }
.mmc-hero-spark.s2 { width: 18px; height: 18px; right: 20%; top: 60%; animation-delay: 1.2s; }
@keyframes mmcTwinkle { 0%,100%{ transform: scale(.8) rotate(0); opacity:.35 } 50%{ transform: scale(1.15) rotate(20deg); opacity:.85 } }

/* ---- 共通セクション ---- */
.mmc-lead, .mmc-why, .mmc-celebrate { padding: clamp(4.5rem, 9vw, 7rem) 1.5rem; background: var(--mmc-cream); }
.mmc-future { padding: clamp(4.5rem, 9vw, 7rem) 1.5rem; background: linear-gradient(180deg, #F4FAF6 0%, #EFF7F1 100%); }
.mmc-steps { padding: clamp(4.5rem, 9vw, 7rem) 1.5rem; background: #FBF6EE; }
.mmc-together { padding: clamp(4.5rem, 9vw, 7rem) 1.5rem; background: linear-gradient(180deg, #FFF6F8 0%, #FDEFF3 100%); }

.mmc-sec-head { text-align: center; margin-bottom: 2.8rem; }
.mmc-eyebrow {
  font-family: 'Cormorant Garamond', serif;
  font-size: 0.95rem; font-weight: 600; letter-spacing: 0.34em;
  color: #B79A6E; margin: 0 0 0.9rem; text-transform: uppercase;
}
.mmc-h2 {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(1.45rem, 3.8vw, 2.1rem);
  font-weight: 500; line-height: 1.7; letter-spacing: 0.04em;
  color: var(--mmc-ink); margin: 0;
}
.mmc-h2-light { color: #6b4a52; }
/* 治療への考え方「当院の虫歯治療」見出しを大きく */
.tx-philo .mmc-h2 { font-size: clamp(1.9rem, 4.8vw, 2.9rem); }
.mmc-h2-lead {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(1.15rem, 2.8vw, 1.5rem);
  line-height: 1.8; color: #2C5C46; margin: 1.2rem 0 0;
}
.mmc-h2-lead strong { color: #2E8B5E; }
.mmc-body {
  font-size: 1.02rem; line-height: 2.05; color: var(--mmc-soft);
  margin: 0 0 1.5rem; letter-spacing: 0.02em;
}
.mmc-body strong { color: var(--mmc-ink); font-weight: 700; }
.mmc-body-center { text-align: center; }
.mmc-body-strong { display: inline-block; margin-top: 0.6rem; color: var(--mmc-ink); font-weight: 700; }

/* ---- リード ---- */
.mmc-lead-big {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(1.7rem, 5vw, 2.8rem);
  font-weight: 500; line-height: 1.85; letter-spacing: 0.05em;
  text-align: center; color: var(--mmc-ink); margin: 0 0 2.8rem;
}
.mmc-change-list {
  list-style: none; margin: 0 auto 2.6rem; padding: 0; max-width: 460px;
  display: flex; flex-direction: column; gap: 0.9rem;
}
.mmc-change-list li {
  position: relative; background: #fff; border: 1px solid #EFE6DA;
  border-radius: 14px; padding: 1rem 1.2rem 1rem 3rem;
  font-size: 1.05rem; color: var(--mmc-ink);
  box-shadow: 0 6px 18px rgba(150,120,90,0.07);
}
.mmc-change-list li::before {
  content: ""; position: absolute; left: 1.1rem; top: 50%; transform: translateY(-50%);
  width: 11px; height: 11px; border-radius: 50%;
  background: linear-gradient(135deg, #9ED1AE, #6BBE93);
}
.mmc-change-list strong { font-weight: 700; }
.mmc-lead-note {
  text-align: center; font-family: 'Noto Serif JP', serif;
  font-size: clamp(1.05rem, 2.6vw, 1.3rem); line-height: 1.95;
  color: var(--mmc-ink); margin: 0 0 2.6rem;
}
.mmc-lead-note strong { color: #2E8B5E; }
.mmc-lead-sign {
  text-align: center; font-size: 1.05rem; line-height: 1.95; color: var(--mmc-soft);
  margin: 0;
}
.mmc-name {
  font-family: 'Noto Serif JP', serif; font-weight: 700; font-size: 1.2rem;
  color: var(--mmc-ink); background: var(--mmc-rainbow);
  background-size: 100% 0.4em; background-position: 0 92%; background-repeat: no-repeat;
}

/* ---- 未来:3つの想い ---- */
.mmc-wishes {
  list-style: none; margin: 0 0 2rem; padding: 0;
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.3rem;
}
.mmc-wish {
  background: #fff; border-radius: 18px; padding: 2rem 1.3rem;
  text-align: center; border: 1px solid #DCEAE0;
  box-shadow: 0 12px 28px rgba(70,140,100,0.08);
}
.mmc-wish-ico {
  display: inline-flex; align-items: center; justify-content: center;
  width: 58px; height: 58px; margin-bottom: 1rem; color: #4FB07E;
}
.mmc-wish-ico svg { width: 100%; height: 100%; }
.mmc-wish p { margin: 0; font-size: 0.98rem; line-height: 1.75; color: var(--mmc-ink); }
.mmc-wish strong { color: #2E8B5E; font-weight: 700; }

/* ---- なぜ1ミリ ---- */
.mmc-ideal {
  display: flex; flex-direction: column; align-items: center; gap: 0.7rem;
  margin: 0 0 2rem; text-align: center;
}
.mmc-ideal-q {
  font-family: 'Noto Serif JP', serif; font-size: 1.2rem; color: #8a7f72;
}
.mmc-ideal-note { font-size: 0.95rem; color: #b0a596; letter-spacing: 0.06em; margin-top: 0.3rem; }
.mmc-reality {
  display: flex; justify-content: center; flex-wrap: wrap; gap: 0.8rem; margin: 0 0 2rem;
}
.mmc-reality span {
  background: #FBEFD6; color: #9a6f33; border-radius: 999px;
  padding: 0.5rem 1.3rem; font-size: 0.98rem; font-weight: 500;
}
.mmc-first-trio {
  display: flex; justify-content: center; flex-wrap: wrap; gap: 1.6rem;
  margin: 2.6rem 0; padding: 2rem 1rem;
  border-top: 1px dashed #E3D6C4; border-bottom: 1px dashed #E3D6C4;
}
.mmc-first-trio span {
  font-family: 'Noto Serif JP', serif; font-size: clamp(1.2rem, 3vw, 1.6rem);
  color: var(--mmc-ink);
}
.mmc-first-trio em {
  font-style: normal; font-weight: 700; position: relative;
  padding: 0 0.15em;
}
.mmc-first-trio em::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0.05em; height: 0.36em;
  background: var(--mmc-rainbow); border-radius: 4px; z-index: -1;
}

/* ---- やっていること:4ステップ ---- */
.mmc-step-grid {
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.6rem;
  max-width: 980px; margin: 0 auto;
}
.mmc-step {
  position: relative; background: #fff; border-radius: 20px;
  padding: 2.4rem 2rem 2.1rem; border: 1px solid #EFE4D5;
  box-shadow: 0 14px 32px rgba(150,120,80,0.08);
}
.mmc-step-num {
  font-family: 'Cormorant Garamond', serif; font-size: 2.6rem; font-weight: 600;
  line-height: 1; color: transparent;
  background: linear-gradient(135deg, #E8B57A, #D49A55);
  -webkit-background-clip: text; background-clip: text;
  margin-bottom: 0.5rem;
}
.mmc-step-title {
  font-family: 'Noto Serif JP', serif; font-size: 1.3rem; font-weight: 600;
  color: var(--mmc-ink); margin: 0 0 1rem; padding-bottom: 0.7rem;
  border-bottom: 2px solid #F2E4CE;
}
.mmc-step p { font-size: 0.97rem; line-height: 1.95; color: var(--mmc-soft); margin: 0 0 0.9rem; }
.mmc-step p:last-child { margin-bottom: 0; }
.mmc-step strong { color: var(--mmc-ink); font-weight: 700; }
.mmc-step-talk {
  display: flex; flex-direction: column; gap: 0.6rem; margin: 0 0 1rem;
}
.mmc-step-talk span {
  background: #F4FAF6; border-left: 3px solid #8ECFA8; border-radius: 0 10px 10px 0;
  padding: 0.6rem 0.9rem; font-size: 0.95rem; color: #2C5C46;
}
.mmc-step-list { margin: 0 0 1rem; padding: 0; list-style: none; }
.mmc-step-list li {
  position: relative; padding: 0.35rem 0 0.35rem 1.4rem; font-size: 0.96rem; color: var(--mmc-ink);
}
.mmc-step-list li::before {
  content: ""; position: absolute; left: 0; top: 0.85em; width: 7px; height: 7px;
  border-radius: 50%; background: #E8B57A;
}
.mmc-step-quote {
  font-family: 'Noto Serif JP', serif; font-size: 1.05rem; color: #8a7f72;
  border-left: 3px solid #E8C99A; padding-left: 0.9rem;
}

/* ---- ふたりの挑戦 ---- */
.mmc-duo {
  display: flex; align-items: stretch; justify-content: center; gap: 1rem;
  margin: 0 0 2.4rem; flex-wrap: wrap;
}
.mmc-duo-card {
  flex: 1 1 0; min-width: 240px; background: #fff; border-radius: 18px;
  padding: 1.8rem 1.5rem; border: 1px solid #F2D9E0; text-align: center;
  box-shadow: 0 12px 26px rgba(180,120,140,0.1);
}
.mmc-duo-card--us { border-color: #DCEAE0; }
.mmc-duo-tag {
  display: inline-block; font-size: 0.8rem; letter-spacing: 0.14em; font-weight: 700;
  color: #fff; background: #E892AB; border-radius: 999px; padding: 0.3rem 1.1rem; margin-bottom: 1rem;
}
.mmc-duo-card--us .mmc-duo-tag { background: #6BBE93; }
.mmc-duo-card p { margin: 0; font-size: 1.02rem; line-height: 1.8; color: var(--mmc-ink); }
.mmc-duo-plus {
  display: flex; align-items: center; font-size: 1.8rem; color: #C9A98F; font-weight: 300;
}
.mmc-self-q {
  display: flex; flex-direction: column; align-items: center; gap: 0.7rem;
  margin: 0 0 2.2rem; text-align: center;
}
.mmc-self-q span {
  font-family: 'Noto Serif JP', serif; font-size: 1.08rem; color: #8a6f5e;
}

/* ---- 一緒に喜ぶ ---- */
.mmc-celebrate-lead {
  text-align: center; font-family: 'Noto Serif JP', serif;
  font-size: clamp(1.5rem, 4vw, 2.2rem); font-weight: 500; line-height: 1.8;
  color: var(--mmc-ink); margin: 0 0 2.4rem;
}
.mmc-celebrate-em {
  background: var(--mmc-rainbow);
  background-size: 100% 0.42em; background-position: 0 90%; background-repeat: no-repeat;
}
.mmc-celebrate-results {
  display: flex; flex-direction: column; align-items: center; gap: 0.8rem;
  max-width: 460px; margin: 0 auto 2.4rem;
}
.mmc-celebrate-results span {
  width: 100%; text-align: center; background: #fff; border: 1px solid #EFE6DA;
  border-radius: 12px; padding: 0.85rem 1rem; font-size: 1rem; color: var(--mmc-ink);
  box-shadow: 0 6px 16px rgba(150,120,90,0.06);
}
.mmc-effort {
  list-style: none; display: flex; justify-content: center; flex-wrap: wrap; gap: 0.8rem;
  margin: 0 0 2rem; padding: 0;
}
.mmc-effort li {
  background: #FCEFF3; color: #b8607e; border-radius: 999px;
  padding: 0.55rem 1.4rem; font-size: 0.98rem; font-weight: 600;
}

/* ---- 締め ---- */
.mmc-closing {
  position: relative; overflow: hidden; text-align: center;
  padding: clamp(5rem, 10vw, 8rem) 1.5rem;
  background:
    radial-gradient(120% 100% at 50% 0%, #FFF6F0 0%, transparent 60%),
    linear-gradient(180deg, #F6FAF6 0%, #EEF6F0 100%);
}
.mmc-closing .section-inner { position: relative; z-index: 2; }
.mmc-closing-blob {
  position: absolute; width: 360px; height: 360px; left: 50%; top: -120px;
  transform: translateX(-50%); border-radius: 50%; z-index: 1;
  background: radial-gradient(circle, rgba(255,224,232,0.6), transparent 70%); filter: blur(10px);
}
.mmc-closing-h {
  font-family: 'Noto Serif JP', serif; font-size: clamp(1.7rem, 4.6vw, 2.6rem);
  font-weight: 500; line-height: 1.7; letter-spacing: 0.04em;
  color: var(--mmc-ink); margin: 0 0 2rem;
}
.mmc-closing-body {
  font-size: 1.04rem; line-height: 2.05; color: var(--mmc-soft); margin: 0 0 1.5rem;
}
.mmc-closing-body strong { color: #2E8B5E; font-weight: 700; }
.mmc-closing-sign {
  font-family: 'Noto Serif JP', serif; font-size: clamp(1.2rem, 3vw, 1.6rem);
  font-weight: 500; line-height: 1.85; color: var(--mmc-ink); margin: 2.4rem 0 0;
}

/* ---- レスポンシブ ---- */
@media (max-width: 760px) {
  .mmc-wishes { grid-template-columns: 1fr; }
  .mmc-step-grid { grid-template-columns: 1fr; }
  .mmc-duo-plus { width: 100%; justify-content: center; padding: 0.4rem 0; }
}

/* ===================================================================
   予防ページ・改善ストーリー専用 (.prv-)  ※ .mmc- ベースを併用
   =================================================================== */
.prv-hero-jp { letter-spacing: 0.05em; }
.prv-strike {
  position: relative; color: #b6a89a; font-weight: 500;
}
.prv-strike::after {
  content: ""; position: absolute; left: -4px; right: -4px; top: 52%; height: 3px;
  background: #d98f8f; border-radius: 3px; transform: rotate(-4deg);
}

/* 改善リスト(▾ 出血が減る…) */
.prv-improve-list {
  list-style: none; margin: 0 auto 2.6rem; padding: 0; max-width: 480px;
  display: flex; flex-direction: column; gap: 0.8rem;
}
.prv-improve-list li {
  display: flex; align-items: center; gap: 0.7rem;
  background: #fff; border: 1px solid #DCEAE0; border-radius: 14px;
  padding: 0.95rem 1.3rem; font-size: 1.08rem; color: var(--mmc-ink);
  box-shadow: 0 6px 18px rgba(70,140,100,0.07);
  font-family: 'Noto Serif JP', serif;
}
.prv-improve-list li strong { color: #2E8B5E; font-weight: 700; }
.prv-improve-list .pi-ico {
  display: inline-flex; align-items: center; justify-content: center;
  width: 26px; height: 26px; flex: none; border-radius: 50%;
  background: linear-gradient(135deg, #9ED1AE, #6BBE93); color: #fff;
  font-size: 0.85rem; line-height: 1;
}
.prv-improve-list--mini { max-width: 440px; margin-bottom: 2rem; }

/* PCR改善グラフ */
.prv-graph-sec { padding: clamp(4.5rem, 9vw, 7rem) 1.5rem; background: #FBF6EE; }
.prv-graph-note { font-size: 0.9rem; color: #9a8f80; margin: 0.8rem 0 0; letter-spacing: 0.04em; }
.prv-graphs {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.6rem;
  max-width: 920px; margin: 0 auto 2.6rem;
}
.prv-graph {
  background: #fff; border-radius: 20px; padding: 1.8rem 1.4rem 1.6rem;
  border: 1px solid #EFE4D5; box-shadow: 0 14px 30px rgba(150,120,80,0.09);
  text-align: center;
}
.pg-name {
  display: inline-block; font-family: 'Noto Serif JP', serif; font-weight: 600;
  font-size: 1.1rem; color: var(--mmc-ink); margin-bottom: 1.2rem;
}
.pg-track {
  display: flex; align-items: flex-end; justify-content: center; gap: 0.6rem;
  height: 200px; margin-bottom: 1rem;
}
.pg-col { display: flex; flex-direction: column; align-items: center; justify-content: flex-end; height: 100%; width: 64px; }
.pg-val {
  font-family: 'Cormorant Garamond', serif; font-size: 1.7rem; font-weight: 600;
  line-height: 1; color: #D98F8F; margin-bottom: 0.4rem;
}
.pg-val i { font-style: normal; font-size: 1rem; }
.pg-val--good { color: #2E8B5E; }
.pg-bar {
  width: 46px; border-radius: 8px 8px 0 0; min-height: 8px;
  animation: pgGrow 1.1s cubic-bezier(.2,.7,.3,1) both;
  transform-origin: bottom;
}
.pg-before { background: linear-gradient(180deg, #F2B6B6, #E08C8C); }
.pg-after  { background: linear-gradient(180deg, #9ED1AE, #5FB487); }
@keyframes pgGrow { from { transform: scaleY(0); } to { transform: scaleY(1); } }
.pg-cap {
  margin-top: 0.5rem; font-size: 0.72rem; letter-spacing: 0.12em; color: #b0a596;
  text-transform: uppercase; font-family: 'Cormorant Garamond', serif; font-weight: 600;
}
.pg-arrow { align-self: center; color: #C9A98F; font-size: 1.2rem; padding-bottom: 1.6rem; }
.pg-drop {
  display: inline-block; font-family: 'Cormorant Garamond', serif; font-weight: 600;
  font-size: 1.15rem; color: #fff; background: linear-gradient(135deg, #6BBE93, #4FA877);
  border-radius: 999px; padding: 0.28rem 1.1rem;
}
.pg-drop small { font-size: 0.7rem; }

/* 検査アイコン */
.prv-exam-sec .mmc-body { margin-bottom: 2.4rem; }
.prv-exams {
  display: flex; flex-wrap: wrap; justify-content: center; gap: 1.2rem;
  max-width: 900px; margin: 0 auto;
}
.prv-exam {
  display: flex; flex-direction: column; align-items: center; gap: 0.7rem;
  background: #fff; border: 1px solid #EFE4D5; border-radius: 18px;
  padding: 1.6rem 1.2rem; width: 150px;
  box-shadow: 0 10px 24px rgba(150,120,80,0.08);
}
.pe-ico {
  display: inline-flex; align-items: center; justify-content: center;
  width: 64px; height: 64px; border-radius: 50%; font-size: 1.9rem;
  background: linear-gradient(135deg, #FDF3DF, #F6E4C2);
}
.pe-name { font-size: 0.96rem; font-weight: 600; color: var(--mmc-ink); }

/* 全身の健康 */
.prv-systemic-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.3rem; margin: 0 0 2rem;
}
.prv-sys-card {
  background: #fff; border-radius: 18px; padding: 2rem 1.3rem; text-align: center;
  border: 1px solid #DCEAE0; box-shadow: 0 12px 28px rgba(70,140,100,0.08);
}
.prv-sys-card .ps-ico {
  display: inline-flex; align-items: center; justify-content: center;
  width: 56px; height: 56px; margin-bottom: 0.9rem; color: #4FB07E;
}
.prv-sys-card .ps-ico svg { width: 100%; height: 100%; }
.prv-sys-card h3 {
  font-family: 'Noto Serif JP', serif; font-size: 1.12rem; font-weight: 600;
  color: var(--mmc-ink); margin: 0 0 0.7rem;
}
.prv-sys-card p { font-size: 0.92rem; line-height: 1.8; color: var(--mmc-soft); margin: 0; }

/* 記録リスト */
.prv-record-list {
  display: flex; flex-direction: column; align-items: center; gap: 0.8rem;
  max-width: 440px; margin: 0 auto 2rem;
}
.prv-record-list span {
  width: 100%; text-align: center; background: #fff; border: 1px solid #EFE6DA;
  border-radius: 12px; padding: 0.85rem 1rem; font-size: 1rem; color: var(--mmc-ink);
  box-shadow: 0 6px 16px rgba(150,120,90,0.06); font-family: 'Noto Serif JP', serif;
}

/* リンクバナー(手帳・1mm 共通) */
.prv-banner {
  display: flex; align-items: center; gap: 1.4rem; margin: 2.6rem auto 0;
  max-width: 680px; padding: 1.6rem 1.8rem; border-radius: 20px;
  text-decoration: none; color: var(--mmc-ink);
  transition: transform .25s ease, box-shadow .25s ease;
}
.prv-banner:hover { transform: translateY(-4px); }
.prv-banner--notebook {
  background: linear-gradient(135deg, #F4FAF6, #EAF6EE);
  border: 1px solid #CDE8D6; box-shadow: 0 16px 34px rgba(70,140,100,0.12);
}
.prv-banner--onemm {
  background: linear-gradient(135deg, #FFF6F8, #FDEFF3);
  border: 1px solid #F4D7E0; box-shadow: 0 16px 34px rgba(180,120,140,0.12);
}
.prv-banner-ico {
  flex: none; width: 64px; height: 64px; display: inline-flex; align-items: center; justify-content: center;
  border-radius: 16px; background: #fff; color: #4FB07E;
}
.prv-banner-ico svg { width: 36px; height: 36px; }
.prv-banner-badge {
  flex: none; width: 70px; height: 70px; border-radius: 50%; background: #fff;
  display: flex; align-items: baseline; justify-content: center;
  font-family: 'Cormorant Garamond', serif; color: #E892AB; box-shadow: 0 6px 16px rgba(180,120,140,0.18);
}
.prv-banner-badge .obm-minus { font-size: 1.4rem; font-weight: 600; }
.prv-banner-badge .obm-num { font-size: 2.1rem; font-weight: 600; line-height: 1; }
.prv-banner-badge .obm-unit { font-size: 0.95rem; font-weight: 600; }
.prv-banner-text { flex: 1; display: flex; flex-direction: column; gap: 0.3rem; }
.prv-banner-eyebrow { font-size: 0.78rem; letter-spacing: 0.1em; color: #9a8f80; font-weight: 600; }
.prv-banner--onemm .prv-banner-eyebrow { color: #c77f97; }
.prv-banner-title {
  font-family: 'Cormorant Garamond','Noto Serif JP', serif; font-size: 1.4rem; font-weight: 600;
  color: var(--mmc-ink);
}
.prv-banner-desc { font-size: 0.88rem; line-height: 1.7; color: var(--mmc-soft); }
.prv-banner-arr {
  flex: none; display: inline-flex; align-items: center; gap: 0.5rem;
  font-size: 0.85rem; font-weight: 600; color: #6b6258;
}
.prv-banner-arr .arr-circle {
  width: 30px; height: 30px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
  color: #fff;
}
.prv-banner--notebook .arr-circle { background: linear-gradient(135deg, #6BBE93, #4FA877); }
.prv-banner--onemm .arr-circle { background: linear-gradient(135deg, #E892AB, #D46E8C); }

/* 締め:守りたいもの */
.prv-protect-list {
  list-style: none; margin: 0 auto 2.4rem; padding: 0; max-width: 420px;
  display: flex; flex-direction: column; gap: 0.8rem;
}
.prv-protect-list li {
  font-family: 'Noto Serif JP', serif; font-size: clamp(1.1rem, 2.8vw, 1.35rem);
  color: var(--mmc-ink); padding: 0.7rem 0; position: relative;
}
.prv-protect-list li::before {
  content: "♥"; color: #E892AB; margin-right: 0.6rem; font-size: 0.9em;
}

@media (max-width: 760px) {
  .prv-graphs { grid-template-columns: 1fr; max-width: 360px; }
  .prv-systemic-grid { grid-template-columns: 1fr; }
  .prv-banner { flex-direction: column; text-align: center; gap: 1rem; }
  .prv-banner-text { align-items: center; }
}

/* ===================================================================
   インパクト・レイアウト共通部品 (.fr feature-row / .ph-frame 写真枠)
   ※ 予防ページ・1mm challenge ページ共用
   =================================================================== */

/* ---- 方向つきスクロール演出 ---- */
.reveal.rv-left  { transform: translateX(-46px); }
.reveal.rv-right { transform: translateX(46px); }
.reveal.rv-zoom  { transform: scale(.9); }
.reveal.rv-left.visible,
.reveal.rv-right.visible,
.reveal.rv-zoom.visible { transform: none; }

/* ---- 写真プレースホルダー枠(あとで <img> を入れるだけ) ---- */
.ph-frame {
  position: relative; overflow: hidden; border-radius: 26px;
  background: linear-gradient(135deg, #FBF3E8 0%, #F4E9F1 100%);
  border: 2px dashed #DAC9B6; aspect-ratio: 4 / 3;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 22px 48px rgba(150,120,90,0.12);
}
.ph-frame::before {
  content: "PHOTO"; position: absolute; top: 14px; left: 14px; z-index: 3;
  font-family: 'Cormorant Garamond', serif; font-size: 0.72rem; letter-spacing: 0.22em;
  color: #fff; background: rgba(60,52,46,0.55); padding: 0.2rem 0.7rem; border-radius: 999px;
}
.ph-frame::after { /* シマー */
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: linear-gradient(115deg, transparent 30%, rgba(255,255,255,0.5) 50%, transparent 70%);
  background-size: 240% 100%; animation: phShimmer 3.6s ease-in-out infinite;
}
@keyframes phShimmer { 0%{ background-position: 140% 0 } 100%{ background-position: -60% 0 } }
.ph-holder {
  position: relative; z-index: 2; display: flex; flex-direction: column; align-items: center;
  gap: 0.6rem; color: #b29c84; text-align: center; padding: 1.2rem;
}
.ph-ico {
  width: 56px; height: 56px; display: inline-flex; align-items: center; justify-content: center;
  border-radius: 50%; background: rgba(255,255,255,0.7); color: #C9A98F;
}
.ph-ico svg { width: 30px; height: 30px; }
.ph-label { font-size: 0.9rem; line-height: 1.5; letter-spacing: 0.03em; font-weight: 600; }
.ph-frame img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 4; transition: transform .7s ease; }
/* <img> が入ったら枠線・プレースホルダー・シマーを自動的に隠す */
.ph-frame:has(img) { border: none; background: none; }
.ph-frame:has(img)::before,
.ph-frame:has(img)::after { display: none; }
.ph-frame:has(img) .ph-holder { display: none; }

/* ---- フィーチャー行(大きな写真+テキストの交互レイアウト) ---- */
.fr-stack { display: flex; flex-direction: column; gap: clamp(3rem, 7vw, 6rem); }
.fr {
  position: relative; display: grid; grid-template-columns: 1.04fr 1fr;
  gap: clamp(2rem, 5vw, 4.4rem); align-items: center; max-width: 1080px; margin: 0 auto;
}
.fr--rev .fr-figure { order: 2; }
.fr-figure { position: relative; }
.fr-photo { width: 100%; }
.fr-blob {
  position: absolute; width: 60%; height: 60%; border-radius: 50%; filter: blur(8px);
  z-index: -1; opacity: .55;
}
.fr[data-color="mint"]   .fr-blob { background: radial-gradient(circle,#CFEFDD,transparent 70%); top:-8%; left:-8%; }
.fr[data-color="pink"]   .fr-blob { background: radial-gradient(circle,#FBDCE6,transparent 70%); bottom:-8%; right:-8%; }
.fr[data-color="yellow"] .fr-blob { background: radial-gradient(circle,#FBEFC9,transparent 70%); top:-8%; right:-8%; }
.fr[data-color="sky"]    .fr-blob { background: radial-gradient(circle,#D2E8F6,transparent 70%); bottom:-8%; left:-8%; }
.fr[data-color="coral"]  .fr-blob { background: radial-gradient(circle,#FFE0D2,transparent 70%); top:-8%; left:-8%; }
.fr-spark {
  position: absolute; color: #F0C24A; width: 22px; height: 22px; z-index: 2;
  animation: mmcTwinkle 3.2s ease-in-out infinite;
}
.fr-spark.s1 { top: -14px; right: 8%; }
.fr-spark.s2 { bottom: 6%; left: -12px; width: 16px; height: 16px; animation-delay: 1.1s; }
.fr:hover .fr-photo img { transform: scale(1.05); }

.fr-head { display: flex; align-items: center; gap: 1rem; margin-bottom: 1.1rem; }
.fr-num {
  position: relative; flex: none; width: 86px; height: 86px;
  display: inline-flex; align-items: center; justify-content: center;
  font-family: 'Cormorant Garamond', serif; font-size: 2.3rem; font-weight: 600; color: #2c2620;
}
.fr-num::before {
  content: ""; position: absolute; inset: 0; border-radius: 50%;
  background: var(--mmc-conic);
  -webkit-mask:
    radial-gradient(farthest-side, transparent calc(100% - 3px), #000 calc(100% - 3px)),
    repeating-conic-gradient(#000 0 7deg, transparent 7deg 13deg);
  -webkit-mask-composite: source-in;
          mask:
    radial-gradient(farthest-side, transparent calc(100% - 3px), #000 calc(100% - 3px)),
    repeating-conic-gradient(#000 0 7deg, transparent 7deg 13deg);
          mask-composite: intersect;
  animation: vsPointPulse 2.6s ease-in-out infinite;
}
.fr-eyebrow {
  font-family: 'Cormorant Garamond', serif; font-size: 0.92rem; font-weight: 600;
  letter-spacing: 0.26em; text-transform: uppercase; color: #B79A6E; line-height: 1.4;
}
.fr-title {
  font-family: 'Noto Serif JP', serif; font-size: clamp(1.55rem, 3.6vw, 2.25rem);
  font-weight: 500; line-height: 1.55; letter-spacing: 0.03em; color: #3a342e; margin: 0 0 1rem;
}
.fr-catch {
  font-family: 'Noto Serif JP', serif; font-size: clamp(1.1rem, 2.6vw, 1.35rem);
  line-height: 1.7; color: #3a342e; margin: 0 0 1rem; font-weight: 500;
}
.fr-catch mark {
  background: var(--mmc-rainbow);
  background-size: 100% 42%; background-position: 0 88%; background-repeat: no-repeat;
  color: #3a342e; padding: 0 0.1em;
}
.fr-desc { font-size: 1rem; line-height: 2; color: #6b6258; margin: 0 0 1.2rem; }
.fr-desc strong { color: #3a342e; font-weight: 700; }

/* ---- PCR データパネル(主役・濃いトーンで強調) ---- */
.prv-graph-sec.is-impact {
  background: linear-gradient(165deg, #2F5D49 0%, #244A3A 100%);
  color: #fff; border-radius: 0;
}
.prv-graph-sec.is-impact .mmc-h2 { color: #fff; }
.prv-graph-sec.is-impact .mmc-eyebrow { color: #9FD9B8; }
.prv-graph-sec.is-impact .prv-graph-note { color: rgba(255,255,255,0.7); }
.prv-graph-sec.is-impact .mmc-body { color: rgba(255,255,255,0.85); }
.prv-graph-sec.is-impact .mmc-body strong { color: #fff; }
.prv-graph-sec.is-impact .prv-graph { background: rgba(255,255,255,0.97); }

/* 数字カウントアップ用の大きい表示 */
.pg-val .stat-num { font-style: normal; }

/* ---- 写真ストリップ(検査・くらし) ---- */
.ph-strip {
  display: grid; grid-template-columns: repeat(5, 1fr); gap: 1rem;
  max-width: 1000px; margin: 0 auto;
}
.ph-strip .ph-cell { display: flex; flex-direction: column; gap: 0.7rem; align-items: center; }
.ph-strip .ph-frame { width: 100%; aspect-ratio: 3 / 4; border-radius: 18px; }
.ph-strip .ph-cap {
  font-size: 0.92rem; font-weight: 600; color: #3a342e; text-align: center;
  display: flex; align-items: center; gap: 0.4rem;
}
.ph-strip .ph-cap .pe-emoji { font-size: 1.05rem; }
.ph-strip--4 { grid-template-columns: repeat(4, 1fr); max-width: 880px; }
.ph-strip--3 { grid-template-columns: repeat(3, 1fr); max-width: 760px; }

/* ---- レスポンシブ ---- */
@media (max-width: 880px) {
  .fr { grid-template-columns: 1fr; gap: 1.6rem; }
  .fr--rev .fr-figure { order: 0; }
  .ph-strip, .ph-strip--4 { grid-template-columns: repeat(2, 1fr); }
  .ph-strip--3 { grid-template-columns: 1fr; max-width: 360px; }
}

/* ---- 予防 HERO のワイド写真 ---- */
.prv-hero { padding-bottom: clamp(4rem,9vw,6.5rem) !important; }
.prv-hero-photo {
  position: relative; z-index: 2; max-width: 1100px;
  margin: clamp(2.5rem, 5vw, 4rem) auto 0; padding: 0 1.5rem;
  transform: translateY(40px);
}
.ph-frame--wide { aspect-ratio: 21 / 8; border-radius: 28px; }
@media (max-width: 760px){ .ph-frame--wide { aspect-ratio: 4 / 3; } }

/* ---- 健康手帳:書類スキャン用フレーム(中身を切らずに全部見せる) ---- */
.ph-frame.is-doc { background: #fff; border: 1px solid #EFE4D5; aspect-ratio: 4 / 3; cursor: zoom-in; }
.ph-frame.is-doc:has(img) { background: #fff; border: 1px solid #EFE4D5; box-shadow: 0 22px 48px rgba(150,120,90,0.14); }
.ph-frame.is-doc img { object-fit: contain; padding: 5%; transition: transform .5s ease; }
.ph-frame.is-doc:hover img { transform: scale(1.03); }
.ph-frame.is-doc::before { display: none; }

/* ---- 健康手帳:ヒーローの実写ブック ---- */
.nbk-hero-photo {
  position: relative; z-index: 2; max-width: 620px;
  margin: clamp(2.2rem, 5vw, 3.4rem) auto 0; padding: 0 1.5rem;
}
.nbk-book {
  position: relative; border-radius: 24px; overflow: hidden;
  box-shadow: 0 30px 60px rgba(150,120,90,0.22);
}
.nbk-book img { width: 100%; display: block; }
.nbk-sticker {
  position: absolute; z-index: 3; font-family: 'Noto Serif JP', serif; font-weight: 700;
  font-size: 0.92rem; color: #8a5a2a; background: #fff; padding: 0.5rem 1.1rem;
  border-radius: 999px; box-shadow: 0 8px 20px rgba(150,110,60,0.22);
  transform: rotate(-6deg);
}
.nbk-sticker--1 { top: -14px; left: -10px; }
.nbk-sticker--2 { bottom: -14px; right: -6px; transform: rotate(5deg); background: linear-gradient(135deg,#FFE6C7,#FFD3A6); color: #9a6a22; }

/* ---- 健康手帳:理由カード3枚 ---- */
.nbk-reasons {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.3rem; max-width: 980px; margin: 0 auto;
}
.nbk-reason {
  background: #fff; border-radius: 18px; padding: 2rem 1.5rem; border: 1px solid #EFE4D5;
  box-shadow: 0 12px 28px rgba(150,120,80,0.08); text-align: left;
}
.nbk-reason .nbk-rnum {
  display: inline-block; font-family: 'Cormorant Garamond', serif; font-size: 2.2rem; font-weight: 600;
  line-height: 1; color: transparent; background: linear-gradient(135deg,#E8B57A,#D49A55);
  -webkit-background-clip: text; background-clip: text; margin-bottom: 0.6rem;
}
.nbk-reason h3 { font-family:'Noto Serif JP',serif; font-size:1.12rem; font-weight:600; color:#3a342e; margin:0 0 0.7rem; }
.nbk-reason p { font-size:0.94rem; line-height:1.85; color:#6b6258; margin:0; }
.nbk-reason strong { color:#3a342e; font-weight:700; }

/* 健康手帳:背景を白に統一 + 理由カードを可愛く */
.mmc-future.nbk-why { background:#fff; }
.mmc-celebrate.nbk-kids-sec { background:#fff; }
.nbk-reason { border-radius:22px; border-color:#F1E7DA; transition:transform .25s ease, box-shadow .25s ease; }
.nbk-reason:hover { transform:translateY(-5px); box-shadow:0 18px 36px rgba(150,120,80,0.14); }
.nbk-reason-ico {
  display:inline-flex; align-items:center; justify-content:center;
  width:54px; height:54px; border-radius:50%; margin-bottom:0.9rem;
}
.nbk-reason-ico svg { width:26px; height:26px; }
.nbk-reason .nbk-rnum { display:block; font-size:1.45rem; margin-bottom:0.35rem; }
.nbk-reason[data-c=green] .nbk-reason-ico { background:#E9F3E2; color:#6FA85A; }
.nbk-reason[data-c=pink]  .nbk-reason-ico { background:#FCE6EC; color:#E58AA0; }
.nbk-reason[data-c=amber] .nbk-reason-ico { background:#FBEFD9; color:#E0A23C; }

/* ---- 健康手帳:お子さまの成長記録カード ---- */
.nbk-kids {
  display: flex; align-items: center; gap: 1.8rem; max-width: 880px; margin: 0 auto;
  background: none; border: 0; border-radius: 0; padding: 0; box-shadow: none;
}
.nbk-kids p { font-family:'Noto Serif JP',serif; }
.nbk-kids-link { display:inline-flex; align-items:center; gap:0.7rem; margin-top:1.4rem; padding:0.9rem 2.1rem; font-family:'Noto Serif JP',serif; font-size:1rem; font-weight:600; color:#fff; text-decoration:none; background:linear-gradient(135deg,#E8A33A,#F2C25F,#E8A33A); border-radius:999px; box-shadow:0 12px 28px rgba(200,150,60,0.3); transition:transform .25s, box-shadow .25s, filter .25s; }
.nbk-kids-link:hover { transform:translateY(-3px); box-shadow:0 18px 38px rgba(200,150,60,0.42); filter:brightness(1.04); }
.nbk-kids-link .nbk-kids-link-arr { font-family:'Cormorant Garamond',serif; font-size:1.3rem; }
.nbk-kids-ico {
  flex: none; width: 84px; height: 84px; border-radius: 50%; background: #fff; color: #ECA12A;
  display: inline-flex; align-items: center; justify-content: center; box-shadow: 0 8px 20px rgba(200,140,40,0.18);
}
.nbk-kids-ico svg { width: 46px; height: 46px; }
.nbk-kids-tag { display:inline-block; font-size:0.74rem; letter-spacing:0.14em; font-weight:700; color:#C98A0E; background:#FFE7BE; border-radius:999px; padding:0.28rem 0.9rem; margin-bottom:0.7rem; }
.nbk-kids h3 { font-family:'Noto Serif JP',serif; font-size:clamp(1.2rem,2.8vw,1.5rem); font-weight:600; color:#3a342e; margin:0 0 0.7rem; }
.nbk-kids h3 em { font-style:normal; color:#D98A1E; }
.nbk-kids p { font-size:0.98rem; line-height:1.9; color:#6b6258; margin:0; }
.nbk-kids strong { color:#3a342e; font-weight:700; }

@media (max-width: 880px){
  .nbk-reasons { grid-template-columns: 1fr; }
  .nbk-kids { flex-direction: column; text-align: center; }
}

/* ===================================================================
   診療案内ページ (.tx-)  ※ mmc-/fr- ベースを併用
   =================================================================== */
.tx-intro { padding: clamp(4rem,8vw,6rem) 1.5rem; background: var(--mmc-cream); }
.tx-intro .mmc-h2 em { font-style: normal; position: relative; }
.tx-intro .mmc-h2 em::after { content:""; position:absolute; left:-2px; right:-2px; bottom:0.05em; height:0.34em; background: var(--mmc-rainbow); border-radius:4px; z-index:-1; }

/* 設備ストリップ(まず見せる) */
.tx-equip-label { text-align:center; font-family:'Noto Serif JP',serif; font-size:1.02rem; color:#6b6258; margin:1.6rem 0 1rem; }
.tx-equip-label em { font-style:normal; color:#B79A6E; font-weight:700; }
.tx-equip {
  display:grid; grid-template-columns:repeat(6,1fr); gap:0.9rem; max-width:920px; margin:0 auto;
}
.tx-equip figure { margin:0; }
.tx-equip .ph-frame { aspect-ratio:1/1; border-radius:14px; }
.tx-equip figcaption { margin-top:0.5rem; text-align:center; font-size:0.78rem; font-weight:600; color:#6b6258; }

/* お悩みから探す */
.tx-worry { padding: clamp(4rem,8vw,6rem) 1.5rem; background: linear-gradient(180deg,#FFFDF9 0%,#FBF6EE 100%); }
.tx-worry-bubble { text-align:center; max-width:640px; margin:0 auto 2.6rem; }
.tx-worry-emoji { font-size:2.2rem; display:block; margin-bottom:0.6rem; }
.tx-worry-bubble h2 { font-family:'Noto Serif JP',serif; font-size:clamp(1.4rem,3.4vw,1.9rem); font-weight:500; color:#3a342e; margin:0 0 0.8rem; line-height:1.6; }
.tx-worry-bubble h2 strong { font-weight:700; }
.tx-worry-bubble p { font-size:0.95rem; color:#8a8073; margin:0; }
.tx-chips { display:flex; flex-wrap:wrap; justify-content:center; gap:0.9rem; max-width:920px; margin:0 auto; }
.tx-chip {
  display:inline-flex; align-items:center; gap:0.7rem; background:#fff; border:1px solid #EFE4D5;
  border-radius:999px; padding:0.7rem 1.4rem 0.7rem 0.7rem; text-decoration:none; color:#3a342e;
  font-size:0.98rem; font-weight:600; box-shadow:0 6px 16px rgba(150,120,90,0.08);
  transition:transform .22s ease, box-shadow .22s ease;
}
.tx-chip:hover { transform:translateY(-3px); box-shadow:0 12px 24px rgba(150,120,90,0.14); }
.tx-chip .chip-icon {
  width:38px; height:38px; flex:none; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; color:#fff;
}
.tx-chip .chip-icon svg { width:20px; height:20px; }
.tx-chip[data-color="pink"]   .chip-icon { background:linear-gradient(135deg,#FFA9BE,#F37D9B); }
.tx-chip[data-color="mint"]   .chip-icon { background:linear-gradient(135deg,#7FD4AC,#4FB98A); }
.tx-chip[data-color="sky"]    .chip-icon { background:linear-gradient(135deg,#8FCDEE,#5FAEDB); }
.tx-chip[data-color="coral"]  .chip-icon { background:linear-gradient(135deg,#FFB38C,#F38A5E); }
.tx-chip[data-color="yellow"] .chip-icon { background:linear-gradient(135deg,#F4CE73,#E0A93F); }

/* カテゴリ別メニュー */
.tx-list { padding: clamp(4rem,8vw,6rem) 1.5rem; background: var(--mmc-cream); }
.tx-cat { max-width:1080px; margin:0 auto clamp(3rem,6vw,4.5rem); }
.tx-cat-head { display:flex; align-items:center; gap:1.1rem; margin-bottom:1.8rem; }
.tx-cat-text h3 { font-family:'Noto Serif JP',serif; font-size:clamp(1.6rem,3.8vw,2.3rem); font-weight:600; color:#3a342e; margin:0 0 0.45rem; letter-spacing:0.02em; }
.tx-cat-text h3 em { font-style:normal; position:relative; }
.tx-cat-text h3 em::after { content:""; position:absolute; left:-2px; right:-2px; bottom:0.05em; height:0.32em; background:var(--mmc-rainbow); border-radius:4px; z-index:-1; }
.tx-cat-text p { font-size:0.92rem; color:#8a8073; margin:0; }
.tx-cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(290px,1fr)); gap:1.4rem; }
.tx-card {
  position:relative; display:flex; flex-direction:column; background:#fff; border:1px solid #EFE4D5;
  border-radius:20px; padding:2rem 1.8rem 2.4rem; text-decoration:none; color:#3a342e;
  box-shadow:0 12px 28px rgba(150,120,80,0.08); transition:transform .25s ease, box-shadow .25s ease;
  overflow:hidden;
}
.tx-card::before { content:""; position:absolute; left:0; top:0; right:0; height:4px; background:var(--mmc-rainbow); opacity:0; transition:opacity .25s ease; }
.tx-card:hover { transform:translateY(-6px); box-shadow:0 24px 46px rgba(150,120,80,0.16); }
.tx-card:hover::before { opacity:1; }
.tx-card-top { display:none; }
.tx-ico { display:none; }
.tx-cnum { display:none; }
.tx-ico svg { width:30px; height:30px; }
.tx-card[data-color="pink"]   .tx-ico { background:linear-gradient(135deg,#FFA9BE,#F37D9B); }
.tx-card[data-color="mint"]   .tx-ico { background:linear-gradient(135deg,#7FD4AC,#4FB98A); }
.tx-card[data-color="sky"]    .tx-ico { background:linear-gradient(135deg,#8FCDEE,#5FAEDB); }
.tx-card[data-color="coral"]  .tx-ico { background:linear-gradient(135deg,#FFB38C,#F38A5E); }
.tx-card[data-color="yellow"] .tx-ico { background:linear-gradient(135deg,#F4CE73,#E0A93F); }
.tx-cnum { font-family:'Cormorant Garamond',serif; font-size:1.8rem; font-weight:600; color:#DCC6A0; line-height:1; }
.tx-card h4 { font-family:'Noto Serif JP',serif; font-size:1.7rem; font-weight:600; color:#3a342e; margin:0 0 0.7rem; letter-spacing:0.03em; }
.tx-card .tx-catch { font-family:'Noto Serif JP',serif; font-size:1rem; color:#3a342e; margin:0 0 0.6rem; font-weight:500; }
.tx-card .tx-catch mark { background:var(--mmc-rainbow); background-size:100% 40%; background-position:0 90%; background-repeat:no-repeat; color:#3a342e; padding:0 0.1em; }
.tx-card .tx-desc { font-size:0.9rem; line-height:1.85; color:#6b6258; margin:0 0 1.4rem; flex:1; }
.tx-card .tx-arrow {
  align-self:flex-end; width:38px; height:38px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center;
  color:#fff; background:linear-gradient(135deg,#E8C36E,#C9A24C); font-size:1.1rem; transition:transform .25s ease;
}
.tx-card:hover .tx-arrow { transform:translateX(4px); }

@media (max-width:760px){
  .tx-equip { grid-template-columns:repeat(3,1fr); }
}

/* 健康手帳:治療内容+コメントの2枚並べ */
.fr-doc-duo { display: grid; grid-template-columns: 1fr 1fr; gap: 0.9rem; }
.fr-doc-duo .ph-frame.is-doc { aspect-ratio: 3 / 4; }
@media (max-width: 480px){ .fr-doc-duo { gap: 0.6rem; } }

/* 診療案内:当院の虫歯治療セクションは白地で文字を映えさせる */
.tx-philo { background: #fff !important; padding-top: clamp(3.5rem,7vw,5.5rem) !important; }

/* 診療案内:写真フレームを角フレーム(シャープな角)に */
.tx-philo .ph-frame,
.tx-philo .ph-frame.is-doc,
.tx-philo .ph-frame img { border-radius: 2px !important; }

/* ===== 診療案内「当院の虫歯治療」:HOME風の交互レイアウト(カードなし)＋写真の出現アニメ ===== */
.tx-philo { background: #fff !important; padding-top: clamp(3rem,6vw,4.5rem) !important; padding-bottom: clamp(3.5rem,6vw,5rem) !important; }
.tx-philo .ph-frame, .tx-philo .ph-frame.is-doc, .tx-philo .ph-frame.is-doc:has(img), .tx-philo .fr-figure .ph-frame { box-shadow: 0 18px 40px rgba(196,168,120,0.20) !important; }
.tx-philo .section-inner { max-width: 1180px; }
.tx-philo .fr-stack { gap: clamp(2.6rem, 5vw, 4.2rem); }
.tx-philo-01 { margin-bottom: clamp(2.6rem,5vw,4.2rem) !important; }

/* 写真が「出てくる」ワイプ＋スケール */
.tx-philo .fr-figure.reveal.rv-left,
.tx-philo .fr-figure.reveal.rv-right { transform: none; opacity: 1; }
.tx-philo .fr-figure .ph-frame {
  opacity: 0; transform: scale(1.06); clip-path: inset(0 0 100% 0);
  transition: clip-path .9s cubic-bezier(.2,.75,.25,1), transform .9s cubic-bezier(.2,.75,.25,1), opacity .55s ease;
}
.tx-philo .fr-figure.visible .ph-frame {
  opacity: 1; transform: scale(1); clip-path: inset(0 0 0 0);
}

/* 検査機器ストリップは下からふわっと(スタガー) */
.tx-philo-01 .tx-equip > figure .ph-frame {
  opacity: 0; transform: translateY(14px) scale(.95);
  transition: opacity .5s ease, transform .6s cubic-bezier(.2,.7,.3,1);
}
.tx-philo-01.visible .tx-equip > figure .ph-frame { opacity: 1; transform: none; }
.tx-philo-01.visible .tx-equip > figure:nth-child(1) .ph-frame { transition-delay: .04s; }
.tx-philo-01.visible .tx-equip > figure:nth-child(2) .ph-frame { transition-delay: .12s; }
.tx-philo-01.visible .tx-equip > figure:nth-child(3) .ph-frame { transition-delay: .20s; }
.tx-philo-01.visible .tx-equip > figure:nth-child(4) .ph-frame { transition-delay: .28s; }
.tx-philo-01.visible .tx-equip > figure:nth-child(5) .ph-frame { transition-delay: .36s; }
.tx-philo-01.visible .tx-equip > figure:nth-child(6) .ph-frame { transition-delay: .44s; }

/* ===================================================================
   診療案内:お悩みカードグリッド(写真+アイコン+タイトル+矢印)
   =================================================================== */
.worry-head { text-align: center; margin-bottom: clamp(2rem,4vw,3rem); }
.worry-eyebrow {
  display: inline-flex; align-items: center; gap: 0.5rem;
  font-family: 'Cormorant Garamond', serif; font-size: 1rem; font-weight: 600;
  letter-spacing: 0.24em; text-transform: uppercase; color: #5BA88C; margin: 0 0 0.8rem;
}
.worry-eyebrow svg { width: 20px; height: 20px; }
.worry-title-h {
  font-family: 'Noto Serif JP', serif; font-size: clamp(1.6rem,4vw,2.4rem);
  font-weight: 500; color: #3a342e; margin: 0 0 0.9rem; letter-spacing: 0.04em;
}
.worry-sub-h { font-size: 0.96rem; color: #8a8073; margin: 0; }

.worry-grid {
  display: grid; grid-template-columns: repeat(5, 1fr);
  gap: clamp(0.9rem,1.5vw,1.4rem); max-width: 1320px; margin: 0 auto;
}
.worry-card {
  position: relative; display: flex; flex-direction: column; background: #fff;
  border-radius: 18px; overflow: hidden; text-decoration: none; color: #3a342e;
  box-shadow: 0 12px 28px rgba(150,120,80,0.10); transition: transform .25s ease, box-shadow .25s ease;
}
.worry-card:hover { transform: translateY(-6px); box-shadow: 0 22px 44px rgba(150,120,80,0.18); }
.worry-photo {
  position: relative; width: 100%; height: 0; padding-bottom: 80%; display: block; overflow: hidden;
}
.worry-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; z-index: 2; }
.worry-card:hover .worry-photo img { transform: scale(1.05); }
.worry-ph { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: rgba(255,255,255,0.92); z-index: 1; } .worry-ph svg { width: 34px; height: 34px; }
.worry-photo:has(img) .worry-ph { display: none; }
.worry-body { position: relative; z-index: 2; display: flex; flex-direction: column; align-items: flex-start; padding: 1.2rem 0.85rem 1.1rem; flex: 1; }
.worry-ico { display: none; }
.worry-card-title { font-family: 'Noto Serif JP', serif; font-size: 1rem; font-weight: 600; margin: 0 0 0.35rem; line-height: 1.5; letter-spacing: -0.01em; }
.worry-card-sub { font-size: 0.8rem; color: #8a8073; line-height: 1.6; margin: 0 0 0.9rem; }
.worry-arrow { align-self: center; margin-top: auto; width: 38px; height: 38px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; color: #fff; transition: transform .25s ease; }
.worry-arrow svg { width: 18px; height: 18px; }
.worry-card:hover .worry-arrow { transform: translateY(3px); }

/* カラー別(アイコン・矢印=濃いめ / 写真プレースホルダー=薄いトーン) */
.worry-card[data-color="pink"]   .worry-ico, .worry-card[data-color="pink"]   .worry-arrow { background: linear-gradient(135deg,#FFA9BE,#F37D9B); }
.worry-card[data-color="pink"]   .worry-photo { background: linear-gradient(135deg,#FFE6EE,#FFD2E0); }
.worry-card[data-color="mint"]   .worry-ico, .worry-card[data-color="mint"]   .worry-arrow { background: linear-gradient(135deg,#7FD4AC,#4FB98A); }
.worry-card[data-color="mint"]   .worry-photo { background: linear-gradient(135deg,#DEF3E9,#CDEFDF); }
.worry-card[data-color="sky"]    .worry-ico, .worry-card[data-color="sky"]    .worry-arrow { background: linear-gradient(135deg,#8FCDEE,#5FAEDB); }
.worry-card[data-color="sky"]    .worry-photo { background: linear-gradient(135deg,#E2F1FB,#D2E8F6); }
.worry-card[data-color="coral"]  .worry-ico, .worry-card[data-color="coral"]  .worry-arrow { background: linear-gradient(135deg,#FFB38C,#F38A5E); }
.worry-card[data-color="coral"]  .worry-photo { background: linear-gradient(135deg,#FFEADD,#FFDCC9); }
.worry-card[data-color="yellow"] .worry-ico, .worry-card[data-color="yellow"] .worry-arrow { background: linear-gradient(135deg,#F4CE73,#E0A93F); }
.worry-card[data-color="yellow"] .worry-photo { background: linear-gradient(135deg,#FBEFD4,#F7E6BE); }
.worry-card[data-color="purple"] .worry-ico, .worry-card[data-color="purple"] .worry-arrow { background: linear-gradient(135deg,#C3A6F0,#9B79D9); }
.worry-card[data-color="purple"] .worry-photo { background: linear-gradient(135deg,#EEE6FB,#E2D5F6); }
.worry-card[data-color="tan"]    .worry-ico, .worry-card[data-color="tan"]    .worry-arrow { background: linear-gradient(135deg,#D8C3A0,#BBA277); }
.worry-card[data-color="tan"]    .worry-photo { background: linear-gradient(135deg,#F2EADD,#E9DEC9); }

.worry-foot { display: flex; align-items: center; justify-content: center; gap: 0.6rem; margin: clamp(2rem,4vw,3rem) 0 0; font-size: 0.95rem; color: #8a8073; }
.worry-foot svg { width: 24px; height: 24px; color: #C9A98F; flex: none; }

@media (max-width: 1100px){ .worry-grid { grid-template-columns: repeat(3,1fr); } }
@media (max-width: 680px){ .worry-grid { grid-template-columns: repeat(2,1fr); } }


/* ===================================================================
   予防歯科ページ:マガジン・レイアウト (.pv-)
   配色・文字はHOME「未来のお口を育てる」と同じ温かいトーン
   (クリーム＋ゴールド＋ダーク明朝＋パステルレインボー)
   =================================================================== */
.pv-hero, .pv-care, .pv-pcr, .pv-onemm, .pv-trio, .pv-final { position: relative; }
.pv-eyebrow { font-family: 'Cormorant Garamond', serif; font-size: 0.95rem; font-weight: 600; letter-spacing: 0.24em; text-transform: uppercase; color: #B79A6E; margin: 0 0 0.7rem; }
.pv-h2 { font-family: 'Noto Serif JP', serif; font-size: clamp(1.7rem, 3.6vw, 2.5rem); font-weight: 500; line-height: 1.5; color: #3a342e; margin: 0 0 1.2rem; letter-spacing: 0.03em; }
.pv-h2--sm { font-size: clamp(1.5rem,3vw,2.1rem); }
.pv-body { font-size: 1rem; line-height: 2; color: #6b6258; margin: 0; }
.pv-body strong { color: #A8842E; font-weight: 700; }

/* ---- HERO ---- */
.pv-hero {
  overflow: hidden;
  padding: clamp(3rem,6vw,5rem) clamp(1.2rem,4vw,3.5rem) clamp(3rem,6vw,4.5rem);
  background: radial-gradient(120% 90% at 18% 0%, #FFF4F7 0%, transparent 55%), radial-gradient(120% 90% at 88% 10%, #FBF2E6 0%, transparent 55%), linear-gradient(180deg,#FFFDF9 0%,#FBF6EE 100%);
}
.pv-hero-inner { display: grid; grid-template-columns: auto 1fr; gap: clamp(1.6rem,3.5vw,3.2rem); align-items: center; max-width: 1060px; margin: 0 auto; text-align: left; }
.pv-hero-left { flex: none; }
.pv-hero-right { min-width: 0; }
.pv-hero-right .pv-hero-lead { margin-top: 0; }
.pv-hero .pv-badges { justify-content: flex-start; }
@media (max-width: 820px) { .pv-hero-inner { grid-template-columns: 1fr; gap: 1.2rem; } }
.pv-hero-h { font-family: 'Noto Serif JP', serif; font-size: clamp(2.4rem,5.5vw,3.6rem); font-weight: 500; line-height: 1.4; color: #3a342e; margin: 0 0 0.5rem; letter-spacing: 0.04em; }
.pv-hero-script { font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: 1.5rem; color: #C9A86E; margin: 0 0 1.6rem; letter-spacing: 0.04em; }
.pv-hero-script::after { content: " 🌿"; font-style: normal; font-size: 0.9em; }
.pv-hero-sub { font-family: 'Noto Serif JP', serif; font-size: clamp(1.05rem,2.2vw,1.35rem); font-weight: 500; color: #5a8a5e; margin: 0 0 1.4rem; letter-spacing: 0.04em; }
.pv-hero-lead { font-size: 1.02rem; line-height: 1.9; color: #5b5349; margin: 0 0 1.4rem; }
.pv-badges { list-style: none; display: flex; gap: clamp(0.8rem,2vw,1.6rem); padding: 0; margin: 0 0 1.4rem; }
.pv-badges li { display: flex; flex-direction: column; align-items: center; gap: 0.5rem; }
.pv-badge-ico { width: 58px; height: 58px; border-radius: 50%; background: #fff; box-shadow: 0 8px 20px rgba(180,150,100,0.20); display: inline-flex; align-items: center; justify-content: center; }
.pv-badge-ico svg { width: 28px; height: 28px; }
.pv-badge-ico[data-c="drop"]  { color: #F2A0AE; }
.pv-badge-ico[data-c="spark"] { color: #E6BE6A; }
.pv-badge-ico[data-c="smile"] { color: #F0AEC6; }
.pv-badge-t { font-size: 0.82rem; font-weight: 600; color: #5b5349; }
.pv-hero-foot { font-size: 0.98rem; line-height: 1.9; color: #5b5349; margin: 0; }
.pv-hero-photo .ph-frame { aspect-ratio: 4/3.4; border-radius: 26px; }
.pv-leaf { position: absolute; font-size: 2.4rem; opacity: 0.45; z-index: 0; }
.pv-leaf-1 { left: 1%; top: 30%; transform: rotate(-20deg); }
.pv-leaf-2 { left: 3%; bottom: 8%; transform: rotate(30deg); font-size: 1.8rem; }

/* ---- 私たちが大切にしていること ---- */
.pv-care { padding: clamp(2rem,4vw,3rem) clamp(1.2rem,4vw,3.5rem); background: linear-gradient(180deg,#FBF6EE,#F6EEE2); }
.pv-care-panel { display: grid; grid-template-columns: 0.95fr 1.05fr; gap: 0; max-width: 1180px; margin: 0 auto; background: #fff; border-radius: 26px; overflow: hidden; box-shadow: 0 24px 54px rgba(150,120,80,0.14); }
.pv-care-photo { position: relative; margin: 0; min-height: 320px; }
.pv-care-photo img { width: 100%; height: 100%; object-fit: cover; display: block; position: absolute; inset: 0; }
.pv-care-script { position: absolute; left: 22px; bottom: 18px; z-index: 2; font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: 2.2rem; color: #fff; text-shadow: 0 2px 12px rgba(0,0,0,0.35); }
.pv-care-body { padding: clamp(2rem,4vw,3.4rem); display: flex; flex-direction: column; justify-content: center; }

/* ---- PCR改善事例 ---- */
.pv-pcr { padding: clamp(2rem,4vw,3rem) clamp(1.2rem,4vw,3.5rem); background: #FBF6EE; }
.pv-pcr-panel { display: grid; grid-template-columns: 1.15fr 0.95fr 1fr; gap: clamp(1rem,2vw,1.6rem); max-width: 1240px; margin: 0 auto; align-items: stretch; }
.pv-pcr-num { background: linear-gradient(160deg,#FFFDF8,#FBF3E6); border: 1px solid #EFE2CC; border-radius: 22px; padding: clamp(1.6rem,3vw,2.4rem); position: relative; overflow: hidden; }
.pv-pcr-title { font-family: 'Noto Serif JP', serif; font-size: 1.4rem; font-weight: 600; color: #3a342e; margin: 0 0 0.8rem; }
.pv-pcr-badge { display: inline-block; font-size: 0.78rem; font-weight: 700; color: #fff; background: linear-gradient(135deg,#E8C36E,#C9A24C); border-radius: 999px; padding: 0.3rem 1rem; margin-bottom: 1rem; }
.pv-pcr-figures { display: flex; align-items: center; gap: 0.7rem; flex-wrap: wrap; margin-bottom: 1rem; }
.pv-pcr-col { display: flex; flex-direction: column; align-items: center; }
.pv-pcr-big { font-family: 'Cormorant Garamond', serif; font-size: clamp(2.6rem,5vw,3.6rem); font-weight: 600; line-height: 1; color: #C8795F; }
.pv-pcr-big i { font-style: normal; font-size: 0.5em; }
.pv-pcr-big.pv-good { color: #D0608A; }
.pv-pcr-cap { font-size: 0.74rem; color: #9a8f7e; margin-top: 0.3rem; }
.pv-pcr-arrow { font-size: 1.6rem; color: #cdbb9c; }
.pv-pcr-drop { font-family: 'Cormorant Garamond', serif; font-size: 1.4rem; font-weight: 600; color: #C9A24C; transform: rotate(-8deg); }
.pv-pcr-drop small { font-size: 0.55em; }
.pv-pcr-note { font-size: 0.92rem; line-height: 1.8; color: #6b6258; margin: 0 0 0.6rem; }
.pv-pcr-note strong { color: #A8842E; }
.pv-pcr-fine { font-size: 0.72rem; color: #b3a892; margin: 0; }
.pv-pcr-chart { background: #fff; border: 1px solid #EFE2CC; border-radius: 22px; padding: clamp(1.2rem,2.2vw,1.6rem) clamp(1.1rem,2vw,1.5rem); display: flex; flex-direction: column; box-shadow: 0 14px 32px rgba(150,120,80,0.10); }
.pv-pcr-chart-t { font-family: 'Noto Serif JP', serif; font-size: 0.96rem; font-weight: 600; color: #3a342e; margin: 0 0 0.6rem; }
.pv-pcr-svg { width: 100%; height: auto; display: block; }
.pv-pcr-chart-c { font-size: 0.84rem; line-height: 1.7; color: #6b6258; margin: 0.6rem 0 0; }
.pv-pcr-chart-c strong { color: #CC5A82; font-weight: 700; }
.pv-pcr-record { position: relative; }
.pv-pcr-rec-badge { position: absolute; left: -10px; top: -14px; z-index: 3; width: 84px; height: 84px; border-radius: 50%; background: linear-gradient(135deg,#E2B964,#C49A40); color: #fff; font-size: 0.66rem; font-weight: 700; line-height: 1.4; display: flex; align-items: center; justify-content: center; text-align: center; box-shadow: 0 8px 18px rgba(180,140,60,0.32); }
.pv-pcr-doc.ph-frame.is-doc { height: 100%; aspect-ratio: auto; }

/* ---- 1mm challenge ---- */
.pv-onemm { padding: clamp(2rem,4vw,3rem) clamp(1.2rem,4vw,3.5rem); }
.pv-onemm-inner { display: grid; grid-template-columns: 1.3fr 0.8fr 1fr; gap: clamp(1.4rem,3vw,2.4rem); align-items: center; max-width: 1180px; margin: 0 auto; background: linear-gradient(120deg,#FFF6F0 0%,#FBF1E6 100%); border: 1px solid #F1E4D2; border-radius: 28px; padding: clamp(2rem,4vw,3.2rem); position: relative; overflow: hidden; }
.pv-onemm-script { font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: clamp(1.8rem,3.5vw,2.4rem); color: #C9A86E; margin: 0 0 0.6rem; }
.pv-onemm-text .pv-body { color: #5b5349; }
.pv-onemm-badge { display: flex; align-items: center; justify-content: center; }
.pv-onemm-chip { width: 130px; height: 130px; border-radius: 46% 54% 50% 50% / 55% 50% 50% 45%; background: linear-gradient(150deg,#FFFDF9,#FBF1E6); border: 2px dashed #E3C98C; display: flex; flex-direction: column; align-items: center; justify-content: center; box-shadow: 0 14px 30px rgba(180,150,90,0.20); transform: rotate(-6deg); }
.pv-onemm-chip .om-1 { font-family: 'Cormorant Garamond', serif; font-size: 2rem; font-weight: 600; color: #A8842E; line-height: 1; }
.pv-onemm-chip .om-c { font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: 1rem; color: #C9A86E; }
.pv-onemm-btn { display: flex; align-items: center; gap: 0.8rem; background: #fff; border-radius: 16px; padding: 1.1rem 1.4rem; text-decoration: none; color: #3a342e; box-shadow: 0 12px 26px rgba(180,150,90,0.16); transition: transform .25s ease, box-shadow .25s ease; }
.pv-onemm-btn:hover { transform: translateY(-4px); box-shadow: 0 20px 38px rgba(180,150,90,0.26); }
.pv-onemm-btn-ico { width: 42px; height: 42px; flex: none; border-radius: 50%; background: linear-gradient(135deg,#E8C36E,#C9A24C); color: #fff; display: inline-flex; align-items: center; justify-content: center; }
.pv-onemm-btn-ico svg { width: 22px; height: 22px; }
.pv-onemm-btn-t { font-family: 'Noto Serif JP', serif; font-size: 0.96rem; font-weight: 600; line-height: 1.5; flex: 1; }
.pv-onemm-btn-arr { color: #C9A24C; font-size: 1.2rem; }

/* ---- 03/04/05 ---- */
.pv-trio { padding: clamp(2.5rem,5vw,4rem) clamp(1.2rem,4vw,3.5rem); }
.pv-trio-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: clamp(1.2rem,2.5vw,2rem); max-width: 1180px; margin: 0 auto; }
.pv-tcard { display: flex; flex-direction: column; text-decoration: none; color: inherit; }
.pv-tcard-head { display: flex; align-items: center; gap: 0.7rem; margin-bottom: 0.7rem; }
.pv-tnum { font-family: 'Cormorant Garamond', serif; font-size: 1.5rem; font-weight: 600; color: #fff; background: linear-gradient(135deg,#E8C36E,#C9A24C); width: 38px; height: 38px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; flex: none; }
.pv-tcard-title { font-family: 'Noto Serif JP', serif; font-size: 1.18rem; font-weight: 600; color: #3a342e; margin: 0; position: relative; }
.pv-tcard-title::after { content: ""; display: inline-block; width: 26px; height: 1.5px; background: #E6D8C0; margin-left: 10px; vertical-align: middle; }
.pv-tcard-body { font-size: 0.9rem; line-height: 1.9; color: #6b6258; margin: 0 0 1.1rem; }
.pv-tcard-photo.ph-frame { aspect-ratio: 16/10; border-radius: 16px; margin-top: auto; }
a.pv-tcard:hover .pv-tcard-photo img { transform: scale(1.05); }

/* ---- 締め ---- */
.pv-final { padding: 0; }
.pv-final-inner { position: relative; display: grid; grid-template-columns: 1fr 1.5fr 1fr; align-items: stretch; min-height: 300px; background: linear-gradient(180deg,#FBF6EE,#F6EEE2); }
.pv-final-side.ph-frame { border-radius: 0; aspect-ratio: auto; height: 100%; box-shadow: none; }
.pv-final-center { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: clamp(2.5rem,5vw,4rem) 1.2rem; }
.pv-final-h { font-family: 'Noto Serif JP', serif; font-size: clamp(1.4rem,3.2vw,2.1rem); font-weight: 500; line-height: 1.7; color: #3a342e; margin: 0 0 1rem; letter-spacing: 0.03em; }
.pv-final-em { font-size: 1.15em; color: #A8842E; background: var(--mmc-rainbow); background-size: 100% 0.36em; background-position: 0 92%; background-repeat: no-repeat; }
.pv-final-sub { font-size: 0.95rem; line-height: 1.9; color: #6b6258; margin: 0; }

@media (max-width: 900px) {
  .pv-hero-inner { grid-template-columns: 1fr; }
  .pv-care-panel { grid-template-columns: 1fr; }
  .pv-care-photo { min-height: 260px; }
  .pv-pcr-panel { grid-template-columns: 1fr; }
  .pv-onemm-inner { grid-template-columns: 1fr; text-align: center; }
  .pv-onemm-badge { order: -1; }
  .pv-trio-grid { grid-template-columns: 1fr; max-width: 420px; }
  .pv-final-inner { grid-template-columns: 1fr; }
  .pv-final-side { display: none; }
}

/* ---- PCR:実際の記録 before/after 2枚 ---- */
.pv-pcr-panel { grid-template-columns: 0.82fr 1.85fr; }
.pv-pcr-evidence { background: #fff; border: 1px solid #EFE2CC; border-radius: 22px; padding: clamp(1.2rem,2.2vw,1.8rem); box-shadow: 0 14px 32px rgba(150,120,80,0.10); }
.pv-pcr-ev-head { display: flex; align-items: center; gap: 0.8rem; margin-bottom: 1rem; flex-wrap: wrap; }
.pv-pcr-ev-head .pv-pcr-rec-badge { position: static; width: auto; height: auto; border-radius: 999px; padding: 0.4rem 1rem; font-size: 0.74rem; line-height: 1.2; box-shadow: 0 6px 14px rgba(180,140,60,0.28); }
.pv-pcr-ev-head .pv-pcr-chart-t { margin: 0; }
.pv-pcr-pair { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: clamp(0.5rem,1.5vw,1.1rem); }
.pv-pcr-sheet { margin: 0; }
.pv-pcr-sheet img { width: 100%; display: block; border: 1px solid #E6DCC8; border-radius: 10px; box-shadow: 0 6px 16px rgba(150,120,80,0.10); }
.pv-pcr-sheet figcaption { text-align: center; font-size: 0.86rem; color: #6b6258; margin-top: 0.55rem; line-height: 1.5; }
.pv-pcr-sheet figcaption b { color: #3a342e; font-weight: 700; }
.pv-pcr-sheet figcaption em { font-style: normal; color: #C8795F; font-weight: 700; }
.pv-pcr-sheet figcaption strong { color: #CC5A82; font-weight: 700; font-size: 1.08em; }
.pv-pcr-pair-arrow { font-size: 1.8rem; color: #E089A4; font-weight: 300; }
.pv-pcr-evidence .pv-pcr-chart-c { text-align: center; margin-top: 1rem; }
@media (max-width: 900px){ .pv-pcr-panel { grid-template-columns: 1fr; } }
@media (max-width: 560px){ .pv-pcr-pair { grid-template-columns: 1fr; } .pv-pcr-pair-arrow { transform: rotate(90deg); justify-self: center; } }

/* ---- HERO + 大切にしていること を1画面に収める(余白圧縮) ---- */
.pv-hero { padding-top: clamp(1.6rem,3vw,2.6rem) !important; padding-bottom: clamp(1.6rem,3vw,2.6rem) !important; }
.pv-care { padding-top: clamp(1rem,2vw,1.6rem) !important; padding-bottom: clamp(1.6rem,3vw,2.4rem) !important; }

/* ---- PCR:左カラム(実績＋アニメgrafu) ---- */
.pv-pcr-left { display: flex; flex-direction: column; gap: clamp(1rem,2vw,1.4rem); }
.pv-pcr-graph { background: linear-gradient(160deg,#FFFDF8,#FBF3E6); border: 1px solid #EFE2CC; border-radius: 22px; padding: clamp(1.2rem,2.2vw,1.6rem); box-shadow: 0 12px 28px rgba(150,120,80,0.08); flex: 1; display: flex; flex-direction: column; justify-content: center; }
.pv-pcr-graph-t { font-family: 'Noto Serif JP', serif; font-size: 0.95rem; font-weight: 600; color: #3a342e; margin: 0 0 0.6rem; }
.pg-svg { width: 100%; height: auto; display: block; overflow: visible; }
/* 動き:折れ線が左→右に描かれ、面と点がふわっと出る */
.pg-line { stroke-dasharray: 100; stroke-dashoffset: 100; }
.pg-area { opacity: 0; }
.pg-dot, .pg-val { opacity: 0; }
.pv-pcr-graph.visible .pg-line { animation: pgDraw 1.7s cubic-bezier(.4,0,.2,1) forwards; }
.pv-pcr-graph.visible .pg-area { animation: pgFade 1s ease 0.7s forwards; }
.pv-pcr-graph.visible .pg-dot-1 { animation: pgPop .45s ease 0.25s forwards; }
.pv-pcr-graph.visible .pg-dot-2 { animation: pgPop .45s ease 1.5s forwards; }
.pv-pcr-graph.visible .pg-val-1 { animation: pgFade .5s ease 0.35s forwards; }
.pv-pcr-graph.visible .pg-val-2 { animation: pgFade .5s ease 1.6s forwards; }
@keyframes pgDraw { to { stroke-dashoffset: 0; } }
@keyframes pgFade { to { opacity: 1; } }
@keyframes pgPop { 0%{ opacity:0; transform: scale(0); } 60%{ transform: scale(1.3); } 100%{ opacity:1; transform: scale(1); } }
.pg-dot { transform-box: fill-box; transform-origin: center; }
@media (max-width: 900px){ .pv-pcr-left { flex-direction: row; flex-wrap: wrap; } .pv-pcr-graph { min-width: 280px; } }

/* ---- PCR:3カラム横並び(改善事例 | 推移グラフ | 割合の変化) ---- */
.pv-pcr-panel--3 { grid-template-columns: 1fr 1fr 1.35fr; align-items: stretch; }
.pv-pcr-panel--3 .pv-pcr-evidence { padding: clamp(1rem,1.8vw,1.4rem); }
.pv-pcr-panel--3 .pv-pcr-ev-head { gap: 0.5rem; margin-bottom: 0.7rem; }
.pv-pcr-panel--3 .pv-pcr-ev-head .pv-pcr-chart-t { font-size: 0.9rem; }
.pv-pcr-panel--3 .pv-pcr-ev-head .pv-pcr-rec-badge { font-size: 0.68rem; padding: 0.32rem 0.8rem; }
.pv-pcr-panel--3 .pv-pcr-pair { gap: 0.45rem; }
.pv-pcr-panel--3 .pv-pcr-pair-arrow { font-size: 1.2rem; }
.pv-pcr-panel--3 .pv-pcr-sheet figcaption { font-size: 0.76rem; margin-top: 0.4rem; }
.pv-pcr-panel--3 .pv-pcr-evidence .pv-pcr-chart-c { font-size: 0.8rem; margin-top: 0.7rem; }
@media (max-width: 980px){ .pv-pcr-panel--3 { grid-template-columns: 1fr; } }

/* ---- お悩みカード写真:他CSSに負けないよう堅牢化 ---- */
.worry-photo { isolation: isolate; }
.worry-photo > img { position: absolute !important; inset: 0 !important; width: 100% !important; height: 100% !important; object-fit: cover !important; display: block !important; opacity: 1 !important; z-index: 5 !important; }

/* ---- PCR:なぜ磨き残しを減らすのか(導入) ---- */
.pv-pcr-why { text-align: center; max-width: 760px; margin: 0 auto clamp(1.6rem,3vw,2.4rem); }
.pv-pcr-why-eyebrow { font-family: 'Cormorant Garamond', serif; font-size: 0.92rem; font-weight: 600; letter-spacing: 0.26em; text-transform: uppercase; color: #B79A6E; margin: 0 0 0.6rem; }
.pv-pcr-why-h { font-family: 'Noto Serif JP', serif; font-size: clamp(1.5rem,3.4vw,2.1rem); font-weight: 500; color: #3a342e; margin: 0 0 0.9rem; letter-spacing: 0.03em; }
.pv-pcr-why-body { font-size: 1rem; line-height: 2; color: #6b6258; margin: 0; }
.pv-pcr-why-body strong { color: #A8842E; font-weight: 700; }

/* ===================================================================
   1mm challenge ページ:マガジン・レイアウト (.om-) / コーラル基調
   =================================================================== */
.om-hero, .om-benefits, .om-disease, .om-progress, .om-care, .om-why, .om-together, .om-closing { position: relative; }
.om-h2 { font-family:'Noto Serif JP',serif; font-size:clamp(1.5rem,3.4vw,2.1rem); font-weight:500; line-height:1.55; color:#3a342e; margin:0 0 1rem; letter-spacing:0.03em; }
.om-body { font-size:1rem; line-height:2; color:#6b6258; margin:0; }
.om-body strong { color:#C75E47; font-weight:700; }
.om-sec-head { text-align:center; font-family:'Noto Serif JP',serif; font-size:clamp(1.5rem,3.4vw,2.1rem); font-weight:500; color:#3a342e; margin:0 0 clamp(1.8rem,3.5vw,2.8rem); letter-spacing:0.03em; }
.om-card-photo, .om-flow-ico, .om-step-ico, .om-compare-photo, .om-hero-photo, .om-together-photo { border-radius:16px; }

/* ---- HERO ---- */
.om-hero { padding: clamp(2.5rem,5vw,4rem) clamp(1.2rem,4vw,3.5rem) clamp(1.5rem,3vw,2.5rem); background: #fff; overflow:hidden; }
.om-hero-inner { display:grid; grid-template-columns:1fr 1.05fr; gap:clamp(1.5rem,3vw,3rem); align-items:center; max-width:1180px; margin:0 auto; }
.om-hero-en { position:relative; display:inline-block; font-family:'Cormorant Garamond',serif; font-size:clamp(2.6rem,6vw,4.4rem); font-weight:700; letter-spacing:0.02em; line-height:1.05; margin:0 0 1.15rem; padding-bottom:0.14em; color:#1f1d1b; }
.om-hero-en::after { content:''; position:absolute; left:-0.05em; bottom:0; height:0.24em; width:calc(100% + 0.1em); border-radius:999px; background:linear-gradient(95deg,#FFD3DC 0%,#FFE6C2 22%,#FCF3C4 40%,#CDEBD4 58%,#CDE7F4 78%,#E4D6F4 100%); transform-origin:left center; transform:rotate(-1.5deg) scaleX(0); opacity:0.95; mix-blend-mode:multiply; animation:omMarkDraw 0.95s cubic-bezier(.65,.05,.25,1) 0.45s forwards; }
@keyframes omMarkDraw { from{ transform:rotate(-1.5deg) scaleX(0); } to{ transform:rotate(-1.5deg) scaleX(1); } }
.om-hero-h { font-family:'Noto Serif JP',serif; font-size:clamp(2.2rem,5vw,3.3rem); font-weight:500; line-height:1.45; color:#3a342e; margin:0 0 1.2rem; letter-spacing:0.04em; }
.om-hero-lead { font-size:1rem; line-height:1.95; color:#5b5349; margin:0 0 1.2rem; }
.om-hero-script { font-family:'Cormorant Garamond',serif; font-style:italic; font-size:1.4rem; color:#D89A86; margin:0; }
.om-hero-figure { position:relative; }
.om-hero-photo.ph-frame { aspect-ratio:16/11; }
.om-hero-badge { position:absolute; right:-6px; bottom:-22px; width:128px; height:128px; border-radius:50%; background:linear-gradient(150deg,#FFF6F0,#FBE3D6); border:1px solid #F1CDBC; box-shadow:0 12px 28px rgba(200,120,90,0.18); display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:0.6rem; }
.om-hero-badge b { font-family:'Noto Serif JP',serif; font-size:0.74rem; font-weight:700; color:#C75E47; line-height:1.5; margin-bottom:0.3rem; }
.om-hero-badge i { font-style:normal; font-size:0.62rem; color:#8a7166; line-height:1.4; }
/* ruler */
.om-ruler { position:relative; max-width:1180px; margin:clamp(1.5rem,3vw,2.5rem) auto 0; padding:2.8rem clamp(1.2rem,4vw,3.5rem) 0; }
/* 改善インジケーター(1ミリへ向かって伸びる) */
.om-ruler-imp { position:absolute; top:0.4rem; height:1.9rem; }
.om-ruler-imp-bar { position:absolute; left:0; right:0; bottom:0; height:9px; border-radius:6px; background:linear-gradient(90deg,#D46E55 0%,#F2A98C 100%); transform:scaleX(0); transform-origin:right center; transition:transform 1.3s cubic-bezier(.3,.7,.25,1) .35s; box-shadow:0 3px 8px rgba(200,90,70,0.25); }
.om-ruler.visible .om-ruler-imp-bar { transform:scaleX(1); }
.om-ruler-imp-bar::before { content:""; position:absolute; left:-8px; top:50%; transform:translateY(-50%); border:7px solid transparent; border-right-color:#D46E55; }
.om-ruler-imp-text { position:absolute; left:50%; bottom:14px; transform:translateX(-50%); white-space:nowrap; font-size:0.78rem; font-weight:700; color:#C75E47; background:rgba(255,246,241,0.92); padding:0.1rem 0.6rem; border-radius:999px; }
.om-ruler-goal { position:absolute; bottom:14px; width:14px; height:14px; transform:translateX(-50%); border-radius:50%; background:#DF7B5A; animation:omGoalPulse 2s ease-out infinite; z-index:2; }
@keyframes omGoalPulse { 0%{ box-shadow:0 0 0 0 rgba(223,123,90,0.5); } 70%{ box-shadow:0 0 0 12px rgba(223,123,90,0); } 100%{ box-shadow:0 0 0 0 rgba(223,123,90,0); } }
.om-ruler-svg { width:100%; height:30px; display:block; }
.om-ruler-ticks { position:relative; height:34px; margin-top:-30px; }
.om-ruler-ticks span { position:absolute; transform:translateX(-50%); display:flex; flex-direction:column; align-items:center; }
.om-ruler-ticks i { width:1.5px; height:14px; background:#E3B7A6; display:block; }
.om-ruler-ticks em { font-style:normal; font-size:0.72rem; color:#a98879; margin-top:4px; }
.om-ruler-ticks .is-mark i { width:2.5px; height:20px; background:#DF7B5A; }
.om-ruler-ticks .is-mark em { color:#C75E47; font-weight:700; }

/* ---- セクション背景 ---- */
.om-benefits { padding: clamp(2.5rem,5vw,4rem) 0; background:#FFFBF8; }
.om-disease { padding: clamp(2.5rem,5vw,4rem) 0; background:linear-gradient(180deg,#FDF1EA,#FBEAE0); }
.om-progress { padding: clamp(2.5rem,5vw,4rem) 0; background:#FFFBF8; }
.om-care { padding: clamp(2.5rem,5vw,4rem) 0; background:linear-gradient(180deg,#FDF1EA,#FCEDE4); }
.om-why { padding: clamp(2.5rem,5vw,4rem) 0; background:#FFFBF8; }
.om-together { padding: clamp(2.5rem,5vw,4rem) 0; background:linear-gradient(180deg,#FDF1EA,#FBEAE0); }
.om-closing { padding: clamp(3rem,6vw,5rem) 0; background:linear-gradient(180deg,#FCEDE4,#FBE6DA); text-align:center; }

/* ---- 写真カード ---- */
.om-cards { display:grid; gap:clamp(1rem,2vw,1.5rem); }
.om-cards--3 { grid-template-columns:repeat(3,1fr); max-width:1080px; margin:0 auto; }
.om-cards--4 { grid-template-columns:repeat(4,1fr); }
.om-cards--5 { grid-template-columns:repeat(5,1fr); max-width:1200px; margin:0 auto; }
.om-card { background:#fff; border-radius:18px; overflow:hidden; box-shadow:0 12px 28px rgba(200,140,110,0.10); display:flex; flex-direction:column; }
.om-card-photo.ph-frame { width:100%; height:0; padding-bottom:62%; border-radius:0; }
/* 03「もう少し良くなる」カードの写真を正方形に */
.om-care .om-card-photo.ph-frame { padding-bottom:100%; }
.om-care .om-card-photo.ph-frame img { object-fit:cover; object-position:center; }
.om-card-title { font-family:'Noto Serif JP',serif; font-size:1.08rem; font-weight:600; color:#3a342e; margin:1rem 1.1rem 0.4rem; line-height:1.5; }
.om-card--sm .om-card-title { font-size:1rem; }
.om-card-text { font-size:0.86rem; line-height:1.8; color:#6b6258; margin:0 1.1rem 1.2rem; }

/* ---- 歯周病ってどんな病気？ ---- */
.om-disease-inner { display:block; }
.om-disease-text { max-width:760px; margin:0 auto clamp(1.8rem,3.5vw,2.6rem); text-align:center; }
.om-disease-text .om-h2 { margin-bottom:0.9rem; }
.om-disease-text .om-body { font-size:1.02rem; }
.om-risks { text-align:center; }
.om-risks-label { display:inline-block; font-size:0.86rem; font-weight:700; color:#fff; background:linear-gradient(135deg,#E8895C,#D46E55); border-radius:999px; padding:0.4rem 1.3rem; margin:0 0 1.4rem; }
.om-disease .om-cards--4 { max-width:1080px; margin:0 auto; text-align:left; }
.om-disease .om-card--sm .om-card-title { font-size:1.04rem; }
.om-disease .om-card--sm .om-card-text { font-size:0.9rem; line-height:1.85; }

/* ---- 放置すると？ ---- */
.om-progress-grid { display:grid; grid-template-columns:0.75fr 2.6fr 0.85fr; gap:clamp(1rem,2.5vw,2rem); align-items:center; }
.om-progress-h { margin:0; }
.om-flow { display:flex; align-items:stretch; gap:0.4rem; }
.om-flow-step { flex:1; background:#fff; border-radius:14px; padding:0.9rem 0.7rem; box-shadow:0 8px 20px rgba(200,140,110,0.10); text-align:center; }
.om-flow-ico.ph-frame { width:100%; height:0; padding-bottom:64%; border-radius:10px; margin-bottom:0.5rem; }
.om-flow-step h4 { font-family:'Noto Serif JP',serif; font-size:0.84rem; font-weight:600; color:#3a342e; margin:0 0 0.3rem; line-height:1.4; }
.om-flow-step h4 small { font-weight:400; font-size:0.74em; color:#9a8f80; }
.om-flow-step p { font-size:0.74rem; line-height:1.6; color:#6b6258; margin:0; }
.om-flow-arrow { align-self:center; color:#E8895C; font-size:1.1rem; }
.om-flow-callout { background:linear-gradient(150deg,#FFF1EA,#FBE0D4); border:1px solid #F2CBBA; border-radius:16px; padding:1.2rem; text-align:center; }
.om-flow-callout strong { display:block; font-family:'Noto Serif JP',serif; font-size:1.05rem; color:#C75E47; margin-bottom:0.5rem; line-height:1.5; }
.om-flow-callout p { font-size:0.8rem; line-height:1.7; color:#6b6258; margin:0; }

/* ---- なぜ1ミリから？ ---- */
.om-why-head { text-align:center; max-width:720px; margin:0 auto clamp(1.6rem,3vw,2.4rem); }
.om-why-head .om-h2 { margin-bottom:0.8rem; }
.om-compare { display:grid; grid-template-columns:1fr auto 1fr; gap:clamp(0.8rem,2vw,1.6rem); align-items:center; max-width:1080px; margin:0 auto clamp(2rem,4vw,3rem); }
.om-compare-card { background:#fff; border-radius:18px; padding:1.4rem; box-shadow:0 12px 28px rgba(200,140,110,0.10); position:relative; }
.om-compare--bad { border:1px solid #E8DED5; }
.om-compare--good { border:1px solid #F2CBBA; background:linear-gradient(165deg,#FFFDFB,#FFF4EE); }
.om-compare-tag { display:inline-block; font-size:0.8rem; font-weight:700; border-radius:999px; padding:0.35rem 1rem; margin-bottom:0.9rem; }
.om-tag--bad { background:#EFE7DD; color:#8a7d6e; }
.om-tag--good { background:linear-gradient(135deg,#E8895C,#D46E55); color:#fff; }
.om-compare-list { list-style:none; margin:0 0 1rem; padding:0; }
.om-compare-list li { display:flex; gap:0.6rem; font-size:0.92rem; line-height:1.7; color:#5b5349; padding:0.3rem 0; }
.om-x { color:#c0a99a; font-weight:700; flex:none; }
.om-check { color:#D46E55; font-weight:700; flex:none; }
.om-compare-photo.ph-frame { width:100%; height:0; padding-bottom:42%; border-radius:12px; }
.om-compare-arrow { font-size:1.8rem; color:#E8895C; }

/* 4ステップ */
.om-steps { max-width:1100px; margin:0 auto; text-align:center; }
.om-steps-label { display:inline-block; font-size:0.82rem; color:#a98879; letter-spacing:0.1em; margin-bottom:1rem; }
.om-steps-row { display:flex; align-items:stretch; gap:0.4rem; }
.om-step { flex:1; background:#fff; border-radius:14px; padding:1rem 0.7rem; box-shadow:0 8px 20px rgba(200,140,110,0.10); text-align:center; position:relative; }
.om-step-num { position:absolute; top:-12px; left:50%; transform:translateX(-50%); width:30px; height:30px; border-radius:50%; background:linear-gradient(135deg,#E8895C,#C75E47); color:#fff; font-family:'Cormorant Garamond',serif; font-size:0.95rem; font-weight:600; display:flex; align-items:center; justify-content:center; }
.om-step-ico.ph-frame { width:100%; height:0; padding-bottom:60%; border-radius:10px; margin:0.5rem 0; }
.om-step h4 { font-family:'Noto Serif JP',serif; font-size:0.9rem; font-weight:600; color:#3a342e; margin:0 0 0.3rem; }
.om-step p { font-size:0.74rem; line-height:1.6; color:#6b6258; margin:0; }
.om-step-arrow { align-self:center; color:#E8895C; font-size:1.1rem; }

/* ---- 患者さんだけの挑戦ではありません ---- */
.om-together-grid { display:grid; grid-template-columns:1fr 1.3fr 1fr; gap:clamp(1.2rem,2.5vw,2rem); align-items:center; }
/* 患者さんだけの挑戦… 見出し全幅1行＋大きな写真 */
.om-together-headrow { justify-content:center; text-align:center; }
.om-together-main { display:grid; grid-template-columns:1.45fr 1fr; gap:clamp(1.5rem,3.2vw,2.8rem); align-items:center; margin-top:1.6rem; }
.om-together-main .om-together-photo.ph-frame { width:100%; height:0; padding-bottom:66%; border-radius:18px; }
.om-together-textcol { text-align:left; }
.om-together-textcol .om-together-tag { display:inline-block; margin:1rem 0 0.5rem; }
@media(max-width:760px){ .om-together-main { grid-template-columns:1fr; } }
.om-together-photo.ph-frame { width:100%; height:0; padding-bottom:56%; border-radius:18px; }
.om-together-tag { display:inline-block; font-size:0.82rem; font-weight:700; color:#C75E47; border-bottom:2px solid #F2CBBA; padding-bottom:0.3rem; margin-bottom:0.8rem; }
.om-together-right .om-body { font-size:0.92rem; }

/* ---- 締め ---- */
.om-closing-h { font-family:'Noto Serif JP',serif; font-size:clamp(1.5rem,3.6vw,2.3rem); font-weight:500; color:#3a342e; margin:0 auto 1rem; letter-spacing:0.03em; line-height:1.6; max-width:880px; }
.om-tooth { margin-right:0.4rem; }
.om-closing-sub { font-size:0.98rem; line-height:1.95; color:#6b6258; margin:0 auto; max-width:680px; }

/* ---- レスポンシブ ---- */
@media (max-width:900px){
  .om-hero-inner { grid-template-columns:1fr; }
  .om-disease-inner { grid-template-columns:1fr; }
  .om-cards--4 { grid-template-columns:repeat(2,1fr); }
  .om-cards--5 { grid-template-columns:repeat(2,1fr); }
  .om-progress-grid { grid-template-columns:1fr; }
  .om-flow, .om-steps-row { flex-wrap:wrap; }
  .om-flow-step, .om-step { flex:1 1 40%; }
  .om-flow-arrow, .om-step-arrow { display:none; }
  .om-compare { grid-template-columns:1fr; }
  .om-compare-arrow { transform:rotate(90deg); justify-self:center; }
  .om-together-grid { grid-template-columns:1fr; }
}

/* ---- 予防ページのページラベル(当院の予防歯科) ---- */
.pv-page-label { display:inline-flex; align-items:baseline; gap:0.8rem; margin:0 0 1.1rem; font-family:'Noto Serif JP',serif; font-size:1.12rem; font-weight:600; color:#CC5A82; letter-spacing:0.06em; }
.pv-page-en { font-family:'Cormorant Garamond',serif; font-size:0.84rem; font-weight:600; letter-spacing:0.22em; color:#B79A6E; }
@media (max-width:820px){ .pv-page-label { justify-content:center; } }

/* ===== 物差し:かわいい版 ===== */
.om-ruler--cute .om-ruler-svg { display: none; }
.om-ruler--cute .om-ruler-bar {
  height: 18px; border-radius: 999px;
  background: linear-gradient(180deg, #FFE7DC 0%, #FFD2C0 55%, #FBC3AD 100%);
  box-shadow: inset 0 -3px 0 rgba(214,110,85,0.18), inset 0 2px 0 rgba(255,255,255,0.7), 0 6px 14px rgba(223,123,90,0.18);
  position: relative; z-index: 1;
}
.om-ruler--cute .om-ruler-ticks { height: 30px; margin-top: 6px; }
.om-ruler--cute .om-ruler-ticks i { width: 4px; height: 9px; border-radius: 999px; background: #EAA893; }
.om-ruler--cute .om-ruler-ticks em { font-family: 'M PLUS Rounded 1c', 'Noto Serif JP', sans-serif; font-weight: 700; font-size: 0.74rem; color: #C77D63; margin-top: 5px; }
.om-ruler--cute .om-ruler-ticks .is-mark i { width: 6px; height: 14px; background: #E8895C; }
.om-ruler--cute .om-ruler-ticks .is-mark em { color: #fff; background: linear-gradient(135deg,#F2967A,#D46E55); border-radius: 999px; padding: 0.15rem 0.7rem; font-size: 0.78rem; box-shadow: 0 4px 10px rgba(212,110,85,0.32); }
/* 1mm の上にぴょこっとした歯 */
.om-ruler--cute .om-ruler-goal { bottom: auto; top: -6px; width: 16px; height: 16px; background: #fff; border: 3px solid #E8895C; }
.om-ruler--cute .om-ruler-goal-pop { position: absolute; left: 50%; bottom: 18px; transform: translateX(-50%); font-size: 1.5rem; animation: omBounce 1.8s ease-in-out infinite; }
@keyframes omBounce { 0%,100%{ transform: translateX(-50%) translateY(0); } 50%{ transform: translateX(-50%) translateY(-6px); } }
/* 改善バーをぷっくり丸く */
.om-ruler--cute .om-ruler-imp-bar { height: 11px; border-radius: 999px; background: linear-gradient(90deg,#E8895C,#FFB59B); box-shadow: 0 3px 9px rgba(212,110,85,0.3), inset 0 2px 0 rgba(255,255,255,0.4); }
.om-ruler--cute .om-ruler-imp-bar::before { border-width: 8px; border-right-color: #E8895C; left: -10px; }
.om-ruler--cute .om-ruler-imp-text { font-family: 'M PLUS Rounded 1c', 'Noto Serif JP', sans-serif; font-weight: 700; color: #fff; background: linear-gradient(135deg,#F2967A,#D46E55); box-shadow: 0 4px 10px rgba(212,110,85,0.3); }
/* ふわふわ装飾 */
.om-ruler--cute .om-ruler-deco { position: absolute; color: #F4A98E; opacity: 0.85; animation: omFloat 3.4s ease-in-out infinite; }
.om-ruler--cute .om-ruler-deco.d1 { left: 16%; top: 0.4rem; font-size: 1.1rem; color: #F18FA6; }
.om-ruler--cute .om-ruler-deco.d2 { right: 8%; top: 0.2rem; font-size: 0.95rem; color: #E8B85C; animation-delay: 1.2s; }
@keyframes omFloat { 0%,100%{ transform: translateY(0) rotate(-4deg); } 50%{ transform: translateY(-7px) rotate(6deg); } }

/* ---- なぜ磨き残しを減らすの? の深掘り(3つの気づき) ---- */
.pv-pcr-why { margin-bottom: clamp(2rem,4vw,3rem) !important; }
.pv-why-cards { display: grid; grid-template-columns: repeat(3,1fr); gap: clamp(1rem,2vw,1.5rem); max-width: 980px; margin: clamp(1.6rem,3vw,2.4rem) auto 0; text-align: left; }
.pv-why-card { background: #fff; border: 1px solid #F6DEE6; border-radius: 18px; padding: clamp(1.4rem,2.5vw,1.9rem); box-shadow: 0 12px 28px rgba(70,140,100,0.08); }
.pv-why-ico { display: inline-flex; align-items: center; justify-content: center; width: 50px; height: 50px; border-radius: 50%; background: linear-gradient(135deg,#F8DEE9,#F2C8D8); color: #CC5A82; margin-bottom: 0.9rem; }
.pv-why-ico svg { width: 26px; height: 26px; }
.pv-why-card h3 { font-family: 'Noto Serif JP', serif; font-size: 1.08rem; font-weight: 600; color: #2f3a32; margin: 0 0 0.6rem; line-height: 1.5; }
.pv-why-card p { font-size: 0.9rem; line-height: 1.9; color: #5f6b62; margin: 0; }
.pv-why-conclusion { text-align: center; font-size: 1.02rem; line-height: 2; color: #3a342e; margin: clamp(1.6rem,3vw,2.2rem) auto 0; max-width: 720px; }
.pv-why-conclusion strong { color: #CC5A82; font-weight: 700; }
@media (max-width: 760px){ .pv-why-cards { grid-template-columns: 1fr; max-width: 440px; } }

/* 予防ヒーロー背景を白に */
.pv-hero { background: #fff !important; }

/* ===================================================================
   小児歯科ページ:マガジン・レイアウト (.pd-) / セージグリーン基調
   =================================================================== */
.pd-hero,.pd-intro,.pd-care,.pd-events,.pd-grow2,.pd-closing { position:relative; }
.pd-h2 { font-family:'Noto Serif JP',serif; font-size:clamp(1.4rem,3vw,1.9rem); font-weight:500; color:#2f3a32; margin:0; letter-spacing:0.03em; line-height:1.5; }
.pd-body { font-size:1rem; line-height:1.95; color:#5f6b62; margin:0; }
.pd-sec-sub { text-align:center; font-size:1rem; color:#6b7268; margin:0.6rem 0 clamp(1.6rem,3vw,2.4rem); }
.pd-num-head { display:flex; align-items:center; gap:0.8rem; margin-bottom:1.3rem; }
.pd-num-head--center { justify-content:center; }
.pd-num { font-family:'Cormorant Garamond',serif; font-size:2.1rem; font-weight:600; color:#9CCBB0; line-height:1; width:46px; height:46px; border:2px dashed #BFE0CC; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; flex:none; }
.pd-card-photo, .pd-event-photo, .pd-hero-photo, .pd-grow2-photo { border-radius:16px; }

/* HERO */
.pd-hero { padding:clamp(2.5rem,5vw,4rem) clamp(1.2rem,4vw,3.5rem); background:linear-gradient(180deg,#FCFEFB 0%,#EFF6EF 100%); overflow:hidden; }
.pd-hero-inner { display:grid; grid-template-columns:1fr 1.1fr; gap:clamp(1.5rem,3vw,3rem); align-items:center; max-width:1180px; margin:0 auto; }
.pd-hero-h { font-family:'Noto Serif JP',serif; font-size:clamp(2rem,4.6vw,3rem); font-weight:500; line-height:1.45; color:#2f3a32; margin:0 0 1.3rem; letter-spacing:0.04em; }
.pd-hero-lead { font-size:1rem; line-height:1.95; color:#5b635a; margin:0; }
.pd-hero-photo.ph-frame { aspect-ratio:16/10; }
.pd-deco { position:absolute; z-index:1; }
.pd-deco-star1 { left:6%; top:14%; color:#E8C35C; font-size:1.4rem; animation:omFloat 3.6s ease-in-out infinite; }
.pd-deco-star2 { left:46%; top:8%; color:#9CCBB0; font-size:1rem; animation:omFloat 3.6s ease-in-out infinite .8s; }
.pd-deco-tooth { left:30%; bottom:14%; font-size:1.6rem; opacity:0.7; }

/* 01 + 02 */
.pd-intro { padding:clamp(2.5rem,5vw,4rem) 0; background:#fff; }
.pd-intro-grid { display:grid; grid-template-columns:1fr; gap:clamp(2.4rem,5vw,3.6rem); align-items:start; }
.pd-cards { display:grid; gap:clamp(0.9rem,1.8vw,1.3rem); }
.pd-cards--3 { grid-template-columns:repeat(3,1fr); }
.pd-card { text-align:center; }
.pd-card-photo.ph-frame { width:100%; height:0; padding-bottom:78%; }
.pd-card-title { font-family:'Noto Serif JP',serif; font-size:0.98rem; font-weight:600; color:#2f3a32; margin:0.8rem 0 0.3rem; }
.pd-card-text { font-size:0.82rem; line-height:1.75; color:#6b7268; margin:0; }
/* 02 box */
.pd-grow-box { background:#F4F9F2; border:1px solid #DCEBDD; border-radius:22px; padding:clamp(1.5rem,3vw,2.2rem); }
.pd-symptom-q { text-align:center; font-family:'Noto Serif JP',serif; font-size:1rem; font-weight:600; color:#2f3a32; margin:0 0 1.1rem; }
.pd-symptoms { display:grid; grid-template-columns:repeat(4,1fr); gap:0.7rem; margin-bottom:1.4rem; }
.pd-symptom { text-align:center; }
.pd-face { display:inline-flex; width:62px; height:62px; color:#6AB78F; background:#fff; border-radius:50%; align-items:center; justify-content:center; box-shadow:0 6px 14px rgba(90,160,120,0.12); margin-bottom:0.5rem; }
.pd-face svg { width:38px; height:38px; }
.pd-symptom p { font-size:0.78rem; line-height:1.5; color:#5f6b62; margin:0; }
.pd-mft { background:#fff; border-radius:14px; padding:1.1rem 1.2rem; }
.pd-mft-tag { display:inline-block; font-size:0.78rem; font-weight:700; color:#fff; background:linear-gradient(135deg,#7FC79E,#4FA877); border-radius:999px; padding:0.32rem 1rem; margin-bottom:0.7rem; }
.pd-mft p { font-size:0.86rem; line-height:1.85; color:#5f6b62; margin:0; }
.pd-mft strong { color:#2E8B5E; }

/* 03 */
.pd-care { padding:clamp(2.5rem,5vw,4rem) 0; background:linear-gradient(180deg,#EFF6EF,#E8F2E9); }
.pd-cards--5 { grid-template-columns:repeat(5,1fr); max-width:1120px; margin:0 auto; }
.pd-icard { background:#fff; border-radius:18px; padding:clamp(1.2rem,2.2vw,1.7rem) 1rem; text-align:center; box-shadow:0 10px 26px rgba(70,140,100,0.08); }
.pd-icon { display:inline-flex; width:64px; height:64px; border-radius:50%; background:linear-gradient(135deg,#E3F1E8,#C8E8D4); color:#3E9E6E; align-items:center; justify-content:center; margin-bottom:0.8rem; }
.pd-icon svg { width:34px; height:34px; }
.pd-icard-title { font-family:'Noto Serif JP',serif; font-size:1rem; font-weight:600; color:#2f3a32; margin:0 0 0.5rem; }
.pd-icard p { font-size:0.82rem; line-height:1.75; color:#6b7268; margin:0; }

/* 04 */
.pd-events { padding:clamp(2.5rem,5vw,4rem) 0; background:#fff; overflow:hidden; }
.pd-events-grid { gap:clamp(0.8rem,1.5vw,1.2rem); }
.pd-event { margin:0; }
.pd-event-photo.ph-frame { width:100%; height:0; padding-bottom:100%; border-radius:14px; }
.pd-event figcaption { text-align:center; font-size:0.88rem; font-weight:600; color:#3E8E60; margin-top:0.6rem; }
.pd-events-note { text-align:center; font-size:0.95rem; color:#6b7268; margin:clamp(1.6rem,3vw,2.2rem) 0 0; }
.pd-balloon { position:absolute; z-index:1; font-size:1.6rem; }
.pd-balloon-1 { left:4%; top:8%; animation:omFloat 4s ease-in-out infinite; }
.pd-balloon-2 { right:5%; top:10%; color:#E8C35C; animation:omFloat 4s ease-in-out infinite 1s; }

/* 05 */
.pd-grow2 { padding:clamp(2.5rem,5vw,4rem) 0; background:linear-gradient(180deg,#EFF6EF,#E8F2E9); }
.pd-grow2-grid { display:grid; grid-template-columns:1fr 1.1fr; gap:clamp(1.6rem,3vw,2.8rem); align-items:center; }
.pd-grow2-photo.ph-frame { width:100%; height:0; padding-bottom:66%; border-radius:20px; }
.pd-grow2-points { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin:1.4rem 0; }
.pd-gp { text-align:center; }
.pd-gp-ico { display:inline-flex; width:52px; height:52px; border-radius:50%; background:#fff; color:#5FA083; align-items:center; justify-content:center; box-shadow:0 6px 14px rgba(90,160,120,0.14); margin-bottom:0.5rem; }
.pd-gp-ico svg { width:28px; height:28px; }
.pd-gp:nth-child(3) .pd-gp-ico { color:#E88AA0; }
.pd-gp p { font-size:0.78rem; line-height:1.5; color:#5f6b62; margin:0; }
.pd-grow2-cta { font-family:'Noto Serif JP',serif; font-size:1rem; color:#3E8E60; font-weight:600; margin:0; }

/* 締め */
.pd-closing { padding:clamp(3rem,6vw,4.5rem) 0; background:linear-gradient(180deg,#E8F2E9,#E0EEE2); text-align:center; }
.pd-closing-h { font-family:'Noto Serif JP',serif; font-size:clamp(1.4rem,3.4vw,2.1rem); font-weight:500; color:#2f3a32; margin:0 0 0.9rem; letter-spacing:0.03em; }
.pd-apple { margin-left:0.4rem; }
.pd-closing-sub { font-size:0.98rem; color:#6b7268; margin:0; }

@media (max-width:900px){
  .pd-hero-inner { grid-template-columns:1fr; }
  .pd-intro-grid { grid-template-columns:1fr; }
  .pd-cards--5 { grid-template-columns:repeat(2,1fr); }
  .pd-grow2-grid { grid-template-columns:1fr; }
}
@media (max-width:560px){ .pd-cards--3 { grid-template-columns:1fr; } .pd-symptoms { grid-template-columns:repeat(2,1fr); } }

/* 私たちが大切にしていること:カードをやめて横画面いっぱいに */
.pv-care { padding: 0 !important; background: none !important; }
.pv-care-panel { max-width: none !important; margin: 0 !important; border-radius: 0 !important; box-shadow: none !important; grid-template-columns: 1fr 1fr; }
.pv-care-photo { min-height: clamp(300px, 40vw, 540px); }
.pv-care-body { padding: clamp(2.2rem,5vw,4.5rem) clamp(1.5rem,6vw,5.5rem) !important; background: linear-gradient(160deg,#FFFDF9 0%,#F6EEE2 100%); }
@media (max-width: 900px){ .pv-care-panel { grid-template-columns: 1fr; } }

/* 小児HERO:ホワイトニング風の全面背景画像 */
.pd-hero--bg { padding: 0 !important; min-height: clamp(380px,46vw,540px); display: flex; align-items: center; overflow: hidden; background: #fff; }
.pd-hero-bg { position: absolute; inset: 0; z-index: 0; }
.pd-hero-bg img { width: 100%; height: 100%; object-fit: cover; object-position: 68% center; display: block; }
.pd-hero-overlay { position: absolute; inset: 0; z-index: 1; background:
  linear-gradient(100deg, #ffffff 0%, #ffffff 24%, rgba(255,255,255,0.86) 40%, rgba(255,255,255,0.42) 55%, rgba(255,255,255,0.05) 70%, transparent 80%),
  linear-gradient(0deg, rgba(255,255,255,0.5) 0%, transparent 26%); }
.pd-hero--bg .pd-hero-inner { position: relative; z-index: 3; display: block; width: 100%; max-width: 1340px; margin: 0 auto; padding: clamp(2rem,5vw,4rem) clamp(1.5rem,5vw,4rem); }
.pd-hero--bg .pd-hero-text { width: min(58%, 620px); }
@media (max-width: 860px){
  .pd-hero-overlay { background: linear-gradient(180deg, rgba(255,255,255,0.92), rgba(255,255,255,0.55)); }
  .pd-hero--bg .pd-hero-text { width: 100%; }
}

/* 小児03:写真カード(前回デザイン) */
.pd-care-card { background:#fff; border-radius:18px; overflow:hidden; box-shadow:0 10px 26px rgba(70,140,100,0.10); padding-bottom:1.1rem; text-align:center; }
.pd-care-card .pd-card-photo.ph-frame { border-radius:0; padding-bottom:72%; }
.pd-care-card .pd-card-title { margin:0.9rem 0.8rem 0.4rem; }
.pd-care-card .pd-card-text { padding:0 0.9rem; }

/* ============================================================
   予防歯科 8セクション 再構築 (2026-06-11)
   ============================================================ */
.pv-sec { padding: clamp(2.1rem,4vw,3.2rem) clamp(1.2rem,4vw,3rem); }
.pv-sec-inner { max-width: 980px; margin: 0 auto; }
.pv-sec--worry, .pv-sec--whole { background: linear-gradient(180deg,#FEF5F8 0%,#FBEBF1 100%); }
.pv-sec--perio { background: #FBF8F1; }

.pv-sec-head { text-align:left; margin-bottom: clamp(1.1rem,2.2vw,1.6rem); position:relative; display:grid; grid-template-columns:auto 1fr; column-gap:clamp(0.9rem,2vw,1.4rem); align-items:center; }
.pv-sec-num { grid-row:1 / span 2; align-self:center; position:relative; width:clamp(74px,11vw,98px); height:clamp(74px,11vw,98px); display:flex; align-items:center; justify-content:center; font-family:'Cormorant Garamond',serif; font-size:clamp(2rem,4vw,2.7rem); font-weight:700; line-height:1; color:#1f1d1b; letter-spacing:0.01em; }
.pv-sec-num::before { content:''; position:absolute; inset:0; border-radius:50%; background:conic-gradient(from 140deg,#F2A6C0,#DE6F94,#EE94B4,#F4BBD0,#F2A6C0); -webkit-mask:repeating-conic-gradient(#000 0deg 5deg, transparent 5deg 11deg), radial-gradient(farthest-side, transparent calc(100% - 3px), #000 calc(100% - 3px)); -webkit-mask-composite:source-in; mask:repeating-conic-gradient(#000 0deg 5deg, transparent 5deg 11deg), radial-gradient(farthest-side, transparent calc(100% - 3px), #000 calc(100% - 3px)); mask-composite:intersect; animation:pvNumPulse 2.6s ease-in-out infinite; }
@keyframes pvNumPulse { 0%,100%{ transform:scale(1); opacity:0.92; } 50%{ transform:scale(1.1); opacity:0.5; } }
.pv-sec-eyebrow { grid-column:2; font-family:'Cormorant Garamond',serif; letter-spacing:0.18em; font-size:0.82rem; color:#E588A6; margin:0 0 0.25rem; font-weight:600; }
.pv-sec-h { grid-column:2; font-family:'Noto Serif JP',serif; font-weight:600; font-size:clamp(1.9rem,4.8vw,3rem); line-height:1.28; color:#3a2c34; margin:0; }
.pv-sec-lead { text-align:left; font-size:clamp(0.95rem,1.7vw,1.05rem); line-height:1.95; color:#5a6a5e; margin: clamp(0.7rem,1.6vw,1.2rem) 0 0; max-width:none; }
.pv-sec-lead strong { color:#CC5A82; font-weight:600; }
/* スマホ専用の改行（PC・タブレットでは無効） */
.sp-br { display:none; }
@media(max-width:600px){ .sp-br { display:inline; } }
.pv-sec-close { text-align:left; font-size:clamp(1rem,2vw,1.2rem); line-height:1.9; color:#3a4a40; margin: clamp(1.2rem,2.5vw,1.8rem) 0 0; font-family:'Noto Serif JP',serif; }
.pv-sec-close strong { color:#CC5A82; }

/* SECTION 01 行っていること */
.pv-do { margin-top: clamp(1.8rem,3.5vw,2.6rem); background:#fff; border:1px solid #FAE4EC; border-radius:22px; padding: clamp(1.4rem,3vw,2.2rem); box-shadow:0 14px 36px rgba(204,90,130,0.08); }
.pv-do-title { text-align:center; font-family:'Noto Serif JP',serif; font-size:1.05rem; color:#CC5A82; font-weight:600; margin:0 0 1.2rem; position:relative; }
.pv-do-title::after { content:''; display:block; width:38px; height:2px; background:#F4BBD0; margin:0.6rem auto 0; border-radius:2px; }
.pv-do-list { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:0.7rem; }
.pv-do-item { display:flex; align-items:center; gap:0.7rem; background:linear-gradient(180deg,#F4FAF5,#ECF6EE); border:1px solid #FAE2EA; border-radius:14px; padding:0.85rem 1rem; }
.pv-do-ico { flex:none; width:34px; height:34px; border-radius:50%; background:#fff; border:1px solid #F5D4E0; display:flex; align-items:center; justify-content:center; color:#DE6F94; }
.pv-do-ico svg { width:18px; height:18px; }
.pv-do-t { font-size:0.92rem; color:#374a3d; font-weight:600; line-height:1.4; }
.pv-do-t small { font-size:0.74rem; color:#7b8a80; font-weight:500; }

/* SECTION 02 お悩み */
.pv-worry-list { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(2,1fr); gap:0.8rem; max-width:760px; margin-inline:auto; }
.pv-worry-item { display:flex; align-items:center; gap:0.8rem; background:#fff; border:1px solid #FAE2EA; border-radius:16px; padding:1rem 1.2rem; font-size:0.98rem; color:#37463c; font-weight:600; box-shadow:0 8px 20px rgba(204,90,130,0.06); }
.pv-worry-item--wide { grid-column:1 / -1; justify-content:center; }
.pv-worry-check { flex:none; width:26px; height:26px; border-radius:50%; background:linear-gradient(135deg,#F2A6C0,#E588A6); color:#fff; display:flex; align-items:center; justify-content:center; font-size:0.8rem; font-weight:800; box-shadow:0 3px 8px rgba(222,111,148,0.4); }

/* SECTION 03 変化 */
.pv-change-label { text-align:center; font-family:'Noto Serif JP',serif; color:#CC5A82; font-weight:600; font-size:1rem; margin: clamp(1.4rem,3vw,2rem) 0 1.1rem; }
.pv-change-label::after { content:''; display:block; width:38px; height:2px; background:#F4BBD0; margin:0.55rem auto 0; border-radius:2px; }
.pv-change-list { list-style:none; padding:0; margin:0 auto; max-width:820px; display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:0.75rem; }
.pv-change-item { display:flex; align-items:center; gap:0.75rem; background:linear-gradient(180deg,#FFFFFF,#F4FAF5); border:1px solid #F9DEE9; border-radius:999px; padding:0.7rem 1.1rem; font-size:0.95rem; color:#374a3d; font-weight:600; }
.pv-change-ico { flex:none; width:32px; height:32px; border-radius:50%; background:#FCEBF1; display:flex; align-items:center; justify-content:center; color:#DE6F94; }
.pv-change-ico svg { width:17px; height:17px; }
.pv-sec--change .pv-pcr-panel { margin-top: clamp(2rem,4vw,3rem); }

/* SECTION 05 歯周病フロー */
.pv-perio { margin-top: clamp(1.8rem,3.5vw,2.6rem); background:#fff; border:1px solid #F0E6D6; border-radius:22px; padding: clamp(1.6rem,3.5vw,2.6rem); box-shadow:0 14px 36px rgba(160,120,80,0.08); }
.pv-perio-label { text-align:center; font-family:'Noto Serif JP',serif; color:#C0794F; font-weight:600; font-size:1.02rem; margin:0 0 1.6rem; }
.pv-perio-flow { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; align-items:center; gap:0; max-width:380px; margin-inline:auto; }
.pv-perio-step { position:relative; display:flex; align-items:center; gap:0.9rem; width:100%; justify-content:center; padding:0.7rem 1.4rem; border-radius:14px; font-family:'Noto Serif JP',serif; font-weight:600; font-size:1.02rem; color:#4a4036; background:linear-gradient(180deg,#FFF8EF,#FDEFE0); border:1px solid #F3E1CC; }
.pv-perio-step:not(:last-child)::after { content:'↓'; position:absolute; bottom:-1.05rem; left:50%; transform:translateX(-50%); color:#E0A878; font-size:1rem; z-index:2; }
.pv-perio-step + .pv-perio-step { margin-top:1.2rem; }
.pv-perio-dot { flex:none; width:12px; height:12px; border-radius:50%; background:#E8B27E; box-shadow:0 0 0 4px rgba(232,178,126,0.22); }
.pv-perio-step[data-stage="3"] { background:linear-gradient(180deg,#FFF3E6,#FCE6D2); }
.pv-perio-step[data-stage="4"] { background:linear-gradient(180deg,#FCEADB,#F8DCC6); }
.pv-perio-step--last { background:linear-gradient(135deg,#E89B72,#D87B57) !important; border-color:#D87B57 !important; color:#fff !important; box-shadow:0 8px 20px rgba(200,120,80,0.3); }
.pv-perio-step--last .pv-perio-dot { background:#fff; box-shadow:0 0 0 4px rgba(255,255,255,0.35); }
.pv-perio-note { text-align:center; margin:1.6rem 0 0; font-size:0.95rem; color:#5a6a5e; }
.pv-perio-note strong { color:#C0794F; }

/* SECTION 06 全身 */
.pv-whole-list { list-style:none; padding:0; margin:clamp(1.6rem,3vw,2.2rem) auto 0; max-width:560px; display:flex; flex-direction:column; gap:0.7rem; }
.pv-whole-item { display:flex; align-items:center; gap:1rem; background:#fff; border:1px solid #FAE2EA; border-radius:16px; padding:1rem 1.4rem; font-family:'Noto Serif JP',serif; font-size:1.05rem; color:#37463c; font-weight:500; box-shadow:0 8px 20px rgba(204,90,130,0.06); }
.pv-whole-num { flex:none; font-family:'Cormorant Garamond',serif; font-size:1.5rem; font-weight:600; color:#F2A6C0; min-width:1.8em; }

/* SECTION 07 番号インライン */
.pv-sec-num--inline { font-size:2.2rem; color:#F2C6D6; margin-bottom:0.2rem; }

/* SECTION 08 良くするために */
.pv-for-block { margin-top: clamp(2rem,4vw,3rem); }
.pv-for-block:first-of-type { margin-top: clamp(1.6rem,3vw,2.2rem); }
.pv-for-h { text-align:center; font-family:'Noto Serif JP',serif; font-weight:500; font-size:clamp(1.2rem,2.6vw,1.55rem); color:#3a2c34; margin:0 0 1.3rem; line-height:1.6; }
.pv-for-lead { color:#8a9a8e; font-size:0.86em; }
.pv-exam-list { list-style:none; padding:0; margin:0; display:flex; flex-wrap:wrap; justify-content:center; gap:0.7rem; }
.pv-exam-item { display:flex; align-items:center; gap:0.6rem; background:#fff; border:1px solid #F9DEE9; border-radius:999px; padding:0.7rem 1.2rem; font-size:0.95rem; color:#374a3d; font-weight:600; box-shadow:0 6px 16px rgba(204,90,130,0.07); }
.pv-exam-ico { flex:none; width:28px; height:28px; border-radius:50%; background:#FCEBF1; display:flex; align-items:center; justify-content:center; color:#DE6F94; }
.pv-exam-ico svg { width:16px; height:16px; }

/* SECTION 08 バナー */
.pv-banner { display:flex; align-items:center; gap:1.2rem; max-width:780px; margin:0 auto; padding: clamp(1.2rem,2.5vw,1.7rem) clamp(1.3rem,3vw,2rem); border-radius:22px; text-decoration:none; transition:transform .25s ease, box-shadow .25s ease; }
.pv-banner:hover { transform:translateY(-3px); }
.pv-banner--book { background:linear-gradient(120deg,#FFF8E8,#FDF0D4); border:1px solid #F2E2B8; box-shadow:0 12px 30px rgba(200,165,90,0.16); }
.pv-banner--1mm { background:linear-gradient(120deg,#FFF4F6,#FDEDF3,#F3F0FF); border:1px solid #F2D9E2; box-shadow:0 12px 30px rgba(190,140,170,0.18); }
.pv-banner-ico { flex:none; width:54px; height:54px; border-radius:16px; background:#fff; display:flex; align-items:center; justify-content:center; box-shadow:0 6px 16px rgba(0,0,0,0.08); }
.pv-banner--book .pv-banner-ico { color:#D9A441; }
.pv-banner--1mm .pv-banner-ico { color:#E889A8; }
.pv-banner-ico svg { width:28px; height:28px; }
.pv-banner-body { display:flex; flex-direction:column; gap:0.25rem; flex:1; }
.pv-banner-tag { align-self:flex-start; font-family:'Cormorant Garamond','Noto Serif JP',serif; font-size:0.78rem; font-weight:700; letter-spacing:0.06em; padding:0.2rem 0.7rem; border-radius:999px; background:#fff; color:#C99A3A; }
.pv-banner-tag--rainbow { background:linear-gradient(95deg,#FF9DB0,#FFC46B,#FFE873,#F2BBD0,#7FC4E8,#C9A0F0); color:#fff; }
.pv-banner-t { font-family:'Noto Serif JP',serif; font-size:clamp(1.02rem,2vw,1.2rem); font-weight:600; color:#3a4a40; line-height:1.5; }
.pv-banner-sub { font-size:0.86rem; color:#7a8a7e; line-height:1.6; }
.pv-banner-arr { flex:none; width:38px; height:38px; border-radius:50%; background:#fff; display:flex; align-items:center; justify-content:center; color:#5a6a5e; font-size:1.1rem; box-shadow:0 4px 12px rgba(0,0,0,0.08); }

/* LAST MESSAGE */
.pv-last { padding: clamp(3.5rem,7vw,6rem) clamp(1.2rem,4vw,3rem); background:linear-gradient(180deg,#FBEBF1 0%,#F9DEE9 100%); text-align:center; }
.pv-last-inner { max-width:820px; margin:0 auto; }
.pv-last-eyebrow { font-family:'Cormorant Garamond',serif; letter-spacing:0.22em; font-size:0.82rem; color:#E588A6; font-weight:600; margin:0 0 1rem; }
.pv-last-h { font-family:'Noto Serif JP',serif; font-weight:500; font-size:clamp(1.7rem,4.5vw,2.6rem); line-height:1.6; color:#26352b; margin:0 0 clamp(1.8rem,4vw,2.8rem); }
.pv-last-wishes { list-style:none; padding:0; margin:0 auto clamp(1.8rem,4vw,2.8rem); display:grid; grid-template-columns:repeat(2,1fr); gap:0.9rem; max-width:600px; }
.pv-last-wish { display:flex; align-items:center; gap:0.8rem; background:rgba(255,255,255,0.8); border:1px solid #F4D2DF; border-radius:16px; padding:1rem 1.3rem; font-family:'Noto Serif JP',serif; font-size:clamp(1rem,2vw,1.15rem); font-weight:500; color:#3a2c34; }
.pv-last-wish-ico { flex:none; width:36px; height:36px; border-radius:50%; background:#fff; display:flex; align-items:center; justify-content:center; color:#DE6F94; box-shadow:0 4px 10px rgba(204,90,130,0.14); }
.pv-last-wish-ico svg { width:19px; height:19px; }
.pv-last-close { font-family:'Noto Serif JP',serif; font-size:clamp(1.05rem,2.2vw,1.3rem); line-height:2; color:#26352b; margin:0; }

@media (max-width:560px){
  .pv-worry-list { grid-template-columns:1fr; }
  .pv-last-wishes { grid-template-columns:1fr; }
}

/* 1mm HERO 全面背景画像化 (whitening/小児と同様) */
.om-hero--bg { position:relative; padding:0 !important; min-height:clamp(420px,48vw,580px); display:flex; align-items:center; overflow:hidden; background:#fff; }
.om-hero-bg { position:absolute; inset:0; z-index:0; }
.om-hero-bg img { width:100%; height:100%; object-fit:cover; object-position:85% 35%; }
.om-hero-overlay { position:absolute; inset:0; z-index:1; background:linear-gradient(100deg, rgba(255,251,248,0.97) 0%, rgba(255,251,248,0.9) 30%, rgba(255,251,248,0.5) 52%, rgba(255,251,248,0.12) 70%, rgba(255,251,248,0) 84%); }
.om-hero--bg .om-hero-inner { position:relative; z-index:2; display:block; width:100%; max-width:1180px; margin:0 auto; padding:0 clamp(1.4rem,5vw,4rem); }
.om-hero--bg .om-hero-text { width:min(58%,580px); }
.om-hero-deco { position:absolute; z-index:2; color:#D9A52E; opacity:0.95; font-size:1.4rem; text-shadow:0 2px 5px rgba(180,130,40,0.3); animation:omHeroTwinkle 3s ease-in-out infinite; }
.om-hero-deco.d1 { top:17%; left:50%; font-size:2rem; background:linear-gradient(135deg,#F7D873,#D9982E); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.om-hero-deco.d2 { bottom:24%; left:44%; font-size:1.45rem; color:#C9921F; animation-delay:1.2s; }
@keyframes omHeroTwinkle { 0%,100%{ transform:scale(1); opacity:0.5; } 50%{ transform:scale(1.25); opacity:0.95; } }
/* 物差し:大きく・写真に重ねる */
.om-ruler-band { position:relative; z-index:4; margin-top:0; background:transparent; padding:clamp(0.5rem,2vw,1.4rem) clamp(1rem,4vw,3rem) clamp(1rem,3vw,1.8rem); }
.om-ruler-band .om-ruler { margin-left:auto; margin-right:auto; max-width:940px; background:rgba(255,250,246,0.88); -webkit-backdrop-filter:blur(7px); backdrop-filter:blur(7px); border:1.5px solid rgba(255,255,255,0.85); border-radius:28px; box-shadow:0 20px 48px rgba(200,120,90,0.26); padding:3.6rem clamp(1.8rem,4vw,3.4rem) 2.2rem; }
.om-ruler-band .om-ruler--cute .om-ruler-bar { height:30px; }
.om-ruler-band .om-ruler--cute .om-ruler-imp { top:0.9rem; height:2.7rem; }
.om-ruler-band .om-ruler--cute .om-ruler-imp-bar { height:18px; }
.om-ruler-band .om-ruler--cute .om-ruler-imp-text { font-size:1.02rem; padding:0.22rem 0.95rem; }
.om-ruler-band .om-ruler--cute .om-ruler-ticks { height:44px; margin-top:11px; }
.om-ruler-band .om-ruler--cute .om-ruler-ticks i { width:5px; height:15px; }
.om-ruler-band .om-ruler--cute .om-ruler-ticks em { font-size:1.02rem; margin-top:8px; }
.om-ruler-band .om-ruler--cute .om-ruler-ticks .is-mark i { width:9px; height:23px; }
.om-ruler-band .om-ruler--cute .om-ruler-ticks .is-mark em { font-size:1.08rem; padding:0.28rem 1.05rem; }
.om-ruler-band .om-ruler--cute .om-ruler-goal { width:22px; height:22px; top:-9px; border-width:4px; }
.om-ruler-band .om-ruler--cute .om-ruler-goal-pop { font-size:2.3rem; bottom:26px; }
.om-ruler-band .om-ruler--cute .om-ruler-deco.d1 { font-size:1.6rem; }
.om-ruler-band .om-ruler--cute .om-ruler-deco.d2 { font-size:1.35rem; }
@media (max-width:680px){
  .om-hero--bg { min-height:auto; }
  .om-hero--bg .om-hero-text { width:100%; }
  .om-hero-overlay { background:linear-gradient(180deg, rgba(255,251,248,0.95) 0%, rgba(255,251,248,0.78) 55%, rgba(255,251,248,0.4) 100%); }
}

/* ものさし おしゃれ版 (cute → chic) */
.om-ruler-band .om-ruler { background:rgba(255,253,250,0.92); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); border:1px solid rgba(201,141,110,0.18); border-radius:16px; box-shadow:0 16px 44px rgba(150,105,80,0.14); padding:3rem clamp(2.2rem,5vw,4rem) 1.9rem; }
.om-ruler-band .om-ruler--cute .om-ruler-bar { height:5px; border-radius:999px; background:#EBE0D3; box-shadow:none; }
.om-ruler-band .om-ruler--cute .om-ruler-imp { top:1.2rem; height:2.3rem; }
.om-ruler-band .om-ruler--cute .om-ruler-imp-bar { height:5px; border-radius:999px; background:linear-gradient(90deg,#C2705520,#C97455 18%,#E0A47F); box-shadow:none; }
.om-ruler-band .om-ruler--cute .om-ruler-imp-bar::before { display:none; }
.om-ruler-band .om-ruler--cute .om-ruler-imp-text { font-family:'Noto Serif JP',serif; font-weight:500; letter-spacing:0.1em; font-size:0.8rem; color:#B26349; background:transparent; box-shadow:none; bottom:15px; }
/* 1mm 地点:細いダイヤのマーカー(歯の絵は削除) */
.om-ruler-band .om-ruler--cute .om-ruler-goal { width:9px; height:9px; top:-2px; background:#C97455; border:none; border-radius:2px; transform:translateX(-50%) rotate(45deg); animation:none; box-shadow:0 2px 6px rgba(180,100,70,0.3); }
.om-ruler-band .om-ruler--cute .om-ruler-goal-pop { display:none; }
/* 目盛り:細く上品に */
.om-ruler-band .om-ruler--cute .om-ruler-ticks { height:40px; margin-top:14px; }
.om-ruler-band .om-ruler--cute .om-ruler-ticks i { width:1px; height:11px; border-radius:0; background:#CFBDAB; }
.om-ruler-band .om-ruler--cute .om-ruler-ticks em { font-family:'Cormorant Garamond',serif; font-weight:600; font-size:1.1rem; letter-spacing:0.05em; color:#9B8573; background:transparent; box-shadow:none; padding:0; margin-top:9px; }
.om-ruler-band .om-ruler--cute .om-ruler-ticks .is-mark i { width:2px; height:18px; background:#C97455; }
.om-ruler-band .om-ruler--cute .om-ruler-ticks .is-mark em { color:#B26349; background:transparent; box-shadow:none; padding:0; font-size:1.22rem; font-weight:700; }
/* ハート・キラキラ装飾は削除 */
.om-ruler-band .om-ruler--cute .om-ruler-deco { display:none; }

/* 3つの変化カード:縦長画像をきれいに収める */
.om-benefits .om-card-photo.ph-frame { padding-bottom:132%; }
.om-benefits .om-card-photo.ph-frame img { object-fit:cover; object-position:center top; }

/* 物差し:本物の定規/メジャー風 */
.om-ruler-band .om-ruler--cute .om-ruler-bar {
  height:44px; border-radius:8px;
  background-color:#FCF6EA;
  background-image:
    linear-gradient(90deg, #C0A286 1px, transparent 1px),
    linear-gradient(90deg, #8C6A4E 1.5px, transparent 1.5px);
  background-size: 4% 11px, 20% 20px;
  background-repeat: repeat-x, repeat-x;
  background-position: left bottom, left bottom;
  border:1px solid #E6D5C2;
  box-shadow: inset 0 3px 5px rgba(255,255,255,0.85), inset 0 -8px 14px rgba(214,180,140,0.12), 0 8px 20px rgba(170,120,90,0.12);
}
/* 0→1mm を測っている寸法線(上) */
.om-ruler-band .om-ruler--cute .om-ruler-imp { top:0.5rem; height:1.6rem; }
.om-ruler-band .om-ruler--cute .om-ruler-imp-bar { height:2px; bottom:0; border-radius:0; background:#C2705A; box-shadow:none; }
.om-ruler-band .om-ruler--cute .om-ruler-imp-bar::before { display:block; content:''; position:absolute; left:0; bottom:-3px; width:2px; height:8px; background:#C2705A; border:none; transform:none; }
.om-ruler-band .om-ruler--cute .om-ruler-imp-bar::after { content:''; position:absolute; right:0; bottom:-3px; width:2px; height:8px; background:#C2705A; }
.om-ruler-band .om-ruler--cute .om-ruler-imp-text { bottom:9px; font-family:'Noto Serif JP',serif; font-weight:500; letter-spacing:0.1em; font-size:0.8rem; color:#B05B41; background:transparent; box-shadow:none; }
/* 1mm 地点の細い指針(テープの上に立つ) */
.om-ruler-band .om-ruler--cute .om-ruler-goal { width:2px; height:50px; top:2.55rem; background:#C2705A; border:none; border-radius:0; transform:translateX(-50%); animation:none; box-shadow:none; }
.om-ruler-band .om-ruler--cute .om-ruler-goal::after { content:''; position:absolute; top:-7px; left:50%; transform:translateX(-50%) rotate(45deg); width:9px; height:9px; background:#C2705A; box-shadow:0 2px 5px rgba(180,100,70,0.3); }
.om-ruler-band .om-ruler--cute .om-ruler-goal-pop { display:none; }
/* 目盛り数字(テープ下):重複する線は消す */
.om-ruler-band .om-ruler--cute .om-ruler-ticks { height:24px; margin-top:9px; }
.om-ruler-band .om-ruler--cute .om-ruler-ticks i { display:none; }
.om-ruler-band .om-ruler--cute .om-ruler-ticks em { font-family:'Cormorant Garamond',serif; font-weight:600; font-size:1.08rem; letter-spacing:0.04em; color:#9B8573; background:transparent; box-shadow:none; padding:0; margin-top:0; }
.om-ruler-band .om-ruler--cute .om-ruler-ticks .is-mark em { color:#B05B41; font-weight:700; font-size:1.18rem; }

/* 3カード下の締め文言(黒・明朝) */
.om-benefits-msg { text-align:center; margin:clamp(1.8rem,4vw,2.8rem) auto 0; font-family:'Noto Serif JP',serif; font-weight:500; font-size:clamp(1.1rem,2.4vw,1.45rem); line-height:1.9; color:#23211f; letter-spacing:0.02em; }

/* 予防 SECTION01:良くなるための4ステップ */
.pv-steps { margin-top:clamp(1.8rem,3.5vw,2.6rem); }
.pv-steps-label { text-align:center; font-family:'Noto Serif JP',serif; color:#CC5A82; font-weight:600; font-size:1.12rem; margin:0 0 1.7rem; }
.pv-steps-label::after { content:''; display:block; width:40px; height:2px; background:#F4BBD0; margin:0.6rem auto 0; border-radius:2px; }
.pv-steps-list { list-style:none; padding:0; margin:0 auto; max-width:100%; display:grid; grid-template-columns:repeat(4,1fr); gap:0; position:relative; }
.pv-step { position:relative; display:flex; flex-direction:column; align-items:center; text-align:center; gap:0; background:transparent; border:none; border-radius:0; padding:0 0.7rem; box-shadow:none; }
.pv-step + .pv-step { margin-top:0; }
.pv-step::before { content:''; position:absolute; top:27px; left:-50%; width:100%; height:3px; background:#F5D4E0; z-index:0; }
.pv-step:first-child::before { display:none; }
.pv-step:not(.pv-step--last)::after { content:none; }
.pv-step-num { position:relative; z-index:1; flex:none; width:54px; height:54px; border-radius:50%; background:linear-gradient(135deg,#F2A6C0,#E588A6); color:#fff; display:flex; align-items:center; justify-content:center; font-family:'Cormorant Garamond',serif; font-size:1.75rem; font-weight:700; box-shadow:0 6px 14px rgba(222,111,148,0.35); margin-bottom:1rem; border:3px solid #fff; }
.pv-step-body { flex:none; }
.pv-step-title { font-family:'Noto Serif JP',serif; font-weight:600; font-size:1.12rem; color:#3a2c34; margin:0 0 0.65rem; }
.pv-step-tags { display:flex; flex-direction:column; align-items:center; gap:0.4rem; }
.pv-step-tags span { background:linear-gradient(180deg,#F4FAF5,#ECF6EE); border:1px solid #F9DEE9; border-radius:999px; padding:0.3rem 0.75rem; font-size:0.82rem; color:#3a4a40; font-weight:600; }
@media (max-width:640px){
  .pv-steps-list { grid-template-columns:repeat(2,1fr); row-gap:2rem; }
  .pv-step::before { display:none; }
}

/* 予防HERO:右側に写真 */
.pv-hero--photo .pv-hero-inner { grid-template-columns: 1fr 0.84fr; gap:clamp(1.8rem,3.5vw,3.2rem); align-items:center; max-width:1160px; }
.pv-hero-textcol { min-width:0; }
.pv-hero--photo .pv-hero-script { margin-bottom:1.2rem; }
.pv-hero--photo .pv-hero-lead { margin-top:0; }
.pv-hero-img { margin:0; border-radius:26px; overflow:hidden; box-shadow:0 22px 48px rgba(110,150,120,0.22); align-self:stretch; }
.pv-hero-img img { width:100%; height:100%; min-height:360px; object-fit:cover; object-position:56% center; display:block; }
@media (max-width:820px){
  .pv-hero--photo .pv-hero-inner { grid-template-columns:1fr; }
  .pv-hero-img img { min-height:240px; }
}

/* 歯周病の進行段階 (4段階画像) */
.pv-stages { margin-top:clamp(1.6rem,3vw,2.2rem); }
.pv-stages-label { text-align:center; font-family:'Noto Serif JP',serif; color:#3a2c34; font-weight:600; font-size:1.05rem; margin:0 0 1.2rem; }
.pv-stages-label::after { content:''; display:block; width:38px; height:2px; background:#F4BBD0; margin:0.55rem auto 0; border-radius:2px; }
.pv-stages-list { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(0.6rem,1.5vw,1rem); }
.pv-stage { display:flex; flex-direction:column; gap:0.6rem; }
.pv-stage-img.ph-frame { width:100%; height:0; padding-bottom:116%; border-radius:14px; overflow:hidden; border:1px solid #E6DECF; background:#fff; }
.pv-stage-img.ph-frame img { object-fit:contain; }
.pv-stage-name { text-align:center; font-family:'M PLUS Rounded 1c','Noto Serif JP',sans-serif; font-weight:700; font-size:0.9rem; color:#fff; border-radius:999px; padding:0.32rem 0.6rem; }
.pv-stage[data-lv="healthy"] .pv-stage-name { background:linear-gradient(135deg,#F2A6C0,#E588A6); }
.pv-stage[data-lv="mild"] .pv-stage-name { background:linear-gradient(135deg,#F2D06B,#E3B23C); }
.pv-stage[data-lv="moderate"] .pv-stage-name { background:linear-gradient(135deg,#F0A45C,#E08537); }
.pv-stage[data-lv="severe"] .pv-stage-name { background:linear-gradient(135deg,#E2785C,#D2533B); }
@media (max-width:560px){ .pv-stages-list { grid-template-columns:repeat(2,1fr); } }

/* 1mm:歯周病テキスト中央寄せ + 進行段階の余白 */
.om-disease-text { text-align:center; max-width:760px; margin:0 auto; }
.om-disease .pv-stages { margin-top:clamp(1.8rem,3.5vw,2.6rem); max-width:920px; margin-left:auto; margin-right:auto; }
/* 進行リスク(放置の下に移動) */
.om-risks-sec { padding: clamp(1.2rem,3vw,2rem) 0 clamp(2.4rem,5vw,3.6rem); background:linear-gradient(180deg,#FBEAE0,#FDF4EE); }
.om-risks-sec .om-risks { max-width:1000px; margin:0 auto; }
.om-risks-sec .om-cards--3 { display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(0.8rem,2vw,1.4rem); max-width:1000px; margin:1rem auto 0; }
@media (max-width:760px){ .om-risks-sec .om-cards--3 { grid-template-columns:1fr; } }

/* 予防HERO:全面背景写真(ホワイトニング/小児と統一) */
.pv-hero--bg { position:relative; padding:0 !important; min-height:clamp(420px,46vw,560px); display:flex; align-items:center; overflow:hidden; background:#fff !important; }
.pv-hero--bg .pv-hero-bg { position:absolute; inset:0; z-index:0; }
.pv-hero--bg .pv-hero-bg img { width:100%; height:100%; object-fit:cover; object-position:66% center; }
.pv-hero--bg .pv-hero-overlay { position:absolute; inset:0; z-index:1; background:linear-gradient(100deg, rgba(255,255,255,0.97) 0%, rgba(255,255,255,0.92) 32%, rgba(255,255,255,0.58) 52%, rgba(255,255,255,0.12) 72%, rgba(255,255,255,0) 88%); }
.pv-hero--bg .pv-hero-inner { position:relative; z-index:2; display:block; max-width:1180px; margin:0 auto; padding:0 clamp(1.4rem,5vw,4rem); width:100%; }
.pv-hero--bg .pv-hero-textcol { max-width:min(60%,600px); }
.pv-hero--bg .pv-badges { justify-content:flex-start; }
@media (max-width:820px){
  .pv-hero--bg { min-height:auto; padding:clamp(2.2rem,7vw,3.2rem) 0 !important; }
  .pv-hero--bg .pv-hero-textcol { max-width:100%; }
  .pv-hero--bg .pv-hero-overlay { background:linear-gradient(180deg, rgba(255,255,255,0.95) 0%, rgba(255,255,255,0.8) 55%, rgba(255,255,255,0.45) 100%); }
}

/* 健康手帳HERO:テキスト左+ブック写真右 */
.nbk-hero--split .nbk-hero-grid { display:grid; grid-template-columns:1fr 0.82fr; gap:clamp(1.8rem,4vw,3.4rem); align-items:center; }
.nbk-hero--split .nbk-hero-text { text-align:left; }
.nbk-hero--split .mmc-hero-jp { text-align:left; }
.nbk-hero--split .mmc-lead-sign { text-align:left; margin-left:0 !important; margin-right:0 !important; }
.nbk-hero--split .nbk-hero-photo { margin:0; padding:0; max-width:none; }
@media (max-width:820px){
  .nbk-hero--split .nbk-hero-grid { grid-template-columns:1fr; }
  .nbk-hero--split .nbk-hero-text, .nbk-hero--split .mmc-hero-jp, .nbk-hero--split .mmc-lead-sign { text-align:center; }
  .nbk-hero--split .nbk-hero-photo { max-width:440px; margin:0 auto; }
}

/* ===== 薄いベージュ背景 + 白いコンテンツ (HOME風 / 1mm・予防) ===== */
body.pv-page { background:#fff; }
body.om-page { background:#fff; }
/* 診療案内:背景を全て白に統一 */
body.tx-page,
body.tx-page .mmc-hero,
body.tx-page .tx-hero,
body.tx-page .tx-list,
body.tx-page .tx-philo,
body.tx-page .prev2-cta { background:#fff !important; }
/* 1mm challenge */
.om-page .om-benefits, .om-page .om-progress, .om-page .om-why, .om-page .om-disease { background:#fff; }
.om-page .om-care, .om-page .om-together, .om-page .om-closing, .om-page .om-risks-sec { background:transparent; }
/* 予防歯科 */
.pv-page .pv-sec--worry, .pv-page .pv-sec--whole, .pv-page .pv-sec--perio, .pv-page .pv-pcr, .pv-page .pv-last { background:#fff; }
.pv-page .pv-sec--worry, .pv-page .pv-sec--whole { border-top:1px solid #F0EBE2; border-bottom:1px solid #F0EBE2; }

/* セクション区切り:薄ゴールドの流れ星ライン */
.om-starline { display:flex; align-items:center; justify-content:center; gap:0; max-width:720px; margin:0 auto clamp(1.6rem,3.5vw,2.6rem); }
.om-starline::before, .om-starline::after { content:''; height:1.5px; flex:1; }
.om-starline::before { background:linear-gradient(90deg, transparent, rgba(210,168,90,0.5)); }
.om-starline::after { background:linear-gradient(90deg, rgba(210,168,90,0.5), transparent); }
.om-shoot { position:relative; display:inline-flex; align-items:center; padding:0 2.6rem; }
.om-shoot-star { color:#D8A93E; font-size:1.25rem; filter:drop-shadow(0 2px 5px rgba(190,150,60,0.35)); animation:omShootTwinkle 3.2s ease-in-out infinite; }
.om-shoot-tail { position:absolute; right:1.5rem; top:50%; transform:translateY(-50%); width:40px; height:2.5px; border-radius:3px; background:linear-gradient(90deg, rgba(216,169,62,0) 0%, rgba(216,169,62,0.85) 100%); }
@keyframes omShootTwinkle { 0%,100%{ opacity:0.75; transform:scale(1); } 50%{ opacity:1; transform:scale(1.18) rotate(8deg); } }

/* 進行段階の説明文 */
.pv-stage-desc { margin:0.55rem 0 0; font-size:0.8rem; line-height:1.65; color:#6a6258; text-align:center; }

/* 1mm セクション番号スタンプ(HOME/予防と同じ:黒数字+緑グラデ点線丸) */
.om-secnum { position:relative; display:inline-flex; align-items:center; justify-content:center; width:clamp(74px,11vw,98px); height:clamp(74px,11vw,98px); margin:0 0 0.9rem; font-family:'Cormorant Garamond',serif; font-size:clamp(2rem,4vw,2.7rem); font-weight:700; color:#1f1d1b; line-height:1; letter-spacing:0.01em; }
.om-secnum::before { content:''; position:absolute; inset:0; border-radius:50%; background:conic-gradient(from 140deg,#F4A98E,#E0795B,#E8895C,#F3C2A4,#F4A98E); -webkit-mask:repeating-conic-gradient(#000 0deg 5deg, transparent 5deg 11deg), radial-gradient(farthest-side, transparent calc(100% - 3px), #000 calc(100% - 3px)); -webkit-mask-composite:source-in; mask:repeating-conic-gradient(#000 0deg 5deg, transparent 5deg 11deg), radial-gradient(farthest-side, transparent calc(100% - 3px), #000 calc(100% - 3px)); mask-composite:intersect; animation:pvNumPulse 2.6s ease-in-out infinite; }

/* 健康手帳HERO:全面背景写真(ホワイトニング等と統一) */
.nbk-hero--bg { position:relative; padding:0 !important; min-height:clamp(400px,44vw,520px); display:flex; align-items:center; overflow:hidden; background:#fff !important; }
.nbk-hero--bg .nbk-hero-bg { position:absolute; inset:0; z-index:0; }
.nbk-hero--bg .nbk-hero-bg img { width:100%; height:100%; object-fit:cover; object-position:center; }
.nbk-hero--bg .nbk-hero-overlay { position:absolute; inset:0; z-index:1; background:linear-gradient(100deg, rgba(255,253,247,0.98) 0%, rgba(255,253,247,0.93) 32%, rgba(255,253,247,0.55) 52%, rgba(255,253,247,0.12) 72%, rgba(255,253,247,0) 88%); }
.nbk-hero--bg .section-inner { position:relative; z-index:2; width:100%; }
.nbk-hero--bg .nbk-hero-text { max-width:min(58%,580px); text-align:left; }
.nbk-hero--bg .mmc-hero-jp { text-align:left; }
.nbk-hero--bg .mmc-lead-sign { text-align:left; margin-left:0 !important; margin-right:0 !important; }
@media (max-width:820px){
  .nbk-hero--bg { min-height:auto; padding:clamp(2.2rem,7vw,3.2rem) 0 !important; }
  .nbk-hero--bg .nbk-hero-text { max-width:100%; }
  .nbk-hero--bg .nbk-hero-overlay { background:linear-gradient(180deg, rgba(255,253,247,0.96) 0%, rgba(255,253,247,0.78) 55%, rgba(255,253,247,0.4) 100%); }
}

/* 1mm:セクションタイトルを左寄せ・大きく(予防ページと統一) */
.om-page .om-sec-head { text-align:left; }
.om-page .om-disease-text { text-align:left; max-width:none; margin:0; }
.om-page .om-why-head { text-align:left; max-width:none; margin-left:0; margin-right:0; }
/* 予防(pv-sec-h)と同じタイトルサイズ・配置に統一 */
.om-page .om-sechead-row .om-h2,
.om-page .om-sechead-row .om-sec-head { font-family:'Noto Serif JP',serif; font-size:clamp(1.9rem,4.8vw,3rem); font-weight:600; line-height:1.28; color:#2c3a30; }
.om-page .om-secnum { margin-bottom:0.75rem; }

/* 1mm:数字の横にタイトル(行レイアウト) */
.om-sechead-row { display:flex; align-items:center; flex-wrap:wrap; gap:clamp(0.8rem,2vw,1.4rem); text-align:left; margin-bottom:clamp(1.2rem,2.5vw,1.9rem); }
.om-sechead-row .om-secnum { margin-bottom:0 !important; flex:none; }
.om-sechead-row .om-h2, .om-sechead-row .om-sec-head { margin:0 !important; }
/* 02:見出しを上に出したのでフローは2列(フロー|コールアウト) */
.om-page .om-progress-grid { grid-template-columns:2.7fr 1fr; align-items:center; }
@media (max-width:760px){ .om-page .om-progress-grid { grid-template-columns:1fr; } }

/* 診療案内 01〜06:カテゴリ見出しをさりげない丸角カードに(影は薄ベージュ) */
.tx-list .tx-cat-head { background:#fff; border:1px solid #F2EADF; border-radius:3px; padding:clamp(1rem,2.4vw,1.5rem) clamp(1.2rem,3vw,1.9rem); box-shadow:0 12px 30px rgba(198,170,122,0.16); }
.tx-list .tx-cat-head .fr-num { color:#C9A86E; }

/* 診療案内HERO:全面背景写真(ホワイトニング/予防と統一) */
.tx-hero--bg { position:relative; padding:0 !important; min-height:clamp(400px,44vw,520px); display:flex; align-items:center; overflow:hidden; background:#fff !important; }
.tx-hero--bg .tx-hero-bg { position:absolute; inset:0; z-index:0; }
.tx-hero--bg .tx-hero-bg img { width:100%; height:100%; object-fit:cover; object-position:64% 32%; }
.tx-hero--bg .tx-hero-overlay { position:absolute; inset:0; z-index:1; background:linear-gradient(100deg, rgba(255,255,255,0.97) 0%, rgba(255,255,255,0.92) 32%, rgba(255,255,255,0.58) 52%, rgba(255,255,255,0.12) 72%, rgba(255,255,255,0) 88%); }
.tx-hero--bg .section-inner { position:relative; z-index:2; width:100%; }
.tx-hero--bg .tx-hero-text { max-width:min(72%,820px); text-align:left; }
.tx-hero--bg .mmc-hero-jp { text-align:left; font-size:clamp(1.7rem,3.6vw,2.6rem); }
.tx-hero--bg .mmc-lead-sign { text-align:left; margin-left:0 !important; margin-right:0 !important; }
@media (max-width:820px){
  .tx-hero--bg { min-height:auto; padding:clamp(2.2rem,7vw,3.2rem) 0 !important; }
  .tx-hero--bg .tx-hero-text { max-width:100%; }
  .tx-hero--bg .tx-hero-overlay { background:linear-gradient(180deg, rgba(255,255,255,0.95) 0%, rgba(255,255,255,0.78) 55%, rgba(255,255,255,0.4) 100%); }
}

/* 予防 SECTION01:お口の健康を守る4つのステップ(全幅・交互レイアウト) */
.pv-sec--intro .pv-sec-inner { max-width:980px; }
.pv-flow4 { margin-top:clamp(2rem,4vw,3rem); }
.pv-flow4-head { text-align:center; margin-bottom:clamp(2rem,4vw,3.2rem); }
.pv-flow4-eyebrow { font-family:'Noto Serif JP',serif; color:#6a6258; font-size:clamp(1rem,2vw,1.25rem); letter-spacing:0.12em; margin:0 0 0.35rem; }
.pv-flow4-title { font-family:'Noto Serif JP',serif; font-weight:600; font-size:clamp(2.1rem,5vw,3.3rem); color:#3a2c34; margin:0; letter-spacing:0.04em; }
.pv-flow4-num4 { color:#C2A05A; font-size:1.25em; }
.pv-flow4-deco { display:inline-block; color:#C9A055; font-size:1rem; margin-top:0.7rem; position:relative; padding:0 1.4rem; }
.pv-flow4-deco::before, .pv-flow4-deco::after { content:''; position:absolute; top:50%; width:90px; height:0; border-top:2px dotted #DFC79B; }
.pv-flow4-deco::before { right:100%; }
.pv-flow4-deco::after { left:100%; }
.pv-flow4-row { display:grid; grid-template-columns:1fr 1fr; gap:clamp(1.5rem,4vw,3.5rem); align-items:center; margin-bottom:clamp(1.6rem,3.5vw,3rem); }
.pv-flow4-text { padding:clamp(0.4rem,1.5vw,1.2rem) clamp(0.6rem,2vw,1.6rem); }
.pv-flow4-n { display:block; font-family:'Cormorant Garamond',serif; font-size:clamp(2.2rem,4vw,3rem); font-weight:600; color:#C2A05A; line-height:1; position:relative; padding-top:0.85rem; letter-spacing:0.04em; }
.pv-flow4-n::before { content:''; position:absolute; top:0; left:0.12em; width:34px; height:2px; background:#C2A05A; }
.pv-flow4-step { font-family:'Noto Serif JP',serif; font-weight:500; font-size:clamp(1.6rem,3.6vw,2.4rem); color:#3a2c34; margin:0.45rem 0 1rem; padding-bottom:0.85rem; border-bottom:1px solid #E8DFD0; }
.pv-flow4-list { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:0.55rem; }
.pv-flow4-list li { position:relative; padding-left:1.4rem; font-size:1.02rem; color:#4a4a44; }
.pv-flow4-list li::before { content:''; position:absolute; left:0; top:0.5em; width:8px; height:8px; border-radius:50%; background:#C9A86E; }
.pv-flow4-img.ph-frame { width:100%; height:0; padding-bottom:74%; border-radius:6px; overflow:hidden; box-shadow:0 18px 44px rgba(150,128,88,0.18); }
.pv-flow4-foot { text-align:center; margin-top:clamp(1.4rem,3vw,2.4rem); }
.pv-flow4-foot .pv-flow4-deco { margin-bottom:0.4rem; }
.pv-flow4-foot p { font-family:'Noto Serif JP',serif; color:#5a6a5e; font-size:clamp(1rem,2vw,1.18rem); margin:0; }
@media (max-width:760px){
  .pv-flow4-row { grid-template-columns:1fr; gap:1rem; }
  .pv-flow4-row--rev .pv-flow4-text { order:-1; }
  .pv-flow4-deco::before, .pv-flow4-deco::after { width:50px; }
}

/* 診療案内HERO:むし歯治療への導線バナー */
.tx-philo-banner { display:block; max-width:980px; margin:clamp(1.8rem,3.5vw,2.6rem) auto 0; border-radius:14px; overflow:hidden; box-shadow:0 16px 38px rgba(150,128,90,0.18); transition:transform .25s ease, box-shadow .25s ease; }
.tx-philo-banner img { width:100%; height:auto; display:block; }
.tx-philo-banner:hover { transform:translateY(-3px); box-shadow:0 22px 48px rgba(150,128,90,0.26); }
html { scroll-behavior:smooth; }
#philo { scroll-margin-top:90px; }

/* ==========================================================
   スマホ・タイポグラフィ調整 (2026-06-11)
   見出しサイズの最適化と、文節単位の折り返し
   ========================================================== */
@media (max-width: 600px) {
  .pv-sec-h, .pv-h2, .pv-last-h {
    font-size: 24px !important;
    line-height: 1.65 !important;
    word-break: keep-all;
    overflow-wrap: anywhere;
  }
  .prev2-cta h2 {
    font-size: 20px !important;
    letter-spacing: 0.02em !important;
    line-height: 1.75 !important;
    word-break: keep-all;
    overflow-wrap: anywhere;
  }
  .prev2-cta p { font-size: 14px !important; }
  /* ボックスの左右余白を詰めて、見出しが文節単位で収まる幅を確保 */
  .prev2-cta { padding-left: 10px !important; padding-right: 10px !important; }
  .prev2-cta .section-inner { padding-left: 0 !important; padding-right: 0 !important; }
  .prev2-cta-box {
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 22px !important;
    padding-right: 22px !important;
  }
  .pv-hero-h {
    word-break: keep-all;
    overflow-wrap: anywhere;
  }
  /* リード文・注釈・カード文も語中改行を避ける */
  .pv-hero-lead { font-size: 15px !important; }
  .pv-sec-lead, .pv-hero-lead, .pv-hero-foot, .pv-change-label,
  .pv-pcr-note, .pv-pcr-fine, .pv-evnote, .prev2-cta p,
  .pv-banner-t, .pv-banner-sub, .pv-why-card p, .pv-for-h {
    word-break: keep-all;
    overflow-wrap: anywhere;
  }
  /* 強調語マーカーは行ごとに分割（帯が太くなるのを防ぐ） */
  .pv-sec-lead strong, .pv-pcr-note strong { display: inline; }
  /* CTAボタンはボタン内改行を禁止 */
  .prev2-cta-btn {
    white-space: nowrap;
    font-size: 14.5px;
    padding: 14px 24px;
  }
}

/* ==========================================================
   健康手帳「4つのこと」(2026-06-11)
   スマホは 番号+タイトル+文章 → 画像 の順に統一
   ========================================================== */
@media (max-width: 880px) {
  .fr .fr-body { order: 1; }
  .fr .fr-figure,
  .fr--rev .fr-figure { order: 2; }
}

/* ===== 予防歯科 全面刷新 (2026-06-12) ===== */
/* 02 続けられる仕組み:3カード */
.pv-feat3 { display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(0.9rem,2vw,1.4rem); margin-top:clamp(1.6rem,3vw,2.4rem); }
.pv-feat { background:#fff; border:1px solid #FAE4EC; border-radius:18px; padding:clamp(1.4rem,2.5vw,2rem); text-align:center; box-shadow:0 12px 30px rgba(204,90,130,0.08); }
.pv-feat-ico { display:inline-flex; width:56px; height:56px; border-radius:50%; background:#FCEBF1; color:#DE6F94; align-items:center; justify-content:center; margin-bottom:0.9rem; }
.pv-feat-ico svg { width:28px; height:28px; }
.pv-feat-t { font-family:'Noto Serif JP',serif; font-weight:600; font-size:1.2rem; color:#3a2c34; margin:0 0 0.6rem; }
.pv-feat-x { font-size:0.92rem; line-height:1.85; color:#5a6a5e; margin:0; }
@media(max-width:720px){ .pv-feat3 { grid-template-columns:1fr; } }

/* 04 唾液検査 */
.pv-saliva { margin-top:clamp(1.6rem,3vw,2.2rem); }
.pv-saliva-list { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(4,1fr); gap:0.8rem; }
.pv-saliva-list li { background:linear-gradient(180deg,#F4FAF5,#ECF6EE); border:1px solid #F9DEE9; border-radius:16px; padding:1.2rem 0.8rem; text-align:center; }
.pv-saliva-ico { display:inline-flex; width:44px; height:44px; border-radius:50%; background:#fff; border:1px solid #F5D4E0; color:#DE6F94; align-items:center; justify-content:center; margin-bottom:0.6rem; }
.pv-saliva-ico svg { width:22px; height:22px; }
.pv-saliva-ico--img { padding:0; overflow:hidden; }
.pv-saliva-ico--img img { width:100%; height:100%; object-fit:cover; border-radius:50%; }
/* 写真をカード全体に表示するフォトカード版 */
.pv-saliva-list li.pv-saliva-card { padding:0; overflow:hidden; display:flex; flex-direction:column; }
.pv-saliva-thumb { margin:0; width:100%; aspect-ratio:4/3; overflow:hidden; }
.pv-saliva-thumb img { width:100%; height:100%; object-fit:cover; display:block; }
.pv-saliva-card b { margin-top:0.9rem; padding:0 0.7rem; }
.pv-saliva-card span { padding:0 0.7rem 1rem; margin-top:0.25rem; }
.pv-saliva-list b { display:block; font-family:'Noto Serif JP',serif; font-size:1rem; color:#3a2c34; }
.pv-saliva-list span { display:block; font-size:0.76rem; color:#8a9a8e; margin-top:0.25rem; }
.pv-saliva-body { text-align:center; font-size:clamp(0.95rem,1.8vw,1.05rem); line-height:2; color:#5a6a5e; margin:clamp(1.4rem,3vw,2rem) 0; }
.pv-saliva-body strong { color:#CC5A82; }
.pv-saliva-photos { display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(0.8rem,2vw,1.2rem); }
.pv-saliva-photo.ph-frame { width:100%; height:0; padding-bottom:72%; border-radius:14px; overflow:hidden; }
@media(max-width:720px){ .pv-saliva-list { grid-template-columns:repeat(2,1fr); } .pv-saliva-photos { grid-template-columns:1fr; } }
.pv-saliva-photos--solo { grid-template-columns:1fr; max-width:460px; margin-left:auto; margin-right:auto; }
.pv-saliva-photos--solo .pv-saliva-photo.ph-frame { padding-bottom:64%; }

/* 05 1mm 主役 */
.pv-mm-catch { font-family:'Noto Serif JP',serif; font-size:clamp(1.3rem,3vw,1.8rem); color:#DE6F94; font-weight:600; text-align:center; }
.pv-mmstep { display:flex; align-items:center; justify-content:center; gap:0.9rem; flex-wrap:wrap; margin:clamp(1.6rem,3vw,2.4rem) 0; }
.pv-mmstep-cell { background:#fff; border:2px solid #F5D4E0; border-radius:16px; padding:0.9rem 1.7rem; font-size:1.05rem; color:#3a4a40; box-shadow:0 8px 20px rgba(204,90,130,0.1); }
.pv-mmstep-cell b { font-family:'Cormorant Garamond',serif; font-size:1.7rem; color:#E588A6; margin-left:0.3rem; }
.pv-mmstep-cell--goal { border-color:#E588A6; background:linear-gradient(135deg,#FCEBF1,#F9DEE9); }
.pv-mmstep-cell--goal b { color:#CC5A82; }
.pv-mmstep-arr { color:#F2A6C0; font-size:1.4rem; }
.pv-mm-btnwrap { text-align:center; margin-top:clamp(1.2rem,2.5vw,1.8rem); }
.pv-mm-btn { display:inline-flex; align-items:center; gap:0.6rem; padding:0.95rem 2rem; border-radius:999px; background:linear-gradient(135deg,#F2A6C0,#E588A6); color:#fff; font-weight:700; text-decoration:none; box-shadow:0 10px 24px rgba(222,111,148,0.3); }
.pv-mm-btn span { transition:transform .2s; } .pv-mm-btn:hover span { transform:translateX(4px); }

/* 06 定期管理 8カード */
.pv-mgmt-grid { list-style:none; padding:0; margin:clamp(1.4rem,3vw,2rem) 0 0; display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(0.7rem,1.6vw,1.1rem); }
.pv-mgmt-card { background:#fff; border:1px solid #FAE4EC; border-radius:16px; padding:1.4rem 0.8rem; text-align:center; box-shadow:0 8px 20px rgba(204,90,130,0.07); }
.pv-mgmt-emo { display:block; font-size:1.9rem; margin-bottom:0.5rem; }
.pv-mgmt-t { font-family:'Noto Serif JP',serif; font-weight:600; font-size:0.98rem; color:#3a2c34; }
@media(max-width:720px){ .pv-mgmt-grid { grid-template-columns:repeat(2,1fr); } }

/* 08 締め:3本柱 */
.pv-page .pv-last--pillars { background:linear-gradient(180deg,#FEF5F8 0%,#FBEBF1 100%); }
.pv-pillars3 { display:flex; align-items:stretch; justify-content:center; gap:0.8rem; flex-wrap:wrap; margin-top:clamp(1.8rem,3.5vw,2.6rem); }
.pv-pillar3 { flex:1; min-width:180px; max-width:240px; background:rgba(255,255,255,0.9); border:1px solid #F4D2DF; border-radius:18px; padding:1.6rem 1.2rem; text-align:center; }
.pv-pillar3-ico { display:inline-flex; width:50px; height:50px; border-radius:50%; background:#fff; color:#DE6F94; align-items:center; justify-content:center; box-shadow:0 6px 14px rgba(204,90,130,0.14); margin-bottom:0.7rem; }
.pv-pillar3-ico svg { width:26px; height:26px; }
.pv-pillar3-tag { display:inline-block; font-size:0.74rem; font-weight:700; color:#fff; background:linear-gradient(135deg,#F2A6C0,#E588A6); border-radius:999px; padding:0.2rem 0.9rem; margin-bottom:0.5rem; }
.pv-pillar3-t { display:block; font-family:'Noto Serif JP',serif; font-size:1.1rem; color:#3a2c34; margin-bottom:0.4rem; }
.pv-pillar3 p { font-size:0.85rem; color:#5a6a5e; margin:0; line-height:1.6; }
.pv-pillar3-x { display:flex; align-items:center; font-family:'Cormorant Garamond',serif; font-size:1.8rem; color:#F4BBD0; }
@media(max-width:720px){ .pv-pillars3 { flex-direction:column; align-items:center; } .pv-pillar3-x { transform:rotate(90deg); } .pv-pillar3 { max-width:340px; width:100%; } }

/* ===================================================================
   予防歯科 デザイン案リニューアル (2026-06-12)
   =================================================================== */

/* --- 01 intro 2カラム --- */
.pv-intro-grid { display:grid; grid-template-columns:1.2fr 1fr; gap:clamp(1.5rem,3.5vw,3rem); align-items:center; max-width:1040px; margin:0 auto; text-align:left; }
.pv-intro-text .pv-sec-lead { text-align:left; margin:0 0 1.1rem; }
.pv-intro-text .pv-sec-lead:last-child { margin-bottom:0; }
.pv-intro-photo.ph-frame { width:100%; aspect-ratio:4/3; border-radius:20px; }
@media(max-width:760px){ .pv-intro-grid{ grid-template-columns:1fr; } }
.pv-intro-grid--noimg { grid-template-columns:1fr; max-width:820px; text-align:center; }
.pv-intro-grid--noimg .pv-intro-text .pv-sec-lead { text-align:center; }
.pv-mm-textonly { max-width:760px; margin:0 auto; text-align:center; }

/* --- 02 4ステップ flow --- */
.pv-flow4 { display:grid; grid-template-columns:1fr auto 1fr auto 1fr auto 1fr; align-items:start; gap:0.4rem; max-width:1040px; margin:2rem auto 0; }
.pv-flow-step { text-align:center; }
.pv-flow-photo.ph-frame { width:100%; aspect-ratio:1/1; border-radius:16px; margin-bottom:0.7rem; }
.pv-flow-t { font-family:'Noto Serif JP',serif; font-size:1rem; font-weight:600; color:#3a342e; margin:0 0 0.3rem; }
.pv-flow-x { font-size:0.8rem; line-height:1.6; color:#6b6258; margin:0; }
.pv-flow-arr { align-self:center; color:#7bbf91; font-size:1.4rem; font-weight:700; margin-top:16%; }
@media(max-width:760px){ .pv-flow4 { grid-template-columns:1fr 1fr; gap:1.2rem 0.9rem; } .pv-flow-arr { display:none; } }

/* --- 03 record 3カラム + グラフ --- */
.pv-rec3 { display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1rem,2vw,1.4rem); max-width:1000px; margin:2rem auto 1.6rem; }
.pv-rec-card { background:#fff; border:1px solid #EBF1E6; border-radius:18px; padding:1rem 1rem 1.2rem; box-shadow:0 12px 28px rgba(120,160,120,0.10); text-align:center; }
.pv-rec-photo.ph-frame { width:100%; aspect-ratio:4/3; border-radius:12px; margin-bottom:0.8rem; }
.pv-rec-t { font-family:'Noto Serif JP',serif; font-size:1.02rem; font-weight:600; color:#3a342e; margin:0 0 0.4rem; }
.pv-rec-x { font-size:0.82rem; line-height:1.7; color:#6b6258; margin:0; }
.pv-rec-card--graph { display:flex; flex-direction:column; }
.pv-recg { background:#F6FAF3; border-radius:12px; padding:0.5rem 0.4rem; margin-bottom:0.6rem; }
.pv-recg-svg { width:100%; height:auto; display:block; }
@media(max-width:760px){ .pv-rec3 { grid-template-columns:1fr; max-width:420px; } }

/* --- 05 1ミリ green band --- */
.pv-mm-band { display:grid; grid-template-columns:1.25fr 1fr; gap:clamp(1.4rem,3vw,2.4rem); align-items:center; background:linear-gradient(135deg,#FCEAF0 0%,#F8E0E9 100%); border-radius:24px; padding:clamp(1.6rem,3vw,2.6rem); margin-top:1.4rem; }
.pv-mm-bandtext { text-align:center; }
.pv-mm-band .pv-mm-catch { font-family:'Noto Serif JP',serif; font-size:clamp(1.2rem,2.4vw,1.6rem); font-weight:600; color:#2f6b43; margin:0 0 1.3rem; }
.pv-mmcircles { display:flex; align-items:center; justify-content:center; gap:0.6rem; flex-wrap:wrap; margin-bottom:1.2rem; }
.pv-mmcircle { width:104px; height:104px; border-radius:50%; background:#fff; box-shadow:0 8px 20px rgba(80,140,90,0.16); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:0.05rem; }
.pv-mmcircle--goal { background:#DE6F94; box-shadow:0 10px 24px rgba(222,111,148,0.4); }
.pv-mmcircle-pcr { font-family:'Cormorant Garamond',serif; font-size:0.72rem; letter-spacing:0.1em; color:#9bbf9f; }
.pv-mmcircle--goal .pv-mmcircle-pcr { color:rgba(255,255,255,0.85); }
.pv-mmcircle-v { font-family:'Cormorant Garamond',serif; font-size:1.9rem; font-weight:600; color:#2f6b43; line-height:1; }
.pv-mmcircle-v i { font-style:normal; font-size:0.9rem; }
.pv-mmcircle--goal .pv-mmcircle-v { color:#fff; }
.pv-mmcircle-c { font-size:0.74rem; color:#6b7d68; }
.pv-mmcircle--goal .pv-mmcircle-c { color:rgba(255,255,255,0.9); }
.pv-mmcircle-arr { color:#7bbf91; font-size:1.3rem; font-weight:700; }
.pv-mm-bandnote { font-size:0.9rem; color:#4f6b50; margin:0 0 1.3rem; }
.pv-mm-photo.ph-frame { width:100%; aspect-ratio:4/3; border-radius:18px; }
@media(max-width:760px){ .pv-mm-band { grid-template-columns:1fr; } }

/* --- 06 maintenance photo cards (3カラム) --- */
.pv-sec--mgmt .pv-mgmt-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(0.8rem,1.6vw,1.1rem); max-width:760px; margin:2rem auto 0; list-style:none; padding:0; }
.pv-sec--mgmt .pv-mgmt-card { background:#fff; border:1px solid #EBF1E6; border-radius:14px; overflow:hidden; box-shadow:0 10px 22px rgba(120,160,120,0.10); display:flex; flex-direction:column; text-align:left; padding:0; }
.pv-mgmt-photo.ph-frame { width:100%; aspect-ratio:4/3; border-radius:0; }
.pv-sec--mgmt .pv-mgmt-card .pv-mgmt-t { font-family:'Noto Serif JP',serif; font-size:0.92rem; font-weight:600; color:#3a342e; margin:0.7rem 0.8rem 0.25rem; }
.pv-mgmt-x { font-size:0.74rem; line-height:1.65; color:#6b6258; margin:0 0.8rem 0.9rem; }
@media(max-width:760px){ .pv-sec--mgmt .pv-mgmt-grid { grid-template-columns:1fr 1fr; } }

/* --- 07 whole body 5 icon cards --- */
.pv-whole-list--5 { display:grid; grid-template-columns:repeat(5,1fr); gap:clamp(0.8rem,1.6vw,1.2rem); max-width:1040px; margin:2rem auto 1.6rem; list-style:none; padding:0; }
.pv-whole-list--5 .pv-whole-item { background:#fff; border:1px solid #EBF1E6; border-radius:16px; padding:1.4rem 0.9rem 1.2rem; text-align:center; box-shadow:0 10px 24px rgba(120,160,120,0.10); display:flex; flex-direction:column; align-items:center; }
.pv-whole-ico { width:48px; height:48px; border-radius:50%; background:#FCEAF0; color:#DE6F94; display:inline-flex; align-items:center; justify-content:center; margin-bottom:0.7rem; }
.pv-whole-ico svg { width:26px; height:26px; }
.pv-whole-list--5 .pv-whole-t { font-family:'Noto Serif JP',serif; font-size:1rem; font-weight:600; color:#3a342e; margin-bottom:0.5rem; }
.pv-whole-x { font-size:0.78rem; line-height:1.65; color:#6b6258; margin:0; }
@media(max-width:760px){ .pv-whole-list--5 { grid-template-columns:1fr 1fr; } }

/* --- 08 link cards + CTA --- */
.pv-last--pillars .pv-last-grid { display:grid; grid-template-columns:1.7fr 1fr; gap:clamp(1.4rem,2.6vw,2rem); max-width:1040px; margin:2rem auto 1.6rem; align-items:stretch; }
.pv-last-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(0.8rem,1.6vw,1.1rem); }
.pv-last-card { background:#fff; border:1px solid #EBF1E6; border-radius:16px; overflow:hidden; box-shadow:0 12px 28px rgba(120,160,120,0.12); display:flex; flex-direction:column; text-decoration:none; transition:transform .3s ease, box-shadow .3s ease; }
.pv-last-card:hover { transform:translateY(-4px); box-shadow:0 18px 36px rgba(120,160,120,0.2); }
.pv-last-photo.ph-frame { width:100%; aspect-ratio:4/3; border-radius:0; }
.pv-last-card-tag { font-size:0.72rem; color:#DE6F94; font-weight:600; margin:0.8rem 0.9rem 0.2rem; }
.pv-last-card-t { font-family:'Noto Serif JP',serif; font-size:1rem; font-weight:600; color:#3a342e; margin:0 0.9rem 0.5rem; line-height:1.4; }
.pv-last-card-arr { font-size:0.78rem; color:#8a8073; margin:auto 0.9rem 0.9rem; }
.pv-last-cta { background:linear-gradient(135deg,#DE6F94 0%,#CC5A82 100%); border-radius:18px; padding:1.6rem 1.4rem; color:#fff; display:flex; flex-direction:column; justify-content:center; text-align:center; box-shadow:0 14px 30px rgba(204,90,130,0.3); }
.pv-last-cta-h { font-family:'Noto Serif JP',serif; font-size:1.1rem; font-weight:600; margin:0 0 0.4rem; color:#fff; }
.pv-last-cta-x { font-size:0.8rem; line-height:1.6; color:rgba(255,255,255,0.9); margin:0 0 1.1rem; }
.pv-last-cta-web { display:block; background:#fff; color:#CC5A82; font-weight:700; padding:0.7rem; border-radius:999px; text-decoration:none; margin-bottom:0.7rem; transition:opacity .3s; }
.pv-last-cta-web:hover { opacity:0.88; }
.pv-last-cta-tel { display:flex; flex-direction:column; color:#fff; text-decoration:none; }
.pv-last-cta-tel span { font-size:0.72rem; color:rgba(255,255,255,0.85); }
.pv-last-cta-tel b { font-family:'Cormorant Garamond',serif; font-size:1.5rem; letter-spacing:0.02em; }
.pv-last-tagline { text-align:center; font-family:'Noto Serif JP',serif; font-size:clamp(1.05rem,2.2vw,1.35rem); font-weight:500; color:#3a342e; margin:1.4rem auto 0; }
.pv-last-tagline em { font-style:normal; color:#DE6F94; }
@media(max-width:860px){ .pv-last--pillars .pv-last-grid { grid-template-columns:1fr; } }
@media(max-width:560px){ .pv-last-cards { grid-template-columns:1fr; } }

/* ===================================================================
   07 お口と全身の健康 人体ダイアグラム + カード + バナー (2026-06-12)
   =================================================================== */
.pv-bodymap { position:relative; width:100%; max-width:840px; margin:1.6rem auto 0.5rem; aspect-ratio:840/600; }
.pv-bm-bg { position:absolute; inset:0; width:100%; height:100%; }
.pv-bm-center { position:absolute; left:50%; top:48.5%; transform:translate(-50%,-50%); display:flex; flex-direction:column; align-items:center; gap:0.25rem; }
.pv-bm-tooth { width:62px; height:62px; filter:drop-shadow(0 6px 14px rgba(70,120,80,0.28)); }
.pv-bm-tooth svg { width:100%; height:100%; display:block; }
.pv-bm-center-label { font-family:'Noto Serif JP',serif; font-size:0.95rem; color:#D0608A; font-weight:600; letter-spacing:0.04em; }
.pv-bm-item { position:absolute; width:30%; text-align:center; }
.pv-bm-item--tl { left:1%; top:8%; }
.pv-bm-item--tr { right:1%; top:8%; }
.pv-bm-item--bl { left:1%; bottom:6%; }
.pv-bm-item--br { right:1%; bottom:6%; }
.pv-bm-ico { width:56px; height:56px; border-radius:50%; background:#fff; border:1px solid #FAE5EC; box-shadow:0 6px 16px rgba(110,160,120,0.16); display:inline-flex; align-items:center; justify-content:center; color:#5aa06e; margin-bottom:0.5rem; }
.pv-bm-ico svg { width:30px; height:30px; }
.pv-bm-t { font-family:'Noto Serif JP',serif; font-size:1.15rem; font-weight:600; color:#3a342e; display:block; margin-bottom:0.4rem; letter-spacing:0.03em; }
.pv-bm-x { font-size:0.78rem; line-height:1.7; color:#6b6258; margin:0; }
@media(max-width:760px){
  /* モバイルでは下の4枚カードと内容が重複するため、人体ダイアグラム(項目)は非表示 */
  .pv-bodymap { display:none; }
}

.pv-whole-cards { display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(0.8rem,1.6vw,1.2rem); max-width:1040px; margin:2.4rem auto 0; }
.pv-wc { background:#fff; border:1px solid #FBE7EE; border-radius:18px; padding:1.4rem 1.1rem 1.2rem; box-shadow:0 12px 28px rgba(120,160,120,0.10); text-align:center; display:flex; flex-direction:column; align-items:center; }
.pv-wc-num { font-family:'Cormorant Garamond',serif; font-size:1.55rem; color:#7fb389; letter-spacing:0.05em; line-height:1; }
.pv-wc-ico { width:54px; height:54px; display:inline-flex; align-items:center; justify-content:center; color:#5aa06e; margin:0.5rem 0 0.5rem; }
.pv-wc-ico svg { width:36px; height:36px; }
.pv-wc-t { font-family:'Noto Serif JP',serif; font-size:1.06rem; font-weight:600; color:#3a342e; margin:0 0 0.5rem; }
.pv-wc-x { font-size:0.8rem; line-height:1.75; color:#6b6258; margin:0 0 1rem; flex:1; }
.pv-wc-tag { width:100%; background:#F3F8F0; border-radius:10px; padding:0.6rem 0.5rem; }
.pv-wc-tag span { display:block; font-size:0.66rem; color:#85957f; margin-bottom:0.15rem; letter-spacing:0.03em; }
.pv-wc-tag b { font-size:0.8rem; color:#D0608A; font-weight:600; }
@media(max-width:860px){ .pv-whole-cards { grid-template-columns:1fr 1fr; } }

.pv-whole-banner { display:block; max-width:880px; margin:clamp(2.2rem,4.5vw,3.4rem) auto 0; background:#fff; border:none; border-radius:0; padding:0; text-align:center; }
.pv-wb-h { font-family:'Noto Serif JP',serif; font-size:clamp(1.2rem,2.6vw,1.6rem); font-weight:600; color:#241f1a; margin:0 0 0.9rem; letter-spacing:0.05em; line-height:1.6; }
.pv-wb-x { font-family:'Noto Serif JP',serif; font-size:clamp(0.95rem,2vw,1.05rem); line-height:2; color:#2b2620; margin:0; }

/* ===================================================================
   強調 <strong> をパステルグリーンのマーカーに (2026-06-12)
   =================================================================== */
.pv-page .pv-sec-lead strong,
.pv-page .pv-sec-close strong,
.pv-page .pv-saliva-body strong {
  color:#3a2e34;
  font-weight:700;
  /* 各行ごとに下側だけを薄くマーカー（複数行でも帯が太くならない） */
  background-image:linear-gradient(transparent 62%, #FFD9E3 62%, #F9B6CE 100%);
  background-repeat:no-repeat;
  background-size:100% 100%;
  background-position:0 0;
  padding:0 .08em;
  border-radius:2px;
  -webkit-box-decoration-break:clone;
  box-decoration-break:clone;
}

/* --- 02 「通うのが楽しくなる」4カード (2026-06-12) --- */
.pv-joy4 { display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(0.9rem,1.8vw,1.3rem); max-width:1040px; margin:2.2rem auto 0; }
.pv-joy-card { position:relative; background:#fff; border:1px solid #FBE7EE; border-radius:18px; padding:1.1rem 1.1rem 1.3rem; box-shadow:0 12px 28px rgba(120,160,120,0.10); text-align:center; }
.pv-joy-num { position:absolute; top:0.9rem; left:1rem; font-family:'Cormorant Garamond',serif; font-size:1.3rem; color:#9cc7a6; letter-spacing:0.05em; line-height:1; }
.pv-joy-photo.ph-frame { width:100%; aspect-ratio:1/1; border-radius:14px; margin-bottom:0.9rem; }
.pv-joy-ico { display:inline-flex; align-items:center; justify-content:center; width:60px; height:60px; border-radius:50%; background:#FBE9F0; color:#DA7C9C; margin:0.4rem auto 1rem; }
.pv-joy-ico svg { width:28px; height:28px; }
.pv-joy-t { font-family:'Noto Serif JP',serif; font-size:1.02rem; font-weight:600; color:#3a342e; line-height:1.55; margin:0 0 0.5rem; }
.pv-joy-x { font-size:0.82rem; line-height:1.7; color:#5f7a60; margin:0; }
@media(max-width:860px){ .pv-joy4 { grid-template-columns:1fr 1fr; } }
@media(max-width:480px){ .pv-joy4 { grid-template-columns:1fr; max-width:360px; } }

/* ===================================================================
   予防歯科ページ全体を明朝体に (2026-06-12)
   見出し用の英字(Cormorant)・数字は個別指定で維持される
   =================================================================== */
.pv-page .pv-hero,
.pv-page .pv-sec,
.pv-page .pv-last { font-family:'Noto Serif JP', serif; }

/* --- 06 45分バナー & 締めメッセージパネル (2026-06-12) --- */
.pv-mgmt-banner { display:inline-flex; align-items:center; gap:0.7rem; margin:0.4rem auto 0; padding:0.7rem 1.5rem; background:linear-gradient(135deg,#FCEAF0 0%,#F8E0E9 100%); border:1px solid #cfe6cb; border-radius:999px; box-shadow:0 8px 20px rgba(90,150,100,0.14); }
.pv-mgmt-bannerwrap { text-align:center; }
.pv-sec--mgmt .pv-mgmt-banner { display:flex; width:fit-content; }
.pv-mgmt-banner-ico { width:34px; height:34px; flex-shrink:0; color:#DE6F94; }
.pv-mgmt-banner-ico svg { width:100%; height:100%; }
.pv-mgmt-banner-t { font-family:'Noto Serif JP',serif; font-size:1rem; color:#2f6b43; margin:0; line-height:1.5; font-weight:500; }
.pv-mgmt-banner-min { font-family:'Cormorant Garamond',serif; font-size:1.9rem; font-weight:600; color:#DE6F94; line-height:1; margin:0 .12em; vertical-align:-2px; }
.pv-mgmt-banner-min small { font-family:'Noto Serif JP',serif; font-size:0.9rem; font-weight:600; margin-left:1px; }
.pv-mgmt-banner-br { display:none; }
/* バナーを中央寄せにするためのラッパ代わり */
.pv-sec--mgmt .pv-sec-head + .pv-mgmt-banner { margin-left:auto; margin-right:auto; }

.pv-mgmt-message { position:relative; max-width:760px; margin:2.4rem auto 0; padding:2.6rem 2rem 2.2rem; text-align:center; background:none; border:none; border-radius:0; box-shadow:none; overflow:visible; }
.pv-mgmt-message::before { content:none; }
.pv-mgmt-message-leaf { position:relative; display:inline-flex; width:42px; height:42px; color:#3a342e; margin-bottom:0.8rem; }
.pv-mgmt-message-leaf svg { width:100%; height:100%; }
.pv-mgmt-message-main { position:relative; font-family:'Noto Serif JP',serif; font-size:clamp(1.35rem,3vw,1.8rem); font-weight:600; color:#1f1d1b; line-height:1.7; margin:0 0 1rem; letter-spacing:0.03em; }
.pv-mgmt-message-sub { position:relative; font-family:'Noto Serif JP',serif; font-size:0.96rem; line-height:2.1; color:#1f1d1b; margin:0; }
.pv-page .pv-mgmt-message-sub strong { color:#1f1d1b; font-weight:700; }
@media(max-width:560px){ .pv-mgmt-message { padding:2rem 1.3rem; } }

/* --- 07 人体ダイアグラム イラスト画像版 (2026-06-12) --- */
.pv-bm-illust { position:absolute; top:49%; left:50%; transform:translate(-50%,-50%); height:106%; width:auto; max-width:none; pointer-events:none; user-select:none; }
.pv-bodymap .pv-bm-center { top:48%; }
.pv-bodymap .pv-bm-center-label { background:rgba(255,255,255,0.82); padding:0.15rem 0.7rem; border-radius:999px; backdrop-filter:blur(2px); }
@media(max-width:760px){ .pv-bm-illust { display:none; } }

/* ===== カリオグラム(唾液検査セクション) ===== */
.pv-cario { display:grid; grid-template-columns:minmax(0,340px) 1fr; align-items:center; gap:clamp(1.4rem,3.5vw,2.6rem); max-width:900px; margin:clamp(1.6rem,3.5vw,2.6rem) auto 0; background:#fff; border:1px solid #F3E0E8; border-radius:24px; padding:clamp(1.4rem,3vw,2.2rem); box-shadow:0 18px 44px rgba(190,140,160,0.12); }
.pv-cario-img { margin:0; border-radius:16px; overflow:hidden; }
.pv-cario-img img { display:block; width:100%; height:auto; }
.pv-cario-title { font-family:'Noto Serif JP',serif; font-size:clamp(1.2rem,2.6vw,1.6rem); font-weight:600; color:#3a342e; line-height:1.55; margin:0 0 0.9rem; }
.pv-cario-text p { font-size:0.94rem; line-height:1.95; color:#5a5045; margin:0 0 0.7rem; }
.pv-cario-text p:last-child { margin-bottom:0; }
.pv-cario-text strong { color:#3a342e; font-weight:700; }
@media(max-width:680px){ .pv-cario { grid-template-columns:1fr; text-align:center; } .pv-cario-img { max-width:300px; margin:0 auto; } }

/* ============================================================
   小児歯科 ポイントカラー 緑 → 黄(ゴールド) 2026-06-16
   .ped-page にスコープ（予防のピンクには影響なし）
   ============================================================ */
.ped-page .pd-num { color:#D7A12E; border-color:#ECD89C; }
.ped-page .pd-deco-star2 { color:#E0A93C; }
.ped-page .pd-hero { background:linear-gradient(180deg,#FFFEFA 0%,#FBF3DC 100%); }
.ped-page .pd-grow-box { background:#FCF6E2; border-color:#ECDDB2; }
.ped-page .pd-face { color:#D7A12E; box-shadow:0 6px 14px rgba(190,150,40,0.16); }
.ped-page .pd-mft-tag { background:linear-gradient(135deg,#F0C766,#D9A638); }
.ped-page .pd-mft strong { color:#B5851F; }
.ped-page .pd-care { background:linear-gradient(180deg,#FBF3DC,#F6EBC8); }
.ped-page .pd-icon { background:linear-gradient(135deg,#FBEFC9,#F3E0A6); color:#C9982E; }
.ped-page .pd-icard { box-shadow:0 10px 26px rgba(190,160,60,0.10); }
.ped-page .pd-event figcaption { color:#BC8C26; }
.ped-page .pd-grow2 { background:linear-gradient(180deg,#FBF3DC,#F6EBC8); }
.ped-page .pd-gp-ico { color:#D7A12E; box-shadow:0 6px 14px rgba(190,160,60,0.16); }
.ped-page .pd-grow2-cta { color:#BC8C26; }
.ped-page .pd-closing { background:#fff; }
.ped-page .pd-care-card { box-shadow:0 10px 26px rgba(190,160,60,0.10); }
/* 3番目だけ意図的にピンクのアイコンは維持 */
.ped-page .pd-gp:nth-child(3) .pd-gp-ico { color:#E88AA0; }

/* ============================================================
   小児 01「はじめての歯医者さんも安心」手描き風かわいいフレーム
   ============================================================ */
.ped-page .pd-anshin { position:relative; }
.ped-page .pd-anshin .pd-card { position:relative; }
.ped-page .pd-anshin .pd-card-photo.ph-frame {
  border:5px solid var(--pf,#F3B6C8);
  border-radius:26px 30px 22px 28px / 28px 22px 30px 24px;
  box-shadow:0 12px 26px rgba(150,120,120,0.16);
  background:#fff; overflow:hidden;
}
.ped-page .pd-anshin .pd-card:nth-child(1) .pd-card-photo { --pf:#F3B6C8; transform:rotate(-1.3deg); }
.ped-page .pd-anshin .pd-card:nth-child(2) .pd-card-photo { --pf:#A6D2EF; transform:rotate(1deg); }
.ped-page .pd-anshin .pd-card:nth-child(3) .pd-card-photo { --pf:#B9DEA6; transform:rotate(-0.9deg); }
/* 内側のスケッチ風ホワイトリング */
.ped-page .pd-anshin .pd-card-photo.ph-frame::after {
  content:""; position:absolute; inset:5px; border-radius:20px 24px 16px 22px / 22px 16px 24px 18px;
  border:2px dashed rgba(255,255,255,0.75); pointer-events:none; z-index:2;
}
/* タイトルも少しだけ傾けてポップに */
.ped-page .pd-anshin .pd-card-title { margin-top:1rem; }

/* ワシテープ（カード2：メモ、カード3：ドット） */
.ped-page .pd-anshin .pd-card:nth-child(3)::before {
  content:""; position:absolute; top:-10px; right:22px; width:62px; height:18px; transform:rotate(8deg);
  background-color:rgba(150,200,235,0.72);
  background-image:radial-gradient(circle, #fff 1.6px, transparent 2px); background-size:9px 9px;
  z-index:5; box-shadow:0 3px 7px rgba(0,0,0,.08);
}

/* 散りばめた装飾（星・雲・芽） */
.ped-page .pd-anshin::before {
  content:""; position:absolute; left:3%; top:6%; width:46px; height:46px; opacity:.9; pointer-events:none;
  background:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23F4C84B'%3E%3Cpath d='M12 2l2.4 6.9 7.1.3-5.6 4.4 2 6.9L12 16.8 6.1 20.5l2-6.9L2.5 9.2l7.1-.3z'/%3E%3C/svg%3E");
  animation:omFloat 3.6s ease-in-out infinite;
}
.ped-page .pd-anshin::after {
  content:""; position:absolute; right:5%; top:4%; width:72px; height:44px; opacity:.85; pointer-events:none;
  background:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 24' fill='none' stroke='%23A9D3EE' stroke-width='2'%3E%3Cpath d='M8 19a5.5 5.5 0 0 1 .6-11 7.5 7.5 0 0 1 14 .6A4.8 4.8 0 0 1 22 19z'/%3E%3C/svg%3E");
  animation:omFloat 4.4s ease-in-out infinite .6s;
}
/* カード列の足元に芽のスプリンクル */
.ped-page .pd-anshin .pd-cards { position:relative; }
.ped-page .pd-anshin .pd-cards::after {
  content:""; position:absolute; left:-2.5%; bottom:-34px; width:34px; height:34px; opacity:.9; pointer-events:none;
  background:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2392C57F' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21v-7'/%3E%3Cpath d='M12 14c0-3-2-5-5-5 0 3 2 5 5 5z'/%3E%3Cpath d='M12 14c0-3 2-5 5-5 0 3-2 5-5 5z'/%3E%3C/svg%3E");
}
@media (max-width:560px){
  .ped-page .pd-anshin::before { width:34px; height:34px; }
  .ped-page .pd-anshin::after { width:54px; height:34px; }
}

/* ============================================================
   小児 02「お子さまのお口の成長」3ブロック型レイアウト
   ============================================================ */
.ped-page .pd-grow2box { background:#FFFDF8; border:1px solid #ECDDB2; border-radius:26px; padding:clamp(1.6rem,3.5vw,2.8rem); }
.ped-page .pd-grow2box .pd-num-head { margin-bottom:1.4rem; }

/* 小見出し（左右スラッシュ＋点線下線） */
.pg2-q, .pg2-h { text-align:center; font-family:'Noto Serif JP',serif; font-weight:600; color:#3a4a3e; margin:0 auto 1.2rem; }
.pg2-q { font-size:clamp(1.05rem,2.4vw,1.35rem); }
.pg2-q span { position:relative; display:inline-block; padding:0 .4rem .35rem; }
.pg2-q span::after { content:""; position:absolute; left:0; right:0; bottom:0; height:3px; background:repeating-linear-gradient(90deg,#E7B85E 0 7px,transparent 7px 12px); border-radius:2px; }
.pg2-q span::before, .pg2-q::before { }
.pg2-q::before, .pg2-q::after { content:""; display:inline-block; width:26px; height:2px; background:#E7B85E; vertical-align:middle; margin:0 .8rem; transform:skewX(-20deg); border-radius:2px; }
.pg2-h--dots { font-size:clamp(1.05rem,2.3vw,1.3rem); color:#3a4a3e; }
.pg2-h--dots::before, .pg2-h--dots::after { content:"●"; color:#F2B6C8; font-size:.7rem; vertical-align:middle; margin:0 .8rem; }
.pg2-h--green { font-size:clamp(1.05rem,2.3vw,1.3rem); color:#4a7a52; margin-bottom:1.3rem; }

/* パネル共通 */
.pg2-panel { border-radius:20px; padding:clamp(1.2rem,2.4vw,1.8rem) clamp(1rem,2vw,1.6rem); }
.pg2-panel--signs { border:1.5px solid #EAD9B4; background:#FFFEFB; }
.pg2-panel--good { border:1.5px solid #F6CFDD; background:#FEF6F9; margin-top:.4rem; }
.pg2-panel--check { border:1.5px solid #D6E8CF; background:#F7FBF4; margin-top:1.6rem; }

/* A: サイン 4列 */
.pg2-signs { display:grid; grid-template-columns:repeat(4,1fr); gap:0; }
.pg2-sign { position:relative; text-align:center; padding:.2rem clamp(.6rem,1.4vw,1.1rem); }
.pg2-sign:not(:last-child) { border-right:1px dashed #E7D9B8; }
.pg2-sign b { display:block; font-family:'Noto Serif JP',serif; font-size:.94rem; font-weight:600; color:#3a4a3e; line-height:1.5; margin-bottom:.7rem; }
.pg2-face { display:inline-flex; width:74px; height:74px; border-radius:50%; align-items:center; justify-content:center; margin-bottom:.7rem; }
.pg2-face svg { width:48px; height:48px; }
.pg2-face--green { background:#DDF0D8; }
.pg2-face--amber { background:#FBF0CC; }
.pg2-face--plain { background:#EFE9DC; }
.pg2-face--blue { background:#DCEBF8; }
.pg2-face--img { width:84px; height:84px; background:transparent; overflow:hidden; }
.pg2-face--img img { width:100%; height:100%; object-fit:cover; object-position:center 38%; border-radius:50%; display:block; }
.pg2-sign p { font-size:.76rem; line-height:1.7; color:#6b7268; margin:0; }
.pg2-bubble { position:absolute; top:50px; font-size:.56rem; line-height:1.35; color:#5f6b62; background:#fff; border:1px solid #E2D6BC; border-radius:10px; padding:.25rem .4rem; z-index:2; box-shadow:0 3px 7px rgba(0,0,0,.05); }
.pg2-bubble--l { left:-2px; }
.pg2-bubble--r { right:-2px; }
.pg2-zzz { position:absolute; top:42px; right:16%; font-family:'Cormorant Garamond',serif; font-size:1.1rem; font-weight:600; color:#9CC0E0; transform:rotate(-8deg); }

/* 矢印 */
.pg2-arrow { text-align:center; margin:.9rem 0; }
.pg2-arrow svg { width:30px; height:30px; }

/* B: 良いこと 4列 */
.pg2-goods { display:grid; grid-template-columns:repeat(4,1fr); gap:0; }
.pg2-good { position:relative; display:flex; flex-direction:column; align-items:center; text-align:center; padding:.2rem clamp(.6rem,1.4vw,1.1rem); }
.pg2-good:not(:last-child) { border-right:1px dashed #F3CEDC; }
.pg2-gico { display:inline-flex; width:58px; height:58px; border-radius:50%; background:#FCE5EC; color:#E27DA0; align-items:center; justify-content:center; margin-bottom:.6rem; }
.pg2-gico svg { width:30px; height:30px; }
.pg2-good-img { width:clamp(100px,9.5vw,132px); aspect-ratio:1/1; border-radius:50%; overflow:hidden; margin-bottom:.7rem; background:#FCE5EC; }
.pg2-good-img img { width:100%; height:100%; object-fit:cover; display:block; }
.pg2-good-ph { width:100%; height:100%; display:flex; align-items:center; justify-content:center; color:#E9A9C0; background:repeating-linear-gradient(45deg,#FCE5EC,#FCE5EC 10px,#F7D6E0 10px,#F7D6E0 20px); }
.pg2-good-ph svg { width:30px; height:30px; opacity:.6; }
.pg2-good b { display:block; font-family:'Noto Serif JP',serif; font-size:.92rem; font-weight:600; color:#D86A90; line-height:1.5; margin-bottom:.5rem; }
.pg2-good p { font-size:.74rem; line-height:1.7; color:#7a6f6a; margin:0; }

/* C: 確認 4列（写真＋本文） */
.pg2-checks { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; }
.pg2-check { display:flex; flex-direction:column; align-items:center; gap:.7rem; text-align:center; }
.pg2-check-photo { width:100%; margin:0; border-radius:12px; overflow:hidden; aspect-ratio:4/3; background:#EAEFE5; }
.pg2-check-photo img { width:100%; height:100%; object-fit:cover; display:block; }
.pg2-ph { width:100%; height:100%; display:flex; align-items:center; justify-content:center; color:#A9BBA0; background:repeating-linear-gradient(45deg,#EEF3E9,#EEF3E9 9px,#E7EEE1 9px,#E7EEE1 18px); }
.pg2-ph svg { width:26px; height:26px; opacity:.7; }
.pg2-check-body { width:100%; }
.pg2-cico { display:inline-flex; width:34px; height:34px; border-radius:50%; background:#E4F0DD; color:#6FA873; align-items:center; justify-content:center; margin-bottom:.35rem; }
.pg2-cico svg { width:20px; height:20px; }
.pg2-check-body b { display:block; font-family:'Noto Serif JP',serif; font-size:.85rem; font-weight:600; color:#3a4a3e; line-height:1.4; margin-bottom:.3rem; }
.pg2-check-body p { font-size:.72rem; line-height:1.65; color:#6b7268; margin:0; }

/* フッター帯 */
.pg2-footer { display:flex; align-items:center; justify-content:center; gap:.7rem; flex-wrap:wrap; text-align:center; margin:1.8rem 0 0; padding:.95rem 1.4rem; background:#FBF3DC; border-radius:999px; font-family:'Noto Serif JP',serif; font-size:clamp(.86rem,1.9vw,1rem); font-weight:600; color:#9a7a2e; line-height:1.7; }
.pg2-sprout { font-size:1.1rem; }

@media (max-width:820px){
  .pg2-signs, .pg2-goods { grid-template-columns:repeat(2,1fr); gap:1.2rem 0; }
  .pg2-sign:nth-child(2), .pg2-good:nth-child(2) { border-right:none; }
  .pg2-sign:nth-child(1), .pg2-sign:nth-child(2) { border-bottom:1px dashed #E7D9B8; padding-bottom:1.1rem; }
  .pg2-checks { grid-template-columns:repeat(2,1fr); gap:1.2rem; }
}
@media (max-width:520px){
  .pg2-signs, .pg2-goods, .pg2-checks { grid-template-columns:1fr; }
  .pg2-sign:not(:last-child), .pg2-good:not(:last-child) { border-right:none; border-bottom:1px dashed #E7D9B8; padding-bottom:1.1rem; }
  .pg2-q::before, .pg2-q::after { display:none; }
}

/* ============================================================
   小児 03「むし歯予防だけではありません」ステップ小道レイアウト
   ============================================================ */
.ped-page .pc3-section { background:#fff !important; }
.pc3-hl { color:#D89A2C; font-weight:700; }
.pc3-path { display:flex; justify-content:center; align-items:flex-start; gap:clamp(.5rem,1.4vw,1.6rem); flex-wrap:nowrap; max-width:1160px; margin:2.6rem auto 0; }
.pc3-step { position:relative; flex:1 1 0; min-width:0; max-width:212px; background:#fff; border-radius:22px; padding:2.3rem clamp(.7rem,1.3vw,1.1rem) 1.4rem; box-shadow:0 14px 30px rgba(160,140,100,0.14); text-align:center; }
.pc3-path > .pc3-step:nth-child(even) { margin-top:122px; }
.pc3-badge { position:absolute; top:-22px; left:50%; transform:translateX(-50%); width:46px; height:46px; border-radius:50%; color:#fff; font-family:'Cormorant Garamond',serif; font-weight:700; font-size:1.25rem; display:flex; align-items:center; justify-content:center; box-shadow:0 6px 14px rgba(0,0,0,.16); }
.pc3-verb { display:block; font-family:'Noto Serif JP',serif; font-weight:700; font-size:1.05rem; line-height:1.3; margin-bottom:.05rem; }
.pc3-name { font-family:'Noto Serif JP',serif; font-weight:600; font-size:1.02rem; color:#3a3a32; margin:.1rem 0 .9rem; }
.pc3-photo { margin:0 0 .9rem; border-radius:14px; overflow:hidden; aspect-ratio:4/3; background:#F2EEE4; }
.pc3-photo img { width:100%; height:100%; object-fit:cover; display:block; }
.pc3-step > p { font-size:.78rem; line-height:1.75; color:#6b6a60; margin:0; }
/* カラー */
.pc3-step--green .pc3-badge { background:linear-gradient(135deg,#86CE9A,#5FA873); } .pc3-step--green .pc3-verb { color:#4F9A63; }
.pc3-step--coral .pc3-badge { background:linear-gradient(135deg,#F4AE8C,#EC8568); } .pc3-step--coral .pc3-verb { color:#DE7152; }
.pc3-step--orange .pc3-badge { background:linear-gradient(135deg,#EEC563,#E0A33C); } .pc3-step--orange .pc3-verb { color:#CC8A22; }
.pc3-step--blue .pc3-badge { background:linear-gradient(135deg,#96C2E8,#6FA8DA); } .pc3-step--blue .pc3-verb { color:#5089BE; }
/* 点線の小道コネクタ */
.pc3-path > .pc3-step:nth-child(odd):not(:last-child)::after {
  content:""; position:absolute; right:-26px; top:62%; width:44px; height:96px; z-index:-1;
  border-right:3px dotted #E8C56A; border-bottom:3px dotted #E8C56A; border-bottom-right-radius:50px;
}
.pc3-path > .pc3-step:nth-child(even):not(:last-child)::after {
  content:""; position:absolute; right:-26px; top:-32px; width:44px; height:96px; z-index:-1;
  border-right:3px dotted #E8C56A; border-top:3px dotted #E8C56A; border-top-right-radius:50px;
}
/* フッター帯 */
.pc3-footer { max-width:760px; margin:clamp(2.4rem,5vw,3.6rem) auto 0; text-align:center; background:#FFFBF0; border:1px solid #ECDDB2; border-radius:18px; padding:1.2rem 1.6rem; }
.pc3-footer b { display:block; font-family:'Noto Serif JP',serif; font-size:clamp(1rem,2.2vw,1.2rem); font-weight:700; color:#C58A22; margin-bottom:.5rem; padding-bottom:.5rem; border-bottom:2px dotted #EAD08A; }
.pc3-footer span { font-family:'Noto Serif JP',serif; font-size:.86rem; line-height:1.85; color:#7a6f5a; }

@media (max-width:700px){
  .pc3-path { display:grid; grid-template-columns:repeat(2,minmax(0,220px)); justify-content:center; gap:2.6rem 1.4rem; }
  .pc3-path > .pc3-step { max-width:none; }
  .pc3-path > .pc3-step:nth-child(even) { margin-top:0; }
  .pc3-path > .pc3-step::after { display:none !important; }
}
@media (max-width:460px){ .pc3-path { grid-template-columns:1fr; max-width:300px; justify-items:center; } }

/* モバイル：5つのサポートのカードを少しゆらゆら揺らす(やさしい遊びのある動き) */
@keyframes pc3Sway {
  0%, 100% { transform: rotate(-1.6deg); }
  50%      { transform: rotate(1.6deg); }
}
@media (max-width:700px){
  .pc3-path > .pc3-step { animation: pc3Sway 4s ease-in-out infinite; transform-origin:50% 100%; will-change:transform; }
  .pc3-path > .pc3-step:nth-child(2n) { animation-duration:4.7s; animation-delay:-1.6s; }
  .pc3-path > .pc3-step:nth-child(3n) { animation-duration:5.3s; animation-delay:-2.7s; }
}
@media (prefers-reduced-motion: reduce){
  .pc3-path > .pc3-step { animation:none !important; }
}

/* ============================================================
   小児 01 写真を縦並び（写真＋横にタイトル・文）
   ============================================================ */
.pd-anshin-list { display:flex; flex-direction:column; gap:clamp(1.8rem,4vw,3rem); max-width:880px; margin:0 auto; }
.pd-anshin .pd-vrow { display:grid; grid-template-columns:300px 1fr; gap:clamp(1.4rem,3.5vw,3rem); align-items:center; text-align:left; }
.pd-anshin .pd-vrow--right { grid-template-columns:1fr 300px; }
.pd-anshin .pd-vrow--right .pd-card-photo { order:2; }
.pd-anshin .pd-vrow--right .pd-vrow-body { order:1; text-align:right; }
.pd-anshin .pd-vrow .pd-card-photo { width:100%; margin:0; }
.pd-anshin .pd-vrow-body { padding:.3rem 0; }
.pd-anshin .pd-vrow .pd-card-title { font-size:clamp(1.1rem,2.4vw,1.45rem); margin:0 0 .7rem; }
.pd-anshin .pd-vrow .pd-card-text { font-size:.92rem; line-height:1.95; }
/* 縦並びでは右上のマスキングテープは非表示（位置がずれるため） */
.pd-anshin-list .pd-card::before { display:none !important; }
@media (max-width:680px){
  .pd-anshin .pd-vrow, .pd-anshin .pd-vrow--right { grid-template-columns:1fr; gap:1rem; max-width:380px; margin:0 auto; text-align:center; }
  .pd-anshin .pd-vrow--right .pd-card-photo { order:0; }
  .pd-anshin .pd-vrow--right .pd-vrow-body { order:0; text-align:center; }
}

/* 小児 01 タイトルを予防歯科の大見出しサイズに合わせる */
.ped-page .pd-num-head .pd-h2 { font-size:clamp(1.9rem,4.8vw,3rem); line-height:1.3; }

/* 小児 01 縦並びのリード文 */
.ped-page .pd-anshin .pd-vrow-lead { font-family:'Noto Serif JP',serif; font-weight:600; font-size:1.02rem; color:#D7A12E; margin:0 0 .65rem; line-height:1.6; }
.ped-page .pd-anshin .pd-vrow .pd-card-text { font-size:.9rem; line-height:1.95; color:#5f6b62; }

/* 小児 01 の番号(01)もタイトルに合わせて大きく */
.ped-page .pd-num-head .pd-num { width:clamp(74px,10vw,100px); height:clamp(74px,10vw,100px); font-size:clamp(2.3rem,4.8vw,3.4rem); color:#2b2620; border-width:2.5px; }
.ped-page .pd-num-head { gap:1.1rem; }

/* ============================================================
   小児 01 レイアウト：横長の大きめ写真＋色付きタイトル（モックアップ準拠）
   ============================================================ */
.ped-page .pd-anshin-list { max-width:1040px; gap:clamp(2.4rem,5vw,3.6rem); }
.ped-page .pd-anshin .pd-vrow { grid-template-columns:minmax(0,1fr) minmax(0,1.04fr); gap:clamp(1.6rem,4vw,3.2rem); }
.ped-page .pd-anshin .pd-vrow--right { grid-template-columns:minmax(0,1.04fr) minmax(0,1fr); }
/* 写真：横長・ソフトな縁・傾きと枠を解除 */
.ped-page .pd-anshin .pd-vrow .pd-card-photo.ph-frame {
  border:none !important; box-shadow:none !important; transform:none !important;
  border-radius:16px; padding-bottom:62%;
  -webkit-mask-image:radial-gradient(118% 128% at 50% 50%, #000 68%, transparent 93%);
          mask-image:radial-gradient(118% 128% at 50% 50%, #000 68%, transparent 93%);
}
.ped-page .pd-anshin .pd-vrow .pd-card-photo.ph-frame::after { display:none !important; }
/* タイトル：星アイコン＋カード別の色・大きめ */
.ped-page .pd-anshin .pd-vrow .pd-card-title {
  display:flex; align-items:center; gap:.5rem; flex-wrap:wrap;
  font-size:clamp(1.35rem,2.9vw,1.85rem); line-height:1.4; margin:0 0 1rem; font-weight:600;
}
.ped-page .pd-anshin .pd-vrow--right .pd-card-title { justify-content:flex-end; }
.ped-page .pd-anshin .pd-vrow .pd-card-title::before {
  content:""; flex:none; width:1.1em; height:1.1em; background:currentColor;
  -webkit-mask:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2l2.4 6.9 7.1.3-5.6 4.4 2 6.9L12 16.8 6.1 20.5l2-6.9L2.5 9.5l7.1-.3z'/%3E%3C/svg%3E");
          mask:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2l2.4 6.9 7.1.3-5.6 4.4 2 6.9L12 16.8 6.1 20.5l2-6.9L2.5 9.5l7.1-.3z'/%3E%3C/svg%3E");
}
.ped-page .pd-anshin .pd-vrow--right .pd-card-title::before { order:2; }
.ped-page .pd-anshin-list .pd-vrow:nth-child(1) .pd-card-title { color:#E2A03A; }
.ped-page .pd-anshin-list .pd-vrow:nth-child(2) .pd-card-title { color:#5B9BD5; }
.ped-page .pd-anshin-list .pd-vrow:nth-child(3) .pd-card-title { color:#6AB06E; }
.ped-page .pd-anshin .pd-vrow .pd-card-text { color:#5a5f57; }
@media (max-width:680px){
  /* モバイルでは写真＋テキストの2カラムを縦積みに（崩れ解消） */
  .ped-page .pd-anshin .pd-vrow,
  .ped-page .pd-anshin .pd-vrow--right { grid-template-columns:1fr; gap:1rem; max-width:420px; margin:0 auto; }
  .ped-page .pd-anshin .pd-vrow .pd-card-photo,
  .ped-page .pd-anshin .pd-vrow--right .pd-card-photo { order:0; }
  .ped-page .pd-anshin .pd-vrow-body,
  .ped-page .pd-anshin .pd-vrow--right .pd-vrow-body { order:0; text-align:left; }
  .ped-page .pd-anshin .pd-vrow .pd-card-title,
  .ped-page .pd-anshin .pd-vrow--right .pd-card-title { justify-content:center; }
}

/* 成長セクション：外側の黄色フレームを削除（中のパネルは残す） */
.pd-grow-section { padding:clamp(2.6rem,5vw,4rem) 0; }
.ped-page .pd-grow2box--bare { background:transparent; border:none; padding:0; border-radius:0; }

/* ============================================================
   小児 02「未来のお口を育てる」育てる道レイアウト強化
   ============================================================ */
.pc3-section { position:relative; overflow:hidden; }
.pc3-path { position:relative; }
.pc3-path > .pc3-step { z-index:1; transition:transform .3s ease, box-shadow .3s ease; }
/* 既存の点線コネクタを消して連続した道に */
.pc3-path > .pc3-step::after { display:none !important; }
/* ① うすい点線ロード */
.pc3-path::before {
  content:""; position:absolute; left:0; right:0; top:42%; height:170px; z-index:0; pointer-events:none; opacity:.5;
  background:no-repeat center/100% 100% url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 170'%3E%3Cpath d='M20 130 Q160 30 320 105 T620 95 T920 70 T1180 120' fill='none' stroke='%23E8C56A' stroke-width='8' stroke-linecap='round' stroke-dasharray='1 22'/%3E%3C/svg%3E");
}
/* 雲・小花 */
.pc3-section::before { content:""; position:absolute; left:6%; top:14%; width:84px; height:50px; opacity:.7; pointer-events:none; z-index:0;
  background:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 24' fill='none' stroke='%23A9D3EE' stroke-width='2'%3E%3Cpath d='M8 19a5.5 5.5 0 0 1 .6-11 7.5 7.5 0 0 1 14 .6A4.8 4.8 0 0 1 22 19z'/%3E%3C/svg%3E");
  animation:omFloat 5s ease-in-out infinite; }
.pc3-section::after { content:""; position:absolute; right:7%; bottom:18%; width:42px; height:42px; opacity:.85; pointer-events:none; z-index:0;
  background:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='%23F4B8CE'%3E%3Ccircle cx='12' cy='5' r='3.2'/%3E%3Ccircle cx='12' cy='19' r='3.2'/%3E%3Ccircle cx='5' cy='12' r='3.2'/%3E%3Ccircle cx='19' cy='12' r='3.2'/%3E%3C/g%3E%3Ccircle cx='12' cy='12' r='3.2' fill='%23FCE08A'/%3E%3C/svg%3E"); }
/* ② カードを少し傾ける（絵本風） */
.pc3-path > .pc3-step:nth-child(odd) { transform:rotate(-1.5deg); }
.pc3-path > .pc3-step:nth-child(even) { transform:rotate(1.5deg); }
.pc3-path > .pc3-step:hover { transform:rotate(0deg) translateY(-5px); box-shadow:0 20px 38px rgba(160,140,100,0.2); }
/* ③ 丸番号をぷっくりシール風に */
.pc3-badge { border:3px solid #fff; box-shadow:0 5px 11px rgba(120,90,40,.3), inset 0 2px 4px rgba(255,255,255,.6), inset 0 -3px 5px rgba(0,0,0,.14); }
.pc3-badge::after { content:""; position:absolute; top:15%; left:19%; width:36%; height:26%; border-radius:50%; background:rgba(255,255,255,.6); filter:blur(.5px); pointer-events:none; }
@media (max-width:700px){
  .pc3-path::before, .pc3-section::before, .pc3-section::after { display:none; }
  .pc3-path > .pc3-step:nth-child(odd), .pc3-path > .pc3-step:nth-child(even) { transform:none; }
}

/* 03 成長セクション：背景白・中のパネル(緑/ピンク/サイン)も白に */
.ped-page .pd-grow-section { background:#fff; }
.ped-page .pd-grow2box--bare .pg2-panel--signs,
.ped-page .pd-grow2box--bare .pg2-panel--good,
.ped-page .pd-grow2box--bare .pg2-panel--check {
  background:#fff; border-color:#ECE6DA; box-shadow:0 8px 22px rgba(120,110,90,0.07);
}

/* 小児 01・02 を横画面いっぱいに広げる（has-snav の880px制限を解除） */
.ped-page .pd-intro > .section-inner,
.ped-page .pc3-section > .section-inner { max-width:min(1480px,94vw) !important; }
.ped-page .pd-anshin-list { max-width:1320px; }
.ped-page .pc3-path { max-width:1340px; }
.ped-page .pc3-step { max-width:252px; }

/* ============================================================
   小児 04「楽しく通える工夫」コラージュ＋取り組みパネル
   ============================================================ */
.pe4-section { background:#fff; }
.pe4-grid { display:grid; grid-template-columns:1.05fr 1fr; gap:clamp(1.6rem,3.5vw,3rem); align-items:center; max-width:1180px; margin:2rem auto 0; }
.pe4-collage { margin:0; }
.pe4-collage img { width:100%; border-radius:18px; display:block; box-shadow:0 16px 34px rgba(150,130,100,0.16); }
.pe4-ph { aspect-ratio:4/3; border-radius:18px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.6rem; color:#B7A98C; background:repeating-linear-gradient(45deg,#F4EEE0,#F4EEE0 12px,#EDE6D5 12px,#EDE6D5 24px); }
.pe4-ph svg { width:42px; height:42px; opacity:.6; }
.pe4-ph small { font-size:.78rem; letter-spacing:.06em; }
/* 右パネル */
.pe4-panel { background:linear-gradient(180deg,#FFF8F4,#FDEFF4); border:1px solid #F6DCE0; border-radius:24px; padding:clamp(1.5rem,3vw,2.4rem) clamp(1.3rem,2.6vw,2rem); }
.pe4-ribbon { display:inline-flex; align-items:center; gap:.55rem; margin:0 0 1.4rem; padding:.55rem 1.4rem .55rem 1.1rem;
  background:linear-gradient(135deg,#F3A79E,#EC8A82); color:#fff; font-family:'Noto Serif JP',serif; font-weight:600; font-size:1.02rem;
  border-radius:8px 8px 8px 8px; position:relative; box-shadow:0 6px 14px rgba(230,140,130,0.3); }
.pe4-ribbon::before, .pe4-ribbon::after { content:""; position:absolute; top:0; bottom:0; width:10px; background:inherit; }
.pe4-ribbon::before { left:-9px; clip-path:polygon(100% 0,100% 100%,0 50%); }
.pe4-ribbon::after { right:-9px; clip-path:polygon(0 0,0 100%,100% 50%); }
.pe4-ribbon-ico svg { width:22px; height:22px; display:block; }
.pe4-list { list-style:none; margin:0; padding:0; }
.pe4-item { display:flex; align-items:flex-start; gap:1rem; padding:1rem 0; }
.pe4-item:not(:last-child) { border-bottom:1px dashed #EDD9C9; }
.pe4-ico { flex:none; width:54px; height:54px; border-radius:16px; display:flex; align-items:center; justify-content:center; }
.pe4-ico svg { width:28px; height:28px; }
.pe4-tx b { display:block; font-family:'Noto Serif JP',serif; font-weight:700; font-size:1.05rem; margin-bottom:.3rem; }
.pe4-tx p { font-size:.82rem; line-height:1.8; color:#6b665e; margin:0; }
.pe4-item--pink .pe4-ico { background:#FCE3EB; color:#E27DA0; } .pe4-item--pink .pe4-tx b { color:#DD6E94; }
.pe4-item--gold .pe4-ico { background:#FBF0CC; color:#D7A12E; } .pe4-item--gold .pe4-tx b { color:#C58A22; }
.pe4-item--green .pe4-ico { background:#E3F0DD; color:#6AB06E; } .pe4-item--green .pe4-tx b { color:#579B5B; }
.pe4-item--blue .pe4-ico { background:#E2EFFA; color:#5B9BD5; } .pe4-item--blue .pe4-tx b { color:#4F8BC4; }
/* フッター帯 */
.pe4-footer { max-width:900px; margin:clamp(2rem,4vw,3rem) auto 0; text-align:center; background:#FBF3DC; border-radius:999px; padding:1rem 1.6rem;
  font-family:'Noto Serif JP',serif; font-weight:600; font-size:clamp(.9rem,2vw,1.05rem); color:#8a7a44; line-height:1.7; }
.pe4-footer em { font-style:normal; color:#E58A6A; }
@media (max-width:840px){ .pe4-grid { grid-template-columns:1fr; max-width:560px; } }

/* 02 ステップカード：動詞を番号とセットの小ラベルに、施術名を大きく目立たせる */
.pc3-step .pc3-verb { font-size:.82rem; font-weight:700; letter-spacing:.06em; margin:.15rem 0 .2rem; }
.pc3-step .pc3-name { font-size:clamp(1.18rem,1.7vw,1.4rem); font-weight:700; color:#2f2a24; margin:.1rem 0 .95rem; letter-spacing:.02em; }

/* 02 締めの帯：フレーム削除・文字だけ・黒文字 */
.pc3-footer { background:none !important; border:none !important; padding:0 !important; }
.pc3-footer b { color:#2b2620; border-bottom:none; padding-bottom:0; }
.pc3-footer span { color:#2b2620; }

/* 04 コラージュ画像（全幅） */
.pe4-section > .section-inner { max-width:min(1380px,94vw) !important; }
.pe4-img { margin:1.5rem 0 0; }
.pe4-img img { width:100%; height:auto; display:block; }

/* 02 締めの「お口の健康は〜」を少し大きく・ゴールドに */
.pc3-footer b { color:#C58A22 !important; font-size:clamp(1.15rem,2.4vw,1.4rem); }

/* 小児 各セクションのタイトルを左スタートで統一 */
.ped-page .pd-num-head--center { justify-content:flex-start; }
.ped-page .pd-sec-sub { text-align:left; }

/* ============================================================
   小児：タイトル中央揃え統一・01シール風・04ポラロイド散らし (m30)
   ============================================================ */
/* ① タイトルを中央揃えで統一 */
.ped-page .pd-num-head, .ped-page .pd-num-head--center { justify-content:center; }
.ped-page .pd-sec-sub { text-align:center; }

/* ② 01 写真をシール風フレームに（白フチ＋影＋少し傾け） */
.ped-page .pd-anshin .pd-vrow .pd-card-photo.ph-frame {
  -webkit-mask:none !important; mask:none !important;
  border:7px solid #fff; border-radius:14px;
  box-shadow:0 12px 28px rgba(120,110,90,0.22);
}
.ped-page .pd-anshin .pd-vrow:nth-child(1) .pd-card-photo.ph-frame { transform:rotate(-1.6deg); }
.ped-page .pd-anshin .pd-vrow:nth-child(2) .pd-card-photo.ph-frame { transform:rotate(1.6deg); }
.ped-page .pd-anshin .pd-vrow:nth-child(3) .pd-card-photo.ph-frame { transform:rotate(-1.4deg); }

/* ③ 04 ポラロイド散らしコラージュ */
.pe4-collage-grid { position:relative; display:block; width:96vw; margin-left:calc(50% - 48vw); height:clamp(430px,38vw,620px); margin-top:1.4rem; }
.pe4-pola { position:absolute; margin:0; background:#fff; padding:.5rem .5rem 0; border-radius:4px; box-shadow:0 12px 26px rgba(120,110,90,0.22); transition:transform .3s ease; }
.pe4-pola:hover { transform:scale(1.05) rotate(0deg) !important; z-index:9; }
.pe4-pola--a { left:0;     top:14%; width:15.5%; transform:rotate(-7deg);  z-index:2; }
.pe4-pola--b { left:14%;  top:36%; width:18.5%; transform:rotate(4.5deg); z-index:4; }
.pe4-pola--c { left:31%;  top:0;   width:15%;   transform:rotate(6.5deg); z-index:3; }
.pe4-pola--d { left:45%;  top:33%; width:17.5%; transform:rotate(-5.5deg);z-index:5; }
.pe4-pola--f { left:63%;  top:3%;  width:16%;   transform:rotate(5.5deg); z-index:3; }
.pe4-pola--g { left:80%;  top:28%; width:17.5%; transform:rotate(-6.5deg);z-index:4; }
.pe4-pola-img { aspect-ratio:4/5; border-radius:2px; overflow:hidden; }
.pe4-pola--a .pe4-pola-img,
.pe4-pola--d .pe4-pola-img { aspect-ratio:1/1; }
.pe4-pola-img img { width:100%; height:100%; object-fit:cover; display:block; }
.pe4-pola .pe4-ph { width:100%; height:100%; display:flex; align-items:center; justify-content:center; color:#B7A98C; background:repeating-linear-gradient(45deg,#F4EEE0,#F4EEE0 11px,#EDE6D5 11px,#EDE6D5 22px); }
.pe4-pola .pe4-ph svg { width:34px; height:34px; opacity:.55; }
.pe4-pola figcaption { font-family:'Noto Serif JP',serif; font-size:.84rem; text-align:center; padding:.55rem .3rem .6rem; color:#5a5048; }
/* マスキングテープ */
.pe4-pola::before { content:""; position:absolute; top:-9px; left:50%; transform:translateX(-50%) rotate(-5deg); width:58px; height:19px; opacity:.78; box-shadow:0 2px 4px rgba(0,0,0,.06); }
.pe4-pola[data-tape="pink"]::before { background:rgba(244,164,190,.62); }
.pe4-pola[data-tape="green"]::before { background:rgba(150,200,150,.58); }
.pe4-pola[data-tape="purple"]::before { background:rgba(185,160,220,.58); }
.pe4-pola[data-tape="blue"]::before { background:rgba(150,200,235,.62); background-image:radial-gradient(circle,#fff 1.4px,transparent 1.8px); background-size:8px 8px; }
.pe4-pola[data-tape="gold"]::before { background:rgba(240,210,120,.62); }
/* みんなの笑顔がいっぱい！吹き出し */
.pe4-cloud { position:absolute; left:50%; bottom:2%; transform:translateX(-50%); z-index:4; text-align:center;
  font-family:'Noto Serif JP',serif; font-weight:600; font-size:.82rem; line-height:1.5; color:#D98A5A;
  background:#FFF4E2; padding:.9rem 1.5rem; border-radius:999px; box-shadow:0 8px 18px rgba(210,160,90,.22); }
.pe4-cloud::after { content:""; position:absolute; left:30%; bottom:-9px; width:16px; height:16px; background:#FFF4E2; border-radius:50%; box-shadow:-10px 4px 0 -4px #FFF4E2; }
@media (max-width:900px){
  /* 絶対配置の散らしをやめ、流し込みグリッドに戻す */
  .pe4-collage-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(.7rem,1.5vw,1.2rem);
    width:auto; max-width:min(720px,94vw); height:auto; margin:1.4rem auto 0; }
  .pe4-pola { position:static; width:auto !important; left:auto; top:auto; }
  .pe4-pola--b,.pe4-pola--d,.pe4-pola--g { transform:rotate(2deg) translateY(16px); }
  .pe4-pola--a,.pe4-pola--c,.pe4-pola--f { transform:rotate(-2deg) translateY(0); }
}
@media (max-width:540px){
  .pe4-collage-grid { grid-template-columns:repeat(2,1fr); gap:1.1rem; max-width:94vw; }
  .pe4-cloud { position:static; transform:none; display:inline-block; margin:1.4rem auto 0; }
}

/* 03 締め「お子さまの育ち〜」フレーム削除・文字のみ・黒 */
.pg2-footer { background:none !important; border-radius:0 !important; padding:.4rem 0 !important; color:#2b2620 !important; }

/* 05 成長を一緒に見守ります：背景白 */
.ped-page .pd-grow2 { background:#fff; }

/* 01 カードタイトルを Zen Maru Gothic 太字に */
.ped-page .pd-anshin .pd-vrow .pd-card-title { font-family:'Zen Maru Gothic','Noto Serif JP',sans-serif; font-weight:700; letter-spacing:.02em; }

/* 予防歯科 セクションタイトルを中央揃え（小児同様） */
.pv-page .pv-sec-head { display:flex; flex-direction:column; align-items:center; text-align:center; }
.pv-page .pv-sec-head .pv-sec-num { grid-row:auto; grid-column:auto; margin:0 0 .7rem; }
.pv-page .pv-sec-head .pv-sec-eyebrow,
.pv-page .pv-sec-head .pv-sec-h { grid-column:auto; text-align:center; }
.pv-page .pv-sec-lead, .pv-page .pv-sec-close { text-align:center; }

/* 1ミリチャレンジ セクションタイトルを中央揃え */
.om-sechead-row { justify-content:center; text-align:center; }
.om-page .om-sec-head, .om-page .om-h2 { text-align:center; }

/* 歯周病セクション見出し：数字をタイトルの上に（予防歯科ページと統一） */
.om-page .om-sechead-row { flex-direction:column; align-items:center; justify-content:center; text-align:center; flex-wrap:nowrap; }
.om-page .om-sechead-row .om-secnum { margin:0 0 0.8rem !important; }

/* 予防プログラム バナー：ピンク/緑フレーム → 白×ゴールドで上品に */
.pv-page .pv-sec--mgmt .pv-mgmt-banner { background:#FFFDF8; border:1px solid #E7D7AE; box-shadow:0 8px 22px rgba(180,150,70,0.10); }
.pv-page .pv-sec--mgmt .pv-mgmt-banner-ico { color:#C9A24C; }
.pv-page .pv-sec--mgmt .pv-mgmt-banner-t { color:#3a342e; }
.pv-page .pv-sec--mgmt .pv-mgmt-banner-min { color:#C0982F; }

/* 1ミリチャレンジへのリンクボタン（白×ゴールド） */
.pv-mm-linkwrap { text-align:center; margin-top:clamp(1.6rem,3vw,2.2rem); }
.pv-mm-link { display:inline-flex; align-items:center; gap:0.8rem; padding:1.05rem 2.6rem; font-family:'Noto Serif JP',serif; font-size:1.12rem; font-weight:600; letter-spacing:0.05em; color:#fff; background:linear-gradient(135deg,#C9A24C 0%,#E6C66A 50%,#C9A24C 100%); border:none; border-radius:999px; text-decoration:none; box-shadow:0 12px 30px rgba(180,150,70,0.34); transition:transform .25s, box-shadow .25s, filter .25s; }
.pv-mm-link:hover { transform:translateY(-3px); box-shadow:0 18px 40px rgba(180,150,70,0.46); filter:brightness(1.05); }
.pv-mm-link-text { display:flex; flex-direction:column; align-items:center; line-height:1.4; }
.pv-mm-link-sub { font-size:0.72rem; font-weight:500; letter-spacing:0.04em; opacity:0.92; margin-bottom:0.2rem; }
.pv-mm-link-arr { font-family:'Cormorant Garamond',serif; font-size:1.35rem; line-height:1; transition:transform .25s; }
.pv-mm-link:hover .pv-mm-link-arr { transform:translateX(4px); }

/* ============ OUR APPROACH ロードマップ（点線フロー・ゴールド） ============ */
.pv-road { position:relative; display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(0.6rem,1.5vw,1.4rem); max-width:1040px; margin:clamp(2.4rem,5vw,3.6rem) auto 0; align-items:start; }
/* 波状の点線（ジグザグをつなぐ） */
.pv-road-svg { position:absolute; top:0; left:0; width:100%; height:200px; z-index:0; pointer-events:none; overflow:visible; }
.pv-road-svg path { fill:none; stroke:#E2D1A0; stroke-width:2; stroke-dasharray:2 7; stroke-linecap:round; vector-effect:non-scaling-stroke; }
.pv-road-step { position:relative; z-index:1; display:flex; flex-direction:column; align-items:center; text-align:center; }
/* ノードを内包する固定高ヘッド（上下交互に配置） */
.pv-road-head { position:relative; width:100%; height:200px; }
.pv-road-headinner { position:absolute; left:0; right:0; top:0; display:flex; flex-direction:column; align-items:center; transition:top .3s; }
.pv-road-step.is-down .pv-road-headinner { top:60px; }
.pv-road-label { height:44px; display:flex; flex-direction:column; align-items:center; justify-content:flex-start; line-height:1; }
.pv-road-label .st { font-family:'Cormorant Garamond',serif; font-size:0.72rem; font-weight:600; letter-spacing:0.24em; color:#C0982F; }
.pv-road-label .no { font-family:'Cormorant Garamond',serif; font-size:1.75rem; font-weight:700; color:#2b2620; line-height:1; margin-top:0.15rem; }
.pv-road-node { width:96px; height:96px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:radial-gradient(circle at 38% 32%, #FFFDF7 0%, #FBF2D9 60%, #F4E4B8 100%); border:1.5px solid #E6CF92; box-shadow:0 12px 26px rgba(180,150,70,0.16); color:#B8862B; }
.pv-road-node svg { width:42px; height:42px; }
.pv-road-t { font-family:'Noto Serif JP',serif; font-size:clamp(1rem,2.2vw,1.18rem); font-weight:600; color:#2b2620; margin:0.4rem 0 0.5rem; line-height:1.45; letter-spacing:0.02em; }
.pv-road-t::after { content:""; display:block; width:34px; height:2px; background:#D4A92E; border-radius:2px; margin:0.6rem auto 0; }
.pv-road-x { font-family:'M PLUS Rounded 1c',sans-serif; font-size:0.86rem; line-height:1.85; color:#5b5349; margin:0.7rem 0 0; padding:0 0.4rem; }
/* ゴールドリーフ装飾 */
.pv-road-leaf { position:absolute; z-index:1; width:clamp(34px,5vw,52px); opacity:0.5; pointer-events:none; }
.pv-road-leaf.l1 { top:34px; left:30%; transform:rotate(8deg); }
.pv-road-leaf.l2 { top:150px; left:54%; transform:rotate(-12deg) scaleX(-1); }
.pv-road-leaf.l3 { top:40px; right:5%; transform:rotate(10deg); }
@media (max-width:820px){
  .pv-road { grid-template-columns:1fr 1fr; gap:1.8rem 1rem; }
  .pv-road-svg { display:none; }
  .pv-road-head { height:auto; }
  .pv-road-headinner { position:static; }
  .pv-road-step.is-down .pv-road-headinner { top:auto; }
  .pv-road-leaf { display:none; }
}
@media (max-width:480px){
  .pv-road { grid-template-columns:1fr; }
}

/* 全身バナー：ピンクグラデのマーカー（白背景でも確実に表示） */
.pv-whole-banner .mmc-mm::after { display:none !important; }
.pv-whole-banner .mmc-mm { background:linear-gradient(180deg,transparent 0 54%, #FFC6D6 54%, #FBD3E8 88%, transparent 88%); padding:0 .14em; border-radius:3px; color:#241f1a; }

/* ============ 1ミリ：衛生士サポート HERO（全面背景・ゴールド） ============ */
.om-support-hero { position:relative; min-height:clamp(420px,46vw,560px); display:flex; align-items:center; overflow:hidden; margin-top:clamp(2rem,4vw,3rem); }
.om-support-bg { position:absolute; inset:0; z-index:0; }
.om-support-bg img { width:100%; height:100%; object-fit:cover; object-position:78% center; }
.om-support-overlay { position:absolute; inset:0; z-index:1; background:linear-gradient(100deg, rgba(255,253,248,0.97) 0%, rgba(255,253,248,0.93) 34%, rgba(255,253,248,0.6) 54%, rgba(255,253,248,0.12) 76%, rgba(255,253,248,0) 92%); }
.om-support-inner { position:relative; z-index:2; width:100%; }
.om-support-textcol, .om-support-inner > * { max-width:min(56%,560px); }
.om-support-tag { display:inline-block; font-family:'M PLUS Rounded 1c',sans-serif; font-size:0.8rem; font-weight:700; letter-spacing:0.08em; color:#B8862B; background:#FBF4E2; border:1px solid #E7D7AE; border-radius:999px; padding:0.4rem 1.1rem; margin:0 0 1.2rem; }
.om-support-h { font-family:'Noto Serif JP',serif; font-weight:600; font-size:clamp(1.8rem,4.2vw,2.7rem); line-height:1.45; color:#241f1a; margin:0 0 1.3rem; letter-spacing:0.03em; }
.om-support-x { font-family:'Noto Serif JP',serif; font-size:clamp(0.95rem,2vw,1.04rem); line-height:2.05; color:#4a443c; margin:0 0 1.2rem; }
.om-support-script { font-family:'Cormorant Garamond',serif; font-style:italic; font-size:1.5rem; color:#C0982F; margin:0; letter-spacing:0.04em; }
@media (max-width:780px){
  .om-support-hero { min-height:auto; padding:clamp(2.4rem,7vw,3.4rem) 0; }
  .om-support-textcol, .om-support-inner > * { max-width:100%; }
  .om-support-overlay { background:linear-gradient(180deg, rgba(255,253,248,0.95) 0%, rgba(255,253,248,0.82) 55%, rgba(255,253,248,0.5) 100%); }
}

/* ============ なぜ1ミリ：比較レイアウト（つまずき／続けられる） ============ */
.om-cmp2 { display:grid; grid-template-columns:1fr auto 1fr; gap:clamp(0.8rem,2vw,1.8rem); align-items:center; max-width:1060px; margin:clamp(2.2rem,4.5vw,3.4rem) auto 0; }
.om-cmp2-card { position:relative; border-radius:20px; padding:clamp(2.2rem,3.8vw,3rem) clamp(1.6rem,3.2vw,2.2rem) clamp(1.7rem,3.2vw,2.3rem); background:#fff; overflow:hidden; }
.om-cmp2-card::before { content:""; position:absolute; left:0; right:0; top:0; height:7px; }
.om-cmp2--bad { border:2px solid #E2D4B4; box-shadow:0 20px 44px rgba(150,128,72,0.14); }
.om-cmp2--bad::before { background:linear-gradient(90deg,#D9C79B,#EADBB6); }
.om-cmp2--good { border:2px solid #ED9CB2; box-shadow:0 24px 52px rgba(224,120,154,0.22); }
.om-cmp2--good::before { background:linear-gradient(90deg,#E0789A,#F0A9BD,#E0789A); }
.om-cmp2-tab { display:block; width:fit-content; margin:0 auto 1.1rem; padding:0.6rem 2rem; border-radius:999px; font-family:'Noto Serif JP',serif; font-weight:700; font-size:1.05rem; letter-spacing:0.06em; }
.om-cmp2-tab--bad { background:#EADCBE; color:#6b6250; box-shadow:0 8px 18px rgba(150,128,72,0.18); }
.om-cmp2-tab--good { background:linear-gradient(135deg,#E0789A,#F0A9BD); color:#fff; box-shadow:0 10px 22px rgba(224,120,154,0.4); }
.om-cmp2-sub { text-align:center; font-family:'Noto Serif JP',serif; font-size:1.06rem; font-weight:600; color:#3a342e; margin:0 0 1.3rem; }
.om-cmp2-list { list-style:none; margin:0; padding:0; }
.om-cmp2-list li { display:flex; align-items:center; gap:0.9rem; padding:0.8rem 0; border-bottom:1px dashed #E2D8C4; font-family:'Noto Serif JP',serif; font-size:0.97rem; color:#3a342e; line-height:1.55; }
.om-cmp2--good .om-cmp2-list li { border-bottom-color:#F3D7DF; }
.om-cmp2-list li:last-child { border-bottom:none; }
.om-cmp2-ico { width:44px; height:44px; border-radius:50%; flex-shrink:0; display:flex; align-items:center; justify-content:center; }
.om-cmp2--bad .om-cmp2-ico { background:#EFE5CE; color:#A8966E; }
.om-cmp2--good .om-cmp2-ico { background:linear-gradient(135deg,#E0789A,#F0A9BD); color:#fff; box-shadow:0 6px 14px rgba(224,120,154,0.32); }
.om-cmp2-ico svg { width:22px; height:22px; }
.om-cmp2-mid { display:flex; flex-direction:column; align-items:center; gap:0.7rem; padding:0 0.3rem; }
.om-cmp2-arrow { color:#E0789A; }
.om-cmp2-arrow svg { width:56px; height:24px; }
.om-cmp2-note { font-family:'M PLUS Rounded 1c',sans-serif; font-size:0.78rem; color:#8a8175; line-height:1.6; text-align:center; max-width:120px; }
.om-cmp2-band { max-width:1000px; margin:clamp(2.4rem,5vw,3.4rem) auto 0; padding:clamp(1.8rem,4vw,2.6rem); background:#FBF6EA; border-radius:14px; text-align:center; }
.om-cmp2-band p { font-family:'Noto Serif JP',serif; font-size:clamp(0.98rem,2.1vw,1.1rem); line-height:2; color:#3a342e; margin:0; }
@media(max-width:820px){
  .om-cmp2 { grid-template-columns:1fr; gap:1.2rem; }
  .om-cmp2-mid { flex-direction:row; gap:0.8rem; }
  .om-cmp2-arrow svg { transform:rotate(90deg); }
  .om-cmp2-note { max-width:none; }
}

/* ============ なぜ1ミリ：枠なし比較＋中央コネクタ（mockup版） ============ */
.om-cmp3-ribbon { display:block; font-family:'Noto Serif JP',serif; font-size:clamp(0.86rem,1.9vw,1.02rem); font-weight:500; color:#D86E8E; letter-spacing:0.03em; margin:0 0 0.7rem; }
.om-cmp3-ribbon::before { content:"＼ "; color:#E9A6BC; }
.om-cmp3-ribbon::after { content:" ／"; color:#E9A6BC; }
.om-cmp3 { display:grid; grid-template-columns:1fr auto 1fr; gap:clamp(0.8rem,2.5vw,2.4rem); align-items:stretch; max-width:1080px; margin:clamp(2.4rem,4.5vw,3.4rem) auto 0; }
.om-cmp3-col { display:flex; flex-direction:column; }
.om-cmp3-tab { align-self:center; width:fit-content; margin:0 0 1.5rem; padding:0.55rem 2rem; border-radius:999px; font-family:'Noto Serif JP',serif; font-weight:600; font-size:1.02rem; letter-spacing:0.05em; }
.om-cmp3-tab--bad { background:#EFE4CC; color:#7a6f57; }
.om-cmp3-tab--good { background:#FBDCE6; color:#D86E8E; }
.om-cmp3-item { display:grid; grid-template-columns:62px 1fr; gap:0 1.1rem; align-items:center; padding:0 0 0.9rem; border-bottom:1px solid #EFE7D6; }
.om-cmp3-col--good .om-cmp3-item { border-bottom-color:#F6DEE6; }
.om-cmp3-ico { width:62px; height:62px; border-radius:50%; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.om-cmp3-col--bad .om-cmp3-ico { background:#F2EAD7; color:#B7A57E; }
.om-cmp3-col--good .om-cmp3-ico { background:#FBE2EA; color:#E785A2; }
.om-cmp3-ico svg { width:28px; height:28px; }
.om-cmp3-t { display:block; font-family:'Noto Serif JP',serif; font-size:clamp(1.02rem,2.1vw,1.2rem); font-weight:600; line-height:1.4; }
.om-cmp3-col--bad .om-cmp3-t { color:#3a342e; }
.om-cmp3-col--good .om-cmp3-t { color:#D86E8E; }
.om-cmp3-d { display:block; font-family:'M PLUS Rounded 1c',sans-serif; font-size:0.82rem; line-height:1.7; color:#8a8070; margin-top:0.3rem; }
.om-cmp3-chev { display:flex; align-items:center; justify-content:center; width:62px; height:30px; color:#E0D2AE; }
.om-cmp3-col--good .om-cmp3-chev { color:#EFB6C6; }
.om-cmp3-chev svg { width:18px; height:18px; }
/* 中央コネクタ */
.om-cmp3-mid { display:flex; flex-direction:column; align-items:center; width:clamp(96px,12vw,140px); }
.om-cmp3-bubble { position:relative; background:#fff; border:1.5px solid #F3C9D5; color:#D86E8E; font-family:'M PLUS Rounded 1c',sans-serif; font-size:0.78rem; line-height:1.5; text-align:center; border-radius:14px; padding:0.5rem 0.9rem; box-shadow:0 6px 16px rgba(216,110,142,0.14); margin-bottom:0.4rem; }
.om-cmp3-bubble::after { content:""; position:absolute; left:50%; bottom:-7px; transform:translateX(-50%); border:7px solid transparent; border-top-color:#fff; filter:drop-shadow(0 1px 0 #F3C9D5); }
.om-cmp3-track { position:relative; flex:1; width:2px; background:repeating-linear-gradient(180deg,#F0CBD7 0 5px, transparent 5px 12px); }
.om-cmp3-arrowbtn { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); z-index:2; width:52px; height:52px; border-radius:50%; background:#fff; border:1.5px solid #EFB6C6; color:#E0789A; display:flex; align-items:center; justify-content:center; box-shadow:0 8px 20px rgba(224,120,154,0.22); }
.om-cmp3-arrowbtn svg { width:22px; height:22px; }
.om-cmp3-dot { position:absolute; left:50%; transform:translateX(-50%); width:13px; height:13px; border-radius:50%; background:#FBE0E8; border:1.5px solid #EFB6C6; }
.om-cmp3-dot.d1 { top:4%; } .om-cmp3-dot.d2 { top:72%; } .om-cmp3-dot.d3 { top:90%; }
/* 締めのタグライン */
.om-cmp3-foot { display:flex; align-items:center; justify-content:center; gap:0.7rem; flex-wrap:wrap; margin-top:clamp(2.4rem,4vw,3.4rem); font-family:'Noto Serif JP',serif; font-size:clamp(1rem,2.2vw,1.2rem); color:#3a342e; letter-spacing:0.02em; }
.om-cmp3-foot-ico { color:#9CC4A2; display:inline-flex; }
.om-cmp3-foot-ico svg { width:26px; height:26px; }
.om-cmp3-foot-heart { color:#E889A2; font-size:1.1rem; }
@media (max-width:860px){
  .om-cmp3 { grid-template-columns:1fr; gap:1.4rem; }
  .om-cmp3-mid { width:100%; flex-direction:row; justify-content:center; gap:0.8rem; padding:0.4rem 0; }
  .om-cmp3-bubble { margin-bottom:0; }
  .om-cmp3-bubble::after { display:none; }
  .om-cmp3-track { width:48%; height:2px; flex:none; background:repeating-linear-gradient(90deg,#F0CBD7 0 5px, transparent 5px 12px); }
  .om-cmp3-arrowbtn { width:46px; height:46px; }
  .om-cmp3-arrowbtn svg { transform:rotate(90deg); }
  .om-cmp3-dot { display:none; }
}

/* ============================================================
   04 子どもたちの成長アルバム（中央タイトル＋散りばめ写真） kalbum
   ============================================================ */
.kalbum { position:relative; background:#fff; padding:clamp(2.6rem,5vw,4.2rem) 0 clamp(3rem,6vw,5rem); overflow:hidden; }
.kalbum-wrap { position:relative; z-index:1; max-width:1360px; margin:0 auto; padding:0 clamp(1rem,3vw,2.2rem); }

/* --- 見出し・リード（画像レイアウトの外）--- */
.kalbum-head { flex-wrap:nowrap; margin-bottom:1rem; }
.kalbum-head .pd-h2 { white-space:nowrap; }
.kalbum-lead { font-family:'Zen Maru Gothic',sans-serif; font-weight:500; font-size:.95rem; line-height:2; color:#6f6657; text-align:center; max-width:700px; margin:0 auto; }

/* --- 写真散らしレイアウト（横1列・フルブリード・コンパクト）--- */
.kalbum-photos { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:flex-start; gap:clamp(.8rem,1.6vw,1.4rem); width:97vw; margin-left:calc(50% - 48.5vw); margin-top:clamp(1.8rem,3.5vw,2.8rem); }
.kalbum-photo, .kalbum-msg { position:relative; }
.kalbum-photo { width:clamp(196px,18vw,272px); }

/* --- 写真共通 --- */
.kalbum-photo { position:relative; background:#fff; padding:.7rem .7rem 0; border-radius:5px; box-shadow:0 16px 32px rgba(120,108,80,.18); }
.kalbum-img { aspect-ratio:4/5; border-radius:3px; overflow:hidden; background:#F4EEE0; }
.kalbum-img img { width:100%; height:100%; object-fit:cover; display:block; }
.kalbum-ph { width:100%; height:100%; display:flex; align-items:center; justify-content:center; color:#BBAE90; background:repeating-linear-gradient(45deg,#F4EEE0,#F4EEE0 11px,#EDE6D5 11px,#EDE6D5 22px); }
.kalbum-ph svg { width:36px; height:36px; opacity:.55; }
.kalbum-photo figcaption { position:relative; padding:1.35rem .55rem .8rem; text-align:left; }
.kalbum-num { position:absolute; top:-22px; left:8px; width:40px; height:40px; border-radius:50%; background:#EE8FA8; color:#fff; font-family:'Cormorant Garamond',serif; font-weight:600; font-size:1.08rem; display:flex; align-items:center; justify-content:center; box-shadow:0 5px 12px rgba(0,0,0,.14); z-index:2; }
.kalbum-cap-t { display:block; font-family:'Zen Maru Gothic',sans-serif; font-weight:700; font-size:1.02rem; color:#EE8FA8; margin:0 0 .45rem; }
.kalbum-cap-d { display:block; font-family:'Zen Maru Gothic',sans-serif; font-weight:500; font-size:.83rem; line-height:1.75; color:#7a7163; }
/* キャプション文字まわりに星を散りばめる */
.kalbum-cap-t { position:relative; }
.kalbum-cap-t::before { content:"✦"; margin-right:.34em; font-size:.72em; color:#F4C24C; vertical-align:1px; }
.kalbum-cap-t::after  { content:"✦"; margin-left:.34em; font-size:.72em; color:#EE9FB6; vertical-align:1px; }
.kalbum-photo figcaption::before { content:"✧"; position:absolute; right:12px; top:1px; color:#8FCBB8; font-size:.72rem; opacity:.9; }
.kalbum-photo figcaption::after  { content:"⋆"; position:absolute; right:30px; bottom:7px; color:#F2C14E; font-size:.9rem; opacity:.85; }
/* 番号・タイトルの色分け */
.kalbum-photo--01 .kalbum-num{ background:#EE8FA8;} .kalbum-photo--01 .kalbum-cap-t{ color:#E87B98;}
.kalbum-photo--02 .kalbum-num{ background:#6FBFA0;} .kalbum-photo--02 .kalbum-cap-t{ color:#E59A4E;}
.kalbum-photo--03 .kalbum-num{ background:#A98FD0;} .kalbum-photo--03 .kalbum-cap-t{ color:#E87B98;}
.kalbum-photo--04 .kalbum-num{ background:#F08C72;} .kalbum-photo--04 .kalbum-cap-t{ color:#E87B98;}
.kalbum-photo--05 .kalbum-num{ background:#6EAEDD;} .kalbum-photo--05 .kalbum-cap-t{ color:#5C9FD6;}
.kalbum-photo--06 .kalbum-num{ background:#E9A94C;} .kalbum-photo--06 .kalbum-cap-t{ color:#E59A4E;}

/* マスキングテープ */
.kalbum-photo::before { content:""; position:absolute; top:-11px; left:50%; transform:translateX(-50%) rotate(-4deg); width:74px; height:22px; opacity:.8; box-shadow:0 2px 4px rgba(0,0,0,.05); z-index:3; }
.kalbum-photo[data-tape="pink"]::before { background:rgba(244,164,190,.6); }
.kalbum-photo[data-tape="green"]::before { background:rgba(150,200,150,.55); }
.kalbum-photo[data-tape="purple"]::before { background:rgba(185,160,220,.55); }
.kalbum-photo[data-tape="blue"]::before { background:rgba(150,200,235,.6); background-image:radial-gradient(circle,#fff 1.4px,transparent 1.8px); background-size:9px 9px; }
.kalbum-photo[data-tape="gold"]::before { background:rgba(240,210,120,.6); }

/* 中央のメッセージ（写真の間に可愛らしく） */
.kalbum-msg { width:clamp(200px,18vw,268px); align-self:center; text-align:center; padding:clamp(.8rem,1.6vw,1.3rem) .6rem; }
.kalbum-msg p { font-family:'Zen Maru Gothic',sans-serif; font-weight:500; font-size:clamp(1rem,1.35vw,1.24rem); line-height:1.95; color:#6f6657; margin:0; }
/* 見出し直下のリードとして配置 */
.kalbum-msg--lead { width:auto; max-width:640px; margin:clamp(1rem,2vw,1.4rem) auto 0; padding:.4rem 1.4rem; }
.kalbum-msg--lead p { font-size:clamp(1.02rem,1.4vw,1.3rem); line-height:2; }
.kalbum-msg em { font-style:normal; font-weight:700; color:#EE8FA8; background:linear-gradient(180deg,transparent 60%,#FBE3EC 60%); padding:0 .1em; }
.kalbum-msg-deco { position:absolute; font-size:1.5rem; opacity:.85; }
.kalbum-msg-deco--1 { top:0; left:8%; color:#F2B6C9; transform:rotate(-12deg); }
.kalbum-msg-deco--2 { bottom:6px; right:10%; color:#EE8FA8; font-size:1.3rem; transform:rotate(10deg); }

/* 無造作な回転（スクラップブック風のジッター） */
.kalbum-photo { transition:transform .3s ease; }
.kalbum-photo--01 { transform:rotate(-3.5deg); }
.kalbum-msg       { transform:rotate(-1.5deg); }
.kalbum-photo--02 { transform:rotate(2.8deg); }
.kalbum-photo--03 { transform:rotate(-2.4deg); }
.kalbum-photo--04 { transform:rotate(3deg); }
.kalbum-photo--05 { transform:rotate(-2.8deg); }
.kalbum-photo:hover { transform:scale(1.04) rotate(0deg); z-index:9; }

.kalbum-foot { text-align:center; font-family:'Zen Maru Gothic',sans-serif; font-weight:500; font-size:.95rem; line-height:1.95; color:#8a9b6f; margin:clamp(2.4rem,4vw,3.4rem) 0 0; }

/* レスポンシブ */
@media (max-width:900px){
  .kalbum-photos { width:auto; max-width:min(720px,94vw); margin-left:auto; margin-right:auto; gap:1.2rem; }
  .kalbum-photo { width:clamp(180px,30vw,230px); }
  .kalbum-msg { width:clamp(220px,42vw,300px); }
}
@media (max-width:620px){
  .kalbum-head .pd-h2 { white-space:normal; }
}
@media (max-width:520px){
  .kalbum-photo { width:46%; }
  .kalbum-msg { width:90%; }
  .kalbum-photo--01,.kalbum-photo--02,.kalbum-photo--03,.kalbum-photo--04,.kalbum-photo--05 { transform:rotate(0); }
}

/* ===== 05 ビフォーアフター比較 (pv-ba) ===== */
.pv-ba { max-width:1120px; margin:clamp(1.8rem,3.5vw,2.8rem) auto clamp(1.6rem,3vw,2.4rem); }
.pv-ba-banner { text-align:center; font-family:'Noto Serif JP',serif; font-size:clamp(1.05rem,2.3vw,1.4rem); font-weight:600; color:#6f6357; margin:0 0 clamp(1.4rem,3vw,2rem); }
.pv-ba-banner em { font-style:normal; color:#E0913F; }
.pv-ba-grid { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:clamp(.8rem,2vw,1.4rem); }
.pv-ba-card { position:relative; flex:0 1 360px; background:#fff; border:1px solid #F0E6E0; border-radius:18px; box-shadow:0 16px 36px rgba(150,120,120,.12); padding:2rem 1.5rem 1.3rem; text-align:center; }
.pv-ba-badge { position:absolute; top:-14px; left:50%; transform:translateX(-50%); padding:.3rem 1.3rem; border-radius:999px; font-family:'Noto Serif JP',serif; font-size:.84rem; font-weight:600; color:#fff; white-space:nowrap; }
.pv-ba-badge--before { background:#EE9DB4; }
.pv-ba-badge--after { background:#8FBE86; }
.pv-ba-label { font-family:'Noto Serif JP',serif; font-size:.82rem; color:#6f6357; margin:.5rem 0 .1rem; }
.pv-ba-num { font-family:'Cormorant Garamond',serif; font-weight:700; font-size:3.4rem; line-height:1; margin:0 0 .5rem; }
.pv-ba-num small { font-size:1.3rem; margin-left:.05em; }
.pv-ba-num--before { color:#E87B98; }
.pv-ba-num--after { color:#5FA86F; }
.pv-ba-teeth { display:flex; justify-content:center; gap:.2rem; margin:0 0 1rem; }
.pv-ba-tooth { width:24px; color:#E7E0D6; }
.pv-ba-tooth svg { width:100%; display:block; }
.pv-ba-tooth.is-pink { color:#EE9DB4; }
.pv-ba-tooth.is-green { color:#8FCBA0; }
.pv-ba-photo { margin:0; border-radius:10px; overflow:hidden; aspect-ratio:4/3; box-shadow:0 8px 18px rgba(120,100,90,.14); }
.pv-ba-photo img { width:100%; height:100%; object-fit:cover; display:block; }
.pv-ba-photo--chart { aspect-ratio:4/3; background:#fff; box-shadow:none; border:1px solid #F2ECE4; }
.pv-ba-photo--chart img { object-fit:contain; padding:.4rem; }
.pv-ba-arrow { flex:0 0 auto; display:flex; flex-direction:column; align-items:center; gap:.5rem; color:#E89BB0; }
.pv-ba-arrow-ic { font-size:2rem; line-height:1; background:linear-gradient(90deg,#F4C0CF,#EE9DB4); -webkit-background-clip:text; background-clip:text; color:transparent; font-weight:700; }
.pv-ba-arrow-tx { font-family:'Noto Serif JP',serif; font-size:.78rem; font-weight:600; color:#7a6f63; line-height:1.5; }
.pv-ba-improve { flex:0 0 auto; width:clamp(112px,14vw,142px); aspect-ratio:1/1; border-radius:50%; background:conic-gradient(from 200deg,#FCE0EA,#FBEBD2,#EAF4DC,#DEEBF8,#ECE0F4,#FCE0EA); display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; box-shadow:0 10px 24px rgba(150,140,150,.20); }
.pv-ba-improve small { font-family:'Noto Serif JP',serif; font-size:.74rem; color:#555; }
.pv-ba-improve b { font-family:'Noto Serif JP',serif; font-size:1.35rem; font-weight:700; color:#222; line-height:1.2; }
.pv-ba-improve b i { font-style:normal; font-size:.7em; }
.pv-ba-caption { text-align:center; font-family:'Noto Serif JP',serif; font-size:clamp(.92rem,1.9vw,1.05rem); line-height:1.9; color:#5a5246; margin:clamp(1.4rem,3vw,2rem) 0 0; }
.pv-ba-caption mark { background:linear-gradient(180deg,transparent 58%,#FBDDE6 58%); color:inherit; padding:0 .15em; }
@media (max-width:680px){
  .pv-ba-arrow { flex-direction:row; transform:rotate(90deg); margin:.3rem 0; }
  .pv-ba-arrow-tx { display:none; }
  .pv-ba-improve { order:5; margin-top:.6rem; }
}

/* 05 残ったグラフカードを中央寄せ + 健康手帳リンクボタン */
.pv-rec3--solo { display:flex; justify-content:center; }
.pv-rec3--solo .pv-rec-card { flex:0 1 460px; }
.pv-note-linkwrap { text-align:center; margin-top:clamp(1.6rem,3vw,2.4rem); }
.pv-note-link { display:inline-flex; align-items:center; gap:0.9rem; padding:1rem 2.4rem; font-family:'Noto Serif JP',serif; color:#fff; text-decoration:none; background:linear-gradient(135deg,#C9A24C 0%,#E6C66A 50%,#C9A24C 100%); border-radius:999px; box-shadow:0 12px 28px rgba(180,150,70,0.32); transition:transform .25s, box-shadow .25s, filter .25s; }
.pv-note-link:hover { transform:translateY(-3px); box-shadow:0 18px 38px rgba(180,150,70,0.44); filter:brightness(1.04); }
.pv-note-link-text { display:flex; flex-direction:column; align-items:center; line-height:1.4; font-size:1.1rem; font-weight:600; }
.pv-note-link-text small { font-size:0.72rem; font-weight:500; opacity:0.92; margin-bottom:0.2rem; }
.pv-note-link-arr { font-family:'Cormorant Garamond',serif; font-size:1.35rem; line-height:1; transition:transform .25s; }
.pv-note-link:hover .pv-note-link-arr { transform:translateX(4px); }

/* 05 ビフォーアフター下段：グラフ＋改善マーク横並び */
.pv-ba-bottom { display:flex; align-items:center; justify-content:center; gap:clamp(1.4rem,3.5vw,2.8rem); margin-top:clamp(1.6rem,3vw,2.4rem); flex-wrap:wrap; }
.pv-ba-graph { flex:0 1 470px; background:#fff; border:1px solid #EAE4D8; border-radius:16px; padding:1.4rem 1.3rem 1rem; box-shadow:0 12px 28px rgba(150,140,110,.10); }
.pv-ba-graph-h { font-family:'Noto Serif JP',serif; font-size:1rem; font-weight:600; color:#4a5446; text-align:center; margin:0 0 .5rem; }
.pv-ba-graph .pv-recg-svg { width:100%; height:auto; display:block; }
.pv-ba-graph-x { font-size:.8rem; line-height:1.7; color:#7a7163; text-align:center; margin:.4rem 0 0; }
/* グラフのアニメーション（スクロールで表示された時に描画） */
.pv-recg-line { stroke-dasharray:300; stroke-dashoffset:300; }
.pv-ba-graph.visible .pv-recg-line { animation:recgDraw 1.8s cubic-bezier(.5,.05,.3,1) .25s forwards; }
@keyframes recgDraw { to { stroke-dashoffset:0; } }
.pv-recg-area { opacity:0; }
.pv-ba-graph.visible .pv-recg-area { animation:recgFade 1s ease 1.6s forwards; }
@keyframes recgFade { to { opacity:1; } }
.pv-recg-dot { opacity:0; transform:scale(0); transform-box:fill-box; transform-origin:center; }
.pv-ba-graph.visible .pv-recg-dot { animation:recgPop .5s cubic-bezier(.34,1.56,.64,1) var(--d,1s) forwards; }
@keyframes recgPop { to { opacity:1; transform:scale(1); } }
@media (prefers-reduced-motion:reduce){
  .pv-recg-line,.pv-recg-area,.pv-recg-dot { animation:none; stroke-dashoffset:0; opacity:1; transform:none; }
}

/* ===== WHY ONE BOOK（中央に手帳＋周囲に理由）===== */
.nbk-why2-head { text-align:center; margin-bottom:clamp(1.8rem,4vw,2.8rem); }
.nbk-why2-h { font-family:'Noto Serif JP',serif; font-weight:600; font-size:clamp(1.6rem,3.6vw,2.5rem); color:#3f4a40; line-height:1.5; margin:.4rem 0 1rem; }
.nbk-why2-h em { font-style:normal; background:linear-gradient(180deg,transparent 58%,#FBE6B8 58%); padding:0 .15em; }
.nbk-why2-sub { font-family:'Noto Serif JP',serif; font-size:.95rem; color:#7a8a80; margin:0; }
.nbk-why2-stage { display:grid; grid-template-columns:1fr auto 1fr; gap:clamp(1.2rem,3vw,2.6rem); align-items:center; max-width:1120px; margin:0 auto; }
.nbk-why2-col { display:flex; flex-direction:column; gap:clamp(1rem,2vw,1.6rem); }
.nbk-why2-book { margin:0; }
.nbk-why2-book img { width:100%; max-width:360px; display:block; margin:0 auto; filter:drop-shadow(0 24px 42px rgba(120,130,110,.3)); }
.nbk-why2-card { position:relative; background:#fff; border:1px solid #EAE6DA; border-radius:16px; padding:1.4rem 1.3rem 1.3rem; box-shadow:0 12px 28px rgba(120,130,110,.10); }
.nbk-why2-ic { width:46px; height:46px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:#EAF4E6; color:#6FA873; margin-bottom:.55rem; }
.nbk-why2-ic svg { width:24px; height:24px; }
.nbk-why2-card[data-c="pink"] .nbk-why2-ic { background:#FCE7EE; color:#E58AA6; }
.nbk-why2-card[data-c="amber"] .nbk-why2-ic { background:#FBEEDD; color:#E0A45E; }
.nbk-why2-num { position:absolute; top:1.1rem; right:1.3rem; font-family:'Cormorant Garamond',serif; font-size:1.45rem; font-weight:600; color:#D8C9A8; }
.nbk-why2-card h3 { font-family:'Noto Serif JP',serif; font-size:1.06rem; font-weight:600; color:#3f4a40; margin:0 0 .5rem; }
.nbk-why2-card p { font-size:.82rem; line-height:1.8; color:#6f6b60; margin:0; }
.nbk-why2-foot { text-align:center; font-family:'Noto Serif JP',serif; font-size:clamp(.98rem,2vw,1.18rem); color:#6f8a6f; margin:clamp(2rem,4vw,3rem) 0 0; }
@media(max-width:860px){ .nbk-why2-stage { grid-template-columns:1fr; } .nbk-why2-book { order:-1; } .nbk-why2-book img { max-width:260px; } }

/* ===== 私たちが全力でサポートします（ツリー型 sup-tree）===== */
.sup-tree { background:linear-gradient(180deg,#FBFCF6,#F2F6E9); }
.sup-tree-inner { display:grid; grid-template-columns:1fr 1fr; gap:clamp(1.6rem,4vw,3.4rem); align-items:center; max-width:1120px; margin:0 auto; }
.sup-eyebrow { display:flex; align-items:center; gap:.7rem; margin:0 0 .8rem; }
.sup-num { font-family:'Cormorant Garamond',serif; font-size:2.4rem; font-weight:600; color:#E0913F; line-height:1; }
.sup-eyebrow-en { font-family:'Cormorant Garamond',serif; letter-spacing:.2em; color:#8a9b6f; font-weight:600; }
.sup-tree-stage { position:relative; }
.sup-tree-img { width:100%; display:block; }
.sup-leaf { position:absolute; width:clamp(66px,8.6vw,100px); aspect-ratio:1/1; border-radius:50%; background:rgba(190,222,140,.5); display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; color:#52663a; font-family:'Noto Serif JP',serif; font-size:.62rem; font-weight:600; line-height:1.3; padding:.3rem; }
.sup-leaf-ic { width:22px; height:22px; color:#6a9a4e; margin-bottom:.15rem; }
.sup-leaf-ic svg { width:100%; height:100%; }
.sup-leaf--brush { left:30%; top:13%; }
.sup-leaf--floss { left:53%; top:11%; }
.sup-leaf--check { left:71%; top:27%; }
.sup-leaf--food  { left:11%; top:33%; }
.sup-leaf--self  { left:43%; top:45%; }
.sup-tree-caption { position:absolute; left:27%; top:30%; width:44%; text-align:center; font-family:'Noto Serif JP',serif; font-size:clamp(.74rem,1.35vw,.92rem); font-weight:600; color:#4a5a3a; line-height:1.6; }
.sup-tree-foot { position:absolute; left:0; right:0; bottom:5%; text-align:center; font-family:'Noto Serif JP',serif; font-size:.8rem; color:#9a8c6a; }
.sup-role { display:flex; gap:.9rem; align-items:flex-start; margin-top:1.2rem; background:#fff; border:1px solid #E7E0D0; border-radius:16px; padding:1.1rem 1.3rem; box-shadow:0 10px 24px rgba(120,130,100,.1); }
.sup-role-ic { width:34px; height:34px; flex:none; color:#7FB389; }
.sup-role-ic svg { width:100%; height:100%; }
.sup-role-tx b { display:block; font-family:'Noto Serif JP',serif; font-weight:600; color:#4a5a3a; margin-bottom:.3rem; }
.sup-role-tx p { font-size:.8rem; line-height:1.8; color:#6f6b60; margin:0; }
.sup-h { font-family:'Noto Serif JP',serif; font-weight:600; font-size:clamp(1.8rem,4vw,2.7rem); line-height:1.5; color:#3a4a32; margin:0 0 1.3rem; }
.sup-h em { font-style:normal; color:#E0913F; }
.sup-body { font-family:'Noto Serif JP',serif; font-size:.95rem; line-height:2; color:#5a5246; margin:0 0 1.3rem; }
.sup-highlight { font-family:'Noto Serif JP',serif; font-size:clamp(1.1rem,2.2vw,1.4rem); font-weight:600; color:#E0913F; line-height:1.7; margin:0 0 1.5rem; }
.sup-photo { margin:0; border-radius:16px; overflow:hidden; box-shadow:0 18px 40px rgba(120,110,80,.18); }
.sup-photo img { width:100%; display:block; }
@media(max-width:880px){ .sup-tree-inner { grid-template-columns:1fr; } }

/* 1ミリチャレンジでは（吹き出し風ラベル：om-sec-head 上） */
.om-bubble {
  display: block;
  width: fit-content;
  position: relative;
  margin: 0 0 0.9rem;
  padding: 0.42rem 1.15rem;
  font-family: 'Noto Serif JP', serif;
  font-size: 0.88rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  color: #C9748F;
  background: linear-gradient(135deg,#FCEEF2,#FBF4E6);
  border: 1px solid #F2D8E0;
  border-radius: 999px;
  box-shadow: 0 6px 15px rgba(200,150,170,0.15);
}
.om-bubble::after {
  content: '';
  position: absolute;
  left: 26px; bottom: -6px;
  width: 12px; height: 12px;
  background: #FCEEF2;
  border-right: 1px solid #F2D8E0;
  border-bottom: 1px solid #F2D8E0;
  transform: rotate(45deg);
}

/* 「完璧より、まず1ミリ。」リード文を中央寄せ */
.om-why .om-why-head .om-body { text-align: center; margin-left: auto; margin-right: auto; }

/* 03 セクション ブランド風導入見出し（1mm CHALLENGE） */
.om-care-head { text-align:center; max-width:780px; margin:0 auto clamp(2.2rem,4.5vw,3.4rem); }
.om-care-head .om-secnum { margin:0 0 1rem; }
.om-brandlabel { display:flex; align-items:center; justify-content:center; gap:clamp(.8rem,2vw,1.3rem); margin:0 0 1.5rem; }
.om-brandlabel-line { height:2px; flex:0 0 clamp(38px,9vw,88px); border-radius:2px; }
.om-brandlabel-line--l { background:linear-gradient(90deg, rgba(240,168,194,0), #F0A8C2, #EFC97D, #97CBA4, #9CC0E6); }
.om-brandlabel-line--r { background:linear-gradient(90deg, #9CC0E6, #97CBA4, #EFC97D, #F0A8C2, rgba(240,168,194,0)); }
.om-brandlabel-tx { font-family:'Cormorant Garamond',serif; font-size:clamp(.95rem,2.4vw,1.15rem); font-weight:600; letter-spacing:.3em; color:#A98C5A; white-space:nowrap; text-indent:.3em; }
.om-care-title { font-family:'Noto Serif JP',serif; font-weight:600; font-size:clamp(1.9rem,4.8vw,3rem); line-height:1.28; letter-spacing:.06em; color:#2c3a30; margin:0 0 1.5rem; }
.om-care-desc { font-family:'Noto Serif JP',serif; font-size:clamp(.95rem,2.3vw,1.05rem); line-height:2; color:#5f6960; margin:0 auto; }
.om-care-desc--sub { margin-top:1rem; color:#7c7468; font-size:clamp(.9rem,2.2vw,1rem); }
@media(max-width:600px){ .om-brandlabel-line { flex-basis:30px; } }

/* ============================================================
   1mm challenge 締めくくり：あと1ミリを一緒に（om-finale）
   中央揃え・写真主役・余白たっぷり
   ============================================================ */
.om-finale { position:relative; text-align:center; padding:clamp(3.5rem,7vw,6rem) 1.5rem clamp(4rem,8vw,7rem); background:#fff; overflow:hidden; }
.om-finale-inner { max-width:860px; margin:0 auto; position:relative; z-index:2; }
.om-finale .om-secnum { margin:0 0 1.4rem; }
.om-finale-h { font-family:'Noto Serif JP',serif; font-weight:600; font-size:clamp(1.7rem,4.7vw,2.75rem); line-height:1.55; letter-spacing:.06em; color:#2c3a30; margin:0 0 clamp(2.2rem,4.5vw,3.2rem); }
.om-finale-mark { white-space:nowrap; background:linear-gradient(transparent 56%, #F8C9D8 56%, #FBD3E4 92%, transparent 92%); padding:0 .14em; border-radius:3px; }
.om-finale-photo { position:relative; width:min(100%,540px); margin:0 auto clamp(2.2rem,4.5vw,3.2rem); }
.om-finale-photo img { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:2px; box-shadow:0 22px 46px rgba(120,118,104,.18); }
.om-finale-script { position:absolute; left:.4rem; top:-1.7rem; font-family:'Cormorant Garamond',serif; font-style:italic; font-size:clamp(1.05rem,2.5vw,1.35rem); color:#D89A86; z-index:3; }
.om-finale-msg { font-family:'Noto Serif JP',serif; font-size:clamp(.95rem,2.3vw,1.08rem); line-height:2.1; color:#5f5a50; margin:0; }
/* 控えめなパステル装飾 */
.om-finale-deco { position:absolute; z-index:1; pointer-events:none; }
.om-finale-deco--s1 { top:13%; left:12%; color:#EFB6CB; font-size:15px; opacity:.7; }
.om-finale-deco--s2 { top:19%; right:13%; color:#C6A6D8; font-size:12px; opacity:.65; }
.om-finale-deco--d1 { width:7px; height:7px; border-radius:50%; background:#A9D2A0; top:28%; right:19%; opacity:.5; }
.om-finale-deco--d2 { width:6px; height:6px; border-radius:50%; background:#9CC0E6; bottom:16%; left:17%; opacity:.5; }
@media(max-width:600px){ .om-finale-deco--d1,.om-finale-deco--d2 { display:none; } .om-finale-script { font-size:1rem; top:-1.4rem; } }

/* om-finale 写真：全幅バナー風に大きく（角は四角） */
.om-finale-photo { width:100vw; max-width:none; position:relative; left:50%; right:50%; margin-left:-50vw; margin-right:-50vw; margin-top:0; margin-bottom:clamp(2.4rem,5vw,3.6rem); }
.om-finale-photo img { width:100%; height:clamp(240px,32vw,440px); aspect-ratio:auto; object-fit:cover; object-position:center 32%; border-radius:0; box-shadow:0 16px 38px rgba(120,118,104,.16); }
.om-finale-script { position:static; left:auto; top:auto; display:block; text-align:center; margin:0 0 1rem; }

/* om-finale 写真削除版：We are with you. を中央の独立行に */
.om-finale-script--solo { margin:0 0 clamp(2rem,4vw,2.8rem); font-size:clamp(1.3rem,3vw,1.7rem); }

/* ============================================================
   1ミリチャレンジ 改善ロードマップ（mmr / 2026-06-18）
   白基調・余白重視。パステルはSTEP番号・ノード・ライン・ドットのみ
   ============================================================ */
.om-care { background:#fff; }
.mmr { position:relative; max-width:900px; margin:clamp(2.8rem,5.5vw,4.5rem) auto 0; }
.mmr-road { position:absolute; left:50%; top:3%; bottom:3%; border-left:2px dashed #E6D8C0; transform:translateX(-50%); }
.mmr-step { position:relative; display:grid; grid-template-columns:1fr 1fr; align-items:center; margin:0 0 clamp(2.6rem,5.5vw,4.2rem); }
.mmr-step:last-child { margin-bottom:0; }
.mmr-inner { display:block; max-width:300px; }
.mmr-step--l .mmr-inner { grid-column:1; margin-left:auto; padding-right:clamp(2.4rem,4.5vw,3.8rem); text-align:right; }
.mmr-step--r .mmr-inner { grid-column:2; padding-left:clamp(2.4rem,4.5vw,3.8rem); text-align:left; }
.mmr-photo { margin:0 0 1rem; width:100%; border-radius:18px; overflow:hidden; box-shadow:0 16px 34px rgba(120,110,90,.15); }
.mmr-step--l .mmr-photo { margin-left:auto; }
.mmr-photo img { width:100%; aspect-ratio:4/3; object-fit:cover; display:block; }
.mmr-no { font-family:'Cormorant Garamond',serif; font-size:.82rem; letter-spacing:.2em; font-weight:600; color:var(--c); display:inline-block; }
.mmr-no b { font-size:1.45rem; margin-left:.35rem; letter-spacing:.02em; }
.mmr-h { font-family:'Noto Serif JP',serif; font-weight:600; font-size:clamp(1.15rem,2.4vw,1.4rem); color:#2a2a2a; margin:.15rem 0 .55rem; letter-spacing:.04em; }
.mmr-x { font-family:'Hiragino Sans','Hiragino Kaku Gothic ProN','Noto Sans JP',sans-serif; font-size:.86rem; line-height:1.9; color:#5f5a50; margin:0; }
.mmr-step--l .mmr-x, .mmr-step--l .mmr-h, .mmr-step--l .mmr-no { } /* right-aligned via inner */
.mmr-node { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); z-index:3; width:54px; height:54px; border-radius:50%; background:#fff; border:1.5px solid var(--c); color:var(--c); display:flex; align-items:center; justify-content:center; font-family:'Cormorant Garamond',serif; font-weight:600; font-size:1.2rem; box-shadow:0 7px 18px rgba(150,140,120,.16); }
.mmr-node::before { content:''; position:absolute; inset:-7px; border-radius:50%; background:var(--c); opacity:.1; }
/* ステップ間の小さなゴールドドット */
.mmr-step::after { content:''; position:absolute; left:50%; top:-1.4rem; transform:translateX(-50%); width:5px; height:5px; border-radius:50%; background:#C9A86A; opacity:.55; }
.mmr-step:first-child::after { display:none; }
/* STEP別パステル */
.mmr-step[data-c="pink"]   { --c:#E48FB0; }
.mmr-step[data-c="yellow"] { --c:#D2A547; }
.mmr-step[data-c="green"]  { --c:#6CB587; }
.mmr-step[data-c="blue"]   { --c:#769FD4; }
.mmr-step[data-c="purple"] { --c:#9A82C8; }

@media(max-width:720px){
  .mmr-road { left:32px; }
  .mmr-step { grid-template-columns:1fr; margin-bottom:2.2rem; }
  .mmr-step--l .mmr-inner, .mmr-step--r .mmr-inner { grid-column:1; max-width:none; margin-left:0; padding:0 0 0 76px; text-align:left; }
  .mmr-step--l .mmr-photo { margin-left:0; }
  .mmr-photo { max-width:300px; }
  .mmr-node { left:32px; width:48px; height:48px; font-size:1.05rem; }
  .mmr-step::after { left:32px; }
}

/* ロードマップの縦余白を圧縮（2026-06-18） */
.mmr { margin-top:clamp(1.4rem,3vw,2.2rem) !important; }
.mmr-step { margin-bottom:0 !important; }
.mmr-step + .mmr-step { margin-top:clamp(-3.2rem,-3.6vw,-1.8rem); }
.mmr-photo { margin-bottom:.7rem !important; }
.mmr-road { top:2% !important; bottom:2% !important; }
@media(max-width:720px){
  .mmr-step + .mmr-step { margin-top:1.4rem; }
}

/* ロードマップ さらに余白圧縮（2026-06-18 v2） */
.mmr { max-width:820px !important; }
.mmr-step + .mmr-step { margin-top:clamp(-5rem,-6vw,-3rem) !important; }
.mmr-inner { max-width:270px !important; }
.mmr-photo img { aspect-ratio:5/3 !important; }
@media(max-width:720px){ .mmr-step + .mmr-step { margin-top:1.2rem !important; } .mmr-inner { max-width:none !important; } }

/* ============================================================
   SECTION 08 位相差顕微鏡（細菌検査 / 2026-06-19）
   唾液検査(06)と同じデザインシステム。背景 #F7F7F5
   ============================================================ */
.pv-sec--bacteria { background:#fff; }
.pv-bacteria-msg { display:flex; align-items:center; gap:.7rem; margin:1.4rem 0 0; padding:.95rem 1.3rem; background:linear-gradient(135deg,#FCEAF0,#FBF1F4); border:1px solid #F4D6E0; border-radius:14px; font-family:'Noto Serif JP',serif; font-size:.95rem; font-weight:600; color:#C76E92; line-height:1.7; }
.pv-bacteria-msg-ic { flex:0 0 auto; width:26px; height:26px; color:#E08CA6; }
.pv-bacteria-msg-ic svg { width:100%; height:100%; }

/* ローカルSEO（控えめ）2026-06-18 */
.pv-local { background:#fff; padding:clamp(2.4rem,5vw,3.6rem) clamp(1.2rem,5vw,2rem); }
.pv-local-inner { max-width:880px; margin:0 auto; text-align:center; }
.pv-local-h { font-family:'Noto Serif JP',serif; font-weight:500; font-size:clamp(1.15rem,2.6vw,1.5rem); color:#3a342e; letter-spacing:.04em; margin:0 0 1rem; }
.pv-local-x { font-size:.92rem; line-height:2; color:#6b6258; margin:0; text-align:left; }
@media(max-width:640px){ .pv-local-x { font-size:.86rem; line-height:1.95; } }

/* 細菌セクション：カード枠を削除（2026-06-18） */
.pv-sec--bacteria .pv-cario { background:transparent; border:none; box-shadow:none; padding:0; }

/* 「なぜ、1冊にまとめてお渡しするの？」セクションの背景を白に（2026-06-18） */
.mmc-future.nbk-why2 { background:#fff; }

/* ============================================================
   お口の健康手帳：手帳からカードが飛び出す構図（2026-06-18）
   ============================================================ */
.nbk2-stage{ position:relative; max-width:1040px; margin:clamp(1.2rem,3vw,2.4rem) auto 0; min-height:clamp(580px,58vw,668px); }

/* 手帳の背面だけにごく薄いミント/ピンク/ラベンダーのぼかし */
.nbk2-glow{ position:absolute; left:50%; top:48%; transform:translate(-50%,-50%); width:min(72%,540px); height:540px; z-index:1; pointer-events:none; filter:blur(56px); opacity:.5;
  background:
    radial-gradient(38% 40% at 30% 28%, #B4E5C6 0%, transparent 60%),
    radial-gradient(40% 42% at 72% 36%, #F8CCDF 0%, transparent 60%),
    radial-gradient(46% 46% at 50% 78%, #D7C9F0 0%, transparent 62%); }

/* 中央の手帳（カードより前面） */
.nbk2-book{ position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:clamp(236px,24vw,300px); margin:0; z-index:5; }
.nbk2-book img{ width:100%; display:block; filter:drop-shadow(0 28px 50px rgba(108,118,104,.36)); }

/* 手帳に差し込まれたカード */
.nbk2-card{ position:absolute; width:clamp(250px,25vw,286px); background:#fff; border:1px solid #F1ECF2; border-radius:22px;
  padding:1.55rem 1.6rem 1.4rem; box-shadow:0 16px 40px rgba(120,118,128,.15); z-index:3;
  transition:transform .35s ease, box-shadow .35s ease;
  --ac:#46C29A; --acbg:#E0F6EE; }
.nbk2-card[data-c="mint"]  { --ac:#3FC59A; --acbg:#DEF6EE; }   /* 01 ミント */
.nbk2-card[data-c="pink"]  { --ac:#F58CB2; --acbg:#FDE4EE; }   /* 02 ピンク */
.nbk2-card[data-c="beige"] { --ac:#8FA6F2; --acbg:#E9EDFD; }   /* 03 ラベンダー */

/* 付箋風の折り返し（左上の角） */
.nbk2-fold{ position:absolute; top:0; left:0; width:38px; height:38px; overflow:hidden; border-top-left-radius:22px; pointer-events:none; }
.nbk2-fold::after{ content:""; display:block; width:0; height:0; border-top:38px solid var(--ac); border-right:38px solid transparent; opacity:.9; }

.nbk2-ic{ width:44px; height:44px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:var(--acbg); color:var(--ac); margin:.2rem 0 .65rem; }
.nbk2-ic svg{ width:23px; height:23px; }
.nbk2-num{ position:absolute; top:1.25rem; right:1.45rem; font-family:'Cormorant Garamond',serif; font-size:1.55rem; font-weight:600; color:var(--ac); opacity:.5; }
.nbk2-card h3{ font-family:'Noto Serif JP',serif; font-size:1.06rem; font-weight:600; color:#3f4a40; margin:.1rem 0 .5rem; line-height:1.5; }
.nbk2-card p{ font-size:.82rem; line-height:1.85; color:#6f6b60; margin:0; }

/* 位置：左右非対称＋自然な重なりと傾き */
.nbk2-card--p1{ top:24px;   left:calc(50% - 452px); transform:rotate(-5deg);  z-index:3; }
.nbk2-card--p2{ bottom:22px; left:calc(50% - 460px); transform:rotate(3.5deg); z-index:2; }
.nbk2-card--p3{ top:84px;    left:calc(50% + 164px); transform:rotate(4.5deg); z-index:3; }

/* ホバー：ふわっと浮く（傾きは保持・影を強める） */
.nbk2-card--p1:hover{ transform:translateY(-8px) scale(1.03) rotate(-5deg); }
.nbk2-card--p2:hover{ transform:translateY(-8px) scale(1.03) rotate(3.5deg); }
.nbk2-card--p3:hover{ transform:translateY(-8px) scale(1.03) rotate(4.5deg); }
.nbk2-card:hover{ box-shadow:0 28px 58px rgba(108,118,104,.24); z-index:10; }

/* レスポンシブ：狭い画面は手帳→カード縦積み（重なりなし） */
@media(max-width:1040px){
  .nbk2-stage{ min-height:0; display:flex; flex-direction:column; align-items:center; gap:1.2rem; max-width:420px; }
  .nbk2-glow{ width:80%; height:320px; top:130px; }
  .nbk2-book{ position:static; transform:none; order:-1; width:228px; }
  .nbk2-card{ position:static; width:100%; transform:none !important; }
  .nbk2-card--p1,.nbk2-card--p2,.nbk2-card--p3{ top:auto; left:auto; right:auto; bottom:auto; }
  .nbk2-card:hover{ transform:translateY(-6px) !important; }
}

/* モバイルのみ改行する <br>（2026-06-18） */
.mmc-br-sp { display:none; }
@media(max-width:600px){ .mmc-br-sp { display:inline; } }

/* 1ミリチャレンジ等の3枚カード：スマホで縦1列（2026-06-18） */
@media(max-width:600px){
  .om-cards--3 { grid-template-columns:1fr; max-width:420px; margin-left:auto; margin-right:auto; }
}
