@charset "utf-8";
/* CSS Document */

:root {
  --text-color: #555;
  /*メイン色*/
  --main-color: #e49188;
  /*サブ色*/
  --sub-color: #b2a28b;
  /*サイドメニュー・レイアウト類の背景色*/
  --bg-color: #f7f7f7;
  /*境界線色*/
  --border-color: #ccc;
  --line-color: #bbb;
}

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

body,
.nav_wrap.fixed,
.mega_menu,
#mainvisual,
.menu_list_wrap,
header,
footer {
  min-width: 1240px;
}
@media (min-width: 641px) and (max-width: 1024px) {
  body,
  .nav_wrap.fixed,
  .mega_menu,
  #mainvisual,
  .menu_list_wrap,
  header,
  footer {
    min-width: 1300px;
  }
}
@media screen and (max-width: 640px) {
  body,
  .nav_wrap.fixed,
  .mega_menu,
  #mainvisual,
  header,
  footer {
    min-width: 100%;
  }
  .menu_list_wrap {
    min-width: 18.25rem;
  }
}

body {
  font-family: "zen-maru-gothic","游ゴシック体", "Yu Gothic", YuGothic, "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  color: var(--text-color);
  font-size: 17px;
  font-weight: 400;
  font-style: normal;
  line-height: 2;
  letter-spacing: 0.05em;
  text-align: justify;
  
}

@media screen and (max-width: 640px) {
  body {
    font-size: 14px;
  }

  /* ナビ展開時スクロール禁止処理 */
  body.nav-open {
    overflow: hidden !important;
  }
}

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

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

a {
  color: var(--main-color);
  text-decoration: none;
}
a:hover {
  color: var(--sub-color);
}

/*tel*/
[href^="tel"]:hover {
  cursor: default;
}
a[href="tel:準備中"] {
  pointer-events: none;
} 

::selection {
  background-color: var(--sub-color);
}
::-moz-selection {
  background-color: var(--sub-color);
}

@media print{
  html {
    -webkit-print-color-adjust: exact;
  }
  body {
    zoom: 80%;
  }
  .fixed {
    position: inherit !important;
  }
}

/* 画像のにじみ（大きい画像を小さく表示した時等）対策 */
.visibility {
  image-rendering: -webkit-optimize-contrast;
  image-rendering: crisp-edges;
  backface-visibility: hidden;
}

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

  header

============================================================================*/
header {
  width: 100%;
  height: 100px;/* navのtopと同じ値にする */
  margin-bottom: 80px;/* navのheightと同じ値にする */
  position: absolute;
  z-index: 12;
  color: #fff;
}
@media screen and (max-width: 640px) {
  header {
    display: none;
  }
}

.header_inner {
  position: relative;
  padding: 0 5% 0 3%;
  height: inherit;
  margin: auto;
  padding-top: 25px;
}

/* ロゴ */
.header_logo {
  position: absolute;
  top: 49px;
  z-index: 11;
}
.header_logo img {
  width: 220px;
  height: 50px;
}
.header_logo a {
display: inline-block;
}
.header_logo span {
  display: block;
  width: 230px;
  line-height: 30px;
  height: 30px;
  color: #fff;
  background: #E49188;
  background: linear-gradient(90deg,rgba(228, 145, 136, 1) 0%, rgba(244, 210, 118, 1) 100%);
  border-radius: 5px;
  text-align: center;
  font-family: zen-maru-gothic, sans-serif;
  font-weight: 500;
  font-style: normal;
  margin-left: -7px;
  margin-top: 20px;
}

/* 住所 */
.header_info {
  float: right;
  text-align: right;
  padding-right: 25px;
  padding-top: 4px
}
.header_info_ad {
  font-size: 15px;
  letter-spacing: 0.05em;
}
.header_info_ad i {
  font-size: 13px;
  padding-right: 6px;
  position: relative;
  top: -2px
}

/* ご予約・お問合せ */
.header_tel {

  line-height: 1.4;
}
.header_tel a {
  color:#fff;
  position: relative;
  padding-left: 25px;
  font-size: 28px;
  letter-spacing: 0.075em;
  font-family: "Quicksand", sans-serif;
  font-optical-sizing: auto;
  font-weight: 500;
  font-style: normal;
}
.header_tel i {
  font-size: 21px;
  padding-right: 10px;
  padding-top: 4px
}

.header_mpcloud_links {
  display: flex;
  float: right;
  margin-left: 20px;
  width: 200px;
}
.header_mpcloud_links a {
  display: block;
  padding: 10px;
  min-width: 100px;
  background-color: var(--main-color);
  color: #fff;
  text-align: center;
  border: 1px solid #fff;
  transition: background-color 0.5s ease;
}
.header_mpcloud_links a:hover {
  background-color: rgb(31 39 116 / 0.8);
}
.header_contact {
  float: right;
}
.fixed_web_yoyaku_btn {
  position: fixed;
  right: 0;
  top: 0;
  z-index: 11;
  width: 60px;
  height: 100%;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  align-content: center;
}

.fixed_web_yoyaku_btn a {
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--main-color);
  writing-mode: vertical-rl;
  color: #fff;
  width: 100%;
  padding: 15px 10px;
  letter-spacing: 4px;
  font-size: 1.2em;
  font-weight: 600;
  line-height: 1;
}

@media (hover: hover) {
  .fixed_web_yoyaku_btn a {
    transition: 0.2s ease;
  }

  .fixed_web_yoyaku_btn a:hover {
    background: var(--sub-color);
  }
}

.fixed_web_yoyaku_btn a:not(:last-child) {
  margin-bottom: 10px;
}

.fixed_web_yoyaku_btn a i {
  margin-bottom: 5px;
}

.fixed_web_yoyaku_btn a.sns {
  padding: 20px 10px;
  font-weight: 500;
  font-size: 24px;
}

.fixed_web_yoyaku_btn a.sns i {
  letter-spacing: 0;
  margin-bottom: 0;
}

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

  nav

============================================================================*/
.nav_wrap {
  line-height: 1.6;
}
.mega_menu_ttl {
  font-weight: bold;
  padding-bottom: 10px;
  border-bottom: 1px solid;
  margin-bottom: 10px;
}


@media print, screen and (min-width: 641px) {
  .nav_wrap :is(.btn_menu) {
    display: none;
  }
  .nav_wrap {
    width: 100%;
    position: absolute;
    top: 120px;
    z-index: 10;
  }
  .menu_list_wrap {
    padding: 0 5% 0 3%;
    margin-left: auto;
    margin-right: auto;
  }

  /*----------ナビメニュー----------*/
  .nav_menu {
    display: flex;
    justify-content:flex-end;
    align-items: center;
    text-shadow: 0 0 5px rgb(0 0 0 / 0.5);
  }
  .nav_menu a {
    color: #fff;
  }
  .nav_menu > li {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    padding-left: 2%
  }
  .nav_wrap.fixed .nav_menu {
    justify-content: space-between;
  }
  .nav_wrap.fixed .nav_menu_tit {
    color: #fff;
    text-shadow: none;
  }
  .nav_wrap.fixed a.nav_menu_tit:hover {
    color: #555;
    text-shadow: 0 0 5px #fff,
    0 0 5px #fff;
  }
  .nav_wrap.fixed .nav_menu > li.item_only_fixed {
    display: block;
  }
  
  .nav_menu_tit {
    display: block;
    font-size: 17px;
    font-family: zen-maru-gothic, sans-serif;
    font-weight: 400;
    font-style: normal;
    letter-spacing: 0.05em;
    text-align: center;
    padding: 0;
    position: relative;
    z-index: 2;
    transition: 0.15s ease-out;
    color: #fff;
    
  }
  .parent_menu:not(.nav_menu_tit) {
    display: none;
  }
  .nav_menu_en {
    display: block;
    font-size: 12px;
    color: var(--main-color);
  }


  .nav_menu > li:last-child .nav_menu_tit::before {
    display: none;
  }
  .nav_menu > li.item_only_fixed {
    display: none;
  }

  /* hover */
  .nav_menu a.nav_menu_tit::after {
    position: absolute;
    left: 0;
    right: 0;
    bottom: -7px;
    width: 100%;
    height: 2px;
    margin: auto;
    background: #E49188;
    background: linear-gradient(90deg,rgba(228, 145, 136, 1) 0%, rgba(244, 210, 118, 1) 100%);
    transition: 0.15s ease-out;
    transform: scaleX(0);
    content: "";
    z-index: 1;
  }
  .nav_menu a.nav_menu_tit:hover {
    color: #fff;
  }
  .nav_menu a.nav_menu_tit:hover::after {
    transform: scaleX(1);
  }

  /*----------ナビ固定時----------*/
  .nav_wrap.fixed {
    position: fixed;
    top: 0;
    left: 0;
    bottom: auto;
    width: 100%;
    background: rgb(228, 145, 136, 0.7);
    height: 70px;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .nav_wrap.fixed .nav_menu {
    justify-content: space-between;
  }

  /*----------ドロップダウンメニュー----------*/
  .child_menu {
    font-size: 15px;
    opacity: 0;
    visibility: hidden;
    box-shadow: rgb(0 0 0 / 0.1) 0px 4px 12px;
    position: absolute;
    top: 140%;
    left: 0%;
    z-index: 9999;
    transition: 0.2s ease-in-out;
    text-shadow: none
  }
  .nav_slidebtm:hover .child_menu,
  .nav_slidebtm:focus-within > .child_menu {
    top: 120%;
    opacity: 1;
    visibility: visible;
  }
  .child_menu:not(.mega_menu) {
    width: 200px;
  }
  .child_menu:not(.mega_menu) a {
    display: block;
    padding: 12px 20px;
    background: rgb(255 255 255 / 0.8);
    position: relative;
    color: #555;
    font-weight: 600;
  }
  .child_menu:not(.mega_menu) a:not(:last-child) {
    border-bottom: 1px solid var(--border-color);
  }
  .child_menu:not(.mega_menu) a:hover {
    color: var(--main-color);
    background: #fcfcfc;
  }
	
  .child_menu:not(.mega_menu).work_menu {
    width: 325px;
  }

  /* ------- メガメニュー ------- */
  .nav_menu > li.is_mega {
    position: static!important;
  }
  .mega_menu {
    width: 100%;
    background: rgb(255 255 255 / 0.6);
  }
  .mega_menu_inner {
    padding: 40px 0;
    width: 1200px;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    gap: 0 3%;
  }
  .mega_menu_col {
    width: 100%;
  }
  .mega_menu_list > li a {
    position: relative;
    display: block;
    padding: 8px 0 8px 1.2em;
    transition: color 0.2s ease-in-out;
    position: relative;
  }
  .mega_menu_list > li a:hover {
    color: var(--sub-color);
  }
  .mega_menu_list > li a::before {
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    content: "\f105";
    letter-spacing: 0;
    position: absolute;
    left: 0;
    top: 8px;
  }

}

@media screen and (max-width: 640px) {
  .nav_wrap {
    width: 100%;
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    background: #fff;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 10000;
  }
  .nav_wrap .sp_logo {
    width: calc(100% - 55px);
  }
  .nav_wrap .sp_logo a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 55px;
    padding: 5px 22px;
  }
  .nav_wrap .sp_logo img {
    width: auto;
    max-height: 100%;
  }

  /* ------- ハンバーガーボタン ------- */
  .btn_menu {
    position: relative;
    right: 0;
    color: #fff;
    width: 55px;
    background: var(--sub-color);
    border: none;
    padding: 0;
    margin: 0;
    text-align: center;
    transition: right 0.6s cubic-bezier(.19, 1, .22, 1);
  }
  .btn_menu i {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 5px;
    margin: auto;
    font-style: normal;
    font-size: 12px;
    font-weight: bold;
    letter-spacing: 0.1em;
  }
  .btn_menu span {
    position: absolute;
    left: 0;
    right: 0;
    margin: auto;
    display: block;
    width: 35px;
    height: 2px;
    background: #fff;
    transition: all 0.6s cubic-bezier(.19, 1, .22, 1);
    opacity: 1;
  }
  .btn_menu span:nth-of-type(1) {
    top: 10px;
  }
  .btn_menu span:nth-of-type(2) {
    top: 20px;
  }
  .btn_menu span:nth-of-type(3) {
    top: 30px;
  }

  /* 押下時 */
  .btn_menu.active {
    right: 18.25rem;
  }

  .btn_menu.active span:nth-of-type(1) {
    top: 20px;
    transform: rotate(225deg);
  }

  .btn_menu.active span:nth-of-type(2) {
    opacity: 0;
  }

  .btn_menu.active span:nth-of-type(3) {
    top: 20px;
    transform: rotate(-225deg);
  }

  /* ------- スライドメニュー ------- */
  .menu_list_wrap {
    width: 18.25rem;
    height: 100%;
    transition: right 0.6s cubic-bezier(.19, 1, .22, 1);
    background: var(--sub-color);
    padding: 15px;
    position: fixed;
    top: 0;
    right: -18.25rem;
    z-index: 2;
    overflow: hidden;
  }
  /* 展開時 */
  body.nav-open .menu_list_wrap {
    overflow-y: scroll;
    overscroll-behavior-y: none;
    right: 0;
  }

  .menu_list_wrap,
  .menu_list_wrap a {
    color: #fff;
  }
  .menu_list_wrap a {
    display: block;
  }
  .nav_menu > li {
    border-bottom: 1px solid #fff;
  }
  .nav_menu > li:first-child {
    border-top: 1px solid #fff;
  }
  .nav_menu .nav_menu_tit,
  .nav_menu .parent_menu {
    padding: 15px 10px;
  }
  .nav_menu .nav_menu_en {
    display: none!important;
  }

  /* ------- 下層のあるメニュー ------- */
  .nav_menu .child_menu {
    padding-left: 15px;
    padding-bottom: 10px;
  }
  .nav_menu .child_menu a {
    padding: 5px 10px 5px 1.2em;
    text-indent: -1.2em;
  }
  .nav_menu .child_menu a::before {
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    content: "\f105";
    margin-right: 10px;
  }

  /* アコーディオンやメガでない時に、展開中に含まれる扉ページのリンクを非表示 */
  .nav_menu .nav_slidebtm:not(.is_accord,.is_mega) .child_menu a.sp:first-of-type {
    display: none!important;
  }

  /* アコーディオン&メガメニュー */
  .nav_slidebtm.is_accord,
  .nav_slidebtm.is_mega {
    cursor: pointer;
  }
  .nav_slidebtm.is_accord .parent_menu,
  .nav_slidebtm.is_mega .parent_menu {
    position: relative;
  }
  .nav_slidebtm:not(.is_accord,.is_mega) .parent_menu:not(.nav_menu_tit) {
    display: none;
  }
  .nav_slidebtm.is_accord .parent_menu::before,
  .nav_slidebtm.is_mega .parent_menu::before {
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    content: "\f067";
    display: flex;
    align-items: center;
    width: auto;
    height: auto;
    border: none;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    margin: auto;
  }
  .nav_slidebtm.is_accord > a.nav_menu_tit,
  .nav_slidebtm.is_mega > a.nav_menu_tit {
    display: none;
  }
  .nav_slidebtm.is_accord .child_menu,
  .nav_slidebtm.is_mega .child_menu {
    display: none;
    opacity: 0;
    visibility: hidden;
    transition: height 0.5s cubic-bezier(.19, 1, .22, 1);
  }

  /* アコーディオン&メガメニュー展開時 */
  .nav_slidebtm.is_accord.active .parent_menu::before,
  .nav_slidebtm.is_mega.active .parent_menu::before {
    content: "\f068";
  }
  .nav_slidebtm.is_accord.active .child_menu,
  .nav_slidebtm.is_mega.active .child_menu {
    opacity: 1;
    visibility: visible;
  }

  /* ------- メガメニュー ------- */
  .mega_menu_inner > *:not(:last-child) {
    margin-bottom: 20px;
  }

  /* ヘッダー固定ボタンエリア */
  .btn_area {
    width: 100%;
	bottom: 0px;
    position: fixed;
  }

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

  .btn_area li.btn {
    width: 100%;
    margin: 0 2.5px;
  }

  .btn_area li.btn a {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    color: #fff;
    text-align: center;
    font-weight: bold;
    padding: 10px 2%;
    border-radius: 5px;
  }

  .btn_area li.btn a i {
    width: 15px;
    margin-right: 3px;
  }

  .btn_area li.btn_tel a {
    background: #007ABA;
  }

  .btn_area li.btn_yoyaku a {
    background: #004F98;
  }

  .btn_area li.btn_monshin a {
  background: #E7B07A;
    background: linear-gradient(90deg, rgba(231, 176, 122, 1) 0%, rgba(230, 175, 175, 1) 100%);
    padding: 10px;
    border-radius: 10px;
    font-size: 16px;
  }

  .btn_area li.btn_access a {
    background: #00C7A3;
  }

  /* 準備中用のクラス */
  .btn_area li.btn.coming a {
    background: #aaa !important;
  }

  .btn_area li.btn.coming a {
    pointer-events: none;
    padding: 2px 2% 18px;
  }

  .btn_area li.btn.coming a::before {
    content: "（準備中）";
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
    text-align: center;
    font-size: 90%;
  }

  .btn_area li.btn a[href="tel:準備中"] {
    pointer-events: none;
    padding: 2px 2% 18px;
    background: #aaa;
  }
  .btn_area li.btn a[href="tel:準備中"]::after {
    content: "（準備中）";
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
    text-align: center;
    font-size: 90%;
  }

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

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

  mainvisual

============================================================================*/
/* ------- 下層 ------- */
.sub_mainvisual {
  display: block;
  height: 430px;
  background: #f0f0f0 url("../images/mv_kasou.jpg") no-repeat center;
  position: relative;
  overflow: hidden;
}

.sub_mainvisual .inner {
  width: 1200px;
  height: 100%;
  margin: 0 auto;
  display: flex;
  flex-flow: column;
  align-items: center;
  justify-content: center;
  letter-spacing: 0.15em;
  line-height: 1.4;
  text-align: center;
  text-shadow: 0 0 5px rgb(0 0 0  / 0.5);
  padding-top: 7%;
}

.sub_mainvisual .headline {
  font-size: 28px;
  color: var(--main-color);
  font-weight: bold;
}

.sub_mainvisual .headline + p {
  font-size: 15px;
  color: var(--sub-color);
  margin-top: 10px;
}

/* 飾り */
.sub_mainvisual p::before,
.sub_mainvisual p::after {
  position: relative;
  content: "-";
}
.sub_mainvisual p::before {
  left: -0.5em;
}
.sub_mainvisual p::after {
  right: -0.5em;
}

@media screen and (max-width: 640px) {
  /* ------- 共通 ------- */
  #mainvisual {
    margin-top: 108px;
  }

  /* ------- 下層 ------- */
  .sub_mainvisual {
    height: 130px;
    background-size: 170%;
  }
  .sub_mainvisual .inner {
    width: 100%;
    padding: 0 5%;
  }

  .sub_mainvisual .headline {
    font-size: 18px;
  }
}

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

  contents

==================================================================*/
main {
  display: block;
  position: relative;
}
main::before {
  position: absolute;
  top: 0;
  right: 0;
  background: url(../images/top_visit_bg01.png) top left no-repeat;
  width: 40%;
  max-width: 553px;
  height: 554px;
  content: "";
  z-index:1;
}
main::after {
  position: absolute;
  bottom: 0;
  left: 0;
  background: url("../images/voice_bg.jpg") bottom left no-repeat;
  width: 100%;
  height: 100%;
  content: "";
  z-index: -1;
  background-size: cover;
}

.contents {
  position: relative;
  width: 1200px;
  margin: 0 auto;
  padding-top: 70px;
  padding-bottom: 100px;
  z-index: 2;
}

.contents.contents-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-start;
}

.contents_left {
  width: 840px;
}

.contents_right {
  width: 280px;
  font-size: 15px;
  line-height: 1.6;
  position: sticky;
  top: 140px;
  margin-top: 70px;
}

/* 診療案内 右メニュー */
.medical_nav p {
  text-align:center;
}
.medical_nav p a {
  display:block;
  padding:15px 0;
  background-color:#fff;
  color:var(--text-color);
  font-weight:bold;
  font-size:19px;
  transition:0.1s ease-in-out;
  border-radius: 20px 20px 0 0;
}
.medical_nav p a span {
  display: block;
  font-size: 14px;
}
.medical_nav p a:hover {
  background-color:#e0d6ce;
  color:var(--main-color);
}
.medical_nav {
  padding: 10px;
  background: var(--main-color);
  border-radius: 27px;
  position: relative;
}
.medical_nav ul {
  background-color: #fff;
  border-radius: 15px;
}
.medical_nav li:nth-child(odd) {
  background-color: #f1ebe2;
}
.medical_nav li:nth-child(even) {
  background-color: #f9f4ee;
}
.medical_nav li a {
  display: block;
  padding: 10px;
  text-align: center;
}
.medical_nav li a:hover {
  background-color: #fff;
}
.medical_nav li:last-child a:hover {
  border-radius: 0 0 20px 20px;
}
.medical_nav li:last-child {
  margin-bottom:0;
  border-radius: 0 0 20px 20px;
}
.medical_nav img {
  width:100%;
}
.medical_nav li:nth-child(odd) {
  background-color: #f1ebe2;
}

@media screen and (max-width: 640px) {
  .contents {
    width: auto;
    padding-inline: 5%;
    padding-bottom: 70px;
    padding-top: 20px;
  }

  .contents.contents-row {
    display: block;
  }

  .contents_left {
    width: auto;
  }

  .contents_right {
    width: auto;
    padding: 0 5%;
  }
  main::before {
    width: 60%;
    background-size: 100%;
  }
}

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

  $box

==================================================================*/
.text:not(:last-child) {
  margin-bottom: 40px;
}
.text p {
  margin-bottom: 1em;
}
.text p:last-child {
  margin-bottom: 0;
}

.box:not(:last-child) {
  margin-bottom:80px;
}

.inner {
  max-width: 1200px;
  margin-inline: auto;
}

@media screen and (max-width: 640px) {
  .box:not(:last-child) {
    margin-bottom: 60px;
  }

  .inner {
    max-width: none;
    padding-inline: 5%;
    margin-inline: 0;
  }
}

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

  診療時間表

==================================================================*/
/* ------ 診療時間 ------ */
.office_hour:not(:first-of-type) {
  margin-top: 20px;
}

.office_hour .title {
  width: 100%;
  margin: 0 0 10px;
  padding: 10px;
  background: var(--main-color);
  color: #ffffff;
  text-align: center;
}

.office_hour .table_wrap {
  padding: 20px;
  background: var(--bg-color);
}

.office_hour table {
  width: 100%;
  border-spacing: 0;
}

.office_hour th,
.office_hour td {
  padding: 10px;
  background: none;
  border: none;
  font-weight: normal;
}

.office_hour th {
  width: 30%;
  line-height: 1;
  text-align: center;
}

.office_hour td {
  line-height: 1;
  text-align: center;
}

.office_hour .note {
  margin-top: 10px;
}

.closed {
  color: var(--main-color);
}

/* １つめ */
#office_hour02.office_hour .title {
  background: var(--sub-color);
}

.office_hour tr:first-child th,
.office_hour tr:not(:first-child) th{
  background: var(--bg-color);
  border: 1px solid #e0e0e0 !important;
}

/*==============================================
  *SP テーブル
==============================================*/
@media screen and (max-width: 640px) {

  /* ------ 診療時間 ------ */
  .office_hour .table_wrap {
    padding: 10px;
  }

  .office_hour th,
  .office_hour td {
    padding: 10px 0;
    font-size: 13px;
  }
}







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

  *footer

==================================================================================================================================*/
footer {
  position: relative;
  z-index: 1;
  width: 100%;
    font-family: "Shippori Mincho", serif;
  font-weight: 400;
  font-style: normal;
}

.footer_info {
  padding: 80px 0;
  background: linear-gradient(135deg , rgba(62, 60, 39, 0.7),rgba(62, 60, 39, 0.9)) , url("../images/footer_info_bg.jpg") no-repeat center / cover;
}

.footer_info .inner {
  display: flex;
  /* align-items: center; */
  flex-flow: wrap;
  justify-content: center;
  gap: 50px;
}

/* ------ 左側 ------ */
.footer_info_left {
  width: calc(50% - 25px);
}

/* ロゴ */
.footer_info_left .logo {
  width: 70%;
  height: auto;
  margin: 25px auto 40px;
}

/* 所在地 */
.footer_info_left address {
  display: flex;
  flex-flow: column;
  gap: 5px;
  margin-top: 40px;
}

.footer_info_left address > * {
  position: relative;
  z-index: 1;
  min-height: 40px;
}

.footer_info_left address > *::before {
  position: absolute;
  top: 0;
  left: 0;
  display: flex;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  width: 40px;
  height: 40px;
  padding: 0 0 0 2px;
  background: rgb(255, 255, 255 , 0.2);
  border-radius: 50%;
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  color: #ffffff;
  font-size: 16px;
  letter-spacing: 0.1em;
}

.footer_info_left address .location {
  padding: 5px 0 5px 55px;
  color: #ffffff;
}

.footer_info_left address .location::before {
  content: "\f3c5";
}

.footer_info_left address .location span {
  display: inline-block;
  margin-right: 10px;
}

.footer_info_left address .tel {
  margin-top: 10px;
  padding: 5px 0 5px 55px;
  font-family: "century-gothic", sans-serif;
  font-weight: 400;
  font-style: normal;
  font-size: 30px;
  line-height: 1;
}

.footer_info_left address .tel::before {
  content: "\f3cd";
}

.footer_info_left address .tel a {
  color: #ffffff;
  letter-spacing: 0.175em;
}

.footer_info_left address .fax {
  margin-top: 10px;
  padding: 5px 0 5px 55px;
  font-family: "century-gothic", sans-serif;
  font-weight: 400;
  font-style: normal;
  color: #ffffff;
  font-size: 30px;
  line-height: 1;
  letter-spacing: 0.175em;
}

.footer_info_left address .fax::before {
  content: "\f249";
}

.footer_info_left address .note {
  margin-top: 20px;
  padding-left: 12px;
  font-size: 90%;
}

/* 診療科目 */
.footer_info_speciality {
  display: flex;
  align-items: center;
  gap: 20px;
  margin: 30px auto 0;
  padding: 20px;
  background: rgb(255, 255, 255 , 0.25);
  color: #ffffff;

  backdrop-filter: blur(5px);
}

.footer_info_speciality .title {
  flex-shrink: 0;
  width: fit-content;
  padding: 10px 30px;
  background: rgb(255, 255, 255 , 0.2);
  text-align: center;
}

/* ----- 診療時間 ----- */
footer .office_hour {
  margin-top: 20px;
}

footer #office_hour01.office_hour {
  margin-top: 25px;
}

footer #office_hour01.office_hour .title {
  background: rgb(155, 152, 115 ,0.7);
}

footer #office_hour02.office_hour .title {
  background: rgb(115, 129, 155 , 0.7);
}

footer .office_hour .table_wrap {
  /* color: #fff; */
  background: rgb(255, 255, 255 , 0.8);
}

footer .office_hour .closed {
  color: #ffffff;
}

footer .office_hour .note {
  color: #ffffff;
}

/* ------ 右側　------ */
.footer_info_right {
  width: calc(50% - 25px);
}

/* GoogleMap */
.footer_info_right .googlemap {
  position: relative;
}

.footer_info_right .googlemap iframe {
  width: 100%;
  height: 623px;
}

.footer_info_right .footer_access {
  margin-top: 20px;
  color: #ffffff;
}

.footer_info_right .footer_access .list_access li {
  padding: 5px 0;
  border: none;
  color: #ffffff;
}

.footer_info_right .btn01 {
  margin-top: 30px;
  text-align: center;
  max-width: 500px;
  margin: 30px auto 0;
}

.footer_info_right .btn01 a{
  width: 100%;
}

.footer_info_right .btn01 > * {
  border: 1px solid #ffffff;
  color: #ffffff;
}


/* ----- 医療コラム ------ */
.footer_column {
  margin-top: 30px;
  padding: 30px 20px;
  background: rgba(255, 255, 255, 0.3);

  backdrop-filter: blur(2px);
}

.footer_column_title {
  margin: 0 auto 20px;
  text-align: center;
}

.footer_column_title h2 {
  margin: 0;
  padding: 0;
  background: none;
  border: 0;
  border-radius: 0;
  color: #ffffff;
  font-size: 150%;
}

.footer_column_title h2::before{
  display: none;
}

.footer_column_title span {
  color: #ffffff;
  font-size: 110%;
}

.footer_column .column_list {
  display: flex;
  flex-flow: column;
  justify-content: center;
}

.footer_column .column_list li {
  padding: 15px;
  overflow: hidden;
  border-bottom: 1px solid rgb(255, 255, 255 , 0.3);
  white-space: nowrap;
  text-overflow: ellipsis;
}

.footer_column .column_list .column_info {
  margin: 0 0 10px;
  font-size: 90%;
}

.footer_column .column_list .column_info .date {
  margin-right: 15px;
  color: #ffffff;
}

.footer_column .column_list .column_info .category {
  display: inline-block;
  min-width: 80px;
  padding: 0 10px;
  background: var(--main-color);
  color: #ffffff;
  font-size: 90%;
  text-align: center;
}

.footer_column .column_list li a {
  color: #ffffff;
}

.footer_column .column_list li a:hover {
  color: #ffffff;
  opacity: 0.5;
}

/* 記事がない時 */
.column_none {
  color: #fff;
  text-align: center;
}


/*==============================================
  *SP footer
==============================================*/
@media screen and (max-width:640px) {
  .footer_info {
    padding: 50px 20px!important;
    background: linear-gradient(135deg , rgba(62, 60, 39, 0.7),rgba(62, 60, 39, 0.9)) , url(../images/footer_info_bg_sp.jpg) no-repeat center / cover;
  }

  .footer_info .inner {
    gap: 30px;
    padding: 0;
  }

  .footer_info_left .logo {
    width: 80%;
    max-width: 350px;
    margin: 0 auto 20px;
  }

  .footer_info_left {
    width: 100%;
  }

  .footer_info_left address {
    margin-top:30px;
  }
  .footer_info_left address .location::before {
    top: 12px;
  }

  .footer_info_left address .location span {
    display: block;
    margin: 0;
  }

  .footer_info_tel {
    margin-bottom: 35px;
  }

  .footer_info_left address .tel a {
    font-size: 24px;
  }

  .footer_info_left address .fax {
    font-size: 24px;
  }

  /* 診療科目 */
  .footer_info_speciality {
    flex-flow: column;
    gap: 10px;
  }

  .footer_info_speciality .title {
    width: 100%;
  }

  .footer_info_right {
    width: 100%;
  }

  .footer_info_right .map {
    margin-bottom: 20px;
  }

  .footer_info_right .googlemap iframe {
    height: 300px;
  }

  /* ----- 医療コラム ----- */
  .footer_column_title {
    margin: 0 auto 10px;
  }

  .footer_column .column_list .column_info .category {
    min-width: 70px;
  }
  .footer_info .btn01 a {
    font-size: 17px;
    height: 60px;
    line-height: 60px;
  }
   .footer_info .btn01 a::before {
    right: 14px;
    top: 9px;
   }
   .footer_info .btn01 a::after {
    right: 26px;
    top: 36%;
   }
}


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

  *f-nav

==================================================================================================================================*/
.footer_navi {
  padding: 90px 0 70px;
  background: var(--text-color);
}

.footer_navi .inner {
  display: flex;
  flex-flow: wrap;
  gap: 60px 60px;
  width: 100%;
  margin: 0 auto;
}

.footer_navi ul {
  display: grid;
  gap: 30px 30px;
  grid-template-columns: repeat(2, auto);
  height: fit-content;
}

.footer_navi ul li {
  height: fit-content;
}

/* ------ タイトル ------ */
.footer_navi_title {
  margin-bottom: 20px;
  line-height: 1.5;
}

.footer_navi_title a {
  position: relative;
  display: inline-block;
  padding-left: 22px;
  color: var(--text-color);
  color: #ffffff!important;
  font-size: 16px;
}

.footer_navi_title a::before {
  content: "";
  position: absolute;
  top: 10px;
  left: 0;
  display: block;
  width: 5px;
  height: 5px;
  background: var(--sub-color);
  transition: background 0.2s;
}

.footer_navi_title a:hover {
  opacity: 0.5;
}

.footer_navi_title a.nolink:hover {
  opacity: 1;
}

/* ------ 固定ページのナビ ------  */
.page_navi {
  gap: 15px;
  line-height: 1.5;
}

.page_navi li a {
  position: relative;
  display: inline-block;
  padding-left: 22px;
  color: #ffffff;
  font-size: 16px;
}

.page_navi li a:hover {
  color: #ffffff;
  opacity: 0.5;
}

.page_navi li a::before {
  content: "";
  position: absolute;
  top: 11px;
  left: 0;
  display: block;
  width: 5px;
  height: 5px;
  background: #9b9873;;
  transition: background 0.2s;
}

/* ------　下層ページのナビ　------ */
.footer_navi .under_navi {
  display: grid;
  gap: 20px 30px;
  grid-template-columns: repeat(2, auto);
  line-height: 1.5;
}

.under_navi li a {
  position: relative;
  display: inline-block;
  color: var(--text-color);
  color: #ffffff!important;
  font-size: 95%;
}

.under_navi li a:hover {
  opacity: 0.5;
}

.under_navi li a::before {
  content: "-";
  display: inline-block;
  margin-right: 10px;
}

/* ------　ブログのナビ　------ */
.footer_navi  .blog_navi {
  grid-template-columns: repeat(1, auto);
}


/*==============================================
  *SP f-nav
==============================================*/
@media screen and (max-width:640px) {
  .footer_navi {
    padding: 50px 0 20px;
  }

  .footer_navi .inner {
    gap: 25px;
  }

  .footer_navi ul {
    gap: 25px 20px;
    width: 100%;
  }

  /* タイトル */
  .footer_navi_title {
    margin-bottom: 20px;
  }

  .footer_navi_title a {
    padding-left: 16px;
    font-size: 15px;
  }

  .footer_navi_title a::before {
    top: 9px;
    width: 5px;
    height: 5px;
  }

  .navi_wrap {
    width: 100%;
  }

  /* ------ 固定ページ ------ */
  .page_navi {
    grid-template-columns: repeat(2, auto);
    width: 100%;
  }

  .page_navi li a {
    padding-left: 16px;
    font-size: 14px;
  }

  .page_navi li a::before {
    top: 9px;
    width: 5px;
    height: 5px;
  }

  /* ------ 下層ページのナビ ------ */
  .footer_navi .under_navi {
    gap: 20px;
    width: 100%;
    padding-left: 10px;
  }

  /* ------ ブログのナビ ------ */
  .footer_navi  .blog_navi {
    grid-template-columns: repeat(2, auto)!important;
  }
}


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

  *SNS（footer）

==================================================================================================================================*/
.footer_sns {
  padding: 20px 0;
  background: var(--text-color);
}

.footer_sns ul {
  display: flex;
  justify-content: center;
  gap: 20px;
}

.footer_sns li a {
  display: block;
  color: #ffffff!important;
  font-size: 28px;
  line-height: 1;
}

.footer_sns li a:hover {
  opacity: 0.5;
}

/*==============================================
  *SP SNS（footer）
==============================================*/
@media screen and (max-width:640px) {
  .footer_sns {
    padding: 30px 0;
  }
}


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

  *ページトップ

==================================================================================================================================*/
.pagetop {
  position: fixed;
  z-index: 10;
  right: 40px;
  bottom: 40px;
  display: block;
}

.pagetop p {
  display: flex;
  flex-flow: column;
  justify-content: center;
  align-items: center;
  color: #ffffff;
  line-height: 1;
  text-align: center;
  cursor: pointer;
}

.pagetop span {
  display: block;
  padding-left: 30px;
  font-family: "century-gothic", sans-serif;
  font-weight: 400;
  font-style: normal;
  font-size: 12px;
  writing-mode: vertical-rl;
  filter: drop-shadow(0 0 2px rgb(0, 0, 0 , 0.3)) drop-shadow(0 0 2px rgb(0, 0, 0 , 0.3));
  transition: padding 0.4s , color 0.4s , filter 0.4s;
}

.pagetop:hover span {
  color: var(--sub-color);
  filter: drop-shadow(0 0 2px rgba(255, 255, 255, 1)) drop-shadow(0 0 2px rgba(255, 255, 255, 1)) drop-shadow(0 0 2px rgba(255, 255, 255, 1));
}

.pagetop span::before {
  content: "";
  position: absolute;
  bottom: 3px;
  left: 0;
  display: block;
  width: 7px;
  height: 32px;
  background: #ffffff;
          mask: url(../images/pagetop.svg) no-repeat center / cover;
  -webkit-mask: url(../images/pagetop.svg) no-repeat center / cover;
  transition: background 0.4s , bottom 0.4s;
}

.pagetop span:hover::before {
  bottom: 30px;
  background: var(--sub-color);
}

/*==============================================
  *SP ページトップ
==============================================*/
@media screen and (max-width:640px) {
  .pagetop {
    right: 15px;
    bottom: 80px;
    left: auto;
    display: none;
  }

  .pagetop span {
    padding-left: 23px;
    font-size: 10px;
  }

  .pagetop span::before {
    bottom: 3px;
    width: 6px;
    height: 29px;
  }

  .pagetop span:hover::before {
    bottom: 24px;
  }
}


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

  *コピーライト

==================================================================================================================================*/
.copy {
  padding: 30px 0 45px;
  background: var(--text-color);
  background: var(--text-color);
  line-height: 1.5;
  text-align: center;
}

.copy small {
  color: #ffffff;
  font-size: 14px;
}

/*==============================================
  *SP コピーライト
==============================================*/
@media screen and (max-width: 640px) {
  .copy {
    margin-top: 0;
    padding: 0 0 90px;
  }
}
/*==================================================================

  タイトル

==================================================================*/
h1 {
  font-size: 12px;
  position: absolute;
  padding: 0 3%;
  top: 5px;
  right: 0;
  left: 0;
  margin: auto;
  color: #fff;

}
@media screen and (max-width: 640px) {
  h1 {
    width: auto;
    padding: 10px 3%;
    background: #fff;
    text-align: center;
    position: static;
    margin: 0;
    color: #ccc;
    font-size: 10px;
    line-height: 1.4;
  }
}

/* 中央寄せ　背景画像あり */
.tit01 {
  position: relative;
  margin-bottom: 2.8%;
  letter-spacing: 0.2em;
  line-height: 1.5;
  font-size: 24px;
  font-weight: 500;
  text-align: center;
}
.tit01::before{
  position: absolute;
  width: 200px;
  height: 62px;
  top:0;
  bottom: 0;
  right: 0;
  left:0;
  margin: auto ;
 
  background-repeat:no-repeat;
  background-position: center bottom;
  background-size:cover;
  z-index: -1;
  content: "";
}
.tit01_en {
  display: block;
  font-size: 80px;
  font-family: "new-atten-round", sans-serif;
  font-weight: 400;
  font-style: normal;
  text-align: center;
  letter-spacing: 0;
  line-height: 1.2;
  margin-bottom: 19px;
  position: relative;
  z-index: 1;
}
.tit01_en::before {
  position: absolute;
  left: 0;
  right: 0;
  bottom: -9px;
  margin: auto;
  background: url("../images/tit01_kazari.png") bottom center no-repeat;
  width: 100%;
  max-width: 819px;
  height: 55px;
  content: "";
  z-index: -1;
  background-size: 100%;
}

.tit01_en span {
  display: inline-block;
  background: linear-gradient(90deg, #eaa8a2, #f4d276);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}
.tit01_border {
  position: relative;
}
.tit01_border::after {
  position: absolute;
  background: #E49188;
  background: linear-gradient(90deg,rgba(228, 145, 136, 1) 0%, rgba(244, 210, 118, 1) 32%, rgba(244, 210, 118, 1) 70%, rgba(228, 145, 136, 1) 100%);
  width: 100%;
  height: 2px;
  content: "";
  top: 53px;
  left: 0;
}

/* 左寄せ　背景画像あり */
.tit02 {
  position: relative;
  z-index: 0;
  margin-bottom: 30px;
  padding:14px 14px 16px ;
  letter-spacing: 0.15em;
  font-size: 26px;
  font-weight:bold;
  line-height: 1.4;
  text-align: left;
  background: rgba(255,255,255,0.6)
  
}
.tit02::before{
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 4px;
  background: #E49188;
  background: linear-gradient(90deg, rgba(228, 145, 136, 1) 0%, rgba(244, 210, 118, 1) 100%);
  content: "";
}
.tit02::after{
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 4px;
  background: #E49188;
  background: linear-gradient(90deg, rgba(228, 145, 136, 1) 0%, rgba(244, 210, 118, 1) 100%);
  content: "";
}
.tit02 i{
  margin-right:7px;
}

/* 左寄せ */
.tit03 {
  display: block;
  color: #fff;
  letter-spacing: 0.1em;
  font-size: 120%;
  width: 100%;
  background: linear-gradient(90deg, #e7b07a, #e6afaf);
  padding: 3px 17px;
  border-radius: 10px;
  font-weight: 500;
  margin-bottom: 11px;
  line-height: 1.3;
  box-shadow: 0 0 15px #fff;
}

/* tit04 */
.tit04 {
  background: var(--main-color);
  padding: 12px 18px;
  border-radius: 6px;
  color: #fff;
  font-size: 18px;
  font-weight: bold;
  letter-spacing: 0.12em;
  line-height: 1.6;
  margin-bottom: 12px;
}

/* 中央寄せ　電球 */
.tit05 {
  position: relative;
  padding: 1rem;
  text-align: center;
  border-top: 1px solid #000;
  border-bottom: 3px solid #000;
  background: #fff;
  margin-bottom: 40px;
}
.tit05:before,
.tit05:after {
  position: absolute;
  content: '';
}
.tit05:before {
  top: -40px;
  left: calc(50% - 40px);
  width: 80px;
  height: 80px;
  border: 1px solid #000;
  border-radius: 50%;
  background: #fff;
}
.tit05:after {
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #fff;
}
.tit05 i {
  font-size: 30px;
  font-size: 1.7rem;
  line-height: 60px;
  position: absolute;
  z-index: 1;
  top: -40px;
  left: calc(50% - 40px);
  width: 80px;
  height: 60px;
  text-align: center;
}
.tit05 span:before {
  top: -100px;
  left: calc(50% - 27px);
  width: 55px;
  height: 32px;
  background: url(../images/radiation.svg) top center no-repeat;
  position: absolute;
  content: '';
}
.tit05 span:last-child {
  font-size: 30px;
  font-weight: 600;
  position: relative;
  z-index: 1;
}

/* 青い背景+水玉（左右）+文字左寄せ */
.tit06 {
  position: relative;
  margin-bottom: 27px;
  letter-spacing: 0.15em;
  line-height: 1.4;
  color: #00568c;
  font-size: 19px;
  font-weight: bold;
  text-align: left;
  padding: 15px 15px 13px;
  background: #c6e3f1;
}
.tit06::before {
  position: absolute;
  top: -15px;
  left: -8px;
  width: 80px;
  height: 22px;
  background: url(../images/kazari_h_top.png) no-repeat;
  content: "";
  z-index: 1;
}
.tit06::after {
  position: absolute;
  bottom: -13px;
  right: 0;
  width: 80px;
  height: 22px;
  background: url(../images/kazari_h_bottom.png) no-repeat;
  content: "";
  z-index: 1;
}

/* 緑背景+左寄せ+右側に画像 */
.tit07 {
  position: relative;
  font-size: 18px;
  font-weight: 600;
  display: block;
  line-height: 1.5;
  margin: 0 0 25px;
  padding: 13px 80px 13px 15px;
  background-color: #daeccc;
  color: #48a565;
  border-radius: 5px;
}
.tit07::before {
  position: absolute;
  width: 73px;
  height: 82px;
  top: -15px;
  right: 3px;
  margin: auto;
  background: url(../images/kazari_dammy01.png);
  background-size: cover;
  z-index: 1;
  content: "";
}

/* 左寄せ+左右に三角 */
.tit08 {
  position: relative;
  margin-bottom: 20px;
  letter-spacing: 0.15em;
  line-height: 1.4;
  font-size: 18px;
  font-weight: 600;
  text-align: left;
  border: 1px #000 solid;
  padding: 0.5em 0.7em;
}
.tit08::before {
  position: absolute;
  width: 55px;
  height: 45px;
  top: -5px;
  left: -5px;
  margin: auto;
  clip-path: polygon(0 0, 0 45%, 100% 0);
  background-color: #fffe00;
  z-index: -1;
  content: "";
}
.tit08::after {
  position: absolute;
  width: 55px;
  height: 45px;
  bottom: -5px;
  right: -5px;
  margin: auto;
  clip-path: polygon(0 100%, 100% 100%, 100% 45%);
  background-color: #fffe00;
  z-index: -1;
  content: "";
}

/* 左寄せ+斜線 */
.tit09 {
  position: relative;
  margin-bottom: 20px;
  letter-spacing: 0.15em;
  line-height: 1.4;
  font-size: 18px;
  font-weight: 600;
  text-align: left;
  background: repeating-linear-gradient(45deg, #fff9e6, #fff9e6 5px, #fbf0d0 5px, #fbf0d0 10px);
  box-shadow: 0px 0px 0px 5px #fbf0d0;
  border: dashed 2px white;
  padding: 0.5em 0.7em 0.4em;
}
.tit09:after {
  position: absolute;
  content: '';
  left: -7px;
  top: -7px;
  border-width: 0 0 15px 15px;
  border-style: solid;
  border-color: #fff #fff #f3dfa4;
  box-shadow: 1px 1px 1px rgb(0 0 0 / 0.15);
}

/* 左側に画像+左寄せ */
.tit10 {
  position: relative;
  margin-bottom: 30px;
  padding: 14px 14px 14px 45px;
  letter-spacing: 0.15em;
  line-height: 1.4;
  color: var(--main-color);
  font-size: 22px;
  font-weight: 600;
  text-align: left;
}
.tit10::before {
  position: absolute;
  top: 0.7em;
  left: 0;
  display: block;
  width: 0.5em;
  height: 0.5em;
  background: #ffa3a3;
  box-shadow: 0 0.6em 0 #93e099, 0.6em 0 0 #8adaf9, 0.6em 0.6em 0 #efc378;
  content: "";
}

/* 左側に画像+左寄せ */
.tit11 {
  position: relative;
  margin-bottom: 30px;
  padding: 0 0 0 20px;
  letter-spacing: 0.15em;
  line-height: 1.4;
  color: var(--main-color);
  font-size: 22px;
  font-weight: 600;
  text-align: left;
  border-left: 5px solid #82c79a;
}
.tit11::before {
  position: absolute;
  left: -5px;
  bottom: 0;
  content: '';
  width: 5px;
  height: 50%;
  background-color: #39588e;
}

/* 左側に電球+左寄せ */
.tit12 {
  position: relative;
  background: #f4f4f4;
  padding: 7px 5px 7px 70px;
  font-size: 20px;
  color: #474747;
  border-radius: 25px 15px 15px 25px;
  font-weight: 600;
  margin-bottom: 30px;
  line-height: 2;
}
.tit12:before {
  font-family: "Font Awesome 6 Free";
  content: "\f0eb";
  display: inline-block;
  position: absolute;
  padding: 0em;
  color: #fff;
  background: #ff6363;
  font-weight: normal;
  width: 55px;
  text-align: center;
  height: 55px;
  line-height: 55px;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  border-radius: 50%;
  box-shadow: 1px 1px 2px rgb(0 0 0 / 0.29);
}

/* 左寄せ+右側に背景画像 */
.tit13 {
  display: block;
  margin-bottom: 20px;
  padding: 2px 0 0;
  line-height: 2.6;
  border-top: 3px solid #333;
  border-bottom: 1px dashed #333;
  font-size: 20px;
  font-weight: 600;
  background: url(../images/kazari_dammy01.png) right center no-repeat;
}

/* 左側に●+左寄せ */
.tit14 {
  position: relative;
  margin-bottom: 70px;
  letter-spacing: 0.15em;
  line-height: 1.4;
  color: #0d6fb8;
  font-size: 18px;
  font-weight: 600;
  text-align: left;
  padding-left: 1.5em;
}
.tit14:before {
  font-family: "Font Awesome 6 Free";
  content: "\f111";
  position: absolute;
  font-size: 1em;
  left: 0;
  color: #e69cbd;
}

/* 中央寄せ+上に画像+タイトル+下にサブタイトル */
.tit15 {
  position: relative;
  margin-bottom: 30px;
  padding: 70px 0 15px;
  letter-spacing: 0.15em;
  line-height: 1.2;
  font-weight: bold;
  text-align: center;
  color: #583a21;
  font-size: 30px;
}
.tit15::before {
  position: absolute;
  width: 53px;
  height: 59px;
  top: 0;
  bottom: auto;
  right: 0;
  left: 0;
  margin: auto;
  background-image: url(../images/kazari_dammy01.png);
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  content: "";
}
.tit15 span {
  display: block;
  position: relative;
  letter-spacing: 2.5px;
  font-weight: 500;
  font-style: normal;
  color: #583a21;
  font-size: 17px;
}

/* 左寄せ+左側に●+丸い背景 */
.tit16 {
  color: #505050;
  padding: 0.5em;
  display: inline-block;
  line-height: 1.3;
  background: #dbebf8;
  vertical-align: middle;
  border-radius: 25px 3px 3px 25px;
  font-weight: 600;
  font-size: 20px;
  margin-bottom: 20px;
}
.tit16:before {
  content: '●';
  color: #fff;
  margin-right: 8px;
}

/* 左寄せ+下線 */
.tit17 {
  border-bottom: solid 3px #87ceeb;
  position: relative;
  font-size: 22px;
  font-weight: 600;
  text-align: left;
  margin-bottom: 15px;
}
.tit17:before {
  position: absolute;
  content: " ";
  display: block;
  border-bottom: solid 3px #ffc778;
  bottom: -3px;
  width: 15%;
}

/* 上下線 */
.tit18{
  padding: 15px 30px;
  border-top: 3px solid #000;
  border-bottom: 3px solid #000;
  margin-bottom: 15px;
}

/* 吹き出し+背景色あり */
.tit19 {
  position: relative;
  padding: 15px 30px;
  color: #fff;
  border-radius: 10px;
  background: var(--main-color);
  margin-bottom: 15px;
}

.tit19:after {
  position: absolute;
  bottom: -9px;
  left: 15px;
  width: 0;
  height: 0;
  content: '';
  border-width: 10px 10px 0 10px;
  border-style: solid;
  border-color: var(--main-color) transparent transparent transparent;
}

/* 下線のみの吹き出し */
.tit20 {
  position: relative;
  padding: 15px 30px;
  border-bottom: 3px solid var(--main-color);
  font-size: 24px;
  margin-bottom: 15px;
}

.tit20:before {
  position: absolute;
  bottom: -14px;
  left: 1em;
  width: 0;
  height: 0;
  content: '';
  border-width: 14px 12px 0 12px;
  border-style: solid;
  border-color: var(--main-color) transparent transparent transparent;
}

.tit20:after {
  position: absolute;
  bottom: -10px;
  left: 1em;
  width: 0;
  height: 0;
  content: '';
  border-width: 14px 12px 0 12px;
  border-style: solid;
  border-color: #fff transparent transparent transparent;
}

/* ナンバー+タイトル */
.tit21 {
  position: relative;
  overflow: hidden;
  padding: 20px 30px  20px 130px;
  border-top: 3px solid #000;
  font-size: 24px;
  margin-bottom: 15px;
}
.tit21:before {
  position: absolute;
  top: -150%;
  left: -100px;
  width: 200px;
  height: 300%;
  content: '';
  transform: rotate(25deg);
  background: #000;
}
.tit21 span {
  font-size: 36px;
  position: absolute;
  z-index: 1;
  top: 8px;
  left: 0;
  display: block;
  padding-top: 3px;
  padding-left: 16px;
  color: #fff;
}

/* 下に小さな下線 */
.tit_box01{
  position: relative;
  margin-bottom: 30px;
}
.tit_box01 h2 {
  font-size: 30px;
  position: relative;
  text-align: center;
}

.tit_box01 p {
  font-size: 18px;
  text-align: center;
}

.tit_box01:before {
  position: absolute;
  bottom: -10px;
  left: 0;
  right: 0;
  margin: auto;
  width: 60px;
  height: 5px;
  content: '';
  border-radius: 3px;
  background: #fa4141;
}

@media screen and (max-width: 640px) {
  .tit01 {
    font-size: 20px;
    margin-bottom: 30px;
    letter-spacing: 0.07em;
  }
  .tit01_en {
    font-size: 40px;
  }
  .tit01_en::after {
    width: 75% !important;
  }
  .tit02 {
    font-size: 19px;
    letter-spacing: 0.05em;
    margin-bottom: 20px;
    padding: 20px 5px;
  }
  .tit03 {
    font-size: 16px;
    letter-spacing: 0.05em;
    padding: 10px 5px
  }
  .tit01_border::after {
    top: 25px;
  }
}



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

  .btn
  共通CSSなので使っていないものも消さずに残してください

==================================================================*/
.btn_flex {
  display: flex;
  justify-content: center;
  gap: 0 20px;
  background: rgba(255,255,255,0.6);
  padding: 30px;
  margin-top: 30px;
  border-radius: 10px
}
.btn_flex .btn01  {
  width: 48%
}
.btn_flex .btn01 a {
  display: flex;
  justify-content: center;
  align-items: center;
  background: var(--sub-color);
  padding: 0;
  width: 100%;
  height: 120px;
  line-height: 1.5;
  
  border-radius: 30px;
  padding-right: 30px;
}
.btn_flex .btn01 a::before {
  top: 27px;
  right: 19px;
}
.btn_flex .btn01 a:after {
  right: 41px;
}
.btn_flex .btn01.item02 a {
  background: var(--main-color);
}

/* btn01 */
.btn01 {
  text-align: center;
}
.btn01 a {
  display: inline-block;
  position: relative;
  border: 1px solid #fff;
  text-align: center;
  color: #fff;
  font-weight: bold;
  transition: ease-in-out 0.1s;
  margin: auto;
  height: 80px;
  line-height: 80px;
  font-size: 22px;
  letter-spacing: 0.05em;
  background: #E7B07A;
  background: linear-gradient(90deg,rgba(231, 176, 122, 1) 0%, rgba(230, 175, 175, 1) 100%);
  padding: 0 100px;
  border-radius: 100vh;
}


.btn01 {
  position: relative;
}
.btn01 a:hover{
  background: #fff !important;
  color: rgba(231, 176, 122, 1) !important;
  border: solid 3px rgba(231, 176, 122, 1) !important;
}
.btn01 a::before {
  position: absolute;
  width: 60px;
  height: 60px;
  background: #fff;
  content: "";
  right: 11px;
  top: 11px;
  border-radius: 100%;
}
.btn01 a::after {
  position: absolute;
  top: 42%;
  right: 32px;
  background: url("../images/btn_arrow.png") center no-repeat;
  width: 16px;
  height: 15px;
  content: "";
}

/* btn02 */
.btn02 a {
  text-decoration: none;
  display: inline-block;
  color: #fff;
  border-radius: 4px;
  background: #a5cd95;
  box-shadow: 0px 5px 0 #74aa5f;
  padding: 16px;
  transition: 0.2s all ease 0s;
}
.btn02 a:hover {
  transform: translate3d(0, 3px, 0);
  box-shadow: 0px 1px 0 #74aa5f;
}
.btn02 a i {
  margin-right: 7px;
}

/* btn03 */
.btn03 a {
  position: relative;
  display: inline-block;
  padding: 8px 20px;
  border: 1px solid #00408f;
  background: #00408f;
  color: #fff;
  font-weight: bold;
  transition: ease-in-out 0.2s;
  border-radius: 25px;
  overflow: hidden;
}
.btn03 a::before {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1;
  content: '';
  background: #fff;
  transform-origin: right top;
  transform: scale(0, 1);
  transition: transform .3s;
}
.btn03 a span {
  z-index: 2;
  position: relative;
}
.btn03 a i {
  margin-right: 7px;
}
.btn03 a:hover {
  color: #00408f;
}
.btn03 a:hover::before {
  transform-origin: left top;
  color: #00408f;
  transform: scale(1, 1);
}

/* btn04 */
.btn04 a {
  position: relative;
  display: inline-block;
  padding: 8px 20px;
  color: #fff;
  background: #00408f;
  font-weight: bold;
  transition: ease-in-out 0.2s;
}
.btn04 a i {
  margin-right: 7px;
}
.btn04 a:hover {
  color: #fff;
}
.btn04 a span {
  z-index: 2;
  position: relative;
}
.btn04 a::before {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1;
  content: '';
  background: #6baaea;
  transform-origin: center center;
  transform: scale(0, 1);
  transition: transform .3s;
}
.btn04 a:hover::before {
  transform: scale(1, 1);
}

/* btn05 */
.btn05 a {
  width: 130px;
  display: inline-block;
  position: relative;
  padding: 9px 0 7px;
  font-family: serif;
  color: #ffffff;
  font-size: 15px;
  font-weight: 400;
  line-height: 25px;
  transition:ease-in-out 0.2s;
}
.btn05 a:before {
  content: "";
  width: 100%;
  height: 100%;
  position: absolute;
  z-index: 2;
  top: 0;
  left: 0;
  transition: 0.5s;
  background: linear-gradient(90deg, #0068b7 0%, #208ee1 100%);
}
.btn05 a:after {
  background: linear-gradient(90deg, #59b4f9 0%, #94d0fd 100%);
  content: "";
  width: 100%;
  height: 100%;
  position: absolute;
  z-index: 1;
  top: 0;
  left: 0;
}
.btn05 a:hover:before {
  opacity:0;
}
.btn05 p {
  z-index: 5;
  position: relative;
  text-align: center;
  margin: 0 !important;
  padding: 0 !important;
}
.btn05 p img {
  position: absolute;
  right: 15px;
  top: 9px;
}
.btn05 a:hover img {
  opacity: 1;
  transform: translateX(0.3em);
  transition: ease-in-out 0.4s;
}

/* btn06 */
.btn06 {
  font-weight: 600;
  line-height: 1.5;
  position: relative;
  display: inline-block;
  cursor: pointer;
  user-select: none;
  text-align: center;
  vertical-align: middle;
  text-decoration: none;
  letter-spacing: 0.1em;
  color: #212529;
  border-radius: 0.5rem;
}
.btn06 a i {
  margin-right: 7px;
}
.btn06 a {
  border: 2px solid #000;
  border-radius: 0;
  background: #fff;
  box-shadow: 4px 4px 0 #000;
  padding: 10px;
}
.btn06 a:hover {
  box-shadow: -4px -4px 0 #000;
  transition: all 0.3s;
}

/* btn07 */
.btn07 a {
  position: relative;
  display: block;
  padding: 0.8em;
  text-align: center;
  border: 1px solid #9C27B0;
  text-decoration: none;
  outline: none;
  transition: all .4s;
  font-weight: 600;
}
.btn07 a i {
  margin-right: 7px;
}
.btn07 a::before,
.btn07 a::after {
  position: absolute;
  top: -1px;
  right: -1px;
  bottom: -1px;
  left: -1px;
  z-index: 2;
  content: '';
  transition: all .4s;
}
.btn07 a::before {
  border-top: 1px solid #FF5722;
  border-bottom: 1px solid #FF5722;
  transform: scale(0, 1);
}
.btn07 a::after {
  border-right: 1px solid #fff;
  border-left: 1px solid #fff;
  transform: scale(1, 0);
}
.btn07 a:hover {
  color: #FF5722;
}
.btn07 a:hover::after,
.btn07 a:hover::before {
  transform: scale(1);
}

@media screen and (max-width: 640px) {
  .btn01 {
    width: 100%;
    margin: auto;
  }
  .btn01 a {
    display: flex;
    justify-content: center;
    align-content: center;
    line-height: 1.3;
    flex-wrap: wrap;
    font-size: 18px;
    padding: 0 60px 0 14px;
  }
  .btn01 a::before {
    width: 40px;
    height: 40px;
    right:20px;
    top: 20px;
    
  }
  .btn_flex {
    display: block;
    padding: 10px;
  }
  .btn_flex .btn01 {
    width: 100%;
    margin-bottom: 10px;
  }
  .btn_flex .btn01:last-child {
    margin-bottom: 0
  }
  .btn_flex .btn01 a {
    height: 80px;
    font-size: 16px;
  }
  .btn_flex .btn01 a::before {
    top: 17px;
  }
  .btn_flex .btn01 a::after {
    top: 37%;
    right: 30px;
  }
}

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

  $画像寄せ
  共通CSSなので使っていないものも消さずに残してください

==================================================================*/
.img_fl,
.img_fr {
  max-width: 300px;
  display: block;
  text-align: center;
  margin-bottom: 1em;
  position: relative;
}
.img_fl {
  float: left;
  margin-right: 30px;
}
.img_fr {
  float: right;
  margin-left: 30px;
}
.img_fl img,
.img_fr img {
  border-radius: 3px;
}
.img_flex {
  margin-bottom: 20px;
  border-radius: 20px;
  overflow: hidden;
}

@media screen and (min-width: 641px) {
  .img_flex {
    display: flex;
  }
}
@media screen and (max-width: 640px) {
  .img_fl,
  .img_fr {
    float: none;
    max-width: none;
    margin: 0 0 1em 0;
  }
}

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

  $アンカーリンク
  共通CSSなので使っていないものも消さずに残してください

==================================================================*/
/* 共通CSS */
[class^="ank0"] {
  display: flex;
  flex-wrap: wrap;
}
[class^="ank0"] li a {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  padding: 10px 10px 20px;
  border: 2px solid var(--main-color);
  font-weight: bold;
  font-size: 96%;
  line-height: 1.7;
  color: var(--main-color);
  text-align: center;
  position: relative;
  border-radius: 100vh;
  background: #fff;
}
[class^="ank0"] li a::after {
  display: block;
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  content: "\f107";
  line-height: 1;
  letter-spacing: 0;
  position: absolute;
  left: 0;
  right: 0;
  bottom: 4px;
  margin: auto;
}

/* 2列 */
.ank02 {
  gap: 10px 2%;
}
.ank02 li {
  width: 49%;
}

/* 3列 */
.ank03 {
  gap: 10px 2%;
}
.ank03 li {
  width: 32%;
}

/* 4列 */
.ank04 {
  gap: 10px 1%;
}
.ank04 li {
  width: 24%;
}

/* 5列 */
.ank05 {
  gap: 10px 1%;
}
.ank05 li {
  width: 19%;
}

@media (hover: hover) {
  [class^="ank0"] li a {
    transition: 0.2s ease-in-out;
  }
  [class^="ank0"] li a:hover {
    background-color: var(--main-color);
    color: #fff;
  }
}

@media screen and (max-width: 640px) {
  .ank02,
  .ank03,
  .ank04 {
    flex-flow: column;
  }
  .ank02 li,
  .ank03 li,
  .ank04 li {
    width: 100%;
  }
  .ank05 {
    justify-content: space-between
  }
  .ank05 li {
    width: 48.8%;
  }
}

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

  .list
  共通CSSなので使っていないものも消さずに残してください

==================================================================*/
.list01:not(:last-child),
.list02:not(:last-child),
.list03:not(:last-child),
.list04:not(:last-child),
.list05:not(:last-child),
.list06:not(:last-child),
.list07:not(:last-child),
.list08:not(:last-child),
.list08-box:not(:last-child),
.list09:not(:last-child),
.list10:not(:last-child),
.list11:not(:last-child),
.list12:not(:last-child),
.list13:not(:last-child),
.list14:not(:last-child) {
  margin-bottom: 1em;
}

/* 余白のみ */
.list01 li:not(:last-child) {
  margin-bottom: 10px;
}

/* 下線 */
.list02 li {
  padding-bottom: 5px;
  border-bottom: 1px dotted var(--border-color);
}
.list02 li:not(:last-child) {
  margin-bottom: 5px;
}

/* まる */
.list03 {
  border: solid 1px  var(--main-color);
  padding: 24px;
  border-radius: 20px;
}
.list03 li {
  position: relative;
  padding-left: 18px;
  line-height: 2;
}
.list03 li:not(:last-child) {
  margin-bottom: 10px;
}
.list03 li::before {
  display: block;
  position: absolute;
  top: calc((2em - 5px) / 2);
  left: 0;
  width: 7px;
  height: 7px;
  background-color: var(--main-color);
  border-radius: 50%;
  content: '';
}

/* 矢印 */
.list04 {
  background: #fff;
  padding: 20px;
  border-radius: 10px;
  border: solid 2px var(--main-color);
}
.list04 li {
  position: relative;
  padding-left: 16px;
  line-height: 2;
}
.list04 li:not(:last-child) {
  margin-bottom: 10px;
}
.list04 li::before {
  display: block;
  content: "";
  width: 6px;
  height: 10px;
  clip-path: polygon(0 0, 100% 50%, 0 100%);
  background: var(--main-color);
  position: absolute;
  top: calc((2em - 10px) / 2);
  left: 0;
}

/* 矢印2 */
.list05 li {
  position: relative;
  padding-left: 16px;
  line-height: 2;
}
.list05 li:not(:last-child) {
  margin-bottom: 10px;
}
.list05 li:before {
  content: "";
  height: 6px;
  width: 6px;
  transform: rotate(45deg);
  background-color: transparent;
  border-width: 1px 1px 0 0;
  border-color: var(--main-color);
  border-style: solid;
  position: absolute;
  top: calc((2em - 8px) / 2);
  left: 0;
}

/* まる & 背景 */
.list06 {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 40px;
  padding: 30px;
  background-color:var(--bg-color);
}
.list06 li {
  position: relative;
  padding-left: 15px;
  line-height: 2;
}
.list06 li::before {
  display: block;
  position: absolute;
  top: calc((2em - 5px) / 2);
  left: 0;
  width: 5px;
  height: 5px;
  background-color: var(--main-color);
  border-radius: 50%;
  content: '';
}

/* まる & 枠 */
.list07 {
  border: 3px solid var(--border-color);
  padding: 30px;
}
.list07 li {
  position: relative;
  padding-left: 15px;
  line-height: 2;
}
.list07 li:not(:last-child) {
  margin-bottom: 10px;
}
.list07 li::before {
  display: block;
  position: absolute;
  top: calc((2em - 5px) / 2);
  left: 0;
  width: 5px;
  height: 5px;
  background-color: var(--main-color);
  border-radius: 50%;
  content: '';
}

/* チェック */
.list08 {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 40px;
  padding: 30px;
  background-color:var(--bg-color);
  border-radius: 20px;
}
.list08 li {
  position: relative;
  margin-left: 28px;
  border-bottom: 1px dotted var(--border-color);
}
.list08 li:before {
  display: block;
  font-family: "Font Awesome 6 Free";
  font-size: 18px;
  font-weight: 900;
  content: "\f00c";
  color: var(--main-color);
  letter-spacing: 0;
  position: absolute;
  top: -2px;
  left: -28px;
}

/* チェック装飾囲み */
.list08-box {
  position: relative;
  padding: 30px;
  background: var(--sub-color);
}
.list08-box .list08 {
  background-color: #fff;
}
.list08-box::before {
  position: absolute;
  width: 65px;
  height: 50px;
  top: -5px;
  left: -5px;
  margin: auto;
  clip-path: polygon(0 0, 0 85%, 100% 0);
  background-color: var(--main-color);
  z-index: 0;
  content: "";
}
.list08-box::after {
  position: absolute;
  width: 65px;
  height: 50px;
  bottom: -5px;
  right: -5px;
  margin: auto;
  clip-path: polygon(0 100%, 100% 100%, 100% 15%);
  background-color: var(--main-color);
  z-index: 0;
  content: "";
}
.list08_01 {
}
.list08_01 li {
  position: relative;
  margin-left: 28px;
}
.list08_01 li:before {
  display: block;
  font-family: "Font Awesome 6 Free";
  font-size: 16px;
  font-weight: 900;
  content: "\f00c";
  color: #fff;
  letter-spacing: 0;
  position: absolute;
  top: 8px;
  left: -28px;
  background: var(--main-color);
  height: 20px;
  width: 22px;
  line-height: 1.3;
  text-align: center;
  border-radius: 5px;
}

/* 点線 & 横並び */
.list09 {
  padding: 30px;
  background-color: var(--bg-color);
  display: flex;
  flex-wrap: wrap;
  gap: 10px 20px;
}
.list09 li {
  border-bottom: 1px dotted var(--border-color);
}

/* 線で囲む & 横並び */
.list10 {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 5px;
}
.list10 li {
  padding: 3px 8px;
  border: 1px solid var(--border-color);
}

/* 数字＋背景色 */
.list11 {
  padding: 25px;
  background: var(--bg-color);
  counter-reset: section;
}
.list11 > li {
  padding-left: calc(1.6em + 5px);
  padding-bottom: 8px;
  border-bottom: var(--border-color) 1px dashed;
  position: relative;
}
.list11 > li:not(:last-child) {
  margin-bottom: 10px;
}
.list11 > li::before {
  counter-increment: section;
  content: counter(section);
  font-size: 106%;
  font-weight: bold;
  letter-spacing: 0;
  color: var(--main-color);
  position: absolute;
  left: 5px;
  top: 0;
}

/* ●の数字＋背景色 */
.list12 {
  padding: 25px;
  background: var(--bg-color);
  counter-reset: section;
}
.list12 > li {
  padding-left: calc(1.6em + 15px);
  padding-bottom: 8px;
  border-bottom: var(--border-color) 1px dashed;
  position: relative;
}
.list12 > li:not(:last-child) {
  margin-bottom: 10px;
}
.list12 > li::before {
  display: flex;
  flex-flow: column;
  justify-content: center;
  counter-increment: section;
  content: counter(section);
  width: 1.6em;
  height: 1.6em;
  font-size: 106%;
  font-weight: bold;
  color: #fff;
  line-height: 1;
  letter-spacing: 0;
  text-align: center;
  background-color: var(--main-color);
  border-radius: 50%;
  position: absolute;
  left: 5px;
  top: 0;
}

/* 数字の右側に）＋背景色 */
.list13 {
  padding: 25px;
  background: var(--bg-color);
  counter-reset: section;
}
.list13 > li {
  padding-left: calc(2.4em + 5px);
  padding-bottom: 8px;
  border-bottom: var(--border-color) 1px dashed;
  position: relative;
}
.list13 > li:not(:last-child) {
  margin-bottom: 10px;
}
.list13 > li::before {
  counter-increment: section;
  content: counter(section) " )";
  font-size: 106%;
  font-weight: bold;
  letter-spacing: 0;
  color: var(--main-color);
  position: absolute;
  left: 5px;
  top: 0;
}

/* 米印 */
.list14 > * {
  color: #888;
  font-size: 95%;
  padding-left: 1em;
  text-indent: -1em;
}
.list14 > *:not(:last-child) {
  margin-bottom: 5px;
}
.list14 > *::before {
  content: "※";
}

@media screen and (max-width: 640px) {
  .list06,
  .list07,
  .list08,
  .list08-box,
  .list09,
  .list11,
  .list12,
  .list13 {
    padding: 20px;
  }
}

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

  .layout
  共通CSSなので使っていないものも消さずに残してください

==================================================================*/
/* --------------layout共通タイトル-------------- */
.layout_tit {
  color: var(--main-color);
  font-size: 113%;
  font-weight: bold;
  line-height: 1.8;
}
.layout_tit:not(:last-child) {
  margin-bottom: 15px;
}
.layout_tit em,
.layout_tit span {
  margin-right: 10px;
  color: var(--sub-color);
   font-family: "new-atten-round", sans-serif;
  font-weight: normal;
  font-size: 150%;
  line-height: 1;
}

/* layout小タイトル */
.layout_tit_02 {
  color: var(--sub-color);
  font-size: 113%;
  font-weight: bold;
  line-height: 1.8;
}
.layout_tit_02:not(:last-child) {
  margin-bottom: 15px;
}

.layout01:not(:last-child),
.layout02:not(:last-child),
.layout03:not(:last-child),
.layout04:not(:last-child),
.layout05:not(:last-child),
.layout06:not(:last-child),
.layout07:not(:last-child),
.layout08:not(:last-child),
.layout09:not(:last-child),
.layout10:not(:last-child),
.layout11:not(:last-child),
.layout12:not(:last-child) {
  margin-bottom: 1em;
}

/* 左にタイトル、右に文章 */
.layout01 {
  position: relative;
}
.layout01::before {
  position: absolute;
  top: -3px;
  left: 0;
  width: 100%;
  border-top: 1px solid var(--border-color);
  content: "";
}
.layout01 .layout01_box {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  margin: 5px 0;
}
.layout01 .layout01_box::after {
  position: absolute;
  bottom: -3px;
  left: 0;
  width: 100%;
  border-top: 1px solid var(--border-color);
  content: "";
}
.layout01 .layout01_title {
  width: 30%;
  background-color: var(--bg-color);
  text-align: center;
  display: flex;
  flex-flow: column;
  justify-content: center;
  padding: 20px;
}
.layout01 .layout01_title.layout_tit,
.layout01 .layout01_title .layout_tit {
  margin-bottom: 0;
}
.layout01 .layout01_title.layout_tit em,
.layout01 .layout01_title .layout_tit em {
  display: block;
  margin-right: 0;
}
.layout01 .layout01_text {
  width: 70%;
  padding: 3%;
}

/* 2列 */
.layout02 {
  display: flex;
  flex-wrap: wrap;
  gap: 25px 2%;
}
.layout02 .layout02_box {
  width: 49%;
  padding: 30px;
  background-color: var(--bg-color);
}

/* 画像が左、右にタイトル、タイトル下に文章 */
.layout03 .layout03_box {
  display: flex;
  background-color: var(--bg-color);
  padding: 2%;
}
.layout03 .layout03_box:not(:last-child) {
  margin-bottom: 20px;
}
.layout03 .layout03_title {
  width: 27%;
  padding: 2%;
  background-color: #fff;
  text-align: center;
  display: flex;
  align-items: center;
}
.layout03 .layout03_text {
  width: 73%;
  padding: 1% 3%;
}

/* 画像が左、右にタイトル、タイトル下に文章、タイトルと文章のエリアは背景色が別の色 */
.layout04 .layout04_box {
  display: flex;
  background-color: var(--bg-color);
  padding: 2%;
}
.layout04 .layout04_box:not(:last-child) {
  margin-bottom: 20px;
}
.layout04 .layout04_title {
  width: 27%;
  padding-right: 2%;
  display: flex;
  align-items: center;
}
.layout04 .layout04_text {
  width: 73%;
  padding: 3%;
  background-color: #fff;
}

/* 3列に区切られたレイアウト。画像が左、画像の下にタイトル、右に文章 */
.layout05 .layout05_box {
  display: flex;
  background-color: var(--bg-color);
  padding: 2%;
}
.layout05 .layout05_box:not(:last-child) {
  margin-bottom: 20px;
}
.layout05 .layout05_title {
  padding: 2%;
  width: 25%;
  background-color: #fff;
  text-align: center;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  align-content: center;
  justify-content: center;
}
.layout05 .layout05_title img {
  padding-bottom: 10px;
  display: block;
}
.layout05 .layout05_text {
  padding: 1% 3%;
  width: 40%;
}
.layout05 .layout05_text:last-child {
  border-left: 1px solid var(--border-color);
}

/* 3列に区切られたレイアウト。左がタイトル、真ん中と右に文章 */
.layout06 .layout06_box {
  display: flex;
  position: relative;
}
.layout06 .layout06_box:not(:last-child) {
  padding-bottom: 5px;
}
.layout06 .layout06_box::before,
.layout06 .layout06_box:last-child::after {
  position: absolute;
  left: 0;
  width: 100%;
  border-top: 1px solid var(--border-color);
  content: "";
}
.layout06 .layout06_box::before {
  top: -3px;
}
.layout06 .layout06_box:last-child::after {
  bottom: -3px;
}
.layout06 .layout06_title {
  width: 30%;
  background-color: var(--bg-color);
  text-align: center;
  display: flex;
  flex-flow: column;
  justify-content: center;
  padding: 20px;
}
.layout06 .layout06_title.layout_tit,
.layout06 .layout06_title .layout_tit {
  margin-bottom: 0;
}
.layout06 .layout06_title.layout_tit em,
.layout06 .layout06_title .layout_tit em {
  display: block;
  margin-right: 0;
}
.layout06 .layout06_text {
  width: 35%;
  padding: 2% 3%;
}
.layout06 .layout06_text:last-child {
  border-left: 1px solid var(--border-color);
}

/* 3列 */
.layout07 {
  display: flex;
  align-content: flex-start;
  flex-wrap: wrap;
  gap: 20px 2%;
}
.layout07 .layout07_box {
  width: 32%;
  padding: 3%;
  background-color: var(--bg-color);
}
.layout07 .layout07_box .layout07_title {
  text-align: center;
  padding-bottom: 15px;
  border-bottom: 1px dashed var(--border-color);
  margin-bottom: 15px;
}

/* 下矢印付き */
.layout08 .layout08_box {
  position: relative;
  padding: 3%;
  background-color: var(--bg-color);
}
.layout08 .layout08_box:not(:last-child) {
  margin-bottom: 25px;
}
.layout08 .layout08_box:not(:last-child)::before {
  position: absolute;
  right: 0px;
  left: 0;
  height: 7px;
  width: 7px;
  transform: rotate(135deg);
  background-color: transparent;
  border-top: 2px solid var(--main-color);
  border-right: 2px solid var(--main-color);
  content: "";
  bottom: -16px;
  margin: auto;
}
.layout08 .layout08_box .layout08_title {
  text-align: center;
  padding-bottom: 15px;
  border-bottom: 1px dashed var(--border-color);
  margin-bottom: 15px;
}

/* 画像が左、画像の下にタイトル、右に文章 */
.layout09 .layout09_box {
  display: flex;
  background: var(--bg-color);
  padding: 2%;
}
.layout09 .layout09_box:not(:last-child) {
  margin-bottom: 20px;
}
.layout09 .layout09_title {
  padding: 2%;
  width: 27%;
  background-color: #fff;
  text-align: center;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  align-content: center;
  justify-content: center;
}
.layout09 .layout09_title img {
  padding-bottom: 10px;
  display: block;
}
.layout09 .layout09_text {
  padding: 1% 3%;
  width: 73%;
}

/* 流れ */
.layout10 {
  border-radius: 20px;
  overflow: hidden;
}
.layout10 .flow_box {
  position: relative;
  display: flex;
  padding: 30px;
  background: var(--bg-color);
}
.layout10 .flow_box:nth-child(even) {
  background: #dfebf5;
}
.layout10 .flow_box::before {
  content: "";
  width: 4px;
  height: calc(100% - 4px);
  border-right: var(--sub-color) dotted 4px;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 58px;
  margin: auto;
}
.layout10 .flow_box:first-child::before {
  top: 30px;
  bottom: auto;
  height: calc(100% - 32px);
}
.layout10 .flow_box:last-child::before {
  top: 2px;
  bottom: auto;
  height: 58px;
}
.layout10 .flow_box .number {
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  z-index: 1;
  flex-shrink: 0;
  width: 60px;
  height: 60px;
  margin-bottom: 0;
  margin-right: 4%;
  background: var(--main-color);
  border-radius: 50%;
  line-height: 1;
  color: #fff;
  font-size: 28px;
}
.layout10 .flow_box .layout10_box {
  width: 100%;
}

/* 症例 */
.layout11 {
  position: relative;
}
.layout11_box {
  padding: 8px;
  background: var(--bg-color);
}
[class^="layout11_image"] img {
  width: 100%;
}
[class^="layout11_text"] {
  margin-top: 8px;
}
[class^="layout11_text"] dl {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
[class^="layout11_text"] dl dt,
[class^="layout11_text"] dl dd,
[class^="layout11_text"] .desc {
  border: 1px solid var(--main-color);
}
[class^="layout11_text"] dl dt,
[class^="layout11_text"] dl dd {
  margin-bottom: 2px;
  padding: 12px;
}
[class^="layout11_text"] dl dt {
  background: var(--main-color);
  color: #fff;
  font-weight: bold;
  text-align: center;
  width: 20%;
}
[class^="layout11_text"] dl dd {
  background: #fff;
  width: 80%;
}
[class^="layout11_text"] .desc {
  background: #fff;
  padding: 16px;
}

/* 症例 ver.2 */
.layout11_image02 {
  display: flex;
  justify-content: space-between;
}
.layout11_image02 span {
  position: relative;
  display: block;
  width: 47%;
}
.layout11_image02 span:last-child::before {
  position: absolute;
  top: 0;
  bottom: 0;
  left: -32px;
  margin: auto;
  display: flex;
  align-items: center;
  content: "\f054";
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  font-size: 24px;
  color: var(--main-color);
  line-height: 1;
}
.layout11_text02 dl dt {
  margin-left: 2px;
  width: 15%;
}
.layout11_text02 dl dt:nth-of-type(odd) {
  margin-left: 0;
}
.layout11_text02 dl dd {
  width: calc(35% - 1px);
}

/* 注意書き */
.layout12 {
  background: var(--bg-color);
  display: block;
  position: relative;
  padding: 25px;
}
.layout12 .layout12_mark {
  width: 55px;
  height: 55px;
  background: var(--main-color);
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: 0;
  position: absolute;
  top: -15px;
  left: -5px;
  border-radius: 50%;
  font-size: 25px;
  font-weight: 600;
  color: #fff;
  z-index: 2;
}
.layout12 .layout12_mark::before {
  position: absolute;
  width: 15px;
  height: 20px;
  bottom: -3px;
  right: -3px;
  margin: auto;
  clip-path: polygon(100% 85%, 40% 0, 0 53%);
  background-color: var(--main-color);
  z-index: 1;
  content: "";
  border-radius: 10px;
}
.layout12 .layout_tit {
  padding-left: 40px;
}

.layout13 {
  border: solid 1px var(--main-color);
  padding: 10px;
  background: rgba(255,255,255,0.5);
  border-radius: 10px;
}
.layout13 > dt {
  color: rgb(255, 255, 255);
  letter-spacing: 0.1em;
  background: var(--main-color);
  padding: 10px 10px;
  border-radius: 5px;
  font-weight: 600;
  line-height: 1
}
.layout13 > dd {
   margin-bottom: 10px;
   padding: 10px 5px;
}
.layout13 > dd:last-child {
   margin-bottom: 10px;
}
@media screen and (max-width: 640px) {
  /* 左にタイトル、右に文章 */
  .layout01 .layout01_box {
    display: block;
  }

  .layout01 .layout01_title {
    display: block;
    width: 100%;
  }

  .layout01 .layout01_text {
    width: 100%;
  }

  /* 2列 */
  .layout02 {
    display: block;
  }

  .layout02 .layout02_box {
    width: 100%;
    padding: 20px;
  }

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

  .layout02 .layout02_box img {
    width: 70%;
    margin: 0 auto;
    display: block;
  }

  /* 画像が左、右にタイトル、タイトル下に文章 */
  .layout03 .layout03_box {
    display: block;
    padding-bottom: 20px;
  }

  .layout03 .layout03_title {
    width: 100%;
  }

  .layout03 .layout03_title img {
    width: 70%;
    margin: 0 auto;
    display: block;
  }

  .layout03 .layout03_text {
    width: 100%;
    padding: 20px 3% 0;
  }


  /* 画像が左、右にタイトル、タイトル下に文章、タイトルと文章のエリアは背景色が別の色 */
  .layout04 .layout04_box {
    display: block;
  }

  .layout04 .layout04_title {
    width: 100%;
    padding: 2%;
  }

  .layout04 .layout04_title img {
    width: 70%;
    margin: 0 auto;
    display: block;
  }

  .layout04 .layout04_text {
    width: 100%;
  }


  /* 3列に区切られたレイアウト。画像が左、画像の下にタイトル、右に文章 */
  .layout05 .layout05_box {
    display: block;
    padding-bottom: 20px;
  }

  .layout05 .layout05_title {
    width: 100%;
    display: block;
  }

  .layout05 .layout05_title img {
    width: 70%;
    margin: 0 auto;
    display: block;
  }

  .layout05 .layout05_text {
    width: 100%;
    padding-bottom: 0;
    padding-top: 0;
    margin-top: 20px;
  }

  .layout05 .layout05_text:last-child {
    border-left: none;
  }

  /* 3列に区切られたレイアウト。左がタイトル、真ん中と右に文章 */
  .layout06 .layout06_box {
    display: block;
  }

  .layout06 .layout06_title {
    display: block;
    width: 100%;
  }

  .layout06 .layout06_title img {
    width: 70%;
    margin: 0 auto;
    display: block;
  }

  .layout06 .layout06_text {
    width: 100%;
    padding-bottom: 0;
    padding-top: 0;
    margin-top: 20px;
  }

  .layout06 .layout06_text:last-child {
    border: none;
    padding-bottom: 20px;
  }

  /* 3列 */
  .layout07 {
    display: block;
  }

  .layout07 .layout07_box {
    width: 100%;
    padding: 20px;
  }

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

  /* 下矢印付き */
  .layout08 .layout08_box {
    padding: 20px;
  }

  /* 画像が左、画像の下にタイトル、右に文章 */
  .layout09 .layout09_box {
    display: block;
    padding-bottom: 20px;
  }

  .layout09 .layout09_title {
    width: 100%;
    display: block;
  }

  .layout09 .layout09_title img {
    width: 70%;
    margin: 0 auto;
    display: block;
  }

  .layout09 .layout09_text {
    width: 100%;
    padding-top: 0;
    padding-bottom: 0;
    margin-top: 20px;
  }

  /* 流れ */
  .layout10 .flow_box {
    padding: 20px;
  }

  .layout10 .flow_box::before {
    left: 40px;
  }

  .layout10 .flow_box .number {
    width: 42px;
    height: 42px;
    margin-right: 20px;
    font-size: 20px;
  }

  /* 症例 */
  [class^="layout11_text"] dl dt,
  [class^="layout11_text"] dl dd {
    margin-left: 0;
    width: 100%;
  }

  [class^="layout11_text"] dl dt {
    margin-bottom: 0;
  }

  [class^="layout11_text"] dl dd {
    margin-bottom: 10px;
  }

  .layout11_image02 {
    flex-wrap: wrap;
  }

  .layout11_image02 span {
    width: 100%;
  }

  .layout11_image02 span:last-child {
    margin-top: 40px;
  }

  .layout11_image02 span:last-child::before {
    top: -32px;
    bottom: auto;
    left: 0;
    right: 0;
    justify-content: center;
    content: "\f078";
  }
}

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

  $table
  共通CSSなので使っていないものも消さずに残してください

==================================================================*/
/* tb01 */
.tb01 {
  width: 100%;
}
.tb01 th,
.tb01 td {
  border-bottom: 1px solid var(--border-color);
  padding: 5px 0;
}
.tb01 th:not(:first-child),
.tb01 td:not(:first-child) {
  padding-left: 1em;
}
.tb01 th {
  font-weight: bold;
  width: 26%;
}

/* tb02 */
.tb02 {
  width: 100%;
}
.tb02 td,
.tb02 th {
  padding: 8px 20px;
  border: 1px solid var(--border-color);
}
.tb02 th {
  font-weight: bold;
  background-color: var(--bg-color);
}
.tb02 th span {
  font-size: 13px;
}
.tb02 td {
  background-color: #ffffff;
  text-align: center;
}

@media screen and (max-width: 640px) {
  /* tb02 縦積み */
  .tb02.ver th,
  .tb02.ver td {
    display: block;
    width: 100%;
    border-top: none;
  }
  .tb02.ver {
    border-top: 1px solid var(--border-color);
  }

  /* 横スクロール */
  .scroll_tb {
    overflow-x: scroll;
  }
  .scroll_tb table {
    width: 816px;
  }
  .scroll_tb table th {
    position: sticky;
    left: 0;
  }
  .scroll_tb table th::before {
    content: "";
    position: absolute;
    top: -1px;
    left: -1px;
    width: calc(100% + 2px);
    height: calc(100% + 2px);
    border: 1px solid var(--border-color);
  }
}

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

  設備紹介

==================================================================*/
/* 共通CSS */
[class^="facilities_equip"] dl {
  background-color: var(--bg-color);
}
[class^="facilities_equip"] dd {
  padding: 20px;
}
[class^="facilities_equip"] .title {
  text-align: center;
  font-size: 18px;
  font-weight: bold;
  line-height: 1.6;
}
[class^="facilities_equip"] .title:not(:last-child) {
  margin-bottom: 15px;
}

/* 2列　上部ライン装飾 */
.facilities_equip {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 35px 3%;
}
.facilities_equip dl {
  width: 42%;
  padding: 30px;
  border-top: 4px solid var(--main-color);
}
.facilities_equip dd {
  padding: 0;
}
.facilities_equip_img {
  text-align: center;
  margin-bottom: 15px;
}

/* 3列 */
.facilities_equip2 {
  display: flex;
  flex-wrap: wrap;
  gap: 25px 2%;
}
.facilities_equip2 dl {
  width: 32%;
}

/* 2列 */
.facilities_equip3 {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 50px 4%;
}
.facilities_equip3 dl {
  width: 48%;
}

@media screen and (max-width: 640px) {
  /* 2列　上部ライン装飾 */
  .facilities_equip {
    display: block;
  }
  .facilities_equip dl {
    width: 100%;
    padding: 20px;
  }
  .facilities_equip dl:not(:last-child) {
    margin-bottom: 20px;
  }

  /* 3列・2列 */
  .facilities_equip2,
  .facilities_equip3 {
    display: block;
    width: 90%;
    margin-inline: auto;
  }
  .facilities_equip2 dl,
  .facilities_equip3 dl {
    width: 100%;
  }
  .facilities_equip2 dl:not(:last-child),
  .facilities_equip3 dl:not(:last-child) {
    margin-bottom: 20px;
  }
}

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

  $qa

==================================================================*/
.sub_mainvisual.item_qa {
  background-image: url("../images/mv_qa.jpg");
}
.qa > * {
  padding-bottom: 25px;
  border-bottom: 2px dotted var(--main-color);
}
.qa > *:not(:last-child) {
  margin-bottom: 25px;
}
.qa_tit,
.qa_text {
  padding-left: 40px;
  position: relative;
}
.qa_tit:before,
.qa_text:before {
   font-family: "new-atten-round", sans-serif;
  font-weight: normal;
  font-size: 28px;
  line-height: 1;
  position: absolute;
  top: 0;
  left: 0;
}
.qa_tit {
  margin-bottom: 15px;
  font-weight: bold;
}
.qa_tit:before {
  color: var(--main-color);
  content: "Q.";
}
.qa_text:before {
  color: var(--sub-color);
  content: "A.";
}

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

  $accordion

==================================================================*/
.accordion_tit {
  background-color: var(--bg-color);
  padding: 15px 50px 15px 20px;
  cursor: pointer;
  position: relative;
  margin-bottom: 15px;
  transition: background-color 0.3s, color 0.2s;
}
.accordion_tit::before,
.accordion_tit::after {
  display: block;
  content: "";
  width: 16px;
  height: 2px;
  background: var(--main-color);
  position: absolute;
  right: 20px;
  top: 50%;
  transition: transform 0.3s, opacity 0.3s;
}
.accordion_tit::before {
  transform: rotate(90deg);
}
@media (hover: hover) {
  .accordion_tit {
    transition: background-color 0.3s;
  }
  .accordion_tit:hover {
    background-color: #cdcdcd;
  }
}
.accordion_tit.open {
  color: #fff;
  background: var(--main-color);
}
.accordion_tit.open::before {
  opacity: 0;
  transform: rotate(180deg);
}
.accordion_tit.open::after {
  background: #fff;
}
.accordion_text {
  display: none;
  padding: 0 20px 30px;
}

/* Q&A */
.accordion.accordion-qa .accordion_tit,
.accordion.accordion-qa .accordion_text {
  padding-left: 55px;
  position: relative;
}
.accordion.accordion-qa .accordion_tit > *:before,
.accordion.accordion-qa .accordion_text:before {
   font-family: "new-atten-round", sans-serif;
  font-weight: normal;
  font-size: 175%;
  line-height: 1;
  position: absolute;
  left: 20px;
}
.accordion.accordion-qa .accordion_tit > *:before {
  color: var(--main-color);
  content: "Q.";
  top: 15px;
  transition: color 0.2s;
}
.accordion.accordion-qa .accordion_tit.open > *:before {
  color: #fff;
}
.accordion.accordion-qa .accordion_text:before {
  color: var(--sub-color);
  content: "A.";
  top: 0;
}

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

  ぱんくず

==================================================================*/
.breadcrumb {
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  gap: 0 5px;
  position: relative;
  margin-bottom: 30px;
  font-size: 14px;
}
.breadcrumb i {
  margin-right: 5px;
}
.breadcrumb li:after {
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  font-size: 12px;
  letter-spacing: 0;
  content: "\f054";
  padding-left: 5px;
  padding-right: 5px;
}
.breadcrumb li:last-child:after {
  content: "";
}

@media (hover: hover) {
  .breadcrumb a:hover {
    text-decoration: underline;
  }
}

@media screen and (max-width: 640px) {
  .breadcrumb {
    margin-bottom: 40px;
  }
}

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

  お知らせページ

==================================================================*/
.news_text p {
  margin-bottom: 1em;
}
.news_text p:last-child {
  margin-bottom: 0;
}
.news_text .news_text_list > dt {
  font-size: 18px;
  font-weight: bold;
  line-height: 1.8;
  margin-bottom: 10px;
}
.news_text .news_text_list > dd {
  padding-bottom: 30px;
  border-bottom: 1px solid var(--border-color);
}
.news_text .news_text_list > dd:not(:last-of-type) {
  margin-bottom: 30px;
}
.news_text .news_text_desc {
  margin-bottom: 20px;
}
.news_text .news_text_date {
  color: var(--sub-color);
  margin-right: 15px;
}
.news_text .news_text_desc em {
  display: inline-block;
  min-width: 75px;
  padding: 1px 6px;
  font-style: normal;
  text-align: center;
}

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

  アクセスページ

==================================================================*/
.access_guide {
  margin-bottom: 20px;
  font-weight: bold;
}
.access_add {
  margin-bottom: 10px;
}
.access_add i {
  color: var(--main-color);
  margin-right: .5em;
}
.access_map {
  text-align: center;
}
.access_iframe iframe {
  width: 100%;
}
.access .btn01 {
  text-align: center;
  margin-top: 20px;
}

/* マップ2カラム */
.access_flex {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}
.access_flex > * {
  width: 48%;
}
.access_flex iframe {
  height: 100%;
}

.access_info {
  border: 2px solid var(--main-color);
  padding: 30px;
  margin: 30px auto 50px;
  border-radius: 20px;
}
.access_info > *:not(:last-child) {
  margin-bottom: 25px;
}
.access_info i {
  color: var(--main-color);
  margin-right: .5em;
}
.access_info_tit {
  font-size: 18px;
  line-height: 1.7;
  font-weight: bold;
  margin-bottom: 10px;
}

/* ルート */
.access_route {
  display: flex;
  flex-wrap: wrap;
  gap: 30px 2%;
  counter-reset: section;
}
.access_route > * {
  width: 32%;
}
.access_route dt {
  text-align: center;
}
.access_route dd {
  margin-top: 20px;
  padding-left: 40px;
  position: relative;
}
.access_route dd::before {
  counter-increment: section;
  content: counter(section);
  width: 1.7em;
  height: 1.7em;
  display: flex;
  flex-flow: column;
  justify-content: center;
  align-items: center;
  font-size: 18px;
  color: #fff;
  font-weight: bold;
  letter-spacing: 0;
  line-height: 1;
  background: var(--main-color);
  position: absolute;
  left: 0;
  top: 0;
}

@media screen and (max-width: 640px) {
  .access_iframe iframe {
    height: 300px;
  }

  /* マップ2カラム */
  .access_flex {
    display: block;
  }
  .access_flex > * {
    width: 100%;
  }
  .access_flex > *:not(:last-child) {
    margin-bottom: 20px;
  }

  .access_info {
    padding: 20px;
  }

  /* ルート */
  .access_route {
    display: block;
  }
  .access_route > * {
    width: 100%;
  }
  .access_route > *:not(:last-child) {
    margin-bottom: 30px;
  }
}

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

  医師紹介ページ

==================================================================*/
.doctor_flex {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  flex-direction: row-reverse;
}
.doctor_flex .doctor_imgArea {
  width: 28%;
}
.doctor_imgArea_text {
  margin-top: 15px;
}
.doctor_position,
.doctor_name {
  color: var(--main-color);
  font-weight: bold;
}
.doctor_position {
  font-size: 125%;
  line-height: 1.6;
}
.doctor_name {
  font-size: 150%;
  line-height: 1.4;
  margin-top: 8px;
}
.doctor_name span {
  font-size: 18px;
  padding-right: 10px;
}
.doctor_flex .doctor_text {
  width: 70%;
}
.doctor_text p:not(:last-child) {
  margin-bottom: 1em;
}

.doctor_carr {
  display: flex;
  flex-wrap: wrap;
  gap: 50px 4%;
}
.doctor_carr_sec {
  width: 48%;
  padding: 30px;
  background-color: var(--bg-color);
}
.doctor_carr_sec table {
  width: 100%;
}
.doctor_img img {
  border-radius: 20px;
}

@media screen and (max-width: 640px) {
  .doctor_flex {
    display: block;
  }
  .doctor_flex .doctor_imgArea,
  .doctor_flex .doctor_text {
    width: 100%;
  }
  .doctor_imgArea {
    text-align: center;
    margin-bottom: 20px;
  }
  .doctor_img img {
    width: 60%;
  }

  .doctor_carr {
    display: block;
  }
  .doctor_carr_sec {
    width: 100%;
    padding: 30px 20px;
  }
  .doctor_carr_sec:not(:last-child) {
    margin-bottom: 30px;
  }
}

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

  *医院紹介

==================================================================================================================================*/
.clinic_desc {
  width: 100%;
}

.clinic_desc dl {
  display: flex;
}

.clinic_desc dl dt {
  width: 20%;
  padding: 15px;
  border-bottom: 1px dotted var(--line-color);
  font-weight: normal;
  font-size: 110%;
}

.clinic_desc li:first-child dl dt {
  padding-top: 0;
}

.clinic_desc dl dd {
  width: 80%;
  padding: 15px;
  border-bottom: 1px dotted var(--line-color);
}

.clinic_desc dl dd .zipcode {
  margin-right: 10px;
}

.clinic_desc li:first-child dl dd {
  padding-top: 0;
}

.facilities_list {
  display: flex;
  flex-flow: wrap;
  gap: 20px;
}

.clinic_img {
    margin: auto;
    margin-bottom: 50px;
}

.facilities_item {
  width: calc((100% / 3) - (40px / 3));
  background: var(--bg-color);
}

.facilities_item dd {
  padding: 15px;
}

.facilities_item dd p {
  padding-top: 5px;
}

.facilities_item h3 {
  margin: 0;
  padding: 0;
  background: none;
  border: none;
  font-size: 115%;
}

.facilities_item h3::before {
  display: none;
}

/* ----- 画像がない時用 ----- */
.facilities_item.noimg {
  padding: 15px 20px;
}

/*==============================================
  *SP 医院紹介
==============================================*/
@media screen and (max-width: 640px) {
  .clinic_desc dl {
    display: block;
  }

  .clinic_desc dl dt {
    width: 100%;
    padding: 15px 0 5px;
    border-bottom: none;
  }

  .clinic_desc li:first-child dl dt {
    padding-top: 0;
  }

  .clinic_desc dl dd {
    width: 100%;
    padding: 0 0 15px;
  }

  .facilities_item {
    width: 100%;
  }
}
/*==================================================================

  働きやすいポイントページ

==================================================================*/
.point_item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 60px
}
.point_item_img {
  width: 45%;
background: #E49188;
  background: linear-gradient(90deg, rgba(228, 145, 136, 1) 0%, rgba(244, 210, 118, 1) 100%);
  border-radius: 10px;
}
.point_item_img img {
  border-radius: 30px;
}
.point_item_detail {
  width: 52%;

}
.point_item_tit {
  font-size: 140%;
  letter-spacing: 0.1em;
  font-weight: 600;
  position: relative;
  padding-left: 55px;
  padding-bottom: 10px;
  margin-bottom: 10px;
  border-bottom: dotted 3px var(--main-color);
}
.point_item_tit span {
  position: absolute;
  left: 0;
  display: flex;
  width: 44px;
  height: 44px;
  background: #E49188;
  background: linear-gradient(90deg, rgba(228, 145, 136, 1) 0%, rgba(244, 210, 118, 1) 100%);
  border-radius: 100%;
  color: #fff;
  justify-content: center;
  font-size: 150%;
  line-height: 1;
}
.point_item:nth-child(even) {
  flex-direction: row-reverse;
}
.point_item_text {
  line-height: 2;
}

@media screen and (max-width: 640px) { 
  .point_item {
    display: block;
  }
  .point_item_detail {
    width: 100%;
  }
  .point_item_img {
    width: 100%;
    margin-bottom: 20px;
  }
  .point_item_tit {
    font-size: 18px;
    line-height: 1.4;
    
    padding-top: 10px;
  }
  .point_item_tit span {
    width: 38px;
    height: 38px;
    line-height: 34px;
    top: 5px;
  }
}

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

  先輩スタッフの声

==================================================================*/
.voice_box {
  margin: auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  margin-bottom: 50px
}
.voice_box .tit02{
  width: 100%;
  padding-left: 30px;
}

.voice_img {
  width: 24%;
}
.voice_balloon_wp {
  position: relative;
  width: 73%;
  background: linear-gradient(90deg, #eaa8a2, #f4d276);
  border-radius: 17px;
}
.voice_balloon_wp::before {
  position: absolute;
  top: 50%;
  left: -20px;
  width: 20px;
  height: 20px;
  background: #eaa8a2;
  clip-path: polygon(0% 50%, 100% 0%, 100% 100%, 0% 50%);
  content: "";
}
.voice_balloon {
  position: relative;
  background: #fff;
  margin: 3px;
  border-radius: 15px;
  padding: 35px
}
.voice_balloon::before {
  position: absolute;
  top: 50%;
  left: -16px;
  width: 20px;
  height: 20px;
  background: #fff;
  clip-path: polygon(0% 50%, 100% 0%, 100% 100%, 0% 50%);
  content: "";
}
.voice_balloon > dt {
  background: #f9e6d5;
  color: var(--main-color);
  border-radius: 5px;
  padding: 2px 10px;
  font-size: 120%;
  letter-spacing: 0.05em;
  margin-bottom: 10px;
  position: relative;
  padding-left: 40px
  
}
.voice_balloon > dt::before {
  position: absolute;
  content: "Q.";
  left: 13px;
  font-family: "new-atten-round", sans-serif;
  font-weight: 500;
  font-style: normal;
}
.voice_balloon > dd {
  margin-bottom: 20px;
  padding-left:38px;
  position: relative;
  padding-right: 15px
}
.voice_balloon > dd::before{
  position: absolute;
  top: 6px;
  content: "A.";
  left: 13px;
  color: var(--main-color);
  font-size: 120%;
  line-height: 1;
  font-family: "new-atten-round", sans-serif;
  font-weight: 500;
  font-style: normal;
}

@media screen and (max-width: 640px) {
  .voice_box {
    display: block;
  }
  .voice_box:last-child {
    margin-bottom: 0;
  }
  .voice_balloon {
    padding: 20px 15px 2px;
  }
  .voice_balloon_wp {
    width: 100%;
    padding-top: 1px;
    padding-bottom: 1px;
  }
  .voice_balloon_wp::before {
    top: -20px;
    left: 0;
    right: 0;
    margin: auto;
    transform: rotate(90deg)
  }
  .voice_balloon::before {
    top: -18px;
    left: 0;
    right: 0;
    margin: auto;
    transform: rotate(90deg)
  }
  .voice_img {
    width: 70%;
    display: block;
    margin: 0 auto 0px; 
  }
}
/*==================================================================

  仕事内容

==================================================================*/
.work_flow {
  
}
.work_flow_item {
  display: flex;
  position: relative;
  margin-bottom: 50px;
  align-items: center;
}
.work_flow_item {
  flex-direction: row-reverse;
}
.work_flow_item.item_re{
  flex-direction: row;
}
.work_flow_item::before {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  width: 5px;
  margin: auto;
  background: var(--main-color);
  height: 100%;
  content: "";
}
.work_flow_item::after {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  width: 20px;
  height: 20px;
  margin: auto;
  background: var(--main-color);
  border-radius: 100%;
  content: "";
}
.work_flow_item_detail {
  width: 50%;
  padding: 30px 40px;
}
.work_flow_item_img {
  width: 50%;
  padding: 30px 60px;
}
.work_flow_item_img img {
  border-radius: 3px;
  border: solid 10px #fff;
  box-shadow: 0 0 10px rgba(0,0,0,0.2);
}

.work_flow_item.item_c1 .work_flow_item_detail {
  margin-left: auto;
}
.work_flow_item_detail.pc-adj{
	padding: 30px 40px 30px 200px;
}
.work_flow_tit  {
  width: 100%;
  text-align: center;
  color: var(--sub-color);
  font-weight: 600;
  font-size: 200%;
   line-height: 1.2;
  margin-bottom: 20px;;
}
.work_flow_item_time {
  display: block;
  color:var(--main-color);
}
.clock_tit span {
    color: var(--text-color);
    font-weight: 500;
    font-size: 80%;
}
.work_flow_text {
  border-top: solid 3px var(--main-color);
  border-bottom: solid 3px var(--main-color);
  padding: 20px;
  margin-bottom: 60px;
  background: rgba(255,255,255,0.4);
}
/* 時計 */
.clock {
    display: block;
    position: relative;
    width: 50px;
    height: 50px;
    border: 3px solid var(--sub-color);
    border-radius: 50%;
    background: #fff;
    margin: 0 auto;
}

/* 共通針スタイル */
.hand {
    position: absolute;
    bottom: 50%;
    left:46%;
    transform-origin: bottom center;
    background: rgb(126, 189, 218);
    transform: rotate(0deg);
}

/* 短針スタイル */
.hand.hour {
    width: 4px;
    height: 30%;
    z-index: 2;
}


/* 長針スタイル */
.hand.minute {
    width: 4px;
    height: 45%;
    background: var(--main-color);
    z-index: 1;
}

/* 短針：1時間 = 30deg */
.hour-08 { transform: rotate(240deg); }
.hour-09 { transform: rotate(270deg); }
.hour-11 { transform: rotate(330deg); }
.hour-12 { transform: rotate(0deg); }
.hour-13 { transform: rotate(30deg); }
.hour-14 { transform: rotate(60deg); }
.hour-15 { transform: rotate(90deg); }
.hour-16 { transform: rotate(120deg); }
.hour-17 { transform: rotate(160deg); }
.hour-18 { transform: rotate(180deg); }

/* 長針：30分 = 180deg */
.minute-00 { transform: rotate(0deg); }
.minute-30 { transform: rotate(180deg); }
.minute-45 { transform: rotate(270deg); }



@media screen and (max-width: 640px) {
  .work_flow_item {
    display: block;
    margin-bottom: 20px;
  }
  .work_flow_item::before{
    left: 0;
    right: auto;
  }
  .work_flow_item::after{
    left: -7px;
    top: -2px;
    right: auto;
  }
  .work_flow_item_detail {
    width: 100%;
    padding: 15px 25px 25px;
  }	
  .work_flow_item_detail.pc-adj{
	padding: 15px 25px 25px;
  }
 .work_flow_item_img {
    width: 100%;
    padding: 15px 30px 0;
  }
  .work_flow_tit {
    font-size: 22px;
  }
  .work_flow_item_time {
    padding:5px 0
  }
}
/*==================================================================

  募集要項

==================================================================*/
.recruit_box {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between
}
.recruit_box > dt {
  display: flex;
  justify-content: center;
  align-items: center;
  background: var(--main-color);
  border-radius: 10px;
  color: #fff;
  font-size: 120%;
  width: 27%;
  margin-bottom: 15px;
  padding: 20px;
  text-align: center;
}
.recruit_box > dd {
  background: #fff;
   border-radius: 10px;
  width: 72.2%;
  margin-bottom: 15px;
  padding: 20px;
}
.recruit_box .list03 {
  border: none;
  padding: 0
}
.recruit_img {
  width: 80%;
  margin: auto;
  margin-bottom: 50px;
}
.recruit_img {
  border: solid 10px #fff;
  box-shadow: 0 0 20px rgba(0,0,0,0.2);
}

@media screen and (max-width: 640px) { 
  .recruit_box {
    display: block;
  }
  .recruit_box > dt {
    width: 100%;
    height: auto;
    padding: 5px;
    margin-bottom: 8px;
    font-size: 16px;
  }
  .recruit_box > dd {
    width: 100%;
  }
  .recruit_img {
    width: 100%;
  }
}

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

  404ページ

==================================================================*/
.none_page_p {
  text-align: center;
  font-size: 22px;
  font-weight: bold;
  line-height: 1.6;
}

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

  お問い合わせ

==================================================================*/
.contact {
  width: 100%;
}
.contact th,
.contact td {
  padding: 20px;
  border: 1px solid var(--border-color);
}
.contact th {
  font-weight: bold;
  background-color: var(--bg-color);
}
.contact th .required {
  display: inline-block;
  color: #fff;
  background: #f33;
  font-size: 13px;
  line-height: 1;
  padding: 3px;
  margin-left: 5px;
}
.contact td {
  background-color: #fff;
}
.contact input{
  max-width: 400px;
  width: 100%;
  font-size: 100%;
  padding: 8px 5px;
}
.contact input[type="date"] {
  width: auto;
  padding: 6px 5px 5px;
}
.contact select {
  padding: 9px 5px!important;
}
.contact textarea {
  max-width: 400px;
  width: 100%;
}
.submit_btn{
  margin-top: 40px;
  text-align: center;
}
.submit_btn input {
  cursor: pointer;
  border: none;
  padding: 15px 20px;
  transition: 0.2s ease-in-out;
  max-width: 150px;
  width: 100%;
  font-size: 100%;
  margin: 0 10px 10px;
}
.submit_btn input:hover {
  opacity: 0.8;
}
.submit_btn input[type="reset"] {
  color: #fff;
  background: #888;
}
.submit_btn input[type="submit"] {
  color: #fff;
  background: var(--main-color);
}

@media screen and (max-width: 640px) {
  .contact th,
  .contact td {
    display: block;
    width: 100%;
    border-top: none;
    border-left: none;
    border-right: none;
    border-bottom: 1px solid var(--main-color);
    padding: 10px 5%;
  }

  .contact tr:last-child td {
    border-bottom: none;
  }

  .contact input[type="date"] {
    display: block;
    margin-bottom: 10px;
  }

  .contact select {
    display: block;
    margin-bottom: 20px;
  }

  .submit_btn input {
    max-width: 110px;
  }
}

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

  schedule（MPCLOUD）

============================================================================*/
#mpcloud_schedule {
  width: 220px;
  position: fixed;
  bottom: 15px;
  right: 22px;
  border-radius: 15px;
  background-color: rgb(255 255 255 / 0.9);
  z-index: 100;
  font-size: 14px;
  letter-spacing: 0.08em;
}
#mpcloud_schedule section {
  border-radius: 15px;
  box-shadow: 0 8px 22px 8px rgb(0 0 0 / 0.1);
}
.shcedule_title {
  font-size: 16px;
  font-weight: 600;
  border-bottom: 2px solid #aaa;
  border-top-left-radius: 10px;
  border-top-right-radius: 10px;
  padding: 10px 0;
  text-align: center;
}
.shcedule_title i {
  position: relative;
  top: -2px;
  right: -25px;
  font-style: normal;
  font-size: 12px;
  cursor: pointer;
}
.schedule_time {
  margin: 8px 0 0 0;
}
.schedule_time dt {
  font-weight: bold;
}
.shcedule_box dt {
  background: #eee;
  text-align: center;
}
.shcedule_box dd {
  height: auto;
  vertical-align: top;
}
.shcedule_box dd i {
  display: inline-block;
  width: 17px;
  height: 17px;
  background-size: 17px 17px;
  padding: 2px 0 2px 22px;
  margin-left: 15px;
  vertical-align: inherit;
}
.shcedule_today {
  padding: 10px 16px;
}
.schedule_comment {
  border-top: 1px solid #d6d6d6;
  padding: 8px 12px;
  font-size: 14px;
}

@media screen and (max-width: 640px) {
  #mpcloud_schedule {
    width: 100%;
    right: 0;
    left: 0;
    border-radius: 0;
  }

  .time_close {
    right: 20px;
    font-size: 17px;
  }

  .schedule_time {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
  }

  .schedule_time dt {
    width: 35%;
    margin-bottom: 5px;
  }

  .schedule_time dd {
    width: 65%;
    margin-bottom: 5px;
  }

  .schedule_time dd i {
    margin: 0 3px 0 15px;
    vertical-align: text-bottom;
  }
}

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

  CSSアニメーション

==================================================================*/
/* フェードイン */
.fadeIn{
  opacity: 0;
  visibility: visible;
}
.is-visible.fadeIn{
  animation: fadeIn 1s cubic-bezier(0.645, 0.045, 0.355, 1.000) forwards;
}
@keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

/* フェードイン（下→上） */
.fadeInUp{
  opacity: 0;
  visibility: visible;
}
.is-visible.fadeInUp{
  animation: fadeInUp 1s cubic-bezier(0.645, 0.045, 0.355, 1.000) forwards;
}
@keyframes fadeInUp {
  0% {
    opacity: 0;
    transform: translate3d(0, 100%, 0);
  }
  80% {
    opacity: 1;
  }
  100% {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

/* フェードイン（右→左） */
.fadeInRight{
  opacity: 0;
  visibility: visible;
}
.is-visible.fadeInRight{
  animation: fadeInRight 1s cubic-bezier(0.645, 0.045, 0.355, 1.000) forwards;
}
@keyframes fadeInRight {
  0% {
    opacity: 0;
    transform: translate3d(100%, 0, 0);;
  }
  80% {
    opacity: 1;
  }
  100% {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

/* フェードイン（左→右） */
.fadeInLeft{
  opacity: 0;
  visibility: visible;
}
.is-visible.fadeInLeft{
  animation: fadeInLeft 1s cubic-bezier(0.645, 0.045, 0.355, 1.000) forwards;
}
@keyframes fadeInLeft {
  0% {
    opacity: 0;
    transform: translate3d(-100%, 0, 0);
  }
  80% {
    opacity: 1;
  }
  100% {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

/* フリップ（右回転） */
.flipRight{
  opacity: 0;
  visibility: visible;
}
.is-visible.flipRight{
  animation: flipRight 1s cubic-bezier(0.645, 0.045, 0.355, 1.000) forwards;
  transform: rotateY(-180deg);
}
@keyframes flipRight {
  0% {
    opacity: 0;
    transform: rotateY(-180deg);
  }
  100% {
    opacity: 1;
    transform: rotateY(0deg);
  }
}

/* フリップ（左回転） */
.flipLeft{
  opacity: 0;
  visibility: visible;
  transform: rotateY(180deg);
}
.is-visible.flipLeft{
  animation: flipLeft 1s cubic-bezier(0.645, 0.045, 0.355, 1.000) forwards;
}
@keyframes flipLeft {
  0% {
    opacity: 0;
    transform: rotateY(180deg);
  }
  100% {
    opacity: 1;
    transform: rotateY(0deg);
  }
}

/* 恒常的に動くアニメーション */

/* ゆっくり回転（右回転） */
.rotateRight{
  animation: rotateRight 20s linear infinite;
}
@keyframes rotateRight {
  0% {
    transform: rotate(0deg);
  }
  100% {
    opacity: 1;
    transform: rotate(360deg);
  }
}

/* ゆっくり回転（左回転） */
.rotateLeft{
  animation: rotateLeft 20s linear infinite;
}
@keyframes rotateLeft {
  0% {
    transform: rotate(0deg);
  }
  100% {
    opacity: 1;
    transform: rotate(-360deg);
  }
}

/* 浮遊（基準点から上） */
.floatingUp{
  animation: floatingUp 10s ease-in-out infinite;
}
@keyframes floatingUp {
  0% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-30px);
  }
  100% {
    transform: translateY(0);
  }
}

/* 浮遊（基準点から下） */
.floatingDown{
  animation: floatingDown 10s ease-in-out infinite;
}
@keyframes floatingDown {
  0% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(30px);
  }
  100% {
    transform: translateY(0);
  }
}

/* 生き物が跳ねる（鳥、リスなど） */
.jumping{
  position: relative;
  animation: jumping 1s ease-in-out infinite;
}
@keyframes jumping{
  0% {
    top: 0;
  }
  10% {
    top: -5px;
  }
  20% {
    top: 0px;
  }
  30% {
    top: -5px;
  }
  40% {
    top: 0px;
  }
  100% {
    top: 0px;
  }
}

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

  common

============================================================================*/
.pc_inline{display:inline!important}.sp_inline{display:none!important}.sp_inline_ip{display:none!important}.pc_table{display:none!important}.sp_table{display:none!important}.w010par{width:10%!important}.w020par{width:20%!important}.w025par{width:25%!important}.w050par{width:50%!important}.w075par{width:75%!important}.w100par{width:100%!important}.w010{width:10px!important}.w020{width:20px!important}.w030{width:30px!important}.w040{width:40px!important}.w050{width:50px!important}.w060{width:60px!important}.w070{width:70px!important}.w080{width:80px!important}.w090{width:90px!important}.w100{width:100px!important}.w110{width:110px!important}.w120{width:120px!important}.w130{width:130px!important}.w140{width:140px!important}.w150{width:150px!important}.w160{width:160px!important}.w170{width:170px!important}.w180{width:180px!important}.w190{width:190px!important}.w200{width:200px!important}.w210{width:210px!important}.w220{width:220px!important}.w230{width:230px!important}.w240{width:240px!important}.w250{width:250px!important}.w255{width:255px!important}.w260{width:260px!important}.w270{width:270px!important}.w280{width:280px!important}.w290{width:290px!important}.w300{width:300px!important}.w305{width:305px!important}.w310{width:310px!important}.w320{width:320px!important}.w330{width:330px!important}.w340{width:340px!important}.w350{width:350px!important}.w360{width:360px!important}.w365{width:365px!important}.w370{width:370px!important}.w380{width:380px!important}.w390{width:390px!important}.w400{width:400px!important}.w410{width:400px!important}.w415{width:415px!important}.w420{width:420px!important}.w430{width:430px!important}.w435{width:435px!important}.w440{width:440px!important}.w450{width:450px!important}.w460{width:460px!important}.w470{width:470px!important}.w480{width:480px!important}.w490{width:490px!important}.w500{width:500px!important}.w510{width:510px!important}.w520{width:520px!important}.w530{width:530px!important}.w540{width:540px!important}.w550{width:550px!important}.w560{width:560px!important}.w570{width:570px!important}.w580{width:580px!important}.w590{width:590px!important}.w600{width:600px!important}.w610{width:610px!important}.w620{width:620px!important}.w630{width:630px!important}.w640{width:640px!important}.w650{width:650px!important}.w660{width:660px!important}.w670{width:670px!important}.w680{width:680px!important}.w690{width:690px!important}.w700{width:700px!important}.w710{width:710px!important}.w720{width:720px!important}.w730{width:730px!important}.w740{width:740px!important}.w750{width:750px!important}.w760{width:760px!important}.w765{width:765px!important}.w960{width:960px!important}.w980{width:980px!important}.h030{height:30px!important}.h180{height:180px!important}.h190{height:190px!important}.h200{height:200px!important}.h240{height:240px!important}.h250{height:250px!important}.h280{height:280px!important}.h300{height:300px!important}.h350{height:350px!important}.mt00{margin-top:0!important}.mt01{margin-top:1px!important}.mt02{margin-top:2px!important}.mt03{margin-top:3px!important}.mt04{margin-top:4px!important}.mt05{margin-top:5px!important}.mt06{margin-top:6px!important}.mt07{margin-top:7px!important}.mt08{margin-top:8px!important}.mt09{margin-top:9px!important}.mt10{margin-top:10px!important}.mt15{margin-top:15px!important}.mt20{margin-top:20px!important}.mt25{margin-top:25px!important}.mt30{margin-top:30px!important}.mt35{margin-top:35px!important}.mt40{margin-top:40px!important}.mt45{margin-top:45px!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}.mr01{margin-right:1px!important}.mr02{margin-right:2px!important}.mr03{margin-right:3px!important}.mr04{margin-right:4px!important}.mr05{margin-right:5px!important}.mr06{margin-right:6px!important}.mr07{margin-right:7px!important}.mr08{margin-right:8px!important}.mr09{margin-right:9px!important}.mr10{margin-right:10px!important}.mr15{margin-right:15px!important}.mr20{margin-right:20px!important}.mr25{margin-right:25px!important}.mr30{margin-right:30px!important}.mr35{margin-right:35px!important}.mr40{margin-right:40px!important}.mr45{margin-right:45px!important}.mr50{margin-right:50px!important}.mr60{margin-right:60px!important}.mr70{margin-right:70px!important}.mr80{margin-right:80px!important}.mr90{margin-right:90px!important}.mr100{margin-right:100px!important}.mb00{margin-bottom:0!important}.mb01{margin-bottom:1px!important}.mb02{margin-bottom:2px!important}.mb03{margin-bottom:3px!important}.mb04{margin-bottom:4px!important}.mb05{margin-bottom:5px!important}.mb06{margin-bottom:6px!important}.mb07{margin-bottom:7px!important}.mb08{margin-bottom:8px!important}.mb09{margin-bottom:9px!important}.mb10{margin-bottom:10px!important}.mb15{margin-bottom:15px!important}.mb20{margin-bottom:20px!important}.mb25{margin-bottom:25px!important}.mb30{margin-bottom:30px!important}.mb35{margin-bottom:35px!important}.mb40{margin-bottom:40px!important}.mb45{margin-bottom:45px!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}.ml00{margin-left:0!important}.ml01{margin-left:1px!important}.ml02{margin-left:2px!important}.ml03{margin-left:3px!important}.ml04{margin-left:4px!important}.ml05{margin-left:5px!important}.ml06{margin-left:6px!important}.ml07{margin-left:7px!important}.ml08{margin-left:8px!important}.ml09{margin-left:9px!important}.ml10{margin-left:10px!important}.ml12{margin-left:12px!important}.ml15{margin-left:15px!important}.ml20{margin-left:20px!important}.ml25{margin-left:25px!important}.ml30{margin-left:30px!important}.ml35{margin-left:35px!important}.ml40{margin-left:40px!important}.ml45{margin-left:45px!important}.ml50{margin-left:50px!important}.ml60{margin-left:60px!important}.ml70{margin-left:70px!important}.ml80{margin-left:80px!important}.ml90{margin-left:90px!important}.ml100{margin-left:100px!important}.ml140{margin-left:140px!important}.ml160{margin-left:160px!important}.ma10{margin:10px!important}.ma15{margin:15px!important}.ma_auto{margin-left:auto;margin-right:auto!important}.pt00{padding-top:0!important}.pt01{padding-top:1px!important}.pt02{padding-top:2px!important}.pt03{padding-top:3px!important}.pt04{padding-top:4px!important}.pt05{padding-top:5px!important}.pt06{padding-top:6px!important}.pt07{padding-top:7px!important}.pt08{padding-top:8px!important}.pt09{padding-top:9px!important}.pt10{padding-top:10px!important}.pt15{padding-top:15px!important}.pt20{padding-top:20px!important}.pt25{padding-top:25px!important}.pt30{padding-top:30px!important}.pt35{padding-top:35px!important}.pt40{padding-top:40px!important}.pt45{padding-top:45px!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}.pt120{padding-top:120px!important}.pr00{padding-right:0!important}.pr01{padding-right:1px!important}.pr02{padding-right:2px!important}.pr03{padding-right:3px!important}.pr04{padding-right:4px!important}.pr05{padding-right:5px!important}.pr06{padding-right:6px!important}.pr07{padding-right:7px!important}.pr08{padding-right:8px!important}.pr09{padding-right:9px!important}.pr10{padding-right:10px!important}.pr15{padding-right:15px!important}.pr20{padding-right:20px!important}.pr25{padding-right:25px!important}.pr30{padding-right:30px!important}.pr35{padding-right:35px!important}.pr40{padding-right:40px!important}.pr45{padding-right:45px!important}.pr50{padding-right:50px!important}.pr60{padding-right:60px!important}.pr70{padding-right:70px!important}.pr80{padding-right:80px!important}.pr90{padding-right:90px!important}.pr100{padding-right:100px!important}.pb00{padding-bottom:0!important}.pb01{padding-bottom:1px!important}.pb02{padding-bottom:2px!important}.pb03{padding-bottom:3px!important}.pb04{padding-bottom:4px!important}.pb05{padding-bottom:5px!important}.pb06{padding-bottom:6px!important}.pb07{padding-bottom:7px!important}.pb08{padding-bottom:8px!important}.pb09{padding-bottom:9px!important}.pb10{padding-bottom:10px!important}.pb15{padding-bottom:15px!important}.pb20{padding-bottom:20px!important}.pb25{padding-bottom:25px!important}.pb30{padding-bottom:30px!important}.pb35{padding-bottom:35px!important}.pb40{padding-bottom:40px!important}.pb45{padding-bottom:45px!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}.pl00{padding-left:0!important}.pl01{padding-left:1px!important}.pl02{padding-left:2px!important}.pl03{padding-left:3px!important}.pl04{padding-left:4px!important}.pl05{padding-left:5px!important}.pl06{padding-left:6px!important}.pl07{padding-left:7px!important}.pl08{padding-left:8px!important}.pl09{padding-left:9px!important}.pl10{padding-left:10px!important}.pl15{padding-left:15px!important}.pl20{padding-left:20px!important}.pl25{padding-left:25px!important}.pl30{padding-left:30px!important}.pl35{padding-left:35px!important}.pl40{padding-left:40px!important}.pl45{padding-left:45px!important}.pl50{padding-left:50px!important}.pl60{padding-left:60px!important}.pl70{padding-left:70px!important}.pl80{padding-left:80px!important}.pl90{padding-left:90px!important}.pl100{padding-left:100px!important}.pa01{padding:1px!important}.pa02{padding:2px!important}.pa03{padding:3px!important}.pa04{padding:4px!important}.pa05{padding:5px!important}.pa10{padding:10px!important}.pa15{padding:15px!important}.fr{float:right!important}.fl{float:left!important}.fr10{float:right;margin-left:10px!important}.fr15{float:right;margin-left:15px!important}.fr30{float:right;margin-left:15px!important}.fl10{float:left;margin-right:10px!important}.fl15{float:left;margin-right:15px!important}.fl30{float:left;margin-right:30px!important}.txt10{font-size:10px!important}.txt11{font-size:11px!important}.txt12{font-size:12px!important}.txt13{font-size:13px!important}.txt14{font-size:14px!important}.txt15{font-size:15px!important}.txt16{font-size:16px!important}.txt17{font-size:17px!important}.txt18{font-size:18px!important}.txt19{font-size:19px!important}.txt20{font-size:20px!important}.txt21{font-size:21px!important}.txt22{font-size:22px!important}.txt23{font-size:23px!important}.txt24{font-size:24px!important}.txt25{font-size:25px!important}.txt26{font-size:26px!important}.txt27{font-size:27px!important}.txt28{font-size:28px!important}.txt29{font-size:29px!important}.txt30{font-size:30px!important}.txt31{font-size:31px!important}.txt32{font-size:32px!important}.txt33{font-size:33px!important}.txt34{font-size:34px!important}.txt35{font-size:35px!important}.txt36{font-size:36px!important}.txt37{font-size:37px!important}.txt38{font-size:38px!important}.txt39{font-size:39px!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}.clear{clear:both!important}.v_top{vertical-align:top!important}.v_mid{vertical-align:middle!important}.v_btm{vertical-align:bottom!important}.color_red{color:#f33!important}.color_pink{color:#ed8c96!important}.color_blue{color:#00408f!important}.color_green{color:#479f9d!important}.color_orange{color:#ff8327!important}.color_yellow{color:#ffeb8b!important}.color_beige{color:#dac58b!important}.color_brown{color:#9b8052!important}.color_navy{color:#1f2774!important}.color_black{color:#333!important}.ls_0{letter-spacing:0!important}.ls_1{letter-spacing:1px!important}.indent{margin-left:1em!important;text-indent:-1em!important}.line_h_2{line-height:2!important}.clearfix:after{display:block!important;clear:both!important;content:""!important}.sp{display:none!important}

@media screen and (max-width: 640px) {
  .pc{display:none!important}.sp{display:block!important}.pc_inline{display:none!important}.sp_inline{display:inline!important}.pc_table{display:table!important}.sp_table{display:table!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}
}