@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap');

a,abbr,address,article,aside,audio,b,blockquote,body,button,canvas,caption,cite,code,dd,del,details,dfn,div,dl,dt,em,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,input,ins,kbd,label,legend,li,main,mark,menu,nav,object,ol,p,pre,q,samp,section,select,small,span,strong,sub,summary,sup,table,tbody,td,textarea,tfoot,th,thead,time,tr,ul,var,video {
    border: 0;
    font-family: sans-serif;
    line-height: 1;
    list-style: none;
    margin: 0;
    padding: 0;
    text-decoration: none;
    -webkit-font-smoothing: antialiased;
    -webkit-backface-visibility: hidden;
    box-sizing: border-box;
    color: #333;
    transition: .3s cubic-bezier(.4,.4,0,1);
    word-spacing: 1px
}

:root {
    --font-montserrat: Montserrat;
    --font-notosans: 'ヒラギノ角ゴ ProN W6', 'Noto Sans JP', sans-serif;
}

.material-icons {
    display: inline-block;
    font-family: Material Icons;
    font-size: 24px;
    font-style: normal;
    font-weight: 400;
    letter-spacing: normal;
    line-height: 1;
    text-transform: none;
    white-space: nowrap;
    word-wrap: normal;
    direction: ltr;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}
.material-symbols-outlined {
    font-variation-settings:
        'FILL' 0,
        'wght' 400,
        'GRAD' 0,
        'opsz' 24
}

.link:hover {
    opacity: 0.7;
    transform: scale(1.05, 1.05);
}

.imageWrapper {
    z-index: 1;
    position: relative;
}
.image::Before {
    content: "";
    background-position: 50%;
    background-size: cover;
    border-radius: inherit;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    pointer-events: none;
    transition: inherit;
    z-index: -2;
}
.bodyBg,
.imageBg {
    background: #0db276;
    display: flex;
    height: 100%;
    left: 0;
    top: 0;
    margin: 0;
    position: absolute;
    transform-origin: center right;
    transition-delay: 500ms;
    transition-duration: 1000ms;
    width: 100%;
    max-width: 100%;
    z-index: 2;
}
.imageBg.fast {
    transition-delay: 300ms;
}
.imageBg.black {
    background: #000;
}
body.is-visible .bodyBg,
.is-visible + .imageBg {
    transform: scale(0, 1);
}
body {
    background: #f8f7f6;
    transition: background 0.5s cubic-bezier(0.4, 0.4, 0, 1);
}
.container {
    background: #f8f7f6;
    display: flex;
    flex-direction: column;
    margin: 0;
    padding: 0;
    width: 100%;
    max-width: 100%;
    height: 100%;
    min-height: 100vh;
    overflow: hidden;
    position: relative;
    z-index: 0;
}


/* header */

header {
    background: linear-gradient(180deg, #0008 0%, #6660 100%);
    position: fixed;
    display: flex;
    justify-content: space-between;
    padding: 48px 48px 48px;
    width: 100%;
    z-index: 1;
}
header h1 {
    color: #fff;
    font-family: var(--font-montserrat);
    font-size: 20px;
    font-weight: 600;
    letter-spacing: 0.1em;
    line-height: 2;
}
@media screen and (max-width: 840px) {
    header {
        padding: 24px 24px 24px;
    }
    header h1 {
        font-size: 16px;
    }
}

nav {
    display: flex;
}
nav a {
    color: #ffffff;
    font-family: var(--font-montserrat);
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.15em;
    line-height: 1.4;
    padding: 0px 12px 0px;
}
.nav__other {
    display: flex;
}
.nav__other p {
    color: #ffffff;
    font-family: var(--font-montserrat);
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.15em;
    line-height: 1.4;
    padding: 0px 6px 0px 12px;
}
.nav__other i {
    color: #fff;
    font-size: 20px;
}
.nav__spBtn {
    display: none;
    color: #fff;
    font-size: 24px;
    height: 100%;
    margin: 0 0 0 0;
    padding: 24px;
    position: absolute;
    left: auto;
    right: 0;
    top: 0;
    bottom: 0;
}
@media screen and (max-width: 840px) {
    nav {
        display: none;
    }
    .nav__spBtn {
        cursor: pointer;
        display: flex;
        background-color: transparent;
    }
}

/* modal */

.modals {
}
.modal {
    /* display: none; */
    height: 100%;
    pointer-events: none;
    position: fixed;
    transition: none;
    width: 100%;
    z-index: 0;
    opacity: 0;
    transition: .3s;
}
.modal.is-open {
    z-index: 2;
    opacity: 1;
    transition: 0s;
}
.modal__inner {
    height: 100%;
    pointer-events: none;
}
.modal__bg {
    background: #1e5a9f;
    flex: none;
    height: 100%;
    left: 0px;
    margin: 0 0 0 0;
    position: absolute;
    top: 0px;
    transform: scale(1, 1);
    transition: 0s;
    transition-delay: .5s;
    width: 100%;
    max-width: 100%;
    z-index: 3;
}
.modal.is-open .modal__bg {
    transform: scale(0, 1);
    transform-origin: center right;
    transition-property: transform;
    transition-delay: 300ms;
    transition-duration: 1000ms;
}
.modal__closeBtn {
    background-color: transparent;
    color: #333;
    font-size: 24px;
    margin: 0;
    padding: 24px;
    position: fixed;
    right: 0px;
    top: 0px;
    z-index: 2;
    opacity: 0;
    cursor: pointer;
}
.modal.is-open .modal__closeBtn {
    transition-delay: 1000ms;
    transition-duration: 800ms;
    opacity: 1;
}
.modal__main {
    pointer-events: all;
    background: rgba(0, 0, 0, 0.16);
    margin: 0;
    padding: 0;
    opacity: 1;
    width: 100%;
    max-width: 100%;
    height: 100%;
}
.modal__navWrapper {
    background: #FFF;
    box-shadow: 0px 6px 15px 0px rgba(0, 0, 0, 0.2);
    display: flex;
    flex-direction: column;
    justify-content: center;
    opacity: 1;
    overflow-x: hidden;
    width: 100%;
    max-width: 100%;
    height: 100%;
    z-index: 1;
}
.modal__nav {
    display: flex;
    flex-direction: column;
    margin: 0 0 24px 0;
    width: 100%;
    max-width: 100%;
    z-index: 1;
}
.modal__nav a {
    display: flex;
    border-bottom: 2px solid #0000;
    color: #333;
    margin: 0;
    padding: 24px 48px 24px;
    font-family: var(--font-montserrat);
    font-size: 16px;
    font-weight: 600;
    height: auto;
    letter-spacing: 0.15em;
    line-height: 1.4;
    width: 100%;
    max-width: 100%;
}
.modal__navOther {
    display: flex;
    padding: 24px 48px 24px;
    width: 100%;
    max-width: 100%;
}
.modal__navOther p {
    margin: 0 6px 0 0;
    padding: 0;
    color: #333;
    font-family: var(--s-font-18a508ab);
    font-size: 16px;
    font-weight: 600;
    letter-spacing: 0.15em;
    line-height: 1.4;
    width: auto;
    max-width: calc(100% - 6px);
}
.modal__navOther i {
    color: #333;
    font-size: 20px;
}
.modal__nav2 {
    background: #f8f7f6;
    margin: 0;
    padding: 48px 48px 48px;
    display: flex;
    width: 100%;
    max-width: 100%;
}
.modal__nav2 p {
    margin: 0 24px 0 0;
    padding: 0;
    color: #000;
    font-family: var(--font-montserrat);
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.15em;
    line-height: 1.4;
    text-align: center;
    width: auto;
    max-width: calc(100% - 24px);
}
@media screen and (max-width: 840px) {
    .modal__bg {
        left: 0px;
        top: 0px;
    }
}



/* main */

.bg {
    height: 100vh;
    position: fixed;
    transition-timing-function: cubic-bezier(0.42, 0 , 0.6 , 1.19);
    width: 100%;
    z-index: -1;
}
.bg::before {
    filter: brightness(0.8);
    background-image: url(http://ecosite-kaitori.com/wp-content/uploads/2024/09/30705221_l.jpg);
}

main {
    display: flex;
    background: rgba(0, 0, 0, 0.0);
    flex-direction: column;
    transform: translate(0, 0);
    width: 100%;
    max-width: 100%;
}

.kv {
    background: rgba(0, 0, 0, 0.0);
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}
.kv__inner {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 192px 48px 96px;
    width: 1280px;
    max-width: 100%;
    z-index: 1;
}
.kv__title {
    margin: 0px 0px 96px 0px;
}
.kv__title p {
    color: #ffffff;
    font-family: var(--font-montserrat);
    font-size: 144px;
    font-weight: 600;
    letter-spacing: 0.1em;
    line-height: 1.1;
}
.kv__copy {
    z-index: 1;
}
.kv__copyText {
    color: #ffffff;
    font-family: var(--font-notosans);
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1.6;
    margin: 0px 0px 48px 0px;
}
.kv__copyText.text01 {
    font-family: var(--font-montserrat);
    font-size: 20px;
    font-weight: 600;
    line-height: 1.4;
    letter-spacing: 0;
    margin: 0px 0px 24px 0px;
    text-align: left;
}
.kv__copyText.text02 {
    font-size: 28px;
}
.kv__copyText.text03 {
    font-size: 16px;
    width: 727px;
    max-width: 100%;
}
.kv__bottom {
    background: linear-gradient(180deg, #0000 0%, #0006 100%);
    height: 275px;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    z-index: 0;
}

.btn {
    width: max-content;
    display: flex;
    align-items: center;
    background: #000;
    border-radius: 10px;
    box-shadow: 20px 20px 30px rgba(0, 0, 0, 0.2);
    padding: 12px 48px 12px;
}
.btnHover:hover {
    box-shadow: 0px 0px 0px rgba(0,0,0,0.2);
    transform: translate(10px, 10px);
}
.btn p {
    color: #fff;
    font-family: var(--font-notosans);
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1.9;
}
.btn i {
    color: #fff;
    font-size: 20px;
}

.kv__scrollHint {
    display: flex;
    flex-direction: column;
    align-items: center;
    height: 100%;
    justify-content: flex-end;
    padding: 0px 48px 0px;
    position: absolute;
    right: 0;
    top: 0;
}
.kv__scrollHint p {
    color: #fff;
    font-family: var(--font-montserrat);
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.15em;
    line-height: 1.4;
    margin: 0px 0px 24px 0px;
    writing-mode: vertical-rl;
}
.kv__scrollHintLine {
    background: linear-gradient(180deg, #ffff 0%, #fff0 100%);
    height: 40%;
    width: 1px;
}
@media screen and (max-width: 1140px) {
    .kv__title p {
        font-size: 96px;
    }
    .kv__scrollHint {
        padding: 0px 24px 0px;
    }
}
@media screen and (max-width: 840px) {
    .kv__inner {
        padding: 144px 48px 96px;
    }
    .kv__copyText.text01 {
        font-size: 18px;
    }
    .kv__copyText.text02 {
        font-size: 24px;
    }
    .kv__copyText.text03 {
        font-size: 14px;
    }
    .kv__scrollHint p {
        font-size: 12px;
    }
}
@media screen and (max-width: 540px) {
    .kv__inner {
        padding: 144px 48px 48px;
    }
    .kv__title {
        margin: 0px 0px 48px 0px;
        max-width: 100%;
    }
    .kv__title p {
        font-size: 64px;
    }
    .kv__copyText.text01 {
        font-size: 16px;
    }
    .kv__copyText.text02 {
        font-size: 18px;
    }
    .kv__copyText.text03 {
        font-size: 12px;
    }
    .btn p {
        font-size: 12px;
    }
    .kv__scrollHint {
        padding: 0px 12px 0px;
    }
    .kv__scrollHint p {
        font-size: 10px;
    }
}


/* section what me do */

.section__wmd {
    background: linear-gradient(180deg, #0006 0%, #000d 71%, #000 100%);
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 96px 0px 192px;
}
.wmd__imageWrapper {
    display: flex;
    height: 40vh;
    margin: 0px 0px 192px 0px;
    width: 100%;
}
.wmd__image {
    z-index: 0;
    position: relative;
    width: 50%;
}
.wmd__image::before {
    filter: brightness(0.7);
}
.wmd__image:nth-of-type(1)::before {
    background-image: url(http://ecosite-kaitori.com/wp-content/uploads/2024/09/25464623_m.jpg);
}
.wmd__image:nth-of-type(2)::before {
    background-image: url(http://ecosite-kaitori.com/wp-content/uploads/2024/09/1646136_m.jpg);
}

.wmd__textWrapper {
    display: flex;
    align-items: center;
    flex-direction: column;
    width: 1280px;
    max-width: 100%;
}
.wmd__textWrapper h2 {
    color: #fff;
    font-family: var(--font-montserrat);
    font-size: 72px;
    font-weight: 600;
    line-height: 1.4;
    margin: 0px 0px 96px 0px;
}
.wmd__textWrapper p {
    color: #fff;
    font-family: var(--font-notosans);
    font-size: 16px;
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1.6;
    margin: 0px 0px 24px 0px;
    text-align: justify;
    width: 50%;
    z-index: 1;
}
@media screen and (max-width: 1140px) {
    .wmd__textWrapper p {
        font-size: 16px;
    }
}
@media screen and (max-width: 840px) {
    .wmd__imageWrapper {
        height: 30vh;
        width: 100%;
        max-width: 100%;
    }
    .wmd__textWrapper h2 {
        font-size: 48px;
        margin: 0px 0px 48px 0px;
        max-width: 100%;
    }
    .wmd__textWrapper p {
        flex: none;
        font-size: 14px;
        width: 80%;
        max-width: 80%;
    }
}
@media screen and (max-width: 540px) {
    .section__wmd {
        padding: 96px 0px 96px;
    }
    .wmd__imageWrapper {
        flex-direction: column;
        flex-wrap: nowrap;
        height: auto;
        margin: 0px 0px 96px 0px;
        width: 100%;
        max-width: 100%;
    }
    .wmd__image {
        height: 30vh;
        width: 100%;
        max-width: 100%;
    }
    .wmd__textWrapper {
        padding: 0px 24px 0px;
    }
    .wmd__textWrapper h2 {
        font-size: 32px;
    }
    .wmd__textWrapper p {
        flex: none;
        font-size: 12px;
        width: 100%;
        max-width: 100%;
    }
}



/* section service */

.section__service {
    background: #000;
    display: flex;
    align-items: center;
    flex-direction: column;
    padding: 192px 48px 192px;
    width: 100%;
    transition-delay: 400ms;
    transition-duration: 1200ms;
}
.section__service.is-visible {
    background: #f8f7f6;
}

.service__head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    margin: 0px 0px 96px 0px;
    width: 1280px;
    max-width: 100%;
}
.service__head h2 {
    color: #000;
    font-family: var(--font-montserrat);
    font-size: 64px;
    font-weight: 600;
    line-height: 1;
}
.service__headMoreLink {
    display: flex;
    align-items: center;
}
.service__headMoreLink p {
    color: #000;
    font-family: var(--font-montserrat);
    font-size: 14px;
    font-weight: 600;
    line-height: 1.4;
}
.service__headMoreLink i {
    color: #000;
    font-size: 20px;
}

.service__itemWrapper {
    display: flex;
    flex-direction: column;
    width: 1280px;
    max-width: 100%;
}
.service__item {
    display: flex;
    align-items: center;
    margin: 0px 0px 96px 0px;
    width: 100%;
}
.service__item:last-of-type {
    margin: 0;
}
.service__item.itemReverse {
    flex-direction: row-reverse;
}
.service__itemImageWrapper {
    border-radius: 10px;
    box-shadow: 40px 50px 30px rgba(0, 0, 0, 0.1);
    height: 520px;
    overflow-x: hidden;
    overflow-y: hidden;
    width: 60%;
}
.service__itemImage {
    z-index: 0;
    position: relative;
    height: 100%;
    transition-timing-function: ease-in-out;
}
.service__itemImage::before {
    filter: brightness(0.7);
}
.service__itemImage.image01::before {
    background-image: url(http://ecosite-kaitori.com/wp-content/uploads/2024/09/30512929_m.jpg);
}
.service__itemImage.image02::before {
    background-image: url(http://ecosite-kaitori.com/wp-content/uploads/2024/09/24641842_m.jpg);
}
.service__itemImage.image03::before {
    background-image: url(../images/service03.jpg);
}
.service__itemTextWrapper {
    display: flex;
    align-items: center;
    flex-direction: column;
    margin: 0px 0px 0px 48px;
    width: calc(40% - 48px);
    max-width: calc(40% - 48px);
}
.itemReverse .service__itemTextWrapper {
    margin: 0px 48px 0px 0px;
}
.service__itemTextWrapper h3 {
    color: #000;
    font-family: var(--font-montserrat);
    font-size: 48px;
    font-weight: 600;
    line-height: 1.4;
    margin: 0px 0px 24px 0px;
}
.service__itemTextWrapper p {
    color: #000000;
    font-family: var(--font-notosans);
    font-size: 16px;
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1.6;
    margin: 0px 0px 48px 0px;
}
.service__itemBtn {
    display: flex;
    align-items: center;
    background: #000;
    border-radius: 10px;
    box-shadow: 20px 20px 30px rgba(0, 0, 0, 0.2);
    padding: 12px 48px 12px;
}
.service__itemBtn p {
    color: #fff;
    font-family: var(--font-notosans);
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1.9;
    margin: 0;
}
.service__itemBtn i {
    color: #fff;
    font-size: 20px;
}
@media screen and (max-width: 1140px) {
    .service__itemImageWrapper {
        flex: none;
        height: 400px;
        width: 60%;
        max-width: 60%;
    }
    .service__itemTextWrapper h3 {
        font-size: 40px;
    }
    .service__itemTextWrapper p {
        font-size: 16px;
    }
}
@media screen and (max-width: 840px) {
    .section__service {
        padding: 96px 24px 96px;
    }
    .service__head h2 {
        font-size: 48px;
    }
    .service__itemImageWrapper {
        flex: none;
        height: 320px;
        width: 60%;
        max-width: 60%;
    }
    .service__itemTextWrapper h3 {
        font-size: 28px;
        margin: 0px 0px 48px 0px;
        max-width: 100%;
    }
    .service__itemTextWrapper p {
        font-size: 14px;
        margin: 0px 0px 24px 0px;
        width: 100%;
        max-width: 100%;
    }
    .service__itemBtn p {
        margin: 0;
        font-size: 14px;
    }
}
@media screen and (max-width: 540px) {
    .section__service {
        padding: 96px 24px 96px;
    }
    .service__head {
        margin: 0px 0px 48px 0px;
        max-width: 100%;
    }
    .service__head h2 {
        font-size: 28px;
    }
    .service__headMoreLink p {
        font-size: 12px;
    }
    .service__item,
    .service__item.itemReverse {
        flex-direction: column;
        flex-wrap: nowrap;
    }
    .service__itemImageWrapper {
        flex: none;
        height: 240px;
        margin: 0px 0px 48px 0px;
        width: 100%;
        max-width: 100%;
    }
    .itemReverse .service__itemTextWrapper,
    .service__itemTextWrapper {
        flex: none;
        margin: 0;
        width: 100%;
        max-width: 100%;
    }
    .service__itemTextWrapper h3 {
        font-size: 24px;
        margin: 0px 0px 24px 0px;
        max-width: 100%;
    }
    .service__itemBtn p {
        font-size: 12px;
    }
}


/* cta area */

.area__cta {
    background: rgba(30, 90, 159, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 96px;
    width: 100%;
    max-width: 100%;
}
.cta__inner {
    display: flex;
    align-items: center;
    background: #0000;
    width: 1280px;
    max-width: 100%;
}
.cta__textWrapper {
    display: flex;
    flex: 1;
    flex-direction: column;
    margin: 0px 48px 0px 0px;
    width: auto;
    max-width: calc(100% - 48px);
}
.cta__textWrapper p {
    color: #ffffff;
    font-family: var(--font-notosans);
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1.6;
    z-index: 1;
}
.cta__textWrapper p:nth-of-type(1) {
    font-size: 32px;
    margin: 0px 0px 24px 0px;
}
.cta__textWrapper p:nth-of-type(2) {
    font-size: 16px;
}
.cta__link {
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    border-radius: 10px;
    box-shadow: 20px 20px 30px rgba(0, 0, 0, 0.2);
    padding: 12px 48px 12px;
}
.cta__link p {
    color: #000;
    font-family: var(--font-notosans);
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1.9;
    z-index: 1;
}
.cta__link i {
    color: #000;
    font-size: 20px;
}
@media screen and (max-width: 840px) {
    .area__cta {
        padding: 48px;
    }
    .cta__textWrapper p:nth-of-type(1) {
        font-size: 24px;
        margin: 0px 0px 24px 0px;
    }
    .cta__link p {
        font-size: 14px;
    }
}
@media screen and (max-width: 540px) {
    .area__cta {
        padding: 48px 24px 48px;
    }
    .cta__inner {
        flex-direction: column;
        flex-wrap: nowrap;
    }
    .cta__textWrapper {
        flex: none;
        height: auto;
        margin: 0px 0px 24px 0px;
        width: 100%;
        max-width: 100%;
    }
    .cta__textWrapper p:nth-of-type(1) {
        font-size: 20px;
    }
    .cta__textWrapper p:nth-of-type(2) {
        font-size: 14px;
    }
    .cta__link p {
        font-size: 12px;
    }
}


/* section news */


.section__news {
    background: #000;
    display: flex;
    align-items: center;
    flex-direction: column;
    padding: 192px 48px 192px;
    width: 100%;
    max-width: 100%;
    transition-delay: 400ms;
    transition-duration: 1200ms;
}
.section__news.is-visible {
    background: #f8f7f6;
}

.news__inner {
    display: flex;
    flex-direction: column;
    padding: 0px;
    width: 1280px;
    max-width: 100%;
}
.news__head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    margin: 0px 0px 48px 0px;
    width: 100%;
    max-width: 100%;
}
.news__head h2 {
    color: #000;
    font-family: var(--font-montserrat);
    font-size: 64px;
    font-weight: 600;
    line-height: 1;
}
.news__headLink {
    display: flex;
    align-items: center;
}
.news__headLink:hover {
    opacity: 0.5;
    transition-delay: 0ms;
    transition-duration: 600ms;
}
.news__headLink p {
    color: #000;
    font-family: var(--font-montserrat);
    font-size: 14px;
    font-weight: 600;
    height: auto;
    line-height: 1.4;
}
.news__headLink i {
    color: #000000;
    font-size: 20px;
}

.news__wrapper {
    display: flex;
    align-content: stretch;
    align-items: stretch;
    background: #0000;
    flex-wrap: wrap;
    height: auto;
    overflow-x: visible;
    overflow-y: visible;
    width: 100%;
    max-width: 100%;
}
.news__item {
    display: flex;
    align-items: flex-start;
    background: #fff;
    border-bottom: solid 1px #eee;
    border-radius: 10px;
    box-shadow: 0px 2px 20px rgba(0, 0, 0, 0.1);
    flex-direction: column;
    margin: 0px 12px 0px;
    overflow-x: visible;
    overflow-y: visible;
    padding: 24px;
    width: calc(33% - 24px);
    max-width: calc(33% - 24px);
}
.news__item:hover {
    box-shadow: 0px 0px 0px rgba(0, 0, 0, 0.1);
    transform: translate(6px, 12px);
    transition-duration: 800ms;
}
.news__itemImageWrapper {
    border-radius: 10px;
    margin: 0px 0px 24px 0px;
    overflow: hidden;
    width: 100%;
    max-width: 100%;
}
.news__itemImage {
    position: relative;
    z-index: 0;
    height: 180px;
    width: 100%;
    max-width: 100%;
}
.news__itemImage.image01::before {
    background-image: url(../images/news01.webp);
}
.news__itemImage.image02::before {
    background-image: url(../images/news02.webp);
}
.news__itemImage.image03::before {
    background-image: url(../images/news03.webp);
}
.news__itemTextWrapper {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    overflow-x: visible;
    overflow-y: visible;
}
.news__itemCategory {
    background: #1e5a9f;
    border-radius: 80px;
    color: #fff;
    font-family: var(--font-montserrat);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1;
    margin: 0px 0px 12px 0px;
    padding: 6px 12px 6px;
}
.news__itemTitle {
    color: #000;
    font-family: var(--font-notosans);
    font-size: 16px;
    font-weight: 700;
    height: auto;
    letter-spacing: 0.05em;
    line-height: 1.6;
    margin: 0px 0px 24px 0px;
}
.news__itemDate {
    color: #aaa;
    font-family: var(--font-montserrat);
    font-size: 14px;
    font-weight: 500;
    letter-spacing: 0.05em;
    line-height: 1.4;
}
@media screen and (max-width: 840px) {
    .section__news {
        padding: 96px 24px 96px;
    }
    .news__head h2 {
        font-size: 48px;
    }
    .news__item {
        flex: none;
        flex-direction: column;
        flex-wrap: nowrap;
        margin: 0px 12px 24px;
        overflow-x: hidden;
        overflow-y: auto;
        width: calc(50% - 24px);
        max-width: calc(50% - 24px);
    }
    .news__itemCategory {
        font-size: 14px;
        margin: 0px 0px 24px 0px;
        max-width: 100%;
    }
    .news__itemTitle {
        font-size: 14px;
        margin: 0px 0px 24px 0px;
    }
    .news__itemDate {
        font-size: 14px;
    }
}
@media screen and (max-width: 540px) {
    .news__head h2 {
        font-size: 28px;
    }
    .news__headLink p {
        font-size: 12px;
    }
    .news__item {
        flex: none;
        flex-direction: column;
        flex-wrap: nowrap;
        margin: 0px 0px 30px;
        overflow-x: hidden;
        overflow-y: auto;
        width: 100%;
        max-width: 100%;
    }
}



/* section careers */


.section__careers {
    background: #f8f7f6;
    display: flex;
    align-items: center;
    flex-direction: column;
    padding: 0px 48px 192px;
    width: 100%;
    max-width: 100%;
}
.careers__inner {
    display: flex;
    align-items: center;
    width: 1280px;
    max-width: 100%;
}
.careers__textWrapper {
    display: flex;
    align-items: flex-start;
    flex-direction: column;
    margin: 0px 48px 0px 0px;
    width: calc(40% - 48px);
    max-width: calc(40% - 48px);
}
.careers__textWrapper h2 {
    color: #000;
    font-family: var(--font-montserrat);
    font-size: 64px;
    font-weight: 600;
    line-height: 1.4;
    margin: 0px 0px 24px 0px;
}
.careers__textWrapper p {
    color: #000;
    font-family: var(--font-notosans);
    font-size: 16px;
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1.6;
    margin: 0px 0px 24px 0px;
}
.careers__textWrapper p:nth-of-type(2) {
    margin: 0px 0px 48px 0px;
}
.careers__btn {
    display: flex;
    align-items: center;
    background: #000;
    border-radius: 10px;
    box-shadow: 20px 20px 30px rgba(0, 0, 0, 0.2);
    padding: 12px 48px 12px;
}
.careers__btn p {
    color: #fff;
    font-family: var(--font-notosans);
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1.9;
    margin: 0;
}
.careers__btn i {
    color: #ffffff;
    font-size: 20px;
}
.careers__imageWrapper {
    border-radius: 10px;
    box-shadow: 40px 50px 30px rgba(0, 0, 0, 0.1);
    height: 520px;
    overflow: hidden;
    width: 60%;
    max-width: 60%;
}
.careers__image {
    z-index: 0;
    position: relative;
    height: 100%;
    transition-timing-function: ease-in-out;
    width: 100%;
    max-width: 100%;
}
.careers__image::before {
    background-image: url(../images/careers.jpg);
}
@media screen and (max-width: 1140px) {
    .careers__textWrapper p {
        font-size: 16px;
    }
}
@media screen and (max-width: 840px) {
    .section__careers {
        padding: 0px 24px 192px;
    }
    .careers__inner {
        align-content: flex-end;
        align-items: flex-end;
        flex-direction: column-reverse;
        flex-wrap: nowrap;
    }
    .careers__textWrapper {
        flex: none;
        margin: 0px 0px 0px 0px;
        padding: 0px 24px 0px;
        width: 100%;
        max-width: 100%;
    }
    .careers__textWrapper h2 {
        font-size: 48px;
        margin: 0px 0px 48px 0px;
        max-width: 100%;
    }
    .careers__textWrapper p {
        font-size: 14px;
        margin: 0px 0px 24px 0px;
    }
    .careers__btn p {
        font-size: 14px;
        margin: 0;
    }
    .careers__imageWrapper {
        flex: none;
        height: 400px;
        margin: 0px 0px 96px 0px;
        width: 100%;
        max-width: 100%;
    }
}
@media screen and (max-width: 540px) {
    .section__careers {
        padding: 0px 24px 96px;
    }
    .careers__textWrapper h2 {
        font-size: 28px;
        margin: 0px 0px 24px 0px;
        max-width: 100%;
    }
    .careers__btn p {
        font-size: 12px;
    }
    .careers__imageWrapper {
        flex: none;
        height: 240px;
        margin: 0px 0px 48px 0px;
        width: 100%;
        max-width: 100%;
    }
}


/* footer */


footer {
    display: flex;
    align-items: center;
    background: #000;
    flex-direction: column;
    padding: 96px 0px 96px;
    width: 100%;
    max-width: 100%;
}
footer .link:hover {
    opacity: .5;
    transform: unset;
}
.footer__cardWrapper {
    display: flex;
    justify-content: space-between;
    margin: 0px 0px 96px 0px;
    padding: 0px 48px 0px;
    width: 1280px;
    max-width: 100%;
}
.footer__card {
    background: #fff;
    display: flex;
    align-items: center;
    border-radius: 10px;
    box-shadow: 0px 2px 20px rgba(0, 0, 0, 0.1);
    justify-content: space-between;
    padding: 48px;
    transition-duration: 800ms;
    width: 49%;
    max-width: 49%;
}
.footer__card:hover .footer__cardInner {
    opacity: .5;
}
.footer__cardTitleWrapper {
    display: flex;
    align-items: center;
    margin: 0px 0px 24px 0px;
}
.footer__cardTitle {
    color: #1e5a9f;
    font-family: var(--font-montserrat);
    font-size: 36px;
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1;
    margin: 0px 0px 24px 0px;
}
.footer__cardTitle.title02 {
    margin: 0px 12px 0px 0px;
    max-width: calc(100% - 12px);
}
.footer__cardCategory {
    background: #1e5a9f;
    border-radius: 80px;
    color: #fff;
    font-family: var(--font-montserrat);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1;
    margin: 0px 0px 0px 0px;
    padding: 6px 12px 6px;
}
.footer__cardText {
    color: #000;
    font-family: var(--font-notosans);
    font-size: 16px;
    font-weight: 300;
    letter-spacing: 0.05em;
    line-height: 1.4;
}
.footer__card i {
    color: #000;
    font-size: 48px;
}
.footer__card:hover i {
    opacity: 0.5;
    transform: translate(10px, 0px);
}


.footer__nav {
    display: flex;
    justify-content: space-between;
    margin: 0px 0px 48px 0px;
    padding: 0px 48px 0px;
    width: 1280px;
    max-width: 100%;
}
.footer__navTitle {
    color: #fff;
    font-family: var(--font-montserrat);
    font-size: 20px;
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1;
    margin: 0px 24px 0px 0px;
    max-width: calc(100% - 24px);
}
.footer__navInner {
    display: flex;
}
.footer__navInner a {
    border-bottom: 2px solid #0000;
    color: #fff;
    font-family: var(--font-montserrat);
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.15em;
    line-height: 1.4;
    padding: 0px 12px 0px;
}
.footer__navOther {
    display: flex;
}
.footer__navOther p {
    color: #fff;
    font-family: var(--font-montserrat);
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.15em;
    line-height: 1.4;
    padding: 0px 6px 0px 12px;
}
.footer__navOther i {
    color: #fff;
    font-size: 20px;
}
.footer__nav02 {
    display: flex;
    margin: 0px 0px 24px 0px;
}
.footer__nav02 p {
    color: #fff;
    font-family: var(--font-montserrat);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.15em;
    line-height: 1.4;
    padding: 0px 12px 0px;
}
.footer__copy {
    color: #fff;
    font-family: var(--font-montserrat);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1.4;
}
@media screen and (max-width: 840px) {
    .footer__cardWrapper {
        flex-direction: column;
        flex-wrap: nowrap;
    }
    .footer__card {
        flex: none;
        height: 153px;
        margin: 0px 0px 48px 0px;
        padding: 24px;
        width: 100%;
        max-width: 100%;
    }
    .footer__card:last-child {
        margin: 0;
    }
    .footer__cardTitleWrapper {
        align-content: flex-start;
        align-items: flex-start;
        flex-direction: column-reverse;
        flex-wrap: nowrap;
        margin: 0px 0px 12px 0px;
        max-width: 100%;
    }
    .footer__cardTitle {
        font-size: 28px;
        margin: 0px 0px 12px 0px;
        max-width: 100%;
    }
    .footer__cardCategory {
        font-size: 10px;
        margin: 0px 0px 12px 0px;
        max-width: 100%;
    }
    .footer__cardText {
        font-size: 14px;
    }
    .footer__card i {
        font-size: 32px;
    }
    .footer__nav {
        flex-direction: column;
        flex-wrap: nowrap;
        margin: 0px 0px 24px 0px;
        max-width: 100%;
    }
    .footer__navTitle {
        margin: 0px 24px 24px 0px;
        max-width: calc(100% - 24px);
    }
    .footer__navInner {
        display: flex;
    }
    .footer__navInner a {
        display: flex;
    }
    .footer__nav02 {
        display: flex;
        flex: none;
        justify-content: flex-start;
        padding: 0px 48px 0px;
        width: 100%;
        max-width: 100%;
    }
    .footer__nav02 p {
        display: flex;
    }

}
@media screen and (max-width: 540px) {
    .footer__cardWrapper {
        flex-direction: column;
        flex-wrap: nowrap;
        padding: 0px 24px 0px;
    }
    .footer__card {
        flex: none;
        margin: 0px 0px 48px 0px;
        width: 100%;
    }
    .footer__cardTitleWrapper {
        flex: none;
        width: 100%;
        max-width: 100%;
    }
    .footer__cardText {
        font-size: 12px;
    }
    .footer__nav {
        margin: 0px 0px 48px 0px;
        padding: 0px 24px 0px;
        max-width: 100%;
    }
    .footer__navTitle {
        margin: 0px 24px 48px 0px;
        max-width: calc(100% - 24px);
    }
    .footer__navInner {
        align-content: flex-start;
        align-items: flex-start;
        display: flex;
        flex-direction: column;
        flex-wrap: nowrap;
    }
    .footer__navInner a {
        display: flex;
        margin: 0px 0px 24px 0px;
        padding: 0px 0px 0px;
        max-width: 100%;
    }
    .footer__navOther p {
        padding: 0px 6px 0px 0px;
    }
    .footer__nav02 {
        align-content: flex-start;
        align-items: flex-start;
        display: flex;
        flex: none;
        flex-direction: row;
        flex-wrap: nowrap;
        justify-content: flex-start;
        padding: 0px 24px 0px;
        width: 100%;
    }
    .footer__nav02 p {
        display: flex;
        margin: 0px 24px 0px 0px;
        padding: 0px 0px 0px;
        max-width: calc(100% - 24px);
    }
    .footer__copy {
        flex: none;
        padding: 0px 24px 0px;
        width: 100%;
        max-width: 100%;
    }
}
