@charset "UTF-8";
/* ==========================
common
============================= */
:root {
    --primary-green: #1F9F67;
    --primary-lightGreen: #F0F8EC;
    --primary-lowGreen: #DBEDD3;
    --primary-deepGreen: #20A35F;
    --primary-black: #333;
    --primary-white: #fff;
    --primary-gray: #D9D9D9;
    --primary-deepGray: #9C9C9C;
    --primary-loegray: #707070;
}

html {
    font-size: 62.5%;
}

body {
    font-family: "Noto Sans JP", sans-serif;
    font-style: normal;
    color: var(--primary-black, #333A3A);
    font-size: 1.4rem;
    line-height: 1.2;
}

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

.section {
    padding: 60px 4.2%;
}

.txt {
    line-height: 1.8;
    letter-spacing: 0.04em;
    margin-bottom: 32px;
}

.topic {
    color: var(--primary-green, #1F9F67);
    line-height: 1;
    font-size: 3.2rem;
    letter-spacing: 0.05em;
    font-weight: 700;
    font-family: "Figtree", sans-serif;
    margin-bottom: 40px;
}

.subTopic {
    margin-bottom: 4px;
}

.logo__img {
    width: 180px;
    height: inherit;
}

.sp__none {
    display: none;
}

.btn__none {
    display: none;
}

@media screen and (min-width: 769px) {
    body {
    font-size: 1.6rem;
    line-height: 1.4;
    }

    .section {
    padding: 120px 4.2%;
    }

    .topic {
    font-size: 6rem;
    }

    .txt {
        margin-bottom: 64px;
    }

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

    .logo__img {
        width: 232px;
    }

    .sp__none {
        display: block;
    } 

    .pc__none {
        display: none;
    }

    .about__section,
    .news__content,
    .contact__content{
        max-width: 1440px;
        margin: 0 auto;
}
}
/* ==========================
btn
============================= */
.about__btn {
    background-color: var(--primary-green, #1F9F67);
    width: 200px;
    height: 40px;
    color: #fff;
    display: flex;
    border-radius: 100vh;
    align-items: center;
    padding-left: 12px;
    padding-right: 12px;
    justify-content: space-between;
    margin-top: 32px;
    border: 2px solid transparent;
    position: relative;
    overflow: hidden;
    transition: color 0.4s, border-color 0.4s;
}

.about__btn::before {
    content: "";
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background-color: #ffffff;
    transition: all 0.4s ease;
    z-index: 0;
}

.about__btn:hover::before {
    left: 0;
}

.about__btn span {
    position: relative;
    z-index: 1;
    transition: color 0.4s;
}

.about__btn:hover {
    border-color: #1F9F67;
}

.about__btn:hover span {
    color: #1F9F67;
}

.about__btn .btn__text {
    position: relative;
    z-index: 1;
    transition: color 0.4s;
}

/* ボタン内の丸 */
.btn__circle {
    display: block;
    background-color: var(--primary-white, #fff);
    width: 24px;
    height: 24px;
    border-radius: 100vh;
    position: relative;
    transition: background-color 0.4s;
}

.btn__circle::before {
    content: "";
    background: var(--primary-green, #1F9F67);
    width: 8px;
    height: 2px;
    display: block;
    border-radius: 100vh;
    margin: auto;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    transition: background-color 0.4s;
}

.btn__circle::after {
    content: "";
    width: 6px;
    height: 6px;
    border-top: 2px solid #1F9F67;
    border-right: 2px solid #1F9F67;
    border-left: 0;
    border-bottom: 0;
    position: absolute;
    top: 38%;
    right: 6px;
    transform: rotate(45deg);
    margin: auto;
    transition: border-color 0.4s;
}

.about__btn:hover .btn__circle {
    background-color: #1F9F67;
}

.about__btn:hover .btn__circle::before {
    background-color: #ffffff;
}

.about__btn:hover .btn__circle::after {
    border-top-color: #ffffff;
    border-right-color: #ffffff;
}

.contact__btn {
    background-color: #fff;
    width: 200px;
    height: 40px;
    color: #1F9F67;
    display: flex;
    border-radius: 100vh;
    align-items: center;
    padding-left: 12px;
    padding-right: 12px;
    justify-content: space-between;
    border: 2px solid #fff;
    position: relative;
    overflow: hidden;
}

.contact__btn::before {
    content: "";
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background-color: #1F9F67;
    transition: transform 0.4s ease;
    z-index: 0;
}

.contact__btn:hover::before {
    transform: translateX(100%);
}

.contact__btn .btn__text {
    position: relative;
    z-index: 1;
    transition: color 0.4s;
}

.contact__btn:hover .btn__text {
    color: #fff;
}

/* 丸のデザイン */
.green__circle {
    display: block;
    background-color: #1F9F67;
    width: 24px;
    height: 24px;
    border-radius: 100vh;
    position: relative;
    transition: background-color 0.4s;
    z-index: 1;
}

.green__circle::before {
    content: "";
    background: #fff;
    width: 8px;
    height: 2px;
    display: block;
    border-radius: 100vh;
    margin: auto;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    transition: background-color 0.4s;
}

.green__circle::after {
    content: "";
    display: block;
    width: 6px;
    height: 6px;
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
    border-left: 0;
    border-bottom: 0;
    position: absolute;
    top: 37%;
    right: 6px;
    transform: rotate(45deg);
    margin: auto;
    transition: border-color 0.4s;
}

.contact__btn:hover .green__circle {
    background-color: #fff;
}

.contact__btn:hover .green__circle::before {
    background-color: #1F9F67;
}

.contact__btn:hover .green__circle::after {
    border-top-color: #1F9F67;
    border-right-color: #1F9F67;
}

.small__btn {
    display: inline-flex;
    align-items: center;
}

.btn__bg {
    display: inline-block;
    background-color: var(--primary-green, #1F9F67);
    width: 24px;
    height: 24px;
    border-radius: 100vh;
    vertical-align: middle;
    margin-left: 16px;
    transition: transform 0.4s ease, width 0.4s ease, height 0.4s ease;
    /* transformアニメでふわりと */
}

.small__btn:hover .btn__bg {
    transform: scale(1.25); /* 24px × 1.25 = 30px相当 */
}


.btn__bg::before {
    content: "";
    background: var(--primary-white, #fff);
    width: 8px;
    height: 2px;
    display: block;
    border-radius: 100vh;
    margin: auto;
    position: relative;
    top: 50%;
    transform: translateY(-50%);
}

.btn__bg::after {
    content: "";
    display: block;
    width: 6px;
    height: 6px;
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
    border-left: 0;
    border-bottom: 0;
    border-radius: 0px;
    position: relative;
    transform: rotate(45deg);
    top: 30%;
    right: -1px;
    margin: auto;
}

.contact-btn {
    position: relative;
    overflow: hidden;
    background-color: #1F9F67;
    color: #fff;
    width: 120px;
    height: 32px;
    display: block;
    border-radius: 100vh;
    text-align: center;
    line-height: 32px;
}

.contact-btn::after {
    content: "";
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background-color: #55BA8E;
    transition: left 0.5s ease;
    z-index: 0;
}

.contact-btn:hover::after {
    left: 0;
}

.contact-btn span {
    position: relative;
    z-index: 1;
}
@media screen and (min-width: 769px) {
    .about__btn,
    .contact__btn{
        width: 272px;
        height: 56px;
        margin-top: 0;
        padding-left: 16px;
        padding-right: 16px;
    }

    .contact-btn {
        width: 140px;
        height: 32px;
        font-weight: 600;
        font-size: 1.5rem;
    }

    .btn__bg {
        width: 32px;
        height: 32px;
    }

    .btn__bg::after {
        top: 34%;
    }

    .contact-btn span {
        font-size: 1.4rem;
        letter-spacing: 0.08em;
        display: block;
        align-content: center;
    }

    .btn{
        width: 100%;
        min-height: 60px;
        display: flex;
        justify-content: space-between;
        align-items: center;
        position: relative;
        padding: 10px 20px;
        border: 1px solid;
        color: white;
    }

    .btn::after{
        content: '';
        display: inline-block;
        width: 25px;
        height: 25px;
        background-image: url(./arrow-right.svg);
        background-size: contain;
        background-repeat: no-repeat;
    }
}

@media screen and (min-width: 1080px) {
    .contact-btn {
        width: 160px;
        height: 32px;
        font-weight: 600;
    }
}

/* ==========================
header
============================= */
.header {
    background-color: var(--primary-white, #fff);
    position: fixed;
    top: 0;
    left: 0;
    z-index: 10000;
    border-bottom: solid 1px #cdcdcd;
    height: inherit;
}

.nav {
    height: inherit;
}

.nav__header {
    width: 100vw;
}

.nav__content {
    display: flex;
    justify-content: space-between;
    padding: 16px;
    align-items: center;
}

.openBtn,
.closeBtn {
    width: 20px;
    height: 20px;
    position: relative;
}

.openBtn span,
.closeBtn span {
    display: inline-block;
    width: 20px;
    height: 2px;
    background-color: var(--primary-green, #1F9F67);
    position: absolute;
    transition: all 0.4s;
}

.openBtn span:nth-of-type(1) {
    bottom: 3px;
}

.openBtn span:nth-of-type(2) {
    bottom: 8px;
}

.openBtn span:nth-of-type(3) {
    bottom: 13px;
}

.closeBtn span:nth-of-type(1) {
    bottom: 8px;
    transform: rotate(45deg);
}

.closeBtn span:nth-of-type(2) {
    bottom: 8px;
    transform: rotate(-45deg);
}

.nav__wrap {
    position: absolute;
    top: 0;
    left: -100%;
    width: 100vw;
    height: 100vh;
    background-color: #fff;
    display: block;
    transition: 0.8s ease;
    z-index: 1000;
    pointer-events: none;
}

.nav__wrap.active {
    left: 0;
    pointer-events: auto;
}

.menu__conteinar {
    padding: 32px 4.2%;
    display: flex;
    flex-direction: column;
    gap: 36px;
}

.menu__list {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: 20px 8px 0;
    color: #707070;
}

.menu__topic {
    font-size: 1.8rem;
    font-weight: 500;
}

@media screen and (min-width: 769px) {
    .header__box {
        display: flex;
        justify-content: space-between;
        width: 100vw;
        padding: 20px 4%;
        align-items: center;
    }

    .nav__menu {
        display: flex;
        gap: 32px;
        align-items: center;
        font-size: 1.4rem;
    }

    .nav__item--service {
    position: relative;
    }

    .nav__icon {
        position: relative;
        display: inline-block;
        padding-left: 4px;
        top: -2px;
        font-size: 1rem;
    }

    .dropdown {
        position: absolute;
        top: -20px;
        left: -54%;
        width: 140px;
        background: #f1f7ef; /* 薄い緑 */
        overflow: hidden;
        height: 0;
        transition: height 0.4s ease;
        font-size: 1.2rem;
        text-align: center;
        border-radius: 8px;
    }

    .dropdown__menu {
        padding: 20px 10px;
    }

    .dropdown__menu li {
        margin-bottom: 10px;
    }

    .dropdown__title {
        font-size: 1.5rem;
        margin-bottom: 16px;
    }

    .nav__item--service:hover .dropdown {
        height: 160px; /* 中身の高さに応じて調整 */
    }
    
    a {
        position: relative;
        text-decoration: none;
        color: inherit; 
    }

    /* 疑似要素でアンダーラインを作成 */
    .nav__item a::after,
    .footer__content a::after  {
        content: "";
        position: absolute;
        left: 0;
        bottom: 0;
        width: 0%;
        height: 1px;
        background-color: #333; /* 線の色 */
        transition: width 0.4s ease, left 0.4s ease;
    }

    /* ホバー時のアニメーション */
    .nav__item a:hover::after,
    .footer__content a:hover::after {
        width: 100%;
        left: 0;
    }

    /* ホバー解除時に左に戻るアニメーション */
    .nav__item a:not(:hover)::after,
    .footer__content a:not(:hover)::after {
        left: 0;
    }
}

@media screen and (min-width: 1080px) {
    .nav__menu {
        gap: 40px;
    }
}
/* ==========================
fv
============================= */
.fv__img--right {
    width: 40%;
    position: relative;
    top: -40px;
    left: -50px;
    transform: rotate(-180deg);
}

.fv__content {
    padding: 0 4.2% 54px;
}

.mainCopy {
    font-size: 32px;
    font-weight: 600;
    margin-bottom: 12px;
}

.sub-text {
    color: var(--primary-green, #1F9F67);
}

.treat__box {
    position: relative;
}

.treat__item {
    position: absolute;
    bottom: 110px;
    right: 0px;
    width: 60%;
    z-index: -1;
}

.treat__card {
    position: relative;
    bottom: -50px;
}

.main__content {
    margin-top: 50px;
}

.blur{
	animation-name:blurAnime;
	animation-duration:2s;
	animation-fill-mode:forwards;
}

@keyframes blurAnime{
    from {
        filter: blur(10px);
        transform: scale(1.02);
        opacity: 0;
    }

    to {
        filter: blur(0);
        transform: scale(1);
        opacity: 1;
    }
}

.blurTrigger{
    opacity: 0;
}

@media screen and (min-width: 375px) {
    .treat__item {
        bottom: 160px;
    }

}

@media screen and (min-width: 480px) {
    .treat__item {
        bottom: 200px;
    }
}

@media screen and (min-width: 620px) {
    .treat__item {
        bottom: 280px;
    }

    .mainCopy {
        font-size: 4rem;
    }

    .fv__img--right {
        top: -72px;
    }
}

@media screen and (min-width: 769px) {
    .fv__img--right {
    width: 40%;
    top: -160px;
    left: -160px;
    }

    .mainCopy {
    font-size: 5.4rem;
    margin-top: -140px;
    }

    .fv__content {
        position: relative;
    }

    .sub-text {
        position: absolute;
        left: 392px;
        bottom: 70px;
        font-size: 2.2rem;
    }

    .treat__item {
        bottom: 94px;
        width: 50%;
    }
}

@media screen and (min-width: 1080px) {
    .treat__item {
        bottom: 200px;
    }
}

@media screen and (min-width: 1440px) {
        .sub-text {
        left: 420px;
    }

        .treat__item {
        bottom: 240px;
    }
}
/* ==========================
about
============================= */
.about,
.news,
.contact {
    background-color: var(--primary-lightGreen, #F0F8EC);
}

.news,
.contact {
    position: relative;
}

.about__section {
    padding: 80px 4.2% 40px;
    max-width: 1440px;
    margin: 0 auto;
}

.about__subTopic {
    color: var(--primary-green, #1F9F67);
    margin-bottom: 8px;
}

.about__topic {
    font-size: 2.4rem;
    font-weight: 500;
    margin-bottom: 32px;
}

.treat__txt {
    color: var(--primary-lowGreen, #DBEDD3);
    font-size: 3rem;
    font-family: "Figtree", sans-serif;
    font-weight: 800;
    letter-spacing: 0.05em;
}

.about-graph {
    border-radius: 8px;
    margin-bottom: 32px;
}

.scroll-list {
    display: flex;
    list-style: none;
    padding-inline: 0;
    margin-inline: 0;
    gap: 0;
    overflow: hidden;
}

.scroll-list li {
    color: #D1EBD8;
    font-size: 3em;
    font-weight: bold;
    white-space: nowrap;
    padding: 0 0.5em 0 0;
    margin: 0;
    animation: marquee-left 32s linear infinite;
    margin-bottom: 80px;
}

@keyframes marquee-left {
    100% {
        transform: translateX(-100%);
    }
}

@media screen and (min-width: 769px) {
    .about__section {
        display: flex;
        gap: 10vw;
        align-items: center;
    }

    .about__section {
        padding: 120px 4.2% 50px;
    }

    .about__content {
        width: 90%;
    }

    .about-graph {
        margin-bottom: 0;
    }

    .about__topic {
        font-size: 3rem;
        margin-bottom: 40px;
    }

    .scroll-list li {
        margin-bottom: 160px;
        font-size: 12rem;
    }

    
    .js-scroll-overlap:not(.is-disabled) {
        --sticky-offset: -1px;
        position: sticky;
        top: var(--sticky-offset);
    }
}

@media screen and (min-width: 769px) {
    .about__topic {
        font-size: 4rem;
    }
}
/* ==========================
service
============================= */
.service__section {
    padding: 0 4.2% 60px;
    position: relative;
    z-index: 10;
    margin-top: -40px;
    background: #fff;
}

.service__bg,
.footer__section {
    position: relative;
    top: -36px;
    z-index: 0;
}

.service__topic {
    text-align: center;
}

.service__item {
    display: flex;
    justify-content: space-between;
    padding-bottom: 24px;
    border-bottom: 1px solid #D9D9D9;
    margin-bottom: 24px;
    align-items: flex-end;
}

.service__title {
    font-size: 1.8rem;
    font-weight: 500;
}

.service__num {
    font-family: "Figtree", sans-serif;
    font-weight: 600;
}

.service__num::before {
    content: "";
    width: 6px;
    height: 6px;
    display: inline-block;
    background-color: var(--primary-green, #1F9F67);
    border-radius: 100vh;
    margin-right: 4px;
    position: relative;
    top: 50%;
    transform: translateY(-30%);
}

.service__panel {
    position: static;       /* 通常のフローに戻す */
    transform: none;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    margin-bottom: 80px;
    }

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

.service__wrap {
    display: flex;
    justify-content: right;
    margin-bottom: 32px;
}

.service__img {
    width: 80vw;
    margin: 0 auto;
}

.service__txt {
    line-height: 1.8;
    letter-spacing: 0.04em;
    margin-bottom: 32px;
}

@media screen and (min-width: 500px) {
    .service__bg,
    .footer__section {
        top: -40px;
    }
}

@media screen and (min-width: 769px) {
    .service__step {
        display: flex;
        align-items: center;
        gap: 10vw;
    }

    .service__bg {
        top: -100px;
    }

    .service__section {
        margin-top: -22vh;
        padding: 0 6.4%;
    }

    .service__inner {
        max-width: 900px;
        width: 100%;
        height: 100vh;
        display: flex;
        align-items: center;
        margin: 0 auto;
    }

    .service__area{
        width: 100%;
        height: 100%;
        position: relative;
        padding-top: 74px;
    }

    .service__panel {
        width: 100%;
        display: flex;
        gap: 4vw;
        align-items: center;
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%,-50%);
        opacity: 0;
        visibility: hidden;
        position: static; /* スマホでは普通に縦積み表示 */
        transform: none;
        opacity: 1;
        visibility: visible;
    }

    .service__wrap {
    justify-content: left;
    }

    .service__box {
        width: 50vw;
        margin-top: 120px;
    }

    .service__item {
        margin-bottom: 40px;
    }

    .service__title {
        font-size: 2.4rem;
    }

    .service__img {
        width: 40vw;
        margin-top: 120px;
    }

    .service__panel {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 80%;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    z-index: 0;
    transition: opacity 0.5s ease;
    }

    .service__panel.is-active {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        z-index: 1;
    }

    .service__panel.hide {
        opacity: 0;
        pointer-events: none;
    }

    .section-trigger {
        height: 100vh;
    }

    .service__txt {
    margin-bottom: 32px;
    text-align: left;
    }
}

@media screen and (min-width: 769px) {
    .service__title {
        font-size: 3.2rem;
    }
}

/* ==========================
news
============================= */
.news__list {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-bottom: 32px;
}
.news__item {
    background-color: var(--primary-white, #fff);
    padding: 16px 12px;
    align-items: center;
    border-radius: 8px;
}

.news__card {
    display: flex;
    gap: 8px;
    margin-bottom: 16px;
}

.news__kinds::before {
    content: "";
    width: 6px;
    height: 6px;
    display: inline-block;
    background-color: var(--primary-green, #1F9F67);
    border-radius: 100vh;
    margin-right: 4px;
    position: relative;
    top: -12%;
}

time {
    color: var(--primary-deepGray, #9C9C9C);
    font-family: "Figtree", sans-serif;
    font-size: 1.3rem;
}

.news__topic {
    font-size: 1.6rem;
    font-weight: 600;
    line-height: 1.5;
}

.news__box {
    text-align: right;
}

@media screen and (min-width: 769px) {
    /* .news {
        display: flex;
        gap: 10vw;
    } */

    .news__content {
        width: 70vw;
    }

    .news__item {
        padding: 24px 32px;
    }

    .news__list {
        gap: 20px;
    }

    .news__topic {
        position: relative;
        display: inline-block;
    }

    .news__topic::after {
        content: "";
        position: absolute;
        left: 0;
        bottom: -2px; /* 下線の位置 */
        width: 0%;
        height: 1px;
        background-color: #000; /* 線の色 */
        transition: width 0.4s ease;
    }

    .news__item:hover .news__topic::after {
        width: 100%;
    }

}

/* ==========================
contact
============================= */
.contact {
    padding: 0 4.2% 100px;
}

.contact__content {
    background: linear-gradient(20deg, #12B565 40%, #80D500 100%);
    border-radius: 12px;
}

.contact__wrap {
    padding: 54px 12px 0;
    color: var(--primary-white, #fff);
    text-align: center;
    position: relative;
    z-index: 10;
}

.contact__topic {
    font-size: 3.2rem;
    font-family: "Figtree", sans-serif;
    font-size: 3.2rem;
    letter-spacing: 0.05em;
    font-weight: 700;
    margin-bottom: 3.2rem;
    line-height: 1;
}

.scroll__list {
    display: flex;
    list-style: none;
    padding-inline: 0;
    margin-inline: 0;
    gap: 8px;
    overflow: hidden;
    position: relative;
    bottom: 50px;
    z-index: 0;
    font-size: 1.8rem;
    line-height: 1;
}

.scroll__list li {
    color: var(--primary-deepGreen, #20A35F);
    font-size: 3em;
    font-family: "Figtree", sans-serif;
    font-weight: bold;
    white-space: nowrap;
    margin: 0;
    animation: marquee-left 24s linear infinite;
}

@keyframes marquee-left {
    100% {
        transform: translateX(-100%);
    }
}

.btn__box {
    display: flex;
    justify-content: center;
}

@media screen and (min-width: 769px) {
    .contact {
        padding-bottom: 200px;
    }

    .contact__wrap {
        padding: 80px 12px 0;
    }

    .contact__topic {
        font-size: 6rem;
    }

    .scroll__list {
        bottom: 70px;
    }

    .scroll__list li {
        font-size: 5em;
    }
}

/* ==========================
footer
============================= */
.footer__section {
    background: #fff;
    padding: 20px 4.2% 0;
}

.footer__nav {
    display: flex;
    flex-direction: column;
    gap: 20px;
    margin-bottom: 40px;
}

.footer__list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.footer__topic {
    font-size: 1.6rem;
    font-weight: 500;
    margin-bottom: 4px;
}

.footer__item {
    color: var(--primary-loegray, #707070);
    font-size: 1.5rem;
}

.company__box {
    text-align: center;
}

.footer__logo {
    margin-bottom: 8px;
}

.copyright {
    font-weight: 500;
    font-family: "Figtree", sans-serif;
    font-size: 1.2rem;
    color: var(--primary-loegray, #707070);
}

@media screen and (min-width: 769px) {
    .footer__section {
        margin-top: -14vh;
    }

    .footer__nav {
        flex-direction: row;
        gap: 64px;
        justify-content: center;
    }
}

@media screen and (min-width: 769px) {
    .footer__nav {
        gap: 80px;
        margin-bottom: 64px;
    }
}
/* ==========================
about
============================= */
.kv {
    overflow: hidden;
    position: relative;
    height: 240px;
}

.kv__subTopic {
    font-weight: 500;
    margin-bottom: 4px;
}

.kv__topic {
    color: var(--primary-green, #1F9F67);
    font-size: 4rem;
    font-family: "Figtree", sans-serif;
    font-weight: 700;
    line-height: 1;
}

.kv__img {
    width: 60%;
    position: absolute;
    transform: rotate(-130deg);
    top: -8vh;
    right: -10%;
}

.kv__content {
    padding: 0 4.2%;
    position: absolute;
    bottom: 12%;
}

.mvvs {
    display: flex;
    flex-direction: column;
    gap: 48px;
    position: relative;
}

.mission__bg {
    position: absolute;
    top: -6vh;
    left: 0;
    width: 100vw;
}

.mvv__content {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.mvv__subTopic {
    color: var(--primary-green, #1F9F67);
    margin-bottom: 8px;
    font-family: "Figtree", sans-serif;
    font-weight: 600;
}

.mvv__topic {
    font-size: 2rem;
    font-weight: 600;
}

.mvv__list {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

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

.mvv__num {
    font-family: "Figtree", sans-serif;
    font-weight: 600;
    font-size: 2rem;
    color: var(--primary-green, #1F9F67);
}

.mvv__txt {
    line-height: 2;
}

.message {
    background-color: var(--primary-lightGreen, #F0F8EC);
    padding: 60px 4.2% 0;
}

.message__img {
    width: 70%;
    margin: 0 auto 32px;
}

.message__box {
    text-align: center;
}

.message__corp {
    margin-bottom: 4px;
}

.message__name {
    font-size: 2rem;
    font-weight: 600;
}

.outline {
    background-color: var(--primary-lightGreen, #F0F8EC);
}

.outline__content {
    background-color: var(--primary-white, #fff);
    padding: 40px 16px;
    border-radius: 12px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.outline__list {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding-bottom: 16px;
    border-bottom: solid 1px #D9D9D9;
}

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

.outline__topic {
    font-size: 1.6rem;
    font-weight: 500;
}

.outline__address {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.outline__dd {
    line-height: 1.5;
}

@media screen and (min-width: 769px) {
    .kv {
        height: 400px;
    }

    .kv__img {
        width: 50%;
        top: -24vh;
        right: -4%;
    }

    .kv__content {
        bottom: 20%;
    }

    .kv__topic {
        font-size: 8rem;
    }

    .mvv__content {
        flex-direction: row;
        gap: 10vw;
    }

    .mission__bg {
        top: -12vh;
    }

    .mvvs {
        gap: 72px;
    }

    .mvv__txt {
        width: 80vw;
    }

    .mvv__box {
        width: 50vw;
    }

    .mvv__list {
        width: 48vw;
    }

    .mvv__wrap {
        width: 32vw;
    }

    .mvv__subTopic {
        font-size: 2.4rem;
    }

    .mvv__topic {
        font-size: 3.2rem;
    }

    .message {
        display: flex;
        align-items: center;
        gap: 6%;
    }

    .message__content {
        background-color: var(--primary-white, #fff);
        padding: 54px 48px;
        border-radius: 20px;
    }

    .message__box {
        text-align: left;
    }

    .message__img {
        margin: 0;
    }

    .outline {
        display: flex;
        gap: 6%;
    }

    .outline__content {
        width: 80vw;
        padding: 54px 48px;
        gap: 26px;
    }

    .outline__list {
        flex-direction: row;
        padding-bottom: 28px;
    }

    .outline__topic {
        width: 10vw;
    }
}

/* ==========================
Human Resource Development
============================= */
.work__topic {
    font-size: 3rem;
}

.intro {
    text-align: center;
    position: relative;
    padding: 60px 4.2% 100px;
}

.intro__content {
    margin: 0 auto;
    text-align: left;
}

.intro__box {
    display: flex;
    flex-direction: column;
    gap: 24px;
    line-height: 1.8;
}

.intro__topic {
    font-size: 2.4rem;
    font-weight: 600;
    margin-bottom: 40px;
}

.intro__img {
    position: absolute;
    z-index: -1;
    transform: rotate(45deg);
    bottom: -50px;
    left: -50px;
    width: 40%;
}

.intro__txt {
    text-align: left;
    line-height: 1.5;
    letter-spacing: 0.04em;
}

.solution,
.features,
.flow {
    background-color: var(--primary-lightGreen, #F0F8EC);
}

.solution__content {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.solution__item {
    background-color: var(--primary-white, #fff);
    padding:  32px 16px;
    border-radius: 12px;
}

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


.solution__num {
    color: var(--primary-green, #1F9F67);
    font-size: 1.2rem;
    font-weight: 600;
}

.solution__title {
    font-size: 1.7rem;
    font-weight: 600;
}

.solution__txt {
    line-height: 1.8;
    letter-spacing: 0.04em;
}

.features,
.flow {
    padding: 0 4.2% 60px;
}

.features__content,
.policy__content {
    display: flex;
    flex-direction: column;
    gap: 32px;
}


.features__box {
    background-color: var(--primary-white, #fff);
    padding:  32px 16px;
    border-radius: 12px;
}

.features__subTopic {
    color: var(--primary-green, #1F9F67);
    font-weight: 600;
    margin-bottom: 8px;
}

.features__topic {
    font-size: 1.7rem;
    font-weight: 500;
    margin-bottom: 24px;
}

.features__txt {
    line-height: 1.8;
}

.training-list {
    padding: 0 4.2% 60px;
    background-color: var(--primary-lightGreen, #F0F8EC);
}

.training__content {
    background-color: var(--primary-white, #fff);
    padding:  32px 16px;
    border-radius: 12px;
}

.training-list__box {
    display: flex;
    flex-direction: column;
    gap: 16px;
    grid-template-columns: repeat(2, 1fr);
}

.training__item {
    background-color: var(--primary-lightGreen, #F0F8EC);
    padding: 24px;
    border-radius: 8px;
    text-align: center;
    align-content: center;
}

.training-en {
    font-size: 1.2rem;
    color: var(--primary-green, #1F9F67);
    font-weight: 600;
    margin-bottom: 8px;
}

.training-list__topic {
    font-size: 1.6rem;
    font-weight: 600;
}

.flow__content {
    display: flex;
    flex-direction: column;
    border-radius: 12px;
}

.flow__item {
    border-radius: 4px;
    background-color: var(--primary-green, #1F9F67);
    color: var(--primary-white, #fff);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    padding: 20px;
}

.flow__arrow {
    position: relative;
    display: inline-block;
    height: 40px;
}

.flow__arrow::before,
.flow__arrow::after {
    content: "";
    position: absolute;
    bottom: 0;
    top: 0;
    left: 0;
    right: 0;
    margin: auto;
    width: 4px;
    height: 20px;
    border-radius: 9999px;
    background-color: #D0D0D0;
    transform-origin: 50% calc(100% - 2px);
}

.flow__arrow::before {
    transform: rotate(45deg);
}

.flow__arrow::after {
    transform: rotate(-45deg);
}

.flow__num {
    font-size: 1.2rem;
    font-family: "Figtree", sans-serif;
    margin-bottom: 8px;
}

@media screen and (min-width: 480px) {
    .kv__img {
        bottom: 56px;
        right: -100px;
    }

    .intro__img {
        bottom: -16%;
        left: -10vw;
    }
}

@media screen and (min-width: 510px) {
    .kv__img {
        right: -20px;
    }

    .intro__img {
        bottom: -16%;
        left: -8vw;
        width: 35%;
    }
}

@media screen and (min-width: 620px) {
    .intro__img {
        bottom: -100px;
        left: -8vw;
        width: 35%;
    }
}

@media screen and (min-width: 769px) {
    .kv__img {
        right: -150px;
        bottom: 100px;
    }

    .kv__subTopic {
        font-size: 2rem;
    }

    .work__topic {
        font-size: 6rem;
    }

    .intro__img {
        transform: rotate(80deg);
        bottom: -120px;
        left: -10vw;
        width: 33%;
    }

    .intro__content {
        max-width: 500px;
    }

    .intro__topic {
        font-size: 3.2rem;
        margin-bottom: 40px;
    }

    .solution {
        display: flex;
        gap: 10vw;
    }

    .solution__item {
        padding: 48px 32px;
    }

    .solution__title {
        font-size: 2rem;
    }

    .features,
    .training-list,
    .flow {
        padding-bottom: 120px;
    }

    .features__topic {
        font-size: 2rem;
    }

    .training__content {
        padding: 64px 56px;
    }

    .training__topic {
        display: flex;
        justify-content: space-between;
    }

    .training-list__box {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
    }

    .training-list__topic {
        font-size: 2rem;
    }

    .flow__content {
        flex-direction: row;
        justify-content: center;
        flex-wrap: wrap;
        row-gap: 20px;
    }

    .flow__item {
        width: 160px;
        height: 160px;
        border-radius: 100vh;
        background-color: var(--primary-green, #1F9F67);
        color: var(--primary-white, #fff);
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        font-weight: 600;
    }

    .flow__arrow {
        height: auto;
        width: 64px;
    }
    
    .flow__arrow::before,
    .flow__arrow::after {
        width: 30px;
        height: 4px;
        transform-origin: calc(100% - 2px) 50%;       
    }
}

@media screen and (min-width: 1080px) {
    .features__box {
        display: grid;
        grid-template-columns: 1fr 2fr 2.5fr;
        padding: 40px;
    }

        .features__topic {
        margin-bottom: 0;
        font-size: 2rem;
    }
}

/* ==========================
event
============================= */
.event__flow {
    background-color: var(--primary-lightGreen, #F0F8EC);
}

.policy__box {
    border-bottom: #D0D0D0 solid 1px;
    padding-bottom: 32px;
}

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

@media screen and (min-width: 769px) {
    .policy__content {
        gap: 48px;
    }
    
    .policy__box {
        padding-bottom: 48px;
        display: grid;
        grid-template-columns: 1fr 2fr 2.5fr;
        align-items: center;
    }
    
    .policy__box:last-child {
        border-bottom: none;
    }
    
    .policy__txt {
        line-height: 1.5;
        letter-spacing: 0.04em;
    }
}

/* ==========================
online
============================= */
.point__content {
    display: flex;
    flex-direction: column;
    gap: 24px;
}
.point__item {
    border: solid 1px #C5C5C5;
    border-radius: 8px;
    padding: 24px 12px;
    position: relative;
}

.point__topic {
    font-size: 1.8rem;
    font-weight: 500;
    margin-bottom: 16px;
}

.point__num {
    color: #E8E8E8;
    font-size: 8rem;
    position: absolute;
    bottom: -20px;
    right: 8px;
    font-family: "Figtree", sans-serif;
    font-weight: 800;
}

@media screen and (min-width: 769px) {
    .point__content {
        display: grid;
        grid-template-columns: repeat(3, 11fr);
    }

    .point__num{
        bottom: -28px;
    }

    ..point__item {
        padding: 24px 20px;
    }
}
/* ==========================
news
============================= */
.news__wrap {
    background-color: var(--primary-lightGreen, #F0F8EC);
}

.newsLower__content {
    margin-bottom: 40px;
}

.category__box {
    display: flex;
    gap: 16px;
    margin-bottom: 32px;
}

.category__item {
    display: flex;
    align-items: center;
    height: 32px;
    gap: 4px;
}

.page__content {
    display: flex;
    gap: 12px;
    justify-content: center;
    font-family: "Figtree", sans-serif;
}

.page__item:first-child {
    border-bottom: 1px #12B565 solid;
}


@media screen and (min-width: 769px) {
    .newsLower__content {
        display: flex;
        gap: 6vw;
    }

    .category__box {
        flex-direction: column;
        background-color: var(--primary-white, #fff);
        justify-content: center;
        padding-left: 16px;
        padding: 32px;
        margin: 0;
        border-radius: 12px;
    }
}

/* ==========================
contact
============================= */
.contact__lower {
    background-color: var(--primary-lightGreen, #F0F8EC);
    padding: 60px 4.2% 200px;
}

.contact__txt {
    margin-bottom: 12px;
    padding-bottom: 40px;
    border-bottom: #CAE7D9 solid 1px;
}

.comment {
    margin-bottom: 32px;
    text-align: right;
    font-size: 1.2rem;
}

.red {
    color: #FF383B;
}

.form__content {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.form__box {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.form__category {
    margin-bottom: 8px;
}

label {
    font-weight: 600;
}

.required {
    color: #FF383B;
    font-size: 1rem;
    position: relative;
    top: -8px;
    left: 4px;
}

input {
    height: 40px;
    width: 100%;
    padding: 12px;
    color: #C5C5C5;
}

.submit-button {
    background-color: var(--primary-green, #1F9F67);
    color: var(--primary-white, #fff);
    width: 240px;
    height: 48px;
    display: block;
    border-radius: 100vh;
    align-content: center;
    text-align: center;
    margin: 8px auto 0;
}

#message {
    background-color: var(--primary-white, #fff);
    height: 200px;
    padding: 12px;
}

.privacy__line {
    border-bottom: 1px solid #000;
}

textarea {
    background: #fff;
    width: 100%;
}

input[type="checkbox"] {
    width: 20px;
}

.wpcf7-list-item {
    margin: 0;
    display: flex;
    align-items: center;
    gap: 8px;
    justify-content: center;
}

.select__box {
    display: block;
    background: #fff;
    width: 100%;
    padding: 12px;
    border-radius: 4px;
    color: #333;
    font-weight: 400;
}



@media screen and (min-width: 769px){
    .contact__container {
        max-width: 728px;
        margin: 0 auto;
    }

    .form__content {
        gap: 24px;
    }

    .form__box {
        gap: 24px;
    }

    input {
        height: 54px;
    }

    .required {
        font-size: 1.2rem;
    }
}

/* ==========================
contact
============================= */
.thanks {
    background: var(--primary-lowGreen, #F0F8EC);
    text-align: center;
    line-height: 1.6;
}

.thanks__content {
    background: var(--primary-white, #fff);
    padding: 32px 16px;
    border-radius: 12px;
}

.thanks__title {
    font-size: 2rem;
    margin-bottom: 24px;
    color: var(--primary-green, #1F9F67);
    font-weight: 600;
}

@media screen and (min-width: 769px) {
    .thanks__content {
        max-width: 500px;
        margin: 0 auto;
    }
}

/* ==========================
contact
============================= */
.single {
    padding: 72px 4.2% 60px;
    background-color: var(--primary-lightGreen, #F0F8EC);
}

.single__title {
    font-size: 2.4rem;
    margin-bottom: 16px;
}

.single__box {
    padding-bottom: 24px;
    border-bottom: #BEDDAF solid 1px;
    margin-bottom: 32px;
}

.single__item {
    display: flex;
    gap: 12px;
    align-items: center;
}

.single__txt {
    margin-bottom: 60px;
}

.single__txt {
    line-height: 1.8;
}

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

@media screen and (min-width: 769px) {
    .single {
        padding: 160px 6.4% 80px;
    }

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

    .single__title {
        font-size: 4rem;
    }

    .single__box {
            padding-bottom: 56px;
        margin-bottom: 64px;
    }
}
