/*
Theme Name: XYOU_Base_Theme
Author:D XYOU
*/

@charset "utf-8";

/*----------------------------------------------------------------------
base
----------------------------------------------------------------------*/

html {
    font-size: 100%;
    height: 100%;
    -webkit-text-size-adjust: 100%;
    -moz-text-size-adjust: 100%;
    -ms-text-size-adjust: 100%;
    text-size-adjust: 100%
}


/*webフォント読み込むまで非表示*/

body,
input,
textarea {
    /* TODO font-family設定 */
    font-family: 'Noto Sans JP', sans-serif;
    font-style: normal;
    font-weight: 400;
}

/*----------------------------------------------------------------------
WooCommerce My Account forms
----------------------------------------------------------------------*/
.woo-account-form {
    padding-top: 20px;
    padding-bottom: 40px;
    margin-bottom: 12px;
}

.woo-account-form .woocommerce-Input {
    cursor: auto;
    border: 2px solid #E2E2E2;
    border-radius: 8px;
    line-height: 32px;
    padding: 16px;
    font-size: clamp(1.25rem, 1.162rem + 0.38vw, 1.5rem);
}

.woo-account-intro {
    text-align: center;
    margin-bottom: 24px;
    font-size: clamp(1.0625rem, 1.007rem + 0.24vw, 1.2rem);
    line-height: 1.65;
    color: #003973;
}

.woo-account-button-wrap {
    display: flex;
    justify-content: center;
    margin-top: 32px;
}

.woo-account-button {
    width: 240px;
    height: 64px;
    border-radius: 32px;
    border: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    letter-spacing: 0.05em;
    font-weight: bold;
    background: linear-gradient(85.06deg, #003973 16.02%, #578D8D 103.64%);
    box-shadow: 0px 8px 20px rgba(54, 105, 142, 0.3);
    color: #FFFFFF;
    cursor: pointer;
    padding: 0 24px;
    text-decoration: none;
    font-family: inherit;
    line-height: 1;
    transition: opacity 0.3s ease, transform 0.3s ease;
}

.woo-account-button.button,
.woo-account-button.woocommerce-button,
.woo-account-button.woocommerce-Button {
    background: linear-gradient(85.06deg, #003973 16.02%, #578D8D 103.64%);
    box-shadow: 0px 8px 20px rgba(54, 105, 142, 0.3);
    color: #FFFFFF;
}

.woocommerce-form-login.login .woo-account-button.button,
.woocommerce-form-login.login .woo-account-button.woocommerce-button,
.woocommerce-form-login.login .woo-account-button.woocommerce-Button,
.woocommerce-ResetPassword .woo-account-button.button,
.woocommerce-ResetPassword .woo-account-button.woocommerce-button,
.woocommerce-ResetPassword .woo-account-button.woocommerce-Button {
    background: linear-gradient(85.06deg, #003973 16.02%, #578D8D 103.64%);
    box-shadow: 0px 8px 20px rgba(54, 105, 142, 0.3);
    color: #FFFFFF;
}

.woo-account-button:hover,
.woo-account-button:focus {
    opacity: 0.94;
}

.woo-account-button.button:hover,
.woo-account-button.button:focus,
.woo-account-button.woocommerce-button:hover,
.woo-account-button.woocommerce-button:focus,
.woo-account-button.woocommerce-Button:hover,
.woo-account-button.woocommerce-Button:focus {
    background: linear-gradient(85.06deg, #1a4e83 16.02%, #6aa0a0 103.64%);
}

.woocommerce-form-login.login .woo-account-button.button:hover,
.woocommerce-form-login.login .woo-account-button.button:focus,
.woocommerce-form-login.login .woo-account-button.woocommerce-button:hover,
.woocommerce-form-login.login .woo-account-button.woocommerce-button:focus,
.woocommerce-form-login.login .woo-account-button.woocommerce-Button:hover,
.woocommerce-form-login.login .woo-account-button.woocommerce-Button:focus,
.woocommerce-ResetPassword .woo-account-button.button:hover,
.woocommerce-ResetPassword .woo-account-button.button:focus,
.woocommerce-ResetPassword .woo-account-button.woocommerce-button:hover,
.woocommerce-ResetPassword .woo-account-button.woocommerce-button:focus,
.woocommerce-ResetPassword .woo-account-button.woocommerce-Button:hover,
.woocommerce-ResetPassword .woo-account-button.woocommerce-Button:focus {
    background: linear-gradient(85.06deg, #1a4e83 16.02%, #6aa0a0 103.64%);
}

.woo-account-button:focus {
    outline: 2px solid rgba(0, 57, 115, 0.35);
    outline-offset: 4px;
}

body {
    color: #000;
    margin: 0;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    min-height: 100vh;
}

body header,
.wf-loading body header {
    opacity: 0;
}

.loading-delay body header,
.wf-active body header {
    opacity: 1;
    transition: 0.5s;
}

.list-style_disc {
    list-style: disc;
    font-size: 18px;
}
.list-style_disc li:not(:last-of-type) {
    margin-bottom: 8px;
}


/*safariの場合*/

::-webkit-full-page-media,
:future,
:root html {
    height: -webkit-fill-available;
}

::-webkit-full-page-media,
:future,
:root body {
    min-height: -webkit-fill-available;
}

/*safariの場合ここまで*/

img {
    max-width: 100%;
    height: auto;
    display: block;
    margin: auto;
}

a {
    text-decoration: none;
    color: #000;
}

a,
a img,
a svg,
a svg path,
input {
    transition: 0.3s;
}


/* a:hover img,
a:hover {
    opacity: 0.7;
} */

span.big {
    font-size: 30px;
}

span.red {
    color: #ff3333;
    font-weight: bold;
}

table {
    border-collapse: collapse;
}

h1 {
    font-size: 2em;
}

h2 {
    font-size: 1.5em;
}

h3 {
    font-size: 1.25em;
    font-weight: 500;
}

dh {
    color: #555;
    font-size: 20px;
    font-weight: bold;
}

p {
    line-height: 1.5em;
}

.br-pc {
    display: none;
}

.br-sp {
    display: block;
}

strong {
    font-weight: bold;
}

input,
textarea,
button,
input[type="submit"] {
    -webkit-appearance: none;
    border-radius: 0;
}

input[type="checkbox"] {
    -webkit-appearance: auto;
}

/* リセットする */
figure {
    /*margin: 0 !important;*/
}

/* リキャプチャアイコン非表示 */
.grecaptcha-badge {
    visibility: hidden;
}
/*----------------------------------------------------------------------
all
----------------------------------------------------------------------*/

/* TODO inner幅を設定 */
.inner {
    /*width: 1000px;*/
    max-width: 89.33vw;
    margin: auto;
}

.w_max {
    width: 100vw;
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
}

.text-center {
    text-align: center;
}

/* flex-box */
.row {
    display: flex;
}
.row-sp {
    display: flex;
}
.row-pc {
    display: block;
}
.row-column-sp {
    display: flex;
    flex-direction: column;
}
.justify_between {
    justify-content: space-between;
}
.align_center {
    align-items: center;
}
.gap_medium {
    gap: 2em;
}

/* Max -Size */
.max160 {
    max-width: 160px;
}
.max250_sp {
    max-width: 250px;
}
@media screen and (min-width: 768px) {
    .max250_sp {
        max-width: initial;
    }
}

/* マージン */
.margin_b_small {
    margin-bottom: 1em;
}
.margin_b_medium {
    margin-bottom: 2em;
}
.padding_v_medium {
    padding-top: 2em;
    padding-bottom: 2em;
}

@media screen and (min-width: 768px) {
    .row-sp {
        display: block;
    }
    .row-pc {
        display: flex;
    }
    .row-column-sp {
        display: flex;
        flex-direction: initial;
    }
    .grid_md_1_2 {
        width: 50%;
    }
    .grid_md_8_12 {
        width: 65%;
    }
    .grid_md_4_12 {
        width: 35%;
    }
}
/*----------------------
テキスト系
------------------------*/
.c_blue {
    color: #0F2D70;
}
.c_gray {
    color: 	#717375;
}

/*----------------------
ボタン
------------------------*/
.more_button {
    width: max-content;
    margin: auto;
}

.more_button a {
    max-width: 100%;
    width: 240px;
    height: 64px;
    border-radius: 32px;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;

    /* TODO */
    font-size: 20px;
    letter-spacing: 0.05em;;
    font-weight: bold;
}

.more_button.thin a {
    height: 48px;
}


.more_button a {
    box-shadow: 0px 8px 20px rgba(255, 255, 255, 0.2);
}

/* 通常グラデボタン */
.more_button a.more_button_gradation {
    background: linear-gradient(85.06deg, #003973 16.02%, #578D8D 103.64%);
    box-shadow: 0px 8px 20px rgba(54, 105, 142, 0.3);
    color: #FFFFFF;
}

/* 通常グレーボタン */
.more_button a.more_button_gray {
    color: #0F2D70;
    background: linear-gradient(180deg, #EDEDED 0%, #FFFFFF 100%);
    filter: drop-shadow(0px 8px 20px rgba(54, 105, 142, 0.3));
}

/* アイコン系 */
.on_tap::before {
    content: "";
    position: absolute;
    bottom: 8px;
    right: 8px;
    background: url(img/icon/icon_on_tap.svg) no-repeat;
    width: clamp(1.25rem, 0.81rem + 1.88vw, 2.5rem);
    height: clamp(1.25rem, 0.81rem + 1.88vw, 2.5rem);
    transform: rotate(-23deg);
}


/*---------------
mv内
-----------------*/
/* mv内通常ホバー時共通 */
.more_button.more_button_mv a:hover {
    box-shadow: 0px 8px 20px rgba(255, 255, 255, 0.6);
}

/*---------------
header内
-----------------*/
/* header内の予約ボタン */
.header_reserve .more_button a:hover {
    box-shadow: 0px 8px 20px rgba(255, 255, 255, 0.6);
}
/* header内の予約ボタン switch後 */
.header_reserve.switch .more_button a:hover {
    box-shadow: 0px 8px 20px rgba(54, 105, 142, 0.6);
}


/* ボタンホバー時共有 */
.more_button a:hover {
    transform: scale(1.03);
    box-shadow: 0px 8px 20px rgba(54, 105, 142, 0.6);
}

/*ここまで------------------*/

span.text_marker {
    background: linear-gradient(transparent 75%, #F9E9CB 75%);
}

.is_active {
    opacity: 1 !important;
    transition: opacity 0.2s ease-out;
}



/*----------------------
パンくずリスト
------------------------*/
.breadcrumb_inner {
    margin: 0 auto 16px;
    display: flex;
    font-weight: 400;
    /* 12-16 */
    font-size: clamp(0.75rem, 0.662rem + 0.38vw, 1rem);
    width: 1000px;
    max-width: 89.33vw;
    flex-wrap: wrap;
}

/* ページタイトルに <br> が含まれていても、パンくずリストでは改行せず1行表示 */
.breadcrumb_inner br {
    display: none;
}

/* ページ上部に配置するパンくずは、ヘッダーロゴと左端を揃える
   (.header_inner と同じ container 幅: 1440px max-width: 96%)
   固定ヘッダーを避ける top margin を持つ。 */
.breadcrumb_inner--top {
    width: 1440px;
    max-width: 96%;
    margin-top: 144px;
}

/* 直下に .original_page_inner が続く場合は、その上マージンを削除
   (breadcrumb_inner--top が既にヘッダー回避マージンを持つため) */
.breadcrumb_inner--top + .original_page_inner {
    margin-top: 0;
}

@media screen and (min-width: 768px) {
    .breadcrumb_inner--top {
        margin-top: 184px;
    }
}

span.breadcrumb_top {
    color: #9191A1;
}

.breadcrumb_allow {
    content: url(./img/icon/icon_arrow_right.svg);
    margin: 0 8px;
}

@media screen and (min-width: 768px) {
    .breadcrumb_inner {
        margin-bottom: 24px;
    }
}


/*-------------------------------------
表示アニメーション
---------------------------------------*/
.fade_up {
    opacity: 0;
}

.loading-delay .fade_up,
.wf-active .fade_up {
    animation: fade-up-item 0.5s ease-out forwards;
}

.is_fade_up {
    opacity: 0;
}

.is_fade_up.is_fade_up_start {
    animation: fade-up-item 0.5s ease-out forwards;
    animation-delay: 0.1s;
}

@keyframes fade-up-item {
    0% {
        opacity: 0;
        transform: translateY(50px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

.is_fade_left {
    opacity: 0;
}

.is_fade_left.is_fade_left_start {
    animation: fade-left-item 0.5s ease-out forwards;
    animation-delay: 0.1s;
}

@keyframes fade-left-item {
    0% {
        opacity: 0;
        transform: translateX(-50vw);
    }
    100% {
        opacity: 1;
        transform: translateX(0);
    }
}

.is_fade_right {
    opacity: 0;
}

.is_fade_right.is_fade_right_start {
    animation: fade-right-item 0.5s ease-out forwards;
    animation-delay: 0.1s;
}

@keyframes fade-right-item {
    0% {
        opacity: 0;
        transform: translateX(50vw);
    }
    100% {
        opacity: 1;
        transform: translateX(0);
    }
}

.fade_in {
    opacity: 0;
}

.loading-delay .fade_in,
.wf-active .fade_in {
    animation: fade-in-item 0.8s ease-out forwards;
}

.is_fade_in {
    opacity: 0;
}

.is_fade_in.is_fade_in_start {
    animation: fade-in-item 0.5s ease-out forwards;
    animation-delay: 0.1s;
}

@keyframes fade-in-item {
    0% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}

.fade_in_zoom {
    opacity: 0;
    -webkit-transform: scale(0.9);
    transform: scale(0.9);
}

.loading-delay .fade_in_zoom,
.wf-active .fade_in_zoom {
    animation: fade-in-zoom-item 0.5s ease-out forwards;
}

@keyframes fade-in-zoom-item {
    0% {
        opacity: 0;
        -webkit-transform: scale(0.9);
        transform: scale(0.9);
    }
    100% {
        opacity: 1;
        -webkit-transform: scale(1);
        transform: scale(1);
    }
}

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

.JosefinSans {
    font-family: 'Josefin Sans', sans-serif;
    font-style: normal;
}

.JosefinSans_600 {
    font-family: 'Josefin Sans', sans-serif;
    font-style: normal;
    font-weight: 600;
}

.JosefinSans_700 {
    font-family: 'Josefin Sans', sans-serif;
    font-style: normal;
    font-weight: 700;
}

/*----------------------------------------------------------------------
header
----------------------------------------------------------------------*/

header {
    position: fixed;
    left: 0;
    top: 0;
    width: 100%;
    z-index: 999;
}

.header_contents {
    position: relative;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.header_contents,
#header_bottom_contents {
    /*height: 96px;*/
}
.header_contents:after {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: transparent;
    transition: all 0.2s ease-out;
}
.header_contents.switch:after {
    background-color: #fff;
    box-shadow: 0px 4px 10px rgba(67, 85, 99, 0.15);
}

.header_inner {
    width: 1440px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    position: relative;
    z-index: 1;
    height: 104px;
    max-width: 96%;
}

.header_contents #header_logo {
    content: url(./img/logo/logo_white.svg);
    width: 100%;
}

.header_contents.switch #header_logo {
    content: url(./img/logo/logo.svg);
    width: 100%;
}

.header_box_inner {
    display: flex;
    align-items: center;
    gap: min(1.47vw, 50px);
}

.header_box.pc-only {
    margin-left: 16px;
}

.header_box.pc-only ul {
    display: flex;
    align-items: center;
    justify-content: flex-end;
}

.header_box.pc-only ul:nth-of-type(1) {
    gap: clamp(8px, 1.2vw, 32px);
    flex-wrap: nowrap;
}

.header_box.pc-only ul:nth-of-type(2) {
    gap: min(1.11vw, 16px);
}

.header_box.pc-only ul li {
    color: #FFFFFF;
}

.header_box.pc-only ul li.header_page_link a {
    position: relative;
    font-size: clamp(14px, 1.18vw, 17px);
    font-weight: 700;
    letter-spacing: 0.1em;
    color: #FFFFFF;
    transition: color 0.2s ease-out;
    white-space: nowrap;
}

.header_contents.switch .header_box.pc-only ul li,
.header_contents.switch .header_box.pc-only ul li:not(.header_reserve) a {
    color: #0F2D70;
    transition: color 0.2s ease-out;
}

.header_box.pc-only ul li.header_page_link a:after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -2px;
    width: 0%;
    height: 2px;
    border-radius: 3px;
    background-color: #FFFFFF;
    transition: 0.3s;
}

.header_box.pc-only ul li.switch a:after {
    background-color: #0F2D70;
}

.header_box.pc-only ul li a:hover {
    opacity: 1;
}

.header_box.pc-only ul li a:hover:after {
    width: 100%;
}

.header_reserve .more_button a {
    width: min(11.32vw, 163px);
    font-size: 16px;
}

.header_box .language a {
    content: "";
    background: url(img/icon/icon_language_white.svg) no-repeat;
    background-size: contain;
    display: block;
    width: 40px;
    height: 32px;
    transition: 0.2s;
}
.header_contents.switch .header_box .language a {
    content: "";
    background: url(img/icon/icon_language_grad.svg) no-repeat;
    background-size: contain;
}
.header_box.sp-only .language {
    position: absolute;
    right: 75px;
}
@media screen and (min-width: 1050px) {
    .header_logo #header_logo {
        top: 16px;
    }

    .inner.header_inner {
        height: 80px;
    }
}

@media screen and (min-width: 1050px) and (max-width: 1330px) {
    .header_box.pc-only ul li.header_page_link a {
        font-size: 1.18vw;
    }
    header .more_button a {
        width: 11.32vw;
    }
}


/*----- modal menu -----*/

.modal_btn_wrapper {
    z-index: 999999;
}

button.menu-trigger,
button.menu-trigger span {
    display: inline-block;
    transition: all .4s;
    box-sizing: border-box;
}

.modal_content_menu_logo {
    position: absolute;
    top: 48px;
    right: 163px;
}

button.menu-trigger {
    position: fixed;
    top: 60px;
    right: 28px;
    width: 24px;
    height: 16px;
    background: none;
    border: none;
    appearance: none;
    cursor: pointer;
    transition: 0.3s;
    z-index: 999999;
}

button.menu-trigger span {
    position: absolute;
    left: 0;
    width: 100%;
    height: 1px;
    background-color: #ffffff;
    transition: background-color 0.2s ease-out;
}

.header_contents.switch button.menu-trigger span {
    background-color: #0F2D70;
    transition: background-color 0.2s ease-out;
}

button.menu-trigger span:nth-of-type(1) {
    top: 0;
}

button.menu-trigger span:nth-of-type(2) {
    top: 0;
    bottom: 0;
    width: 100%;
    left: inherit;
    right: 0;
    margin: auto;
}

button.menu-trigger span:nth-of-type(3) {
    bottom: 0;
    width: 100%;
    left: inherit;
    right: 0;
}

a.menu-trigger.active {
    opacity: 1;
    z-index: 999999;
}

button.menu-trigger.active {
    top: 60px;
    right: 20px;
    width: 40px;
    height: 28px;
}

/* ハンバーガーメニューオープン時スクロール禁止 */
body.active {
    height: 100%;
    overflow: hidden;
}

button.menu-trigger.active span:nth-of-type(1) {
    transform: translateY(13px) rotate(-45deg);
    background-color: #fff;
}

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

button.menu-trigger.active span:nth-of-type(3) {
    transform: translateY(-13px) rotate(45deg);
    background-color: #fff;
}

#jsModal {
    height: 100%;
    position: fixed;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    right: 0;
    top: 0;
    overflow: hidden;
    transition: 0.3s;
}

#jsModal.active {
    width: 100% !important;
}

.modal__bg.js-modal-close {
    position: absolute;
    width: 100%;
    height: 100%;
    left: 0;
    right: 0;
    background-color: #000;
    opacity: 0.4;
}

.modal_inner {
    height: 100%;
    position: relative;
    z-index: 1;
    width: 375px;
    box-sizing: border-box;
    background: linear-gradient(85.06deg, #003973 16.02%, #578D8D 103.64%);
    padding-top: 126px;
}

.modal__content {
    height: 100%;
    overflow-y: auto;
}

.modal__content ul {
    text-align: center;
}

.modal__content ul li:not(:last-child) {
    margin-bottom: 28px;
}


.modal__content ul li a {
    font-size: 22px;
    letter-spacing: 0.1em;
    font-weight: 700;
    color: #fff;
    position: relative;
    white-space: nowrap;
}

.modal__content ul li a:after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -2px;
    width: 0%;
    height: 2px;
    border-radius: 3px;
    background-color: #fff;
    transition: 0.3s;
}

.modal__content ul li a:hover:after {
    width: 100%;
}

.modal_content_clinic_information {
    margin-bottom: 28px;
}

.modal_content_clinic_information h3 {
    position: relative;
    margin-bottom: 16px;
    text-align: center;
    color: #0F2D70;
}

.modal_content_clinic_information_web_button .more_button:first-child {
    margin-bottom: 16px;
}
.modal_content_clinic_information_web_button .more_button a {
    width: 200px;
    height: 50px;
}
.modal_content_clinic_information_web_button .more_button a.more_button_gradation {
    background: linear-gradient(85.06deg, #003973 0.02%, #C1AC84 129.64%);
}

/*----- end modal menu -----*/



@media screen and (max-width: 1050px) {
    .header_box.pc-only {
        display: none;
    }
    .header_box.sp-only {
        display: block;
    }
}

@media screen and (max-width: 768px) {
    .modal__content ul li a:after {
        transition: 0.1s;
    }
}

/*----------------------------------------------------------------------
main
----------------------------------------------------------------------*/

main {
    flex: 1;
}

main.front_page section {
    width: 100%;
    height: auto;
    position: relative;
}

.s_title_wrapper {
    text-align: center;
}

.s_title {
    font-size: clamp(1.5rem, 1.236rem + 1.13vw, 2.25rem);
    line-height: clamp(2rem, 1.472rem + 2.25vw, 3.5rem);
    font-weight: 700;
    color: #0F2D70;
    letter-spacing: 0.05em;
}

.s_title_border {
    display: block;
    width: 40px;
    height: 3px;
    background-color: #B1986A;
    margin: 16px auto 0;
}


/*---------------------------
section mv
---------------------------*/

.inner.mv_img_inner {
    width: 1240px;
}

.mv_img img {
    height: 521px;
    width: 100%;
    object-fit: cover;
    object-position: left;
}

.mv_text_inner {
    position: absolute;
    top: 176px;
    left: 19px;
}

.mv_text {
    color: #ffffff;
    margin-bottom: 40px;
}

.mv_text h1,
.mv_text h2 {
    font-weight: 700;
    letter-spacing: 0.1em;
}

.mv_text .mv_h2_1 {
    font-size: clamp(1.75rem, 1.266rem + 2.07vw, 3.125rem);
    line-height: clamp(2.563rem, 1.924rem + 2.72vw, 4.375rem);
    animation-delay: 0.3s;
    margin-bottom: 16px;
}

.mv_text h2.mv_h2_2 {
    font-size: clamp(1rem, 0.824rem + 0.75vw, 1.5rem);
    line-height: clamp(1.438rem, 1.173rem + 1.13vw, 2.188rem);
    letter-spacing: 0.05em;
    animation-delay: 0.8s;
}

.mv_button_inner {
    position: absolute;
    top: 337px;
    left: 50%;
    transform: translateX(-50%);
}

.mv_button .more_button:first-child  {
    margin-bottom: 16px;
}


/*------------
プレオープン表示
-------------*/

/* mv, s0共通 */

.pre_info_inner {
    text-align: center;
    background: linear-gradient(227.37deg, #FFF9EE 2.86%, #FCF8F2 39.26%, #E9F2F9 84.01%);
    border-radius: 20px;
    padding: 14px 0;
    color: #0F2D70;
}

.pre_info.on_tap::before {
    bottom: -18px;
    right: -6px;
    background: url(img/icon/icon_on_tap_blue.svg) no-repeat;
}

.pre_info_inner img {
    margin-bottom: 4px;
    width: 48px;
    max-width: 100%;
    height: 48px;
    max-height: 100%;
}

.pre_info_inner h2 {
    font-size: 20px;
    line-height: 30px;
    font-weight: 700;
}

.pre_info_inner h3 {
    font-size: 16px;
    line-height: 24px;
    font-weight: 700;
    margin-bottom: 9px;
}

.pre_info_inner p {
    font-weight: 500;
    font-size: 14px;
    line-height: 20px;
}

.pre_info_inner span {
    font-size: 12px;
    line-height: 20px;
}


/* mv内 */

.mv_pre {
    display: none;
}

@media screen and (min-width: 1050px) {
    .mv_pre {
        display: block;
        position: absolute;
        top: 232px;
        right: 71px;
        width: 280px;
    }
}

@media screen and (min-width: 1050px) and (max-width: 1100px) {
    .mv_pre {
        right: 3.56vw;
    }
}

/*------------
プレオープン表示 ここまで
-------------*/



@media screen and (min-width: 768px) {
    .mv_text_inner {
        top: 224px;
        /*left: 80px;*/
        left: 5.56vw;
    }
    .mv_img img {
        height: 696px;
    }

    .mv_button_inner {
        top: 368px;
        /*left: 80px;*/
        left: 5.56vw;
        transform: initial;
    }

    .mv_button {
        display: flex;
        gap: 16px;
    }

    .mv_button .more_button:first-child  {
        margin: 0;
    }

    .mv_info_inner {
        position: absolute;
        top: 456px;
        right: 0;
        z-index: 1;
        background: rgba(40, 31, 27, 0.5);
        backdrop-filter: blur(75px);
        -webkit-backdrop-filter: blur(75px); /* safari対応 */
        border-radius: 60px 0px 0px 60px;
    }

    .mv_info {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 22px;
        color: #FFFFFF;
        width: 800px;
        height: 323px;
        letter-spacing: 0.05em;
    }

    .mv_info_time {
        display: flex;
        flex-direction: column;
        justify-content: center;
    }

    .mv_info_time table {
        border-collapse: collapse;
        margin-bottom: 8px;
        text-align: left;
    }

    .mv_info_time table th {
        padding: 10px;
    }

    .mv_info_time table tr:nth-of-type(1) th {
        border-bottom: 1px solid #D8D8D8;
    }

    .mv_info_time table td {
        padding: 10px;
    }
    
    .mv_info_time table tr:nth-of-type(2) td {
        border-bottom: 1px solid rgba(216, 216, 216, 0.5);
    }
    
    .mv_info_time table tr:nth-of-type(3) td {
        border-bottom: 1px solid #D8D8D8;
    }
    
    .mv_info_time table td.mv_info_time_sign {
        color: #FFEED0;
    }

    .mv_info_time_title,
    .mv_info_time_week {
        font-size: 18px;
        line-height: 26px;
        font-weight: 700;
    }

    .mv_info_time_week {
        text-align: center;
        width: 10%;
    }
    
    .mv_info_time_week:last-of-type {
        content: "";
        position: relative;
    }
    
    .mv_info_time_week:last-of-type::before {
        content: "\65E5";
        position: absolute;
        left: -2px;
    }
    
    .mv_info_time_week:last-of-type::after {
        content: "\795D";
        position: absolute;
        right: -2px;
    }

    td.mv_info_time_sign {
        font-size: 16px;
        font-weight: 900;
        vertical-align: middle;
        text-align: center;
    }

    .mv p.notices {
        margin-bottom: 18px;
        text-align: right;
        font-size: 16px;
        line-height: 23px;
    }

    .mv_info_address a {
        display: flex;
        align-items: center;
        gap: 23px;
        color: #FFFFFF;
    }

    .mv_info_address a .mv_info_icon {
        position: relative;
    }

    .mv_info_address a .mv_info_icon::after {
        content: '';
        position: absolute;
        background: rgba(255, 255, 255, 0.2);
        width: 40px;
        height: 40px;
        border-radius: 50%;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
    }

    .mv_info_address a:hover .mv_info_icon::after {
        background: rgba(255, 255, 255, 0.4);
        transition: all 0.3s;
    }

    .mv_info_text p {
        font-size: 18px;
        line-height: 32px;
        font-weight: 700;
    }
}

/*---------------------------
section mv_3bees
---------------------------*/
.mv_3bees_inner {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px 0;
    background: linear-gradient(227.37deg, #FFF9EE 2.86%, #FCF8F2 39.26%, #E9F2F9 84.01%);
}

/*---------------------------
section ALL
---------------------------*/

.s_contents {
    padding: 80px 0;
}

@media screen and (min-width: 768px) {
    .s_contents {
        padding: 104px 0;
    }

    #academic.s_contents {
        padding: 104px 0 0 0;
    }
}

/*---------------------------
section 3bees
---------------------------*/
section.s_3bees.sp-only {
    background: linear-gradient(227.37deg, #FFF9EE 2.86%, #FCF8F2 39.26%, #F6F7F5 84.01%);
    backdrop-filter: blur(75px);
    padding: 24px 0;
}

.s_3bees.sp-only .s_3bees_inner {
    display: flex;
    justify-content: center;
    background: #EAEDED;
    width: 215px;
    max-width: 100%;
    margin: auto;
    border-radius: 10px;
}

.s1_3bees_inner {
    margin-top: 58px;
    height: 281px;
}

/* Safari調整 */
_:lang(x)+_:-webkit-full-screen-document, .s1_3bees_inner {
    /*margin-top: 18px;*/
    margin-top: 58px;
}

/* firefox調整 */
_:lang(x)::-moz-placeholder, .s1_3bees_inner {
    margin: 0;
}

/*---------------------------
section clinic_info (SP)
---------------------------*/
.s_clinic_info_inner {
    padding: 24px 0;
}

.s_clinic_info_pre {
    max-width: 300px;
    margin: 24px auto 0;
    position: relative;
    display: block;
}

.s_clinic_info_pre.on_tap::before {
    width: 30px;
    height: 30px;
}

.s_clinic_info_time table {
    border-collapse: collapse;
    margin: 0 auto 8px;
    text-align: left;
    color: #0F2D70;
}

.s_clinic_info_time table th {
    padding: 10px;
}

.s_clinic_info_time table tr:nth-of-type(1) th {
    border-bottom: 1px solid #D8D8D8;
}

.s_clinic_info_time table td {
    padding: 15px 5px;
}

.s_clinic_info_time table tr:nth-of-type(2) td {
    border-bottom: 1px solid rgba(216, 216, 216, 0.5);
}

.s_clinic_info_time table tr:nth-of-type(3) td {
    border-bottom: 1px solid #D8D8D8;
}

.s_clinic_info_time_title {
    font-size: 14px;
    line-height: clamp(1rem, 0.78rem + 0.94vw, 1.625rem); /* 16-26 */
    font-weight: 700;
}

.s_clinic_info_time_week {
    font-size: 12px;
    text-align: center;
    font-weight: 700;
    width: 10%;
}
.s_clinic_info_time_week:last-of-type {
    content: "";
    position: relative;
}
.s_clinic_info_time_week:last-of-type::before {
    content: "\65E5";
    position: absolute;
    left: -2px;
}

.s_clinic_info_time_week:last-of-type::after {
    content: "\795D";
    position: absolute;
    right: -2px;
}

td.s_clinic_info_time_sign {
    font-size: 14px;
    vertical-align: middle;
    text-align: center;
    color: #B1986A;
    font-weight: 900;
}

.s_clinic_info_time p.notices {
    text-align: right;
    font-size: 16px;
    max-width: 330px;
    margin: auto;
}

/*---------------------------
section sns
---------------------------*/
.front-page_sns_contents {
    margin-top: 56px;
}
.front-page_sns .s_contents {
    padding: 0;
}
.front-page_sns_contents ul {
    display: flex;
    justify-content: center;
    gap: 3.5em;
}
.front-page_sns_contents ul li {
    max-width: 48px;
}

@media screen and (min-width: 768px) {
    .front-page_sns .s_contents {
        padding: 0;
    }
    .front-page_sns_contents ul li {
        max-width: 56px;
    }
}

/*---------------------------
section s1
---------------------------*/

section.s1 {
    /*padding-bottom: 176px;*/
    background: linear-gradient(227.37deg, #FFF9EE 2.86%, #FCF8F2 39.26%, #E9F2F9 84.01%);
}

.inner.s1_inner {
    width: 800px;
}

.s1_contents {
    margin-top: 56px;
}


/*safariの場合*/

::-webkit-full-page-media,
 :future,
 :root .inner.s1_inner .s_title_wrapper {
    /*display: grid;*/
}


.accordion-list:not(:last-child) {
    margin-bottom: 16px;
}

.accordion-title {
    display: flex;
    align-items: center;

    background: #FFFFFF;
    cursor: pointer;
    padding: 24px 16px 16px 0;
    position: relative;
}

h2.accordion-list_number {
    width: 70px;
    text-align: center;

    font-size: clamp(4rem, 3.648rem + 1.5vw, 5rem);
    background: linear-gradient(214.2deg, rgba(14, 56, 163, 0.8) 15.37%, rgba(84, 119, 156, 0.8) 55%, rgba(134, 176, 185, 0.8) 85%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    text-fill-color: transparent;
}

p.accordion-list_content {
    font-size: clamp(1.25rem, 1.118rem + 0.56vw, 1.625rem);
    line-height: clamp(1.75rem, 1.486rem + 1.13vw, 2.5rem);
    color: #0F2D70;
    font-weight: 700;
}

.accordion-title:before {
    position: absolute;
    content: '';
    top: 50%;
    right: 16px;
    height: 2px;
    width: 15px;
    background: #0F2D70;
    transform: rotate(90deg);
    transition: all .3s ease-in-out;
}
.accordion-title:after {
    position: absolute;
    content: '';
    top: 50%;
    right: 16px;
    height: 2px;
    width: 15px;
    background: #0F2D70;
    transition: all .3s ease-in-out;
}

.accordion-title.open:before {
    transform: rotate(180deg);
}
.accordion-title.open:after {
    opacity: 0;
}

.accordion-text {
    display: none;
    padding: 0 24px 32px 24px;

    background: #FFFFFF;
    /* TODO font-size: ;*/
}

@media screen and (min-width: 768px) {
    .inner.s1_inner {
        padding-top: 0;
    }

    /*section.s1 .s_contents {
        padding: 168px 0 104px;
    }*/

    /*.s1_inner .s_contents {
        padding: 72px 0 104px;
    }*/

    .accordion-text {
        padding: 0 0 40px 126px;
    }

    .accordion-title {
        padding: 16px 40px 8px 0;
    }

    h2.accordion-list_number {
        width: 126px;
    }

    .accordion-title:before {
        right: 40px;
    }

    .accordion-title:after {
        right: 40px;
    }
}

@media screen and (max-width: 374px) {
    h2.accordion-list_number {
        width: 18.67vw;
        font-size: 17.07vw;
    }

    p.accordion-list_content {
        font-size: 5.33vw;
    }
}

/*---------------------------
section s2
---------------------------*/

.inner.s2_inner {
    width: 335px;
    max-width: 94%;
}

.s2_contents {
    margin-top: 56px;
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 23px;
}

.s2_contents_box {
    display: inline-grid;
    align-content: center;
    background: linear-gradient(135deg, #C1AC84 0%, #C1AC84 50%, #B1986A 50%, #B1986A 100%);
    width: 156px;
    height: 156px;
    position: relative;
}

a.s2_contents_box[href]:hover {
    opacity: 0.7;
}

.s2_contents_box_img img {
    width: 56px;
    margin-bottom: 12px;
}

.s2_contents_box_text {
    text-align: center;
    color: #FFFFFF;
}

.s2_contents_box_text h2 {
    font-size: clamp(0.875rem, 0.743rem + 0.56vw, 1.25rem);
    line-height: clamp(1.267rem, 1.185rem + 0.35vw, 1.5rem);
}

.s2_contents_box_text p {
    font-size: clamp(0.875rem, 0.743rem + 0.56vw, 1.25rem);
    line-height: clamp(1.267rem, 1.185rem + 0.35vw, 1.5rem);
    margin-top: 4px;
}

.coming_soon {
    content: "";
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    right: 0;
    z-index: 1;
    background: rgba(255, 255, 255, 0.5);
}

.coming_soon::before {
    white-space: pre;
    content: 'coming\Asoon';
    text-align: center;
    color: #0F2D70;
    font-size: clamp(1.5rem, 1.148rem + 1.5vw, 2.5rem);
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
}

@media screen and (min-width: 768px) {
    .inner.s2_inner {
        width: 800px;
        max-width: 70%;
    }

    .s2_contents_box {
        width: 240px;
        height: 240px;
    }
    .s2_contents_box_img img {
        width: 80px;
    }
}


/*---------------------------
section s3
---------------------------*/
section.s3 {
    background: linear-gradient(227.37deg, #FFF9EE 2.86%, #FCF8F2 39.26%, #E9F2F9 84.01%);
}

/*safariの場合*/

::-webkit-full-page-media,
 :future,
 :root .s_title_wrapper {
    display: grid;
}

.s3_contents {
    padding: 83px 0 0px;
}

.s3_content {
    position: relative;
    z-index: 0;
}

.s3_content:not(:last-child) {
    /*margin-bottom: 24px;*/
    margin-bottom: 67px;
}

.s3_content_num {
    font-size: 90px;
    background: linear-gradient(214.2deg, #0E38A3 15.37%, #54779C 55%, #86B0B9 85%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    text-fill-color: transparent;

    /*margin-bottom: 297px;*/
    
    position: absolute;
    top: -45px;
    left: 20px;
}

.s3_content figure {
    /*position: absolute;
    top: 50%;
    z-index: -1;*/
    background-color: #FFFFFF;
}

.s3_content figure img {
    width: 100%;
}

.s3_content figcaption {
    padding: 16px 20px 24px;
}

.s3_content_title {
    margin-bottom: 16px;
    /* 18-20 */
    font-size: clamp(1.125rem, 1.081rem + 0.19vw, 1.25rem);
    font-weight: 700;
    text-align: center;
    color: #0F2D70;
}

.s3_content_body {
    /* 14-18 */
    font-size: clamp(0.875rem, 0.787rem + 0.38vw, 1.125rem);
}

.s3_text {
    flex-shrink: 0;
    margin-right: 20px;
    padding-bottom: 40px;
}

.s3_t_title {
    display: flex;
    align-items: baseline;
    justify-content: flex-start;
    margin-bottom: 24px;
}

.s3_t_title h4 {
    font-size: 36px;
    letter-spacing: 0.1em;
}

.s3_t_title h4 span {
    font-size: 48px;
}

.s3_t_title h3 {
    font-size: 26px;
    margin-left: 16px;
    line-height: 1.31;
    letter-spacing: 0.05em;
}

.s3_text p {
    font-size: 18px;
    font-weight: 400;
    line-height: 27px;
    letter-spacing: 0.2em;
    text-align: left;
}

.s3_imgs {
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
}

.s3_img {
    width: 280px;
    max-width: 100%;
}

.s3_img.s3i_2 {
    margin-left: 40px;
    padding-top: 40px;
}

.s3_img.s3i_1 {
    padding-bottom: 40px;
}

/* contactページと差別化 */
main.front_page .inner.reserve_information_inner {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    bottom: -274px;
    z-index: 1;
}

.reserve_information_contents {
    width: 1080px;
    max-width: 100%;
    background: #FFFFFF;
    box-shadow: 0px 4px 10px rgb(67 85 99 / 15%);
    padding: 40px 0 72px;
    border-radius: 60px;
}

.reserve_information_contents .s_title_wrapper {
    margin-bottom: 0 !important;
}

.reserve_information_content {
    margin-top: 32px;
}

.reserve_information_content h3 {
    position: relative;
    margin-bottom: 16px;
    padding-left: 20px;
    color: #0F2D70;
    font-size: clamp(1.25rem, 1.162rem + 0.38vw, 1.5rem);
    line-height: 40px;
}

.reserve_information_content h3::before {
    display: block;
    content: '';
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background-color: #0F2D70;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    margin: auto;
}

a.sp_tel_link:hover {
    opacity: 0.7;
}

.sp_tel_link div:nth-of-type(1) {
    margin-left: 24px;
}

.sp_tel_link div:nth-of-type(2) {
    margin-bottom: 10px;
    text-align: center;
}

.reserve_information_content_web h3 {
    margin-left: 24px;
}

.reserve_information_content_tel_number {
    /*margin-bottom: 8px;*/
    font-size: clamp(2.5rem, 2.324rem + 0.75vw, 3rem);
    color: #0F2D70;
}

.reserve_information_content_tel_time {
    font-size: clamp(1.125rem, 1.081rem + 0.19vw, 1.25rem);
}

.reserve_information_content_web_button .more_button:first-child {
    margin-bottom: 24px;
}

@media screen and (min-width: 768px) and (max-width: 1200px) {
    .reserve_information_content h3 {
        font-size: 2.07vw;
    }

    .reserve_information_content_tel_number {
        font-size: max(3.73vw, 36px);
    }
    .reserve_information_inner .more_button a {
        width: 18.67vw;
        font-size: 1.79vw;
    }
}

@media screen and (min-width: 768px) {
    .inner.s3_inner {
        width: 800px;
    }

    .s3_contents {
        padding: 123px 0 164px;
    }

    .s3_content {
        /*width: 252px;*/
        display: inline-flex;
    }

    .s3_content:not(:last-child) {
        margin-bottom: 56px;
    }

    .s3_content_num {
        top: -40px;
    }

    .s3_content figure {
        display: flex;
        justify-content: center;
    }

    .s3_content figure img {
        width: 244px;
        height: 144px;
        object-fit: cover;
    }
    .s3_content figcaption {
        width: 556px;
        margin: auto 32px;
        padding: 0;
    }

    .s3_content_title {
        text-align: left;
    }

    main.front_page .inner.reserve_information_inner {
        bottom: -158px;
    }

    .reserve_information_content_tel {
        margin-left: 0;
    }

    .reserve_information_content_web h3 {
        margin-left: 0;
    }

    .reserve_information_contents {
        padding: 32px 0 64px;
        width: 1080px;
    }

    .reserve_information_contents .s_title {
        line-height: clamp(2rem, 1.472rem + 2.25vw, 3.5rem);
    }

    .reserve_information_content {
        display: flex;
        justify-content: center;
        gap: 48px;
    }

    .reserve_information_content_tel {
        margin: 0;
    }

    .reserve_information_content_web_button {
        display: flex;
        gap: 16px;
    }

    .reserve_information_content_web_button .more_button:first-child {
        margin-bottom: 0;
    }
}

@media screen and (min-width: 1440px) {
    .s3_contents {
        padding: 123px 0 0;
    }
}

/*---------------------------
section s4
---------------------------*/

section.s4 {
    /*background: linear-gradient(227.37deg, #FFF9EE 2.86%, #FCF8F2 39.26%, #E9F2F9 84.01%);*/
}

section.s4 .s_contents {
    /* 80px + 280px */
    padding: 269px 0 80px;
}

.s4_contents {
    margin-top: 56px;
}

.s4_contents_map {
    margin-bottom: 32px;
}

.s4_contents_map iframe {
    width: 100%;
    height: 52.8vw;
}

.s4_contents_address p {
    font-size: clamp(1.125rem, 0.993rem + 0.56vw, 1.5rem);
    line-height: clamp(2rem, 1.824rem + 0.75vw, 2.5rem);
}

.s4_contents_address p:first-of-type {
    margin-bottom: 20px;
}

.s4_contents_address p:last-of-type {
    margin-bottom: 56px;
}

@media screen and (min-width: 900px) {
    .s4_contents {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: min(6.18vw, 89px);
    }

    .s4_contents_map iframe {
        width: 540px;
        height: 320px;
    }

    section.s4 .s_contents {
        padding: 264px 0 104px;
    }
    
    .s4_contents_map {
        margin: 0;
    }

    section.s4 .more_button a {
        height: 48px;
        font-size: 17px;
    }

    section.s4 .more_button {
        margin: 0 auto;
    }
}

@media screen and (min-width: 900px) and (max-width: 1100px) {
    .s4_contents_map iframe {
        width: 40.5vw;
        height: 25.22vw;
    }

    .s4_contents_address p {
        font-size: 1.67vw;
    }

    section.s4 .more_button a {
        width: 16.67vw;
        font-size: 14px;
    }
}



/*---------------------------
section s5
---------------------------*/

section.s5 {
    /*background: linear-gradient(227.37deg, #FFF9EE 2.86%, #FCF8F2 39.26%, #E9F2F9 84.01%);*/
}

.s5_contents .s_title_wrapper {
    margin-bottom: 56px;
}

li.news_content {
    background: #FFFFFF;
    box-shadow: 0px 4px 10px rgba(67, 85, 99, 0.15);
}

li.news_content.sticky {
    position: relative;
}

li.news_content.sticky::before {
    content: "";
    background: url(img/icon/icon_pin.svg) no-repeat;
    background-size: contain;
    width: 40px;
    width: clamp(1.875rem, 1.765rem + 0.47vw, 2.188rem);
    height: 40px;
    height: clamp(1.875rem, 1.765rem + 0.47vw, 2.188rem);
    position: absolute;
    top: -10%;
    right: 0;
}

.pages li.news_content.sticky::before {
    top: 0;
}

main.pages.news_page li.news_content {
    padding: 16px 24px 24px;
}

section.s5 li.news_content {
    padding: 16px 24px 24px;
}
section.s5 li.news_content:not(:last-of-type) {
    margin-bottom: 16px;
}

li.news_content a:hover {
    color: #3B90BE;
}

section.s5 .more_button {
    margin-top: 56px;
    margin-bottom: 104px;
}

.s5_contents .more_button a {
    font-size: 17px;
}

section.s5 .news_info {
    margin-bottom: 8px;
}

section.s5 .news_content_a {
    display: block;
}

.news_info {
    display: flex;
    align-items: center;
    gap: 16px;
}

.news_category {
    padding: 4px 12px;
    line-height: 24px;
    color: #FFFFFF;
    background: #0F2D70;
}

.news_info time {
    /* 16-20 */
    font-size: clamp(1rem, 0.912rem + 0.38vw, 1.25rem);
    /* 24-32 */
    line-height: clamp(1.5rem, 1.324rem + 0.75vw, 2rem);
    color: #0F2D70;
}

.news_title{
    /* 18-20 */
    font-size: clamp(1.125rem, 1.081rem + 0.19vw, 1.25rem);
}
@media screen and (max-width: 767px) {
    .s5 .s_contents {
        padding: 56px 0 0;
    }
    .s5_contents:first-of-type {
        margin-bottom: 56px;
    }
}
@media screen and (min-width: 768px) {
    .s5_inner {
        width: 1200px;
        padding-bottom: 159px;
    }
    .s5 .s_contents {
        padding: 127px 0 0 0;
    }
    .s5_contents_wrapper {
        display: flex;
        align-items: baseline;
        gap: min(5.56vw, 80px);
    }
    .s5_contents {
        width: 50%;
    }
    section.s5 li.news_content {
        padding: 24px 32px;
    }

    section.s5 .more_button {
        margin-top: 56px;
        margin-bottom: 104px;
    }
}

/*----------------------------------------------------------------------
s_collaborator
----------------------------------------------------------------------*/
.s_collaborator  {
    background: linear-gradient(227.37deg, #FFF9EE 2.86%, #FCF8F2 39.26%, #E9F2F9 84.01%);
}

.s_collaborator .inner {
    width: 500px;
}

.s_collaborator .s_contents {
    padding: 80px 0;
}
.s_collaborator_contents {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 2em;
    margin-top: 28px;
}
.s_collaborator_contents li {
    width: calc(50% - 5.4vw);
    background: #FFFFFF;
    border: 1px solid #B1986A;
    /*height: 100px;*/
    display: flex;
    align-items: center;
    justify-content: center;
}
.s_collaborator_contents li a {
    height: 100%;
    display: flex;
    align-items: center;
}
.s_collaborator_contents li a img {
    /*width: 100%;
    height: 100%;*/
}
.s_collaborator_contents li a:hover {
    opacity: 0.7;
}
@media screen and (max-width: 768px) {
    .s_collaborator_contents {
        justify-content: center;
    }
}
@media screen and (min-width: 768px) {
    .s_collaborator .inner {
        width: 1000px;
    }
    .s_collaborator .s_contents {
        padding: 104px 0;
    }
    .s_collaborator_contents li {
        width: calc(100% / 4 - 1.63em);
    }
}

/*----------------------------------------------------------------------
footer
----------------------------------------------------------------------*/

/*---------------------------
footer main
---------------------------*/

footer {
    background: linear-gradient(85.06deg, #003973 16.02%, #578D8D 103.64%);
    color: #FFFFFF;
}

.footer_contents_wrapper {
    padding: 40px 0;
}

footer a {
    color: #fff;
}

.footer_logo {
    margin-bottom: 40px;
}

.footer_logo img {
    width: 160px;
    height: 118px;
}

.footer_info_time {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.footer_info_time table {
    border-collapse: collapse;
    margin-bottom: 8px;
    text-align: left;
}

.footer_info_time table th {
    padding: 10px 10px;
}

.footer_info_time table tr:nth-of-type(1) th {
    border-bottom: 1px solid #D8D8D8;
}

.footer_info_time table td {
    padding: 15px 5px;
}

.footer_info_time table tr:nth-of-type(2) td {
    border-bottom: 1px solid rgba(216, 216, 216, 0.5);
}

.footer_info_time table tr:nth-of-type(3) td {
    border-bottom: 1px solid #D8D8D8;
}

.footer_info_time_title {
    font-size: clamp(0.875rem, 0.787rem + 0.38vw, 1.125rem); /* 14-18 */
    font-weight: 700;
    vertical-align: middle;
}

.footer_info_time_week {
    font-size: clamp(0.875rem, 0.787rem + 0.38vw, 1.125rem); /* 14-18 */;
    text-align: center;
    font-weight: 700;
    width: 10%;
}

.footer_info_time_week:last-of-type {
    content: "";
    position: relative;
}

.footer_info_time_week:last-of-type::before {
    content: "\65E5";
    position: absolute;
    left: -2px;
}

.footer_info_time_week:last-of-type::after {
    content: "\795D";
    position: absolute;
    right: -2px;
}

td.footer_info_time_sign {
    font-size: 14px;
    vertical-align: middle;
    text-align: center;
    color: #FFEED0;
    font-weight: 900;
}

footer p.notices {
    margin-bottom: 50px;
    text-align: right;
    font-size: clamp(0.875rem, 0.831rem + 0.19vw, 1rem); /* 14-16 */
}

.footer_info_address a {
    display: flex;
    align-items: center;
    gap: 16px;
}

.footer_info_address {
    margin-bottom: 23px;
}

.footer_info_director {
    text-align: center;
}
.footer_info_contact {
    margin-bottom: 23px;
}

.footer_info_contact ul {
    display: flex;
    gap: 30px;
}
.footer_info_contact ul li {
    max-width: 32px;
}

.footer_info_text p {
    font-size: clamp(1rem, 0.956rem + 0.19vw, 1.125rem); /* 16-18 */
    line-height: clamp(1.438rem, 1.371rem + 0.28vw, 1.625rem); /* 23-26 */
}

.footer_privacy_policy {
    text-align: center;
    margin-bottom: 8px;
}

.footer_privacy_policy a {
    font-size: 12px;
    font-weight: 400;
    line-height: 16px;
}

.copyright {
    text-align: center;
    font-size: 12px;
    line-height: 16px;
    margin-bottom: 16px;
}

/* アイコンのホバーアクション */
.footer_info_address a .footer_info_icon {
    position: relative;
}

.footer_info_address a .footer_info_icon::after {
    content: '';
    position: absolute;
    background: rgba(255, 255, 255, 0.2);
    width: 40px;
    height: 40px;
    border-radius: 50%;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.footer_info_address a:hover .footer_info_icon::after {
    background: rgba(255, 255, 255, 0.4);
    transition: all 0.3s;
}
/* ここまで */

@media screen and (max-width: 767px) {
    .footer_info_contact ul {
        justify-content: center;
    }
    .footer_info_time {
        max-width: 500px;
        margin: auto;
    }
}

@media screen and (min-width: 768px) {
    .inner.footer_inner {
        width: 1080px;
    }

    .footer_contents_wrapper {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 40px 0 0;
    }

    .footer_logo img {
        width: 192px;
        height: 143px;
    }

    .footer_info {
        display: flex;
        flex-direction: column;
    }

    .footer_info_contact {
        margin-bottom: 11px;
    }

    .footer_info_director {
        text-align: right;
    }

    footer p.notices {
        margin-bottom: 16px;
    }

    .footer_info_address {
        padding-left: 4px;
    }

    .footer_info_pp_cc_wrapper {
        display: flex;
        justify-content: flex-end;
        align-items: center;
        gap: 24px;
        margin: 24px 0 16px;
    }

    .footer_privacy_policy {
        margin: 0;
    }

    .copyright {
        margin: 0;
    }
}

/*---------------------------
footer sitemap
---------------------------*/

.footer_sitemap {
    border-top: 1px solid rgba(255, 255, 255, 0.18);
    border-bottom: 1px solid rgba(255, 255, 255, 0.18);
    padding: 36px 20px;
}

.footer_sitemap_inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px 12px;
    align-items: start;
}

.footer_sitemap_heading {
    font-size: clamp(0.875rem, 0.787rem + 0.38vw, 1.125rem); /* 14-18 */
    font-weight: 700;
    margin: 0 0 12px;
    padding-bottom: 10px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.22);
    letter-spacing: 0.04em;
    line-height: 1.4;
}

.footer_sitemap_heading a {
    color: #FFEED0;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: opacity 0.2s;
}

.footer_sitemap_heading a::after {
    content: '›';
    font-size: 1.2em;
    line-height: 1;
    opacity: 0.6;
    transition: transform 0.2s, opacity 0.2s;
}

.footer_sitemap_heading a:hover {
    opacity: 0.8;
}

.footer_sitemap_heading a:hover::after {
    transform: translateX(3px);
    opacity: 1;
}

.footer_sitemap_list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.footer_sitemap_list li a {
    font-size: clamp(0.8125rem, 0.768rem + 0.19vw, 0.9375rem); /* 13-15 */
    color: rgba(255, 255, 255, 0.82);
    text-decoration: none;
    line-height: 1.6;
    padding-left: 14px;
    position: relative;
    display: block;
    transition: opacity 0.2s;
}

.footer_sitemap_list li a::before {
    content: '';
    position: absolute;
    left: 2px;
    top: 50%;
    transform: translateY(-50%);
    width: 4px;
    height: 4px;
    background: rgba(255, 238, 208, 0.55);
    border-radius: 50%;
}

.footer_sitemap_list li a:hover {
    opacity: 0.75;
}

@media screen and (max-width: 767px) {
    .footer_sitemap {
        padding: 28px 8px;
    }

    .footer_sitemap_inner {
        gap: 20px 8px;
    }

    .footer_sitemap_heading {
        font-size: 13px;
        margin: 0 0 8px;
        padding-bottom: 8px;
        letter-spacing: 0.02em;
    }

    .footer_sitemap_heading a {
        align-items: flex-start;
        gap: 4px;
    }

    .footer_sitemap_heading a::after {
        font-size: 1.15em;
        line-height: 1.3;
    }

    .footer_sitemap_list li a {
        font-size: 12px;
        line-height: 1.5;
        padding-left: 11px;
        letter-spacing: -0.02em;
        font-feature-settings: "palt";
    }

    .footer_sitemap_list li a::before {
        left: 1px;
        top: 0.75em;
        transform: translateY(-50%);
        width: 3px;
        height: 3px;
    }
}

@media screen and (min-width: 768px) {
    .footer_sitemap {
        padding: 44px 0;
    }

    .footer_sitemap_inner {
        grid-template-columns: repeat(4, 1fr);
        gap: 40px 40px;
    }

    .footer_sitemap_list {
        gap: 8px;
    }
}


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

media query

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

.pc-only {
    display: none;
}

.sp-only {
    display: block;
}

@media screen and (max-width: 850px) {
    .footer_pp_link a:after,
    span.vma_line,
    a:after,
    a,
    a img,
    a svg,
    a svg path {
        transition: 0.1s;
    }
}

@media screen and (min-width: 768px) {
    .pc-only {
        display: block;
    }
    .br-pc {
        display: block;
    }
    .br-sp {
        display: none;
    }
    .sp-only {
        display: none;
    }
}

/*--------------------------------------------------------------------
下層ページ
--------------------------------------------------------------------*/

main.pages {
    /*padding-top: 56px;*/
    background: linear-gradient(227.37deg, #FFF9EE 2.86%, #FCF8F2 39.26%, #E9F2F9 84.01%);
}

/* ページインナー（singleを除く） */
.inner.page_inner {
    margin-top: 144px;
}

/* singleインナー */
.inner.single_inner {
    margin-top: 144px;
}

main.pages .s_title_wrapper {
    margin-bottom: 40px;
}

.pages.news_page .inner {
    width: 1000px;
}

@media screen and (min-width: 768px) {
    .inner.page_inner,
    .inner.single_inner {
        margin-top: 184px;
        width: 1440px;
    }

    main.pages .s_title_wrapper {
        margin-bottom: 56px;
    }
}


/*----------------------------------------------------------------------
news 記事一覧(大部分はfront-pageと共用)
----------------------------------------------------------------------*/

.news_contents_wrapper {
    margin-bottom: 56px;
}

.news_cat_wrapper {
    margin-bottom: 40px;
}

.news_cat {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 16px;
}

.news_cat li {
    font-size: 16px;
    line-height: 24px;
}

.news_cat li a {
    padding: 4px 16px;
    background-color: #E1E8F9;
    color: #0F2D70;
}

.news_cat li a:hover {
    background: #0F2D70;
    color: #FFFFFF;
}

.news_cat li.news_cat_current a {
    background-color: #0F2D70;
    color: #FFFFFF;
    pointer-events: none;
}

.news_tag_wrapper {
    margin-bottom: 40px;
    padding: 24px;
    background-color: #FFFFFF;
    border-radius: 32px;
}

.news_tag {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
}

.news_tag li {
    font-size: 14px;
    line-height: 20px;
}

.news_tag li.news_tag_list a {
    padding: 4px 12px;
    background: #F9F1E4;
    border-radius: 16px;
    color: #92733B;
}

.news_tag li.news_tag_current a {
    background: #B1986A;
    color: #FFFFFF;
    pointer-events: none;
}

.news_tag li.news_tag_list a:hover {
    background: #B1986A;
    color: #FFFFFF;
}

.news_tag li.news_tag_all {
    margin-left:auto;
}

.news_tag li.news_tag_all a {
    color: #92733B;
}

span.news_tag_arrow_right {
    content: url(./img/icon/icon_news_tag_arrow_right.svg);
    vertical-align: middle;
    padding-left: 12px;
}

.news_body {
    margin-top: 16px;
    color: #4F4F4F;
    /*font-size: 14px;*/
    line-height: 20px;
}

.news_content_a {
    display: flex;
    gap: 32px;
    align-items: center;
}

.news_content_img {
    width: 20%;
}
.news_content_img img {
    height: auto;
    object-fit: cover;
}

.news_content_text {
    width: 80%;
}

.pagination_wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 56px;
}

ul.page-numbers {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 42px;
}

ul.page-numbers li {
    position: relative;
    z-index: 0;
}

ul.page-numbers li .page-numbers {
    font-size: 24px;
    font-family: 'Josefin Sans', sans-serif;
    font-style: normal;
    font-weight: 400;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #0F2D70;
}

ul.page-numbers li .page-numbers.current {
    color: #fff;
}

ul.page-numbers li .page-numbers.current::before {
    content: '';
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background-color: #0F2D70;
    position: absolute;
    z-index: -1;
}

ul.page-numbers li a.page-numbers:hover {
    opacity: 0.7;
}

.pages .news_info {
    margin-bottom: 16px;
}

@media screen and (max-width: 767px) {
    .pages .news_info {
        flex-direction: column-reverse;
        gap: 2px;
        align-items: baseline;
    }
    .pages .news_content_a {
        flex-direction: column;
        gap: 16px;
    }
}

@media screen and (max-width: 767px) {
    main.pages.news_page ul.news_contents {
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
        gap: 16px;
    }
    main.pages.news_page li.news_content {
        width: calc(50% - 8px);
        padding: 24px;
        box-sizing: border-box;
    }
    .news_content_img {
        width: 100%;
        max-width: 300px;
    }
    .news_content_text {
        width: 100%;
    }
}

@media screen and (min-width: 768px) {
    .news_cat {
        gap: 24px;
    }

    .news_cat li {
        font-size: 18px;
        line-height: 24px;
    }

    .news_tag li {
        font-size: 16px;
        line-height: 24px;
    }

    .news_tag li.news_tag_list a {
        padding: 4px 16px;
    }

    li.news_content:not(:last-child) {
        margin-bottom: 16px;
    }

    main.pages.news_page li.news_content {
        padding: 32px;
    }
    .news_content_a {
        align-items: flex-start;
    }
}

@media screen and (max-width: 520px) {
    main.pages.news_page li.news_content {
        width: 100%;
    }
}


@media screen and (max-width: 430px) {
    ul.page-numbers {
        gap: 9.77vw;
    }

    ul.page-numbers li .page-numbers {
        font-size: 6.4vw;
    }

    ul.page-numbers li .page-numbers.current::before {
        width: 9.3vw;
        height: 9.3vw;
    }
}


/*----------------------------------------------------------------------
blog 記事一覧
----------------------------------------------------------------------*/
.pages.news_page .blog_inner {
    width: 1440px;
}

.blog_contents_wrapper {
    display: flex;
}

.blog_contents_wrapper .news_contents_wrapper {
    width: 100%;
    margin: initial;
}

.sidebar_content {
    background: #FFFFFF;
    border-radius: 20px;
    padding: 40px 30px;
}
.sidebar_content:not(:last-of-type) {
    margin-bottom: 20px;
}

.sidebar_title {
    color: #0F2D70;
    margin-bottom: 16px;
}
.sidebar_title::after {
    content: "";
    display: inline-block;
    width: 100%;
    height: 3px;
    border-radius: 100px;
    background: #0F2D70;
}

/* カテゴリー */
.sidebar_category_contents li {
    position: relative;
}
.sidebar_category_contents li:not(:last-of-type) {
    margin-bottom: 20px;
}
.sidebar_category_contents li a {
    font-size: 18px;
    padding-left: 22px;
}
.sidebar_category_contents li.current_cat a {
    pointer-events: none;
    color: #0F2D70;
    font-weight: 700;
}
.sidebar_category_contents li::before {
    content: "";
    display: block;
    width: 8px;
    height: 8px;
    position: absolute;
    left: -4px;
    top: calc(50% - 2px);
    border-top: solid 2px;
    border-right: solid 2px;
    transform: rotate(45deg) translateY(-50%);
    transform-origin: bottom;
}

.sidebar_category_contents li.current_cat::before {
    border-top: 2px #0F2D70 solid;
    border-right: 2px #0F2D70 solid;
}

/* タグ */
.sidebar_tag_contents {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
}
.sidebar_tag_contents li {
    font-size: 16px;
    line-height: 24px;
}
.sidebar_tag_contents li a {
    padding: 4px 12px;
    background: #F9F1E4;
    border-radius: 16px;
    font-size: 18px;
    color: #92733B;
}
.sidebar_tag_contents li.current_tag a {
    background: #B1986A;
    color: #FFFFFF;
    pointer-events: none;
}
.sidebar_tag_contents li a:hover {
    background: #B1986A;
    color: #FFFFFF;
}
/* 最新の投稿 */
.sidebar_new_article_contents li {
    
}

.sidebar_new_article_contents li:not(:last-of-type) {
    margin-bottom: 16px;
}

.sidebar_new_article_content a {
    display: block;
}

.sidebar_new_article_content_time {
    display: inline-block;
    color: #0F2D70;
    margin-bottom: 8px;
    font-size: 16px;
}

.sidebar_new_article_content_title {
    /*font-size: clamp(1.125rem, 1.081rem + 0.19vw, 1.25rem);*/
    font-size: 18px;
    line-height: 1.25em;
}

/* 検索フォーム */
.sidebar_search_form {
    display: flex;
    justify-content: space-between;
    align-items: center;
    overflow: hidden;
    border: 2px solid #0f2d70;
    border-radius: 3px;
}

.sidebar_search_form label {
    width: calc(100% - 45px);
}

.sidebar_search_form input {
    width: 100%;
    height: 45px;
    padding: 5px 15px;
    border: none;
    box-sizing: border-box;
    outline: none;
    font-size: 1em;
}

.sidebar_search_form input::placeholder{
    color: #767d83;
}

.sidebar_search_form button {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 45px;
    height: 45px;
    border: none;
    background-color: #0f2d70;
    cursor: pointer;
}

.sidebar_search_form button::after {
    width: 20px;
    height: 20px;
    background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%20%3Cpath%20d%3D%22M23.7%2020.8%2019%2016.1c-.2-.2-.5-.3-.8-.3h-.8c1.3-1.7%202-3.7%202-6C19.5%204.4%2015.1%200%209.7%200S0%204.4%200%209.7s4.4%209.7%209.7%209.7c2.3%200%204.3-.8%206-2v.8c0%20.3.1.6.3.8l4.7%204.7c.4.4%201.2.4%201.6%200l1.3-1.3c.5-.5.5-1.2.1-1.6zm-14-5.1c-3.3%200-6-2.7-6-6s2.7-6%206-6%206%202.7%206%206-2.6%206-6%206z%22%20fill%3D%22%23fff%22%3E%3C%2Fpath%3E%20%3C%2Fsvg%3E');
    background-repeat: no-repeat;
    content: '';
}

/* ページネーション */

@media screen and (max-width: 1049px) {
    .blog_contents_wrapper {
        flex-direction: column;
        align-items: center;
    }
    .sidebar_wrapper {
        width: 100%;
        margin-top: 56px;
        margin-bottom: 104px;
    }
}
@media screen and (min-width: 1050px) {
    .blog_contents_wrapper {
        gap: 30px;
        margin-bottom: 104px;
    }
    .blog_contents_wrapper > .news_contents_wrapper {
        width: 70%;
    }
    .blog_contents_wrapper > .sidebar_wrapper {
        width: 30%;
    }
}

@media screen and (min-width: 1049px) {
    .blog_inner .news_content_img {
        width: 25%;
    }
    .blog_inner .news_content_text {
        width: 75%;
    }
}

/* 検索結果 */
.search-count {
    /* 16-20 */
    font-size: clamp(1rem, 0.912rem + 0.38vw, 1.25rem);
    text-align: center;
    color: #0F2D70;
    margin-bottom: 16px;
}

/*----------------------------------------------------------------------
news single お知らせ詳細ページ
----------------------------------------------------------------------*/

/* base */

.s_news_contents_wrapper {
    background-color: #FFFFFF;
    padding: 24px 24px 56px;
    margin-bottom: 104px;
}

main.pages.sigle_page .view_more {
    display: flex;
    align-items: center;
}

.single_contents {
    margin-bottom: 32px;
}

.single_contents p {
    /* 16-18 */
    font-size: 18px;
    /* 23-26 */
    /*line-height: clamp(1.438rem, 1.371rem + 0.28vw, 1.625rem);*/
    /*font-weight: 400;*/
    /*color: #231815;*/
}

.s_news_contents_wrapper .more_button a {
    font-size: 17px;
}

@media screen and (min-width: 768px) {
    .s_news_contents_wrapper {
        padding: 80px 80px 56px;
    }
}

.s_news_top {
    margin-bottom: 16px;
    display: flex;
    align-items: center;
    gap: 24px;
}

.single_category {
    padding: 4px 12px;
    line-height: 24px;
    color: #FFFFFF;
    background: #0F2D70;
}

.sigle_date time {
    /* 16-20 */
    font-size: clamp(1rem, 0.912rem + 0.38vw, 1.25rem);
    color: #0F2D70;
}

h1.single_title {
    /* 20-24 */
    font-size: clamp(1.25rem, 1.179rem + 0.36vw, 1.5rem); 
    /* 29-35 */
    line-height: clamp(1.813rem, 1.705rem + 0.54vw, 2.188rem);
    color: #231815;
    text-align: left;
    margin-block-start: 0;
    margin-block-end: 0;
    margin-bottom: 16px;
    width: max-content;
    max-width: 100%;
}

.single_tag_wrapper {
    margin-bottom: 32px;
}

.single_img {
    margin: auto;
    margin-bottom: 24px;
    width: 600px;
    max-width: 100%;
}

/* singleの見出し共通化 */
/*.sigle_page .s_news_contents .single_contents h1,
.sigle_page .s_news_contents .single_contents h2,
.sigle_page .s_news_contents .single_contents h3,
.sigle_page .s_news_contents .single_contents h4,
.sigle_page .s_news_contents .single_contents h5,
.sigle_page .s_news_contents .single_contents h6 {
    margin-block-end: 0.7em;
    margin-block-start: 72px;
    font-size: 22px;
    font-style: normal;
    font-weight: 700;
    line-height: 40px;
    letter-spacing: 0.1em;
    text-align: left;
    box-sizing: border-box;
    padding-left: 23px;
    position: relative;
}*/

/* 添付ファイルブロック */
/*.sigle_page .s_news_contents .single_contents .wp-block-file {
    margin-block-end: 0.7em;
    margin-block-start: 32px;
}*/
/*
.sigle_page .s_news_contents .page_contents h1::before,
.sigle_page .s_news_contents .page_contents h2::before,
.sigle_page .s_news_contents .page_contents h3::before,
.sigle_page .s_news_contents .page_contents h4::before,
.sigle_page .s_news_contents .page_contents h5::before,
.sigle_page .s_news_contents .page_contents h6::before {
    content: "";
    position: absolute;
    left: 0;
    top: 5px;
    width: 8px;
    height: 32px;
    background-color: #000;
}

.wp-block-table td,
.wp-block-table th,
.sigle_page .page_contents ol,
.sigle_page .page_contents ul,
.sigle_page .s_news_contents .page_contents p {
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: 28px;
    letter-spacing: 0.1em;
}*/

.other_news_link {
    margin-bottom: 40px;
    /*width: 700px;*/
    max-width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.other_news_link .news_list_link a {
    border: 3px solid #000;
    background-color: #fff;
    color: #000;
    box-sizing: border-box;
}

.other_news_link .news_list_link a:hover {
    background-color: #000;
    color: #fff;
    border-color: #fff;
}

.other_news_link .view_more {
    padding: 0;
    width: 100%;
}

.other_news_link .view_more .view_more_arrow {
    position: relative;
    margin: 0;
}

@media screen and (min-width: 768px) {
    .s_news_top {
        margin-bottom: 24px;
    }

    h1.single_title {
        margin-bottom: 24px;
    }

    .single_tag_wrapper {
        margin-bottom: 40px;
    }

    .single_contents,
    .single_img {
        margin-bottom: 56px;
    }

    .other_news_link {
        position: relative;
        margin: 0;
    }

    .prev_link, .next_link {
        position: absolute;
    }

    .prev_link {
        left: 0;
    }

    .next_link {
        right: 0;
    }
}

@media screen and (min-width: 768px) and (max-width: 959px) {
    main.pages.sigle_page .more_button a {
        width: 18.67vw;
        font-size: 1.39vw;
    }
}

@media screen and (max-width: 850px) {
    /*safariの場合*/
     ::-webkit-full-page-media,
     :future,
     :root .other_news_link a {
        transition: 0.1s;
    }
}

/*----------------------------------------------------------------------
blog single 記事詳細ページ
----------------------------------------------------------------------*/
.single_blog .s_news_contents_wrapper {
    box-sizing: border-box;
}

@media screen and (max-width: 1049px) {
    .single_blog .s_news_contents_wrapper {
        width: 100%;
        margin: 0;
    }
}

@media screen and (min-width: 1050px) {
    .single_blog .s_news_contents_wrapper {
        width: 70%;
    }
}

/*----------------------------------------------------------------------
 privacy policy プライバシーポリシー
----------------------------------------------------------------------*/

.pp_contents {
    margin-bottom: 104px;
    padding: 40px 24px;
    background: #FFFFFF;
}

.pp_content:not(:last-child) {
    margin-bottom: 24px;
}

.pp_content h2 {
    font-size: 20px;
    line-height: 32px;
    color: #0F2D70;
}

.pp_content p {
    font-size: 14px;
    line-height: 24px;
}

@media screen and (min-width: 900px) {
    .pp_contents {
        padding: 64px 104px;
    }

    .pp_contents_wrapper {
        width: 1000px;
        max-width: 94%;
        margin: auto;
    }

    .pp_content h2,
    .pp_content p {
        line-height: 24px;
    }
}

/*----------------------------------------------------------------------
tag-list タグ一覧
----------------------------------------------------------------------*/

.tag_list_page_inner {
    margin: 184px auto 144px;
    width: 1000px;
}

.tag_list_wrapper {
    padding: 24px;
    background: #FFFFFF;
    border-radius: 40px;
    margin-bottom: 104px;
}

@media screen and (min-width: 768px) {
    .tag_list_wrapper {
        padding: 40px;
    }
}

/*----------------------------------------------------------------------
contact お問い合わせフォーム
----------------------------------------------------------------------*/

.contact_contents_notice {
    margin-bottom: 40px;
}

.contact_contents_notice p {
    /* 16-20 */
    font-size: clamp(1rem, 0.912rem + 0.38vw, 1.25rem);
    line-height: clamp(1.438rem, 1.305rem + 0.56vw, 1.813rem);
    text-align: center;
}

main.pages.contact-pages .inner.reserve_information_inner {
    margin-bottom: 80px;
}

.contact-submit-btn span.ajax-loader {
    display: none !important;
}

.wpcf7 form.invalid .wpcf7-response-output {
    display: none !important;
}

body span.wpcf7-form-control-wrap:only-child input:-webkit-autofill,
body span.wpcf7-form-control-wrap:only-child textarea:-webkit-autofill {
    box-shadow: 0 0 0 1000px #F2F2F2 inset;
}

body span.wpcf7-form-control-wrap input:-webkit-autofill,
body span.wpcf7-form-control-wrap textarea:-webkit-autofill {
    box-shadow: 0 0 0 1000px #F2F2F2 inset;
}

.wpcf7-response-output {
    display: none !important;
}

.contact-content .contact-title {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    margin-bottom: 8px;
}

.contact-content .contact-title p {
    font-weight: 700;
    /* 20-24 */
    font-size: clamp(1.25rem, 1.162rem + 0.38vw, 1.5rem);
    /* 24-32 */
    line-height: clamp(1.5rem, 1.324rem + 0.75vw, 2rem);
}

span.ct-red {
    font-size: 16px;
    margin-left: 8px;
    padding-bottom: 2px;
    font-weight: bold;
    background-color: #E03535;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 28px;
    overflow: hidden;
    box-sizing: border-box;
}


@media screen and (min-width: 900px) {
    main.pages.contact-pages .reserve_information_contents {
        margin: auto;
    }

    main.pages.contact-pages .inner.reserve_information_inner {
        margin-bottom: 112px;
    }
}

.wpcf7-not-valid-tip {
    margin-top: 10px;
}

.contact-content .contact-form textarea {
    resize: none;
    height: 184px;
}

.contact-content .contact-form textarea,
.contact-content .contact-form.cc-text input {
    background: #FFFFFF;
    border: 2px solid #E2E2E2;
    border-radius: 8px;
    /* 20-24 */
    font-size: clamp(1.25rem, 1.162rem + 0.38vw, 1.5rem);
    line-height: 32px;

    padding: 16px;
    width: 100%;
    box-sizing: border-box;
    outline: none;
    transition: 0.3s;
    -webkit-appearance: none;
    letter-spacing: 0.05em;
}

.contact-submit-btn {
    width: max-content;
    margin: auto;
    margin-bottom: 104px;
}

.contact-submit-btn input {
    max-width: 100%;
    width: 240px;
    height: 64px;
    border-radius: 32px;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    letter-spacing: 0.05em;
    font-weight: bold;
    background: linear-gradient(85.06deg, #003973 16.02%, #578D8D 103.64%);
    /* box-shadow: 0px 8px 20px rgb(255 255 255 / 20%); */
    color: #FFFFFF;
    cursor: pointer;
    border: none;
}

.contact-submit-btn input:hover {
    transform: scale(1.03);
    box-shadow: 0px 8px 20px rgba(54, 105, 142, 0.6);
}

.wpcf7-spinner {
    display: none !important;
}

.contact_contents .contact-content:not(:last-child) {
    margin-bottom: 32px;
}

@media screen and (min-width: 768px) {
    .contact_form_inner {
        width: 800px;
    }

    .contact_contents_notice {
        margin-bottom: 56px;
    }

    .contact-content .contact-title {
        margin-bottom: 16px;
    }

    span.contact_required {
        margin-right: 16px;
    }
}

@media screen and (max-width: 374px) {
    .contact-content .contact-form textarea, .contact-content .contact-form.cc-text input {
        font-size: 5.03vw;
    }
    
    /* スマホ表示でのラジオボタン調整 */
    .contact-radio-group {
        flex-direction: column;
        gap: 12px;
    }
}


/*---- 送信完了 ----*/


/* モーダルウィンドウを作成する */

#wpcf7-modal {
    /*display: none;*/
    position: fixed;
    display: flex;
    height: 100%;
    width: 100%;
    top: 0;
    left: 0;
    justify-content: center;
    align-items: center;
}

#wpcf7-modal__bg {
    position: absolute;
    height: 100%;
    width: 100%;
    top: 0;
    left: 0;
    background: rgba(0, 0, 0, .5);
    z-index: -1;
}

/* 問い合わせ送信モーダル */
#cf_7_modal_send {
    background: linear-gradient(227.37deg, #FFF9EE 2.86%, #FCF8F2 39.26%, #E9F2F9 84.01%);
    color: #0F2D70;

    border-radius: 16px;
    width: 800px;
    max-width: 90%;
    height: 489px;
    max-height: 90vh;
    box-sizing: border-box;
    padding: 20px;
    box-shadow: rgb(0 0 0 / 24%) 0px 3px 8px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

div#cf_7_modal_send h2 {
    font-size: clamp(3rem, 2.648rem + 1.5vw, 4rem); /*48-64*/
    background: linear-gradient(85.06deg, #003973 16.02%, #578D8D 103.64%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    text-fill-color: transparent;
}

div#cf_7_modal_send h3 {
    font-size: clamp(1rem, 0.824rem + 0.75vw, 1.5rem); /*16-24;*/
    line-height: 32px;
    margin-bottom: 24px;
}

div#cf_7_modal_send p {
    margin-bottom: 32px;
    font-size: clamp(0.875rem, 0.743rem + 0.56vw, 1.25rem); /*14-20*/
    line-height: 32px;
    text-align: center;
    color: #0F2D70;
}

div#cf_7_modal_send .more_button {
    margin: initial;
}

div#cf_7_modal_send .more_button a {
    font-size: 17px;
}

.cf_7_send {
    display: none;
    position: relative;
    z-index: 9999999999;
    opacity: 0;
}

.cf_7_send.send_ok,
.cf_7_send.send_active {
    display: flex !important;
    animation: cf-submit 0.2s ease-out forwards;
}

.cf_7_send.send_active div#cf_7_modal_send p {
    margin-bottom: 0;
}

.cf_7_send.send_active div#cf_7_modal_send h2 {
    padding-top: 0px;
}

@keyframes cf-submit {
    0% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}

#cf7_error_text_top {
    display: none;
    font-weight: bold;
    font-size: 16px;
    letter-spacing: 1.6px;
    color: #E03535;
    line-height: 1.8;
    text-align: center;
    margin-bottom: 30px;
}

#cf7_error_text_top.send_error {
    display: block;
}

@media screen and (min-width: 768px) {
    div#cf_7_modal_send h3 {
        margin-bottom: 40px;
    }

    div#cf_7_modal_send p {
        margin-bottom: 56px;
    }
}


/*----------------------------------------------------------------------
404ページ
----------------------------------------------------------------------*/

.inner.inner_404error {
    margin-top: 205px;
}

.page_404error_contents_wrapper {
    margin-bottom: 80px;
}

.page_404error_contents {
    background-color: #FFFFFF;
    padding: 64px 15px;
    position: relative;
}

.title_404error {
    position: absolute;
    top: -45px;
    left: 16px;
}

.title_404error h1 {
    font-size: 90px;
    background: linear-gradient(85.06deg, #003973 16.02%, #578D8D 103.64%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    text-fill-color: transparent;
}

.page_404error_content h2 {
    text-align: center;
    /* 24-36 */
    font-size: clamp(1.5rem, 1.236rem + 1.13vw, 2.25rem);
    color: #0F2D70;
    font-weight: 700;
}

.page_404error_content p {
    /* 23-29 */
    line-height: clamp(1.438rem, 1.305rem + 0.56vw, 1.813rem);
    margin: 32px 0;
    text-align: center;
}

@media screen and (min-width: 1130px) {
    .page_404error_contents {
        padding: 80px 177px;
    }
}

@media screen and (min-width: 900px) {
    .page_404error_contents_wrapper {
        width: 1000px;
        max-width: 94%;
        margin: 0 auto 104px;
    }
}


/*----------------------------------------------------------------------
オリジナルの固定ページ
----------------------------------------------------------------------*/

/*-------------------------------------------------
レイアウト
--------------------------------------------------*/
.original_page_inner {
    margin: 144px auto 136px;
}

.original_page_inner h1 {
    font-size: clamp(1.5rem, 1.236rem + 1.13vw, 2.25rem);
    font-weight: 700;
    text-align: center;
    color: #0F2D70;
    position: relative;
    line-height: 48px;
    margin-bottom: 40px;
}

.original_page_inner h1::before {
    content: '';
    width: 40px;
    height: 3px;
    background-color: #B1986A;
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%)
}

.original_page_inner p {
    font-size: 18px;
}

@media screen and (min-width: 768px) {
    .original_page_inner {
        margin: 184px auto 144px;
        width: 1000px;
    }

    .original_page_inner h1 {
        line-height: 72px;
        margin-bottom: 56px;
    }
}

/*-------------------------------------------------
タイトル
--------------------------------------------------*/
.original_pages h2,
.sigle_page h2 {
    color: #0F2D70;
    position: relative;
    padding: 0.25em 0 0.5em 0.75em;
    border-left: 6px solid #B1986A;
    margin: 1em 0;
}
.original_pages h2::after,
.sigle_page h2::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 0;
    border-bottom: 1px solid #ccc;
}
.original_pages h4,
.sigle_page h4 {
    margin: 1em 0;
}

.original_pages p,
.sigle_page p {
    margin: 0.5em 0;
}

/* ナンバリングタイトル */
.number_title {
	position: relative;
    display: flex;
    align-items: center;
	font-size: 22px;
    color: #0F2D70;
}
.number_title::before {
	content: attr(data-number);
	display: inline-block;
	margin-right: 20px;
	color: rgba(177,152,106,0.5);
	font-size: 32px;
	border-bottom: 2px solid rgba(177,152,106,0.5);
}
.number_title_content {
    margin: 1em 0;
    padding-left: 3.25em;
}

/* Checkタイトル */
.title_check {
    position: relative;
    color: #0F2D70;
    background: rgba(177,152,106,0.3);
    line-height: 1.8;
    padding: 0.25em 0.5em;
    margin-top: 1em;
    margin-bottom: 0.5em;
    /*margin: 2em 0 0.5em;*/
    border-radius: 0 5px 5px 5px;
    width: 200px;
    max-width: 100%;
}
.title_check:after {
    position: absolute;
    font-weight: 900;
    content: '\02713  Check';
    white-space: pre-wrap;
    background: #B1986A;
    color: #fff;
    left: 0px;
    bottom: 100%;
    border-radius: 5px 5px 0 0;
    padding: 3px 7px 1px;
    font-size: 0.7em;
    line-height: 1;
    letter-spacing: 0.05em;
}

/* centerタイトル(ナンバリング付) */
.center_number_title {
    position: relative;
	font-size: 22px;
	text-align: center;
    color: #0F2D70;
}
.center_number_title::before {
	content: attr(data-number);
	display: block;
	margin-bottom: 30px;
	color: rgba(177,152,106);
	font-size: 30px;
}

/* 英字タイトル */
.english_decoration_title {
	position: relative;
	padding-top: 60px;
	font-size: 22px;
	text-align: center;
    color: #0F2D70;
}
.english_decoration_title::before {
	content: attr(data-en);
    transform: rotate(-5deg);
	position: absolute;
	top: 0px;
	left: 50%;
	transform: translateX(-50%);
	color: rgba(177,152,106,0.5);
        font-family: luxus-brut, cursive;
	font-size: 52px;
	font-style: italic;
}

/* ダウンロードボタン 固定ページでも共通 */
.wp-block-file a.wp-block-file__button {
    display: inline-block;
    padding: 10px;
    color: #FFFFFF;
    background: linear-gradient(85.06deg, #003973 16.02%, #578D8D 103.64%);
}


/*-------------------------------------------------
文字色
--------------------------------------------------*/
.text-red {
    color: rgba(255,69,0);
}

/*-------------------------------------------------
背景色
--------------------------------------------------*/
.bg_brown {
    background-color: #B1986A;
    color: #FFFFFF;
}
.bg_dark_brown {
    background-color: rgba(177,152,106,.1);
}
.bg_blue {
    background-color: rgba(15,45,112);
    color: #FFFFFF;
}
.bg_red {
    background-color: rgba(255,69,0);
    color: #FFFFFF;
}
/*-------------------------------------------------
アンダーライン
--------------------------------------------------*/
.underline {
    background: linear-gradient(transparent 75%, #B1986A 35%);
}

/*-------------------------------------------------
目次ブロック
--------------------------------------------------*/
.index_box {
    padding: 1em 1em 1em 2em;
    border-top: 5px solid #B1986A;
    border-radius: 5px;
    box-shadow: 0 2px 3px rgb(0 0 0 / 15%);
    background-color: #f7f7f7;
}
.index_box .index_box_title {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0;
    color: #B1986A;
    font-weight: 600;
    font-size: 1.2em;
}
.index_box .index_box_title::before {
    display: inline-block;
    width: 2.2em;
    height: 2.2em;
    margin-right: 5px;
    border-radius: 50%;
    background: #B1986A url('data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22%23fff%22%3E%3Cpath%20d%3D%22M3.8%2017.2h-3c-.5%200-.8.4-.8.8v3c0%20.4.3.8.8.8h3c.4%200%20.8-.3.8-.8v-3c-.1-.4-.4-.8-.8-.8zm0-15h-3c-.5%200-.8.4-.8.8v3c0%20.4.3.8.8.8h3c.4%200%20.8-.3.8-.8V3c-.1-.4-.4-.8-.8-.8zm0%207.6h-3c-.5%200-.8.3-.8.7v3c0%20.4.3.8.8.8h3c.4%200%20.8-.3.8-.8v-3c-.1-.4-.4-.7-.8-.7zM23.2%2018h-15c-.4%200-.8.3-.8.8v1.5c0%20.4.3.8.8.8h15c.4%200%20.8-.3.8-.8v-1.5c0-.5-.3-.8-.8-.8zm0-15h-15c-.4%200-.7.3-.7.8v1.5c0%20.4.3.7.7.7h15c.5%200%20.8-.3.8-.8V3.8c0-.5-.3-.8-.8-.8zm0%207.5h-15c-.4%200-.8.3-.8.8v1.5c0%20.4.3.8.8.8h15c.4%200%20.8-.3.8-.8v-1.5c0-.5-.3-.8-.8-.8z%22%2F%3E%3C%2Fsvg%3E') no-repeat center / 1em;
    content: '';
}
.index_box_content {
    margin-top: 16px;
}
.index_box ol {
    list-style-type: decimal;
    margin-left: 24px;
    font-size: 20px;
}
.index_box ol.index_child {
    padding-top: 6px;
    font-size: 18px;
    font-weight: normal;
}
.index_box li {
    padding: 5px 0;
}
.index_box ol li:not(:last-of-type) {
    margin-bottom: 6px;
}

.index_box ol.index_child li:not(:last-of-type) {
    margin-bottom: 0;
}
.index_box a {
    text-decoration: none;
}


/*-------------------------------------------------
Q&Aブロック
--------------------------------------------------*/
.qa_box h2 {
    display: inline-block;
    position: relative;
    padding: .5em 1em;
    border-right: 27px solid #B1986A;
    background-color: #f5f5f5;
    max-width: 250px;
    width: 100%;
}
.qa_box h2::before {
    position: absolute;
    bottom: 2px;
    right: -20px;
    z-index: -1;
    transform: rotate(5deg);
    height: 50%;
    background-color: #d0d0d0;
    content: "";
    filter: blur(4px);
}
.qa_box details {
    margin-bottom: 5px;
    border-bottom: 2px solid #d6dde3;
}
.qa_box details summary {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    position: relative;
    padding: 16px 32px 16px 48px;
    font-weight: 600;
    cursor: pointer;
    font-size: 18px;
}
.qa_box details summary::before,
.qa_box details p::before {
    position: absolute;
    left: 16px;
    font-weight: 600;
    font-size: 1.3em;
}
.qa_box details summary::before {
    color: #75bbff;
    content: "Q";
}
.qa_box details summary::after {
    transform: translateY(-25%) rotate(45deg);
    width: 7px;
    height: 7px;
    border-bottom: 3px solid #333333b3;
    border-right: 3px solid #333333b3;
    content: '';
    transition: transform .5s;
    flex: none;
}
.qa_box details[open] summary::after {
    transform: rotate(225deg);
}
.qa_box details p {
    position: relative;
    transform: translateY(-10px);
    opacity: 0;
    margin: 0;
    padding: 16px 32px 16px 48px;
    color: #333;
    transition: transform .5s, opacity .5s;
}
.qa_box details[open] p {
    transform: none;
    opacity: 1;
}
.qa_box details p::before {
    color: #ff8d8d;
    line-height: 1.2;
    content: "A";
}
summary::-webkit-details-marker {
    display: none;
}



/*-------------------------------------------------
塗りつぶしリンク
--------------------------------------------------*/
.paint_over_link {
    display: inline-block;
    background: linear-gradient(transparent 0%, #B1986A 5%);
    color: #FFFFFF;
    padding: 0px 1em;
}

/*-------------------------------------------------
ボーダー
--------------------------------------------------*/
.border_brown {
    border: 2px solid #B1986A;
}
.border_blue {
    border: 1px solid rgba(15,45,112,.8);
}
.border_red {
    border: 1px solid rgba(255,69,0,.8);
}

/*-------------------------------------------------
ボックス
--------------------------------------------------*/
/* ボックス */
.decoration_box {
    /*display: inline-block;*/
    position: relative;
    /*margin: 2em auto;*/
    margin-top: 0.6em;
}

.decoration_box.speech_bubble {
    margin-top: 1em;
}

/* ボックスタイトル（共通） */
.decoration_box_title {
    padding: 0.6em 1.4em;
}

/* 通常ボックスタイトル */
.decoration_box_title {
    position: absolute;
    top: -10px;
    left: 20px;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 18px;
    height: 45px;
    box-sizing: border-box;
}
.decoration_box_title > p {
    margin: 0;
    line-height: inherit;
}

/* ボックスタイトル（吹き出し型） */
.speech_bubble .decoration_box_title {
    position: absolute;
    top: -1.15em;
    left: -0.5em;
    border-radius: 25px;
    font-size: 18px;
    font-weight: bold;
}
.speech_bubble .decoration_box_title::before {
    content: '';
    position: absolute;
    bottom: -7px;
    left: 50%;
    transform: translateX(-50%);
    width: 16px;
    height: 8px;
    background-color: #B1986A;
    clip-path: polygon(0 0, 100% 0, 50% 100%);
}

/* ボックス本文 */
.decoration_box_content {
    padding: 3em 2em 2em;
}
/* 吹き出しボックス本文 */
.speech_bubble .decoration_box_content {
    padding: 1.8em 1.5em 1.2em;
}

/* 茶色いボックス */
.decoration_box.title_big .decoration_box_title {
    padding: 0.5em 0;
    background-color: rgba(177,152,106,.25);
    color: #0F2D70;
    font-weight: 600;
    font-size: 1.5em;
    text-align: center;

    position: initial;
    top: initial;
    left: initial;
}
.decoration_box.title_big .decoration_box_content {
    padding: 1em 1.5em;
}

/* チェックの入った緑のボックス */
.box_green_wrapper {
    position: relative;
    display: flex;
    align-items: center;
    grid-gap: 0 0.7em;
    margin: 0 auto;
    padding: 1em;
    border-radius: 5px;
    background-color: #ecffe9;
}
.box_green {
    padding-left: 2em;
}
.box_green_wrapper::before {
    content: '';
    position: absolute;
    top: 45%;
    width: clamp(0.75rem, 0.574rem + 0.75vw, 1.25rem);
    height: clamp(0.438rem, 0.371rem + 0.28vw, 0.625rem);
    border-left: 3px solid #25AF01;
    border-bottom: 3px solid #25AF01;
    transform: translateY(-50%) rotate(-45deg);
}

/* attentionアイコンの入ったbox */
.box-attention_wrapper {
    padding: 1em;
    border-radius: 5px;
    background-color: #ffebee;
}
.box-attention {
    position: relative;
    padding-left: 2.5em;
}
.box-attention::before {
    content: "";
    background: url('img/icon/icon_attention_2.svg') no-repeat;
    display: inline-block;
    background-size: contain;
    width: 24px;
    height: 24px;
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
}

.paint_over {
    position: relative;
    display: inline-block;
    padding-left: 1.5em;
}
.paint_over::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 0.5em 0 0.5em 1em;
    border-color: transparent transparent transparent #231815;
}
.paint_over_content {
    background: linear-gradient(transparent 0%, #B1986A 5%);
    color: #FFFFFFFF;
    padding: 1em;
    border-radius: 0.5em;
}


/* ナンバーボックス */
.number_box {
    position: relative;
    margin: 1em auto;
    padding: 1em 1.5em;
    border: 2px solid #B1986A;
    border-radius: 3px;
    color: #333;
    font-size: 18px;
}
.number_box::before {
    display: flex;
    justify-content: center;
    align-items: center;
    position: absolute;
    top: -1em;
    left: -1em;
    width: 2em;
    height: 2em;
    border-radius: 50%;
    background-color: #B1986A;
    color: #fff;
    font-size: 20px;
    font-weight: 800;
    content: attr(data-number);
}

/*-------------------------------------------------
ボタン
--------------------------------------------------*/
/* アンカーリンクのアニメーションボタン */
.animation_button {
    max-width: 80%;
    margin: auto;
}
.animation_button a {
    display: flex;
    justify-content: center;
    padding: 20px 0px 20px 25px;
    color: #0F2D70;
    font-weight: 500;
    position: relative;
    z-index: 1;
    transition: 0.3s ease-in-out;
    font-size: 18px;
}
.animation_button a:hover {
    color: #FFFFFF;
    z-index: 2;
}
.animation_button a:before, .animation_button a:after {
    content: "";
    position: absolute;
    display: block;
    top: 50%;
}
.animation_button a:after {
    left: 0;
    background: #B1986A;
    z-index: 1;
    width: 3rem;
    height: 3rem;
    border-radius: 4rem;
    transform: translateY(-50%);
    transition: all 0.5s;
}

.animation_button a::before {
    width: 0.5rem;
    height: 0.5rem;
    left: 1.1rem;
    border-top: solid 2px #fff;
    border-right: solid 2px #fff;
    z-index: 2;
    transform: translateY(-50%) rotate(45deg);
    transition: all 0.3s;
}
.animation_button a:hover:before {
    left: 2rem;
}
.animation_button a:hover:after {
    right: 0;
    width: 100%;
    z-index: 0;
}
.animation_button a span {
    position: relative;
    transition: all 0.2s;
    z-index: 3;
}

@media screen and (max-width: 1049px) {
    .animation_button a:not(:last-of-type) {
        margin-bottom: 1em;
    }
}

@media screen and (min-width: 1050px) {
    .animation_button {
        max-width: initial;
        display: flex;
        justify-content: space-between;
        flex-wrap: wrap;
        gap: 1em;
    }
    .animation_button a {
        width: calc(50% - 3em);
    }
}


/*-------------------------------------------------
テーブル
--------------------------------------------------*/
.table_brown {
    overflow: auto;
}
.table_brown table {
    text-align: center;
    border-collapse: collapse;
    margin: 0px auto 0px;
    width: 100%;
}

.table_brown th {
    padding: 10px;
    background-color: rgba(177, 152, 106, .8);
    border: solid 1px rgba(177, 152, 106, .8);
    white-space: nowrap;
    vertical-align: middle;
    line-height: 1.5em;
}

.table_brown td {
    padding: 10px;
    border: solid 1px rgba(177, 152, 106, .8);
    white-space: nowrap;
    vertical-align: middle;
    line-height: 1.5em;
}

/*-------------------------------------------------
タイムライン
--------------------------------------------------*/
.timeline_section {
    position: relative;
    padding: 0 1.5em 1.5em 2em;
}
.timeline_section:not(:last-child)::before,
.timeline_section::after {
    position: absolute;
    content: '';
}
.timeline_section:not(:last-child)::before {
    bottom: 0;
    left: 11px;
    transform: translateX(-50%);
    width: 3px;
    height: 100%;
    background-color: #d6dde3;
}
.timeline_section::after {
    top: 0;
    left: 0;
    width: 14px;
    height: 14px;
    border: 4px solid #fff;
    border-radius: 50%;
    background-color: #B1986A;
}
.timeline_content {
    /*padding-bottom: 1.5em;*/
}
.timeline_label {
    margin-bottom: .1em;
    color: #0F2D70;
    font-size: 1em;
}
.timeline_title {
    font-size: 1.05em;
    font-weight: 600;
    margin: 0 auto .5em;
}

/*-------------------------------------------------
当院の紹介 Mission/Vision/Value
--------------------------------------------------*/
.about_clinic_box_mission {
    display: flex;
    align-items: center;
    flex-direction: column;
}

.about_clinic_box_mission .imgbox {
    max-width: 250px;
    width: 100%;
}

.about_clinic_box_vision,
.about_clinic_box_value {
    display: flex;
    align-items: center;
    flex-direction: column;
}

.about_clinic_box_vision:not(:last-of-type),
.about_clinic_box_value:not(:last-of-type) {
    margin-bottom: 40px;
}

.about_clinic_box_vision .imgbox,
.about_clinic_box_value .imgbox {
    max-width: 100px;
    width: 100%;
}
@media screen and (min-width: 768px) {
    .about_clinic_box_vision,
    .about_clinic_box_value {
        gap: 20px;
        flex-direction: row;
    }
}

span.textbox_catch {
    display: table;
    border-bottom: 1px solid;
    font-weight: 700;
    font-size: 22px;
    margin-bottom: 8px;
}


.textbox_large {
    font-size: clamp(1.5rem, 1.324rem + 0.75vw, 2rem) !important;
    letter-spacing: 0.1em;
}

.textbox_midium {
    font-size: clamp(1.375rem, 1.199rem + 0.75vw, 1.875rem) !important;
    letter-spacing: 0.1em;
}

.textbox_small {
    /*font-size: clamp(1.25rem, 1.206rem + 0.19vw, 1.375rem) !important;*/
}

.textbox strong {
    font-weight: 700;
    font-size: 120%;
}

@media screen and (min-width: 768px) {
    .about_clinic_box_mission {
        flex-direction: row;
        gap: 50px;
    }
}

span.contact_required {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 26px;
    color: #FFFFFF;
    text-align: center;
    background-color: #0F2D70;
    font-size: clamp(0.875rem, 0.787rem + 0.38vw, 1.125rem);
    line-height: 32px;
    font-weight: 700;
    margin-right: 8px;
    padding: 2px 14px;
    border-radius: 4px;
}

/* ラジオボタンのスタイル */
.contact-radio-group {
    display: flex;
    gap: 24px;
    margin-bottom: 24px;
}

.radio-container {
    display: flex;
    align-items: center;
    cursor: pointer;
}

.radio-container input[type="radio"] {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}

.radio-label {
    position: relative;
    padding-left: 32px;
    font-size: 22px;
    line-height: clamp(1.5rem, 1.324rem + 0.75vw, 2rem);
}

.radio-label:before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 20px;
    height: 20px;
    border: 1px solid #ccc;
    border-radius: 50%;
    background-color: #F2F2F2;
    transition: all 0.2s ease-in-out;
}

.radio-container input[type="radio"]:checked + .radio-label:before {
    border-color: #6694CC;
    background-color: #fff;
}

.radio-container input[type="radio"]:checked + .radio-label:after {
    content: '';
    position: absolute;
    left: 5px;
    top: 50%;
    transform: translateY(-50%);
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background-color: #6694CC;
}

.radio-container:hover .radio-label:before {
    border-color: #6694CC;
}

@media screen and (min-width: 768px) {
    .contact_form_inner {
        width: 800px;
    }

    .contact_contents_notice {
        margin-bottom: 56px;
    }

    .contact-content .contact-title {
        margin-bottom: 16px;
    }

    span.contact_required {
        margin-right: 16px;
    }
}

@media screen and (max-width: 374px) {
    .contact-content .contact-form textarea, .contact-content .contact-form.cc-text input {
        font-size: 5.03vw;
    }
    
    /* スマホ表示でのラジオボタン調整 */
    .contact-radio-group {
        flex-direction: column;
        gap: 12px;
    }
}

/* ================================================
     当院の特徴 - カードグリッドセクション
     ================================================ */
.feature-card-grid {
    display: flex !important;
    flex-wrap: wrap;
    justify-content: center;
    gap: 20px;
    max-width: 1000px;
    margin: 0 auto;
    padding: 0 15px;
}
.feature-card-grid > .feature-card {
    width: calc((100% - 40px) / 3);
}
@media screen and (max-width: 900px) {
    .feature-card-grid > .feature-card {
        width: calc((100% - 20px) / 2);
    }
}
@media screen and (max-width: 767px) {
    .feature-card-grid > .feature-card {
        width: 100%;
    }
}
.feature-card {
    background: #fff !important;
    border: none;
    border-radius: 16px;
    overflow: hidden;
    display: flex !important;
    flex-direction: column;
    box-shadow: 0 1px 4px rgba(0,0,0,0.08);
    cursor: pointer;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
    text-decoration: none;
    color: inherit;
}
.feature-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0,0,0,0.12);
}
/* カード下部の矢印 */
.feature-card::after {
    content: '\2192';
    display: block;
    text-align: right;
    padding: 0 20px 16px;
    color: #B1986A;
    font-size: 18px;
    transition: transform 0.25s ease;
}
.feature-card:hover::after {
    transform: translateX(4px);
}
.feature-card-title {
    font-size: 20px !important;
    font-weight: bold;
    color: #0F2D70;
    margin: 0;
    padding: 20px 20px 10px;
    text-align: center;
}
.feature-card-image {
    background: linear-gradient(180deg, #E8F4F8 0%, #F5F9FB 100%);
    padding: 20px;
    display: flex !important;
    align-items: center;
    justify-content: center;
    min-height: 100px;
}
.feature-card-image img {
    max-width: 100px;
    max-height: 100px;
    object-fit: contain;
}
.feature-card-image-placeholder {
    font-size: 48px;
}
.feature-card-content {
    padding: 15px 20px 20px;
    flex: 1;
    display: flex !important;
    flex-direction: column;
}
.feature-card-description {
    font-size: 15px;
    color: #333;
    line-height: 1.7;
    margin: 0;
    flex: 1;
}
/* ボタン非表示（カード全体がリンクなので不要） */
.feature-card .more_button {
    display: none;
}
