:root {
    --main: #54BA55;
    --base: #EFECE8;
    --text: #1D1D1E;
    --accent: #EE7423;
    --white: #fff;

    /* フォントの設定 */
    --font-main: "Zen Maru Gothic", sans-serif;
    --font-en: "Lexend Zetta", sans-serif;
}

html {
    scroll-behavior: smooth;
}


body {
    background-color: var(--base);
    color: var(--text);
    letter-spacing: 0.05em;
    font-family: var(--font-main);
    padding-top: 60px;
}

main {
    overflow: hidden;
}

.en {
    font-family: var(--font-en)
}

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

rt {
    color: #54BA55;
    font-weight: 700;
    margin-bottom: 0px;
}

/* =BEGIN ruby-to-inline-tag=
   ruby/rt を <i class="yomi"> / <b class="yomi_rt"> で代替。
   <i>/<b> はプロジェクト未使用のインライン要素のため既存スタイルと競合しない。
   横書き(通常)コンテキスト用のデフォルト位置: ふりがなを文字の上に配置。
   縦書き(mv_text)用の上書きは .mv_text .yomi_rt 側で対応。
   戻す場合はこのブロックと対応する PHP/JS の置き換えを元に戻す */
.yomi {
    position: relative;
    display: inline-block;
    font-style: normal;
    /* <i> のデフォルト italic を打ち消す */
}

.yomi_rt {
    position: absolute;
    bottom: 100%;
    left: 50%;
    transform: translateX(-50%);
    font-size: 0.5em;
    line-height: 1;
    white-space: nowrap;
    color: #54BA55;
    font-weight: 700;
    font-size: clamp(10px, calc(10px + (14 - 10) * (100vw - 600px) / 360), 14px);
}

/* =END ruby-to-inline-tag= */

.inner {
    width: 88%;
    min-width: 354px;
    max-width: 1040px;
    margin: 0 auto;
}

.inner_page {
    width: 88%;
    max-width: 960px;
    margin: 0 auto;
}

.sp {
    display: block;
}

.pc {
    display: none;
}

.bg_img {
    background-repeat: no-repeat;
    background-size: contain;
}

.hover_opacity {
    transition: all .2s ease-out;
}

.hover_opacity:hover {
    opacity: .8;
}

.boder {
    border-bottom: 2px solid #1D1D1E;
    display: inline-block;
    padding: 0 10px 10px 10px;
}

/* .vision_content .boder {
    padding: 0 10px 10px 10px;
} */

/* スクロールすると下からふわっとさせるためのコード */
.inview {
    /* 30px下げる */
    transform: translateY(30px);
    /* 要素を透明にする */
    opacity: 0;
    /* 2秒かけて、変化させる */
    transition: transform 2s, opacity 2s;
}

.inview.show {
    transform: translateY(0);
    opacity: 1;
}



/* 親要素：カーソルを表示 */
.typing_anima {
    position: relative;
}

.typing_anima:after {
    /* content: "|"; */
    animation: typingCursor .8s ease infinite;
}

/* 中の文字とルビを最初から完全に隠す */
.typing_anima span {
    opacity: 0;
    display: inline-block;
    /* 高さを維持しつつ隠す */
    transition: opacity 0.2s;
}

/* ルビの構造が崩れないよう強制 */
.typing_anima ruby,
.boder ruby {
    display: inline-ruby;
    vertical-align: bottom;
    position: relative;
}

.typing_anima rt,
.boder rt {
    position: absolute;
    top: -6px;
    left: 0;
    right: 0;
    text-align: center;
    line-height: 1;
    white-space: nowrap;
    font-size: clamp(10px, 1.5vw, 14px);
}

@keyframes typingCursor {
    0%, 100% {
        opacity: 0;
    }

    50% {
        opacity: 1;
    }
}


/*  -----------------------------
コンポーネント
--------------------------------- */

.title_main {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
    font-size: 20px;
    font-style: normal;
    font-weight: 500;
    line-height: 1.2;
    ;
    /* 24px */
}

.title_main span {
    color: #54BA55;
    text-align: center;
    font-family: "Lexend Zetta";
    font-size: 13px;
    font-weight: 500;
    line-height: 1;
    letter-spacing: -.1em;
    /* text-transform: uppercase; */
}

@media (max-width: 768px) {
    .insta .title_main span {
        line-height: 2.5;
    }
}


.btn_circle {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 20px;
    align-self: stretch;
    color: #1D1D1E;
    font-size: 14px;
    font-style: normal;
    font-weight: 500;
    line-height: 1;
    width: fit-content;
    margin-left: auto;
}


.title_type {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 20px;
    color: #1D1D1E;
    text-align: center;
    font-size: 20px;
    font-weight: 500;
    line-height: 1;
    /* 20px */
    letter-spacing: .05em;
}

@media (max-width: 768px) {
    .title_type {
        gap: 15px;
    }

    .point_inner .title_type {
        gap: 10px;
    }

}



.btn_circle_icon {
    display: flex;
    width: 40px;
    height: 40px;
    padding: 14.545px;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 7.273px;
    border-radius: 50%;
    border: 1px solid #54BA55;
    background: #54BA55;
    transition: all .2s ease-out;
}

.btn_circle_icon img {
    width: 16px;
    filter: invert(100%) sepia(100%) saturate(0%) hue-rotate(255deg) brightness(100%) contrast(105%);
    transition: all .2s ease-out;
}

a.btn_circle.btn_download img {
    width: 10px;
}

.btn_circle:hover .btn_circle_icon {
    background-color: transparent;
}

.btn_circle:hover .btn_circle_icon img {
    filter: invert(61%) sepia(61%) saturate(452%) hue-rotate(69deg) brightness(93%) contrast(89%);

}

/* スマホ以上 */
@media (min-width: 768px) {
    .title_main {
        gap: 10px;
        font-size: 36px;
        font-weight: 500;
        line-height: 1.2;
    }

    .title_main span {
        font-size: 16px;
        font-weight: 500;
        line-height: 1;
    }

    .title_type {
        font-size: 36px;
    }

    .btn_circle {
        font-size: 18px;
    }

    .btn_circle_icon {
        width: 55px;
        height: 55px;
        padding: 20px;
    }

    .sp {
        display: none;
    }

    .pc {
        display: block;
    }

    a.btn_circle.btn_download img {
        width: 15px;
    }

}

/* pc以上 */
@media (min-width: 960px) {


    body {
        padding-top: 90px;
    }
}

/*  -----------------------------
header
--------------------------------- */
.header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 9;
    transition: all .3s;
    height: 75px;
}

/* スクロール後に付与するクラス */
.header.is-scrolled {
    background-color: rgb(255 255 255 / 60%);
}

.header_img {
    position: absolute;
    top: 0;
    left: 0;
    width: 155px;
    z-index: -1;
}

.header_inner {
    padding: 30px 20px 0 20px
}

.header_logo {
    color: #1D1D1E;
    font-family: "Lexend Zetta";
    font-size: 14px;
    font-style: normal;
    font-weight: 500;
    line-height: 1;
    letter-spacing: -10%;
}

.header_logo a {
    display: inline-block;
    width: 150px;
}

.nav_logo {
    color: var(--text);
    text-align: center;
    font-family: "Lexend Zetta";
    font-size: 14px;
    font-style: normal;
    font-weight: 500;
    line-height: 1;
    margin-bottom: 70px;
}

.nav_logo a {
    display: inline-block;
    width: 150px;
}

.nav_menu {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 30px;
    margin-bottom: 100px;
}

.nav_menu_item a {
    color: #fff;
    font-size: 18px;
    font-style: normal;
    font-weight: 500;
    line-height: 1;
}

.nav_btns {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    align-self: stretch;
}

.nav_btn a {
    display: flex;
    padding: 8px 20px;
    justify-content: center;
    align-items: center;
    gap: 10px;
    width: 212px;
    height: 49px;
    border-radius: 30px;
    background: #fff;

    color: #54BA55;
    font-size: 16px;
    font-style: normal;
    font-weight: 500;
    line-height: 1;
    transition: all .2s ease-out;
}

.nav_btn_icon {
    display: inline;
    width: 25px;
    filter: invert(61%) sepia(61%) saturate(452%) hue-rotate(69deg) brightness(93%) contrast(89%);
    transition: all .2s ease-out;
}

.nav_btn a:hover {
    background: #54BA55;
    color: #fff;
}

.nav_btn a:hover .nav_btn_icon {
    filter: invert(100%) sepia(100%) saturate(2%) hue-rotate(202deg) brightness(106%) contrast(101%);
}

.nav_btn.tel a {
    /* color: #54BA55; */
    font-family: "Lexend Zetta";
    font-size: 16px;
    font-style: normal;
    font-weight: 500;
    line-height: 1;
    letter-spacing: -.1em;
    transition: all .2s ease-out;
}

.nav_btn.tel a {
    font-size: 16px;
    font-style: normal;
    font-weight: 500;
    line-height: 1;
    /* 12px */
    letter-spacing: 0.6px;
}

.nav_btn.tel a p {
    font-size: 12px;
    font-style: normal;
    font-weight: 500;
    line-height: 1;
    /* 12px */
    letter-spacing: 0.6px;
}

.nav_btn.tel a p span {
    /* color: #54BA55; */
    font-family: "Lexend Zetta";
    font-size: 12px;
    font-style: normal;
    font-weight: 500;
    line-height: 1;
    /* 12px */
    letter-spacing: -1.2px;
}

.nav_btn.tel .nav_btn_inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
}

li.nav_btn.line a,
li.nav_btn.download a {
    gap: 4px;
}

.nav_btn.download a {
    transition: all .2s ease-out;
}

li.nav_btn.download a:hover {
    background-color: #54BA55;
    color: #fff;
}

.nav_btn.download a:hover {
    background-color: #fff;
    color: #54BA55;
}

li.nav_btn.download .nav_btn_icon {
    width: 13px;
    transition: all .2s ease-out;
}

.nav_btn.download a:hover .nav_btn_icon {
    filter: invert(100%) sepia(100%) saturate(2%) hue-rotate(202deg) brightness(106%) contrast(101%);
}

.nav_insta {
    display: flex;
    width: 49px;
    height: 49px;
    justify-content: center;
    align-items: center;
    gap: 10px;
    border-radius: 50%;
    background: #fff;
    position: absolute;
    bottom: 20px;
    left: 20px;
}

.nav_insta img {
    display: inline-block;
    width: 25px;
    height: 24px;
    flex-shrink: 0;
    aspect-ratio: 25/24;

}

/*  -----------------------------
ハンバーガー
--------------------------------- */
.header_nav {
    padding: 50px 4vw 20px;
    width: 100vw;
    height: 100vh;
    position: fixed;
    left: 0;
    top: 0;
    overflow-y: scroll;
    transform: translateX(120%);
    transition: transform 0.3s linear;
    background-color: var(--base);
    background-image: url(../img/common/bg_hum.webp);
    background-size: 100% 100%;
    z-index: 999;
}

.hamburger {
    display: inline-block;
    width: fit-content;
    height: auto;
    aspect-ratio: 1;
    color: var(--text);
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 4px;
    position: fixed;
    top: 20px;
    right: 20px;
    z-index: 9999;
    display: inline-flex;
    flex-direction: column;
    gap: 5px;
}

.hamburger .hamburger_inner {
    display: flex;
    flex-direction: column;
    align-items: end;
    row-gap: 7px;
}

.hamburger .hamburger_inner span {
    display: inline-block;
    position: relative;
    width: 30px;
    height: 2px;
    border-radius: 5px;
    background-color: var(--text);
    transition: all 0.4s;
}

.active .hamburger span:nth-child(1) {
    top: 9px;
    transform: rotate(45deg);
}

.active .hamburger span:nth-child(2) {
    opacity: 0;
}

.active .hamburger span:nth-child(3) {
    top: -9px;
    transform: rotate(-45deg);
}

.active .header_nav {
    transform: translateX(0%);
}

.hamburger p {
    color: #1D1D1E;
    font-family: "Lexend Zetta";
    font-size: 10px;
    font-style: normal;
    font-weight: 600;
    line-height: 1;
    /* 10px */
    letter-spacing: -1px;
}

.hamburger .cloce {
    display: none;
}

.hamburger.active .open {
    display: none;
}

.hamburger.active .cloce {
    display: block;
}

.nav_btn.contact {
    display: none;
}

@media (min-width: 1100px) {
    .header {
        height: auto;
    }

    .header_img {
        width: calc(338 / 1440 *100%);
    }

    .header_inner {
        padding: 20px 30px;
        display: flex;
        justify-content: space-between;
        align-items: center;
    }

    .header_logo {
        font-size: 21px;
        flex-shrink: 0;
    }

    .header_logo a {
        width: 220px;
    }

    .hamburger {
        display: none;
    }

    .header_nav {
        transform: none;
        background-image: none;
        height: auto;
        background-color: transparent;
        position: static;
        padding: 0;
        display: flex;
        align-items: center;
        gap: 30px;
        flex-shrink: 0;
        justify-content: flex-end;
        overflow-y: auto;
        width: fit-content;
    }

    .nav_logo {
        display: none;
    }

    .nav_menu {
        flex-direction: row;
        align-items: center;
        gap: 30px;
        margin-bottom: 0;
    }

    .nav_btn.tel, li.nav_btn.line, .nav_insta {
        display: none;
    }

    .nav_btns {
        flex-direction: row;
        align-items: center;
        gap: 10px;
    }

    .nav_menu_item a {
        color: #1D1D1E;
        font-size: 16px;
        font-style: normal;
        font-weight: 500;
        line-height: 1;
        letter-spacing: 0.8px;
    }

    .nav_btn.contact a {
        gap: 5px;
    }

    .nav_btn.download a {
        gap: 7px !important;
        background: #54BA55;
        color: #fff;
    }

    li.nav_btn.download a:hover {
        background-color: #fff;
        color: #54BA55;
    }

    li.nav_btn.download .nav_btn_icon {
        width: 15px;
        filter: invert(100%) sepia(100%) saturate(0%) hue-rotate(255deg) brightness(100%) contrast(105%)
    }

    .nav_btn.download a:hover .nav_btn_icon {
        filter: invert(100%) sepia(100%) saturate(2%) hue-rotate(202deg) brightness(106%) contrast(101%);
        filter: invert(65%) sepia(16%) saturate(1233%) hue-rotate(71deg) brightness(87%) contrast(94%);
    }

    .nav_btn.contact .nav_btn_icon {
        width: 22px;
    }

    .nav_btn a {
        width: fit-content;
    }

    .nav_btn.contact {
        display: block;
    }
}

.btns_fix {
    position: fixed;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 88%;
    /* max-height: 63px; */
    z-index: 2;
}

.btn_fix {
    position: relative;
}

.btn_fix .btn_img {
    transition: all .2s ease-out;

}

.btn_fix:hover .btn_img {
    filter: brightness(1.2);
}

.btn_fix span {
    position: absolute;
    z-index: 2;
}

.btn_fix img {
    max-height: 63px;
}

.btn_fix .icon_bird {
    display: inline-block;
    width: 55px;
    top: -25px;
    left: -20px;
}

.btn_fix .icon_flower {
    display: inline-block;
    width: 42px;
    right: -16px;
    bottom: -9px;
}

/*  -----------------------------
フッター
--------------------------------- */
.footer {
    padding: 0px 0 70px;
    background: #fff;
    position: relative;
}

.footer_logo {
    color: #54BA55;
    font-size: 20px;
    font-weight: 400;
    line-height: 1;
    letter-spacing: -2px;
    text-align: center;
    margin-bottom: 30px;
}

.footer_logo a {
    display: inline-block;
    width: 180px;
}

.footer_nav {
    display: grid;
    grid-template-columns: 130px 1fr;
    gap: 10%;
}

.footer_nav_list:first-of-type {
    min-width: 140px;
}

.footer_nav_link {
    color: #1D1D1E;
    font-family: "Zen Maru Gothic";
    font-size: 15px;
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0.75px;
    padding-left: 14px;
    position: relative;
    transition: all .2s ease-out;
}

.footer_nav_link:hover {
    opacity: .8;
}

.footer_nav_link::before {
    content: '';
    display: inline-block;
    width: 7px;
    height: 7px;
    aspect-ratio: 1/1;
    border-radius: 30px;
    background: #54BA55;
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
}

.footer_nav_childList {
    margin-top: 15px;
    padding-left: 14px;
    display: flex;
    padding-left: 14px;
    flex-direction: column;
    align-items: flex-start;
    gap: 15px;
    align-self: stretch;
}

.footer_nav_childLink {
    font-size: 12px;
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0.6px;
    transition: all .2s ease-out;

}

.footer_nav_childLink:hover {
    opacity: .8;
}

.footer_btns {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    flex: 1 0 0;
}

.footer_btn {
    position: relative;
    display: flex;
    padding: 0 10px 10px 10px;
    justify-content: space-between;
    align-items: center;
    align-self: stretch;

    font-size: 12px;
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0.6px;

    border-bottom: 1px solid #EFECE8;

    transition: all .2s ease-out;
}

.footer_btn_icon {
    display: flex;
    width: 30px;
    height: 30px;
    padding: 20px;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 10px;
    aspect-ratio: 1/1;
    border-radius: 50%;
    background: #54BA55;
    border: 1px solid #54BA55;
    transition: all .2s ease-out;
}

.footer_btn_icon img {
    width: 16px;
    filter: invert(100%) sepia(100%) saturate(0%) hue-rotate(255deg) brightness(100%) contrast(105%);
    transform: rotate(-40deg);
    transition: all .2s ease-out;
}

.footer_btn:hover .footer_btn_icon {
    background-color: transparent;

}

.footer_btn:hover .footer_btn_icon img {
    filter: invert(65%) sepia(16%) saturate(1233%) hue-rotate(71deg) brightness(87%) contrast(94%);

}

.footer_about {
    margin-top: 100px;
    margin-bottom: 50px;
}

.footer_about_title {
    color: #54BA55;
    font-size: 16px;
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0.8px;
    text-align: center;
    margin-bottom: 10px;
}

.footer_about_add {
    color: #7F7F7F;
    font-size: 12px;
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0.6px;
    margin-bottom: 5px;
    text-align: center;
}

.footer_about_tel {
    color: #7F7F7F;
    font-size: 12px;
    font-weight: 400;
    line-height: 1;
    /* 12px */
    letter-spacing: -1.2px;
    text-align: center;
}

.footer_copy {
    color: #fff;
    font-size: 10px;
    font-weight: 500;
    line-height: 1;
    letter-spacing: -1px;
    padding-top: 15px;
    padding-bottom: 25px;
    position: relative;
    z-index: 2;
    text-align: center;
}

.footer_bottom {
    position: absolute;
    bottom: -4px;
    left: 0;
    right: 0;
}

.footer_bottom img {
    height: 150px;
    display: block;
}

.footer_inner {
    position: relative;
}

.footer_tree_l, .footer_tree_r {
    position: absolute;
    z-index: 2;
}

.footer_tree_r {
    width: 29px;
    right: 0;
    bottom: 48px;
}

.footer_tree_l {
    width: 54px;
    left: 0;
    bottom: 58px;
}

.footer::before {
    position: absolute;
    top: -29px;
    left: 0;
    content: '';
    display: block;
    width: 100%;
    height: 30px;
    background-image: url(../img/common/bg_footer_top.webp);
    background-repeat: no-repeat;
    background-position: center;
    background-size: 100% 100%;
}

.footer_sun {
    position: absolute;
    width: 70px;
    right: 5%;
    top: -50px;
}

.insta_fix {
    display: none;
}

.feed {
    max-width: 840px;
}

.feed .sbi_photo_wrap {
    aspect-ratio: 142 /177;
}

.feed .sbi_photo {
    border-radius: 10px;
    overflow: hidden;
    height: 100% !important;
}

.feed .sbi_photo img {
    transition: all .2s ease-out;
}

.feed .sbi_photo:hover {
    filter: brightness(.8);
    opacity: 1 !important;
}

@media (min-width: 768px) {
    .btns_fix {
        left: auto;
        right: 0;
        bottom: 20px;
        transform: translate(0%);
        flex-direction: column;
        width: fit-content;
        width: 70px;
        justify-content: flex-start;

    }

    .btn_fix img {
        max-height: 100%;
    }

    .btn_fix .icon_flower {
        right: 0px;
        bottom: -27px;
    }

    .insta_fix {
        display: flex;
        position: fixed;

        display: flex;
        width: 70px;
        height: 70px;
        justify-content: center;
        align-items: center;
        gap: 14.286px;
        aspect-ratio: 1/1;
        left: 20px;
        bottom: 20px;
        border-radius: 50%;
        background: #fff;
        z-index: 2;

    }

    .insta_fix img {
        width: 35.714px;
        height: 34.562px;
        aspect-ratio: 31/30;
        transition: all .2s ease-out;

    }

    .insta_fix:hover img {
        opacity: .8;
    }

    .footer {
        padding-bottom: 0;
    }

    .footer_bottom img {
        bottom: 0;
    }

    .footer_bottom img {
        height: 123px;
    }

    .footer_about {
        margin-bottom: 100px;
    }

    .footer_nav {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 10px;
        max-width: 718px;
        margin-inline: auto;
    }

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

    .footer_about_add {
        font-size: 16px;
        margin-bottom: 10px;
    }

    .footer_about_tel {
        font-size: 16px;
    }

    .footer_copy {
        font-size: 12px;
    }

    .footer_btn_icon {
        width: 40px;
        height: 40px;
    }

    .footer_btns {
        grid-column: 1 / 4;
        width: 100%;
        max-width: 550px;
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 20px 100px;
        margin-inline: auto;
        margin-top: 70px;
    }

    .footer_btn {
        font-size: 16px;
    }

    .footer_btn.en {
        letter-spacing: -1.5px;

    }

    .footer_logo {
        font-size: 30px;
        font-weight: 400;
        line-height: 1;
        letter-spacing: -3px;
        margin-bottom: 80px;
    }

    .footer_logo a {
        width: 240px;
    }

    .footer::before {
        height: 90px;
        top: -90px;
    }

    .footer_nav_link {
        font-size: 18px;
        padding-left: 20px;
    }

    .footer_nav_link::before {
        width: 10px;
        height: 10px;
    }

    .footer_nav_childLink {
        font-size: 16px;
    }

    .footer_nav_childList {
        margin-top: 30px;
        gap: 20px;
    }

    .footer_tree_l {
        max-width: 175px;
        width: calc(175 /1080*100%);
    }

    .footer_tree_r {
        width: calc(94 /1080*100%);
        max-width: 94px;
    }

    .footer_sun {
        width: calc(200 / 1440 *100vw);
        max-width: 200px;
        top: -15%;
    }
}

/*  -----------------------------
トップページ
--------------------------------- */

/* mv */
.mv_inner {
    width: 92%;
    /* max-width: 1150px; */
    min-width: 354px;
    margin-inline: auto;
}



.mv_text {
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
    display: flex;
    flex-direction: column;
    justify-content: center;
    width: 100%;
    gap: 10px;
    color: #1D1D1E;
    font-feature-settings: 'vert'on;
    font-family: "Zen Maru Gothic";
    font-size: 22px;
    font-style: normal;
    font-weight: 500;
    line-height: 110%;
    margin-inline: auto;
    margin-bottom: 20px;
    letter-spacing: 0.1em;
}

.mv_text span:not(:last-child) {
    text-indent: -0.5em
}

/* =BEGIN iOS-gap-fallback=
   iOS Safari は writing-mode: vertical-rl + flex + gap の組み合わせで gap が
   正しく適用されない既知の挙動がある。gap を 0 にして物理プロパティの
   margin-left で同等の余白を作る(vertical-rl 下では margin-left = 次カラム方向)。
   ルビ列にかかる margin-right: -9px も新方式ではギャップを食うため 0 にリセット。
   不具合があれば =BEGIN〜=END のブロック(SP/PC 2箇所)を削除で復元可能 */
.mv_text {
    gap: 0 !important;
}

.mv_text span:not(:last-child) {
    margin-left: 10px;
}

.mv_text span:has(ruby) {
    margin-right: 0 !important;
}

/* =END iOS-gap-fallback= */

.mv_text span:has(ruby) {
    margin-right: -9px;
}

.mv_text ruby {
    ruby-align: center;
    ruby-position: over;
}

.mv_text rt {
    font-size: 0.5em;
    line-height: 1;
    font-size: 0.5em;
    line-height: 1;
    white-space: nowrap;
    /* margin-left: -8px; */
    margin-bottom: 0;
    font-size: clamp(9.41px, calc(9.41px + (16 - 9.41) * (100vw - 600px) / 360), 16px);
}

/* =BEGIN ruby-to-span=
   iOS Safari の ruby/rt レンダリング差異を避けるため、mv_text 内のふりがなを
   ruby/rt ではなく span 入れ子で実装。対応 HTML(front-page.php)は
   <span class="yomi">杜<span class="yomi_rt">もり</span></span>。
   元に戻す場合は HTML を <ruby>杜<rt>もり</rt></ruby> に戻し、このブロックを削除 */
.mv_text .yomi {
    position: relative;
    display: inline-block;
}

.mv_text .yomi_rt {
    position: absolute;
    top: 0;
    left: 100%;
    bottom: auto;
    transform: none;
    font-size: clamp(9.41px, calc(9.41px + (16 - 9.41) * (100vw - 600px) / 360), 16px);
    line-height: 1;
    white-space: nowrap;
    color: #54BA55;
    font-weight: 700;
}

/* =END ruby-to-span= */

.mv_deco {
    width: calc(136/354*100%);
    max-width: 215px;
    margin-left: auto;
}

@media (min-width: 768px) {
    .mv {
        padding-top: min(calc(90 / 1440 *100vw), 90px);
    }

    .mv_textBox {
        margin-bottom: auto;
        flex: 1;
    }

    .mv_inner {
        width: 83%;
        display: flex;
        flex-direction: row-reverse;
        position: relative;
        justify-content: space-between;
        gap: min(10%, 70px);
    }

    .mv_slider {
        width: calc(900 / 1440 *100vw);
        margin: initial;
        margin-left: 3%;
        overflow: visible;
    }

    .mv_deco {
        position: absolute;
        right: 0;
        bottom: 0px;
        transform: translateY(-100%);
        z-index: 2;
    }

    .mv_text {
        font-size: clamp(20px, calc(36 /1440 *100vw), 36px);
        line-height: 1.3;
        gap: 13px;
    }

    .mv_text span:has(ruby) {
        margin-right: 0px;
    }

    @supports (-webkit-hyphens:none) {
        rt {
            transform: translateY(12px);
        }

        .mv_text span:has(ruby) {
            margin-right: -7px;
        }
    }

    /* =BEGIN iOS-gap-fallback= */
    .mv_text {
        gap: 0 !important;
    }

    .mv_text span:not(:last-child) {
        margin-left: 13px;
    }

    .mv_text span:has(ruby) {
        margin-right: 0 !important;
    }

    /* =END iOS-gap-fallback= */

    .mv_text ruby {
        position: relative;
    }

    .mv_text rt {
        position: absolute;
        top: 0;
        right: -23%;

    }
}

@media (min-width: 960px) {
    .mv {
        min-height: 100vh;
    }

    .mv_inner {
        height: calc(100vh - 100px);
    }
}

.top_message {
    padding: 300px 0 210px;
    position: relative;
    overflow: hidden;
}

.top_message_text {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    align-self: stretch;
}

.top_message_text p {
    color: #1D1D1E;
    text-align: center;
    text-align: center;
    font-size: 15px;
    font-size: clamp(14px, calc(15 /414 *100vw), 15px);
    font-weight: 500;
    line-height: 200%;
    letter-spacing: 5%;
}

.top_message_img01 {
    position: absolute;
    width: 100px;
    top: 110px;
    right: 140px;
}

.top_message_img02 {
    position: absolute;
    width: 100px;
    bottom: 30px;
    left: 30px
}

.top_message_img03 {
    position: absolute;
    width: 166px;
    left: -7px;
    top: 125px;
}

.top_message_img04 {
    position: absolute;
    width: 170px;
    bottom: 30px;
    right: -5px;
}

@media (min-width: 768px) {
    .top_message_text p {
        font-size: clamp(16px, calc(24 /1440 *100vw), 24px);
    }

    .top_message_img01 {
        width: calc(160 /1440 *100vw);
        max-width: 160px;
        right: 170px;
    }

    .top_message_img02 {
        width: calc(170 /1440 *100vw);
        max-width: 170px;
        bottom: 0px;
        left: 19%;
        z-index: 2;
    }

    .top_message_img03 {
        width: calc(402 /1440 *100vw);
        max-width: 402px;
        left: -17px;
    }

    .top_message_img04 {
        width: calc(400 /1440 *100vw);
        max-width: 400px;
        right: -25px;
    }

    .top_message {
        padding-top: 150px;
        padding-bottom: 200px;
    }
}




.insta {
    padding: 50px 0;
    padding-bottom: 100px;
}

.insta_inner {
    display: flex;
    padding: 50px 30px;
    flex-direction: column;
    align-items: center;
    gap: 30px;
    align-self: stretch;
    border-radius: 50px;
    background: #fff;
    position: relative;
}



.insta_deco_top {
    width: 95px;
    position: absolute;
    top: -30px;
    right: 0;
}

.insta_deco_bottom {
    width: 100px;
    position: absolute;
    bottom: -22px;
    left: 11px;
}

.insta_text {
    color: #1D1D1E;
    text-align: center;
    font-family: "Zen Maru Gothic";
    font-size: 15px;
    font-style: normal;
    font-weight: 500;
    line-height: 1;
    /* 15px */
    letter-spacing: 0.75px;
}

.insta_text::after {
    content: '';
    display: block;
    margin-top: 5px;
    width: 100%;
    height: 7px;
    background-repeat: no-repeat;
    background-image: url("data:image/svg+xml,%3Csvg width='264' height='7' viewBox='0 0 264 7' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0.603516 3.49929C4.76225 0.104405 8.92098 0.104405 13.0797 3.49929C17.2384 6.89417 21.3972 6.89417 25.5559 3.49929C29.7146 0.104405 33.8734 0.104405 38.0321 3.49929C42.1908 6.89417 46.3495 6.89417 50.5083 3.49929C54.667 0.104405 58.8257 0.104405 62.9845 3.49929C67.1432 6.89417 71.3019 6.89417 75.4607 3.49929C79.6194 0.104405 83.7781 0.104405 87.9369 3.49929C92.0956 6.89417 96.2543 6.89417 100.413 3.49929C104.572 0.104405 108.73 0.104405 112.889 3.49929C117.048 6.89417 121.207 6.89417 125.365 3.49929C129.524 0.104404 133.683 0.10463 137.842 3.49951C142 6.89439 146.159 6.89439 150.318 3.49951C154.477 0.10463 158.635 0.10463 162.794 3.49951C166.953 6.89439 171.111 6.89439 175.27 3.49951C179.429 0.10463 183.588 0.10463 187.746 3.49951C191.905 6.89439 196.064 6.89439 200.223 3.49951C204.381 0.10463 208.54 0.10463 212.699 3.49951C216.857 6.89439 221.016 6.89439 225.175 3.49951C229.334 0.10463 233.492 0.10463 237.651 3.49951C241.81 6.89439 245.969 6.89439 250.127 3.49951C254.286 0.10463 258.445 0.10463 262.604 3.49951' stroke='%2354BA55' stroke-width='1.90962'/%3E%3C/svg%3E%0A");
    background-size: contain;
}

.insta_btn_wrap {
    width: 100%;
    max-width: 840px;
    display: flex;
    justify-content: flex-end;
}

.insta_inner .title_main {
    gap: 10px;
}

.insta_inner .title_main rt {
    font-size: clamp(10px, 1.5vw, 14px);
}

.dot {
    padding-top: .6em;
}

.dot .dot_char {
    position: relative;
    display: inline-block;
}

.dot .dot_char::before {
    content: "";
    position: absolute;
    top: -7px;
    left: 50%;
    transform: translateX(-50%);
    margin-bottom: .15em;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background-color: #54BA55;
}


@media (min-width: 768px) {
    .insta {
        padding-bottom: 276px;
        padding-top: 120px;
    }

    .insta_inner {
        gap: 50px;
    }

    .insta_text {
        font-size: 24px;
    }

    .insta_text::after {
        height: 11px;
        margin-top: 10px;
        background-image: url("data:image/svg+xml,%3Csvg width='414' height='11' viewBox='0 0 414 11' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0.949219 5.5C7.48255 0.166667 14.0159 0.166667 20.5492 5.5C27.0826 10.8333 33.6159 10.8333 40.1492 5.5C46.6826 0.166667 53.2159 0.166667 59.7492 5.5C66.2826 10.8333 72.8159 10.8333 79.3492 5.5C85.8826 0.166667 92.4159 0.166667 98.9492 5.5C105.483 10.8333 112.016 10.8333 118.549 5.5C125.083 0.166667 131.616 0.166667 138.149 5.5C144.683 10.8333 151.216 10.8333 157.749 5.5C164.283 0.166667 170.816 0.166667 177.349 5.5C183.883 10.8333 190.416 10.8333 196.949 5.5C203.483 0.166667 210.016 0.166667 216.549 5.5C223.083 10.8333 229.616 10.8333 236.149 5.5C242.683 0.166667 249.216 0.166667 255.749 5.5C262.283 10.8333 268.816 10.8333 275.349 5.5C281.883 0.166667 288.416 0.166667 294.949 5.5C301.483 10.8333 308.016 10.8333 314.549 5.5C321.083 0.166667 327.616 0.166667 334.149 5.5C340.683 10.8333 347.216 10.8333 353.749 5.5C360.283 0.166667 366.816 0.166667 373.349 5.5C379.883 10.8333 386.416 10.8333 392.949 5.5C399.483 0.166667 406.016 0.166667 412.549 5.5' stroke='%2354BA55' stroke-width='3'/%3E%3C/svg%3E%0A");
    }

    .insta_deco_top {
        width: 130px;
        right: 100px;
    }

    .insta_deco_bottom {
        width: 200px;
        left: 55px;
        bottom: -52px;
    }

    .dot .dot_char::before {
        width: 6px;
        height: 6px;
        top: -10px;
    }

}

.point {
    padding: 30px 0;
    background: #fff;
    position: relative;
}

.point::before, .point::after {
    position: absolute;
    content: '';
    display: block;
    width: 100%;
    background-repeat: no-repeat;
    background-size: 100% 100%;
    background-position: center;
}

.point::before {
    background-image: url(../img/common/bg_white_top.webp);
    top: 0;
    left: 0;
    right: 0;
    height: 46px;
    transform: translateY(-100%);
}

.point::after {
    background-image: url(../img/common/bg_white_bottom.webp);
    height: 35px;
    bottom: 0;
    left: 0;
    right: 0;
    transform: translateY(100%);
}

.point_inner {
    position: relative;
}

.point_flower {
    width: 70px;
    position: absolute;
    top: -50px;
    right: 0;
}

.point_trees {
    width: 130px;
    position: absolute;
    bottom: 0;
    left: 0;
    z-index: 2;
}

.point .title_type {
    margin-bottom: 50px;
}

.point_items {
    display: flex;
    flex-direction: column;
    gap: 30px;
    align-self: stretch;
    margin-bottom: 50px;
}

.point_item {
    display: flex;
    flex-direction: column;
    gap: 30px;
    padding: 0 0 30px;
    text-decoration: none;
    background-image: radial-gradient(#EFECE8 50%, transparent 50%);
    background-position: bottom;
    background-size: 13px 3px;
    background-repeat: repeat-x;
}

.point_item:last-child {
    background-image: none;
    padding-bottom: 0;
}

.point_item_title {
    color: #EE7423;
    font-family: "Zen Maru Gothic";
    font-size: 20px;
    font-style: normal;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 1px;
    display: flex;
    align-items: flex-start;
    gap: 10px;

    margin-bottom: 20px;
}

.point_item_title span {
    font-size: 20px;
    font-weight: 500;
    line-height: 1;
    letter-spacing: -2px;
}

.point_item_text {
    color: #1D1D1E;
    font-family: "Zen Maru Gothic";
    font-size: 15px;
    font-size: clamp(14px, calc(15 /414 *100vw), 15px);
    font-weight: 500;
    line-height: 200%;
    /* 30px */
    letter-spacing: 0.75px;
}

.point_bottom_text {
    margin-bottom: 50px;
    color: #EE7423;
    text-align: center;
    font-size: 16px;
    font-style: normal;
    font-weight: 500;
    line-height: 1.8;
    letter-spacing: 0.8px;
}

@media (min-width: 768px) {

    .point {
        padding-top: 162px;
        padding-bottom: 125px;
    }

    .point_items {
        gap: 50px;
    }

    .point_item {
        flex-direction: row;
        gap: calc(50 / 1040 *100%);
        align-items: center;
        padding-bottom: 70px;
    }

    .point_item:nth-of-type(even) {
        flex-direction: row-reverse;
    }

    .point_item_img {
        width: calc(467 / 1040 *100%);
    }

    .point_item_title {
        font-size: clamp(22px, calc(32 /1440 *100vw), 32px);
        margin-bottom: 30px;
    }

    .point_item_title span {
        font-size: clamp(22px, calc(32 /1440 *100vw), 32px);
    }

    .point_item_text {
        font-size: 18px;
    }

    .point_items {
        margin-bottom: 70px;
    }

    .point_bottom_text {
        text-align: center;
        font-size: 24px;
        font-weight: 500;
        line-height: 1.8;
        margin-bottom: 70px;
    }

    .point::before {
        height: 162px;
    }

    .point::after {
        height: 123px;
    }

    .point {
        padding-top: 0;
        padding-bottom: 0;
    }

    .point .title_type {
        width: fit-content;
        margin-left: auto;
    }

    .point_flower {
        top: -120px;
        right: 0;

    }

    .point_trees {
        width: 227px;
    }

    .point_item_content {
        width: calc(523 / 1040 *100%);
        max-width: 523px;
    }
}

@media (min-width: 1300px) {
    .point_flower {
        width: calc(125 / 1440 * 100vw);
        max-width: 125px;
        transform: translateX(100%);
    }
}

.suport {
    padding: 90px 0 100px;
}

.suport_title {
    margin-bottom: 30px;
}

.suport_inner {
    position: relative;
}

.suport_sun {
    width: 70px;
    position: absolute;
    top: 80px;
    right: 0;
}

.suport_img {
    max-width: 745px;
    margin-inline: auto;
    margin-bottom: 30px;
}

.suport_text {
    color: #1D1D1E;
    text-align: center;
    font-family: "Zen Maru Gothic";
    font-size: 15px;
    font-weight: 500;
    line-height: 1.8;
    margin-bottom: 30px;
}

@media (min-width: 768px) {
    .suport {
        padding-top: 273px;
        padding-bottom: 150px;
    }

    .suport_sun {
        width: 200px;
        top: 0;
    }

    .suport_title {
        margin-bottom: 50px;
    }

    .suport_img {
        margin-bottom: 50px;
    }

    .suport_text {
        font-size: 18px;
        margin-bottom: 50px;
    }
}

.top_news {
    padding: 100px 0;
}

.news_inner {
    display: flex;
    padding: 30px 20px 50px 20px;
    flex-direction: column;
    gap: 30px;
    align-self: stretch;
    border-radius: 30px;
    background: #fff;
    position: relative;
    margin-bottom: 20px;
}

.top_news_topdeco {
    width: 128px;
    position: absolute;
    top: -65px;
    right: 5px;
}

.top_news_deco {
    width: 80px;
    position: absolute;
    bottom: -80px;
    left: 30px;
}

.news_item_date {
    color: #1D1D1E;
    font-size: 12px;
    font-weight: 500;
    line-height: 1;
    letter-spacing: -1.2px;
}

.news_item_cates {
    display: flex;
    align-items: center;
    gap: 4px;
}

span.news_item_cate {
    display: flex;
    padding: 5px 20px;
    justify-content: center;
    align-items: center;
    gap: 10px;
    border-radius: 14px;
    border: 1px solid #54BA55;
    width: fit-content;
    color: #54BA55;
    font-family: "Zen Maru Gothic";
    font-size: 14px;
    font-style: normal;
    font-weight: 500;
    line-height: 1;
    /* 11px */
}

@media (max-width: 768px) {
    span.news_item_cate {
        font-size: 12px;
    }
}

.news_item_title {
    color: #1D1D1E;
    font-family: "Zen Maru Gothic";
    font-size: 14px;
    font-style: normal;
    font-weight: 500;
    line-height: 1;
    width: 100%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.news_item_link_inner {
    display: flex;
    align-items: center;
    gap: 30px;
}

.news_item_link {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    gap: 10px;
    align-self: stretch;
    padding-bottom: 20px;
    text-decoration: none;
    border-bottom: 1px solid #EFECE8;
    transition: all .3s;
}

.news_item:last-child .news_item_link {
    border-bottom: none;
    padding-bottom: 0;
}

.news_item_link:hover {
    opacity: .7;
}

.top_news_list {
    display: flex;
    flex-direction: column;
    gap: 20px;
    width: 100%;
}

@media (min-width: 768px) {
    .news_inner {
        flex-direction: row;
        gap: calc(100 / 940 *100%);
        padding: 50px;
        margin-bottom: 30px;
    }

    .top_news_title {
        flex-direction: column;
        -ms-writing-mode: tb-rl;
        writing-mode: vertical-rl;
        text-orientation: upright;
        flex-shrink: 0;
        align-items: flex-start;
        font-size: 24px;
        gap: 10px;
    }

    /* =BEGIN iOS-gap-fallback= */
    /* .top_news_title {
        gap: 0 !important;
    } */

    .top_news_title>span:not(:last-child) {
        margin-left: 10px;
    }

    /* =END iOS-gap-fallback= */

    .news_item_link {
        flex-direction: row;
        gap: 30px;
        padding-bottom: 30px;
    }

    .news_item_link_inner {
        flex-shrink: 0;
    }

    .news_item_date {
        font-size: 14px;
    }

    .news_item_cate {
        padding: 7px 20px;
        font-size: 14px;
    }

    .top_news_list {
        gap: 30px;
    }

    .news_item_title {
        font-size: 18px;
    }

    .top_news_topdeco {
        width: 170px;
    }

    .top_news_deco {
        width: 120px;
        left: 6%;
        bottom: -90px;
    }

    .top_news {
        padding-bottom: 260px;
        padding-top: 50px;
    }
}

.cta {
    padding: 50px 0px 200px 0px;
    background-image: url(../img/common/bg.webp);
    background-size: cover;
    position: relative;
    margin-bottom: -120px;
}

.cta::before {
    content: '';
    display: block;
    height: 46px;
    width: 100%;
    background-repeat: no-repeat;
    background-size: 100% 100%;
    background-image: url(../img/common/bg_green_sp.webp);

    position: absolute;
    top: 1px;
    left: 0;
    right: 0;
    transform: translateY(-100%);
}

.title_cta {
    color: #fff;
    font-size: 20px;
    font-weight: 500;
    line-height: 1;
    width: fit-content;
    padding-bottom: 10px;
    border-bottom: 2px solid #fff;
    margin-bottom: 20px;
}

.cta_text {
    color: #fff;
    font-size: 15px;
    font-weight: 500;
    line-height: 1.5;
    margin-bottom: 30px;
}

.cta_btn_title {
    color: #EE7423;
    text-align: center;
    font-family: "Zen Maru Gothic";
    font-size: 18px;
    font-style: normal;
    font-weight: 700;
    line-height: 1;

}

.cta_btn_text {
    color: #1D1D1E;
    text-align: center;
    font-size: 15px;
    font-weight: 500;
    line-height: 1.5;
}

.cta_btn {
    display: flex;
    height: 150px;
    padding: 0 30px;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 20px;
    align-self: stretch;
    border-radius: 100px;
    background: #fff;
    transition: all .3s;
    border: 5px solid #fff;
    box-sizing: border-box;
}

.cta_btn:hover {
    /* filter: brightness(1.1); */
    border: 5px solid #EFECE8;
}

.cta_btns {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    align-self: stretch;
    margin-bottom: 30px;
}

.cta .btn_circle {
    margin-inline: auto;
    color: #fff;
}

.cta .btn_circle_icon {
    border-color: #fff;
}

.cta .btn_circle:hover .btn_circle_icon {
    background-color: #FFF;
}

@media (min-width: 768px) {
    .cta::before {
        height: 164px;
        background-image: url(../img/common/bg_green.webp);

    }

    .title_cta {
        font-size: 36px;
        margin-bottom: 30px;
    }

    .cta_text {
        font-size: 20px;
        margin-bottom: 50px;
    }

    .cta_btns {
        flex-direction: row;
        justify-content: center;
        gap: 30px;
    }

    .cta_btn {
        flex: 1;
        gap: 20px;
        height: 200px;
        padding: 0 10px;
    }

    .cta_btn_title {
        font-size: 24px;
    }

    .cta_btn_text {
        font-size: clamp(13px, calc(18 /1440 *100vw), 18px);
    }

    .cta {
        margin-bottom: -50px;
    }

}


/*  -----------------------------
下層ページ共通パーツ
--------------------------------- */
.page_header {
    padding-top: 70px;
    padding-bottom: 130px;
}

.page_header .title_main span {
    text-transform: uppercase;
}

.page_content {
    padding-top: 50px;
    padding-bottom: 100px;
    background: #fff;
    position: relative;
}

.page_content#vision {
    z-index: 1;
}

.page_content::before, .page_content::after {
    position: absolute;
    content: '';
    display: block;
    width: 100%;
    background-repeat: no-repeat;
    background-size: 100% 100%;
    background-position: center;
}

.page_content::before {
    background-image: url(../img/common/bg_white_top.webp);
    top: 1px;
    left: 0;
    right: 0;
    height: 46px;
    transform: translateY(-100%);
}

.page_content::after {
    background-image: url(../img/common/bg_white_bottom.webp);
    height: 35px;
    bottom: 1px;
    left: 0;
    right: 0;
    transform: translateY(100%);
    z-index: -1;
}

.page_content .bird {
    width: 128px;
    position: absolute;
    top: -80px;
    right: 36px;
}


.page_content_bg_top img, .page_content_bg_bottom img {
    display: block;
    height: 100%;
}

.page_content_inner {
    position: relative;
}

.page_content_flower {
    width: 70px;
    position: absolute;
    top: -50px;
    right: 0;
}

.bg_green {
    background-image: url(../img/common/bg_deco.webp);
    background-size: calc(155 /441 *100%);
    background-repeat: no-repeat;
    background-position: top left;
}

@media (min-width: 768px) {
    .page_header {
        padding-top: 150px;
        padding-bottom: 212px;
    }


    .page_content::before {
        max-height: 162px;
        height: calc(162 / 1440 * 100vw);
    }

    .page_content::after {
        height: 123px;
    }

    .page_content {
        padding-top: 80px;
        padding-bottom: 80px;
    }

    .page_content .bird {
        width: calc(177 / 1440 *100vw);
        max-width: 177px;
        position: absolute;
        top: -215px;
        top: max(-215px, -15vw);
        right: 24%;
    }

    .bg_green {
        background-size: calc(445 /1440 *100vw);
        background-position: 0 -60px;
    }
}


/* お知らせ一覧 */
.news_paage_deco {
    position: absolute;
    bottom: -100px;
    left: 0;
    width: 70px;
}

.news_list {
    margin-bottom: 50px;
}

.pagination .nav-links {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.pagination .page-numbers {
    display: inline-block;
    width: 7px;
    height: 7px;
    background-color: #C9C9C9;
    border-radius: 50%;
    text-indent: -9999px;
    overflow: hidden;
    transition: background-color 0.3s;
}

/* 現在のページのドット */
.pagination .page-numbers.current {
    background-color: #7F7F7F;
}

/* 矢印ボタン（緑の丸） */
.pagination .prev, .pagination .next {
    width: 40px;
    height: 40px;
    background-color: #54BA55;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    text-indent: 0;
}

@media (min-width: 768px) {
    .pagination .prev, .pagination .next {
        width: 55px;
        height: 55px;
    }
}

/* 矢印（SVG） */
.prev-arrow::before, .next-arrow::before {
    content: '';
    display: block;
    width: 15px;
    height: 16px;
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}

.prev-arrow::before {
    background-image: url(../img/news/news-archive-pagenation-arrow-pre.svg);
}

.next-arrow::before {
    background-image: url(../img/news/news-archive-pagenation-arrow-next.svg);
}

.pagination .prev {
    margin-right: 5px;
}

.pagination .next {
    margin-left: 5px;
}

/* ホバー時の挙動 */
.pagination .page-numbers:hover:not(.current) {
    background-color: #999;
}

.news_bottom {
    padding-top: 80px;
    padding-bottom: 46px;
}

.news_bottom_inner {
    position: relative;
    margin-top: 30px;
}

.news_bottom_deco {
    width: 120px;
    margin-inline: auto;
}

.news_bottom_deco img {
    transform: rotate(27deg);
}

.news_slider_item {
    border-radius: 20px;
    overflow: hidden;
}

@media (min-width: 768px) {
    .news_bottom {
        padding-top: 270px;
        padding-bottom: 160px;
    }

    .news_bottom_deco {
        width: 180px;
    }

    .news_bottom_deco img {
        transform: rotate(0);
    }

    .news_bottom_inner {
        margin-top: 60px;
    }

    .pagination .nav-links {
        gap: 15px;
    }

    .pagination .page-numbers {
        width: 10px;
        height: 10px;
    }

    .pagination .prev, .pagination .next {
        width: 55px;
        height: 55px;
    }

    .news_list {
        margin-bottom: 70px;
    }

    .news_paage_deco {
        width: calc(125/1440*100vw);
        max-width: 125px;
        bottom: -120px;
        left: -7%;
        z-index: 2;
    }
}

/* お知らせ詳細 */

.single_title {
    color: #1D1D1E;
    font-size: 15px;
    font-weight: 500;
    line-height: 1.5;
    margin-bottom: 10px;

}

.single_header_date {
    color: #54BA55;
    text-align: center;
    font-family: "Lexend Zetta";
    font-size: 12px;
    font-style: normal;
    font-weight: 500;
    line-height: 1;
    /* 12px */
    letter-spacing: -1.2px;
}

.single_category_list {
    display: flex;
    gap: 4px;
    flex-wrap: wrap;
}

.single_category {
    display: flex;
    padding: 5px 15px;
    justify-content: center;
    align-items: center;
    gap: 10px;
    border-radius: 14px;
    border: 1px solid #54BA55;
    color: #54BA55;
    font-family: "Zen Maru Gothic";
    font-size: 12px;
    font-style: normal;
    font-weight: 500;
    line-height: 1;
    width: fit-content;
}

.single_header_inner {
    display: flex;
    align-items: center;
    gap: 10px;
}

.single_header {
    margin-bottom: 50px;
    margin-top: 70px;
}

.single_content_img {
    border-radius: 6px;
    overflow: hidden;
    margin-bottom: 50px;
}

h1.wp-block-heading {
    color: #1D1D1E;
    text-align: center;
    font-family: "Zen Maru Gothic";
    font-size: 20px;
    font-style: normal;
    font-weight: 500;
    padding: 0 10px 10px 10px;
    border-bottom: 2px solid #1D1D1E;
    width: fit-content;
    margin-bottom: 20px;
    margin-top: 40px;
}

h2.wp-block-heading {
    color: #3A3A3A;
    font-size: 18px;
    font-weight: 500;
    margin-bottom: 20px;
    margin-top: 30px;
}

h3.wp-block-heading {
    color: #3A3A3A;
    font-size: 16px;
    font-weight: 500;
    margin-bottom: 10px;
}

.wp-block-image img {
    border-radius: 10px;
    overflow: hidden;

}

.wp-block-image {
    margin-bottom: 20px;
}

.single_content_inner p {
    font-size: 14px;
    margin-bottom: 10px;
    line-height: 1.7;
}

.single {
    padding-bottom: 200px;
}

.single_content .btn_circle {
    margin-inline: auto;
}

.single_content .btn_circle_icon img {
    transform: rotate(180deg);
}

.single_content_inner {
    margin-bottom: 50px;
}

@media (min-width: 768px) {
    .single_title {
        font-size: 28px;
        margin-bottom: 20px;
    }

    .single_header_date {
        font-size: 16px;
    }

    .single_category {
        padding: 7px 20px;
        border-radius: 14px;
        font-size: 16px;
    }

    .single_header {
        margin-bottom: 100px;
        margin-top: 150px;
    }

    .single_content_img {
        margin-bottom: 100px;
    }

    .single_content_inner p {
        font-size: 16px;
    }

    h1.wp-block-heading {
        font-size: 36px;
        margin-bottom: 30px;
    }

    h2.wp-block-heading {
        font-size: 24px;
        margin-bottom: 30px;
        margin-bottom: 50px;
    }

    h3.wp-block-heading {
        font-size: 20px;
        margin-bottom: 20px;
    }


    .wp-block-image {
        margin-bottom: 30px;
    }
}

/*  -----------------------------
私たちについて
--------------------------------- */
.vision {
    padding-bottom: 30px;
}

.vision_inner {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 70px;
    align-self: stretch;
    position: relative;
}

.vision_img {
    position: relative;
}

.vision_deco_bottom {
    position: absolute;
    width: 30%;
    max-width: 108px;
    transform: rotate(30deg);
    right: 13%;
    bottom: -150px;
}

.vision .title_type {
    margin-bottom: 30px;
}

.vision_textWrap {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 20px;
    align-self: stretch;
}

.vision_textWrap p {
    color: #1D1D1E;
    font-size: 15px;
    font-style: normal;
    line-height: 1.8;
    font-weight: 500;

}

@media (min-width: 768px) {
    .vision {
        padding-bottom: 0;
    }

    .vision_inner {
        flex-direction: row;
        padding: 50px 0px 0 0px;
        justify-content: flex-end;
        align-items: flex-start;
        gap: 70px;
        align-self: stretch;
    }

    .vision_content {
        max-width: 467px;
    }

    .vision .title_type {
        margin-bottom: 50px;
    }

    .vision_textWrap {
        gap: 30px;
    }

    .vision_textWrap p {
        font-size: 16px;
    }

    .vision_deco_bottom {
        position: absolute;
        width: 30%;
        max-width: 147px;
        transform: rotate(18deg);
        right: 13%;
        bottom: -183px;
        z-index: 2;
    }

    .vision_img {
        margin-top: 50px;
        margin-left: -120px;
        width: calc(600 / 1040 *100%);
    }
}

/* メッセージ */
.message {
    padding-top: 135px;
    padding-bottom: 150px;
}

.message_title {
    margin-bottom: 30px;
}

.message_content {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 30px;
    align-self: stretch;
}

.message_text_wrap {
    display: flex;
    flex-direction: column;
    gap: 10px;
    align-self: stretch;
}

.message_text_wrap p {
    font-size: 15px;
    font-weight: 500;
    line-height: 1.8;
    letter-spacing: 0;

}

.message_name {
    display: flex;
    align-items: center;
    gap: 10px;
    color: #32364A;
    font-size: 15px;
    font-weight: 500;
    line-height: 1 !important;
}

.message_name span {
    font-size: 12px;
}

.message_name .green {
    color: #54BA55;
    letter-spacing: -.2em;
    line-height: 1;
    padding-top: 3px;
}

.message_img {
    max-width: 250px;
    margin-left: auto;
    border-radius: 20px;
    overflow: hidden;
}

.message_inner {
    position: relative;
}

.message_deco {
    position: absolute;
    width: 70px;
    top: -40px;
    right: 0;
}

@media (min-width: 768px) {
    .message {
        padding-top: 270px;
        padding-bottom: 310px;
    }

    .message_title {
        margin-bottom: 50px;
    }

    .message_content {
        flex-direction: row;
        gap: calc(100 / 1040 *100%);
    }

    .message_text_wrap {
        flex-basis: 540px;
        max-width: 540px;
        gap: 20px;
    }

    .message_text_wrap p {
        font-size: 16px;
    }

    .message_img {
        width: calc(400 / 1040 * 100%);
        max-width: 400px;
    }

    .message_name {
        font-size: 16px;
    }

    .message_name span {
        font-size: 14px;
    }

    .message_deco {
        width: calc(134 / 1040 *100%);
        max-width: 134px;
        right: 50%;
        top: -90px;
        transform: translateX(50%);
    }
}


/* 声 */
.voice {
    position: relative;
    padding-top: 80px;
    padding-bottom: 50px;
}

.voice_inner_deco_top {
    position: absolute;
    width: 70px;
    top: -100px;
    right: 0;
}

.voice_title {
    color: #1D1D1E;
    text-align: center;
    font-size: 20px;
    font-weight: 500;
    line-height: 1;
    margin-bottom: 50px;
}

.voice_title svg {
    margin-inline: auto;
    margin-top: 10px;
}

.voice_items {
    display: flex;
    flex-direction: column;
    align-self: stretch;
    max-width: 450px;
    margin-inline: auto;
}

.voice_item {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    align-self: stretch;
}

.voice_text {
    color: #1D1D1E;
    font-family: "Zen Maru Gothic";
    font-size: 15px;
    font-weight: 500;
    line-height: 1.66;
    margin-bottom: 5px;
    letter-spacing: 0;
}

.voice_nameBox {
    display: flex;
    align-items: center;
    gap: 3px;
    color: #54BA55;
    justify-content: flex-end;

}

.voice_name {
    font-size: 15px;
    line-height: 1;
    display: flex;
    align-items: center;
    gap: 3px;
    letter-spacing: 0;
    font-weight: normal;
}

.voice_name span {
    letter-spacing: -0.1em;
    font-weight: 400;
}

.voice_age {
    display: flex;
    align-items: baseline;
    /* gap: 2px; */
    letter-spacing: 0;
    font-weight: 500;
}

.voice_age span {
    letter-spacing: -0.1em;
    font-weight: 400;
}

.voice_item_content {
    background-size: 100% 100%;
    padding: 20px 30px 40px 30px;
    background-image: url(../img/about/voice_02_sp.webp);
}

.voice_item_img {
    width: 150px;
}

.voice_item:last-child {
    flex-direction: column-reverse;
    margin-top: -75px;
}

.voice_item:last-child .voice_item_img {
    margin-left: auto;
}

.voice_item:last-child .voice_item_content {
    padding: 40px 30px 20px 30px;
    background-image: url(../img/about/voice_01_sp.webp);
}

.voice_inner_deco_bottom {
    position: absolute;
    width: 100px;
    left: 0;
    bottom: -100px;
    z-index: 2;
}

@media (min-width: 768px) {
    .voice {
        padding-top: 70px;
    }

    .voice_title {
        font-size: 36px;
        width: fit-content;
        margin-inline: auto;
    }

    .voice_title svg {
        width: 100%;
        margin-top: 5px;
    }

    .voice_items {
        max-width: 100%;
        gap: 40px;
    }

    .voice_item {
        flex-direction: row-reverse;
        align-items: center;
        gap: 26px;
        justify-content: center;
    }

    .voice_item:last-child {
        flex-direction: row;
        margin-top: 0;
    }

    .voice_item_img {
        width: calc(300 /1040 *100%);
        max-width: 300px;

    }

    .voice_item:last-child .voice_item_img {
        margin-left: initial;
    }

    .voice_item_content {
        width: calc(700 / 1040 *100%);
        max-width: 700px;
        padding: 30px 50px 30px 80px;
        background-image: url(../img/about/voice_01.webp);
    }

    .voice_item:last-child .voice_item_content {
        padding: 30px 80px 30px 70px;
        background-image: url(../img/about/voice_02.webp);
    }

    .voice_text {
        font-size: 18px;
        margin-bottom: 10px;
    }

    .voice_name, .voice_age {
        font-size: 18px;
    }


    .voice_inner_deco_top {
        width: 200px;
        top: -170px;
        right: -10px;
    }

    .voice_inner_deco_bottom {
        width: 200px;
        bottom: -205px;
    }
}

/* スケジュール*/
.schedule {
    padding-top: 130px;
}

.schedule_title {
    align-items: center;
    margin-bottom: 30px;
}

.schedule_leadeText {
    text-align: center;
    font-size: 15px;
    font-weight: 500;
    line-height: 1.3;
    margin-bottom: 57px;
}

.schedule_wrapper {
    padding: 50px 30px 30px;
    background-image: url(../img/about/bg_schedule_sp.webp);
    background-size: 100% 100%;
    margin-bottom: 50px;
    position: relative;
}

.schedule_header_title {
    margin-bottom: 30px;
}

.schedule_deco_top {
    width: 95px;
    position: absolute;
    top: -20px;
    right: 0;
}

.schedule_list {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 30px;
    align-self: stretch;
    width: 86%;
    max-width: 656px;
    margin: auto;
}

.schedule_item {
    display: flex;
    align-items: flex-start;
    gap: 20px;
    align-self: stretch;
    position: relative;
    z-index: 1;
}

.schedule_item:not(:first-child) {
    align-items: center;
}

.schedule_time_visual {
    width: 40px;
    height: 40.004px;
    aspect-ratio: 40.00/40.00;
}

.schedule_content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    gap: 10px;
    flex: 1 0 0;
}

.schedule_time_title {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    color: #54BA55;
    font-family: "Zen Maru Gothic";
    font-size: 15px;
    font-style: normal;
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0.75px;
}

.schedule_time_title.flex_colum {
    flex-direction: column;
    row-gap: 5px;
    align-items: flex-start;
}

.schedule_time_label {
    font-size: 15px;
    font-weight: 400;
    line-height: 1;
    letter-spacing: -.1em;
    display: flex;
    align-items: center;
}

.schedule_time_label small {
    font-size: 12px;
    letter-spacing: -.1em;
}

.schedule_text {
    font-size: 14px;
    font-weight: 500;
    line-height: 1.5;
}

/* 中央を走る縦の点線 */
.schedule_list::before {
    content: "";
    position: absolute;
    left: 19px;
    top: 20px;
    width: 2px;
    height: 0;
    background-image: url(../img/about/border.png);
    background-size: 100%;
    background-repeat: repeat-y;

    transition: height 2s ease-out;
    overflow: hidden;
}

.schedule_list.is-active::before {
    height: calc(100% - 20px);
}

/* スライドの動き等速 */
.schedule_slider .swiper-wrapper,
.place_slider .swiper-wrapper, .news_slider .swiper-wrapper {
    transition-timing-function: linear;
}

.schedule_slider_item {
    border-radius: 9px;
    overflow: hidden;
}

@media (min-width: 768px) {
    .schedule {
        padding-top: 270px;
    }

    .schedule_title {
        margin-bottom: 50px;
    }

    .schedule_leadeText {
        font-size: clamp(18px, calc(24 /1440 *100vw), 24px);
        margin-bottom: 50px;

    }

    .schedule_wrapper {
        display: flex;
        flex-direction: row;
        gap: calc(100 / 1040 *100%);
        padding: 70px 116px;
        background-image: url(../img/about/bg_schedule.webp);

    }

    .schedule_header {
        flex: 1;
    }

    .schedule_header_title {
        flex-direction: column;
        -ms-writing-mode: tb-rl;
        writing-mode: vertical-rl;
        text-orientation: upright;
        flex-shrink: 0;
        align-items: flex-start;
        font-size: 24px;
        gap: 10px;
        white-space: nowrap;
    }

    /* =BEGIN iOS-gap-fallback= */
    .schedule_header_title {
        /* gap: 0 !important; */
    }

    .schedule_header_title>span:not(:last-child) {
        margin-left: 10px;
    }

    /* =END iOS-gap-fallback= */

    .schedule_item {
        gap: 40px;
        align-items: center;
    }

    .schedule_time_visual {
        width: 100px;
        height: 100.012px;
        aspect-ratio: 100.00/100.01;
    }

    .schedule_content {
        gap: 20px;
    }

    .schedule_time_title {
        font-size: 24px;
    }

    .schedule_time_label {
        font-size: 24px;
    }

    .schedule_time_label small {
        font-size: 18px;
    }

    .schedule_text {
        font-size: 16px;
    }

    .schedule_list {
        gap: 54px;
    }

    .schedule_list::before {
        left: 49px;
    }

    .schedule_deco_top {
        width: 130px;
        top: -5px;
        right: 16px;
    }

    .schedule_time_title.flex_colum {
        flex-direction: row;
    }
}

/* よくあるご質問 */
.faq {
    padding-top: 150px;
    padding-bottom: 100px;
}

.faq_inner {
    position: relative;
}

.faq_deco {
    width: 130px;
    position: absolute;
    top: -80px;
    right: 0;
}

.faq_title {
    margin-bottom: 30px;
}


.faq_item {
    background-color: #fff;
    margin-bottom: 15px;
    border-radius: 8px;
    overflow: hidden;
}

.faq_item:last-child {
    margin-bottom: 0;
}

/* 質問エリア */
.faq_question {
    width: 100%;
    display: flex;
    align-items: center;
    padding: 10px 20px;
    border: none;
    background: none;
    cursor: pointer;
    text-align: left;
    position: relative;
}

.faq_q_icon {
    font-family: "Lexend Zetta";
    color: #54BA55;
    font-weight: 400;
    font-size: 20px;
    margin-right: 10px;
    letter-spacing: -0.1em;
}

.faq_question_text {
    font-size: 15px;
    flex: 1;
    font-weight: 500;
    line-height: 1;
}

.faq_toggle_icon {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 16px;
    height: 10px;
    position: relative;
    transition: transform 0.3s ease;
}

.faq_question[aria-expanded="true"] .faq_toggle_icon {
    transform: rotate(180deg);
}

.faq_answer {
    height: 0;
    overflow: hidden;
    transition: height 0.3s ease;
}

.faq_answer_inner {
    padding: 0 20px 20px 20px;
    display: flex;
}

.faq_a_icon {
    font-family: "Lexend Zetta";
    color: #54BA55;
    font-weight: 400;
    font-size: 20px;
    margin-right: 10px;
    letter-spacing: -0.1em;
    flex-shrink: 0;
}

.faq_answer_text {
    font-size: 15px;
    flex: 1;
    font-weight: 500;
    line-height: 1.5;
}

@media (min-width: 768px) {
    .faq_deco {
        width: 227px;
        top: -27px;
        right: 0;
    }

    .faq_title {
        margin-bottom: 50px;
    }

    .faq_question {
        padding: 20px 50px;
    }

    .faq_q_icon {
        font-size: 28px;
    }

    .faq_question_text {
        font-size: 20px;
    }

    .faq_q_icon {
        font-size: 28px;
    }

    .faq_question_text {
        font-size: 20px;
    }

    .faq_answer_inner {
        padding: 0 24px 20px 50px;
    }

    .faq_a_icon {
        font-size: 28px;
    }

    .faq_answer_text {
        font-size: 20px;
    }

    .faq_toggle_icon {
        width: 20px;
    }

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

/* バナー */
.banner {
    padding-bottom: 60px;
}

.banner_inner {
    padding: 30px 20px 20px 20px;
    background-color: #fff;
    border-radius: 20px;
    max-width: 400px;
    margin-inline: auto;
}

.banner_title {
    margin-bottom: 20px;
}

.banner_img {
    margin-bottom: 10px;
    max-width: 215px;
}

.banner_text {
    font-size: 14px;
    font-weight: 500;
    line-height: 1.5;
    margin-bottom: 10px;
    letter-spacing: .5px;
}

.banner_text .orange {
    color: #EE7423;
}

span.btn_circle_icon.btn_circle_icon_orange {
    border-color: #EE7423;
    background-color: transparent;
}

span.btn_circle_icon.btn_circle_icon_orange img {
    filter: none;
}


.banner .btn_circle:hover span.btn_circle_icon.btn_circle_icon_orange {
    background-color: #EE7423;
}

.banner .btn_circle:hover .btn_circle_icon.btn_circle_icon_orange svg path {
    fill: #fff;
}

.banner_deco {
    width: 80px;
    margin-top: 40px;
    margin-inline: auto;
    transform: rotate(180deg);
}

.pc.btn_circle {
    display: none;
}

@media (min-width: 768px) {
    .banner {
        padding-top: 100px;
        padding-bottom: 140px;

    }

    .banner_inner {
        max-width: 1000px;
        margin-inline: auto;
        display: flex;
        align-items: center;
        gap: 70px;
        padding: 50px;
        border-radius: 20px;
        background: #fff;
    }

    .banner_title {
        white-space: nowrap;
        font-size: clamp(20px, calc(36 /1440 *100vw), 36px);
        margin-bottom: 40px;
    }

    a.pc.btn_circle {
        display: flex;
    }

    .banner_img {
        max-width: 448px;
        margin-bottom: 20px;
    }

    .banner_text {
        font-size: clamp(14px, calc(18 /1440 *100vw), 18px);
    }

    .banner_deco {
        margin-top: 112px;
        width: 140px;
        transform: rotate(0);
    }
}

/*  -----------------------------
求人ページ
--------------------------------- */
.place {
    padding-bottom: 50px;
}

.page_content.place::after {
    z-index: 2;
}

.place_title {
    margin-bottom: 30px;
}

.place_text {
    font-size: 15px;
    font-weight: 500;
    line-height: 1.8;
    margin-bottom: 50px;
}

.place_slider_item {
    border-radius: 9px;
    overflow: hidden;
}

.place_inner {
    position: relative;
}

.place_deco {
    width: 60px;
    position: absolute;
    right: 30px;
    top: -10px;
}

@media (min-width: 768px) {
    .place_title {
        margin-bottom: 50px;
    }

    .place_text {
        font-size: clamp(15px, calc(18 /1440 *100vw), 18px);
        margin-bottom: 70px;
    }

    .place_deco {
        width: calc(140 / 1040 *100%);
        max-width: 140px;
        position: absolute;
        right: 30px;
        top: -10px;
    }
}

/* 応募をご検討中の方へ */
.recruiter {
    padding-top: 130px;
    padding-bottom: 130px;
}

.recruiter_inner {
    position: relative;
}

.recruiter_deco {
    position: absolute;
    width: 70px;
    top: -50px;
    right: 0;
}

.recruiter_text {
    display: flex;
    flex-direction: column;
    gap: 20px;
    align-self: stretch;

    font-size: 15px;
    font-weight: 500;
    line-height: 1.8;
    letter-spacing: 0;
    margin-bottom: 30px;
}

.recruiter_img {
    max-width: 250px;
    border-radius: 20px;
    overflow: hidden;
    margin-left: auto;
}

.recruiter_deco_bottom {
    position: absolute;
    width: 130px;
    bottom: -80px;
    left: 0;
}

@media (min-width: 768px) {
    .recruiter {
        padding-top: 270px;
        padding-bottom: 300px;
    }

    .recruiter_deco {
        right: auto;
        left: 50%;
        top: -90px;
        transform: translateX(-50%);
        width: calc(125 /1040 *100%);
        max-width: 125px;

    }

    .recruiter_wrapper {
        display: flex;
        align-items: flex-start;
        gap: calc(100 / 1040 *100%);
        align-self: stretch;
        width: 100%;
    }

    .recruiter_text {
        font-size: 16px;
        width: calc(540 / 1040 *100%);
    }

    .recruiter_img {
        width: calc(400 / 1040 *100%);
        margin-left: initial;
        max-width: 400px;
    }

    .recruiter_deco_bottom {
        width: 227px;
        left: 10%;
    }
}

/* 写真で見る、ちとせの<ruby>杜<rt>もり</rt></ruby>の1日 */
.dairy_title {
    text-align: center;
    font-size: 20px;
    font-weight: 500;
    line-height: 1;
    margin: 15px 0 30px;
}

.dairy_title svg {
    display: block;
    width: fit-content;
    margin-inline: auto;
    margin-top: 6px;
}

.dairy_title svg.pc {
    display: none;
}

.dairy_title .dot {
    padding-top: 1em;
}

/* ルビの上にドットを出すため全ドットを同じ高さに揃える */
.dairy_title .dot_char::before {
    top: calc(-7px - 0.6em);
    margin-bottom: 16px;
}

.dairy {
    padding-top: 80px;
}

.dairy_inner {
    position: relative;
}

.dairy_title_wrapper {
        position: relative;
        max-width: 840px;
        margin: auto;
    }

.dairy_deco {
    width: 95px;
    position: absolute;
    right: 0;
    top: -95px;
}

.dairy_lead {
    text-align: center;
    font-size: 15px;
    font-weight: 500;
    line-height: 1.8;
    letter-spacing: 0;
    margin-bottom: 50px;
}

.dairy_list {
    display: grid;
    gap: 30px;
}

.dairy_time {
    display: flex;
    padding: 5px 20px;
    border-radius: 20px;
    background: #54BA55;
    justify-content: center;
    align-items: center;
    gap: 10px;
    color: #fff;
    font-size: 20px;
    font-weight: 400;
    line-height: 1;
    letter-spacing: -.01em;
    width: fit-content;
    margin-bottom: 15px;
    margin-inline: auto;
}

.dairy_time span {
    font-size: 15px;

}

.dairy_image {
    border-radius: 10px;
    overflow: hidden;
    margin-bottom: 15px;
}

.dairy_item_title {
    color: #54BA55;
    font-size: 18px;
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0.9px;
    margin-bottom: 10px;
    display: flex;
    align-items: center;
}

.dairy_item_title .small {
    font-size: 13px;
}

.dairy_text {
    color: #1D1D1E;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.5;
}

@media (min-width: 768px) {
    .dairy {
        padding-top: 50px;
        padding-bottom: 0px;
    }

    .dairy_title {
        font-size: 36px;
        margin-bottom: 50px;
    }

    .dairy_title svg.sp {
        display: none;
    }

    .dairy_title svg.pc {
        display: block;
    }

    .dairy_title .dot_char::before {
        top: calc(-10px - 0.6em);
    }

    .dairy_lead {
        font-size: 20px;
        margin-bottom: 70px;
    }

    .dairy_list {
        grid-template-columns: repeat(2, 1fr);
        gap: 50px;
    }

    .dairy_time {
        font-size: 24px;
        padding: 7px 30px;
        gap: 5px;
        margin-bottom: 30px;
    }

    .dairy_time span {
        font-size: 18px;
    }

    .dairy_image {
        margin-bottom: 20px;
    }

    .dairy_item_title {
        font-size: 20px;
        margin-bottom: 10px;
    }

    .dairy_item_title .small {
        font-size: 16px;
    }

    .dairy_text {
        font-size: 16px;
    }

    .dairy_deco {
        width: 130px;
    }
}

@media (min-width: 1100px) {
    .dairy_list {
        grid-template-columns: repeat(3, 1fr);
        gap: 50px;
    }
}

/* スタッフの声 */
.staffVoice {
    padding-top: 150px;
    padding-bottom: 0px;
}

.staffVoice_inner {
    position: relative;
}

.staffVoice_deco {
    position: absolute;
    width: 70px;
    right: 0;
    top: -70px;
}

.staffVoice_title {
    margin-bottom: 30px;
}

.staffVoice_conten {
    position: relative;
}

.staffVoice_list {
    padding: 50px 10px;
    background-image: url(../img/recruit/bg_voice.webp);
    background-size: 100% 100%;
    transition: .5s;
    max-width: 430px;
    margin: auto;
}

.staffVoice_item {
    min-width: 314px;
    margin-bottom: 30px;
    padding: 0 20px 30px;
    position: relative;
}

.staffVoice_item::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 5px;
    background-image: radial-gradient(#EFECE8 40%, transparent 40%);
    background-size: 18px 5px;
    background-repeat: repeat-x;
    width: 90%;
    margin: auto;
}

.staffVoice_item:last-child {
    padding-bottom: 0;
    margin-bottom: 0;
}

.staffVoice_item:last-child::after {
    content: none;
}

.staffVoice_item_title {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    color: #54BA55;
    font-size: 18px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0;
    margin-bottom: 15px;
}

.staffVoice_list span {
    color: #54BA55;
    font-size: 18px;
    font-weight: 500;
    line-height: 1;
    letter-spacing: -.01em;
}

.staffVoice_item_inner {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    align-self: stretch;
    list-style: none;
    padding-left: 0;
}

.staffVoice_item_inner li {
    color: #1D1D1E;
    font-family: "Zen Maru Gothic";
    font-size: 14px;
    font-style: normal;
    font-weight: 500;
    line-height: 1.5;

}

.staffVoice_img {
    width: 150px;
    position: relative;
    margin-left: auto;

}

.staffVoice_img_deco {
    width: 80px;
    position: absolute;
    left: -110px;
    top: 40px;
}

.staffVoice_img::after {
    content: '';
    display: inline-block;
    width: 209px;
    height: 6px;
    background-color: #54BA55;
    position: absolute;
    bottom: 0;
    right: 0px;
}

.staffVoice_deco_bottom {
    width: 80px;
    margin-top: 60px;
    margin-left: 60%;
}

@media (min-width: 768px) {
    .staffVoice {
        padding-top: 270px;
    }

    .staffVoice_deco {
        width: calc(200 /1440 *100vw);
        max-width: 200px;
        top: -80px;
    }

    .staffVoice_title {
        margin-bottom: 50px;
    }

    .staffVoice_conten {
        display: flex;
        padding: 0 calc(50 /940 *100%);
        align-items: flex-end;
        gap: 30px;
        max-width: 940px;
    }

    .staffVoice_list {
        padding: 70px 80px 70px 30px;
        width: calc(504 /800 *100%);
        max-width: 504px;
        margin: inherit;
        margin-bottom: 30px;
    }

    @media (min-width: 960px) {
        .staffVoice_list {
            padding: 70px 50px;
        }
    }

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

    .staffVoice_list span {
        font-size: 20px;
    }

    .staffVoice_item_inner {
        gap: 10px;
    }

    .staffVoice_item_inner li {
        font-size: 16px;
    }

    .staffVoice_item {
        padding-bottom: 50px;
        margin-bottom: 50px;
        padding: 0;
    }

    .staffVoice_img {
        width: calc(235 / 940 *100%);
        max-width: 235px;
    }

    .staffVoice_img::after {
        display: none;
    }

    .staffVoice_conten {
        border-bottom: 6px solid #54BA55;

    }

    .staffVoice_img_deco {
        width: 85px;
        left: -90px;
        top: 70px;
        transform: rotate(108deg);

    }

    .staffVoice_deco_bottom {
        width: 160px;
    }
}

/* 大切にしていること */
.cherish {
    padding-bottom: 100px;
}

.cherish_title {
    margin-bottom: 30px;
}

.cherish_container {
    max-width: 1200px;
    /* dairyより広く設定 */
    margin: 0 auto;
    padding: 0 20px;
}

/* 3列レイアウト */
.cherish_list {
    display: grid;
    grid-template-columns: repeat(1.1fr);
    gap: 30px;
    max-width: 354px;
    margin-inline: auto;
}

.cherish_item {
    position: relative;

}

/* 緑の円形コンテンツエリア */
.cherish_circle_content {
    width: 100%;
    display: flex;
    max-width: 250px;
    height: 228px;
    padding: 48px 0px 30px 0;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 27px;
    aspect-ratio: 125/114;
    /* 正方形（円形にするため） */

    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    color: #fff;
    background-image: url('../img/recruit/bg_circle.webp');
    /* 画像1のテクスチャ付き背景画像 */
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    margin-inline: auto;
    position: relative;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    /* 吹き出し表示時の若干の押し上げ効果 */
    cursor: pointer;
}

/* PC: ホバーアニメーション */
@media (min-width: 768px) {
    .cherish_circle_content:hover {
        transform: scale(1.05);
        filter: brightness(1.08);
    }

    .cherish_circle_content {
        max-width: inherit;
        height: 274px;
    }
}

/* SP: 軽い浮遊アニメーション */
@media (max-width: 767px) {
    .cherish_circle_content {
        animation: cherish_float 3s ease-in-out infinite;
    }

    .cherish_item.is_open .cherish_circle_content {
        animation: none;
    }
}

@keyframes cherish_float {
    0%, 100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-5px);
    }
}

/* 鳥の画像 */
.cherish_bird_top {
    position: absolute;
    top: 0px;
    right: 15px;
    width: 80px;
    z-index: 10;
}

.cherish_item:nth-child(2) .cherish_bird_top {
    right: auto;
    left: 15px;
}

/* 円形内のキャッチコピー */
.cherish_catch_text {
    color: #fff;
    text-align: center;
    font-size: 18px;
    font-weight: 500;
    line-height: 1.3;

    white-space: pre-wrap;
}

/* 円形内のボタン */
.cherish_toggle_btn {
    display: flex;
    padding: 5px 20px;
    justify-content: center;
    align-items: center;
    gap: 10px;
    border-radius: 50px;
    border: 1.5px solid #fff;

    color: #fff;
    font-size: 12px;
    font-weight: 500;
    line-height: 1;

    pointer-events: none;
}

/* 吹き出し部分（初期非表示） */
.cherish_details {
    display: none;
    width: 100%;
    padding-top: 20px;
    position: relative;
    z-index: 5;
}

/* 吹き出しの白い背景 */
.cherish_details_inner {
    background-repeat: no-repeat;
    background-image: url(../img/recruit/bg_cherish_sp.webp);
    background-size: 100% 100%;
    padding: 50px 30px 30px;
}

/* 吹き出し内の説明文 */
.cherish_desc_text {
    color: #1D1D1E;
    font-size: 15px;
    font-weight: 500;
    line-height: 1.66;
    letter-spacing: 0;
}

/* 展開時のCSS (JSでクラスを付与して制御) */
.cherish_item.is_open .cherish_details {
    display: block;
    animation: fadeInDown 0.5s ease;
    /* ふわっと表示 */
}

@keyframes fadeInDown {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (min-width: 768px) {
    .cherish {
        padding-bottom: 150px;
    }

    .cherish_title {
        margin-bottom: 76px;
    }

}

@media (min-width: 1000px) {
    .cherish_list {
        grid-template-columns: repeat(3, 1fr);
        max-width: 1000px;
        gap: 50px;
        position: relative;
    }

    .cherish_item {
        position: static;
    }

    .cherish_details {
        position: absolute;
        max-width: 540px;
    }

    .cherish_bird_top {
        transform: translateY(-30%);
        width: 100px;
    }

    .cherish_item:first-child .cherish_details {
        left: 55px;
    }

    .cherish_item:first-child .cherish_details_inner {
        background-image: url(../img/recruit/bg_cherish_01.webp);
    }

    .cherish_item:nth-child(2) .cherish_details {
        left: 23%;
    }

    .cherish_item:nth-child(2) .cherish_details_inner {
        background-image: url(../img/recruit/bg_cherish_02.webp);
    }

    .cherish_item:nth-child(3) .cherish_details {
        right: 50px;
    }

    .cherish_item:nth-child(3) .cherish_details_inner {
        background-image: url(../img/recruit/bg_cherish_03.webp);
    }

    .cherish:has(.cherish_item.is_open) {
        padding-bottom: 270px;
    }
}

/* 募集要項 */
.description {
    padding-top: 100px;
    padding-bottom: 45px;
}

.list_dot {
    list-style: '・';
    padding-left: 10px;
}

.list_dot small.left {
    position: relative;
    left: -10px;
}

.description_title {
    margin-bottom: 50px;
}

.description_wrap {
    position: relative;
    display: flex;
    padding: 50px 20px 30px 20px;
    flex-direction: column;
    gap: 20px;
    align-self: stretch;
    border-radius: 50px;
    background: #fff;
}

.description_deco {
    width: 128px;
    position: absolute;
    top: -49px;
    right: 15px;
}

.description_item {
    display: flex;
    padding: 20px 5px;
    align-items: center;
    gap: 30px;
    align-self: stretch;
    border-bottom: 1px solid #EFECE8;
}

.description_item dt {
    min-width: 67px;
    color: #54BA55;
    font-family: "Zen Maru Gothic";
    font-size: 14px;
    font-weight: 500;
    line-height: 1.3;

}

.description_item dd {
    color: #32364A;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.5;
}

.description_item dd ul {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    gap: 10px;
    flex: 1 0 0;
}

.description_item dd small {
    color: #1D1D1E;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.5;
    display: block;
}

.description_item dd small:not(:last-of-type) {
    margin-bottom: 5px;
}

.description_note {
    margin-top: 10px;
}

.recruit_process_list {
    counter-reset: process_counter;
}

.recruit_process_list li {
    position: relative;
    padding-left: 18px;
    margin-bottom: 8px;
    line-height: 1.6;
}

/* 疑似要素で「01.」を作成 */
.recruit_process_list li::before {
    counter-increment: process_counter;
    /* カウントアップ */
    content: counter(process_counter, decimal-leading-zero) ".";
    /* 0つき数字 + ドット */
    position: absolute;
    left: -2px;
    top: 0;
    font-weight: bold;
    color: #32364A;
}

.recruit_process_list small {
    font-size: 12px;
    white-space: nowrap;
}

.recruit_note {
    color: #1D1D1E;
    text-align: center;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.5;
}

.description_deco_bottom {
    width: 120px;
    margin-inline: auto;
    margin-top: 35px;
    margin-bottom: 35px;

}

.description_deco_bottom img {
    transform: rotate(27deg);
}

.description_item dd .grid_list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0px;
}

.description_item dd.grid_style {
    display: grid;
    gap: 5px;
}

@media (min-width: 1000px) {
    .description_deco {
        width: calc(177 / 1440 *100vw);
        max-width: 177px;
        top: -64px;
        right: 2%;
    }

    .description_wrap {
        padding-top: 50px;
        padding-bottom: 50px;
    }

    .description_list {
        width: 880px;
        margin-inline: auto;
    }

    .description_item {
        padding: 30px;
        gap: 100px;
    }

    .description_item dt {
        min-width: 101px;
        font-size: 16px;
    }

    .description_item dd {
        font-size: 16px;
        font-weight: 500;
        line-height: 1;

    }

    .description_item dd ul {
        gap: 16px;
    }

    .description_item dd.grid_style {
        gap: 20px;
    }

    .description_item dd.grid_style p:last-child {
        font-size: 14px;
    }

    .description_item dd .grid_list {
        grid-template-columns: repeat(4, 1fr);
        gap: 16px;
        margin-top: -10px;
    }

    .description_item dd small {
        font-size: 14px;
    }

    .list_dot small.left {
        display: inline-block;
        font-size: 16px;
        left: 0;
    }

    .mb_10 {
        margin-bottom: 10px;
    }

    .recruit_note {
        font-size: 16px;
        font-weight: 500;
    }

    .description_wrap {
        gap: 50px;
    }

    .description_deco_bottom img {
        transform: rotate(0);

    }

    .description_deco_bottom {
        margin-top: 110px;
        margin-bottom: 90px;
    }

    .recruit_process_list li {
        padding-left: 28px;
    }
}


/*  -----------------------------
施設・会社情報
--------------------------------- */
.facility_title {
    margin-bottom: 50px;
}

.company_item {
    display: flex;
    padding: 20px 5px;
    align-items: center;
    gap: 30px;
    align-self: stretch;
    border-bottom: 1px solid #EFECE8;
}

.company_item dt {
    min-width: 68px;
    color: #54BA55;
    font-family: "Zen Maru Gothic";
    font-size: 16px;
    font-weight: 500;
    line-height: 1.3;

}

.company_item dd {
    color: #32364A;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.5;
}

.company_map_link {
    display: flex;
    align-items: center;
    gap: 5px;
    margin-top: 10px;
    font-size: 11px;
    letter-spacing: -1.1px;
    transition: all .3s;
}

.company_map_link:hover {
    color: #7F7F7F;
}

.company_map_link::before {
    content: '';
    display: block;
    background-image: url(../img/icon/icon_map.svg);
    background-repeat: no-repeat;
    background-size: contain;
    background-position: bottom;
    width: 12px;
    height: 16px;
}

.company_map_link span {
    display: inline-block;
    padding-bottom: 2px;
    border-bottom: 1px solid #1D1D1E;
    font-weight: 400;
}

.company_list {
    margin-bottom: 50px;
}

.facility a.btn_circle.btn_download {
    margin-inline: auto;
}

.facility_deco {
    width: 100px;
    position: absolute;
    left: 0;
    bottom: -80px;
}

.company_item:nth-child(2) dd>.en {
    color: #1D1D1E;
    font-family: "Lexend Zetta";
    font-size: 16px;
    font-style: normal;
    font-weight: normal;
    line-height: 1;
    /* 16px */
    letter-spacing: -1.6px;
}

@media (min-width: 768px) {
    .company_item {
        padding: 30px;
        gap: 100px;
    }

    .company_item dt {
        width: 101px;
    }

    .company_map_link span {
        font-size: 14px;
    }

    .company_item:nth-child(2) dd {
        display: flex;
        align-items: center;
        gap: 20px;
    }

    .company_item:nth-child(2) dd>.en {
        display: inline-block;
        margin-left: -20px;
    }

    .company_map_link {
        margin-top: 0;
    }

    .company_list {
        margin-bottom: 70px;
    }

    .facility_deco {
        width: 200px;
        bottom: -100px;
        z-index: 2;
    }
}

/* 施設の様子 */
.institution {
    padding-top: 130px;
    padding-bottom: 50px;
}

.home_inner {
    position: relative;
}

.home_deco_bottom {
    position: absolute;
    width: 100px;
    right: 30px;
    bottom: -130px;
}

.home_deco_bottom img {
    transform: rotate(27deg);
}

.home_map {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    align-self: stretch;

}

.home_map_wrapper {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    align-self: stretch;
}

.home_map_text {
    color: #1D1D1E;
    text-align: center;
    font-size: 15px;
    font-style: normal;
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0;
}

.home_title {
    margin-bottom: 50px;
}

/* スライダー全体のコンテナ */
.home_slider {
    width: 100%;
    padding-bottom: 110px;
    overflow: visible;
}

/* 各スライドの基本スタイル */
.swiper-backface-hidden .swiper-slide.home_slider_item {
    transition: transform 0.3s ease, opacity 0.3s ease;
    transform: scale(0.8);
    box-sizing: border-box;
}

/* 画像のスタイル */
.home_slider_item img {
    width: 100%;
    height: auto;
    border-radius: 7px;
    display: block;
}

/* 中央（アクティブ）のスライドのスタイル */
.swiper-backface-hidden .swiper-slide.home_slider_item.swiper-slide-active {
    transform: scale(1);
}

/* --- ナビゲーション（下部エリア） --- */
/* ペイジネーション（ドット） */
.home_slider .swiper-pagination {
    bottom: 60px;
    left: 50%;
    transform: translateX(-50%);
    width: auto;
    display: flex;
    gap: 10px;
}

/* 通常のドット */
.home_slider .swiper-pagination-bullet {
    width: 7px;
    height: 7px;
    background-color: #C9C9C9;
    opacity: 1;
    margin: 0 !important;
}

/* アクティブなドット */
.home_slider .swiper-pagination-bullet-active {
    background-color: #7F7F7F;
}

/* ナビゲーションボタン（共通スタイル） */
.home_slider .swiper-button-prev,
.home_slider .swiper-button-next {
    width: 40px;
    height: 40px;
    background-color: #54BA55;
    border-radius: 50%;
    padding: 14px;
    top: auto;
    bottom: 45px;
    margin-top: 0;
    transition: background-color 0.3s;
}

.home_slider .swiper-button-prev:hover,
.home_slider .swiper-button-next:hover {
    background-color: #5aa358;
}

/* 矢印アイコンのサイズ調整 */
.home_slider .swiper-button-prev::after,
.home_slider .swiper-button-next::after {
    font-size: 20px;
    font-weight: bold;
}

.home_slider .swiper-button-prev {
    left: calc(50% - 100px);
}

.home_slider .swiper-button-next {
    right: calc(50% - 100px);
}

@media (min-width: 768px) {
    .institution {
        padding-top: 200px;
        padding-bottom: 150px;
    }

    .home_slider {
        padding-bottom: 155px;
    }

    .home_slider .swiper-button-prev,
    .home_slider .swiper-button-next {
        width: 55px;
        height: 55px;
        padding: 20px;
        bottom: 56px;
    }

    .home_slider .swiper-pagination-bullet {
        width: 10px;
        height: 10px;
    }

    .home_slider .swiper-pagination {
        gap: 15px;
        bottom: 78px;
    }

    .home_slider .swiper-button-next {
        right: calc(50% - 150px);
    }

    .home_slider .swiper-button-prev {
        left: calc(50% - 150px);
    }

    .home_map {
        gap: 20px;
    }

    .home_map_wrapper {
        gap: 10px;
    }

    .home_map_text {
        font-size: 20px;
        font-weight: 500;
        line-height: 1.24;
    }
}

/* アクセス */
.access {
    padding-top: 150px;
    padding-bottom: 150px;
}

.access_title {
    margin-bottom: 50px;
}

.access_item dt {
    display: flex;
    padding: 5px 20px;
    align-items: center;
    gap: 10px;
    border-radius: 20px;
    background: #fff;
    color: #54BA55;
    font-size: 15px;
    font-weight: 500;
    line-height: 1;
    width: fit-content;
    margin-bottom: 10px;
}

.access_item dd {
    font-family: "Zen Maru Gothic";
    font-size: 14px;
    font-weight: 500;
    line-height: 1.5;
}

.access_list {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 30px;
    align-self: stretch;
}

.access_list iframe {
    width: 100%;
    height: 100%;
    aspect-ratio: 5/2;
    margin-top: 30px;
    border-radius: 10px;
}

.access_inner {
    position: relative;
}

.access_deco {
    width: 70px;
    position: absolute;
    right: 34%;
    top: -100px;
}

.jp {
    font-family: "Zen Maru Gothic";
}



/* 会社概要 */
.outline_title {
    margin-bottom: 50px;
}

.overview_item {
    display: flex;
    padding: 20px 5px;
    align-items: center;
    gap: 30px;
    align-self: stretch;
    border-bottom: 1px solid #EFECE8;
    font-family: "Lexend Zetta", "Zen Maru Gothic", sans-serif;

}

.overview_item dt {
    min-width: 67px;
    color: #54BA55;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.3;

}

.overview_item dd {
    color: #32364A;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.5;
}

.overview_item dd .fw,
.access_item_inner .fw,
.company_item dd .fw {
    font-family: "Lexend Zetta", sans-serif;
    font-weight: 400;
    letter-spacing: -1px;
}

.outline_inner {
    position: relative;
}

.access_deco_bottom {
    width: 130px;
    position: absolute;
    bottom: -80px;
    left: 0;
}

.outline {
    margin-bottom: 80px;
}

@media (min-width: 768px) {
    .access_title {
        margin-bottom: 70px;
    }

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

    .access_item:first-child dd {
        display: flex;
        align-items: center;
        gap: 20px;
    }

    .access_item dd {
        font-size: 16px;
    }

    .access_item dt {
        padding: 7px 30px;
        align-items: center;
        font-size: 16px;
    }

    .access_item {
        width: 100%;
    }

    .access {
        padding-bottom: 300px;
    }

    .outline {
        padding-bottom: 170px;
        margin-bottom: 150px;
    }

    .outline_title {
        margin-bottom: 50px;
    }

    .overview_item dt {
        font-size: 16px;
        width: 101px;
    }

    .overview_item {
        gap: 100px;
    }

    .overview_item dd {
        font-size: 16px;
        align-items: center;

    }

    .overview_item dd .company_map_link {
        margin-left: 20px;
    }

    .access_deco_bottom {
        width: calc(227/1440 *100vw);
        max-width: 227px;
        bottom: -180px;
        z-index: 2;
    }

    .access_deco {
        width: calc(140 / 1440 *100vw);
        max-width: 140px;
        right: 17%;
        top: 0;
    }

    .home_deco_bottom {
        position: absolute;
        width: 150px;
        right: 40px;
        bottom: -330px;
    }

    .home_deco_bottom img {
        transform: rotate(210deg);
    }
}

@media (min-width: 960px) {
    .overview_item dd {
        display: flex;
    }
}

/*  -----------------------------
お問い合わせ
--------------------------------- */
.consultation_title {
    align-items: flex-start;
    margin-bottom: 15px;
}

.consultation_text {
    color: #1D1D1E;
    font-size: clamp(13px, calc(15 /414 *100vw), 14px);
    font-weight: 500;
    line-height: 2;
    margin-bottom: 30px;
}

.consultation_box_list {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    align-self: stretch;
    margin-bottom: 30px;
}

.consultation_box {
    display: flex;
    padding: 30px 20px;
    flex-direction: column;
    align-items: center;
    gap: 15px;
    align-self: stretch;
    border-radius: 20px;
    border: 8px solid #EFECE8;
    background: #FFF;
}

.consultation_box_title {
    color: #1D1D1E;
    text-align: center;
    font-size: 18px;
    font-weight: 500;
    line-height: 1;

}

.consultation_box_icon path {
    transition: all .3s;
}

.consultation_box .nav_btn a {
    border-radius: 30px;
    border: 2px solid #54BA55;
    background: #fff;
    transition: all .3s;
}

.consultation_box .nav_btn a svg {
    width: 25px;
}

.consultation_box .nav_btn a p,
.consultation_box .nav_btn a:hover p .en {
    transition: all .3s;
}

.consultation_box .nav_btn a:hover {
    background-color: #54BA55;
    color: #fff;
}

.consultation_box .nav_btn a:hover p {
    color: #fff;
}

.consultation_box .nav_btn a:hover p .en {
    color: #fff;
}

.consultation_box .nav_btn a:hover path {
    fill: #fff;
}

.consultation_box_text {
    color: #1D1D1E;
    text-align: center;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.3;
}

.consultation_inner {
    position: relative;
}

.consultation_deco {
    position: absolute;
    width: 130px;
    left: 0;
    bottom: -80px;
}

.consultation .btn_circle {
    margin-inline: auto;

}

.policy {
    padding-top: 130px;
    padding-bottom: 150px;
}

.policy_title {
    margin-bottom: 50px;
}

.policy_content {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 20px;
    align-self: stretch;
    max-width: 840px;
    margin-inline: auto;
}

.policy_content_inner {
    color: #1D1D1E;
    font-size: clamp(13px, calc(15 /414 *100vw), 15px);
    font-weight: 500;
    line-height: 1.5;

}

.policy_content_inner .dot_style {
    list-style: '・';
    padding-left: 14px;
    margin-top: 10px;
}

.policy_content_inner_title {
    position: relative;

    font-weight: 500;
    line-height: 1;
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 10px;
}

.policy_content_inner_title::before {
    content: '';
    display: inline-block;
    width: 10px;
    height: 10px;
    aspect-ratio: 1/1;
    border-radius: 50%;
    background-color: #54BA55;
}

.contact .footer_sun {
    display: none;
}

@media (min-width: 768px) {
    .consultation_title {
        margin-bottom: 30px;
    }

    .consultation_text {
        font-size: clamp(14px, calc(18 /1440 *100vw), 18px);
        margin-bottom: 50px;
    }

    .consultation_box {
        flex: 1;
        gap: 30px;
    }

    .consultation_box_title {
        font-size: 24px;
    }

    .consultation_box .nav_btn a {
        width: fit-content;
        padding: 10px 30px;
        border-width: 3px;
        height: 63px;
        border-radius: 100px;
        min-width: 248px;
    }

    .consultation_box .nav_btn.tel a svg {
        width: 37px;
    }

    .consultation_box .nav_btn.line a svg {
        width: 40px;
    }

    .consultation_box .nav_btn.tel {
        display: block;
    }

    .consultation_box .nav_btn.tel a {
        font-size: 24px !important;
    }

    .consultation_box .nav_btn.tel a span.en.ls_0 {
        font-weight: 400;
    }

    .consultation_box .nav_btn.line a {
        font-size: 24px;
    }

    .consultation_box .nav_btn.tel a p {
        font-size: 14px;
    }

    .consultation_box .nav_btn.tel a p .en {
        margin-left: 4px;
    }

    .consultation_box_text {
        font-size: clamp(12px, calc(16 /1440 *100vw), 16px);
    }

    .consultation_box .nav_btn.line .nav_btn_icon {
        width: 40px;
    }

    .consultation_deco {
        width: 225px;
    }

    .policy {
        padding-top: 300px;
        padding-bottom: 350px;
    }

    .policy_content {
        gap: 30px;
    }

    .policy_content_inner {
        font-size: 16px;
    }
}

@media (min-width: 960px) {
    .consultation_box_list {
        flex-direction: row;
        justify-content: center;
        align-items: flex-start;
        gap: 30px;
        margin-bottom: 50px;
    }
}

.fw_400 {
    font-weight: 400;
}

.ls_0 {
    letter-spacing: -0.1em;
}

.insta_title_en {
    margin-bottom: -7px;
}