@charset "UTF-8";

:root {
  --text-color: #333;
  --main-color: #2aa5b5; /*メイン色*/
  --sub-color: #4eb9b0; /*サブ色*/
  --bg-color: #e8f7f9; /*サイドメニュー・レイアウト類の背景色*/
  --border-color: #78ced9; /*境界線色*/
  --btn-color: #f5af08; /*ボタンなどの色*/
  --font-type: "Noto Sans JP", sans-serif; /*見出し用フォント*/
  --font-weight: 700; /*見出し用weight*/
  --font-type-en: "al-fresco", sans-serif; /*英語用フォント*/
	
	--font-size-base: 18px;
}

*,
::before,
::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}
/* -----SP----- */
@media screen and (max-width: 640px) {
  html {
    scroll-padding-top: 55px;/*header height*/
  }
}

@media print, screen and (min-width: 641px) {
  body,
  .header,
  .mainvisual,
  .footer,
  h1 {
    min-width: 1240px;
  }
}
@media only screen and (min-width: 641px) and (max-width: 1024px) {
  body,
  .header,
  .mainvisual,
  .footer,
  h1 {
    min-width: 1300px;
  }
}

body {
  font-family: "游ゴシック体", "Yu Gothic", YuGothic, "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  color: var(--text-color);
  font-size: 16px;
  font-weight: 400;
  line-height: 2.1;
  letter-spacing: 0.12em;
  text-align: justify;
	
	font-size: var(--font-size-base);
}
/* -----SP----- */
@media screen and (max-width: 640px) {
  body {
    line-height: 2;
  }
  /* ナビ展開時スクロール禁止処理 */
  body.nav-open {
    overflow: hidden !important;
  }
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: top;
}

iframe {
  max-width: 100%;
  vertical-align: top;
}

a,
a:hover {
  color: var(--btn-color);
  text-decoration: none;
}

/*tel*/
[href^=tel]:hover {
  cursor: default;
}

a[href="tel:準備中"] {
  pointer-events: none;
}

main {
  display: block;
}

::selection,
::-moz-selection {
  background-color: #bfbfbf;
}

@media print {
  html {
    -webkit-print-color-adjust: exact;
  }
  body {
    zoom: 80%;
  }
}

.nav_overlay {
  display: none;
}

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

  common

============================================================================*/
.mt00{margin-top:0!important}.mt30{margin-top:30px!important}.mt40{margin-top:40px!important}.mt50{margin-top:50px!important}.mt60{margin-top:60px!important}.mt70{margin-top:70px!important}.mt80{margin-top:80px!important}.mt90{margin-top:90px!important}.mt100{margin-top:100px!important}.mt110{margin-top:110px!important}.mt120{margin-top:120px!important}.mr00{margin-right:0!important}.mb00{margin-bottom:0!important}.mb05{margin-bottom:5px!important}.mb10{margin-bottom:10px!important}.mb20{margin-bottom:20px!important}.mb30{margin-bottom:30px!important}.mb40{margin-bottom:40px!important}.mb50{margin-bottom:50px!important}.mb60{margin-bottom:60px!important}.mb70{margin-bottom:70px!important}.mb80{margin-bottom:80px!important}.mb90{margin-bottom:90px!important}.mb100{margin-bottom:100px!important}.mb110{margin-bottom:110px!important}.mb120{margin-bottom:120px!important}.ml00{margin-left:0!important}.ma_auto{margin-left:auto!important;margin-right:auto!important}.pt00{padding-top:0!important}.pt05{padding-top:5px!important}.pt10{padding-top:10px!important}.pt20{padding-top:20px!important}.pt30{padding-top:30px!important}.pt40{padding-top:40px!important}.pt50{padding-top:50px!important}.pt60{padding-top:60px!important}.pt70{padding-top:70px!important}.pt80{padding-top:80px!important}.pt90{padding-top:90px!important}.pt100{padding-top:100px!important}.pt110{padding-top:110px!important}.pt120{padding-top:120px!important}.pr00{padding-right:0!important}.pb00{padding-bottom:0!important}.pb05{padding-bottom:5px!important}.pb10{padding-bottom:10px!important}.pb20{padding-bottom:20px!important}.pb30{padding-bottom:30px!important}.pb40{padding-bottom:40px!important}.pb50{padding-bottom:50px!important}.pb60{padding-bottom:60px!important}.pb70{padding-bottom:70px!important}.pb80{padding-bottom:80px!important}.pb90{padding-bottom:90px!important}.pb100{padding-bottom:100px!important}.pb110{padding-bottom:110px!important}.pb120{padding-bottom:120px!important}.pl00{padding-left:0!important}.pa05{padding:5px!important}.pa10{padding:10px!important}.pa20{padding:20px!important}.txt18{font-size:18px!important}.txt20{font-size:20px!important}.txt24{font-size:24px!important}.txt26{font-size:26px!important}.txt28{font-size:28px!important}.txt30{font-size:30px!important}.txt32{font-size:32px!important}.txt34{font-size:34px!important}.txt36{font-size:36px!important}.txt38{font-size:38px!important}.txt40{font-size:40px!important}.bold{font-weight:700!important}.left{text-align:left!important}.center{text-align:center!important}.right{text-align:right!important}.v_top{vertical-align:top!important}.v_mid{vertical-align:middle!important}.v_btm{vertical-align:bottom!important}.color_red{color:#f33!important}.ls_0{letter-spacing:0!important}.ls_100{letter-spacing:0.1em!important}.indent{margin-left:1em!important;text-indent:-1em!important}

/* -----PC----- */
@media print, screen and (min-width: 641px) {
  .sp{display:none!important}
}

/* -----SP----- */
@media screen and (max-width: 640px) {
  .pc{display:none!important}.sp_mb00{margin-bottom:0!important}.sp_mr00{margin-right:0!important}.sp_ml00{margin-left:0!important}.sp_mt00{margin-top:0!important}.sp_pb00{padding-bottom:0!important}.sp_pr00{padding-right:0!important}.sp_pl00{padding-left:0!important}.sp_pt00{padding-top:0!important}.sp_center{text-align:center!important}
}

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

  エディタ & 共通パーツ（.cmn_●●●）

==================================================================*/
/* ---------------リンクボタン-------------------- */
.cmn_btn a {
  position: relative;
  display: inline-block;
  color: #fff;
  font-family: var(--font-type);
  font-weight: var(--font-weight);
  font-size: 18px;
  letter-spacing: 0.12em;
  line-height: 1.75;
  background: #d96f69 url(images/icon_arrow.svg) left 30px center/7px auto no-repeat;
  border-radius: 100vh;
  padding: 13px 32px 14px 54px;
  font-size: 16px;
  letter-spacing: 0.08em;
  transition: opacity 0.2s ease, background-position 0.2s ease;
}

@media screen and (max-width: 640px) {
  .cmn_btn a {
    display: block;
    background-position: left 20px center;
    padding: 12px 25px 13px 45px;
    text-align: center;
}
}

@media (hover: hover) {
  .cmn_btn a:hover {
    opacity: 0.8;
    background-position: left 45px center;
  }
}

/* ---------------リスト-------------------- */
.cmn_list > li {
  position: relative;
  padding-left: 28px;
}

.cmn_list > li:not(:last-child) {
  border-bottom: 1px dashed var(--border-color);
  padding-bottom: 3px;
  margin-bottom: 3px;
}

.cmn_list > li::before {
  content: "";
  position: absolute;
  top: calc((2.1em - 9px) / 2);
  left: 6px;
  width: 9px;
  height: 9px;
  border-radius: 100%;
  background: var(--sub-color);
}

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

  エディタ用（.cmn_editor）

==================================================================*/
.cmn_editor br.sp_inline + br,
.cmn_editor br.pc_inline + br,
.cmn_editor br.sp + br,
.cmn_editor br.pc + br {
  display: none;
}

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

  共通パーツ・レイアウト（.cmn_●●●）

==================================================================*/
/* ---------------inner-------------------- */
.cmn_inner {
  position: relative;
}

/* -----PC----- */
@media print, screen and (min-width: 641px) {
  .cmn_inner {
    max-width: 1200px;
    margin-inline: auto;
  }
}

/* -----SP----- */
@media screen and (max-width: 640px) {
  .cmn_inner {
    padding-left: 5.3%;
    padding-right: 5.3%;
  }
}

/* ---------------cmn_tit（主にh2）-------------------- */
.cmn_tit {
  display: block;
  max-width: 1200px;
  margin-inline: auto;
  margin-bottom: 58px;
  padding-inline: 20px;
  text-align: center;
  color: #12345a;
  font-family: var(--font-type);
  font-weight: var(--font-weight);
  font-size: clamp(24px, 2.2vw, 34px);
  line-height: 1.4;
  letter-spacing: 0.08em;
  position: relative;
}

/* 上の3点ドット（コーラル／ティール／ネイビー） */
.cmn_tit::before {
  content: "";
  display: block;
  width: 38px;
  height: 8px;
  margin: 0 auto 18px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 38 8'%3E%3Ccircle cx='4' cy='4' r='4' fill='%23d96f69'/%3E%3Ccircle cx='19' cy='4' r='4' fill='%232aa5b5'/%3E%3Ccircle cx='34' cy='4' r='4' fill='%2312345a'/%3E%3C/svg%3E") no-repeat center/contain;
}

/* 下の英字サブタイトル（セクションごとに文言を指定） */
.cmn_tit::after {
  display: block;
  color: #9aa3aa;
  font-family: "游ゴシック体", "Yu Gothic", YuGothic, "Helvetica Neue", Arial, sans-serif;
  font-weight: 400;
  font-size: 13px;
  line-height: 1.5;
  letter-spacing: 0.12em;
  margin-top: 12px;
}

.trouble .cmn_tit::after { content: "Symptoms"; }
.feature .cmn_tit::after { content: "About Medial Patellar Luxation"; }
.reason .cmn_tit::after { content: "Surgical Technique"; }
.doctor .cmn_tit::after { content: "Introduction to the Clinic Director and Orthopedic Specialist"; }
.about .cmn_tit::after { content: "Our Features"; }
.flow .cmn_tit::after { content: "Treatment Duration and Basic Flow"; }
.fee .cmn_tit::after { content: "Treatment Fee"; }
.faq .cmn_tit::after { content: "Frequently Asked Questions"; }

/* -----SP----- */
@media screen and (max-width: 640px) {
  .cmn_tit {
    max-width: 89.3%;
    font-size: clamp(17px, 5.2vw, 21px);
    letter-spacing: 0.04em;
    margin-bottom: 28px;
    text-wrap: balance;
  }

  .cmn_tit::before {
    width: 32px;
    height: 7px;
    margin-bottom: 12px;
  }

  .cmn_tit::after {
    font-size: 11px;
    letter-spacing: 0.06em;
    margin-top: 8px;
  }
}

/* ---------------両端揃えの解除-------------------- */
/* body に text-align: justify が入っているため、短い見出しやリストが
   2行に折り返すと1行目が枠幅まで引き伸ばされて字間が開く。
   本文以外は左揃えに戻す。 */
.cmn_tit2,
.trouble_check_list_item,
.reason_item_tit,
.doctor_message_tit,
.doctor_adviser_name,
.flow_step_tit,
.flow_end_tit,
.faq_q {
  text-align: left;
}

/* ---------------cmn_tit2（主にh3）-------------------- */
.cmn_tit2 {
  display: table;
  font-family: var(--font-type);
  font-weight: var(--font-weight);
  font-size: 26px;
  line-height: 1.1;
  letter-spacing: 0.12em;
  padding-bottom: 16px;
  padding-left: 4px;
  position: relative;
}

.cmn_tit2::before,
.cmn_tit2::after {
  content: "";
  height: 4px;
  border-radius: 3px;
  position: absolute;
  bottom: 0;
}

.cmn_tit2::before {
  width: 50px;
  background: var(--main-color);
  left: 0;
}

.cmn_tit2::after {
  width: calc(100% - 55px);
  background: var(--border-color);
  left: 55px;
}

/* -----SP----- */
@media screen and (max-width: 640px) {
  .cmn_tit2 {
    font-size: 20px;
  }
}

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

  PC／SP nav

============================================================================*/
.nav_open.open .nav_open_line {
  background-color: transparent;
}
.nav_open.open .nav_open_line::before {
  top: 0;
  transform: rotate(45deg);
}
.nav_open.open .nav_open_line::after {
  bottom: 0;
  transform: rotate(-45deg);
}

@media print, screen and (min-width: 641px) {
/*============================================================================

  PC header

============================================================================*/
  .header {
    width: 100%;
    position: absolute;
    top: 0;
    left: 0;
  }

  /* ロゴ */
  .header_logo {
    max-width: 1920px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 40px;
    position: relative;
  }
  .header_logo a {
    display: block;
    width: 340px;
	  width: 450px;
    text-align: center;
    position: absolute;
    top: 61px;
    z-index: 11;
  }
  .header_logo_pc {
    width: 340px;
	  width: 450px;
  }
  .header_logo_sp {
    display: none;
  }
  .header_logo_text {
    font-family: var(--font-type);
    font-weight: var(--font-weight);
    font-size: 13px;
	  font-size: 20px;
    letter-spacing: 0.08em;
    line-height: 1.4;
    text-align: center;
    display: block;
    width: -moz-fit-content;
    width: fit-content;
    max-width: 100%;
    color: #082844;
    border: 1px solid #edaba3;
    background: #fff4ef;
    border-radius: 40px;
    margin: 12px 0 0;
    padding: 9px 18px;
  }


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

  PC nav

============================================================================*/
  /* ハンバーガーボタン */
  .nav_open {
    border: none;
    padding: 0;
    width: 100px;
    height: 100px;
    text-align: center;
    cursor: pointer;
    background: #fff;
    position: fixed;
    top: 60px;
    right: 40px;
    z-index: 15;
  }
  .nav_open_line,
  .nav_open_line::before,
  .nav_open_line::after {
    display: block;
    width: 55px;
    height: 3px;
    background-color: #12345a;
    transition: transform ease 0.5s, background-color ease 0.5s;
    position: absolute;
    left: 0;
    right: 0;
  }
  .nav_open_line {
    margin-left: auto;
    margin-right: auto;
    top: 38px;
  }
  .nav_open_line::before,
  .nav_open_line::after {
    content: "";
    margin: auto;
  }
  .nav_open_line::before {
    top: -16px;
  }
  .nav_open_line::after {
    bottom: -16px;
  }
  .nav_open_tit {
    color: #12345a;
    font-family: var(--font-type);
    font-weight: var(--font-weight);
    font-size: 16px;
    letter-spacing: 0.12em;
    line-height: 1;
    position: absolute;
    left: 0;
    right: 0;
    bottom: 17px;
    margin-top: auto;
  }

  /* メニュー */
  .nav_menuWrap {
    max-width: 700px;
    min-width: 500px;
    width: 40%;
    height: 100%;
    padding: 210px clamp(20px, 2.6vw, 50px) 120px;
    opacity: 0;
    transition: right 1s ease, opacity 1s ease;
    background-color: rgba(255, 255, 255, 0.95);
    box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
    position: fixed;
    top: 0;
    right: -100%;
    z-index: 14;
    overflow-y: scroll;
  }
  body.nav-open .nav_menuWrap {
    opacity: 1;
    right: 0;
  }
  .nav_menu_item {
    line-height: 1.4;
  }
  .nav_menu_item a {
    display: block;
    color: #12345a;
    font-family: var(--font-type);
    font-weight: var(--font-weight);
    font-size: 18px;
    letter-spacing: 0.08em;
    padding: 20px 10px;
    position: relative;
  }
  .nav_menu_item a::after {
    display: block;
    content: "";
    width: 100%;
    height: 3px;
    border-radius: 100vh;
    background-color: #7f97b2;
    position: absolute;
    left: 0;
    bottom: 0;
  }
}
@media screen and (min-width: 641px) and (hover: hover) {
  .nav_menu_item a::before {
    display: block;
    content: "";
    width: 100%;
    height: 100%;
    background-color: #12345a;
    opacity: 0;
    position: absolute;
    left: 0;
    top: 0;
    transition: opacity 0.3s;
  }
  .nav_menu_item a:hover::before {
    opacity: 0.05;
  }
}

@media screen and (max-width: 640px) {
/*============================================================================

  SP header

============================================================================*/
  .header {
    width: 100%;
    background: #fff;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 10000;
  }
  .header_logo {
    width: calc(100% - 55px);
    text-align: center;
  }
  .header_logo a {
    display: block;
    width: 100%;
    height: 100%;
    padding: 5px;
  }
  .header_logo img {
    width: auto;
    max-height: 100%;
  }
  .header_logo_pc,
  .header_logo_text {
    display: none;
  }

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

  SP nav

============================================================================*/
  .nav {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
  }
  .nav > * {
    height: 55px;
  }

  /* ハンバーガーボタン */
  .nav_open {
    border: none;
    padding: 0;
    margin: 0;
    width: 55px;
    text-align: center;
    color: #fff;
    background: #12345a;
    transition: right 0.6s cubic-bezier(0.19, 1, 0.22, 1);
    position: relative;
    right: 0;
  }
  .nav_open_line,
  .nav_open_line::before,
  .nav_open_line::after {
    display: block;
    width: 34px;
    height: 2px;
    background-color: #fff;
    transition: transform ease 0.5s, background-color ease 0.5s;
    position: absolute;
    left: 0;
    right: 0;
  }
  .nav_open_line {
    margin-left: auto;
    margin-right: auto;
    top: 19px;
  }
  .nav_open_line::before,
  .nav_open_line::after {
    content: "";
    margin: auto;
  }
  .nav_open_line::before {
    top: -10px;
  }
  .nav_open_line::after {
    bottom: -10px;
  }
  .nav_open_tit {
    color: #fff;
    font-family: var(--font-type);
    font-weight: var(--font-weight);
    font-size: 12px;
    letter-spacing: 0.12em;
    line-height: 1;
    position: absolute;
    left: 0;
    right: 0;
    bottom: 7px;
    margin-top: auto;
  }
  .nav_open.open {
    right: 16.25rem;
  }

  /* ドロップダウンメニュー */
  .nav_menuWrap {
    width: 16.25rem;
    height: 100%;
    transition: right 0.6s cubic-bezier(0.19, 1, 0.22, 1);
    background: #12345a;
    font-size: 14px;
    font-family: var(--font-type);
    font-weight: var(--font-weight);
    line-height: 1.4;
    padding: 15px;
    position: fixed;
    top: 0;
    right: -16.25rem;
    z-index: 2;
    overflow: hidden;
  }
  .nav_menuWrap,
  .nav_menuWrap a {
    color: #fff;
  }
  .nav_menuWrap a {
    display: block;
  }
  .nav_menu_item {
    border-bottom: 1px solid #fff;
  }
  .nav_menu_item:first-child {
    border-top: 1px solid #fff;
  }
  .nav_menu_item a {
    padding: 15px 10px;
  }
  body.nav-open .nav_menuWrap {
    overflow-y: scroll;
    overscroll-behavior-y: none;
    right: 0;
  }

  /* ナビ展開時の後ろの背景 */
  .nav_overlay {
    display: none;
    opacity: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.7);
    position: fixed;
    top: 0;
    left: 0;
    z-index: 9999;
    visibility: hidden;
  }
  body.nav-open .nav_overlay {
    display: block;
    opacity: 1;
    visibility: visible;
  }
}

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

  PC 画面固定ボタン

============================================================================*/
.fixedBtnPc {
  display: flex;
  gap: 0 10px;
  position: fixed;
  bottom: 0;
  right: 10px;
  z-index: 13;
}

@media (hover: hover) {
  .fixedBtnPc_item a,
  .fixedBtnPc_item-pagetop {
    transition: opacity 0.2s ease;
  }
  .fixedBtnPc_item a:hover,
  .fixedBtnPc_item-pagetop:hover {
    opacity: 0.8;
  }
}

.fixedBtnPc a,
.fixedBtnPc_item_inner {
  color: #fff;
}

.fixedBtnPc_item_inner {
  display: flex;
  flex-flow: column;
  justify-content: center;
  gap: 3px 0;
  height: 100%;
  font-family: var(--font-type);
  font-weight: var(--font-weight);
  font-size: 22px;
  line-height: 1.4;
  letter-spacing: .1em;
  text-align: center;
  padding: 1em;
  background: #12345a;
  border-radius: 20px 20px 0 0;
}

.fixedBtnPc_item_inner > * {
  display: block;
}

.fixedBtnPc_fsS {
  font-size: 73%;
  margin-bottom: 3px;
}

.fixedBtnPc_item i {
  margin-right: .5em;
}

.fixedBtnPc_item.fixedBtnPc_item-color2 .fixedBtnPc_item_inner {
  background: #2f5b85;
}

.fixedBtnPc_item.fixedBtnPc_item-color3 .fixedBtnPc_item_inner {
  background: #d96f69;
}

.fixedBtnPc_item.fixedBtnPc_item-pagetop .fixedBtnPc_item_inner {
  cursor: pointer;
  background: #0b2740;
}

@media screen and (max-width: 1000px) {
  .fixedBtnPc_item_inner {
    font-size: clamp(17px, 1.1vw, 22px);
    letter-spacing: .05em;
  }
}

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

  SP 画面固定ボタン

============================================================================*/
.fixedBtnSp {
  width: 100%;
  background-color: #fff;
  position: fixed;
  left: 0;
  bottom: 0;
  z-index: 9999;
}

.fixedBtnSp_list {
  display: flex;
  background: #fff;
  padding: 5px 2.5px;
}

.fixedBtnSp_item {
  width: 100%;
  margin-inline: 2.5px;
}

.fixedBtnSp_item a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  color: #fff;
  text-align: center;
  font-size: 14px;
  font-family: var(--font-type);
  font-weight: var(--font-weight);
  padding: 10px 2%;
  border-radius: 5px;
  position: relative;
}

.fixedBtnSp_item.fixedBtnSp_item-color1 a {
  background: #12345a;
}

.fixedBtnSp_item.fixedBtnSp_item-color2 a {
  background: #2f5b85;
}

.fixedBtnSp_item.fixedBtnSp_item-color3 a {
  background: #d96f69;
}

.fixedBtnSp_item i {
  width: 15px;
  margin-right: 3px;
}

/* 準備中用のクラス */
.fixedBtnSp_item a[href="tel:準備中"],
.fixedBtnSp_item.fixedBtnSp_item-coming a {
  pointer-events: none;
  padding: 2px 2% 18px;
  background: #aaa;
}

.fixedBtnSp_item a[href="tel:準備中"]::after,
.fixedBtnSp_item.fixedBtnSp_item-coming a::before {
  content: "（準備中）";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  text-align: center;
  font-size: 90%;
}

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

  mainvisual

============================================================================*/
.mainvisual {
  position: relative;
  overflow: hidden;
}

.mainvisual_wrap,
.mainvisual_img {
  height: 880px;
}

.mainvisual_img {
  max-width: 1920px;
  width: 100%;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  margin: 0 auto;
  z-index: 0;
	background:#fff;
}

.mainvisual_img picture source,
.mainvisual_img picture img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  -o-object-position: center;
  object-position: center;
}

.mainvisual_inner {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  margin: 0 auto;
}

.mainvisual_tit {
  font-family: var(--font-type);
  font-weight: var(--font-weight);
  text-align: center;
  position: absolute;
  right: 0;
}

.mainvisual_tit_pop {
  display: block;
  width: -moz-fit-content;
  width: fit-content;
  font-size: 26px;
  margin: 0 auto 24px;
  letter-spacing: 0.12em;
  line-height: 1.5;
  padding-left: 75px;
  padding-right: 75px;
  position: relative;
}

.mainvisual_tit_pop::before,
.mainvisual_tit_pop::after {
  content: "";
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  position: absolute;
  top: -45px;
  width: 67px;
  height: 63px;
}

.mainvisual_tit_pop::before {
  background-image: url(images/mv_tit_pop1.svg);
  left: 0;
}

.mainvisual_tit_pop::after {
  background-image: url(images/mv_tit_pop2.svg);
  right: 0;
}

.mainvisual_tit_radius {
  display: block;
  max-width: 322px;
  width: 100%;
  font-size: 26px;
  margin: 0 auto 30px;
  letter-spacing: 0.12em;
  line-height: 1.4;
  border-radius: 36px;
  color: #fff;
  border: 3px solid #fff;
  background: var(--sub-color);
  padding: 10px;
}

.mainvisual_tit_blur {
  color: #fff;
  font-size: 80px;
  line-height: 1.2;
  letter-spacing: 0.12em;
  margin-bottom: 45px;
  filter: drop-shadow(0 0 15px rgba(42, 165, 181, 0.34)) drop-shadow(0 0 16px var(--main-color)) drop-shadow(0 0 5px var(--main-color));
}

/* -----PC----- */
@media print, screen and (min-width: 641px) {
  .mainvisual_inner {
    max-width: 1200px;
    height: inherit;
  }

  .mainvisual_tit {
    bottom: 158px;
  }
}

/* -----SP----- */
@media screen and (max-width: 640px) {
  .mainvisual {
    margin-top: 55px;
  }

  .mainvisual_wrap,
  .mainvisual_img {
    height: 450px;
  }

  .mainvisual_tit {
    left: 0;
    top: 60px;
    padding-left: 10px;
    padding-right: 10px;
  }

  .mainvisual_tit_pop {
    font-size: 16px;
    margin: 0 auto 12px;
    padding-left: 45px;
    padding-right: 45px;
    text-shadow: #fff 2px 0px 0px, #fff 2px 1px 0px, #fff 1px 2px 0px, #fff 0.1px 2px 0px, #fff -1px 2px 0px, #fff -2px 1px 0px, #fff -2px 0.3px 0px, #fff -2px -1px 0px, #fff -1px -2px 0px, #fff -0.4px -2px 0px, #fff 0.6px -2px 0px, #fff 1.4px -1.4px 0px, #fff 2px -0.6px 0px;
  }

  .mainvisual_tit_pop::before,
  .mainvisual_tit_pop::after {
    top: -30px;
    width: 45px;
    height: 43px;
  }

  .mainvisual_tit_radius {
    font-size: 18px;
    margin: 0 auto 20px;
    border-radius: 100px;
  }

  .mainvisual_tit_blur {
    font-size: 40px;
    margin-bottom: 20px;
  }

  .mainvisual_banner {
    max-width: 300px;
    margin-inline: auto;
  }
}

/* ▼▼▼ 追加：MV左寄せレイアウト ▼▼▼ */
.mv_catch p,
.mv_bnr_item p {
  margin: 0;
}

.mv_catch img,
.mv_bnr_item img {
  display: block;
  width: 100%;
  height: auto;
}
.mv_catch img:first-child {
	
}

.mv_catch img:last-child {
	margin-top:30px;
}
@media screen and (max-width: 640px) {
	.mv_catch img:last-child {
	margin-top:150px;
}
}
.mv_bnr {
  display: flex;
}

/* -----PC----- */
@media print, screen and (min-width: 641px) {
  /* ロゴ（.header_logo）と同じ基準幅にそろえる */
  .mainvisual_inner {
    max-width: 1920px;
  }

  .mv_catch {
    width: 700px;
    position: absolute;
    top: 242px;
    left: 40px;
  }

  .mv_catch img:first-child {
    width: 85%;
  }

  .mv_bnr {
    gap: 24px;
    position: absolute;
    left: 40px;
    bottom: 60px;
  }

  .mv_bnr_item {
    width: 230px;
  }
}

/* -----SP----- */
@media screen and (max-width: 640px) {
  /* MVの高さいっぱいに広げて、バナーを下端に置けるようにする */
  .mainvisual_inner {
    bottom: 0;
  }

  .mv_catch {
    width: 92%;
    max-width: 330px;
    margin: 0 auto;
    padding-top: 20px;
  }

  /* バナーはMV下端に固定（犬の顔にかからないように） */
  .mv_bnr {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 18px;
    gap: 8px;
    justify-content: center;
    padding: 0 10px;
  }

  .mv_bnr_item {
    width: 30%;
    max-width: 104px;
  }
}
/* ▲▲▲ 追加ここまで ▲▲▲ */

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

  h1

============================================================================*/
h1 {
  color: #666;
  font-size: 13px;
  letter-spacing: 0.12em;
  line-height: 1.75;
}

/* -----PC----- */
@media print, screen and (min-width: 641px) {
  h1 {
    max-width: 1920px;
    padding-inline: 40px;
    position: absolute;
    width: 100%;
    top: 10px;
    right: 0;
    left: 0;
    margin: auto;
  }
}

/* -----SP----- */
@media screen and (max-width: 640px) {
  h1 {
    font-size: 12px;
    padding: 5px 5.3%;
    text-align: center;
    background: var(--bg-color);
  }
}

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

  trouble

==================================================================*/
.trouble {
  padding-top: 120px;
  padding-bottom: 120px;
  background: #fffdfa url(images/section02_bg.png) no-repeat center/cover;
}

.trouble_check {
  max-width: 1700px;
  margin-inline: auto;
  margin-bottom: 65px;
  padding-inline: 40px;
}

/* 左の写真（HTMLに枠がないため疑似要素で追加） */
.trouble_check::before {
  content: "";
  display: block;
  aspect-ratio: 760 / 545;
  background: url(images/section02_img_left.png) no-repeat center/contain;
}

.trouble_check_listWrap {
  background: transparent;
  border: 1px solid #ded7cd;
  padding: 34px;
}

.trouble_check_list {
  display: grid;
  gap: 20px;
}

.trouble_check_list_item {
  display: flex;
  align-items: center;
  background: #fff;
  border: 1px solid #f2ddd9;
  border-radius: 8px;
  color: #12345a;
  font-size: 17px;
  font-weight: bold;
  line-height: 1.5;
  letter-spacing: 0.02em;
  padding: 22px 16px 22px 60px;
  position: relative;
  text-wrap: pretty;
}

.trouble_check_list_item::before {
  content: "";
  position: absolute;
  left: 18px;
  top: 50%;
  transform: translateY(-50%);
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #e2827b url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 11'%3E%3Cpath d='M1.5 5.6l3.7 3.7L12.5 1.9' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center/14px auto;
}

/* デザインに矢印がないため非表示 */
.trouble_answer_arrow {
  display: none;
}

.trouble_answer {
  max-width: 1480px;
  margin-inline: auto;
  padding-inline: 40px;
  text-align: center;
}

.trouble_answer_text {
  background: #fceae6;
  border-left: 8px solid #12345a;
  border-right: 8px solid #12345a;
  color: #12345a;
  font-family: var(--font-type);
  font-weight: var(--font-weight);
  font-size: 18px;
  line-height: 2;
  letter-spacing: 0.06em;
  padding: 38px 30px;
  border-radius: 20px;
}

.trouble_answer_text > span {
  display: block;
}

.trouble_answer_text > span:first-child {
  font-size: 22px;
  margin-bottom: 8px;
}

/* -----PC----- */
@media print, screen and (min-width: 641px) {
  .trouble_check {
    display: flex;
    align-items: center;
    gap: 60px;
  }

  .trouble_check::before {
    flex: 0 0 48%;
  }

  .trouble_check_listWrap {
    flex: 1 1 auto;
    min-width: 0;
  }

  .trouble_check_list {
    grid-template-columns: 1fr 1fr;
  }
}

/* -----SP----- */
@media screen and (max-width: 640px) {
  .trouble {
    padding-top: 50px;
    padding-bottom: 60px;
  }

  .trouble_check {
    padding-inline: 5.3%;
    margin-bottom: 30px;
  }

  .trouble_check::before {
    margin-bottom: 22px;
  }

  .trouble_check_listWrap {
    padding: 16px;
    background: rgba(255, 255, 255, 0.6);
  }

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

  .trouble_check_list_item {
    font-size: 13px;
    letter-spacing: 0;
    padding: 14px 12px 14px 46px;
  }

  .trouble_check_list_item::before {
    left: 14px;
    width: 24px;
    height: 24px;
    background-size: 12px auto;
  }

  .trouble_answer {
    padding-inline: 5.3%;
  }

  .trouble_answer_text {
    font-size: 15px;
    line-height: 1.9;
    padding: 24px 16px;
    border-left-width: 5px;
    border-right-width: 5px;
  }

  .trouble_answer_text > span:first-child {
    font-size: 17px;
  }
}

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

  about

==================================================================*/
.about {
  background: #fff;
  padding-top: 90px;
}

.about_inner {
  padding-bottom: 45px;
  position: relative;
  z-index: 0;
}

.about_inner::after {
  content: "";
  width: calc(888px + (100% - 1200px) / 2);
  height: calc(100% - 26px);
  background: var(--bg-color);
  position: absolute;
  left: 0;
  bottom: 0;
  z-index: -1;
}

.about_textArea {
  flex: 1;
}

.about_textArea .cmn_tit2 {
  margin-bottom: 36px;
}

.about_text p:not(:last-child) {
  margin-bottom: 1em;
}

/* -----PC----- */
@media print, screen and (min-width: 641px) {
  .about_flex {
    max-width: 1200px;
    display: flex;
    flex-flow: row-reverse nowrap;
    gap: 0 78px;
    margin-left: auto;
    margin-right: auto;
  }

  .about_img {
    width: 530px;
  }

  .about_textArea {
    padding-top: 95px;
  }

  .about_text {
    line-height: 2.5;
  }
}

/* -----SP----- */
@media screen and (max-width: 640px) {
  .about_inner {
    padding-left: 5.3%;
    padding-right: 5.3%;
    padding-bottom: 90px;
  }

  .about_inner::after {
    width: 100%;
  }

  .about_img {
    text-align: center;
    margin-bottom: 20px;
  }
}

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

  reason

==================================================================*/
.reason {
  background-color: #fff;
  background-image: radial-gradient(circle 260px at 100% 91%, #fff5f2 0 100%, rgba(252, 236, 235, 0) 100%), linear-gradient(to right, #fdf5e9 0 20%, rgba(234, 244, 248, 0) 20%);
  padding-top: 100px;
  padding-bottom: 110px;
  position: relative;
  overflow: hidden;
}

/* 中央の淡いブルー帯（CSSのみ・画像不要） */
.reason::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 230px;
  background: #eaf6fa;
  z-index: 0;
}

.reason .cmn_tit,
.reason_list {
  position: relative;
  z-index: 1;
}

/* 導入エリア（中央の図＋リード文） */
.reason_lead {
  max-width: 1400px;
  margin-inline: auto;
  margin-bottom: 80px;
  padding-inline: 40px;
  text-align: center;
  position: relative;
  z-index: 1;
}

.reason_lead_img {
  margin-bottom: 34px;
}

.reason_lead_img img {
  display: block;
  width: 100%;
  max-width: 660px;
	max-width: 840px;
  height: auto;
  margin-inline: auto;
  border-radius: 12px;
}

.reason_lead_text {
  max-width: 880px;
  margin-inline: auto;
  color: var(--text-color);
  font-size: 16px;
  line-height: 2;
  letter-spacing: 0.04em;
  text-align: center;
  text-wrap: pretty;
}

/* -----SP----- */
@media screen and (max-width: 640px) {
  .reason_lead {
    margin-bottom: 45px;
    padding-inline: 5.3%;
  }

  .reason_lead_img {
    margin-bottom: 22px;
  }

  .reason_lead_text {
    font-size: 15px;
    line-height: 1.9;
    text-align: justify;
  }
}

.reason_list {
  max-width: 1540px;
  margin-inline: auto;
}

/* 中央の縦線は廃止 */
.reason_list::before {
  display: none;
}

/* 行。カード枠は持たせず、写真だけを額装する */
.reason_item {
  position: relative;
  z-index: 1;
  color: var(--text-color);
  background: none;
  border: none;
  border-radius: 0;
  box-shadow: none;
}

.reason_item:not(:last-child) {
  margin-bottom: 46px;
}

/* 写真の背後にずらして置く色面 */
.reason_item::before {
  content: "";
  position: absolute;
  z-index: 0;
  border-radius: 10px;
}

.reason_item:nth-of-type(odd)::before {
  background: #edf7fa;
}

.reason_item:nth-of-type(even)::before {
  background: #fceae6;
}

/* 画像：背景扱いをやめて通常の画像に戻す */
/* 写真は白フチで額装する */
.reason_item_img {
  width: auto;
  height: auto;
  position: relative;
  z-index: 1;
  background: #fff;
  border: 10px solid #fff;
  border-radius: 10px;
  box-shadow: 0 10px 28px rgba(11, 53, 88, 0.1);
  overflow: hidden;
}

.reason_item_img::before {
  display: none;
}

/* 画像は切り抜かない。実寸の縦横比のまま表示する */
.reason_item_img img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 0;
}

/*----------------------------------------------------------
  閲覧注意クッション（手術写真）— JS不使用・detailsタグのみ
----------------------------------------------------------*/
/* 一括開閉ボタン */
.reason_photoAll {
  text-align: center;
  margin-bottom: 34px;
}

.reason_photoAll_btn {
  display: inline-block;
  border: 1px solid #c9d6e0;
  border-radius: 100px;
  background: #fff;
  color: #12345a;
  font-family: var(--font-type);
  font-weight: var(--font-weight);
  font-size: 13px;
  letter-spacing: 0.06em;
  line-height: 1;
  padding: 12px 26px;
  cursor: pointer;
  transition: background 0.2s ease, border-color 0.2s ease;
}

@media (hover: hover) {
  .reason_photoAll_btn:hover {
    background: #f2f8fb;
    border-color: #12345a;
  }
}

.reason_photoAll_btn .is-open {
  display: none;
}

.reason_photoAll_btn[aria-expanded="true"] .is-closed {
  display: none;
}

.reason_photoAll_btn[aria-expanded="true"] .is-open {
  display: inline;
}

.reason_photo_wrap {
  position: relative;
}

/* 注意書きレイヤー。画像の上に重ねる（閉じている間は全面をおおう） */
.reason_photo {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
}

.reason_photo_summary {
  flex: 1 1 auto;
  display: flex;
  flex-flow: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 24px 16px;
  background: rgba(255, 255, 255, 0.62);
  color: #12345a;
  text-align: center;
  cursor: pointer;
  list-style: none;
  transition: background 0.2s ease;
}

/* ブラウザ標準の三角マーカーを消す */
.reason_photo_summary::-webkit-details-marker {
  display: none;
}
.reason_photo_summary::marker {
  content: "";
}

@media (hover: hover) {
  .reason_photo_summary:hover {
    background: rgba(255, 255, 255, 0.74);
  }
}

.reason_photo_alert {
  font-family: var(--font-type);
  font-weight: var(--font-weight);
  font-size: 14px;
  letter-spacing: 0.08em;
  padding-left: 22px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 16'%3E%3Cpath d='M9 1.2 17 14.8H1z' fill='none' stroke='%23d96f69' stroke-width='1.8' stroke-linejoin='round'/%3E%3Cpath d='M9 6v4' stroke='%23d96f69' stroke-width='1.8' stroke-linecap='round'/%3E%3Ccircle cx='9' cy='12.4' r='0.9' fill='%23d96f69'/%3E%3C/svg%3E") no-repeat left center/16px auto;
}

.reason_photo_note {
  font-size: 12px;
  line-height: 1.6;
  letter-spacing: 0;
  color: #5a6b7d;
}

.reason_photo_btn {
  display: inline-block;
  margin-top: 4px;
  padding: 9px 20px;
  border-radius: 100px;
  background: #12345a;
  color: #fff;
  font-family: var(--font-type);
  font-weight: var(--font-weight);
  font-size: 12px;
  letter-spacing: 0.06em;
}

/* 開閉でラベルを差し替え */
.reason_photo .is-open {
  display: none;
}
.reason_photo[open] .is-closed {
  display: none;
}
.reason_photo[open] .is-open {
  display: inline;
}

/* 開いたら右上の小さなボタンだけに縮める（画像は隠さない） */
.reason_photo[open] {
  inset: 10px 10px auto auto;
}

.reason_photo[open] .reason_photo_summary {
  padding: 0;
  gap: 0;
  background: none;
}

.reason_photo[open] .reason_photo_alert,
.reason_photo[open] .reason_photo_note {
  display: none;
}

.reason_photo[open] .reason_photo_btn {
  padding: 6px 14px;
  font-size: 11px;
  background: rgba(18, 52, 90, 0.8);
}

/* ボカシ本体。開いたら解除する */
.reason_photo_img {
  filter: blur(26px);
  transform: scale(1.1);
  transition: filter 0.35s ease, transform 0.35s ease;
}

.reason_photo[open] + .reason_photo_img {
  filter: none;
  transform: none;
}

.reason_item_textArea {
  display: block;
  padding: 26px 28px 28px;
  position: static;
  overflow: visible;
}

.reason_item_titWrap {
  display: block;
  text-align: left;
  margin-bottom: 14px;
  padding-bottom: 0;
  position: static;
}

.reason_item_titWrap::before,
.reason_item_titWrap::after {
  display: none;
}

/* STEPバッジ（写真とテキストの間に置く紺の丸） */
.reason_item_num {
  display: flex;
  flex-flow: column;
  align-items: center;
  justify-content: center;
  width: 70px;
  height: 70px;
  border-radius: 50%;
  background: #12345a;
  color: #fff;
  font-family: var(--font-type);
  font-weight: var(--font-weight);
  font-size: 20px;
  line-height: 1;
  letter-spacing: 0.04em;
  opacity: 1;
  padding: 0;
  margin: 0;
}

.reason_item_num::before {
  content: "STEP";
  display: block;
  font-size: 9px;
  letter-spacing: 0.12em;
  margin-bottom: 3px;
}

.reason_item_tit {
  display: block;
  color: #0b3558;
  font-family: var(--font-type);
  font-weight: var(--font-weight);
  font-size: 18px;
  line-height: 1.6;
  letter-spacing: 0.05em;
  position: relative;
  text-wrap: pretty;
}

.reason_item_text {
  filter: none;
/*   font-size: 14px; */
  line-height: 1.9;
  letter-spacing: 0.03em;
}

.reason_item_text p:not(:last-child) {
  margin-bottom: 1em;
}

/* -----PC----- */
@media print, screen and (min-width: 641px) {
  .reason_list {
    display: block;
    padding-inline: 40px;
  }

  /* 中央の水色帯は中央線とセットの装飾だったため、レール移動にあわせて非表示 */
  .reason::before {
    display: none;
  }

  /* 左に写真、右にテキスト。間にSTEPバッジを置く */
  .reason_item {
    display: flex;
    align-items: center;
    gap: 160px;
    width: auto;
    margin-left: 0;
  }

  /* 色面は写真の右下へずらして敷く */
  .reason_item::before {
    top: 20px;
    left: 18px;
    width: 470px;
    height: 100%;
  }

  .reason_item_img {
    flex: 0 0 470px;
    max-width: none;
    margin: 0;
  }

  .reason_item_img img {
    width: 100%;
    height: auto;
  }

  /* STEPバッジ＝写真とテキストの中間、行の高さの中央 */
  .reason_item_num {
    position: absolute;
    top: 50%;
    left: 533px;
    transform: translateY(-50%);
    z-index: 2;
  }

  .reason_item_textArea {
    flex: 1 1 auto;
    min-width: 0;
    padding: 0;
  }
}

/* -----SP----- */
@media screen and (max-width: 640px) {
  .reason {
    padding-top: 60px;
    padding-bottom: 60px;
  }

  /* SPは帯なし */
  .reason::before {
    display: none;
  }

  .reason_list {
    padding-left: 5.3%;
    padding-right: 5.3%;
  }

  .reason_item {
    display: block;
  }

  .reason_item:not(:last-child) {
    margin-bottom: 40px;
  }

  /* 幅が狭く効果が出ないため、ずらし色面はSPでは出さない */
  .reason_item::before {
    display: none;
  }

  /* 写真は白フチのまま、実寸の縦横比で全体を表示 */
  .reason_item_img {
    width: 100%;
    height: auto;
    aspect-ratio: auto;
    border-width: 8px;
    border-radius: 0;
    margin: 0;
  }

  .reason_item_img img {
    width: 100%;
    height: auto;
  }

  .reason_item_textArea {
    padding: 0;
  }

  /* STEPバッジは写真の下に置く */
  .reason_item_num {
    position: static;
    width: 58px;
    height: 58px;
    font-size: 17px;
    margin: 18px 0 14px;
  }

  .reason_item_num::before {
    font-size: 8px;
  }

  .reason_item_titWrap {
    margin-bottom: 12px;
  }

  .reason_item_tit {
    font-size: 17px;
  }

  .reason_item_text {
    font-size: 14px;
  }
}

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

  doctor（院長メッセージ・整形外科専門医紹介／直書き）

==================================================================*/
.doctor {
  /* 背景画像が届かない下部が白く抜けるため、地色を術式セクションと同じにする */
  background: #fbfdfe url(images/top_doctor_bg.png) no-repeat center top/100% auto;
  background-blend-mode: normal;
  padding-top: 100px;
  padding-bottom: 110px;
}

.doctor_inner {
  max-width: 1600px;
  margin-inline: auto;
  padding-inline: 40px;
}

/* ---- 院長メッセージ ---- */
.doctor_message {
  background: #eaf2f6 url(images/doctor_img_bg.png) no-repeat center/100% 100%;
  border-radius: 20px;
  padding: 50px;
  margin-bottom: 70px;
}

.doctor_message_img img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 20px;
}

.doctor_message_tit {
  color: #12345a;
  font-family: var(--font-type);
  font-weight: var(--font-weight);
  font-size: clamp(20px, 1.7vw, 27px);
  line-height: 1.5;
  letter-spacing: 0.06em;
  margin-bottom: 26px;
  text-wrap: pretty;
}

.doctor_message_text {
  color: var(--text-color);
/*   font-size: 16px; */
  line-height: 2;
  letter-spacing: 0.03em;
  text-align: justify;
}

.doctor_message_text strong {
  color: #12345a;
  font-weight: 700;
}

/* ---- 手術アドバイザー ---- */
.doctor_adviser {
  background: #fdf5e9;
  border-radius: 20px;
  padding: 48px 50px 52px;
}

.doctor_adviser_label {
  display: inline-block;
  background: #fff;
  color: #12345a;
  font-family: var(--font-type);
  font-weight: var(--font-weight);
  font-size: 14px;
	font-size: 20px;
  line-height: 1;
  letter-spacing: 0.08em;
  border-radius: 100vh;
  padding: 11px 22px;
  margin-bottom: 20px;
}

.doctor_adviser_name {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 0 14px;
  color: #12345a;
  font-family: var(--font-type);
  font-weight: var(--font-weight);
  font-size: 25px;
  line-height: 1.3;
  letter-spacing: 0.06em;
  margin-bottom: 12px;
}

.doctor_adviser_name::before {
  content: "";
  width: 15px;
  height: 15px;
  background: #12345a;
  flex: 0 0 auto;
}

.doctor_adviser_name_en {
  color: #2aa5b5;
  font-size: 17px;
  letter-spacing: 0.06em;
}

.doctor_adviser_post {
  color: #12345a;
  font-family: var(--font-type);
  font-weight: var(--font-weight);
  font-size: 15px;
  line-height: 1.6;
  letter-spacing: 0.06em;
  margin-bottom: 24px;
}

/* 経歴カード */
.doctor_career {
  display: grid;
  gap: 14px;
  margin-bottom: 26px;
}

.doctor_career_item {
  background: #fff;
  border-radius: 8px;
  padding: 16px 18px 18px;
  color: #12345a;
/*   font-size: 14px; */
  line-height: 1.6;
  letter-spacing: 0.02em;
}

.doctor_career_date {
  display: block;
  color: #d96f69;
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.04em;
  margin-bottom: 6px;
}

/* 所属学会 */
.doctor_society {
  background: #e9f3f8;
  border-radius: 10px;
  padding: 22px 26px 24px;
}

.doctor_society_tit {
  color: #12345a;
  font-family: var(--font-type);
  font-weight: var(--font-weight);
  font-size: 15px;
  line-height: 1.5;
  letter-spacing: 0.06em;
  margin-bottom: 12px;
}

.doctor_society_list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
	grid-template-columns: repeat(2, 1fr);
  gap: 0 30px;
}

.doctor_society_list li {
  position: relative;
  color: var(--text-color);
/*   font-size: 14px; */
	font-size: 85%;
  line-height: 1.9;
  letter-spacing: 0.02em;
  padding-left: 16px;
}

.doctor_society_list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: calc((1.9em - 6px) / 2);
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #4bb3c4;
}

.doctor_adviser_img img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 14px;
}

/* -----PC----- */
@media print, screen and (min-width: 641px) {
  .doctor_message {
    display: flex;
    align-items: center;
    gap: 58px;
  }

  .doctor_message_img {
    flex: 0 0 46%;
	  flex: 0 0 36.8%;
  }

  .doctor_message_body {
    flex: 1 1 auto;
    min-width: 0;
  }

  .doctor_adviser {
    display: flex;
    align-items: center;
    gap: 45px;
  }

  .doctor_adviser_main {
    flex: 1 1 auto;
    min-width: 0;
  }

  .doctor_adviser_img {
    flex: 0 0 270px;
	          flex: 0 0 46%;
	  flex: 0 0 36.8%;
  }

  .doctor_career {
    grid-template-columns: repeat(4, 1fr);
	  grid-template-columns: repeat(2, 1fr);
  }
}

/* -----SP----- */
@media screen and (max-width: 640px) {
  .doctor {
    padding-top: 60px;
    padding-bottom: 60px;
    background-size: 200% auto;
  }

  .doctor_inner {
    padding-inline: 5.3%;
  }

  .doctor_message {
    padding: 24px 20px 28px;
    margin-bottom: 36px;
  }

  .doctor_message_img {
    margin-bottom: 22px;
  }

  .doctor_message_text {
    font-size: 15px;
    line-height: 1.9;
  }

  /* SPは南先生の写真を先頭に出す */
  .doctor_adviser {
    display: flex;
    flex-direction: column;
    padding: 26px 20px 30px;
  }

  .doctor_adviser_img {
    order: -1;
/*     max-width: 240px; */
    margin: 0 auto 22px;
	          width: 100%;
    
  }

  .doctor_adviser_name {
    font-size: 21px;
  }

  .doctor_adviser_name_en {
    font-size: 15px;
  }

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

  .doctor_society {
    padding: 18px 18px 20px;
  }

  .doctor_society_list {
    grid-template-columns: 1fr;
  }

}

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

  feature

==================================================================*/
.feature {
  padding-top: 210px;
  padding-bottom: 150px;
  background: #f2f8fa url(images/section03_bg_02.png) no-repeat center top/100% 100%;
}

/* 見出しの装飾（セクション03専用） */
.feature_item:not(:last-child) {
  margin-bottom: 90px;
}

.feature_item_textArea {
  background: #fff;
  border-left: 6px solid #12345a;
  padding: 44px 44px 48px;
  position: relative;
}

/* デザインに連番がないため非表示 */
.feature_item_num {
  display: none;
}

/* 画像カードの装飾バー（右上コーラル／左下ネイビー） */
.feature_item_img {
  position: relative;
}

.feature_item_img img {
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 520px;
  margin-inline: auto;
  box-shadow: 0 10px 34px rgba(18, 52, 90, 0.12);
}

.feature_item_img::before,
.feature_item_img::after {
  content: "";
  position: absolute;
  width: 56px;
  height: 6px;
}

.feature_item_img::before {
  background: #e2827b;
  top: -3px;
  right: 28px;
}

.feature_item_img::after {
  background: #12345a;
  bottom: -3px;
  left: 28px;
}

/* h3：ネイビー＋コーラルの下線を枠幅いっぱいに */
.feature_item_textArea .cmn_tit2 {
  display: block;
  color: #12345a;
  font-size: 21px;
  line-height: 1.5;
  letter-spacing: 0.06em;
  padding-left: 0;
  padding-bottom: 18px;
  margin-bottom: 24px;
}

/* 下線・左＝コーラルの太線 */
.feature_item_textArea .cmn_tit2::before {
  width: 60px;
  height: 3px;
  border-radius: 2px;
  background: #d96f69;
  left: 0;
  bottom: 0;
}

/* 下線・右＝細い薄グレー */
.feature_item_textArea .cmn_tit2::after {
  display: block;
  width: calc(100% - 72px);
  height: 1px;
  border-radius: 0;
  background: #d7dfe6;
  left: 72px;
  bottom: 1px;
}

.feature_item_text {
/*   font-size: 16px; */
  line-height: 2.2;
  letter-spacing: 0.04em;
}

.feature_item_text p:not(:last-child) {
  margin-bottom: 1em;
}

.feature_item_btnArea {
  display: flex;
  flex-wrap: wrap;
  gap: 15px;
  margin-top: 35px;
}

/* お問い合わせバナー（PC＝メール／SP＝電話） */
.about_bnr {
  text-align: center;
  margin-top: 80px;
}

.about_bnr a {
  display: inline-block;
  max-width: 520px;
  width: 100%;
  transition: opacity 0.2s ease;
}

.about_bnr img {
  display: block;
  width: 100%;
  height: auto;
}

@media (hover: hover) {
  .about_bnr a:hover {
    opacity: 0.8;
  }
}

/* -----SP----- */
@media screen and (max-width: 640px) {
  .about_bnr {
    margin-top: 45px;
    padding-inline: 5.3%;
  }
}

/* -----PC----- */
@media print, screen and (min-width: 641px) {
  .feature .cmn_inner {
    max-width: 1400px;
    padding-inline: 40px;
  }

  .feature_item {
    display: flex;
    align-items: center;
  }

  /* 画像＝上のレイヤー。テキスト枠に90px重ねる */
  .feature_item_img {
    flex: 0 0 auto;
    max-width: 52%;
    position: relative;
    z-index: 2;
    margin-right: -90px;
  }

  /* テキスト＝下のレイヤー。残り幅を全部もらう */
  .feature_item_textArea {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 320px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    position: relative;
    z-index: 1;
    border-left: none;
    border-right: 6px solid #12345a;
    padding: 70px 56px 70px 150px;
    min-height: 400px;
    border-radius: 20px;
}

  /* 枠が広くなっても本文の行長は伸ばしすぎない */
  .feature_item_textArea .cmn_tit2,
  .feature_item_text {
    max-width: 760px;
  }

  /* 奇数＝テキスト左／画像右 */
  .feature_item:nth-of-type(odd) {
    flex-direction: row-reverse;
  }

  .feature_item:nth-of-type(odd) .feature_item_img {
    margin-right: 0;
    margin-left: -90px;
  }

  .feature_item:nth-of-type(odd) .feature_item_textArea {
    border-right: none;
    border-left: 6px solid #12345a;
    padding: 70px 150px 70px 56px;
  }
}

/* -----SP----- */
@media screen and (max-width: 640px) {
  .feature {
    padding-top: 60px;
    padding-bottom: 60px;
  }
  .feature_item{
    max-width: 350px;
    margin: 0 auto;
}
  .feature_item:not(:last-child) {
    margin: 0 auto 45px;
  }

  .feature_item_img {
    margin-bottom: 26px;
  }

  .feature_item_textArea {
    padding: 26px 6%;
    border-left-width: 4px;
    border-radius: 14px;
}

  .feature_item_textArea .cmn_tit2 {
    font-size: 17px;
    padding-bottom: 14px;
    margin-bottom: 18px;
  }

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

  .feature_item_textArea .cmn_tit2::before {
    width: 44px;
  }

  .feature_item_textArea .cmn_tit2::after {
    width: calc(100% - 54px);
    left: 54px;
  }

  .feature_item_btnArea {
    gap: 10px 15px;
  }
}


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

  flow

==================================================================*/
.flowBg {
  width: 100%;
  height: 100%;
  background: url(images/body_bg.jpg) no-repeat center/cover;
  position: fixed;
  top: 0;
  z-index: -1;
}

.flow {
  padding-bottom: 130px;
  margin-top: 530px;
  position: relative;
  z-index: 0;
}

.flow::before {
  content: "";
  width: 100%;
  height: calc(100% - 75px);
  background: #edf7fa url(images/top_flow_bg.png) no-repeat center top/100% auto;
  position: absolute;
  left: 0;
  bottom: 0;
  z-index: -1;
}

.flow_catch {
  color: #fff;
  font-family: var(--font-type-en);
  font-size: 80px;
  letter-spacing: 0.01em;
  line-height: 1;
  filter: drop-shadow(0 0 15px var(--main-color));
  position: absolute;
  top: -475px;
  left: 30px;
  transform: rotate(-15deg);
}

/* 白いボックスでステップとカードをまとめて包む */
.flow .cmn_inner {
  background: #fff;
  padding: 90px 70px;
}

.flow_main {
  margin-bottom: 60px;
}

.flow_main .cmn_tit {
  margin-bottom: 60px;
}

.flow_main .cmn_tit2 {
  margin-bottom: 30px;
}

.flow_main_head {
  margin-bottom: 45px;
}

.flow_main_head_text p:not(:last-child) {
  margin-bottom: 1em;
}

.flow_tree_head {
  margin-bottom: 25px;
}

.flow_step_img {
  max-width: 340px;
}

.flow_step_img img {
  border-radius: 10px;
}

.flow_step_num {
  width: 115px;
  position: relative;
}

.flow_step_num_circle {
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-flow: column;
  width: 100%;
  aspect-ratio: 1/1;
  background: #12345a;
  border-radius: 100%;
  color: #fff;
  font-family: var(--font-type);
  font-weight: var(--font-weight);
  font-size: 18px;
  letter-spacing: 0.12em;
  line-height: 1;
  position: relative;
}

.flow_step_num_circle strong {
  display: block;
  margin-top: 7px;
  font-size: 34px;
  letter-spacing: 0.12em;
}

.flow_step_tit {
  color: #12345a;
  font-family: var(--font-type);
  font-weight: var(--font-weight);
  font-size: 22px;
  letter-spacing: 0.12em;
  line-height: 1.5;
}

.flow_step_text p:not(:last-child) {
  margin-bottom: 1em;
}

/* 下部の2枚のカード（1枚目＝ミント／2枚目＝ピンク） */
.flow_end {
  background: #eaf6f4;
  border-radius: 14px;
  padding: 42px 50px 46px;
  text-align: center;
}

.flow_end:not(:last-child) {
  margin-bottom: 38px;
}

.flow_end + .flow_end {
  background: #fdf0ec;
}

.flow_end_img {
  max-width: 660px;
  margin: 0 auto 26px;
}

.flow_end_img img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 12px;
}

.flow_end_tit,
.flow_end_text {
  padding-left: 0;
  padding-right: 0;
}

.flow_end_tit {
  color: #12345a;
  font-family: var(--font-type);
  font-weight: var(--font-weight);
  font-size: 22px;
  line-height: 1.5;
  letter-spacing: 0.06em;
  margin-bottom: 18px;
}

.flow_end_tit::after {
  display: none;
}

.flow_end_text {
  max-width: 780px;
  margin-inline: auto;
/*   font-size: 14px; */
  line-height: 2;
  letter-spacing: 0.02em;
  text-align: justify;
}

.flow_end_text p:not(:last-child) {
  margin-bottom: 1em;
}

/* -----PC----- */
@media print, screen and (min-width: 641px) {
  .flow_step_item {
    padding-left: 140px;
    padding-top: 40px;
    padding-bottom: 20px;
    position: relative;
  }

  .flow_step_item:not(.flow_step_item-noImg) {
    display: flex;
    flex-direction: row-reverse;
  }
  .flow_step_item:not(.flow_step_item-noImg) .flow_step_textArea {
    width: 525px;
    margin-right: 55px;
  }

  .flow_step_img {
    width: 340px;
    padding-top: 8px;
  }

  .flow_step_num {
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
  }
  .flow_step_num::after {
    content: "";
    width: 9px;
    height: calc(100% - 133px);
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9' height='18' viewBox='0 0 9 18'%3E%3Ccircle fill='%2312345a' cx='4.5' cy='4.5' r='4.5'/%3E%3C/svg%3E") repeat-y center top/100% auto;
    position: absolute;
    top: 133px;
    left: 0;
    right: 0;
    margin: auto;
  }

  .flow_step_item:last-of-type .flow_step_num::after {
    display: none;
  }

  .flow_step_tit {
    margin-bottom: 20px;
  }
  
  /* 下部カードの見出しを本文と同じ幅・位置にそろえる */
  .flow_end_tit {
    max-width: 780px;
    margin-inline: auto;
  }
}

/* -----SP----- */
@media screen and (max-width: 640px) {
  .flow {
    padding-bottom: 60px;
    margin-top: 250px;
  }

  .flow .cmn_inner {
    padding: 40px 5.3% 44px;
  }

  .flow_main {
    margin-bottom: 34px;
  }

  .flow_catch {
    font-size: 30px;
    top: -235px;
    left: 10px;
  }

  .flow_main {
    padding: 10px 0% 50px;
}

  .flow_main .cmn_tit {
    max-width: none;
  }
  .flow_step_item{
    max-width: 350px;
    margin: 0 auto;
  }
  .flow_step_item:not(:last-child) {
    margin: 0 auto 40px;
}

  .flow_step_img {
    margin-inline: auto;
    margin-bottom: 20px;
  }

  .flow_step_textArea {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
  }

  .flow_step_num {
    min-width: 65px;
    width: 65px;
  }

  .flow_step_num_circle {
    font-size: 15px;
  }

  .flow_step_num_circle strong {
    font-size: 20px;
  }

  .flow_step_tit {
    width: calc(100% - 75px);
    font-size: 17px;
    letter-spacing: 0;
}

  .flow_step_text {
    width: 100%;
    margin-top: 20px;
  }
  .flow_step_text p{
    font-size: 14px;
    letter-spacing: 0;
  }
  .flow_end {
    padding: 30px 6%;
  }
  .flow_end_tit{
    letter-spacing: 0;
    font-size: 18px;
  }
  .flow_end_tit,
  .flow_end_text {
    padding-left: 10px;
    padding-right: 10px;
  }
}

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

  fee

==================================================================*/
.fee {
  padding-top: 90px;
  padding-bottom: 130px;
  background: #fff;
}

.fee_notes {
  text-align: right;
  margin-top: 10px;
}

/* 費用表 共通（項目／料金の2列） */
.fee_pattern1:not(:last-child),
.fee_pattern2:not(:last-child) {
  margin-bottom: 55px;
}

.fee_pattern1_table,
.fee_pattern2_table {
  width: 100%;
  border-collapse: collapse;
  background: #fff;
}

.fee_pattern1_table th,
.fee_pattern1_table td,
.fee_pattern2_table th,
.fee_pattern2_table td {
  border: 1px solid #d8e0e6;
  padding: 24px 26px;
  text-align: center;
  vertical-align: middle;
}

/* 見出し行 */
.fee_pattern1_table thead th, .fee_pattern2_table thead th {
  background: #12345a;
  color: #fff;
  font-family: var(--font-type);
  font-weight: var(--font-weight);
  font-size: 17px;
  line-height: 1.4;
  letter-spacing: 0.08em;
  padding-top: 36px;
  padding-bottom: 36px;
}

/* 左＝項目 */
.fee_pattern1_table tbody th,
.fee_pattern2_table tbody th {
  background: #f4f8fa;
  font-weight: 400;
  width: 60%;
}

/* 費用表1の項目セルは左揃え（トータル表は中央のまま） */
.fee_pattern1_table tbody th {
  text-align: left;
}

.fee_pattern1_table_ttl {
  display: block;
  color: #12345a;
  font-family: var(--font-type);
  font-weight: var(--font-weight);
  font-size: 19px;
  line-height: 1.6;
  letter-spacing: 0.06em;
}

.fee_pattern1_table_img {
  display: block;
  margin-top: 14px;
}

.fee_pattern1_table_img img {
  max-width: 270px;
  width: 100%;
}

.fee_pattern1_table_note {
/*   font-size: 16px; */
  line-height: 1.9;
  letter-spacing: 0.02em;
  margin-top: 10px;
}

.fee_pattern1_table_note p:not(:last-child) {
  margin-bottom: 0.4em;
}

/* ・付きリスト（ACFの本文に貼るHTML用） */
.fee_list > li {
  position: relative;
  padding-left: 1.1em;
}

.fee_list > li::before {
  content: "・";
  position: absolute;
  left: 0;
  color: #12345a;
}

/* 右＝料金 */
.fee_pattern1_table_fee_text, .fee_pattern2_table_fee {
  display: inline-block;
  color: #12345a;
  font-family: var(--font-type);
  font-weight: var(--font-weight);
  font-size: 32px;
  letter-spacing: 0.06em;
  line-height: 1.4;
}

/* 数字と単位でサイズを変えず一律にする */
.fee_pattern1_table_fee_text strong,
.fee_pattern2_table_fee strong {
  font-size: inherit;
  font-weight: inherit;
}

.fee_pattern1_table td .cmn_btn {
  margin-top: 14px;
}

/* -----SP----- */
@media screen and (max-width: 640px) {
  /* SPは横並びをやめ、1項目ずつ縦に積む */
  .fee_pattern1_table,
  .fee_pattern1_table tbody,
  .fee_pattern1_table tr,
  .fee_pattern1_table th,
  .fee_pattern1_table td,
  .fee_pattern2_table,
  .fee_pattern2_table tbody,
  .fee_pattern2_table tr,
  .fee_pattern2_table th,
  .fee_pattern2_table td {
    display: block;
    width: 100%;
  }

  /* 「項目／料金」の列見出しはSPでは不要 */
  .fee_pattern1_table thead {
    display: none;
  }

  .fee_pattern1_table tbody tr,
  .fee_pattern2_table tbody tr {
    border: 1px solid #d8e0e6;
    border-radius: 8px;
    overflow: hidden;
  }

  .fee_pattern1_table tbody tr:not(:last-child),
  .fee_pattern2_table tbody tr:not(:last-child) {
    margin-bottom: 12px;
  }

  .fee_pattern1_table tbody th, .fee_pattern1_table tbody td, .fee_pattern2_table tbody th, .fee_pattern2_table tbody td {
    width: 100%;
    border: none;
    padding: 15px 14px;
    font-size: 14px;
}

  .fee_pattern1_table tbody td,
  .fee_pattern2_table tbody td {
    border-top: 1px solid #d8e0e6;
    background: #fff;
  }

  /* トータル表の「トータルの費用（片足）」は見出しとして残す */
  .fee_pattern2_table thead th {
    border-radius: 8px;
    margin-bottom: 12px;
    padding: 13px 14px;
    font-size: 15px;
  }

  .fee_pattern2_table thead th + th {
    display: none;
  }

  .fee_pattern1_table_ttl {
    font-size: 15px;
	text-align: center;
  }

  .fee_pattern1_table_note {
    font-size: 14px;
    line-height: 1.8;
  }

  .fee_pattern1_table_fee_text,
  .fee_pattern2_table_fee {
    font-size: 24px;
  }
}

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

  faq（よくある質問／直書き）

==================================================================*/
.faq {
  background: #eaf6f9 url(images/top_faq_bg.png) no-repeat center top/cover;
  padding-top: 100px;
  padding-bottom: 110px;
}

.faq_list {
  max-width: 1000px;
  margin-inline: auto;
}

.faq_item {
  background: #fff;
  border: 1px solid #dfe6ec;
  border-radius: 10px;
  overflow: hidden;
}

.faq_item:not(:last-child) {
  margin-bottom: 14px;
}

/* 質問（常に表示・クリックで開閉） */
.faq_q {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  cursor: pointer;
  list-style: none;
  padding: 21px 62px 21px 22px;
  color: #12345a;
  font-family: var(--font-type);
  font-weight: var(--font-weight);
  font-size: 17px;
  line-height: 1.6;
  letter-spacing: 0.04em;
  background-color: #fff;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 1v14M1 8h14' fill='none' stroke='%23d96f69' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 24px center;
  background-size: 15px auto;
  transition: background-color 0.2s ease;
}

/* ブラウザ標準の三角マーカーを消す */
.faq_q::-webkit-details-marker {
  display: none;
}

.faq_q::before {
  content: "Q";
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #12345a;
  color: #fff;
  font-size: 14px;
  letter-spacing: 0;
}

/* 開いているときは「−」に */
.faq_item[open] .faq_q {
  background-color: #f4f8fa;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M1 8h14' fill='none' stroke='%23d96f69' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
}

@media (hover: hover) {
  .faq_q:hover {
    background-color: #f4f8fa;
  }
}

/* 回答（クリックで開く） */
.faq_a {
  display: flex;
  gap: 14px;
  padding: 22px 24px 26px;
  border-top: 1px solid #eef2f6;
}

.faq_a::before {
  content: "A";
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #d96f69;
  color: #fff;
  font-family: var(--font-type);
  font-weight: var(--font-weight);
  font-size: 14px;
}

.faq_a_body {
  flex: 1 1 auto;
  min-width: 0;
/*   font-size: 15px; */
  line-height: 1.9;
  letter-spacing: 0.02em;
  text-align: justify;
  padding-top: 2px;
}

.faq_a_body > *:not(:last-child) {
  margin-bottom: 0.7em;
}

.faq_ul > li {
  position: relative;
  padding-left: 1.1em;
}

.faq_ul > li::before {
  content: "・";
  position: absolute;
  left: 0;
  color: #12345a;
}

/* -----SP----- */
@media screen and (max-width: 640px) {
  .faq {
    padding-top: 50px;
    padding-bottom: 50px;
}

  .faq_q {
    font-size: 15px;
    gap: 10px;
    padding: 16px 48px 16px 14px;
    background-position: right 16px center;
    background-size: 13px auto;
  }

  .faq_q::before,
  .faq_a::before {
    width: 24px;
    height: 24px;
    font-size: 12px;
  }

  .faq_a {
    gap: 10px;
    padding: 16px 14px 20px;
  }

  .faq_a_body {
    font-size: 14px;
    line-height: 1.85;
  }
}

.fee_end {
  padding: 60px 70px;
  background: #fff;
  box-shadow: 0 0 15px var(--bg-color);
}

.fee_end_tit,
.fee_end_text {
  padding-left: 28px;
  padding-right: 28px;
}

.fee_end_tit {
  font-family: var(--font-type);
  font-weight: var(--font-weight);
  font-size: 18px;
  line-height: 1.5;
  letter-spacing: 0.12em;
  padding-bottom: 12px;
  margin-bottom: 25px;
  position: relative;
}

.fee_end_tit::after {
  content: "";
  width: 100%;
  height: 3px;
  border-radius: 3px;
  background: var(--border-color);
  position: absolute;
  bottom: 0;
  left: 0;
}

.fee_end_text p:not(:last-child) {
  margin-bottom: 1em;
}

/* -----PC----- */
@media print, screen and (min-width: 641px) {
  .fee_notes {
    padding-right: 25px;
  }

  .fee_pattern2_table th {
    width: 56%;
  }
}

/* -----SP----- */
@media screen and (max-width: 640px) {
  .fee {
    padding-bottom: 50px;
    padding-top: 50px;
}

  .fee_pattern2_table th,
  .fee_pattern2_table td {
    display: block;
    width: 100%;
  }

  .fee_pattern2_table th {
    padding: 15px;
  }

  .fee_pattern2_table td {
    padding: 10px 15px;
  }

  .fee_end {
    padding: 30px 6%;
  }

  .fee_end_tit,
  .fee_end_text {
    padding-left: 10px;
    padding-right: 10px;
  }
}

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

  $footer

============================================================================*/
footer {
  position: relative;
}

/* 医院情報 */
.footer_info {
  background: #2b5578 url(images/footer_bg.jpg) no-repeat center top/cover;
  padding-top: 100px;
  padding-bottom: 100px;
}

.footer_info_homeBtn {
  text-align: center;
}

/* 公式サイトボタン：白地＋左にコーラルの矢印ブロック */
.footer_info_homeBtn a {
  position: relative;
  display: inline-block;
  background: #fff;
  color: #12345a;
  border-radius: 0;
  padding: 20px 46px 20px 108px;
  overflow: hidden;
  box-shadow: 0 4px 18px rgba(18, 52, 90, 0.16);
}

.footer_info_homeBtn a::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 72px;
  background: #e2827b url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 14'%3E%3Cpath d='M1 1l6 6-6 6' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center/10px auto;
}

/* ロゴは白いカードに載せる */
.footer_info_logo {
  max-width: 400px;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 26px;
  text-align: center;
  background: #fff;
  border-radius: 8px;
  padding: 16px 24px;
}


/* 医院概要 */
.footer_info_detail_item {
  padding: 0 10px 20px 43px;
}

.footer_info_detail_item:not(:last-child) {
  margin-bottom: 20px;
}

.footer_info_detail_item,
.footer_info_detail_item a {
  color: #fff;
}

.footer_info_detail_item {
  line-height: 1.5;
}

.footer_info_detail_item:not(:last-child) {
  border-bottom: 1px solid rgba(255, 255, 255, 0.28);
}

.footer_info_detail_tit {
  font-family: var(--font-type);
  font-weight: var(--font-weight);
  letter-spacing: 0.06em;
}


/* 診療時間 */
.footer_schedule:not(:last-child) {
  margin-bottom: 20px;
}

.footer_schedule_table {
  width: 100%;
  margin-bottom: 10px;
  border-spacing: 0;
  border-collapse: separate;
  border-radius: 8px;
  overflow: hidden;
  color: var(--text-color);
  line-height: 1.3;
}

.footer_schedule_table td, .footer_schedule_table th {
  border-bottom: 1px solid #e4ebf0;
  vertical-align: middle;
  background: #fff;
  letter-spacing: 0;
  text-align: center;
  padding-top: 5px;
  padding-bottom: 5px;
}

.footer_schedule_table th {
  width: 30%;
  height: 45px;
}

.footer_schedule_table td {
  width: 9%;
}

.footer_schedule_table tr:first-of-type th,
.footer_schedule_table tr:first-of-type td {
  color: #fff;
  background: #e2827b;
}

.footer_schedule_table tr:last-of-type th,
.footer_schedule_table tr:last-of-type td {
  border-bottom: none;
}

.footer_schedule_table tr:not(:first-child) td,
.footer_schedule_table tr:not(:first-child) th {
  font-family: var(--font-type);
  font-weight: var(--font-weight);
}

.footer_schedule_note {
  display: flex;
  flex-wrap: wrap;
  gap: 0 17px;
}


/* アクセスマップ */
.footer_info_access_map {
  text-align: center;
  border-radius: 10px;
  overflow: hidden;
  line-height: 0;
}

.footer_info_access_map iframe {
  width: 100%;
  height: 620px;
}

.footer_info_access_free {
  padding: 15px 40px;
  border: 1px solid var(--border-color);
  background: #fff;
  margin-top: 20px;
}


/* footer下部 */
.footer_bottom {
  background: #fff;
  padding-top: 40px;
  padding-bottom: 140px;
  line-height: 1.4;
  text-align: center;
}


/* ポリシー */
.footer_policy:not(:last-child) {
  margin-bottom: 30px;
}

.footer_policy a {
  color: #9d9d9d;
  font-size: 14px;
}

@media (hover: hover) {
  .footer_policy a:hover {
    opacity: 0.8;
  }
}


/* コピーライト */
.copy small {
  color: var(--main-color);
  font-size: 14px;
}


/* -----PC----- */
@media print, screen and (min-width: 641px) {
  .footer_info .cmn_inner {
    max-width: 1480px;
    padding-inline: 40px;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-start;
    gap: 52px 0;
  }

  .footer_info_top {
    width: 100%;
  }

  /* 医院概要は紺の半透明ボックスに載せる */
  .footer_info_left {
    width: 55%;
    background: rgba(17, 45, 76, 0.82);
    border-radius: 10px;
    padding: 38px 42px 34px;
  }

  .footer_info_right {
    width: 41.5%;
  }


  /* 医院概要 */
  .footer_info_detail_item {
    display: flex;
    gap: 0 20px;
  }

  .footer_info_detail_tit {
    min-width: 115px;
    width: 115px;
  }

  .footer_info_detail_text {
    flex: 1;
  }
}


/* -----SP----- */
@media screen and (max-width: 640px) {
  .footer_info {
    padding-bottom: 50px;
    padding-top: 50px;
}

  .footer_info_top:not(:last-child) {
    margin-bottom: 40px;
  }

  /* 公式サイトボタン：文字が折り返さないよう縮める */
  .footer_info_homeBtn a {
    font-size: 14px;
    letter-spacing: 0.04em;
    padding: 15px 18px 15px 72px;
  }

  .footer_info_homeBtn a::before {
    width: 54px;
    background-size: 9px auto;
  }

  .footer_info_left {
    margin-bottom: 40px;
    background: rgba(17, 45, 76, 0.82);
    border-radius: 10px;
    padding: 22px 12px 20px;
}

  /* 診療時間表：詰まるので小さめ＋字間なし */
  .footer_schedule_table td,
  .footer_schedule_table th {
    font-size: 12px;
    letter-spacing: 0;
    padding-left: 2px;
    padding-right: 2px;
  }

  .footer_schedule_table th {
    width: 42%;
  }

  .footer_schedule_note {
    font-size: 14px;
    gap: 0 10px;
  }


  /* 医院概要 */
  .footer_info_detail_item {
    padding: 0 15px 15px;
  }

  .footer_info_detail_item .footer_info_detail_item {
    padding: 15px;
  }

  .footer_info_detail_tit {
    margin-bottom: 10px;
  }

  .footer_info_detail_text {
    font-size: 14px;
    letter-spacing: 0;
  }


  /* 診療時間 */
  .footer_schedule_table {
    font-size: 14px;
  }

  .footer_schedule_table th {
    width: 30%;
  }

  .footer_schedule_table td {
    width: 10%;
  }


  /* アクセスマップ */
  .footer_info_access_map iframe {
    height: 300px;
  }

  .footer_info_access_free {
    padding: 10px 15px;
  }


  /* footer下部 */
  .footer_bottom {
    padding-top: 30px;
    padding-bottom: 80px;
  }


  /* ポリシー */
  .footer_policy a {
    font-size: 11px;
  }


  /* コピーライト */
  .copy small {
    font-size: 12px;
  }
}


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

  pagetop

============================================================================*/
.pagetop {
  display: flex;
  flex-flow: column;
  justify-content: center;
  width: 50px;
  height: 50px;
  border-radius: 5px;
  background: var(--main-color);
  color: #fff;
  font-size: 14px;
  font-family: var(--font-type);
  font-weight: var(--font-weight);
  line-height: 1;
  text-align: center;
  cursor: pointer;
  position: fixed;
  right: 10px;
  bottom: 60px;
  z-index: 9999;
}

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

  404

============================================================================*/
.nonePage {
  text-align: center;
  padding: 120px 0 90px;
}
.nonePage_tit {
  font-size: 18px;
  font-weight: bold;
  margin-bottom: 20px;
}
.nonePage .cmn_btn {
  margin-top: 20px;
}

/* -----SP----- */
@media screen and (max-width: 640px) {
  .nonePage {
    padding: 80px 0;
  }
}

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

  チャットBot（Zoho SalesIQ）の非表示

  本サイトのGTMコンテナ（GTM-N9M6DST）が全ページで読み込むため、
  LPにも表示されてしまう。SPでは固定ボタンに重なるので非表示にする。
  ※これは応急処置。恒久対応はGTM側でトリガーに
  　「Page URL に /lp_mpl を含む場合は発火しない」の例外を追加すること。

==================================================================*/
[data-id="zsalesiq"] {
  display: none !important;
}