@charset "UTF-8";
/* ------
  - *基本設定
  - *パンくずリスト
  - *ページ内リンク
  - *ページャー
  - *タブ
  - *アコーディオン
  - *レイアウト
  - *タイトル
  - *メインビジュアル
  - *扉ページ
  - *医院案内
  - *医師紹介
  - *アクセス
  - *ブログ
  - *404
------ */
/* ==================================================================================================================================

  *基本設定

================================================================================================================================== */
/* ----------------------------------------------------------------------
  ▼ PC
---------------------------------------------------------------------- */
main section:not(:last-child) {
    margin-bottom: 100px;
}
main .wrapper {
    display: flex;
    gap: 50px;
    margin: 30px auto 100px;
}
main .contents {
    width: 100%;
}
/* ----- 1カラム用 ------ */
main .inner {
    max-width: 1200px;
}
/* ----- 2カラム用 ------ */
main .two_column.wrapper {
    max-width: 1200px;
}
main .two_column .inner {
    width: 100%;
}
/* ----------------------------------------------------------------------
  ▼ SP
---------------------------------------------------------------------- */
@media screen and (max-width: 640px) {
    main section:not(:last-child) {
        margin-bottom: 80px;
    }
    main .wrapper {
        margin: 0 auto 80px;
    }
    /* ----- 1カラム用 ------ */
    main .inner {
        padding: 0 20px;
    }
    /* ----- 2カラム用 ------ */
    main .two_column.wrapper {
        flex-flow: column;
    }
}
/* ==================================================================================================================================

  *パンくずリスト

================================================================================================================================== */
/* ----------------------------------------------------------------------
  ▼ PC
---------------------------------------------------------------------- */
.breadcrumb {
    margin: 0 auto 30px !important;
}
.breadcrumb_list {
    counter-reset: unset;
    display: flex;
    flex-wrap: wrap;
    gap: 5px 0;
}
.breadcrumb_list li {
    position: relative;
    margin: 0;
    padding: 0;
    line-height: 1.5;
}
.breadcrumb_list li::after {
    content: "\f054";
    position: relative;
    top: -1px;
    padding: 0 10px;
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: 70%;
}
/* 親、子、孫が複数ある場合、最後以外にカンマを表示 */
.breadcrumb_list li.parent:has(~ .parent)::after,
.breadcrumb_list li.child:has(~ .child)::after,
.breadcrumb_list li.grandchild:has(~ .grandchild)::after {
    content: ",";
    position: relative;
    top: 0;
    padding: 0 5px;
    font-family: inherit;
    font-weight: normal;
    font-size: 100%;
}
/* 最後の要素の矢印を消す */
.breadcrumb_list li:last-of-type::after {
    display: none;
}
/* ----------------------------------------------------------------------
  ▼ SP
---------------------------------------------------------------------- */
@media screen and (max-width: 640px) {
    .breadcrumb {
        font-size: 13px;
    }
}
/* ==================================================================================================================================

  *ページ内リンク

================================================================================================================================== */
/* ----------------------------------------------------------------------
  ▼ PC
---------------------------------------------------------------------- */
.page_links {
    margin-bottom: 50px;
}
.page_links ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 10px;
}
.page_links li {
    position: relative;
    z-index: 1;
}
.page_links a {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%;
    padding: 10px 15px;
    background: #15579f;
    border: 1px solid #15579f;
    color: #ffffff;
    font-size: 95%;
    text-align: center;
    transition: color 0.2s, background 0.2s;
}
.page_links a:hover {
    background: #ffffff;
    color: #15579f;
}
/* ----- 2列 ----- */
.twoLinks li {
    width: calc(50% - 5px);
}
/* ----- 3列 ----- */
.threeLinks li {
    width: calc(33.3333333333% - 6.6666666667px);
}

/* ----------------------------------------------------------------------
  ▼ SP
---------------------------------------------------------------------- */
@media screen and (max-width: 640px) {
    .page_links {
        margin-bottom: 40px;
    }
    /* ----- 2列 ----- */
    .twoLinks li {
        width: 100%;
    }
    /* ----- 3列 ----- */
    .threeLinks li {
        width: 100%;
    }
}
/* ==================================================================================================================================

  *ページャー

================================================================================================================================== */
/* ----------------------------------------------------------------------
  ▼ PC
---------------------------------------------------------------------- */
.pager {
    display: flex;
    flex-flow: wrap;
    justify-content: center;
    align-items: center;
    gap: 15px;
    margin: 30px auto 0;
    font-size: 15px;
}
/* ----- ページャーのボタン ----- */
.page-numbers {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 40px;
    height: 40px;
    padding: 0 0 1px 2px;
    background: #d7d7d7;
    border-radius: 50%;
    color: #ffffff;
    line-height: 1;
}
/* リンクの場合  */
a.page-numbers.prev, a.page-numbers.next {
    padding: 0 0 5px 1px;
    font-size: 170%;
}
a.page-numbers:hover {
    background: #929292;
    color: #ffffff;
}
/* 開いているページ */
.page-numbers.current {
    background: var(--main-color);
    color: #ffffff;
}
/* ==================================================================================================================================

  *サイドバー

================================================================================================================================== */
/* ----------------------------------------------------------------------
  ▼ PC
---------------------------------------------------------------------- */
.sidebar {
    z-index: 3;
    flex-shrink: 0;
    width: 300px;
}
.side_box {
    padding: 20px;
    background: var(--bg-color);
}
.side_box:not(:last-of-type) {
    margin-bottom: 30px;
}
.side_box .children {
    padding-left: 10px;
}
.side_box a {
    color: var(--text-color);
}
.side_box a:hover {
    color: var(--main-color);
}
.side_title {
    position: relative;
    z-index: 1;
    margin-bottom: 15px;
    padding: 0 0 5px 5px;
    border-bottom: solid 2px var(--main-color);
    font-weight: bold;
    font-size: 110%;
    line-height: 1.5;
    text-align: left;
}
.side_title i {
    margin-right: 10px;
    color: var(--main-color);
}
/* ----- サイドバー（診療案内） ----- */
.sidebar_medical li {
    padding: 10px 15px;
    border-bottom: 1px solid var(--line-color);
}
/* ----------------------------------------------------------------------
  ▼ SP
---------------------------------------------------------------------- */
@media screen and (max-width: 640px) {
    .sidebar {
        width: 100%;
        margin: 0;
        padding: 0 20px;
    }
    .side_box:not(:last-of-type) {
        margin-bottom: 20px;
    }
}
/* ==================================================================================================================================

  *タブ

================================================================================================================================== */
/* ----------------------------------------------------------------------
  ▼ PC
---------------------------------------------------------------------- */
.tab_list {
    display: flex;
    flex-flow: wrap;
    gap: 10px;
}
.tab_list li {
    display: flex;
    flex: 1;
    flex-flow: column;
    justify-content: center;
    align-items: center;
    width: fit-content;
    padding: 10px 20px;
    background: #a9a9a9;
    color: #ffffff;
    font-size: 140%;
    cursor: pointer;
    transition: transform 0.2s, padding 0.2s;
}
.tab_list li.is-active {
    background: var(--main-color);
}
.panel {
    display: none;
    margin: 0 !important;
    padding: 20px;
    background: var(--bg-color);
}
.panel>*:not(:last-child) {
    margin-bottom: 2em;
}
/* ----------------------------------------------------------------------
  ▼ SP
---------------------------------------------------------------------- */
@media screen and (max-width: 640px) {
    .tab_list {
        flex-flow: column;
    }
    .tab_list li {
        width: 100%;
    }
    .panel {
        margin-top: 20px;
        padding: 15px;
    }
}
/* ==================================================================================================================================

  *アコーディオン

================================================================================================================================== */
/* ----------------------------------------------------------------------
  ▼ PC
---------------------------------------------------------------------- */
.accordion dl:not(:last-child) {
    margin-bottom: 15px;
}
.accordion dl dt {
    position: relative;
    z-index: 1;
    background-color: var(--bg-color);
    font-weight: normal;
    transition: background 0.3s, color 0.2s;
}
.accordion dl dt:hover {
    background: #f4f4f4;
}
.accordion dl dt::before {
    content: "";
    position: absolute;
    top: 50%;
    right: 25px;
    z-index: 2;
    width: 15px;
    height: 2px;
    background: var(--main-color);
    transform: rotate(90deg);
    transition: transform 0.3s, opacity 0.3s;
}
.accordion dl dt::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 25px;
    z-index: 2;
    width: 15px;
    height: 2px;
    background: var(--main-color);
    transition: transform 0.3s, background 0.3s;
}
.accordion dl dt.is-active {
    background: var(--main-color);
    color: #ffffff;
}
.accordion dl dt.is-active::before {
    opacity: 0;
    transform: rotate(180deg);
}
.accordion dl dt.is-active::after {
    background: #ffffff;
}
.accordion dl dt>div {
    position: relative;
    z-index: 1;
    margin: 0;
    padding: 15px 60px 15px 25px;
    cursor: pointer;
    transition: background 0.2s;
}
.accordion dl dd {
    display: none;
}
.accordion dl dd>div {
    position: relative;
    z-index: 1;
    padding: 15px 25px;
}
.accordion dl dd>div>*:not(h1, h2, h3, h4, h5) {
    margin-bottom: 2em;
}
.accordion dl dd>div>*:not(h1, h2, h3, h4, h5):last-child {
    margin-bottom: 0;
}
/* ----- FAQアコーディオン ----- */
.accordion.faq dl dt>div {
    position: relative;
    z-index: 1;
    margin: 0;
    padding: 15px 50px 15px 60px;
    cursor: pointer;
    transition: background 0.2s;
}
.accordion.faq dl dt>div::before {
    content: "Q.";
    position: absolute;
    top: 20px;
    left: 20px;
    font-size: 140%;
    line-height: 1;
}
.accordion.faq dl dd>div {
    position: relative;
    z-index: 1;
    padding: 15px 25px 15px 60px;
}
.accordion.faq dl dd>div:before {
    content: "A.";
    position: absolute;
    top: 20px;
    left: 20px;
    color: #c52b2b;
    font-size: 140%;
    line-height: 1;
}
/* ----------------------------------------------------------------------
  ▼ SP
---------------------------------------------------------------------- */
@media screen and (max-width: 640px) {
    .accordion dl dt::before {
        right: 20px;
        width: 12px;
    }
    .accordion dl dt::after {
        right: 20px;
        width: 12px;
    }
    .accordion dl dt>div {
        padding: 15px 40px 15px 15px;
    }
    .accordion dl dd>div {
        padding: 15px;
    }
    /* ----- FAQアコーディオン ----- */
    .accordion.faq dl dt>div {
        padding: 15px 40px 15px 50px;
    }
    .accordion.faq dl dt>div::before {
        top: 18px;
    }
    .accordion.faq dl dd>div {
        padding: 15px 15px 15px 50px;
    }
}
/* ==================================================================================================================================

  *レイアウト

================================================================================================================================== */
/* ----------------------------------------------------------------------
  ▼ PC
---------------------------------------------------------------------- */
/* ------ 共通 ------ */
.layout_text>*:not(:last-child) {
    margin-bottom: 1.25em;
}
.layout_text>*:last-child {
    margin-bottom: 0 !important;
}
.layout_right.text_center {
    align-items: center;
}
/* ------ layout01 ------ */
.layout01 {
    position: relative;
    z-index: 1;
}
.layout01 .layout_box {
    display: flex;
    gap: 20px;
    padding: 15px;
    background: var(--bg-color);
}
.layout01 .layout_box:not(:last-of-type) {
    margin-bottom: 20px;
}
.layout01 .layout_img {
    display: flex;
    flex-flow: column;
    flex-shrink: 0;
    justify-content: center;
    align-items: center;
    width: 370px;
    padding: 10px;
    background: #ffffff;
}
.layout01 .layout_img .imgtxt {
    display: block;
    margin-top: 10px;
    padding: 0;
    border: none;
    font-weight: bold;
    font-size: 110%;
}
.layout01 .layout_text {
    width: 100%;
}
.layout01 {
    /* タイトル */
}
.layout01 .layout_title {
    display: block;
    padding: 10px 20px;
    background: var(--main-color);
    border: none;
    border-radius: 0;
    color: #ffffff;
    font-size: 110%;
}
.layout01 .layout_title::before, .layout01 .layout_title::after {
    display: none;
}
.layout01 .layout_title span {
    display: inline-block;
    margin-right: 10px;
}
.layout01 {
    /* サブタイトル */
}
.layout01 .layout_sub_title {
    display: block;
    width: fit-content;
    padding: 2px 15px 4px;
    background: #555555;
    border: none;
    border-radius: 0;
    color: #ffffff;
    font-size: 110%;
}
.layout01 .layout_sub_title::before, .layout01 .layout_sub_title::after {
    display: none;
}
/* ------ layout02 ------ */
.layout02 {
    position: relative;
    z-index: 1;
    border-bottom: 1px solid var(--line-color);
}
.layout02 .layout_box {
    display: flex;
    flex-flow: wrap;
    border-top: 1px solid var(--line-color);
}
.layout02 .layout_left {
    display: flex;
    flex-flow: column;
    justify-content: center;
    align-items: center;
    width: 35%;
    padding: 40px 20px;
    background: var(--bg-color);
}
.layout02 .layout_left>*:not(:last-child) {
    margin-bottom: 1em;
}
.layout02 {
    /* タイトル */
}
.layout02 .layout_title {
    display: block;
    margin: 0;
    padding: 0;
    background: none;
    border: none;
    border-radius: 0;
    color: var(--main-color);
    font-weight: bold;
    font-size: 110%;
}
.layout02 .layout_title::before, .layout02 .layout_title::after {
    display: none;
}
.layout02 .layout_title span {
    display: inline-block;
    margin-right: 10px;
}
.layout02 .layout_right {
    display: flex;
    flex-flow: column;
    justify-content: center;
    width: 65%;
    padding: 20px;
}
.layout02 {
    /* サブタイトル */
}
.layout02 .layout_sub_title {
    display: block;
    width: fit-content;
    padding: 2px 15px 4px;
    background: #555555;
    border: none;
    border-radius: 0;
    color: #ffffff;
    font-size: 110%;
}
.layout02 .layout_sub_title::before, .layout02 .layout_sub_title::after {
    display: none;
}
/* ------ layout03 ------ */
.layout03 {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 30px 20px;
}
.layout03 .layout_box {
    display: flex;
    flex-flow: column;
}
.layout03 .layout_inner {
    height: auto;
    height: 100%;
    padding: 20px;
    background: var(--bg-color);
}
.layout03 {
    /* タイトル */
}
.layout03 .layout_title {
    display: block;
    margin: 0;
    padding: 10px 20px;
    background: var(--main-color);
    border: none;
    border-radius: 0;
    color: #ffffff;
    font-size: 110%;
}
.layout03 .layout_title::before, .layout03 .layout_title::after {
    display: none;
}
.layout03 .layout_title_subcolor {
    background: var(--sub-color);
}
/* ------  flow ------  */
.flow {
    position: relative;
    z-index: 1;
    padding: 30px;
    background: var(--bg-color);
}
.flow_box {
    display: flex;
    gap: 30px;
    padding: 30px 0;
}
.flow_box:first-of-type {
    padding-top: 0;
}
.flow_box:last-child {
    padding-bottom: 0;
}
.flow_number {
    position: relative;
    z-index: 1;
}
.flow_number::before {
    content: "";
    position: absolute;
    top: 55px;
    left: 50%;
    z-index: -1;
    width: auto;
    height: 100%;
    border-right: var(--line-color) dashed 3px;
    transform: translateX(-50%);
}
.flow_number * {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 50px;
    height: 50px;
    padding: 0 0 3px 2px;
    background: var(--main-color);
    color: #ffffff;
    font-size: 120%;
}
.flow_box:last-of-type .flow_number::before {
    display: none;
}
.flow_inner {
    width: calc(100% - 80px);
}
.flow_inner>*:not(:last-child) {
    margin-bottom: 1em;
}
.flow_title {
    display: block;
    margin-bottom: 15px;
    padding: 7px 20px;
    background: #ffffff;
    border: none;
    border-radius: 0;
    color: var(--text-color);
    font-size: 120%;
}
.flow_sub_title {
    width: fit-content;
    margin-bottom: 15px;
    padding: 5px 20px;
    background: var(--main-color);
    border: none;
    border-radius: 0;
    color: #ffffff;
    font-size: 100%;
}
/* ------ flexbox01（改行せずに等間隔で配置） ------ */
.flexbox01 {
    display: flex;
    flex-flow: wrap;
    gap: 10px;
}
.flexbox01>* {
    flex: 1;
}
/* ------ flexbox02 ------ */
.flexbox02 {
    display: flex;
    flex-flow: wrap;
    gap: 10px;
}
.flexbox02>* {
    width: calc(50% - 5px);
}
/* ------ flexbox03 ------ */
.flexbox03 {
    display: flex;
    flex-flow: wrap;
    gap: 10px;
}
.flexbox03>* {
    width: calc(33.3333333333% - 6.6666666667px);
}
/* ------ flexbox04 ------ */
.flexbox04 {
    display: flex;
    flex-flow: wrap;
    gap: 10px;
}
.flexbox04>* {
    width: calc(25% - 7.5px);
}
/* ------ 枠 ------ */
:is(.frame01, .frame02, .frame03)>*:not(h1, h2, h3, h4, h5) {
    margin-bottom: 2em;
}
:is(.frame01, .frame02, .frame03)>*:last-child {
    margin-bottom: 0;
}
.frame01 {
    position: relative;
    z-index: 1;
    padding: 40px 30px;
    background: var(--bg-color);
}
.frame01::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: -1;
    display: block;
    width: calc(100% - 20px);
    height: calc(100% - 20px);
    border: 1px solid #ffffff;
    transform: translate(-50%, -50%);
}
.frame01 p {
    font-size: 120%;
    text-align: center;
}
.frame02 {
    padding: 20px 25px;
    background: var(--bg-color);
}
.frame03 {
    padding: 20px 25px;
    border: 1px solid var(--line-color);
}
.img_center {
    text-align: center;
}
.img_fl, .img_fr {
    position: relative;
    z-index: 2;
    display: block;
    margin-bottom: 20px;
}
.img_fl {
    float: left;
    margin-right: 30px;
    text-align: center;
}
.img_fr {
    float: right;
    margin-left: 30px;
    text-align: center;
}
.img_fl img, .img_fr img {
    width: auto;
    max-width: 400px;
    height: auto;
    max-height: 400px;
}
.imgtxt {
    margin-top: 10px;
    text-align: center;
}
.float_clear {
    float: none !important;
}
.img_center.img_w54 img{
    width: auto;
    max-width: 540px;
    height: auto;
}
/* ----------------------------------------------------------------------
  ▼ SP
---------------------------------------------------------------------- */
@media screen and (max-width: 640px) {
    /* ------ layout01 ------ */
    .layout01 .layout_box {
        flex-flow: wrap;
        gap: 15px;
    }
    .layout01 .layout_img {
        width: 100%;
    }
    .layout01 .layout_text {
        width: 100%;
    }
    /* ------ layout02 ------ */
    .layout02 .layout_left {
        width: 100%;
    }
    .layout02 .layout_right {
        width: 100%;
    }
    /* ------ layout03 ------ */
    .layout03 {
        display: grid;
        grid-template-columns: repeat(1, 1fr);
        gap: 20px;
    }
    /* ------ flow ------ */
    .flow {
        padding: 20px;
    }
    .flow_box {
        gap: 20px;
        padding: 20px 0;
    }
    .flow_number::before {
        top: 40px;
    }
    .flow_number span {
        width: 40px;
        height: 40px;
        padding-top: 2px;
    }
    .flow_inner {
        width: calc(100% - 60px);
    }
    .flow_title {
        padding: 4px 15px;
    }
    /* ------ flexbox01（改行せずに等間隔で配置） ------ */
    .flexbox01>* {
        flex: none;
        width: 100%;
    }
    /* ------  flexbox02 ------ */
    .flexbox02>* {
        width: 100%;
    }
    /* ------  flexbox03 ------ */
    .flexbox03>* {
        width: 100%;
    }
    /* ------  flexbox04 ------ */
    .flexbox04>* {
        width: 100%;
    }
    .img_fl, .img_fr {
        float: none;
        margin: 0 auto 2.25em;
        text-align: center;
    }
    .img_fl img, .img_fr img {
        width: auto;
        max-width: 100%;
        height: auto;
        max-height: none;
    }
	.img_center.img_w54 img{
        max-width: 100%;
    }
}
/* ==================================================================================================================================

  *タイトル

================================================================================================================================== */
/* ----------------------------------------------------------------------
  ▼ PC
---------------------------------------------------------------------- */
h2, h3, h4, h5, h6 {
    position: relative;
    z-index: 1;
    margin: 50px auto 25px 0;
    line-height: 1.75;
}
h2:first-of-type, h2+h3, h3+h4, h4+h5, h5+h6 {
    margin-top: 0;
}
h2 {
    margin-bottom: 40px;
    padding: 48px 0 0;
    font-family: "dnp-shuei-mgothic-std", sans-serif;
    font-weight: 600;
    font-size: 30px;
    letter-spacing: 0.1em;
    line-height: 1.4;
    color: var(--text-color);
    text-align: center;
    background: url(../images/common/logo_mark.svg) no-repeat center top / 62px auto;
}
h3 {
    position: relative;
    margin-bottom: 25px;
    padding: 13px 20px 13px 28px;
    font-family: "dnp-shuei-mgothic-std", sans-serif;
    font-weight: 600;
    font-size: 22px;
    line-height: 1.4;
    letter-spacing: 0.08em;
    color: var(--text-color);
    background-color: #f8f8f8;
}
h3::before {
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    width: 8px;
    height: 100%;
    background-image: linear-gradient(0deg, rgb(0,78,162) 50%, rgb(0,160,233) 50%);
    content: "";
}
h4 {
    margin-bottom: 15px;
    font-family: "dnp-shuei-mgothic-std", sans-serif;
    font-weight: 600;
    font-size: 19px;
    color: var(--main-color);
	background: linear-gradient(transparent 70%, var(--bg-color) 70%);
	width: fit-content;
}
h3 + h4 {
    margin-top: 0;
}
h5 {
    color: var(--main-color);
    font-size: 120%;
}
h4 + h5 {
    margin-top: 0;
}
h6 {
    font-size: 110%;
}

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

  *メインビジュアル

================================================================================================================================== */
/* ----------------------------------------------------------------------
  ▼ PC
---------------------------------------------------------------------- */
.mainvisual {
    position: relative;
    z-index: 1;
    overflow: hidden;
}
.mainvisual .mainvisual_container {
    position: relative;
    z-index: 1;
    background: var(--main-color);
}
.mainvisual .mainvisual_bg {
    position: absolute;
    top: 0;
    right: 0;
    z-index: -1;
    display: block;
    width: 100%;
    height: 100%;
}
.mainvisual .mainvisual_bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
}
.mainvisual .inner {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%;
    min-height: 230px;
    padding: 50px 0;
}

/* ----- 下層ページの見出し ----- */
.main_headline {
    font-family: "dnp-shuei-mgothic-std", sans-serif;
    font-weight: 600;
    font-size: 200%;
    line-height: 1.5;
    letter-spacing: 0.15em;
    text-align: center;
    color: #fff;
    filter: drop-shadow(0 0 5px rgba(1, 66, 136, 0.8)) drop-shadow(0 0 10px rgba(1, 66, 136, 0.5)) drop-shadow(0 0 15px rgba(1, 66, 136, 0.5));
}

/* ----------------------------------------------------------------------
  ▼ SP
---------------------------------------------------------------------- */
@media screen and (max-width: 640px) {
    .mainvisual .inner {
        min-height: 180px;
        padding: 30px 20px;
    }
    /* ----- 下層ページの見出し ----- */
    .main_headline {
        font-size: 150%;
    }
}
/* ==================================================================================================================================

  *扉ページ

================================================================================================================================== */
/* ----------------------------------------------------------------------
  ▼ PC
---------------------------------------------------------------------- */
.custom_post_wrapper {
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    gap: 100px 50px;
}
.custom_post_item .btn01 {
    margin-top: 30px;
    text-align: right;
}
/* ----------------------------------------------------------------------
  ▼ SP
---------------------------------------------------------------------- */
@media screen and (max-width: 640px) {
    .custom_post_wrapper {
        grid-template-columns: repeat(1, 1fr);
        gap: 80px 50px;
    }
}
/* ==================================================================================================================================

  *医院案内

================================================================================================================================== */
/* ----------------------------------------------------------------------
  ▼ PC
---------------------------------------------------------------------- */
.clinic_desc {
    width: 100%;
}
.clinic_desc dl {
    display: flex;
}
.clinic_desc dt {
    width: 20%;
    padding: 15px;
    border-bottom: 1px dotted var(--line-color);
    font-weight: bold;
}
.clinic_desc li:first-child dt {
    padding-top: 0;
}
.clinic_desc dd {
    width: 80%;
    padding: 15px;
    border-bottom: 1px dotted var(--line-color);
}
.clinic_desc dd .zipcode {
    margin-right: 10px;
}
.clinic_desc li:first-child dd {
    padding-top: 0;
}
.facilities_list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}
.two_column .facilities_list {
    grid-template-columns: repeat(2, 1fr);
}
.facilities_item {
    background: var(--bg-color);
}
.facilities_item dd {
    padding: 15px 20px;
}
.facilities_item dd p {
    padding-top: 8px;
}
.facilities_item h3 {
    margin: 0;
    padding: 0;
    background: none;
    border: none;
    color: var(--text-color);
    font-size: 125%;
}
.facilities_item h3::before, .facilities_item h3::after {
    display: none;
}
/* ----- 画像がない時用 ----- */
.facilities_item.noimg {
    padding: 15px 20px;
}
.facilities_item.noimg p {
    margin-top: 5px;
}
/* ----------------------------------------------------------------------
  ▼ SP
---------------------------------------------------------------------- */
@media screen and (max-width: 640px) {
    .clinic_desc dl {
        display: block;
    }
    .clinic_desc dt {
        width: 100%;
        padding: 15px 0 5px;
        border-bottom: none;
    }
    .clinic_desc li:first-child dt {
        padding-top: 0;
    }
    .clinic_desc dd {
        width: 100%;
        padding: 0 0 15px;
    }
    .facilities_list {
        grid-template-columns: repeat(1, 1fr);
    }
    .two_column .facilities_list {
        grid-template-columns: repeat(1, 1fr);
    }
}
/* ==================================================================================================================================

  *医師紹介

================================================================================================================================== */
/* ----------------------------------------------------------------------
  ▼ PC
---------------------------------------------------------------------- */
.doctor_box:not(:last-child) {
    margin: 0;
    padding: 0 0 60px;
}
.doctor_box:not(:first-child) h2 {
    margin-top: 20px;
}
.doctor_flex {
    display: flex;
    justify-content: center;
    gap: 40px;
}
.doctor_text {
    width: 100%;
}
.doctor_text>*:not(:first-child) {
    margin-top: 30px !important;
}
.doctor_name {
    text-align: right;
}
.doctor_name .position {
    font-size: 130%;
}
.doctor_name .name {
    font-size: 150%;
}
.doctor_img {
    flex-shrink: 0;
    width: 350px;
}
.doctor_career {
    margin-top: 30px;
}
.career_box {
    padding: 30px;
    background: var(--bg-color);
}
.career_box:not(:last-of-type) {
    margin-bottom: 20px;
}
.career_box h3 {
    margin: 0 0 5px;
    padding: 0;
    background: none;
    border: none;
    color: var(--text-color);
    font-size: 140%;
}
.career_box h3::before, .career_box h3::after {
    display: none;
}
/* 日付あり */
.career_box dl {
    display: flex;
    gap: 10px;
    border-bottom: 1px dashed var(--line-color);
}
.career_box dl>* {
    padding: 10px 20px;
}
.career_box dt {
    width: 15%;
}
/* 日付なし */
.career_box li {
    padding: 10px 20px;
    border-bottom: 1px dashed var(--line-color);
}
/* フリーエリア */
.doctor_freearea {
    margin-top: 30px;
}
/* ----------------------------------------------------------------------
  ▼ SP
---------------------------------------------------------------------- */
@media screen and (max-width: 640px) {
    .doctor_flex {
        flex-flow: column;
        gap: 30px;
    }
    .doctor_img {
        order: -1;
        width: 100%;
        margin: 0 auto;
    }
    .career_box {
        padding: 20px 25px;
    }
    .career_box h3 {
        margin: 0;
    }
    /* 日付あり */
    .career_box dl {
        flex-flow: column;
        gap: 0;
    }
    .career_box dl>* {
        padding: 10px;
    }
    .career_box dt {
        width: 100%;
        padding: 10px 10px 5px;
    }
    .career_box dd {
        width: 100%;
        padding: 5px 10px 10px;
    }
    /* 日付なし */
    .career_box li {
        padding: 10px;
    }
}
/* ==================================================================================================================================

  *アクセス

================================================================================================================================== */
/* ----------------------------------------------------------------------
  ▼ PC
---------------------------------------------------------------------- */
/* ----- MAP ----- */
.access .googlemap iframe {
    width: 100%;
    height: 400px;
}
/* イラストマップのみ */
.access .illustmap {
    width: 100%;
    height: fit-content;
    text-align: center;
}
/* 両方を表示する時 */
.mapflex {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: stretch;
    gap: 20px;
    margin-bottom: 30px;
}
.mapflex>* {
    display: flex;
    flex-grow: 1;
    align-items: stretch;
    width: calc(50% - 10px) !important;
}
.mapflex>.googlemap {
    position: relative;
    z-index: 1;
    flex-shrink: 1;
    width: calc(50% - 20px);
    height: auto;
}
.mapflex>.googlemap iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}
/* ----- 住所 ----- */
.access .location {
    position: relative;
    z-index: 1;
    padding: 0 0 0 40px;
    font-weight: bold;
}
.access .location::before {
    content: "\f3c5";
    position: absolute;
    top: 0;
    left: 0;
    display: flex;
    flex-shrink: 0;
    justify-content: center;
    align-items: center;
    width: 30px;
    height: 30px;
    padding: 0 0 0 2px;
    background: var(--main-color);
    border-radius: 50%;
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    color: #ffffff;
    font-size: 13px;
}
.access span {
    display: inline-block;
    margin-right: 10px;
}
.access .btn01 {
    text-align: center;
}
/* ----- ルート案内 ----- */
.route_list {
    display: flex;
    flex-flow: wrap;
    gap: 50px 30px;
}
.route_item {
    width: calc(50% - 15px);
}
.route_item>*:not(:last-child) {
    margin-bottom: 1em;
}
.route_title {
    position: relative;
    z-index: 1;
    min-height: 30px;
    padding: 0 0 0 40px;
    font-size: 110%;
}
.route_title .number {
    position: absolute;
    top: 0;
    left: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 30px;
    height: 30px;
    background: var(--main-color);
    color: #ffffff;
    line-height: 1;
}
/* ----------------------------------------------------------------------
  ▼ SP
---------------------------------------------------------------------- */
@media screen and (max-width: 640px) {
    .mapflex>* {
        width: 100% !important;
    }
    /* ----- ルート案内 ----- */
    .route_list {
        gap: 30px;
    }
    .route_item {
        width: 100%;
    }
}
/* ==================================================================================================================================

  *糖尿病内科

================================================================================================================================== */
/* ----------------------------------------------------------------------
  ▼ PC
---------------------------------------------------------------------- */
.gestational_diabetes{
	display:flex;
	justify-content:center;
	flex-direction:column;
	width:80%;
	margin: 0 auto;
}
.gestational_diabetes p{
	padding:10px;
	font-size:130%;
}
.gestational_diabetes p.bg1{
	background:#c3d2a9;
}
.gestational_diabetes p.bg2{
	background:#b3c48e;
}
.gestational_diabetes p.bg3{
	background:#a2b774;
}
.gestational_diabetes p.bg4{
	background:#92a85d;
}
/* ----------------------------------------------------------------------
  ▼ SP
---------------------------------------------------------------------- */
@media screen and (max-width: 640px) {
	.gestational_diabetes{
		width:100%;
	}
}

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

  *ブログ

================================================================================================================================== */
/* ----------------------------------------------------------------------
  ▼ PC
---------------------------------------------------------------------- */
/* ----- 共通 ----- */
.wrapper_blog {
    display: flex;
    gap: 70px;
    max-width: 1200px;
    margin: 0 auto;
    margin: 30px auto 100px;
}
.blog_contents {
    width: 100%;
}
/* 日付 */
.blog_date {
    margin-bottom: 5px;
    font-size: 13px;
    line-height: 1.5;
}
.blog_date::before {
    content: "\f073";
    display: inline-block;
    margin-right: 7px;
    font-family: "Font Awesome 5 Free";
    font-style: normal;
    font-weight: 900;
    color: var(--main-color);
}
/* カテゴリー */
.blog_categorys {
    display: flex;
    flex-flow: wrap;
    gap: 0 5px;
    margin-bottom: 20px;
    line-height: 1.5;
}
.blog_categorys a {
    display: inline-block;
    font-size: 13px;
    line-height: 1.5;
}
.blog_categorys a::before {
    content: "\f02b";
    position: relative;
    top: 1px;
    display: inline-block;
    margin-right: 5px;
    font-family: "Font Awesome 5 Free";
    font-style: normal;
    font-weight: 900;
}
/* ----- サイドバ（サムネイル付き） ----- */
.blog_list_thum {
    display: flex;
    flex-flow: column;
}
.blog_list_thum li {
    padding: 15px 0;
}
.blog_list_thum li:first-child {
    padding-top: 0;
}
.blog_list_thum li:last-child {
    padding-bottom: 0;
}
.blog_list_thum li:not(:last-child) {
    border-bottom: 1px dashed var(--line-color);
}
.blog_list_thum li a {
    display: flex;
    gap: 10px;
    color: var(--text-color);
    font-size: 95%;
    line-height: 1.75;
}
.blog_list_thum li a:hover {
    color: var(--main-color);
}
/* サムネイル */
.blog_item_thum {
    float: none;
    display: block;
    flex-shrink: 0;
    width: 100px;
    height: 100px;
    overflow: hidden;
}
.blog_item_thum img {
    float: none;
    display: block;
    width: auto;
    min-height: 100%;
    margin: 0;
    object-fit: cover;
    transition: transform 0.2s;
}
.blog_item a:hover img {
    transform: scale(1.1);
}
/* タイトル */
.blog_item_title {
    padding: 5px 0;
}
/* カテゴリー */
.side_blog_category a {
    position: relative;
    z-index: 1;
    display: inline-block;
    padding: 0 0 0 15px;
    color: var(--text-color);
}
.side_blog_category a :hover {
    color: var(--main-color);
}
.side_blog_category a::before {
    content: "-";
    position: absolute;
    top: 0;
    left: 0;
}
/* ----- アーカイブページ ----- */
.blog_article {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}
.blog_archive_box {
    display: flex;
    flex-flow: column;
    height: auto;
    background-color: #ffffff;
    border: solid 1px var(--line-color);
}
/* サムネイル */
.blog_archive_box .thumbnail {
    position: relative;
    display: block;
    width: 100%;
    height: auto;
    border-bottom: solid 1px var(--line-color);
    text-align: center;
}
.blog_archive_box .thumbnail img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    aspect-ratio: 13/9;
}
.blog_archive_inner {
    display: flex;
    flex-flow: column;
    height: 100%;
    padding: 15px 15px 20px;
    border-top: none;
}
/* 見出し */
.blog_archive_box h2.blog_title {
    margin: 0 0 15px;
    padding: 0;
    background: none;
    border: none;
    color: var(--text-color);
    font-size: 110%;
}
.blog_archive_box h2.blog_title:before, .blog_archive_box h2.blog_title:after {
    display: none;
}
.blog_archive_box .btn01 {
    margin-top: auto;
    text-align: center;
}
.blog_archive_box .btn01>* {
    min-width: auto;
}
/* ----- 記事ページ ----- */
.blog_single_box {
    width: 100%;
}
/* サムネイル */
.blog_single_box .thumbnail {
    position: relative;
    display: block;
    width: 100%;
    height: auto;
    margin: 0 auto 30px;
    text-align: center;
}
/* 目次　 */
#index {
    margin: 0 0 30px;
    padding: 20px 30px;
    background: var(--bg-color);
}
#index .index_title {
    margin: 0 0 0;
    font-weight: bold;
    font-size: 110%;
}
#index a {
    color: var(--text-color);
}
#index a:hover {
    color: var(--main-color);
}
#index .index_h2 {
    position: relative;
    z-index: 1;
    padding: 5px 0 5px 20px;
    font-weight: bold;
    color: var(--text-color);
    font-size: 110%;
}
#index .index_h2::before {
    content: "";
    position: absolute;
    top: 18px;
    left: 0;
    display: block;
    width: 8px;
    height: 8px;
    background: var(--main-color);
}
#index .index_h3 {
    position: relative;
    z-index: 1;
    padding: 5px 0 5px 25px;
}
#index .index_h3::before {
    content: "-";
    position: absolute;
    top: 5px;
    left: 10px;
}
.blog_single_box .blog_text>*:not(h1, h2, h3, h4, h5) {
    margin-bottom: 2em;
}
.blog_single_box .blog_text>*:not(h1, h2, h3, h4, h5):last-child {
    margin-bottom: 2em;
}
/* ----------------------------------------------------------------------
  ▼ SP
---------------------------------------------------------------------- */
@media screen and (max-width: 640px) {
    /* ----- 共通 ----- */
    .wrapper_blog {
        flex-flow: column;
        gap: 50px;
        width: 100%;
        margin: 30px auto 80px;
    }
    /* ----- アーカイブページ ----- */
    .blog_article {
        grid-template-columns: repeat(1, 1fr);
        gap: 30px;
    }
    .blog_archive_box {
        width: 100%;
    }
    /* サムネイル */
    .blog_archive_box .thumbnail {
        height: auto;
        min-height: auto;
    }
    .blog_archive_box .thumbnail img {
        width: 100%;
        height: auto;
    }
}
/* ==================================================================================================================================

404

================================================================================================================================== */
/* ----------------------------------------------------------------------
  ▼ PC
---------------------------------------------------------------------- */
.error404 main>.inner {
    padding: 20px 0 80px;
}
.error404 main p {
    text-align: center;
}
/* ----------------------------------------------------------------------
  ▼ SP
---------------------------------------------------------------------- */
@media screen and (max-width: 640px) {
    .error404 main>.inner {
        padding: 0px 20px 60px;
    }
}