/*==================================================================================================================================

  *メイン画像

==================================================================================================================================*/
/* ベーススタイル */
.main-image {
  padding: 0;
  position: relative;
}

.main-image img {
  width: 100%;
  height: auto;
}

/* デスクトップ版画像（初期設定：表示） */
.desktop-image {
  display: block;
}

/* モバイル版画像（初期設定：非表示） */
.mobile-image {
  display: none;
}

/* バナー */
.fv-banner {
  position: absolute;
  left: 30px;
  bottom: 30px;
  z-index: 10;
  display: block;
  width: min(48%, 700px);
  transition: opacity 0.3s ease;
}

.fv-banner:hover {
  opacity: 0.85;
}

.fv-banner img {
  width: 100%;
  height: auto;
  display: block;
}


/* モバイルサイズ用スタイル */
@media only screen and (max-width: 767px) {
  /* モバイル版画像を表示 */
  .mobile-image {
    display: block;
  }

  /* デスクトップ版画像を非表示 */
  .desktop-image {
    display: none;
  }
	
   .fv-banner {
    position: static;
    width: 100%;
    margin: 0;
  }
}

/* デスクトップ版のメディアクエリ（767px以上） */
@media only screen and (min-width: 768px) {
  /* デスクトップ版画像を表示 */
  .desktop-image {
    display: block;
  }

  /* モバイル版画像を非表示 */
  .mobile-image {
    display: none;
  }
}

/*------------------- ヘッダー -------------------*/
header{
	position:absolute; 
	z-index:10; left:0; top:0; width:100%;
	box-sizing:border-box; 
	position: relative;
	top: 0;
	z-index: 10;
}

/* 横並び骨組み */
header .h_inbox{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;background: #ffffffad;}

/* 左：ロゴ＋H1 */
header .h_left{width:min(40%,520px)}
header .h_logo{
  display:flex;
  align-items: flex-start;
  flex-direction: column;
}

@media screen and (max-width: 768px) {
  header .h_logo {
    display: none;
  }
}
header .h_left .h_logo img{width:auto;max-width:45%;height:auto}
header h1{
  color: var(--c-text);
  font-size: clamp(12px, 1.1vw, 14px);
  letter-spacing:.14em; line-height:1.4;
  border-radius:4px;
	padding-left: 10px;
}

/* 右：縦積みコンテナ */
.h_right{display:flex;align-items:flex-start;}
.h_stack{display:flex;flex-direction:column;gap:10px}

/* ベージュの情報バッジ */
.info-badge .badge-inner{
  position:relative;
  display:flex; align-items:center; gap:10px;
  background:#e4cdb7; /* ベージュ */
  color:#5b4634; padding:10px 14px; border-radius:8px;
  box-shadow:0 2px 6px rgba(0,0,0,.06);
}
.info-badge .badge-ttl{font-weight:700; font-size:clamp(13px,1.1vw,14px)}
.info-badge .badge-sub{font-size:clamp(12px,.95vw,13px)}
.info-badge .badge-sub .sun{color:#c64a5d; font-weight:700}
.info-badge .badge-time{font-size:clamp(11px,.9vw,12px); opacity:.85}
.info-badge .badge-leaf{margin-left:auto; color:#9b7c63}

/* CTA 共通 */
.h_contact{display:flex; align-items:stretch;}
.cta{
  display:flex; 
  flex-direction:column; 
  justify-content:center;
  min-width: 240px; 
  text-decoration:none; 
  color:#fff;
  padding:8px 12px; 
  box-shadow:0 2px 8px rgba(0,0,0,.08);
  text-align: center;
}
.cta .cta-lbl{font-size:clamp(12px,1vw,13px); opacity:.95}
.cta .cta-main{
  display:flex; 
  align-items:center; gap:8px;
  margin-top:2px; 
  line-height:1;
  justify-content: center;
}
.cta .ico{display:inline-flex}
.cta .num{font-weight:800; letter-spacing:.04em; font-size:clamp(16px,1.5vw,20px)}
.cta .cta-note{font-size:clamp(10px,.8vw,12px); opacity:.9; margin-top:3px}

/* TEL */
.cta-tel{
	background:linear-gradient(135deg, #6d8d7c 0%, #6d8d7c 45%, #6d8d7c 100%);
}
.cta-tel:hover{
	background: #4a90e2;
  color: #fff;
  filter:brightness(0.98);
}

/* WEB */
.cta-web{
	background:#b3cbc0;
}
.cta-web .num{
  font-weight:700;
}
.cta-web:hover{
	background: #a2cffe;
  filter:brightness(0.98);
  color: #fff;
}

/* LINE */
.cta-line{
	background:#64b172;
	color: #fff;
/*   min-width: 170px; */
}
.cta-line .num{
  font-weight:700;
}
.cta-line:hover{
  background: #7dc58a;
  filter:brightness(0.98);
  color: #fff;
}

/* 右端：メニューボタン */
.menu-btn{
  display:flex; 
  flex-direction:column; 
  align-items:center; 
  justify-content:center;
  gap:6px; 
  padding: 19px 12px; 
  min-width:88px;
  background: #b5ab9f;
  color:#fff; 
  border:none;
  box-shadow:0 2px 8px rgba(0,0,0,.08); 
  cursor:pointer;
}
.menu-btn .menu-text{font-size:12px; letter-spacing:.08em}
.menu-btn .bars{display:flex; flex-direction:column; gap:5px; width:30px}
.menu-btn .bars span{display:block; height:2px; background:#fff; border-radius:2px}

/* Tablet */
@media (max-width: 992px){
  header .h_left{width:52%}
  .cta{min-width:220px}
}

/* Mobile */
@media (max-width: 768px){
  header .h_inbox{flex-wrap:wrap; gap:10px}
  header .h_left{width:100%}
  header .h_logo{gap:10px}
  header .h_left .h_logo img{max-width:180px}
  header h1{font-size:12px; letter-spacing:normal;padding-left: 10px;}

  .h_right{width:100%; align-items:stretch}
  .h_stack{flex:1}
  .info-badge{order:1}
  .h_contact{order:2; gap:2px}
  .cta{flex:1; min-width:auto;padding: 5px;}
  .menu-btn{order:3; margin-left:auto; min-width:76px}
  .cta .cta-main {flex-direction: column;}
  .cta-line{height: 65px;}
}
@media screen and (min-width: 769px) {
  .h_inbox {
    display: none !important;
  }
}
@media screen and (max-width: 768px) {
  .h_inbox {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 9999;
    background: #fff;
  }

  body {
    padding-top: 30px;
  }
}
/* =========================================
   ナビ
========================================= */
/* ------------- メニュー本体 ------------- */
.nav{
  width:100%;
  background:#fff;
  padding:14px 0;
  display:flex; justify-content:center; align-items:center;
  position:relative; transition:.3s ease; z-index:5;
  box-shadow:0 2px 12px rgba(0,0,0,.06);
  font-size: 0.98rem;
}

/* スクロール固定用クラス（既存そのまま） */
.nav.fixed{
  position: fixed;
  top:0; 
  left:0; 
  width:100%;
  background:#fff; 
  z-index:15;
}

/* リスト：均等配置＋区切り線 */
.nav-list{
  display:flex; justify-content:space-between; gap:0;
  width:100%; list-style:none; margin:0; padding:0;
  border-left:1px solid var(--c-border);
}
.nav-item{
  position:relative;
  flex: 1;
  text-align: center;
  border-right: 1px solid var(--c-border);
}

/* リンク：縦並びで中央寄せ（上：日本語／下：英字） */
.nav-item > a,
.nav-item > p{
  display:flex; 
  flex-direction:column; 
  align-items:center; 
  justify-content:center;
  font-size: 1.5rem;
  text-decoration:none; color:var(--c-text-muted);
  font-weight:700; letter-spacing:.08em;
  padding:18px 10px 16px;
  position:relative;
  /* 下線アニメ（背景サイズで） */
  background: linear-gradient(var(--c-primary) 0 0) bottom / 0 2px no-repeat;
  transition: background-size .25s ease, color .25s ease, opacity .25s ease;
	line-height: 150%;
}

/* 下段の英字は data-en から生成 */
.nav-item > a::after,
.nav-item > p::after{
  content: attr(data-en);
  display:block; margin-top:8px;
  font-weight:600; letter-spacing:.18em;
  font-size:1.4rem;
	color: #6d8d7c;
  text-transform: lowercase;
}

/* ホバー：文字色＋下線を伸ばす */
.nav-item > a:hover,
.nav-item > p:hover{
  color:#7a5a2f; /* ほんのりブラウン寄り（好みで調整） */
  background-size: 100% 2px;
}

/* アクティブ状態（任意：クラス .is-current を付与） */
.nav-item.is-current > a,
.nav-item.is-current > p{
  color:#7a5a2f;
  background-size:100% 2px;
}
@media (max-width: 1050px) {
  .nav {
    display: none;
  }
}

/* ------------- ドロップダウン ------------- */
.has-dropdown .dropdown{
  position:absolute; top:100%; left:50%;
  transform:translate(-50%, 12px);
  background:#fff; list-style:none; margin:0; padding:10px 0;
  min-width:220px; border-radius:10px;
  box-shadow:0 8px 20px rgba(0,0,0,.12);
  opacity:0; visibility:hidden; transition:.25s ease;
  border:1px solid var(--c-border);
}
.has-dropdown:hover .dropdown{
  opacity:1; visibility:visible; transform:translate(-50%, 8px);
  z-index:20;
}
.dropdown li{padding:0}
.dropdown li a{
  display:block; padding:10px 5px;
  color:var(--c-text-muted); font-weight:600; font-size:14px;
  text-decoration:none; transition:.2s ease;
}
.dropdown li a:hover{
  background:var(--c-bg);
  color:var(--c-text);
  padding-left:22px;
}

/* ------------- レスポンシブ ------------- */
@media (max-width: 1024px){
  .nav-item > a{padding:16px 8px}
  .nav-item > a::after{font-size:13px; letter-spacing:.16em}
}
@media (max-width: 840px){
  .nav-list{flex-wrap:wrap}
  .nav-item{flex:1 1 33.33%}
}
@media (max-width: 600px){
  .nav-item{flex:1 1 50%}
  .nav-item > a{padding:14px 6px}
}

/* ----------------------------------------------------
タブレット用（768px〜1024px）
---------------------------------------------------- */
@media screen and (min-width: 768px) and (max-width: 1024px) {
}

/* ----------------------------------------------------
スマホ用（〜767px）
---------------------------------------------------- */
@media (max-width: 768px) {

}

/*------------------- ハンバーガーメニュー -------------------*/

/* ハンバーガーアイコン */
.drawer-hamburger {
  position: relative;
  background: #b08a57;
  width: 85px;
  height: 75px;
  color: #fff;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  z-index: 10001;
  cursor: pointer;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

.drawer-hamburger-icon {
  width: 24px;
  height: 2px;
  background: #fff;
  position: relative;
  transition: all 0.3s ease;
  top: 8px;
}

span.menu_txt {
  top: 12px;
  position: relative;
  line-height: 1;
}

.drawer-hamburger-icon::before,
.drawer-hamburger-icon::after {
  content: '';
  position: absolute;
  width: 100%;
  height: 2px;
  background: #fff;
  transition: all 0.3s ease;
}

.drawer-hamburger-icon::before {
  top: -8px;
}

.drawer-hamburger-icon::after {
  top: 8px;
}

.menu_txt::before {
  content: 'MENU';
  font-size: 10px;
  margin-top: 6px;
  letter-spacing: 0.08em;
	line-height: 2.5rem;
}

#drawer-checkbox:checked + #drawer-icon .drawer-hamburger-icon {
  background: transparent;
}

#drawer-checkbox:checked + #drawer-icon .drawer-hamburger-icon::before {
  transform: rotate(45deg);
  top: 0;
}

#drawer-checkbox:checked + #drawer-icon .drawer-hamburger-icon::after {
  transform: rotate(-45deg);
  top: 0;
}

#drawer-checkbox:checked + #drawer-icon .menu_txt::before {
  content: 'CLOSE';
}

/* 非表示チェックボックス */
#drawer-checkbox {
  position: fixed;
  top: -100px;
  left: -9999px;
  opacity: 0;
  pointer-events: none;
}

/* 背景クリック用 */
#drawer-close {
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
  position: fixed;
  inset: 0;
  background: rgba(40, 30, 20, 0.36);
  z-index: 9998;
}

#drawer-checkbox:checked ~ #drawer-close {
  opacity: 1;
  pointer-events: auto;
}

/* メニュー全体 */
#drawer-content {
  opacity: 0;
  transform: translateY(-16px);
  pointer-events: none;
  transition: opacity 0.35s ease, transform 0.35s ease;
  position: fixed;
  top: 20px;
  left: 50%;
  transform: translateX(-50%) translateY(-16px);
  width: min(1180px, calc(100% - 32px));
  max-height: calc(100vh - 40px);
  background: linear-gradient(180deg, #fffdf9 0%, #f8f3eb 100%);
  z-index: 10000;
  overflow-y: auto;
  padding: 32px;
  border-radius: 24px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.18);
}

#drawer-checkbox:checked ~ #drawer-content {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
  pointer-events: auto;
}

/* メニュー内レイアウト */
.drawer-nav {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 24px;
  align-items: start;
}

.drw_menu,
.drw_info,
.drw_contact {
  background: #fff;
  border: 1px solid #ede4d6;
  border-radius: 20px;
  padding: 24px;
  box-shadow: 0 8px 24px rgba(176, 138, 87, 0.08);
}

.drw_info,
.drw_contact {
  margin-bottom: 24px;
}

.drw_index {
  font-weight: 700;
	font-size: 1.6rem;
  letter-spacing: 0.12em;
  margin: 0 0 18px;
  color: #b08a57;
  border-bottom: 1px solid #eadfce;
  padding-bottom: 10px;
}

/* サイトマップ */
.com_sp_menu {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px 28px;
  padding: 0;
  margin: 0;
}

.com_sp_menu li,
.com_medical li {
  margin-bottom: 0.6em;
  font-size: 1rem;
}

.com_sp_menu > li,
.com_medical > li {
  list-style: none;
}

li.littl {
	font-size: 1.6rem;
  font-weight: 700;
  color: #6f5532;
  margin: 0 0 8px;
  padding: 0;
  border-left: 4px solid #b08a57;
  padding-left: 10px;
}

/* 各見出しの直後のリンク群を見やすく */
.com_sp_menu li:not(.littl),
.com_medical li:not(.littl) {
  position: relative;
  padding-left: 0;
  list-style: none;
  margin-bottom: 10px;
}

.com_sp_menu li:not(.littl)::before,
.com_medical li:not(.littl)::before {
  display: none;
}

.com_sp_menu li a,
.com_medical li a {
  display: block;
  padding: 12px 14px;
  border: 1px solid #eee4d6;
  border-radius: 12px;
  background: #fcfaf6;
  color: #333;
  text-decoration: none;
  line-height: 1.6;
  transition: all 0.25s ease;
}

.com_sp_menu li a:hover,
.com_medical li a:hover {
  background: #f3eadb;
  border-color: #d8bc92;
  color: #6f5532;
  transform: translateY(-1px);
}

/* 住所 */
.drw_info address {
  font-style: normal;
  line-height: 1.9;
  color: #333;
	font-size:1.6rem;
}

/* 診療時間 */
.footer-schedule {
  margin-top: 20px;
  padding: 18px;
  background: #fcfaf6;
  border: 1px solid #eee4d6;
  border-radius: 16px;
}

.footer-schedule > p:first-child {
  font-weight: 700;
  color: #6f5532;
  margin-bottom: 12px;
}

.drw_info .schedule-table {
  margin: 10px 0;
  width: 100%;
  border-collapse: collapse;
  font-size: 0.85rem;
  background: #fff;
}

.drw_info .schedule-table th,
.drw_info .schedule-table td {
  border: 1px solid #e8dccb;
  padding: 8px 6px;
  text-align: center;
}

.drw_info .schedule-table th {
	background: #6d8d7c;
  font-weight: 700;
}

.drw_info .schedule-table td:first-child {
  text-align: left;
  background: #fcfaf6;
  font-weight: 500;
}

.note {
  font-size: 0.85rem;
  color: #666;
  line-height: 1.7;
  margin-top: 6px;
}

/* 予約導線 */
.com_contact dd {
  margin: 0;
}

.telp {
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.2;
  color: #6f5532;
  margin-bottom: 16px;
}

.telp i {
  margin: 0 8px 0 0;
}

.web-reserve a {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 60px;
  width: 100%;
  font-size: 1.05rem;
  font-weight: 700;
  background: linear-gradient(135deg, #b08a57 0%, #9a7444 100%);
  color: #fff;
  padding: 0.9em 1.2em;
  border-radius: 999px;
  text-decoration: none;
  transition: all 0.25s ease;
  box-shadow: 0 10px 24px rgba(176, 138, 87, 0.22);
}

.web-reserve a:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 28px rgba(176, 138, 87, 0.28);
}

.web-reserve a span {
  margin-left: 0.35em;
}

/* PCのサイトマップ段組み */
@media (min-width: 1280px) {
  .com_sp_menu {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

/* タブレット */
@media (max-width: 1023px) {
  #drawer-content {
    width: calc(100% - 24px);
    top: 12px;
    max-height: calc(100vh - 24px);
    padding: 24px 20px;
    border-radius: 20px;
  }

  .drawer-nav {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .com_sp_menu {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px 18px;
  }
}

/* スマホ */
@media (max-width: 768px) {
  .drawer-hamburger {
    height: 65px;
    width: 74px;
  }

  #drawer-content {
    top: 0;
    left: 0;
    transform: translateY(-16px);
    width: 100%;
    max-height: 100vh;
    height: 100vh;
    border-radius: 0;
    padding: 82px 16px 24px;
  }

  #drawer-checkbox:checked ~ #drawer-content {
    transform: translateY(0);
  }

  .drw_menu,
  .drw_info,
  .drw_contact {
    padding: 18px 16px;
    border-radius: 16px;
  }

  .drw_index {
    margin-bottom: 14px;
  }

  .com_sp_menu {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  li.littl {
    margin-top: 8px;
    margin-bottom: 6px;
  }

  .com_sp_menu li a,
  .com_medical li a {
	  padding: 8px 14px;
	  font-size: 1.5rem;
  }

  .telp {
    font-size: 1.7rem;
  }

  .web-reserve a {
    min-height: 56px;
    font-size: 1rem;
  }

  .drw_info .schedule-table {
    font-size: 0.76rem;
  }

  .drw_info .schedule-table th,
  .drw_info .schedule-table td {
    padding: 6px 4px;
  }
}

/* =========================================
   こんなお悩みありませんか
========================================= */
.root-trouble {
  background: #efefef;
  padding: 100px 20px;
  position: relative;
  overflow: hidden;
/*       margin: 0 0 6.2em; */
    padding: 17.6em 3.2em 4.6em;
    background-color: #f5f5f5;
    background-repeat: no-repeat;
    background-size: 100% auto;
    background-position: 0 0;
	background-image: url(../images/top/nayamibg.png);
}

.root-trouble__inner {
  max-width: 1240px;
  margin: 205px auto 0;
  position: relative;
  background: #fff;
	padding: 10px 15px;
}

.root-trouble__side-text {
  position: absolute;
  left: -10px;
  top: 50%;
  transform: translateY(-50%) rotate(180deg);
  writing-mode: vertical-rl;
  font-family: "Times New Roman", serif;
  font-size: 8.8rem;
  line-height: 1;
  color: rgba(0, 0, 0, 0.08);
  letter-spacing: 0.08em;
  pointer-events: none;
}

.root-trouble__head {
  text-align: center;
  margin-bottom: 56px;
}

.root-trouble__title {
  margin: 0;
  font-size: 4.6rem;
  font-weight: 500;
  /* line-height: 1.7; */
  letter-spacing: 0.08em;
	color:#4b5343;
}
.root-trouble__title span.span01{
  font-size: 5.8rem;
  color: #6d8d7c;
}

.root-trouble__content {
  /* display: flex;
  align-items: center;
  justify-content: space-between; */
  gap: 56px;
}

/* .root-trouble__image {
  width: 34%;
  min-width: 320px;
  text-align: center;
} */

.root-trouble__image img {
  max-width: 100%;
  height: auto;
  display: block;
  margin: 0 auto;
}

.root-trouble__body {
  width: 100%;
}

.root-trouble__label {
  position: relative;
  width: min(100%, 620px);
  margin: 0 auto 32px;
  background: #b4ab90;
  color: #fff;
  text-align: center;
  font-size: 3.4rem;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.08em;
  padding: 28px 20px;
}

.root-trouble__label::after {
  content: "";
  position: absolute;
  left: 50%;
	bottom: -15px;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 16px solid transparent;
  border-right: 16px solid transparent;
  border-top: 18px solid #b4ab90;
}

.root-trouble__list {
  border-top: 1px solid #d8d8d8;
}

.root-trouble__item {
  position: relative;
  padding: 30px 0 30px 92px;
  border-bottom: 1px solid #d8d8d8;
}

.root-trouble__item::before {
  content: "";
  position: absolute;
  left: 0;
  top: 38px;
  width: 46px;
  height: 46px;
  border: 3px solid #8f8a68;
  box-sizing: border-box;
  background: transparent;
}

.root-trouble__item::after {
  content: "";
  position: absolute;
  left: 12px;
  top: 44px;
  width: 14px;
  height: 26px;
  border-right: 4px solid #6d8d7c;
  border-bottom: 4px solid #6d8d7c;
  transform: rotate(40deg);
  box-sizing: border-box;
}

.root-trouble__text h3 {
  margin: 0 0 12px;
  color: #2a2a2a;
  font-size: 3rem;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.05em;
}

.root-trouble__text p {
  margin: 0;
  color: #555;
  font-size: 1.8rem;
  font-weight: 400;
  line-height: 1.9;
  letter-spacing: 0.03em;
}

/* タブレット */
@media screen and (max-width: 1100px) {
  .root-trouble {
    padding: 80px 20px;
  }

  .root-trouble__title {
    font-size: 3.6rem;
  }

  .root-trouble__content {
    gap: 32px;
  }

  .root-trouble__image {
    width: 32%;
    min-width: 260px;
  }

  .root-trouble__body {
    width: 100%;
  }

  .root-trouble__label {
    font-size: 2.8rem;
    padding: 22px 18px;
  }

  .root-trouble__item {
    padding: 26px 0 26px 76px;
  }

  .root-trouble__item::before {
    width: 38px;
    height: 38px;
    top: 32px;
  }

  .root-trouble__item::after {
    left: 10px;
    top: 37px;
    width: 12px;
    height: 22px;
  }

  .root-trouble__text h3 {
    font-size: 2.4rem;
  }

  .root-trouble__text p {
    font-size: 1.6rem;
  }

  .root-trouble__side-text {
    font-size: 6.4rem;
    left: 0;
  }
}

/* スマホ */
@media screen and (max-width: 767px) {
  .root-trouble {
    padding: 60px 10px 20px;
    margin-bottom: 0;
  }

  .root-trouble__side-text {
    display: none;
  }

  .root-trouble__head {
    margin-bottom: 32px;
  }
  .root-trouble__inner {
    margin: 125px auto 0;
  }

  .root-trouble__title {
    font-size: 2.2rem;
    line-height: 1.6;
  }
  
  .root-trouble__title span.span01 {
    font-size: 2.3rem;
}

  .root-trouble__content {
    display: block;
  }

  .root-trouble__image {
    width: 100%;
    min-width: auto;
    max-width: 320px;
    margin: 0 auto 28px;
  }

  .root-trouble__body {
    width: 100%;
  }

  .root-trouble__label {
    font-size: 1.5rem;
    padding: 18px 14px;
    margin-bottom: 22px;
  }

  .root-trouble__label::after {
    bottom: -14px;
    border-left-width: 12px;
    border-right-width: 12px;
    border-top-width: 14px;
  }

  .root-trouble__item {
	  padding: 5px 0 5px 40px;
	}

  .root-trouble__item::before {
	  width: 20px;
	  height: 20px;
    border-width: 2px;
    top: 22px;
  }

  .root-trouble__item::after {
	  left: 7px;
	  top: 25px;
	  width: 6px;
	  height: 11px;
    border-right-width: 3px;
    border-bottom-width: 3px;
  }

  .root-trouble__text h3 {
	  font-size: 1.5rem;
	  margin-bottom: 8px;
	  line-height: 1.7;
  }

  .root-trouble__text p {
    font-size: 1.4rem;
    line-height: 1.8;
  }
}
@media screen and (max-width: 500px) {
  .root-trouble__inner {
    margin: 80px auto 0;
	  padding: 10px;
  }
}

/* 接続ブロック */
.root-bridge {
	padding: 0;
}

.root-bridge__inner {
  position: relative;
  margin: 0 auto;
  padding-top: 7rem;
	background: #f5f5f3;
}

.root-bridge__tag {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 48rem;
  height: 11rem;
  background: linear-gradient(135deg, #8e8352 0%, #b7ab74 100%);
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding-top: 1.2rem;
  color: #fff;
  font-size: 3.2rem;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.12em;
  z-index: 2;
}

.root-bridge__content {
  position: relative;
  background:
    linear-gradient(rgba(89, 129, 115, 0.96), rgba(89, 129, 115, 0.96)),
    radial-gradient(circle at 20% 30%, rgba(255, 255, 255, 0.08) 0, rgba(255, 255, 255, 0.02) 18%, transparent 36%),
    radial-gradient(circle at 75% 35%, rgba(255, 255, 255, 0.06) 0, rgba(255, 255, 255, 0.015) 20%, transparent 38%),
    radial-gradient(circle at 60% 75%, rgba(255, 255, 255, 0.05) 0, rgba(255, 255, 255, 0.01) 18%, transparent 34%);
  padding: 11rem 4rem 8rem;
  text-align: center;
  overflow: hidden;
  isolation: isolate;
}

.root-bridge__content::before {
  content: "";
  position: absolute;
  inset: -5%;
  background:
    repeating-linear-gradient(
      82deg,
      rgba(255, 255, 255, 0.09) 0,
      rgba(255, 255, 255, 0.09) 0.08rem,
      transparent 0.08rem,
      transparent 1.2rem
    ),
    repeating-linear-gradient(
      96deg,
      rgba(0, 0, 0, 0.045) 0,
      rgba(0, 0, 0, 0.045) 0.06rem,
      transparent 0.06rem,
      transparent 1.6rem
    ),
    repeating-linear-gradient(
      0deg,
      rgba(255, 255, 255, 0.035) 0,
      rgba(255, 255, 255, 0.035) 0.05rem,
      transparent 0.05rem,
      transparent 2.2rem
    );
  opacity: 0.65;
  mix-blend-mode: screen;
  filter: blur(0.12rem);
  pointer-events: none;
  z-index: 0;
}

.root-bridge__content::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 12% 18%, rgba(255,255,255,0.14) 0, rgba(255,255,255,0.05) 12%, transparent 28%),
    radial-gradient(circle at 78% 24%, rgba(255,255,255,0.12) 0, rgba(255,255,255,0.04) 10%, transparent 24%),
    radial-gradient(circle at 32% 72%, rgba(0,0,0,0.08) 0, rgba(0,0,0,0.03) 12%, transparent 30%),
    radial-gradient(circle at 70% 80%, rgba(255,255,255,0.08) 0, rgba(255,255,255,0.03) 10%, transparent 22%),
    repeating-linear-gradient(
      135deg,
      rgba(255,255,255,0.035) 0,
      rgba(255,255,255,0.035) 0.1rem,
      transparent 0.1rem,
      transparent 1.8rem
    ),
    repeating-linear-gradient(
      45deg,
      rgba(0,0,0,0.03) 0,
      rgba(0,0,0,0.03) 0.08rem,
      transparent 0.08rem,
      transparent 2.2rem
    );
  opacity: 0.72;
  mix-blend-mode: soft-light;
  filter: blur(0.55rem);
  pointer-events: none;
  z-index: 0;
}

.root-bridge__content > * {
  position: relative;
  z-index: 1;
}
.root-bridge__lead,
.root-bridge__main {
  position: relative;
  z-index: 1;
  margin: 0;
  color: #fff;
  font-family: "游明朝", "Yu Mincho", "Hiragino Mincho ProN", serif;
}

.root-bridge__lead {
	font-size: 4rem;
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.08em;
}

.root-bridge__main {
	margin-top: 1.2rem;
	font-size: 4.6rem;
	font-weight: 500;
	line-height: 1.5;
	letter-spacing: 0.08em;
}

.root-bridge__main span {
  display: inline-block;
  color: #f1d678;
  border-bottom: 0.3rem solid #f1d678;
  padding-bottom: 0.4rem;
}


/* tablet */
@media screen and (max-width: 1100px) {
  .root-bridge {
    padding: 0 2rem 7rem;
  }

  .root-bridge__inner {
    padding-top: 6rem;
  }

  .root-bridge__tag {
    width: 36rem;
    height: 8.8rem;
    font-size: 2.8rem;
    padding-top: 1rem;
  }

  .root-bridge__content {
    padding: 9rem 3rem 6.5rem;
  }

  .root-bridge__lead {
    font-size: 3.8rem;
  }

  .root-bridge__main {
    font-size: 5rem;
  }
}

/* sp */
@media screen and (max-width: 767px) {
  .root-bridge {
    padding: 0 1.6rem 5rem;
  }

  .root-bridge__inner {
    padding-top: 4.6rem;
  }

  .root-bridge__tag {
    width: 20rem;
    height: 5.8rem;
    font-size: 2rem;
    padding-top: 0.8rem;
    letter-spacing: 0.08em;
  }

  .root-bridge__content {
	  padding: 2.5rem 1rem;
	}

  .root-bridge__lead {
	  font-size: 1.4rem;
    line-height: 1.8;
  }

  .root-bridge__main {
	  margin-top: 0.8rem;
	  font-size: 2rem;
	  line-height: 1.6;
  }

  .root-bridge__main span {
    border-bottom-width: 0.2rem;
    padding-bottom: 0.2rem;
  }

}
/* =========================================
   数字
========================================= */
.endo-stats {
	position: relative;
  padding: 100px 20px;
  overflow: hidden;
	background-image: url("../images/top/numberbg.png");
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
}
}

.endo-stats::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(115deg, rgba(255,255,255,0.06) 0 48%, rgba(255,255,255,0.18) 48% 62%, rgba(255,255,255,0.04) 62% 100%);
  pointer-events: none;
}

.endo-stats__inner {
  position: relative;
  z-index: 1;
  max-width: 1200px;
  margin: 0 auto;
}

.endo-stats__head {
  margin-bottom: 40px;
  color: #fff;
}

.endo-stats__lead {
  margin: 0 0 10px;
	font-size: clamp(2.4rem, 8.5vw, 7.2rem);
  line-height: 1.4;
  letter-spacing: 0.08em;
}

.endo-stats__title {
  margin: 0;
	font-size: clamp(3.2rem, 4vw, 5rem);
  line-height: 1.4;
  font-weight: 500;
  letter-spacing: 0.05em;
}

.endo-stats__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  max-width: 860px;
}

.endo-stat-card {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 220px;
  padding: 28px 24px;
  border: 2px solid rgba(255, 255, 255, 0.78);
  background: rgba(56, 98, 84, 0.22);
  box-sizing: border-box;
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
  box-shadow: 0 12px 28px rgba(37, 63, 54, 0.12);
}

.endo-stat-card--large {
  min-height: 220px;
}

.endo-stat-card--wide {
  grid-column: 1 / -1;
  min-height: 180px;
}

.endo-stat-card__label {
  margin: 0 0 20px;
  color: #fff;
  font-size: clamp(24px, 2vw, 32px);
  line-height: 1.5;
  letter-spacing: 0.04em;
  font-family: "Shippori Mincho B1", "Yu Mincho", "Hiragino Mincho ProN", serif;
}
.endo-stat-card__label span {
	font-size:1.8rem;
}

.endo-stat-card__value {
  display: flex;
  align-items: flex-end;
  gap: 8px;
  margin: 0;
  line-height: 1;
  flex-wrap: nowrap;
}

.endo-stat-card__value .num {
  display: inline-block;
  color: #f5f0a8;
  font-size: clamp(58px, 7vw, 104px);
  line-height: 0.95;
  font-style: italic;
  font-weight: 500;
  letter-spacing: 0.01em;
  white-space: nowrap;
  font-family: "Times New Roman", Georgia, serif;
}

.endo-stat-card__value .unit {
  display: inline-block;
  color: #fff;
  font-size: clamp(28px, 2.4vw, 44px);
  line-height: 1;
  white-space: nowrap;
  transform: translateY(-8px);
  font-family: "Shippori Mincho B1", "Yu Mincho", "Hiragino Mincho ProN", serif;
}
.white {
	color: #fff;
	font-size: 1.3rem;
}

/* =========================
   mobile / tablet adjust
========================= */
/* =========================
   tablet / mobile adjust
========================= */

@media screen and (max-width: 900px) {
  .endo-stats {
    padding: 72px 16px;
  }

  .endo-stats__head {
    margin-bottom: 28px;
  }

  .endo-stats__lead {
    font-size: 24px;
    letter-spacing: 0.06em;
  }

  .endo-stats__title {
    font-size: 34px;
    line-height: 1.45;
    letter-spacing: 0.03em;
  }

  .endo-stats__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    max-width: 100%;
  }

  .endo-stat-card,
  .endo-stat-card--large {
    min-height: 180px;
    padding: 22px 16px 18px;
  }

  article.endo-stat-card.endo-stat-card--wide {
    display: flex;
    flex-direction: row;
}

  .endo-stat-card__label {
    margin: 0 0 12px;
    font-size: 20px;
    line-height: 1.45;
  }

  .endo-stat-card__value {
    gap: 4px;
    align-items: flex-end;
    flex-wrap: nowrap;
  }

  .endo-stat-card__value .num {
    font-size: 52px;
    line-height: 0.95;
  }

  .endo-stat-card__value .unit {
    font-size: 24px;
    line-height: 1;
    transform: translateY(-3px);
  }

  .num-group {
    gap: 2px;
    min-width: 0;
    flex-shrink: 1;
  }

  .range {
    font-size: 24px;
    line-height: 1;
    transform: translateY(-1px);
  }

  .approx {
    margin-right: 2px;
    font-size: 16px;
    line-height: 1;
    transform: translateY(-1px);
  }
}

@media screen and (max-width: 640px) {
  .endo-stats {
	  padding: 60px 14px;
	  background-position: 70% 67%;
  }

  .endo-stats__lead {
	  font-size: 2.5rem;
	  color: #5d6754;
	  font-weight: 900;
	}

  .endo-stats__title {
	  font-size: 2rem;
	  line-height: 1.5;
	  color: #4b5343;
	  font-weight: 900;
	  background: #fff;
	  padding: 3px;
  }

  .endo-stats__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  .endo-stat-card,
  .endo-stat-card--large {
    min-height: 150px;
    padding: 18px 12px 16px;
    border-width: 1.5px;
	  justify-content: center;
  }

  .endo-stat-card--wide {
    grid-column: 1 / -1;
    min-height: 130px;
    padding: 18px 12px 16px;
    border-width: 1.5px;
  }

  .endo-stat-card__label {
    margin-bottom: 10px;
    font-size: 16px;
    line-height: 1.4;
  }

  .endo-stat-card__value .num {
    font-size: 40px;
  }

  .endo-stat-card__value .unit {
    font-size: 18px;
    transform: translateY(-2px);
  }

  .range {
    font-size: 18px;
    transform: translateY(-1px);
  }

  .approx {
    font-size: 13px;
    transform: translateY(-1px);
  }
}

@media screen and (max-width: 374px) {
  .endo-stats {
    padding: 52px 12px;
  }

  .endo-stats__grid {
    gap: 8px;
  }

  .endo-stat-card,
  .endo-stat-card--large {
    min-height: 138px;
    padding: 16px 10px 14px;
  }

  .endo-stat-card--wide {
    min-height: 120px;
    padding: 16px 10px 14px;
  }

  .endo-stat-card__label {
    font-size: 14px;
    margin-bottom: 8px;
  }

  .endo-stat-card__value .num {
    font-size: 34px;
  }

  .endo-stat-card__value .unit {
    font-size: 16px;
  }

  .range {
    font-size: 16px;
  }

  .approx {
    font-size: 12px;
  }
  
}
.num-group {
  display: inline-flex;
  align-items: flex-end;
  gap: 4px;
  white-space: nowrap;
}

.range {
  display: inline-block;
  color: #f5f0a8;
  font-size: clamp(34px, 4vw, 60px);
  line-height: 1;
  transform: translateY(-6px);
  font-family: "Shippori Mincho B1", "Yu Mincho", "Hiragino Mincho ProN", serif;
}

.approx {
  display: inline-block;
  color: #fff;
  font-size: clamp(24px, 2vw, 34px);
  line-height: 1;
  transform: translateY(-8px);
  margin-right: 4px;
  white-space: nowrap;
  font-family: "Shippori Mincho B1", "Yu Mincho", "Hiragino Mincho ProN", serif;
}

@media screen and (max-width: 640px) {
  .range {
    font-size: clamp(24px, 6vw, 34px);
    transform: translateY(-3px);
  }

  .approx {
    font-size: 20px;
    transform: translateY(-4px);
  }
  .endo-stat-card__label span {
    font-size: 1rem;
}
}
article.endo-stat-card.endo-stat-card--wide {
    display: flex;
    flex-direction: row;
}
/* =========================================
   「歯は臓器」一生噛める歯を守る～
========================================= */
.endo-top {
  padding: 100px 20px 110px;
  background-image: url(../images/top/end_back04.png);
  overflow: hidden;
  font-family: "Noto Serif JP", "Yu Mincho", serif;
}

.endo-in {
  max-width: 1200px;
  margin: 0 auto;
}

.endo-head {
  text-align: center;
  margin-bottom: 48px;
}

.endo-en {
  margin: 0 0 10px;
  color: #90a081;
  font-size: clamp(18px, 2vw, 34px);
  letter-spacing: 0.08em;
  line-height: 1.2;
}

.endo-head h2 {
  margin: 0;
  color: #4b5343;
  font-size: clamp(25px, 3.1vw, 48px);
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.04em;
}

.gcl {
  color: #90a081;
  text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.15);
  font-size: 4.3rem;
}

.endo-sub {
  display: inline-block;
  margin: 22px auto 0;
  padding: 0 8px 8px;
  color: #70865E;
  font-size: clamp(16px, 1.45vw, 24px);
  line-height: 1.9;
  letter-spacing: 0.06em;
  background:
    linear-gradient(transparent 72%, rgba(112, 134, 94, 0.18) 72%);
}

/* ===== 3カラム ===== */
.endo-card-wrap {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 26px;
  margin-bottom: 90px;
}

.endo-card {
  background: #fff;
  box-shadow: 0 18px 30px rgba(82, 95, 70, 0.08);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.endo-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 24px 40px rgba(82, 95, 70, 0.14);
}

.endo-card__img {
  margin: 0;
  aspect-ratio: 1.22 / 1;
  overflow: hidden;
}

.endo-card__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.endo-card__body {
  position: relative;
  padding: 20px 22px 24px;
  background: #f9faf7;
}

.endo-card__label {
  display: inline-block;
  margin: 0 0 12px;
  padding: 6px 12px;
  background: #d9e4d1;
  color: #70865E;
  font-size: 13px;
  line-height: 1;
  letter-spacing: 0.08em;
}

.endo-card h3 {
  margin: 0 0 14px;
  color: #56614c;
  font-size: clamp(19px, 1.45vw, 24px);
  font-weight: 500;
  line-height: 1.75;
  letter-spacing: 0.04em;
}

.endo-card__body p:last-of-type {
  margin: 0;
  color: #666;
  font-size: 14px;
  line-height: 2;
}

.endo-more {
  display: inline-block;
  margin-top: 14px;
  color: #70865E;
  font-size: 13px;
  letter-spacing: 0.08em;
  text-decoration: none;
  border-bottom: 1px solid #70865E;
}

/* ===== 下の大きいブロック ===== */
.endo-feature {
  position: relative;
  display: grid;
  grid-template-columns: 1.08fr 0.92fr;
  align-items: center;
  background: linear-gradient(135deg, #f6f8f3 0%, #edf3e8 100%);
  box-shadow: 0 28px 50px rgba(70, 83, 59, 0.1);
  padding: 58px 48px 48px;
}

.endo-feature::before {
  content: "";
  position: absolute;
  left: 0;
  top: 58px;
  width: 100%;
  height: 34px;
  background: rgba(112, 134, 94, 0.12);
}

.endo-feature__badge {
  position: absolute;
  left: 50%;
  top: 0;
  transform: translate(-50%, -50%);
  width: 134px;
  height: 134px;
  border-radius: 50%;
  background: radial-gradient(circle at 30% 30%, #8fa57f 0%, #70865E 58%, #5e734d 100%);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: #fff;
  box-shadow: 0 10px 24px rgba(65, 78, 54, 0.2);
  z-index: 2;
  text-align: center;
}

.endo-feature__badge span {
  font-size: 24px;
  line-height: 1.2;
  letter-spacing: 0.06em;
}

.endo-feature__badge small {
  display: block;
  margin-top: 6px;
  font-size: 10px;
  letter-spacing: 0.12em;
}

.endo-feature__img {
  order: 2;
  position: relative;
  z-index: 1;
}

.endo-feature__img img {
  width: 100%;
  display: block;
  object-fit: cover;
}

.endo-feature__txt {
  order: 1;
  position: relative;
  z-index: 1;
  padding-right: 42px;
}

.endo-feature__label {
  display: inline-block;
  margin: 0 0 18px;
  padding: 7px 14px;
  background: #cfdac7;
  color: #70865E;
  font-size: 13px;
  line-height: 1;
  letter-spacing: 0.08em;
}

.endo-feature__txt h3 {
  margin: 0 0 22px;
  color: #4e5847;
  font-size: 3.3rem;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.04em;
}

.endo-feature__lead {
  margin: 0 0 24px;
  color: #555;
  font-size: 15px;
  line-height: 2.1;
}

.endo-point {
    margin: 0;
    padding: 20px;
    list-style: none;
    background-color: #fff;
	box-shadow: 0 8px 20px rgba(0, 0, 0, 0.3);
}

.endo-point li {
  position: relative;
  margin-bottom: 10px;
  padding-left: 32px;
  color: #596353;
  font-size: 18px;
  line-height: 1.9;
}

.endo-point li::before {
  content: "▶";
  position: absolute;
  left: 0;
  top: 0;
  color: #70865E;
  font-weight: 700;
}

.endo-graph {
  display: flex;
  align-items: center;
  gap: 22px;
  margin-top: 28px;
}

.endo-graph__circle {
  flex: 0 0 132px;
  width: 132px;
  height: 132px;
  border-radius: 50%;
  background:
    conic-gradient(#70865E 0 98%, #d8e3d0 98% 100%);
  display: grid;
  place-items: center;
  position: relative;
}

.endo-graph__circle::before {
  content: "";
  position: absolute;
  inset: 15px;
  border-radius: 50%;
  background: #f6f8f3;
}

.endo-graph__circle span {
  position: relative;
  z-index: 1;
  color: #70865E;
  font-size: 16px;
  line-height: 1.5;
  text-align: center;
  letter-spacing: 0.04em;
}

.endo-graph__text strong {
  display: block;
  margin-bottom: 8px;
  color: #4f5948;
  font-size: 20px;
  font-weight: 500;
}

.endo-graph__text p {
  margin: 0;
  color: #666;
  font-size: 14px;
  line-height: 1.9;
}

/* ===== レスポンシブ ===== */
@media (max-width: 1080px) {
  .endo-card-wrap {
    gap: 18px;
  }

  .endo-feature {
    grid-template-columns: 1fr;
    padding: 78px 28px 34px;
  }

  .endo-feature__txt {
    order: 2;
    padding-right: 0;
    margin-top: 28px;
  }

 .gcl {
  font-size: 2.8rem;
}

  .endo-feature__img {
    order: 1;
  }
	
 .endo-sub {
  background:
    linear-gradient(transparent 1%, rgba(112, 134, 94, 0.18) 72%);
}
}

@media (max-width: 767px) {
  .endo-top {
    padding: 70px 16px 80px;
    background:
      linear-gradient(to bottom, #f7f5ef 0%, #f7f5ef 42%, #eef2eb 42%, #eef2eb 100%);
  }

  .endo-head {
    margin-bottom: 34px;
  }

  .endo-sub {
    padding-bottom: 4px;
    line-height: 1.8;
  }

  .endo-card-wrap {
    grid-template-columns: 1fr;
    margin-bottom: 68px;
  }

  .endo-card__body {
    padding: 18px 18px 20px;
  }

  .endo-feature {
    padding: 72px 18px 24px;
  }

  .endo-feature::before {
    top: 64px;
    height: 24px;
  }

  .endo-feature__badge {
    width: 108px;
    height: 108px;
  }

  .endo-feature__badge span {
    font-size: 20px;
  }

  .endo-feature__badge small {
    font-size: 9px;
  }

  .endo-feature__txt h3 {
    line-height: 1.5;
	font-size: 2.5rem;
  }
	
 .endo-point li {
    padding-left: 22px;
    font-size: 15px;
}

  .endo-graph {
    align-items: flex-start;
    gap: 14px;
  }

  .endo-graph__circle {
    width: 110px;
    height: 110px;
    flex-basis: 110px;
  }

  .endo-graph__circle span {
    font-size: 14px;
  }
}
/* =========================================
   なぜ
========================================= */

.root-reason {
  position: relative;
  overflow: hidden;
  background: #f5f5f3;
  padding: 10rem 2rem 12rem;
}

.root-reason::before {
  content: "";
  position: absolute;
  top: 8rem;
  left: -8rem;
  width: 45rem;
  aspect-ratio: 1000 / 1118;
	background: url("../images/top/hexagon-deco.png") no-repeat center / contain;
  z-index: 0;
  pointer-events: none;
}

.root-reason::after {
  content: "";
  position: absolute;
  right: -10rem;
  bottom: 8rem;
  width: 54rem;
  height: 24rem;
  background:
    linear-gradient(to right, rgba(207, 232, 227, 0.15), rgba(207, 232, 227, 0.15)),
    repeating-linear-gradient(
      0deg,
      rgba(150, 190, 181, 0.08) 0,
      rgba(150, 190, 181, 0.08) 1px,
      transparent 1px,
      transparent 6px
    ),
    repeating-linear-gradient(
      90deg,
      rgba(150, 190, 181, 0.08) 0,
      rgba(150, 190, 181, 0.08) 1px,
      transparent 1px,
      transparent 6px
    );
  clip-path: polygon(18% 0, 100% 0, 100% 100%, 0 100%);
  z-index: 0;
}

.root-reason__inner {
  position: relative;
  max-width: 128rem;
  margin: 0 auto;
  z-index: 1;
}

.root-reason__head {
  text-align: center;
  margin-bottom: 8rem;
}

.root-reason__sub {
  margin: 0 0 1.6rem;
  color: #b69459;
  font-family: "Times New Roman", serif;
  font-size: 2.2rem;
  line-height: 1.2;
  letter-spacing: 0.08em;
}

.root-reason__title {
  margin: 0;
  color: #2f2f2f;
  font-size: 4.2rem;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.05em;
}

.root-reason__top {
  display: flex;
  align-items: flex-start;
  gap: 7rem;
  margin-bottom: 8rem;
}


.root-reason__catch-shape--01 {
  top: 0;
  left: 7rem;
  width: 22rem;
  height: 24rem;
  background: rgb(185 213 208 / 51%);
}

.root-reason__catch-shape--02 {
  left: 0;
  bottom: 0;
  width: 20rem;
  height: 22rem;
  background: rgb(199 227 223 / 75%);
}

.root-reason__catch-text {
  position: absolute;
  top: 2rem;
  left: 8.5rem;
  margin: 0;
  color: #333;
  font-size: 7rem;
  font-weight: 500;
  line-height: 1.18;
  letter-spacing: 0.08em;
  writing-mode: vertical-rl;
}

.root-reason__top-body {
  flex: 1;
  padding-top: 1rem;
}

.root-reason__h3 {
  margin: 0 0 2.8rem;
  color: #2f2f2f;
  font-size: 3.2rem;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
span.marker-text1 {
	  position: relative;
	  display: inline-block;
	  z-index: 0;
	}
	
	span.marker-text1::after {
		content: "";
		position: absolute;
		left: 0;
		bottom: 0.08em;
		width: 100%;
		height: 0.45em;
		background: #7a9c905c;
		z-index: -1;
		border-radius: 2px;
	}

.root-reason__lead {
  margin: 0 0 2.4rem;
  color: #4b4b4b;
  font-size: 2rem;
  line-height: 2;
  letter-spacing: 0.03em;
}

.root-reason__point {
  margin-top: 3.6rem;
  padding: 3rem 3.2rem;
  background: rgba(250, 246, 225, 0.75);
}

.root-reason__point-copy {
  margin: 0;
  color: #3d3d3d;
  font-size: 2.2rem;
  line-height: 1.9;
  letter-spacing: 0.03em;
}

.root-reason__point-copy span {
  color: #2aa9a3;
  font-weight: 500;
}

.root-reason__bottom {
  position: relative;
  background:
    linear-gradient(90deg, rgba(245, 245, 243, 0.96) 0%, rgba(245, 245, 243, 0.92) 42%, rgba(245, 245, 243, 0.55) 68%, rgba(245, 245, 243, 0.18) 100%),
	  url("../images/top/root-reason-microscope-bg.png") no-repeat right bottom / contain,
    rgba(214, 233, 228, 0.18);
  padding: 5rem;
  min-height: 52rem;
  overflow: hidden;
}

.root-reason__bottom::before {
  content: "";
  position: absolute;
  left: 0;
  top: -6rem;
  width: 32rem;
  height: 8rem;
  background: rgba(214, 233, 228, 0.35);
  clip-path: polygon(0 100%, 100% 100%, 0 0);
}

.root-reason__bottom-text {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 68rem;
  min-width: 0;
}

.root-reason__h3--line {
  position: relative;
  padding-left: 2.8rem;
  margin-bottom: 3rem;
}

.root-reason__h3--line::before {
  content: "";
  position: absolute;
  left: 0;
  top: 1rem;
  width: 0.8rem;
  height: 9.4rem;
  background: #2aa9a3;
}

.root-reason__h3--line::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -1rem;
  width: 100%;
  max-width: 64rem;
  height: 0.1rem;
  background: #79c9c4;
}

.root-reason__desc {
  margin: 0 0 2rem;
  color: #4b4b4b;
  font-size: 1.9rem;
  line-height: 2;
  letter-spacing: 0.03em;
}

.root-reason__desc--lg {
  font-size: 2.2rem;
  line-height: 1.9;
}

.root-reason__desc span {
  color: #b69459;
  font-weight: 500;
}

.root-reason__note {
  margin-top: 3.2rem;
  padding: 2.8rem 3rem;
  background: rgba(248, 243, 219, 0.82);
  backdrop-filter: blur(0.2rem);
}

.root-reason__note p {
  margin: 0;
  color: #474747;
  font-size: 1.8rem;
  line-height: 2;
  letter-spacing: 0.03em;
}

.root-reason__note span {
  color: #b69459;
  font-weight: 500;
}
.root-reason__bottom-image {
  width: 44%;
  max-width: 46rem;
}

.root-reason__bottom-image img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
}

/* tablet */
@media screen and (max-width: 1100px) {
  .root-reason {
    padding: 8rem 2rem 10rem;
  }

  .root-reason__head {
    margin-bottom: 6rem;
  }

  .root-reason__title {
    font-size: 3.4rem;
  }

  .root-reason__top {
    gap: 4rem;
    margin-bottom: 6rem;
  }

  .root-reason__catch {
    width: 24rem;
    min-width: 24rem;
    /* height: 34rem; */
  }

  .root-reason__catch-shape--01 {
    left: 5rem;
    width: 17rem;
    height: 19rem;
  }

  .root-reason__catch-shape--02 {
    width: 15rem;
    height: 17rem;
  }

  .root-reason__catch-text {
    left: 6rem;
    font-size: 5.4rem;
  }

  .root-reason__h3 {
    font-size: 2.8rem;
  }

  .root-reason__lead {
    font-size: 1.8rem;
  }

  .root-reason__point-copy {
    font-size: 2rem;
  }

 .root-reason__bottom {
    padding: 4rem;
    min-height: 46rem;
    /* background:
      linear-gradient(90deg, rgba(245, 245, 243, 0.97) 0%, rgba(245, 245, 243, 0.93) 52%, rgba(245, 245, 243, 0.62) 76%, rgba(245, 245, 243, 0.28) 100%),
      url("../images/root-reason-microscope-bg.png") no-repeat right bottom / 46% auto,
      rgba(214, 233, 228, 0.18); */
  }

  .root-reason__bottom-text {
    max-width: 60rem;
  }
  .root-reason__desc--lg {
    font-size: 2rem;
  }

  .root-reason__desc {
    font-size: 1.7rem;
  }

  .root-reason__note p {
    font-size: 1.7rem;
  }

  .root-reason__bottom-image {
    width: 40%;
  }
}

/* sp */
@media screen and (max-width: 767px) {
  .root-reason {
	  padding: 6rem 1.6rem 3rem;
  }

  .root-reason::before,
  .root-reason::after {
    display: none;
  }

  .root-reason__head {
    margin-bottom: 4rem;
  }

  .root-reason__sub {
    font-size: 1.8rem;
    margin-bottom: 1rem;
  }

  .root-reason__title {
	  font-size: 2.2rem;
	  line-height: 1.6;
  }

  .root-reason__top {
    display: block;
    margin-bottom: 4rem;
  }

  .root-reason__catch {
    width: 100%;
    min-width: auto;
    height: auto;
    margin-bottom: 2.8rem;
    text-align: center;
  }

  .root-reason__catch-shape {
    display: none;
  }

  .root-reason__catch-text {
    position: static;
    writing-mode: horizontal-tb;
    font-size: 3.2rem;
    line-height: 1.4;
    letter-spacing: 0.06em;
  }

  .root-reason__h3 {
    font-size: 2rem;
    margin-bottom: 2rem;
  }

  .root-reason__lead {
    font-size: 1.6rem;
    line-height: 1.9;
    margin-bottom: 1.8rem;
  }

  .root-reason__point {
    margin-top: 2.4rem;
    padding: 2rem;
  }

  .root-reason__point-copy {
    font-size: 1.7rem;
    line-height: 1.8;
  }

  .root-reason__bottom {
    display: block;
    padding: 2.6rem 2rem;
  }

  .root-reason__bottom::before {
    display: none;
  }

  .root-reason__h3--line {
    padding-left: 1.8rem;
    margin-bottom: 2.4rem;
  }

  .root-reason__h3--line::before {
    top: 0.6rem;
    width: 0.5rem;
    height: 3.2rem;
  }

  .root-reason__h3--line::after {
    bottom: -0.8rem;
  }

  .root-reason__desc--lg {
    font-size: 1.8rem;
    line-height: 1.8;
  }

  .root-reason__desc {
    font-size: 1.5rem;
    line-height: 1.9;
  }

  .root-reason__note {
    margin-top: 2.4rem;
    padding: 2rem;
  }

  .root-reason__note p {
    font-size: 1.5rem;
    line-height: 1.9;
  }

.root-reason__bottom {
    padding: 2.6rem 1rem 20rem;
    min-height: auto;
    background:
      linear-gradient(180deg, rgba(245, 245, 243, 0.96) 0%, rgba(245, 245, 243, 0.94) 58%, rgba(245, 245, 243, 0.72) 78%, rgba(245, 245, 243, 0.45) 100%),
		url("../images/top/root-reason-microscope-bg.png") no-repeat center bottom / 92% auto,
      rgba(214, 233, 228, 0.18);
  }

  .root-reason__bottom::before {
    display: none;
  }

  .root-reason__bottom-text {
    max-width: none;
  }

  .root-reason__h3--line {
    padding-left: 1.8rem;
    margin-bottom: 2.4rem;
  }

  .root-reason__h3--line::before {
    top: 0.6rem;
    width: 0.5rem;
    height: 5.2rem;
  }

  .root-reason__h3--line::after {
    bottom: -0.8rem;
  }
	
  .root-reason__desc--lg {
    font-size: 1.8rem;
    line-height: 1.8;
  }

  .root-reason__desc {
    font-size: 1.5rem;
    line-height: 1.9;
  }

  .root-reason__note {
    margin-top: 2.4rem;
    padding: 2rem;
  }

  .root-reason__note p {
    font-size: 1.5rem;
    line-height: 1.9;
  }
}
@media screen and (max-width: 767px) {
  .root-reason {
    padding: 6rem 1rem 7rem;
    background: #f5f5f3;
  }

  .root-reason::before {
    display: block;
    top: -7rem;
    left: -7rem;
    width: 22rem;
    opacity: 0.28;
  }

  .root-reason::after {
    display: none;
  }

  .root-reason__inner {
    max-width: none;
  }

  .root-reason__head {
    margin-bottom: 3.2rem;
    text-align: center;
  }

  .root-reason__sub {
    margin-bottom: 0.8rem;
    font-size: 1.5rem;
  }

  .root-reason__title {
    font-size: 2.4rem;
    line-height: 1.7;
    letter-spacing: 0.04em;
  }

  .root-reason__top {
    position: relative;
    display: block;
    margin-bottom: 3.2rem;
    padding: 2.4rem 1.6rem 2.4rem;
    background: #fff;
    border: 0.1rem solid #e5e5df;
    box-shadow: 0 0.8rem 2rem rgba(0, 0, 0, 0.04);
    gap: 0;
  }

  .root-reason__catch {
    position: absolute;
    top: 1.6rem;
    left: 1rem;
    width: 5.4rem;
    height: calc(100% - 3.2rem);
    margin: 0;
    text-align: center;
  }

  .root-reason__catch-text {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    margin: 0;
    color: #2f2f2f;
    font-size: 2.2rem;
    font-weight: 500;
    line-height: 1.35;
    letter-spacing: 0.08em;
    writing-mode: vertical-rl;
    text-orientation: mixed;
  }

  .root-reason__top-body {
    padding-top: 0;
  }

  .root-reason__h3 {
    margin-bottom: 1.6rem;
    font-size: 2rem;
    line-height: 1.7;
    letter-spacing: 0.03em;
  }

  .root-reason__lead {
    margin-bottom: 1.6rem;
    font-size: 1.6rem;
    line-height: 1.95;
    letter-spacing: 0.02em;
  }

  .root-reason__point {
    margin-top: 1.8rem;
    padding: 1.6rem;
    background: #f5efdc;
  }

  .root-reason__point-copy {
    font-size: 1.6rem;
    line-height: 1.9;
  }

  .root-reason__bottom {
    display: block;
    margin-top: 0;
    padding: 2.6rem 1rem 0;
    min-height: auto;
	  background: linear-gradient(180deg, rgba(245, 245, 243, 0.97) 0%, rgba(245, 245, 243, 0.95) 52%, rgba(245, 245, 243, 0.76) 76%, rgba(245, 245, 243, 0.52) 100%), url(../images/top/root-reason-microscope-bg.png) no-repeat 100% 88% / 100% auto, #eef4f1;
    border: 0.1rem solid #dde7e2;
    box-shadow: 0 0.8rem 2rem rgba(0, 0, 0, 0.03);
  }

  .root-reason__bottom::before {
    display: none;
  }

  .root-reason__bottom-text {
    max-width: none;
  }

  .root-reason__h3--line {
    padding-left: 1.8rem;
    margin-bottom: 2.2rem;
  }

  .root-reason__h3--line::before {
    top: 0.5rem;
    width: 0.5rem;
    height: 5.4rem;
  }

  .root-reason__h3--line::after {
    bottom: -0.8rem;
  }

  .root-reason__desc--lg {
    font-size: 1.8rem;
    line-height: 1.85;
  }

  .root-reason__desc {
    font-size: 1.5rem;
    line-height: 1.9;
    margin-bottom: 1.6rem;
  }

  .root-reason__note {
    margin-top: 0;
    padding: 0.8rem;
  }

  .root-reason__note p {
    font-size: 1.5rem;
    line-height: 1.9;
  }
}

/* =========================================
  マイクロエンドとは？
========================================= */
section.microendsec {
    background: url(../images/top/microendbg.png);
    background-repeat: no-repeat;
    background-size: contain;
}
.wrap.microend {
    width: 80%;
    margin: auto;
}
/* ── SECTION HEADER ── */
.sec-header{
  position:relative;
  text-align:center;
  padding:72px 40px 56px;
  overflow:hidden;
}
.bg-en{
  position:absolute;
  top:50%;left:50%;
  transform:translate(-50%,-42%);
  font-family:'Noto Serif JP',serif;
  font-size:100px;
  font-weight:300;
  letter-spacing:0.12em;
  color:rgba(75,83,67,0.055);
  white-space:nowrap;
  pointer-events:none;
  user-select:none;
}
.sub-en{
  font-family:'Noto Sans JP',sans-serif;
  font-size:12px;
  letter-spacing:0.22em;
  color:#b69459;
  text-transform:uppercase;
  margin-bottom:18px;
  display:block;
}
.main-h2{
	font-size:4.2rem;
	font-weight:500;
  color:#4b5343;
  line-height:1.7;
  margin-bottom:20px;
}
.main-h2 em{
  font-style:normal;
  color:#6d8d7c;
}
.h2-deco{
  width:1px;
  height:48px;
  background:linear-gradient(to bottom,transparent,#b69459,transparent);
  margin:0 auto 24px;
}
.sec-lead{
/*   font-size:15px; */
  line-height:2;
  color:#5a5a5a;
/*   max-width:680px; */
  margin:0 auto;
}
.sec-lead strong{
  color:#4b5343;
  font-weight:500;
  border-bottom:1px solid rgba(109,141,124,0.4);
}

/* ── BLOCK LABEL ── */
.block-label{
  display:flex;
  align-items:center;
  gap:16px;
  margin:0 40px 28px;
}
.block-label::before,.block-label::after{
  content:'';
  flex:1;
  height:1px;
  background:linear-gradient(to right,transparent,rgba(182,148,89,0.3));
}
.block-label::after{
  background:linear-gradient(to left,transparent,rgba(182,148,89,0.3));
}
.block-label span{
	font-family:'Noto Serif JP',serif;
	font-size:3rem;
	font-weight:700;
	letter-spacing:0.14em;
	color:#b69459;
	white-space:nowrap;
}

/* ── DEFINITION ── */
.def-block{
  margin:0 40px 64px;
  display:grid;
  grid-template-columns:auto 1fr;
  gap:0;
  border:1px solid rgba(182,148,89,0.2);
  border-radius:2px;
  overflow:hidden;
}
.def-accent{
  width:56px;
  background:#4b5343;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:6px;
}
.def-accent-line{
  width:1px;
  height:32px;
  background:rgba(212,196,164,0.4);
}
.def-accent-dot{
  width:5px;
  height:5px;
  border-radius:50%;
  background:#b69459;
}
.def-body{
  padding:28px 32px;
  background:#faf9f6;
}
.def-body h3{
	font-size:2.5rem;
	font-weight:500;
	color:#4b5343;
	margin-bottom:12px;
	line-height:1.7;
}
.def-body p{
  line-height:2;
  color:#5a5a5a;
}
.def-body p strong{
  color:#4b5343;
  font-weight:500;
}

/* ── COMPARE ── */
.compare-wrap{
  margin:0 40px 64px;
}
.compare-grid{
  display:grid;
  grid-template-columns:1fr 56px 1fr;
  border:1px solid rgba(182,148,89,0.18);
  border-radius:2px;
  overflow:hidden;
}
.compare-col{
  padding:32px 28px;
}
.compare-col--ins{
  background:#f7f6f4;
}
.compare-col--micro{
  background:#f2f4f0;
}
.compare-col__head{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:22px;
  padding-bottom:14px;
  border-bottom:1px solid rgba(0,0,0,0.1);
}
.compare-col--micro .compare-col__head{
  border-bottom-color:rgba(109,141,124,0.3);
}
.col-badge{
  font-size:10px;
  letter-spacing:0.08em;
  padding:3px 9px;
  border-radius:1px;
  font-family:'Noto Sans JP',sans-serif;
}
.col-badge--ins{
  background:#ddd;
  color:#777;
}
.col-badge--micro{
  background:#4b5343;
  color:#e8e0d0;
}
.compare-col__name{
	font-size:1.8rem;
	font-weight:500;
	color:#4b5343;
}
.compare-list{
  list-style:none;
  display:flex;
  flex-direction:column;
  gap:14px;
}
.compare-list li{
	display:grid;
	grid-template-columns:20px 1fr;
	gap:8px;
	font-size:1.5rem;
	line-height:1.75;
	color:#555;
}
.ci{
  font-size:13px;
  font-weight:500;
  margin-top:2px;
  text-align:center;
}
.ci--bad{color:#c0b8ab;}
.ci--good{color:#6d8d7c;}

.compare-vs{
  background:#4b5343;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:4px;
}
.compare-vs span{
  font-family:'Noto Serif JP',serif;
  font-size:12px;
  color:#d4c4a4;
  letter-spacing:0.1em;
}
.compare-vs-line{
  width:1px;
  height:20px;
  background:rgba(212,196,164,0.3);
}

/* ── REASONS ── */
.reasons-grid{
  margin:0 40px 64px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1px;
  background:rgba(182,148,89,0.15);
  border:1px solid rgba(182,148,89,0.15);
  border-radius:2px;
  overflow:hidden;
}
.reason-card{
  background:#fff;
  padding:28px 26px;
  position:relative;
}
.reason-card::before{
  content:'';
  position:absolute;
  top:0;left:0;right:0;
  height:2px;
  background:#6d8d7c;
  opacity:0;
  transition:opacity .2s;
}
.reason-num{
  font-size:11px;
  letter-spacing:0.18em;
  color:#b69459;
  margin-bottom:10px;
  display:block;
}
.reason-title{
	font-size:1.8rem;
	font-weight:500;
	color:#4b5343;
	line-height:1.65;
	margin-bottom:10px;
}
.reason-text{
	font-size:1.5rem;
	line-height:1.9;
	color:#666;
}

/* ── VISUAL ── */
.visual-block{
  margin:0 40px 64px;
  background:#f8f7f4;
  border-radius:2px;
  overflow:hidden;
  border:1px solid rgba(182,148,89,0.15);
}
.visual-block__header{
  padding:24px 32px 20px;
  border-bottom:1px solid rgba(182,148,89,0.15);
}
.visual-block__title{
	font-size:1.8rem;
  font-weight:500;
  color:#4b5343;
  text-align:center;
  line-height:1.7;
}
.visual-block__title span{color:#6d8d7c;font-size:2rem;}
.visual-frames{
  display:grid;
  grid-template-columns:1fr 1fr;
}
.v-frame{
  padding:28px 24px;
  position:relative;
}
.v-frame--ins{
  border-right:1px solid rgba(182,148,89,0.15);
}
.v-frame__label{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:16px;
}
.v-frame__badge{
  font-size:10px;
  letter-spacing:0.07em;
  padding:4px 10px;
  border-radius:1px;
}
.v-frame__badge--ins{background:#ddd;color:#777;}
.v-frame__badge--micro{background:#4b5343;color:#e8e0d0;}
.v-frame__mag{
	font-size:1.8rem;
  color:#b69459;
  letter-spacing:0.05em;
}
.v-frame__screen{
  border-radius:4px;
  overflow:hidden;
  height:160px;
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
}
.v-frame__screen--ins{background:#0e0e0e;}
.v-frame__screen--micro{background:#141a12;}

/* 保険：ぼやけた視野のSVG */
.vfx-ins{position:absolute;inset:0;}
/* マイクロ：くっきり視野のSVG */
.vfx-micro{position:absolute;inset:0;}

.v-frame__caption{
  margin-top:12px;
  font-size:12px;
  color:#888;
  line-height:1.7;
  text-align:center;
}

/* ── POINT BOX ── */
.point-box{
  margin:0 40px 24px;
  background:#faf6e1;
  border:1px solid rgba(182,148,89,0.25);
  border-radius:2px;
  padding:28px 36px;
  text-align:center;
}
.point-box p{
	font-size:2.5rem;
	font-weight:500;
	color:#4b5343;
	line-height:1.9;
}
.point-box span{
  color:#6d8d7c;
  border-bottom:1px solid rgba(109,141,124,0.5);
  padding-bottom:1px;
}

/* ── NOTE ── */
.note{
  margin:0 40px 48px;
	font-size:1.6rem;
  color:#aaa;
  line-height:1.8;
	padding-left:1.5rem;
  border-left:2px solid rgba(182,148,89,0.2);
}
/* mobile */
@media screen and (max-width: 767px) {
	.wrap.microend {
		width: 100%;
		margin: auto;
	}
	.block-label span {
		font-size:1.6rem;
	}
}
@media screen and (max-width: 767px) {
  .wrap.microend {
    width: 100%;
    margin: 0 auto;
    padding-inline: 16px;
  }

  /* ── SECTION HEADER ── */
  .sec-header {
    padding: 56px 16px 36px;
    text-align: left;
  }

  .bg-en {
    top: 26px;
    left: 16px;
    transform: none;
    font-size: clamp(4.8rem, 17vw, 7rem);
    letter-spacing: 0.08em;
    white-space: nowrap;
  }

  .sub-en {
    position: relative;
    z-index: 1;
    font-size: 1.1rem;
    letter-spacing: 0.18em;
    margin-bottom: 14px;
	  text-align: center;
  }

  .main-h2 {
	  position: relative;
	  z-index: 1;
	  font-size: clamp(2rem, 5vw, 3rem);
	  line-height: 1.45;
	  margin-bottom: 16px;
	  text-align: center;
  }

  .main-h2 em {
    display: block;
    margin-top: 6px;
    font-size: 0.88em;
    line-height: 1.5;
  }

  .h2-deco {
	  height: 32px;
  }

  .sec-lead {
    position: relative;
    z-index: 1;
    font-size: 1.4rem;
    line-height: 1.95;
    text-align: left;
  }

  .sec-lead br {
    display: none;
  }

  /* ── BLOCK LABEL ── */
  .block-label {
    gap: 10px;
    margin: 0 0 18px;
  }

  .block-label span {
	  font-size: 1.8rem;
    letter-spacing: 0.08em;
    line-height: 1.55;
    white-space: normal;
    text-align: center;
  }

  /* ── DEFINITION ── */
  .def-block {
    margin: 0 0 40px;
    grid-template-columns: 1fr;
    border-radius: 14px;
    box-shadow: 0 10px 24px rgba(75, 83, 67, 0.06);
  }

  .def-accent {
    width: 100%;
	  height: 20px;
    flex-direction: row;
    gap: 10px;
    padding: 0 18px;
  }

  .def-accent-line {
    width: 32px;
    height: 1px;
  }

  .def-body {
    padding: 22px 18px 20px;
  }

  .def-body h3 {
	  font-size: 1.8rem;
    line-height: 1.5;
    margin-bottom: 10px;
  }

  .def-body p {
    line-height: 1.95;
  }

  /* ── COMPARE ── */
  .compare-wrap {
    margin: 0 0 40px;
  }

  .compare-grid {
    grid-template-columns: 1fr;
    gap: 12px;
    border: none;
    border-radius: 0;
    background: transparent;
    overflow: visible;
  }

  .compare-col {
    padding: 20px 16px 18px;
    border: 1px solid rgba(182, 148, 89, 0.18);
    border-radius: 14px;
  }

  .compare-col__head {
    align-items: flex-start;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 16px;
    padding-bottom: 12px;
  }

  .compare-col__name {
    font-size: 1.7rem;
    line-height: 1.5;
  }

  .compare-list {
    gap: 12px;
  }

  .compare-list li {
    grid-template-columns: 18px 1fr;
    gap: 10px;
    font-size: 1.4rem;
    line-height: 1.85;
  }

  .ci {
    font-size: 1.2rem;
    margin-top: 1px;
  }

  .compare-vs {
    width: max-content;
    min-width: 96px;
    margin: -2px auto;
    padding: 8px 18px;
    border-radius: 999px;
    flex-direction: row;
    gap: 8px;
    box-shadow: 0 8px 20px rgba(75, 83, 67, 0.16);
  }

  .compare-vs span {
    font-size: 1.1rem;
  }

  .compare-vs-line {
    width: 18px;
    height: 1px;
  }

  /* ── REASONS ── */
  .reasons-grid {
    margin: 0 0 40px;
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: 84%;
    gap: 12px;
    background: transparent;
    border: none;
    border-radius: 0;
    overflow-x: auto;
    overflow-y: hidden;
    padding: 0 2px 6px 0;
    scroll-snap-type: x proximity;
    -webkit-overflow-scrolling: touch;
  }

  .reasons-grid::-webkit-scrollbar {
    height: 4px;
  }

  .reasons-grid::-webkit-scrollbar-thumb {
    background: rgba(182, 148, 89, 0.35);
    border-radius: 999px;
  }

  .reason-card {
    padding: 22px 18px 20px;
    border: 1px solid rgba(182, 148, 89, 0.16);
    border-radius: 14px;
    box-shadow: 0 10px 22px rgba(75, 83, 67, 0.05);
    scroll-snap-align: start;
	  width: 300px;
  }

  .reason-card::before {
    opacity: 1;
  }

  .reason-num {
    font-size: 1rem;
    margin-bottom: 8px;
  }

  .reason-title {
    font-size: 1.7rem;
    line-height: 1.55;
    margin-bottom: 8px;
  }

  .reason-text {
    font-size: 1.4rem;
    line-height: 1.9;
  }

  /* ── VISUAL ── */
  .visual-block {
    margin: 0 0 40px;
    border-radius: 14px;
  }

  .visual-block__header {
    padding: 18px 16px 16px;
  }

  .visual-block__title {
    font-size: 1.7rem;
    line-height: 1.55;
  }

  .visual-block__title span {
    font-size: 1.8rem;
  }

  .visual-frames {
    grid-template-columns: 1fr;
  }

  .v-frame {
    padding: 20px 16px;
  }

  .v-frame--ins {
    border-right: none;
    border-bottom: 1px solid rgba(182, 148, 89, 0.15);
  }

  .v-frame__label {
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 12px;
  }

  .v-frame__mag {
    font-size: 1.6rem;
  }

  .v-frame__screen {
    height: 132px;
  }

  .v-frame__caption {
    margin-top: 10px;
    font-size: 1.2rem;
  }

  /* ── POINT BOX ── */
  .point-box {
    margin: 0 0 18px;
    padding: 20px 18px;
    text-align: left;
  }

  .point-box p {
	  font-size: 1.6rem;
	  line-height: 1.65;
  }

  .point-box br {
    display: none;
  }

  /* ── NOTE ── */
  .note {
    margin: 0 0 40px;
    padding-left: 12px;
	  font-size: 1.6rem;
    line-height: 1.8;
  }
}
/* =========================================
   治療器具
========================================= */
.equipmentsec {
	background: url(../images/top/equipmentbg.png);
	background-repeat: no-repeat;
	overflow: hidden;
}
.equipment.equipment--endo {
  padding: 10rem 2rem 9rem;
  /* background: #eee url(../images/equipmentbg.png) no-repeat center top / 100% auto; */
}

.equipment.equipment--endo h2 {
  display: flex;
  justify-content: center;
  flex-direction: column;
  text-align: center;
  margin: 0 0 5rem;
  font-size: 3.6rem;
  line-height: 1.5;
  color: #2f2f2f;
}

.equipment.equipment--endo .small {
  font-size: 1.8rem;
  color: #8f7b5b;
  margin-bottom: 0.8rem;
}

.equipment.equipment--endo .equipdesc {
  text-align: center;
  margin: 0 0 6rem;
  font-size: 1.8rem;
  line-height: 2;
  color: #4b4b4b;
}

.equipment.equipment--endo .equiptwrap {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2.4rem;
  max-width: 140rem;
  margin: 0 auto;
}

.equipment.equipment--endo .quipt {
  position: relative;
  display: grid;
  background-repeat: no-repeat;
  background-size: 100% 100%;
  min-height: 33rem;
}

.equipment.equipment--endo .quipt.box01 {
  background-image: url(../images/top/equipment01.png);
  
}

.equipment.equipment--endo .quipt.box02 {
  background-image: url(../images/top/equipment02.png);
}

.equipment.equipment--endo .quipt.box03 {
  background-image: url(../images/top/equipment03.png);
}

.equipment.equipment--endo .quipt.box04 {
  background-image: url(../images/top/mta001.png);
}
.quipt:nth-of-type(2n - 1) {
    padding: 1.2em 1.2em 1.2em 23.46em;
}
.quipt:nth-of-type(2n) {
  padding: 1.2em 23.46em 1.2em 1.2em;
}

.equipment.equipment--endo .namberleft {
  position: absolute;
  display: block;
  top: 0;
  left: 0;
  width: 7rem;
  aspect-ratio: 70 / 68;
  margin: 0;
}

.equipment.equipment--endo .namberleft::before {
  content: "";
  display: block;
  position: absolute;
  inset: 0;
  clip-path: polygon(0 0, 100% 0, 0 100%);
  background-color: rgba(89, 129, 115, 0.96);
}

.equipment.equipment--endo .namberleft span {
  position: relative;
  z-index: 2;
  display: inline-block;
  line-height: 1;
  font-size: 3rem;
  font-style: italic;
  color: #fff;
  padding: 0.4rem 0 0 1.2rem;
}

.equipment.equipment--endo .descwrap {
  background-color: rgb(235 241 238 / 95%);
  padding: 2.2rem 2rem 2.2rem;
}

.equipment.equipment--endo .descwrap h3 {
  font-size: 2rem;
  text-align: center;
  border-bottom: 0.1rem solid #3d3d3d;
  padding: 0 0 1rem;
  margin: 0 0 1.6rem;
  line-height: 1.7;
  color: #2f2f2f;
}

.equipment.equipment--endo .descwrap h3 span {
  font-size: 2.8rem;
  color: #8f7b5b;
}

.equipment.equipment--endo .descinner {
  font-size: 1.7rem;
  line-height: 1.9;
  margin: 0 0 1.6rem;
  color: #4b4b4b;
}

.equipment.equipment--endo .descwrap ul {
  margin: 1.6rem 0 0;
  padding: 0;
  list-style: none;
}

.equipment.equipment--endo .descwrap li {
  position: relative;
  margin: 0;
  padding: 0 0 1.2rem 3.2rem;
  font-size: 1.6rem;
  line-height: 1.9;
  color: #3f3f3f;
  border-bottom: 0.1rem solid rgba(143, 123, 91, 0.18);
}

.equipment.equipment--endo .descwrap li + li {
  margin-top: 1.2rem;
}

.equipment.equipment--endo .descwrap li::before {
  content: "";
  position: absolute;
  top: 0.7rem;
  left: 0;
  width: 2.6rem;
  height: 2.6rem;
  border: 0.1rem solid #8f7b5b;
  border-radius: 50%;
  box-sizing: border-box;
}

.equipment.equipment--endo .descwrap li::after {
  content: "";
  position: absolute;
  top: 1rem;
  left: 0.9rem;
  width: 0.7rem;
  height: 1.1rem;
  border-right: 0.15rem solid #8f7b5b;
  border-bottom: 0.15rem solid #8f7b5b;
  transform: rotate(45deg);
  box-sizing: border-box;
}

/* tablet */
@media screen and (max-width: 1100px) {
  .equipment.equipment--endo {
    padding: 8rem 2rem 8rem;
  }

  .equipment.equipment--endo h2 {
    font-size: 3rem;
    margin-bottom: 4rem;
  }

  .equipment.equipment--endo .small {
    font-size: 1.6rem;
  }

  .equipment.equipment--endo .equipdesc {
    font-size: 1.7rem;
    margin-bottom: 4.8rem;
  }

  .equipment.equipment--endo .equiptwrap {
    gap: 2rem;
  }

  .equipment.equipment--endo .quipt {
    min-height: 30rem;
  }

  .equipment.equipment--endo .descwrap {
    padding: 1.5rem 1rem;
  }

  .equipment.equipment--endo .descwrap h3 {
    font-size: 1.8rem;
  }

  .equipment.equipment--endo .descwrap h3 span {
    font-size: 2.4rem;
  }

  .equipment.equipment--endo .descinner {
    font-size: 1.3rem;
  }

  .equipment.equipment--endo .descwrap li {
    font-size: 1.3rem;
    padding: 0 0 0.2rem 3.2rem;
  }
  .equipment.equipment--endo .descwrap li::before {
    width: 2rem;
    height: 2rem;
  }
  .equipment.equipment--endo .descwrap li::after {
    top: 1rem;
    left: 0.7rem;
    width: 0.5rem;
    height: 0.9rem;
}
  .quipt:nth-of-type(2n) {
    padding: 1.2em 18.46em 1.2em 1.2em;
  }
  .quipt:nth-of-type(2n - 1) {
    padding: 1.2em 1.2em 1.2em 18.46em;
}
}

/* mobile */
@media screen and (max-width: 767px) {
  .equipment.equipment--endo {
    padding: 6rem 1.6rem 6rem;
    /* background: #eee url(../images/equipmentbg.png) no-repeat center top / cover; */
  }

  .equipment.equipment--endo h2 {
    margin: 0 0 3rem;
    font-size: 2.4rem;
    line-height: 1.6;
  }

  .equipment.equipment--endo .small {
    font-size: 1.4rem;
    margin-bottom: 0.6rem;
  }

  .equipment.equipment--endo .equipdesc {
    margin: 0 0 3.6rem;
    font-size: 1.5rem;
    line-height: 1.9;
  }

  .equipment.equipment--endo .equiptwrap {
    grid-template-columns: 1fr;
    gap: 1.8rem;
    width: 100%;
  }

  .equipment.equipment--endo .quipt {
    min-height: auto;
    background-size: cover;
    background-position: center;
  }
	.equipment.equipment--endo .quipt.box04 {
		background-position: right;
	}

  .equipment.equipment--endo .namberleft {
    width: 5.8rem;
  }

  .equipment.equipment--endo .namberleft span {
    font-size: 2.4rem;
    padding: 0.3rem 0 0 0.9rem;
  }

  .equipment.equipment--endo .descwrap {
    padding: 0.8rem 0.6rem 0.8rem;
  }

  .equipment.equipment--endo .descwrap h3 {
    font-size: 1.7rem;
    line-height: 1.7;
    padding-bottom: 0.8rem;
    margin-bottom: 1.2rem;
  }

  .equipment.equipment--endo .descwrap h3 span {
	  font-size: 1.8rem;
  }

  .equipment.equipment--endo .descinner {
    font-size: 1.2rem;
    line-height: 1.85;
    margin-bottom: 1.2rem;
  }

  .equipment.equipment--endo .descwrap li {
    padding-left: 2rem;
    padding-bottom: 0.2rem;
    margin-bottom: 0.8rem;
    background-position: 0 0.55rem;
    background-size: 1rem auto;
    font-size: 1.2rem;
    line-height: 1.8;
  }
  .equipment.equipment--endo .descwrap li::before {
    width: 1.6rem;
    height: 1.6rem;
  }
  .equipment.equipment--endo .descwrap li::after {
    content: "";
    position: absolute;
    top: 1.1rem;
    left: 0.7rem;
    width: 0.3rem;
    height: 0.7rem;
  }

  .equipment.equipment--endo .pc_only {
    display: none;
  }
  .quipt:nth-of-type(2n - 1) {
    padding: 1.2em 1em 1.2em 13.46em;
}
.quipt:nth-of-type(2n) {
  padding: 1.2em 13.46em 1.2em 1em;
}
}
.equipment.equipment--endo .equipment__head {
  position: relative;
  max-width: 108rem;
  margin: 0 auto 6rem;
  text-align: center;
  padding: 0 2rem;
}

.equipment.equipment--endo .equipment__head::before {
  content: "";
  position: absolute;
  top: -50.4rem;
  left: 50%;
  transform: translateX(-50%);
  width: 140rem;
  height: 140rem;
  border-radius: 50%;
  background: radial-gradient(circle, #ffffff 0%, rgb(255 255 255 / 8%) 55%, rgb(255 255 255 / 0%) 75%);
  z-index: 0;
  pointer-events: none;
}

.equipment.equipment--endo .equipment__ttl {
  position: relative;
  z-index: 1;
  margin: 0 0 2.8rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.8rem;
}

.equipment.equipment--endo .equipment__ttl .small {
  position: relative;
  display: inline-block;
  padding: 0.9rem 2rem 1rem;
  background: linear-gradient(135deg, #8f7b5b 0%, #b59c72 100%);
  color: #fff;
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.14em;
  box-shadow: 0 0.8rem 1.8rem rgba(143, 123, 91, 0.18);
}

.equipment.equipment--endo .equipment__ttl .main {
  position: relative;
  display: inline-block;
  color: #4b5343;
  font-size: 4.4rem;
  font-weight: 500;
  line-height: 1.45;
  letter-spacing: 0.06em;
  padding: 0 3.6rem 1.8rem;
	border-bottom: 0.1rem solid rgba(143, 123, 91, 0.35);
}

.equipment.equipment--endo .equipment__ttl .main::before,
.equipment.equipment--endo .equipment__ttl .main::after {
  content: "";
  position: absolute;
  top: 1.4rem;
  width: 5.2rem;
	height: calc(100% - 1.4rem);
  border-top: 0.1rem solid rgba(143, 123, 91, 0.35);
}

.equipment.equipment--endo .equipment__ttl .main::before {
  left: 0;
  border-left: 0.1rem solid rgba(143, 123, 91, 0.35);
}

.equipment.equipment--endo .equipment__ttl .main::after {
  right: 0;
  border-right: 0.1rem solid rgba(143, 123, 91, 0.35);
}

.equipment.equipment--endo .equipment__ttl .main {
/* background: linear-gradient(transparent calc(100% - 0.5rem), rgb(183 221 178 / 45%) calc(100% - 0.5rem)); */
}

.equipment.equipment--endo .equipdesc {
  position: relative;
  z-index: 1;
  max-width: 82rem;
  margin: 0 auto;
  padding: 2.6rem 3.2rem;
  background: rgba(255, 255, 255, 0.78);
  border: 0.1rem solid rgba(143, 123, 91, 0.15);
  box-shadow: 0 1.4rem 3rem rgba(0, 0, 0, 0.05);
  backdrop-filter: blur(0.4rem);
  text-align: center;
  font-size: 1.8rem;
  line-height: 2;
  color: #4b4b4b;
}


/* tablet */
@media screen and (max-width: 1100px) {
  .equipment.equipment--endo .equipment__head {
    margin-bottom: 5rem;
  }

  .equipment.equipment--endo .equipment__ttl .main {
    font-size: 3.6rem;
    padding: 0 2.8rem 1.4rem;
  }

  .equipment.equipment--endo .equipment__ttl .main::before,
  .equipment.equipment--endo .equipment__ttl .main::after {
    width: 3.8rem;
  }

  .equipment.equipment--endo .equipdesc {
    font-size: 1.7rem;
    padding: 2.2rem 2.6rem;
  }
}

/* mobile */
@media screen and (max-width: 767px) {
  .equipment.equipment--endo .equipment__head {
    margin-bottom: 3.6rem;
    padding: 0;
  }

  .equipment.equipment--endo .equipment__head::before {
    width: 80rem;
    height: 80rem;
    top: -23.6rem;
  }

  .equipment.equipment--endo .equipment__ttl {
    gap: 1.2rem;
    margin-bottom: 2rem;
  }

  .equipment.equipment--endo .equipment__ttl .small {
    padding: 0.7rem 1.4rem 0.8rem;
    font-size: 1.2rem;
    letter-spacing: 0.1em;
  }

  .equipment.equipment--endo .equipment__ttl .main {
    font-size: 2.6rem;
    line-height: 1.55;
    padding: 0 1.6rem 1rem;
  }

  .equipment.equipment--endo .equipment__ttl .main::before,
  .equipment.equipment--endo .equipment__ttl .main::after {
    width: 1.8rem;
    top: 1rem;
    height: calc(100% - 1rem);
  }

  .equipment.equipment--endo .equipdesc {
    padding: 1.8rem 1.6rem;
    font-size: 1.5rem;
    line-height: 1.9;
	  text-align: left;
  }

}
/* ========== koutaku1: 光沢テキスト ========== */

.koutaku1 {
  display: inline;
  background: linear-gradient(
    to bottom,
    #d8e8d4 0%,
    #96bc90 12%,
    #6a9964 28%,
    #4e7d48 42%,
    #7aac74 49%,
    #eaf4e6 52%,   /* ← ハイライト */
    #82b47c 57%,
    #5a8c55 72%,
    #7aaa74 86%,
    #b2ceac 95%,
    #d8e8d4 100%
  );
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  filter:
    drop-shadow(0 0.1rem 0.2rem rgba(74, 125, 68, 0.35))
    drop-shadow(0 0.3rem 0.7rem rgba(74, 125, 68, 0.15));
  font-style: normal;
  font-size: 5.5rem;
}

/* tablet */
@media screen and (max-width: 1100px) {
  .koutaku1 {
    filter:
      drop-shadow(0 0.1rem 0.2rem rgba(74, 125, 68, 0.3))
      drop-shadow(0 0.2rem 0.5rem rgba(74, 125, 68, 0.12));
  }
}

/* mobile */
@media screen and (max-width: 767px) {
  .koutaku1 {
    filter:
      drop-shadow(0 0.08rem 0.15rem rgba(74, 125, 68, 0.3))
      drop-shadow(0 0.15rem 0.4rem rgba(74, 125, 68, 0.12));
    font-size: 3.8rem;
  }
}
@media screen and (max-width: 500px) {
	.koutaku1 {
		font-size: 3rem;
	}
}
/*------------------- footer -------------------*/
:root {
  --col-bg: #f2f7f4;
  --col-footer-bg: #e8f2ec;
  --col-footer-top: #d8ecdf;
  --col-primary: #5d9e7a;
  --col-primary-dark: #3d7a58;
  --col-primary-light: #8ec4a5;
  --col-text: #3a4d42;
  --col-text-muted: #7a9485;
  --col-border: #bdd9c8;
  --col-white: #ffffff;
  --font-serif: 'Noto Serif JP', serif;
  --font-sans: 'Noto Sans JP', sans-serif;
  --font-latin: 'Cormorant Garamond', serif;
}


/* ===== MAIN NAV BAR ===== */
.footer-nav-bar {
  background: var(--col-footer-top);
  border-top: 1px solid var(--col-border);
  border-bottom: 1px solid var(--col-border);
  padding: 12px 0;
}

.footer-nav-bar .inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0;
}

.footer-nav-bar a {
  display: inline-block;
  font-size: 1.6rem;
  font-weight: 300;
  color: var(--col-text);
  text-decoration: none;
  letter-spacing: 0.08em;
  padding: 6px 18px;
  transition: color 0.2s ease;
  position: relative;
}

.footer-nav-bar a:not(:last-child)::after {
  content: '';
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 1px;
  height: 12px;
  background: var(--col-border);
}

.footer-nav-bar a:hover {
  color: var(--col-primary);
}

/* ===== SITEMAP SECTION ===== */
.footer-sitemap {
  background: var(--col-footer-bg);
  padding: 40px 0 36px;
}

.footer-sitemap .inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 40px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0 32px;
}

.sitemap-col {
  padding: 0 8px;
}

.sitemap-col:not(:last-child) {
  border-right: 1px solid var(--col-border);
}

.sitemap-heading {
  font-family: var(--font-serif);
  font-size: 1.6rem;
  font-weight: 500;
  color: var(--col-primary-dark);
  letter-spacing: 0.12em;
  padding-bottom: 10px;
  margin-bottom: 14px;
  border-bottom: 1px solid var(--col-border);
}

.sitemap-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.sitemap-list li a {
  font-size: 1.4rem;
  font-weight: 300;
  color: var(--col-text);
  text-decoration: none;
  letter-spacing: 0.06em;
  line-height: 1.6;
  display: inline-block;
  padding-left: 12px;
  position: relative;
  transition: color 0.2s ease, padding-left 0.2s ease;
}

.sitemap-list li a::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 5px;
  height: 1px;
  background: var(--col-primary-light);
  transition: width 0.2s ease;
}

.sitemap-list li a:hover {
  color: var(--col-primary);
  padding-left: 16px;
}

.sitemap-list li a:hover::before {
  width: 9px;
}

/* ===== COPYRIGHT ===== */
.footer-copyright {
  background: var(--col-primary-dark);
  padding: 16px 0;
  text-align: center;
}

.footer-copyright p {
  font-family: var(--font-latin);
  font-size: 11px;
  font-weight: 300;
  letter-spacing: 0.15em;
  color: rgba(255,255,255,0.6);
}

.footer-copyright span.clinic-name-copy {
  font-family: var(--font-sans);
  font-size: 10px;
  letter-spacing: 0.08em;
}

/* ===== RESPONSIVE ===== */
@media (max-width: 860px) {
  .clinic-info-bar .inner {
    flex-direction: column;
    align-items: flex-start;
    gap: 24px;
  }

  .footer-sitemap .inner {
    grid-template-columns: 1fr 1fr;
    gap: 28px;
  }

  .sitemap-col:nth-child(2) {
    border-right: none;
  }

  .sitemap-col:nth-child(3) {
    grid-column: 1 / -1;
    border-right: none;
    border-top: 1px solid var(--col-border);
    padding-top: 24px;
  }
}

@media (max-width: 560px) {
  .footer-sitemap .inner {
    grid-template-columns: 1fr;
  }

  .sitemap-col:not(:last-child) {
    border-right: none;
    border-bottom: 1px solid var(--col-border);
    padding-bottom: 20px;
  }

  .sitemap-col:nth-child(3) {
    grid-column: auto;
  }

  .footer-nav-bar a {
	  padding: 4px 10px;
	  font-size: 1.3rem;
  }
}

/*==================================================================================================================================

  *選ばれる理由

==================================================================================================================================*/
.dream-ttlbloc {
  margin: 30px auto;
}

.dreamttl {
  position: relative;
  margin: 30px 0;
  font-size: 50px;
  line-height: 1.4;
  text-align: center;
  color: #2F2F2F;
  text-shadow: 1px 1px 4px rgba(255, 255, 255, 0.6);
}

.dreamttl .mini {
  font-size: 25px;
}

.dream-ttlbloc p {
  text-align: center;
  color: #4b5d46;
}

.dream-ttlbloc p .underline {
  text-decoration: none;
  border-bottom: 2px solid rgba(122, 156, 144, 0.55);
}

.problemspan {
  background: linear-gradient(135deg, #1f5c2e 0%, #2f7d32 22%, #4caf50 46%, #457d32 60%, #2f9e44 78%, #145a32 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  color: transparent;
  font-weight: 700;
  filter: drop-shadow(0 3px 8px rgba(112, 134, 94, 0.22));
}

/* セクションの背景 */
.sedai {
  position: relative;
  padding: 95px 0;
  overflow: hidden;
  z-index: 0;
  background: linear-gradient(
    to right,
    rgba(255, 255, 255, 1) 0%,
    rgba(238, 244, 241, 0.92) 20%,
    rgba(244, 248, 246, 0.92) 80%,
    rgba(255, 255, 255, 1) 100%
  );
}

.sedai::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 80px;
  background: linear-gradient(to bottom, rgba(255, 255, 255, 1), rgba(255, 255, 255, 0));
  z-index: 1;
}

.sedai::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 80px;
  background: linear-gradient(to top, rgba(255, 255, 255, 1), rgba(255, 255, 255, 0));
  z-index: 1;
}

.idx_inr {
  position: relative;
  display: block;
  margin: 0 auto;
}

.idx_box {
  position: relative;
  display: block;
}

.idx_lst li {
  position: relative;
  display: block;
  padding-left: 1em;
  margin-bottom: .5em;
  background-repeat: no-repeat;
  background-position: 0 .4em;
  background-size: .8em auto;
}

.sedai .idx_inr {
  max-width: 1400px;
  width: 100%;
  padding: 36px 0;
  margin-bottom: 30px;
  background-repeat: no-repeat;
  background-size: auto 100%;
  background-position: 100% 0;
  background-color: #fff;
}

.sedai .idx_inr:nth-of-type(2) {
  background-position: 0 0;
}

.sedai .idx_box {
  max-width: 858px;
  margin: 0 auto 0 0;
  padding: 30px 24px 24px 65px;
  color: #2f3a2b;
  background-color: rgba(255, 255, 255, 0.72);
  box-shadow: 3px 3px 8px rgba(112, 134, 94, 0.14);
}

.sedai .idx_inr:nth-of-type(2) .idx_box,
.sedai .idx_inr:nth-of-type(4) .idx_box {
  margin: 0 0 0 auto;
  box-shadow: -3px 3px 8px rgba(112, 134, 94, 0.14);
}

.sedai_ttl {
  position: relative;
  margin: 0 0 24px;
  font-size: 26.87px;
  border-bottom: 1px solid #70865E;
  color: #364132;
}

.sedai_ttl span {
  font-size: 35px;
  color: #7A9C90;
}

.sedai_ttl::before {
  content: "";
  display: block;
  position: absolute;
  width: 99px;
  aspect-ratio: 1 / 1;
  left: -45px;
  top: -24px;
  background-repeat: no-repeat;
  background-size: 100% 100%;
}

.sedai_lead {
  display: flex;
  align-items: center;
  width: 60%;
  padding: 0 0 16px;
  margin: 0 auto 15px 0;
}

.sedai_lead p {
  display: block;
  color: #3d4638;
}

.sedai_lead p i {
  display: block;
}

.sedai_lead p .ja {
  font-size: 27.52px;
}

.sedai_lead p .en {
  font-size: 39.63px;
  font-weight: 700;
}

.sedai_lead figure {
  flex: 1;
}

.sedai .idx_lst {
  font-size: 15px;
  color: #3d4638;
}

.sedai .idx_lst li {
  line-height: 1.3;
}

.sedai .idx_lst li::before {
  content: "●";
  position: relative;
  top: 3px;
  margin-right: 10px;
  font-size: 20px;
  color: #7A9C90;
}

.sedai .idx_lst li span {
  display: block;
}

.sedai .idx_lst li em {
  font-weight: 600;
  font-size: 19px;
}

.sedai01 li em,
.sedai02 li em,
.sedai03 li em,
.sedai04 li em,
.sedai05 li em {
  color: #70865E;
}

.sedai_fig {
  position: absolute;
}

.sedai .idx_gnr_btn {
  width: unset;
  left: unset;
  right: 36px;
  bottom: 20px;
}

.idx_gnr_01 {
  background-image: url(../images/top/reason_1.png);
  background-repeat: no-repeat;
}

.idx_gnr_01 .sedai_lead p {
  margin-right: 42px;
}

.idx_gnr_01 .sedai_lead figure img {
  width: 109px;
  aspect-ratio: 109 / 149;
}

.idx_gnr_01 .sedai_fig {
  width: 366px;
  right: 0;
  bottom: 40px;
}

.idx_gnr_01 .sedai_fig img {
  aspect-ratio: 366 / 272;
  padding: 10px;
}

.idx_gnr_02 {
  background-image: url(../images/top/reason_2.png);
  background-repeat: no-repeat;
}

.idx_gnr_02 .sedai_lead p {
  margin-right: 36px;
}

.idx_gnr_02 .sedai_lead figure img {
  width: 103px;
  aspect-ratio: 103 / 138;
}

.idx_gnr_02 .idx_lst li:nth-of-type(2) span:nth-of-type(2) {
  margin-left: -.4em;
}

.idx_gnr_02 .sedai_fig {
  width: 378px;
  right: 42px;
  bottom: 40px;
}

.idx_gnr_02 .sedai_fig img {
  aspect-ratio: 378 / 269;
}

.idx_gnr_03 {
  background-image: url(../images/top/reason_3.png);
  background-repeat: no-repeat;
}

.idx_gnr_03 .sedai_lead p {
  margin-right: 30px;
}

.idx_gnr_03 .sedai_lead figure img {
  width: 117px;
  aspect-ratio: 117 / 144;
}

.idx_gnr_03 .idx_lst li:nth-of-type(2),
.idx_gnr_03 .idx_lst li:nth-of-type(3) {
  padding-left: 1em;
}

.idx_gnr_03 .sedai_fig {
  width: 377px;
  right: 42px;
  bottom: 40px;
}

.idx_gnr_03 .sedai_fig img {
  aspect-ratio: 377 / 269;
}

.idx_gnr_04 {
  background-image: url(../images/top/reason_4.png);
  background-repeat: no-repeat;
}

.idx_gnr_04 .sedai_lead p {
  margin-right: 30px;
}

.idx_gnr_04 .sedai_lead figure img {
  width: 117px;
  aspect-ratio: 117 / 144;
}

.idx_gnr_04 .idx_lst li:nth-of-type(2),
.idx_gnr_04 .idx_lst li:nth-of-type(3) {
  padding-left: 1em;
}

.idx_gnr_04 .sedai_fig {
  width: 377px;
  right: 42px;
  bottom: 40px;
}

.idx_gnr_04 .sedai_fig img {
  aspect-ratio: 377 / 269;
}

.idx_gnr_05 {
  background-image: url(../images/top/reason_4.png);
  background-repeat: no-repeat;
}

.idx_gnr_05 .sedai_lead p {
  margin-right: 30px;
}

.idx_gnr_05 .sedai_lead figure img {
  width: 117px;
  aspect-ratio: 117 / 144;
}

.idx_gnr_05 .idx_lst li:nth-of-type(2),
.idx_gnr_05 .idx_lst li:nth-of-type(3) {
  padding-left: 1em;
}

.idx_gnr_05 .sedai_fig {
  width: 346px;
  right: 42px;
  bottom: 5px;
}


/* ================================
   モバイル
================================ */
@media screen and (max-width: 767px) {

  .dream-ttlbloc {
    margin: 30px 10px;
  }

  .dreamttl {
    font-size: 2.5rem;
  }

  .dreamttl .mini {
    font-size: 1.1rem;
  }

  .sedai {
    padding: 95px 0;
  }

  .sedai .idx_inr {
    width: 100%;
    padding: 10px;
    margin-bottom: 30px;
    background-size: auto 100%;
    background-position: 100% 0;
  }

  .sedai .idx_inr:nth-of-type(2) {
    background-position: 0 0;
  }

  .sedai .idx_box {
    max-width: 100%;
    margin: 0;
    padding: 10px;
  }

  .sedai .idx_inr:nth-of-type(2) .idx_box,
  .sedai .idx_inr:nth-of-type(4) .idx_box {
    margin: 0;
  }

  .sedai_ttl {
    margin: 0 0 24px;
    padding: 0 5px 10px;
    font-size: 2.0rem;
  }

  .sedai_ttl span {
    font-size: 2.3rem;
  }

  .sedai_lead {
    display: flex;
    align-items: center;
    width: 100%;
    padding: 0 0 16px;
    margin: 0;
  }

  .sedai_lead p .ja {
    font-size: 27.52px;
  }

  .sedai_lead p .en {
    font-size: 39.63px;
  }

  .sedai .idx_lst {
    font-size: 15px;
  }

  .sedai .idx_lst li {
    line-height: 1.3;
  }

  .sedai .idx_lst li span {
    display: block;
  }

  .sedai .idx_lst li em {
    font-size: 16px;
  }

  .sedai_fig {
    position: static;
    width: 100%;
    margin: 10px 0;
  }

  .sedai .idx_gnr_btn {
    right: 36px;
    bottom: 20px;
  }
	
.sedai .idx_lst li::before {
  margin-right: 5px;
}

  .idx_gnr_01 {
    background-image: none;
  }

  .idx_gnr_01 .sedai_lead p {
    margin-right: 0;
  }

  .idx_gnr_01 .sedai_lead figure img {
    width: 109px;
    aspect-ratio: 109 / 149;
  }

  .idx_gnr_01 .sedai_fig {
    width: 100%;
  }

  .idx_gnr_01 .sedai_fig img {
    aspect-ratio: 366 / 272;
    padding: 10px;
  }

  .idx_gnr_02 {
    background-image: none;
  }

  .idx_gnr_02 .sedai_lead p {
    margin-right: 0;
  }

  .idx_gnr_02 .sedai_lead figure img {
    width: 103px;
    aspect-ratio: 103 / 138;
  }

  .idx_gnr_03 {
    background-image: none;
  }

  .idx_gnr_03 .sedai_lead p {
    margin-right: 0;
  }

  .idx_gnr_03 .sedai_lead figure img {
    width: 117px;
    aspect-ratio: 117 / 144;
  }

  .idx_gnr_04 {
    background-image: none;
  }

  .idx_gnr_04 .sedai_lead p {
    margin-right: 0;
  }

  .idx_gnr_04 .sedai_lead figure img {
    width: 117px;
    aspect-ratio: 117 / 144;
  }

  .idx_gnr_05 {
    background-image: none;
  }

  .idx_gnr_05 .sedai_lead p {
    margin-right: 0;
  }

  .idx_gnr_05 .sedai_lead figure img {
    width: 117px;
    aspect-ratio: 117 / 144;
  }

  .idx_gnr_05 .idx_lst li:nth-of-type(2),
  .idx_gnr_05 .idx_lst li:nth-of-type(3) {
    padding-left: 0;
  }
	
	.idx_gnr_03 .idx_lst li:nth-of-type(2),
.idx_gnr_03 .idx_lst li:nth-of-type(3) {
  padding-left: 0;
}
	
		.idx_gnr_04 .idx_lst li:nth-of-type(2),
.idx_gnr_04 .idx_lst li:nth-of-type(3) {
  padding-left: 0;
}
	
.idx_lst li {
  padding-left: 0;
}
.idx_gnr_02 .sedai_fig,
.idx_gnr_03 .sedai_fig {
	width:100%;
	}

}

/* -------------------
   sedai内のボタンデザイン
------------------- */
.sedai .btn03{
  margin-top: 24px;
}

.sedai .btn03 a {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 320px;
  padding: 1em 3.2em 1em 1.6em;
  color: #fff;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: .08em;
  line-height: 1.6;
  text-decoration: none;
  background: linear-gradient(135deg, #7A9C90 0%, #70865E 100%);
  border: 1px solid rgba(112, 134, 94, 0.9);
  box-shadow:
    0 10px 24px rgba(112, 134, 94, 0.18),
    inset 0 1px 0 rgba(255, 255, 255, 0.25);
  transition:
    transform .2s ease,
    box-shadow .2s ease,
    background .2s ease,
    opacity .2s ease;
  overflow: hidden;
}

/* 内側の細いライン */
.sedai .btn03 a::before {
  content: "";
  position: absolute;
  inset: 5px;
  border: 1px solid rgba(255, 255, 255, 0.28);
  pointer-events: none;
}

/* 右矢印 */
.sedai .btn03 a::after {
  content: "→";
  position: absolute;
  right: 1.2em;
  top: 50%;
  transform: translateY(-50%);
  font-size: 16px;
  font-weight: 400;
  transition: transform .2s ease;
}

/* hover */
.sedai .btn03 a:hover {
  transform: translateY(-2px);
  box-shadow:
    0 14px 28px rgba(112, 134, 94, 0.24),
    inset 0 1px 0 rgba(255, 255, 255, 0.3);
  background: linear-gradient(135deg, #70865E 0%, #5F7350 100%);
}

.sedai .btn03 a:hover::after {
  transform: translateY(-50%) translateX(4px);
}

/* モバイル */
@media screen and (max-width: 767px) {
  .sedai .btn03 a {
    display: flex;
    width: 100%;
    min-width: 0;
    padding: .95em 2.8em .95em 1.2em;
    font-size: 14px;
  }

  .sedai .btn03 a::after {
    right: 1em;
  }
	
}

/*==================================================================================================================================

  *セカンドオピニオン

==================================================================================================================================*/
:root {
  --accent1: #fff;
  /* リボンの赤系（画像寄せ） */
  --accent-dark: #90a081;
  --brand: #5B84B1;
  /* サブアクセント（英字や線に） */
  --ink: #fff;
}

/* ====== セクション土台 ====== */
.consult-section {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  max-width: auto;
  margin: 0 auto;
  padding: 0;
  font-family: "Shippori Mincho", serif;
  color: var(--ink);
  background: #fff;
  border: 1px solid rgba(0, 0, 0, .06);
}

/* 背景画像（左右） */
.consult-bg {
  position: absolute;
  inset: 0;
  z-index: -1;
}

.consult-bg .bg-left {
  position: absolute;
  left: -4%;
  top: 0;
  bottom: 0;
  width: 50%;
  height: 100%;
  object-fit: cover;
  filter: saturate(.95) brightness(1.02);
}

.consult-bg .bg-right {
  position: absolute;
  right: -4%;
  top: 0;
  bottom: 0;
  width: 50%;
  height: 100%;
  object-fit: cover;
  filter: saturate(1.05) brightness(1.02);
}

/* コンテンツ中央寄せ */
.consult-inner {
  max-width: 660px;
  margin: 0 auto;
  text-align: center;
  backdrop-filter: saturate(1.05);
  background: #7A9C90;
}

/* 見出し */
.consult-h3 {
  font-size: clamp(24px, 3.2vw, 40px);
  font-weight: 600;
  letter-spacing: .05em;
  margin: 0 0 clamp(12px, 1.8vw, 16px);
  color: #fff;
}

.consult-h3 span {
  background: linear-gradient(to bottom, transparent 58%, #b69459 0);
  padding: 0 .18em;
  border-radius: 2px;
}

.consult-label{
  position: relative;
  display: inline-block;
  font-weight: 400;
  letter-spacing: .12em;
  color: #7A9C90;
  padding: 0.4em 1.0em;
  margin: 20px 0 50px 0;
  font-size: 45px;
  box-shadow: 0 6px 18px rgba(166,84,77,.25);
  background-color: #fff;
  background-image: repeating-linear-gradient(
    45deg,
    rgba(122, 156, 144, 0.08) 0,
    rgba(122, 156, 144, 0.08) 6px,
    rgba(255, 255, 255, 0.0) 6px,
    rgba(255, 255, 255, 0.0) 12px
  );
}

.consult-ribbon {
  position: relative;
  display: inline-block;
  color: #70865e;
  background: #fff;
  font-size: clamp(18px, 2.2vw, 24px);
  letter-spacing: .06em;
  padding: .7em 1.6em;
  margin: 1rem auto 1.2em;
  box-shadow: 0 8px 24px rgba(0, 0, 0, .15);
}

.consult-ribbon::after {
  content: "";
  position: absolute;
  top: 6px;
  right: 6px;
  bottom: 6px;
  left: 6px;
  border: 1px solid rgba(112, 134, 94, 0.35);
  pointer-events: none;
}
.consult-ribbon strong {
  font-weight: 800;
}

/* 説明文 */
.consult-text {
  font-size: clamp(15px, 1.8vw, 18px);
  line-height: 1.9;
  color: #fff;
  margin: 0 auto clamp(16px, 2.2vw, 24px);
}

.consult-text p {
  margin: .4em 0;
}

/* CTAボタン */
.consult-cta {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .7em;
  font-weight: 700;
  color: #70865e;
  border: 1px solid rgba(112, 134, 94, 0.45);
  padding: 1em 2em;
  background: linear-gradient(180deg, #ffffff 0%, #f7f9f5 100%);
  text-decoration: none;
  letter-spacing: .08em;
  box-shadow:
    0 10px 24px rgba(0, 0, 0, 0.08),
    inset 0 0 0 1px rgba(255, 255, 255, 0.8);
  transition:
    transform .2s ease,
    box-shadow .2s ease,
    border-color .2s ease,
    color .2s ease,
    background .2s ease;
  overflow: hidden;
  margin-bottom: 30px;
	font-size: 1.6rem;
}

.consult-cta::before {
  content: "";
  position: absolute;
  inset: 5px;
  border: 1px solid rgba(112, 134, 94, 0.18);
  pointer-events: none;
}

.consult-cta::after {
  content: "";
  position: absolute;
  top: 0;
  left: -30%;
  width: 22%;
  height: 100%;
  background: linear-gradient(
    90deg,
    rgba(255,255,255,0) 0%,
    rgba(255,255,255,0.65) 50%,
    rgba(255,255,255,0) 100%
  );
  transform: skewX(-25deg);
  transition: left .5s ease;
}

.consult-cta:hover {
  transform: translateY(-2px);
  color: #5f7350;
  border-color: rgba(112, 134, 94, 0.7);
  box-shadow:
    0 14px 28px rgba(0, 0, 0, 0.12),
    inset 0 0 0 1px rgba(255, 255, 255, 0.9);
}

.consult-cta:hover::after {
  left: 110%;
}

.consult-cta span {
  position: relative;
  z-index: 1;
}

.consult-cta .arrow {
  position: relative;
  z-index: 1;
  font-size: .95em;
  transition: transform .2s ease;
}

.consult-cta:hover .arrow {
  transform: translateX(3px);
}

.consult-cta:hover {
  transform: translateY(-1px);
  border-color: var(--brand);
  box-shadow: 0 8px 18px rgba(91, 132, 177, .18);
}

/* ====== モバイル最適化 ====== */
@media (max-width: 768px) {

  .consult-bg .bg-left,
  .consult-bg .bg-right {
    width: 100%;
    left: 0;
    right: 0;
    filter: opacity(.2);
  }

  .consult-inner {
    max-width: 680px;
  }

    .consult-section {
    padding: 24px 16px 32px;
  }

  .consult-label {
    clip-path: none;
    font-size: 25px;
    text-align: center;
    margin: 0em 0 20px 0;
    padding: 0.4em 1.4em;
  }

  .consult-cta {
	  width: 80%;
    justify-content: center;
  }
	
  .consult-ribbon {
  padding: .7em 1.2em;
}
}

/*==================================================================================================================================

  *ペンエンド認定医紹介ブロック

==================================================================================================================================*/
.penn-profile {
  position: relative;
  padding: 100px 20px;
  overflow: hidden;
      background: linear-gradient(rgb(245 248 245 / 24%), rgb(250 252 249 / 9%)), url(../images/top/penn_bg.png) center / cover no-repeat;
}

.penn-profile__inner {
  /* max-width: 1280px; */
  margin: 0 30px;
}

.penn-profile__head {
  position: relative;
  z-index: 2;
  max-width: 760px;
  margin-bottom: 28px;
  margin-left: 2%;
}

.penn-profile__lead {
  display: inline-block;
  margin: 0 0 14px;
  padding: 0.25em 0.8em;
  color: #70865E;
  font-size: clamp(20px, 1.2vw, 24px);
  letter-spacing: 0.08em;
  background: rgba(255, 255, 255, 0.72);
  box-shadow: 0 18px 45px rgba(95, 115, 80, 0.12);
}

.penn-profile__title {
  margin: 0 0 26px;
  color: #b69035;
  font-size: clamp(34px, 4.2vw, 62px);
  line-height: 1.28;
  font-weight: 500;
  letter-spacing: 0.03em;
  text-shadow: 0 2px 12px rgba(255, 255, 255, 0.45);
}

.penn-profile__checklist {
  margin: 0;
  padding: 0;
  list-style: none;
}

.penn-profile__checklist li {
  position: relative;
  margin-bottom: 14px;
  padding-left: 40px;
  color: #4d403d;
  font-size: clamp(18px, 1.7vw, 32px);
  line-height: 1.6;
  letter-spacing: 0.03em;
}

.penn-profile__checklist li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 0.2em;
  width: 22px;
  height: 22px;
  border: 1px solid #7A9C90;
  color: #70865E;
  font-size: 15px;
  line-height: 20px;
  text-align: center;
  background: #fff;
  box-sizing: border-box;
}

/* メインカード */
.penn-profile__card {
  position: relative;
  padding: 36px 38px 0;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.82) 0%, rgba(255,255,255,0.94) 100%);
  border: 1px solid #dfe8e1;
  box-shadow: 0 18px 45px rgba(95, 115, 80, 0.12);
  overflow: hidden;
}

/* 背景の薄いグリッド感 */
.penn-profile__card::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    repeating-linear-gradient(
      0deg,
      rgba(120, 120, 120, 0.035) 0,
      rgba(120, 120, 120, 0.035) 1px,
      transparent 1px,
      transparent 12px
    ),
    repeating-linear-gradient(
      90deg,
      rgba(120, 120, 120, 0.03) 0,
      rgba(120, 120, 120, 0.03) 1px,
      transparent 1px,
      transparent 12px
    );
  opacity: 0.55;
  pointer-events: none;
}

/* 右上の斜め装飾 */
.penn-profile__card::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 44%;
  height: 260px;
  background:
    linear-gradient(
      155deg,
      rgba(122, 156, 144, 0.10) 0%,
      rgba(255,255,255,0) 38%,
      rgba(112, 134, 94, 0.18) 72%,
      rgba(112, 134, 94, 0.05) 100%
    );
  clip-path: polygon(34% 0, 100% 0, 100% 100%, 0 100%);
  pointer-events: none;
}

/* 認定証 */
.penn-profile__certificate {
	display:none;
  position: absolute;
  right: 22px;
  top: 22px;
  width: min(39%, 430px);
  z-index: 1;
}

.penn-profile__certificate img {
  display: block;
  width: 90%;
  height: auto;
  object-fit: cover;
  box-shadow: 0 16px 30px rgba(95, 115, 80, 0.14);
}

/* 人物写真 */
.penn-profile__photo {
  position: absolute;
  left: 34px;
  /* bottom: 112px; */
  width: 31%;
  z-index: 2;
}

.penn-profile__photo img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
  box-shadow: 0 14px 28px rgba(95, 115, 80, 0.14);
}

/* テキストエリア */
.penn-profile__content {
  position: relative;
  z-index: 3;
  margin-left: 38%;
  padding-top: 150px;
  /* padding-right: 39%; */
  padding-bottom: 42px;
}

.penn-profile__position {
  margin: 0 0 16px;
  color: #7f6561;
  font-size: clamp(15px, 1.1vw, 18px);
  line-height: 1.8;
  letter-spacing: 0.06em;
}

.penn-profile__name {
  margin: 0 0 24px;
  color: #3e3131;
  font-size: clamp(32px, 3vw, 56px);
  line-height: 1.2;
  font-weight: 500;
  letter-spacing: 0.08em;
}

.penn-profile__message {
  margin: 0 0 18px;
  color: #70865E;
  font-size: clamp(18px, 1.5vw, 24px);
  line-height: 1.9;
  font-weight: 500;
}

.penn-profile__text {
  margin: 0 0 14px;
  color: #5a4c49;
  font-size: clamp(15px, 1.08vw, 17px);
  line-height: 2.05;
}

/* 下部情報帯 */
.penn-profile__bottom {
  position: relative;
  z-index: 3;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 34px;
  padding: 28px 34px;
  background: linear-gradient(90deg, #7A9C90 0%, #a5b498 44%, #7A9C90 100%);
}

.penn-profile__bottom::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    repeating-linear-gradient(
      90deg,
      rgba(255,255,255,0.05) 0,
      rgba(255,255,255,0.05) 1px,
      transparent 1px,
      transparent 8px
    );
  opacity: 0.2;
  pointer-events: none;
}

.penn-profile__bottom-col {
  position: relative;
  z-index: 1;
  padding: 18px 20px;
  background: rgba(255,255,255,0.92);
}

.penn-profile__bottom-ttl {
  margin: 0 0 12px;
  color: #5a3f3f;
  font-size: 16px;
  line-height: 1.5;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.penn-profile__bottom-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.penn-profile__bottom-list li {
  position: relative;
  margin-bottom: 8px;
  padding-left: 1em;
  color: #5a4b48;
  font-size: 15px;
  line-height: 1.8;
}

.penn-profile__bottom-list li::before {
  content: "・";
  position: absolute;
  left: 0;
  top: 0;
  color: #8b2437;
}

/* ========================================
   タブレット
======================================== */
@media screen and (max-width: 1100px) {
  .penn-profile__certificate {
    width: 34%;
  }

  .penn-profile__photo {
    width: 30%;
    left: 24px;
  }

  .penn-profile__content {
    margin-left: 34%;
    padding-top: 120px;
    padding-right: 31%;
  }
}

/* ========================================
   モバイル
======================================== */
@media screen and (max-width: 767px) {
  .penn-profile {
    padding: 70px 16px;
  }

  .penn-profile__inner {
    margin: 0;
  }

  .penn-profile__lead {
    font-size: 14px;
    margin-bottom: 10px;
  }

  .penn-profile__title {
    margin-bottom: 18px;
    font-size: 25px;
    line-height: 1.35;
  }

  .penn-profile__checklist li {
    padding-left: 34px;
    font-size: 16px;
    line-height: 1.7;
  }

  .penn-profile__card {
    padding: 18px 16px 0;
  }

  .penn-profile__card::after {
    width: 62%;
    height: 170px;
  }

  .penn-profile__certificate {
    position: static;
    width: 100%;
    margin-bottom: 18px;
  }

  .penn-profile__certificate img {
    border-width: 4px;
    width: 100%;
  }

  .penn-profile__photo {
    position: static;
    width: 100%;
    max-width: 290px;
    margin: 0 auto 18px;
  }

  .penn-profile__content {
    margin-left: 0;
    padding-top: 0;
    padding-right: 0;
    padding-bottom: 24px;
  }

  .penn-profile__position {
    font-size: 14px;
  }

  .penn-profile__name {
    font-size: 30px;
    margin-bottom: 18px;
  }

  .penn-profile__message {
    font-size: 17px;
    line-height: 1.8;
  }

  .penn-profile__text {
    font-size: 14px;
    line-height: 1.9;
  }

  .penn-profile__bottom {
    grid-template-columns: 1fr;
    gap: 14px;
    padding: 16px;
  }

  .penn-profile__bottom-col {
    padding: 14px 14px;
  }

  .penn-profile__bottom-ttl {
    font-size: 15px;
  }

  .penn-profile__bottom-list li {
    font-size: 14px;
  }
}

/*==================================================================================================================================

  *症例

==================================================================================================================================*/
.rootcase {
  --bg: #eef4f0;
  --bg2: #e4ece7;
  --line: rgba(92, 122, 108, 0.16);
  --line-strong: rgba(92, 122, 108, 0.26);
  --text: #52685d;
  --text-deep: #3f564b;
  --text-soft: #71857a;
  --accent: #8fa79a;
  --accent-deep: #627a6e;
  --gold-soft: #d3c79d;

  position: relative;
  overflow: hidden;
  padding: 110px 20px;
  background:
    radial-gradient(circle at 8% 14%, rgba(255,255,255,0.78) 0%, rgba(255,255,255,0) 30%),
    linear-gradient(135deg, var(--bg) 0%, var(--bg2) 100%);
}

.rootcase::before {
  content: "";
  position: absolute;
  right: -120px;
  top: -80px;
  width: 360px;
  height: 360px;
  border-radius: 50%;
  background: rgba(151, 176, 163, 0.12);
  pointer-events: none;
}

.rootcase::after {
  content: "";
  position: absolute;
  left: -140px;
  bottom: -140px;
  width: 420px;
  height: 420px;
  border-radius: 50%;
  background: rgba(151, 176, 163, 0.10);
  pointer-events: none;
}

.rootcase__inner {
  position: relative;
  z-index: 1;
  max-width: 1240px;
  margin: 0 auto;
}

.rootcase__head {
  position: relative;
  margin-bottom: 42px;
  padding-right: 150px;
}

.rootcase__case {
  position: absolute;
  top: -18px;
  right: 0;
  margin: 0;
  color: rgba(143, 167, 154, 0.34);
  font-size: clamp(64px, 9vw, 128px);
  line-height: 0.9;
  letter-spacing: 0.06em;
  font-family: "Cormorant Garamond", "Times New Roman", serif;
  pointer-events: none;
}

.rootcase__title {
  margin: 0 0 16px;
  color: var(--text-deep);
  font-size: clamp(28px, 3.2vw, 44px);
  line-height: 1.55;
  font-weight: 500;
  letter-spacing: 0.03em;
  font-family: "Shippori Mincho B1", "Yu Mincho", serif;
}

.rootcase__lead {
  max-width: 820px;
  margin: 0;
  color: var(--text-soft);
  font-size: 16px;
  line-height: 2;
  letter-spacing: 0.02em;
}

.rootcase__body {
  display: grid;
  grid-template-columns: minmax(0, 1.02fr) minmax(0, 0.98fr);
  gap: 34px;
	align-items: center;	
}

/* =========================
   left
========================= */

.rootcase__media {
  min-width: 0;
}

.rootcase__media-frame {
  position: relative;
  padding: 16px;
  background: linear-gradient(180deg, rgba(255,255,255,0.72) 0%, rgba(255,255,255,0.48) 100%);
  border: 1px solid rgba(255,255,255,0.78);
  border-radius: 28px;
  box-shadow:
    0 18px 48px rgba(72, 98, 84, 0.08),
    inset 0 1px 0 rgba(255,255,255,0.7);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
	margin: 0 0 20px 0;
}

.rootcase__media-frame::before {
  content: "";
  position: absolute;
  inset: 10px;
  border: 1px solid rgba(92, 122, 108, 0.12);
  border-radius: 20px;
  pointer-events: none;
}

.rootcase-gallery {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  position: relative;
  z-index: 1;
}

.rootcase-gallery__item {
  margin: 0;
}

.rootcase-gallery__label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 92px;
  padding: 9px 16px;
  margin-bottom: 12px;
  border-radius: 999px;
  background: rgba(76, 104, 93, 0.74);
  color: #fff;
  font-size: 12px;
  line-height: 1;
  letter-spacing: 0.12em;
}

.rootcase-gallery__image {
  overflow: hidden;
  border-radius: 20px;
  background: #dfe8e2;
  aspect-ratio: 4 / 3;
  box-shadow: 0 10px 24px rgba(72, 98, 84, 0.08);
}

.rootcase-gallery__image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.rootcase__caption {
  margin: 14px 0 0;
  color: var(--text-soft);
  font-size: 13px;
  line-height: 1.8;
}

/* =========================
   right
========================= */

.rootcase__flow {
  min-width: 0;
}

.rootcase-flow {
  height: 100%;
  padding: 26px 26px 24px;
  border-radius: 28px;
  background: linear-gradient(180deg, rgba(255,255,255,0.78) 0%, rgba(255,255,255,0.58) 100%);
  border: 1px solid rgba(255,255,255,0.76);
  box-shadow:
    0 18px 48px rgba(72, 98, 84, 0.08),
    inset 0 1px 0 rgba(255,255,255,0.72);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.rootcase-flow__head {
  margin-bottom: 18px;
}

.rootcase-flow__eyebrow {
  margin: 0 0 8px;
  color: var(--accent);
  font-size: 12px;
  line-height: 1;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.rootcase-flow__title {
  margin: 0;
  color: var(--text-deep);
  font-size: 26px;
  line-height: 1.5;
  font-weight: 500;
  font-family: "Shippori Mincho B1", "Yu Mincho", serif;
}

.rootcase-flow__table {
  display: grid;
  gap: 10px;
}

.rootcase-flow__row {
  display: grid;
  grid-template-columns: 110px 1fr;
  gap: 12px;
  align-items: stretch;
}

.rootcase-flow__visit {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 86px;
  padding: 12px 10px;
  border-radius: 14px;
  background: rgba(143, 167, 154, 0.12);
  color: var(--accent-deep);
  font-size: 14px;
  line-height: 1.5;
  font-weight: 700;
  text-align: center;
}

.rootcase-flow__content {
  min-height: 86px;
  padding: 16px 18px;
  border-radius: 16px;
  background: rgba(255,255,255,0.64);
  border: 1px solid var(--line);
}

.rootcase-flow__row--accent .rootcase-flow__visit {
  background: rgba(211, 199, 157, 0.22);
  color: #756743;
}

.rootcase-flow__row--accent .rootcase-flow__content {
  background: linear-gradient(180deg, rgba(237, 244, 239, 0.92) 0%, rgba(227, 237, 230, 0.82) 100%);
  border-color: var(--line-strong);
}

.rootcase-flow__label {
  margin: 0 0 6px;
  color: var(--text-deep);
  font-size: 17px;
  line-height: 1.45;
  font-weight: 700;
}

.rootcase-flow__text {
  margin: 0;
  color: var(--text-soft);
  font-size: 14px;
  line-height: 1.8;
}

.rootcase-flow__note {
  margin: 14px 0 0;
  color: var(--text-soft);
  font-size: 12px;
  line-height: 1.8;
}
/* 症例ボタン */
.case-btn-wrap {
  text-align: center;
  margin-top: 50px;
}

.case-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 520px;
  padding: 28px 80px 28px 64px;
  border: 1px solid rgba(96, 126, 113, 0.35);
  border-radius: 999px;
  background: linear-gradient(
    180deg,
    rgba(255, 255, 255, 0.92) 0%,
    rgba(239, 247, 243, 0.92) 100%
  );
  box-shadow: 0 18px 40px rgba(78, 103, 92, 0.14);
  color: #4d685c;
  font-family: "Noto Serif JP", "Yu Mincho", "YuMincho", serif;
  font-size: 2.8rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-decoration: none;
  transition: all 0.3s ease;
}

.case-btn__text {
  line-height: 1.4;
}

.case-btn__arrow {
  position: absolute;
  top: 50%;
  right: 48px;
  width: 18px;
  height: 18px;
  border-top: 2px solid #4d685c;
  border-right: 2px solid #4d685c;
  transform: translateY(-50%) rotate(45deg);
  transition: right 0.3s ease;
}

.case-btn:hover {
  background: linear-gradient(
    180deg,
    rgba(246, 251, 248, 1) 0%,
    rgba(225, 239, 232, 1) 100%
  );
  box-shadow: 0 22px 48px rgba(78, 103, 92, 0.2);
  transform: translateY(-2px);
	color: #4d685c;
}

.case-btn:hover .case-btn__arrow {
  right: 42px;
}

/* スマホ */
@media screen and (max-width: 768px) {
  .case-btn-wrap {
    margin-top: 36px;
    padding: 0 20px;
  }

  .case-btn {
    width: 100%;
    min-width: auto;
    padding: 20px 56px 20px 28px;
    font-size: 1.8rem;
    letter-spacing: 0.05em;
  }

  .case-btn__arrow {
    right: 28px;
    width: 13px;
    height: 13px;
  }

  .case-btn:hover .case-btn__arrow {
    right: 24px;
  }
}
/* =========================
   responsive
========================= */

@media screen and (max-width: 1100px) {
  .rootcase__body {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .rootcase__head {
    padding-right: 0;
  }

  .rootcase__case {
    position: static;
    margin-bottom: 10px;
    font-size: 58px;
    line-height: 1;
  }
}

@media screen and (max-width: 767px) {
  .rootcase {
    padding: 76px 14px;
  }

  .rootcase__head {
    margin-bottom: 28px;
  }

  .rootcase__title {
	  font-size: 2rem;
	  line-height: 1.6;
  }
  .rootcase__lead {
    font-size: 14px;
    line-height: 1.9;
  }

  .rootcase__media-frame,
  .rootcase-flow {
    padding: 14px;
    border-radius: 20px;
  }

  .rootcase__media-frame::before {
    inset: 8px;
    border-radius: 14px;
  }

  .rootcase-gallery {
    gap: 10px;
  }

  .rootcase-gallery__label {
    min-width: auto;
    padding: 8px 12px;
    margin-bottom: 8px;
    font-size: 11px;
  }

  .rootcase-gallery__image {
    border-radius: 14px;
  }

  .rootcase-flow__title {
    font-size: 22px;
  }

  .rootcase-flow__row {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .rootcase-flow__visit,
  .rootcase-flow__content {
    min-height: auto;
  }

  .rootcase-flow__visit {
    justify-content: flex-start;
    padding: 10px 14px;
    border-radius: 12px;
  }

  .rootcase-flow__content {
    padding: 14px;
    border-radius: 14px;
  }

  .rootcase-flow__label {
    font-size: 16px;
  }

  .rootcase-flow__text {
    font-size: 13px;
    line-height: 1.8;
  }
}
@media screen and (max-width: 460px) {
	span.paddleft {
		padding-left: 50%;
		padding-bottom: 10px;
	}
	span.paddleft30 {
		padding-left: 30%;
		padding-bottom: 10px;
	}
}

@media screen and (max-width: 374px) {
  .rootcase {
    padding: 62px 12px;
  }

  .rootcase__title {
    font-size: 22px;
  }
	span.paddleft {
		padding-left: 40%;
		padding-bottom: 10px;
	}
	span.paddleft30 {
		padding-left: 20%;
		padding-bottom: 10px;
	}

}

/* ペンエンド認定医 */
.pescj-feature {
  --green-main: #7fae9a;
  --green-deep: #5f8f7d;
  --green-light: #dfeee7;
  --green-accent: #9dc7b3;
  --text-main: #2f332f;
  --text-soft: #5f6761;
  --border: rgba(95, 143, 125, 0.35);

  position: relative;
  padding: 40px 20px;
  background:
    linear-gradient(rgba(250, 252, 250, 0.84), rgba(250, 252, 250, 0.88)),
    url("images/pescj-bg.jpg") center center / cover no-repeat;
  overflow: hidden;
}

.pescj-feature__inner {
  position: relative;
  max-width: 1240px;
  margin: 0 auto;
	padding: 50px 40px 20px;
  border: 1px solid var(--border);
  background: rgba(255, 255, 255, 0.18);
  box-sizing: border-box;
}

.pescj-feature__ribbon {
  position: absolute;
	top: 60px;
  left: -92px;
  width: 290px;
  transform: rotate(-45deg);
  background: linear-gradient(135deg, var(--green-deep), var(--green-main));
  box-shadow: 0 10px 24px rgba(70, 92, 80, 0.12);
  z-index: 5;
}

.pescj-feature__ribbon span {
  display: block;
  padding: 14px 12px;
  color: #fff;
  text-align: center;
  font-size: 1rem;
  line-height: 1.2;
  letter-spacing: 0.08em;
  font-weight: 700;
}

.pescj-feature__ghost {
  position: absolute;
  top: 12px;
  left: 50%;
  transform: translateX(-50%);
  margin: 0;
  font-size: clamp(70px, 11vw, 170px);
  line-height: 1;
  letter-spacing: 0.06em;
  color: rgba(95, 143, 125, 0.08);
  white-space: nowrap;
  pointer-events: none;
  z-index: 0;
}

.pescj-feature__heading {
  position: relative;
  z-index: 2;
  text-align: center;
}

.pescj-feature__sub {
  margin: 0 0 12px;
  color: var(--text-main);
  font-size: clamp(1.8rem, 3vw, 3.5rem);
  line-height: 1.4;
  font-weight: 400;
}

.pescj-feature__title {
  margin: 0;
  color: var(--green-deep);
	font-size: clamp(1.7rem, 4vw, 4.6rem);
  line-height: 1.35;
  font-weight: 500;
}

.pescj-feature__lead {
  max-width: 980px;
  margin: 18px auto 0;
  color: var(--text-main);
	font-size: clamp(1.5rem, 1.9vw, 2.05rem);
  line-height: 1.8;
}

.pescj-feature__catch {
  display: inline-block;
  margin: 28px auto 0;
  padding: 16px 34px;
  background: linear-gradient(135deg, rgba(95, 143, 125, 0.95), rgba(127, 174, 154, 0.95));
  color: #fff;
  font-size: clamp(1.15rem, 2.2vw, 2.3rem);
  line-height: 1.4;
  box-shadow: 0 10px 26px rgba(95, 143, 125, 0.18);
}

.pescj-feature__chart {
	position: relative;
	z-index: 2;
	margin-top: 10px;
	text-align: center;
}

.pescj-feature__rate {
  display: inline-block;
  min-width: 220px;
  padding: 12px 24px;
  background: linear-gradient(135deg, #8eb9a6, #74a48f);
  color: #fff;
  font-size: clamp(1.8rem, 3vw, 3.2rem);
  line-height: 1.1;
  font-weight: 500;
  box-shadow: 0 8px 20px rgba(95, 143, 125, 0.16);
}
.pescj-feature__rate span {
	font-size: 2.5rem;
	padding-right:10px;
}

.pescj-feature__connector {
	width: 2px;
	height: 20px;
  margin: 0 auto;
  background: #4f564f;
}

.pescj-feature__dot {
  width: 12px;
  height: 12px;
  margin: -6px auto 0;
  border-radius: 50%;
  background: #4f564f;
}

.pescj-feature__triangle-wrap {
  position: relative;
	width: min(100%, 550px);
  margin: 0 auto;
  padding-top: 14px;
}

.pescj-feature__triangle-cap {
  position: absolute;
	top: 0;
	left: 50%;
	width: 87px;
  height: 60px;
  transform: translateX(-50%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  background:
    repeating-linear-gradient(
      -45deg,
      #cfe47f 0 5px,
      #b8d66a 5px 10px
    );
  z-index: 3;
}

.pescj-feature__triangle {
	position: relative;
	width: 100%;
	height: 300px;
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  background: linear-gradient(180deg, #9ccbb8 0%, #81b59e 48%, #6d9f89 100%);
  box-shadow: 0 18px 40px rgba(76, 103, 90, 0.12);
}

.pescj-feature__triangle-content {
  position: absolute;
  inset: 92px 12% 38px;
  display: flex;
  flex-direction: column;
	justify-content: center;
  align-items: center;
  text-align: center;
  color: #fff;
}

.pescj-feature__triangle-title {
  margin: 0;
  font-size: clamp(1.4rem, 2vw, 2.25rem);
  line-height: 1.55;
  font-weight: 500;
}

.pescj-feature__triangle-title span {
  font-size: 0.88em;
}

.pescj-feature__doctor {
  margin: 18px 0 0;
  font-size: clamp(1.1rem, 1.5vw, 1.6rem);
  line-height: 1.6;
  font-weight: 700;
}

.pescj-feature__triangle-text {
  margin: 18px 0 0;
  font-size: clamp(1rem, 1.35vw, 1.3rem);
  line-height: 1.8;
}

.pescj-feature__note {
  margin: 28px 0 0;
  color: var(--text-soft);
	font-size: 2rem;
  line-height: 1.8;
}

@media (max-width: 991px) {
  .pescj-feature__inner {
    padding: 72px 24px 44px;
  }

  .pescj-feature__triangle {
    height: 390px;
  }

  .pescj-feature__triangle-content {
    inset: 82px 10% 30px;
  }
}

@media (max-width: 767px) {
  .pescj-feature {
    padding: 18px 12px;
  }

  .pescj-feature__inner {
    padding: 58px 16px 30px;
  }

  .pescj-feature__ribbon {
    top: 22px;
    left: -94px;
    width: 230px;
  }

  .pescj-feature__ribbon span {
    padding: 10px 8px;
    font-size: 0.8rem;
  }

  .pescj-feature__ghost {
    top: 38px;
    font-size: 3.6rem;
    letter-spacing: 0.02em;
  }

  .pescj-feature__lead {
    line-height: 1.7;
  }

  .pescj-feature__catch {
    display: block;
    padding: 14px 14px;
    margin-top: 22px;
  }

  .pescj-feature__chart {
	  margin-top: 18px;
  }

  .pescj-feature__rate {
    min-width: 160px;
    padding: 10px 16px;
  }

  .pescj-feature__connector {
	  height: 18px;
  }

  .pescj-feature__dot {
    width: 10px;
    height: 10px;
    margin-top: -5px;
  }

  .pescj-feature__triangle-wrap {
    width: 100%;
    max-width: 100%;
  }

  .pescj-feature__triangle-cap {
	  width: 55px;
    height: 40px;
  }

  .pescj-feature__triangle {
	  height: 220px;
	  top: -10px;
  }

  .pescj-feature__triangle-content {
    inset: 58px 8% 18px;
  }

  .pescj-feature__note {
    margin-top: 20px;
    font-size: 0.87rem;
    text-align: left;
  }
	.pescj-feature__rate span {
		font-size: 1.2rem;
}
}

/*==================================================================================================================================

  *固定CTAラッパー

==================================================================================================================================*/
.fixed-cta {
  position: fixed;
  bottom: 20px;
  right: 20px;
  display: flex;
  gap: 10px;
  z-index: 9999;
  flex-wrap: nowrap;
  justify-content: flex-end;
}

/* 各ボタン共通スタイル */
.cta-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 12px 18px;
/*   border-radius: 50px; */
  font-weight: 600;
  text-decoration: none;
  transition: all 0.3s ease;
  background-color: #fff;
  font-size: 1.8rem;
  box-sizing: border-box;
  border: 2px solid;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.cta-btn i {
  font-size: 1.3em;
}

/* TEL予約 */
.cta-abortion {
  color: #B2AB93;
  border-color: #B2AB93;
}

.cta-abortion:hover {
  background: #B2AB93;
  color: #fff;
}

/* WEB予約 */
.cta-webunder {
  color: #6C897D;
  border-color: #6C897D;
}

.cta-webunder:hover {
  background: #6C897D;
  color: #fff;
}

/* LINE */
.cta-lineunder {
  color: #757F8F;
  border-color: #757F8F;
}

.cta-lineunder:hover {
  background: #757F8F;
  color: #fff;
}

/* TOPボタン（丸ボタン） */
.cta-top {
  color: #fff;
  border-color: #B2AB93;
  background-color: #B2AB93;
  border-radius: 50%;
  width: 55px;
  height: 55px;
  font-size: 1rem;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}

.cta-top:hover {
  background-color: #C4BEA9;
  border-color: #C4BEA9;
}

/* スマホ対応 */
@media (max-width: 768px) {
  .fixed-cta {
    display: none;
  }
}
/* PC版 */
@media (min-width: 769px) {
  .fixed-cta {
    bottom: 20px;
    left: 0;
    width: auto;
    justify-content: flex-end;
    gap: 5px;
  }

  .cta-btn {
    width: auto;
    padding: 15px 25px;
    font-size: 1.8rem;
  }

  .cta-top {
    width: 70px;
    height: 70px;
    font-size: 1.8rem;
    position: relative;
  }
}
p.righttxt {
	color:#555;
	text-align: right;
	margin-top: -10px;
}
p.lefttxt {
	color:#555;
	margin-top: -10px;
}
/*==================================================================================================================================

  *表

==================================================================================================================================*/
.rct-success {
  padding: 80px 20px;
  background:
    radial-gradient(circle at top, rgba(255,255,255,0.98) 0%, rgba(250,247,241,0.96) 48%, #f5efe5 100%);
  color: #2f2a25;
}

.rct-success * {
  box-sizing: border-box;
}

.rct-success__inner {
	max-width: 80%;
	margin: 0 auto;
}

.rct-success__heading {
  margin-bottom: 30px;
  text-align: center;
}

.rct-success__en {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  margin: 0 0 8px;
  color: #9b6f2d;
  font-size: 1.7rem;
  line-height: 1.4;
  letter-spacing: 0.04em;
}

.rct-success__en::before,
.rct-success__en::after {
  content: "";
  width: 42px;
  height: 1px;
  background: #b98f4c;
}

.rct-success__heading h2 {
  margin: 0;
  color: #2b2621;
  font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "HGS明朝E", serif;
  font-size: clamp(3rem, 4vw, 4.8rem);
  font-weight: 600;
  line-height: 1.35;
  letter-spacing: 0.08em;
}

.rct-success__lead {
  margin: 12px 0 0;
  color: #5d574f;
  font-size: 1.45rem;
  line-height: 1.9;
  letter-spacing: 0.06em;
}

.rct-success__card,
.rct-reference {
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid #eadfce;
  border-radius: 10px;
  box-shadow: 0 12px 28px rgba(76, 57, 31, 0.08);
}

.rct-success__card {
  padding: 24px;
}

.rct-success__table-wrap {
  overflow-x: auto;
}

.rct-success__table {
  width: 100%;
  min-width: 820px;
  border-collapse: separate;
  border-spacing: 0;
  border: 1px solid #ded1bc;
  border-radius: 6px;
  overflow: hidden;
}

.rct-success__table th {
  padding: 12px 16px;
  background: #f5efe6;
  border-right: 1px solid #ded1bc;
  border-bottom: 1px solid #ded1bc;
  color: #332d27;
  font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
  font-size: 1.45rem;
  font-weight: 600;
  text-align: center;
  letter-spacing: 0.08em;
}

.rct-success__table th:last-child,
.rct-success__table td:last-child {
  border-right: none;
}

.rct-success__table td {
  padding: 15px 16px;
  background: #fffdfa;
  border-right: 1px solid #e6dac8;
  border-bottom: 1px solid #e6dac8;
  color: #332d27;
	font-size: 1.5rem;
  line-height: 1.8;
  vertical-align: middle;
  letter-spacing: 0.03em;
}

.rct-success__table tbody tr:last-child td {
  border-bottom: none;
}

.rct-success__table .is-highlight td {
  background: #f7fbf2;
}

.rct-success__table td:nth-child(1) {
  width: 38%;
}

.rct-success__table td:nth-child(2) {
  width: 25%;
}

.rct-success__table td:nth-child(3) {
  width: 37%;
}

.rct-treatment {
  display: flex;
  align-items: center;
  gap: 14px;
}

.rct-treatment__en {
  display: block;
  margin-bottom: 2px;
  color: #332d27;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.25rem;
  line-height: 1.5;
}

.rct-treatment strong {
  display: block;
  color: #302a23;
  font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
  font-size: 1.6rem;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.03em;
}

.rct-icon {
  position: relative;
  flex: 0 0 auto;
  width: 46px;
  height: 46px;
  border-radius: 50%;
  background: #f7eddb;
  display: grid;
  place-items: center;
}

.rct-icon--tooth::before {
  content: "";
  width: 20px;
  height: 26px;
  border: 3px solid #bd8c25;
  border-radius: 48% 48% 38% 38%;
}

.rct-icon--tooth::after {
  content: "";
  position: absolute;
  bottom: 11px;
  left: 50%;
  width: 6px;
  height: 12px;
  border-left: 2px solid #bd8c25;
  border-right: 2px solid #bd8c25;
  border-radius: 0 0 8px 8px;
  transform: translateX(-50%);
}

.rct-icon--retry::before {
  content: "↻";
  color: #bd8c25;
  font-size: 2.8rem;
  line-height: 1;
}

.rct-icon--damage::before {
  content: "";
  width: 20px;
  height: 26px;
  border: 3px solid #bd8c25;
  border-radius: 48% 48% 38% 38%;
}

.rct-icon--damage::after {
  content: "⚡";
  position: absolute;
  top: 8px;
  right: 8px;
  color: #bd8c25;
  font-size: 1.8rem;
  line-height: 1;
}

.rct-icon--chart::before {
  content: "";
  position: absolute;
  left: 13px;
  bottom: 13px;
  width: 5px;
  height: 10px;
  background: #bd8c25;
  box-shadow:
    8px -5px 0 #bd8c25,
    16px -11px 0 #bd8c25;
}

.rct-icon--chart::after {
  content: "";
  position: absolute;
  left: 12px;
  bottom: 12px;
  width: 28px;
  height: 22px;
  border-left: 2px solid #bd8c25;
  border-bottom: 2px solid #bd8c25;
}

.rct-rate {
  color: #5f7e53 !important;
/*   font-family: Georgia, "Times New Roman", serif; */
  line-height: 1.1 !important;
  text-align: center;
  white-space: nowrap;
}

.rct-rate__num {
  display: block;
  font-size: 4.2rem;
}

.rct-rate__num span {
  margin-left: 2px;
  font-size: 2.2rem;
}

.rct-rate small {
  display: block;
  margin-top: 6px;
  color: #1f271d;
  font-family: "Yu Gothic", "YuGothic", sans-serif;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.45;
  white-space: normal;
}

.rct-success__note {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-top: 18px;
  padding: 16px 22px;
  background: linear-gradient(90deg, #f7fbf1 0%, #fffdf8 100%);
  border: 1px solid #729566;
  border-radius: 6px;
}

.rct-shield {
  position: relative;
  flex: 0 0 auto;
  width: 50px;
  height: 54px;
}

/* .rct-shield::before {
  content: "";
  position: absolute;
  inset: 2px 4px;
  border: 2px solid #4f7b43;
  border-radius: 50% 50% 44% 44%;
}

.rct-shield::after {
  content: "✓";
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  color: #4f7b43;
  font-size: 2.5rem;
  font-weight: 700;
} */

.rct-success__note p {
  margin: 0;
  color: #315f2a;
  font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
  font-size: 1.65rem;
  font-weight: 600;
  line-height: 1.75;
  letter-spacing: 0.06em;
}

.rct-reference {
  display: grid;
  grid-template-columns: 32% 1fr;
  gap: 28px;
  margin-top: 28px;
  padding: 26px 28px;
}

.rct-reference__text {
  padding-right: 24px;
  border-right: 1px solid #e4d8c6;
}

.rct-reference__heading {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 18px;
}

.rct-book {
  position: relative;
  flex: 0 0 auto;
  width: 46px;
  height: 46px;
  border-radius: 50%;
  background: #f7f0e1;
}

.rct-book::before {
  content: "";
  position: absolute;
  left: 11px;
  top: 13px;
  width: 24px;
  height: 21px;
  border: 2px solid #9f762c;
  border-radius: 3px;
}

.rct-book::after {
  content: "";
  position: absolute;
  left: 23px;
  top: 13px;
  width: 2px;
  height: 21px;
  background: #9f762c;
}

.rct-reference__heading h3 {
  margin: 0;
  color: #302a23;
  font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
  font-size: 1.9rem;
  font-weight: 600;
  letter-spacing: 0.06em;
}

.rct-reference__text p {
  margin: 0;
  color: #4d463d;
  font-size: 1.3rem;
  line-height: 1.9;
  letter-spacing: 0.03em;
}

.rct-reference__tag {
  margin-top: 22px !important;
  padding: 9px 12px;
  border: 1px solid #d8d0c2;
  border-radius: 6px;
  background: #fff;
  font-size: 1.1rem !important;
  text-align: center;
}

.rct-chart {
	min-width: 0;
	margin: auto 0;
}

.rct-chart h3 {
  margin: 0 0 12px;
  color: #3d352e;
  font-size: 1.25rem;
  font-weight: 600;
  line-height: 1.6;
  text-align: center;
}

.rct-chart__wrap {
  display: flex;
  gap: 8px;
  height: 190px;
}

.rct-chart__y {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  width: 28px;
  padding: 18px 0 46px;
  color: #4a443b;
  font-size: 1.1rem;
  text-align: right;
}

.rct-chart__area {
  position: relative;
  flex: 1;
  display: flex;
  align-items: flex-end;
  justify-content: space-around;
  gap: 10px;
  padding: 18px 8px 46px;
  border-left: 1px solid #c9c9c9;
  border-bottom: 1px solid #c9c9c9;
}

.rct-chart__grid {
  position: absolute;
  inset: 18px 8px 46px;
  background-image: linear-gradient(to top, #dedede 1px, transparent 1px);
  background-size: 100% 20%;
  pointer-events: none;
}

.rct-chart__item {
  position: relative;
  z-index: 1;
  flex: 1;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: flex-end;
}

.rct-chart__item > span {
  position: absolute;
  top: -4px;
  color: #4d463d;
  font-size: 1.15rem;
}

.rct-chart__bar {
  width: min(34px, 70%);
  background: linear-gradient(180deg, #8da474 0%, #6f885b 100%);
  border-radius: 3px 3px 0 0;
  box-shadow: inset -5px 0 0 rgba(54, 76, 45, 0.16);
}

.rct-chart__item p {
  position: absolute;
  bottom: -44px;
  left: 50%;
  width: 82px;
  margin: 0;
  color: #4a443d;
  font-size: 0.95rem;
  line-height: 1.3;
  text-align: center;
  transform: translateX(-50%);
}

.rct-chart__item small {
  font-size: 0.9rem;
}

.rct-chart__note {
  margin: 8px 0 0;
  color: #6b6258;
  font-size: 1.1rem;
  line-height: 1.7;
  text-align: center;
}
span.underline {
    border-bottom: 3px solid #7a9c9061;
}
/* タブレット */
@media screen and (max-width: 1024px) {
  .rct-success {
    padding: 64px 16px;
  }

  .rct-success__inner {
    max-width: 100%;
  }

  .rct-reference {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .rct-reference__text {
    padding-right: 0;
    padding-bottom: 22px;
    border-right: none;
    border-bottom: 1px solid #e4d8c6;
  }
}

/* スマホ */
@media screen and (max-width: 768px) {
  .rct-success {
    padding: 54px 14px;
  }

  .rct-success__heading {
    margin-bottom: 26px;
  }

  .rct-success__en {
    font-size: 1.5rem;
  }

  .rct-success__en::before,
  .rct-success__en::after {
    width: 32px;
  }

  .rct-success__heading h2 {
    font-size: 2.9rem;
    letter-spacing: 0.04em;
  }

  .rct-success__lead {
    font-size: 1.35rem;
    text-align: left;
  }

  .rct-success__card {
    padding: 16px;
  }

  .rct-success__table {
    min-width: 760px;
  }

  .rct-success__table th {
    padding: 11px 12px;
    font-size: 1.3rem;
  }

  .rct-success__table td {
    padding: 13px 12px;
    font-size: 1.25rem;
  }

  .rct-icon {
    width: 42px;
    height: 42px;
  }

  .rct-treatment {
    gap: 10px;
  }

  .rct-treatment__en {
    font-size: 1.15rem;
  }

  .rct-treatment strong {
    font-size: 1.4rem;
  }

  .rct-rate__num {
    font-size: 3.5rem;
  }

  .rct-rate__num span {
    font-size: 1.9rem;
  }

  .rct-rate small {
    font-size: 0.9rem;
  }

  .rct-success__note {
    align-items: flex-start;
    gap: 12px;
    padding: 14px;
  }

  .rct-shield {
    width: 38px;
    height: 44px;
  }

  .rct-success__note p {
    font-size: 1.35rem;
  }

  .rct-reference {
    padding: 20px 16px;
  }

  .rct-chart {
    overflow-x: auto;
  }

  .rct-chart h3,
  .rct-chart__wrap,
  .rct-chart__note {
    min-width: 620px;
  }
}

/* 小さめスマホ */
@media screen and (max-width: 480px) {
  .rct-success {
    padding: 46px 12px;
  }

  .rct-success__heading h2 {
    font-size: 2.4rem;
  }

  .rct-success__card {
    padding: 14px;
  }

  .rct-success__note p {
    font-size: 1.25rem;
  }

  .rct-reference__heading h3 {
    font-size: 1.7rem;
  }

  .rct-reference__text p {
    font-size: 1.2rem;
  }
}
.rct-icon {
  flex: 0 0 auto;
  width: 46px;
  height: 46px;
  border-radius: 50%;
  background: #f7eddb;
  display: grid;
  place-items: center;
  color: #bd8c25;
  font-size: 2.2rem;
}

.rct-icon i {
  line-height: 1;
}

.rct-shield {
  flex: 0 0 auto;
  width: 50px;
  height: 54px;
  display: grid;
  place-items: center;
  color: #4f7b43;
  font-size: 4.2rem;
}

.rct-shield i {
  line-height: 1;
}

.rct-book {
  flex: 0 0 auto;
  width: 46px;
  height: 46px;
  border-radius: 50%;
  background: #f7f0e1;
  display: grid;
  place-items: center;
  color: #9f762c;
  font-size: 2.2rem;
}

.rct-book i {
  line-height: 1;
}
.rct-reference__source {
  color: #4d463d;
  font-size: 1.22rem;
  line-height: 1.8;
  letter-spacing: 0.03em;
}

.rct-reference__source p {
  margin: 0 0 12px;
}

.rct-reference__source p:last-child {
  margin-bottom: 0;
}

.rct-reference__source span {
  display: block;
  margin-bottom: 3px;
  color: #315f2a;
  font-size: 1.15rem;
  font-weight: 700;
  letter-spacing: 0.06em;
}

.rct-reference__tag {
  margin-top: 18px !important;
  padding: 9px 12px;
  border: 1px solid #d8d0c2;
  border-radius: 6px;
  background: #fff;
  color: #5b534a;
  font-size: 1.1rem !important;
  line-height: 1.6;
  text-align: center;
}
/* スマホ時：表を横スクロールではなくカード型に変更 */
@media screen and (max-width: 768px) {
  .rct-success__table-wrap {
    overflow-x: visible;
  }

  .rct-success__table {
    width: 100%;
    min-width: 0;
    border: none;
    border-radius: 0;
    background: transparent;
  }

  .rct-success__table thead {
    display: none;
  }

  .rct-success__table,
  .rct-success__table tbody,
  .rct-success__table tr,
  .rct-success__table td {
    display: block;
    width: 100% !important;
  }

  .rct-success__table tr {
    margin-bottom: 16px;
    border: 1px solid #ded1bc;
    border-radius: 10px;
    overflow: hidden;
    background: #fffdfa;
  }

  .rct-success__table tr.is-highlight {
    background: #f7fbf2;
  }

  .rct-success__table tr.is-highlight td {
    background: #f7fbf2;
  }

  .rct-success__table td {
    position: relative;
    padding: 14px 16px;
    border-right: none;
    border-bottom: 1px solid #e6dac8;
    background: #fffdfa;
    font-size: 1.35rem;
  }

  .rct-success__table td:last-child {
    border-bottom: none;
  }

  .rct-success__table td::before {
    display: block;
    margin-bottom: 8px;
    color: #315f2a;
    font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
    font-size: 1.3rem;
    font-weight: 600;
    letter-spacing: 0.06em;
  }

  .rct-success__table td:nth-child(1)::before {
    content: "治療内容";
  }

  .rct-success__table td:nth-child(2)::before {
    content: "成功率の目安";
  }

  .rct-success__table td:nth-child(3)::before {
    content: "コメント";
  }

  .rct-treatment {
    align-items: center;
  }

  .rct-rate {
    text-align: left;
    white-space: normal;
  }

  .rct-rate__num {
    display: inline-block;
    font-size: 3.8rem;
  }

  .rct-rate__num span {
    font-size: 2rem;
  }

  .rct-rate small {
    margin-top: 6px;
    font-size: 1.05rem;
    line-height: 1.6;
  }
}
/* スマホ時：グラフを横スクロールさせず幅内に収める */
@media screen and (max-width: 768px) {
  .rct-chart {
    overflow-x: visible;
    width: 100%;
  }

  .rct-chart h3,
  .rct-chart__wrap,
  .rct-chart__note {
    min-width: 0;
    width: 100%;
  }

  .rct-chart h3 {
    font-size: 1.2rem;
    line-height: 1.6;
    text-align: center;
  }

  .rct-chart__wrap {
    height: 190px;
    gap: 5px;
  }

  .rct-chart__y {
    width: 24px;
    padding: 18px 0 42px;
    font-size: 1rem;
  }

  .rct-chart__area {
    gap: 4px;
    padding: 18px 4px 42px;
    min-width: 0;
  }

  .rct-chart__grid {
    inset: 18px 4px 42px;
  }

  .rct-chart__item {
    min-width: 0;
  }

  .rct-chart__item > span {
    top: -3px;
    font-size: 1rem;
  }

  .rct-chart__bar {
    width: 12px;
    max-width: 12px;
    border-radius: 2px 2px 0 0;
  }

  .rct-chart__item p {
    bottom: -39px;
    width: 42px;
    font-size: 0.8rem;
    line-height: 1.25;
    word-break: keep-all;
  }

  .rct-chart__item small {
    font-size: 0.75rem;
  }

  .rct-chart__note {
    margin-top: 8px;
    font-size: 1rem;
    line-height: 1.6;
  }
}

/* メイン */
.rct-visual {
  position: relative;
  overflow: hidden;
  padding: 86px 20px 78px;
	background-image: url("https://rootcanal.muratsu-dc.com/wp-content/uploads/2026/04/blocmain-1.png");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  color: #302923;
  font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "HGS明朝E", serif;
}

.rct-visual::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(255, 252, 244, 0.28);
  pointer-events: none;
}

.rct-visual__inner {
  position: relative;
  z-index: 2;
  max-width: 1080px;
  margin: 0 auto;
  text-align: center;
}

.rct-visual__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 28px;
  margin: 0 0 34px;
  color: #b29345;
  font-size: clamp(1.8rem, 2vw, 2.8rem);
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.12em;
}

.rct-visual__eyebrow::before,
.rct-visual__eyebrow::after {
  content: "";
  display: block;
  width: 74px;
  height: 1px;
  background: linear-gradient(90deg, transparent, #b29345, transparent);
}

.rct-visual__sub {
  margin: 0 0 22px;
  font-size: clamp(2.4rem, 3.4vw, 5rem);
  font-weight: 600;
  line-height: 1.35;
  letter-spacing: 0.08em;
  text-shadow: 0 2px 10px rgba(255, 255, 255, 0.75);
}

.rct-visual__main {
  display: flex;
  justify-content: center;
  align-items: baseline;
  gap: 0.08em;
  margin: 0;
  line-height: 1;
  white-space: nowrap;
  text-shadow: 0 4px 18px rgba(255, 255, 255, 0.75);
}

.rct-visual__num {
	font-size: clamp(8rem, 13vw, 10rem);
  font-weight: 400;
  line-height: 0.92;
  letter-spacing: -0.04em;
}

.rct-visual__num--green {
  color: #54794e;
}

.rct-visual__num--gold {
  color: #c5a237;
}

.rct-visual__wave {
  color: #54794e;
	font-size: clamp(5.8rem, 8.5vw, 5rem);
  line-height: 1;
  transform: translateY(-0.08em);
}

.rct-visual__unit {
  color: #2f2822;
	font-size: clamp(4.2rem, 6.8vw, 5rem);
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.02em;
}

.rct-visual__text {
  margin: 28px 0 0;
  font-size: clamp(2.4rem, 3.5vw, 5.2rem);
  font-weight: 600;
  line-height: 1.45;
  letter-spacing: 0.1em;
  text-shadow: 0 2px 10px rgba(255, 255, 255, 0.72);
}

.rct-visual__note {
  margin: 34px 0 0;
  color: #3f3932;
  font-size: clamp(1.3rem, 1.6vw, 2rem);
  line-height: 1.7;
  letter-spacing: 0.1em;
}

/* タブレット */
@media screen and (max-width: 1024px) {
  .rct-visual {
	  background-position: 85%;
	  padding: 72px 18px 68px;
  }
}

/* スマホ */
@media screen and (max-width: 768px) {
  .rct-visual {
    padding: 56px 18px 52px;
	  background-position: 85%;
	}

  .rct-visual::before {
    background: rgba(255, 252, 244, 0.42);
  }

  .rct-visual__eyebrow {
    gap: 16px;
    margin-bottom: 24px;
    font-size: 1.6rem;
  }

  .rct-visual__eyebrow::before,
  .rct-visual__eyebrow::after {
    width: 42px;
  }

  .rct-visual__sub {
    margin-bottom: 16px;
    font-size: 2.2rem;
    line-height: 1.55;
    letter-spacing: 0.04em;
  }

  .rct-visual__main {
    white-space: normal;
    gap: 0.02em;
  }

  .rct-visual__num {
    font-size: clamp(6.4rem, 18vw, 9rem);
  }

  .rct-visual__wave {
    font-size: clamp(4.6rem, 13vw, 6.6rem);
  }

  .rct-visual__unit {
    font-size: clamp(3.2rem, 9.5vw, 5.2rem);
  }

  .rct-visual__text {
    margin-top: 20px;
    font-size: 2.2rem;
    line-height: 1.55;
    letter-spacing: 0.05em;
  }

  .rct-visual__note {
    margin-top: 24px;
    font-size: 1.2rem;
  }
}

/* 小さめスマホ */
@media screen and (max-width: 480px) {
  .rct-visual {
    padding: 48px 14px 46px;
  }

  .rct-visual__sub {
    font-size: 1.85rem;
  }

  .rct-visual__text {
    font-size: 1.85rem;
  }

  .rct-visual__note {
    font-size: 1.05rem;
  }
}

/* 左側グループ見出し列 */
.rct-success__side-head {
  width: 64px;
  padding: 0 !important;
  background: transparent !important;
  border-bottom: none !important;
}

th.rct-success__group.rct-success__group--micro,
th.rct-success__group.rct-success__group--insurance {
    writing-mode: vertical-rl;
    letter-spacing: 0.8em;
    font-size: 2rem;
}

/* 4列になったため、幅指定を調整 */
.rct-success__table td:nth-of-type(1) {
  width: 36%;
}

.rct-success__table td:nth-of-type(2) {
  width: 25%;
}

.rct-success__table td:nth-of-type(3) {
  width: 39%;
}

/* 左側列を追加した分、PC時の最低幅を少し広げる */
.rct-success__table {
  min-width: 900px;
}
@media screen and (max-width: 768px) {
  .rct-success__side-head,
  .rct-success__group {
    display: none !important;
  }

  .rct-success__table tr::before {
	  content: attr(data-group);
        display: block;
        padding: 8px 14px;
        background: #F5EDDD;
        border-bottom: 1px solid #ded1bc;
        font-size: 1.35rem;
        font-weight: 700;
        letter-spacing: 0.08em;
        text-align: center;
  }

  .rct-success__table td:nth-of-type(1)::before {
    content: "治療内容";
  }

  .rct-success__table td:nth-of-type(2)::before {
    content: "成功率の目安";
  }

  .rct-success__table td:nth-of-type(3)::before {
    content: "コメント";
  }

  .rct-success__table {
    min-width: 0;
  }
}