@charset "UTF-8";
section,
p {
	font-family: "Noto Serif JP", serif;
}
/* ここからサイドボタン */

#sp-fixed-menu{
  flex-flow: column;
  position: fixed;
  right: 0;
  bottom: 0;
  font-size: 0;
  opacity: 0.9;
  z-index: 30;
}

#sp-fixed-menu ul{
  list-style: none;
  padding:0;
  margin:0;
  width:100%;
}


#sp-fixed-menu li{
 writing-mode: vertical-rl;
 text-orientation: upright;
  justify-content: left;
  align-items:center;
  margin:0;
 padding-top: 40px ;
 padding-bottom:40px;
 padding-right:8px;
 padding-left:8px;
  /* height: px; */
  font-size: 14px;
  border-right: 1px solid #fff;
}


#sp-fixed-menu li:first-child{
  background: #F5D4D1;
}

#sp-fixed-menu li:last-child{
  background: #80bec3;
}

#sp-fixed-menu li a{
  color: #FFFFFF !important;
  font-weight: bold;
  text-decoration: none;
  text-align: center;
  display:block;
  width: 100%;
  padding:10px;
 font-family:serif;
}

#sp-fixed-menu li a:hover {
    color: white !important;
}
/*  スマホ設定 */
@media only screen and (max-width: 600px) {
  #sp-fixed-menu {
      width: 100%;
      height: 60px; 
      bottom: 0;
	  right: 30px !important;
      position: fixed; 
  }

  #sp-fixed-menu ul {
      display: flex;
      flex-direction: row;
      height: 100%;
  }

  #sp-fixed-menu li {
      width: 50%;
	  padding: 0;
      border-right: none;
      border-bottom: 1px solid #fff;
	  display: flex;
	  justify-content: center;
	  align-items: center;
  }

  #sp-fixed-menu li a {
	  padding: 0;
      text-align: center;
      line-height: 1.4;
      display: block;
      writing-mode: horizontal-tb;
  }
}
/* ここまでサイドボタン */

/* ここからヘッダーcss */

body {
  color: #434343;
  font-family: 'Bentham', serif;
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 2;
  -webkit-text-size-adjust: none;
}

em {
  line-height: 1.5;
  font-weight: bold;
}

a {
  color: #434343;
  text-decoration: none;
  border: 0;
  transition: all 0.2s ease;
  backface-visibility: hidden;
}

/* 
a:hover {
  filter: brightness(120%);
} */

header .headermenu .origin nav > ul .last-menu:before {
  display: none;
}


header {
  width: 100%;
  position: relative;
  font-family: 'Bentham', serif;
}


header .headermenu {
  display: flex;
  justify-content: space-between;
  padding-right: 20px;
}

header .headermenu .origin {
  padding-top: 25px;
  margin-left: auto;
}


header .headermenu .origin.pc {
  padding-bottom: 60px;
  position: relative;
}


header .headermenu .origin nav {
  position: absolute;
  right: 0;
  bottom: 0;
  transition: background 0.4s ease;
  backface-visibility: hidden;
}


header .headermenu .origin nav > ul {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  padding-right: 8px;
}

header .headermenu .origin nav > ul > li > a, header .headermenu .origin nav > ul > li > span {
  height: 60px;
  font-size: 20px;
  font-weight: 600;
  padding: 0 12px;
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  white-space: nowrap;
  color: #b57777;
}

header .headermenu .origin nav > ul > li > a:before, header .headermenu .origin nav > ul > li > span:before {
  content: "";
  position: absolute;
  right: 0;
  top: 20px;
  width: 1px;
  height: 20px;
  background: #777;
}

header .headermenu .origin nav > ul > li a:hover {
  color: #F5D4D1;
}

header .headermenu .origin nav > ul > li:last-child > a:before {
  content: none;
}

header .headermenu .origin nav > ul li.sbm .sbm_box {
  position: absolute;
  left: 0px;
  top: 100%;
  width: calc(100% - 20px);
  background: #F5D4D1;
  z-index: 100;
  padding: 40px;
  box-sizing: border-box;
  opacity: 0;
  pointer-events: none;
  transition: all 0.4s ease;
  backface-visibility: hidden;
  transform: scale(1.1);
  border-radius: 10px;
}

header .headermenu .origin nav > ul li.sbm .sbm_box em {
/*   color: #fff; */
  font-weight: bold;
  font-size: 18px;
  margin-bottom: 10px;
  display: block;
}

header .headermenu .origin nav > ul li.sbm .sbm_box ul {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  flex-wrap: wrap;
}

header .headermenu .origin nav > ul li.sbm .sbm_box ul li {
  width: 50%;
}

header .headermenu .origin nav > ul li.sbm .sbm_box ul li a {
  color: #252525;
  display: block;
}
header .headermenu .origin nav > ul li.sbm .sbm_box ul li a:hover {
  color: #000;
  display: block;
}
header .headermenu .origin nav > ul li.sbm .sbm_box ul li + li {
  margin-top: 10px;
}

header .headermenu .origin nav > ul li.sbm:hover > span {
  color: #F5D4D1;
}

header .headermenu .origin nav > ul li.sbm:hover .sbm_box {
  transform: scale(1);
  opacity: 1;
  pointer-events: auto;
}




html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
	vertical-align: baseline;
	font-style: normal;
}



ol, ul {
	list-style: none;
}



/* メディアクエリを使用して横幅が1300px以下の時のフォントサイズを指定 */
@media screen and (max-width: 1300px) {
  .headermenu li,
  .headermenu span,
  .headermenu em {
    font-size: 14px; /* 横幅が1300px以下でフォントサイズを小さくする */
  }
}

/* より小さい画面サイズに合わせてさらにフォントサイズを小さくする場合は、
   別のメディアクエリを追加します。 */
@media screen and (max-width: 1000px) {
  .headermenu li,
  .headermenu span,
  .headermenu em {
    font-size: 12px; /* 横幅が1000px以下でフォントサイズを小さくする */
  }
}

@media screen and (max-width: 800px) {
  .headermenu li,
  .headermenu span,
  .headermenu em {
    font-size: 10px; /* 横幅が800px以下でフォントサイズを小さくする */
  }
}

/* ここまでヘッダーcss */

/* 診療時間用のスタイル */
.time-table01 {
  font-family: "Noto Serif JP", serif;
  font-size: 14px;
  margin-bottom: 20px;
  width: 100%;
  border-collapse: collapse;
  border: 1px solid #000; /* テーブル全体の外枠を追加 */
}

.time-table01 th,
.time-table01 td {
  text-align: center;
  line-height: 1.4;
  vertical-align: middle;
  font-size: 16px; /* デフォルトの文字サイズ */
  color: #000;
  padding: 10px 5px;
  border: 1px solid #000; /* 各セルに罫線を追加 */
}

.time-table01 th {
  background-color: #F5D4D1; /* 1行目の背景色 */
}

.time-table01 th:first-child {
  border-right: 1px solid #000;
  width: 140px;
}

.time-table01 th:last-child {
  width: 60px;
}

.time-table01 td:first-child {
  border-right: 1px solid #000;
}

.time-table01 tr:last-child th,
.time-table01 tr:last-child td {
  border-bottom: 1px solid #000; /* 最下部の罫線を追加 */
}

.time-table01 .time-event-txt {
  color: #000;
  font-family: 'Bentham', serif;
}

/* メディアクエリでのフォントサイズ調整 */
@media (max-width: 768px) {
  .time-table01 th,
  .time-table01 td {
    font-size: 14px; /* タブレットや中程度のスクリーンで文字サイズを調整 */
    padding: 8px 4px;
  }
}

@media (max-width: 480px) {
  .time-table01 th,
  .time-table01 td {
    font-size: 12px; /* スマートフォンや小さなスクリーンで文字サイズを調整 */
    padding: 6px 3px;
  }
}


/* リンクcss */
.gradient-button {
  font-family: 'Bentham', serif;
  display: block;
  /* width: 300px; */
  padding: 15px 20px;
  border-radius: 6px;
  background-repeat: no-repeat;
  background-position: 100% 0;
  background-size: 200% auto;
  background-image: linear-gradient( to right, #80bec3 0%, #80bec3 50%, #ffc0c0 50%, #ffc0c0 100% );
  box-shadow: 0 3px 10px rgb(0 0 0 / 16%);
  transition: background-position ease 0.4s;
  text-align: center;
  color: #fff!important;
  text-decoration: none;
  font-weight: bold;
  font-size: 16px;
}

.gradient-button:hover {
  background-position: 0 0;
}

.link_item {
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0;
  font-family: "Yu Gothic Medium", "游ゴシック Medium", "Yu Gothic", "游ゴシック", YuGothic, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo";
}

/* mobile */

@media only screen and (min-width: 768px) and (max-width: 1024px) {
  .gradient-button {
    width: 80%; /* Slightly narrower than mobile */
    font-size: 15px; /* Intermediate font size */
    /* Add any other tablet-specific styles here */
  }
}

@media only screen and (max-width: 767px) {
  .gradient-button {
    width: 100%; /* Make the button full width */
    font-size: 14px; /* Smaller font size */
    padding: 15px 0; /* Adjust padding */
    /* Add any other mobile-specific styles here */
  }
}


.mobile-only {
  display: none; /* Hide the line break by default */
}

/* Mobile specific styles */
@media only screen and (max-width: 767px) {
  .mobile-only {
    display: block; /* Show the line break on mobile */
  }
}
span.sankou1 {
    /* background: #04BCDB; */
    /* margin: 5px; */
    /* padding: 3px; */
    font-size: 70%;
    background-color: #04BCDB;
    color: #fff;
    padding: 3px 4px;
    margin: 0 5px;
    white-space: nowrap;
}

/* //カスタムテーマ専用css */
.case_heading {
    text-align: center;
    padding: 2%;
	    margin-top: 7%;
	font-size: 2.375rem;
    font-weight: 300;
    font-family: 'DM Serif Display', serif;
    line-height: 1.3em;
}

.case_span::after{
    content: "case";
    display: block;
    font-size: 1.5rem;
    font-weight: 200;
    color: #368dff;
    font-family: sans-serif;
    margin: -1% 0 15px;
}


.case_btn {
	text-align: center;
	width: 50%;
	padding: 1%;
	border: solid 1px #FFBDDC;
	margin: 0 auto;
	display: block;
}

a.case_btn:hover {
	background-color: #dcedff;
}


/* テンプレートcss */
.case-study-details table {
	width: 100%;
	border-collapse: collapse;
	margin: 20px 0;
}

.case-study-details th, .case-study-details td {
	padding: 10px;
	border: 1px solid #ddd;
}

.case-study-details th {
	background-color: #f7f7f7;
	text-align: left;
	width: 40%;
}

.case-study-images img {
    max-width: 100%;
    height: auto;
    margin-bottom: 20px;
}

.two-column {
    display: flex;
    justify-content: space-between;
}

.two-column img {
    width: 48%;
}

.case-study-images {
    text-align: center;
    margin-bottom: 20px;
}

.case-study-images .two-column {
    display: flex;
    justify-content: space-between;
            gap: 10%;
    margin: 0 4%;
}

.case-study-images .case-image {
    position: relative;
    width: 100%;
    overflow: hidden;
}

.case-study-images .case-image img {
    width: 100%;
    height: auto;
    object-fit: cover;
	border-radius: 0 0 8px 8px;
}

.case-study-images .case-image span {
    display: block;
    text-align: center;
    font-weight: bold;
}

.case-study-images .single-image {
    text-align: center;
    margin: 0 auto;
}

.case-study-details {
    margin-top: 20px;
}

.free-text {
    margin-top: 20px;
    margin-bottom: 20px;
    font-size: 16px;
    line-height: 1.5;
    clear: both;
}

td.treatment_text {
    font-size: 14px;
}

@media screen and (max-width: 768px) {
	.case_heading {
		font-size:1.5rem;
	}
    .case-study-images .two-column {
        flex-direction: column;
        align-items: center;
    }

    .case-study-images .case-image {
        max-width: 100%;
    }

    .case-study-details {
        padding-left: 0;
        padding-right: 0;
    }

    .free-text {
        margin-left: 0;
        margin-right: 0;
    }
}

.syourei_span {
	background-color: #f07d91;
    margin: 0 auto;
    color: white;
    border-radius: 10px 10px 0 0;
}


/* 追加css　関連ページ  */

.related-cases {
    margin-top: 40px;
}

.related-cases-grid {
	display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 20px;
}

.related-case-item {
/*     width: calc(33.333% - 20px); */
    background-color: #fff;
    border: 1px solid #ddd;
    border-radius: 8px;
    padding: 20px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.related-case-thumbnail img {
    width: 100%;
    height: auto;
    border-radius: 8px 8px;
}

.related-case-title {
    font-size: 1.2em;
    margin-top: 15px;
}

.related-case-meta {
    font-size: 0.9em;
        color: #2583ff;
    margin-top: 10px;
}

.related-case-excerpt {
    margin-top: 15px;
    font-size: 0.9em;
    color: #777;
}

.related-case-link {
    margin-top: auto;
    text-align: center;
}

.related-case-link .btn.case_btn {
    margin-top: 20px;
    padding: 10px 15px;
    font-size: 1em;
    border-radius: 8px;
    background-color: #FFBDDC;
    color: #fff;
    text-decoration: none;
}

.more-cases-link {
    text-align: center;
    margin-top: 40px;
}

.more-cases-link .btn.case_btn {
    padding: 10px 20px;
    font-size: 1.2em;
    border-radius: 8px;
    background-color: #FFBDDC;
    color: #fff;
    text-decoration: none;
}

/* モバイル対応 */
@media (max-width: 768px) {
	.related-case-item {
		width: 90%;
	}
	.related-cases-grid {
		flex-direction: column;
	}
}

.related-case-a {
	color: #003584 !important;
}
/* 診療科目アンカーボタン */
.case-anchor-nav {
    width: 90%;
    max-width: 1100px;
    margin: 40px auto 60px;
    padding: 32px 28px;
    background: #fff;
    border: 1px solid #e5e5e5;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.04);
}

.case-anchor-nav__lead {
    margin: 0 0 20px;
    text-align: center;
    font-size: 20px;
    font-weight: 600;
    color: #333;
    letter-spacing: 0.06em;
}

.case-anchor-nav__list {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px;
}

.case-anchor-nav__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 180px;
    padding: 13px 20px;
    border: 1px solid #333;
    background: #fff;
    color: #333;
    font-size: 15px;
    font-weight: 500;
    line-height: 1.5;
    text-decoration: none;
    transition: all 0.3s ease;
    position: relative;
}

.case-anchor-nav__btn::after {
    content: "↓";
    margin-left: 8px;
    font-size: 13px;
    line-height: 1;
}

.case-anchor-nav__btn:hover {
    background: #333;
    color: #fff;
    text-decoration: none;
}

/* アンカー位置の調整 */
.term-section {
    scroll-margin-top: 100px;
}

/* タブレット */
@media screen and (max-width: 1024px) {
    .case-anchor-nav {
        margin: 32px auto 48px;
        padding: 28px 22px;
    }

    .case-anchor-nav__btn {
        min-width: 160px;
        font-size: 14px;
    }
}

/* スマホ */
@media screen and (max-width: 767px) {
    .case-anchor-nav {
        width: 92%;
        margin: 28px auto 40px;
        padding: 24px 16px;
    }

    .case-anchor-nav__lead {
        margin-bottom: 16px;
        font-size: 17px;
    }

    .case-anchor-nav__list {
        gap: 10px;
    }

    .case-anchor-nav__btn {
        width: 100%;
        min-width: auto;
        padding: 12px 16px;
        font-size: 14px;
    }

    .term-section {
        scroll-margin-top: 80px;
    }
}
/* ----------------------------------------------TOP特徴ブロック---------------------------------------------- */
/* 見出し */
.featurettl {
  color: #644A2F;
  font-size: 1.9rem;
  text-align: center;
  font-family: 'Noto Serif JP', serif;
  line-height: 1.5;
  
}
.h2size1 {
  font-size: 38px;
}
.featureline {
  background: linear-gradient(to top, #fff4d1 20%, transparent 24%);
}
/* ここまで */

/* ----------------------------------------------------
スマホ用（〜767px）
---------------------------------------------------- */
@media screen and (max-width: 768px) {
  /* 見出し */
.featurettl {
	font-size: 17px;
	width: 100%;
	margin: 0 auto;
	}
.h2size1 {
  font-size: 25px;
}
}
.feature-section {
  padding: 60px 0;
    font-family: 'Noto Serif JP', serif;
}

.feature-wrapper {
  display: flex;
  flex-direction: column;
  gap: 100px;
  margin: 0 auto;
}

.feature-block.block1{
  position: relative;
  overflow: hidden;
  color: #333;
  background-size: cover;
  background-position: center top;
  min-height: 500px;
}
.feature-block.block2 {
  position: relative;
  overflow: hidden;
  color: #333;
  background-size: cover;
  background-position: left top;
  min-height: 500px;
}

.feature-wrapper:nth-child(1) .feature-block {
  background-image: url('https://sakurashika-clinic.jp/wp-content/uploads/2025/04/img-14.png');
}

.feature-wrapper:nth-child(2) .feature-block {
	background-image: url('https://sakurashika-clinic.jp/wp-content/uploads/2025/08/img-102-scaled.png');
	background-position: left center;
}

.feature-wrapper:nth-child(3) .feature-block {
  background-image: url('https://sakurashika-clinic.jp/wp-content/uploads/2025/04/img-16.png');
}

.feature-wrapper:nth-child(4) .feature-block {
  background-image: url('https://sakurashika-clinic.jp/wp-content/uploads/2025/08/img-101-scaled.png');
}
.block1 h3,
.block1 p {
  text-shadow: 0 0 8px rgba(255, 255, 255, 0.9), 0 0 12px rgb(255 255 255);
}
.feature-bg-img {
  display: none;
}

.feature-content {
  position: relative;
  z-index: 2;
  padding: 50px;
  max-width: 50%;
}

.feature-heading {
  /* font-family: 'Noto Serif JP', serif; */
  border-bottom: 1px solid #444;
  margin-bottom: 30px;
  padding-bottom: 10px;
  line-height: 1.2;
  color:#644A2F;
}

.sp {
  display: none;
}

.feature-sub {
  font-size: 18px;
  display: block;
  color: #d76c94;
}

.feature-main {
  font-size: 32px;
  display: block;
  margin-top: 5px;
}

.featurehighlight {
  background: linear-gradient(to top, #fff4d1 50%, transparent 50%);
  display: inline-block;
  font-size: 23px;
  font-weight:700;
}
.featurehighlight2 {
  background: linear-gradient(to top, #ffffffa2 50%, transparent 50%);
}

.feature-description {
  font-size: 16px;
  margin-bottom: 30px;
  line-height: 1.8;
  padding: 1.2em;
  border-radius: 8px;
  background: linear-gradient(
    to bottom,
    rgba(255, 255, 255, 0.7) 0%,
    rgba(255, 255, 255, 0.5) 50%,
    rgba(240, 240, 240, 0.3) 100%
  );
  box-shadow: 0 4px 12px rgba(255, 255, 255, 0.3);
}

.feature-list {
  list-style: none;
  padding-left: 1.2em;
  margin-bottom: 30px;
}

.feature-list li {
  position: relative;
  margin-bottom: 10px;
  padding-left: 1.5em;
  font-size: 15px;
}

.feature-list li::before {
  content: "\2713";
  position: absolute;
  left: 0;
  top: 0;
  color: #d2b556;
  font-weight: bold;
}
.feature-content .feature-button {
  color:#A95E6F;
  text-align: center;
  background:#F8DFE6;
  width: 450px;
}

.feature-image {
  position: absolute;
  bottom: 20px;
  left: 50%;
  width: 260px;
  z-index: 3;
}

.feature-image img {
  width: 100%;
  height: auto;
  box-shadow: 0 4px 10px rgba(0,0,0,0.1);
  border-radius: 6px;
  background: #fff;
}
/* ----------------------------------------------------
タブレット（768px～1024px）
---------------------------------------------------- */
@media screen and (min-width: 768px) and (max-width: 1024px) {
  .feature-block.block1,
  .feature-block.block2 {
    height: auto;
    background-position: right top;
  }

  .feature-content {
    max-width: 100%;
    background: #ffffffc7;
    margin: 15px;
}
  .feature-bg-img {
    display: none;
  }
  img.sp.featureimg {
    margin: 0 auto;
  }
}

/* ----------------------------------------------------
スマホ用（〜767px）
---------------------------------------------------- */
@media screen and (max-width: 768px) {
  .bottndiv {
    text-align: center;
  }
  .sp {
    display: block;
  }
  .feature-wrapper {
    gap: 60px;
  }
  .feature-block.block1,
  .feature-block.block2 {
    height: auto;
    background-position: left top;
  }
  .feature-bg-img {
    display: block;
  }
  .feature-content {
    max-width: 100%;
	  padding: 20px 5px;
	}
  .feature-description {
	  font-size: 15px;
	  text-shadow: 1px 1px 2px rgb(255, 255, 255);
	  margin: 10px 0;
	  padding:0;
	}
  .feature-image {
    position: static;
    width: 100%;
    margin-top: 20px;
  }
	.feature-main {
	font-size: 20px;
	}
	.feature-sub {
		font-size: 14px;
	}
  .featurehighlight {
	  background: linear-gradient(to top, #fff4d1 30%, transparent 30%);
	  font-size: 18px;
	}
  .feature-content .feature-button {
    width:90%;
  }
}
/* コイスメンター資格所持医院 */
.koisttl {
  font-size: max(2.8vw, 28px);
    color: #69492a;
    line-height: 1.4;
    margin-bottom: 15px;
    text-shadow: 1px 1px 4px rgba(255, 255, 255, 0.6);
    position: relative;
    margin: 30px 0;
}

.kois-section {
  background: linear-gradient(
    to bottom,
    rgba(255, 240, 245, 0) 0%,
    #fdeff2 20%,
    #fdeff2 80%,
    rgba(255, 240, 245, 0) 100%
  );  padding: 60px 20px;
    font-family: 'Noto Serif JP', serif;
  }
  
  .kois-inner {
    max-width: 1300px;
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 30px;
  }
  
  .kois-text-block {
    flex: 1 1 55%;
    color: #6a4a3c;
  }
  
  .kois-accent {
    font-weight: bold;
    color: #e5a2b5;
    font-size: 45px;
  }
  
  .kois-badge {
    background: #ffffff;
    padding: 10px 15px;
    margin-bottom: 20px;
    font-size: 1rem;
    color: #7a4d4d;
    border-radius: 6px;
  }
  
  .badge-icon {
    color: #e58da5;
    margin-right: 6px;
  }
  
  .kois-checklist {
    list-style: none;
    padding-left: 0;
    margin-bottom: 20px;
  }
  
  .kois-checklist li {
    font-size: 1rem;
    margin-bottom: 8px;
    position: relative;
    padding-left: 1.8em;
    color: #5a3f36;
  }
  
  .kois-checklist .checkmark {
    position: absolute;
    left: 0;
    color: #d17a98;
    font-size: 1.2em;
  }
  
  .kois-description {
    font-size: 1rem;
    line-height: 1.9;
    color: #5a3f36;
    background: rgba(255,255,255,0.7);
    padding: 1em;
    border-radius: 8px;
    box-shadow: inset 0 0 5px rgba(0,0,0,0.05);
  }
  
  .kois-image-block {
    flex: 1 1 40%;
    text-align: center;
  }
  
  .kois-image-block img {
    max-width: 100%;
    height: auto;
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  }
  
  @media (max-width: 768px) {
    .kois-inner {
      flex-direction: column;
    }
    .kois-accent {
      font-size:25px;
    }
    .kois-section {
      padding:5px;
    }
    .kois-text-block h2 {
      font-size: 20px;
		text-align: center;
    }
  }

/* 選ばれる理由 */
    .features-section {
      display: flex;
      flex-direction: column;
      gap: 60px;
      /* padding: 60px 20px; */
      font-family: 'Noto Serif JP', serif;
    }
    
    .features-row {
      display: flex;
      gap: 40px;
      justify-content: center;
      flex-wrap: wrap;
    }
    
    .feature-card {
      flex: 1 1 calc(48% - 20px);
      max-width: 600px; 
      background: #ffe2e224;
      padding: 40px 30px;
      position: relative;
      text-align: center;
      transition: transform 0.3s ease;
      display: flex;
      flex-direction: column;
      justify-content: space-between;
    }
    
    .feature1 {
      border-color: #f3bfd4;
    background: url(https://sakurashika-clinic.jp/wp-content/uploads/2025/04/img-12.png) no-repeat bottom;
    background-size: cover;
    }
    .feature2 {
      border-color: #f3bfd4;
    background: url(https://sakurashika-clinic.jp/wp-content/uploads/2025/04/img-12.png) no-repeat bottom;
    background-size: cover;
    }
    .feature3 {
      border-color: #f3bfd4;
    background: url(https://sakurashika-clinic.jp/wp-content/uploads/2025/04/img-12.png) no-repeat bottom;
    background-size: cover;
    }
    .feature4 {
      border-color: #f3bfd4;
    background: url(https://sakurashika-clinic.jp/wp-content/uploads/2025/04/img-12.png) no-repeat bottom;
    background-size: cover;
    }
    
    .feature-card:hover {
      transform: translateY(-5px);
    }
    
    .feature-header {
      display: flex;
      justify-content: space-between;
      align-items: center;
      margin-bottom: 25px;
    }
    
    .feature-label {
      padding: 6px 18px;
      border-radius: 25px;
      font-size: 17px;
      font-weight: bold;
      color: #fff;
    }
    
    .feature1 .feature-label {
      background: #f8dfe6;
      color: #a6586a;
    }
    .feature2 .feature-label {
      background: #f3bfd4;
      color: #a55076;
    }
    .feature3 .feature-label {
      background: #d76c94;
      color: #fff;
    }
    .feature4 .feature-label {
      background: #f6b2b2;
      color: #a14242;
    }
    
    .feature-number {
      border: 3px solid;
      border-radius: 50%;
      width: 80px;
      height: 80px;
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: center;
      font-weight: bold;
      background: #fff;
    }
    
    .feature1 .feature-number {
      border-color: #f8dfe6;
      color: #a6586a;
    }
    .feature2 .feature-number {
      border-color: #f3bfd4;
      color: #a55076;
    }
    .feature3 .feature-number {
      border-color: #d76c94;
      color: #d76c94;
    }
    .feature4 .feature-number {
      border-color: #f6b2b2;
      color: #a14242;
    }
    
    .feature-number .num {
      font-size: 28px;
      line-height: 1;
    }
    
    .feature-number .text {
      font-size: 11px;
      letter-spacing: 1px;
    }
    
    .feature-title {
      font-size: 27px;
      margin-bottom: 18px;
      color: #644A2F;
      font-weight: bold;
      line-height: 1.5;
    }
    
    .season-description {
      font-size: 15px;
      color: #555;
      margin-bottom: 24px;
      padding-top: 16px;
      line-height: 1.9;
    }
    
    .feature-caption {
      font-size: 14px;
      margin-bottom: 20px;
      font-weight: bold;
    }
    
    .feature1 .feature-caption {
      color: #a6586a;
    }
    .feature2 .feature-caption {
      color: #a55076;
    }
    .feature3 .feature-caption {
      color: #d76c94;
    }
    .feature4 .feature-caption {
      color: #a14242;
    }
    
    .feature-button {
      display: inline-block;
      padding: 12px 32px;
      border-radius: 30px;
      text-decoration: none;
      font-size: 14px;
      letter-spacing: 1px;
      transition: all 0.3s ease;
      font-weight: bold;
      box-shadow: 0 4px 12px rgba(0,0,0,0.1);
      color: white;
      width: 50%;
      margin: 0 auto;
    }
    
    .feature1 .feature-button {
      background: #f8dfe6;
      color: #a6586a;
    }
    .feature2 .feature-button {
      background: #f3bfd4;
      color: #a55076;
    }
    .feature3 .feature-button {
      background: #d76c94;
      color: #fff;
    }
    .feature4 .feature-button {
      background: #f6b2b2;
      color: #a14242;
    }
    
    .feature-button:hover {
      transform: translateY(-2px);
      box-shadow: 0 6px 18px rgba(0,0,0,0.15);
    }

    img.reasonimg {
    margin: 20px auto;
    object-fit: cover;
    max-width: 100%;
    height: auto;
  }
    
    @media (max-width: 768px) {
		.feature-label {
			font-size: 15px;
		}
		.season-description {
			text-align:left;
		}
		.features-row {
			flex-direction: column;
			gap: 30px;
		}
		.feature-card {
			width: 100%;
			max-width: 100%;
			padding: 40px 15px;
		}
		a.feature-button {
			width:100%;
		}
		.feature-title {
			font-size:20px;
		}
}
/*---------------------------------------------------------------------

 世代ごとの取り組み 

 ---------------------------------------------------------------------*/
/* セクションの背景 */
.sedai {
  padding: 60px 0 0 0;
  position: relative;
  background: linear-gradient(to right, rgb(255 255 255) 0%, rgb(246 234 242 / 90%) 20%, /* #eaf0f6（明るめ）*/ rgb(250 245 248 / 90%) 80%, /* #f5f7fa（ほぼ白）*/ rgb(255 255 255) 100%);  z-index: 0;
  overflow: hidden;
  font-family: 'Noto Serif JP', serif;
}

.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 {
  display: block;
  position: relative
}

.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-color: #fff;
  background-position: 100% 0
}

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

.sedai .idx_box {
  background-color: #ffffff61;
  box-shadow: 3px 3px 5px rgba(162,162,162,.2);
  max-width: 858px;
  margin: 0 auto 0 0;
  padding: 30px 24px 24px 65px;
}

.sedai .idx_inr:nth-of-type(2) .idx_box {
  box-shadow: -3px 3px 5px rgba(162,162,162,.2);
  margin: 0 0 0 auto
}
.sedai .idx_inr:nth-of-type(4) .idx_box {
  box-shadow: -3px 3px 5px rgba(162,162,162,.2);
  margin: 0 0 0 auto
}

.sedai_ttl {
  position: relative;
  font-size: 26.87px;
  margin: 0 0 24px;
  border-bottom: 1px solid #977c4c;
  color: #5b4633;
}
.sedai_ttl span{
  font-size: 35px;
  color: #bfa250;
}
  

.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%;
}
.sedaittl01:before{
  background-image: url(../ext/themes/cure_tcd082/images/top/h-img.png);
  background-repeat: no-repeat;
}
.sedaittl02:before{
  background-image: url(../ext/themes/cure_tcd082/images/top/h-img2.png);
  background-repeat: no-repeat;
}
.sedaittl03:before{
  background-image: url(../ext/themes/cure_tcd082/images/top/h-img3.png);
  background-repeat: no-repeat;
}

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

.sedai_lead p {
  display: block;
}

.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
}
.sedai .idx_lst li {
  line-height: 1.3;
}
.sedai .idx_lst li::before {
  content: "●";
  font-size: 20px;
  color: #C88E48;
  margin-right: 10px;
  position: relative;
  top: 3px;
}
/* .sedai01 li {
    background-image: url(../ext/themes/cure_tcd082/images/top/check.png);
    background-repeat: no-repeat;
    line-height: 1.3;
}
.sedai02 li {
  background-image: url(../ext/themes/cure_tcd082/images/top/check2.png);
  background-repeat: no-repeat;
  line-height: 1.3;
}
.sedai03 li {
  background-image: url(../ext/themes/cure_tcd082/images/top/check3.png);
  background-repeat: no-repeat;
  line-height: 1.3;
} */

.sedai .idx_lst li span {
  display: block
}
.sedai .idx_lst li em {
    font-weight: 600;
    font-size: 19px;
}
.sedai01 li em{
  color: #C88E48;
}
.sedai02 li em{
    color: #C88E48;
}
.sedai03 li em{
    color: #C88E48;
}
.sedai04 li em{
  color: #C88E48;
}

.sedai_fig {
  position: absolute
}

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

.idx_gnr_01 {
  background-image: url(https://sakurashika-clinic.jp/wp-content/uploads/2025/05/sedai01-scaled.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;
  bottom: 40px;
  right: 0px;
}
.idx_gnr_01 .sedai_fig img {
  aspect-ratio: 366/272;
  padding: 10px;
  width: 366px;
}

.idx_gnr_02 {
	background-image: url(https://sakurashika-clinic.jp/wp-content/uploads/2025/11/特徴背景-15-1-scaled.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: 309px;
  bottom: 0px;
  right: 42px;
}

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

.idx_gnr_03 {
  background-image: url(https://sakurashika-clinic.jp/wp-content/uploads/2025/05/sedai03-scaled.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;
  bottom: 40px;
  right: 42px
}

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


.idx_gnr_04{
  background-image: url(../ext/themes/cure_tcd082/images/dream04.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;
  bottom: 40px;
  right: 42px
}

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

.spimg {
  display: none;
}
.spnone {
  display: block;
}


/*------------------------------
ボタン
------------------------------*/

.btn03 {
  position: relative;
}
.btn03 a {
  display: inline-block;
  position: relative;
  min-width: 250px;
  box-sizing: border-box;
  padding: 17px 38px 17px 25px;
  margin: 6px 0;
  line-height: 1;
  border-radius: 40px;
  text-align: left;
  font-weight: bold;
  text-decoration: none;
  font-size: 15px;
}
.btn03 a:hover::before {
  right: 20px;
}

.btn03 a:hover::before{
	right: 20px;
}

.btn03 a:hover::after{
	left:0;
	top:0;
}
.btn03 a i{
	margin-right: 7px;
	font-size: 12px;
}
/* 一つ目のボタン */
.sedaibtv01 a {
	border: 1px solid #977c4c;
	color: #977c4c;
	transition: background-color 1s ease, color 1s ease;
}
.sedaibtv01 a:hover {
	color: #fff;
	background:#977c4c;
}

/* 二つ目のボタン */
.sedaibtv02 a {
  border: 1px solid #977c4c;
  color: #977c4c;
	transition: background-color 1s ease, color 1s ease;
}
.sedaibtv02 a:hover {
	color:#fff;
	background:#977c4c;
}

/* 三つ目のボタン */
.sedaibtv03 a {
	border: 1px solid #977c4c;
	color: #977c4c;
	transition: background-color 1s ease, color 1s ease;
}

.sedaibtv03 a:hover{
	color:#fff;
	background-color:#977c4c;
}
.sedaibtv03 a:hover::before{
	border-color:#977c4c;
  color: #fff;
}

/* 四つ目のボタン */
.sedaibtv04 a {
	border: 1px solid #977c4c;
	color: #977c4c;
	transition: background-color 1s ease, color 1s ease;
}

.sedaibtv04 a:hover{
	color:#fff;
	background-color:#977c4c;
}
.sedaibtv04 a:hover::before{
	border-color:#977c4c;
  color: #fff;
}
/* ----------------------------------------------------
タブレット（768px～1024px）
---------------------------------------------------- */
@media screen and (min-width: 768px) and (max-width: 1024px) {
.sedai .idx_box {
    background-color: #ffffffd6;
  }
}
/* ----------------------------------------------------
スマホ用（〜767px）
---------------------------------------------------- */
@media screen and (max-width: 768px) {
  .spimg {
    display: block;
  }
  .sedai .idx_box {
    background-color: #ffffffed;
    padding: 20px 10px;
  }
  .sedai_ttl {
    font-size: 1rem;
  }
  .sedai_ttl span {
    font-size: 1.7rem;
  }
  .sedai_lead {
    width: 100%;
    margin: 15px auto
  }
  .idx_gnr_01 .sedai_lead p,
  .idx_gnr_02 .sedai_lead p,
  .idx_gnr_03 .sedai_lead p {
    margin-right: 0;
}
.sedai .idx_lst li em {
  font-size: 18px;
}
.spnone {
  display: none;
}
.sedai .idx_inr,
.sedai .idx_inr:nth-of-type(2){
  background-position: left top;
}
}
/* デフォルトでは非表示（PC用） */
.sp-only {
  display: none;
}

/* モバイル（例：〜767px）のときだけ表示 */
@media screen and (max-width: 767px) {
  .sp-only {
    display: inline;
  }
}

/*-------------------------------------- ピックアップブロック --------------------------------------*/
.flex_box,
.flex_box2 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 40px;
  background-color: #fff;
  position: relative;
  border-radius: 10px;
  gap: 20px;
  font-family: 'Noto Serif JP', serif;
}

/* 左縦書きテキスト */
.vertical-text,
.vertical-text2,
.vertical-text2-2 {
  writing-mode: vertical-rl;
  text-orientation: sideways;
  font-family: 'Noto Serif JP', serif;
  font-size: 25px;
  letter-spacing: 2px;
  font-weight: bold;
  position: absolute;
  top: 50%;
  transform: translateY(-50%) rotate(180deg);
}
.vertical-text {
  color: #e6a4b4;
  left: 10px;
  border-left: 3px solid #d86d91;
}
.vertical-text2-2 {
  color: #e6a4b4;
  right: 58%;
  border-left: 3px solid #d86d91;
}

/* 左本文 */
.pickupbox2,
.pickupbox2-2 {
  width: 60%;
  padding: 15px 20px;
  background-color: #fff0f4;
  border-radius: 5px;
  margin-left: 15px;
  height:300px;
  display: flex;
  align-items: center; /* 上下中央 */
  justify-content: center;
}
.pickupbox2 h3,
.pickupbox2-2 h3 {
  font-size: 29px;
  color: #d86d91;
  border-bottom: 2px solid #d86d91;
  padding-bottom: 5px;
  display: inline-block;
}

/* 右画像 */
.pickupbox1 {
  width: 40%;
  display: flex;
  justify-content: center;
  margin: 10px;
}
.pickup-image {
  width: 100%;
  max-width: 500px;
  height: auto;
}

/* リストのデザイン */
.picup-list li,
.picup-list2 li {
  font-size: 16px;
  color: #666;
  padding-left: 25px;
  position: relative;
  margin-bottom: 8px;
}
.picup-list li::before,
.picup-list2 li::before {
  content: '✔';
  position: absolute;
  left: 0;
  color: #d86d91;
  font-weight: bold;
}

/* 強調デザイン（マーカー） */
.pickupbox2 p span,
.pickupbox2-2 p span {
  font-size: 20px;
  color: #d86d91;
  font-weight: bold;
  padding: 3px 6px;
  display: inline-block;
  position: relative;
  z-index: 1;
}
.pickupbox2 p span::after,
.pickupbox2-2 p span::after {
  content: "";
  display: block;
  width: 100%;
  height: 8px;
  background-color: #fbe99466;
  position: absolute;
  bottom: 5px;
  z-index: -1;
}

/* ボタン：ピンクグラデーション＋アクセントカラー */
.pickup-btn {
  display: inline-block;
  padding: 10px 24px;
  font-family: 'Noto Serif JP', serif;
  font-size: 15px;
  color: #fff;
  background: linear-gradient(135deg, #f6b6c2, #f48ca3);
  border-radius: 50px;
  text-align: center;
  text-decoration: none;
  position: relative;
  overflow: hidden;
  transition: all 0.3s ease;
  box-shadow:  0 5px 15px rgba(246, 182, 194, 0.4);
}
.pickup-btn:hover {
  background: linear-gradient(135deg, #f48ca3, #f6b6c2);
  transform: translateY(-3px);
  box-shadow: 0 10px 20px rgba(246, 182, 194, 0.6);
  color: #fff;
}
.pickup-btn::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 300%;
  height: 300%;
  background: radial-gradient(circle, rgba(255,255,255,0.3) 10%, transparent 70%);
  transform: translate(-50%, -50%) scale(0);
  transition: transform 0.5s ease;
}
.pickup-btn:hover::before {
  transform: translate(-50%, -50%) scale(1);
}
.pickup-btn:active {
  transform: translateY(2px);
  box-shadow: 0 4px 8px rgba(246, 182, 194, 0.3);
}
img.pickup-image {
    width: 500px;
    height: 300px;
}
/* ----------------------------------------------------
スマホ用（〜767px）
---------------------------------------------------- */
@media (max-width: 768px) {
  .flex_box,
  .flex_box2 {
    flex-direction: column;
    align-items: stretch;
    padding: 15px;
  }
  .pickupbox2,
  .pickupbox2-2,
  .pickupbox1 {
    width: 100%;
    padding: 10px;
    margin: 0;
  }
  .vertical-text,
  .vertical-text2-2 {
    position: relative;
    transform: none;
    left: auto;
    right: auto;
    margin-bottom: 10px;
  }

img.pickup-image {
    width: 100%;
  height:100%;
}
  .picuph2 {
    font-size: 24px;
    text-align: center;
    line-height: 1.5;
  }

  .dots::before,
  .dots1::before {
    content: none;
  }

  /* 共通：ボックスレイアウト調整 */
  .flex_box,
  .flex_box2 {
    flex-direction: column;
    padding: 15px;
    background: #fff0f4;
    border-radius: 10px;
    margin-bottom: 20px;
    gap:0;
  }

  /* モバイルで画像を常に上に表示 */
  .pickupbox1 {
    order: -1;
  }

  .pickupbox1,
  .pickupbox2,
  .pickupbox2-2 {
    width: 100%;
    margin: 0;
    padding: 15px 0;
  }

  .pickupbox2 {
    background-color: #fff0f4;
  }

  .pickup-image {
    width: 100%;
    height: auto;
    border-radius: 10px;
  }

  /* 縦テキスト非表示 */
  .vertical-text,
  .vertical-text2,
  .vertical-text2-2 {
    display: none;
  }

  /* リスト調整 */
  .picup-list li,
  .picup-list2 li {
    font-size: 14px;
    padding-left: 20px;
  }

  /* ボタン調整 */
  .pickup-btn,
  .pickup-btn-purple {
    width: 100%;
    text-align: center;
    font-size: 14px;
    padding: 12px 0;
    margin-top: 10px;
  }

  .pickupbox2 p span,
  .pickupbox2-2 p span {
    font-size: 18px;
  }
  .pickupbox2,
.pickupbox2-2 {
  height:100%;
}
  .pickupbox2 h3,
.pickupbox2-2 h3 {
  font-size:23px;
  margin:10px 0;
}
}
/*---------------------------------------------------------------------

  診療案内
 
 ---------------------------------------------------------------------*/

.clinic-menu-waper {
  width: 1200px;
  aspect-ratio: 1260 / 690;
  margin: 0 auto;
  position: relative;
}
.clinic-menu-waper::before {
  content: '';
  position: absolute;
  width: 670px;
  height: 730px;
  top: 0;
  right: -38px;
  background-color: #f8eef3;
  mix-blend-mode: multiply;
  z-index: -1;
}

.clinic-menu-waper::after {
  content: '';
  position: absolute;
  width: 669px;
  height: 729px;
  top: -30px;
  bottom: 0;
  left: -38px;
  background-repeat: no-repeat;
  background-size: cover;
  background-image: url(https://sakurashika-clinic.jp/wp-content/uploads/2025/05/afterbg.png);
  z-index: -1;
}


.clinic-menu-inner {
  height: 100%;
  z-index: 5;
  padding: 0 0 0 550px;
	background-image: url(https://sakurashika-clinic.jp/wp-content/uploads/2025/08/medhical.png);
  background-size: auto 100%;
  background-position: 0 0;
  background-repeat: no-repeat;
  background-color: #fff;
}

.clinic-menu__list {
 font-family: 'Noto Serif JP', serif；
  flex: 1 1 45%;
  min-width: 300px;
  height: 100%;
    background-color: rgba(255, 255, 255, .9);
    padding: 35px 36px 0 45px;
    align-content: center;
}


.clinic-menu__title {
  font-size: 28px;
  font-weight: bold;
  margin-bottom: 30px;
  font-family: 'Georgia', serif;
}

.clinic-menu__list ul {
  list-style: none;
  padding: 0;
  margin: 0;
  columns: 2;
  column-gap: 40px;
 font-family: 'Noto Serif JP', serif；
}

.clinic-menu__list li {
  border-bottom: 1px solid #ccc;
  margin-bottom: 12px;
  padding-bottom: 8px;
}

.clinic-menu__list a {
  text-decoration: none;
  color: #333;
  display: flex;
  justify-content: space-between;
  font-size: 16px;
}

.clinic-menu__list a::after {
  content: '»';
  color: #999;
  font-size: 14px;
}
/* ----------------------------------------------------
タブレット
---------------------------------------------------- */
@media screen and (min-width: 768px) and (max-width: 1024px) {
  .clinic-menu-waper {
    width: 100%;
    padding: 40px 30px;
    box-sizing: border-box;
    position: relative;

    background-image:
      url(../ext/themes/cure_tcd082/images/afterbg.png),  /* チェック模様 */
      url(../ext/themes/cure_tcd082/images/medicalimg.png); /* 人物画像 */

    background-repeat: no-repeat, no-repeat;

    /* 背景の配置：チェックは下、人物は左上 */
    background-position:
      bottom center,
      top left;

    background-size:
      100% 50%,   /* チェック模様：横100%、縦50%くらい */
      auto 100%;  /* 人物画像：縦全体にフィット */
  }

  .clinic-menu-waper::before,
  .clinic-menu-waper::after {
    display: none;
  }

  .clinic-menu-inner {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    height: 100%;
    padding: 0;
    background: transparent;
  }

  .clinic-menu__list {
    width: 60%;
    max-width: 600px;
    padding: 30px 30px 20px;
    background-color: rgba(255, 255, 255, 0.92);
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.05);
    border-radius: 8px;
    height: auto;
  }

  .clinic-menu__title {
    font-size: 26px;
    margin-bottom: 24px;
  }

  .clinic-menu__list ul {
    columns: 2;
    column-gap: 24px;
  }

  .clinic-menu__list li {
    margin-bottom: 14px;
    padding-bottom: 8px;
    border-bottom: 1px solid #ccc;
  }

  .clinic-menu__list a {
    font-size: 16px;
    padding-right: 10px;
    color: #333;
    display: flex;
    justify-content: space-between;
  }

  .clinic-menu__list a::after {
    font-size: 12px;
    color: #999;
  }
}

/* ----------------------------------------------------
スマホ用（〜767px）
---------------------------------------------------- */
@media screen and (max-width: 767px) {
  .clinic-menu-waper {
    width: 100%;
    aspect-ratio: auto;
    padding: 20px;
    box-sizing: border-box;
    position: relative;

    background-image:
      url(https://sakurashika-clinic.jp/wp-content/uploads/2025/05/afterbg.png),  /* チェック模様 */
      url(https://sakurashika-clinic.jp/wp-content/uploads/2025/05/medicalimg.png); /* 人物画像 */

    background-repeat: no-repeat, no-repeat;

    /* 人物画像は上部固定、チェック模様は中心から下に配置 */
    background-position:
      center 50%, /* チェック模様の開始位置（中央） */
      top center;

    /* チェック模様を縦に伸ばしつつ主張しすぎないサイズに */
    background-size:
      100% 60%,  /* チェック：横幅100%、縦は60% */
      contain;
  }

  .clinic-menu-waper::before,
  .clinic-menu-waper::after {
    display: none;
  }

  .clinic-menu-inner {
    padding: 0;
    background: transparent;
  }

  .clinic-menu__list {
    padding: 20px;
    background-color: rgba(255, 255, 255, 0.92);
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.05);
    border-radius: 8px;
  }

  .clinic-menu__title {
    font-size: 22px;
    margin-bottom: 20px;
  }

  .clinic-menu__list ul {
    columns: 1;
  }

  .clinic-menu__list li {
    margin-bottom: 16px;
    padding-bottom: 10px;
    border-bottom: 1px solid #ccc;
  }

  .clinic-menu__list a {
    font-size: 16px;
    padding-right: 10px;
    color: #333;
    display: flex;
    justify-content: space-between;
  }

  .clinic-menu__list a::after {
    font-size: 12px;
    color: #999;
  }
}

/* 独自の取り組み */
.clinic-points {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 20px;
  justify-content: center;
  padding: 50px 20px;
  color: #633b3b;
  font-family: 'Noto Serif JP', serif;
}

.point {
  position: relative;
  background: #fff4f7;
  padding: 20px;
  border: 1px solid #efc7d4;
  box-shadow: 0 4px 10px rgba(234, 179, 200, 0.15);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.point:hover {
  transform: translateY(-5px);
  box-shadow: 0 8px 16px rgba(234, 179, 200, 0.3);
}

.point img {
  max-width: 100%;
  border-radius: 8px;
  margin-bottom: 15px;
  border: 1px solid #f3d9e4;
}

.point h3 {
	position: absolute;
	top: 200px;
	right: -2px;
	font-size: 17px;
	box-shadow: 4px 4px 4px rgba(229, 186, 203, .25);
	padding: 0.3em 3em 0.3em 0.8em;
	background-color: #f6c4ce;
	color: #704a56;
}
.point h3::after {
  content: "＞";
  position: absolute;
  right: 0.8em;
  top: 50%;
  transform: translateY(-50%);
  font-size: 20px;
  color: #d86d91; /* アクセントカラー */
  font-weight: bold;
}

.point .gold {
  color: #da7e9b;
  font-size: 23px;
  margin: 0 5px;
}

.point p {
	font-size: 0.9rem;
	line-height: 1.7;
	color: #704a56;
}

@media (max-width: 768px) {
  .hero-text {
    flex-direction: column;
  }
  .clinic-points {
    flex-direction: column;
    padding:0;
  }
  .hero-overlay {
    flex-direction: column;
    align-items: flex-start;
  }
  .nomalvertical-text {
    writing-mode: horizontal-tb;
    text-align: left;
  }
}

/* タブレット用（768px〜1024px） */
@media (max-width: 1024px) {
  .leading-clinic {
    background-position: center top;
    background-size: cover;
  }
}

/* スマホ用（〜767px） */
@media (max-width: 767px) {
  .leading-clinic {
    background-image: url(../ext/themes/cure_tcd082/images/equipmentbg_sp.png);
    background-size: cover;
    background-position: center top;
    min-height: auto;
  }
	.point h3 {
	  top:218px;
	  font-size: 15px;
	}
}

/*---------------------------------------------------------------------

  理想(症例ブロック)
 
 ---------------------------------------------------------------------*/
span.color {
  font-size: 50px;
  background: linear-gradient(135deg, #dd91a5, #d57397, #cb4872);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
 .dreamsec {
  background-image:
    linear-gradient(to right, rgba(0, 0, 0, 0.05) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(0, 0, 0, 0.05) 1px, transparent 1px);
  background-size: 12px 12px;
  background-color: #fff;   
}
.dreamsec {
     font-family: 'Noto Serif JP', serif；
}


 .rejuvenation-block {
  background: #f9f6f2;
  padding: 60px 20px;
  position: relative;
  max-width: 1400px;
  margin: 20px auto;
}

.rejuvenation-inner {
  display: flex;
  flex-wrap: wrap;
  max-width: 1200px;
  margin: 0 auto;
  gap: 30px;
  align-items: flex-start;
}


.rejuvenation-left {
  flex: 1 1 50%;
}

.rejuvenation-right {
  flex: 1 1 45%;
  margin: auto;
}

.rejuvenation-right img {
  width: 100%;
  border-radius: 4px;
}

.rejuvenation-number {
  font-size: 72px;
  font-weight: bold;
  color: #b59b7d;
  line-height: 1;
  margin-bottom: 16px;
  font-family: 'Noto Serif JP', serif；
}

.rejuvenation-left h3 {
  font-size: 24px;
  font-weight: 600;
  color: #333;
  margin-bottom: 16px;
}

.rejuvenation-left .accent {
  color: #b59b7d;
  font-weight: bold;
  font-size: 26px;
}

.rejuvenation-text {
  font-size: 16px;
  line-height: 1.8;
  color: #444;
  margin-bottom: 24px;
}

.rejuvenation-box {
  display: flex;
  gap: 20px;
  align-items: center;
  border-top: 3px solid #d2ba9f;
  padding-top: 20px;
}

.before-after-img img {
  width: 120px;
  height: auto;
}

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

.rejuvenation-list li {
  font-size: 16px;
  line-height: 2;
  color: #333;
}

.rejuvenation-list .check {
  color: #b59b7d;
  font-weight: bold;
  margin-right: 8px;
}

.caption {
  font-size: 12px;
  color: #666;
  text-align: right;
  max-width: 1200px;
  margin: 10px auto 0;
}

.readmore {
  text-align: right;
  font-size: 14px;
  margin-top: 8px;
  margin-right: 20px;
  color: #444;
}

.readmore span {
  font-size: 12px;
}
/* 色 */
/* ─── 01：鮮やかピンク ─── */
.rejuvenation-block.pink01 {
  background: #fff0f4;
}
.pink01 .rejuvenation-number,
.pink01 .accent,
.pink01 .check {
  color: #d94c7f;
}
.pink01 .rejuvenation-box {
  border-top: 3px solid #f18da8;
}

/* ─── 02：ローズピンク ─── */
.rejuvenation-block.pink02 {
  background: #fce8ef;
}
.pink02 .rejuvenation-number,
.pink02 .accent,
.pink02 .check {
  color: #b35c7a;
}
.pink02 .rejuvenation-box {
  border-top: 3px solid #d7a4b4;
}

/* ─── 03：ワインローズ系 ─── */
.rejuvenation-block.pink03 {
  background: #f8f4f6;
}
.pink03 .rejuvenation-number,
.pink03 .accent,
.pink03 .check {
  color: #8f4e68;
}
.pink03 .rejuvenation-box {
  border-top: 3px solid #c399aa;
}


.twentytwenty {
  width: 100%;
  max-width: 800px;
  margin: 40px auto;
}

.twentytwenty img {
  width: 100%;
  height: auto;
  display: block;
}
/* ----------------------------------------------------
タブレット（768px～1024px）
---------------------------------------------------- */
@media screen and (min-width: 768px) and (max-width: 1024px) {
}
/* ----------------------------------------------------
スマホ用（〜767px）
---------------------------------------------------- */
@media screen and (max-width: 768px) {
  .rejuvenation-block.pink02 .rejuvenation-inner {
    flex-direction: column-reverse;
  }

  .rejuvenation-block.pink02 .rejuvenation-right {
    width: 100%;
    display: block;
  }

  .rejuvenation-block.pink02 .twentytwenty {
    min-height: 200px; /* 必要に応じて調整 */
  }
  span.color {
  font-size: 40px;
  }
}
/*---------------------------------------------------------------------

  院長紹介
 
 ---------------------------------------------------------------------*/
/* === 全体のレイアウト === */
.intyou {
  background: linear-gradient(
    to bottom,
    rgba(255, 230, 235, 0.9) 0%,  /* 非常に淡いピンク */
    rgba(250, 220, 230, 0.8) 40%, /* 少し濃い目の淡いピンク */
    rgba(240, 210, 220, 0.9) 100% /* さらに淡いピンク */
  );   padding: 40px;
  backdrop-filter: blur(10px);
  position: relative;
}

.intyou::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: radial-gradient(#f4d1e2 1px, transparent 1px); /* 淡いピンクのテクスチャ */
  background-size: 6px 6px;
  opacity: 0.15; /* より控えめなテクスチャ */
  z-index: 0;
}
.profile-container {
  display: flex;
  max-width: 1400px;
  margin: 20px auto;
  align-items: center;
  gap: 40px;
  padding: 60px;
  background: #ffffff91;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05); /* 非常に薄い影 */
  position: relative;
}

/* === 左側の画像エリア === */
.profile-image {
  flex: 1;
  max-width: 450px;
  position: relative;
}

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

/* === 右側のテキストエリア === */
.profile-text {
  flex: 2;
  padding: 10px;
}

/* === 見出しデザイン === */
.clinic-name {
  font-size: 20px;
  font-weight: bold;
  color: #cf8da4;
}

.position {
  font-size: 18px;
  font-weight: normal;
  color: #f8d6e1; /* 薄いピンク */
}

.doctor-name {
  font-size: 26px;
  font-weight: bold;
  margin-top: 10px;
  display: flex;
  align-items: center;
}

.jp-name {
  font-size: 32px;
  font-weight: bold;
  margin: 0 10px;
  color: #644a2f;
}

.en-name {
  font-size: 16px;
  font-weight: normal;
  color: #977c4c;
}

/* === 罫線デザイン === */
.profile-line {
  width: 100%;
  border: 1px solid #f8c8d2;
  margin: 20px 0;
}

.greetbox {
  margin: 15px 0;
  text-align: left;
}

/* `.profile-details` を2カラムレイアウトにする */
.profile-details {
  display: grid;
  grid-template-columns: 1fr 1fr; 
  gap: 20px; 
}
.profile-details li {
  font-size: 12px;
}

/* 各セクションのスタイル */
.profile-section {
  padding: 20px;
  background: rgb(255 255 255 / 85%);
  border-radius: 10px;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05);
}

/* 見出しデザイン */
.section-title {
  font-size: 20px;
  font-weight: bold;
  color: #977c4c;
  margin-bottom: 10px;
}

/* 略歴は1列全体を使う */
.profile-section.history {
  grid-column: span 2; /* 2カラムをまたぐ */
}

/* === 略歴・学会・講演情報のデザイン === */
.profile-section {
  margin-bottom: 20px;
}

.profile-info {
  list-style: none;
  padding: 0;
  font-size: 16px;
  line-height: 1.8;
}

.profile-info li {
  margin-bottom: 8px;
}

.year {
  font-weight: bold;
  color: #f48fb1;
}

.image-columns {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 20px;
  max-width: 1400px;
    margin: 30px auto;
    padding: 0 70px;
}

.image-box {
  flex: 1 1 calc(33.333% - 20px);
  text-align: center;
}

.image-box img {
  width: 70%;
  height: auto;
  border-radius: 6px;
}

.image-box p {
  margin-top: 10px;
  font-size: 0.95rem;
}


/* ----------------------------------------------------
スマホ用（〜767px）
---------------------------------------------------- */
@media (max-width: 768px) {
  .intyou {
    padding: 15px;
  }

  .profile-details {
      grid-template-columns: 1fr; /* 1カラムに変更 */
  }

  .profile-section.history {
      grid-column: span 1; /* 1カラムで表示 */
  }

  .profile-container {
      flex-direction: column;
      text-align: center;
      padding: 0;
  }

  .profile-image {
      max-width: 80%;
  }

  .profile-text {
      padding: 15px;
      width: 90%;
  }
  .profile-section {
    padding: 10px;
  }

  .doctor-name {
      flex-direction: column;
      text-align: center;
  }

  .jp-name {
      font-size: 28px;
  }

  .en-name {
      font-size: 14px;
  }

  .section-title {
      font-size: 18px;
  }
  .image-columns {
    padding: 0 15px;
    flex-wrap: nowrap;
    gap: 10px
  }
  .image-box p {
    font-size: 0.7rem;
  }
  .image-box {
    flex: 1 1 100%;
  }
}

.leading-clinic2 {
  font-family: 'Noto Serif JP', serif;
  color: #5b4633;
  background-image: url(https://sakurashika-clinic.jp/wp-content/uploads/2025/06/img-4.png);
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
  padding: 3.6em 0 0;
  overflow: hidden;
  min-height: 100vh;
}

.hero {
  position: relative;
  width: 100%;
  /* height: 1245px; */
  overflow: hidden;
  padding-top: 220px;
}

.hero-text {
  margin: 50px 0;
  padding: 0 50px;
}

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

.hero-overlay {
  position: absolute;
  inset: 0;
  gap: 20px;
  margin: 0 3%;
}

.hero-text h2 {
  font-size: max(1.786vw,23px);
  font-weight: 600;
  letter-spacing: 0.1em;
  color: #5b4633;
}
.hero-overlay .pttl {
  line-height: 1.3;
  font-size: max(2.8vw, 20px);
  letter-spacing: .08em;
  font-feature-settings: "palt";
}

span.pttlbaio {
  color: #a14242;
}
span.pttlpro {
  background: linear-gradient(180deg, transparent 70%, #f3bfd49e 70%);
}

.hero-text {
  flex: 1;
}


p.nomalvertical-text {
  font-size: 2rem;
  text-align: start;
  color: #fff;
  line-height: 2;
  flex-shrink: 0;
  text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.6);
  padding: 0 50px;
}

.nomalvertical-text span {
  color: #f0e68c;
  font-weight: bold;
  font-size: 3rem;
  text-shadow: 1px 1px 4px rgba(0, 0, 0, 0.7); /* ← 強めに追加 */
}

/* タブレット用（768px〜1024px） */
@media (max-width: 1024px) {
  .leading-clinic2 {
    background-position: center top;
    background-size: cover;
  }
}
@media (max-width: 921px) and (min-width: 768px) {
  .profile-container {
    padding: 0;
  }
.profile-details {
gap:5px;
}
  .doctor-name {
    flex-direction: column;　
}
  .clinic-name {
    text-align: center;
  }
}


/* スマホ用（〜767px） */
@media (max-width: 767px) {
  .leading-clinic2 {
    background-image: url(../ext/themes/cure_tcd082/images/equipmentbg_sp.png);
    background-size: cover;
    background-position: center top;
    min-height: auto; /* コンテンツ量で高さ自動調整 */
    padding-top: 80px; /* 上部に余白が必要なら */
  }
  .hero {
    padding: 0;
  }
  .hero-text {
    flex-direction: column;
  }

  .hero-overlay {
    position: relative;
    flex-direction: column;
    align-items: flex-start;
    text-align: center;
  }
  .nomalvertical-text {
    writing-mode: horizontal-tb;
    text-align: left;
  }
}
/* -------------------------- 治療の流れ -------------------------- */
.flow_box {
  margin: 20px 0 75px;
  max-width: 1400px;
  margin: auto;
  font-family: 'Noto Serif JP', serif;
  color: #5b4633;
}

.flow_box:nth-child(2){
  background: #fdfaef;
  padding: 50px 20px;
}
.flow_box:nth-child(3){
  background: #fffbff;
  padding: 50px 20px;
}
.flow_box:nth-child(4){
  background: #f5fffe;
  padding: 50px 20px;
}

.flow_box h3 {
  color: #9a845c;
  border-bottom: 1px solid #d2c3a1;
  font-size: 1.7rem;
  margin-bottom: 20px;
  padding: 10px 0;
}
ul.implant_flow_vertical.com_btm_100 {
    padding-bottom: 60px;
}
.implant_flow_vertical > li {
	position: relative;
	box-sizing: border-box;
	width: 100%;
	padding-left: 100px;
	padding-bottom: 60px;
}
.implant_flow_vertical li:last-of-type {
	padding-bottom: 0;
}
.implant_flow_vertical > li::before,
.implant_flow_vertical > li::after {
	content: "";
	position: absolute;
	top: 0;
	font-family: quiche-stencil, sans-serif;
	font-weight: 100;
	font-style: normal;
	text-align: center;
	color: #a14242;
	font-size: 220%;
	line-height: 1.0em;
}
.implant_flow_vertical > li::before {
	z-index: 1;
	content: "1";
	width: 1.5em;
	line-height: 1.5em;
	background: #fff;
	border: 1px solid #a14242;
	border-radius: 50%;
	left: 0;
}
.implant_flow_vertical > li:nth-child(2)::before { content: "2"; }
.implant_flow_vertical > li:nth-child(3)::before { content: "3"; }
.implant_flow_vertical > li:nth-child(4)::before { content: "4"; }
.implant_flow_vertical > li:nth-child(5)::before { content: "5"; }
.implant_flow_vertical > li:nth-child(6)::before { content: "6"; }
.implant_flow_vertical > li:nth-child(7)::before { content: "7"; }
.implant_flow_vertical > li:nth-child(8)::before { content: "8"; }
.implant_flow_vertical > li:nth-child(9)::before { content: "9"; }
.implant_flow_vertical > li:nth-child(10)::before { content: "10"; }
.implant_flow_vertical > li:nth-child(11)::before { content: "11"; }
.implant_flow_vertical > li:nth-child(12)::before { content: "12"; }

.implant_flow_vertical > li::after {
	z-index: 0;
	width: 1px;
	height: 100%;
  left: 0.75em;
	background-color: #a14242;
}
.implant_flow_vertical li:last-of-type::after {
	display: none;
}
/* .implant_flow_vertical .img_r {
	width: 35.5%;
	max-width: 394px;
	flex: 2;
} */

.implant_flow_vertical .implant_style1 > dt {
  font-size: 1.5rem;
	padding-top: 0.6em;
	color: #d76c94;
	padding-bottom: 10px;
}
.implant_flt.clearfix {
  display: flex;
    /* flex-direction: row-reverse; */
    align-items: flex-start;
    gap: 20px;
    background: #f9e5ee3b;
    padding: 30px;
}

.implant_flow_vertical .txt_l {
  padding: 0 15px;
  flex: 3;
}

.flow_box .grid_box1{
  flex-direction: row-reverse; 
  box-shadow:none;
  background: none;
}
.implant_flow_vertical {
  flex: 3;
}
.retina {
  width:394px;
  height:263px;
}
@media only screen and (max-width: 767px) {
  .flow_box {
    padding: 0 10px;
  }
	.implant_flow_vertical > li {
		padding-left: 15%;
		padding-bottom: 10%;
	}
	.implant_flow_vertical > li::before,
	.implant_flow_vertical > li::after {
		font-size: 160%;
	}
	.implant_flow_vertical .txt_l {
		width: 100%;
	}
	.implant_flow_vertical .implant_style1 > dt {
		padding-top: 0;
		margin-bottom: 0.2em;
	}
  .implant_flow_vertical .implant_style1 > dd {
    font-size: 0.85rem;
  }
  .implant_flt.clearfix {
    flex-direction: column; /* スマホでは縦並び */
  }
  .implant_flow_vertical .img_r {
    width: 100%;
    margin-bottom: 0.5em;
  }
  .implant_flow_vertical .txt_l {
    width: 100%;
    padding: 0;
  }
	.retina {
		width:100%;
		height:100%;
	}
}
/*---------------------------------------------------------------------

  フッター
 
 ---------------------------------------------------------------------*/
/* フッター全体 */
.footer * {
  color: #a14242;
  font-family: 'Noto Serif JP', serif;
}
.footer {
  position: relative; /* 疑似要素を適切に配置するために relative を設定 */
  padding: 40px 20px;
  background: url(https://sakurashika-clinic.jp/wp-content/uploads/2023/11/DSC08638.jpg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

/* グラデーションを背景として追加 */
.footer::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}

/* 半透明の白レイヤーを背景画像の上に配置 */
.footer::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #ffffffbf;
  z-index: 0; 
}

/* フッター内のテキストを前面に配置 */
.footerinner {
  position: relative;
  z-index: 2; /* コンテンツを最前面に */
  color: #363636;
}

/* フッター内のテキストの視認性を確保 */
.footer-content {
  position: relative;
  z-index: 3; /* テキストを最前面に */
  color: #363636; /* 適宜調整 */
}

/* フッター上部（ロゴ・住所・予約） */
.footer-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  max-width: 1100px;
  margin: 0 auto;
  border-bottom: 1px solid #a55076;
  padding-bottom: 20px;
}
.footer-logo {
    text-align: center;
}
.footer-logo img {
  width: 300px;
  margin: 0 auto;
}

/* フッターの情報エリア */
.footer-info {
  text-align: left;
  font-size: 14px;
  color: #363636;
  font-weight: 700;
}

/* 各項目のアイコン */
.footer-info p {
  position: relative;
  margin: 5px 0;
}

/* 住所アイコン */
.footer-info p:nth-child(1)::before {
  /* content: "\f3c5"; */
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  color: #a6586a;
}

/* アクセス方法アイコン */
.footer-info p:nth-child(2)::before {
  /* content: "\f3c5"; */
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  color: #a6586a;
}

/* モノレールアイコン */
.footer-info p:nth-child(3)::before {
  /* content: "\f238"; */
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  color: #a6586a;
}

/* 電話番号アイコン */
.footer-info p:nth-child(4)::before {
  /* content: "\f095"; */
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  color: #a6586a;
}
i.fas {
/*     padding-right: 15px; */
}

/* 診療時間表 */
.footer-schedule {
  text-align: center;
  flex-grow: 1;
  margin: 0 20px;
  padding: 15px;
  border-radius: 8px;
}

.footer-schedule h3 {
  font-size: 18px;
  /* color: #fff; */
  margin-bottom: 10px;
}

.schedule-table {
  width: 100%;
  border-collapse: collapse;
  background: #fff;
  overflow: hidden;
  box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.1);
}

.schedule-table th, .schedule-table td {
  padding: 10px;
  border: 1px solid #ddd;
  text-align: center;
  font-size: 14px;
}

.schedule-table th {
  background: linear-gradient(to bottom, #dbccd4, #9f818f);
  color: #fff;
  font-weight: bold;
}

.schedule-table td {
  background: #fff;
  color: #666;
}

.schedule-table .sat {
  color: #a6586a;
  font-weight: bold;
}

.schedule-table .closed {
  background: #eee;
  color: #a6586a;
}

.note {
  font-size: 12px;
  margin-top: 5px;
}
/* ----------------------------------------------------
スマホ用（〜767px）
---------------------------------------------------- */

@media (max-width: 768px) {
  .footer-top {
    display: block;
  }
  .footer-schedule {
      margin: 15px 0;
  }

  .schedule-table th, .schedule-table td {
      font-size: 12px;
      padding: 6px;
  }
}

/* ナビゲーションメニュー */
.footer-nav {
  text-align: center;
  margin: 20px 0;
  font-weight: 700;
}

.footer-nav ul {
  list-style: none;
  padding: 0;
}

.footer-nav ul li {
  display: inline-block;
  margin: 0 10px;
}

.footer-nav ul li a {
  text-decoration: none;
  font-size: 16px;
}

/* 診療内容のリンク */
.footer-links {
  display: flex;
  justify-content: space-between;
  max-width: 1100px;
  margin: 20px auto;
}

.footer-section {
	width: 30%;
}

.footer-section .fttl {
  font-size: 18px;
  margin-bottom: 10px;
  border-bottom: 2px solid #a14242;
  padding-bottom: 5px;
  font-weight: 700;
}

.footer-section ul {
  list-style: none;
  padding: 0;
  font-weight: 700;
}

.footer-section ul li {
  margin-bottom: 8px;
}

.footer-section ul li a {
  text-decoration: none;
  font-size: 14px;
}

/* フッターのバナー */
.footer-banners {
  text-align: center;
  margin: 20px 0;
}

.footer-banners a {
  display: inline-block;
  margin: 0 10px;
}

.footer-banners img {
  width: 250px;
  border-radius: 5px;
  transition: transform 0.3s ease-in-out;
}

.footer-banners img:hover {
  transform: scale(1.05);
}

/* フッター下部（著作権） */
.footer-bottom {
  text-align: center;
  font-size: 14px;
  color: #555;
  border-top: 1px solid #a55076;
  padding-top: 15px;
}
.fas, .fa, .fab {
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
}
.fab {
  font-family: "Font Awesome 5 Brands";
  font-weight: 400;
}


/* 固定ボタンラッパー（PCは右下に縦並び、スマホは下部に全幅） */
.fixed-reservation-buttons {
  position: fixed;
  z-index: 1000;
  display: flex;
  gap: 10px;
  align-items: center;
}

/* ボタン共通スタイル */
.reservation-button {
  background-color: #f8c0c6;
  color: #fff;
  font-size: 16px;
  font-weight: bold;
	padding: 15px 20px;
  border-radius: 50px;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
  text-decoration: none;
  display: flex;
  align-items: center;
  justify-content: center;
	gap: 0;
  transition: background-color 0.3s ease, transform 0.3s ease;
}

.reservation-button i {
  font-size: 20px;
}

.reservation-button:hover {
  background-color: #f69a9f;
  transform: translateY(-3px);
  color: #fff;
}

.reservation-button:active {
  background-color: #f56b7b;
  transform: translateY(1px);
}

/* ▼ PC：右下に縦並びで表示 */
@media screen and (min-width: 768px) {
  .fixed-reservation-buttons {
	  bottom: 115px;
	  right: 20px;
	  flex-direction: column; /* ←縦並び */
	  z-index: 10;
  }

  .reservation-button {
    width: 180px; /* 好みに応じて調整可 */
  }
}

/* ▼ モバイル：下部に全幅表示（横並び） */
@media screen and (max-width: 767px) {
	.footer-links {
		flex-direction: column;
	}
	.footer-section {
		width: 100%;
	}
  .fixed-reservation-buttons {
    bottom: 0;
    left: 0;
    right: 0;
    width: 100%;
    padding: 10px;
    background: rgba(255, 255, 255, 0.95);
    box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.1);
    justify-content: space-around;
    flex-direction: row; /* ←横並びのまま */
  }

  .reservation-button {
	  flex: 1;
	  border-radius: 30px;
	  font-size: 11px;
	  padding: 12px 10px;
	  max-width: 48%;
  }
}


/* CUREボタン修正 */
.wp-block-button__link {
  background-color: #c36d7b !important;
  color: #fff !important;
}
/* botan  */
.wp-block-buttons>.wp-block-button {
    margin: 20px 0;
}

/* CURE投稿ページ見出し */
h2.wp-block-heading {
  font-size: 1.8rem;
  font-weight: 600;
  color: #f293b6;
  border-bottom: 2px solid #f293b6;
  padding-bottom: 0.3em;
  margin: 40px 0 20px;
  line-height: 1.4;
}
h3.wp-block-heading {
  position: relative;
  font-size: 1.2rem;
  font-weight: 600;
  color: #d16a8b;
  padding: 0.5em 1em;
  background: #fff7f9;
  border-left: 4px solid #f293b6;
  border-radius: 6px;
  margin: 25px 0 10px;
}
.post_content h4 {
    font-size: 20px;
    color: #bd7a7a;
    border-bottom: 1px solid #c53737;
    /* margin-bottom: 6px; */
    padding-bottom: 9px;
}

/* 症例テーブル */
figure.wp-block-flexible-table-block-table {
    margin: 20px 0;
}

/* 症例アーカイブ */
.case-archive-hero {
    position: relative;
    background-image: url('https://sakurashika-clinic.jp/wp-content/uploads/2023/11/内装-scaled.jpg');
    background-size: cover;
    background-position: center;
    padding: 80px 20px;
    text-align: center;
    color: #fff;
}

.case-archive-overlay {
	background-color: rgb(181 66 66 / 40%);
    padding: 40px 20px;
    max-width: 1000px;
    margin: 0 auto;
}

.case-archive-hero .page-title {
    font-size: 2.5em;
    font-weight: bold;
    margin: 0;
}

main#main {
	width: 1000px;
	margin: 65px auto;
	position: relative;
}
/* タブレット用（768px〜1024px） */
@media (max-width: 1024px) {
	main#main {
		width: 90%;
	}
	.related-case-thumbnail img {
    width: 300px;
    height: 225px;
}
	.related-case-thumbnail {
    text-align: center;
}
}
/* スマホ用（〜767px） */
@media (max-width: 767px) {
	h2.wp-block-heading {
		font-size: 1.5rem;
	}
	h3.wp-block-heading {
		font-size: 1rem;
	}
	main#main {
    width: 80%;
}
	.case-archive-hero .page-title {
		font-size: 1.5em;
		font-weight: bold;
		margin: 0;
	}
}
.rich_font_type2 {
    font-family: serif;
}

/* デフォルトでは非表示（PC用） */
.sp-only {
  display: none;
}

/* モバイル（例：〜767px）のときだけ表示 */
@media screen and (max-width: 767px) {
  .sp-only {
    display: inline;
  }
}
@media (max-width: 768px) {
	.related-case-thumbnail img {
		width:100%;
	}
}

/* ------チャットボット（sakura）------
   色: ピンク系そのまま
   UI: ヘッダー・アニメーション・入力エリア改善
   ---------------------------------------- */

html, body {
  margin: 0;
  padding: 0;
  overflow-x: clip;
}

/* ── トグルボタン ── */
.chat-toggle-button {
	position: fixed;
    bottom: 20px;
    right: 20px;
    background: #d28fb0;
    color: #fff;
    padding: 20px 25px;
    border-radius: 50px;
    cursor: pointer;
    font-weight: bold;
    font-size: 20px;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
    z-index: 1000;
    transition: transform .35s cubic-bezier(.34, 1.56, .64, 1), box-shadow .35s ease;
    user-select: none;
    border: 2px solid #fff;
}
.chat-toggle-button:hover {
  transform: translateY(-5px) scale(1.04);
  box-shadow: 0 12px 24px rgba(210, 143, 176, 0.5);
}
.chat-toggle-button:active {
  transform: translateY(-1px) scale(0.98);
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
  transition: transform .1s ease, box-shadow .1s ease;
}

/* ── チャットウィンドウ ── */
.chat-box {
  position: fixed;
  bottom: 80px;
  right: 20px;
  width: 360px;
	height: 65vh;
  max-width: calc(100vw - 24px);
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
  display: none;
  flex-direction: column;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
  z-index: 1000;
  overflow: hidden;
}
.chat-box.active {
  display: flex;
  opacity: 1;
  pointer-events: auto;
  animation: cbFadeUp 0.35s ease forwards;
}
.chat-box.closing {
  animation: cbFadeDown 0.25s ease forwards;
}
@keyframes cbFadeUp {
  from { opacity: 0; transform: translateY(20px) scale(0.95); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes cbFadeDown {
  from { opacity: 1; transform: translateY(0) scale(1); }
  to   { opacity: 0; transform: translateY(14px) scale(0.95); }
}

/* ── ヘッダー ── */
.chat-header {
  background: linear-gradient(90deg, #d28fb0, #e8a6c3);
  color: #fff;
  padding: 12px 14px;
  font-weight: bold;
  display: flex;
  align-items: center;
  gap: 10px;
  border-top-left-radius: 12px;
  border-top-right-radius: 12px;
  flex-shrink: 0;
}
.chat-header-avatar {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.22);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  flex-shrink: 0;
}
.chat-header-info { flex: 1; min-width: 0; }
.chat-header-name {
  font-size: 14px;
  font-weight: bold;
  line-height: 1.3;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.chat-header-sub {
  font-size: 11px;
  opacity: .85;
  display: flex;
  align-items: center;
  gap: 5px;
  margin-top: 2px;
  font-weight: normal;
}
.chat-online-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #4fe08c;
  flex-shrink: 0;
}
.chat-header button {
  background: rgba(255, 255, 255, 0.15);
  color: #fff;
  font-size: 15px;
  border: none;
  cursor: pointer;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s;
  flex-shrink: 0;
}
.chat-header button:hover {
  background: rgba(255, 255, 255, 0.28);
}

/* ── メッセージ一覧 ── */
.chat-body {
  flex: 1;
  overflow-y: auto;
  padding: 12px 10px;
  font-size: 14px;
  background: #fceef3;
  scroll-behavior: smooth;
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-height: 200px;
  max-height: 360px;
}
.chat-body::-webkit-scrollbar { width: 4px; }
.chat-body::-webkit-scrollbar-track { background: transparent; }
.chat-body::-webkit-scrollbar-thumb {
  background: rgba(210, 143, 176, 0.35);
  border-radius: 4px;
}

/* ── アバター付きボット行 ── */
.bot-msg-row {
  display: flex;
  align-items: flex-end;
  gap: 8px;
  align-self: flex-start;
  animation: msgIn 0.25s ease;
}
.bot-avatar {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: #f7c9da;
  border: 1.5px solid #e8a6c3;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  flex-shrink: 0;
}
.bot-msg-col {
  display: flex;
  flex-direction: column;
  gap: 3px;
  max-width: calc(85% - 40px);
}
.sender-name {
  font-size: 10px;
  color: #b07a95;
  padding-left: 4px;
}

/* 吹き出し */
.bot-message {
  background: #fff;
  padding: 9px 13px;
  border-radius: 16px;
  border-bottom-left-radius: 4px;
  border: 0.5px solid #f0ccd9;
  margin-bottom: 0;
  color: #a85b7c;
  word-break: break-word;
  line-height: 1.6;
  font-size: 13.5px;
}
.user-message {
  background: #d28fb0;
  padding: 8px 12px;
  border-radius: 8px;
  margin-bottom: 0;
  color: #ffffff;
  animation: msgIn 0.25s ease;
  max-width: 85%;
  align-self: flex-end;
  word-break: break-word;
  line-height: 1.6;
}
@keyframes msgIn {
  from { opacity: 0; transform: translateY(6px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* リンク */
.chat-body a {
  color: #c26789;
  font-weight: bold;
  text-decoration: underline;
  transition: all 0.3s ease;
}
.chat-body a:hover {
  color: #a05d77;
  background-color: #f0dce6;
  padding: 2px 4px;
  border-radius: 4px;
  text-decoration: none;
}

/* テーブル */
.chat-body table {
  width: 100%;
  border-collapse: collapse;
  margin: 8px 0;
  font-size: 14px;
  background-color: #fff;
  border: 1px solid #ccc;
}
.chat-body th {
  background-color: #d28fb0;
  color: white;
  padding: 8px;
  border: 1px solid #ccc;
  text-align: center;
}
.chat-body td {
  padding: 8px;
  border: 1px solid #ccc;
  text-align: center;
}

/* typing indicator */
.typing-indicator {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 2px;
}
.typing-indicator::before,
.typing-indicator::after,
.typing-indicator span {
  content: '';
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #d28fb0;
  animation: cbDot .9s infinite;
}
.typing-indicator::after { animation-delay: .18s; }
.typing-indicator span   { animation-delay: .36s; }
@keyframes cbDot {
  0%, 80%, 100% { opacity: .2; }
  40%           { opacity: 1;  }
}

/* クイックリプライ */
.chat-quick-replies {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 0 10px 10px;
  background: #fceef3;
}
.chat-qr-btn {
  font-size: 12px;
  padding: 5px 12px;
  border-radius: 14px;
  border: 1px solid rgba(210, 143, 176, 0.4);
  background: #fff;
  color: #c26789;
  cursor: pointer;
  transition: all .15s;
  white-space: nowrap;
  font-family: inherit;
}
.chat-qr-btn:hover {
  background: #fceef3;
  border-color: #d28fb0;
}

/* ── 入力エリア ── */
.chat-input {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 8px 10px 10px;
  border-top: 1px solid #f0d5e2;
  background: #fff;
  flex-shrink: 0;
}
.chat-input-row {
  display: flex;
  gap: 8px;
  align-items: center;
}
.chat-input input[type="text"],
#userInput {
  flex: 1;
  border: 1px solid #e8c4d8;
  padding: 9px 14px;
  font-size: 14px;
  border-radius: 22px;
  outline: none;
  font-family: inherit;
  background: #fff9fb;
  color: #4a2535;
  transition: border-color .15s, background .15s;
  min-height: 38px;
}
.chat-input input[type="text"]:focus,
#userInput:focus {
  border-color: #d28fb0;
  background: #fff;
}
.chat-input input[type="text"]::placeholder,
#userInput::placeholder { color: #d4aec0; }

.chat-send-btn,
.chat-input button {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: linear-gradient(90deg, #d28fb0, #e8a6c3);
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: transform .2s ease, box-shadow .2s ease;
  padding: 0;
  color: #fff;
  font-size: 15px;
}
.chat-send-btn:hover,
.chat-input button:hover {
  transform: scale(1.08);
  box-shadow: 0 4px 12px rgba(210, 143, 176, 0.5);
}
.chat-send-btn:active,
.chat-input button:active { transform: scale(.95); }

.chat-input-hint {
  font-size: 10.5px;
  color: #d4aec0;
  text-align: center;
  line-height: 1;
}

/* ── モバイル対応 ── */
@media screen and (max-width: 768px) {
  .chat-box {
    width: calc(100vw - 16px);
    max-height: 80vh;
	  height:70vh;
    left: 8px;
    right: 8px;
    bottom: 72px;
    border-radius: 10px;
  }
  .chat-toggle-button {
	  bottom: 70px;
    right: 10px;
    padding: 10px 18px;
    z-index: 1000;
	  font-size: 15px;
  }
  .chat-body {
    max-height: calc(80vh - 160px);
  }
  .bot-message img,
  .chat-body img { width: 100%; height: auto; }
}
/* ── WEB予約固定バー ── */
.reservation-bar {
  padding: 10px 12px 12px;
  background: #fff;
  border-top: 1px solid #f0d5e2;
  flex-shrink: 0;
}
.reservation-btn {
  display: block;
  width: 100%;
  padding: 11px;
  background: linear-gradient(90deg, #d28fb0, #e8a6c3);
  color: #fff;
  font-size: 13.5px;
  font-weight: bold;
  text-align: center;
  border-radius: 22px;
  border: none;
  cursor: pointer;
  text-decoration: none;
  letter-spacing: .04em;
  transition: opacity .2s ease, transform .2s ease;
}
.reservation-btn:hover {
  opacity: .88;
  transform: translateY(-1px);
	color: #fff;
}
.reservation-btn:active {
  transform: translateY(0);
  opacity: 1;
}


/* 著者情報 */
.supervisor-box {
  margin-top: 40px;
  padding: 20px;
  background: #f8f8f8;
  border-left: 5px solid #3498db;
  font-size: 14px;
  line-height: 1.6;
}

.supervisor-box strong {
  font-weight: bold;
}

.supervisor-box br {
  margin-bottom: 8px;
}

.supervisor-box span {
  display: block;
  margin-bottom: 5px;
}

.supervisor-image img {
  width: 150px; /* 画像サイズ調整 */
  height: auto;
  border-radius: 50%; /* 画像を丸く表示 */
  border: 3px solid #3498db; /* 画像の枠を追加（任意） */
  display: block;
  margin-bottom: 20px;
}
.fa-line:before,
.fa-calendar-check:before,
.fa-phone-alt:before {
	padding-right: 10px;
}
p {
    line-height: 1.8;
}

/* ================================================ 下層ページCSS ================================================ */
/* PCでは非表示 */
.br-sp {
display: none;
}
.pc-sp {
  display: block;
}

/* モバイル時のみ表示 */
@media screen and (max-width: 767px) {
.br-sp {
display: inline;
}
.pc-sp {
display: none;
}
.spsmall {
  font-size: 1rem;
}
}
/* ------------------ 見出しここから ------------------ */
.section-heading {
  text-align: center;
  padding: 60px 20px;
  font-family: "Noto Serif JP", serif;
  color: #644A2F;
}

.section-heading__iconline {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 20px;
}

.section-heading__line {
  width: 140px;
  height: 1px;
  background-color: #e5c7c7;
}

.section-heading__icon {
  width: 50px;
  height: auto;
}

.section-heading__label {
  color: #b87575;
  font-size: 22px;
  margin: 10px 0 30px;
  letter-spacing: 0.1em;
}

.section-heading__title {
  font-size: 2.3rem;
  font-weight: 500;
  line-height: 1.4;
}

.section-heading__large {
  font-size: 3rem;
}
span.section-heading__large.color {
  font-size: 50px;
  background: linear-gradient(135deg, #dd91a5, #d57397, #cb4872);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.section-heading__title em {
  font-size: 3rem;
  display: inline-block;
  position: relative;
}

.section-heading__title em::before {
  content: '';
  position: absolute;
  left: 0;
  bottom: 5px;
  width: 100%;
  height: 0.5em;
  background-color: #fff3d4;
  z-index: -1;
}
.headh3 {
  font-size: 1.5rem;
  border-bottom: 1px solid #644a2f;
  padding-bottom: 10px;
  color: #644a2f;
}
/* ----------------------------------------------------
スマホ用（〜767px）
---------------------------------------------------- */
@media screen and (max-width: 768px) {
  .section-heading__title em {
    font-size: 2rem;
  }
  .section-heading {
    padding: 20px 0;
  }
  .section-heading__large {
    font-size: 1.5rem;
}
.section-heading__title {
  font-size: 1.3rem;
}
.headh3 {
  font-size: 1.2rem;
}
}
/* ------------------ 見出しここまで ------------------ */




.container {
  max-width: 1100px;
  margin: 0 auto;
}

 /* ----------------------------------------------------
タブレット（768px～1024px）
---------------------------------------------------- */
@media screen and (min-width: 768px) and (max-width: 1024px) {
  .container {
    padding: 0 20px;
  }
}
/* ----------------------------------------------------
スマホ用（〜767px）
---------------------------------------------------- */
@media screen and (max-width: 768px) {
  .container {
  max-width: 100%;
  padding: 0 10px;
}
  .implant-upper {
  flex-direction: column-reverse;
}
.implant-text {
    padding-right: 0;
}
.implant-info {
  padding: 0 15px;
}
.small {
  font-size: 0.7rem;
} 
}


/* ------------------ 下層デザイン ------------------ */
.h3section {
  padding: 20px 0;
}
.center {
    text-align: center;
}
.centerdiv {
  text-align: center;
}

.flex_box2_txt {
  flex: 1 1 55%;
  padding-right: 30px;
  padding: 10px;
  margin: auto;
}
.flex_box2_image {
  flex: 1 1 40%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 10px;
}
.kyoutyou {
  color: rgb(225, 51, 36);
  text-shadow: rgb(205, 88, 88) 1px 2px 4px;
}
/* リスト */
.fdc-points{
  list-style: none;
  margin: 1.2em 0 0;
  padding: 15px;
  color: #5b4633;
  margin: 20px 0;
  background: #f7eded;
}
.fdc-points li{
  position: relative;
  padding-left: 1.6em;         /* 行頭を少し下げて“ハング字下げ” */
  line-height: 2;              /* 行間ゆったり（画像とバランス取り） */
  font-feature-settings: "palt";/* 和文の詰め */
}
.fdc-points li + li{ margin-top: .2em; }

/* 細いダッシュを装飾弾に（ブラウン×細身で上品） */
.fdc-points li::before{
  content: "—";                /* エムダッシュ風 */
  position: absolute;
  left: 0; top: 0.02em;
  font-weight: 600;
  color: var(--sub);
  transform: translateY(.1em);
}

/* buttonのCSS */
.buttonbloc {
  display: block;
}
.btn{
  display: block;
  text-align: center;
  width: 50%;
  margin: 20px auto;
  padding: .8em 1.2em;
  background: #fff;
  color: #b87575;
  border: 1px solid #b87575;
  border-radius: 50px;
  text-decoration: none;
  font-weight: 700;
  transition: background-color .4s ease, 
            border-color .4s ease, 
            color .4s ease, 
            filter .4s ease;
}
.btn:hover{ 
  filter:brightness(1.05); 
  background: #b87575;
  border: 1px solid #b87575;
  color: #fff;
}
.btn:focus-visible{ 
  outline:2px solid rgba(204,84,84,.45); 
  outline-offset:2px; 
}
/* 症例画像 */
.case_flex {
  display: flex;
  justify-content: center;
  gap: 13px;
  padding: 20px;
}
.case_flex img {
  width: 40%;
}
/* テーブルCSS */
.case-table {
  width: 90%;
  max-width: 800px;
  margin: 40px auto;
  border-collapse: collapse;
  font-family: "Yu Gothic", sans-serif;
  font-size: 16px;
  background-color: #fff0f4; /* 優しいピンクベース */
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(255, 192, 203, 0.2);
}

.case-table th,
.case-table td {
  border: 1px solid #f2c6cc;
  padding: 14px 18px;
  text-align: left;
  vertical-align: top;
}

.case-table th {
  background-color: #fbd3db; /* ピンク見出し */
  color: #8b4051;
  font-weight: bold;
  width: 30%;
}

.case-table td {
  color: #333;
  background-color: #fff7f9;
}
/* ----------------------------------------------------
スマホ用（〜767px）
---------------------------------------------------- */
@media screen and (max-width: 768px) {
  .flex_box2 {
    flex-direction: column;
  }
  .btn {
    width: 90%;
  }
.case_flex img {
    width: 50%;
}
.case-table {
    width: 100%;
}
}

/* -------------------------- 治療の流れ -------------------------- */
.flow_box {
  margin: 20px 0 75px;
  max-width: 1400px;
  margin: auto;
  font-family: 'Noto Serif JP', serif;
  color: #5b4633;
}


.flow_box h3 {
  color: #9a845c;
  border-bottom: 1px solid #d2c3a1;
  font-size: 1.7rem;
  margin-bottom: 20px;
  padding: 10px 0;
}
/* ul.implant_flow_vertical.com_btm_100 {
    padding-bottom: 60px;
} */
.implant_flow_vertical > li {
	position: relative;
	box-sizing: border-box;
	width: 100%;
	padding-left: 100px;
	padding-bottom: 60px;
}
.implant_flow_vertical li:last-of-type {
	padding-bottom: 0;
}
.implant_flow_vertical > li::before,
.implant_flow_vertical > li::after {
	content: "";
	position: absolute;
	top: 0;
	font-family: quiche-stencil, sans-serif;
	font-weight: 100;
	font-style: normal;
	text-align: center;
	color: #a14242;
	font-size: 220%;
	line-height: 1.0em;
}
.implant_flow_vertical > li::before {
	z-index: 1;
	content: "1";
	width: 1.5em;
	line-height: 1.5em;
	background: #fff;
	border: 1px solid #a14242;
	border-radius: 50%;
	left: 0;
}
.implant_flow_vertical > li:nth-child(2)::before { content: "2"; }
.implant_flow_vertical > li:nth-child(3)::before { content: "3"; }
.implant_flow_vertical > li:nth-child(4)::before { content: "4"; }
.implant_flow_vertical > li:nth-child(5)::before { content: "5"; }
.implant_flow_vertical > li:nth-child(6)::before { content: "6"; }
.implant_flow_vertical > li:nth-child(7)::before { content: "7"; }
.implant_flow_vertical > li:nth-child(8)::before { content: "8"; }
.implant_flow_vertical > li:nth-child(9)::before { content: "9"; }
.implant_flow_vertical > li:nth-child(10)::before { content: "10"; }
.implant_flow_vertical > li:nth-child(11)::before { content: "11"; }
.implant_flow_vertical > li:nth-child(12)::before { content: "12"; }
.implant_flow_vertical > li::after {
	z-index: 0;
	width: 1px;
	height: 100%;
  left: 0.75em;
	background-color: #a14242;
}
.implant_flow_vertical li:last-of-type::after {
	display: none;
}
.implant_flow_vertical .img_r {
	width: 35.5%;
	max-width: 394px;
  flex: 2;
}

.implant_flow_vertical .implant_style1 > dt {
  font-size: 1.5rem;
	padding-top: 0.6em;
	color: #d76c94;
}
.implant_flt.clearfix {
  display: flex;
    /* flex-direction: row-reverse; */
    align-items: flex-start;
    gap: 20px;
    background: #f9e5ee3b;
    padding: 30px;
}

.implant_flow_vertical .img_r {
  width: 35.5%;
  max-width: 394px;
}

.implant_flow_vertical .txt_l {
  padding: 0 15px;
  flex: 3;
}

.flow_box .grid_box1{
  flex-direction: row-reverse; 
  box-shadow:none;
  background: none;
  padding: 20px 0;
}
.implant_flow_vertical {
  flex: 3;
}
@media only screen and (max-width: 767px) {
  .flow_box {
    padding: 0 10px;
  }
	.implant_flow_vertical > li {
		padding-left: 15%;
		padding-bottom: 10%;
	}
	.implant_flow_vertical > li::before,
	.implant_flow_vertical > li::after {
		font-size: 160%;
	}
	.implant_flow_vertical .img_r {
		width: 75%;
		margin-bottom: 0.5em;
	}
	.implant_flow_vertical .txt_l {
		width: 100%;
	}
	.implant_flow_vertical .implant_style1 > dt {
		padding-top: 0;
		margin-bottom: 0.2em;
    font-size: 1.2rem;
	}
  .implant_flow_vertical .implant_style1 > dd {
    font-size: 0.85rem;
  }
  .implant_flt.clearfix {
    flex-direction: column; /* スマホでは縦並び */
  }
  .implant_flow_vertical .img_r {
    width: 100%;
    margin-bottom: 0.5em;
  }
  .implant_flow_vertical .txt_l {
    width: 100%;
    padding: 0;
  }
	.retina {
		width:100%;
		height:100%;
	}
}
/* -------------------------- よくある質問 -------------------------- */
/* ===== ピンク系テーマ（数値だけ変えれば配色一括変更） ===== */
:root{
  --pink-50:  #fff6f9;
  --pink-100: #ffe9f1;
  --pink-200: #ffd1e1;
  --pink-400: #ff9cbc;
  --pink-500: #ff6f9b;
  --pink-700: #cc3f71;
  --ink:      #3a2d31;
  --muted:    #7d5d68;
  --border:   #ffdbe7;
  --radius:   12px;   /* 角丸不要なら 0 に */
  --shadow:   0 10px 30px rgba(255,111,155,.15);
}

/* ===== ベース ===== */
.faq{
  background: linear-gradient(180deg, var(--pink-50), #fff);
  color: var(--ink);
  padding: clamp(32px, 6vw, 72px) 16px;
}

/* .faq__container{
  max-width: 960px;
  margin: 0 auto;
} */

.faq__header{
  text-align: center;
  margin-bottom: clamp(24px, 4vw, 48px);
}

.faq__eyebrow{
  display: inline-block;
  font-weight: 700;
  letter-spacing: .12em;
  color: var(--pink-700);
  background: var(--pink-100);
  padding: 6px 12px;
  border: 1px solid var(--border);
  border-radius: 999px;
}

.faq__title{
  font-size: clamp(22px, 4vw, 32px);
  margin: 12px 0 8px;
  line-height: 1.25;
}

.faq__lead{
  color: var(--muted);
  font-size: clamp(14px, 2.4vw, 16px);
}

/* ===== リスト ===== */
.faq__list{
  display: grid;
  gap: clamp(12px, 2.2vw, 16px);
}

/* details 要素（カード） */
.faq__item{
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  overflow: clip;
}

/* summary（見出しの行） */
.faq__summary{
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 12px;
  padding: clamp(14px, 2.6vw, 18px) clamp(16px, 3vw, 24px);
  cursor: pointer;
  list-style: none;
  position: relative;
}

.faq__summary::-webkit-details-marker{ display: none; } /* Safari, Chrome */
.faq__summary::marker{ content: ""; } /* Firefox */

/* Qバッジ */
.faq__q{
    display: inline-grid;
    place-items: center;
    width: 40px;
    height: 40px;
    font-weight: 700;
    font-size: 24px;
    color: #fff;
    background: var(--pink-500);
    border-radius: 50%;
    transform: translateY(-1px);
}

/* 質問テキスト */
.faq__question{
  font-weight: 700;
  font-size: clamp(15px, 2.6vw, 17px);
  line-height: 1.5;
}

/* 右側のアイコン（＋／−風のシェブロン） */
.faq__summary::after{
  content: "";
  width: 10px; height: 10px;
  border-right: 2px solid var(--pink-700);
  border-bottom: 2px solid var(--pink-700);
  transform: rotate(-45deg);
  transition: transform .2s ease;
}

/* 開いたときに上向きへ */
.faq__item[open] .faq__summary::after{
  transform: rotate(135deg);
}

/* キーボード・ホバー */
/* .faq__summary:hover{
  background: var(--pink-100);
} */
.faq__summary:focus, .faq__summary:focus-visible{
  outline: 3px solid color-mix(in srgb, var(--pink-500) 30%, transparent);
  outline-offset: 2px;
  border-radius: var(--radius);
}

/* 答え部分 */
.faq__answer{
  padding: 0 clamp(16px, 3vw, 24px) clamp(16px, 3vw, 24px);
  border-top: 1px dashed var(--border);
  background: #fff;
}
.faq__answer p{
  margin-top: clamp(12px, 2.2vw, 16px);
  line-height: 1.8;
  font-size: clamp(14px, 2.4vw, 16px);
}

/* 強調 */
.hl{
  background: linear-gradient(transparent 65%, color-mix(in srgb, var(--pink-200) 70%, #fff 30%) 0);
  padding: 0 .15em;
}

/* メディアクエリ（レイアウト微調整） */
@media (min-width: 720px){
  .faq__list{
    gap: 18px;
  }
}

/* 動きが苦手なユーザー配慮 */
@media (prefers-reduced-motion: reduce){
  .faq__summary::after{ transition: none; }
}
/* ------------------ 審美：お悩みカード ------------------ */
.aesth-worries__grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  margin-top: 10px;
}

.aesth-worry{
  background: #fff;
  border: 1px solid #f2c6cc;
  border-radius: 14px;
  padding: 18px 18px 16px;
  box-shadow: 0 8px 18px rgba(255, 192, 203, 0.18);
}

.aesth-worry__head{
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 10px;
}

.aesth-worry__icon{
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: #fbd3db;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  color: #8b4051; /* SVGの線色にも反映されます */
}

.aesth-worry__svg{
  width: 24px;
  height: 24px;
  fill: currentColor;
}

.aesth-worry__title{
  font-size: 1.15rem;
  color: #644a2f;
  margin: 0;
  line-height: 1.4;
  font-weight: 700;
}

.aesth-worry__text{
  margin: 0;
  color: #5b4633;
  line-height: 1.9;
  font-size: 1rem;
}

/* スマホは1列に */
@media screen and (max-width: 768px){
  .aesth-worries__grid{
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .aesth-worry{
    padding: 16px 14px;
  }
  .aesth-worry__title{
    font-size: 1.05rem;
  }
  .aesth-worry__text{
    font-size: 0.95rem;
  }
}
/* ================== 料金表（price-table） ================== */
.sr-only{
  position:absolute;
  width:1px;height:1px;
  padding:0;margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

.price-table{
  width: 100%;
/*   max-width: 900px; */
  margin: 30px auto 0;
  border-collapse: separate;
  border-spacing: 0;
  background: linear-gradient(180deg, #fff6f9, #fff);
  border: 1px solid var(--border, #f2c6cc);
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 10px 26px rgba(255, 111, 155, .12);
}

.price-table thead th{
  background: #fbd3db;
  color: #8b4051;
  text-align: left;
  padding: 14px 18px;
  font-weight: 700;
  border-bottom: 1px solid #f2c6cc;
}

.price-table tbody th,
.price-table tbody td{
  padding: 14px 18px;
  border-bottom: 1px solid #f2c6cc;
  vertical-align: top;
  line-height: 1.7;
  text-align: left;
}

.price-table tbody tr:last-child th,
.price-table tbody tr:last-child td{
  border-bottom: 0;
}

.price-table tbody tr:nth-child(even){
  background: #fff7f9;
}

.price-table__price{
  text-align: right;
  white-space: nowrap;
  font-weight: 800;
  color: #8b4051;
}

/* スマホ：カード化して見やすく */
@media screen and (max-width: 768px){
  .price-table{
    border-radius: 0;
    border: none;
    box-shadow: none;
    background: transparent;
  }

  .price-table thead{ display:none; }

  .price-table tbody tr{
    display:block;
    background:#fff;
    border: 1px solid var(--border, #f2c6cc);
    border-radius: 14px;
    box-shadow: 0 10px 22px rgba(255, 111, 155, .10);
    padding: 14px;
    margin: 0 0 12px;
  }

  .price-table tbody th,
  .price-table tbody td{
    display:block;
    padding: 0;
    border: 0;
  }

  .price-table tbody th{
    font-weight: 800;
    color: #644a2f;
    margin-bottom: 8px;
  }

  .price-table__price{
    text-align: left;
    font-size: 1.1rem;
  }

  .price-table__price::before{
    content: attr(data-label) "：";
    font-weight: 700;
    color: #7d5d68;
    margin-right: .2em;
  }
}
/* ================== 求人ページ（recruit）専用 ================== */
div.recruit section{
  padding: 10px;
}
.right {
	text-align: right;
	margin:30px 0;
}
.center img.centerimg{
  text-align: center;
  margin: auto;
  width: 50%;
}
.recruit-kv {
  background: linear-gradient(180deg, #fff6f9, #fff);
  border: 1px solid #f2c6cc;
  border-radius: 16px;
  padding: 18px;
  box-shadow: 0 10px 26px rgba(255, 111, 155, .10);
}
.recruit-kv__title{
  font-family: "Noto Serif JP", serif;
  color: #644A2F;
  font-size: 1.4rem;
  margin: 0 0 10px;
}
.recruit-kv__lead{
  margin: 0;
  line-height: 1.9;
  color: #5b4633;
}
.recruit-badges{
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-top: 14px;
}
.recruit-badge{
  background: #fff;
  border: 1px solid #f2c6cc;
  border-radius: 14px;
  padding: 12px;
}
.recruit-badge__k{
  font-size: .9rem;
  color: #7d5d68;
  margin: 0 0 6px;
}
.recruit-badge__v{
  margin: 0;
  font-weight: 800;
  color: #8b4051;
}
@media screen and (max-width: 768px){
  .recruit-badges{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.center img.centerimg{
		width: 100%;
	}
}

/* メリットカード */
.recruit-cards{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-top: 10px;
}
.recruit-card{
  background: #fff;
  border: 1px solid #f2c6cc;
  border-radius: 14px;
  padding: 16px;
  box-shadow: 0 8px 18px rgba(255, 192, 203, 0.12);
}
.recruit-card h4{
  margin: 0 0 8px;
  color: #644A2F;
  font-size: 1.05rem;
}
.recruit-card p{
  margin: 0;
  color: #5b4633;
  line-height: 1.9;
  font-size: .95rem;
}
@media screen and (max-width: 768px){
  .recruit-cards{ grid-template-columns: 1fr; }
}

/* 募集要項テーブル（求人用） */
.recruit-table{
  width: 100%;
  max-width: 900px;
  margin: 18px auto 10px;
  border-collapse: separate;
  border-spacing: 0;
  background: #fff;
  border: 1px solid #f2c6cc;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 10px 26px rgba(255, 111, 155, .10);
  font-family: "Yu Gothic", sans-serif;
}
.recruit-table th,
.recruit-table td{
  padding: 14px 16px;
  border-bottom: 1px solid #f2c6cc;
  vertical-align: top;
  line-height: 1.8;
}
.recruit-table th{
  width: 28%;
  background: #fff0f4;
  color: #644A2F;
  font-weight: 800;
}
.recruit-table td{
  color: #3a2d31;
  background: #fff;
}
.recruit-table tr:last-child th,
.recruit-table tr:last-child td{ border-bottom: 0; }

@media screen and (max-width: 768px){
  .recruit-table{
    border-radius: 0;
    border: none;
    box-shadow: none;
  }
  .recruit-table th{ width: 34%; }
}
/* 求人：ポイントカードのアイコン */
.recruit-card__head{
  display:flex;
  align-items: center;
  gap:10px;
  margin-bottom: 8px;
}

.recruit-card__icon{
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: #fbd3db;
  border: 1px solid #f2c6cc;
  display: inline-flex;
  align-items:center;
  justify-content:center;
  color: #8b4051;
  flex: 0 0 auto;
  margin-top: 2px;
}

.recruit-card__svg{
  width: 22px;
  height: 22px;
  fill: currentColor;
}
/* 求人：SVGアイコンが崩れるのを防ぐ */
.recruit-card__svg{
  display:block;
}
.recruit-card__svg *{
  fill: none !important;
  stroke: currentColor !important;
  stroke-width: 2 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
}
@media screen and (max-width: 768px){
  .recruit-kv {
    padding:10px;
  }
  .recruit-kv__title {
    font-size:1.2rem;
  }
  .recruit-card {
  padding: 10px;
}
  .recruit-card__icon {
    width: 30px;
    height: 30px;
}
}

/* ==============================
  入れ歯ページ専用
============================== */
#denture p,
#denture td,
#denture th { 
	color: #5b4633;
}
	
#denture-intro,
#denture-worries,
#denture-cause,
#super-denture,
#denture-comparison,
#denture_implant,
#denture-flow,
#denture-price {
  font-family: "Noto Serif JP", serif;
	
}
.denture-price {
	padding:50px 0;
}



/* ==============================
  入れ歯ページ：スーパーデンチャー
============================== */

.super-denture {
  position: relative;
  overflow: hidden;
  padding-bottom: 80px;
  background:
    radial-gradient(circle at 10% 20%, rgba(245, 212, 209, 0.38), transparent 26%),
    radial-gradient(circle at 92% 76%, rgba(255, 236, 241, 0.9), transparent 30%),
    linear-gradient(180deg, #fff 0%, #fff9fb 52%, #fff 100%);
}

.super-denture::before {
  content: "super denture";
  position: absolute;
  right: -30px;
  top: 130px;
  color: rgba(216, 109, 145, 0.055);
  font-family: "Times New Roman", serif;
  font-size: 130px;
  line-height: 1;
  letter-spacing: 0.08em;
  pointer-events: none;
}

.denture-super-visual {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 0.92fr 1.08fr;
  gap: 42px;
  align-items: center;
  margin-bottom: 38px;
  padding: 42px;
  background: rgba(255, 255, 255, 0.88);
  border: 1px solid rgba(242, 198, 204, 0.9);
  box-shadow: 0 18px 42px rgba(177, 115, 124, 0.11);
}

.denture-super-visual__image {
  position: relative;
  min-height: 360px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 34px;
  background:
    radial-gradient(circle at center, #fff 0%, #fff 54%, #fff6f9 100%);
  border: 1px solid rgba(210, 150, 80, 0.34);
  /* border-radius: 50% 50% 48% 52% / 48% 52% 50% 50%; */
  box-shadow:
    0 16px 38px rgba(177, 115, 124, 0.13),
    inset 0 0 0 12px rgba(255, 248, 250, 0.9);
}

.denture-super-visual__image::before {
  content: "";
  position: absolute;
  inset: -14px;
  border: 1px dashed rgba(210, 150, 80, 0.36);
  /* border-radius: 50% 50% 48% 52% / 48% 52% 50% 50%; */
  pointer-events: none;
}

.denture-super-visual__image img {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 430px;
  height: auto;
  display: block;
  object-fit: contain;
  filter: drop-shadow(0 18px 22px rgba(130, 72, 82, 0.16));
}

.denture-super-visual__label {
  position: absolute;
  left: 22px;
  top: 22px;
  z-index: 2;
  padding: 7px 14px;
  color: #d76c94;
  background: rgba(255, 255, 255, 0.88);
  border: 1px solid rgba(216, 109, 145, 0.3);
  border-radius: 999px;
  font-size: 0.78rem;
  letter-spacing: 0.12em;
  font-family: "Times New Roman", serif;
}


.denture-super-visual__sub {
  display: inline-block;
  margin: 0 0 16px;
  padding: 7px 18px;
  color: #8b4051;
  background: #fff0f4;
  border: 1px solid #f2c6cc;
  border-radius: 999px;
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1.5;
}

.denture-super-visual__text h3 {
  margin: 0 0 18px;
  color: #644a2f;
  font-size: 1.5rem;
  line-height: 1.65;
  letter-spacing: 0.06em;
  font-weight: 700;
}

.denture-super-visual__text p {
  margin: 0;
  line-height: 2;
}

.denture-super-visual__text p + p {
  margin-top: 12px;
}

.denture-super-visual__price {
  margin-top: 22px;
  padding: 18px 22px;
  background: linear-gradient(135deg, #fff8fb, #fff);
  border-left: 4px solid #d76c94;
  box-shadow: 0 10px 24px rgba(177, 115, 124, 0.09);
}

.denture-super-visual__price span {
  display: block;
  margin-bottom: 4px;
  color: #8b4051;
  font-size: 0.9rem;
  font-weight: 700;
}

.denture-super-visual__price strong {
  display: block;
  color: #644a2f;
  font-size: 1.22rem;
  line-height: 1.6;
}

.denture-super-box {
  position: relative;
  z-index: 1;
  /* max-width: 980px; */
  margin: 0 auto 34px;
  padding: 30px 36px;
  background: linear-gradient(180deg, #fff6f9, #fff);
  border: 1px solid #f2c6cc;
  border-radius: 18px;
  box-shadow: 0 12px 30px rgba(255, 111, 155, 0.12);
  color: #5b4633;
}

.denture-super-box__lead {
  margin-bottom: 12px;
  color: #644a2f;
  font-size: 1.18rem;
  font-weight: 700;
  line-height: 1.8;
}

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

.denture-feature-card {
  position: relative;
  min-height: 220px;
  padding: 28px 22px 24px;
  background: #fff;
  border: 1px solid #f2c6cc;
  border-radius: 16px;
  box-shadow: 0 8px 20px rgba(255, 192, 203, 0.14);
  overflow: hidden;
}

.denture-feature-card::before {
  content: "";
  position: absolute;
  right: -34px;
  top: -34px;
  width: 105px;
  height: 105px;
  background: rgba(251, 211, 219, 0.38);
  border-radius: 50%;
}

.denture-feature-card__num {
  position: relative;
  z-index: 1;
  display: inline-block;
  margin-bottom: 12px;
  color: #d76c94;
  font-size: 2.1rem;
  font-family: "Times New Roman", serif;
  line-height: 1;
}

.denture-feature-card h3 {
  position: relative;
  z-index: 1;
  margin: 0 0 12px;
  color: #644a2f;
  font-size: 1.15rem;
  line-height: 1.5;
}

.denture-feature-card p {
  position: relative;
  z-index: 1;
  margin: 0;
  color: #5b4633;
  font-size: 0.95rem;
  line-height: 1.9;
}

/* スマホ */
@media screen and (max-width: 768px) {
  .super-denture {
    padding-bottom: 46px;
  }

  .super-denture::before {
    right: -20px;
    top: 90px;
    font-size: 58px;
  }

  .denture-super-visual {
    grid-template-columns: 1fr;
    gap: 26px;
    padding: 24px 16px;
    margin-bottom: 26px;
  }

  .denture-super-visual__image {
    min-height: 260px;
    padding: 26px;
  }

  .denture-super-visual__image img {
    max-width: 300px;
  }

  .denture-super-visual__label {
    left: 14px;
    top: 14px;
    font-size: 0.68rem;
  }

  .denture-super-visual__text h3 {
    font-size: 1.24rem;
    line-height: 1.7;
  }

  .denture-super-visual__sub {
    font-size: 0.84rem;
  }

  .denture-super-visual__text p {
    font-size: 0.92rem;
    line-height: 1.9;
  }

  .denture-super-visual__price {
    padding: 16px 18px;
  }

  .denture-super-visual__price strong {
    font-size: 1rem;
  }

  .denture-super-box {
    padding: 22px 16px;
    border-radius: 14px;
  }

  .denture-super-box__lead {
    font-size: 1.02rem;
  }

  .denture-feature-grid {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .denture-feature-card {
    min-height: auto;
    padding: 22px 16px;
  }

  .denture-feature-card__num {
    font-size: 1.7rem;
  }
}
/* 比較表 */
.denture-table-wrap {
  overflow-x: auto;
}

.denture-compare-table {
  width: 100%;
  min-width: 760px;
  border-collapse: separate;
  border-spacing: 0;
  background: #fff;
  border: 1px solid #f2c6cc;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 10px 26px rgba(255, 111, 155, 0.12);
}

.denture-compare-table th,
.denture-compare-table td {
  padding: 16px 18px;
  border-bottom: 1px solid #f2c6cc;
  border-right: 1px solid #f2c6cc;
  text-align: left;
  line-height: 1.7;
  vertical-align: top;
}

.denture-compare-table thead th {
  background: #fbd3db;
  color: #8b4051;
  font-weight: 700;
}

.denture-compare-table tbody th {
  width: 18%;
  color: #644a2f;
  background: #fff7f9;
  font-weight: 700;
}

.denture-compare-table td {
	color: #5b4633;
}

.denture-compare-table td:last-child {
  background: #fffafc;
  color: #8b4051;
  font-weight: 700;
}

.denture-compare-table tr:last-child th,
.denture-compare-table tr:last-child td {
  border-bottom: 0;
}

.denture-compare-table th:last-child,
.denture-compare-table td:last-child {
  border-right: 0;
}

/* 料金補足 */
.denture-price-note {
  max-width: 900px;
  margin: 28px auto 0;
  padding: 22px 26px;
  background: #fff7f9;
  border-left: 4px solid #d76c94;
  color: #5b4633;
}

.denture-price-note p + p {
  margin-top: 10px;
}

/* CTAを途中に入れたい場合 */
.denture-cta {
  margin: 40px auto;
  padding: 30px 20px;
  text-align: center;
  background: linear-gradient(135deg, #fff6f9, #fff);
  border: 1px solid #f2c6cc;
  border-radius: 18px;
}

.denture-cta__text {
  margin-bottom: 16px;
  color: #644a2f;
  font-size: 1.25rem;
  font-weight: 700;
}

/* スマホ */
@media screen and (max-width: 768px) {
  .denture-worries__grid,
  .denture-feature-grid {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .denture-worry {
    padding: 18px 16px;
  }

  .denture-super-box {
    padding: 22px 16px;
    border-radius: 14px;
  }

  .denture-super-box__lead {
    font-size: 1.05rem;
  }

  .denture-feature-card {
    min-height: auto;
    padding: 22px 16px;
  }

  .denture-feature-card__num {
    font-size: 1.7rem;
  }

  /* 比較表：横スクロールをやめて縦積みカードに */
  .denture-table-wrap {
    overflow-x: visible;
  }

  .denture-compare-table {
    min-width: 0;
    border: none;
    border-radius: 0;
    box-shadow: none;
    background: transparent;
  }

  .denture-compare-table thead {
    display: none;
  }

  .denture-compare-table tbody tr {
    display: block;
    background: #fff;
    border: 1px solid #f2c6cc;
    border-radius: 14px;
    box-shadow: 0 8px 18px rgba(255, 192, 203, 0.14);
    margin-bottom: 14px;
    overflow: hidden;
  }

  .denture-compare-table tbody th {
    display: block;
    width: 100%;
    padding: 10px 16px;
    background: #fbd3db;
    color: #8b4051;
    font-size: 1rem;
    font-weight: 700;
    border-bottom: 1px solid #f2c6cc;
    border-right: none;
  }

  .denture-compare-table tbody td {
    display: block;
    width: 100%;
    padding: 10px 16px 10px 16px;
    border-bottom: 1px dashed #f2c6cc;
    border-right: none;
  }

  .denture-compare-table tbody tr:last-child td:last-child {
    border-bottom: none;
  }

  .denture-compare-table tbody td::before {
    content: attr(data-label);
    display: block;
    font-size: 0.75rem;
    font-weight: 700;
    color: #8b4051;
    margin-bottom: 4px;
    letter-spacing: 0.05em;
  }

  .denture-compare-table tbody td:last-child {
    background: #fffafc;
    border-bottom: none;
  }

  .denture-compare-table tr:last-child th,
  .denture-compare-table tr:last-child td {
    border-bottom: none;
  }

  .denture-price-note {
    padding: 18px 16px;
  }
}
/* ==============================
  入れ歯ページ：合わなくなる理由
============================== */

.denture-cause {
  position: relative;
  overflow: hidden;
  padding-bottom: 76px;
  background:
    linear-gradient(90deg, rgba(255,255,255,1) 0%, rgba(255,249,251,0.92) 50%, rgba(255,255,255,1) 100%);
}

.denture-cause::before {
  content: "";
  position: absolute;
  left: -180px;
  top: 260px;
  width: 420px;
  height: 420px;
  background: radial-gradient(circle, rgba(245, 212, 209, 0.48), transparent 70%);
  border-radius: 50%;
  pointer-events: none;
}

.denture-cause::after {
  content: "cause";
  position: absolute;
  right: -10px;
  bottom: 70px;
  color: rgba(216, 109, 145, 0.055);
  font-family: "Times New Roman", serif;
  font-size: 150px;
  letter-spacing: 0.08em;
  line-height: 1;
  pointer-events: none;
}

.denture-cause__intro {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1.35fr 0.65fr;
  gap: 36px;
  align-items: center;
  margin-bottom: 42px;
  padding: 42px 46px;
  background: rgba(255, 255, 255, 0.86);
  border: 1px solid rgba(242, 198, 204, 0.9);
  box-shadow: 0 18px 42px rgba(177, 115, 124, 0.1);
}

.denture-cause__text p {
  color: #5b4633;
  line-height: 2;
}

.denture-cause__text p + p {
  margin-top: 14px;
}

.denture-cause__catch {
  margin-bottom: 18px;
  color: #644a2f !important;
  font-size: 1.55rem;
  line-height: 1.7 !important;
  letter-spacing: 0.08em;
  font-weight: 700;
}

.denture-cause__visual {
  display: flex;
  justify-content: center;
  align-items: center;
}

.denture-cause__circle {
  position: relative;
  width: 230px;
  height: 230px;
  display: grid;
  place-items: center;
  background:
    radial-gradient(circle at center, #fff 0%, #fff 55%, #fff6f9 100%);
  border: 1px solid rgba(216, 109, 145, 0.35);
  border-radius: 50%;
  box-shadow: 0 14px 34px rgba(216, 109, 145, 0.13);
}

.denture-cause__circle::before,
.denture-cause__circle::after {
  content: "";
  position: absolute;
  border-radius: 50%;
  border: 1px solid rgba(210, 150, 80, 0.32);
}

.denture-cause__circle::before {
  inset: 12px;
}

.denture-cause__circle::after {
  inset: -12px;
  border-style: dashed;
}

.denture-cause__circle span {
  color: #d76c94;
  font-size: 1.25rem;
  line-height: 1.7;
  letter-spacing: 0.08em;
  font-weight: 700;
  text-align: center;
}

.denture-cause__steps {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
  margin-bottom: 44px;
}

.denture-cause__step {
  position: relative;
  padding: 32px 24px 28px;
  background: #fff;
  border: 1px solid rgba(242, 198, 204, 0.95);
  box-shadow: 0 12px 30px rgba(177, 115, 124, 0.1);
  overflow: hidden;
}

.denture-cause__step::after {
  content: "";
  position: absolute;
  left: 24px;
  bottom: 0;
  width: calc(100% - 48px);
  height: 3px;
  background: linear-gradient(90deg, #d76c94, #e9b86a);
}

.denture-cause__step-num {
  position: absolute;
  right: 18px;
  top: 14px;
  color: rgba(216, 109, 145, 0.18);
  font-family: "Times New Roman", serif;
  font-size: 3.2rem;
  line-height: 1;
  font-weight: 700;
}

.denture-cause__step h3 {
  position: relative;
  z-index: 1;
  margin: 0 0 12px;
  color: #644a2f;
  font-size: 1.18rem;
  line-height: 1.55;
  font-weight: 700;
}

.denture-cause__step p {
  position: relative;
  z-index: 1;
  margin: 0;
  color: #5b4633;
  font-size: 0.96rem;
  line-height: 1.9;
}

.denture-cause__point {
  position: relative;
  z-index: 1;
  padding: 34px 40px;
  background:
    linear-gradient(135deg, rgba(255, 246, 249, 0.96), rgba(255, 255, 255, 0.96));
  border-left: 5px solid #d76c94;
  box-shadow: 0 14px 32px rgba(177, 115, 124, 0.1);
}

.denture-cause__point h3 {
  margin: 0 0 14px;
  color: #644a2f;
  font-size: 1.35rem;
  line-height: 1.6;
  font-weight: 700;
}

.denture-cause__point p {
  margin: 0;
  color: #5b4633;
  line-height: 2;
}

.denture-cause__point p + p {
  margin-top: 12px;
}
/* ==============================
  合わなくなる理由：Font Awesomeアイコン
============================== */

.denture-cause__icon {
  position: relative;
  z-index: 1;
  width: 64px;
  height: 64px;
  margin-bottom: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #c68b43;
  background:
    radial-gradient(circle at center, #fff 0%, #fff 55%, #fff8f1 100%);
  border: 1px solid rgba(210, 150, 80, 0.42);
  border-radius: 50%;
  box-shadow:
    0 8px 20px rgba(198, 139, 67, 0.16),
    inset 0 0 0 6px rgba(255, 246, 238, 0.9);
}

.denture-cause__icon::before {
  content: "";
  position: absolute;
  inset: -7px;
  border: 1px dashed rgba(210, 150, 80, 0.38);
  border-radius: 50%;
}

.denture-cause__icon i {
  position: relative;
  z-index: 1;
  font-size: 28px;
  line-height: 1;
  color: #c68b43;
}

/* カードごとに少しだけ色味を変える */
.denture-cause__step:nth-child(1) .denture-cause__icon {
  color: #c68b43;
}

.denture-cause__step:nth-child(2) .denture-cause__icon {
  color: #b58a55;
}

.denture-cause__step:nth-child(3) .denture-cause__icon {
  color: #d76c94;
  border-color: rgba(216, 109, 145, 0.36);
  box-shadow:
    0 8px 20px rgba(216, 109, 145, 0.14),
    inset 0 0 0 6px rgba(255, 246, 249, 0.95);
}

.denture-cause__step:nth-child(3) .denture-cause__icon::before {
  border-color: rgba(216, 109, 145, 0.32);
}

/* .denture-cause__step:nth-child(3) .denture-cause__icon i {
  color: #d76c94;
} */
/* スマホ */
@media screen and (max-width: 768px) {
  .denture-cause {
    padding-bottom: 44px;
  }

  .denture-cause::after {
    right: -10px;
    bottom: 40px;
    font-size: 74px;
  }

  .denture-cause__intro {
    grid-template-columns: 1fr;
    gap: 24px;
    padding: 24px 18px;
    margin-bottom: 28px;
  }

  .denture-cause__catch {
    font-size: 1.18rem;
    line-height: 1.75 !important;
  }

  .denture-cause__text p {
    font-size: 0.94rem;
    line-height: 1.9;
  }

  .denture-cause__circle {
    width: 190px;
    height: 190px;
  }

  .denture-cause__circle span {
    font-size: 1.05rem;
  }

  .denture-cause__steps {
    grid-template-columns: 1fr;
    gap: 14px;
    margin-bottom: 30px;
  }

  .denture-cause__step {
    padding: 24px 18px 24px 92px;
  }


  .denture-cause__step-num {
    right: 14px;
    top: 10px;
    font-size: 2.5rem;
  }

  .denture-cause__step h3 {
    padding-right: 38px;
    font-size: 1.05rem;
  }

  .denture-cause__step p {
    font-size: 0.9rem;
  }

  .denture-cause__point {
    padding: 24px 18px;
  }

  .denture-cause__point h3 {
    font-size: 1.12rem;
  }

  .denture-cause__point p {
    font-size: 0.92rem;
    line-height: 1.9;
  }
  .denture-cause__icon {
    position: absolute;
    left: 18px;
    top: 26px;
    width: 54px;
    height: 54px;
    margin-bottom: 0;
  }

  .denture-cause__icon::before {
    inset: -5px;
  }

  .denture-cause__icon i {
    font-size: 23px;
  }
}
/* ==============================
  入れ歯ページ：お悩みブロック
============================== */

.denture-worries {
  position: relative;
  overflow: hidden;
  padding-bottom: 70px;
  background:
    radial-gradient(circle at 8% 18%, rgba(245, 212, 209, 0.36), transparent 24%),
    radial-gradient(circle at 92% 80%, rgba(255, 236, 241, 0.9), transparent 28%),
    linear-gradient(180deg, #fff 0%, #fff9fb 52%, #fff 100%);
}

.denture-worries__leadbox {
  position: relative;
  max-width: 920px;
  margin: -10px auto 42px;
  padding: 34px 44px;
  text-align: center;
  background: rgba(255, 255, 255, 0.82);
  border: 1px solid rgba(242, 198, 204, 0.85);
  box-shadow: 0 18px 42px rgba(216, 109, 145, 0.12);
}

.denture-worries__leadbox::before,
.denture-worries__leadbox::after {
  content: "";
  position: absolute;
  width: 54px;
  height: 54px;
  border-color: #d9a05b;
  border-style: solid;
}

.denture-worries__leadbox::before {
  top: -8px;
  left: -8px;
  border-width: 1px 0 0 1px;
}

.denture-worries__leadbox::after {
  right: -8px;
  bottom: -8px;
  border-width: 0 1px 1px 0;
}

.denture-worries__catch {
  margin: 0 0 14px;
  color: #644a2f;
  font-size: 1.65rem;
  line-height: 1.7;
  letter-spacing: 0.08em;
  font-weight: 600;
}

.denture-worries__lead {
  margin: 0;
  color: #5b4633;
  font-size: 1rem;
  line-height: 2;
}

.denture-worries__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
}

.denture-worry {
  position: relative;
  min-height: 290px;
  padding: 30px 24px 26px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(255, 249, 251, 0.98));
  border: 1px solid rgba(242, 198, 204, 0.95);
  box-shadow: 0 14px 34px rgba(177, 115, 124, 0.11);
  color: #5b4633;
  overflow: hidden;
  transition: transform 0.35s ease, box-shadow 0.35s ease;
}

.denture-worry::after {
  content: "";
  position: absolute;
  left: 22px;
  bottom: 0;
  width: calc(100% - 44px);
  height: 3px;
  background: linear-gradient(90deg, #d76c94, #e9b86a);
  transform: scaleX(0.42);
  transform-origin: left center;
  transition: transform 0.35s ease;
}

.denture-worry:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 44px rgba(177, 115, 124, 0.18);
}

.denture-worry:hover::after {
  transform: scaleX(1);
}

.denture-worry__num {
  position: absolute;
  right: 18px;
  top: 12px;
  color: rgba(216, 109, 145, 0.18);
  font-family: "Times New Roman", serif;
  font-size: 3.2rem;
  line-height: 1;
  font-weight: 700;
}

.denture-worry__icon {
  position: relative;
  z-index: 1;
  width: 62px;
  height: 62px;
  margin-bottom: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #fff;
  border: 1px solid rgba(210, 150, 80, 0.36);
  border-radius: 50%;
  color: #c68b43;
  box-shadow: 0 8px 20px rgba(198, 139, 67, 0.13);
}

.denture-worry__icon i {
  font-size: 26px;
  line-height: 1;
  color: currentColor;
}

.denture-worry__title {
  position: relative;
  z-index: 1;
  margin: 0 0 12px;
  color: #644a2f;
  font-size: 1.22rem;
  line-height: 1.55;
  font-weight: 700;
}

.denture-worry p {
  position: relative;
  z-index: 1;
  margin: 0;
  color: #5b4633;
  font-size: 0.96rem;
  line-height: 1.9;
}

.denture-worry--accent {
  background:
    linear-gradient(180deg, rgba(255, 248, 250, 0.98), rgba(255, 255, 255, 0.98));
  border-color: rgba(216, 109, 145, 0.42);
}

.denture-worry--accent .denture-worry__icon {
  color: #d76c94;
  border-color: rgba(216, 109, 145, 0.36);
  box-shadow: 0 8px 20px rgba(216, 109, 145, 0.13);
}

.denture-worries__message {
  max-width: 900px;
  margin: 42px auto 0;
  padding: 24px 28px;
  text-align: center;
  background: linear-gradient(135deg, #fff6f9, #fff);
  border: 1px solid #f2c6cc;
  color: #644a2f;
}

.denture-worries__message p {
  margin: 0;
  font-size: 1.12rem;
  line-height: 1.9;
  font-weight: 600;
}

.denture-worries__message span {
  color: #d76c94;
}

/* ---- お悩みカード：タップ開閉 ---- */

/* PC：常に展開、トグル操作を無効化 */
@media (min-width: 769px) {
  .denture-worry__details > summary {
    list-style: none;
    cursor: default;
    pointer-events: none;
  }
  .denture-worry__details > summary::-webkit-details-marker { display: none; }
  .denture-worry__details > summary::marker { content: ""; }
  /* Brizyがopen属性を除去しても本文を強制表示 */
  .denture-worry__details > p {
    display: block !important;
  }
}

/* モバイル：開閉UI */
@media (max-width: 768px) {
  .denture-worry__details > summary {
    cursor: pointer;
    list-style: none;
    position: relative;
    padding-right: 28px;
  }
  .denture-worry__details > summary::-webkit-details-marker { display: none; }
  .denture-worry__details > summary::marker { content: ""; }
  .denture-worry__details > summary::after {
    content: "";
    position: absolute;
    right: 2px;
    top: 50%;
    width: 8px;
    height: 8px;
    border-right: 2px solid #d76c94;
    border-bottom: 2px solid #d76c94;
    transform: translateY(-70%) rotate(45deg);
    transition: transform 0.2s ease;
  }
  .denture-worry__details[open] > summary::after {
    transform: translateY(-30%) rotate(-135deg);
  }
  .denture-worry__details > p {
    margin-top: 8px;
    padding-top: 8px;
    border-top: 1px dashed rgba(242, 198, 204, 0.8);
  }
}

/* スマホ */
@media screen and (max-width: 768px) {
  .denture-worries {
    padding-bottom: 42px;
  }

  .denture-worries::before {
    right: -20px;
    top: 70px;
    font-size: 72px;
  }

  .denture-worries__leadbox {
    margin: 0 auto 26px;
    padding: 24px 18px;
  }

  .denture-worries__leadbox::before,
  .denture-worries__leadbox::after {
    width: 36px;
    height: 36px;
  }

  .denture-worries__catch {
    font-size: 1.18rem;
    line-height: 1.7;
  }

  .denture-worries__lead {
    font-size: 0.92rem;
    line-height: 1.9;
    text-align: left;
  }

  .denture-worries__grid {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .denture-worry {
    min-height: auto;
	  padding: 15px;
  }

  .denture-worry__icon {
    position: absolute;
    left: 18px;
    top: 24px;
    width: 54px;
    height: 54px;
    margin-bottom: 0;
    display: none;
  }

  .denture-worry__icon i {
    font-size: 22px;
  }

  .denture-worry__num {
	  right: 30px;
    top: 10px;
    font-size: 2.6rem;
  }

  .denture-worry__title {
    padding-right: 44px;
    font-size: 1.05rem;
  }

  .denture-worry p {
    font-size: 0.9rem;
  }

  .denture-worries__message {
    margin-top: 26px;
    padding: 20px 16px;
  }

  .denture-worries__message p {
    font-size: 1rem;
  }
}
section#denture-price,
section#denture-flow{
    padding: 50px 0;
}
