@charset "UTF-8";

* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}
:root {
    --color_accent_green: #56C091;
    --color_yellow: #D4D066;

    --color_bg1_green: #DDF2E9;
    --color_bg2_green: #F7FFF5;
    --color_bg_grd: linear-gradient(145deg, var(--color_bg1_green) 0%, #F4FFF0 71%, #ECFDDC 100%);

    --color_gh: #71B894;
    --color_st: #BE7F5F;
    --color_bg_gh-takaoka: #ECFBF5;
    --color_bg_gh-anju: #F7FFF5;
    --color_bg_st_takaoka: #FCFFED;

    --color_text: #414141;
    --color_text02: #6A6A6A;
    --color_text_hover: #7E7E7E;
    --color_white: #fff;
}

a {
    text-decoration: none;
}
li {
    list-style: none;
}

html {
    font-size: 62.5%;
}
body {
    font-family: "Comfortaa", "Zen Maru Gothic", sans-serif;
    background: var(--color_bg2_green);
}
body:not(.home) {
    opacity: 0;
    animation: fadeIn 1.3s ease forwards;
}
@keyframes fadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

/* ボタン(共通部分) */
.c_btn {
    font-size: 1.6rem;
    font-weight: bold;
    letter-spacing: 10%;
    line-height: 150%;
    color: var(--color_white);
    background: var(--color_accent_green);
    border-radius: 10rem;
    display: inline-block;
    cursor: pointer;
    position: relative;
    transition: transform 0.3s ease;
}

/* PCのみ */
@media screen and (max-width: 769px) {
    .sp_none {
        display: none !important;
    }
}
/* SPのみ */
.pc_none {
    display: none !important;
}
@media screen and (max-width: 769px) {
    .pc_none {
        display: block !important;
    }
}
/* TBのみ */
.tb_only {
    display: none !important;
}
@media screen and (max-width: 1024px){
    .tb_only {
        display: block !important;
    }
}
@media screen and (max-width: 769px) {
    .tb_only {
        display: none !important;
    }
}

/* フェードインアニメーション */
.js-fade-up {
    opacity: 0;
    transform: translateY(2.5rem);
    transition: opacity 1.6s cubic-bezier(0.25, 1, 0.5, 1), 
                transform 1.6s cubic-bezier(0.25, 1, 0.5, 1);
}
.js-fade-up.is-visible {
    opacity: 1;
    transform: translateY(0);
}

/* ↓ header ↓ */
.header {
    width: 100%;
    max-width: 168rem;
    margin: 6rem auto 0;
    padding: 0 2rem;
    position: fixed;top: 0;
    left: 50%;
    transform: translateX(-50%);
    z-index: 100;
}
.header_inner {
    display: flex;
    justify-content: space-between;
}

.header_logo a {
    font-size: 2.4rem;
    font-weight: bold;
    line-height: 130%;
    color: var(--color_text);
}

.header_nav {
    height: fit-content;
    background: var(--color_white);
    border-radius: 20rem;
    display: flex;
    justify-content: center;
    align-items: center;
    box-shadow: 3px 3px 10px rgba(65, 65, 65, 0.05);
}
.header_nav_list {
    margin-left: 4rem;
    display: flex;
    align-items: center;
    column-gap: 4rem;
}
.header_nav_link {
    font-size: 1.6rem;
    font-weight: bold;
    color: var(--color_text);
}
.header_nav_link,
.header_nav_dropdown_link {
    letter-spacing: 10%;
    transition: color 0.3s ease;
}
.header_nav_link:hover,
.header_nav_dropdown_link:hover {
    color: var(--color_text_hover);
}
.header_nav_link.--has-child {
    display: flex;
    align-items: center;
    gap: 0.4rem;
}
.header_nav_link.--has-child::after {
    content: "+";
    width: 1.7rem;
    height: 1.7rem;
    margin-left: 0.6rem;
    font-size: 1.4rem;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--color_bg1_green);
    border-radius: 50%;
}
.header_nav_item.--has-dropdown {
    position: relative;
}
.header_nav_item.--has-dropdown.is-open .header_nav_link.--has-child::after {
    content: "−";
    color: var(--color_white);
    background: var(--color_accent_green);
}
.header_nav_dropdown {
    padding: 2rem 3rem;
    display: flex;
    flex-direction: column;
    row-gap: 1.5rem;
    position: absolute;
    top: calc(100% + 3rem);
    left: 100%;
    background: var(--color_white);
    border-radius: 1rem;
    white-space: nowrap;
    box-shadow: 3px 3px 10px rgba(65, 65, 65, 0.05);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateX(-50%) translateY(-1rem);
    transition: opacity 0.25s ease, transform 0.25s ease, visibility 0.25s;
}
.header_nav_item.--has-dropdown.is-open .header_nav_dropdown {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateX(-50%) translateY(0);
}
.header_nav_dropdown_link {
    font-size: 1.5rem;
    font-weight: bold;
    color: var(--color_text);
}
.header_nav_link.--btn {
    padding: 2.5rem 5rem;
    font-size: 1.6rem;
    font-weight: bold;
    color: var(--color_white);
    background: var(--color_accent_green);
    border-radius: 20rem;
    display: block;
    transition: background-color 0.3s ease;
}
.header_nav_link.--btn:hover {
    background-color: var(--color_yellow);
}
/* ↑ header ↑ */

/* ↓ 共通 main visual ↓ */
.c-page_header {
    padding: 15rem 2rem;
    background: var(--color_bg1_green);
    background-image: url(../images/bg2_moku.svg);
    background-repeat: no-repeat;
    background-position: right -16rem bottom -9.6rem;
    background-size: auto 100%;
    overflow: hidden;
}
.c-page_header_inner {
    text-align: center;
}
.c-page_header__sub {
    margin-bottom: 1rem;
    font-size: 1.6rem;
    font-weight: bold;
    letter-spacing: 10%;
    color: var(--color_accent_green);
}
.c-page_header__title {
    margin-bottom: 5rem;
    font-size: 6rem;
    font-weight: bold;
    letter-spacing: 10%;
    line-height: 160%;
    color: var(--color_text);
}
.c-page_header__text {
    font-size: 1.6rem;
    font-weight: bold;
    color: var(--color_text);
}
/* ↑ 共通 main visual ↑ */

/* ↓ 共通見出し ↓ */
.c-sec_header {
    padding-top: 5.5rem;
    position: relative;
}
.c-sec_header::before {
    content: "";
    width: 4.6rem;
    height: 2.9rem;
    background-image: url(../images/leaves.svg);
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;
    display: inline-block;
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
}
.c-sec_header__title {
    margin-bottom: 2.6rem;
    font-size: 4.8rem;
    font-weight: bold;
    letter-spacing: 10%;
    line-height: 100%;
    text-align: center;
    color: var(--color_text);
}
.c-sec_header__sub {
    font-size: 1.6rem;
    font-weight: bold;
    letter-spacing: 10%;
    line-height: 100%;
    text-align: center;
    color: var(--color_accent_green);
}
/* ↑ 共通見出し ↑ */

/* ↓ お問い合わせセクション ↓ */
.p_common_contact {
    margin-bottom: 14rem;
}
.p_common_contact__inner {
    max-width: 144rem;
    padding: 0 2rem;
    margin: 0 auto;
}
.c-sec_header__text {
    margin-top: 2.4rem;
    margin-bottom: 8rem;
    font-size: 1.6rem;
    text-align: center;
}
.p_common_contact__action {
    display: flex;
    column-gap: 4%;
}
.p_common_contact__btn {
    width: 100%;
    padding: 4.5rem 3.2rem;
    border: 0.2rem solid var(--color_accent_green);
    border-radius: 2rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    transition: transform 0.3s ease;
}
.p_common_contact__btn:hover {
    transform: scale(0.97);
}
.p_common_contact__btn.m-primary {
    background: var(--color_accent_green);
}
.p_common_contact__btn.m-secondary {
    background: var(--color_white);
}
.c-btn_card__body {
    display: flex;
    flex-flow: column;
    row-gap: 1.2rem;
}
.m-primary .c-btn_card__body {
    color: var(--color_white);
}
.m-secondary .c-btn_card__body {
    color: var(--color_accent_green);
}
.c-btn_card__sub {
    font-size: 1.6rem;
    font-weight: bold;
    line-height: 100%;
    letter-spacing: 10%;
}
.c-btn_card__title {
    font-size: 3.2rem;
    font-weight: bold;
    line-height: 100%;
    letter-spacing: 10%;
}
.c-btn_card__arrow {
    width: 4rem;
    height: 4rem;
    border-radius: 100rem;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-shrink: 0;
    transition: transform 0.3s ease;
    pointer-events: none;
}
.p_common_contact__btn:hover .c-btn_card__arrow {
    transform: scale(1.15);
}
.m-primary .c-btn_card__arrow {
    background: var(--color_white);
}
.m-secondary .c-btn_card__arrow {
    background: var(--color_accent_green);
}
.c-btn_card__arrow img {
    width: 0.6rem;
    height: auto;
    backface-visibility: hidden;
    transform: translateZ(0);
}
/* ↑ お問い合わせセクション ↑ */

/* ↓ footer ↓ */
.footer {
    width: 100%;
    padding: 15rem 0 6rem 0;
    color: var(--color_text);
    background-image: url("../images/footer_bg.svg");
    background-repeat: no-repeat;
    background-size: auto 54rem;
    background-position: left bottom;
}
.footer__inner {
    width: 100%;
    max-width: 140rem;
    padding: 0 2rem;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
}

/* 左側（ロゴまわり） */
.footer__left {
    display: flex;
    flex-direction: column;
}
.footer__logo {
    font-size: 4.2rem;
    font-weight: bold;
    line-height: 130%;
    color: var(--color_text);
    margin-bottom: 1rem;
}
.footer__dot_line {
    width: 2.6rem;
    margin-bottom: 1.6rem;
    display: inline-block;
}
.footer__company {
    font-size: 2.1rem;
    font-weight: 500;
    letter-spacing: 10%;
    line-height: 150%;
    margin-bottom: 5.6rem;
}
.footer__copyright {
    font-size: 1.6rem;
}

/* 右側（施設紹介・ナビ） */
.footer__right {
    display: flex;
    flex-direction: column;
}
.footer__facilities {
    margin-bottom: 10.2rem;
}
.footer__lead {
    margin-bottom: 4rem;
    font-size: 1.6rem;
    font-weight: 500;
    letter-spacing: 10%;
}

.footer__lead a {
    color: var(--color_accent_green);
    text-decoration: underline;
}

/* 施設リスト */
.footer__list {
    padding: 0;
    display: flex;
    flex-flow: column;
    gap: 3.2rem;
}
.footer__list li a {
    padding-left: 3.5rem;
    font-size: 1.6rem;
    font-weight: bold;
    letter-spacing: 10%;
    color: var(--color_accent_green);
    display: inline-block;
    position: relative;
}
.footer__list li a::after {
    content: "";
    width: 2.4rem;
    height: 2.4rem;
    border: 0.1rem solid var(--color_accent_green);
    border-radius: 50%;
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    transition: transform 0.3s ease;
}
.footer__list li a::before {
    content: "";
    width: 2.4rem;
    height: 2.4rem;
    position: absolute;
    left: 0;
    top: 50%;
    transform: translate(0, -50%);
    background: url("../images/btn_arrow.svg") no-repeat center / 0.6rem auto;
    transition: transform 0.3s ease;
}
.footer__list li a:hover::after {
    transform: translateY(-50%) scale(1.2);
}
/*.footer__list li a:hover::before {
    transform: translate(0.3rem, -50%);
}*/

/* 下部のメニューナビ（お知らせ・質問・問い合わせ） */
.footer__nav-list {
    padding: 0;
    display: flex;
    justify-content: space-between;
}
.footer__nav-list li a {
    font-size: 1.6rem;
    font-weight: bold;
    color: var(--color_text);
    transition: color 0.3s ease;
}
.footer__nav-list li a:hover {
    color: var(--color_text_hover);
}
/* ↑ footer ↑ */


/* --- タブレット --- */
@media screen and (max-width: 1024px) {
/* ↓ 共通 main visual ↓ */
.c-page_header {
    padding: 9rem 2rem;
}
/* ↑ 共通 main visual ↑ */

/* ↓ 共通見出し ↓ */
.c-sec_header__title {
    font-size: 4rem;
}
/* ↑ 共通見出し ↑ */
}


/* --- スマホ --- */
@media screen and (max-width: 769px) {
/* ↓ header ↓ */
.header {
    width: 100%;
    max-width: none;
    padding: 0 1rem;
    margin: 2rem auto 0;
    left: 0;
    transform: none;
}
.header_inner {
    width: 100%;
    align-items: center;
}
.header_logo a {
    font-size: 1.6rem;
}

/* SP用headerドロップダウンメニュー */
.drawer_hidden {
    display: none;
}
.drawer_btn {
    width: 2.6rem;
    height: 1.4rem;
    padding: 2.8rem;
    background: var(--color_accent_green);
    border-radius: 1rem;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    cursor: pointer;
    z-index: 110;
}
.drawer_btn span {
    width: 2rem;
    height: 0.2rem;
    background: var(--color_white);
    border-radius: 10rem;
    display: block;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    transition: transform 0.3s ease, top 0.3s ease, bottom 0.3s ease;
}
.drawer_btn span:nth-child(1) {
    top: 40%;
}
.drawer_btn span:nth-child(2) {
    top: 60%;
}
.drawer_hidden:checked + .drawer_btn span:nth-child(1) {
    top: 50%;
    transform: translate(-50%, -50%) rotate(45deg);
}
.drawer_hidden:checked + .drawer_btn span:nth-child(2) {
    top: 50%;
    transform: translate(-50%, -50%) rotate(-45deg);
}

.drawer_nav {
    width: 100%;
    height: 100vh;
    padding: 6rem;
    background: var(--color_bg2_green);
    display: flex;
    justify-content: center;
    align-items: center;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 105;

    opacity: 0;
    visibility: hidden;
    transition: transform 0.4s ease, opacity 0.4s ease, visibility 0.4s;
}
.drawer_hidden:checked ~ .drawer_nav {
    transform: translateY(0);
    opacity: 1;
    visibility: visible;
}
.drawer_list {
    width: 100%;
    padding: 0;
    margin: 1rem 0 0;
    display: flex;
    flex-direction: column;
}
.drawer_list a {
    display: block;
    position: relative;
}
.drawer_list a::after {
    content: "";
    width: 2.4rem;
    height: 2.4rem;
    border: 0.1rem solid var(--color_accent_green);
    border-radius: 50%;
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    transition: transform 0.3s ease;
}
.drawer_list a::before {
    content: "";
    width: 2.4rem;
    height: 2.4rem;
    position: absolute;
    right: 0;
    top: 50%;
    transform: translate(0, -50%); 
    background: url("../images/btn_arrow.svg") no-repeat center / 0.6rem auto;
    transition: transform 0.3s ease; 
}
.sp_header_nav_dropdown_trigger::after,
.sp_header_nav_dropdown_trigger::before {
    top: 0.2rem !important; 
    transform: translateY(0) !important;
}

.drawer_list > li {
    padding: 2rem 0;
}
.drawer_list > li:last-child {
    padding-bottom: 0;
}
.drawer_list > li:not(:last-child) {
    border-top: 0.1rem solid var(--color_bg1_green);
}
.sp_header_nav_dropdown {
    margin-left: 2rem;
}
.sp_header_nav_dropdown_trigger {
    width: 100%;
    padding-bottom: 2rem;
    line-height: 2.4rem;
    border-bottom: 0.1rem solid var(--color_bg1_green);
    display: block;
    position: relative;
}
.sp_header_nav_dropdown_item {
    padding: 2rem 0;
    border-bottom: 0.1rem solid var(--color_bg1_green);
}
.sp_header_nav_dropdown_item:last-child {
    padding-bottom: 0;
    border-bottom: none;
}

.drawer_list a,
.drawer_label {
    font-size: 1.6rem;
    font-weight: bold;
    color: var(--color_text);
}
.drawer_btn_contact {
    padding: 2.5rem 5rem;
    font-size: 1.6rem;
    font-weight: bold;
    text-align: center;
    color: var(--color_white) !important;
    background: var(--color_accent_green);
    border-radius: 20rem;
    display: block;
}

.drawer_list .header_nav_dropdown_link {
    font-size: 1.4rem;
}
/* ↑ header ↑ */

/* ↓ 共通 main visual ↓ */
.c-page_header {
    padding: 16rem 2rem 6rem;
    background-position: right bottom;
    background-size: auto 40%;
}
.c-page_header__title {
    margin-bottom: 2rem;
    font-size: 4rem;
}
/* ↑ 共通 main visual ↑ */

/* ↓ 共通見出し ↓ */
.c-sec_header {
    padding-top: 3.9rem;
}
.c-sec_header__title {
    margin-bottom: 1rem;
    font-size: 3.2rem;
}
.c-page_header__text {
    font-weight: 500;
}
/* ↑ 共通見出し ↑ */

/* ↓ お問い合わせセクション ↓ */
.p_common_contact {
    margin-bottom: 0;
}
.c-sec_header__text {
    margin-bottom: 4rem;
}
.p_common_contact__action {
    flex-flow: column;
    row-gap: 2rem;
}
.p_common_contact__btn {
    padding: 2rem;
}
.c-btn_card__body {
    row-gap: 1rem;
}
.c-btn_card__sub {
    font-size: 1.4rem;
}
.c-btn_card__title {
    font-size: 2rem;
}
/* ↑ お問い合わせセクション ↑ */

/* ↓ footer ↓ */
.footer {
    padding-top: 10rem;
    padding-bottom: 1rem;
}
.footer__inner {
    flex-flow: column;
    row-gap: 4rem;
}
.footer__logo {
    font-size: 3.2rem;
}
.footer__company {
    margin-bottom: 0;
    font-size: 1.6rem;
    font-weight: bold;
}
.footer__facilities {
    margin-bottom: 4rem;
}
.footer__lead {
    margin-bottom: 2rem;
}
.footer__list {
    gap: 1.6rem;
}
.footer__copyright {
    width: 100%;
    font-size: 1.2rem;
    text-align: center;
}
/* ↑ footer ↑ */
}