/* ============================================================
   recruit.html 専用デザインシステム
   「ワールデントという森の物語」: ベージュ×紙質×フィロソフィーツリー
   このファイルは recruit.html のみが読み込む(他ページに影響しない)
   ============================================================ */

:root{
  --rp2-bg:#FCF7E8;
  --rp2-bg-deep:#F5E4B0;
  --rp2-paper:#FFFCF5;
  --rp2-paper-border:#E8DCC0;
  --rp2-ink:#4A3B2A;
  --rp2-ink-soft:#6B5840;
  --rp2-gold:#C9A96E;
  --rp2-gold-dark:#9C7B45;
  --rp2-trunk:#9C7B4E;
  --rp2-trunk-dark:#6F5536;
  --rp2-shadow:0 16px 32px rgba(120,90,55,.14);
  --rp2-noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.05'/%3E%3C/svg%3E");
  /* 入職後の成長イメージ専用:サイト全体のポップカラーを使用(deepはアイコン用に少し濃く) */
  --rp-tl2-beige:var(--pop-yellow);
  --rp-tl2-beige-deep:#C98A1F;
  --rp-tl2-green:var(--pop-mint);
  --rp-tl2-green-deep:#3F9B7D;
  --rp-tl2-blue:var(--pop-sky);
  --rp-tl2-blue-deep:#5B9FBE;
  --rp-tl2-orange:var(--pop-coral);
  --rp-tl2-orange-deep:#E06F49;
  --rp-tl2-beige-light:var(--pop-yellow-light);
  --rp-tl2-green-light:var(--pop-mint-light);
  --rp-tl2-blue-light:var(--pop-sky-light);
  --rp-tl2-orange-light:var(--pop-coral-light);
  /* あなたと、一緒に成長したい。専用:彩度を抑えた淡いトーン */
  --rp-people-green:#C9DCC6;
  --rp-people-green-deep:#7FA37C;
  --rp-people-beige:#E3D6BC;
  --rp-people-beige-deep:#B89F76;
  --rp-people-orange:#F0CBA8;
  --rp-people-orange-deep:#C98F5C;
}

body.v2.has-snav{ background:var(--rp2-bg); }

/* ヘッダー背景を他ページと統一（クリームの本文背景が site-header に透けないように） */
body.v2.has-snav .site-header{ background:var(--white-warm); }

/* ---------- 共通: ベージュ背景・紙質カード ---------- */
.td-section{ background:var(--rp2-bg); }
.td-head-title{ color:var(--rp2-ink); }
.td-head-title em{ color:var(--rp2-gold-dark); font-style:italic; }
.td-head-sub{ color:var(--rp2-ink-soft); }

.td-detail-block{
  background:var(--rp2-paper);
  background-image:var(--rp2-noise);
  background-blend-mode:multiply;
  border:1px solid var(--rp2-paper-border);
  border-top:5px solid var(--pop-mint);
  border-radius:20px;
  box-shadow:var(--rp2-shadow);
}
.td-detail-block p{ color:var(--rp2-ink-soft); }
.td-detail-title{ color:var(--rp2-ink); }
.td-detail-block[data-color="mint"]   { border-top-color:var(--pop-mint); }
.td-detail-block[data-color="pink"]   { border-top-color:var(--pop-coral); }
.td-detail-block[data-color="coral"]  { border-top-color:var(--pop-coral); }
.td-detail-block[data-color="sky"]    { border-top-color:var(--pop-sky); }
.td-detail-block[data-color="yellow"] { border-top-color:var(--pop-yellow); }
.td-detail-block[data-color="mint"]   .td-detail-num{ background:var(--pop-mint); }
.td-detail-block[data-color="pink"]   .td-detail-num,
.td-detail-block[data-color="coral"]  .td-detail-num{ background:var(--pop-coral); }
.td-detail-block[data-color="sky"]    .td-detail-num{ background:var(--pop-sky); }
.td-detail-block[data-color="yellow"] .td-detail-num{ background:var(--pop-yellow); }

.td-callout{ background:var(--rp2-paper); border:1px solid var(--rp2-paper-border); box-shadow:var(--rp2-shadow); }

.prev2-cta{ background:var(--rp2-bg); }
.prev2-cta-box{
  background:var(--rp2-paper); background-image:var(--rp2-noise); background-blend-mode:multiply;
  border:1px solid var(--rp2-paper-border); box-shadow:var(--rp2-shadow);
}

/* アイボロウ見出しラベル */
.rp2-eyebrow{
  display:inline-flex; align-items:center; gap:.4rem;
  font-size:.8rem; font-weight:700; letter-spacing:.08em;
  color:var(--rp2-gold-dark); margin-bottom:.6rem;
}
.rp2-eyebrow::before{ content:"\1F343"; font-size:.85em; }

/* フィロソフィー私たちの想い:テキスト+本イメージ */
.rp2-philo-intro-heading{ text-align:left; margin-bottom:1.6rem; }
.rp2-philo-intro-heading .td-head-title{ text-align:left; }
.rp2-philo-intro{
  display:grid; grid-template-columns:1fr 1fr; gap:2rem; align-items:center;
}
.rp2-philo-intro-text{ text-align:left; }
.rp2-philo-intro-text .td-head-sub{ text-align:left; }
.rp2-philo-intro-photo{ display:flex; align-items:center; justify-content:center; }
.rp2-philo-intro-photo.reveal, .rp2-philo-intro-photo.reveal.visible{ transform:none; }
.rp2-philo-intro-photo img{
  width:100%; max-width:460px; height:100%; max-height:520px;
  object-fit:contain; display:block; margin:0 auto;
  -webkit-mask-image:radial-gradient(circle closest-side, #000 75%, transparent 100%);
  mask-image:radial-gradient(circle closest-side, #000 75%, transparent 100%);
}
@media(max-width:880px){
  .rp2-philo-intro-heading{ text-align:center; }
  .rp2-philo-intro-heading .td-head-title{ text-align:center; }
  .rp2-philo-intro{ grid-template-columns:1fr; gap:2rem; text-align:center; }
  .rp2-philo-intro-text{ text-align:center; }
  .rp2-philo-intro-text .td-head-sub{ text-align:center; }
  .rp2-philo-intro-photo{ order:-1; }
  .rp2-philo-intro-photo img{ max-width:300px; }
}

/* ボタン類を温かいトーンへ */
.prev2-cta-btn{
  background:linear-gradient(135deg, var(--green,#1D9E75) 0%, #2BA876 100%) !important;
  box-shadow:0 10px 22px rgba(29,158,117,.25) !important;
}

/* ============================================================
   ① ヒーロー: テキスト + フルブリード写真 + 木の装飾
   ============================================================ */
.rp2-hero{
  --rp2-bg:#fffafa;
  position:relative; overflow:hidden;
  padding:0; text-align:left;
  background:var(--rp2-bg);
}
.rp2-hero-main{
  position:relative; overflow:hidden;
  display:flex; align-items:center;
  min-height:560px;
}
.rp2-hero-text{
  position:relative; z-index:2;
  width:40%; max-width:600px;
  padding:1.8rem 1.4rem 1.8rem 6%;
  box-sizing:border-box;
}
.rp2-hero-watermark{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  font-family:'Cormorant Garamond', serif; font-weight:700;
  font-size:clamp(4.2rem, 9vw, 7.5rem); letter-spacing:.04em;
  color:var(--green,#1D9E75); opacity:.04;
  white-space:nowrap; z-index:-1; pointer-events:none; user-select:none;
}
.rp2-hero-text .td-hero-inner{ max-width:none; margin:0; padding:0; text-align:left; }
.rp2-hero-headline{
  font-family:'Klee One', 'Noto Serif JP', serif; font-weight:600; color:var(--green, #1D9E75);
  font-size:clamp(1.25rem, 1.7vw, 1.5rem); line-height:1.5; letter-spacing:.02em; margin:0 0 .5rem;
}
.rp2-hero-headline--lg{ font-size:clamp(2.3rem, 4.2vw, 3.3rem); line-height:1.5; }
.rp2-hero-text .td-hero-catch{ font-size:.98rem; margin-bottom:1rem; }
.rp2-hero-text .td-hero-lead{ font-size:.92rem; }

.rp2-hero-block2{ margin-left:7%; margin-top:2.6rem; }
.rp2-hero-headline2-line2{ white-space:nowrap; display:inline-block; }
.rp2-hero-eyebrow2{
  margin:0 0 .5rem; font-family:'Cormorant Garamond', serif; font-style:italic;
  font-weight:600; letter-spacing:.18em; font-size:1.05rem; color:var(--green,#1D9E75);
}
.rp2-hero-eyebrow2 span{ opacity:.55; letter-spacing:0; margin:0 .3em; }
.rp2-hero-headline2{
  font-family:'Klee One','Noto Serif JP',serif; font-weight:600; color:var(--rp2-ink);
  font-size:clamp(1.65rem,2.5vw,2.05rem); line-height:1.35; margin:0 0 .5rem;
}
.rp2-hero-headline2-em{
  font-size:1.6em; font-weight:700; color:var(--green,#1D9E75);
  letter-spacing:.02em;
}
.rp2-hero-cta-prompt{
  margin:0 0 .7rem; font-size:.85rem; color:var(--rp2-gold-dark); font-weight:700;
}
.rp2-hero-cta-prompt span{ opacity:.6; font-weight:400; }
.rp2-hero-cta{
  display:block; width:max-content;
  text-decoration:none;
}
.rp2-hero-cta-face{
  display:inline-block; font-size:.92rem; padding:.85rem 1.9rem;
}
.rp2-hero-cta-face--lg{
  font-size:1.08rem; padding:1.15rem 2.6rem; font-weight:900;
  box-shadow:0 14px 28px rgba(29,158,117,.32);
}
@media(max-width:880px){
  .rp2-hero-cta{ margin:0 auto; }
  .rp2-hero-cta-prompt{ text-align:center; }
}

.rp2-hero-photo-bleed{
  position:absolute; top:0; right:0; bottom:0; width:60%; z-index:1;
}
@media(min-width:881px){
  .rp2-hero-photo-bleed{ clip-path:url(#rp2-wave-clip); }
}
.rp2-hero-photo-bleed img{
  width:100%; height:100%; object-fit:cover; display:block;
  filter:saturate(1.05) sepia(.1) brightness(1.03) contrast(.96);
}
.rp2-hero-photo-bleed::before{
  content:""; position:absolute; inset:0;
  background:linear-gradient(to right, var(--rp2-bg) 0%, rgba(247,240,226,0) 14%);
}
.rp2-hero-photo-bleed::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(135deg, rgba(201,169,110,.22) 0%, rgba(252,247,232,.1) 60%);
  mix-blend-mode:soft-light; pointer-events:none;
}

.rp2-hero-bottom{
  display:flex; align-items:stretch; border-top:1px solid var(--rp2-paper-border);
  background:var(--rp2-bg); position:relative; z-index:2;
}
.rp2-hero-bottom-cta{
  flex-shrink:0; display:flex; flex-direction:column; justify-content:center;
  padding:1.1rem 2.4rem;
}
.rp2-hero-bottom .rp2-hero-cta-prompt{ margin:0 0 .5rem; }
.rp2-hero-bottom-photo{
  flex-shrink:0; width:130px; overflow:hidden; margin-top:-28px;
  display:flex; align-items:flex-end; justify-content:center; position:relative;
}
.rp2-hero-bottom-photo img{
  width:auto; height:100%; max-width:100%; object-fit:contain; display:block;
  transform-origin:bottom center;
  animation:rp2-jiggle 4.6s steps(1,end) infinite;
}
.rp2-hero-bottom-photo--f{ justify-content:flex-end; }
.rp2-hero-bottom-photo--f img{ animation-delay:-.7s; }
.rp2-hero-bottom-photo--m{ justify-content:flex-start; margin-left:-16px; }
.rp2-hero-bottom-photo--m img{
  height:162%; animation-duration:4.1s; animation-delay:-1.9s;
  position:relative; top:46px;
}
@keyframes rp2-jiggle{
  0%, 100%{ transform:rotate(0deg) translateY(0); }
  8%{ transform:rotate(-2.5deg) translateY(-2px); }
  17%{ transform:rotate(2deg) translateY(0); }
  26%{ transform:rotate(-1.5deg) translateY(-1px); }
  35%{ transform:rotate(2.5deg) translateY(0); }
  44%{ transform:rotate(0deg) translateY(-2px); }
  53%{ transform:rotate(-2deg) translateY(0); }
  62%{ transform:rotate(1.5deg) translateY(-1px); }
  71%{ transform:rotate(-1deg) translateY(0); }
  80%{ transform:rotate(2deg) translateY(-1px); }
  90%{ transform:rotate(-1.5deg) translateY(0); }
}
@media(prefers-reduced-motion:reduce){
  .rp2-hero-bottom-photo img{ animation:none; }
}
.rp2-hero-features{
  display:flex; flex:0 1 60%; max-width:60%; margin-left:auto; min-width:0;
  border-left:1px solid var(--rp2-paper-border);
}
.rp2-hero-feature{
  position:relative; flex:1; padding:.5rem 1rem; text-align:left;
  display:flex; align-items:center; justify-content:center; gap:.8rem; border-radius:14px;
  border-left:1px solid var(--rp2-paper-border);
  transition:box-shadow .25s, background-color .25s;
}
.rp2-hero-feature:first-child{ border-left:none; }
.rp2-hero-feature:hover{
  background:#fff; box-shadow:0 10px 24px rgba(120,90,55,.14);
}
.rp2-hero-feature-icon{
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
  width:52px; height:52px; border-radius:50%; background:#3CB987;
  color:#fff; transition:transform .25s;
}
.rp2-hero-feature:hover .rp2-hero-feature-icon{ transform:translateY(-7px) scale(1.05); }
.rp2-hero-feature-icon svg{ width:27px; height:27px; }
.rp2-hero-feature p{
  margin:0; font-family:'M PLUS Rounded 1c', sans-serif; font-weight:700;
  font-size:.92rem; line-height:1.6; color:var(--rp2-ink);
}
@media(max-width:880px){
  .rp2-hero-main{ flex-direction:column; align-items:stretch; min-height:auto; }
  .rp2-hero-text{
    width:100%; max-width:none; padding:2.2rem 1.4rem 1.6rem; text-align:center;
  }
  .rp2-hero-text .td-hero-inner{ text-align:center; }
  .rp2-hero-headline{ text-align:center; }
  .rp2-hero-headline2{ text-align:center; }
  .rp2-hero-block2{ margin-left:0; }
  .rp2-hero-photo-bleed{
    position:relative; order:-1; width:100%; height:240px;
  }
  .rp2-hero-photo-bleed::before{
    background:linear-gradient(to bottom, var(--rp2-bg) 0%, rgba(247,240,226,0) 28%);
  }
  /* ヒーローボトム：写真2枚を横並び、CTAを下 */
  .rp2-hero-bottom{ flex-direction:row; flex-wrap:wrap; align-items:flex-end; }
  .rp2-hero-bottom-photo{ width:50%; height:200px; flex-shrink:0; }
  .rp2-hero-bottom-photo--f{ order:1; justify-content:center; }
  .rp2-hero-bottom-photo--m{ order:2; margin-left:0; justify-content:center; }
  .rp2-hero-bottom-photo--m img{ height:120%; top:16px; }
  .rp2-hero-bottom-cta{
    order:3; width:100%; border-right:none;
    border-top:1px solid var(--rp2-paper-border);
    align-items:center; padding:1.6rem 1.4rem;
  }
  .rp2-hero-features{
    order:4; width:100%; flex-direction:column; max-width:none; margin-left:0;
    border-left:none; border-top:1px solid var(--rp2-paper-border);
  }
  .rp2-hero-feature{
    flex:none; width:100%; min-width:0; flex-direction:row; align-items:center; justify-content:flex-start;
    text-align:left; padding:.85rem 1.4rem;
    border-left:none; border-top:1px solid var(--rp2-paper-border); gap:.9rem;
  }
  .rp2-hero-feature:first-child{ border-top:none; }
  .rp2-hero-feature-icon{ width:40px; height:40px; flex-shrink:0; }
  .rp2-hero-feature-icon svg{ width:21px; height:21px; }
  .rp2-hero-feature p{ font-size:.82rem; line-height:1.5; word-break:normal; text-align:left; }
}

/* ============================================================
   ② フィロソフィーツリー セクション
   ============================================================ */
.rp2-tree-section{ background:#fffafa; padding:3.5rem 0 0; overflow:hidden; }

.rp2-mission-bgwrap{
  background:url('../images/recruit/mission-bg.jpg?v=3') center bottom / cover no-repeat;
  padding:1.5rem 0 3rem;
}

.rp2-tree-visual--main{ max-width:none; margin:0 auto 1rem; }

/* 私たちが大切にしていること:テキスト(左)+木(右、デザイン配置) */
body.v2.has-snav .rp2-mission-grid{
  display:grid; grid-template-columns:.55fr 1.7fr; gap:1.5rem;
  align-items:start; max-width:1400px;
}
.rp2-mission-text{ padding-top:1.4rem; text-align:left; }
.rp2-mission-text .td-head-title{
  text-align:left; font-size:clamp(1.75rem, 2.8vw, 2.3rem); line-height:1.3; margin-bottom:.3em;
}
.rp2-mission-text .td-head-sub{ text-align:left; max-width:320px; margin:0 0 .9rem; }
.rp2-mission-text .td-head-sub:last-of-type{ margin-bottom:0; }
.rp2-mission-values{
  list-style:none; margin:1.4rem 0 1.6rem; padding:0; max-width:320px;
  display:flex; flex-direction:column; gap:.5rem;
}
.rp2-mission-values li{
  position:relative; padding-left:1.4rem;
  color:#6B5544; font-weight:700; font-size:.95rem;
}
.rp2-mission-values li::before{
  content:"\1F343"; position:absolute; left:0; top:.05em; font-size:.72em;
}
.rp2-mission-mark{
  display:inline-block; padding:.1em .32em; border-radius:50% 22% 42% 28%/38% 48% 22% 48%;
}
.rp2-mission-values li[data-leaf="sky"]    .rp2-mission-mark{
  background:rgba(168,216,240,.22); box-shadow:0 0 7px 1px rgba(168,216,240,.14); transform:rotate(-.6deg);
}
.rp2-mission-values li[data-leaf="pink"]   .rp2-mission-mark{
  background:rgba(246,179,200,.22); box-shadow:0 0 7px 1px rgba(246,179,200,.14); transform:rotate(.5deg);
}
.rp2-mission-values li[data-leaf="mint"]   .rp2-mission-mark{
  background:rgba(174,227,227,.22); box-shadow:0 0 7px 1px rgba(174,227,227,.14); transform:rotate(-.4deg);
}
.rp2-mission-values li[data-leaf="yellow"] .rp2-mission-mark{
  background:rgba(246,226,154,.24); box-shadow:0 0 7px 1px rgba(246,226,154,.15); transform:rotate(.6deg);
}
.rp2-mission-values li[data-leaf="green"]  .rp2-mission-mark{
  background:rgba(191,230,184,.22); box-shadow:0 0 7px 1px rgba(191,230,184,.14); transform:rotate(-.5deg);
}
.rp2-tree-visual.rp2-tree-visual--mission{
  max-width:1150px; margin:0 0 0 auto;
}
@media(max-width:880px){
  body.v2.has-snav .rp2-mission-grid{ grid-template-columns:1fr; gap:1rem; max-width:none; text-align:center; }
  .rp2-mission-text{ padding-top:0; text-align:center; }
  .rp2-mission-text .td-head-title, .rp2-mission-text .td-head-sub{ text-align:center; margin-left:auto; margin-right:auto; }
  .rp2-mission-values{ margin:1.1rem auto; align-items:center; }
  .rp2-mission-values li{ padding-left:1.4rem; text-align:left; }
  .rp2-tree-visual.rp2-tree-visual--mission{ margin:0 auto; max-width:380px; transform:none; }
}

.rp2-tree-top{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:3rem;
  align-items:start;
  padding-top:2.5rem;
  max-width:1000px;
}
@media(max-width:960px){
  .rp2-tree-top{ grid-template-columns:1fr; gap:2.2rem; text-align:center; }
}
.rp2-tree-top--single{ grid-template-columns:1fr; max-width:1080px; }
.rp2-tree-top--single .rp2-practice-title{ text-align:center; }

.rp2-practice-title{ font-family:'M PLUS Rounded 1c', sans-serif; font-weight:900; color:var(--rp2-ink); font-size:1.25rem; }
.rp2-practice-title em{ color:var(--rp2-gold-dark); font-style:italic; }

/* フィロソフィーを日々の行動に */
.rp2-action-block{ margin-top:2.4rem; }
.rp2-practice-cycle{
  display:flex; align-items:center; justify-content:center; flex-wrap:wrap;
  gap:.5rem; margin:1.1rem 0 0; font-family:'M PLUS Rounded 1c',sans-serif;
}
.rp2-practice-cycle span{
  font-size:.85rem; font-weight:700; color:var(--rp2-gold-dark);
}
.rp2-practice-cycle span:not(.rp2-practice-cycle-arrow){
  background:var(--rp2-paper); border:1px solid var(--rp2-paper-border);
  border-radius:999px; padding:.35rem 1rem; box-shadow:0 4px 10px rgba(120,90,55,.08);
}
.rp2-practice-cycle-arrow{ opacity:.5; font-weight:400; }
.rp2-practice-cycle span:last-child{ color:#fff; background:var(--green,#1D9E75); border-color:var(--green,#1D9E75); }
.rp2-action-list{
  list-style:none; margin:1.6rem 0 0; padding:0;
  display:grid; grid-template-columns:repeat(4,1fr); gap:1rem;
}
.rp2-action-list li{
  display:flex; flex-direction:column; text-align:left;
  background:var(--rp2-paper); background-image:var(--rp2-noise); background-blend-mode:multiply;
  border:1px solid var(--rp2-paper-border); border-radius:18px; overflow:hidden;
  box-shadow:var(--rp2-shadow);
}
.rp2-action-item--lg{ grid-column:span 2; }
.rp2-action-photo{ width:100%; aspect-ratio:4/3; height:auto; border-radius:0; font-size:.8rem; object-fit:cover; display:block; }
.rp2-action-item--lg .rp2-action-photo{ aspect-ratio:16/9; }
.rp2-action-text{ padding:1.1rem 1.2rem 1.4rem; }
.rp2-action-text strong{ display:block; font-size:1.12rem; color:var(--rp2-ink); margin-bottom:.4rem; }
.rp2-action-text span{ font-size:.82rem; line-height:1.7; color:var(--rp2-ink-soft); }
.rp2-action-item--lg .rp2-action-text strong{ font-size:1.22rem; }
@media(max-width:880px){ .rp2-action-list{ grid-template-columns:repeat(2,1fr); } .rp2-action-item--lg{ grid-column:span 2; } }
@media(max-width:560px){
  .rp2-action-list{ grid-template-columns:1fr; max-width:380px; margin:1.6rem auto 0; }
  .rp2-action-item--lg{ grid-column:span 1; }
  .rp2-action-item--lg .rp2-action-photo{ aspect-ratio:4/3; }
}

.rp2-practice-list{ list-style:none; margin:1.2rem 0 0; padding:0; text-align:left; }
.rp2-practice-list li{ padding:.9rem 0; border-top:1px dashed var(--rp2-paper-border); }
.rp2-practice-list li:first-child{ border-top:none; }
.rp2-practice-list strong{ display:block; font-size:.95rem; color:var(--rp2-ink); margin-bottom:.35rem; }
.rp2-practice-list span{ font-size:.85rem; line-height:1.8; color:var(--rp2-ink-soft); }
@media(max-width:960px){ .rp2-practice-list{ text-align:center; } }

/* 木のビジュアル */
.rp2-tree-visual{ position:relative; width:100%; max-width:820px; margin:0 auto; }
.rp2-tree-visual.reveal, .rp2-tree-visual.reveal.visible{ transform:none; }
.rp2-tree-img{ display:block; width:100%; height:auto; mix-blend-mode:multiply; }

@media(max-width:960px){
  .rp2-tree-visual{ max-width:460px; }
}

/* 木がやさしく揺らめく装飾レイヤー(画像本体は動かさず、上に重ねたレイヤーのみ動かす) */
.rp2-tree-ambient{
  position:absolute; inset:0; overflow:hidden; pointer-events:none;
  border-radius:inherit;
}
.rp2-amb-shadow{
  position:absolute; inset:0;
  background:radial-gradient(ellipse 55% 38% at 50% 68%, rgba(110,80,50,.16), transparent 70%);
  animation:rp2-amb-breathe 7s ease-in-out infinite;
}
.rp2-amb-ray{
  position:absolute; top:-10%; height:200%;
  background:linear-gradient(180deg, rgba(255,255,248,.4) 0%, rgba(255,255,248,.13) 45%, rgba(255,255,248,0) 78%);
  filter:blur(7px); mix-blend-mode:screen;
  transform-origin:top center;
  animation-iteration-count:infinite; animation-timing-function:ease-in-out;
}
.rp2-amb-ray-1{ left:78%; width:7%; animation-name:rp2-amb-sway-a; animation-duration:9s; }
.rp2-amb-ray-2{ left:60%; width:5%; animation-name:rp2-amb-sway-b; animation-duration:11s; animation-delay:1.4s; }

@keyframes rp2-amb-sway-a{ 0%,100%{ transform:rotate(-34deg); } 50%{ transform:rotate(-42deg); } }
@keyframes rp2-amb-sway-b{ 0%,100%{ transform:rotate(-26deg); } 50%{ transform:rotate(-34deg); } }
.rp2-amb-light{
  position:absolute; border-radius:50%;
  background:radial-gradient(circle, rgba(255,250,225,1) 0%, rgba(255,247,210,.5) 35%, rgba(255,247,210,0) 70%);
  filter:blur(1.5px); mix-blend-mode:screen;
  animation-iteration-count:infinite; animation-timing-function:ease-in-out;
}
.rp2-amb-light-1{ width:10%; height:8%;  left:40%; top:2%;  animation-name:rp2-amb-drift-a; animation-duration:7.5s; }
.rp2-amb-light-2{ width:10%; height:10%; left:31%; top:44%; animation-name:rp2-amb-drift-b; animation-duration:8.5s; animation-delay:.6s; }
.rp2-amb-light-3{ width:10%; height:10%; left:55%; top:43%; animation-name:rp2-amb-drift-a; animation-duration:6.8s; animation-delay:1.2s; }
.rp2-amb-light-4{ width:9%;  height:9%;  left:14%; top:70%; animation-name:rp2-amb-drift-b; animation-duration:7.8s; animation-delay:1.8s; }
.rp2-amb-light-5{ width:9%;  height:9%;  left:71%; top:69%; animation-name:rp2-amb-drift-a; animation-duration:9s;   animation-delay:2.4s; }

@keyframes rp2-amb-breathe{ 0%,100%{ opacity:.55; } 50%{ opacity:1; } }
@keyframes rp2-amb-drift-a{ 0%,100%{ transform:translate(0,0) scale(1); } 50%{ transform:translate(46px,-36px) scale(1.5); } }
@keyframes rp2-amb-drift-b{ 0%,100%{ transform:translate(0,0) scale(1); } 50%{ transform:translate(-40px,30px) scale(1.45); } }

@media(prefers-reduced-motion: reduce){
  .rp2-amb-shadow, .rp2-amb-light, .rp2-amb-ray, .rp2-amb-leaf{ animation:none; }
}

/* 葉の凡例(説明文を保持) */
.rp2-leaf-legend{
  display:grid; grid-template-columns:repeat(4,1fr); gap:1.2rem;
  max-width:1100px; margin:3rem auto 0;
}
@media(max-width:880px){ .rp2-leaf-legend{ grid-template-columns:1fr 1fr; } }
@media(max-width:520px){ .rp2-leaf-legend{ grid-template-columns:1fr; } }
.rp2-legend-item{
  background:var(--rp2-paper); border-radius:16px; padding:1.2rem 1.1rem;
  border-top:4px solid var(--pop-mint);
  box-shadow:0 8px 18px rgba(120,90,55,.1);
}
.rp2-legend-item[data-color="mint"]  { border-top-color:var(--pop-mint); }
.rp2-legend-item[data-color="coral"] { border-top-color:var(--pop-coral); }
.rp2-legend-item[data-color="sky"]   { border-top-color:var(--pop-sky); }
.rp2-legend-item[data-color="yellow"]{ border-top-color:var(--pop-yellow); }
.rp2-legend-item strong{ display:block; font-size:.95rem; color:var(--rp2-ink); margin-bottom:.5rem; }
.rp2-legend-item p{ font-size:.84rem; line-height:1.8; color:var(--rp2-ink-soft); margin:0; }

/* 根 → 6つの特徴:木から続く成長ストーリー(縦グラデーション+木漏れ日) */
.rp2-roots-band{
  background:linear-gradient(to bottom, #F5EBC8 0%, #FFF8EF 52%, #FFFAF5 100%);
  margin-top:3rem; padding:3.2rem 0; position:relative; overflow:hidden;
}
.rp2-roots-band::before{
  content:""; position:absolute; top:-40px; left:0; right:0; height:40px;
  background:linear-gradient(to bottom, transparent, #F5EBC8);
  z-index:1;
}
.rp2-roots-band::after{
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background:
    radial-gradient(ellipse 38% 26% at 10% 6%,  rgba(255,152,116,.05), transparent 70%),
    radial-gradient(ellipse 34% 24% at 36% 2%,  rgba(255,203,71,.06), transparent 70%),
    radial-gradient(ellipse 36% 26% at 64% 4%,  rgba(109,207,176,.06), transparent 70%),
    radial-gradient(ellipse 34% 24% at 90% 8%,  rgba(141,200,226,.05), transparent 70%);
}
body.v2.has-snav .rp2-roots-band .section-inner{ max-width:1280px; position:relative; z-index:2; }

/* 木漏れ日・光の粒・葉のシルエット(フィロソフィーツリーから続く演出) */
.rp2-journey-ambient{ position:absolute; inset:0; overflow:hidden; pointer-events:none; z-index:1; }
.rp2-jamb-ray{
  position:absolute; top:-15%; height:160%; width:6%;
  background:linear-gradient(180deg, rgba(255,255,248,.34) 0%, rgba(255,255,248,.1) 45%, rgba(255,255,248,0) 78%);
  filter:blur(8px); mix-blend-mode:screen; transform-origin:top center;
  animation-iteration-count:infinite; animation-timing-function:ease-in-out;
}
.rp2-jamb-ray-left{  left:6%;  width:7%; animation-name:rp2-amb-sway-b; animation-duration:10s; }
.rp2-jamb-ray-left2{ left:16%; width:5%; animation-name:rp2-amb-sway-a; animation-duration:12s; animation-delay:.8s; }
.rp2-jamb-ray-right{  left:80%; width:7%; animation-name:rp2-amb-sway-a; animation-duration:9.5s; animation-delay:.4s; }
.rp2-jamb-ray-right2{ left:90%; width:5%; animation-name:rp2-amb-sway-b; animation-duration:11.5s; animation-delay:1.6s; }
.rp2-jamb-light{
  position:absolute; border-radius:50%;
  background:radial-gradient(circle, rgba(255,250,225,1) 0%, rgba(255,247,210,.45) 35%, rgba(255,247,210,0) 70%);
  filter:blur(1.5px); mix-blend-mode:screen;
  animation-iteration-count:infinite; animation-timing-function:ease-in-out;
}
.rp2-jamb-light-1{ width:2.2%; height:1.8%; left:12%; top:14%; animation-name:rp2-amb-drift-a; animation-duration:7.2s; }
.rp2-jamb-light-2{ width:1.8%; height:1.6%; left:88%; top:20%; animation-name:rp2-amb-drift-b; animation-duration:8.4s; animation-delay:.5s; }
.rp2-jamb-light-3{ width:2%;   height:1.8%; left:6%;  top:55%; animation-name:rp2-amb-drift-b; animation-duration:7.8s; animation-delay:1.1s; }
.rp2-jamb-light-4{ width:2.2%; height:2%;   left:93%; top:60%; animation-name:rp2-amb-drift-a; animation-duration:9s;   animation-delay:1.7s; }
.rp2-jamb-light-5{ width:1.8%; height:1.6%; left:48%; top:8%;  animation-name:rp2-amb-drift-a; animation-duration:6.8s; animation-delay:.3s; }
.rp2-jamb-light-6{ width:2%;   height:1.8%; left:30%; top:80%; animation-name:rp2-amb-drift-b; animation-duration:8.8s; animation-delay:2s; }
.rp2-jamb-leaf{
  position:absolute; opacity:.045; pointer-events:none;
}
.rp2-jamb-leaf-1{ width:70px; left:4%;  top:8%;  transform:rotate(-25deg); }
.rp2-jamb-leaf-2{ width:50px; left:14%; top:38%; transform:rotate(18deg); }
.rp2-jamb-leaf-3{ width:60px; left:2%;  top:68%; transform:rotate(-10deg); }
.rp2-jamb-leaf-4{ width:70px; right:4%; top:10%; transform:rotate(22deg); }
.rp2-jamb-leaf-5{ width:50px; right:12%; top:40%; transform:rotate(-16deg); }
.rp2-jamb-leaf-6{ width:60px; right:3%; top:70%; transform:rotate(12deg); }
@media(max-width:880px){
  .rp2-jamb-ray-left2, .rp2-jamb-ray-right2, .rp2-jamb-leaf-2, .rp2-jamb-leaf-5{ display:none; }
}
@media(prefers-reduced-motion:reduce){
  .rp2-jamb-ray, .rp2-jamb-light{ animation:none; }
}

/* 文化が育つ6つの場面:見出し */
.rp2-scenes-heading{
  text-align:center; font-family:'M PLUS Rounded 1c',sans-serif; font-weight:800;
  font-size:clamp(1.4rem,2.6vw,2rem); color:#8D6540; margin:0 0 3.4rem;
  line-height:1.6;
}
.rp2-scenes-leaf{ font-size:1.05rem; margin:0 .3em; display:inline-block; }
.rp2-scenes-heading-quote{ white-space:nowrap; }
.rp2-scenes-heading-em{
  font-size:1.4em; font-weight:900; color:#38B07A; letter-spacing:.02em;
}
@media(max-width:680px){
  .rp2-scenes-heading{ font-size:1.3rem; margin:0 0 2.4rem; }
  .rp2-scenes-heading-em{ font-size:1.2em; }
  .rp2-scenes-heading-quote{ white-space:normal; }
  .rp2-scenes-leaf{ display:none; }
}

/* ストーリーロードマップ:S字に流れる成長の道 */
.rp2-journey{
  position:relative; max-width:1280px; margin:0 auto;
}
.rp2-journey-row{
  position:relative; display:flex; gap:1.6rem; align-items:start;
}
.rp2-journey-row-path{
  position:absolute; top:0; left:0; width:100%; height:80px; z-index:0; pointer-events:none;
}
.rp2-journey-turn{ width:100%; height:90px; margin:-.4rem 0; }
.rp2-journey-turn svg{ width:100%; height:100%; display:block; }

.rp2-journey-row.reveal{ opacity:1; transform:none; transition:none; }
.rp2-journey-row-path{ clip-path:inset(0 100% 0 0); }
/* 点線の描画は1行目の表示タイミングのみを起点にして、01→02→03→(ターン)→04→05→06 の順を必ず守る
   (2行目を単独のスクロール検知で動かすと、画面が高いとき1行目と同時に描き始めてしまうため) */
.rp2-journey-row--1.visible .rp2-journey-row-path{
  animation:rp2-path-draw-ltr 2.6s cubic-bezier(.4,0,.2,1) forwards;
}
.rp2-journey-turn svg{ clip-path:inset(0 0 0 100%); }
.rp2-journey-row--1.visible ~ .rp2-journey-turn svg{
  animation:rp2-path-draw-rtl 1.5s cubic-bezier(.4,0,.2,1) 2.3s forwards;
}
.rp2-journey-row--1.visible ~ .rp2-journey-row--2 .rp2-journey-row-path{
  animation:rp2-path-draw-ltr 2.6s cubic-bezier(.4,0,.2,1) 3.8s forwards;
}
@keyframes rp2-path-draw-ltr{
  from{ clip-path:inset(0 100% 0 0); }
  to{ clip-path:inset(0 0% 0 0); }
}
@keyframes rp2-path-draw-rtl{
  from{ clip-path:inset(0 0 0 100%); }
  to{ clip-path:inset(0 0 0 0%); }
}

/* 点線が到達したタイミングでアイコンが光る(パス上のx=200/600/1000=幅の1/6,3/6,5/6に対応する到達時刻)
   2行目(04-06)は1行目の表示+ターン完了(3.8s)を基準に、同じ間隔だけずらして発光させる */
.rp2-journey-row--1.visible .rp2-journey-step:nth-child(2) .rp2-journey-icon{
  animation:rp2-icon-glow 1s ease-out .43s 1 both;
}
.rp2-journey-row--1.visible .rp2-journey-step:nth-child(3) .rp2-journey-icon{
  animation:rp2-icon-glow 1s ease-out 1.3s 1 both;
}
.rp2-journey-row--1.visible .rp2-journey-step:nth-child(4) .rp2-journey-icon{
  animation:rp2-icon-glow 1s ease-out 2.17s 1 both;
}
.rp2-journey-row--1.visible ~ .rp2-journey-row--2 .rp2-journey-step:nth-child(2) .rp2-journey-icon{
  animation:rp2-icon-glow 1s ease-out 4.23s 1 both;
}
.rp2-journey-row--1.visible ~ .rp2-journey-row--2 .rp2-journey-step:nth-child(3) .rp2-journey-icon{
  animation:rp2-icon-glow 1s ease-out 5.1s 1 both;
}
.rp2-journey-row--1.visible ~ .rp2-journey-row--2 .rp2-journey-step:nth-child(4) .rp2-journey-icon{
  animation:rp2-icon-glow 1s ease-out 5.97s 1 both;
}
@keyframes rp2-icon-glow{
  0%{ box-shadow:0 8px 18px rgba(120,90,55,.16); background:var(--rp2-paper); }
  40%{
    box-shadow:0 8px 18px rgba(120,90,55,.16), 0 0 0 8px rgba(255,255,255,.6), 0 0 32px 10px rgba(255,255,255,.95);
    border-color:#fff; background:#fff;
  }
  100%{
    box-shadow:0 8px 18px rgba(120,90,55,.16), 0 0 0 4px rgba(201,169,110,.18);
    border-color:var(--rp2-gold); background:var(--rp2-paper);
  }
}
.rp2-journey-step{
  position:relative; z-index:1; flex:1; min-width:0; display:flex; flex-direction:column;
  align-items:center; text-align:center;
}
.rp2-journey-icon-wrap{ position:relative; margin-bottom:1rem; }
.rp2-journey-icon{
  display:flex; align-items:center; justify-content:center;
  width:80px; height:80px; border-radius:50%;
  background:var(--rp2-paper); border:2px solid var(--rp2-gold);
  color:var(--rp2-gold-dark); box-shadow:0 8px 18px rgba(120,90,55,.16);
}
.rp2-journey-icon svg{ width:52px; height:52px; filter:url(#rp2-sketchy); }
.rp2-journey-num{
  position:absolute; left:-6px; bottom:-6px; display:flex; align-items:center; justify-content:center;
  width:34px; height:34px; border-radius:50%; background:#38B07A;
  color:#fff; font-family:'Cormorant Garamond',serif; font-weight:700; font-size:1rem;
  box-shadow:0 4px 8px rgba(0,0,0,.18);
}
.rp2-journey-title{
  font-family:'M PLUS Rounded 1c',sans-serif; font-weight:900; font-size:1.3rem;
  color:#38B07A; line-height:1.4; margin:0 0 1rem; letter-spacing:.03em;
}
.rp2-journey-photo{
  position:relative; background:#fff; padding:8px 8px 4px;
  box-shadow:0 12px 26px rgba(120,90,55,.22);
  transform:rotate(-2deg); margin:0 0 1rem; max-width:194px; width:100%;
}
.rp2-journey-step:nth-child(even) .rp2-journey-photo{ transform:rotate(2deg); }
.rp2-journey-photo--sm{ max-width:195px; }
.rp2-journey-photo--md{ max-width:185px; }
.rp2-journey-photo--lg{ max-width:225px; }
.rp2-journey-photo--xl{ max-width:260px; }
.rp2-journey-photo--xl img{ aspect-ratio:4/3; }
.rp2-journey-photo--wide{ max-width:250px; }
.rp2-journey-photo--wide img{ aspect-ratio:4/3; }
.rp2-journey-photo img{ width:100%; aspect-ratio:1/1; object-fit:cover; display:block; }
.rp2-journey-photo::before{
  content:""; position:absolute; top:-11px; left:50%; transform:translateX(-50%) rotate(-4deg);
  width:52px; height:22px; box-shadow:0 1px 3px rgba(0,0,0,.1);
}
.rp2-journey-photo--tape-green::before{ background:rgba(141,197,150,.6); }
.rp2-journey-photo--tape-gold::before{ background:rgba(201,169,110,.55); }
.rp2-journey-photo--tape-pink::before{ background:rgba(216,158,168,.5); }
.rp2-journey-caption{
  font-family:'Yomogi','M PLUS Rounded 1c',sans-serif; font-weight:400; font-size:.8rem;
  color:var(--rp2-ink-soft); margin:0; line-height:1.4; text-align:center;
  padding:.3rem .2rem .5rem;
}
.rp2-journey-caption-mark{
  font-family:'Cormorant Garamond',serif; font-style:italic; font-weight:600;
  opacity:.7; margin-right:.05em;
}
.rp2-journey-text{
  font-size:.76rem; line-height:1.75; color:var(--rp2-ink-soft); margin:0;
}

/* まとめ:カードなし、葉のボケ味+光のにじみを背景に文字を直接乗せる */
.rp2-journey-summary{
  position:relative; z-index:1; max-width:680px; margin:4.4rem auto 0; padding:1rem 1.5rem;
  text-align:center;
}
.rp2-journey-summary p{
  position:relative; z-index:1; margin:0; font-size:1.04rem; line-height:2.05;
  color:var(--rp2-ink); font-weight:700;
}

/* 背景の葉ボケ・光のにじみ(写実的な背景写真の代わりにCSSで再現) */
.rp2-summary-deco{ position:relative; max-width:1080px; margin:0 auto; }
.rp2-summary-bokeh{ position:absolute; inset:-2rem; overflow:hidden; pointer-events:none; z-index:0; }
.rp2-summary-bokeh-glow{
  position:absolute; border-radius:50%; filter:blur(40px); opacity:.8;
}
.rp2-summary-bokeh-glow-1{ width:280px; height:200px; top:-70px; left:-60px; background:radial-gradient(circle, rgba(255,247,210,.95), transparent 70%); }
.rp2-summary-bokeh-glow-2{ width:240px; height:190px; bottom:-60px; right:-50px; background:radial-gradient(circle, rgba(255,255,255,.9), transparent 70%); }
.rp2-summary-bokeh-leaf{ position:absolute; pointer-events:none; }
.rp2-summary-bokeh-leaf-1{ width:110px; height:110px; top:8%;  right:6%;  opacity:.3; filter:blur(3.5px); transform:rotate(18deg); }
.rp2-summary-bokeh-leaf-2{ width:80px;  height:80px;  bottom:10%; right:14%; opacity:.55; filter:blur(1.2px); transform:rotate(-22deg); }
.rp2-summary-bokeh-leaf-3{ width:60px;  height:60px;  bottom:18%; right:26%; opacity:.4; filter:blur(2px); transform:rotate(30deg); }
.rp2-summary-bokeh-leaf-L1{ width:100px; height:100px; top:10%; left:5%;  opacity:.28; filter:blur(3.5px); transform:rotate(-20deg); }
.rp2-summary-bokeh-leaf-L2{ width:70px;  height:70px;  bottom:12%; left:12%; opacity:.5; filter:blur(1.5px); transform:rotate(25deg); }
.rp2-summary-bokeh-leaf-L3{ width:55px;  height:55px;  bottom:20%; left:24%; opacity:.38; filter:blur(2px); transform:rotate(-10deg); }
@media(max-width:680px){
  .rp2-summary-bokeh-leaf-1{ width:80px; height:80px; }
  .rp2-summary-bokeh-leaf-3{ display:none; }
  .rp2-summary-bokeh-leaf-L1{ width:70px; height:70px; }
  .rp2-summary-bokeh-leaf-L3{ display:none; }
}
@media(prefers-reduced-motion:reduce){
  .rp2-summary-bokeh-glow, .rp2-summary-bokeh-leaf{ transition:none; }
}

@media(max-width:1080px){
  .rp2-journey-row{ flex-wrap:wrap; gap:2.6rem 1.4rem; }
  .rp2-journey-step{ flex:1 1 calc(33.33% - 1rem); min-width:200px; }
  .rp2-journey-row-path, .rp2-journey-turn{ display:none; }
}
@media(max-width:680px){
  .rp2-journey-row, .rp2-journey-row--2{ flex-direction:column; align-items:center; gap:2.6rem; }
  .rp2-journey-step{ flex:none; width:100%; max-width:300px; }
}

/* ============================================================
   ⑥ ワールデントの挑戦:5カードグリッド(既存クラスを再配色)
   ============================================================ */
.rp-challenge-grid{ grid-template-columns:repeat(2,1fr); gap:1rem; max-width:900px; }
.rp-challenge-grid .td-detail-block{ padding:2.2rem 1.2rem 1.3rem; }
.rp-challenge-grid .td-detail-title{ font-size:1.08rem; margin-bottom:.6rem; }
.rp-challenge-grid .td-detail-block p{ font-size:.88rem; line-height:1.75; }
.rp-challenge-grid > article:nth-child(5){ grid-column:1 / -1; max-width:380px; margin:0 auto; }
@media(min-width:680px){
  .rp-challenge-grid{ grid-template-columns:repeat(3,1fr); }
  .rp-challenge-grid > article:nth-child(5){ grid-column:auto; max-width:none; margin:0; }
}

/* ============================================================
   ⑦ スタッフの声(シンプル・上質カード)
   ============================================================ */
.rp-staff-section{
  --rpstaff-page-bg:#F8F5EF; --rpstaff-card-bg:#FFFFFF; --rpstaff-border:#ECE6DD;
  --rpstaff-title:#6A5536; --rpstaff-body:#8A7A63; --rpstaff-accent:#C9A46A; --rpstaff-link:#8A6A45;
  background:var(--rpstaff-page-bg);
}
.rp-staff-section .td-head-title{ color:var(--rpstaff-title); }
.rp-staff-section .td-head-title em{ color:var(--rpstaff-accent); }
.rp-staff-section .td-head-title em::after{ background:var(--rpstaff-accent); opacity:.25; }
.rp-staff-section .td-head-sub{ color:var(--rpstaff-body); }

.rp-staff-grid{ display:flex; flex-direction:column; gap:28px; max-width:900px; margin:0 auto; }

.rp-staff-card{
  background:var(--rpstaff-card-bg); border:1px solid var(--rpstaff-border);
  border-radius:4px; box-shadow:0 4px 16px rgba(106,85,54,.07);
  transition:transform .3s ease, box-shadow .3s ease;
  overflow:hidden;
}
.rp-staff-card:hover{
  transform:translateY(-5px);
  box-shadow:0 14px 28px rgba(106,85,54,.13);
}
.rp-staff-card[data-role="doctor"]{ background:#EEF3F3; border-color:#C6D6D6; }
.rp-staff-card[data-role="hygienist"]{ background:#F7EFEC; border-color:#E2CFC6; }
.rp-staff-card[data-role="reception"]{ background:#F7F1E4; border-color:#DECFA0; }
.rp-staff-card[data-role="doctor"] .rp-staff-photo,
.rp-staff-card[data-role="doctor"] .rp-staff-photo--placeholder{ background:#DEE9E9; }
.rp-staff-card[data-role="hygienist"] .rp-staff-photo,
.rp-staff-card[data-role="hygienist"] .rp-staff-photo--placeholder{ background:#EFDDD6; }
.rp-staff-card[data-role="reception"] .rp-staff-photo,
.rp-staff-card[data-role="reception"] .rp-staff-photo--placeholder{ background:#EFE2BE; }
.rp-staff-card[data-role="doctor"] .rp-staff-meta,
.rp-staff-card[data-role="doctor"] .rp-staff-tenure-num{ color:#3E7070; }
.rp-staff-card[data-role="hygienist"] .rp-staff-meta,
.rp-staff-card[data-role="hygienist"] .rp-staff-tenure-num{ color:#B15F49; }
.rp-staff-card[data-role="reception"] .rp-staff-meta,
.rp-staff-card[data-role="reception"] .rp-staff-tenure-num{ color:#9C7A28; }
.rp-staff-summary{
  display:flex; align-items:flex-start; gap:2rem;
  min-height:260px; padding:2rem;
  cursor:pointer; -webkit-tap-highlight-color:transparent; text-align:left;
}
.rp-staff-summary:focus-visible{ outline:2px solid var(--rpstaff-accent); outline-offset:-4px; }

.rp-staff-photo{
  flex:0 0 35%; max-width:35%; aspect-ratio:1/1; border-radius:2px; overflow:hidden;
  background:var(--rpstaff-page-bg);
}
.rp-staff-photo img{ width:100%; height:100%; object-fit:cover; object-position:center 22%; display:block; }
.rp-staff-photo--zoom img{ transform:scale(1.3); transform-origin:50% 18%; }
.rp-staff-photo--pos-right img{ object-position:78% 22%; }
.rp-staff-photo--doctor img{ object-position:72% 18%; }
.rp-staff-photo--placeholder{
  display:flex; align-items:center; justify-content:center;
  color:var(--rpstaff-body); font-size:.85rem;
}

.rp-staff-info{ flex:1; display:flex; flex-direction:column; min-width:0; }
.rp-staff-meta{
  font-size:1.05rem; color:var(--rpstaff-title); font-weight:700; letter-spacing:.04em;
  margin-bottom:1rem;
}
.rp-staff-tenure-num{
  font-size:1.35em; font-weight:800; color:var(--rpstaff-title);
  margin:0 .08em; font-family:'Cormorant Garamond', serif;
}
.rp-staff-headline{
  font-size:clamp(1.35rem,2.6vw,1.75rem); font-weight:800; color:var(--rpstaff-title);
  line-height:1.55; margin-bottom:1.1rem;
}
.rp-staff-teaser{
  font-size:.92rem; line-height:1.85; color:var(--rpstaff-body);
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden;
  min-height:calc(1.85em * 3);
}
.rp-staff-caret{
  display:inline-flex; align-items:center; gap:.35rem; font-size:.85rem;
  color:var(--rpstaff-link); font-weight:700;
  margin-top:1.1rem; align-self:flex-end;
  transition:opacity .25s ease;
}
.rp-staff-summary:hover .rp-staff-caret{ opacity:.7; }
.rp-staff-caret-ico{ display:inline-block; transition:transform .3s ease; }
.rp-staff-summary[aria-expanded="true"] .rp-staff-caret-ico{ transform:rotate(90deg); }

@media(max-width:680px){
  .rp-staff-summary{ flex-direction:column; min-height:0; padding:1.5rem; gap:1.25rem; }
  .rp-staff-photo{ flex:none; max-width:100%; width:100%; aspect-ratio:1/1; }
}

.rp-staff-qa{ text-align:left; margin-top:.5rem; }
.rp-staff-qa-item{ margin:0 0 1.4rem; }
.rp-staff-qa-item:last-child{ margin-bottom:0; }
.rp-staff-qa-item dt{
  display:block; font-size:.98rem; font-weight:800; color:var(--rpstaff-title);
  line-height:1.6; padding-bottom:.6rem; margin-bottom:.7rem;
  border-bottom:2px solid var(--rpstaff-accent);
}
.rp-staff-qa-item dd{
  font-size:.9rem; line-height:1.85; color:var(--rpstaff-body); margin:0;
}
.rp-staff-card[data-role="doctor"] .rp-staff-qa-item dt{ border-bottom-color:#8FB8B8; }
.rp-staff-card[data-role="hygienist"] .rp-staff-qa-item dt{ border-bottom-color:#DDB09E; }
.rp-staff-card[data-role="reception"] .rp-staff-qa-item dt{ border-bottom-color:#D9C177; }
.rp-staff-qa-panel{ display:grid; grid-template-rows:0fr; transition:grid-template-rows .35s ease; }
.rp-staff-qa-panel.is-open{ grid-template-rows:1fr; }
.rp-staff-qa-panel-inner{ overflow:hidden; }
.rp-staff-qa-panel .rp-staff-qa{
  padding:0 1.75rem 1.75rem; margin-top:0; border-top:1px dashed var(--rpstaff-border);
  padding-top:1.25rem;
}

/* ============================================================
   ⑧ タイムライン(成長イメージ) ― 成長ストーリー型
   ============================================================ */
.rp-tl2-section{ background:#fffafa; position:relative; overflow:hidden; }
.rp-tl2-section .section-inner{ position:relative; z-index:1; }
.rp-tl2{ max-width:1100px; margin:3.5rem auto 0; position:relative; padding:.5rem 0 0; }

/* 水彩にじみ背景シーン */
.rp-tl2-wc-scene{ position:absolute; inset:0; z-index:0; pointer-events:none; }
.rp-tl2-wc-svg{ width:100%; height:100%; display:block; }

/* 蔓:緑の細い曲線が葉を伴って這うパターン。スクロールで伸びるアニメーション */
.rp-tl2-vine{
  position:absolute; z-index:0; top:42px; bottom:36px; left:30px; width:3px;
  background-image:repeating-linear-gradient(
    to bottom,
    var(--pop-mint) 0,
    var(--pop-mint) 6px,
    transparent 6px,
    transparent 26px
  );
  pointer-events:none;
  clip-path:inset(0 0 100% 0);
}
.rp-tl2.visible .rp-tl2-vine{ animation:rp-tl2-grow 5s cubic-bezier(.4,0,.2,1) .3s forwards; }
@keyframes rp-tl2-grow{
  from{ clip-path:inset(0 0 100% 0); }
  to{ clip-path:inset(0 0 0% 0); }
}

.rp-tl2-item{
  display:flex; flex-direction:column; gap:1.4rem;
  position:relative; z-index:1; padding-bottom:4.5rem; margin-left:80px;
}
.rp-tl2-item:last-child{ padding-bottom:0; }

/* アイコン＋年ラベル＋見出しを一体化したヘッダーフレーム */
/* 章タイトル風ヘッダー（カードなし・オープンスタイル） */
.rp-tl2-header-frame{
  display:flex; flex-direction:column; gap:.9rem;
  padding:0; background:none; border:none; border-radius:0; box-shadow:none;
  position:static; overflow:visible;
}
.rp-tl2-header-frame::before{ display:none; }
.rp-tl2-chapter-row{ display:flex; align-items:center; gap:1.2rem; }
.rp-tl2-chapter-meta{ display:flex; flex-direction:column; gap:.5rem; }
.rp-tl2-step-badge{
  display:inline-flex; align-items:center; justify-content:center;
  font-family:'M PLUS Rounded 1c',sans-serif; font-weight:900;
  font-size:.72rem; letter-spacing:.18em;
  padding:3px 14px; border-radius:100px; color:#fff;
}
.rp-tl2-header-frame[data-color="beige"] .rp-tl2-step-badge { background:var(--rp-tl2-beige-deep); }
.rp-tl2-header-frame[data-color="green"] .rp-tl2-step-badge { background:var(--rp-tl2-green-deep); }
.rp-tl2-header-frame[data-color="blue"]  .rp-tl2-step-badge { background:var(--rp-tl2-blue-deep); }
.rp-tl2-header-frame[data-color="orange"] .rp-tl2-step-badge{ background:var(--rp-tl2-orange-deep); }
.rp-tl2-year-row{ display:flex; align-items:center; gap:.2em; }
.rp-tl2-year-deco{ font-size:.85em; opacity:.6; }

.rp-tl2-circle{
  width:76px; height:76px; border-radius:50%;
  background:#fff;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 4px 14px rgba(120,90,55,.15);
  position:absolute; left:-87px; top:0; z-index:2;
  transform:scale(.4); opacity:0;
  transition:transform .6s cubic-bezier(.34,1.56,.64,1), opacity .6s ease;
}
.rp-tl2-item.visible .rp-tl2-circle{ transform:scale(1); opacity:1; }
.rp-tl2-circle svg{ width:32px; height:32px; }
.rp-tl2-circle[data-color="beige"] { border:2.5px solid var(--rp-tl2-beige-deep); color:var(--rp-tl2-beige-deep); }
.rp-tl2-circle[data-color="green"] { border:2.5px solid var(--rp-tl2-green-deep); color:var(--rp-tl2-green-deep); }
.rp-tl2-circle[data-color="blue"]  { border:2.5px solid var(--rp-tl2-blue-deep);  color:var(--rp-tl2-blue-deep); }
.rp-tl2-circle[data-color="orange"]{ border:2.5px solid var(--rp-tl2-orange-deep);color:var(--rp-tl2-orange-deep); }

.rp-tl2-year{
  display:inline;
  font-family:'M PLUS Rounded 1c',sans-serif; font-weight:900;
  font-size:1.15rem; line-height:1.3; letter-spacing:.08em;
  padding:0; border-radius:0; background:none;
}
.rp-tl2-header-frame[data-color="beige"] .rp-tl2-year,
.rp-tl2-header-frame[data-color="beige"] .rp-tl2-year-deco { color:var(--rp-tl2-beige-deep); }
.rp-tl2-header-frame[data-color="green"] .rp-tl2-year,
.rp-tl2-header-frame[data-color="green"] .rp-tl2-year-deco { color:var(--rp-tl2-green-deep); }
.rp-tl2-header-frame[data-color="blue"]  .rp-tl2-year,
.rp-tl2-header-frame[data-color="blue"]  .rp-tl2-year-deco { color:var(--rp-tl2-blue-deep); }
.rp-tl2-header-frame[data-color="orange"] .rp-tl2-year,
.rp-tl2-header-frame[data-color="orange"] .rp-tl2-year-deco{ color:var(--rp-tl2-orange-deep); }

.rp-tl2-content{ display:grid; grid-template-columns:1.15fr 1fr; gap:2.6rem; align-items:center; }

.rp-tl2-text{ text-align:left; max-width:480px; }
.rp-tl2-heading{
  font-family:'M PLUS Rounded 1c', sans-serif; font-weight:900;
  font-size:1.75rem; color:var(--rp2-ink); margin:0; line-height:1.45;
}
/* rp-tl2-heading-rule-row/leaf/rule は heading をヘッダーフレームに移動したため削除 */

.rp-tl2-body p{ font-size:.92rem; line-height:2; color:var(--rp2-ink-soft); margin-bottom:.9rem; }
.rp-tl2-body p:last-child{ margin-bottom:0; }

/* 写真+メッセージを一体化した不透明なフレーム(背景の丸と葉のあしらいで奥行きを作る) */
.rp-tl2-photo-wrap{ position:relative; }
.rp-tl2-photo-deco{
  position:absolute; z-index:0; width:65%; aspect-ratio:1; border-radius:50%;
  top:-10%; right:-10%; opacity:.5;
}
.rp-tl2-photo-deco[data-color="beige"] { background:var(--rp-tl2-beige-light); opacity:.9; }
.rp-tl2-photo-deco[data-color="green"] { background:var(--rp-tl2-green-light); opacity:.9; }
.rp-tl2-photo-deco[data-color="blue"]  { background:var(--rp-tl2-blue-light);  opacity:.9; }
.rp-tl2-photo-deco[data-color="orange"]{ background:var(--rp-tl2-orange-light);opacity:.9; }

.rp-tl2-photo-frame{
  position:relative; z-index:1; background:#fff; border-radius:0; overflow:hidden;
  box-shadow:
    4px 4px 0 rgba(160,120,70,.18),
    8px 8px 0 rgba(160,120,70,.10),
    10px 16px 28px rgba(100,70,40,.22);
  opacity:0; transform:translateY(18px);
  transition:opacity .7s ease .1s, transform .7s ease .1s;
}
.rp-tl2-item.visible .rp-tl2-photo-frame{ opacity:1; transform:translateY(0); }

.rp-tl2-photo{ position:relative; width:100%; aspect-ratio:4/3; overflow:hidden; background:var(--rp2-bg-deep); }
.rp-tl2-photo img{ width:100%; height:100%; object-fit:cover; display:block; }
.rp-tl2-photo--doc{ background:#fff; }
.rp-tl2-photo--doc img{ object-fit:contain; padding:10px; box-sizing:border-box; }
.rp-tl2-photo--staff img{ object-position:72% 32%; }

/* フレーム下部の不透明なメッセージ帯(写真と重ならない一体型) */
.rp-tl2-voice{
  display:block; margin:0; padding:.85rem 1.2rem;
  font-size:.86rem; font-weight:700; line-height:1.6; text-align:center;
  color:var(--rp2-ink-soft);
}
.rp-tl2-photo-frame[data-color="beige"] .rp-tl2-voice { background:var(--rp-tl2-beige-light);  border-top:3px solid var(--rp-tl2-beige);  color:var(--rp-tl2-beige-deep); }
.rp-tl2-photo-frame[data-color="green"] .rp-tl2-voice { background:var(--rp-tl2-green-light);  border-top:3px solid var(--rp-tl2-green);  color:var(--rp-tl2-green-deep); }
.rp-tl2-photo-frame[data-color="blue"]  .rp-tl2-voice { background:var(--rp-tl2-blue-light);   border-top:3px solid var(--rp-tl2-blue);   color:var(--rp-tl2-blue-deep); }
.rp-tl2-photo-frame[data-color="orange"] .rp-tl2-voice{ background:var(--rp-tl2-orange-light); border-top:3px solid var(--rp-tl2-orange); color:var(--rp-tl2-orange-deep); }

/* 1年目だけ特別感を出す */
.rp-tl2-final-glow{
  position:absolute; z-index:0; top:-25%; right:-10%; width:60%; height:150%;
  background:radial-gradient(ellipse, rgba(244,208,130,.3), transparent 70%);
  pointer-events:none;
}
.rp-tl2-sparkle{
  position:absolute; z-index:2; color:var(--rp2-gold); pointer-events:none;
  animation:rp-tl2-sparkle-twinkle 2.4s ease-in-out infinite;
}
.rp-tl2-sparkle-1{ top:-12px; right:8%; font-size:1rem; }
.rp-tl2-sparkle-2{ bottom:8%; left:-14px; font-size:.8rem; animation-delay:1s; }
@keyframes rp-tl2-sparkle-twinkle{
  0%,100%{ opacity:.4; transform:scale(.85) rotate(-8deg); }
  50%{ opacity:1; transform:scale(1.15) rotate(10deg); }
}

@media(max-width:880px){
  .rp-tl2-content{ grid-template-columns:1fr; gap:1.6rem; }
  .rp-tl2-photo-wrap{ order:-1; }
  .rp-tl2-text{ max-width:none; }
}
@media(max-width:560px){
  .rp-tl2-vine{ left:23px; top:36px; }
  .rp-tl2-item{ margin-left:50px; gap:1rem; padding-bottom:3.2rem; }
  .rp-tl2-circle{ width:58px; height:58px; left:-55px; }
  .rp-tl2-circle svg{ width:24px; height:24px; }
  .rp-tl2-header-frame{ gap:.7rem; }
  .rp-tl2-heading{ font-size:1.25rem; }
}
@media(prefers-reduced-motion:reduce){
  .rp-tl2-vine{ clip-path:inset(0 0 0% 0) !important; animation:none !important; }
  .rp-tl2-circle, .rp-tl2-photo-frame{ opacity:1 !important; transform:none !important; transition:none !important; }
  .rp-tl2-sparkle{ animation:none; }
}

/* ============================================================
   ⑧ 安心して、成長できる環境。(数字+福利厚生を1セクションに統合)
   ============================================================ */
/* このセクションだけ幅を広くしてカードを大きく見せる */
.rp-assure-section .section-inner{ max-width:1440px; }
/* テキストは写真追加前と同じ中央寄せのまま。写真2枚はその左右に絶対配置で添える */
.rp-assure-top{ position:relative; margin-bottom:5.5rem; }
.rp-assure-photo{
  position:absolute; top:0;
  width:200px; pointer-events:none;
  background:var(--rp2-bg);
  animation:rp-assure-float 5s ease-in-out infinite;
}
.rp-assure-photo--left{ left:-70px; top:-20px; width:220px; }
.rp-assure-photo--right{ right:-70px; width:220px; animation-delay:-2.5s; }
.rp-assure-photo img{
  width:100%; display:block;
  mix-blend-mode:multiply;
}
@keyframes rp-assure-float{
  0%,100%{ transform:translateY(0) rotate(-1.5deg); }
  50%{ transform:translateY(-9px) rotate(1.5deg); }
}
@media(max-width:1240px){
  .rp-assure-photo{ display:none; }
  .rp-assure-top{ margin-bottom:2rem; }
}
@media(prefers-reduced-motion:reduce){
  .rp-assure-photo{ animation:none; }
}
@media(max-width:880px){
  .rp-assure-top{ margin-bottom:1.5rem; }
}
.rp-assure{ margin-top:0; }
.rp-assure-subtitle{
  text-align:center; font-family:'M PLUS Rounded 1c',sans-serif; font-weight:900;
  font-size:1.25rem; color:var(--rp2-ink); margin:0 0 1.4rem;
}
.rp-assure-divider{
  display:flex; align-items:center; justify-content:center; gap:.7rem;
  max-width:280px; margin:2.8rem auto;
}
.rp-assure-divider-line{ flex:1; height:1px; background:var(--rp2-gold); opacity:.4; }
.rp-assure-divider-leaf{ font-size:1.1rem; line-height:1; }
.rp-assure-block--benefits{
  max-width:100%; margin:0 auto;
  background:var(--rp2-paper); background-image:var(--rp2-noise); background-blend-mode:multiply;
  border:1px solid var(--rp2-paper-border); border-radius:28px;
  padding:2.2rem 1.2rem 2.4rem; box-shadow:var(--rp2-shadow);
}

/* 数字カード:木の実アクセント付き(福利厚生パネルと幅を揃える) */
.rp-stats-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.2rem; max-width:1140px; margin:0 auto; }
@media(max-width:680px){ .rp-stats-grid{ grid-template-columns:repeat(2,1fr); } }
.rp-stat-card{
  position:relative; background:#fff; border-radius:16px;
  padding:0 0 1.6rem; text-align:center;
  box-shadow:0 2px 16px rgba(120,90,55,.09), 0 0 0 1px rgba(180,150,100,.10);
  overflow:hidden; display:flex; flex-direction:column; align-items:center;
}
.rp-stat-bar{
  width:100%; padding:.7rem 1rem;
  font-family:'M PLUS Rounded 1c',sans-serif; font-weight:800;
  font-size:.88rem; letter-spacing:.04em; color:#fff; line-height:1.4;
  margin-bottom:.9rem;
}
.rp-stat-card[data-color="mint"]   .rp-stat-bar { background:var(--pop-mint); }
.rp-stat-card[data-color="coral"]  .rp-stat-bar { background:var(--pop-coral); }
.rp-stat-card[data-color="sky"]    .rp-stat-bar { background:var(--pop-sky); }
.rp-stat-card[data-color="yellow"] .rp-stat-bar { background:var(--pop-yellow); }
.rp-stat-num{
  font-size:2.8rem; font-weight:900; line-height:1;
  font-family:'M PLUS Rounded 1c',sans-serif;
}
.rp-stat-card[data-color="mint"]   .rp-stat-num{ color:var(--rp-tl2-green-deep); }
.rp-stat-card[data-color="coral"]  .rp-stat-num{ color:var(--rp-tl2-orange-deep); }
.rp-stat-card[data-color="sky"]    .rp-stat-num{ color:var(--rp-tl2-blue-deep); }
.rp-stat-card[data-color="yellow"] .rp-stat-num{ color:var(--rp-tl2-beige-deep); }
.rp-stat-unit{ font-size:1rem; font-weight:900; }

/* 福利厚生カード:アイコン付き(常に横並び1列、幅は数字カードのエリアと揃える) */
.rp-benefit-lead{
  text-align:center; font-size:.9rem; color:var(--rp2-ink-soft); margin:-.4rem 0 1.6rem; line-height:1.8;
}
/* 1440px超: 5列 / 1440px以下: flexで3+2中央配置 */
.rp-benefit-grid{
  display:flex; flex-wrap:wrap; justify-content:center; gap:1.2rem;
}
.rp-benefit-card{
  flex:0 0 calc(33.333% - .8rem); min-width:200px; max-width:380px;
  display:flex; flex-direction:column; align-items:center; text-align:center;
  position:relative; overflow:hidden;
  background:#fff; border-radius:20px;
  padding:1.8rem 1.2rem 1.6rem;
  box-shadow:0 4px 18px rgba(120,90,55,.09), 0 0 0 1px rgba(180,150,100,.10);
  transition:transform .25s, box-shadow .25s;
}
.rp-benefit-card::before{
  content:''; position:absolute; top:0; left:0; right:0; height:5px;
  border-radius:20px 20px 0 0;
}
.rp-benefit-card[data-color="green"]::before  { background:var(--rp-tl2-green-deep); }
.rp-benefit-card[data-color="coral"]::before  { background:var(--rp-tl2-orange-deep); }
.rp-benefit-card[data-color="sky"]::before    { background:var(--rp-tl2-blue-deep); }
.rp-benefit-card[data-color="purple"]::before { background:#9B72C8; }
.rp-benefit-card[data-color="yellow"]::before { background:var(--rp-tl2-beige-deep); }
.rp-benefit-sparkle{
  position:absolute; top:.75rem; right:.75rem;
  font-size:.6rem; opacity:.55; line-height:1;
  pointer-events:none; user-select:none;
}
.rp-benefit-card[data-color="green"]  .rp-benefit-sparkle { color:var(--rp-tl2-green-deep); }
.rp-benefit-card[data-color="purple"] .rp-benefit-sparkle { color:#9B72C8; }
.rp-benefit-icon-wrap{
  width:64px; height:64px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  margin-bottom:1.1rem; flex-shrink:0;
}
.rp-benefit-card[data-color="green"]  .rp-benefit-icon-wrap { background:var(--pop-mint-light);   color:var(--rp-tl2-green-deep); }
.rp-benefit-card[data-color="coral"]  .rp-benefit-icon-wrap { background:var(--pop-coral-light);  color:var(--rp-tl2-orange-deep); }
.rp-benefit-card[data-color="sky"]    .rp-benefit-icon-wrap { background:var(--pop-sky-light);    color:var(--rp-tl2-blue-deep); }
.rp-benefit-card[data-color="purple"] .rp-benefit-icon-wrap { background:#F0E8FF; color:#7B52A6; }
.rp-benefit-card[data-color="yellow"] .rp-benefit-icon-wrap { background:var(--pop-yellow-light); color:var(--rp-tl2-beige-deep); }
.rp-benefit-svg{ width:30px; height:30px; }
.rp-benefit-label{
  font-family:'M PLUS Rounded 1c',sans-serif; font-weight:800;
  font-size:1rem; color:var(--rp2-ink); line-height:1.5; margin-bottom:.5rem;
  text-wrap:balance; overflow-wrap:break-word;
}
.rp-benefit-note{
  font-size:.8rem; color:var(--rp2-ink-soft); line-height:1.8;
}
/* 超大型画面では5列に戻す */
@media(min-width:1600px){
  .rp-benefit-card{ flex:0 0 calc(20% - .96rem); max-width:none; }
}
/* スマホ・タブレット: 2列 */
@media(max-width:680px){
  .rp-benefit-card{ flex:0 0 calc(50% - .6rem); }
}
/* 小スマホ: 1列 */
@media(max-width:400px){
  .rp-benefit-card{ flex:0 0 100%; max-width:340px; }
}

/* ============================================================
   ⑩.5 吉野院長 背景写真＋吹き出し（理事長セクションと同スタイル）
   ============================================================ */
.rp-yoshino-section{
  position:relative; background:var(--rp2-bg); overflow:hidden; padding:0;
}
/* 背景写真：全幅フェード（理事長と同じ手法、右側に人物） */
.rp-yoshino-bg-vis{
  position:relative;
  width:100vw; left:50%; transform:translateX(-50%);
  overflow:hidden;
}
.rp-yoshino-bg-vis img{
  width:100%; max-height:420px; object-fit:contain; object-position:right bottom; display:block;
  mix-blend-mode:multiply;
  -webkit-mask-image:
    linear-gradient(to left, black 35%, transparent 85%),
    linear-gradient(to bottom, black 75%, transparent 100%);
  -webkit-mask-composite:source-in;
  mask-image:
    linear-gradient(to left, black 35%, transparent 85%),
    linear-gradient(to bottom, black 75%, transparent 100%);
  mask-composite:intersect;
}
/* テキストオーバーレイ：左側に配置 */
.rp-yoshino-overlay{
  position:absolute; inset:0; display:flex; align-items:center;
}
.rp-yoshino-overlay .section-inner{
  display:flex; flex-direction:column; justify-content:center;
  max-width:900px;
}
/* 吹き出し */
.rp-yoshino-bubble{
  width:52%; position:relative;
  border:2px solid rgba(160,120,70,.35); border-radius:20px;
  padding:2rem 2.2rem; background:rgba(255,253,248,.75);
  backdrop-filter:blur(4px);
}
.rp-yoshino-deco-mark{
  position:absolute; top:-10px; left:1.4rem;
  width:26px; height:10px; border-top:2px solid rgba(160,120,70,.5);
  border-radius:2px; display:block;
}
.rp-yoshino-deco-mark::before{
  content:''; position:absolute; top:-8px; left:0;
  width:8px; height:8px;
  border:2px solid rgba(160,120,70,.45); border-radius:50%;
}
.rp-yoshino-bubble p{
  font-family:'M PLUS Rounded 1c', sans-serif; font-size:1rem;
  line-height:2; color:var(--rp2-ink); margin:0;
}
.rp-yoshino-gap{ margin-top:1.2rem !important; }
.rp-yoshino-hl{
  background:linear-gradient(transparent 75%, rgba(240,210,100,.55) 75%);
  padding-bottom:.05em;
}
.rp-yoshino-caption{
  font-family:'M PLUS Rounded 1c', sans-serif; font-weight:700;
  font-size:.85rem; color:var(--rp2-ink-soft);
  margin-top:.8rem; padding-top:.5rem;
  border-top:1px solid rgba(160,120,70,.3);
  width:52%;
}
@media(max-width:680px){
  .rp-yoshino-bg-vis{ width:100%; left:auto; transform:none; }
  .rp-yoshino-overlay{ position:relative; inset:auto; padding:1.6rem 0 2rem; }
  .rp-yoshino-bubble{ width:100%; padding:1.4rem 1.4rem; }
  .rp-yoshino-bubble p{ font-size:.9rem; }
  .rp-yoshino-caption{ width:100%; }
}

/* ============================================================
   ⑪ あなたと、一緒に成長したい。(3カード・絵本のような優しいデザイン)
   ============================================================ */
.rp-people-section .section-inner{ max-width:1100px; }
.rp-people-grid{
  position:relative; display:grid; grid-template-columns:repeat(3,1fr); gap:2rem;
  margin:0 auto;
}
.rp-people-bg-deco{ position:absolute; z-index:0; border-radius:50%; pointer-events:none; opacity:.5; }
.rp-people-bg-deco-1{ width:200px; height:200px; top:-2rem; left:-60px; background:radial-gradient(circle, var(--rp-people-green), transparent 70%); }
.rp-people-bg-deco-2{ width:180px; height:180px; bottom:-1rem; right:-50px; background:radial-gradient(circle, var(--rp-people-orange), transparent 70%); }
.rp-people-bg-leaf{ position:absolute; z-index:0; pointer-events:none; opacity:.4; }
.rp-people-bg-leaf-1{ width:46px; top:8%; right:6%; transform:rotate(18deg); }
.rp-people-bg-leaf-2{ width:40px; bottom:6%; left:4%; transform:rotate(-15deg); }

.rp-people-card{
  position:relative; z-index:1;
  display:flex; flex-direction:column; align-items:stretch; text-align:left;
  background:var(--rp2-paper); background-image:var(--rp2-noise); background-blend-mode:multiply;
  border:1px solid var(--rp2-paper-border); border-radius:22px; overflow:hidden;
  padding:0 0 2rem;
  box-shadow:var(--rp2-shadow);
  opacity:0; transform:translateY(20px);
  transition:opacity .6s ease, transform .6s ease, box-shadow .35s ease;
}
.rp-people-grid.visible .rp-people-card{ opacity:1; transform:translateY(0); }
.rp-people-card:nth-of-type(2){ transition-delay:.12s; }
.rp-people-card:nth-of-type(3){ transition-delay:.24s; }
.rp-people-header{
  width:100%; padding:.85rem 1.4rem;
  font-family:'M PLUS Rounded 1c', sans-serif; font-weight:900;
  font-size:1rem; color:#fff; text-align:center; line-height:1.5;
  margin-bottom:1.4rem;
}
.rp-people-card[data-color="green"]  .rp-people-header { background:var(--pop-mint);   color:#fff; }
.rp-people-card[data-color="beige"]  .rp-people-header { background:var(--pop-coral);  color:#fff; }
.rp-people-card[data-color="orange"] .rp-people-header { background:var(--pop-sky);    color:#fff; }
@media(hover:hover){
  .rp-people-grid.visible .rp-people-card:hover{
    transform:translateY(-8px); box-shadow:0 24px 40px rgba(120,90,55,.22);
  }
}
.rp-people-icon{ display:block; font-size:2.4rem; margin-bottom:1rem; line-height:1; }
.rp-people-title{
  font-family:'M PLUS Rounded 1c', sans-serif; font-weight:900; font-size:1.1rem;
  color:var(--rp2-ink); margin:0 0 .8rem; line-height:1.5;
}
.rp-people-text{ font-size:.9rem; line-height:1.85; color:var(--rp2-ink-soft); margin:0; padding:0 1.6rem; }

/* テキスト＋写真の横並びアウトロ */
/* 吉野院長イメージ（カード直下、全幅フェード） */
.rp-people-yoshino-vis{
  position:relative;
  width:100vw; left:50%; transform:translateX(-50%);
  overflow:hidden; margin-top:2rem;
}
.rp-people-yoshino-vis img{
  width:100%; max-height:420px; object-fit:contain; object-position:center bottom; display:block;
  mix-blend-mode:multiply;
  -webkit-mask-image:linear-gradient(to right, transparent 0%, black 7%, black 93%, transparent 100%);
  mask-image:linear-gradient(to right, transparent 0%, black 7%, black 93%, transparent 100%);
}

@media(max-width:880px){
  .rp-people-grid{ grid-template-columns:1fr; max-width:420px; gap:1.6rem; }
  .rp-people-yoshino-vis{ width:100%; left:auto; transform:none; }
  .rp-people-yoshino-vis img{
    max-height:280px;
    -webkit-mask-image:none;
    mask-image:none;
  }
}
@media(prefers-reduced-motion:reduce){
  .rp-people-card{ transition:opacity .3s ease; }
  .rp-people-card:nth-of-type(2), .rp-people-card:nth-of-type(3){ transition-delay:0s; }
}

/* ============================================================
   ⑩ 院長メッセージ（リデザイン）
   ============================================================ */
.rp-msg-section{
  background:linear-gradient(168deg, #FFFDF5 0%, #FBF7EC 55%, #F5F0E4 100%);
  position:relative; overflow:hidden;
}
.rp-msg-bg{ position:absolute; inset:0; pointer-events:none; z-index:0; }
.rp-msg-bg-svg{ width:100%; height:100%; display:block; }
.rp-msg-section .section-inner{ position:relative; z-index:1; max-width:760px; }

/* ラベル */
.rp-msg-label{
  text-align:center; font-size:.7rem; letter-spacing:.3em; text-transform:uppercase;
  color:#8BAF7C; font-weight:700; margin:0 0 2.8rem; display:block;
}

.rp-msg-section .section-inner{ max-width:900px; }

/* キャッチコピー（主役） */
.rp-msg-catch{ flex:0 0 52%; margin-left:auto; text-align:left; position:relative; z-index:2; }
.rp-msg-catch-text{
  font-family:'M PLUS Rounded 1c', sans-serif; font-weight:900;
  font-size:2.4rem; line-height:1.8; color:#3D2E1E; margin:0;
  letter-spacing:.02em;
}
.rp-msg-catch-text em{
  font-style:normal; color:#6A9F6A;
  position:relative; display:inline-block;
}
.rp-msg-catch-text em::after{
  content:''; position:absolute; left:0; right:0; bottom:-.05em;
  height:6px; border-radius:3px;
  background:linear-gradient(to right, rgba(200,232,160,.7), rgba(240,220,120,.5));
}

/* ヒービジュアル */
.rp-msg-hero{
  position:relative; margin-bottom:3rem;
}
.rp-msg-hero-vis{
  position:relative;
  width:100vw;
  left:50%;
  transform:translateX(-50%);
  overflow:hidden;
}
.rp-msg-hero-vis img{
  width:100%; height:auto; max-height:420px; object-fit:cover; object-position:center top; display:block;
  border-radius:0;
  -webkit-mask-image:
    linear-gradient(to right, transparent 0%, black 7%, black 93%, transparent 100%),
    linear-gradient(to bottom, black 88%, transparent 100%);
  -webkit-mask-composite:source-in;
  mask-image:
    linear-gradient(to right, transparent 0%, black 7%, black 93%, transparent 100%),
    linear-gradient(to bottom, black 88%, transparent 100%);
  mask-composite:intersect;
}

/* 本文 */
.rp-msg-body{ max-width:640px; margin:0 auto 3.5rem; }
.rp-msg-body p{
  font-size:1.02rem; line-height:2.25; color:#4A3828;
  margin-bottom:2rem;
}
.rp-msg-body p:last-child{ margin-bottom:0; }

/* 引用強調ブロック */
.rp-msg-quote{
  position:relative; margin:2.5rem 0;
  padding:.9rem 1.6rem .9rem 2rem;
  border-left:4px solid #8BAF7C; border-radius:0 16px 16px 0;
  background:rgba(139,175,124,.09);
  font-family:'M PLUS Rounded 1c', sans-serif; font-weight:800;
  font-size:1.15rem; color:#4A6840; line-height:1.9;
}

/* クロージング */
.rp-msg-closing{ text-align:center; padding-top:1rem; }
.rp-msg-closing-line{
  font-family:'M PLUS Rounded 1c', sans-serif; font-weight:900;
  font-size:1.5rem; color:#3D2E1E; margin-bottom:2.5rem;
  line-height:1.6;
}
.rp-msg-sig-wrap{
  display:inline-flex; flex-direction:column; align-items:flex-start;
  gap:.3rem; padding:1.2rem 2rem; border-top:1px solid rgba(160,120,80,.2);
}
.rp-msg-sig-role{ font-size:.75rem; letter-spacing:.22em; color:#7A6050; }
.rp-msg-sig-name{
  font-family:'M PLUS Rounded 1c', sans-serif; font-weight:700;
  font-size:1.2rem; color:#3D2E1E; letter-spacing:.06em;
}
.rp-msg-sig-en{
  font-size:.68rem; letter-spacing:.26em; color:#8BAF7C; text-transform:uppercase;
}

/* モバイル */
@media(max-width:680px){
  .rp-msg-catch-text{ font-size:1.65rem; }
  .rp-msg-quote{ font-size:.97rem; padding:.8rem 1.2rem .8rem 1.4rem; }
  .rp-msg-closing-line{ font-size:1.25rem; }
  /* ヒービジュアル：モバイルは通常フローで高さ制限 */
  .rp-msg-hero-vis{
    width:100%; left:auto; transform:none;
    overflow:hidden;
  }
  .rp-msg-hero-vis img{
    max-height:60vw; width:100%; object-fit:cover; object-position:center 20%;
    -webkit-mask-image:linear-gradient(to bottom, black 60%, transparent 100%);
    mask-image:linear-gradient(to bottom, black 60%, transparent 100%);
    -webkit-mask-composite:source-over;
    mask-composite:add;
  }
}

/* 写真プレースホルダー共通(顔写真など実画像が無い箇所) */
.rp-photo-ph{
  background:var(--rp2-bg-deep); border-radius:14px; display:flex; align-items:center;
  justify-content:center; color:var(--rp2-ink-soft); font-size:.85rem; font-weight:600; letter-spacing:.03em;
}

/* ============================================================
   エピローグ背景 (⑪〜⑭ 絵本のラストページ)
   ============================================================ */
.rp-epilogue{
  position:relative; overflow:hidden;
  background:#fffafa;
}
.rp-epilogue .td-section{ background:transparent; }
/* 水彩にじみ + 木漏れ日（CSS グラデーションで実装） */
.rp-epilogue::before{
  content:''; position:absolute; inset:0; z-index:0; pointer-events:none;
  background:
    radial-gradient(ellipse 500px 380px at 88%  8%, rgba(212,196,158,.24) 0%, transparent 70%),
    radial-gradient(ellipse 460px 350px at  8% 38%, rgba(191,216,192,.20) 0%, transparent 70%),
    radial-gradient(ellipse 380px 300px at 72% 82%, rgba(245,210,172,.18) 0%, transparent 70%),
    radial-gradient(ellipse 300px 480px at 18%  2%, rgba(255,248,208,.26) 0%, transparent 60%),
    radial-gradient(ellipse 260px 400px at 82% 30%, rgba(255,244,196,.20) 0%, transparent 60%),
    radial-gradient(ellipse 200px 320px at 45% 60%, rgba(210,225,205,.16) 0%, transparent 65%);
}
/* コンテンツセクションを装飾レイヤーの前面に */
.rp-epilogue > *:not(.rp-epilogue-scene){ position:relative; z-index:1; }
.rp-epilogue-scene{
  position:absolute; top:0; left:0; right:0; bottom:0;
  pointer-events:none; overflow:hidden;
}

/* 葉っぱ */
.rpe-leaf{ position:absolute; pointer-events:none; }
.rpe-leaf-1{ width:130px; height:172px; top:111px;  right:5%;   transform:rotate(22deg);   filter:blur(1px);   opacity:.16; }
.rpe-leaf-2{ width:90px;  height:117px; top:702px;  left:2%;    transform:rotate(-28deg);  filter:blur(1.5px); opacity:.18; }
.rpe-leaf-3{ width:112px; height:144px; top:1663px; right:13%;  transform:rotate(10deg);   filter:blur(1px);   opacity:.14; }
.rpe-leaf-4{ width:76px;  height:98px;  top:2859px; left:7%;    transform:rotate(-20deg);  filter:blur(2px);   opacity:.16; }
.rpe-leaf-5{ width:50px;  height:64px;  top:1220px; left:15%;   transform:rotate(36deg);   filter:blur(.5px);  opacity:.20; }
.rpe-leaf-6{ width:40px;  height:50px;  top:2255px; right:19%;  transform:rotate(-14deg);  filter:blur(1px);   opacity:.22; }
.rpe-leaf-7{ width:60px;  height:76px;  top:2992px; right:37%;  transform:rotate(28deg);   filter:blur(1px);   opacity:.18; }
.rpe-leaf-8{ width:44px;  height:56px;  top:2236px; left:30%;   transform:rotate(-35deg);  filter:blur(1.5px); opacity:.15; }

/* 成長の道（点線） */
.rpe-dotpath{
  position:absolute; top:1294px; left:0; width:100%; height:2403px;
  opacity:.26; pointer-events:none;
}

/* スパークル */
.rpe-sparkle{
  position:absolute; pointer-events:none; user-select:none;
  color:#B8A878; line-height:1;
}
.rpe-sp-1{ font-size:.7rem;  top:444px;  left:28%;  opacity:.35; }
.rpe-sp-2{ font-size:.55rem; top:1922px; right:30%; opacity:.40; }

/* ============================================================
   最終CTA(見学のお誘い): 写真+見出しの2カラムカード
   ============================================================ */
.rp-finalcta-card{
  position:relative; display:flex; align-items:stretch;
  background:#fff; border:1px solid #ECE1CE; border-radius:28px;
  box-shadow:0 22px 50px rgba(106,85,54,.16);
  max-width:1040px; margin:3rem auto 0; overflow:visible;
  transition:transform .35s ease, box-shadow .35s ease;
}
.rp-finalcta-card:hover{
  transform:translateY(-6px);
  box-shadow:0 30px 60px rgba(106,85,54,.22);
}
.rp-finalcta-deco{
  position:absolute; inset:0; overflow:hidden; border-radius:28px;
  pointer-events:none; z-index:0;
}
.rp-finalcta-glow{ position:absolute; border-radius:50%; filter:blur(30px); opacity:.5; }
.rp-finalcta-glow-1{ width:220px; height:220px; top:-60px; right:10%; background:radial-gradient(circle, #FFF3D1, transparent 70%); }
.rp-finalcta-glow-2{ width:180px; height:180px; bottom:-50px; left:20%; background:radial-gradient(circle, #E9F3E4, transparent 70%); }
.rp-finalcta-leaf{ position:absolute; width:32px; opacity:.13; }
.rp-finalcta-leaf-1{ top:10%; right:6%; transform:rotate(18deg); }
.rp-finalcta-leaf-2{ bottom:12%; left:38%; width:24px; transform:rotate(-16deg); }
.rp-finalcta-sparkle{ position:absolute; color:#C9A46A; opacity:.3; font-size:.65rem; }
.rp-finalcta-sp-1{ top:16%; left:44%; }
.rp-finalcta-sp-2{ bottom:20%; right:30%; font-size:.5rem; }

.rp-finalcta-photo{
  position:relative; z-index:1;
  flex:0 0 34%; max-width:34%;
  display:flex; align-items:center; justify-content:center;
  padding-left:2rem;
}
.rp-finalcta-photo img{
  width:100%; max-width:250px; height:auto; display:block;
  filter:drop-shadow(0 16px 20px rgba(60,45,20,.22));
}
.rp-finalcta-content{
  position:relative; z-index:1;
  flex:1; min-width:0; text-align:left;
  padding:2rem 2.5rem 2rem 1rem;
  display:flex; flex-direction:column; justify-content:center;
}
.rp-finalcta-eyebrow{
  display:inline-flex; align-self:flex-start; align-items:center; gap:.35rem;
  font-size:.75rem; font-weight:800; letter-spacing:.12em;
  color:#B5915A; margin-bottom:.5rem; text-transform:uppercase;
}
.rp-finalcta-title{
  font-size:clamp(1.5rem,2.8vw,2.05rem); font-weight:900; color:#6A5536;
  line-height:1.3; margin:0 0 .7rem;
}
.rp-finalcta-text{ font-size:.9rem; line-height:1.65; color:#8A7A63; margin:0 0 .35rem; }
.rp-finalcta-btns{ display:flex; flex-wrap:nowrap; gap:.85rem; margin-top:.9rem; }
.rp-finalcta-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.4rem; white-space:nowrap;
  padding:.75rem 1.5rem; border-radius:9999px; font-weight:800; font-size:.88rem;
  text-decoration:none; transition:transform .25s ease, box-shadow .25s ease, background .25s ease;
}
.rp-finalcta-btn--primary{
  background:#1D9E75; color:#fff; box-shadow:0 14px 26px rgba(29,158,117,.32);
}
.rp-finalcta-btn--primary:hover{ transform:translateY(-3px); box-shadow:0 18px 32px rgba(29,158,117,.42); }
.rp-finalcta-btn--secondary{
  background:#fff; color:#1D9E75; border:2px solid #1D9E75;
}
.rp-finalcta-btn--secondary:hover{ transform:translateY(-3px); background:#F0FAF5; }

@media(max-width:820px){
  .rp-finalcta-card{ flex-direction:column; overflow:hidden; }
  .rp-finalcta-photo{ flex:none; max-width:100%; padding:2rem 0 0; justify-content:center; }
  .rp-finalcta-photo img{ max-width:220px; margin-top:0; }
  .rp-finalcta-content{ padding:1.5rem 1.75rem 2.25rem; align-items:center; text-align:center; }
  .rp-finalcta-eyebrow{ align-self:center; }
  .rp-finalcta-btns{ flex-direction:column; width:100%; }
  .rp-finalcta-btn{ justify-content:center; width:100%; }
}
.rpe-sp-3{ font-size:.62rem; top:2651px; left:52%;  opacity:.32; }