/*#region var*/
:root {
    --pxunit: .8rem;
    --headerH: 9rem;
    --header-distance: 3rem;
    --fontB: 'Noto Sans JP';
    --fontT: 'Noto Serif JP';
    --fontY: 'Yu Mincho';
    --fontG: 'Georgia';
    --fontCG: 'Cormorant Garamond';
    --bg-white-color: #FFFFFF;
    --bg-black-color: #000000;
    --bg-font-color: #1F2724;
    --bg-gray-color: #EDEDEF;
    --bg-red-color: #FF0000;
    --bg-green-color: #159A57;
    --bg-blackblue-color: #183A32;
    --font-size12: 1.2rem;
    --font-size14: 1.4rem;
    --font-size15: 1.5rem;
    --font-size16: 1.6rem;
    --font-size18: 1.8rem;
    --font-size20: 2rem;
    --font-size22: 2.2rem;
    --font-size24: 2.4rem;
    --font-size26: 2.6rem;
    --font-size28: 2.8rem;
    --font-size30: 3rem;
    --font-size32: 3.2rem;
    --font-size34: 3.4rem;
    --font-size36: 3.6rem;
    --font-size38: 3.8rem;
    --font-size40: 4rem;
    --gap-unit: .8rem;
    --border-radius: .8rem;
    --margin: 16rem;
    --margin-lg: 20rem;
}
/*#endregion var*/

* {
    box-sizing: border-box;
}

html {
    font-size: calc(100vw / 144);
}

body {
    font-size: var(--font-size16);
    font-family: var(--fontB);
    font-weight: 400;
    color: var(--bg-font-color);
    line-height: 1.6;
    margin: 0;
    padding: 0;
    background-color: var(--bg-white-color);
}

html.hide-scroll,
body.hide-scroll {
    overflow: hidden;
}

.u-hx1 {
    content: "";
    height: var(--pxunit);
}

.u-hx2 {
    content: "";
    height: calc(var(--pxunit)*2);
}

.u-hx3 {
    content: "";
    height: calc(var(--pxunit)*3);
}

.u-hx4 {
    content: "";
    height: calc(var(--pxunit)*4);
}

.u-hx5 {
    content: "";
    height: calc(var(--pxunit)*5);
}

.u-hx6 {
    content: "";
    height: calc(var(--pxunit)*6);
}

.u-hx7 {
    content: "";
    height: calc(var(--pxunit)*7);
}

.u-hx8 {
    content: "";
    height: calc(var(--pxunit)*8);
}

.u-hx9 {
    content: "";
    height: calc(var(--pxunit)*9);
}

.u-hx10 {
    content: "";
    height: calc(var(--pxunit)*10);
}

.u-hx11 {
    content: "";
    height: calc(var(--pxunit)*11);
}

.u-hx12 {
    content: "";
    height: calc(var(--pxunit)*12);
}

.u-hx13 {
    content: "";
    height: calc(var(--pxunit)*13);
}

.u-hx14 {
    content: "";
    height: calc(var(--pxunit)*14);
}

.u-hx15 {
    content: "";
    height: calc(var(--pxunit)*15);
}

.u-hx16 {
    content: "";
    height: calc(var(--pxunit)*16);
}

.u-hx17 {
    content: "";
    height: calc(var(--pxunit)*17);
}

.u-hx18 {
    content: "";
    height: calc(var(--pxunit)*18);
}

.u-hx19 {
    content: "";
    height: calc(var(--pxunit)*19);
}

.u-hx20 {
    content: "";
    height: calc(var(--pxunit)*20);
}

.u-sp {
    display: none !important;
}

.u-tbs {
    display: none !important;
}

@media (max-width: 768px) {
    .u-tbh {
        display: none !important;
    }

    .u-tbs {
        display: block !important;
    }
}

@media (max-width: 450px) {
    .u-sp {
        display: block !important;
    }

    .u-pc {
        display: none !important;
    }
}

/*#endregion var*/

/*#region RESET*/
html {
    scroll-behavior: smooth;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    margin: 0px;
    padding: 0px;
    font-weight: normal;
}

p {
    margin: 0px;
    padding: 0px;
}

a {
    text-decoration: none;
    -webkit-transition: all 0.3s linear;
    -moz-transition: all 0.3s linear;
    -o-transition: all 0.3s linear;
    -ms-transition: all 0.3s linear;
    transition: all 0.3s linear;
}

a:hover,
a:focus,
a:active {
    outline: none;
    text-decoration: none;
}

input {
    -webkit-transition: all 0.3s linear;
    -moz-transition: all 0.3s linear;
    -o-transition: all 0.3s linear;
    -ms-transition: all 0.3s linear;
    transition: all 0.3s linear;
}

input:hover,
input:focus,
input:active {
    outline: none;
}

input::-webkit-input-placeholder {
    color: #333333;
}

input::-moz-placeholder {
    color: #333333;
}

input:-ms-input-placeholder {
    color: #333333;
}

input:-moz-placeholder {
    color: #333333;
}

textarea::-webkit-input-placeholder {
    color: #333333;
}

textarea::-moz-placeholder {
    color: #333333;
}

textarea:-ms-input-placeholder {
    color: #333333;
}

textarea:-moz-placeholder {
    color: #333333;
}

button:focus {
    outline: 0;
}

ul {
    margin: 0px;
    padding: 0px;
}

ul li {
    list-style-type: none;
}

img {
    border: 0px;
}

strong {
    font-weight: bold;
}

/*#endregion RESET*/

/*#region animation*/
.js-brush.on {
    animation: brush01 2.4s 0.2s steps(22) forwards;
}

.js-brush {
    -webkit-mask: url("../img/brush.png");
    mask: url("../img/brush.png");
    -webkit-mask-size: 2500% 100%;
    mask-size: 2500% 100%;
    -webkit-mask-position: 0 0;
    mask-position: 0 0;
}

@keyframes brush01 {
    0% {
        -webkit-mask-position: 0 0;
        mask-position: 0 0;
    }

    100% {
        -webkit-mask-position: 100% 0;
        mask-position: 100% 0;
    }
}

/* ----- fade up ----- */
.js-fade_y {
    transform: translate(0, 2rem);
    opacity: 0;
    transition: opacity 0.5s cubic-bezier(0.53, 0.2, 0.25, 1), transform 0.8s cubic-bezier(0.53, 0.2, 0.25, 1), -webkit-transform 0.8s cubic-bezier(0.53, 0.2, 0.25, 1);
    transition-delay: 0.06s
}

.js-fade_y.on {
    opacity: 1;
    transform: translate(0, 0rem);
    --webkit-transform: translate(0, 0rem);
}

/* ------inview------ */
[data-inview] {
    mask-image: linear-gradient(270deg, transparent 35%, #000 60%, #000);
    -webkit-mask-position: 100% 0;
    mask-position: 100% 0;
    -webkit-mask-size: 250% 100%;
    mask-size: 250% 100%;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    opacity: 0
}

[data-inview].inview,
[data-inview] * {
    transition: opacity 2.5s, -webkit-mask-position 2.5s cubic-bezier(0.165, 0.84, 0.44, 1);
    transition: opacity 2.5s, mask-position 2.5s cubic-bezier(0.165, 0.84, 0.44, 1);
    transition: opacity 2.5s, mask-position 2.5s cubic-bezier(0.165, 0.84, 0.44, 1), -webkit-mask-position 2.5s cubic-bezier(0.165, 0.84, 0.44, 1);
    -webkit-mask-position: 0 0;
    mask-position: 0 0;
    opacity: 1;
}

.js-brush.on {
    animation: brush01 2.4s 0.2s steps(22) forwards;
}

.js-brush {
    -webkit-mask: url("../img/brush.png");
    mask: url("../img/brush.png");
    -webkit-mask-size: 2500% 100%;
    mask-size: 2500% 100%;
    -webkit-mask-position: 0 0;
    mask-position: 0 0;
}

@keyframes brush01 {
    0% {
        -webkit-mask-position: 0 0;
        mask-position: 0 0;
    }

    100% {
        -webkit-mask-position: 100% 0;
        mask-position: 100% 0;
    }
}

/* ----- fade up ----- */
.js-fade_y {
    transform: translate(0, 2rem);
    opacity: 0;
    transition: opacity 0.5s cubic-bezier(0.53, 0.2, 0.25, 1), transform 0.8s cubic-bezier(0.53, 0.2, 0.25, 1), -webkit-transform 0.8s cubic-bezier(0.53, 0.2, 0.25, 1);
    transition-delay: 0.06s
}

.js-fade_y.on {
    opacity: 1;
    transform: translate(0, 0rem);
    --webkit-transform: translate(0, 0rem);
}

/* ------inview------ */
[data-inview] {
    mask-image: linear-gradient(270deg, transparent 35%, #000 60%, #000);
    -webkit-mask-position: 100% 0;
    mask-position: 100% 0;
    -webkit-mask-size: 250% 100%;
    mask-size: 250% 100%;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    opacity: 0
}

[data-inview].inview,
[data-inview] * {
    transition: opacity 2.5s, -webkit-mask-position 2.5s cubic-bezier(0.165, 0.84, 0.44, 1);
    transition: opacity 2.5s, mask-position 2.5s cubic-bezier(0.165, 0.84, 0.44, 1);
    transition: opacity 2.5s, mask-position 2.5s cubic-bezier(0.165, 0.84, 0.44, 1), -webkit-mask-position 2.5s cubic-bezier(0.165, 0.84, 0.44, 1);
    -webkit-mask-position: 0 0;
    mask-position: 0 0;
    opacity: 1;
}


/* ----- text blur ----- */
.js-animation_txt span {
    font-size: inherit;
    font-family: inherit;
    line-height: inherit;
    font-weight: inherit;
}

.js-animation_txt>span {
    display: block;
    color: var(--bg-white-color);
}
.js-animation_txt span {
    font-size: inherit;
    font-family: inherit;
    line-height: inherit;
    font-weight: inherit;
}

.js-animation_txt>span {
    display: block;
    color: var(--bg-white-color);
}

/* -------clip path----- */
.js-clip_path {
    clip-path: inset(0% 100% 0% 0%);
    transition: clip-path 1.2s cubic-bezier(0.165, 0.84, 0.44, 1);
}

.js-clip_path.on {
    clip-path: inset(0% 0% 0% 0%);
}


/* ----- js title ----- */
.js-title-en {
    opacity: 0;
    transform: translate3d(0, 1.4rem, 0);
}

.js-title.is-show .js-title-en {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.7s cubic-bezier(0.53, 0.2, 0.25, 1);
}

.js-title-char {
    display: inline-block;
    opacity: 0;
    transform: translate3d(0, 0.6em, 0);
}

.js-title.is-show .js-title-char {
    animation: titleCharIn 0.55s cubic-bezier(0.53, 0.2, 0.25, 1) forwards;
}

@keyframes titleCharIn {
    to {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

.js-title.has-line::before {
    transform: scaleX(0);
    transform-origin: left center;
}

.js-title.has-line.is-show::before {
    transform: scaleX(1);
    transition: transform 0.7s cubic-bezier(0.53, 0.2, 0.25, 1) var(--title-line-delay, 0.28s);
}

/*#endregion animation*/

/*#region layout*/
.wrapper {
    position: relative;
    background: linear-gradient(180deg, #FBFDFB 0%, #F6FBF8 45%, #FFFFFF 100%);
}

.l-container {
    padding: 0 var(--margin);
}

.c-lower__heading {
    position: relative;
}

.c-lower__heading::before,
.c-lower__heading::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.c-lower__heading::before {
    background: radial-gradient(55.06% 158.17% at 52% 48%, rgba(255, 255, 255, 0.74) 0%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0) 72%),
        linear-gradient(90deg, rgba(248, 252, 248, 0.94) 0%, rgba(248, 252, 248, 0.84) 42%, rgba(248, 252, 248, 0.64) 100%);
}

.c-lower__heading::after {
    background: radial-gradient(82.59% 237.25% at 78% 22%, rgba(55, 177, 142, 0.16) 0%, rgba(55, 177, 142, 0) 19%),
        linear-gradient(93.51deg, rgba(24, 58, 50, 0.03) 0%, rgba(24, 58, 50, 0.03) 0.07%, rgba(24, 58, 50, 0) 0.07%, rgba(24, 58, 50, 0) 0.53%);
}

.c-lower__heading-inner {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(var(--gap-unit)*8.5);
    padding: calc(var(--gap-unit)*1.5) calc(var(--gap-unit)*1.25);
    padding-top: calc(var(--header-distance) + var(--headerH) + var(--gap-unit)*7);
    padding-bottom: calc(var(--gap-unit)*10.7);
    z-index: 2;
}

.c-lower__heading-inner::before {
    content: "";
    position: absolute;
    inset: calc(var(--gap-unit)*1.5) calc(var(--gap-unit)*1.25);
    border: 1px solid #37B18E2E;
    pointer-events: none;
}

.c-lower__breadcrumb {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*0.5);
    width: 100%;
    padding: 0 var(--margin);
}

.c-lower__breadcrumb-list {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    gap: var(--gap-unit);
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    -ms-overflow-style: none;
    scrollbar-width: none;
}

.c-lower__breadcrumb-link {
    font-size: var(--font-size12);
    line-height: 1.9;
    color: #183A32A6;
}

.c-lower__breadcrumb-separator {
    font-size: var(--font-size14);
    line-height: 1;
    color: #183A32A6;
}

.c-lower__heading-main {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(var(--gap-unit)*3);
}

.c-lower__title {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(var(--gap-unit)*2.25);
    text-align: center;
}

.c-lower__title-en {
    font-size: var(--font-size14);
    font-family: var(--fontG);
    line-height: 1.9;
    color: #183A32A6;
    letter-spacing: .36em;
}

.c-lower__title-ja {
    font-size: 4.2rem;
    font-family: var(--fontT);
    font-weight: bold;
    color: var(--bg-blackblue-color);
    line-height: 1.9;
    letter-spacing: .1em;
}

.c-lower__lead {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: calc(var(--gap-unit)*2.25);
    font-size: var(--font-size14);
    color: #6A7C74;
    line-height: 1.9;
    letter-spacing: 0.18em;
    text-align: center;
}

.c-lower__lead p {
    flex: 1;
}

.c-lower__lead::before,
.c-lower__lead::after {
    content: "";
    display: block;
    width: 4.2rem;
    height: 1px;
    background-color: #37B18E;
}

@media (max-width: 768px) {
    .c-lower__heading-inner {
        gap: calc(var(--gap-unit)*7.5);
        padding-inline: var(--margin);
        padding-top: calc(var(--header-distance) + var(--headerH) + var(--gap-unit)*10);
    }

    .c-lower__breadcrumb {
        display: none;
    }

    .c-lower__title-ja {
        font-size: var(--font-size36);
    }

    .c-lower__title-en {
        font-size: var(--font-size12);
    }
}

@media (max-width: 450px) {
    .c-lower__heading-inner::before {
        inset: calc(var(--gap-unit)*1.25) calc(var(--gap-unit)*1);
    }

    .c-lower__heading-main {
        gap: calc(var(--gap-unit)*2.5);
    }

    .c-lower__title {
        gap: calc(var(--gap-unit)*2);
    }

    .c-lower__title-ja {
        font-size: var(--font-size34);
    }

    .c-lower__lead {
        font-size: 1.3rem;
        gap: calc(var(--gap-unit)*1.5);
    }

    .c-lower__lead::before,
    .c-lower__lead::after {
        width: 3.6rem;
    }
}

/* -------breadcrumb------- */
.c-breadcrumb {
    position: relative;
    padding: calc(var(--gap-unit)*2.5) var(--margin);
    background-color: #173654;
}

.c-breadcrumb__list {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    gap: calc(var(--gap-unit)*1.5);
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    -ms-overflow-style: none;
    scrollbar-width: none;
}

.c-breadcrumb__link {
    position: relative;
    display: inline-block;
    font-size: var(--font-size12);
    line-height: 1.9;
    color: var(--bg-white-color);
    letter-spacing: 1px;
    transition:
        color 0.3s ease,
        letter-spacing 0.35s ease,
        opacity 0.3s ease;
}

.c-breadcrumb__link::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0.15em;
    width: 100%;
    height: 1px;
    background: linear-gradient(90deg, #69A78A 0%, rgba(105, 167, 138, 0.2) 100%);
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform 0.4s cubic-bezier(0.77, 0, 0.175, 1);
}

.c-breadcrumb__separator {
    font-size: var(--font-size14);
    color: var(--bg-white-color);
    line-height: 1;
    opacity: 0.55;
    transition: opacity 0.3s ease, color 0.3s ease, transform 0.35s ease;
}

@media (hover: hover) {
    .c-breadcrumb__link:hover {
        color: #A8D4BE;
        letter-spacing: 0.08em;
    }

    .c-breadcrumb__link:hover::after {
        transform: scaleX(1);
    }

    .c-breadcrumb__item:has(.c-breadcrumb__link:hover) + .c-breadcrumb__item .c-breadcrumb__separator,
    .c-breadcrumb__item:has(.c-breadcrumb__separator):has(+ .c-breadcrumb__item .c-breadcrumb__link:hover) .c-breadcrumb__separator {
        color: #69A78A;
        opacity: 1;
        transform: translate3d(0.1rem, 0, 0);
    }
}

/* -------contactCta------- */
.c-contactCta {
    position: relative;
    padding: calc(var(--gap-unit)*8) 0;
    background: linear-gradient(108.25deg, rgba(21, 47, 75, 0.95) 0%, rgba(27, 58, 49, 0.96) 100%);
}

.c-contactCta__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(var(--gap-unit)*2.65);
    text-align: center;
}

.c-contactCta__label {
    font-size: var(--font-size16);
    font-weight: 700;
    line-height: 2;
    letter-spacing: 0.36em;
    color: #FFFFFF9E;
}

.c-contactCta__title {
    font-size: var(--font-size32);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.9;
    color: var(--bg-white-color);
    letter-spacing: 0.08em;
    margin-top: calc(var(--gap-unit)*1.5);
}

.c-contactCta__desc {
    font-size: var(--font-size16);
    line-height: 2;
    color: #FFFFFFC7;
    padding-bottom: calc(var(--gap-unit)*1.7);
}

.c-contactCta__btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: calc(var(--gap-unit)*1.75);
    min-width: 30rem;
    padding: calc(var(--gap-unit)*1.8) calc(var(--gap-unit)*4.5);
    font-size: var(--font-size15);
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.04em;
    color: #1B3A31;
    background-color: var(--bg-white-color);
    border-radius: 10rem;
    border: 2px solid var(--bg-white-color);
    transition: color 0.3s linear, background-color 0.3s linear;
}

.c-contactCta__btn:hover {
    color: var(--bg-white-color);
    background-color: transparent;
}

@media (max-width: 768px) {
    .c-contactCta__title {
        font-size: var(--font-size30);
    }

    .c-contactCta__desc {
        font-size: var(--font-size15);
    }
}

@media (max-width: 450px) {
    .c-contactCta__inner {
        gap: calc(var(--gap-unit)*3);
    }

    .c-contactCta__title {
        font-size: var(--font-size26);
    }

    .c-contactCta__label {
        font-size: var(--font-size14);
    }
}



/* -------lineCta------- */
.c-lineCta {
    position: relative;
}

.c-lineCta__inner {
    display: flex;
    align-items: stretch;
    gap: calc(var(--gap-unit)*5);
    padding: calc(var(--gap-unit)*4) calc(var(--gap-unit)*5.25);
    background: radial-gradient(100.23% 226.81% at 92% 10%, rgba(6, 199, 85, 0.1) 0%, rgba(6, 199, 85, 0) 26%), linear-gradient(113.84deg, #F7FFF9 0%, #FFFFFF 100%);
    border: 1px solid #C8E8D4;
    overflow: hidden;
    opacity: 0;
    transform: translate3d(0, 2rem, 0);
}

.c-lineCta__inner.is-show {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.65s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.85s cubic-bezier(0.22, 1, 0.36, 1);
}

.c-lineCta__body {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: var(--gap-unit);
}

.c-lineCta__label {
    display: inline-block;
    align-self: flex-start;
    font-size: var(--font-size15);
    font-weight: 500;
    line-height: 1.6;
    color: #667A72;
    letter-spacing: 0.08em;
    clip-path: inset(0 100% 0 0);
    opacity: 0;
}

.c-lineCta.is-body-show .c-lineCta__label {
    clip-path: inset(0 0 0 0);
    opacity: 1;
    transition:
        clip-path 0.7s cubic-bezier(0.77, 0, 0.175, 1) 0.1s,
        opacity 0.4s ease 0.1s;
}

.c-lineCta__title {
    font-size: var(--font-size30);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.55;
    color: #1B3A31;
    letter-spacing: 0.06em;
    opacity: 0;
    transform: translate3d(0, 1.2rem, 0);
}

.c-lineCta.is-body-show .c-lineCta__title {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1) 0.2s,
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.2s;
}

.c-lineCta__desc {
    font-size: var(--font-size15);
    line-height: 2;
    color: #667A72;
    margin-top: calc(var(--gap-unit)*2.25);
    opacity: 0;
    transform: translate3d(0, 1rem, 0);
}

.c-lineCta.is-body-show .c-lineCta__desc {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1) 0.32s,
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.32s;
}

.c-lineCta__steps {
    display: flex;
    gap: calc(var(--gap-unit)*1.5);
    margin-top: calc(var(--gap-unit)*3.75);
    margin-bottom: calc(var(--gap-unit)*2.75);
}

.c-lineCta__step {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*1);
    flex: 1;
    padding: calc(var(--gap-unit)*2);
    background-color: var(--bg-white-color);
    border: 1px solid #06C75538;
    opacity: 0;
    transform: translate3d(0, 1.4rem, 0);
}

.c-lineCta.is-body-show .c-lineCta__step {
    opacity: 1;
    transform: translate3d(0, 0, 0);
}

.c-lineCta.is-body-show .c-lineCta__step:nth-child(1) {
    transition:
        opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1) 0.42s,
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.42s;
}

.c-lineCta.is-body-show .c-lineCta__step:nth-child(2) {
    transition:
        opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1) 0.54s,
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.54s;
}

.c-lineCta.is-body-show .c-lineCta__step:nth-child(3) {
    transition:
        opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1) 0.66s,
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.66s;
}

.c-lineCta__step-num {
    font-size: var(--font-size20);
    font-family: var(--fontT);
    font-weight: 500;
    line-height: 1;
    color: var(--bg-green-color);
}

.c-lineCta__step-txt {
    font-size: var(--font-size14);
    font-weight: 700;
    line-height: 1.7;
    color: #1B3A31;
}

.c-lineCta__example {
    position: relative;
    padding: calc(var(--gap-unit)*1.75);
    padding-left: calc(var(--gap-unit)*2.25);
    font-size: var(--font-size14);
    line-height: 1.7;
    color: #667A72;
    border-left: 3px solid #06C755;
    background-color: #FFFFFFC7;
    opacity: 0;
    transform: translate3d(-1rem, 0, 0);
}

.c-lineCta.is-body-show .c-lineCta__example {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.5s cubic-bezier(0.53, 0.2, 0.25, 1) 0.78s,
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.78s;
}

.c-lineCta__card {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    gap: calc(var(--gap-unit)*1.7);
    width: 33rem;
    padding: calc(var(--gap-unit)*3);
    background-color: var(--bg-white-color);
    border: 1px solid #06C7553D;
    box-shadow: 0px 16px 42px 0px #06C75514;
    opacity: 0;
    transform: translate3d(2rem, 0, 0) scale(0.96);
}

.c-lineCta.is-card-show .c-lineCta__card {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
    transition:
        opacity 0.6s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}

.c-lineCta__qr {
    display: flex;
    width: 75%;
    clip-path: inset(12% 12% 12% 12%);
    opacity: 0;
}

.c-lineCta.is-card-show .c-lineCta__qr {
    clip-path: inset(0 0 0 0);
    opacity: 1;
    transition:
        clip-path 0.9s cubic-bezier(0.77, 0, 0.175, 1) 0.15s,
        opacity 0.4s ease 0.15s;
}

.c-lineCta__qr img {
    width: 100%;
}

.c-lineCta__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: calc(var(--gap-unit)*1.25);
    width: 100%;
    padding: calc(var(--gap-unit)*1.5) calc(var(--gap-unit)*2);
    font-size: var(--font-size15);
    font-weight: 700;
    line-height: 1.9;
    color: var(--bg-white-color);
    text-align: center;
    background-color: #06C755;
    border-radius: 10rem;
    border: 2px solid #06C755;
    opacity: 0;
    transform: translate3d(0, 1rem, 0);
    transition: all 0.3s linear;
}

.c-lineCta.is-card-show .c-lineCta__btn {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1) 0.35s,
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.35s,
        color 0.3s linear,
        background-color 0.3s linear;
}

.c-lineCta__btn:hover {
    color: #06C755;
    background-color: var(--bg-white-color);
}

.c-lineCta__note {
    font-size: var(--font-size12);
    line-height: 1.8;
    color: #667A72;
    text-align: center;
    opacity: 0;
    transform: translate3d(0, 0.8rem, 0);
}

.c-lineCta.is-card-show .c-lineCta__note {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.5s cubic-bezier(0.53, 0.2, 0.25, 1) 0.48s,
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.48s;
}

@media (max-width: 768px) {
    .c-lineCta__inner {
        display: flex;
        flex-direction: column;
        align-items: center;
        padding: calc(var(--gap-unit)*5) calc(var(--gap-unit)*4);
    }

    .c-lineCta__body {
        width: 100%;
    }

    .c-lineCta__title {
        font-size: var(--font-size26);
    }

    .c-lineCta__card {
        transform: translate3d(0, 2rem, 0) scale(0.98);
    }
}

@media (max-width: 450px) {
    .c-lineCta__inner {
        gap: calc(var(--gap-unit)*4);
        padding: calc(var(--gap-unit)*5) calc(var(--gap-unit)*2.5);
    }

    .c-lineCta__title {
        font-size: var(--font-size24);
    }

    .c-lineCta__steps {
        flex-direction: column;
        margin-top: calc(var(--gap-unit)*2.5);
        margin-bottom: calc(var(--gap-unit)*1.25);
    }

    .c-lineCta__step {
        padding: calc(var(--gap-unit)*2) calc(var(--gap-unit)*3);
    }

    .c-lineCta__card {
        width: 100%;
    }

    .c-lineCta__note {
        font-size: var(--font-size14);
    }

    .c-lineCta__step-txt br {
        display: none;
    }
}

.c-sec__heading {
    position: relative;
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: calc(var(--gap-unit)*5.5);
}

.c-sec__title {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: calc(var(--gap-unit)*2.25);
}

.c-sec__title-en {
    font-size: var(--font-size12);
    font-weight: bold;
    line-height: 2;
    letter-spacing: .33em;
    color: #159A57;
}

.c-sec__title-ja {
    font-size: var(--font-size32);
    font-family: var(--fontT);
    font-weight: bold;
    color: #1B3A31;
    line-height: 1.5;
    letter-spacing: .08em;
}

.c-sec__lead {
    font-size: var(--font-size16);
    line-height: 2;
    color: #667A72;
}

@media (max-width: 768px) {
    .c-sec__heading {
        flex-direction: column;
        align-items: flex-start;
        gap: calc(var(--gap-unit)*2.5);
    }

    .c-sec__title {
        gap: calc(var(--gap-unit)*1.75);
    }

    .c-sec__title-ja {
        font-size: var(--font-size28);
    }

    .c-sec__lead {
        font-size: var(--font-size15);
    }
}

/*#endregion layout*/


/*#region HEADER*/
.l-header {
    position: fixed;
    top: var(--header-distance);
    left: 0;
    width: 100%;
    height: var(--headerH);
    padding: 0 calc(var(--gap-unit)*4);
    background-color: transparent;
    z-index: 100;
}

.l-header__inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    height: 100%;
    padding: 0 calc(var(--gap-unit)*5);
    border-radius: 10rem;
    transition:
        background-color 0.3s ease,
        box-shadow 0.3s ease;
}

.l-header.is-scrolled .l-header__inner {
    background-color: var(--bg-white-color);
    box-shadow: 0 1px 0 rgba(55, 177, 142, 0.12);
}

.l-header__logo {
    display: flex;
    gap: calc(var(--gap-unit)*1.75);
}

.l-header__logo-link {
    display: flex;
    align-items: center;
    gap: calc(var(--gap-unit)*1.75);
}

.l-header__logo-img {
    display: flex;
    align-items: center;
    width: 8rem;
}

.l-header__logo-img img {
    width: 100%;
}

.l-header__logo-txt {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*1.5);
}

.l-header__logo-txt-ja {
    font-size: var(--font-size22);
    font-family: var(--fontT);
    font-weight: 800;
    color: var(--bg-font-color);
    line-height: 1.2;
}

.l-header__logo-txt-en {
    font-size: 1rem;
    font-family: var(--fontG);
    color: #1F27248F;
    line-height: 1;
    letter-spacing: .28em;
    padding-left: .3em;
}

.l-hamburger {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 4.8rem;
    height: 2.6rem;
    overflow: hidden;
    background-color: transparent;
    border: none;
    outline: none;
    cursor: pointer;
    z-index: 20;
}

.l-hamburger__line {
    position: absolute;
    left: 0;
    display: inline-block;
    width: 3.4rem;
    height: 2px;
    background-color: var(--bg-blackblue-color);
    transition: transform 0.4s ease, opacity 0.4s ease, top 0.4s ease, bottom 0.4s ease;
    transform-origin: center;
}

.l-hamburger__line--1 {
    top: 0;
}

.l-hamburger__line--2 {
    top: 50%;
    transform: translateY(-50%);
}

.l-hamburger__line--3 {
    bottom: 0;
}

.l-hamburger.is-active .l-hamburger__line--1 {
    top: 50%;
    transform: translateY(-50%) rotate(225deg);
}

.l-hamburger.is-active .l-hamburger__line--2 {
    opacity: 0;
    transform: translateY(-50%) translateX(100%);
}

.l-hamburger.is-active .l-hamburger__line--3 {
    bottom: 50%;
    transform: translateY(50%) rotate(-225deg);
}

@media (max-width: 768px) {
    .l-header {
        padding: 0 calc(var(--gap-unit)*2);
    }
    .l-header__inner {
        padding: 0 calc(var(--gap-unit)*1.5);
    }

    .l-header__logo-link {
        gap: calc(var(--gap-unit)*1.5);
    }

    .l-header__logo-img {
        width: 7rem;
    }

    .l-header__logo-txt-ja {
        font-size: var(--font-size20);
    }

    .l-hamburger {
        width: 4.4rem;
        height: 2.4rem;
    }

    .l-hamburger__line {
        width: 3rem;
    }
}

@media (max-width: 450px) {
    .l-header {
        padding: 0 var(--gap-unit);
    }

    .l-header__inner {
        padding: 0 0 0 1rem;
    }

    .l-header__logo-link {
        gap: calc(var(--gap-unit)*1.25);
    }

    .l-header__logo-img {
        width: 6rem;
    }

    .l-header__logo-txt-ja {
        font-size: var(--font-size18);
    }
}

.l-fullMenu {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    -webkit-backdrop-filter: blur(14px);
    backdrop-filter: blur(14px);
    opacity: 0;
    visibility: hidden;
    background-color: rgba(255, 255, 255, 0.05);
    transition: opacity 0.6s, visibility 0.6s;
    z-index: 10;
    pointer-events: none;
}

.l-fullMenu.is-active {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.l-fullMenu__content {
    position: fixed;
    inset: calc(var(--gap-unit)*4);
    background: url(../img/bg-fullmenu.jpg) no-repeat center;
    background-size: cover;
    box-shadow: 0px 2px 8px rgba(0, 0, 0, 0.16);
    transform: rotate3d(3, 2, 1, -38deg);
    transform-origin: 100% 0%;
    transition: transform 0.6s ease;
}

.l-fullMenu.is-active .l-fullMenu__content {
    transform: none;
}

.l-fullMenu__inner {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100%;
    max-height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(var(--gap-unit)*8);
    transform: translate(-50%, -50%);
}

.l-fullMenu__logo-link {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(var(--gap-unit)*2);
}

.l-fullMenu__logo-txt {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(var(--gap-unit));
}

.l-fullMenu__logo-img {
    display: flex;
    width: 7.2rem;
}

.l-fullMenu__logo-img img {
    width: 100%;
}

.l-fullMenu__logo-txt-ja {
    font-size: var(--font-size22);
    font-weight: bold;
    line-height: 1.2;
    color: var(--bg-font-color);
    letter-spacing: .15em;
}

.l-fullMenu__logo-txt-en {
    font-size: var(--font-size12);
    font-family: var(--fontG);
    line-height: 1.9;
    color: #1F27248F;
    letter-spacing: .28em;
    padding-left: .3em;
}

.l-fullMenu__box {
    display: flex;
    flex-direction: row-reverse;
    justify-content: center;
    gap: calc(var(--gap-unit)*10);
}

.l-fullMenu__nav-list {
    display: flex;
    flex-direction: row-reverse;
    gap: calc(var(--gap-unit)*4);
}

.l-fullMenu__nav-item {
    flex: 1;
}

.l-fullMenu__nav-link {
    position: relative;
    display: flex;
    align-items: center;
    gap: calc(var(--gap-unit)*1);
    font-size: var(--font-size16);
    font-family: var(--fontT);
    font-weight: 600;
    line-height: 1;
    letter-spacing: .25em;
    color: var(--bg-font-color);
    text-wrap: nowrap;
    writing-mode: vertical-rl;
    transition: color 0.2s;
}

.l-fullMenu__nav-link:hover {
    color: #AACAD1;
}

.l-fullMenu__nav-link .ripple-effect {
    position: absolute;
    top: -5.3rem;
    left: 50%;
    display: block;
    width: 12rem;
    height: 12rem;
    background: radial-gradient(#fff 0%,
            #f0f8fd 19.7%,
            #9ed1f4 32.51%,
            #f8fcff 49.75%,
            #b1dbff 70.94%,
            #f8fcff 87.68%,
            #fff 100%);
    border-radius: 50%;
    z-index: -2;
    transform: translateX(-50%) scale(0);
    animation: navDotRippleEffect 750ms cubic-bezier(0, 0, 0, 1) backwards;
    opacity: 0;
    pointer-events: none;
}

@keyframes navDotRippleEffect {
    0% {
        opacity: 1;
        transform: translateX(-50%) scale(0);
    }

    100% {
        opacity: 0;
        transform: translateX(-50%) scale(1);
    }
}

.l-fullMenu__nav-txt {
    writing-mode: vertical-lr;
    text-orientation: upright;
}

.l-fullMenu__nav-txt span {
    writing-mode: sideways-lr;
}

.l-fullMenu__nav-link::before {
    content: "";
    display: flex;
    width: 1.4rem;
    height: 1.4rem;
    background-color: #AACAD1;
    border-radius: 50%;
    transition: opacity 0.3s linear;
}

.l-fullMenu__nav-link:hover::before {
    opacity: 0;
}

.l-fullMenu__info {
    display: flex;
    flex-direction: row-reverse;
    justify-content: center;
    gap: calc(var(--gap-unit)*5);
}

.l-fullMenu__company {
    display: flex;
    flex-direction: column-reverse;
    gap: calc(var(--gap-unit)*1);
    font-size: var(--font-size20);
    font-family: var(--fontT);
    font-weight: bold;
    line-height: 1.1;
    letter-spacing: .3em;
    writing-mode: vertical-lr;
    color: #333;
}

.l-fullMenu__info-item {
    display: flex;
    flex-direction: row-reverse;
    gap: var(--gap-unit);
}

.l-fullMenu__info-txt {
    font-size: var(--font-size14);
    line-height: 1.6;
    color: #333;
    writing-mode: vertical-lr;
    letter-spacing: .2em;
}

.l-fullMenu__info-txt span {
    writing-mode: horizontal-tb;
}

.l-fullMenu__info-label {
    font-size: var(--font-size14);
    line-height: 1;
    letter-spacing: .24em;
    color: var(--bg-green-color);
    writing-mode: vertical-lr;
}

.l-fullMenu__btns {
    display: flex;
    flex-direction: row-reverse;
    gap: calc(var(--gap-unit)*2.25);
    height: fit-content;
}

.l-fullMenu__btn {
    position: relative;
    display: flex;
    flex-direction: row-reverse;
    gap: var(--gap-unit);
    align-items: center;
    color: #1B3A31;
    padding: calc(var(--gap-unit)*6.5) calc(var(--gap-unit)*1.4);
    border: 1px solid #69A78A33;
    box-shadow: 0px 14px 40px 0px #182F280F;
}

.l-fullMenu__btn .ripple-effect {
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    width: 100%;
    height: 100%;
    transform: scale(1);
    opacity: 0;
    background-color: #B8D3DDB8;
    animation: btnRippleEffect 800ms cubic-bezier(0, 0, 0, 1) backwards;
    pointer-events: none;
    z-index: -1;
}

@keyframes btnRippleEffect {
    0% {
        opacity: 1;
        transform: scale(1);
    }

    100% {
        opacity: 0;
        transform: scale(1.6, 1.2);
    }
}

.l-fullMenu__btn--estimate {
    background-color: #B8D3DDB8;
}

.l-fullMenu__btn--recruit {
    background-color: #1B3A31;
    border-color: #182F280F;
    color: var(--bg-white-color);
}

.l-fullMenu__btn-txt {
    font-size: var(--font-size18);
    font-family: var(--fontT);
    font-weight: bold;
    line-height: 1;
    letter-spacing: .4em;
    writing-mode: vertical-lr;
}

.l-fullMenu__btn-txt-en {
    display: flex;
    font-size: 1rem;
    font-weight: 600;
    line-height: 1;
    letter-spacing: .2em;
    writing-mode: vertical-lr;
    text-orientation: upright;
}

@media (max-width: 768px) {
    .l-fullMenu__content {
        inset: 0;
    }

    .l-fullMenu__inner {
        height: 100vh;
        justify-content: center;
        gap: calc(var(--gap-unit)*6);
        padding: 0 var(--margin);
        padding-bottom: 3vh;
        padding-top: calc(var(--headerH) + var(--header-distance) + 2vh);
    }

    .l-fullMenu__logo-img {
        width: 8rem;
    }

    .l-fullMenu__box {
        flex-direction: column;
        align-items: center;
        gap: calc(var(--gap-unit)*6);
        width: 100%;
    }

    .l-fullMenu__nav-list {
        gap: calc(var(--gap-unit)*4.5);
    }

    .l-fullMenu__info {
        display: none;
    }

    .l-fullMenu__btns {
        gap: calc(var(--gap-unit)*2);
        width: 100%;
    }

    .l-fullMenu__btn {
        flex: 1;
        flex-direction: column;
        gap: calc(var(--gap-unit)*1.3);
        padding: calc(var(--gap-unit)*1.5) calc(var(--gap-unit)*3);
    }

    @keyframes btnRippleEffect {
        0% {
            opacity: 1;
            transform: scale(1);
        }
    
        100% {
            opacity: 0;
            transform: scale(1.2, 1.6);
        }
    }

    .l-fullMenu__btn-txt,
    .l-fullMenu__btn-txt-en {
        writing-mode: horizontal-tb;
    }

    .l-fullMenu__btn-txt {
        letter-spacing: .2em;
    }
}

@media (max-width: 450px) {

    .l-fullMenu__nav-list,
    .l-fullMenu__nav {
        justify-content: space-between;
        gap: calc(var(--gap-unit)*3);
        width: 100%;
    }

    .l-fullMenu__box {
        justify-content: flex-start;
        gap: calc(var(--gap-unit)*4);
        overflow-y: auto;
        padding: 2.5rem 1.5rem;
        scrollbar-width: thin;
        scrollbar-color: #159A57 #E8F0EC;
    }

    .l-fullMenu__box::-webkit-scrollbar {
        width: 0.6rem;
    }

    .l-fullMenu__box::-webkit-scrollbar-track {
        background-color: #E8F0EC;
        border-radius: 999px;
    }

    .l-fullMenu__box::-webkit-scrollbar-thumb {
        background-color: #159A57;
        border-radius: 999px;
    }

    .l-fullMenu__box::-webkit-scrollbar-thumb:hover {
        background-color: #117A45;
    }

    .l-fullMenu__btns {
        flex-direction: column;
        width: 85%;
    }

    .l-fullMenu__btn {
        width: 100%;
        padding: calc(var(--gap-unit)*2) calc(var(--gap-unit)*5);
    }

    .l-fullMenu__btn-txt {
        font-size: var(--font-size20);
    }
}





/* -------page home------- */
#home .l-header__logo {
    display: none;
}

#home .l-hamburger {
    position: fixed;
    top: 50%;
    right: 4.5rem;
    transform: translateY(-50%);
}

@media (min-width: 768px) {
    #home .l-header.is-scrolled .l-header__inner {
        background-color: transparent;
        box-shadow: none;
    }
}

@media (max-width: 768px) {
    #home .l-header.is-scrolled .l-header__logo {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
    }
}

.l-hero {
    position: relative;
    width: 100%;
    height: 100vh;
    background: linear-gradient(270deg, rgba(248, 252, 248, 0.82) 0%, rgba(248, 252, 248, 0.65) 50%, rgba(248, 252, 248, 0.46) 100%),
        url(../img/fv_bg.png) center / cover no-repeat;
    overflow: hidden;
}

.l-hero::before {
    content: "";
    position: absolute;
    inset: calc(var(--gap-unit)) calc(var(--gap-unit)*1.5);
    border: 1px solid #37B18E33;
    pointer-events: none;
    z-index: 2;
}

.l-hero__inner {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    width: 100%;
    height: 100%;
    padding: 5vh 5rem 3.5vh;
    z-index: 3;
}

.l-hero__drone {
    position: absolute;
    top: 6rem;
    left: 5rem;
    display: flex;
    align-items: center;
    gap: calc(var(--gap-unit)*1.5);
    font-size: var(--font-size12);
    font-family: var(--fontCG);
    line-height: 1;
    letter-spacing: 0.3em;
    color: #6A7C74;
}

.l-hero__drone::before {
    content: "";
    display: flex;
    width: 6rem;
    height: 1px;
    background-color: #6A7C74;
}

.l-hero__copy {
    position: absolute;
    left: 3rem;
    bottom: 10vh;
    font-size: 1rem;
    line-height: 1;
    letter-spacing: .4em;
    color: #183A3290;
    writing-mode: vertical-rl;
}

.l-hero__scroll {
    position: absolute;
    left: 50%;
    bottom: 4vh;
    z-index: 4;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(var(--gap-unit)*1.5);
    color: #71857C;
    transform: translateX(-50%);
    transition: color 0.35s ease, opacity 0.8s, visibility 0.8s;
}

.l-hero__scroll-label {
    font-size: var(--font-size12);
    font-family: var(--fontG);
    line-height: 1.6;
    letter-spacing: 0.26em;
}

.l-hero__scroll-line {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 1px;
    height: 3.6rem;
}

.l-hero__scroll-track {
    position: absolute;
    top: 0;
    left: 0;
    width: 1px;
    height: 3.5rem;
    background-color: currentColor;
    transform: scaleY(0);
    transform-origin: top center;
    animation: heroScrollDraw 2.4s cubic-bezier(0.65, 0, 0.35, 1) infinite;
}

.l-hero__scroll-arrow {
    position: absolute;
    bottom: -0.05rem;
    width: 0.8rem;
    height: 0.8rem;
    animation: heroScrollArrow 2.4s cubic-bezier(0.65, 0, 0.35, 1) infinite;
}

.l-hero__scroll-arrow::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border-right: 1px solid #71857C;
    border-bottom: 1px solid #71857C;
    transform: rotate(45deg);
}

@keyframes heroScrollDraw {
    0% {
        transform: scaleY(0);
        opacity: 0.35;
    }

    40% {
        transform: scaleY(1);
        opacity: 1;
    }

    60% {
        transform: scaleY(1);
        opacity: 1;
    }

    100% {
        transform: scaleY(0);
        opacity: 0.35;
    }
}

@keyframes heroScrollArrow {
    0%,
    28% {
        opacity: 0;
        transform: translateY(-0.4rem);
    }

    45%,
    72% {
        opacity: 1;
        transform: translateY(0);
    }

    100% {
        opacity: 0;
        transform: translateY(0.35rem);
    }
}

@media (hover: hover) {
    .l-hero__scroll:hover {
        color: #159A57;
    }

    .l-hero__scroll:hover .l-hero__scroll-track,
    .l-hero__scroll:hover .l-hero__scroll-arrow {
        animation-play-state: paused;
    }
}

.l-hero__main {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: center;
    width: fit-content;
    margin: 0 auto;
    padding: 6rem 10rem 3.5rem;
    z-index: 2;
}

.l-hero__logo {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*2);
    padding-right: 3.5rem;
    margin-bottom: calc(var(--gap-unit)*3.5);
    z-index: 3;
}

.l-hero__logo-brand {
    position: relative;
    font-size: var(--font-size14);
    font-family: var(--fontCG);
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0.3em;
    color: #6A7C74;
    text-align: right;
}

.l-hero__logo-main {
    display: flex;
    gap: calc(var(--gap-unit)*2);
}

.l-hero__logo-img {
    display: flex;
    width: 9rem;
}

.l-hero__logo-img img {
    width: 100%;
}

.l-hero__logo-name {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: calc(var(--gap-unit)*1.5);
    text-align: center;
}

.l-hero__logo-name-en {
    font-size: var(--font-size28);
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0.15em;
    color: #1B3A31;
}

.l-hero__logo-name-ja {
    font-size: var(--font-size15);
    font-family: var(--fontCG);
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0.3em;
    color: #6A7C74;
}

.l-hero__title {
    position: relative;
    font-size: 5.2rem;
    font-family: var(--fontT);
    font-weight: 600;
    line-height: 1.4;
    letter-spacing: 0.08em;
    margin-bottom: calc(var(--gap-unit)*3.5);
    z-index: 2;
}

.l-hero__text {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*2);
    z-index: 2;
}

.l-hero__text-main {
    font-size: var(--font-size18);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.08em;
    text-align: center;
}

.l-hero__text-sub {
    font-size: var(--font-size14);
    font-family: var(--fontT);
    font-weight: 600;
    line-height: 1.7;
    letter-spacing: 0.08em;
}

.l-hero__bottom {
    position: relative;
    z-index: 2;
    display: flex;
    justify-content: space-between;
    flex-direction: row-reverse;
    align-items: flex-start;
    gap: calc(var(--gap-unit)*4);
    padding-left: calc(var(--gap-unit)*2);
    flex-shrink: 0;
}

.l-hero-news {
    position: relative;
    min-width: 46rem;
    padding: calc(var(--gap-unit));
    background-color: #F8FCF952;
    border: 1px solid #FFFFFFB8;
}

.l-hero-news::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    filter: blur(14px);
    -webkit-filter: blur(14px);
    box-shadow: 0px 1px 0px 1px #FFFFFFB2 inset, 0px 20px 48px 0px #183A3224;
}

.l-hero-news__inner {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*1);
    padding: calc(var(--gap-unit)*2);
    border: 1px solid #159A5780;
    z-index: 2;
}

.l-hero-news__label {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit));
    background: linear-gradient(0deg, rgba(24, 58, 50, 0.15) 38.46%, rgba(24, 58, 50, 0.1) 100%);
    padding: var(--gap-unit) 0;
}

.l-hero-news__label-en {
    font-size: .9rem;
    font-family: var(--fontG);
    letter-spacing: 0.2em;
    color: #37B18E;
}

.l-hero-news__label-ja {
    font-size: var(--font-size18);
    font-family: var(--fontT);
    font-weight: 700;
    letter-spacing: 0.12em;
}

.l-hero-news__list {
    display: flex;
    flex-direction: column;
}

.l-hero-news__item {
    position: relative;
    display: flex;
    align-items: center;
    gap: calc(var(--gap-unit)*1.25);
    padding: calc(var(--gap-unit)*1.25) calc(var(--gap-unit)*1) calc(var(--gap-unit)*1.25) calc(var(--gap-unit)*1.25);
    margin: 0;
    border-bottom: 1px solid #183A3221;
    overflow: hidden;
    transition:
        background-color 0.35s ease,
        box-shadow 0.35s ease;
}

.l-hero-news__item::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 2px;
    height: 100%;
    background: linear-gradient(180deg, #37B18E 0%, rgba(55, 177, 142, 0.2) 100%);
    transform: scaleY(0);
    transform-origin: top center;
    transition: transform 0.4s cubic-bezier(0.77, 0, 0.175, 1);
}

.l-hero-news__item::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(55, 177, 142, 0.1) 0%, rgba(255, 255, 255, 0.2) 55%, transparent 100%);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.35s ease;
}

.l-hero-news__date {
    position: relative;
    z-index: 1;
    flex-shrink: 0;
    font-size: 1.3rem;
    font-weight: 500;
    line-height: 1;
    width: 9rem;
    letter-spacing: 0.04em;
    color: #53697D;
    transition: color 0.35s ease, letter-spacing 0.35s ease;
}

.l-hero-news__title {
    position: relative;
    z-index: 1;
    flex: 1;
    font-size: 1.3rem;
    font-family: var(--fontT);
    font-weight: 500;
    line-height: 1.7;
    letter-spacing: 0.04em;
    color: #1F2724E5;
    transition: color 0.35s ease, transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}

.l-hero-news__btn {
    position: relative;
    margin-top: var(--gap-unit);
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    gap: calc(var(--gap-unit)*1);
    font-size: var(--font-size14);
    line-height: 1;
    letter-spacing: .16em;
    color: #183A32C2;
    transition:
        color 0.35s ease,
        letter-spacing 0.35s ease,
        transform 0.35s cubic-bezier(0.34, 1.4, 0.64, 1);
}

.l-hero-news__btn-txt {
    transition: color 0.35s ease;
}

.l-hero-news__btn-icon {
    display: flex;
    width: 1.2rem;
    transition: transform 0.4s cubic-bezier(0.34, 1.4, 0.64, 1);
}

.l-hero-news__btn-icon svg {
    width: 100%;
}

.l-hero-news__btn-icon svg path {
    transition: fill 0.35s ease, fill-opacity 0.35s ease;
}

@media (hover: hover) {
    .l-hero-news__item:hover {
        background-color: rgba(255, 255, 255, 0.35);
    }

    .l-hero-news__item:hover::before {
        transform: scaleY(1);
    }

    .l-hero-news__item:hover::after {
        opacity: 1;
    }

    .l-hero-news__item:hover .l-hero-news__date {
        color: #159A57;
        letter-spacing: 0.08em;
    }

    .l-hero-news__item:hover .l-hero-news__title {
        color: #1B3A31;
        transform: translate3d(0.35rem, 0, 0);
    }

    .l-hero-news__btn:hover {
        color: #159A57;
        letter-spacing: 0.22em;
        transform: translate3d(0.2rem, 0, 0);
    }

    .l-hero-news__btn:hover .l-hero-news__btn-icon {
        transform: translate3d(0.35rem, 0, 0);
    }

    .l-hero-news__btn:hover .l-hero-news__btn-icon svg path {
        fill: #159A57;
        fill-opacity: 1;
    }
}

.l-nav {
    position: relative;
    flex: 1;
    z-index: 2;
}

.l-nav__list {
    display: flex;
    flex-direction: row-reverse;
    justify-content: flex-start;
    align-items: flex-start;
    gap: calc(var(--gap-unit)*3.5);
    list-style: none;
}

.l-nav__item {
    flex-shrink: 0;
}

.l-nav__link {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(var(--gap-unit)*1);
    color: var(--bg-font-color);
    transition: color 0.2s;
    z-index: 1;
    flex-shrink: 0;
}

.l-nav__link:hover {
    color: #AACAD1;
}

.l-nav__link .ripple-effect {
    position: absolute;
    top: -5.3rem;
    left: 50%;
    display: block;
    width: 12rem;
    height: 12rem;
    background: radial-gradient(#fff 0%,
            #f0f8fd 19.7%,
            #9ed1f4 32.51%,
            #f8fcff 49.75%,
            #b1dbff 70.94%,
            #f8fcff 87.68%,
            #fff 100%);
    border-radius: 50%;
    z-index: -2;
    transform: translateX(-50%) scale(0);
    animation: navDotRippleEffect 750ms cubic-bezier(0, 0, 0, 1) backwards;
    opacity: 0;
    pointer-events: none;
}

.l-nav__link::before {
    content: "";
    width: 1.4rem;
    height: 1.4rem;
    background-color: #AACAD1;
    border-radius: 50%;
    transition: opacity 0.3s linear;
}

.l-nav__link:hover::before {
    opacity: 0;
}

.l-nav__link-text {
    position: relative;
    z-index: 1;
    writing-mode: vertical-rl;
    text-orientation: upright;
    white-space: nowrap;
    font-size: var(--font-size15);
    font-family: var(--fontT);
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: 0.2em;
}

.l-nav__link-text span {
    writing-mode: sideways-lr;
}

.l-hero__box {
    position: absolute;
    top: 5vh;
    right: 5rem;
    width: 19rem;
    padding: calc(var(--gap-unit)*1.25) calc(var(--gap-unit));
    box-shadow: 0px 18px 48px 0px #183A326B;
    z-index: 4;
}

.l-hero__box::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #FFFFFF57;
    border: 1px solid #FFFFFF9E;
}

.l-hero__box-inner {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*1.5);
    background: #FFFFFF57;
    border: 1px solid #FFFFFF80;
    z-index: 2;
}

.l-hero__box-label {
    display: flex;
    align-items: center;
    gap: calc(var(--gap-unit)*1.5);
    font-size: 1rem;
    font-family: var(--fontG);
    letter-spacing: 0.22em;
    padding: var(--gap-unit);
    padding-bottom: 0;
    padding-left: 0;
    color: #183A3285;
}

.l-hero__box-label::before {
    content: "";
    display: flex;
    width: 4rem;
    height: 1px;
    background-color: #183A324D;
}

.l-hero__box-list {
    display: flex;
    flex-direction: column;
}

.l-hero__box-item {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*.75);
    padding: calc(var(--gap-unit)*1.25) calc(var(--gap-unit)*1.75);
    border-top: 1px solid rgba(27, 58, 49, 0.12);
    overflow: hidden;
    transition: background-color 0.35s ease;
}

.l-hero__box-item::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 2px;
    height: 100%;
    background: linear-gradient(180deg, #37B18E 0%, rgba(55, 177, 142, 0.2) 100%);
    transform: scaleY(0);
    transform-origin: top center;
    transition: transform 0.4s cubic-bezier(0.77, 0, 0.175, 1);
}

.l-hero__box-item::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(105deg, rgba(55, 177, 142, 0.12) 0%, rgba(255, 255, 255, 0.35) 48%, transparent 100%);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.35s ease;
}

.l-hero__box-item__label {
    position: relative;
    z-index: 1;
    font-size: 1rem;
    font-family: var(--fontG);
    line-height: 1.3;
    letter-spacing: .2em;
    color: #37B18EF2;
    transition: letter-spacing 0.35s ease, color 0.35s ease;
}

.l-hero__box-item__title {
    position: relative;
    z-index: 1;
    font-size: var(--font-size15);
    font-family: var(--fontT);
    font-weight: 800;
    line-height: 1.6;
    letter-spacing: 0.04em;
    color: #1B3A31;
    transition: color 0.35s ease, transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}

.l-hero__box-item__btn {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    gap: calc(var(--gap-unit)*1);
    font-size: 1.1rem;
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: 0.12em;
    color: #183A329E;
    transition: color 0.35s ease, letter-spacing 0.35s ease;
}

.l-hero__box-item__btn-icon {
    display: flex;
    width: 1rem;
    transition: transform 0.4s cubic-bezier(0.34, 1.4, 0.64, 1);
}

.l-hero__box-item__btn svg {
    width: 100%;
    height: auto;
}

.l-hero__box-item__btn svg path {
    transition: fill 0.35s ease, fill-opacity 0.35s ease;
}

@media (hover: hover) {
    .l-hero__box-item:hover {
        background-color: rgba(255, 255, 255, 0.4);
    }

    .l-hero__box-item:hover::before {
        transform: scaleY(1);
    }

    .l-hero__box-item:hover::after {
        opacity: 1;
    }

    .l-hero__box-item:hover .l-hero__box-item__title {
        color: #159A57;
        transform: translate3d(0.25rem, 0, 0);
    }

    .l-hero__box-item:hover .l-hero__box-item__btn {
        color: #159A57;
        letter-spacing: 0.16em;
    }

    .l-hero__box-item:hover .l-hero__box-item__btn-icon {
        transform: translate3d(0.35rem, 0, 0);
    }

    .l-hero__box-item:hover .l-hero__box-item__btn svg path {
        fill: #159A57;
        fill-opacity: 1;
    }
}

@media (max-width: 768px) {
    .l-hero__inner {
        padding: 5vh 4rem;
    }

    .l-hero__main {
        padding: 0;
    }
    
    .l-hero__bottom,
    .l-hero__box {
        display: none;
    }

    #home .l-header__logo {
        display: flex;
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
    }

    #home .l-hamburger {
        position: static;
        transform: translateY(0);
    }

    .l-hero__logo {
        padding: 0;
    }

    .l-hero__copy {
        bottom: 4vh;
        left: 50%;
        transform: translateX(-50%);
        writing-mode: horizontal-tb;
    }

    .l-hero__scroll {
        bottom: calc(var(--gap-unit)*2.5);
        gap: calc(var(--gap-unit)*1.5);
    }

    .l-hero__scroll-line {
        height: 3.6rem;
    }

    .l-hero__title {
        margin-bottom: calc(var(--gap-unit)*4);
    }

    .l-hero__text {
        gap: calc(var(--gap-unit)*3.5);
    }

    .l-hero__text-sub {
        line-height: 1.9;
    }
}

@media (max-width: 450px) {
    .l-hero__inner {
        padding: 5vh var(--margin);
    }

    .l-hero::before {
        inset: var(--gap-unit);
    }

    .l-hero__drone {
        top: 5rem;
        left: var(--margin);
    }

    .l-hero__drone::before {
        width: 4rem;
    }

    .l-hero__logo {
        padding-right: calc(var(--gap-unit)*4);
    }

    .l-hero__logo-img {
        width: 7.3rem;
    }

    .l-hero__logo-name-en {
        font-size: var(--font-size22);
    }

    .l-hero__logo-name-ja {
        font-size: 1.3rem;
    }

    .l-hero__logo-brand {
        font-size: var(--font-size12);
    }

    .l-hero__title {
        margin-bottom: calc(var(--gap-unit)*4);
    }

    .l-hero__title {
        font-size: 3.6rem;
        white-space: nowrap;
        padding-left: var(--gap-unit);
    }

    .l-hero__text {
        gap: calc(var(--gap-unit)*4);
    }

    .l-hero__text-sub {
        font-size: var(--font-size16);
        line-height: 2;
    }

    .l-hero__copy {
        text-align: center;
        white-space: nowrap;
        bottom: calc(var(--gap-unit)*3);
    }

    .l-hero__scroll {
        bottom: calc(var(--gap-unit)*8);
    }

    .l-hero__scroll-label {
        letter-spacing: 0.36em;
        text-indent: 0.36em;
    }

    .l-hero__scroll-line {
        height: 3.6rem;
    }
}



/* -------home service------- */
.p-home-service {
    position: relative;
    background: linear-gradient(180deg, #F4FBF7 0%, #FFFFFF 100%);
}

.p-home-service__inner {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*5);
}

.p-home-service__heading {
    margin-bottom: 0;
    flex-direction: column;
    align-items: flex-start;
    gap: calc(var(--gap-unit)*3);
}

.p-home-service__title {
    position: relative;
    padding-bottom: calc(var(--gap-unit)*2.75);
}

.p-home-service__title::before {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 5rem;
    height: 2px;
    background-color: var(--bg-green-color);
}

.p-home-service__list {
    display: flex;
    gap: calc(var(--gap-unit)*2.5);
}

.p-home-service__card {
    flex: 1;
    position: relative;
    display: flex;
    flex-direction: column;
    padding: calc(var(--gap-unit)*3);
    background-color: var(--bg-white-color);
    border: 1px solid #173D341F;
    box-shadow: 0px 20px 46px 0px #173D3412;
    opacity: 0;
    transform: translate3d(0, 2.4rem, 0);
    transition:
        border-color 0.35s ease,
        box-shadow 0.35s ease,
        transform 0.35s ease;
}

.p-home-service__card.is-show {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.6s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.8s cubic-bezier(0.22, 1, 0.36, 1),
        border-color 0.35s ease,
        box-shadow 0.35s ease;
}

.p-home-service__num {
    font-size: var(--font-size28);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.9;
    color: var(--bg-green-color);
}

.p-home-service__en {
    font-size: var(--font-size12);
    font-weight: 700;
    line-height: 1.9;
    letter-spacing: 0.32em;
    color: var(--bg-green-color);
    margin-bottom: calc(var(--gap-unit)*2);
}

.p-home-service__name {
    font-size: var(--font-size24);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0.03em;
    color: #1F2724;
    margin-bottom: calc(var(--gap-unit)*1.3);
}

.p-home-service__txt {
    flex: 1;
    font-size: var(--font-size15);
    line-height: 1.6;
    letter-spacing: .04em;
    color: #173D34B8;
    margin-bottom: calc(var(--gap-unit)*3.75);
}

.p-home-service__link {
    display: flex;
    align-items: center;
    gap: calc(var(--gap-unit)*1.5);
    font-size: var(--font-size14);
    font-weight: bold;
    line-height: 1.8;
    color: #71857C;
    transition: color 0.35s ease;
}

.p-home-service__link-arrow {
    transition: transform 0.35s ease;
}

.p-home-service__btn-wrap {
    display: flex;
    justify-content: center;
    padding-top: calc(var(--gap-unit)*1);
}

.p-home-service__btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: calc(var(--gap-unit)*1.25);
    padding: calc(var(--gap-unit)*2.2) calc(var(--gap-unit)*4.5);
    font-size: var(--font-size15);
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0.06em;
    color: #1F2724;
    background-color: var(--bg-white-color);
    border: 1px solid #37B18E9E;
    border-radius: 999px;
    box-shadow: 0px 10px 24px 0px #183A3212;
    transition:
        color 0.35s ease,
        background-color 0.35s ease,
        border-color 0.35s ease,
        box-shadow 0.35s ease,
        transform 0.35s ease;
}

.p-home-service__btn-arrow {
    transition: transform 0.35s ease;
}

@media (hover: hover) {
    .p-home-service__card.is-show:hover {
        border-color: #69A78A;
        box-shadow: 0 18px 44px rgba(24, 58, 50, 0.1);
        transform: translate3d(0, -0.3rem, 0);
    }

    .p-home-service__card.is-show:hover .p-home-service__name {
        color: #159A57;
    }

    .p-home-service__card.is-show:hover .p-home-service__link {
        color: #159A57;
    }

    .p-home-service__card.is-show:hover .p-home-service__link-arrow {
        transform: translateX(0.3rem);
    }

    .p-home-service__btn:hover {
        color: var(--bg-white-color);
        background-color: var(--bg-green-color);
        border-color: var(--bg-green-color);
        box-shadow: 0 14px 32px rgba(21, 154, 87, 0.22);
        transform: translateY(-0.2rem);
    }

    .p-home-service__btn:hover .p-home-service__btn-arrow {
        transform: translateX(0.3rem);
    }
}

@media (max-width: 768px) {
    .p-home-service__inner {
        gap: calc(var(--gap-unit)*4);
    }

    .p-home-service__list {
        flex-direction: column;
        gap: calc(var(--gap-unit)*2.5);
    }

    .p-home-service__card {
        flex: none;
        width: 100%;
        padding: calc(var(--gap-unit)*3.5) calc(var(--gap-unit)*3);
        transform: translate3d(-2.4rem, 0, 0) scale(0.98);
        overflow: hidden;
    }

    .p-home-service__card::before {
        content: "";
        position: absolute;
        left: 0;
        top: 0;
        width: 3px;
        height: 100%;
        background: linear-gradient(180deg, #159A57 0%, rgba(21, 154, 87, 0.15) 100%);
        transform: scaleY(0);
        transform-origin: top center;
        transition: transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.12s;
    }

    .p-home-service__card.is-show {
        transform: translate3d(0, 0, 0) scale(1);
    }

    .p-home-service__card.is-show::before {
        transform: scaleY(1);
    }

    .p-home-service__num {
        font-size: var(--font-size24);
    }

    .p-home-service__en {
        letter-spacing: 0.22em;
        margin-bottom: calc(var(--gap-unit)*1.5);
    }

    .p-home-service__name {
        font-size: var(--font-size20);
    }

    .p-home-service__txt {
        font-size: var(--font-size14);
        line-height: 1.85;
        margin-bottom: calc(var(--gap-unit)*3);
    }

    .p-home-service__btn-wrap {
        padding-top: calc(var(--gap-unit)*0.5);
    }
}

@media (max-width: 450px) {
    .p-home-service__inner {
        gap: calc(var(--gap-unit)*3.5);
    }

    .p-home-service__title-ja,
    .p-home-service .c-sec__title-ja {
        font-size: var(--font-size26);
    }

    .p-home-service__card {
        padding: calc(var(--gap-unit)*3) calc(var(--gap-unit)*2.5);
    }

    .p-home-service__num {
        font-size: var(--font-size22);
    }

    .p-home-service__name {
        font-size: var(--font-size18);
    }

    .p-home-service__txt {
        font-size: var(--font-size13, 1.3rem);
    }

    .p-home-service__btn {
        width: 100%;
        padding: calc(var(--gap-unit)*2) calc(var(--gap-unit)*3);
    }
}


/* -------home news------- */
.p-home-news {
    position: relative;
    background: linear-gradient(180deg, #FFFFFF 0%, #F8FCF9 100%);
}

.p-home-news__inner {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*6);
}

.p-home-news__heading {
    margin-bottom: 0;
    flex-direction: column;
    align-items: flex-start;
    gap: calc(var(--gap-unit)*3);
}

.p-home-news__title {
    position: relative;
    padding-bottom: calc(var(--gap-unit)*2.75);
}

.p-home-news__title::before {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 5rem;
    height: 2px;
    background-color: var(--bg-green-color);
}

.p-home-news__btn-wrap {
    display: flex;
    justify-content: center;
}

.p-home-news__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: calc(var(--gap-unit)*1.5);
    padding: calc(var(--gap-unit)*2.2) calc(var(--gap-unit)*7.5);
    font-size: var(--font-size15);
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0.06em;
    color: #1F2724;
    background-color: var(--bg-white-color);
    border: 1px solid #37B18E9E;
    border-radius: 999px;
    box-shadow: 0px 10px 24px 0px #183A3212;
    transition:
        color 0.35s ease,
        background-color 0.35s ease,
        border-color 0.35s ease,
        box-shadow 0.35s ease,
        transform 0.35s ease;
}

.p-home-news__btn-arrow {
    transition: transform 0.35s ease;
}

@media (hover: hover) {
    .p-home-news__btn:hover {
        color: var(--bg-white-color);
        background-color: var(--bg-green-color);
        border-color: var(--bg-green-color);
        box-shadow: 0 14px 32px rgba(21, 154, 87, 0.22);
        transform: translateY(-0.2rem);
    }

    .p-home-news__btn:hover .p-home-news__btn-arrow {
        transform: translateX(0.3rem);
    }
}

@media (max-width: 768px) {
    .p-home-news__inner {
        gap: calc(var(--gap-unit)*4);
    }

    .p-home-news .p-news-list__item {
        margin: 0;
        padding: calc(var(--gap-unit)*2.75) calc(var(--gap-unit)*1);
        transform: translate3d(0, 1.6rem, 0);
    }

    .p-home-news .p-news-list__item.is-show {
        transform: translate3d(0, 0, 0);
    }

    .p-home-news .p-news-list__date {
        width: 9rem;
    }

    .p-home-news .p-news-list__title {
        font-size: var(--font-size15);
    }
}

@media (max-width: 450px) {
    .p-home-news .c-sec__title-ja {
        font-size: var(--font-size26);
    }

    .p-home-news .p-news-list__item {
        flex-wrap: wrap;
        gap: calc(var(--gap-unit)*1.25) calc(var(--gap-unit)*1.5);
        padding: calc(var(--gap-unit)*2.5) calc(var(--gap-unit)*0.5);
    }

    .p-home-news .p-news-list__date {
        width: auto;
    }

    .p-home-news .p-news-list__cat {
        min-width: 7.5rem;
    }

    .p-home-news .p-news-list__title {
        flex: none;
        width: 100%;
        white-space: normal;
        font-size: var(--font-size14);
        line-height: 1.75;
    }

    .p-home-news .p-news-list__arrow {
        display: none;
    }

    .p-home-news__btn {
        width: 100%;
        padding: calc(var(--gap-unit)*2) calc(var(--gap-unit)*3);
    }
}


/* -------home company------- */
.p-home-company {
    position: relative;
    background: linear-gradient(180deg, #FFFFFF 0%, #F8FCF9 100%);
}

.p-home-company__inner {
    display: flex;
    justify-content: space-between;
    gap: calc(var(--gap-unit)*8.75);
}

.p-home-company__content {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: calc(var(--gap-unit)*3.5);
    opacity: 0;
    transform: translate3d(-2rem, 0, 0);
}

.p-home-company__content.is-show {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.65s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.85s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-home-company__heading {
    margin-bottom: 0;
    flex-direction: column;
    align-items: flex-start;
    gap: calc(var(--gap-unit)*3);
}

.p-home-company__title {
    position: relative;
    padding-bottom: calc(var(--gap-unit)*2.75);
}

.p-home-company__title::before {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 5rem;
    height: 2px;
    background-color: var(--bg-green-color);
}

.p-home-company__body {
    margin-top: calc(var(--gap-unit)*1.5);
}

.p-home-company__body p {
    font-size: var(--font-size16);
    line-height: 1.75;
}

.p-home-company__btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: calc(var(--gap-unit)*1.25);
    width: fit-content;
    padding: calc(var(--gap-unit)*2.2) calc(var(--gap-unit)*8.5);
    font-size: var(--font-size15);
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0.06em;
    color: #1F2724;
    background-color: var(--bg-white-color);
    border: 1px solid #37B18E9E;
    border-radius: 999px;
    box-shadow: 0px 10px 24px 0px #183A3212;
    transition:
        color 0.35s ease,
        background-color 0.35s ease,
        border-color 0.35s ease,
        box-shadow 0.35s ease,
        transform 0.35s ease;
}

.p-home-company__btn-arrow {
    transition: transform 0.35s ease;
}

.p-home-company__visual {
    display: flex;
    width: 45%;
    aspect-ratio: 500 / 373;
    overflow: hidden;
}

.p-home-company__visual img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

@media (hover: hover) {
    .p-home-company__btn:hover {
        color: var(--bg-white-color);
        background-color: var(--bg-green-color);
        border-color: var(--bg-green-color);
        box-shadow: 0 14px 32px rgba(21, 154, 87, 0.22);
        transform: translateY(-0.2rem);
    }

    .p-home-company__btn:hover .p-home-company__btn-arrow {
        transform: translateX(0.3rem);
    }
}

@media (max-width: 768px) {
    .p-home-company__inner {
        flex-direction: column;
        align-items: stretch;
        gap: calc(var(--gap-unit)*4);
    }

    .p-home-company__content {
        max-width: none;
        transform: translate3d(0, 2.4rem, 0);
    }

    .p-home-company__content.is-show {
        transform: translate3d(0, 0, 0);
    }

    .p-home-company__body {
        margin-top: calc(var(--gap-unit)*0.5);
    }

    .p-home-company__body p,
    .p-home-company__txt {
        font-size: var(--font-size15);
        line-height: 1.9;
    }

    .p-home-company__visual {
        width: 100%;
        max-width: none;
        aspect-ratio: 16 / 11;
        opacity: 0;
        transform: translate3d(0, 2rem, 0) scale(0.97);
        transition:
            opacity 0.7s cubic-bezier(0.53, 0.2, 0.25, 1),
            transform 0.85s cubic-bezier(0.22, 1, 0.36, 1),
            clip-path 1s cubic-bezier(0.165, 0.84, 0.44, 1);
    }

    .p-home-company__visual.js-clip_path {
        clip-path: inset(100% 0 0 0);
    }

    .p-home-company__visual.js-clip_path.on,
    .p-home-company__visual.is-show {
        clip-path: inset(0 0 0 0);
    }

    .p-home-company__visual.is-show {
        opacity: 1;
        transform: translate3d(0, 0, 0) scale(1);
        transition-delay: 0.15s;
    }

    .p-home-company__visual img {
        transform: scale(1.06);
        transition: transform 1.1s cubic-bezier(0.22, 1, 0.36, 1) 0.2s;
    }

    .p-home-company__visual.is-show img {
        transform: scale(1);
    }
}

@media (max-width: 450px) {
    .p-home-company .c-sec__title-ja {
        font-size: var(--font-size26);
    }

    .p-home-company__body p,
    .p-home-company__txt {
        font-size: var(--font-size14);
        line-height: 1.95;
    }

    .p-home-company__visual {
        aspect-ratio: 4 / 3;
    }

    .p-home-company__btn {
        align-self: stretch;
        width: 100%;
        padding: calc(var(--gap-unit)*2) calc(var(--gap-unit)*3);
    }
}


/* -------home access------- */
.p-home-access {
    position: relative;
    background: var(--bg-white-color);
}

.p-home-access__inner {
    display: flex;
    gap: calc(var(--gap-unit)*10);
}

.p-home-access__col {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*5);
    opacity: 0;
    transform: translate3d(0, 2rem, 0);
}

.p-home-access__col--access {
    transform: translate3d(-2.4rem, 2rem, 0);
}

.p-home-access__col--legal {
    transform: translate3d(2.4rem, 2rem, 0);
}

.p-home-access__col.is-show {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.65s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.85s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-home-access__col--legal.is-show {
    transition-delay: 0.14s;
}

.p-home-access__name,
.p-home-access__address,
.p-home-access__map,
.p-home-access__legal-img {
    opacity: 0;
    transition:
        opacity 0.65s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.8s cubic-bezier(0.22, 1, 0.36, 1),
        clip-path 0.85s cubic-bezier(0.22, 1, 0.36, 1),
        filter 0.75s ease;
}

.p-home-access__name {
    transform: translate3d(-1.4rem, 0, 0);
}

.p-home-access__address {
    transform: translate3d(0, 1.4rem, 0);
}

.p-home-access__map {
    clip-path: inset(0 0 100% 0);
    transform: translate3d(0, 1.6rem, 0) scale(0.98);
}

.p-home-access__legal-img {
    position: relative;
    transform: translate3d(0, 2rem, 0) scale(0.96);
    filter: blur(6px);
}

.p-home-access__legal-img::before {
    content: "";
    position: absolute;
    inset: 0;
    border: 1px solid #1B3A31;
    opacity: 0;
    transform: scale(1.03);
    transition:
        opacity 0.55s ease,
        transform 0.75s cubic-bezier(0.22, 1, 0.36, 1);
    pointer-events: none;
    z-index: 1;
}

.p-home-access__col--access.is-show .p-home-access__name {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition-delay: 0.22s;
}

.p-home-access__col--access.is-show .p-home-access__address {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition-delay: 0.36s;
}

.p-home-access__col--access.is-show .p-home-access__map {
    opacity: 1;
    clip-path: inset(0 0 0 0);
    transform: translate3d(0, 0, 0) scale(1);
    transition-delay: 0.52s;
}

.p-home-access__col--legal.is-show .p-home-access__legal-img {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
    filter: blur(0);
    transition-delay: 0.34s;
}

.p-home-access__col--legal.is-show .p-home-access__legal-img::before {
    opacity: 1;
    transform: scale(1);
    transition-delay: 0.62s;
}

.p-home-access__heading {
    margin-bottom: 0;
    flex-direction: column;
    align-items: flex-start;
    gap: calc(var(--gap-unit)*1.5);
}

.p-home-access__title {
    position: relative;
    padding-bottom: calc(var(--gap-unit)*2.75);
}

.p-home-access__title::before {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 5rem;
    height: 2px;
    background-color: var(--bg-green-color);
}

.p-home-access__body,
.p-home-access__legal {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*5);
}

.p-home-access__info {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*1.75);
}

.p-home-access__name {
    font-size: var(--font-size22);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.8;
    letter-spacing: 0.03em;
}

.p-home-access__info {
    font-size: var(--font-size14);
    line-height: 2;
    color: #4F625A;
}

.p-home-access__map {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    min-height: 20rem;
    padding: calc(var(--gap-unit)*3.75);
    overflow: hidden;
    border: 1px solid #183A321C;
    background: linear-gradient(99.75deg, rgba(168, 216, 203, 0.25) 0%, rgba(255, 255, 255, 0.7) 100%);
    transition:
        border-color 0.4s cubic-bezier(0.22, 1, 0.36, 1),
        box-shadow 0.4s cubic-bezier(0.22, 1, 0.36, 1),
        transform 0.4s cubic-bezier(0.22, 1, 0.36, 1),
        opacity 0.65s cubic-bezier(0.53, 0.2, 0.25, 1),
        clip-path 0.85s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-home-access__map::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 0.8rem;
    height: 0.8rem;
    margin: -0.4rem 0 0 -0.4rem;
    border-radius: 50%;
    background-color: #159A57;
    opacity: 0;
    transform: scale(0);
    box-shadow: 0 0 0 0 rgba(21, 154, 87, 0.35);
    pointer-events: none;
    z-index: 1;
}

@keyframes homeAccessMapPin {
    0% {
        opacity: 0;
        transform: scale(0);
        box-shadow: 0 0 0 0 rgba(21, 154, 87, 0.35);
    }

    35% {
        opacity: 1;
        transform: scale(1);
        box-shadow: 0 0 0 0.8rem rgba(21, 154, 87, 0);
    }

    100% {
        opacity: 0.85;
        transform: scale(1);
        box-shadow: 0 0 0 1.6rem rgba(21, 154, 87, 0);
    }
}

.p-home-access__map::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(105deg, rgba(21, 154, 87, 0.16) 0%, rgba(55, 177, 142, 0.08) 55%, rgba(255, 255, 255, 0) 100%);
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform 0.5s cubic-bezier(0.77, 0, 0.175, 1);
}

.p-home-access__map-label {
    position: relative;
    z-index: 2;
    font-size: var(--font-size14);
    font-weight: 500;
    line-height: 1.9;
    letter-spacing: 0.16em;
    color: #183A327A;
    opacity: 0;
    transform: translate3d(0, 0.8rem, 0);
    transition:
        color 0.35s ease,
        letter-spacing 0.35s ease,
        opacity 0.55s ease,
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-home-access__col--access.is-show .p-home-access__map-label {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition-delay: 0.68s;
}

.p-home-access__legal {
    padding: 0 calc(var(--gap-unit)*3);
    padding-top: calc(var(--gap-unit)*2);
}

.p-home-access__legal-img {
    display: flex;
    width: 100%;
}

.p-home-access__legal-img img {
    width: 100%;
}

@media (hover: hover) {
    .p-home-access__map:hover {
        border-color: #37B18E66;
        box-shadow: 0 1.2rem 2.8rem rgba(24, 58, 50, 0.08);
        transform: translateY(-0.2rem);
    }

    .p-home-access__map:hover::before {
        transform: scaleX(1);
    }

    .p-home-access__map:hover .p-home-access__map-label {
        color: #159A57;
        letter-spacing: 0.22em;
    }
}

@media (max-width: 768px) {
    .p-home-access__inner {
        flex-direction: column;
        gap: calc(var(--gap-unit)*6);
    }

    .p-home-access__col {
        gap: calc(var(--gap-unit)*3.5);
    }

    .p-home-access__col--access,
    .p-home-access__col--legal {
        transform: translate3d(0, 2.4rem, 0);
    }

    .p-home-access__col--legal.is-show {
        transition-delay: 0.1s;
    }

    .p-home-access__col--access.is-show .p-home-access__name {
        transition-delay: 0.14s;
    }

    .p-home-access__col--access.is-show .p-home-access__address {
        transition-delay: 0.24s;
    }

    .p-home-access__col--access.is-show .p-home-access__map {
        transition-delay: 0.34s;
    }

    .p-home-access__col--legal.is-show .p-home-access__legal-img {
        transition-delay: 0.18s;
    }

    .p-home-access__col--legal.is-show .p-home-access__legal-img::before {
        transition-delay: 0.38s;
    }

    .p-home-access__name {
        font-size: var(--font-size18);
        line-height: 1.7;
    }

    .p-home-access__address {
        font-size: var(--font-size14);
        line-height: 2;
    }

    .p-home-access__map {
        min-height: 14rem;
    }

    .p-home-access__legal {
        padding: 0;
    }
}

@media (max-width: 450px) {
    .p-home-access .c-sec__title-ja {
        font-size: var(--font-size26);
    }

    .p-home-access__inner {
        gap: calc(var(--gap-unit)*5);
    }

    .p-home-access__name {
        font-size: var(--font-size16);
    }

    .p-home-access__address {
        font-size: var(--font-size13, 1.3rem);
        line-height: 1.95;
    }

    .p-home-access__map {
        min-height: 11rem;
        padding: calc(var(--gap-unit)*3);
    }

    .p-home-access__map-label {
        font-size: var(--font-size12);
        letter-spacing: 0.12em;
    }
}

/* -------page company------- */
.p-company .c-sec__heading {
    margin-bottom: 0;
    flex-direction: column;
    align-items: flex-start;
    gap: calc(var(--gap-unit)*3);
}

.p-company .c-sec__title {
    position: relative;
    padding-bottom: calc(var(--gap-unit)*2.75);
}

.p-company .c-sec__title::before {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 5rem;
    height: 2px;
    background-color: var(--bg-green-color);
}

.p-company-message__inner {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: calc(var(--gap-unit)*7);
    padding: 0 calc(var(--gap-unit)*2);
}

.p-company-message__content {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*3.75);
    width: 56.5%;
}

.p-company-message__title {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: calc(var(--gap-unit)*1);
    padding-bottom: calc(var(--gap-unit)*2);
}

.p-company-message__title::before {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    display: block;
    width: 5rem;
    height: 2px;
    background-color: var(--bg-green-color);
}

.p-company-message__title-en {
    font-size: var(--font-size12);
    font-weight: 700;
    line-height: 1.9;
    letter-spacing: 0.32em;
    color: #159A57;
}

.p-company-message__title-ja {
    font-size: var(--font-size32);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 2;
    letter-spacing: 0.12em;
    color: #183A32;
}

.p-company-message__lead {
    font-size: var(--font-size26);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.6;
    color: #183A32;
    margin-top: calc(var(--gap-unit)*.625);
}

.p-company-message__txt {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*1.8);
    font-size: var(--font-size15);
    line-height: 2;
    color: #4A5A54;
    margin-top: calc(var(--gap-unit)*1.25);
}

.p-company-message__visual {
    position: relative;
    flex: 1;
}

.p-company-message__visual--sp {
    display: none;
}

.p-company-message__frame {
    position: relative;
    width: 100%;
}

.p-company-message__frame::before {
    content: "";
    position: absolute;
    bottom: 5rem;
    right: -3.9rem;
    z-index: 0;
    width: 27.3rem;
    aspect-ratio: 273/288;
    background-color: #37B18E1C;
    clip-path: inset(0 100% 0 0);
    transition: clip-path 0.6s cubic-bezier(0.77, 0, 0.175, 1);
}

.p-company-message__frame.is-before-show::before {
    clip-path: inset(0 0 0 0);
}

.p-company-message__img {
    position: relative;
    z-index: 1;
    aspect-ratio: 420 /520;
    overflow: hidden;
    clip-path: inset(0 100% 0 0);
    box-shadow: 0px 30px 70px 0px #183A3224;
}

.p-company-message__frame.is-img-show .p-company-message__img {
    clip-path: inset(0 0 0 0);
    transition: clip-path .9s cubic-bezier(0.77, 0, 0.175, 1);
}

.p-company-message__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 12%;
}

.p-company-message__nameplate {
    position: absolute;
    right: calc(var(--gap-unit) * -4);
    bottom: calc(var(--gap-unit) * 14);
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*0.25);
    min-width: 21rem;
    padding: calc(var(--gap-unit)*2.5) calc(var(--gap-unit)*3.5);
    background-color: #183A32;
    z-index: 2;
    opacity: 0;
    transform: translate3d(0, 2rem, 0);
}

.p-company-message__frame.is-name-show .p-company-message__nameplate {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.65s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.75s cubic-bezier(0.53, 0.2, 0.25, 1);
}

.p-company-message__role {
    font-size: 1.1rem;
    line-height: 1.9;
    color: #FFFFFFB8;
    letter-spacing: 0.18em;
}

.p-company-message__name {
    font-size: var(--font-size22);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.9;
    letter-spacing: 0.12em;
    color: var(--bg-white-color);
    margin-top: calc(var(--gap-unit)*.375);
}

.p-company-message__name-en {
    font-size: .9rem;
    font-family: var(--fontG);
    line-height: 1.9;
    letter-spacing: 0.22em;
    color: #FFFFFF8C;
}

@media (max-width: 768px) {
    .p-company-message__inner {
        gap: calc(var(--gap-unit)*4);
        padding: 0;
    }

    .p-company-message__content {
        width: 52%;
    }

    .p-company-message__nameplate {
        bottom: 3rem;
        right: -2.5rem;
        min-width: 19rem;
    }

    .p-company-message__frame::before {
        width: 24rem;
        right: -3rem;
    }

    .p-company-message__title-ja {
        font-size: var(--font-size28);
    }
}

@media (max-width: 450px) {
    .p-company-message__visual--sp {
        display: block;
        margin-top: calc(var(--gap-unit)*1.5);
    }

    .p-company-message__visual--pc {
        display: none;
    }

    .p-company-message__content {
        width: 100%;
    }

    .p-company-message__visual {
        padding: 0 1.5rem;
    }

    .p-company-message__frame::before {
        width: 32rem;
    }

    .p-company-message__nameplate {
        bottom: 7rem;
    }

    .p-company-message__title-en {
        letter-spacing: .2em;
    }

    .p-company-message__lead {
        font-size: var(--font-size24);
    }
}



.p-company-overview {
    position: relative;
    background: linear-gradient(180deg, rgba(232, 246, 239, 0.36) 0%, rgba(255, 255, 255, 0.58) 100%);
}

.p-company-overview__inner {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*7);
}

.p-company-overview__content {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: calc(var(--gap-unit)*7);
}

.p-company-overview__main {
    width: 50%;
}

.p-company-overview__table {
    border-top: 1px solid #183A322E;
}

.p-company-overview__row {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: calc(var(--gap-unit)*2.5);
    padding: calc(var(--gap-unit)*2.3) 0;
    border-bottom: 1px solid #183A322E;
}

.p-company-overview__term {
    font-size: var(--font-size16);
    font-weight: 700;
    line-height: 1.7;
    letter-spacing: 0.1em;
    color: #183A32;
    width: 19%;
}

.p-company-overview__desc {
    flex: 1;
    font-size: var(--font-size16);
    line-height: 1.7;
}

.p-company-overview__visual {
    position: relative;
    flex: 1;
    width: 50%;
    min-width: 0;
}

.p-company-overview__circle {
    position: absolute;
    right: -8rem;
    bottom: -9rem;
    width: 22rem;
    height: 22rem;
    pointer-events: none;
    z-index: 0;
}

.p-company-overview__circle svg {
    display: block;
    width: 100%;
    height: 100%;
    transform: rotate(-90deg);
}

.p-company-overview__circle circle {
    fill: none;
    width: 100%;
    height: 100%;
    stroke-dasharray: 0 600;
    transition: stroke-dasharray 1.2s cubic-bezier(0.77, 0, 0.175, 1);
}

.p-company-overview__visual.is-circle-show .p-company-overview__circle circle {
    stroke-dasharray: 600 600;
}

.p-company-overview__img {
    position: relative;
    width: 100%;
    aspect-ratio: 54/45;
    overflow: hidden;
    box-shadow: 0px 22px 52px 0px #183A321F;
    z-index: 1;
    clip-path: inset(0 100% 0 0);
}

.p-company-overview__visual.is-img-show .p-company-overview__img {
    clip-path: inset(0 0 0 0);
    transition: clip-path .7s cubic-bezier(0.77, 0, 0.175, 1);
}

.p-company-overview__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.p-company-overview__img .swiper {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.p-company-overview__img .swiper-slide {
    height: 100%;
}

.p-company-overview__img .swiper-pagination {
    bottom: 1.6rem;
}

.p-company-overview__img .swiper-pagination-bullet {
    width: 0.8rem;
    height: 0.8rem;
    background: #ffffff;
    opacity: 0.55;
}

.p-company-overview__img .swiper-pagination-bullet-active {
    background: #37B18E;
    opacity: 1;
}

.p-company-overview__img .swiper-button-prev,
.p-company-overview__img .swiper-button-next {
    width: 4.4rem;
    height: 4.4rem;
    margin-top: 0;
    top: 50%;
    transform: translateY(-50%);
    color: #ffffff;
    background: rgba(24, 58, 50, 0.42);
    border: 0;
    border-radius: 50%;
    --swiper-navigation-size: 1.6rem;
}

.p-company-overview__img .swiper-button-prev {
    left: 1.4rem;
}

.p-company-overview__img .swiper-button-next {
    right: 1.4rem;
}

.p-company-overview__img .swiper-button-prev::after,
.p-company-overview__img .swiper-button-next::after {
    font-size: 1.6rem;
    font-weight: 700;
}

@media (max-width: 768px) {
    .p-company-overview__inner {
        padding-bottom: calc(var(--gap-unit)*4);
    }

    .p-company-overview__content {
        flex-direction: column;
        gap: calc(var(--gap-unit)*4);
    }

    .p-company-overview__main {
        width: 100%;
    }

    .p-company-overview__visual {
        width: 100%;
    }
}

@media (max-width: 450px) {
    .p-company-overview__inner {
        gap: calc(var(--gap-unit)*5);
    }

    .p-company-overview__row {
        flex-direction: column;
        gap: calc(var(--gap-unit)*1.5);
    }

    .p-company-overview__term {
        width: 100%;
    }

    .p-company-overview__desc {
        margin: 0;
    }

    .p-company-overview__circle {
        display: none;
    }
}



.p-company-philosophy {
    background-color: #F4F9F6;
}

.p-company-philosophy__inner {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*5);
}

.p-company-philosophy__content {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: calc(var(--gap-unit)*12);
}

.p-company-philosophy__visual {
    position: relative;
    flex: 1;
}

.p-company-philosophy__circle {
    position: absolute;
    right: -4rem;
    bottom: -4rem;
    z-index: 0;
    width: 22rem;
    height: 22rem;
    pointer-events: none;
}

.p-company-philosophy__circle svg {
    display: block;
    width: 100%;
    height: 100%;
    transform: rotate(-90deg);
}

.p-company-philosophy__circle circle {
    fill: none;
    stroke-dasharray: 600;
    stroke-dashoffset: 600;
}

.p-company-philosophy__img {
    position: relative;
    z-index: 1;
    display: flex;
    width: 100%;
    overflow: hidden;
    aspect-ratio: 36/32;
    box-shadow: 0px 22px 52px 0px #183A321F;
    clip-path: inset(0 100% 0 0);
}

.p-company-philosophy__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transform: scale(1.12);
}

.p-company-philosophy__card {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*2.75);
    width: 55%;
    padding: calc(var(--gap-unit)*4) calc(var(--gap-unit)*3.5);
    box-shadow: 0px 32px 80px 0px #183A321A;
    background-color: #FFFFFFD1;
    opacity: 0;
    transform: translate3d(1rem, .5rem, 0);
}

.p-company-philosophy__card.is-show {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.75s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-company-philosophy__card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: linear-gradient(140.11deg, rgba(55, 177, 142, 0.08) 0%, rgba(55, 177, 142, 0) 44%);
    filter: blur(10px);
    -webkit-filter: blur(10px);
    border: 1px solid #37B18E2B;
    pointer-events: none;
    z-index: 2;
    opacity: 0;
}

.p-company-philosophy__card.is-show::before {
    opacity: 1;
    transition: opacity 1s ease 0.2s;
}

.p-company-philosophy__card-title {
    position: relative;
    font-size: var(--font-size24);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: 0.07em;
    color: #1B3A31;
    z-index: 2;
    opacity: 0;
    transform: translate3d(0, 1.8rem, 0);
}

.p-company-philosophy__card.is-show .p-company-philosophy__card-title {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.65s cubic-bezier(0.53, 0.2, 0.25, 1) 0.18s,
        transform 0.8s cubic-bezier(0.22, 1, 0.36, 1) 0.18s;
}

.p-company-philosophy__card-line {
    position: relative;
    width: 100%;
    height: 1px;
    background: linear-gradient(90deg, #37B18E 0%, rgba(55, 177, 142, 0.1) 100%);
    margin: var(--gap-unit) 0;
    transform: scaleX(0);
    transform-origin: left center;
}

.p-company-philosophy__card.is-show .p-company-philosophy__card-line {
    transform: scaleX(1);
    transition: transform 0.85s cubic-bezier(0.77, 0, 0.175, 1) 0.38s;
}

.p-company-philosophy__card-line::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background-color: #37B18E;
    transform: translateY(-50%) scale(0);
}

.p-company-philosophy__card.is-show .p-company-philosophy__card-line::before {
    transform: translateY(-50%) scale(1);
    transition: transform 0.45s cubic-bezier(0.34, 1.56, 0.64, 1) 0.7s;
}

.p-company-philosophy__card-txt {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*2.75);
    font-size: var(--font-size15);
    line-height: 2;
    color: #4A5A54;
}

.p-company-philosophy__card-txt p {
    opacity: 0;
    transform: translate3d(0, 1.4rem, 0);
}

.p-company-philosophy__card.is-show .p-company-philosophy__card-txt p {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.6s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.75s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-company-philosophy__card.is-show .p-company-philosophy__card-txt p:nth-child(1) {
    transition-delay: 0.48s;
}

.p-company-philosophy__card.is-show .p-company-philosophy__card-txt p:nth-child(2) {
    transition-delay: 0.58s;
}

.p-company-philosophy__list {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*2);
    margin-top: calc(var(--gap-unit)*1.5);
    z-index: 2;
}

.p-company-philosophy__item {
    display: flex;
    align-items: center;
    gap: calc(var(--gap-unit)*1.75);
    opacity: 0;
    transform: translate3d(-1.2rem, 0, 0);
}

.p-company-philosophy__card.is-show .p-company-philosophy__item {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-company-philosophy__card.is-show .p-company-philosophy__item:nth-child(1) { transition-delay: 0.68s; }
.p-company-philosophy__card.is-show .p-company-philosophy__item:nth-child(2) { transition-delay: 0.78s; }
.p-company-philosophy__card.is-show .p-company-philosophy__item:nth-child(3) { transition-delay: 0.88s; }
.p-company-philosophy__card.is-show .p-company-philosophy__item:nth-child(4) { transition-delay: 0.98s; }
.p-company-philosophy__card.is-show .p-company-philosophy__item:nth-child(5) { transition-delay: 1.08s; }

.p-company-philosophy__icon {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 4rem;
    height: 4rem;
    border: 1px solid #37B18E7A;
    border-radius: 50%;
    box-shadow: 0px 8px 24px 0px #37B18E17;
    transform: scale(0.55);
    transition: transform 0.55s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.p-company-philosophy__card.is-show .p-company-philosophy__item .p-company-philosophy__icon {
    transform: scale(1);
}

.p-company-philosophy__card.is-show .p-company-philosophy__item:nth-child(1) .p-company-philosophy__icon { transition-delay: 0.72s; }
.p-company-philosophy__card.is-show .p-company-philosophy__item:nth-child(2) .p-company-philosophy__icon { transition-delay: 0.82s; }
.p-company-philosophy__card.is-show .p-company-philosophy__item:nth-child(3) .p-company-philosophy__icon { transition-delay: 0.92s; }
.p-company-philosophy__card.is-show .p-company-philosophy__item:nth-child(4) .p-company-philosophy__icon { transition-delay: 1.02s; }
.p-company-philosophy__card.is-show .p-company-philosophy__item:nth-child(5) .p-company-philosophy__icon { transition-delay: 1.12s; }

.p-company-philosophy__icon svg {
    width: 2rem;
    height: 2rem;
}

.p-company-philosophy__item-txt {
    flex: 1;
    font-size: var(--font-size15);
    line-height: 1.7;
    letter-spacing: 0.04em;
    color: #183A32;
}

.p-company-philosophy__foot {
    padding-top: calc(var(--gap-unit)*2.75);
    border-top: 1px solid #37B18E57;
    opacity: 0;
    transform: translate3d(0, 1.6rem, 0);
}

.p-company-philosophy__card.is-show .p-company-philosophy__foot {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.7s cubic-bezier(0.53, 0.2, 0.25, 1) 1.2s,
        transform 0.85s cubic-bezier(0.22, 1, 0.36, 1) 1.2s;
}

.p-company-philosophy__catch {
    margin-bottom: calc(var(--gap-unit)*1.5);
    font-size: var(--font-size22);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.9;
    letter-spacing: 0.08em;
    color: #183A32;
}

.p-company-philosophy__foot-txt {
    font-size: var(--font-size15);
    line-height: 2;
}

@media (max-width: 768px) {
    .p-company-philosophy__content {
        flex-direction: column-reverse;
        gap: calc(var(--gap-unit)*6);
    }

    .p-company-philosophy__card {
        width: 100%;
    }

    .p-company-philosophy__visual {
        width: 70%;
    }
}

@media (max-width: 450px) {
    .p-company-philosophy__content {
        gap: calc(var(--gap-unit)*5);
    }

    .p-company-philosophy__card {
        padding: calc(var(--gap-unit)*5) calc(var(--gap-unit)*3);
    }

    .p-company-philosophy__card-title {
        font-size: 1.9rem;
        line-height: 1.7;
    }

    .p-company-philosophy__visual {
        width: 100%;
    }

    .p-company-philosophy__circle {
        display: none;
    }
}




.p-company-credo {
    background: linear-gradient(180deg, rgba(232, 246, 239, 0.36) 0%, rgba(255, 255, 255, 0.58) 100%);
}

.p-company-credo__inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: calc(var(--gap-unit)*10);
}

.p-company-credo__logo {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 25%;
    aspect-ratio: 1/1;
}

.p-company-credo__logo--tb {
    display: none;
}

.p-company-credo__logo::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) scale(0.55);
    width: 145%;
    aspect-ratio: 1/1;
    background: radial-gradient(68.96% 72.61% at 50% 50%, rgba(55, 177, 142, 0.12) 0%, rgba(55, 177, 142, 0) 62%);
    pointer-events: none;
    opacity: 0;
}

.p-company-credo__logo.is-show::before {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
    transition:
        opacity 0.9s cubic-bezier(0.22, 1, 0.36, 1),
        transform 1.1s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-company-credo__logo img {
    position: relative;
    width: 60%;
    z-index: 2;
}

.p-company-credo__content {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*2.5);
}

.p-company-credo__txt {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*2);
    font-size: var(--font-size15);
    line-height: 2.2;
    letter-spacing: 0.04em;
    color: #4A5A54;
}

.p-company-credo__txt p {
    will-change: transform, opacity;
}

.p-company-credo__cards {
    display: flex;
    gap: calc(var(--gap-unit)*2.25);
    margin-top: calc(var(--gap-unit)*2);
}

.p-company-credo__card {
    position: relative;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*1.25);
    padding: calc(var(--gap-unit)*3) calc(var(--gap-unit)*2.75);
    text-align: center;
    background-color: #FFFFFFB8;
    border: 1px solid #37B18E33;
    overflow: hidden;
}

.p-company-credo__card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 3px;
    transform: scaleX(0);
    transform-origin: left center;
}

.p-company-credo__card:nth-child(1)::before {
    background: linear-gradient(90deg, #0096BB 0%, rgba(0, 150, 187, 0.45) 100%);
}

.p-company-credo__card:nth-child(2)::before {
    background: linear-gradient(90deg, #F1BC2E 0%, rgba(241, 188, 46, 0.45) 100%);
}

.p-company-credo__card:nth-child(3)::before {
    background: linear-gradient(90deg, #D94649 0%, rgba(217, 70, 73, 0.45) 100%);
}

.p-company-credo__card.is-show::before {
    transform: scaleX(1);
    transition: transform 0.75s cubic-bezier(0.77, 0, 0.175, 1) 0.15s;
}

.p-company-credo__card-title {
    font-size: var(--font-size22);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.9;
    letter-spacing: 0.14em;
    color: #183A32;
    opacity: 0;
    transform: translate3d(0, 0.8rem, 0);
}

.p-company-credo__card.is-show .p-company-credo__card-title {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.5s cubic-bezier(0.53, 0.2, 0.25, 1) 0.2s,
        transform 0.6s cubic-bezier(0.22, 1, 0.36, 1) 0.2s;
}

.p-company-credo__card-txt {
    font-size: var(--font-size15);
    line-height: 2;
    color: #6A7C74;
    text-align: left;
    opacity: 0;
    transform: translate3d(0, 1rem, 0);
}

.p-company-credo__card.is-show .p-company-credo__card-txt {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1) 0.32s,
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.32s;
}

@media (max-width: 768px) {
    .p-company-credo__logo--tb {
        display: flex;
    }

    .p-company-credo__logo--pc {
        display: none;
    }

    .p-company-credo__logo {
        width: 40%;
        margin: 0 auto;
        aspect-ratio: 3/2;
    }

    .p-company-credo__cards {
        gap: calc(var(--gap-unit)*1.5);
        margin: 0;
    }

    .p-company-credo__card {
        padding: calc(var(--gap-unit)*2.5) calc(var(--gap-unit)*2);
    }
}

@media (max-width: 450px) {
    .p-company-credo__logo {
        width: 65%;
    }

    .p-company-credo__cards {
        flex-direction: column;
    }

    .p-company-credo__txt {
        margin-top: calc(var(--gap-unit)*2);
    }

    .p-company-credo__card {
        padding: calc(var(--gap-unit)*2) calc(var(--gap-unit)*2.5);
    }

    .p-company-credo__card-txt {
        font-size: var(--font-size16);
    }
}



.p-company-history {
    background-color: var(--bg-white-color);
}

.p-company-history__inner {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*7.5);
}

.p-company-history__content {
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: calc(var(--gap-unit)*10);
}

.p-company-history__timeline {
    flex: 1;
    position: relative;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*3.75);
    list-style: none;
    padding: 0;
}

.p-company-history__timeline::before {
    content: "";
    position: absolute;
    top: 5%;
    left: .8rem;
    width: 2px;
    height: 92%;
    background-color: #183A322E;
    transform: scaleY(0);
    transform-origin: top center;
}

.p-company-history__timeline.is-line-show::before {
    transform: scaleY(1);
    transition: transform 1.15s cubic-bezier(0.77, 0, 0.175, 1);
}

.p-company-history__item {
    position: relative;
    display: flex;
    align-items: center;
    gap: calc(var(--gap-unit)*2);
}

.p-company-history__circle {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 1.8rem;
    height: 1.8rem;
    border: 3px solid #159A57;
    border-radius: 50%;
    background-color: var(--bg-white-color);
    margin-right: calc(var(--gap-unit)*.5);
    transform: scale(0);
}

.p-company-history__main {
    flex: 1;
    display: flex;
    align-items: center;
    gap: calc(var(--gap-unit)*2);
}

.p-company-history__date {
    font-size: var(--font-size16);
    font-family: var(--fontG);
    font-weight: 700;
    line-height: 1.9;
    letter-spacing: 0.08em;
    color: #159A57;
    width: 15rem;
    opacity: 0;
    transform: translate3d(-1.6rem, 0, 0);
}

.p-company-history__event {
    flex: 1;
    font-size: var(--font-size16);
    line-height: 1.9;
    opacity: 0;
    transform: translate3d(-1.2rem, 0, 0);
}

.p-company-history__card {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*1.25);
    width: 32%;
    padding: calc(var(--gap-unit)*4.25) calc(var(--gap-unit)*3.75);
    border: 1px solid #37B18E33;
    background-color: #FFFFFFC7;
    box-shadow: 0px 24px 60px 0px #183A3212;
    opacity: 0;
    transform: translate3d(2.4rem, 2rem, 0);
}

.p-company-history__card::before {
    content: "";
    position: absolute;
    right: -2.8rem;
    bottom: -2.8rem;
    z-index: 0;
    width: 12rem;
    height: 12rem;
    border: 1px solid #37B18E3D;
    border-radius: 50%;
    pointer-events: none;
    transform: scale(0.4);
    opacity: 0;
}

.p-company-history__card.is-show::before {
    transform: scale(1);
    opacity: 1;
    transition:
        opacity 0.8s cubic-bezier(0.22, 1, 0.36, 1) 0.15s,
        transform 1s cubic-bezier(0.22, 1, 0.36, 1) 0.15s;
}

.p-company-history__card-label {
    position: relative;
    font-size: var(--font-size14);
    font-family: var(--fontG);
    font-weight: 700;
    line-height: 1.9;
    letter-spacing: 0.28em;
    color: #159A57;
    z-index: 1;
    opacity: 0;
    transform: translate3d(0, 0.8rem, 0);
}

.p-company-history__card.is-show .p-company-history__card-label {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.5s cubic-bezier(0.53, 0.2, 0.25, 1) 0.2s,
        transform 0.6s cubic-bezier(0.22, 1, 0.36, 1) 0.2s;
}

.p-company-history__card-title {
    position: relative;
    font-size: var(--font-size24);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.08em;
    color: #183A32;
    z-index: 1;
    opacity: 0;
    transform: translate3d(0, 1rem, 0);
}

.p-company-history__card.is-show .p-company-history__card-title {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1) 0.32s,
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.32s;
}

.p-company-history__card-txt {
    position: relative;
    font-size: var(--font-size16);
    line-height: 2;
    color: #6A7C74;
    margin-top: calc(var(--gap-unit)*.75);
    z-index: 1;
    opacity: 0;
    transform: translate3d(0, 1rem, 0);
}

.p-company-history__card.is-show .p-company-history__card-txt {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1) 0.45s,
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.45s;
}

@media (max-width: 768px) {
    .p-company-history__inner {
        gap: calc(var(--gap-unit)*5);
    }

    .p-company-history__content {
        flex-direction: column;
        gap: calc(var(--gap-unit)*4);
    }

    .p-company-history__item {
        gap: calc(var(--gap-unit)*3);
    }

    .p-company-history__date {
        width: 14rem;
    }

    .p-company-history__card {
        width: 100%;
    }

    .p-company-history__timeline::before {
        height: 85%;
    }

    .p-company-history__card-title br {
        display: none;
    }
}

@media (max-width: 450px) {
    .p-company-history__timeline::before {
        top: calc(var(--gap-unit)*.5);
        bottom: unset;
        height: 94%;
        transform: scaleY(0);
        transform-origin: top center;
    }

    .p-company-history__timeline.is-line-show::before {
        transform: scaleY(1);
    }

    .p-company-history__item {
        align-items: flex-start;
    }

    .p-company-history__circle {
        margin-top: calc(var(--gap-unit)*.5);
    }

    .p-company-history__main {
        flex-direction: column;
        align-items: flex-start;
        gap: calc(var(--gap-unit));
    }

    .p-company-history__card-txt {
        font-size: var(--font-size15);
    }
}




.p-company-license {
    position: relative;
    background: linear-gradient(180deg, rgba(232, 246, 239, 0.36) 0%, rgba(255, 255, 255, 0.58) 100%);
}

.p-company-license__inner {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*7.5);
}

.p-company-license__content {
    display: flex;
    align-items: flex-start;
    gap: calc(var(--gap-unit)*10);
}

.p-company-license__feature {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*2.2);
    width: 34%;
    padding: calc(var(--gap-unit)*5) calc(var(--gap-unit)*4.25);
    border: 1px solid #37B18E2E;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.82) 0%, rgba(248, 252, 248, 0.74) 100%);
    box-shadow: 0px 24px 64px 0px #183A3212;
    overflow: hidden;
}

.p-company-license__feature::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 4px;
    height: 100%;
    background: linear-gradient(180deg, #159A57 0%, rgba(21, 154, 87, 0.2) 100%);
    transform: scaleY(0);
    transform-origin: top center;
}

.p-company-license__feature.is-show::before {
    transform: scaleY(1);
    transition: transform 0.9s cubic-bezier(0.77, 0, 0.175, 1);
}

.p-company-license__count {
    display: flex;
    align-items: baseline;
}

.p-company-license__num {
    font-size: 7.2rem;
    font-family: var(--fontT);
    line-height: 1;
    color: var(--bg-green-color);
}

.p-company-license__unit {
    font-size: var(--font-size18);
    font-family: var(--fontT);
    line-height: 1;
}

.p-company-license__feature-title {
    font-size: var(--font-size24);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.75;
    letter-spacing: 0.08em;
    color: #183A32;
    margin-top: calc(var(--gap-unit)*.5);
}

.p-company-license__feature-txt {
    font-size: var(--font-size16);
    line-height: 2;
    color: #6A7C74;
}

.p-company-license__list {
    flex: 1;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: calc(var(--gap-unit)*1.75);
    list-style: none;
    padding: 0;
}

.p-company-license__item {
    display: flex;
    align-items: center;
    padding: calc(var(--gap-unit)*1.875);
    font-size: var(--font-size16);
    line-height: 1.75;
    background-color: var(--bg-white-color);
    border: 1px solid #183A321A;
    border-left: 3px solid #37B18E73;
}

@media (max-width: 768px) {
    .p-company-license__content {
        flex-direction: column;
        gap: calc(var(--gap-unit)*5);
    }

    .p-company-license__feature {
        width: 100%;
        padding: calc(var(--gap-unit)*4) calc(var(--gap-unit)*3.5);
    }

    .p-company-license__feature-title {
        font-size: var(--font-size22);
    }

    .p-company-license__feature-txt {
        font-size: var(--font-size15);
    }

    .p-company-license__item {
        font-size: var(--font-size15);
    }

    .p-company-license__num {
        font-size: 6rem;
    }

    .p-company-license__list {
        width: 100%;
    }
}

@media (max-width: 450px) {
    .p-company-license__feature {
        padding: calc(var(--gap-unit)*3.5) calc(var(--gap-unit)*3);
    }


    .p-company-license__item {
        font-size: var(--font-size14);
        padding: calc(var(--gap-unit)*1.75) calc(var(--gap-unit)*1.5);
    }
}



.p-company-office {
    position: relative;
    background: linear-gradient(180deg, rgba(232, 246, 239, 0.36) 0%, rgba(255, 255, 255, 0.58) 100%);
}

.p-company-office__inner {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*5);
}

.p-company-office__group {
    margin-top: calc(var(--gap-unit)*5);
}

.p-company-office__group .c-sec__title {
    gap: calc(var(--gap-unit)*1.7);
    padding-bottom: calc(var(--gap-unit)*2.3);
}

.p-company-office__list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: calc(var(--gap-unit)*6.25) calc(var(--gap-unit)*2.75);
    margin-top: calc(var(--gap-unit)*5);
}

.p-company-office__card {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*2.25);
    padding: calc(var(--gap-unit)*3.5);
    background-color: #FFFFFFBD;
    border: 1px solid #37B18E2E;
    overflow: hidden;
}

.p-company-office__card::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 3px;
    background: linear-gradient(90deg, #159A57 0%, rgba(21, 154, 87, 0.2) 100%);
    transform: scaleX(0);
    transform-origin: left center;
}

.p-company-office__card.is-show::after {
    transform: scaleX(1);
    transition: transform 0.7s cubic-bezier(0.77, 0, 0.175, 1) 0.12s;
}

.p-company-office__card::before {
    content: "MAP";
    position: absolute;
    bottom: 0;
    right: calc(var(--gap-unit)*2.75);
    font-size: 5.4rem;
    font-family: var(--fontG);
    line-height: 1.7;
    letter-spacing: .09rem;
    color: #37B18E14;
    z-index: 2;
    opacity: 0;
    transform: translate3d(1.2rem, 0.8rem, 0);
}

.p-company-office__card.is-show::before {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.7s cubic-bezier(0.53, 0.2, 0.25, 1) 0.25s,
        transform 0.85s cubic-bezier(0.22, 1, 0.36, 1) 0.25s;
}

.p-company-office__name {
    font-size: var(--font-size20);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 2.2;
    letter-spacing: 0.015em;
    color: #183A32;
}

.p-company-office__info {
    flex: 1;
    font-size: var(--font-size14);
    line-height: 2;
    color: #6A7C74;
}

.p-company-office__map {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    padding: calc(var(--gap-unit)*3.75);
    overflow: hidden;
    border: 1px solid #183A321C;
    background: linear-gradient(99.75deg, rgba(168, 216, 203, 0.25) 0%, rgba(255, 255, 255, 0.7) 100%);
    transition:
        border-color 0.4s cubic-bezier(0.22, 1, 0.36, 1),
        box-shadow 0.4s cubic-bezier(0.22, 1, 0.36, 1),
        transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-company-office__map::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(105deg, rgba(21, 154, 87, 0.16) 0%, rgba(55, 177, 142, 0.08) 55%, rgba(255, 255, 255, 0) 100%);
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform 0.5s cubic-bezier(0.77, 0, 0.175, 1);
    z-index: 0;
}

.p-company-office__map::after {
    content: "";
    position: absolute;
    right: calc(var(--gap-unit)*3);
    top: 50%;
    width: 1.4rem;
    height: 1.4rem;
    border-top: 1.5px solid #159A57;
    border-right: 1.5px solid #159A57;
    opacity: 0;
    transform: translate(-0.6rem, -50%) rotate(45deg);
    transition:
        opacity 0.35s cubic-bezier(0.22, 1, 0.36, 1),
        transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
    z-index: 1;
}

.p-company-office__map:hover {
    border-color: #37B18E66;
    box-shadow: 0 1.2rem 2.8rem rgba(24, 58, 50, 0.08);
    transform: translateY(-0.2rem);
}

.p-company-office__map:hover::before {
    transform: scaleX(1);
}

.p-company-office__map:hover::after {
    opacity: 1;
    transform: translate(0, -50%) rotate(45deg);
}

.p-company-office__map-label {
    position: relative;
    z-index: 1;
    font-size: var(--font-size12);
    font-weight: 700;
    line-height: 1.9;
    letter-spacing: 0.16em;
    color: #183A327A;
    transition:
        color 0.35s cubic-bezier(0.22, 1, 0.36, 1),
        letter-spacing 0.45s cubic-bezier(0.22, 1, 0.36, 1),
        transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-company-office__map:hover .p-company-office__map-label {
    color: #159A57;
    letter-spacing: 0.2em;
    transform: translateX(-0.4rem);
}

@media (max-width: 768px) {
    .p-company-office__map {
        padding: calc(var(--gap-unit)*3);
    }
}

@media (max-width: 450px) {
    .p-company-office__list {
        grid-template-columns: 1fr;
        gap: calc(var(--gap-unit)*2.5);
        margin-top: calc(var(--gap-unit)*6);
    }

    .p-company-office__map {
        padding: calc(var(--gap-unit)*3.5);
    }
}

.p-company-office__contact {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: calc(var(--gap-unit)*5);
    padding: calc(var(--gap-unit)*4.25) calc(var(--gap-unit)*8.25);
    background: linear-gradient(99.74deg, rgba(255, 255, 255, 0.86) 0%, rgba(248, 252, 248, 0.72) 100%),
        radial-gradient(94.39% 549.95% at 94% 50%, rgba(55, 177, 142, 0.08) 0%, rgba(55, 177, 142, 0) 22%);
    border: 1px solid #37B18E3D;
    box-shadow: 0px 22px 56px 0px #183A320F;
    overflow: hidden;
}

.p-company-office__contact::before {
    content: "";
    position: absolute;
    top: -2.8rem;
    right: -2.8rem;
    width: 16.5rem;
    aspect-ratio: 1;
    border-radius: 50%;
    border: 1px solid #37B18E1F;
    pointer-events: none;
    transform: scale(0.5);
    opacity: 0;
}

.p-company-office__contact.is-show::before {
    transform: scale(1);
    opacity: 1;
    transition:
        opacity 0.8s cubic-bezier(0.22, 1, 0.36, 1) 0.15s,
        transform 1s cubic-bezier(0.22, 1, 0.36, 1) 0.15s;
}

.p-company-office__contact-main {
    flex: 1;
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    gap: calc(var(--gap-unit)*5);
}

.p-company-office__contact-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 7.6rem;
    height: 7.6rem;
    background-color: #37B18E1A;
    border-radius: 50%;
}

.p-company-office__contact-icon svg {
    width: 4.2rem;
    height: 4.2rem;
}

.p-company-office__contact-label {
    display: block;
    margin-bottom: calc(var(--gap-unit)*1.4);
    font-size: var(--font-size12);
    font-weight: 700;
    line-height: 1.9;
    letter-spacing: 0.32em;
    color: #159A57;
}

.p-company-office__contact-txt {
    font-size: var(--font-size20);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 2;
    letter-spacing: 0.01em;
    color: #1B3A32;
}

.p-company-office__mail {
    position: relative;
    z-index: 1;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: calc(var(--gap-unit)*1.75);
    padding: calc(var(--gap-unit)*2) calc(var(--gap-unit)*3.5);
    overflow: hidden;
    color: #159A57;
    background-color: #FFFFFFA8;
    border: 1px solid #37B18E2E;
    transition:
        color 0.35s cubic-bezier(0.22, 1, 0.36, 1),
        background-color 0.35s cubic-bezier(0.22, 1, 0.36, 1),
        border-color 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-company-office__mail::after {
    content: "";
    position: absolute;
    left: calc(var(--gap-unit)*3.5);
    right: calc(var(--gap-unit)*3.5);
    bottom: calc(var(--gap-unit)*1.2);
    height: 1px;
    background: linear-gradient(90deg, transparent 0%, #159A57 20%, #159A57 80%, transparent 100%);
    transform: scaleX(0);
    transform-origin: center;
    transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-company-office__mail:hover {
    color: #FFFFFF;
    background-color: #159A57;
    border-color: #159A57;
}

.p-company-office__mail:hover::after {
    transform: scaleX(1);
}

.p-company-office__mail-icon {
    position: relative;
    z-index: 1;
    display: flex;
    width: 2.8rem;
    transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.p-company-office__mail:hover .p-company-office__mail-icon {
    transform: rotate(-8deg) translateY(-0.1rem);
}

.p-company-office__mail-icon svg {
    width: 100%;
    transition: filter 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-company-office__mail:hover .p-company-office__mail-icon svg {
    filter: brightness(0) invert(1);
}

.p-company-office__mail-txt {
    position: relative;
    z-index: 1;
    font-size: var(--font-size24);
    font-family: var(--fontG);
    line-height: 1.6;
    letter-spacing: 0.02em;
    color: var(--bg-green-color);
    transition: color 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-company-office__mail:hover .p-company-office__mail-txt {
    color: #FFFFFF;
}

@media (max-width: 768px) {
    .p-company-office__contact {
        flex-direction: column;
        align-items: flex-end;
        gap: calc(var(--gap-unit)*4);
        padding: calc(var(--gap-unit)*4.25) calc(var(--gap-unit)*5);
    }

    .p-company-office__contact-text {
        flex: 1;
    }

    .p-company-office__contact-main {
        width: 100%;
        gap: calc(var(--gap-unit)*3);
    }

    .p-company-office__mail-txt {
        font-size: var(--font-size22);
    }
}

@media (max-width: 768px) {
    .p-company-office__contact {
        padding: calc(var(--gap-unit)*4) calc(var(--gap-unit)*2.5);
    }

    .p-company-office__contact-main {
        align-items: flex-start;
        gap: calc(var(--gap-unit)*2);
    }

    .p-company-office__contact-icon {
        width: 7rem;
        height: 7rem;
    }

    .p-company-office__contact-icon svg {
        width: 4rem;
        height: 4rem;
    }

    .p-company-office__mail {
        width: 100%;
    }
}


.p-company-membership {
    position: relative;
    background: linear-gradient(180deg, rgba(232, 246, 239, 0.36) 0%, rgba(255, 255, 255, 0.58) 100%);
}

.p-company-membership__inner {
    display: flex;
    align-items: flex-start;
    gap: calc(var(--gap-unit)*8.5);
}

.p-company-membership__heading {
    width: 34%;
    flex-shrink: 0;
}

.p-company-membership__heading .c-sec__heading {
    gap: calc(var(--gap-unit)*3.5);
}

.p-company-membership__list {
    flex: 1;
    min-width: 0;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: calc(var(--gap-unit)*1.5);
    list-style: none;
    padding: 0;
    margin: 0;
}

.p-company-membership__item {
    display: flex;
    align-items: center;
    gap: calc(var(--gap-unit)*1.75);
    padding: calc(var(--gap-unit)*3.25) calc(var(--gap-unit)*2.25);
    font-size: var(--font-size16);
    line-height: 1.4;
    color: #183A32;
    background-color: var(--bg-white-color);
    border: 1px solid #183A321A;
    box-shadow: 0px 16px 38px 0px #183A320B;
    transition:
        border-color 0.35s ease,
        box-shadow 0.35s ease,
        transform 0.35s ease;
}

.p-company-membership__link {
    flex: 1;
    min-width: 0;
    color: inherit;
    text-decoration: none;
    transition: color 0.35s ease;
}

.p-company-membership__item:has(.p-company-membership__link) {
    cursor: pointer;
}

@media (hover: hover) {
    .p-company-membership__item:has(.p-company-membership__link):hover {
        border-color: #69A78A;
        box-shadow: 0 18px 40px rgba(24, 58, 50, 0.1);
        transform: translateY(-0.15rem);
    }

    .p-company-membership__item:has(.p-company-membership__link):hover .p-company-membership__link {
        color: #159A57;
    }
}

.p-company-membership__item::before {
    content: "";
    flex-shrink: 0;
    width: 1rem;
    height: 1rem;
    border-radius: 50%;
    background-color: var(--bg-green-color);
}

@media (max-width: 768px) {
    .p-company-membership__inner {
        flex-direction: column;
        gap: calc(var(--gap-unit)*5);
    }

    .p-company-membership__heading {
        width: 100%;
    }

    .p-company-membership__list {
        width: 100%;
    }

    .p-company-membership__item {
        font-size: var(--font-size15);
        padding: calc(var(--gap-unit)*2) calc(var(--gap-unit)*2.25);
    }
}

@media (max-width: 450px) {
    .p-company-membership__list {
        grid-template-columns: repeat(1, 1fr);
        gap: calc(var(--gap-unit)*1.5);
    }

    .p-company-membership__item {
        font-size: var(--font-size16);
        gap: calc(var(--gap-unit)*1.5);
        padding: calc(var(--gap-unit)*2.5) calc(var(--gap-unit)*3);
    }
}


/* -------page service------- */
.p-service-message__inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: calc(var(--gap-unit)*7);
    padding: 0 4rem;
}

.p-service-message__content {
    flex: 1;
    position: relative;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*2.7);
    padding-left: calc(var(--gap-unit)*3.75);
}

.p-service-message__content::before {
    content: "";
    position: absolute;
    top: .6rem;
    bottom: 2.8rem;
    left: 0;
    width: 2px;
    background: linear-gradient(180deg, #159A57 0%, rgba(21, 154, 87, 0) 100%);
    transform: scaleY(0);
    transform-origin: top center;
}

.p-service-message__content.is-line-show::before {
    transform: scaleY(1);
    transition: transform 0.9s cubic-bezier(0.77, 0, 0.175, 1);
}

.p-service-message__title {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*2.125);
}

.p-service-message__title-en {
    font-size: var(--font-size12);
    font-weight: 700;
    line-height: 1.9;
    letter-spacing: 0.22em;
    color: #159A57;
}

.p-service-message__title-ja {
    font-size: var(--font-size32);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.9;
    letter-spacing: 0.02em;
    color: #11324A;
}

.p-service-message__txt {
    font-size: var(--font-size15);
    line-height: 1.9;
}

.p-service-message__visual {
    position: relative;
    width: 45%;
    overflow: hidden;
    box-shadow: 0px 22px 60px 0px #11324A1A;
}

.p-service-message__visual::before,
.p-service-message__visual::after {
    content: "";
    position: absolute;
    inset: 1.2rem;
    z-index: 2;
    border: 1px solid #FFFFFFCC;
    pointer-events: none;
    opacity: 0;
    transform: scale(0.12);
    transform-origin: center center;
}

.p-service-message__visual::before {
    border-color: rgba(255, 255, 255, 0.45);
}

.p-service-message__visual.is-frame-show::before {
    animation: serviceFrameRipple 1.35s 0.15s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.p-service-message__visual.is-frame-show::after {
    animation: serviceFrameRippleSettle 1.15s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes serviceFrameRipple {
    0% {
        opacity: 0.75;
        transform: scale(0.12);
        border-color: rgba(255, 255, 255, 0.7);
    }

    70% {
        opacity: 0.35;
        transform: scale(1.08);
        border-color: rgba(255, 255, 255, 0.25);
    }

    100% {
        opacity: 0;
        transform: scale(1.18);
        border-color: rgba(255, 255, 255, 0);
    }
}

@keyframes serviceFrameRippleSettle {
    0% {
        opacity: 0.9;
        transform: scale(0.18);
    }

    60% {
        opacity: 1;
        transform: scale(1.03);
    }

    100% {
        opacity: 1;
        transform: scale(1);
    }
}

.p-service-message__img {
    display: flex;
    aspect-ratio: 472/206;
    overflow: hidden;
    background-color: #E5EBE7;
    clip-path: circle(0% at 50% 50%);
}

.p-service-message__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transform: scale(1.14);
}

@media (max-width: 768px) {
    .p-service-message__inner {
        padding: 0;
        gap: calc(var(--gap-unit)*4);
    }

    .p-service-message__content {
        padding-left: calc(var(--gap-unit)*2.5);
        gap: calc(var(--gap-unit)*2);
    }

    .p-service-message__title {
        gap: calc(var(--gap-unit)*1.5);
    }

    .p-service-message__title-ja {
        font-size: var(--font-size26);
    }
}

@media (max-width: 450px) {
    .p-service-message__inner {
        flex-direction: column;
    }

    .p-service-message__visual {
        width: 100%;
    }
}



.p-service-list {
    position: relative;
    background: linear-gradient(180deg, #F4FBF7 0%, #FFFFFF 100%);
}

.p-service-list__inner {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*8);
    padding: 0 4rem;
}

.p-service-list__heading {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(var(--gap-unit)*3.125);
}

.p-service-list__title {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(var(--gap-unit)*2.25);
}

.p-service-list__title-en {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: calc(var(--gap-unit)*1.75);
    font-size: var(--font-size12);
    font-weight: 700;
    line-height: 1.9;
    letter-spacing: 0.22em;
    color: #159A57;
}

.p-service-list__title-en::before {
    content: "";
    display: block;
    width: 3.5rem;
    height: 1px;
    background-color: var(--bg-green-color);
    transform: scaleX(0);
    transform-origin: right center;
}

.p-service-list__title.is-show .p-service-list__title-en::before {
    transform: scaleX(1);
    transition: transform 0.7s cubic-bezier(0.77, 0, 0.175, 1) 0.15s;
}

.p-service-list__title-ja {
    font-size: 4rem;
    font-family: var(--fontT);
    font-weight: 600;
    line-height: 1.6;
    letter-spacing: 0.08em;
    color: #11324A;
    text-align: center;
}

.p-service-list__lead {
    font-size: var(--font-size15);
    line-height: 1.9;
    letter-spacing: .6px;
    color: #536962;
    text-align: center;
}

.p-service-list__items {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*14);
}

.p-service-list__item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: calc(var(--gap-unit)*8);
}

.p-service-list__item--reverse {
    flex-direction: row-reverse;
}

.p-service-list__media {
    position: relative;
    width: 44%;
    overflow: hidden;
    box-shadow: 0px 22px 60px 0px #11324A1A;
}

.p-service-list__media::before,
.p-service-list__media::after {
    content: none;
    display: none;
}

.p-service-list__media::before {
    border-color: rgba(255, 255, 255, 0.45);
}

.p-service-list__media.is-frame-show::before {
    animation: serviceFrameRipple 1.35s 0.15s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.p-service-list__media.is-frame-show::after {
    animation: serviceFrameRippleSettle 1.15s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.p-service-list__img {
    position: relative;
    display: flex;
    width: 100%;
    aspect-ratio: 45 / 37;
    overflow: hidden;
    background-color: #E5EBE7;
    z-index: 2;
    clip-path: circle(0% at 50% 50%);
}

.p-service-list__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transform: scale(1.14);
}

.p-service-list__img .swiper {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.p-service-list__img .swiper-slide {
    height: 100%;
}

.p-service-list__img .swiper-pagination {
    bottom: 1.4rem;
}

.p-service-list__img .swiper-pagination-bullet {
    width: 0.8rem;
    height: 0.8rem;
    background: #ffffff;
    opacity: 0.55;
}

.p-service-list__img .swiper-pagination-bullet-active {
    background: #37B18E;
    opacity: 1;
}

.p-service-list__img .swiper-button-prev,
.p-service-list__img .swiper-button-next {
    width: 4rem;
    height: 4rem;
    margin-top: 0;
    top: 50%;
    transform: translateY(-50%);
    color: #ffffff;
    background: rgba(24, 58, 50, 0.42);
    border: 0;
    border-radius: 50%;
    --swiper-navigation-size: 1.5rem;
}

.p-service-list__img .swiper-button-prev {
    left: 1.2rem;
}

.p-service-list__img .swiper-button-next {
    right: 1.2rem;
}

.p-service-list__img .swiper-button-prev::after,
.p-service-list__img .swiper-button-next::after {
    font-size: 1.5rem;
    font-weight: 700;
}

.p-service-list__content {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*2.25);
}

.p-service-list__meta {
    position: relative;
    padding-top: var(--gap-unit);
}

.p-service-list__num {
    position: absolute;
    bottom: -2rem;
    left: calc(var(--gap-unit)*-1);
    font-size: 11rem;
    font-family: var(--fontT);
    font-weight: 600;
    line-height: 1;
    color: #11324A17;
    pointer-events: none;
    opacity: 0;
    transform: translate3d(0, 1.5rem, 0) scale(0.9);
}

.p-service-list__en {
    position: relative;
    z-index: 1;
    font-size: var(--font-size12);
    font-weight: 700;
    line-height: 1.9;
    letter-spacing: 0.22em;
    color: var(--bg-green-color);
    opacity: 0;
    transform: translate3d(0, 1rem, 0);
}

.p-service-list__name {
    position: relative;
    font-size: var(--font-size32);
    font-family: var(--fontT);
    font-weight: 600;
    line-height: 1.5;
    color: #11324A;
    padding-bottom: calc(var(--gap-unit)*2.25);
    opacity: 0;
    transform: translate3d(0, 1.4rem, 0);
}

.p-service-list__name::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 7.6rem;
    height: 1px;
    background-color: var(--bg-green-color);
    transform: scaleX(0);
    transform-origin: left center;
}

.p-service-list__item.is-show .p-service-list__name::after {
    transform: scaleX(1);
    transition: transform 0.7s cubic-bezier(0.77, 0, 0.175, 1) 0.35s;
}

.p-service-list__txt {
    font-size: var(--font-size15);
    line-height: 1.9;
    padding-top: var(--gap-unit);
    padding-bottom: calc(var(--gap-unit)*1.25);
    opacity: 0;
    transform: translate3d(0, 1.4rem, 0);
}

.p-service-list__detail {
    font-size: var(--font-size14);
    line-height: 1.9;
    color: #536962;
    padding: calc(var(--gap-unit)*2.7) calc(var(--gap-unit)*3);
    background-color: #FFFFFFC7;
    border: 1px solid #DCEBE3;
    border-radius: calc(var(--gap-unit)*2);
    opacity: 0;
    transform: translate3d(0, 1.6rem, 0);
}

.p-service-list__detail-label {
    font-weight: 700;
    color: #11324A;
}

@media (max-width: 768px) {
    .p-service-list__inner {
        padding: 0;
    }

    .p-service-list__title-ja {
        font-size: var(--font-size32);
    }

    .p-service-list__items {
        gap: calc(var(--gap-unit)*10);
    }

    .p-service-list__item {
        gap: calc(var(--gap-unit)*4);
    }

    .p-service-list__num {
        font-size: 9rem;
    }

    .p-service-list__name {
        font-size: var(--font-size28);
    }
}

@media (max-width: 450px) {
    .p-service-list__title-ja {
        font-size: 2.5rem;
    }

    .p-service-list__lead {
        text-align: left;
    }

    .p-service-list__item {
        flex-direction: column-reverse;
    }

    .p-service-list__content {
        gap: calc(var(--gap-unit)*2);
    }

    .p-service-list__name {
        padding-bottom: calc(var(--gap-unit)*2);
    }

    .p-service-list__media {
        width: 100%;
    }
}







/* -------page ai------- */
.p-ai-intro {
    position: relative;
}

.p-ai-intro__inner {
    padding: 0 13rem;
}

.p-ai-intro__content {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*2.75);
    padding-left: calc(var(--gap-unit)*3.8);
}

.p-ai-intro__content::before {
    content: "";
    position: absolute;
    top: .6rem;
    left: 0;
    bottom: 2rem;
    width: 3px;
    background: linear-gradient(180deg, #159A57 0%, rgba(21, 154, 87, 0) 100%);
    transform: scaleY(0);
    transform-origin: top center;
}

.p-ai-intro__content.is-line-show::before {
    transform: scaleY(1);
    transition: transform 0.9s cubic-bezier(0.77, 0, 0.175, 1);
}

.p-ai-intro__head {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*2);
}

.p-ai-intro__label {
    font-size: var(--font-size12);
    font-weight: 700;
    line-height: 2;
    letter-spacing: 0.28em;
    color: #159A57;
}

.p-ai-intro__title {
    font-size: var(--font-size34);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: 0.02em;
}

.p-ai-intro__mark {
    position: relative;
    display: inline-block;
    cursor: default;
    transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-ai-intro__mark span {
    position: relative;
    z-index: 1;
    transition: color 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-ai-intro__mark::before {
    content: "";
    position: absolute;
    bottom: -3px;
    left: 0;
    width: 100%;
    height: calc(var(--gap-unit)*2.1);
    background-color: #37B18E2E;
    transform: scaleX(0);
    transform-origin: left center;
    transition:
        transform 0.55s cubic-bezier(0.77, 0, 0.175, 1),
        background-color 0.4s cubic-bezier(0.22, 1, 0.36, 1),
        height 0.4s cubic-bezier(0.22, 1, 0.36, 1),
        box-shadow 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-ai-intro__mark.is-show::before {
    transform: scaleX(1);
}

.p-ai-intro__mark::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -3px;
    width: 100%;
    height: 2px;
    background: linear-gradient(90deg, #159A57 0%, rgba(21, 154, 87, 0.2) 100%);
    transform: scaleX(0);
    transform-origin: left center;
    opacity: 0;
    transition:
        transform 0.45s cubic-bezier(0.22, 1, 0.36, 1),
        opacity 0.35s cubic-bezier(0.22, 1, 0.36, 1);
    z-index: 2;
}

.p-ai-intro__mark:hover {
    transform: translateY(-0.15rem);
}

.p-ai-intro__mark:hover span {
    color: #0F7A44;
}

.p-ai-intro__mark:hover::before {
    background-color: rgba(55, 177, 142, 0.38);
    height: calc(var(--gap-unit)*2.6);
    box-shadow: 0 0 1.6rem rgba(55, 177, 142, 0.25);
}

.p-ai-intro__mark:hover::after {
    transform: scaleX(1);
    opacity: 1;
}

.p-ai-intro__txt {
    font-size: var(--font-size16);
    line-height: 2.1;
}

@media (max-width: 768px) {
    .p-ai-intro__inner {
        padding: 0;
    }

    .p-ai-intro__title {
        font-size: var(--font-size26);
    }

    .p-ai-intro__txt {
        font-size: var(--font-size15);
    }
}

@media (max-width: 450px) {
    .p-ai-intro__mark::before,
    .p-ai-intro__mark::after {
        display: none;
    }

    .p-ai-intro__mark:hover {
        transform: none;
    }

    .p-ai-intro__mark:hover span {
        color: inherit;
    }

    .p-ai-intro__content {
        padding-left: calc(var(--gap-unit)*3.5);
    }
}



.p-ai-solution {
    position: relative;
    background-color: var(--bg-white-color);
}

.p-ai-solution__content {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*3.325);
}

.p-ai-solution__list {
    display: flex;
    gap: calc(var(--gap-unit)*2.25);
}

.p-ai-solution__card {
    position: relative;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*2);
    padding: calc(var(--gap-unit)*3.5) calc(var(--gap-unit)*3);
    background-color: var(--bg-white-color);
    border: 1px solid #E0EBE4;
    border-right: none;
    box-shadow: 0px 18px 56px 0px #182F280F;
    overflow: hidden;
    opacity: 0;
    transform: translate3d(0, 2.4rem, 0);
}

.p-ai-solution__card.is-show {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-ai-solution__card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 3px;
    background: linear-gradient(90deg, #159A57 0%, rgba(21, 154, 87, 0.2) 100%);
    transform: scaleX(0);
    transform-origin: left center;
}

.p-ai-solution__card.is-show::before {
    transform: scaleX(1);
    transition: transform 0.7s cubic-bezier(0.77, 0, 0.175, 1) 0.12s;
}

.p-ai-solution__list .p-ai-solution__card:last-child {
    border-right: 1px solid #E0EBE4;
}

.p-ai-solution__num {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 4rem;
    height: 4rem;
    font-size: var(--font-size18);
    font-family: var(--fontT);
    line-height: 1;
    color: #1B3A31;
    background-color: #EEF7F2;
    border: 1px solid #69A78A6B;
    opacity: 0;
    transform: scale(0.6);
}

.p-ai-solution__card.is-show .p-ai-solution__num {
    opacity: 1;
    transform: scale(1);
    transition:
        opacity 0.4s cubic-bezier(0.22, 1, 0.36, 1) 0.15s,
        transform 0.55s cubic-bezier(0.34, 1.56, 0.64, 1) 0.15s;
}

.p-ai-solution__card-title {
    font-size: var(--font-size28);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0.04em;
    color: #1B3A31;
    opacity: 0;
    transform: translate3d(0, 1rem, 0);
}

.p-ai-solution__card.is-show .p-ai-solution__card-title {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.5s cubic-bezier(0.53, 0.2, 0.25, 1) 0.25s,
        transform 0.6s cubic-bezier(0.22, 1, 0.36, 1) 0.25s;
}

.p-ai-solution__card-txt {
    font-size: var(--font-size15);
    line-height: 2;
    color: #667A72;
    opacity: 0;
    transform: translate3d(0, 1rem, 0);
}

.p-ai-solution__card.is-show .p-ai-solution__card-txt {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.5s cubic-bezier(0.53, 0.2, 0.25, 1) 0.38s,
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.38s;
}

.p-ai-solution__arrow {
    display: flex;
    width: 80%;
    margin: 0 auto;
    opacity: 0;
    clip-path: inset(0 0 100% 0);
}

.p-ai-solution__arrow.is-show {
    opacity: 1;
    clip-path: inset(0 0 0 0);
    transition:
        opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1),
        clip-path 0.9s cubic-bezier(0.77, 0, 0.175, 1);
}

.p-ai-solution__arrow img {
    width: 100%;
}

.p-ai-solution__result {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*1.5);
    padding: calc(var(--gap-unit)*7) 25rem;
    background: radial-gradient(90.17% 403.9% at 88% 12%, rgba(105, 167, 138, 0.13) 0%, rgba(105, 167, 138, 0) 25%), linear-gradient(102.58deg, rgba(238, 247, 242, 0.94) 0%, rgba(255, 255, 255, 0.98) 100%);
    border: 1px solid #69A78A47;
    box-shadow: 0px 18px 56px 0px #182F280D;
    overflow: hidden;
    clip-path: circle(0% at 50% 50%);
}

.p-ai-solution__result.is-show {
    clip-path: circle(140% at 50% 50%);
    transition: clip-path 1.05s cubic-bezier(0.77, 0, 0.175, 1);
}

.p-ai-solution__result::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 12rem;
    height: 12rem;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(21, 154, 87, 0.22) 0%, rgba(21, 154, 87, 0) 70%);
    transform: translate(-50%, -50%) scale(0.2);
    opacity: 0;
    pointer-events: none;
}

.p-ai-solution__result.is-show::before {
    animation: aiSolutionBloom 1.4s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.p-ai-solution__result::after {
    content: "";
    position: absolute;
    inset: 0;
    border: 1px solid transparent;
    pointer-events: none;
    opacity: 0;
}

.p-ai-solution__result.is-show::after {
    animation: aiSolutionBorderFlash 1.1s cubic-bezier(0.22, 1, 0.36, 1) 0.25s forwards;
}

@keyframes aiSolutionBloom {
    0% {
        opacity: 0;
        transform: translate(-50%, -50%) scale(0.2);
    }
    35% {
        opacity: 1;
    }
    100% {
        opacity: 0;
        transform: translate(-50%, -50%) scale(4.5);
    }
}

@keyframes aiSolutionBorderFlash {
    0% {
        opacity: 0;
        box-shadow: inset 0 0 0 0 rgba(21, 154, 87, 0);
    }
    40% {
        opacity: 1;
        box-shadow: inset 0 0 0 2px rgba(21, 154, 87, 0.35);
    }
    100% {
        opacity: 0;
        box-shadow: inset 0 0 0 0 rgba(21, 154, 87, 0);
    }
}

.p-ai-solution__result-label {
    position: relative;
    display: inline-flex;
    align-self: flex-start;
    font-size: var(--font-size20);
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0.01em;
    color: var(--bg-green-color);
}

.p-ai-solution__result-label > span {
    display: inline-block;
    opacity: 0;
    transform: translate3d(-1.2rem, 0, 0);
    filter: blur(4px);
}

.p-ai-solution__result.is-show .p-ai-solution__result-label > span {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    filter: blur(0);
    transition:
        opacity 0.55s cubic-bezier(0.22, 1, 0.36, 1) 0.45s,
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.45s,
        filter 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.45s;
}

.p-ai-solution__result-txt {
    position: relative;
    font-size: var(--font-size32);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: 0.04em;
    color: #1B3A31;
    perspective: 640px;
}

.p-ai-solution__result-txt .char {
    display: inline-block;
    opacity: 0;
    transform: translate3d(0, 0.85em, 0) rotateX(-55deg);
    transform-origin: 50% 100%;
}

@media (max-width: 768px) {
    .p-ai-solution__list {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: calc(var(--gap-unit)*2);
    }

    .p-ai-solution__card,
    .p-ai-solution__list .p-ai-solution__card:last-child {
        border-right: 1px solid #E0EBE4;
    }

    .p-ai-solution__card-title {
        font-size: var(--font-size26);
    }

    .p-ai-solution__result {
        gap: calc(var(--gap-unit)*2);
        padding: calc(var(--gap-unit)*5) calc(var(--gap-unit)*10);
    }

    .p-ai-solution__result-txt {
        font-size: var(--font-size26);
    }

    .p-ai-solution__result-label {
        font-size: var(--font-size16);
    }
}

@media (max-width: 450px) {
    .p-ai-solution__list {
        grid-template-columns: 1fr;
        gap: calc(var(--gap-unit)*1.5);
    }

    .p-ai-solution__card-title {
        font-size: var(--font-size24);
    }

    .p-ai-solution__card-title br {
        display: none;
    }

    .p-ai-solution__arrow {
        width: 100%;
    }

    .p-ai-solution__result {
        padding: calc(var(--gap-unit)*4) calc(var(--gap-unit)*2.5);
    }

    .p-ai-solution__result-label {
        font-size: var(--font-size15);
    }

    .p-ai-solution__result-txt {
        font-size: var(--font-size22);
    }
}



.p-ai-lineup {
    position: relative;
    background-color: var(--bg-white-color);
}

.p-ai-lineup__inner {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*2);
}

.p-ai-lineup__list {
    display: flex;
    gap: calc(var(--gap-unit)*2.5);
}

.p-ai-lineup__card {
    position: relative;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*2.75);
    padding: calc(var(--gap-unit)*3.75) calc(var(--gap-unit)*3);
    background-color: var(--bg-white-color);
    border: 1px solid #DDE9E2;
    overflow: hidden;
    opacity: 0;
    transform: translate3d(0, 2.8rem, 0);
}

.p-ai-lineup__card.is-show {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.75s cubic-bezier(0.22, 1, 0.36, 1),
        border-color 0.4s ease,
        box-shadow 0.4s ease;
}

.p-ai-lineup__card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 3px;
    background: linear-gradient(90deg, #159A57 0%, rgba(21, 154, 87, 0.15) 100%);
    transform: scaleX(0);
    transform-origin: left center;
}

.p-ai-lineup__card.is-show::before {
    transform: scaleX(1);
    transition: transform 0.8s cubic-bezier(0.77, 0, 0.175, 1) 0.08s;
}

.p-ai-lineup__card::after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 0 2.4rem 2.4rem 0;
    border-color: transparent rgba(21, 154, 87, 0.12) transparent transparent;
    opacity: 0;
    transform: translate3d(0.6rem, -0.6rem, 0);
}

.p-ai-lineup__card.is-show::after {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1) 0.35s,
        transform 0.55s cubic-bezier(0.22, 1, 0.36, 1) 0.35s;
}

.p-ai-lineup__num {
    display: block;
    font-size: 4.2rem;
    font-family: var(--fontT);
    font-weight: 500;
    line-height: 1;
    color: #1B3A3138;
    opacity: 0;
    transform: translate3d(-0.6rem, 1.2rem, 0) scale(1.15);
    filter: blur(3px);
}

.p-ai-lineup__card.is-show .p-ai-lineup__num {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
    filter: blur(0);
    transition:
        opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1) 0.18s,
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.18s,
        filter 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.18s;
}

.p-ai-lineup__en {
    display: inline-block;
    align-self: flex-start;
    font-size: var(--font-size12);
    font-weight: 700;
    line-height: 1.7;
    letter-spacing: 0.08em;
    color: #5D9880;
    clip-path: inset(0 100% 0 0);
    opacity: 0;
}

.p-ai-lineup__card.is-show .p-ai-lineup__en {
    clip-path: inset(0 0 0 0);
    opacity: 1;
    transition:
        clip-path 0.75s cubic-bezier(0.77, 0, 0.175, 1) 0.32s,
        opacity 0.4s ease 0.32s;
}

.p-ai-lineup__name {
    font-size: var(--font-size24);
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: 0.05em;
    color: #1B3A31;
    opacity: 0;
    transform: translate3d(0, 1rem, 0);
}

.p-ai-lineup__card.is-show .p-ai-lineup__name {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.5s cubic-bezier(0.53, 0.2, 0.25, 1) 0.48s,
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.48s;
}

@media (hover: hover) {
    .p-ai-lineup__card.is-show:hover {
        border-color: #69A78A;
        box-shadow: 0 16px 40px rgba(24, 47, 40, 0.08);
    }

    .p-ai-lineup__card.is-show:hover .p-ai-lineup__num {
        color: #159A574D;
        transition: color 0.35s ease;
    }

    .p-ai-lineup__card.is-show:hover .p-ai-lineup__name {
        color: #159A57;
        transition: color 0.35s ease;
    }
}

@media (max-width: 768px) {
    .p-ai-lineup__list {
        flex-wrap: wrap;
        justify-content: center;
    }

    .p-ai-lineup__card {
        flex: none;
        width: calc(calc(100% - calc(var(--gap-unit)*5))/3);
        padding: calc(var(--gap-unit)*3.5) calc(var(--gap-unit)*2.5);
    }
}

@media (max-width: 450px) {
    .p-ai-lineup__list {
        flex-wrap: wrap;
        justify-content: center;
        gap: calc(var(--gap-unit)*2);
    }

    .p-ai-lineup__card {
        flex: none;
        width: calc(calc(100% - calc(var(--gap-unit)*2))/2);
        padding: calc(var(--gap-unit)*3.5) calc(var(--gap-unit)*2.5);
    }

    .p-ai-lineup__name {
        font-size: var(--font-size22);
    }
}

.p-ai-lineup__cta {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: calc(var(--gap-unit)*3);
    width: 100%;
    margin-top: calc(var(--gap-unit)*5);
    padding: calc(var(--gap-unit)*7.5) calc(var(--gap-unit)*10.5);
    background: linear-gradient(90deg, rgba(244, 250, 247, 0.42) 0%, rgba(255, 255, 255, 0.92) 40%, rgba(255, 255, 255, 0.98) 100%);
    border: 1px solid #173D3426;
    box-shadow: 0px 24px 50px 0px #173D3412;
    overflow: hidden;
    transition:
        border-color 0.35s ease,
        box-shadow 0.35s ease,
        transform 0.35s ease;
}

.p-ai-lineup__cta-illust {
    position: absolute;
    bottom: 0;
    left: 10rem;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    width: 21rem;
}

.p-ai-lineup__cta-illust::before {
    content: "";
    position: absolute;
    left: 65%;
    top: 1.7rem;
    width: 36rem;
    height: 36rem;
    border-radius: 50%;
    background: linear-gradient(230.87deg, rgba(55, 177, 142, 0.224) 10.96%, rgba(55, 177, 142, 0.056) 27.7%, rgba(255, 255, 255, 0.14) 38.18%);
    transform: translateX(-50%);
    z-index: 0;
}

.p-ai-lineup__cta-illust img {
    position: relative;
    z-index: 1;
    width: 100%;
}

.p-ai-lineup__cta-body {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*1);
    margin-left: auto;
}

.p-ai-lineup__cta-title {
    font-size: var(--font-size18);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: 0.04em;
    color: #173D34;
}

.p-ai-lineup__cta-txt {
    font-size: var(--font-size14);
    line-height: 1.9;
    color: #1F272499;
}

.p-ai-lineup__cta-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: calc(var(--gap-unit)*1.25);
    flex-shrink: 0;
    padding: calc(var(--gap-unit)*1.5) calc(var(--gap-unit)*4.5);
    border: 1px solid #37B18E80;
    border-radius: 999px;
    background-color: var(--bg-white-color);
    transition:
        background-color 0.35s ease,
        border-color 0.35s ease,
        color 0.35s ease;
}

.p-ai-lineup__cta-btn-txt {
    font-size: var(--font-size15);
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: 0.08em;
    color: #173D34;
    transition: color 0.35s ease;
}

.p-ai-lineup__cta-btn-arrow {
    font-size: var(--font-size14);
    line-height: 1;
    color: #1B3A31;
    transition:
        color 0.35s ease,
        transform 0.35s ease;
}

@media (hover: hover) {
    .p-ai-lineup__cta:hover {
        border-color: #69A78A;
        box-shadow: 0 20px 48px rgba(24, 58, 50, 0.1);
        transform: translateY(-2px);
    }

    .p-ai-lineup__cta:hover .p-ai-lineup__cta-btn {
        background-color: var(--bg-green-color);
        border-color: var(--bg-green-color);
    }

    .p-ai-lineup__cta:hover .p-ai-lineup__cta-btn-txt,
    .p-ai-lineup__cta:hover .p-ai-lineup__cta-btn-arrow {
        color: #FFFFFF;
    }

    .p-ai-lineup__cta:hover .p-ai-lineup__cta-btn-arrow {
        transform: translateX(0.3rem);
    }
}

@media (max-width: 768px) {
    .p-ai-lineup__cta {
        flex-direction: column;
        align-items: center;
        gap: calc(var(--gap-unit)*2.5);
        padding: calc(var(--gap-unit)*2.5) calc(var(--gap-unit)*3);
    }

    .p-ai-lineup__cta-illust {
        position: relative;
        left: auto;
        bottom: auto;
        width: 15rem;
        height: auto;
    }

    .p-ai-lineup__cta-illust::before {
        display: none;
    }

    .p-ai-lineup__cta-illust img {
        width: 100%;
    }

    .p-ai-lineup__cta-body {
        margin-left: 0;
    }

    .p-ai-lineup__cta-title {
        font-size: var(--font-size18);
    }
}

@media (max-width: 450px) {
    .p-ai-lineup__cta {
        flex-direction: column;
        align-items: center;
        text-align: center;
        gap: calc(var(--gap-unit)*2);
        padding: calc(var(--gap-unit)*2.5) calc(var(--gap-unit)*2.5);
    }

    .p-ai-lineup__cta-body {
        flex: none;
        width: 100%;
        align-items: center;
    }

    .p-ai-lineup__cta-title {
        font-size: var(--font-size18);
    }

    .p-ai-lineup__cta-txt {
        font-size: var(--font-size14);
    }

    .p-ai-lineup__cta-btn {
        width: 100%;
        margin-left: 0;
        padding: calc(var(--gap-unit)*2.5) calc(var(--gap-unit)*3);
    }
}

.p-ai-detail {
    position: relative;
    background: linear-gradient(180deg, #F7FAF7 0%, #EEF7F2 100%);
}

.p-ai-detail__inner {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*11.5);
}

.p-ai-detail__block {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: calc(var(--gap-unit)*8);
}

.p-ai-detail__block--reverse {
    flex-direction: row-reverse;
}

.p-ai-detail__media {
    position: relative;
    width: 33%;
    padding: 0 0 calc(var(--gap-unit)*3) calc(var(--gap-unit)*3);
    perspective: 900px;
}

.p-ai-detail__media::before {
    content: "";
    position: absolute;
    bottom: 1.8rem;
    left: 0;
    z-index: 1;
    width: 18rem;
    height: 10.5rem;
    background-color: var(--bg-white-color);
    border: 1px solid #DDE9E2;
    box-shadow: 0px 10px 24px 0px #182F280D;
    opacity: 0;
    transform: scale(0.6);
    transform-origin: center center;
}

.p-ai-detail__media.is-frame-show::before {
    animation: aiDetailFrameRipple 1.25s 0.2s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.p-ai-detail__media::after {
    content: "";
    position: absolute;
    bottom: 0;
    right: calc(var(--gap-unit)*-2);
    z-index: 0;
    width: 78%;
    height: 78%;
    background-color: #69A78A1F;
    border: 1px solid #69A78A3D;
    opacity: 0;
    transform: scale(0.55);
    transform-origin: center center;
}

.p-ai-detail__media.is-frame-show::after {
    animation: aiDetailFrameSettle 1.1s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes aiDetailFrameRipple {
    0% {
        opacity: 0;
        transform: scale(0.55);
    }
    45% {
        opacity: 1;
        transform: scale(1.06);
    }
    100% {
        opacity: 1;
        transform: scale(1);
    }
}

@keyframes aiDetailFrameSettle {
    0% {
        opacity: 0;
        transform: scale(0.5);
    }
    55% {
        opacity: 1;
        transform: scale(1.04);
    }
    100% {
        opacity: 1;
        transform: scale(1);
    }
}

.p-ai-detail__img {
    position: relative;
    display: flex;
    width: 100%;
    aspect-ratio: 336 / 420;
    overflow: hidden;
    box-shadow: 0px 28px 80px 0px #142E261A;
    z-index: 2;
    clip-path: circle(0% at 18% 82%);
    transform: rotateY(18deg) translate3d(-1.2rem, 0, 0);
    transform-origin: left center;
    opacity: 0;
}

.p-ai-detail__block.is-media-show .p-ai-detail__img {
    clip-path: circle(140% at 18% 82%);
    transform: rotateY(0deg) translate3d(0, 0, 0);
    opacity: 1;
    transition:
        clip-path 1.15s cubic-bezier(0.77, 0, 0.175, 1),
        transform 1.05s cubic-bezier(0.22, 1, 0.36, 1),
        opacity 0.35s ease;
}

.p-ai-detail__block--reverse .p-ai-detail__img {
    clip-path: circle(0% at 82% 82%);
    transform: rotateY(-18deg) translate3d(1.2rem, 0, 0);
    transform-origin: right center;
}

.p-ai-detail__block--reverse.is-media-show .p-ai-detail__img {
    clip-path: circle(140% at 82% 82%);
    transform: rotateY(0deg) translate3d(0, 0, 0);
}

.p-ai-detail__img::before {
    content: "";
    position: absolute;
    inset: -1px;
    z-index: 4;
    border: 2px solid rgba(21, 154, 87, 0.55);
    opacity: 0;
    transform: scale(1.08);
    pointer-events: none;
}

.p-ai-detail__block.is-media-show .p-ai-detail__img::before {
    animation: aiDetailBorderSettle 1s cubic-bezier(0.22, 1, 0.36, 1) 0.35s forwards;
}

@keyframes aiDetailBorderSettle {
    0% {
        opacity: 0;
        transform: scale(1.08);
    }
    40% {
        opacity: 1;
        transform: scale(1);
    }
    100% {
        opacity: 0;
        transform: scale(1);
    }
}

.p-ai-detail__img::after {
    content: "";
    position: absolute;
    left: 18%;
    bottom: 18%;
    z-index: 3;
    width: 1.2rem;
    height: 1.2rem;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(21, 154, 87, 0.65) 0%, rgba(21, 154, 87, 0) 70%);
    opacity: 0;
    transform: scale(0.4);
    pointer-events: none;
}

.p-ai-detail__block.is-media-show .p-ai-detail__img::after {
    animation: aiDetailOriginPulse 1.1s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.p-ai-detail__block--reverse .p-ai-detail__img::after {
    left: auto;
    right: 18%;
}

@keyframes aiDetailOriginPulse {
    0% {
        opacity: 0;
        transform: scale(0.3);
    }
    30% {
        opacity: 1;
        transform: scale(1.8);
    }
    100% {
        opacity: 0;
        transform: scale(4.5);
    }
}

.p-ai-detail__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transform: scale(1.16);
}

.p-ai-detail__block.is-media-show .p-ai-detail__img img {
    transform: scale(1);
    transition: transform 1.3s cubic-bezier(0.22, 1, 0.36, 1) 0.1s;
}

.p-ai-detail__content {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*2.7);
    padding: calc(var(--gap-unit)*4.5) 0;
    border: 1px solid #DDE9E2;
    border-width: 1px 0;
}

.p-ai-detail__title-meta {
    display: flex;
    align-items: flex-start;
    gap: calc(var(--gap-unit)*5);
}

.p-ai-detail__num {
    font-size: 8rem;
    font-family: var(--fontT);
    line-height: .8;
    color: #1B3A3129;
    margin-top: .05em;
    opacity: 0;
    transform: translate3d(0, 1.6rem, 0) scale(1.08);
    filter: blur(4px);
}

.p-ai-detail__block.is-content-show .p-ai-detail__num {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
    filter: blur(0);
    transition:
        opacity 0.55s cubic-bezier(0.22, 1, 0.36, 1),
        transform 0.8s cubic-bezier(0.22, 1, 0.36, 1),
        filter 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-ai-detail__title {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*1.25);
}

.p-ai-detail__title-en {
    display: inline-block;
    align-self: flex-start;
    font-size: var(--font-size12);
    font-weight: 700;
    line-height: 1.9;
    letter-spacing: 0.26em;
    color: var(--bg-green-color);
    clip-path: inset(0 100% 0 0);
    opacity: 0;
}

.p-ai-detail__block.is-content-show .p-ai-detail__title-en {
    clip-path: inset(0 0 0 0);
    opacity: 1;
    transition:
        clip-path 0.8s cubic-bezier(0.77, 0, 0.175, 1) 0.15s,
        opacity 0.4s ease 0.15s;
}

.p-ai-detail__title-ja {
    font-size: var(--font-size32);
    font-family: var(--fontT);
    font-weight: bold;
    line-height: 1.5;
    letter-spacing: .04em;
    color: #1B3A31;
    opacity: 0;
    transform: translate3d(0, 1rem, 0);
}

.p-ai-detail__block.is-content-show .p-ai-detail__title-ja {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1) 0.28s,
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.28s;
}

.p-ai-detail__lead {
    font-size: var(--font-size24);
    font-weight: 700;
    line-height: 2;
    letter-spacing: 0.01em;
    color: #152F4B;
    opacity: 0;
    transform: translate3d(0, 1.2rem, 0);
}

.p-ai-detail__block.is-content-show .p-ai-detail__lead {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1) 0.4s,
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.4s;
}

.p-ai-detail__txt {
    font-size: var(--font-size16);
    line-height: 2.1;
    opacity: 0;
    transform: translate3d(0, 1.2rem, 0);
}

.p-ai-detail__block.is-content-show .p-ai-detail__txt {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1) 0.52s,
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.52s;
}

.p-ai-detail__cards {
    display: flex;
    gap: calc(var(--gap-unit)*2);
    margin-top: calc(var(--gap-unit)*1.5);
}

.p-ai-detail__card {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*1.875);
    padding: calc(var(--gap-unit)*3.25);
    background-color: var(--bg-white-color);
    border: 1px solid #DDE9E2;
    opacity: 0;
    transform: translate3d(0, 1.8rem, 0);
}

.p-ai-detail__block.is-content-show .p-ai-detail__card {
    opacity: 1;
    transform: translate3d(0, 0, 0);
}

.p-ai-detail__block.is-content-show .p-ai-detail__card:nth-child(1) {
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1) 0.64s,
        transform 0.75s cubic-bezier(0.22, 1, 0.36, 1) 0.64s;
}

.p-ai-detail__block.is-content-show .p-ai-detail__card:nth-child(2) {
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1) 0.78s,
        transform 0.75s cubic-bezier(0.22, 1, 0.36, 1) 0.78s;
}

.p-ai-detail__card-title {
    font-size: var(--font-size14);
    font-weight: 700;
    line-height: 1.8;
    color: #1B3A31;
    letter-spacing: 0.04em;
}

.p-ai-detail__bullets,
.p-ai-detail__steps {
    display: flex;
    flex-direction: column;
    font-size: var(--font-size15);
    line-height: 1.8;
    letter-spacing: .04em;
    color: #667A72;
}

.p-ai-detail__bullets li,
.p-ai-detail__steps li {
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: var(--gap-unit);
    padding: 0;
    margin: 0;
}

.p-ai-detail__bullets li::before {
    content: "・";
}

.p-ai-detail__steps {
    list-style: none;
    counter-reset: ai-step;
    padding: 0;
    margin: 0;
}

.p-ai-detail__steps li {
    counter-increment: ai-step;
}

.p-ai-detail__steps li::before {
    content: counter(ai-step) ". ";
}

@media (max-width: 768px) {
    .p-ai-detail__block {
        flex-direction: column-reverse;
        gap: calc(var(--gap-unit)*5);
        padding: calc(var(--gap-unit)*4.5) 0;
        border: 1px solid #DDE9E2;
        border-width: 1px 0;
    }

    .p-ai-detail__content {
        padding: 0;
        border: none;
    }

    .p-ai-detail__title-meta {
        gap: calc(var(--gap-unit)*4);
    }

    .p-ai-detail__num {
        font-size: 7.2rem;
    }

    .p-ai-detail__title-ja {
        font-size: var(--font-size28);
    }

    .p-ai-detail__lead {
        font-size: var(--font-size22);
    }

    .p-ai-detail__txt {
        font-size: var(--font-size15);
    }

    .p-ai-detail__media {
        width: 60%;
        perspective: none;
    }

    .p-ai-detail__img,
    .p-ai-detail__block--reverse .p-ai-detail__img {
        transform: none;
        transform-origin: center center;
    }

    .p-ai-detail__block.is-media-show .p-ai-detail__img,
    .p-ai-detail__block--reverse.is-media-show .p-ai-detail__img {
        transform: none;
    }
}

@media (max-width: 450px) {
    .p-ai-detail__title-meta {
        gap: calc(var(--gap-unit)*3);
    }

    .p-ai-detail__content {
        gap: calc(var(--gap-unit)*2.2);
    }

    .p-ai-detail__title-ja {
        font-size: var(--font-size26);
    }

    .p-ai-detail__cards {
        margin: 0;
        flex-direction: column;
        gap: calc(var(--gap-unit)*1.5);
    }

    .p-ai-detail__media {
        width: 100%;
    }
}


.p-ai-flow {
    position: relative;
    background-color: var(--bg-white-color);
}

.p-ai-flow__inner {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*5);
}

.p-ai-flow__list {
    position: relative;
    display: flex;
}

.p-ai-flow__list::before {
    content: "";
    position: absolute;
    top: 2.2rem;
    left: 10%;
    right: 10%;
    height: 1px;
    background: linear-gradient(90deg, rgba(105, 167, 138, 0) 0%, rgba(105, 167, 138, 0.65) 50%, rgba(105, 167, 138, 0) 100%);
    transform: scaleX(0);
    transform-origin: left center;
}

.p-ai-flow__list.is-line-show::before {
    transform: scaleX(1);
    transition: transform 1.1s cubic-bezier(0.77, 0, 0.175, 1);
}

.p-ai-flow__item {
    position: relative;
    z-index: 1;
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(var(--gap-unit)*1.75);
    text-align: center;
    padding: 0 calc(var(--gap-unit)*2.25);
}

.p-ai-flow__main {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(var(--gap-unit)*1.75);
    opacity: 0;
    transform: translate3d(0, 1.6rem, 0);
}

.p-ai-flow__item.is-show .p-ai-flow__main {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1) 0.28s,
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.28s;
}

.p-ai-flow__num {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 4.4rem;
    height: 4.4rem;
    background-color: var(--bg-white-color);
    border: 1px solid #69A78A80;
    border-radius: 50%;
    box-shadow: 0px 12px 34px 0px #182F2814;
    opacity: 0;
    transform: scale(0.55);
}

.p-ai-flow__item.is-show .p-ai-flow__num {
    opacity: 1;
    transform: scale(1);
    transition:
        opacity 0.4s cubic-bezier(0.22, 1, 0.36, 1),
        transform 0.65s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.p-ai-flow__num::before {
    content: "";
    position: absolute;
    inset: -0.45rem;
    border-radius: 50%;
    border: 1px solid rgba(21, 154, 87, 0.35);
    opacity: 0;
    transform: scale(0.7);
    pointer-events: none;
}

.p-ai-flow__item.is-show .p-ai-flow__num::before {
    animation: aiFlowRing 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.1s forwards;
}

@keyframes aiFlowRing {
    0% {
        opacity: 0;
        transform: scale(0.7);
    }
    40% {
        opacity: 1;
        transform: scale(1);
    }
    100% {
        opacity: 0;
        transform: scale(1.35);
    }
}

.p-ai-flow__num span {
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: calc(var(--font-size18) -1px);
    font-family: var(--fontT);
    line-height: 1;
    color: #1B3A31;
    width: 2.8rem;
    height: 2.8rem;
    border-radius: 50%;
    background-color: #EEF7F2;
}

.p-ai-flow__step {
    display: block;
    font-size: var(--font-size12);
    font-weight: 700;
    line-height: 1.9;
    letter-spacing: 0.22em;
    color: #159A57;
    margin-top: calc(var(--gap-unit)*.5);
    clip-path: inset(0 100% 0 0);
    opacity: 0;
}

.p-ai-flow__item.is-show .p-ai-flow__step {
    clip-path: inset(0 0 0 0);
    opacity: 1;
    transition:
        clip-path 0.65s cubic-bezier(0.77, 0, 0.175, 1) 0.38s,
        opacity 0.35s ease 0.38s;
}

.p-ai-flow__name {
    font-size: var(--font-size20);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: 0.06em;
    color: #1B3A31;
    opacity: 0;
    transform: translate3d(0, 0.8rem, 0);
}

.p-ai-flow__item.is-show .p-ai-flow__name {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.5s cubic-bezier(0.53, 0.2, 0.25, 1) 0.48s,
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.48s;
}

.p-ai-flow__txt {
    font-size: var(--font-size15);
    line-height: 2;
    text-align: left;
    opacity: 0;
    transform: translate3d(0, 0.8rem, 0);
}

.p-ai-flow__item.is-show .p-ai-flow__txt {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.5s cubic-bezier(0.53, 0.2, 0.25, 1) 0.58s,
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.58s;
}

@media (max-width: 768px) {
    .p-ai-flow__inner {
        padding: 0 4rem;
    }

    .p-ai-flow__list {
        flex-direction: column;
        gap: calc(var(--gap-unit)*3);
    }

    .p-ai-flow__list::before {
        top: 8%;
        bottom: 10%;
        left: 3rem;
        width: 1px;
        height: auto;
        transform: scaleY(0);
        transform-origin: top center;
    }

    .p-ai-flow__list.is-line-show::before {
        transform: scaleY(1);
    }

    .p-ai-flow__item {
        padding: 0;
        flex-direction: row;
        align-items: flex-start;
        gap: calc(var(--gap-unit)*3);
    }

    .p-ai-flow__main {
        flex: 1;
        align-items: flex-start;
        padding-top: calc(var(--gap-unit)*.5);
    }

    .p-ai-flow__step {
        display: none;
    }

    .p-ai-flow__num {
        width: 6rem;
        height: 6rem;
    }

    .p-ai-flow__num span {
        font-size: var(--font-size20);
        width: 4rem;
        height: 4rem;
    }

    .p-ai-flow__name br {
        display: none;
    }
}

@media (max-width: 450px) {
    .p-ai-flow__inner {
        padding: 0;
        gap: calc(var(--gap-unit)*1);
    }

    .p-ai-flow__item {
        gap: calc(var(--gap-unit)*2);
    }
}









/* -------page drone------- */
.p-drone-video {
    position: relative;
}

.p-drone-video__player {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background-color: #0B1612;
    box-shadow: 0 24px 64px rgba(24, 58, 50, 0.16);
}

.p-drone-video__cover {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    padding: 0;
    border: none;
    cursor: pointer;
    background: transparent;
}

.p-drone-video__poster {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-drone-video__play {
    position: absolute;
    top: 50%;
    left: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 7.2rem;
    height: 7.2rem;
    color: #FFFFFF;
    transform: translate(-50%, -50%);
    transition:
        transform 0.4s cubic-bezier(0.22, 1, 0.36, 1),
        color 0.35s ease;
    filter: drop-shadow(0 8px 24px rgba(0, 0, 0, 0.35));
}

.p-drone-video__play svg {
    width: 100%;
    height: 100%;
}

.p-drone-video__cover::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(11, 22, 18, 0.12) 0%, rgba(11, 22, 18, 0.28) 100%);
    pointer-events: none;
    transition: opacity 0.35s ease;
}

@media (hover: hover) {
    .p-drone-video__cover:hover .p-drone-video__poster {
        transform: scale(1.04);
    }

    .p-drone-video__cover:hover .p-drone-video__play {
        color: #37B18E;
        transform: translate(-50%, -50%) scale(1.06);
    }
}

.p-drone-video__player.is-playing .p-drone-video__cover {
    display: none;
}

.p-drone-video__iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

@media (max-width: 768px) {
    .p-drone-video__play {
        width: 5.6rem;
        height: 5.6rem;
    }
}

@media (max-width: 450px) {
    .p-drone-video__play {
        width: 4.8rem;
        height: 4.8rem;
    }
}

.p-drone-soccer__inner {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*6);
}

.p-drone-soccer .js-drone-soccer-lead {
    opacity: 0;
    transform: translate3d(0, 1.4rem, 0);
}

.p-drone-soccer .js-drone-soccer-lead.is-show {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.65s cubic-bezier(0.53, 0.2, 0.25, 1) 0.2s,
        transform 0.8s cubic-bezier(0.22, 1, 0.36, 1) 0.2s;
}

.p-drone-soccer__content {
    display: flex;
    align-items: flex-start;
    gap: calc(var(--gap-unit)*5);
}

.p-drone-soccer__card {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*2);
    width: 50%;
    padding: calc(var(--gap-unit)*4.25);
    background-color: var(--bg-white-color);
    box-shadow: 0px 18px 56px 0px #182F2812;
    border: 1px solid #DDE9E2;
    overflow: hidden;
    opacity: 0;
    transform: translate3d(0, 2.4rem, 0);
}

.p-drone-soccer__card.is-show {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.6s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.85s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-drone-soccer__card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 3px;
    background: linear-gradient(90deg, #159A57 0%, rgba(21, 154, 87, 0.15) 100%);
    transform: scaleX(0);
    transform-origin: left center;
}

.p-drone-soccer__card.is-show::before {
    transform: scaleX(1);
    transition: transform 0.85s cubic-bezier(0.77, 0, 0.175, 1) 0.1s;
}

.p-drone-soccer__card-title {
    font-size: var(--font-size28);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.5;
    color: #1B3A31;
    letter-spacing: 0.04em;
    opacity: 0;
    transform: translate3d(0, 1rem, 0);
}

.p-drone-soccer__card.is-show .p-drone-soccer__card-title {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1) 0.18s,
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.18s;
}

.p-drone-soccer__card-txt {
    font-size: var(--font-size15);
    line-height: 2;
    letter-spacing: .04em;
    color: #667A72;
    opacity: 0;
    transform: translate3d(0, 1rem, 0);
}

.p-drone-soccer__card.is-show .p-drone-soccer__card-txt {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1) 0.3s,
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.3s;
}

.p-drone-soccer__points {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*1.25);
    margin-top: var(--gap-unit);
}

.p-drone-soccer__point {
    position: relative;
    font-size: var(--font-size15);
    font-weight: 700;
    line-height: 1.9;
    color: #1B3A31;
    padding: calc(var(--gap-unit)*1.7) calc(var(--gap-unit)*2);
    background-color: #EFF7F4;
    border-left: 3px solid #69A78A;
    opacity: 0;
    transform: translate3d(-1.4rem, 0, 0);
}

.p-drone-soccer__card.is-show .p-drone-soccer__point {
    opacity: 1;
    transform: translate3d(0, 0, 0);
}

.p-drone-soccer__card.is-show .p-drone-soccer__point:nth-child(1) {
    transition:
        opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1) 0.42s,
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.42s;
}

.p-drone-soccer__card.is-show .p-drone-soccer__point:nth-child(2) {
    transition:
        opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1) 0.54s,
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.54s;
}

.p-drone-soccer__card.is-show .p-drone-soccer__point:nth-child(3) {
    transition:
        opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1) 0.66s,
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.66s;
}

.p-drone-soccer__branch {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*1.5);
    padding: calc(var(--gap-unit)*4.5) calc(var(--gap-unit)*3.25);
    border: 1px solid #69A78A4D;
    background-color: #EEF7F2;
    opacity: 0;
    transform: translate3d(0, 1.6rem, 0);
    clip-path: inset(0 0 100% 0);
}

.p-drone-soccer__card.is-show .p-drone-soccer__branch {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    clip-path: inset(0 0 0 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1) 0.78s,
        transform 0.75s cubic-bezier(0.22, 1, 0.36, 1) 0.78s,
        clip-path 0.9s cubic-bezier(0.77, 0, 0.175, 1) 0.78s;
}

.p-drone-soccer__branch-label {
    font-size: var(--font-size12);
    font-weight: 700;
    line-height: 2;
    letter-spacing: 0.24em;
    color: #159A57;
}

.p-drone-soccer__branch-title {
    font-size: var(--font-size24);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.6;
    color: #1B3A31;
}

.p-drone-soccer__branch-txt {
    font-size: var(--font-size15);
    line-height: 2;
}

.p-drone-soccer__gallery {
    flex: 1;
    display: flex;
    flex-direction: column;
    flex-shrink: 0;
    gap: calc(var(--gap-unit)*4.5);
}

.p-drone-soccer__media {
    position: relative;
    display: flex;
    width: 100%;
    z-index: 1;
}

.p-drone-soccer__media--01 {
    padding: 0 calc(var(--gap-unit)*4) calc(var(--gap-unit)*4.5) calc(var(--gap-unit)*5);
}

.p-drone-soccer__media::before {
    content: "";
    position: absolute;
    background-color: #EEF7F2;
    border: 1px solid #69A78A29;
    opacity: 0;
    transform: scale(0.88);
}

.p-drone-soccer__media.is-show::before {
    opacity: 1;
    transform: scale(1);
    transition:
        opacity 0.55s cubic-bezier(0.22, 1, 0.36, 1) 0.2s,
        transform 0.8s cubic-bezier(0.22, 1, 0.36, 1) 0.2s;
}

.p-drone-soccer__media--01::before {
    left: 0;
    bottom: 0;
    width: 41.5rem;
    height: 22.5rem;
    transform-origin: left bottom;
}

.p-drone-soccer__media--02 {
    padding: 0 calc(var(--gap-unit)*4.25) calc(var(--gap-unit)*4.5) calc(var(--gap-unit)*2);
}

.p-drone-soccer__media--02::before {
    bottom: 0;
    right: 0;
    width: 42rem;
    aspect-ratio: 42/24;
    transform-origin: right bottom;
}

.p-drone-soccer__media img {
    position: relative;
    width: 100%;
    height: auto;
    object-fit: cover;
    z-index: 2;
    clip-path: circle(0% at 50% 50%);
    transform: scale(1.12);
}

.p-drone-soccer__media.is-show img {
    clip-path: circle(120% at 50% 50%);
    transform: scale(1);
    transition:
        clip-path 1.15s cubic-bezier(0.77, 0, 0.175, 1),
        transform 1.25s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-drone-soccer__media--01 img {
    aspect-ratio: 455 / 315;
}

.p-drone-soccer__media-label {
    position: absolute;
    z-index: 3;
    top: calc(var(--gap-unit)*2.5);
    padding: calc(var(--gap-unit)) calc(var(--gap-unit)*1.75);
    font-size: var(--font-size12);
    font-weight: 700;
    line-height: 1.6;
    color: #1B3A31;
    letter-spacing: 0.04em;
    background-color: #FFFFFFF0;
    border: 1px solid #69A78A38;
    opacity: 0;
    transform: translate3d(0, -0.8rem, 0);
}

.p-drone-soccer__media.is-show .p-drone-soccer__media-label {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1) 0.55s,
        transform 0.6s cubic-bezier(0.22, 1, 0.36, 1) 0.55s;
}

.p-drone-soccer__media--01 .p-drone-soccer__media-label {
    right: 5rem;
}

.p-drone-soccer__media--02 .p-drone-soccer__media-label {
    left: 3.5rem;
}

.p-drone-soccer__team {
    display: flex;
    flex-direction: row-reverse;
    align-items: center;
    gap: calc(var(--gap-unit)*6);
    padding: calc(var(--gap-unit)*4.5);
    background-color: var(--bg-white-color);
    border: 1px solid #DDE9E2;
    box-shadow: 0px 18px 56px 0px #182F2812;
}

.p-drone-soccer__team.is-show {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.6s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.85s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-drone-soccer__team-media {
    position: relative;
    width: 42%;
    overflow: hidden;
}

.p-drone-soccer__team-media img {
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 5;
    object-fit: cover;
    object-position: center 12%;
    transform: scale(1.04);
}

.p-drone-soccer__team.is-show .p-drone-soccer__team-media img {
    transform: scale(1);
    transition: transform 1.15s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-drone-soccer__team-content {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: calc(var(--gap-unit)*2);
    min-width: 0;
}

.p-drone-soccer__team-label {
    display: inline-block;
    align-self: flex-start;
    font-size: var(--font-size14);
    font-family: var(--fontT);
    font-weight: 700;
    letter-spacing: 0.28em;
    color: #159A57;
}

.p-drone-soccer__team-title {
    font-size: var(--font-size28);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.04em;
    color: #1B3A31;
}

.p-drone-soccer__team-txt {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*1.6);
    font-size: var(--font-size15);
    line-height: 2;
    letter-spacing: 0.04em;
    color: #667A72;
}

.p-drone-soccer__team-catch {
    font-size: var(--font-size18);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.8;
    letter-spacing: 0.06em;
    color: #1B3A31;
}

.p-drone-soccer__official {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: calc(var(--gap-unit)*3);
    width: 67%;
    padding: calc(var(--gap-unit)*3);
    margin: 0 auto;
    border: 1px solid #C8E8D4;
    background: linear-gradient(107.8deg, #F4FBF7 0%, #FFFFFF 100%), radial-gradient(91.85% 286.12% at 12% 18%, rgba(55, 177, 142, 0.14) 0%, rgba(55, 177, 142, 0) 28%);
    box-shadow: 0px 26px 56px 0px #183A3226;
    opacity: 0;
    transform: translate3d(0, 2rem, 0);
}

.p-drone-soccer__official.is-show {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.65s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.85s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-drone-soccer__official-body {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: calc(var(--gap-unit)*1);
    min-width: 0;
    opacity: 0;
    transform: translate3d(0, 1rem, 0);
}

.p-drone-soccer__official.is-show .p-drone-soccer__official-body {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1) 0.28s,
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.28s;
}

.p-drone-soccer__official-tag {
    position: absolute;
    top: -1.3rem;
    left: 2rem;
    padding: var(--gap-unit) calc(var(--gap-unit)*1.75);
    font-size: var(--font-size12);
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.12em;
    color: #173D34;
    background-color: var(--bg-white-color);
    border: 1px solid #37B18E94;
    opacity: 0;
    transform: translate3d(0, 0.6rem, 0) scale(0.92);
}

.p-drone-soccer__official.is-show .p-drone-soccer__official-tag {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
    transition:
        opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1) 0.2s,
        transform 0.6s cubic-bezier(0.34, 1.45, 0.64, 1) 0.2s;
}

.p-drone-soccer__official-info {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*0.75);
}

.p-drone-soccer__official-en {
    font-size: var(--font-size12);
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.2em;
    color: #159A57;
}

.p-drone-soccer__official-title {
    font-size: var(--font-size18);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.5;
    color: #173D34;
}

.p-drone-soccer__official-logo {
    display: flex;
    width: 100%;
    max-width: 35rem;
}

.p-drone-soccer__official-logo img {
    display: block;
    width: 100%;
}

.p-drone-soccer__official-note {
    font-size: var(--font-size14);
    line-height: 1.6;
    color: #1F272499;
}

.p-drone-soccer__official-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    gap: calc(var(--gap-unit)*1.25);
    padding: calc(var(--gap-unit)*1.8) calc(var(--gap-unit)*4.5);
    font-size: var(--font-size14);
    font-weight: 700;
    line-height: 1;
    color: #173D34;
    background-color: var(--bg-white-color);
    border: 1px solid #37B18E9E;
    border-radius: 10rem;
    box-shadow: 0px 10px 24px 0px #183A3212;
    opacity: 0;
    transform: translate3d(1rem, 0, 0);
    transition:
        color 0.3s linear,
        background-color 0.3s linear,
        border-color 0.3s linear;
}

.p-drone-soccer__official.is-show .p-drone-soccer__official-btn {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1) 0.4s,
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.4s,
        color 0.3s linear,
        background-color 0.3s linear,
        border-color 0.3s linear;
}

.p-drone-soccer__official-btn-arrow {
    font-size: var(--font-size14);
}

.p-drone-soccer__official-btn:hover {
    color: var(--bg-white-color);
    background-color: #1B3A31;
    border-color: #1B3A31;
}

@media (max-width: 768px) {
    .p-drone-soccer__inner {
        gap: calc(var(--gap-unit)*3);
    }

    .p-drone-soccer__content {
        flex-direction: column;
        gap: calc(var(--gap-unit)*4);
    }

    .p-drone-soccer__card {
        width: 100%;
        padding: calc(var(--gap-unit)*3.5) calc(var(--gap-unit)*3);
    }

    .p-drone-soccer__card-title {
        font-size: var(--font-size24);
    }

    .p-drone-soccer__branch {
        padding: calc(var(--gap-unit)*3.5) calc(var(--gap-unit)*2.75);
    }

    .p-drone-soccer__branch-title {
        font-size: var(--font-size22);
    }

    .p-drone-soccer__gallery {
        width: 100%;
        gap: calc(var(--gap-unit)*3.5);
    }

    .p-drone-soccer__media--01 {
        padding: 0 calc(var(--gap-unit)*2.5) calc(var(--gap-unit)*3) calc(var(--gap-unit)*3);
    }

    .p-drone-soccer__media--02 {
        padding: 0 calc(var(--gap-unit)*3) calc(var(--gap-unit)*3) calc(var(--gap-unit)*1.5);
    }

    .p-drone-soccer__media--01::before {
        width: 85%;
        height: auto;
        aspect-ratio: 415 / 225;
    }

    .p-drone-soccer__media--02::before {
        width: 85%;
    }

    .p-drone-soccer__media--01 .p-drone-soccer__media-label {
        right: 3rem;
    }

    .p-drone-soccer__media--02 .p-drone-soccer__media-label {
        left: 2.5rem;
    }

    .p-drone-soccer__team {
        flex-direction: column;
        gap: calc(var(--gap-unit)*3.5);
        padding: calc(var(--gap-unit)*3.5) calc(var(--gap-unit)*3);
    }

    .p-drone-soccer__team-media {
        width: 100%;
    }

    .p-drone-soccer__team-title {
        font-size: var(--font-size24);
    }

    .p-drone-soccer__official {
        width: 100%;
        gap: calc(var(--gap-unit)*2.5);
        padding: calc(var(--gap-unit)*3.5) calc(var(--gap-unit)*3) calc(var(--gap-unit)*2.75);
    }

    .p-drone-soccer__official-body {
        gap: calc(var(--gap-unit)*1.75);
    }

    .p-drone-soccer__official-tag {
        left: 1.5rem;
    }

    .p-drone-soccer__official-title {
        font-size: var(--font-size18);
    }

    .p-drone-soccer__official-logo {
        max-width: 28rem;
    }

    .p-drone-soccer__official-btn {
        padding: calc(var(--gap-unit)*1.6) calc(var(--gap-unit)*3.5);
    }
}

@media (max-width: 450px) {
    .p-drone-soccer__inner {
        gap: calc(var(--gap-unit)*1);
    }

    .p-drone-soccer__content {
        gap: calc(var(--gap-unit)*3.5);
    }

    .p-drone-soccer__card {
        padding: calc(var(--gap-unit)*3) calc(var(--gap-unit)*2.5);
        gap: calc(var(--gap-unit)*1.75);
    }

    .p-drone-soccer__card-title {
        font-size: var(--font-size22);
    }

    .p-drone-soccer__card-txt,
    .p-drone-soccer__point,
    .p-drone-soccer__branch-txt {
        font-size: var(--font-size14);
    }

    .p-drone-soccer__point {
        padding: calc(var(--gap-unit)*1.5) calc(var(--gap-unit)*1.75);
    }

    .p-drone-soccer__branch {
        padding: calc(var(--gap-unit)*3) calc(var(--gap-unit)*2.5);
        gap: calc(var(--gap-unit)*1.25);
    }

    .p-drone-soccer__branch-title {
        font-size: var(--font-size20);
    }

    .p-drone-soccer__gallery {
        gap: calc(var(--gap-unit)*3);
    }

    .p-drone-soccer__media--01,
    .p-drone-soccer__media--02 {
        padding: 0 calc(var(--gap-unit)*1.5) calc(var(--gap-unit)*2.5);
    }

    .p-drone-soccer__media--01::before,
    .p-drone-soccer__media--02::before {
        width: 90%;
    }

    .p-drone-soccer__media-label {
        top: calc(var(--gap-unit)*1.5);
        padding: calc(var(--gap-unit)*0.875) calc(var(--gap-unit)*1.5);
    }

    .p-drone-soccer__media--01 .p-drone-soccer__media-label {
        right: 1.5rem;
    }

    .p-drone-soccer__media--02 .p-drone-soccer__media-label {
        left: 1.5rem;
    }

    .p-drone-soccer__team {
        padding: calc(var(--gap-unit)*3) calc(var(--gap-unit)*2.5);
    }

    .p-drone-soccer__team-title {
        font-size: var(--font-size22);
    }

    .p-drone-soccer__team-catch {
        font-size: var(--font-size16);
    }

    .p-drone-soccer__official {
        flex-direction: column;
        align-items: stretch;
        gap: calc(var(--gap-unit)*2);
        padding: calc(var(--gap-unit)*3.25) calc(var(--gap-unit)*2.5) calc(var(--gap-unit)*2.5);
    }

    .p-drone-soccer__official-tag {
        left: 1.25rem;
    }

    .p-drone-soccer__official-body {
        gap: calc(var(--gap-unit)*1.5);
    }

    .p-drone-soccer__official-title {
        font-size: var(--font-size16);
    }

    .p-drone-soccer__official-logo {
        max-width: 100%;
    }

    .p-drone-soccer__official-btn {
        width: 100%;
        padding: calc(var(--gap-unit)*1.8) calc(var(--gap-unit)*2.5);
    }

    .p-drone-soccer__official-note {
        font-size: var(--font-size12);
    }
}













.p-drone-flow {
    position: relative;
    background: linear-gradient(180deg, #F7FAF7 0%, #EEF7F2 100%);
}

.p-drone-flow .c-sec__heading {
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    gap: calc(var(--gap-unit)*3);
}

.p-drone-flow .c-sec__title {
    position: relative;
    padding-bottom: calc(var(--gap-unit)*2.5);
}

.p-drone-flow .c-sec__title::before {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 5rem;
    height: 2px;
    background-color: var(--bg-green-color);
}

.p-drone-flow .c-sec__lead {
    max-width: 100%;
    margin-top: calc(var(--gap-unit)*3);
}

.p-drone-flow__inner {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*2);
}

.p-drone-flow__list {
    display: flex;
    flex-direction: column;
    background-color: var(--bg-white-color);
    border: 1px solid #DDE9E2;
    box-shadow: 0px 18px 56px 0px #182F2812;
}

.p-drone-flow__item {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: calc(var(--gap-unit)*1.875);
    padding: calc(var(--gap-unit)*4) calc(var(--gap-unit)*5);
    border-bottom: 1px solid #E6EEE9;
}

.p-drone-flow__item:last-child {
    border-bottom: none;
}

.p-drone-flow__num {
    flex-shrink: 0;
    font-size: var(--font-size28);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0.06em;
    color: #159A57;
}

.p-drone-flow__main {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*1.5);
}

.p-drone-flow__title {
    font-size: var(--font-size22);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: 0.04em;
    color: #1B3A31;
}

.p-drone-flow__txt {
    font-size: var(--font-size16);
    line-height: 1.9;
    color: #667A72;
}

@media (max-width: 768px) {
    .p-drone-flow__inner {
        gap: calc(var(--gap-unit)*3);
    }

    .p-drone-flow__item {
        flex-direction: column;
        gap: calc(var(--gap-unit)*1.5);
        padding: calc(var(--gap-unit)*3.5);
    }

    .p-drone-flow__title {
        font-size: var(--font-size20);
    }

    .p-drone-flow__txt {
        font-size: var(--font-size15);
    }
}

@media (max-width: 450px) {
    .p-drone-flow__inner {
        gap: var(--gap-unit);
    }

    .p-drone-flow__item {
        padding: calc(var(--gap-unit)*2.75) calc(var(--gap-unit)*2.5);
    }

    .p-drone-flow__num {
        font-size: var(--font-size22);
    }

    .p-drone-flow__txt {
        font-size: var(--font-size14);
    }
}

.p-drone-security {
    position: relative;
    background: linear-gradient(180deg, #F7FAF7 0%, #EEF7F2 100%);
}

.p-drone-security__inner {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: calc(var(--gap-unit)*6);
}

.p-drone-security__heading {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: calc(var(--gap-unit)*2.5);
    text-align: left;
}

.p-drone-security__title {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: calc(var(--gap-unit)*1.75);
}

.p-drone-security__title-en {
    font-size: var(--font-size12);
    font-weight: 700;
    line-height: 2;
    letter-spacing: 0.33em;
    color: #159A57;
}

.p-drone-security__title-ja {
    font-size: var(--font-size32);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.08em;
    color: #1B3A31;
}

.p-drone-security__lead {
    font-size: var(--font-size22);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: 0.03em;
    color: #1B3A31;
}

.p-drone-security__media {
    display: flex;
    width: 75%;
    margin: 0 auto;
    aspect-ratio: 800/450;
    overflow: hidden;
    box-shadow: 0 20px 56px rgba(24, 58, 50, 0.1);
}

.p-drone-security__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.p-drone-security__body {
    width: 100%;
    font-size: var(--font-size16);
    line-height: 2.1;
    letter-spacing: .02em;
    color: #667A72;
}

.p-drone-security__catch {
    font-weight: bold;
}

@media (max-width: 768px) {
    .p-drone-security__inner {
        gap: calc(var(--gap-unit)*4);
    }

    .p-drone-security__title-ja {
        font-size: var(--font-size28);
    }

    .p-drone-security__lead {
        font-size: var(--font-size18);
    }
}

@media (max-width: 450px) {
    .p-drone-security__inner {
        gap: calc(var(--gap-unit)*5);
    }

    .p-drone-security__media {
        width: 100%;
    }

    .p-drone-security__body p {
        font-size: var(--font-size15);
    }
}

.p-drone-line {
    position: relative;
    background-color: #F4F9F6;
}

.p-drone-line__inner {
    position: relative;
    display: flex;
    align-items: stretch;
    gap: calc(var(--gap-unit)*5);
    padding: calc(var(--gap-unit)*5) calc(var(--gap-unit)*5);
    background: linear-gradient(112.38deg, #F7FFF9 0%, #FFFFFF 100%);
    box-shadow: 0 0.4rem 2rem rgba(24, 58, 50, 0.06);
    overflow: hidden;
    opacity: 0;
    transform: translate3d(0, 2rem, 0);
}

.p-drone-line__inner.is-show {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.65s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.85s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-drone-line__inner::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: radial-gradient(99.18% 240.86% at 92% 10%, rgba(6, 199, 85, 0.1) 0%, rgba(6, 199, 85, 0) 26%);
    border: 1px solid #06C75547;
}

.p-drone-line__body {
    position: relative;
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: calc(var(--gap-unit)*2);
    z-index: 2;
}

.p-drone-line__title {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit));
}

.p-drone-line__title-en {
    font-size: var(--font-size16);
    font-weight: 700;
    line-height: 2;
    color: #159A57;
    letter-spacing: 0.35em;
    clip-path: inset(0 100% 0 0);
    opacity: 0;
}

.p-drone-line.is-body-show .p-drone-line__title-en {
    clip-path: inset(0 0 0 0);
    opacity: 1;
    transition:
        clip-path 0.7s cubic-bezier(0.77, 0, 0.175, 1) 0.1s,
        opacity 0.4s ease 0.1s;
}

.p-drone-line__title-ja {
    font-size: var(--font-size28);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.55;
    color: #1B3A31;
    letter-spacing: 0.04em;
    opacity: 0;
    transform: translate3d(0, 1.2rem, 0);
}

.p-drone-line.is-body-show .p-drone-line__title-ja {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1) 0.2s,
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.2s;
}

.p-drone-line__desc {
    font-size: var(--font-size16);
    line-height: 2;
    opacity: 0;
    transform: translate3d(0, 1rem, 0);
}

.p-drone-line.is-body-show .p-drone-line__desc {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1) 0.32s,
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.32s;
}

.p-drone-line__list {
    display: flex;
    flex-direction: column;
    margin-top: calc(var(--gap-unit));
}

.p-drone-line__item {
    position: relative;
    display: flex;
    align-items: center;
    gap: var(--gap-unit);
    font-size: var(--font-size15);
    line-height: 2;
    color: #667A72;
    opacity: 0;
    transform: translate3d(-1rem, 0, 0);
}

.p-drone-line__item::before {
    content: "・";
}

.p-drone-line.is-body-show .p-drone-line__item {
    opacity: 1;
    transform: translate3d(0, 0, 0);
}

.p-drone-line.is-body-show .p-drone-line__item:nth-child(1) {
    transition:
        opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1) 0.42s,
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.42s;
}

.p-drone-line.is-body-show .p-drone-line__item:nth-child(2) {
    transition:
        opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1) 0.52s,
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.52s;
}

.p-drone-line.is-body-show .p-drone-line__item:nth-child(3) {
    transition:
        opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1) 0.62s,
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.62s;
}

.p-drone-line.is-body-show .p-drone-line__item:nth-child(4) {
    transition:
        opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1) 0.72s,
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.72s;
}

.p-drone-line__card {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    gap: calc(var(--gap-unit)*1.5);
    width: 28rem;
    padding: calc(var(--gap-unit)*2.75);
    background-color: var(--bg-white-color);
    border: 1px solid #06C7553D;
    box-shadow: 0px 16px 42px 0px #06C75514;
    z-index: 2;
    opacity: 0;
    transform: translate3d(2rem, 0, 0) scale(0.96);
}

.p-drone-line.is-card-show .p-drone-line__card {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
    transition:
        opacity 0.6s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-drone-line__qr {
    display: flex;
    padding: 0 calc(var(--gap-unit)*2.75);
    clip-path: inset(12% 12% 12% 12%);
    opacity: 0;
}

.p-drone-line.is-card-show .p-drone-line__qr {
    clip-path: inset(0 0 0 0);
    opacity: 1;
    transition:
        clip-path 0.75s cubic-bezier(0.77, 0, 0.175, 1) 0.12s,
        opacity 0.45s ease 0.12s;
}

.p-drone-line__qr img {
    width: 100%;
}

.p-drone-line__btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: calc(var(--gap-unit)*1.5);
    width: 100%;
    padding: calc(var(--gap-unit)*1.5) calc(var(--gap-unit)*2);
    font-size: var(--font-size15);
    font-weight: 700;
    line-height: 1.9;
    letter-spacing: 0.04em;
    color: var(--bg-white-color);
    text-align: center;
    border: 2px solid #06C755;
    background-color: #06C755;
    border-radius: 10rem;
    opacity: 0;
    transform: translate3d(0, 0.8rem, 0);
    transition:
        opacity 0.3s linear,
        background-color 0.3s linear,
        transform 0.3s ease;
}

.p-drone-line.is-card-show .p-drone-line__btn {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.5s cubic-bezier(0.53, 0.2, 0.25, 1) 0.28s,
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.28s,
        background-color 0.3s linear;
}

.p-drone-line__btn:hover {
    background-color: var(--bg-white-color);
    color: #06C755;
}

.p-drone-line__note {
    font-size: var(--font-size12);
    line-height: 1.7;
    color: #667A72;
    text-align: center;
    opacity: 0;
    transform: translate3d(0, 0.8rem, 0);
}

.p-drone-line.is-card-show .p-drone-line__note {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.5s cubic-bezier(0.53, 0.2, 0.25, 1) 0.42s,
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.42s;
}

@media (max-width: 768px) {
    .p-drone-line__inner {
        flex-direction: column;
        align-items: center;
        gap: calc(var(--gap-unit)*4);
        padding: calc(var(--gap-unit)*5) calc(var(--gap-unit)*4);
    }

    .p-drone-line__body {
        width: 100%;
    }

    .p-drone-line__title-ja {
        font-size: var(--font-size26);
    }

    .p-drone-line__desc {
        font-size: var(--font-size15);
    }

    .p-drone-line__card {
        transform: translate3d(0, 2rem, 0) scale(0.98);
    }
}

@media (max-width: 450px) {
    .p-drone-line__inner {
        gap: calc(var(--gap-unit)*4);
        padding: calc(var(--gap-unit)*4.5) calc(var(--gap-unit)*2.5);
    }

    .p-drone-line__title-en {
        font-size: var(--font-size14);
        letter-spacing: 0.28em;
    }

    .p-drone-line__title-ja {
        font-size: var(--font-size24);
    }

    .p-drone-line__desc {
        font-size: var(--font-size14);
        line-height: 1.9;
    }

    .p-drone-line__desc br {
        display: none;
    }

    .p-drone-line__item {
        font-size: var(--font-size14);
        align-items: flex-start;
    }

    .p-drone-line__card {
        width: 100%;
        padding: calc(var(--gap-unit)*2.5);
    }

    .p-drone-line__qr {
        padding: 0 calc(var(--gap-unit)*2);
        width: 70%;
    }

    .p-drone-line__note {
        font-size: var(--font-size14);
    }
}











/* -------page community------- */
.p-community-approach__inner {
    display: flex;
    flex-direction: column;
    padding: 0 calc(var(--gap-unit)*2);
}

.p-community-approach__visual {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.p-community-approach__visual[data-inview] .p-community-approach__panel,
.p-community-approach__visual[data-inview] .p-community-approach__panel * {
    -webkit-mask-image: none;
    mask-image: none;
}

.p-community-approach__visual[data-inview].inview .p-community-approach__panel:not(.is-show) {
    opacity: 0;
}

.p-community-approach__img {
    display: flex;
    width: 100%;
    aspect-ratio: 1096 / 360;
    overflow: hidden;
    border: 1px solid #DDE9E2;
    box-shadow: 0px 20px 64px 0px #182F2814;
}

.p-community-approach__img img {
    width: 100%;
    height: 100%;
    object-position: center;
    object-fit: cover;
}

.p-community-approach__panel {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*2.2);
    width: 70%;
    margin: calc(var(--gap-unit)*-3.5) auto 0;
    padding: calc(var(--gap-unit)*4.25) calc(var(--gap-unit)*4.75);
    background-color: #FFFFFFF0;
    border: 1px solid #DDE9E2;
    box-shadow: 0px 18px 56px 0px #182F2812;
    z-index: 1;
    opacity: 0;
    transform: translate3d(0, 2.8rem, 0);
}

.p-community-approach__panel.is-show {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.65s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.85s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-community-approach__title {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit));
}

.p-community-approach__title-en {
    display: inline-block;
    align-self: flex-start;
    font-size: var(--font-size16);
    font-weight: 700;
    line-height: 2;
    color: var(--bg-green-color);
    letter-spacing: 0.36em;
    clip-path: inset(0 100% 0 0);
    opacity: 0;
}

.p-community-approach__panel.is-show .p-community-approach__title-en {
    clip-path: inset(0 0 0 0);
    opacity: 1;
    transition:
        clip-path 0.75s cubic-bezier(0.77, 0, 0.175, 1) 0.2s,
        opacity 0.4s ease 0.2s;
}

.p-community-approach__title-ja {
    font-size: var(--font-size28);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.6;
    color: #1B3A31;
    letter-spacing: 0.08em;
    opacity: 0;
    transform: translate3d(0, 1rem, 0);
}

.p-community-approach__panel.is-show .p-community-approach__title-ja {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1) 0.35s,
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.35s;
}

.p-community-approach__lead {
    font-size: var(--font-size16);
    line-height: 2;
    color: #667A72;
    opacity: 0;
    transform: translate3d(0, 1rem, 0);
}

.p-community-approach__panel.is-show .p-community-approach__lead {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1) 0.5s,
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.5s;
}

.p-community-approach__list {
    display: flex;
    gap: calc(var(--gap-unit)*4);
    margin-top: calc(var(--gap-unit)*9);
}

.p-community-approach__item {
    flex: 1;
    position: relative;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*1.25);
    padding: calc(var(--gap-unit)*3) calc(var(--gap-unit)*3);
    border: 1px solid #DDE9E2;
    box-shadow: 0px 20px 60px 0px #182F280F;
    background-color: #FFFFFFE0;
    overflow: hidden;
    opacity: 0;
    transform: translate3d(0, 2.4rem, 0);
}

.p-community-approach__item.is-show {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.75s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-community-approach__item::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 3px;
    background: linear-gradient(90deg, #159A57 0%, rgba(21, 154, 87, 0.15) 100%);
    transform: scaleX(0);
    transform-origin: left center;
}

.p-community-approach__item.is-show::before {
    transform: scaleX(1);
    transition: transform 0.75s cubic-bezier(0.77, 0, 0.175, 1) 0.1s;
}

.p-community-approach__item::after {
    content: "";
    position: absolute;
    right: -2.2rem;
    bottom: -2.2rem;
    width: 8.6rem;
    height: 8.6rem;
    border-radius: 50%;
    background-color: #69A78A1A;
    pointer-events: none;
    opacity: 0;
    transform: scale(0.6);
}

.p-community-approach__item.is-show::after {
    opacity: 1;
    transform: scale(1);
    transition:
        opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1) 0.35s,
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.35s;
}

.p-community-approach__num {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 4.5rem;
    height: 4.5rem;
    font-size: var(--font-size18);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1;
    color: #1B3A31;
    border: 1px solid #69A78A47;
    background-color: #EEF7F2;
    opacity: 0;
    transform: scale(0.65);
}

.p-community-approach__item.is-show .p-community-approach__num {
    opacity: 1;
    transform: scale(1);
    transition:
        opacity 0.4s cubic-bezier(0.22, 1, 0.36, 1) 0.15s,
        transform 0.6s cubic-bezier(0.34, 1.5, 0.64, 1) 0.15s;
}

.p-community-approach__item-title {
    position: relative;
    font-size: var(--font-size24);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.5;
    color: #1B3A31;
    margin-top: calc(var(--gap-unit)*1);
    letter-spacing: 0.06em;
    z-index: 1;
    opacity: 0;
    transform: translate3d(0, 0.8rem, 0);
}

.p-community-approach__item.is-show .p-community-approach__item-title {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.5s cubic-bezier(0.53, 0.2, 0.25, 1) 0.28s,
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.28s;
}

.p-community-approach__item-txt {
    position: relative;
    z-index: 1;
    font-size: var(--font-size14);
    line-height: 1.9;
    color: #667A72;
    opacity: 0;
    transform: translate3d(0, 0.8rem, 0);
}

.p-community-approach__item.is-show .p-community-approach__item-txt {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.5s cubic-bezier(0.53, 0.2, 0.25, 1) 0.4s,
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.4s;
}

@media (max-width: 768px) {
    .p-community-approach__inner {
        padding: 0;
    }

    .p-community-approach__img {
        aspect-ratio: 1096 / 540;
    }

    .p-community-approach__panel {
        width: 85%;
    }

    .p-community-approach__title-ja {
        font-size: var(--font-size26);
    }

    .p-community-approach__title-en {
        font-size: var(--font-size14);
    }

    .p-community-approach__lead {
        font-size: var(--font-size15);
    }

    .p-community-approach__list {
        gap: calc(var(--gap-unit)*2);
    }

    .p-community-approach__item {
        padding: calc(var(--gap-unit)*2.5);
    }

    .p-community-approach__item-title {
        font-size: var(--font-size20);
    }
}

@media (max-width: 450px) {
    .p-community-approach__panel {
        margin-top: 0;
        border-top: 0;
        width: 100%;
        padding: calc(var(--gap-unit)*3.5) calc(var(--gap-unit)*3);
    }

    .p-community-approach__list {
        flex-direction: column;
        gap: calc(var(--gap-unit)*1);
        margin-top: calc(var(--gap-unit)*5);
    }

    .p-community-approach__item {
        padding: calc(var(--gap-unit)*3);
    }

    .p-community-approach__item-title {
        font-size: var(--font-size22);
    }
}




.p-community-activity {
    position: relative;
    background: linear-gradient(180deg, #F7FAF7 0%, #EEF7F2 100%);
}

.p-community-activity__lead {
    color: var(--bg-font-color);
}

.p-community-activity .js-community-activity-lead {
    opacity: 0;
    filter: blur(6px);
    transform: translate3d(0, 0.6rem, 0);
}

.p-community-activity .js-community-activity-lead.is-show {
    opacity: 1;
    filter: blur(0);
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.15s,
        filter 0.8s cubic-bezier(0.22, 1, 0.36, 1) 0.15s,
        transform 0.8s cubic-bezier(0.22, 1, 0.36, 1) 0.15s;
}

.p-community-activity__list {
    display: flex;
    flex-direction: column;
    background-color: var(--bg-white-color);
    border: 1px solid #DDE9E2;
    box-shadow: 0px 14px 46px 0px #182F280D;
    overflow: hidden;
    clip-path: inset(0 0 100% 0);
    opacity: 1;
}

.p-community-activity__list.is-show {
    clip-path: inset(0 0 0 0);
    transition: clip-path 1s cubic-bezier(0.77, 0, 0.175, 1);
}

.p-community-activity__item {
    position: relative;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: calc(var(--gap-unit)*3);
    padding: calc(var(--gap-unit)*3.75) calc(var(--gap-unit)*4);
    border-bottom: 1px solid #E8EBE9;
    transition: background-color 0.3s linear;
    overflow: hidden;
}

.p-community-activity__item::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(238, 247, 242, 0.95) 0%, rgba(238, 247, 242, 0.2) 55%, rgba(238, 247, 242, 0) 100%);
    transform: translate3d(-105%, 0, 0);
    pointer-events: none;
    z-index: 0;
}

.p-community-activity__item.is-show::before {
    animation: communityActivityWash 0.95s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

@keyframes communityActivityWash {
    0% {
        transform: translate3d(-105%, 0, 0);
    }
    55% {
        transform: translate3d(0, 0, 0);
    }
    100% {
        transform: translate3d(105%, 0, 0);
    }
}

.p-community-activity__item:last-child {
    border-bottom: none;
}

.p-community-activity__num {
    position: relative;
    z-index: 1;
    width: 7.4rem;
    font-size: var(--font-size32);
    font-family: var(--fontT);
    line-height: 1;
    color: #159A57;
    letter-spacing: 0.02em;
    opacity: 0;
    filter: blur(5px);
    transform: scale(1.25);
}

.p-community-activity__item.is-show .p-community-activity__num {
    opacity: 1;
    filter: blur(0);
    transform: scale(1);
    transition:
        opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1) 0.15s,
        filter 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.15s,
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.15s,
        color 0.35s ease,
        letter-spacing 0.35s ease;
}

.p-community-activity__main {
    position: relative;
    z-index: 1;
    flex: 1;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: calc(var(--gap-unit)*4);
    opacity: 0;
    transform: translate3d(0, 1.2rem, 0);
}

.p-community-activity__item.is-show .p-community-activity__main {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1) 0.28s,
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.28s;
}

.p-community-activity__title {
    position: relative;
    width: 34%;
    font-size: var(--font-size22);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.6;
    color: #1B3A31;
    letter-spacing: 0.05em;
    transition: color 0.35s ease, transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-community-activity__txt {
    flex: 1;
    font-size: var(--font-size15);
    line-height: 2;
    color: #667A72;
    transition: color 0.35s ease;
}

.p-community-activity__arrow {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 4.5rem;
    height: 4.5rem;
    font-size: var(--font-size22);
    line-height: 1;
    color: #159A57;
    text-align: center;
    border-radius: 50%;
    border: 1px solid transparent;
    background-color: transparent;
    opacity: 0;
    margin-left: var(--gap-unit);
    transform: rotate(-90deg) scale(0.6);
    transition:
        transform 0.35s cubic-bezier(0.22, 1, 0.36, 1),
        opacity 0.3s linear,
        color 0.35s ease,
        background-color 0.35s ease,
        border-color 0.35s ease,
        box-shadow 0.35s ease;
}

.p-community-activity__item.is-show .p-community-activity__arrow {
    opacity: 1;
    transform: rotate(0deg) scale(1);
    transition:
        opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1) 0.42s,
        transform 0.65s cubic-bezier(0.34, 1.45, 0.64, 1) 0.42s,
        color 0.35s ease,
        background-color 0.35s ease,
        border-color 0.35s ease,
        box-shadow 0.35s ease;
}

@media (hover: hover) {
    .p-community-activity__item.is-show:hover {
        background-color: #F4FBF7;
        box-shadow: inset 4px 0 0 #159A57;
    }

    .p-community-activity__item.is-show:hover::before {
        animation: none;
        transform: translate3d(0, 0, 0);
        background: linear-gradient(90deg, rgba(21, 154, 87, 0.08) 0%, rgba(21, 154, 87, 0.02) 45%, rgba(21, 154, 87, 0) 100%);
        transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1), background 0.45s ease;
    }

    .p-community-activity__item.is-show:hover .p-community-activity__num {
        color: #0F7A44;
        letter-spacing: 0.08em;
        transform: scale(1.08);
        transition:
            color 0.35s ease,
            letter-spacing 0.35s ease,
            transform 0.45s cubic-bezier(0.34, 1.4, 0.64, 1);
    }

    .p-community-activity__item.is-show:hover .p-community-activity__title {
        color: #159A57;
        transform: translate3d(0.4rem, 0, 0);
    }

    .p-community-activity__item.is-show:hover .p-community-activity__title::after {
        transform: scaleX(1);
    }

    .p-community-activity__item.is-show:hover .p-community-activity__txt {
        color: #4F6A60;
    }

    .p-community-activity__item.is-show:hover .p-community-activity__arrow {
        color: var(--bg-white-color);
        background-color: #159A57;
        border-color: #159A57;
        box-shadow: 0 10px 24px rgba(21, 154, 87, 0.28);
        transform: rotate(0deg) scale(1);
        transition:
            transform 0.4s cubic-bezier(0.34, 1.4, 0.64, 1),
            color 0.35s ease,
            background-color 0.35s ease,
            border-color 0.35s ease,
            box-shadow 0.35s ease;
    }
}

@media (max-width: 768px) {
    .p-community-activity__item {
        gap: calc(var(--gap-unit)*2.5);
        padding: calc(var(--gap-unit)*3.5) calc(var(--gap-unit)*3.5);
        padding-right: calc(var(--gap-unit)*3);
    }

    .p-community-activity__num {
        font-size: var(--font-size30);
        width: 4rem;
    }

    .p-community-activity__title {
        width: 34%;
    }

    .p-community-activity__title {
        font-size: var(--font-size18);
    }

    .p-community-activity__main {
        gap: calc(var(--gap-unit)*2);
    }

    .p-community-activity__txt {
        font-size: var(--font-size14);
    }

    .p-community-activity__arrow {
        font-size: var(--font-size18);
        width: 4rem;
        height: 4rem;
    }
}

@media (max-width: 450px) {
    .p-community-activity__item {
        flex-direction: column;
        align-items: flex-start;
        padding: calc(var(--gap-unit)*3) calc(var(--gap-unit)*3);
    }

    .p-community-activity__main {
        flex-direction: column;
        align-items: flex-start;
    }

    .p-community-activity__arrow {
        display: none;
    }

    .p-community-activity__title {
        font-size: var(--font-size20);
        width: 100%;
    }

    .p-community-activity__main {
        gap: calc(var(--gap-unit)*2);
    }
}




.p-community-detail {
    position: relative;
    background-color: var(--bg-white-color);
}

.p-community-detail__inner {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*5.5);
}

.p-community-detail__block {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: calc(var(--gap-unit)*5.5);
    padding: calc(var(--gap-unit)*4);
    background-color: var(--bg-white-color);
    border: 1px solid #DDE9E2;
    box-shadow: 0px 16px 50px 0px #182F280E;
    overflow: hidden;
}

.p-community-detail__block--reverse {
    flex-direction: row-reverse;
}

.p-community-detail__media {
    position: relative;
    display: flex;
    width: 36%;
    aspect-ratio: 1/1;
    overflow: hidden;
    border: 1px solid #DDE9E2;
    clip-path: inset(0 100% 0 0);
}

.p-community-detail__block--reverse .p-community-detail__media {
    clip-path: inset(0 0 0 100%);
}

.p-community-detail__block.is-media-show .p-community-detail__media,
.p-community-detail__block--reverse.is-media-show .p-community-detail__media {
    clip-path: inset(0 0 0 0);
    transition: clip-path 1.05s cubic-bezier(0.77, 0, 0.175, 1);
}

.p-community-detail__media::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 2;
    background: linear-gradient(135deg, rgba(238, 247, 242, 0.55) 0%, rgba(238, 247, 242, 0) 55%);
    opacity: 0;
    pointer-events: none;
}

.p-community-detail__block.is-media-show .p-community-detail__media::after {
    animation: communityDetailFlash 0.85s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

@keyframes communityDetailFlash {
    0% {
        opacity: 0.65;
    }
    100% {
        opacity: 0;
    }
}

.p-community-detail__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scale(1.14);
}

.p-community-detail__block.is-media-show .p-community-detail__media img {
    transform: scale(1);
    transition: transform 1.25s cubic-bezier(0.22, 1, 0.36, 1) 0.05s;
}

.p-community-detail__media .swiper {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
}

.p-community-detail__media .swiper-slide {
    height: 100%;
}

.p-community-detail__media .swiper-pagination {
    bottom: 1.4rem;
    z-index: 3;
}

.p-community-detail__media .swiper-pagination-bullet {
    width: 0.8rem;
    height: 0.8rem;
    background: #ffffff;
    opacity: 0.55;
}

.p-community-detail__media .swiper-pagination-bullet-active {
    background: #37B18E;
    opacity: 1;
}

.p-community-detail__media .swiper-button-prev,
.p-community-detail__media .swiper-button-next {
    width: 4rem;
    height: 4rem;
    margin-top: 0;
    top: 50%;
    transform: translateY(-50%);
    color: #ffffff;
    background: rgba(24, 58, 50, 0.42);
    border: 0;
    border-radius: 50%;
    z-index: 3;
    --swiper-navigation-size: 1.5rem;
}

.p-community-detail__media .swiper-button-prev {
    left: 1.2rem;
}

.p-community-detail__media .swiper-button-next {
    right: 1.2rem;
}

.p-community-detail__content {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: calc(var(--gap-unit)*1.5);
    min-width: 0;
}

.p-community-detail__label {
    display: inline-block;
    align-self: flex-start;
    font-size: var(--font-size15);
    font-weight: 700;
    line-height: 2;
    letter-spacing: 0.3em;
    color: #159A57;
    clip-path: inset(0 100% 0 0);
    opacity: 0;
}

.p-community-detail__block.is-content-show .p-community-detail__label {
    clip-path: inset(0 0 0 0);
    opacity: 1;
    transition:
        clip-path 0.75s cubic-bezier(0.77, 0, 0.175, 1),
        opacity 0.4s ease;
}

.p-community-detail__title {
    font-size: var(--font-size30);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.45;
    color: #1B3A31;
    letter-spacing: 0.02em;
    opacity: 0;
    transform: translate3d(0, 1.2rem, 0);
}

.p-community-detail__block.is-content-show .p-community-detail__title {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1) 0.12s,
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.12s;
}

.p-community-detail__lead {
    font-size: var(--font-size20);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.8;
    color: #1B3A31;
    opacity: 0;
    transform: translate3d(0, 1rem, 0);
}

.p-community-detail__block.is-content-show .p-community-detail__lead {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1) 0.24s,
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.24s;
}

.p-community-detail__txt {
    font-size: var(--font-size16);
    line-height: 2;
    color: #667A72;
    margin-top: calc(var(--gap-unit)*.7);
    opacity: 0;
    transform: translate3d(0, 1rem, 0);
}

.p-community-detail__block.is-content-show .p-community-detail__txt {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1) 0.36s,
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.36s;
}

.p-community-detail__list {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*1);
    margin-top: var(--gap-unit);
}

.p-community-detail__item {
    position: relative;
    display: flex;
    align-items: center;
    gap: calc(var(--gap-unit)*1.5);
    font-size: var(--font-size15);
    line-height: 1.9;
    color: #263A33;
    opacity: 0;
    transform: translate3d(-1rem, 0, 0);
}

.p-community-detail__block.is-content-show .p-community-detail__item {
    opacity: 1;
    transform: translate3d(0, 0, 0);
}

.p-community-detail__block.is-content-show .p-community-detail__item:nth-child(1) {
    transition:
        opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1) 0.48s,
        transform 0.6s cubic-bezier(0.22, 1, 0.36, 1) 0.48s;
}

.p-community-detail__block.is-content-show .p-community-detail__item:nth-child(2) {
    transition:
        opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1) 0.58s,
        transform 0.6s cubic-bezier(0.22, 1, 0.36, 1) 0.58s;
}

.p-community-detail__block.is-content-show .p-community-detail__item:nth-child(3) {
    transition:
        opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1) 0.68s,
        transform 0.6s cubic-bezier(0.22, 1, 0.36, 1) 0.68s;
}

.p-community-detail__item::before {
    content: "";
    display: flex;
    flex-shrink: 0;
    width: 1rem;
    height: 1rem;
    background-color: #69A78A;
    transform: scale(0);
}

.p-community-detail__block.is-content-show .p-community-detail__item::before {
    transform: scale(1);
    transition: transform 0.45s cubic-bezier(0.34, 1.5, 0.64, 1);
}

.p-community-detail__block.is-content-show .p-community-detail__item:nth-child(1)::before {
    transition-delay: 0.52s;
}

.p-community-detail__block.is-content-show .p-community-detail__item:nth-child(2)::before {
    transition-delay: 0.62s;
}

.p-community-detail__block.is-content-show .p-community-detail__item:nth-child(3)::before {
    transition-delay: 0.72s;
}

@media (max-width: 768px) {
    .p-community-detail__block {
        gap: calc(var(--gap-unit)*3.5);
        padding: calc(var(--gap-unit)*4) calc(var(--gap-unit)*3.5);
    }

    .p-community-detail__label {
        font-size: var(--font-size12);
    }

    .p-community-detail__title {
        font-size: var(--font-size24);
    }

    .p-community-detail__lead {
        font-size: 1.7rem;
    }

    .p-community-detail__txt {
        font-size: var(--font-size14);
    }

    .p-community-detail__item {
        font-size: var(--font-size14);
    }

    .p-community-detail__item::before {
        width: .8rem;
        height: .8rem;
    }
}

@media (max-width: 450px) {
    .p-community-detail__block {
        flex-direction: column-reverse;
        padding: calc(var(--gap-unit)*4) calc(var(--gap-unit)*3);
    }

    .p-community-detail__title {
        font-size: 2.5rem;
    }

    .p-community-detail__lead {
        font-size: 1.7rem;
    }

    .p-community-detail__media {
        width: 100%;
    }
}





.p-community-message {
    position: relative;
    background: linear-gradient(180deg, #F7FAF7 0%, #EEF7F2 100%);
}

.p-community-message__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.p-community-message .c-sec__title {
    align-items: center;
    text-align: center;
}

.p-community-message__card {
    font-size: var(--font-size16);
    line-height: 2;
    width: 80%;
    padding: calc(var(--gap-unit)*3.75) calc(var(--gap-unit)*4);
    background: linear-gradient(0deg, #FFFFFF, #FFFFFF),
        radial-gradient(101.58% 568.63% at 100% 0%, rgba(105, 167, 138, 0.1) 0%, rgba(105, 167, 138, 0) 24%);
    border-top: 3px solid #69A78A;
    box-shadow: 0px 20px 64px 0px #182F2814;
}

@media (max-width: 768px) {
    .p-community-message .c-sec__heading {
        margin-bottom: calc(var(--gap-unit)*4);
    }

    .p-community-message__card {
        width: 100%;
    }
}




/* -------page dx------- */
.p-dx-reason {
    position: relative;
    background-color: var(--bg-white-color);
}

.p-dx-reason .js-dx-reason-lead {
    opacity: 0;
    transform: translate3d(0, 1.4rem, 0);
}

.p-dx-reason .js-dx-reason-lead.is-show {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.65s cubic-bezier(0.53, 0.2, 0.25, 1) 0.2s,
        transform 0.8s cubic-bezier(0.22, 1, 0.36, 1) 0.2s;
}

.p-dx-reason__list {
    display: flex;
    gap: calc(var(--gap-unit)*2);
}

.p-dx-reason__item {
    position: relative;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*1.5);
    padding: calc(var(--gap-unit)*3.25) calc(var(--gap-unit)*2.75);
    background-color: var(--bg-white-color);
    border: 1px solid #DDE9E2;
    box-shadow: 0px 16px 48px 0px #182F280E;
    overflow: hidden;
    opacity: 0;
    transform: translate3d(0, 2.4rem, 0);
}

.p-dx-reason__item.is-show {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.75s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-dx-reason__item::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 3px;
    background: linear-gradient(90deg, #159A57 0%, rgba(21, 154, 87, 0.15) 100%);
    transform: scaleX(0);
    transform-origin: left center;
}

.p-dx-reason__item.is-show::before {
    transform: scaleX(1);
    transition: transform 0.75s cubic-bezier(0.77, 0, 0.175, 1) 0.1s;
}

.p-dx-reason__item-title {
    position: relative;
    z-index: 1;
    font-size: var(--font-size20);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.6;
    color: #1B3A31;
    letter-spacing: 0.03em;
    opacity: 0;
    transform: translate3d(0, 0.9rem, 0);
}

.p-dx-reason__item.is-show .p-dx-reason__item-title {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.5s cubic-bezier(0.53, 0.2, 0.25, 1) 0.2s,
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.2s;
}

.p-dx-reason__item-txt {
    position: relative;
    z-index: 1;
    font-size: var(--font-size14);
    line-height: 2;
    color: #667A72;
    opacity: 0;
    transform: translate3d(0, 0.9rem, 0);
}

.p-dx-reason__item.is-show .p-dx-reason__item-txt {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.5s cubic-bezier(0.53, 0.2, 0.25, 1) 0.34s,
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.34s;
}

@media (hover: hover) {
    .p-dx-reason__item.is-show:hover {
        border-color: #69A78A;
        box-shadow: 0 18px 48px rgba(24, 47, 40, 0.1);
    }

    .p-dx-reason__item.is-show:hover .p-dx-reason__item-title {
        color: #159A57;
        transition: color 0.35s ease;
    }
}

@media (max-width: 768px) {
    .p-dx-reason__list {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 450px) {
    .p-dx-reason__list {
        grid-template-columns: 1fr;
        gap: var(--gap-unit);
    }
}




.p-dx-initiatives {
    position: relative;
    overflow: hidden;
    background: linear-gradient(180deg, #F8FCF9 0%, #EDF8F3 100%);
    --dx-ring-scale: 0.72;
    --dx-ring-opacity: 0;
}

.p-dx-initiatives::before {
    content: "";
    position: absolute;
    top: -30rem;
    left: -30rem;
    width: 60rem;
    height: 60rem;
    border-radius: 50%;
    border: 1px solid #37B18E1C;
    pointer-events: none;
    opacity: var(--dx-ring-opacity);
    transform: scale(var(--dx-ring-scale));
    transform-origin: center center;
    transition: none;
}

.p-dx-initiatives::after {
    content: "";
    position: absolute;
    top: -22rem;
    left: -22rem;
    width: 44rem;
    height: 44rem;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(55, 177, 142, 0.1) 0%, rgba(55, 177, 142, 0) 70%);
    pointer-events: none;
    opacity: calc(var(--dx-ring-opacity) * 0.9);
    transform: scale(var(--dx-ring-scale));
    transform-origin: center center;
}

.p-dx-initiatives__inner {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*5);
}

.p-dx-initiatives__heading {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: calc(var(--gap-unit)*2.5);
}

.p-dx-initiatives__title {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: calc(var(--gap-unit)*1.75);
}

.p-dx-initiatives__title-en {
    font-size: var(--font-size12);
    font-weight: 700;
    line-height: 2;
    letter-spacing: 0.33em;
    color: #159A57;
}

.p-dx-initiatives__title-ja {
    font-size: var(--font-size32);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.08em;
    color: #1B3A31;
}

.p-dx-initiatives__lead {
    position: relative;
    font-size: var(--font-size24);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.8;
    letter-spacing: 0.06em;
    color: #1B3A31;
}

.p-dx-initiatives__card {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*2);
    padding: calc(var(--gap-unit)*4);
    background-color: var(--bg-white-color);
    border: 1px solid #DDE9E2;
    box-shadow: 0 16px 48px rgba(24, 58, 50, 0.06);
    overflow: hidden;
}

.p-dx-initiatives__card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 3px;
    background: linear-gradient(90deg, #159A57 0%, rgba(21, 154, 87, 0.15) 100%);
    transform: scaleX(0);
    transform-origin: left center;
}

.p-dx-initiatives__card.is-show::before {
    transform: scaleX(1);
    transition: transform 0.9s cubic-bezier(0.77, 0, 0.175, 1) 0.05s;
}

.p-dx-initiatives__card p {
    font-size: var(--font-size16);
    line-height: 2.1;
    color: #667A72;
}

@media (max-width: 768px) {
    .p-dx-initiatives__inner {
        gap: calc(var(--gap-unit)*4);
    }

    .p-dx-initiatives__title-ja {
        font-size: var(--font-size28);
    }

    .p-dx-initiatives__lead {
        font-size: var(--font-size18);
    }

    .p-dx-initiatives__card {
        gap: calc(var(--gap-unit)*2.25);
        padding: calc(var(--gap-unit)*3.5) calc(var(--gap-unit)*3.25);
    }

    .p-dx-initiatives__card p {
        font-size: var(--font-size15);
    }
}

@media (max-width: 450px) {
    .p-dx-initiatives::before {
        top: -12rem;
        left: -16rem;
        width: 36rem;
        height: 36rem;
    }

    .p-dx-initiatives__card {
        padding: calc(var(--gap-unit)*3) calc(var(--gap-unit)*2.5);
    }

    .p-dx-initiatives__card p {
        font-size: var(--font-size14);
        line-height: 2;
    }
}

.p-dx-komainu {
    position: relative;
    background-color: var(--bg-white-color);
}

.p-dx-komainu__wrap {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*6);
}

.p-dx-komainu__inner {
    position: relative;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: calc(var(--gap-unit)*7);
}

.p-dx-komainu__img {
    position: relative;
    z-index: 1;
    display: flex;
    width: 45%;
    padding: 0 0 calc(var(--gap-unit)*3) calc(var(--gap-unit)*3);
}

.p-dx-komainu__img::before {
    content: "";
    position: absolute;
    bottom: 0;
    right: calc(var(--gap-unit)*-2);
    width: 40rem;
    aspect-ratio: 40/46;
    background-color: #69A78A1A;
    border: 1px solid #69A78A3D;
    clip-path: inset(0 100% 0 0);
    transition: clip-path 0.6s cubic-bezier(0.77, 0, 0.175, 1);
}

.p-dx-komainu__img.is-before-show::before {
    clip-path: inset(0 0 0 0);
}

.p-dx-komainu__visual {
    position: relative;
    width: 100%;
    aspect-ratio: 40 / 46;
    overflow: hidden;
    z-index: 2;
    clip-path: inset(0 100% 0 0);
}

.p-dx-komainu__img.is-img-show .p-dx-komainu__visual {
    clip-path: inset(0 0 0 0);
    transition: clip-path 0.9s cubic-bezier(0.77, 0, 0.175, 1);
}

.p-dx-komainu__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.p-dx-komainu__visual .swiper {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.p-dx-komainu__visual .swiper-slide {
    height: 100%;
}

.p-dx-komainu__visual .swiper-pagination {
    bottom: 1.4rem;
    z-index: 3;
}

.p-dx-komainu__visual .swiper-pagination-bullet {
    width: 0.8rem;
    height: 0.8rem;
    background: #ffffff;
    opacity: 0.55;
}

.p-dx-komainu__visual .swiper-pagination-bullet-active {
    background: #37B18E;
    opacity: 1;
}

.p-dx-komainu__visual .swiper-button-prev,
.p-dx-komainu__visual .swiper-button-next {
    width: 4rem;
    height: 4rem;
    margin-top: 0;
    top: 50%;
    transform: translateY(-50%);
    color: #ffffff;
    background: rgba(24, 58, 50, 0.42);
    border: 0;
    border-radius: 50%;
    z-index: 3;
    --swiper-navigation-size: 1.5rem;
}

.p-dx-komainu__visual .swiper-button-prev {
    left: 1.2rem;
}

.p-dx-komainu__visual .swiper-button-next {
    right: 1.2rem;
}

.p-dx-komainu__content {
    position: relative;
    z-index: 1;
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: calc(var(--gap-unit)*2.2);
}

.p-dx-komainu__label {
    display: inline-block;
    align-self: flex-start;
    font-size: var(--font-size15);
    font-weight: 700;
    line-height: 2;
    letter-spacing: 0.35em;
    color: #159A57;
    clip-path: inset(0 100% 0 0);
    opacity: 0;
}

.p-dx-komainu__content.is-show .p-dx-komainu__label {
    clip-path: inset(0 0 0 0);
    opacity: 1;
    transition:
        clip-path 0.75s cubic-bezier(0.77, 0, 0.175, 1),
        opacity 0.4s ease;
}

.p-dx-komainu__title {
    font-size: var(--font-size32);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.5;
    color: #1B3A31;
    letter-spacing: 0.02em;
    opacity: 0;
    transform: translate3d(0, 1.2rem, 0);
}

.p-dx-komainu__content.is-show .p-dx-komainu__title {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1) 0.12s,
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.12s;
}

.p-dx-komainu__lead {
    font-size: var(--font-size16);
    line-height: 2;
    letter-spacing: 0.04em;
    margin-top: var(--gap-unit);
    color: #667A72;
    opacity: 0;
    transform: translate3d(0, 1rem, 0);
}

.p-dx-komainu__content.is-show .p-dx-komainu__lead {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1) 0.26s,
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.26s;
}

.p-dx-komainu__list {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*1.25);
    margin-top: calc(var(--gap-unit)*.6);
}

.p-dx-komainu__item {
    position: relative;
    display: flex;
    align-items: center;
    gap: calc(var(--gap-unit)*1.5);
    font-size: var(--font-size15);
    line-height: 2;
    color: #263A33;
    opacity: 0;
    transform: translate3d(-1rem, 0, 0);
}

.p-dx-komainu__content.is-show .p-dx-komainu__item {
    opacity: 1;
    transform: translate3d(0, 0, 0);
}

.p-dx-komainu__content.is-show .p-dx-komainu__item:nth-child(1) {
    transition:
        opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1) 0.4s,
        transform 0.6s cubic-bezier(0.22, 1, 0.36, 1) 0.4s;
}

.p-dx-komainu__content.is-show .p-dx-komainu__item:nth-child(2) {
    transition:
        opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1) 0.5s,
        transform 0.6s cubic-bezier(0.22, 1, 0.36, 1) 0.5s;
}

.p-dx-komainu__content.is-show .p-dx-komainu__item:nth-child(3) {
    transition:
        opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1) 0.6s,
        transform 0.6s cubic-bezier(0.22, 1, 0.36, 1) 0.6s;
}

.p-dx-komainu__content.is-show .p-dx-komainu__item:nth-child(4) {
    transition:
        opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1) 0.7s,
        transform 0.6s cubic-bezier(0.22, 1, 0.36, 1) 0.7s;
}

.p-dx-komainu__item span {
    flex: 1;
}

.p-dx-komainu__item::before {
    content: "";
    display: block;
    flex-shrink: 0;
    width: 1rem;
    height: 1rem;
    background-color: #69A78A;
    transform: scale(0);
}

.p-dx-komainu__content.is-show .p-dx-komainu__item::before {
    transform: scale(1);
    transition: transform 0.45s cubic-bezier(0.34, 1.5, 0.64, 1);
}

.p-dx-komainu__content.is-show .p-dx-komainu__item:nth-child(1)::before {
    transition-delay: 0.44s;
}

.p-dx-komainu__content.is-show .p-dx-komainu__item:nth-child(2)::before {
    transition-delay: 0.54s;
}

.p-dx-komainu__content.is-show .p-dx-komainu__item:nth-child(3)::before {
    transition-delay: 0.64s;
}

.p-dx-komainu__content.is-show .p-dx-komainu__item:nth-child(4)::before {
    transition-delay: 0.74s;
}

@media (max-width: 768px) {
    .p-dx-komainu__inner {
        gap: calc(var(--gap-unit)*5);
    }

    .p-dx-komainu__title {
        font-size: var(--font-size28);
    }

    .p-dx-komainu__lead {
        font-size: var(--font-size15);
    }

    .p-dx-komainu__img {
        padding: 0 0 calc(var(--gap-unit)*2) calc(var(--gap-unit)*2);
    }

    .p-dx-komainu__img::before {
        width: 25rem;
    }

    .p-dx-komainu__list {
        gap: calc(var(--gap-unit));
    }

    .p-dx-komainu__item {
        gap: calc(var(--gap-unit)*1.25);
        font-size: var(--font-size14);
    }

    .p-dx-komainu__item::before {
        width: .8rem;
        height: .8rem;
    }
}

@media (max-width: 450px) {
    .p-dx-komainu__inner {
        flex-direction: column-reverse;
    }

    .p-dx-komainu__title {
        font-size: var(--font-size26);
    }

    .p-dx-komainu__img {
        width: 95%;
        padding-left: 0;
    }

    .p-dx-komainu__img::before {
        width: 30rem;
    }
}

.p-dx-komainu__process {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*2);
    padding: calc(var(--gap-unit)*5.5);
    background: linear-gradient(180deg, #F8FCF9 0%, #F0FAF5 100%);
    border: 1px solid var(--color-cyan-168, #183A3214);
    box-shadow: 0px 18px 48px 0px #183A3212;
    border: 1px solid #DDE9E2;
}

.p-dx-komainu__process-title {
    font-size: var(--font-size24);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.7;
    letter-spacing: 0.07em;
    color: #173D34;
}

.p-dx-komainu__process-body {
    margin-top: calc(var(--gap-unit)*.5);
}

.p-dx-komainu__process-body p,
.p-dx-komainu__process-note {
    font-size: var(--font-size16);
    line-height: 1.9;
    color: #183A32BD;
}

.p-dx-komainu__steps {
    display: flex;
    gap: calc(var(--gap-unit));
    list-style: none;
    margin: 0;
    padding: 0;
    margin-top: var(--gap-unit);
}

.p-dx-komainu__step {
    position: relative;
    z-index: 1;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*1);
    padding: calc(var(--gap-unit)*2);
    padding-bottom: calc(var(--gap-unit)*3);
    background-color: var(--bg-white-color);
    border: 1px solid #37B18E29;
    box-shadow: 0 8px 24px rgba(24, 58, 50, 0.05);
}

.p-dx-komainu__step:nth-child(1) { z-index: 5; }
.p-dx-komainu__step:nth-child(2) { z-index: 4; }
.p-dx-komainu__step:nth-child(3) { z-index: 3; }
.p-dx-komainu__step:nth-child(4) { z-index: 2; }
.p-dx-komainu__step:nth-child(5) { z-index: 1; }

.p-dx-komainu__step:not(:last-child)::after {
    content: "→";
    position: absolute;
    top: 50%;
    right: calc(var(--gap-unit)*-1.7);
    transform: translateY(-50%);
    font-size: var(--font-size16);
    font-family: var(--fontG);
    line-height: 1;
    color: #37B18E;
    pointer-events: none;
}

.p-dx-komainu__step-num {
    font-size: var(--font-size18);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.04em;
    color: #159A57;
}

.p-dx-komainu__step-label {
    font-size: var(--font-size14);
    font-weight: bold;
    line-height: 1.3;
    letter-spacing: 0.04em;
    color: #173D34;
}

.p-dx-komainu__official {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: calc(var(--gap-unit)*3.5);
    width: 50%;
    padding: calc(var(--gap-unit)*3);
    margin: 0 auto;
    overflow: hidden;
    background-color: var(--bg-white-color);
    border: 1px solid #D5DCE3;
    box-shadow: 0 12px 36px rgba(24, 40, 58, 0.06);
    transition:
        border-color 0.45s cubic-bezier(0.22, 1, 0.36, 1),
        box-shadow 0.45s cubic-bezier(0.22, 1, 0.36, 1),
        transform 0.45s cubic-bezier(0.22, 1, 0.36, 1),
        background-color 0.45s ease;
}

.p-dx-komainu__official::before {
    content: "";
    position: absolute;
    top: 0;
    left: -40%;
    width: 40%;
    height: 100%;
    background: linear-gradient(
        105deg,
        transparent 0%,
        rgba(0, 61, 105, 0.07) 45%,
        rgba(233, 81, 74, 0.08) 55%,
        transparent 100%
    );
    transform: skewX(-18deg) translateX(0);
    opacity: 0;
    pointer-events: none;
    z-index: 1;
}

.p-dx-komainu__official::after {
    content: "";
    position: absolute;
    inset: 0;
    border: 1px solid transparent;
    pointer-events: none;
    transition: border-color 0.45s ease, box-shadow 0.45s ease;
}

.p-dx-komainu__official-logo {
    position: relative;
    z-index: 2;
    flex: 1;
    display: flex;
    transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-dx-komainu__official-logo img {
    width: 100%;
    transition: filter 0.45s ease;
}

.p-dx-komainu__official-link {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: calc(var(--gap-unit)*1);
    padding: calc(var(--gap-unit)*3);
    border-left: 1px solid #003D691F;
    transition: border-color 0.45s ease;
}

.p-dx-komainu__official-txt {
    font-size: var(--font-size16);
    font-weight: 700;
    line-height: 1.9;
    letter-spacing: 0.04em;
    color: #003D69;
    transition: color 0.35s ease, letter-spacing 0.45s ease;
}

.p-dx-komainu__official-arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: var(--font-size22);
    font-family: var(--fontG);
    font-weight: bold;
    line-height: 1;
    letter-spacing: .03em;
    color: #E9514A;
    transition:
        transform 0.45s cubic-bezier(0.34, 1.4, 0.64, 1),
        color 0.35s ease,
        text-shadow 0.35s ease;
}

@media (hover: hover) {
    .p-dx-komainu__official:hover {
        border-color: #003D6940;
        background-color: #F7FAFC;
        box-shadow:
            0 20px 48px rgba(0, 61, 105, 0.12),
            0 0 0 1px rgba(233, 81, 74, 0.12);
        transform: translateY(-4px);
    }

    .p-dx-komainu__official:hover::before {
        opacity: 1;
        animation: komainuOfficialShine 0.85s cubic-bezier(0.22, 1, 0.36, 1) forwards;
    }

    .p-dx-komainu__official:hover::after {
        border-color: rgba(0, 61, 105, 0.18);
        box-shadow: inset 0 0 0 1px rgba(233, 81, 74, 0.08);
    }

    .p-dx-komainu__official:hover .p-dx-komainu__official-logo img {
        filter: drop-shadow(0 6px 14px rgba(0, 61, 105, 0.18));
    }

    .p-dx-komainu__official:hover .p-dx-komainu__official-link {
        border-left-color: #E9514A55;
    }

    .p-dx-komainu__official:hover .p-dx-komainu__official-txt {
        color: #002A4A;
        letter-spacing: 0.08em;
    }

    .p-dx-komainu__official:hover .p-dx-komainu__official-arrow {
        color: #E9514A;
        transform: translateX(0.7rem);
        text-shadow: 0 0 12px rgba(233, 81, 74, 0.45);
        animation: komainuOfficialArrow 0.9s cubic-bezier(0.34, 1.4, 0.64, 1) infinite;
    }
}

@keyframes komainuOfficialShine {
    0% {
        transform: skewX(-18deg) translateX(0);
    }
    100% {
        transform: skewX(-18deg) translateX(350%);
    }
}

@keyframes komainuOfficialArrow {
    0%,
    100% {
        transform: translateX(0.7rem);
    }
    50% {
        transform: translateX(1.1rem);
    }
}

@media (max-width: 768px) {
    .p-dx-komainu__wrap {
        gap: calc(var(--gap-unit)*5);
    }

    .p-dx-komainu__process {
        gap: calc(var(--gap-unit)*3);
        padding: calc(var(--gap-unit)*4) calc(var(--gap-unit)*3);
    }

    .p-dx-komainu__process-title {
        font-size: var(--font-size20);
        text-align: left;
    }

    .p-dx-komainu__steps {
        flex-wrap: wrap;
        gap: calc(var(--gap-unit)*1.5);
    }

    .p-dx-komainu__step {
        flex: 1 1 calc(50% - calc(var(--gap-unit)*1));
        min-width: calc(50% - calc(var(--gap-unit)*1));
    }

    .p-dx-komainu__step:not(:last-child) {
        margin-right: 0;
    }

    .p-dx-komainu__step:not(:last-child)::after {
        display: none;
    }

    .p-dx-komainu__official {
        width: 75%;
        gap: calc(var(--gap-unit)*3);
        padding: calc(var(--gap-unit)*2.5);
    }

    .p-dx-komainu__official-logo img {
        width: 100%;
    }

    .p-dx-komainu__official-link {
        padding: calc(var(--gap-unit)*2.25) calc(var(--gap-unit)*2.5);
    }

    .p-dx-komainu__official-txt {
        font-size: var(--font-size15);
    }

    .p-dx-komainu__official-arrow {
        font-size: var(--font-size18);
    }
}

@media (max-width: 450px) {
    .p-dx-komainu__process {
        padding: calc(var(--gap-unit)*3) calc(var(--gap-unit)*2.5);
    }

    .p-dx-komainu__step {
        flex: 1 1 100%;
        min-width: 100%;
    }

    .p-dx-komainu__process-body p,
    .p-dx-komainu__process-note {
        font-size: var(--font-size14);
    }

    .p-dx-komainu__official {
        width: 100%;
        gap: calc(var(--gap-unit)*2);
    }

    .p-dx-komainu__official-link {
        padding: calc(var(--gap-unit)*2) calc(var(--gap-unit)*2.25);
    }

    .p-dx-komainu__official-txt {
        font-size: var(--font-size14);
    }

    .p-dx-komainu__official-arrow {
        font-size: var(--font-size16);
    }
}

.p-dx-vision {
    position: relative;
    background: linear-gradient(180deg, #F8FCF9 0%, #EEF8F3 100%);
}

.p-dx-vision__inner {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*3.5);
}

.p-dx-vision__card {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*2);
    padding: calc(var(--gap-unit)*5) calc(var(--gap-unit)*4);
    background: #FFFFFFD1;
    border: 1px solid #183A3217;
    box-shadow: 0px 12px 32px 0px #183A320B;
}

.p-dx-vision__title {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*2);
}

.p-dx-vision__title-en {
    display: inline-block;
    align-self: flex-start;
    font-size: var(--font-size12);
    font-weight: 700;
    line-height: 2;
    letter-spacing: 0.32em;
    color: #159A57;
}

.p-dx-vision__title-ja {
    font-size: var(--font-size32);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.04em;
    color: #1B3A31;
}

.p-dx-vision__body {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*2);
}

.p-dx-vision__body p {
    font-size: var(--font-size16);
    line-height: 2.1;
    color: #183A32BD;
}

.p-dx-vision__body .p-dx-vision__callout {
    padding: calc(var(--gap-unit)*2.5) calc(var(--gap-unit)*2.5);
    font-size: var(--font-size24);
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: 0.03em;
    color: #173D34;
    background-color: #37B18E13;
    border-left: 3px solid var(--bg-green-color);
}

.p-dx-vision__body p:last-child {
    margin-top: var(--gap-unit);
}

.p-dx-vision__body p:first-child {
    margin: 0;
}

@media (max-width: 768px) {
    .p-dx-vision__inner {
        gap: calc(var(--gap-unit)*3);
    }

    .p-dx-vision__card {
        gap: calc(var(--gap-unit)*2);
        padding: calc(var(--gap-unit)*4) calc(var(--gap-unit)*3.25);
    }

    .p-dx-vision__title {
        gap: calc(var(--gap-unit)*1.5);
    }

    .p-dx-vision__title-en {
        letter-spacing: 0.24em;
    }

    .p-dx-vision__title-ja {
        font-size: var(--font-size24);
        line-height: 1.55;
    }

    .p-dx-vision__body {
        gap: calc(var(--gap-unit)*1.75);
    }

    .p-dx-vision__body p {
        font-size: var(--font-size15);
        line-height: 2;
    }

    .p-dx-vision__body .p-dx-vision__callout {
        padding: calc(var(--gap-unit)*2.25) calc(var(--gap-unit)*2.25);
        font-size: var(--font-size18);
        line-height: 1.55;
        letter-spacing: 0.02em;
    }

    .p-dx-vision__body p:last-child {
        margin-top: calc(var(--gap-unit)*0.5);
    }
}

@media (max-width: 450px) {
    .p-dx-vision__inner {
        gap: calc(var(--gap-unit)*2.5);
    }

    .p-dx-vision__card {
        gap: calc(var(--gap-unit)*1.75);
        padding: calc(var(--gap-unit)*3.25) calc(var(--gap-unit)*2.5);
    }

    .p-dx-vision__title {
        gap: calc(var(--gap-unit)*1.5);
    }

    .p-dx-vision__title-en {
        letter-spacing: 0.2em;
    }

    .p-dx-vision__title-ja {
        font-size: var(--font-size26);
        line-height: 1.6;
        letter-spacing: 0.03em;
    }

    .p-dx-vision__body {
        gap: calc(var(--gap-unit)*1.5);
    }

    .p-dx-vision__body p {
        font-size: var(--font-size14);
        line-height: 1.95;
    }

    .p-dx-vision__body .p-dx-vision__callout {
        padding: calc(var(--gap-unit)*1.5) calc(var(--gap-unit)*2);
        font-size: var(--font-size16);
        line-height: 1.8;
        letter-spacing: 0.015em;
    }

    .p-dx-vision__body p:last-child {
        margin-top: 0;
    }
}


/* -------page recruit------- */
.p-recruit-nav {
    position: relative;
    background: linear-gradient(180deg, rgba(247, 250, 247, 0.95) 0%, rgba(244, 249, 246, 0.96) 100%);
}

.p-recruit-nav__inner {
    padding: 0 3rem;
}

.p-recruit-nav__box {
    position: relative;
    overflow: hidden;
    clip-path: inset(8% 8% 8% 8%);
    opacity: 0;
}

.p-recruit-nav__box.is-show {
    clip-path: inset(0 0 0 0);
    opacity: 1;
    transition:
        clip-path 1.05s cubic-bezier(0.77, 0, 0.175, 1),
        opacity 0.5s ease;
}

.p-recruit-nav__bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.p-recruit-nav__bg::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(20, 33, 42, 0.72) 0%, rgba(20, 33, 42, 0.68) 100%);
}

.p-recruit-nav__bg img {
    width: 100%;
    height: 100%;
    object-position: center 42%;
    object-fit: cover;
    transform: scale(1.12);
}

.p-recruit-nav__box.is-show .p-recruit-nav__bg img {
    transform: scale(1);
    transition: transform 1.4s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-recruit-nav__list {
    position: relative;
    z-index: 1;
    display: flex;
    border-top: 1px solid #FFFFFF73;
    border-bottom: 1px solid #FFFFFF73;
    margin: 17rem 18rem;
}

.p-recruit-nav__item {
    position: relative;
    display: flex;
    flex: 1;
    flex-direction: column;
    align-items: center;
    gap: calc(var(--gap-unit));
    padding: calc(var(--gap-unit)*3);
    text-align: center;
    color: var(--bg-white-color);
    border-right: 1px solid #FFFFFF73;
    transition: background-color 0.3s linear;
    opacity: 0;
    transform: translate3d(0, 1.8rem, 0);
}

.p-recruit-nav__item.is-show {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1),
        background-color 0.3s linear;
}

.p-recruit-nav__item:last-child {
    border-right: none;
}

.p-recruit-nav__item:hover {
    background-color: rgba(255, 255, 255, 0.1);
}

.p-recruit-nav__num {
    font-size: var(--font-size14);
    font-family: var(--fontT);
    line-height: 1.9;
    color: #FFFFFF9E;
    opacity: 0;
    letter-spacing: 0.2em;
    transform: translate3d(0, 0.6rem, 0);
}

.p-recruit-nav__item.is-show .p-recruit-nav__num {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1) 0.12s,
        transform 0.55s cubic-bezier(0.22, 1, 0.36, 1) 0.12s;
}

.p-recruit-nav__title {
    font-size: var(--font-size28);
    font-family: var(--fontT);
    font-weight: 600;
    line-height: 1.4;
    letter-spacing: 0.08em;
    opacity: 0;
    transform: translate3d(0, 0.8rem, 0);
}

.p-recruit-nav__item.is-show .p-recruit-nav__title {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.5s cubic-bezier(0.53, 0.2, 0.25, 1) 0.22s,
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.22s;
}

.p-recruit-nav__desc {
    font-size: 1.3rem;
    line-height: 1.7;
    letter-spacing: 0.04em;
    color: #FFFFFFB8;
    opacity: 0;
    transform: translate3d(0, 0.8rem, 0);
}

.p-recruit-nav__item.is-show .p-recruit-nav__desc {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.5s cubic-bezier(0.53, 0.2, 0.25, 1) 0.34s,
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.34s;
}

.p-recruit-nav__arrow {
    font-size: var(--font-size20);
    line-height: 1;
    color: #FFFFFFDB;
    opacity: 0;
    transform: translate3d(0, -0.6rem, 0);
}

.p-recruit-nav__item.is-show .p-recruit-nav__arrow {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1) 0.46s,
        transform 0.6s cubic-bezier(0.34, 1.45, 0.64, 1) 0.46s;
}

@media (hover: hover) {
    .p-recruit-nav__item.is-show:hover .p-recruit-nav__arrow {
        transform: translate3d(0, 0.35rem, 0);
        transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
    }

    .p-recruit-nav__item.is-show:hover .p-recruit-nav__title {
        letter-spacing: 0.14em;
        transition: letter-spacing 0.35s ease;
    }
}

.p-recruit-nav__arrow svg {
    width: 100%;
    height: auto;
}

@media (max-width: 768px) {
    .p-recruit-nav__inner {
        padding: 0;
    }

    .p-recruit-nav__list {
        margin: 8rem 4rem;
        border-bottom: none;
    }

    .p-recruit-nav__title {
        font-size: var(--font-size26);
    }
}

@media (max-width: 450px) {
    .p-recruit-nav__list {
        flex-direction: column;
    }

    .p-recruit-nav__item {
        border-right: none;
        border-bottom: 1px solid #FFFFFF73;
    }
}

.p-recruit-manga {
    position: relative;
    background-color: var(--bg-white-color);
}

.p-recruit-manga__nav {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: calc(var(--gap-unit)*1.5);
    margin-bottom: calc(var(--gap-unit)*8);
}

.p-recruit-manga__nav-item {
    display: flex;
    align-items: center;
    gap: calc(var(--gap-unit)*1.75);
    padding: calc(var(--gap-unit)*2) calc(var(--gap-unit)*2.25);
    font-size: var(--font-size14);
    font-weight: bold;
    line-height: 1.9;
    color: #1B3A31;
    background-color: var(--bg-white-color);
    border: 1px solid #DDE9E2;
    opacity: 0;
    transform: translate3d(0, 1.4rem, 0);
    transition:
        border-color 0.3s linear,
        box-shadow 0.3s linear,
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-recruit-manga__nav-item.is-in {
    opacity: 1;
    transform: translate3d(0, 0, 0);
}

.p-recruit-manga__nav-item:hover,
.p-recruit-manga__nav-item.is-active {
    border-color: #C8E8D4;
    box-shadow: 0 0.4rem 1.2rem rgba(24, 58, 50, 0.06);
}

.p-recruit-manga__nav-num {
    font-size: var(--font-size18);
    font-family: var(--fontT);
    font-weight: 700;
    color: #5D9880;
    line-height: 1.9;
}

.p-recruit-manga__hint {
    display: none;
    opacity: 0;
    transform: translate3d(0, 0.8rem, 0);
}

.p-recruit-manga__hint.is-in {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-recruit-manga__body {
    display: flex;
    align-items: flex-start;
    gap: calc(var(--gap-unit)*5);
}

.p-recruit-manga__sticky {
    position: sticky;
    top: calc(var(--header-distance) + var(--headerH) + var(--gap-unit)*3);
    flex-shrink: 0;
    width: 28rem;
    z-index: 2;
    opacity: 0;
    transform: translate3d(-1.6rem, 0, 0);
}

.p-recruit-manga__sticky.is-in {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.65s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.85s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-recruit-manga__infos {
    position: relative;
    min-height: 22rem;
}

.p-recruit-manga__list {
    display: flex;
    flex: 1;
    flex-direction: column;
    min-width: 0;
    gap: calc(var(--gap-unit)*7);
}

.p-recruit-manga__list .swiper-wrapper {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*7);
    width: 100%;
}

.p-recruit-manga__list:not(.swiper-initialized) .swiper-wrapper {
    transform: none !important;
}

.p-recruit-manga__list .swiper-slide {
    width: 100%;
    height: auto;
}

.p-recruit-manga__block {
    scroll-margin-top: calc(var(--header-distance) + var(--headerH) + var(--gap-unit)*3);
}

.p-recruit-manga__info {
    position: absolute;
    inset: 0 auto auto 0;
    display: flex;
    flex-direction: column;
    width: 100%;
    padding: calc(var(--gap-unit)*3.5) calc(var(--gap-unit)*3.25);
    border: 1px solid #DDE9E2;
    background-color: var(--bg-white-color);
    box-shadow: 0px 20px 64px 0px #182F2814;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(2.4rem) scale(0.96);
    clip-path: inset(12% 0 12% 0);
    filter: blur(2px);
    transition:
        opacity 0.55s cubic-bezier(0.22, 1, 0.36, 1),
        transform 0.55s cubic-bezier(0.22, 1, 0.36, 1),
        clip-path 0.55s cubic-bezier(0.22, 1, 0.36, 1),
        filter 0.45s linear,
        visibility 0s linear 0.55s,
        box-shadow 0.45s linear;
}

.p-recruit-manga__info.is-active {
    position: relative;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0) scale(1);
    clip-path: inset(0 0 0 0);
    filter: blur(0);
    transition-delay: 0s;
    box-shadow: 0 1.6rem 4.8rem rgba(24, 58, 50, 0.14);
}

.p-recruit-manga__info.is-exit {
    opacity: 0;
    visibility: visible;
    transform: translateY(-1.6rem) scale(0.98);
    clip-path: inset(0 0 40% 0);
    filter: blur(1px);
}

.p-recruit-manga__info.is-active .p-recruit-manga__label,
.p-recruit-manga__info.is-active .p-recruit-manga__heading,
.p-recruit-manga__info.is-active .p-recruit-manga__txt {
    animation: mangaInfoIn 0.65s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.p-recruit-manga__info.is-active .p-recruit-manga__label {
    animation-delay: 0.08s;
}

.p-recruit-manga__info.is-active .p-recruit-manga__heading {
    animation-delay: 0.16s;
}

.p-recruit-manga__info.is-active .p-recruit-manga__txt {
    animation-delay: 0.24s;
}

.p-recruit-manga__label {
    position: relative;
    display: inline-block;
    width: fit-content;
    margin-bottom: calc(var(--gap-unit)*0.5);
    font-size: var(--font-size15);
    font-weight: 700;
    line-height: 2;
    letter-spacing: 0.22em;
    color: #667A72;
}

.p-recruit-manga__heading {
    font-size: var(--font-size26);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.55;
    color: #1B3A31;
    letter-spacing: 0.02em;
}

.p-recruit-manga__txt {
    font-size: var(--font-size15);
    line-height: 2;
    color: #667A72;
    margin-top: calc(var(--gap-unit)*1.75);
}

.p-recruit-manga__panel {
    display: block;
    width: 100%;
    padding: calc(var(--gap-unit)*2.75);
    margin: 0;
    font: inherit;
    text-align: left;
    appearance: none;
    background-color: var(--bg-white-color);
    border: 1px solid #DDE9E2;
    box-shadow: 0px 20px 64px 0px #182F2814;
    cursor: zoom-in;
    overflow: hidden;
    clip-path: inset(0 100% 0 0);
    transition:
        transform 0.55s cubic-bezier(0.22, 1, 0.36, 1),
        box-shadow 0.55s linear,
        clip-path 0.95s cubic-bezier(0.77, 0, 0.175, 1);
}

.p-recruit-manga__block.is-reveal .p-recruit-manga__panel {
    clip-path: inset(0 0 0 0);
}

.p-recruit-manga__panel:hover {
    box-shadow: 0 1.8rem 5.2rem rgba(24, 58, 50, 0.16);
}

.p-recruit-manga__block.is-active .p-recruit-manga__panel {
    box-shadow: 0 1.6rem 4.8rem rgba(24, 58, 50, 0.14);
}

.p-recruit-manga__panel img {
    display: block;
    width: 100%;
    height: auto;
    pointer-events: none;
    transform: scale(1.06);
}

.p-recruit-manga__block.is-reveal .p-recruit-manga__panel img {
    transform: scale(1);
    transition: transform 1.15s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-recruit-manga-lightbox {
    position: fixed;
    inset: 0;
    z-index: 2000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: calc(var(--gap-unit)*3);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.35s linear, visibility 0s linear 0.35s;
}

.p-recruit-manga-lightbox.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transition-delay: 0s;
}

.p-recruit-manga-lightbox__bg {
    position: absolute;
    inset: 0;
    background-color: rgba(24, 58, 50, 0.72);
    backdrop-filter: blur(4px);
    cursor: zoom-out;
}

.p-recruit-manga-lightbox__dialog {
    position: relative;
    z-index: 1;
    width: min(96rem, 100%);
    max-height: calc(100vh - 4rem);
    padding: calc(var(--gap-unit)*2);
    background-color: var(--bg-white-color);
    box-shadow: 0 2rem 6rem rgba(0, 0, 0, 0.28);
    overflow: auto;
    transform: scale(0.92) translateY(1.2rem);
    opacity: 0;
    transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.35s linear;
}

.p-recruit-manga-lightbox.is-open .p-recruit-manga-lightbox__dialog {
    transform: scale(1) translateY(0);
    opacity: 1;
}

.p-recruit-manga-lightbox__img {
    display: block;
    width: 100%;
    height: auto;
}

.p-recruit-manga-lightbox__close {
    position: absolute;
    top: 0.8rem;
    right: 0.8rem;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3.6rem;
    height: 3.6rem;
    font-size: 2.4rem;
    line-height: 1;
    color: #1B3A31;
    background-color: rgba(255, 255, 255, 0.92);
    border: 1px solid #DDE9E2;
    cursor: pointer;
    transition: color 0.3s linear, background-color 0.3s linear;
}

.p-recruit-manga-lightbox__close:hover {
    color: var(--bg-white-color);
    background-color: #159A57;
    border-color: #159A57;
}

@keyframes mangaInfoIn {
    from {
        opacity: 0;
        transform: translateY(1.2rem);
    }

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

@media (max-width: 768px) {
    .p-recruit-manga__hint {
        display: block;
        margin: calc(var(--gap-unit)*-2) 0 calc(var(--gap-unit)*4);
        font-size: var(--font-size14);
        font-weight: 700;
        line-height: 1.8;
        letter-spacing: 0.04em;
        color: #1B3A31;
        text-align: center;
    }

    .p-recruit-manga__nav {
        display: none;
    }

    .p-recruit-manga__body {
        flex-direction: column;
        gap: calc(var(--gap-unit)*2);
    }

    .p-recruit-manga__sticky {
        position: relative;
        top: auto;
        width: 100%;
    }

    .p-recruit-manga__infos {
        min-height: 18rem;
    }

    .p-recruit-manga__info {
        padding: calc(var(--gap-unit)*3) calc(var(--gap-unit)*2.5);
    }

    .p-recruit-manga__heading {
        font-size: var(--font-size22);
    }

    .p-recruit-manga__list {
        width: 100%;
        overflow: hidden;
        gap: 0;
    }

    .p-recruit-manga__list .swiper-wrapper {
        flex-direction: row;
        gap: 0;
    }

    .p-recruit-manga__list .swiper-slide {
        width: 100%;
        height: auto;
        flex-shrink: 0;
    }

    .p-recruit-manga__panel {
        padding: 0;
    }
}

@media (max-width: 768px) {
    .p-recruit-manga__info {
        padding: calc(var(--gap-unit)*2);
    }

    .p-recruit-manga__label {
        font-size: var(--font-size14);
    }

    .p-recruit-manga__heading {
        font-size: var(--font-size20);
        margin-top: calc(var(--gap-unit)*.5);
    }

    .p-recruit-manga__txt {
        font-size: var(--font-size14);
        margin-top: calc(var(--gap-unit)*1);
    }
}



.p-recruit-job {
    position: relative;
    background: linear-gradient(180deg, #F7FAF7 0%, #EEF7F2 100%);
}

.p-recruit-job__notice {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*1.5);
    padding: calc(var(--gap-unit)*3.5);
    margin-bottom: calc(var(--gap-unit)*7.5);
    background: linear-gradient(180deg, rgba(255, 249, 227, 0.9) 0%, rgba(255, 255, 255, 0.96) 100%);
    border: 1px solid #D0A4004D;
    overflow: hidden;
    opacity: 0;
    transform: translate3d(0, 2rem, 0);
}

.p-recruit-job__notice.is-show {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.6s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-recruit-job__notice::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 4px;
    height: 100%;
    background: linear-gradient(180deg, #D0A400 0%, rgba(208, 164, 0, 0.25) 100%);
    transform: scaleY(0);
    transform-origin: top center;
}

.p-recruit-job__notice.is-show::before {
    transform: scaleY(1);
    transition: transform 0.75s cubic-bezier(0.77, 0, 0.175, 1) 0.12s;
}

.p-recruit-job__notice-title {
    font-size: var(--font-size20);
    font-weight: 700;
    line-height: 1.9;
    color: #6F5A17;
    letter-spacing: .6px;
    opacity: 0;
    transform: translate3d(0, 0.8rem, 0);
}

.p-recruit-job__notice.is-show .p-recruit-job__notice-title {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.5s cubic-bezier(0.53, 0.2, 0.25, 1) 0.2s,
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.2s;
}

.p-recruit-job__notice-lead {
    font-size: var(--font-size15);
    font-weight: bold;
    line-height: 2;
    color: #79611E;
    opacity: 0;
    transform: translate3d(0, 0.8rem, 0);
}

.p-recruit-job__notice.is-show .p-recruit-job__notice-lead {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.5s cubic-bezier(0.53, 0.2, 0.25, 1) 0.32s,
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.32s;
}

.p-recruit-job__notice-list {
    font-size: var(--font-size14);
    line-height: 1.9;
    color: #79611E;
}

.p-recruit-job__notice-list li {
    display: flex;
    align-items: center;
    gap: calc(var(--gap-unit));
    opacity: 0;
    transform: translate3d(-0.8rem, 0, 0);
}

.p-recruit-job__notice.is-show .p-recruit-job__notice-list li {
    opacity: 1;
    transform: translate3d(0, 0, 0);
}

.p-recruit-job__notice.is-show .p-recruit-job__notice-list li:nth-child(1) {
    transition:
        opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1) 0.42s,
        transform 0.55s cubic-bezier(0.22, 1, 0.36, 1) 0.42s;
}

.p-recruit-job__notice.is-show .p-recruit-job__notice-list li:nth-child(2) {
    transition:
        opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1) 0.5s,
        transform 0.55s cubic-bezier(0.22, 1, 0.36, 1) 0.5s;
}

.p-recruit-job__notice.is-show .p-recruit-job__notice-list li:nth-child(3) {
    transition:
        opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1) 0.58s,
        transform 0.55s cubic-bezier(0.22, 1, 0.36, 1) 0.58s;
}

.p-recruit-job__notice.is-show .p-recruit-job__notice-list li:nth-child(4) {
    transition:
        opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1) 0.66s,
        transform 0.55s cubic-bezier(0.22, 1, 0.36, 1) 0.66s;
}

.p-recruit-job__notice-list li::before {
    content: "・";
}

.p-recruit-job__table {
    background-color: var(--bg-white-color);
    border: 1px solid #DDE9E2;
    box-shadow: 0px 20px 64px 0px #182F2814;
    overflow: hidden;
    opacity: 0;
    transform: translate3d(0, 1.6rem, 0);
}

.p-recruit-job__table.is-show {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.75s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-recruit-job__row {
    display: flex;
    border-bottom: 1px solid #DDE9E2;
    opacity: 0;
    transform: translate3d(-1.6rem, 0, 0);
}

.p-recruit-job__row.is-show {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.5s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-recruit-job__row:last-child {
    border-bottom: none;
}

.p-recruit-job__cap {
    display: flex;
    align-items: center;
    width: 16rem;
    padding: calc(var(--gap-unit)*3) calc(var(--gap-unit)*2.5);
    font-size: var(--font-size15);
    font-weight: 700;
    line-height: 1.9;
    color: #1B3A31;
    background-color: #EEF7F2;
}

.p-recruit-job__data {
    flex: 1;
    display: flex;
    align-items: center;
    padding: calc(var(--gap-unit)*2.75) calc(var(--gap-unit)*3);
    font-size: var(--font-size14);
    line-height: 2;
    background-color: var(--bg-white-color);
}

.p-recruit-job__data p+p {
    margin-top: 0.35em;
}

@media (max-width: 450px) {
    .p-recruit-job__row {
        flex-direction: column;
    }

    .p-recruit-job__cap,
    .p-recruit-job__data {
        width: 100%;
        padding: calc(var(--gap-unit)*2);
    }
}


.p-recruit-flow {
    position: relative;
    background: linear-gradient(180deg, #F7FAF7 0%, #EEF7F2 100%);
}

.p-recruit-flow__list {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*2.5);
}

.p-recruit-flow__item {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: flex-start;
    gap: calc(var(--gap-unit)*3.5);
    padding: calc(var(--gap-unit)*3.5);
    background-color: var(--bg-white-color);
    border: 1px solid #DDE9E2;
    box-shadow: 0px 20px 64px 0px #182F2814;
    opacity: 0;
    transform: translate3d(0, 2.2rem, 0);
}

.p-recruit-flow__item.is-show {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.75s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-recruit-flow__item::before {
    content: "";
    position: absolute;
    top: 10rem;
    left: 7.3rem;
    bottom: calc(var(--gap-unit)*-2.75);
    width: 1px;
    background-color: #69A78A52;
    transform: scaleY(0);
    transform-origin: top center;
}

.p-recruit-flow__item.is-show::before {
    transform: scaleY(1);
    transition: transform 0.8s cubic-bezier(0.77, 0, 0.175, 1) 0.35s;
}

.p-recruit-flow__item:last-child:before {
    display: none;
}

.p-recruit-flow__num {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 9rem;
    height: 9rem;
    font-size: var(--font-size30);
    font-family: var(--fontT);
    line-height: 1;
    color: #1B3A31;
    border: 1px solid #69A78A52;
    background-color: #EEF7F2;
    opacity: 0;
    transform: scale(0.6);
    flex-shrink: 0;
}

.p-recruit-flow__item.is-show .p-recruit-flow__num {
    opacity: 1;
    transform: scale(1);
    transition:
        opacity 0.4s cubic-bezier(0.22, 1, 0.36, 1) 0.08s,
        transform 0.65s cubic-bezier(0.34, 1.5, 0.64, 1) 0.08s;
}

.p-recruit-flow__num::before {
    content: "";
    position: absolute;
    inset: -0.5rem;
    border: 1px solid rgba(21, 154, 87, 0.35);
    opacity: 0;
    transform: scale(0.7);
    pointer-events: none;
}

.p-recruit-flow__item.is-show .p-recruit-flow__num::before {
    animation: recruitFlowRing 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.12s forwards;
}

@keyframes recruitFlowRing {
    0% {
        opacity: 0;
        transform: scale(0.7);
    }
    40% {
        opacity: 1;
        transform: scale(1);
    }
    100% {
        opacity: 0;
        transform: scale(1.3);
    }
}

.p-recruit-flow__num span {
    position: relative;
    z-index: 1;
}

.p-recruit-flow__body {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: calc(var(--gap-unit)*1);
    opacity: 0;
    transform: translate3d(1.4rem, 0, 0);
}

.p-recruit-flow__item.is-show .p-recruit-flow__body {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1) 0.22s,
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.22s;
}

.p-recruit-flow__label {
    display: inline-block;
    align-self: flex-start;
    font-size: var(--font-size16);
    font-weight: 700;
    line-height: 2;
    letter-spacing: 0.24em;
    color: #667A72;
    clip-path: inset(0 100% 0 0);
    opacity: 0;
}

.p-recruit-flow__item.is-show .p-recruit-flow__label {
    clip-path: inset(0 0 0 0);
    opacity: 1;
    transition:
        clip-path 0.7s cubic-bezier(0.77, 0, 0.175, 1) 0.3s,
        opacity 0.35s ease 0.3s;
}

.p-recruit-flow__title {
    font-size: var(--font-size24);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 2;
    color: #1B3A31;
    letter-spacing: 0.06em;
    opacity: 0;
    transform: translate3d(0, 0.8rem, 0);
}

.p-recruit-flow__item.is-show .p-recruit-flow__title {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.5s cubic-bezier(0.53, 0.2, 0.25, 1) 0.4s,
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.4s;
}

.p-recruit-flow__txt {
    font-size: var(--font-size16);
    line-height: 2;
    opacity: 0;
    transform: translate3d(0, 0.8rem, 0);
}

.p-recruit-flow__item.is-show .p-recruit-flow__txt {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.5s cubic-bezier(0.53, 0.2, 0.25, 1) 0.5s,
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.5s;
}

@media (max-width: 768px) {
    .p-recruit-flow__num {
        font-size: var(--font-size26);
        width: 6rem;
        height: 6rem;
    }

    .p-recruit-flow__title {
        font-size: var(--font-size22);
    }

    .p-recruit-flow__item::before {
        top: 8rem;
        left: 5.8rem;
    }

    .p-recruit-flow__label {
        font-size: var(--font-size15);
    }

    .p-recruit-flow__txt {
        font-size: var(--font-size15);
    }
}

@media (max-width: 450px) {
    .p-recruit-flow__item {
        flex-direction: column;
        gap: calc(var(--gap-unit)*1.5);
    }

    .p-recruit-flow__item::before {
        display: none;
    }
}


.p-recruit-form__title {
    margin-bottom: calc(var(--gap-unit)*4);
    font-size: var(--font-size24);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.5;
    color: #1B3A31;
    letter-spacing: 0.08em;
    text-align: center;
}

.p-recruit-form .js-fade_up,
.p-contact-form .js-fade_up {
    transform: translate(0, 2rem);
    opacity: 0;
    transition: opacity 0.5s cubic-bezier(0.53, 0.2, 0.25, 1), transform 0.8s cubic-bezier(0.53, 0.2, 0.25, 1), -webkit-transform 0.8s cubic-bezier(0.53, 0.2, 0.25, 1);
    transition-delay: 0.06s;
}

.p-recruit-form .js-fade_up.on,
.p-contact-form .js-fade_up.on {
    opacity: 1;
    transform: translate(0, 0);
}

.p-recruit-form .c-sec__lead.js-fade_up {
    transition-delay: 0.1s;
}

.p-recruit-form__title.js-fade_up {
    transition-delay: 0.18s;
}

.p-recruit-form__wrap.js-fade_up,
.p-contact-form__wrap.js-fade_up {
    transition-delay: 0.28s;
}

.p-recruit-form__privacy.js-fade_up,
.p-contact-form__privacy.js-fade_up {
    transition-delay: 0.38s;
}

.p-recruit-form__submit.js-fade_up,
.p-contact-form__submit.js-fade_up {
    transition-delay: 0.48s;
}

.p-recruit-form__genders {
    display: flex;
    align-items: center;
    gap: calc(var(--gap-unit)*4);
    min-height: 4.4rem;
}

.p-recruit-form__gender {
    display: inline-flex;
    align-items: center;
    gap: calc(var(--gap-unit)*1);
    font-size: var(--font-size15);
    line-height: 1.5;
    color: var(--bg-font-color);
    cursor: pointer;
}

.p-recruit-form__gender-input {
    width: 1.6rem;
    height: 1.6rem;
    accent-color: var(--bg-green-color);
    cursor: pointer;
    margin: 0;
}

.p-recruit-form__birth {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: calc(var(--gap-unit)*4);
}

.p-recruit-form__birth-item {
    display: inline-flex;
    align-items: center;
    gap: calc(var(--gap-unit)*1.25);
}

.p-recruit-form__birth .p-recruit-form__birth-input {
    width: 15rem;
}

.p-recruit-form__birth-unit {
    font-size: var(--font-size16);
    font-weight: bold;
    line-height: 1;
    color: #1B3A31;
}

@media (max-width: 768px) {
    .p-recruit-form__birth {
        gap: calc(var(--gap-unit)*2);
    }
}

@media (max-width: 450px) {
    .p-recruit-form__birth {
        flex-direction: column;
        gap: calc(var(--gap-unit)*1.5);
    }

    .p-recruit-form__birth-item {
        width: 100%;
    }

    .p-recruit-form__birth .p-recruit-form__birth-input {
        width: 18rem;
    }

    .p-recruit-form__birth-unit {
        font-size: var(--font-size15);
    }
}










/* -------page contact------- */
.p-contact-form__content,
.p-recruit-form__content {
    position: relative;
    padding: calc(var(--gap-unit)*7);
    background: linear-gradient(180deg, rgba(247, 250, 247, 0.92) 0%, #FFFFFF 32%);
    border: 1px solid #DDE9E2;
    box-shadow: 0px 20px 64px 0px #182F2814;
}

.p-contact-form__wrap,
.p-recruit-form__wrap {
    border: 1px solid #DDE9E2;
    background-color: var(--bg-white-color);
}

.p-contact-form__field,
.p-recruit-form__field {
    display: flex;
    border-bottom: 1px solid #E5EBE7;
}

.p-contact-form__field:last-child,
.p-recruit-form__field:last-child {
    border-bottom: none;
}

.p-contact-form__cap,
.p-recruit-form__cap {
    display: flex;
    align-items: center;
    flex-shrink: 0;
    gap: calc(var(--gap-unit));
    font-size: var(--font-size15);
    font-weight: 700;
    line-height: 1.6;
    color: #1B3A31;
    width: 22rem;
    padding: calc(var(--gap-unit)*4.2) calc(var(--gap-unit)*2.75);
    background-color: #EEF7F2;
}

.p-contact-form__cap-required,
.p-recruit-form__cap-required {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: calc(var(--gap-unit)*.4) var(--gap-unit);
    font-size: 1.1rem;
    font-weight: 700;
    line-height: 1.4;
    color: var(--bg-white-color);
    letter-spacing: 0.05em;
    background-color: #D75B4C;
}

.p-contact-form__control,
.p-recruit-form__control {
    display: flex;
    flex-direction: column;
    flex: 1;
    gap: calc(var(--gap-unit)*2.25);
    padding: calc(var(--gap-unit)*2.5) calc(var(--gap-unit)*3);
    background-color: var(--bg-white-color);
}

.p-contact-form__radios,
.p-recruit-form__radios {
    display: flex;
    gap: calc(var(--gap-unit)*1.5);
}

.p-contact-form__radio,
.p-recruit-form__radio {
    flex: 1;
    cursor: pointer;
}

.p-contact-form__radio-input,
.p-recruit-form__radio-input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.p-contact-form__radio-box,
.p-recruit-form__radio-box {
    display: flex;
    align-items: flex-start;
    gap: calc(var(--gap-unit)*1.5);
    height: 100%;
    padding: calc(var(--gap-unit)*2.25);
    border: 1px solid #DDE9E2;
    background-color: var(--bg-white-color);
    transition: border-color 0.3s linear, background-color 0.3s linear;
}

.p-contact-form__radio-input:checked+.p-contact-form__radio-box,
.p-recruit-form__radio-input:checked+.p-recruit-form__radio-box {
    border-color: var(--bg-green-color);
    background-color: rgba(21, 154, 87, 0.04);
}

.p-contact-form__radio-mark,
.p-recruit-form__radio-mark {
    position: relative;
    flex-shrink: 0;
    width: 1.6rem;
    height: 1.6rem;
    margin-top: 0.15em;
    border: 1px solid #B8C4BE;
    border-radius: 50%;
    background-color: var(--bg-white-color);
}

.p-contact-form__radio-input:checked+.p-contact-form__radio-box .p-contact-form__radio-mark::after,
.p-recruit-form__radio-input:checked+.p-recruit-form__radio-box .p-recruit-form__radio-mark::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 1rem;
    height: 1rem;
    border-radius: 50%;
    background-color: var(--bg-green-color);
    transform: translate(-50%, -50%);
}

.p-contact-form__radio-body,
.p-recruit-form__radio-body {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*.7);
}

.p-contact-form__radio-title,
.p-recruit-form__radio-title {
    font-size: var(--font-size16);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.5;
    color: var(--bg-font-color);
}

.p-contact-form__radio-desc,
.p-recruit-form__radio-desc {
    font-size: 1.3rem;
    line-height: 1.7;
    color: #667A72;
}

.p-contact-form__input,
.p-recruit-form__input,
.p-contact-form__textarea,
.p-recruit-form__textarea {
    width: 100%;
    padding: calc(var(--gap-unit)*1.75) calc(var(--gap-unit)*2);
    font-size: var(--font-size15);
    font-family: var(--fontB);
    line-height: 1;
    color: var(--bg-font-color);
    background-color: #FCFEFD;
    border: 1px solid #D9E4DE;
    outline: none;
    transition: border-color 0.3s linear;
}

.p-contact-form__input:focus,
.p-recruit-form__input:focus,
.p-contact-form__textarea:focus,
.p-recruit-form__textarea:focus {
    border-color: var(--bg-green-color);
}

.p-contact-form__input::-webkit-input-placeholder,
.p-recruit-form__input::-webkit-input-placeholder,
.p-contact-form__textarea::-webkit-input-placeholder,
.p-recruit-form__textarea::-webkit-input-placeholder {
    color: #A1AAA6;
}

.p-contact-form__input::-moz-placeholder,
.p-recruit-form__input::-moz-placeholder,
.p-contact-form__textarea::-moz-placeholder,
.p-recruit-form__textarea::-moz-placeholder {
    color: #A1AAA6;
}

.p-contact-form__input:-ms-input-placeholder,
.p-recruit-form__input:-ms-input-placeholder,
.p-contact-form__textarea:-ms-input-placeholder,
.p-recruit-form__textarea:-ms-input-placeholder {
    color: #A1AAA6;
}

.p-contact-form__textarea,
.p-recruit-form__textarea {
    min-height: 14rem;
    resize: vertical;
    line-height: 1.6;
}

.p-contact-form__privacy,
.p-recruit-form__privacy {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*1.75);
    padding: calc(var(--gap-unit)*4);
    margin-top: calc(var(--gap-unit)*5);
    background-color: var(--bg-white-color);
}

.p-contact-form__privacy-title,
.p-recruit-form__privacy-title {
    font-size: var(--font-size24);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.9;
    color: #1B3A31;
    letter-spacing: 0.08em;
}

.p-contact-form__privacy-lead,
.p-recruit-form__privacy-lead {
    font-size: var(--font-size15);
    line-height: 1.9;
    color: #667A72;
}

.p-contact-form__privacy-box,
.p-recruit-form__privacy-box {
    width: 100%;
    padding: calc(var(--gap-unit)*3) calc(var(--gap-unit)*2.5);
    font-size: var(--font-size14);
    line-height: 2;
    color: #40544C;
    background-color: #F7FAF7;
    border: 1px solid #DDE9E2;
}

.p-contact-form__agree,
.p-recruit-form__agree {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: calc(var(--gap-unit)*1.5);
    width: 100%;
    padding: calc(var(--gap-unit)*2.2) calc(var(--gap-unit)*3);
    font-size: var(--font-size15);
    font-weight: 500;
    line-height: 1.9;
    color: #263A33;
    background-color: #F5F7F6;
    cursor: pointer;
}

.p-contact-form__agree-input,
.p-recruit-form__agree-input {
    width: 1.8rem;
    height: 1.8rem;
    accent-color: var(--bg-green-color);
    cursor: pointer;
    margin: 0;
}

.p-contact-form__submit,
.p-recruit-form__submit {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(var(--gap-unit)*1.75);
    padding: calc(var(--gap-unit)*3.75);
    margin-top: calc(var(--gap-unit)*5);
}

.p-contact-form__submit-btn,
.p-recruit-form__submit-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 36rem;
    padding: calc(var(--gap-unit)*2.5) calc(var(--gap-unit)*6);
    font-size: var(--font-size16);
    font-family: var(--fontB);
    font-weight: 700;
    letter-spacing: 0.1em;
    color: var(--bg-white-color);
    background-color: #1B3A31;
    border: 2px solid #1B3A31;
    border-radius: 10rem;
    cursor: pointer;
    transition: color 0.2s linear, background-color 0.2s linear;
}

.p-contact-form__submit-btn:hover,
.p-recruit-form__submit-btn:hover {
    color: #1B3A31;
    background-color: var(--bg-white-color);
}

.p-contact-form__submit-note,
.p-recruit-form__submit-note {
    font-size: var(--font-size14);
    line-height: 1.8;
    color: #667A72;
    text-align: center;
}

@media (max-width: 768px) {

    .p-contact-form__content,
    .p-recruit-form__content {
        padding: calc(var(--gap-unit)*6) calc(calc(var(--gap-unit)*4));
    }

    .p-contact-form__field,
    .p-recruit-form__field {
        flex-direction: column;
    }

    .p-contact-form__cap,
    .p-recruit-form__cap {
        width: 100%;
        padding: calc(var(--gap-unit)*2.2) calc(var(--gap-unit)*2.75);
    }

    .p-contact-form__radios,
    .p-recruit-form__radios {
        gap: calc(var(--gap-unit)*1);
    }

    .p-contact-form__radio-box,
    .p-recruit-form__radio-box {
        padding: calc(var(--gap-unit)*2) calc(var(--gap-unit)*1.5);
    }

    .p-contact-form__control,
    .p-recruit-form__control {
        padding: calc(var(--gap-unit)*2);
    }

    .p-contact-form__privacy,
    .p-recruit-form__privacy {
        padding: calc(var(--gap-unit)*3) 0;
        padding-top: calc(var(--gap-unit)*1.5);
    }

    .p-contact-form__privacy-title,
    .p-recruit-form__privacy-title {
        font-size: var(--font-size22);
    }

    .p-contact-form__privacy-lead,
    .p-recruit-form__privacy-lead {
        font-size: var(--font-size14);
    }

    .p-contact-form__submit,
    .p-recruit-form__submit {
        padding: calc(var(--gap-unit)*2.75) 0;
        padding-top: calc(var(--gap-unit)*1.5);
    }

    .p-contact-form__submit-btn,
    .p-recruit-form__submit-btn {
        min-width: 33rem;
        padding: calc(var(--gap-unit)*2.2) calc(var(--gap-unit)*6);
    }
}

@media (max-width: 450px) {
    .p-contact .c-lower__title-ja {
        font-size: var(--font-size30);
    }

    .p-contact-form__content,
    .p-recruit-form__content {
        padding: calc(var(--gap-unit)*6) calc(var(--gap-unit)*2.5);
    }

    .p-contact-form__radios,
    .p-recruit-form__radios {
        flex-direction: column;
    }

    .p-contact-form__radio-box,
    .p-recruit-form__radio-box {
        padding: calc(var(--gap-unit)*2);
    }

    .p-contact-form__cap,
    .p-recruit-form__cap {
        padding: calc(var(--gap-unit)*2.2) calc(var(--gap-unit)*2);
    }

    .p-contact-form__control,
    .p-recruit-form__control {
        padding: calc(var(--gap-unit)*1.5);
    }

    .p-contact-form__textarea,
    .p-recruit-form__textarea {
        min-height: 20rem;
    }

    .p-contact-form__input,
    .p-recruit-form__input,
    .p-contact-form__textarea,
    .p-recruit-form__textarea {
        padding: calc(var(--gap-unit)*1.75);
    }

    .p-contact-form__submit-note,
    .p-recruit-form__submit-note {
        font-size: 1.3rem;
    }
}







/* -------page news------- */
.p-news-list {
    position: relative;
    background-color: var(--bg-white-color);
}

.p-news-list__inner {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*5.5);
    padding: 0 10rem;
}

.p-news-list__filter {
    display: flex;
    align-items: center;
    gap: calc(var(--gap-unit)*4);
    padding: calc(var(--gap-unit)*3.75) calc(var(--gap-unit)*4.75);
    background-color: #F7FAF7;
    border: 1px solid #DDE9E2;
    opacity: 0;
    transform: translate3d(0, 1.6rem, 0);
}

.p-news-list__filter.is-show {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.6s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-news-list__filter-label {
    position: relative;
    font-size: var(--font-size16);
    font-weight: 700;
    line-height: 1.9;
    color: #1B3A31;
    padding-left: calc(var(--gap-unit)*2);
    border-left: 3px solid #1B3A31;
}

.p-news-list__filter-list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: calc(var(--gap-unit)*3.25);
}

.p-news-list__filter-link {
    position: relative;
    display: block;
    font-size: var(--font-size14);
    font-weight: bold;
    line-height: 1.9;
    color: #667A72;
    transition: color 0.3s linear;
}

.p-news-list__filter-link::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -1px;
    width: 100%;
    height: 1px;
    background-color: #5D9880;
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.3s linear;
}

.p-news-list__filter-link.is-active,
.p-news-list__filter-link:hover {
    color: #5D9880;
}

.p-news-list__filter-link.is-active::after,
.p-news-list__filter-link:hover::after {
    transform: scaleX(1);
}

.p-news-list__content {
    border-top: 1px solid #E5EBE7;
}

.p-news-list__item {
    position: relative;
    display: flex;
    align-items: center;
    gap: calc(var(--gap-unit)*2.25);
    padding: calc(var(--gap-unit)*3) calc(var(--gap-unit)*1.5);
    margin: 0 calc(var(--gap-unit)*-1.5);
    border-bottom: 1px solid #DDE9E2;
    opacity: 0;
    transform: translate3d(-1.6rem, 0, 0);
    transition:
        background-color 0.35s ease,
        box-shadow 0.35s ease;
}

.p-news-list__item.is-show {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.5s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1),
        background-color 0.35s ease,
        box-shadow 0.35s ease;
}

.p-news-list__item::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    width: 3px;
    height: 100%;
    background: linear-gradient(180deg, #159A57 0%, rgba(21, 154, 87, 0.2) 100%);
    transform: scaleY(0);
    transform-origin: top center;
    transition: transform 0.4s cubic-bezier(0.77, 0, 0.175, 1);
}

.p-news-list__item::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(238, 247, 242, 0.9) 0%, rgba(238, 247, 242, 0) 70%);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.35s ease;
}

.p-news-list__date {
    position: relative;
    z-index: 1;
    font-size: var(--font-size14);
    font-weight: bold;
    line-height: 1.9;
    color: #53697D;
    letter-spacing: 0.04em;
    width: 12rem;
    transition: color 0.35s ease, letter-spacing 0.35s ease;
}

.p-news-list__cat {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 9rem;
    padding: calc(var(--gap-unit)*.5) 0;
    font-size: var(--font-size12);
    font-weight: 700;
    line-height: 1.9;
    letter-spacing: 0.05em;
    transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-news-list__cat--news {
    color: #1B6B45;
    background-color: #E5F4EC;
}

.p-news-list__cat--blog {
    color: #2F6FA8;
    background-color: #E8F2FA;
}

.p-news-list__cat--recruit {
    color: #8A5A2B;
    background-color: #F6EEE4;
}

.p-news-list__cat--sns {
    color: #6B4E9B;
    background-color: #F0EAF7;
}

.p-news-list__title {
    position: relative;
    z-index: 1;
    flex: 1;
    min-width: 0;
    overflow: hidden;
    font-size: var(--font-size16);
    font-weight: bold;
    line-height: 1.9;
    color: #263A33;
    letter-spacing: .04em;
    white-space: nowrap;
    text-overflow: ellipsis;
    transition: color 0.35s ease, transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-news-list__arrow {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 3.2rem;
    height: 3.2rem;
    font-size: var(--font-size16);
    line-height: 1;
    color: #1B3A31;
    border-radius: 50%;
    border: 1px solid transparent;
    padding-bottom: calc(var(--gap-unit)*.5);
    transition:
        color 0.35s ease,
        background-color 0.35s ease,
        border-color 0.35s ease,
        transform 0.4s cubic-bezier(0.34, 1.4, 0.64, 1),
        box-shadow 0.35s ease;
}

@media (hover: hover) {
    .p-news-list__item.is-show:hover {
        background-color: #F7FBF9;
        box-shadow: inset 0 0 0 1px #DDE9E2;
    }

    .p-news-list__item.is-show:hover::before {
        transform: scaleY(1);
    }

    .p-news-list__item.is-show:hover::after {
        opacity: 1;
    }

    .p-news-list__item.is-show:hover .p-news-list__date {
        color: #159A57;
        letter-spacing: 0.08em;
    }

    .p-news-list__item.is-show:hover .p-news-list__cat {
        transform: scale(1.06);
    }

    .p-news-list__item.is-show:hover .p-news-list__title {
        color: #159A57;
        transform: translate3d(0.4rem, 0, 0);
    }

    .p-news-list__item.is-show:hover .p-news-list__arrow {
        color: var(--bg-white-color);
        background-color: #159A57;
        border-color: #159A57;
        box-shadow: 0 8px 20px rgba(21, 154, 87, 0.25);
    }
}

.p-news-list__pager {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: calc(var(--gap-unit)*1.25);
    opacity: 0;
    transform: translate3d(0, 1.2rem, 0);
}

.p-news-list__pager.is-show {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-news-list__pager-item {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 4rem;
    height: 4rem;
    padding: 0 calc(var(--gap-unit)*1.5);
    font-size: var(--font-size14);
    font-weight: 700;
    line-height: 1;
    color: #159A57;
    background-color: var(--bg-white-color);
    border: 1px solid #159A57;
    transition: color 0.3s linear, background-color 0.3s linear, transform 0.3s ease;
}

.p-news-list__pager-item.is-current,
.p-news-list__pager-item:hover {
    color: var(--bg-white-color);
    background-color: #159A57;
}

@media (hover: hover) {
    .p-news-list__pager-item:hover {
        transform: translate3d(0, -0.2rem, 0);
    }
}

.p-news-list__pager-item--next {
    min-width: 7rem;
}

.p-news-list__pager-item--prev {
    min-width: 7rem;
}

.p-news-list__pager .wp-pagenavi {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: calc(var(--gap-unit)*1.25);
    flex-wrap: wrap;
}

.p-news-list__pager .wp-pagenavi a,
.p-news-list__pager .wp-pagenavi span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 4rem;
    height: 4rem;
    padding: 0 calc(var(--gap-unit)*1.5);
    font-size: var(--font-size14);
    font-weight: 700;
    line-height: 1;
    color: #159A57;
    background-color: var(--bg-white-color);
    border: 1px solid #159A57;
    text-decoration: none;
    transition: color 0.3s linear, background-color 0.3s linear, transform 0.3s ease;
}

.p-news-list__pager .wp-pagenavi span.current,
.p-news-list__pager .wp-pagenavi a:hover {
    color: var(--bg-white-color);
    background-color: #159A57;
}

@media (max-width: 768px) {
    .p-news-list__inner {
        padding: 0 2rem;
    }

    .p-news-list__filter {
        padding: calc(var(--gap-unit)*3.5) calc(var(--gap-unit)*4.5);
    }

    .p-news-list__date {
        width: 9rem;
    }

    .p-news-list__title {
        font-size: var(--font-size15);
    }
}

@media (max-width: 450px) {
    .p-news-list__inner {
        padding: 0;
    }

    .p-news-list__filter {
        flex-direction: column;
        align-items: flex-start;
        gap: calc(var(--gap-unit)*3);
        padding: calc(var(--gap-unit)*3) calc(var(--gap-unit)*3.5);
    }

    .p-news-list__filter-label {
        line-height: 1.6;
        padding-left: calc(var(--gap-unit)*1.5);
        border-left: 2px solid #1B3A31;
    }

    .p-news-list__item {
        flex-wrap: wrap;
        gap: calc(var(--gap-unit)*1.5);
    }

    .p-news-list__title {
        flex: none;
        width: 100%;
    }

    .p-news-list__arrow {
        display: none;
    }
}



.p-news-photo {
    position: relative;
    background: linear-gradient(180deg, #F7FAF7 0%, #EEF7F2 100%);
}

.p-news-photo__inner {
    padding: 0 2rem;
}

.p-news-photo__list {
    display: flex;
    gap: calc(var(--gap-unit)*2.75);
}

.p-news-photo__card {
    flex: 1;
    position: relative;
    display: flex;
    flex-direction: column;
    border: 1px solid #DDE9E2;
    background-color: var(--bg-white-color);
    box-shadow: 0px 18px 56px 0px #182F2812;
    overflow: hidden;
    opacity: 0;
    transform: translate3d(0, 2.8rem, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1),
        box-shadow 0.4s ease,
        border-color 0.4s ease;
}

.p-news-photo__card.is-show {
    opacity: 1;
    transform: translate3d(0, 0, 0);
}

.p-news-photo__card::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 3px;
    background: linear-gradient(90deg, #159A57 0%, rgba(21, 154, 87, 0.15) 100%);
    transform: scaleX(0);
    transform-origin: left center;
    z-index: 2;
    transition: transform 0.45s cubic-bezier(0.77, 0, 0.175, 1);
}

.p-news-photo__card::after {
    content: "";
    position: absolute;
    inset: 0;
    border: 1px solid transparent;
    pointer-events: none;
    z-index: 2;
    transition: border-color 0.4s ease, box-shadow 0.4s ease;
}

.p-news-photo__img {
    position: relative;
    display: flex;
    aspect-ratio: 5/4;
    overflow: hidden;
}

.p-news-photo__img::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 42%, rgba(27, 58, 49, 0.45) 100%);
    opacity: 0;
    z-index: 1;
    pointer-events: none;
    transition: opacity 0.6s ease;
}

.p-news-photo__img::after {
    content: "";
    position: absolute;
    top: 1.2rem;
    right: 1.2rem;
    width: 3.2rem;
    height: 3.2rem;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, 0.55);
    background: rgba(255, 255, 255, 0.18);
    backdrop-filter: blur(4px);
    opacity: 0;
    transform: scale(0.6) rotate(-20deg);
    z-index: 1;
    pointer-events: none;
    transition:
        opacity 0.4s ease,
        transform 0.5s cubic-bezier(0.34, 1.4, 0.64, 1);
}

.p-news-photo__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    clip-path: circle(0% at 50% 42%);
    transform: scale(1.16);
    transition:
        clip-path 2s cubic-bezier(0.22, 1, 0.36, 1),
        transform 2s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-news-photo__card.is-show .p-news-photo__img img {
    clip-path: circle(140% at 50% 42%);
    transform: scale(1);
    transition-delay: 0.08s;
}

.p-news-photo__body {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    gap: var(--gap-unit);
    padding: calc(var(--gap-unit)*2.5) calc(var(--gap-unit)*2.75) calc(var(--gap-unit)*3);
    background-color: var(--bg-white-color);
}

.p-news-photo__tag {
    display: inline-flex;
    align-self: flex-start;
    padding: 0.1em 0.7em;
    margin-left: -0.35em;
    font-size: var(--font-size12);
    font-weight: 700;
    line-height: 1.9;
    letter-spacing: 0.04em;
    color: #159A57;
    border-radius: 999px;
    background-color: transparent;
    opacity: 0;
    transform: translate3d(0, 1rem, 0);
    transition:
        opacity 0.45s ease,
        transform 0.55s cubic-bezier(0.22, 1, 0.36, 1),
        background-color 0.35s ease,
        color 0.35s ease;
}

.p-news-photo__card.is-show .p-news-photo__tag {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition-delay: 0.28s;
}

.p-news-photo__title {
    position: relative;
    display: inline-block;
    width: fit-content;
    max-width: 100%;
    font-size: var(--font-size24);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.5;
    color: #1B3A31;
    letter-spacing: 0.02em;
    opacity: 0;
    transform: translate3d(0, 1.2rem, 0);
    transition:
        opacity 0.45s ease,
        transform 0.55s cubic-bezier(0.22, 1, 0.36, 1),
        color 0.35s ease;
}

.p-news-photo__card.is-show .p-news-photo__title {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition-delay: 0.38s;
}

.p-news-photo__txt {
    font-size: var(--font-size16);
    line-height: 2;
    opacity: 0;
    transform: translate3d(0, 1.2rem, 0);
    transition:
        opacity 0.45s ease,
        transform 0.55s cubic-bezier(0.22, 1, 0.36, 1),
        color 0.35s ease;
}

.p-news-photo__card.is-show .p-news-photo__txt {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition-delay: 0.48s;
}

@media (hover: hover) {
    .p-news-photo__card.is-show:hover {
        transform: translate3d(0, -0.7rem, 0);
        border-color: #B8D9C8;
        box-shadow: 0 1.8rem 4.8rem rgba(24, 47, 40, 0.14);
    }

    .p-news-photo__card.is-show:hover::before {
        transform: scaleX(1);
    }

    .p-news-photo__card.is-show:hover::after {
        border-color: rgba(21, 154, 87, 0.22);
        box-shadow: inset 0 0 0 1px rgba(21, 154, 87, 0.08);
    }

    .p-news-photo__card.is-show:hover .p-news-photo__img::before {
        opacity: 1;
    }

    .p-news-photo__card.is-show:hover .p-news-photo__img::after {
        opacity: 1;
        transform: scale(1) rotate(0deg);
    }

    .p-news-photo__card.is-show:hover .p-news-photo__img img {
        transform: scale(1.08);
        transition-delay: 0s;
        transition-duration: 0.7s;
    }

    .p-news-photo__card.is-show:hover .p-news-photo__tag {
        color: #0F7A44;
        background-color: #E5F4EC;
    }

    .p-news-photo__card.is-show:hover .p-news-photo__title {
        color: #159A57;
    }

    .p-news-photo__card.is-show:hover .p-news-photo__txt {
        color: #3A5249;
    }
}

.p-news-photo__cta {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: calc(var(--gap-unit)*4);
    padding: calc(var(--gap-unit)*3.75) calc(var(--gap-unit)*4.25);
    background-color: var(--bg-white-color);
    border: 1px solid #E0EBE4;
    box-shadow: 0 0.4rem 2rem rgba(24, 58, 50, 0.04);
    margin-top: calc(var(--gap-unit)*5);
}

.p-news-photo__cta-text {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    gap: var(--gap-unit);
}

.p-news-photo__cta-title {
    font-size: var(--font-size30);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.5;
    color: #1B3A31;
    letter-spacing: 0.02em;
}

.p-news-photo__cta-txt {
    font-size: var(--font-size16);
    line-height: 2;
}

.p-news-photo__cta-btn {
    position: relative;
    z-index: 1;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: calc(var(--gap-unit)*1.25);
    flex-shrink: 0;
    padding: calc(var(--gap-unit)*1.875) calc(var(--gap-unit)*2.25);
    font-size: var(--font-size14);
    font-weight: 700;
    line-height: 1.9;
    color: #183A32;
    background-color: var(--bg-white-color);
    border: 1px solid #69A78A;
    overflow: hidden;
    transition:
        color 0.35s ease,
        border-color 0.35s ease,
        box-shadow 0.4s ease,
        transform 0.4s cubic-bezier(0.34, 1.4, 0.64, 1);
}

.p-news-photo__cta-btn::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(105deg, #159A57 0%, #1B3A31 100%);
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform 0.45s cubic-bezier(0.77, 0, 0.175, 1);
    z-index: 0;
}

.p-news-photo__cta-icon,
.p-news-photo__cta-label,
.p-news-photo__cta-arrow {
    position: relative;
    z-index: 1;
}

.p-news-photo__cta-icon {
    display: flex;
    width: 2.4rem;
    height: 2.4rem;
    transition: transform 0.4s cubic-bezier(0.34, 1.4, 0.64, 1);
}

.p-news-photo__cta-icon img {
    width: 100%;
    height: 100%;
}

.p-news-photo__cta-icon svg path {
    transition: stroke 0.35s ease, fill 0.35s ease;
}

.p-news-photo__cta-label {
    transition: letter-spacing 0.35s ease;
}

.p-news-photo__cta-arrow {
    display: inline-flex;
    line-height: 1;
    transition: transform 0.4s cubic-bezier(0.34, 1.4, 0.64, 1);
}

@media (hover: hover) {
    .p-news-photo__cta-btn:hover {
        color: var(--bg-white-color);
        border-color: #159A57;
        box-shadow: 0 1rem 2.4rem rgba(21, 154, 87, 0.28);
        transform: translate3d(0, -0.2rem, 0);
    }

    .p-news-photo__cta-btn:hover::before {
        transform: scaleX(1);
    }

    .p-news-photo__cta-btn:hover .p-news-photo__cta-icon {
        transform: rotate(-8deg) scale(1.08);
    }

    .p-news-photo__cta-btn:hover .p-news-photo__cta-icon svg path[stroke] {
        stroke: #fff;
    }

    .p-news-photo__cta-btn:hover .p-news-photo__cta-icon svg path[fill] {
        fill: #fff;
    }

    .p-news-photo__cta-btn:hover .p-news-photo__cta-label {
        letter-spacing: 0.06em;
    }

    .p-news-photo__cta-btn:hover .p-news-photo__cta-arrow {
        transform: translate3d(0.4rem, 0, 0);
    }
}

@media (max-width: 768px) {
    .p-news-photo__inner {
        padding: 0;
    }

    .p-news-photo__list {
        gap: calc(var(--gap-unit)*1.5);
    }

    .p-news-photo__body {
        padding: calc(var(--gap-unit)*2.25) calc(var(--gap-unit)*2.25) calc(var(--gap-unit)*2.5);
    }

    .p-news-photo__title {
        font-size: var(--font-size22);
    }

    .p-news-photo__txt {
        font-size: var(--font-size14);
        line-height: 1.8;
    }

    .p-news-photo__cta {
        padding: calc(var(--gap-unit)*3.25) calc(var(--gap-unit)*3.5);
    }

    .p-news-photo__cta-title {
        font-size: var(--font-size22);
    }

    .p-news-photo__cta-txt {
        font-size: var(--font-size14);
    }
}

@media (max-width: 450px) {
    .p-news-photo__list {
        flex-direction: column;
        gap: calc(var(--gap-unit)*2);
    }

    .p-news-photo__img {
        aspect-ratio: 3/2;
    }

    .p-news-photo__body {
        padding: calc(var(--gap-unit)*2.5) calc(var(--gap-unit)*2.75) calc(var(--gap-unit)*3);
    }

    .p-news-photo__title {
        font-size: var(--font-size24);
    }

    .p-news-photo__txt {
        font-size: var(--font-size16);
    }

    .p-news-photo__cta {
        flex-direction: column;
        gap: calc(var(--gap-unit)*3);
        padding: calc(var(--gap-unit)*3.5) calc(var(--gap-unit)*3);
        margin-top: calc(var(--gap-unit)*5);
    }

    .p-news-photo__cta-txt {
        font-size: var(--font-size15);
    }

    .p-news-photo__cta-title {
        font-size: var(--font-size24);
    }

    .p-news-photo__cta-btn {
        margin-left: auto;
    }
}




/* -------page security sign------- */
.p-security-sign {
    position: relative;
    background: linear-gradient(180deg, rgba(232, 246, 239, 0.36) 0%, rgba(255, 255, 255, 0.58) 100%);
}

.p-security-sign__content {
    position: relative;
    display: flex;
    justify-content: center;
    padding-bottom: calc(var(--gap-unit)*5);
}

.p-security-sign__img {
    display: flex;
    width: 75%;
    padding: 0;
    margin: 0;
    background-color: var(--bg-white-color);
    border: 1px solid #37B18E50;
    cursor: zoom-in;
    transition: box-shadow 0.35s ease, border-color 0.35s ease, transform 0.35s ease;
}

.p-security-sign__img:hover {
    border-color: #159A57;
    box-shadow: 0 1.2rem 3.2rem rgba(24, 58, 50, 0.12);
    transform: translate3d(0, -0.2rem, 0);
}

.p-security-sign__img img {
    width: 100%;
    pointer-events: none;
}

.p-security-sign-lightbox {
    position: fixed;
    inset: 0;
    z-index: 2000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: calc(var(--gap-unit)*3);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.35s linear, visibility 0s linear 0.35s;
}

.p-security-sign-lightbox.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transition-delay: 0s;
}

.p-security-sign-lightbox__bg {
    position: absolute;
    inset: 0;
    background-color: rgba(24, 58, 50, 0.72);
    backdrop-filter: blur(4px);
    cursor: zoom-out;
}

.p-security-sign-lightbox__dialog {
    position: relative;
    z-index: 1;
    width: min(96rem, 100%);
    max-height: calc(100vh - 4rem);
    padding: calc(var(--gap-unit)*2);
    background-color: var(--bg-white-color);
    box-shadow: 0 2rem 6rem rgba(0, 0, 0, 0.28);
    overflow: auto;
    transform: scale(0.92) translateY(1.2rem);
    opacity: 0;
    transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.35s linear;
}

.p-security-sign-lightbox.is-open .p-security-sign-lightbox__dialog {
    transform: scale(1) translateY(0);
    opacity: 1;
}

.p-security-sign-lightbox__img {
    display: block;
    width: 100%;
    height: auto;
}

.p-security-sign-lightbox__close {
    position: absolute;
    top: 0.8rem;
    right: 0.8rem;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3.6rem;
    height: 3.6rem;
    font-size: 2.4rem;
    line-height: 1;
    color: #1B3A31;
    background-color: rgba(255, 255, 255, 0.92);
    border: 1px solid #DDE9E2;
    cursor: pointer;
    transition: color 0.3s linear, background-color 0.3s linear;
}

.p-security-sign-lightbox__close:hover {
    color: var(--bg-white-color);
    background-color: #159A57;
    border-color: #159A57;
}

@media (max-width: 768px) {
    .p-security-sign__img {
        width: 80%;
    }
}

@media (max-width: 450px) {
    .p-security-sign__img {
        width: 100%;
    }
}
















/* ----------footer style---------- */
.l-footer {
    position: relative;
    background-color: var(--bg-white-color);
}

.l-footer__inner {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*5);
    padding: calc(var(--gap-unit)*9) calc(var(--gap-unit)*10);
    padding-bottom: calc(var(--gap-unit)*3);
}

.l-footer__info {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: calc(var(--gap-unit)*6.5);
    padding: 0 12rem;
    padding-bottom: calc(var(--gap-unit)*1.5);
}

.l-footer__logo {
    position: relative;
    display: flex;
    width: 54%;
    padding: 0 calc(var(--gap-unit)*3.5);
    padding-bottom: calc(var(--gap-unit)*4.5);
}

.l-footer__logo::before {
    content: "";
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 62%;
    height: 2px;
    background-color: #1F2724B8;
    transition:
        width 0.55s cubic-bezier(0.22, 1, 0.36, 1),
        background-color 0.4s ease,
        height 0.4s ease;
}

.l-footer__logo-link {
    display: flex;
    align-items: center;
    gap: calc(var(--gap-unit)*2.5);
}

.l-footer__logo-img {
    display: flex;
    width: 8rem;
    transition: transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);
}

.l-footer__logo-img img {
    width: 100%;
}

.l-footer__logo-txt {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*2.5);
    padding-top: calc(var(--gap-unit)*3);
    padding-bottom: calc(var(--gap-unit));
}

.l-footer__logo-txt-ja {
    font-size: var(--font-size28);
    font-family: var(--fontT);
    font-weight: 800;
    line-height: 1.7;
    letter-spacing: .02em;
    color: var(--bg-blackblue-color);
    transition: color 0.35s ease, letter-spacing 0.55s cubic-bezier(0.22, 1, 0.36, 1);
}

.l-footer__logo-txt-en {
    font-size: var(--font-size12);
    font-family: var(--fontG);
    line-height: 1.9;
    color: #1F27248F;
    letter-spacing: .28em;
    padding-left: .3em;
    transition: color 0.35s ease, letter-spacing 0.55s cubic-bezier(0.22, 1, 0.36, 1);
}

.l-footer__address {
    font-size: var(--font-size14);
    line-height: 2;
    color: #1F2724;
    letter-spacing: 1px;
}

.l-footer__menu {
    display: flex;
    justify-content: center;
    gap: calc(var(--gap-unit)*2.5);
    padding: calc(var(--gap-unit)*3.5) calc(var(--gap-unit)*3);
    border: solid #183A3229;
    border-width: 1px 0;
}

.l-footer__sns {
    display: flex;
    width: 32%;
}

.l-footer__sns-link {
    position: relative;
    flex: 1;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: calc(var(--gap-unit)*2.25);
    font-size: var(--font-size18);
    font-weight: bold;
    color: var(--bg-blackblue-color);
    line-height: 1.5;
    padding: var(--gap-unit) calc(var(--gap-unit)*3);
    overflow: hidden;
    isolation: isolate;
    transition: color 0.35s ease;
}

.l-footer__sns-link::before {
    content: "";
    position: absolute;
    inset: 12% 8%;
    border-radius: 999px;
    background: radial-gradient(circle at 30% 40%, rgba(55, 177, 142, 0.18) 0%, rgba(55, 177, 142, 0.05) 45%, transparent 70%);
    opacity: 0;
    transform: scale(0.7);
    transition:
        opacity 0.45s ease,
        transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);
    z-index: -1;
    pointer-events: none;
}

.l-footer__sns-link:last-child {
    border-left: 1px solid #183A3238;
}

.l-footer__sns-icon {
    display: flex;
    width: 3rem;
    transition: transform 0.55s cubic-bezier(0.34, 1.4, 0.64, 1);
}

.l-footer__sns-icon img {
    width: 100%;
}

.l-footer__sns-txt {
    position: relative;
    transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

.l-footer__menu-list {
    flex: 1;
    display: flex;
    gap: calc(var(--gap-unit)*2.5);
}

.l-footer__menu-item {
    flex: 1;
}

.l-footer__menu-link {
    position: relative;
    z-index: 1;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: calc(var(--gap-unit)*2.5);
    width: 100%;
    height: 100%;
    padding: calc(var(--gap-unit)*2.2);
    border: 1px solid #183A324D;
    overflow: hidden;
    color: #183A32;
    transition:
        color 0.35s ease,
        border-color 0.35s ease,
        box-shadow 0.4s ease;
}

.l-footer__menu-link::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    width: 0;
    background: linear-gradient(105deg, #159A57 0%, #1B3A31 100%);
    transition: width 0.45s cubic-bezier(0.77, 0, 0.175, 1);
    z-index: 0;
    pointer-events: none;
}

.l-footer__link-icon,
.l-footer__link-txt,
.l-footer__link-arrow {
    position: relative;
    z-index: 1;
}

.l-footer__link-icon {
    display: flex;
    width: 3rem;
}

.l-footer__link-icon svg {
    width: 100%;
}

.l-footer__link-icon svg path {
    transition: stroke 0.35s ease, fill 0.35s ease;
}

.l-footer__link-txt {
    font-size: var(--font-size18);
    font-weight: bold;
    line-height: 1.6;
    color: inherit;
    padding-bottom: .2rem;
    transition: letter-spacing 0.35s ease;
}

.l-footer__link-arrow {
    display: flex;
    width: .7rem;
    margin-left: 3px;
}

.l-footer__link-arrow svg {
    width: 100%;
}

.l-footer__link-arrow svg path {
    transition: fill 0.35s ease;
}

.l-footer__nav {
    position: relative;
    padding: calc(var(--gap-unit)*3);
}

.l-footer__nav-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: calc(var(--gap-unit)*1.5) calc(var(--gap-unit)*3);
}

.l-footer__nav-link {
    position: relative;
    display: flex;
    align-items: center;
    gap: calc(var(--gap-unit)*1.25);
    font-size: var(--font-size14);
    line-height: 1.9;
    color: #4F625A;
    transition:
        color 0.3s ease,
        letter-spacing 0.45s cubic-bezier(0.22, 1, 0.36, 1),
        transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

.l-footer__nav-link::before {
    content: "";
    display: flex;
    flex-shrink: 0;
    width: calc(var(--gap-unit)*.7);
    height: calc(var(--gap-unit)*.7);
    background-color: #B8D3DD;
    border-radius: 50%;
    transition:
        background-color 0.35s ease,
        transform 0.5s cubic-bezier(0.34, 1.4, 0.64, 1),
        box-shadow 0.45s ease;
}

.l-footer__nav-link::after {
    content: "";
    position: absolute;
    left: calc(var(--gap-unit)*2);
    right: 0;
    bottom: 0.15em;
    height: 1px;
    background-color: #37B18E;
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
    pointer-events: none;
}

.l-footer__btm {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: calc(var(--gap-unit)*2.5);
}

.l-footer__btm-link {
    position: relative;
    font-size: var(--font-size12);
    color: #71857C;
    line-height: 1;
    letter-spacing: .5px;
    transition: color 0.3s ease;
}

.l-footer__btm-link::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -0.35em;
    width: 100%;
    height: 1px;
    background-color: currentColor;
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

.l-footer__copy {
    font-size: var(--font-size12);
    line-height: 1;
    color: #9AA9A2;
    letter-spacing: .18em;
}

@media (hover: hover) {
    .l-footer__logo:has(.l-footer__logo-link:hover)::before {
        width: 88%;
        background-color: #37B18E;
    }

    .l-footer__logo-link:hover .l-footer__logo-txt-ja {
        color: #159A57;
    }

    .l-footer__logo-link:hover .l-footer__logo-txt-en {
        color: #69A78A;
    }

    .l-footer__sns-link:hover {
        color: #159A57;
    }

    .l-footer__sns-link:hover::before {
        opacity: 1;
        transform: scale(1);
    }

    .l-footer__sns-link:hover .l-footer__sns-icon {
        transform: rotate(-8deg);
    }

    .l-footer__sns-link:hover .l-footer__sns-txt {
        transform: translate3d(0.2rem, 0, 0);
    }

    .l-footer__menu-link:hover {
        color: var(--bg-white-color);
        border-color: #159A57;
        box-shadow: 0 1rem 2.4rem rgba(21, 154, 87, 0.28);
    }

    .l-footer__menu-link:hover::before {
        width: 100%;
    }

    .l-footer__menu-link:hover .l-footer__link-icon svg path[stroke] {
        stroke: #fff;
    }

    .l-footer__menu-link:hover .l-footer__link-icon svg path[fill] {
        fill: #fff;
    }

    .l-footer__menu-link:hover .l-footer__link-txt {
        letter-spacing: 0.06em;
    }

    .l-footer__menu-link:hover .l-footer__link-arrow svg path {
        fill: #fff;
    }

    .l-footer__nav-link:hover {
        color: #159A57;
        letter-spacing: 0.06em;
        transform: translate3d(0.15rem, 0, 0);
    }

    .l-footer__nav-link:hover::before {
        background-color: #37B18E;
        transform: scale(1.55);
        box-shadow: 0 0 0 6px rgba(55, 177, 142, 0.18);
    }

    .l-footer__nav-link:hover::after {
        transform: scaleX(1);
    }

    .l-footer__btm-link:hover {
        color: #159A57;
    }

    .l-footer__btm-link:hover::after {
        transform: scaleX(1);
    }
}

@media (max-width: 768px) {
    .l-footer__inner {
        padding: calc(var(--gap-unit)*4) var(--margin);
        padding-top: calc(var(--gap-unit)*11);
    }

    .l-footer__info {
        flex-direction: column;
        gap: calc(var(--gap-unit)*4);
        padding: 0;
    }

    .l-footer__logo {
        width: 75%;
        padding: 0;
    }

    .l-footer__logo-link {
        gap: calc(var(--gap-unit)*3);
    }

    .l-footer__logo::before {
        display: none;
    }

    .l-footer__logo-txt-ja {
        font-size: var(--font-size24);
    }

    .l-footer__logo-txt-en {
        font-size: 1.1rem;
    }

    .l-footer__logo-txt {
        padding: 0;
        gap: calc(var(--gap-unit)*1);
    }

    .l-footer__address {
        text-align: center;
        font-weight: 500;
    }

    .l-footer__menu {
        flex-direction: column;
        align-items: center;
        padding: calc(var(--gap-unit)*3);
    }

    .l-footer__menu-list {
        width: 100%;
    }

    .l-footer__sns {
        width: 75%;
    }

    .l-footer__sns-link {
        font-size: var(--font-size16);
        gap: calc(var(--gap-unit)*2);
    }

    .l-footer__menu-link {
        gap: calc(var(--gap-unit)*1.5);
    }

    .l-footer__link-txt {
        font-size: var(--font-size16);
    }

    .l-footer__link-icon {
        width: 2.6rem;
    }

    .l-footer__nav {
        padding: var(--gap-unit) calc(var(--gap-unit)*2);
    }
}

@media (max-width: 450px) {
    .l-footer__inner {
        gap: calc(var(--gap-unit)*3);
    }

    .l-footer__logo {
        width: 100%;
        justify-content: center;
    }

    .l-footer__logo-link {
        justify-content: center;
        gap: calc(var(--gap-unit)*2);
    }

    .l-footer__logo-img {
        width: 7.5rem;
    }

    .l-footer__address {
        font-size: var(--font-size15);
    }

    .l-footer__menu {
        padding: 0;
        border: none;
    }

    .l-footer__menu-list {
        display: none;
    }

    .l-footer__sns-txt {
        display: none;
    }

    .l-footer__sns {
        width: auto;
        gap: calc(var(--gap-unit)*2.5);
    }

    .l-footer__sns-link {
        padding: 0;
    }

    .l-footer__sns-icon {
        width: 4.5rem;
    }

    .l-footer__sns-link:last-child {
        border: none;
    }

    .l-footer__nav {
        display: none;
    }

    .l-footer__btm {
        justify-content: center;
        margin-top: calc(var(--gap-unit));
    }

    .l-footer__btm-list {
        display: none;
    }

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

/*#region page loading / transition (mamiya-style) */
.p-pageTrans {
    width: 100vw;
    height: 100vh;
    background: #fff;
    overflow: hidden;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 10000;
    pointer-events: none;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.6s 0.2s, visibility 0.6s 0.2s;
}

.loading-on .p-pageTrans {
    display: none;
}

.p-pageTransRipple {
    width: 100vh;
    max-width: 100vw;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 1;
    opacity: 0;
    transition: opacity 0.4s;
}

.p-pageTransRipple__inner {
    width: 100%;
    padding: 100% 0 0;
    position: relative;
    transform: scale(0);
    animation: pageTransitionRippleEffect 1.8s cubic-bezier(0.27, 0.65, 0.5, 0.86) backwards;
    pointer-events: none;
    animation-play-state: paused;
}

.p-pageTransRipple__item {
    width: 100%;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.p-pageTransRipple__item--2 {
    width: 32%;
}

.p-pageTransRipple__item::before {
    content: "";
    display: block;
    width: 100%;
    padding: 100% 0 0;
    border-radius: 50%;
    background: radial-gradient(
        rgba(255, 255, 255, 0) 0%,
        rgba(255, 255, 255, 0) 43.35%,
        rgba(105, 167, 138, 0.55) 59.74%,
        rgba(255, 255, 255, 0) 70%
    );
    opacity: 0.6;
}

@keyframes pageTransitionRippleEffect {
    0% {
        opacity: 1;
        transform: scale(0.4);
    }
    100% {
        opacity: 0;
        transform: scale(1.8);
    }
}

.p-pageTrans.is-loading,
.p-pageTrans.is-loading.is-enter {
    opacity: 1;
    visibility: visible;
    transition-duration: 0.3s;
    transition-delay: 0s;
}

.p-pageTrans.is-leave,
.p-pageTrans.is-leave.is-done {
    opacity: 1;
    visibility: visible;
    transition-duration: 0.3s;
    transition-delay: 0s;
}

.p-pageTrans.is-done .p-pageTransRipple {
    opacity: 1;
}

.p-pageTrans.is-done .p-pageTransRipple__inner {
    animation-play-state: running;
}

.p-pageTrans.is-done {
    opacity: 0;
    visibility: hidden;
    transition-duration: 0.6s;
    transition-delay: 0.6s;
}

.p-pageTrans.is-reload,
.p-pageTrans.is-back,
.p-pageTrans.is-reload.is-loading.is-enter,
.p-pageTrans.is-back.is-loading.is-enter {
    opacity: 0;
    visibility: hidden;
    transition-duration: 0s;
    transition-delay: 0s;
}

/* --- subpage enter: header + lower heading --- */
/* Keep white cover up from first paint until is-done (prevents FOUC) */
html.page-enter-on .p-pageTrans:not(.is-done):not(.is-leave):not(.is-reload):not(.is-back) {
    opacity: 1;
    visibility: visible;
    transition-duration: 0s;
    transition-delay: 0s;
}

.page-enter-on .l-header {
    opacity: 0;
    visibility: hidden;
    transform: translate3d(0, -1.25rem, 0);
    transition:
        opacity 0.7s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.9s cubic-bezier(0.53, 0.2, 0.25, 1),
        visibility 0.7s;
}

.page-enter-on .c-lower__heading::before,
.page-enter-on .c-lower__heading::after {
    opacity: 0;
    transition: opacity 0.8s cubic-bezier(0.53, 0.2, 0.25, 1);
}

.page-enter-on .c-lower__heading-inner::before {
    opacity: 0;
    transform: scale(0.94);
    transition:
        opacity 0.9s cubic-bezier(0.53, 0.2, 0.25, 1) 0.12s,
        transform 1.1s cubic-bezier(0.22, 1, 0.36, 1) 0.12s;
}

.page-enter-on .c-lower__breadcrumb {
    opacity: 0;
    visibility: hidden;
    transform: translate3d(0, 0.8rem, 0);
    transition:
        opacity 0.65s cubic-bezier(0.53, 0.2, 0.25, 1) 0.28s,
        transform 0.85s cubic-bezier(0.53, 0.2, 0.25, 1) 0.28s,
        visibility 0.65s 0.28s;
}

.page-enter-on .c-lower__title-en {
    opacity: 0;
    visibility: hidden;
    letter-spacing: 0.55em;
    transform: translate3d(0, 1.2rem, 0);
    filter: blur(6px);
    transition:
        opacity 0.7s cubic-bezier(0.53, 0.2, 0.25, 1) 0.42s,
        transform 0.95s cubic-bezier(0.22, 1, 0.36, 1) 0.42s,
        letter-spacing 1.1s cubic-bezier(0.22, 1, 0.36, 1) 0.42s,
        filter 0.9s cubic-bezier(0.53, 0.2, 0.25, 1) 0.42s,
        visibility 0.7s 0.42s;
}

.page-enter-on .c-lower__title-ja {
    opacity: 0;
    visibility: hidden;
    transform: scale(0.88) translate3d(0, 1rem, 0);
    filter: blur(12px);
    transition:
        opacity 0.85s cubic-bezier(0.65, 0.45, 0.79, 0.51) 0.58s,
        transform 1.2s cubic-bezier(0.59, 0.35, 0.78, 0.63) 0.58s,
        filter 1.1s cubic-bezier(0.65, 0.45, 0.79, 0.51) 0.58s,
        visibility 0.85s 0.58s;
}

.page-enter-on .c-lower__lead {
    opacity: 0;
    visibility: hidden;
    transform: translate3d(0, 1rem, 0);
    transition:
        opacity 0.7s cubic-bezier(0.53, 0.2, 0.25, 1) 0.85s,
        transform 0.9s cubic-bezier(0.53, 0.2, 0.25, 1) 0.85s,
        visibility 0.7s 0.85s;
}

.page-enter-on .c-lower__lead::before,
.page-enter-on .c-lower__lead::after {
    transform: scaleX(0);
    transition: transform 0.7s cubic-bezier(0.77, 0, 0.175, 1) 1s;
}

.page-enter-on .c-lower__lead::before {
    transform-origin: right center;
}

.page-enter-on .c-lower__lead::after {
    transform-origin: left center;
}

.page-enter-on.anime-start-lower .l-header {
    opacity: 1;
    visibility: visible;
    transform: translate3d(0, 0, 0);
}

.page-enter-on.anime-start-lower .c-lower__heading::before,
.page-enter-on.anime-start-lower .c-lower__heading::after {
    opacity: 1;
}

.page-enter-on.anime-start-lower .c-lower__heading-inner::before {
    opacity: 1;
    transform: scale(1);
}

.page-enter-on.anime-start-lower .c-lower__breadcrumb {
    opacity: 1;
    visibility: visible;
    transform: translate3d(0, 0, 0);
}

.page-enter-on.anime-start-lower .c-lower__title-en {
    opacity: 1;
    visibility: visible;
    letter-spacing: 0.36em;
    transform: translate3d(0, 0, 0);
    filter: blur(0);
}

.page-enter-on.anime-start-lower .c-lower__title-ja {
    opacity: 1;
    visibility: visible;
    transform: scale(1) translate3d(0, 0, 0);
    filter: blur(0);
}

.page-enter-on.anime-start-lower .c-lower__lead {
    opacity: 1;
    visibility: visible;
    transform: translate3d(0, 0, 0);
}

.page-enter-on.anime-start-lower .c-lower__lead::before,
.page-enter-on.anime-start-lower .c-lower__lead::after {
    transform: scaleX(1);
}

/* --- first visit loading (home) --- */
.p-loading {
    width: 100vw;
    height: 100vh;
    position: fixed;
    top: 0;
    left: 0;
    overflow: hidden;
    display: none;
    z-index: 10002;
    background: #fff;
    transition: opacity 1.2s, visibility 1.2s;
}

.loading-on .p-loading {
    display: block;
}

.anime-start-2 .p-loading {
    opacity: 0;
    visibility: hidden;
}

.p-loading__wave {
    width: 100vw;
    height: 30.25%;
    position: absolute;
    left: 0;
    opacity: 0.22;
    animation: loadingWaveAnimeY 4s linear 0s infinite alternate;
    animation-play-state: paused;
}

.p-loading__wave--1 { top: -13.375%; }
.p-loading__wave--2 { top: 18.75%; }
.p-loading__wave--3 { top: 51.125%; }
.p-loading__wave--4 { top: 83.375%; }

.p-loading__wave::before {
    content: "";
    display: block;
    width: 200%;
    height: 100%;
    background: #fff;
    position: absolute;
    top: 0;
    right: 0;
    animation-name: loadingWaveAnimeX1;
    animation-duration: 2s;
    animation-timing-function: cubic-bezier(0.6, 0, 0.4, 1);
    animation-iteration-count: infinite;
    animation-direction: alternate;
    animation-play-state: paused;
}

.p-loading__wave--2::before,
.p-loading__wave--4::before {
    right: auto;
    left: 0;
    animation-name: loadingWaveAnimeX2;
}

.loading-on .p-loading__wave,
.loading-on .p-loading__wave::before {
    animation-play-state: running;
}

@keyframes loadingWaveAnimeX1 {
    0% { transform: translateX(0%); }
    100% { transform: translateX(2%); }
}

@keyframes loadingWaveAnimeX2 {
    0% { transform: translateX(0%); }
    100% { transform: translateX(-2%); }
}

@keyframes loadingWaveAnimeY {
    0% { transform: translateY(0%); }
    20% { transform: translateY(-2%); }
    40%,
    60% { transform: translateY(0%); }
    80% { transform: translateY(2%); }
    100% { transform: translateY(0%); }
}

@keyframes blurInAnime {
    0% {
        filter: blur(15px);
        opacity: 0;
    }
    100% {
        filter: blur(0);
        opacity: 1;
    }
}

.loading-on .l-hero__logo {
    opacity: 0;
    transform: scale(0.76);
    perspective: 1000px;
    backface-visibility: hidden;
    transition: transform 1.4s cubic-bezier(0.59, 0.35, 0.78, 0.63);
    animation-fill-mode: forwards;
    animation-timing-function: cubic-bezier(0.65, 0.45, 0.79, 0.51);
    animation-duration: 1.2s;
}

.loading-on.anime-start-3 .l-hero__logo {
    animation-name: blurInAnime;
    transform: scale(1);
}

.l-hero .p-loadingRipple {
    width: 60%;
    max-width: 71rem;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 1;
    display: none;
    pointer-events: none;
}

.loading-on .l-hero .p-loadingRipple {
    display: block;
}

.p-loadingRipple__inner {
    width: 100%;
    padding: 100% 0 0;
    position: relative;
    transform: scale(0.6);
    transition: transform 1.6s cubic-bezier(0.27, 0.65, 0.5, 0.86);
}

.p-loadingRipple__item {
    width: 100%;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    transition: opacity 0.8s;
}

.p-loadingRipple__item--1 {
    transition-delay: 0.4s;
}

.p-loadingRipple__item--2 {
    width: 32%;
    transition-delay: 0.8s;
}

.p-loadingRipple__item::before {
    content: "";
    display: block;
    width: 100%;
    padding: 100% 0 0;
    border-radius: 50%;
    background: radial-gradient(
        rgba(255, 255, 255, 0) 0%,
        rgba(255, 255, 255, 0) 43.35%,
        rgba(105, 167, 138, 0.55) 59.74%,
        rgba(255, 255, 255, 0) 70%
    );
    opacity: 0.6;
}

.loading-on.anime-start-4 .p-loadingRipple__inner {
    transform: scale(1.8);
}

.loading-on.anime-start-4 .p-loadingRipple__item {
    opacity: 0;
}

.loading-on .u-loadingEl {
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.8s, visibility 0.8s;
}

.loading-on.anime-start-5 .u-loadingEl {
    opacity: 1;
    visibility: visible;
}

.loading-on.anime-start-5 .l-hero__scroll {
    transition-delay: 0.45s;
}

html.loading-on,
html.loading-on body {
    overflow: hidden;
}

@media (max-width: 767px) {
    .l-hero .p-loadingRipple {
        width: 90%;
    }
}

/*#region privacy*/
.p-privacy-body__inner {
    max-width: 96rem;
    margin: 0 auto;
}

.p-privacy-body__lead {
    margin: 0 0 calc(var(--gap-unit)*6);
    font-size: var(--font-size16);
    line-height: 2;
    color: #40544C;
}

.p-privacy-body__list {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*4);
}

.p-privacy-body__section {
    padding: calc(var(--gap-unit)*4) calc(var(--gap-unit)*4.5);
    background-color: #F7FAF7;
    border: 1px solid #DDE9E2;
}

.p-privacy-body__title {
    display: flex;
    align-items: center;
    gap: calc(var(--gap-unit)*2);
    margin: 0 0 calc(var(--gap-unit)*2.5);
}

.p-privacy-body__num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 4.2rem;
    height: 4.2rem;
    padding: 0 calc(var(--gap-unit)*1.2);
    font-size: var(--font-size14);
    font-weight: 700;
    letter-spacing: 0.08em;
    color: #FFFFFF;
    background-color: #37B18E;
}

.p-privacy-body__title-txt {
    font-size: var(--font-size22);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: 0.06em;
    color: #1B3A31;
}

.p-privacy-body__txt {
    font-size: var(--font-size15);
    line-height: 2;
    color: #40544C;
}

.p-privacy-body__txt p {
    margin: 0;
}

.p-privacy-body__txt p + .p-privacy-body__bullets,
.p-privacy-body__txt p + .p-privacy-body__contact {
    margin-top: calc(var(--gap-unit)*2);
}

.p-privacy-body__bullets {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*1.2);
    margin: 0;
    padding: 0;
    list-style: none;
}

.p-privacy-body__bullets li {
    position: relative;
    padding-left: calc(var(--gap-unit)*2.5);
}

.p-privacy-body__bullets li::before {
    content: "";
    position: absolute;
    top: 1.1em;
    left: 0;
    width: 0.6rem;
    height: 0.6rem;
    border-radius: 50%;
    background-color: #37B18E;
    transform: translateY(-50%);
}

.p-privacy-body__contact {
    padding: calc(var(--gap-unit)*3) calc(var(--gap-unit)*3.5);
    background-color: var(--bg-white-color);
    border: 1px solid #DDE9E2;
}

.p-privacy-body__contact a {
    color: #37B18E;
    text-decoration: underline;
    text-underline-offset: 0.2em;
}

.p-privacy-body__date {
    margin: calc(var(--gap-unit)*6) 0 0;
    font-size: var(--font-size14);
    line-height: 1.8;
    color: #667A72;
    text-align: right;
}

@media (max-width: 767px) {
    .p-privacy-body__lead {
        margin-bottom: calc(var(--gap-unit)*4);
        font-size: var(--font-size15);
    }

    .p-privacy-body__list {
        gap: calc(var(--gap-unit)*3);
    }

    .p-privacy-body__section {
        padding: calc(var(--gap-unit)*3);
    }

    .p-privacy-body__title {
        align-items: flex-start;
        gap: calc(var(--gap-unit)*1.5);
    }

    .p-privacy-body__num {
        min-width: 3.6rem;
        height: 3.6rem;
        font-size: var(--font-size12);
    }

    .p-privacy-body__title-txt {
        font-size: var(--font-size18);
    }

    .p-privacy-body__txt {
        font-size: var(--font-size14);
    }

    .p-privacy-body__contact {
        padding: calc(var(--gap-unit)*2.5);
    }

    .p-privacy-body__date {
        margin-top: calc(var(--gap-unit)*4);
        text-align: left;
    }
}
/*#endregion privacy*/

/*#region news detail*/
.p-news-detail {
    position: relative;
    background-color: var(--bg-white-color);
}

.p-news-detail__main {
    position: relative;
    background:
        radial-gradient(ellipse 70% 40% at 0% 0%, rgba(21, 154, 87, 0.05) 0%, transparent 50%),
        linear-gradient(180deg, #FFFFFF 0%, #F7FAF7 100%);
}

.p-news-detail__inner {
    max-width: 92rem;
    margin: 0 auto;
    padding: 0 6rem;
}

.p-news-detail__header {
    display: flex;
    align-items: center;
    gap: calc(var(--gap-unit)*3.5);
    padding-bottom: calc(var(--gap-unit)*4);
    border-bottom: 1px solid #DDE9E2;
}

.p-news-detail__date {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(var(--gap-unit)*.5);
    line-height: 1;
    padding-top: 0.2rem;
}

.p-news-detail__date-year {
    font-family: var(--fontT), var(--fontG), serif;
    font-size: var(--font-size24);
    font-weight: 500;
    letter-spacing: 0.1em;
    color: #159A57;
}

.p-news-detail__date-md {
    display: flex;
    align-items: baseline;
    gap: 0.4rem;
    font-family: var(--fontT), var(--fontG), serif;
    font-size: var(--font-size24);
    font-weight: 600;
    letter-spacing: 0.02em;
    color: #1B3A31;
}

.p-news-detail__date-sep {
    font-size: var(--font-size22);
    font-weight: 400;
    color: #5D9880;
    padding: 0 0.15rem;
}

.p-news-detail__date-full {
    display: none;
}

.p-news-detail__title {
    flex: 1;
    min-width: 0;
    margin: 0;
    font-size: var(--font-size32);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.55;
    letter-spacing: 0.04em;
    color: #1B3A31;
}

.p-news-detail__meta {
    display: flex;
    align-items: center;
    margin-top: calc(var(--gap-unit)*3.5);
}

.p-news-detail__cat {
    display: inline-flex;
    align-items: center;
    gap: calc(var(--gap-unit)*1.25);
    padding: calc(var(--gap-unit)*.6) calc(var(--gap-unit)*2);
    font-size: var(--font-size13, 1.3rem);
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: 0.06em;
    text-decoration: none;
    transition: opacity 0.25s ease, transform 0.25s ease;
}

.p-news-detail__cat:hover {
    opacity: 0.85;
    transform: translate3d(0.15rem, 0, 0);
}

.p-news-detail__cat-dot {
    width: 1.1rem;
    height: 1.1rem;
    border-radius: 50%;
    background-color: currentColor;
    box-shadow: 0 0 0 0.35rem rgba(21, 154, 87, 0.18);
    flex-shrink: 0;
}

.p-news-detail__cat--news {
    color: #1B6B45;
    background-color: #E5F4EC;
}

.p-news-detail__cat--news .p-news-detail__cat-dot {
    box-shadow: 0 0 0 0.35rem rgba(27, 107, 69, 0.18);
}

.p-news-detail__cat--blog {
    color: #2F6FA8;
    background-color: #E8F2FA;
}

.p-news-detail__cat--blog .p-news-detail__cat-dot {
    box-shadow: 0 0 0 0.35rem rgba(47, 111, 168, 0.18);
}

.p-news-detail__cat--recruit {
    color: #8A5A2B;
    background-color: #F6EEE4;
}

.p-news-detail__cat--recruit .p-news-detail__cat-dot {
    box-shadow: 0 0 0 0.35rem rgba(138, 90, 43, 0.18);
}

.p-news-detail__cat--sns {
    color: #6B4E9B;
    background-color: #F0EAF7;
}

.p-news-detail__cat--sns .p-news-detail__cat-dot {
    box-shadow: 0 0 0 0.35rem rgba(107, 78, 155, 0.18);
}

.p-news-detail__thumb {
    margin: calc(var(--gap-unit)*5) 0 0;
    overflow: hidden;
    border: 1px solid #DDE9E2;
    background-color: #EEF7F2;
}

.p-news-detail__thumb img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
    object-fit: cover;
}

.p-news-detail__content {
    margin-top: calc(var(--gap-unit)*5);
    font-size: var(--font-size15);
    line-height: 2.1;
    color: #263A33;
    letter-spacing: 0.03em;
}

.p-news-detail__content > *:first-child {
    margin-top: 0;
}

.p-news-detail__content > *:last-child {
    margin-bottom: 0;
}

.p-news-detail__content h2,
.p-news-detail__content h3,
.p-news-detail__content h4 {
    margin: calc(var(--gap-unit)*6.5) 0 calc(var(--gap-unit)*3);
    color: #1B3A31;
    font-weight: 700;
    letter-spacing: 0.04em;
    line-height: 1.55;
}

.p-news-detail__content h2 {
    position: relative;
    font-size: var(--font-size22);
    padding: calc(var(--gap-unit)*1.875) calc(var(--gap-unit)*2.5);
    background-color: #EEF7F2;
    border-radius: calc(var(--border-radius) * 0.5);
    border-left: 5px solid #159A57;
    overflow: hidden;
}

.p-news-detail__content h3 {
    position: relative;
    font-size: var(--font-size20);
    font-weight: 700;
    padding-bottom: calc(var(--gap-unit)*1.875);
    border-bottom: 2px solid #DDE9E2;
}

.p-news-detail__content h3::before {
    content: "";
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 10%;
    min-width: 4.8rem;
    height: 2px;
    background-color: #159A57;
}

.p-news-detail__content h4 {
    position: relative;
    font-size: var(--font-size18);
    padding-left: calc(var(--gap-unit)*2);
    border-left: 3px solid #5D9880;
}

@media (max-width: 767px) {
    .p-news-detail__content h2 {
        font-size: var(--font-size18);
        padding: calc(var(--gap-unit)*1.25) calc(var(--gap-unit)*1.5);
    }

    .p-news-detail__content h3 {
        font-size: var(--font-size18);
        padding-bottom: calc(var(--gap-unit)*1.25);
    }

    .p-news-detail__content h4 {
        font-size: var(--font-size16);
    }
}

@media (max-width: 450px) {
    .p-news-detail .c-lower__breadcrumb {
        display: block;
    }
}

.p-news-detail__content p {
    margin: 0 0 calc(var(--gap-unit)*3);
}

.p-news-detail__content a {
    color: #159A57;
    text-decoration: underline;
    text-underline-offset: 0.25em;
    transition: color 0.25s ease;
}

.p-news-detail__content a:hover {
    color: #1B3A31;
}

.p-news-detail__content ul,
.p-news-detail__content ol {
    margin: 0 0 calc(var(--gap-unit)*3);
    padding-left: calc(var(--gap-unit)*3);
}

.p-news-detail__content li + li {
    margin-top: calc(var(--gap-unit)*1);
}

.p-news-detail__content blockquote {
    position: relative;
    margin: calc(var(--gap-unit)*5) 0;
    padding: calc(var(--gap-unit)*3.5) calc(var(--gap-unit)*4);
    background-color: #F7FAF7;
    color: #1B3A31;
    font-weight: 500;
}

.p-news-detail__content blockquote p:last-child {
    margin-bottom: 0;
}

.p-news-detail__content img {
    display: block;
    max-width: 100%;
    height: auto;
    margin: calc(var(--gap-unit)*4) auto;
    border: 1px solid #DDE9E2;
}

.p-news-detail__content figure {
    margin: calc(var(--gap-unit)*4) 0;
}

.p-news-detail__content figcaption {
    margin-top: calc(var(--gap-unit)*1.5);
    font-size: var(--font-size13, 1.3rem);
    color: #667A72;
    text-align: center;
}

.p-news-detail__content table {
    width: 100%;
    margin: calc(var(--gap-unit)*4) 0;
    border-collapse: collapse;
    font-size: var(--font-size15);
}

.p-news-detail__content th,
.p-news-detail__content td {
    padding: calc(var(--gap-unit)*1.5) calc(var(--gap-unit)*2);
    border: 1px solid #DDE9E2;
    text-align: left;
}

.p-news-detail__content th {
    background-color: #F7FAF7;
    color: #1B3A31;
    font-weight: 700;
}

.p-news-detail__foot {
    display: flex;
    justify-content: center;
    margin-top: calc(var(--gap-unit)*7);
    padding-top: calc(var(--gap-unit)*4);
    border-top: 1px solid #DDE9E2;
}

.p-news-detail__back {
    display: inline-flex;
    align-items: center;
    gap: calc(var(--gap-unit)*1.5);
    padding: calc(var(--gap-unit)*2) calc(var(--gap-unit)*3.5);
    font-size: var(--font-size14);
    font-weight: 700;
    letter-spacing: 0.08em;
    color: #1B3A31;
    background-color: var(--bg-white-color);
    border: 1px solid #1B3A31;
    transition: color 0.25s ease, background-color 0.25s ease, border-color 0.25s ease;
}

.p-news-detail__back:hover {
    color: var(--bg-white-color);
    background-color: #159A57;
    border-color: #159A57;
}

.p-news-detail__back-icon {
    font-size: var(--font-size18);
    line-height: 1;
}

@media (max-width: 767px) {
    .p-news-detail__inner {
        padding: 0;
    }

    .p-news-detail__header {
        flex-direction: column;
        align-items: flex-start;
        gap: calc(var(--gap-unit)*1.5);
    }

    .p-news-detail__date {
        flex-direction: row;
        align-items: baseline;
        gap: calc(var(--gap-unit)*1.5);
        min-width: 0;
    }

    .p-news-detail__date-year,
    .p-news-detail__date-md {
        display: none;
    }

    .p-news-detail__date-full {
        display: inline;
        font-size: var(--font-size15);
        font-family: var(--fontG), serif;
        font-weight: 700;
        letter-spacing: 0.06em;
        color: #53697D;
    }

    .p-news-detail__title {
        font-size: var(--font-size28);
    }
}
/*#endregion news detail*/

/*#region contact confirm / thanks*/
.p-contact-confirm__empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(var(--gap-unit)*4);
    padding: calc(var(--gap-unit)*6) calc(var(--gap-unit)*4);
    text-align: center;
}

.p-contact-confirm__empty-txt {
    margin: 0;
    font-size: var(--font-size16);
    line-height: 2;
    color: #40544C;
}

.p-contact-confirm__value {
    margin: 0;
    font-size: var(--font-size16);
    line-height: 1.9;
    color: #1B3A31;
    word-break: break-word;
}

.p-contact-confirm__value--textarea {
    white-space: pre-wrap;
    min-height: 8rem;
}

.p-contact-confirm__actions {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: calc(var(--gap-unit)*2);
    margin-top: calc(var(--gap-unit)*5);
    padding: calc(var(--gap-unit)*3.75) 0 calc(var(--gap-unit)*1.75);
}

.p-contact-confirm__btn--back {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 24rem;
    padding: calc(var(--gap-unit)*2.5) calc(var(--gap-unit)*5);
    font-size: var(--font-size16);
    font-family: var(--fontB);
    font-weight: 700;
    letter-spacing: 0.1em;
    color: #1B3A31;
    background-color: var(--bg-white-color);
    border: 2px solid #1B3A31;
    border-radius: 10rem;
    cursor: pointer;
    transition: color 0.2s linear, background-color 0.2s linear;
}

.p-contact-confirm__btn--back:hover {
    color: var(--bg-white-color);
    background-color: #1B3A31;
}

.p-contact-confirm__btn--send {
    min-width: 24rem;
}

.p-contact-confirm .p-contact-form__submit-note,
.p-recruit-confirm .p-recruit-form__submit-note {
    margin-top: 0;
    padding-bottom: calc(var(--gap-unit)*3.75);
}

.p-recruit-confirm .p-recruit-form__content {
    padding-bottom: calc(var(--gap-unit)*2);
}

.p-contact-thanks__inner {
    max-width: 80rem;
    margin: 0 auto;
}

.p-contact-thanks__box {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(var(--gap-unit)*4);
    padding: calc(var(--gap-unit)*6) calc(var(--gap-unit)*5);
    text-align: center;
    background-color: #F7FAF7;
    border: 1px solid #DDE9E2;
}

.p-contact-thanks__txt {
    margin: 0;
    font-size: var(--font-size18);
    line-height: 2;
    color: #1B3A31;
}

.p-contact-thanks__info {
    font-size: var(--font-size15);
    line-height: 2;
    color: #40544C;
}

.p-contact-thanks__info p {
    margin: 0;
}

.p-contact-thanks__btn {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 28rem;
    padding: calc(var(--gap-unit)*2.5) calc(var(--gap-unit)*5);
    font-size: var(--font-size16);
    font-weight: 700;
    letter-spacing: 0.1em;
    color: var(--bg-white-color);
    background-color: #1B3A31;
    border: 2px solid #1B3A31;
    border-radius: 10rem;
    text-decoration: none;
    transition: color 0.2s linear, background-color 0.2s linear;
}

.p-contact-thanks__btn:hover {
    color: #1B3A31;
    background-color: var(--bg-white-color);
}

@media (max-width: 767px) {
    .p-contact-confirm__actions {
        flex-direction: column;
    }

    .p-contact-confirm__btn--back,
    .p-contact-confirm__btn--send,
    .p-contact-thanks__btn {
        width: 100%;
        min-width: 0;
    }

    .p-contact-thanks__box {
        padding: calc(var(--gap-unit)*4) calc(var(--gap-unit)*3);
    }

    .p-contact-thanks__txt {
        font-size: var(--font-size16);
    }
}
/*#endregion contact confirm / thanks*/
/*#endregion page loading / transition *//*#region var*/
:root {
    --pxunit: .8rem;
    --headerH: 9rem;
    --header-distance: 3rem;
    --fontB: 'Noto Sans JP';
    --fontT: 'Noto Serif JP';
    --fontY: 'Yu Mincho';
    --fontG: 'Georgia';
    --fontCG: 'Cormorant Garamond';
    --bg-white-color: #FFFFFF;
    --bg-black-color: #000000;
    --bg-font-color: #1F2724;
    --bg-gray-color: #EDEDEF;
    --bg-red-color: #FF0000;
    --bg-green-color: #159A57;
    --bg-blackblue-color: #183A32;
    --font-size12: 1.2rem;
    --font-size14: 1.4rem;
    --font-size15: 1.5rem;
    --font-size16: 1.6rem;
    --font-size18: 1.8rem;
    --font-size20: 2rem;
    --font-size22: 2.2rem;
    --font-size24: 2.4rem;
    --font-size26: 2.6rem;
    --font-size28: 2.8rem;
    --font-size30: 3rem;
    --font-size32: 3.2rem;
    --font-size34: 3.4rem;
    --font-size36: 3.6rem;
    --font-size38: 3.8rem;
    --font-size40: 4rem;
    --gap-unit: .8rem;
    --border-radius: .8rem;
    --margin: 16rem;
    --margin-lg: 20rem;
}
/*#endregion var*/

* {
    box-sizing: border-box;
}

html {
    font-size: calc(100vw / 144);
}

body {
    font-size: var(--font-size16);
    font-family: var(--fontB);
    font-weight: 400;
    color: var(--bg-font-color);
    line-height: 1.6;
    margin: 0;
    padding: 0;
    background-color: var(--bg-white-color);
}

html.hide-scroll,
body.hide-scroll {
    overflow: hidden;
}

.u-hx1 {
    content: "";
    height: var(--pxunit);
}

.u-hx2 {
    content: "";
    height: calc(var(--pxunit)*2);
}

.u-hx3 {
    content: "";
    height: calc(var(--pxunit)*3);
}

.u-hx4 {
    content: "";
    height: calc(var(--pxunit)*4);
}

.u-hx5 {
    content: "";
    height: calc(var(--pxunit)*5);
}

.u-hx6 {
    content: "";
    height: calc(var(--pxunit)*6);
}

.u-hx7 {
    content: "";
    height: calc(var(--pxunit)*7);
}

.u-hx8 {
    content: "";
    height: calc(var(--pxunit)*8);
}

.u-hx9 {
    content: "";
    height: calc(var(--pxunit)*9);
}

.u-hx10 {
    content: "";
    height: calc(var(--pxunit)*10);
}

.u-hx11 {
    content: "";
    height: calc(var(--pxunit)*11);
}

.u-hx12 {
    content: "";
    height: calc(var(--pxunit)*12);
}

.u-hx13 {
    content: "";
    height: calc(var(--pxunit)*13);
}

.u-hx14 {
    content: "";
    height: calc(var(--pxunit)*14);
}

.u-hx15 {
    content: "";
    height: calc(var(--pxunit)*15);
}

.u-hx16 {
    content: "";
    height: calc(var(--pxunit)*16);
}

.u-hx17 {
    content: "";
    height: calc(var(--pxunit)*17);
}

.u-hx18 {
    content: "";
    height: calc(var(--pxunit)*18);
}

.u-hx19 {
    content: "";
    height: calc(var(--pxunit)*19);
}

.u-hx20 {
    content: "";
    height: calc(var(--pxunit)*20);
}

.u-sp {
    display: none !important;
}

.u-tbs {
    display: none !important;
}

@media (max-width: 768px) {
    .u-tbh {
        display: none !important;
    }

    .u-tbs {
        display: block !important;
    }
}

@media (max-width: 450px) {
    .u-sp {
        display: block !important;
    }

    .u-pc {
        display: none !important;
    }
}

/*#endregion var*/

/*#region RESET*/
html {
    scroll-behavior: smooth;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    margin: 0px;
    padding: 0px;
    font-weight: normal;
}

p {
    margin: 0px;
    padding: 0px;
}

a {
    text-decoration: none;
    -webkit-transition: all 0.3s linear;
    -moz-transition: all 0.3s linear;
    -o-transition: all 0.3s linear;
    -ms-transition: all 0.3s linear;
    transition: all 0.3s linear;
}

a:hover,
a:focus,
a:active {
    outline: none;
    text-decoration: none;
}

input {
    -webkit-transition: all 0.3s linear;
    -moz-transition: all 0.3s linear;
    -o-transition: all 0.3s linear;
    -ms-transition: all 0.3s linear;
    transition: all 0.3s linear;
}

input:hover,
input:focus,
input:active {
    outline: none;
}

input::-webkit-input-placeholder {
    color: #333333;
}

input::-moz-placeholder {
    color: #333333;
}

input:-ms-input-placeholder {
    color: #333333;
}

input:-moz-placeholder {
    color: #333333;
}

textarea::-webkit-input-placeholder {
    color: #333333;
}

textarea::-moz-placeholder {
    color: #333333;
}

textarea:-ms-input-placeholder {
    color: #333333;
}

textarea:-moz-placeholder {
    color: #333333;
}

button:focus {
    outline: 0;
}

ul {
    margin: 0px;
    padding: 0px;
}

ul li {
    list-style-type: none;
}

img {
    border: 0px;
}

strong {
    font-weight: bold;
}

/*#endregion RESET*/

/*#region animation*/
.js-brush.on {
    animation: brush01 2.4s 0.2s steps(22) forwards;
}

.js-brush {
    -webkit-mask: url("../img/brush.png");
    mask: url("../img/brush.png");
    -webkit-mask-size: 2500% 100%;
    mask-size: 2500% 100%;
    -webkit-mask-position: 0 0;
    mask-position: 0 0;
}

@keyframes brush01 {
    0% {
        -webkit-mask-position: 0 0;
        mask-position: 0 0;
    }

    100% {
        -webkit-mask-position: 100% 0;
        mask-position: 100% 0;
    }
}

/* ----- fade up ----- */
.js-fade_y {
    transform: translate(0, 2rem);
    opacity: 0;
    transition: opacity 0.5s cubic-bezier(0.53, 0.2, 0.25, 1), transform 0.8s cubic-bezier(0.53, 0.2, 0.25, 1), -webkit-transform 0.8s cubic-bezier(0.53, 0.2, 0.25, 1);
    transition-delay: 0.06s
}

.js-fade_y.on {
    opacity: 1;
    transform: translate(0, 0rem);
    --webkit-transform: translate(0, 0rem);
}

/* ------inview------ */
[data-inview] {
    mask-image: linear-gradient(270deg, transparent 35%, #000 60%, #000);
    -webkit-mask-position: 100% 0;
    mask-position: 100% 0;
    -webkit-mask-size: 250% 100%;
    mask-size: 250% 100%;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    opacity: 0
}

[data-inview].inview,
[data-inview] * {
    transition: opacity 2.5s, -webkit-mask-position 2.5s cubic-bezier(0.165, 0.84, 0.44, 1);
    transition: opacity 2.5s, mask-position 2.5s cubic-bezier(0.165, 0.84, 0.44, 1);
    transition: opacity 2.5s, mask-position 2.5s cubic-bezier(0.165, 0.84, 0.44, 1), -webkit-mask-position 2.5s cubic-bezier(0.165, 0.84, 0.44, 1);
    -webkit-mask-position: 0 0;
    mask-position: 0 0;
    opacity: 1;
}

.js-brush.on {
    animation: brush01 2.4s 0.2s steps(22) forwards;
}

.js-brush {
    -webkit-mask: url("../img/brush.png");
    mask: url("../img/brush.png");
    -webkit-mask-size: 2500% 100%;
    mask-size: 2500% 100%;
    -webkit-mask-position: 0 0;
    mask-position: 0 0;
}

@keyframes brush01 {
    0% {
        -webkit-mask-position: 0 0;
        mask-position: 0 0;
    }

    100% {
        -webkit-mask-position: 100% 0;
        mask-position: 100% 0;
    }
}

/* ----- fade up ----- */
.js-fade_y {
    transform: translate(0, 2rem);
    opacity: 0;
    transition: opacity 0.5s cubic-bezier(0.53, 0.2, 0.25, 1), transform 0.8s cubic-bezier(0.53, 0.2, 0.25, 1), -webkit-transform 0.8s cubic-bezier(0.53, 0.2, 0.25, 1);
    transition-delay: 0.06s
}

.js-fade_y.on {
    opacity: 1;
    transform: translate(0, 0rem);
    --webkit-transform: translate(0, 0rem);
}

/* ------inview------ */
[data-inview] {
    mask-image: linear-gradient(270deg, transparent 35%, #000 60%, #000);
    -webkit-mask-position: 100% 0;
    mask-position: 100% 0;
    -webkit-mask-size: 250% 100%;
    mask-size: 250% 100%;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    opacity: 0
}

[data-inview].inview,
[data-inview] * {
    transition: opacity 2.5s, -webkit-mask-position 2.5s cubic-bezier(0.165, 0.84, 0.44, 1);
    transition: opacity 2.5s, mask-position 2.5s cubic-bezier(0.165, 0.84, 0.44, 1);
    transition: opacity 2.5s, mask-position 2.5s cubic-bezier(0.165, 0.84, 0.44, 1), -webkit-mask-position 2.5s cubic-bezier(0.165, 0.84, 0.44, 1);
    -webkit-mask-position: 0 0;
    mask-position: 0 0;
    opacity: 1;
}


/* ----- text blur ----- */
.js-animation_txt span {
    font-size: inherit;
    font-family: inherit;
    line-height: inherit;
    font-weight: inherit;
}

.js-animation_txt>span {
    display: block;
    color: var(--bg-white-color);
}
.js-animation_txt span {
    font-size: inherit;
    font-family: inherit;
    line-height: inherit;
    font-weight: inherit;
}

.js-animation_txt>span {
    display: block;
    color: var(--bg-white-color);
}

/* -------clip path----- */
.js-clip_path {
    clip-path: inset(0% 100% 0% 0%);
    transition: clip-path 1.2s cubic-bezier(0.165, 0.84, 0.44, 1);
}

.js-clip_path.on {
    clip-path: inset(0% 0% 0% 0%);
}


/* ----- js title ----- */
.js-title-en {
    opacity: 0;
    transform: translate3d(0, 1.4rem, 0);
}

.js-title.is-show .js-title-en {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.7s cubic-bezier(0.53, 0.2, 0.25, 1);
}

.js-title-char {
    display: inline-block;
    opacity: 0;
    transform: translate3d(0, 0.6em, 0);
}

.js-title.is-show .js-title-char {
    animation: titleCharIn 0.55s cubic-bezier(0.53, 0.2, 0.25, 1) forwards;
}

@keyframes titleCharIn {
    to {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

.js-title.has-line::before {
    transform: scaleX(0);
    transform-origin: left center;
}

.js-title.has-line.is-show::before {
    transform: scaleX(1);
    transition: transform 0.7s cubic-bezier(0.53, 0.2, 0.25, 1) var(--title-line-delay, 0.28s);
}

/*#endregion animation*/

/*#region layout*/
.wrapper {
    position: relative;
    background: linear-gradient(180deg, #FBFDFB 0%, #F6FBF8 45%, #FFFFFF 100%);
}

.l-container {
    padding: 0 var(--margin);
}

.c-lower__heading {
    position: relative;
}

.c-lower__heading::before,
.c-lower__heading::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.c-lower__heading::before {
    background: radial-gradient(55.06% 158.17% at 52% 48%, rgba(255, 255, 255, 0.74) 0%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0) 72%),
        linear-gradient(90deg, rgba(248, 252, 248, 0.94) 0%, rgba(248, 252, 248, 0.84) 42%, rgba(248, 252, 248, 0.64) 100%);
}

.c-lower__heading::after {
    background: radial-gradient(82.59% 237.25% at 78% 22%, rgba(55, 177, 142, 0.16) 0%, rgba(55, 177, 142, 0) 19%),
        linear-gradient(93.51deg, rgba(24, 58, 50, 0.03) 0%, rgba(24, 58, 50, 0.03) 0.07%, rgba(24, 58, 50, 0) 0.07%, rgba(24, 58, 50, 0) 0.53%);
}

.c-lower__heading-inner {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(var(--gap-unit)*8.5);
    padding: calc(var(--gap-unit)*1.5) calc(var(--gap-unit)*1.25);
    padding-top: calc(var(--header-distance) + var(--headerH) + var(--gap-unit)*7);
    padding-bottom: calc(var(--gap-unit)*10.7);
    z-index: 2;
}

.c-lower__heading-inner::before {
    content: "";
    position: absolute;
    inset: calc(var(--gap-unit)*1.5) calc(var(--gap-unit)*1.25);
    border: 1px solid #37B18E2E;
    pointer-events: none;
}

.c-lower__breadcrumb {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*0.5);
    width: 100%;
    padding: 0 var(--margin);
}

.c-lower__breadcrumb-list {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    gap: var(--gap-unit);
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    -ms-overflow-style: none;
    scrollbar-width: none;
}

.c-lower__breadcrumb-link {
    font-size: var(--font-size12);
    line-height: 1.9;
    color: #183A32A6;
}

.c-lower__breadcrumb-separator {
    font-size: var(--font-size14);
    line-height: 1;
    color: #183A32A6;
}

.c-lower__heading-main {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(var(--gap-unit)*3);
}

.c-lower__title {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(var(--gap-unit)*2.25);
    text-align: center;
}

.c-lower__title-en {
    font-size: var(--font-size14);
    font-family: var(--fontG);
    line-height: 1.9;
    color: #183A32A6;
    letter-spacing: .36em;
}

.c-lower__title-ja {
    font-size: 4.2rem;
    font-family: var(--fontT);
    font-weight: bold;
    color: var(--bg-blackblue-color);
    line-height: 1.9;
    letter-spacing: .1em;
}

.c-lower__lead {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: calc(var(--gap-unit)*2.25);
    font-size: var(--font-size14);
    color: #6A7C74;
    line-height: 1.9;
    letter-spacing: 0.18em;
    text-align: center;
}

.c-lower__lead p {
    flex: 1;
}

.c-lower__lead::before,
.c-lower__lead::after {
    content: "";
    display: block;
    width: 4.2rem;
    height: 1px;
    background-color: #37B18E;
}

@media (max-width: 768px) {
    .c-lower__heading-inner {
        gap: calc(var(--gap-unit)*7.5);
        padding-inline: var(--margin);
        padding-top: calc(var(--header-distance) + var(--headerH) + var(--gap-unit)*10);
    }

    .c-lower__breadcrumb {
        display: none;
    }

    .c-lower__title-ja {
        font-size: var(--font-size36);
    }

    .c-lower__title-en {
        font-size: var(--font-size12);
    }
}

@media (max-width: 450px) {
    .c-lower__heading-inner::before {
        inset: calc(var(--gap-unit)*1.25) calc(var(--gap-unit)*1);
    }

    .c-lower__heading-main {
        gap: calc(var(--gap-unit)*2.5);
    }

    .c-lower__title {
        gap: calc(var(--gap-unit)*2);
    }

    .c-lower__title-ja {
        font-size: var(--font-size34);
    }

    .c-lower__lead {
        font-size: 1.3rem;
        gap: calc(var(--gap-unit)*1.5);
    }

    .c-lower__lead::before,
    .c-lower__lead::after {
        width: 3.6rem;
    }
}

/* -------breadcrumb------- */
.c-breadcrumb {
    position: relative;
    padding: calc(var(--gap-unit)*2.5) var(--margin);
    background-color: #173654;
}

.c-breadcrumb__list {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    gap: calc(var(--gap-unit)*1.5);
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    -ms-overflow-style: none;
    scrollbar-width: none;
}

.c-breadcrumb__link {
    position: relative;
    display: inline-block;
    font-size: var(--font-size12);
    line-height: 1.9;
    color: var(--bg-white-color);
    letter-spacing: 1px;
    transition:
        color 0.3s ease,
        letter-spacing 0.35s ease,
        opacity 0.3s ease;
}

.c-breadcrumb__link::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0.15em;
    width: 100%;
    height: 1px;
    background: linear-gradient(90deg, #69A78A 0%, rgba(105, 167, 138, 0.2) 100%);
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform 0.4s cubic-bezier(0.77, 0, 0.175, 1);
}

.c-breadcrumb__separator {
    font-size: var(--font-size14);
    color: var(--bg-white-color);
    line-height: 1;
    opacity: 0.55;
    transition: opacity 0.3s ease, color 0.3s ease, transform 0.35s ease;
}

@media (hover: hover) {
    .c-breadcrumb__link:hover {
        color: #A8D4BE;
        letter-spacing: 0.08em;
    }

    .c-breadcrumb__link:hover::after {
        transform: scaleX(1);
    }

    .c-breadcrumb__item:has(.c-breadcrumb__link:hover) + .c-breadcrumb__item .c-breadcrumb__separator,
    .c-breadcrumb__item:has(.c-breadcrumb__separator):has(+ .c-breadcrumb__item .c-breadcrumb__link:hover) .c-breadcrumb__separator {
        color: #69A78A;
        opacity: 1;
        transform: translate3d(0.1rem, 0, 0);
    }
}

/* -------contactCta------- */
.c-contactCta {
    position: relative;
    padding: calc(var(--gap-unit)*8) 0;
    background: linear-gradient(108.25deg, rgba(21, 47, 75, 0.95) 0%, rgba(27, 58, 49, 0.96) 100%);
}

.c-contactCta__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(var(--gap-unit)*2.65);
    text-align: center;
}

.c-contactCta__label {
    font-size: var(--font-size16);
    font-weight: 700;
    line-height: 2;
    letter-spacing: 0.36em;
    color: #FFFFFF9E;
}

.c-contactCta__title {
    font-size: var(--font-size32);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.9;
    color: var(--bg-white-color);
    letter-spacing: 0.08em;
    margin-top: calc(var(--gap-unit)*1.5);
}

.c-contactCta__desc {
    font-size: var(--font-size16);
    line-height: 2;
    color: #FFFFFFC7;
    padding-bottom: calc(var(--gap-unit)*1.7);
}

.c-contactCta__btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: calc(var(--gap-unit)*1.75);
    min-width: 30rem;
    padding: calc(var(--gap-unit)*1.8) calc(var(--gap-unit)*4.5);
    font-size: var(--font-size15);
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.04em;
    color: #1B3A31;
    background-color: var(--bg-white-color);
    border-radius: 10rem;
    border: 2px solid var(--bg-white-color);
    transition: color 0.3s linear, background-color 0.3s linear;
}

.c-contactCta__btn:hover {
    color: var(--bg-white-color);
    background-color: transparent;
}

@media (max-width: 768px) {
    .c-contactCta__title {
        font-size: var(--font-size30);
    }

    .c-contactCta__desc {
        font-size: var(--font-size15);
    }
}

@media (max-width: 450px) {
    .c-contactCta__inner {
        gap: calc(var(--gap-unit)*3);
    }

    .c-contactCta__title {
        font-size: var(--font-size26);
    }

    .c-contactCta__label {
        font-size: var(--font-size14);
    }
}



/* -------lineCta------- */
.c-lineCta {
    position: relative;
}

.c-lineCta__inner {
    display: flex;
    align-items: stretch;
    gap: calc(var(--gap-unit)*5);
    padding: calc(var(--gap-unit)*4) calc(var(--gap-unit)*5.25);
    background: radial-gradient(100.23% 226.81% at 92% 10%, rgba(6, 199, 85, 0.1) 0%, rgba(6, 199, 85, 0) 26%), linear-gradient(113.84deg, #F7FFF9 0%, #FFFFFF 100%);
    border: 1px solid #C8E8D4;
    overflow: hidden;
    opacity: 0;
    transform: translate3d(0, 2rem, 0);
}

.c-lineCta__inner.is-show {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.65s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.85s cubic-bezier(0.22, 1, 0.36, 1);
}

.c-lineCta__body {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: var(--gap-unit);
}

.c-lineCta__label {
    display: inline-block;
    align-self: flex-start;
    font-size: var(--font-size15);
    font-weight: 500;
    line-height: 1.6;
    color: #667A72;
    letter-spacing: 0.08em;
    clip-path: inset(0 100% 0 0);
    opacity: 0;
}

.c-lineCta.is-body-show .c-lineCta__label {
    clip-path: inset(0 0 0 0);
    opacity: 1;
    transition:
        clip-path 0.7s cubic-bezier(0.77, 0, 0.175, 1) 0.1s,
        opacity 0.4s ease 0.1s;
}

.c-lineCta__title {
    font-size: var(--font-size30);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.55;
    color: #1B3A31;
    letter-spacing: 0.06em;
    opacity: 0;
    transform: translate3d(0, 1.2rem, 0);
}

.c-lineCta.is-body-show .c-lineCta__title {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1) 0.2s,
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.2s;
}

.c-lineCta__desc {
    font-size: var(--font-size15);
    line-height: 2;
    color: #667A72;
    margin-top: calc(var(--gap-unit)*2.25);
    opacity: 0;
    transform: translate3d(0, 1rem, 0);
}

.c-lineCta.is-body-show .c-lineCta__desc {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1) 0.32s,
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.32s;
}

.c-lineCta__steps {
    display: flex;
    gap: calc(var(--gap-unit)*1.5);
    margin-top: calc(var(--gap-unit)*3.75);
    margin-bottom: calc(var(--gap-unit)*2.75);
}

.c-lineCta__step {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*1);
    flex: 1;
    padding: calc(var(--gap-unit)*2);
    background-color: var(--bg-white-color);
    border: 1px solid #06C75538;
    opacity: 0;
    transform: translate3d(0, 1.4rem, 0);
}

.c-lineCta.is-body-show .c-lineCta__step {
    opacity: 1;
    transform: translate3d(0, 0, 0);
}

.c-lineCta.is-body-show .c-lineCta__step:nth-child(1) {
    transition:
        opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1) 0.42s,
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.42s;
}

.c-lineCta.is-body-show .c-lineCta__step:nth-child(2) {
    transition:
        opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1) 0.54s,
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.54s;
}

.c-lineCta.is-body-show .c-lineCta__step:nth-child(3) {
    transition:
        opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1) 0.66s,
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.66s;
}

.c-lineCta__step-num {
    font-size: var(--font-size20);
    font-family: var(--fontT);
    font-weight: 500;
    line-height: 1;
    color: var(--bg-green-color);
}

.c-lineCta__step-txt {
    font-size: var(--font-size14);
    font-weight: 700;
    line-height: 1.7;
    color: #1B3A31;
}

.c-lineCta__example {
    position: relative;
    padding: calc(var(--gap-unit)*1.75);
    padding-left: calc(var(--gap-unit)*2.25);
    font-size: var(--font-size14);
    line-height: 1.7;
    color: #667A72;
    border-left: 3px solid #06C755;
    background-color: #FFFFFFC7;
    opacity: 0;
    transform: translate3d(-1rem, 0, 0);
}

.c-lineCta.is-body-show .c-lineCta__example {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.5s cubic-bezier(0.53, 0.2, 0.25, 1) 0.78s,
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.78s;
}

.c-lineCta__card {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    gap: calc(var(--gap-unit)*1.7);
    width: 33rem;
    padding: calc(var(--gap-unit)*3);
    background-color: var(--bg-white-color);
    border: 1px solid #06C7553D;
    box-shadow: 0px 16px 42px 0px #06C75514;
    opacity: 0;
    transform: translate3d(2rem, 0, 0) scale(0.96);
}

.c-lineCta.is-card-show .c-lineCta__card {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
    transition:
        opacity 0.6s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}

.c-lineCta__qr {
    display: flex;
    width: 75%;
    clip-path: inset(12% 12% 12% 12%);
    opacity: 0;
}

.c-lineCta.is-card-show .c-lineCta__qr {
    clip-path: inset(0 0 0 0);
    opacity: 1;
    transition:
        clip-path 0.9s cubic-bezier(0.77, 0, 0.175, 1) 0.15s,
        opacity 0.4s ease 0.15s;
}

.c-lineCta__qr img {
    width: 100%;
}

.c-lineCta__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: calc(var(--gap-unit)*1.25);
    width: 100%;
    padding: calc(var(--gap-unit)*1.5) calc(var(--gap-unit)*2);
    font-size: var(--font-size15);
    font-weight: 700;
    line-height: 1.9;
    color: var(--bg-white-color);
    text-align: center;
    background-color: #06C755;
    border-radius: 10rem;
    border: 2px solid #06C755;
    opacity: 0;
    transform: translate3d(0, 1rem, 0);
    transition: all 0.3s linear;
}

.c-lineCta.is-card-show .c-lineCta__btn {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1) 0.35s,
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.35s,
        color 0.3s linear,
        background-color 0.3s linear;
}

.c-lineCta__btn:hover {
    color: #06C755;
    background-color: var(--bg-white-color);
}

.c-lineCta__note {
    font-size: var(--font-size12);
    line-height: 1.8;
    color: #667A72;
    text-align: center;
    opacity: 0;
    transform: translate3d(0, 0.8rem, 0);
}

.c-lineCta.is-card-show .c-lineCta__note {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.5s cubic-bezier(0.53, 0.2, 0.25, 1) 0.48s,
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.48s;
}

@media (max-width: 768px) {
    .c-lineCta__inner {
        display: flex;
        flex-direction: column;
        align-items: center;
        padding: calc(var(--gap-unit)*5) calc(var(--gap-unit)*4);
    }

    .c-lineCta__body {
        width: 100%;
    }

    .c-lineCta__title {
        font-size: var(--font-size26);
    }

    .c-lineCta__card {
        transform: translate3d(0, 2rem, 0) scale(0.98);
    }
}

@media (max-width: 450px) {
    .c-lineCta__inner {
        gap: calc(var(--gap-unit)*4);
        padding: calc(var(--gap-unit)*5) calc(var(--gap-unit)*2.5);
    }

    .c-lineCta__title {
        font-size: var(--font-size24);
    }

    .c-lineCta__steps {
        flex-direction: column;
        margin-top: calc(var(--gap-unit)*2.5);
        margin-bottom: calc(var(--gap-unit)*1.25);
    }

    .c-lineCta__step {
        padding: calc(var(--gap-unit)*2) calc(var(--gap-unit)*3);
    }

    .c-lineCta__card {
        width: 100%;
    }

    .c-lineCta__note {
        font-size: var(--font-size14);
    }

    .c-lineCta__step-txt br {
        display: none;
    }
}

.c-sec__heading {
    position: relative;
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: calc(var(--gap-unit)*5.5);
}

.c-sec__title {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: calc(var(--gap-unit)*2.25);
}

.c-sec__title-en {
    font-size: var(--font-size12);
    font-weight: bold;
    line-height: 2;
    letter-spacing: .33em;
    color: #159A57;
}

.c-sec__title-ja {
    font-size: var(--font-size32);
    font-family: var(--fontT);
    font-weight: bold;
    color: #1B3A31;
    line-height: 1.5;
    letter-spacing: .08em;
}

.c-sec__lead {
    font-size: var(--font-size16);
    line-height: 2;
    color: #667A72;
}

@media (max-width: 768px) {
    .c-sec__heading {
        flex-direction: column;
        align-items: flex-start;
        gap: calc(var(--gap-unit)*2.5);
    }

    .c-sec__title {
        gap: calc(var(--gap-unit)*1.75);
    }

    .c-sec__title-ja {
        font-size: var(--font-size28);
    }

    .c-sec__lead {
        font-size: var(--font-size15);
    }
}

/*#endregion layout*/


/*#region HEADER*/
.l-header {
    position: fixed;
    top: var(--header-distance);
    left: 0;
    width: 100%;
    height: var(--headerH);
    padding: 0 calc(var(--gap-unit)*4);
    background-color: transparent;
    z-index: 100;
}

.l-header__inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    height: 100%;
    padding: 0 calc(var(--gap-unit)*5);
    border-radius: 10rem;
    transition:
        background-color 0.3s ease,
        box-shadow 0.3s ease;
}

.l-header.is-scrolled .l-header__inner {
    background-color: var(--bg-white-color);
    box-shadow: 0 1px 0 rgba(55, 177, 142, 0.12);
}

.l-header__logo {
    display: flex;
    gap: calc(var(--gap-unit)*1.75);
}

.l-header__logo-link {
    display: flex;
    align-items: center;
    gap: calc(var(--gap-unit)*1.75);
}

.l-header__logo-img {
    display: flex;
    align-items: center;
    width: 8rem;
}

.l-header__logo-img img {
    width: 100%;
}

.l-header__logo-txt {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*1.5);
}

.l-header__logo-txt-ja {
    font-size: var(--font-size22);
    font-family: var(--fontT);
    font-weight: 800;
    color: var(--bg-font-color);
    line-height: 1.2;
}

.l-header__logo-txt-en {
    font-size: 1rem;
    font-family: var(--fontG);
    color: #1F27248F;
    line-height: 1;
    letter-spacing: .28em;
    padding-left: .3em;
}

.l-hamburger {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 4.8rem;
    height: 2.6rem;
    overflow: hidden;
    background-color: transparent;
    border: none;
    outline: none;
    cursor: pointer;
    z-index: 20;
}

.l-hamburger__line {
    position: absolute;
    left: 0;
    display: inline-block;
    width: 3.4rem;
    height: 2px;
    background-color: var(--bg-blackblue-color);
    transition: transform 0.4s ease, opacity 0.4s ease, top 0.4s ease, bottom 0.4s ease;
    transform-origin: center;
}

.l-hamburger__line--1 {
    top: 0;
}

.l-hamburger__line--2 {
    top: 50%;
    transform: translateY(-50%);
}

.l-hamburger__line--3 {
    bottom: 0;
}

.l-hamburger.is-active .l-hamburger__line--1 {
    top: 50%;
    transform: translateY(-50%) rotate(225deg);
}

.l-hamburger.is-active .l-hamburger__line--2 {
    opacity: 0;
    transform: translateY(-50%) translateX(100%);
}

.l-hamburger.is-active .l-hamburger__line--3 {
    bottom: 50%;
    transform: translateY(50%) rotate(-225deg);
}

@media (max-width: 768px) {
    .l-header {
        padding: 0 calc(var(--gap-unit)*2);
    }
    .l-header__inner {
        padding: 0 calc(var(--gap-unit)*1.5);
    }

    .l-header__logo-link {
        gap: calc(var(--gap-unit)*1.5);
    }

    .l-header__logo-img {
        width: 7rem;
    }

    .l-header__logo-txt-ja {
        font-size: var(--font-size20);
    }

    .l-hamburger {
        width: 4.4rem;
        height: 2.4rem;
    }

    .l-hamburger__line {
        width: 3rem;
    }
}

@media (max-width: 450px) {
    .l-header {
        padding: 0 var(--gap-unit);
    }

    .l-header__inner {
        padding: 0 0 0 1rem;
    }

    .l-header__logo-link {
        gap: calc(var(--gap-unit)*1.25);
    }

    .l-header__logo-img {
        width: 6rem;
    }

    .l-header__logo-txt-ja {
        font-size: var(--font-size18);
    }
}

.l-fullMenu {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    -webkit-backdrop-filter: blur(14px);
    backdrop-filter: blur(14px);
    opacity: 0;
    visibility: hidden;
    background-color: rgba(255, 255, 255, 0.05);
    transition: opacity 0.6s, visibility 0.6s;
    z-index: 10;
    pointer-events: none;
}

.l-fullMenu.is-active {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.l-fullMenu__content {
    position: fixed;
    inset: calc(var(--gap-unit)*4);
    background: url(../img/bg-fullmenu.jpg) no-repeat center;
    background-size: cover;
    box-shadow: 0px 2px 8px rgba(0, 0, 0, 0.16);
    transform: rotate3d(3, 2, 1, -38deg);
    transform-origin: 100% 0%;
    transition: transform 0.6s ease;
}

.l-fullMenu.is-active .l-fullMenu__content {
    transform: none;
}

.l-fullMenu__inner {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100%;
    max-height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(var(--gap-unit)*8);
    transform: translate(-50%, -50%);
}

.l-fullMenu__logo-link {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(var(--gap-unit)*2);
}

.l-fullMenu__logo-txt {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(var(--gap-unit));
}

.l-fullMenu__logo-img {
    display: flex;
    width: 7.2rem;
}

.l-fullMenu__logo-img img {
    width: 100%;
}

.l-fullMenu__logo-txt-ja {
    font-size: var(--font-size22);
    font-weight: bold;
    line-height: 1.2;
    color: var(--bg-font-color);
    letter-spacing: .15em;
}

.l-fullMenu__logo-txt-en {
    font-size: var(--font-size12);
    font-family: var(--fontG);
    line-height: 1.9;
    color: #1F27248F;
    letter-spacing: .28em;
    padding-left: .3em;
}

.l-fullMenu__box {
    display: flex;
    flex-direction: row-reverse;
    justify-content: center;
    gap: calc(var(--gap-unit)*10);
}

.l-fullMenu__nav-list {
    display: flex;
    flex-direction: row-reverse;
    gap: calc(var(--gap-unit)*4);
}

.l-fullMenu__nav-item {
    flex: 1;
}

.l-fullMenu__nav-link {
    position: relative;
    display: flex;
    align-items: center;
    gap: calc(var(--gap-unit)*1);
    font-size: var(--font-size16);
    font-family: var(--fontT);
    font-weight: 600;
    line-height: 1;
    letter-spacing: .25em;
    color: var(--bg-font-color);
    text-wrap: nowrap;
    writing-mode: vertical-rl;
    transition: color 0.2s;
}

.l-fullMenu__nav-link:hover {
    color: #AACAD1;
}

.l-fullMenu__nav-link .ripple-effect {
    position: absolute;
    top: -5.3rem;
    left: 50%;
    display: block;
    width: 12rem;
    height: 12rem;
    background: radial-gradient(#fff 0%,
            #f0f8fd 19.7%,
            #9ed1f4 32.51%,
            #f8fcff 49.75%,
            #b1dbff 70.94%,
            #f8fcff 87.68%,
            #fff 100%);
    border-radius: 50%;
    z-index: -2;
    transform: translateX(-50%) scale(0);
    animation: navDotRippleEffect 750ms cubic-bezier(0, 0, 0, 1) backwards;
    opacity: 0;
    pointer-events: none;
}

@keyframes navDotRippleEffect {
    0% {
        opacity: 1;
        transform: translateX(-50%) scale(0);
    }

    100% {
        opacity: 0;
        transform: translateX(-50%) scale(1);
    }
}

.l-fullMenu__nav-txt {
    writing-mode: vertical-lr;
    text-orientation: upright;
}

.l-fullMenu__nav-txt span {
    writing-mode: sideways-lr;
}

.l-fullMenu__nav-link::before {
    content: "";
    display: flex;
    width: 1.4rem;
    height: 1.4rem;
    background-color: #AACAD1;
    border-radius: 50%;
    transition: opacity 0.3s linear;
}

.l-fullMenu__nav-link:hover::before {
    opacity: 0;
}

.l-fullMenu__info {
    display: flex;
    flex-direction: row-reverse;
    justify-content: center;
    gap: calc(var(--gap-unit)*5);
}

.l-fullMenu__company {
    display: flex;
    flex-direction: column-reverse;
    gap: calc(var(--gap-unit)*1);
    font-size: var(--font-size20);
    font-family: var(--fontT);
    font-weight: bold;
    line-height: 1.1;
    letter-spacing: .3em;
    writing-mode: vertical-lr;
    color: #333;
}

.l-fullMenu__info-item {
    display: flex;
    flex-direction: row-reverse;
    gap: var(--gap-unit);
}

.l-fullMenu__info-txt {
    font-size: var(--font-size14);
    line-height: 1.6;
    color: #333;
    writing-mode: vertical-lr;
    letter-spacing: .2em;
}

.l-fullMenu__info-txt span {
    writing-mode: horizontal-tb;
}

.l-fullMenu__info-label {
    font-size: var(--font-size14);
    line-height: 1;
    letter-spacing: .24em;
    color: var(--bg-green-color);
    writing-mode: vertical-lr;
}

.l-fullMenu__btns {
    display: flex;
    flex-direction: row-reverse;
    gap: calc(var(--gap-unit)*2.25);
    height: fit-content;
}

.l-fullMenu__btn {
    position: relative;
    display: flex;
    flex-direction: row-reverse;
    gap: var(--gap-unit);
    align-items: center;
    color: #1B3A31;
    padding: calc(var(--gap-unit)*6.5) calc(var(--gap-unit)*1.4);
    border: 1px solid #69A78A33;
    box-shadow: 0px 14px 40px 0px #182F280F;
}

.l-fullMenu__btn .ripple-effect {
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    width: 100%;
    height: 100%;
    transform: scale(1);
    opacity: 0;
    background-color: #B8D3DDB8;
    animation: btnRippleEffect 800ms cubic-bezier(0, 0, 0, 1) backwards;
    pointer-events: none;
    z-index: -1;
}

@keyframes btnRippleEffect {
    0% {
        opacity: 1;
        transform: scale(1);
    }

    100% {
        opacity: 0;
        transform: scale(1.6, 1.2);
    }
}

.l-fullMenu__btn--estimate {
    background-color: #B8D3DDB8;
}

.l-fullMenu__btn--recruit {
    background-color: #1B3A31;
    border-color: #182F280F;
    color: var(--bg-white-color);
}

.l-fullMenu__btn-txt {
    font-size: var(--font-size18);
    font-family: var(--fontT);
    font-weight: bold;
    line-height: 1;
    letter-spacing: .4em;
    writing-mode: vertical-lr;
}

.l-fullMenu__btn-txt-en {
    display: flex;
    font-size: 1rem;
    font-weight: 600;
    line-height: 1;
    letter-spacing: .2em;
    writing-mode: vertical-lr;
    text-orientation: upright;
}

@media (max-width: 768px) {
    .l-fullMenu__content {
        inset: 0;
    }

    .l-fullMenu__inner {
        height: 100vh;
        justify-content: center;
        gap: calc(var(--gap-unit)*6);
        padding: 0 var(--margin);
        padding-bottom: 3vh;
        padding-top: calc(var(--headerH) + var(--header-distance) + 2vh);
    }

    .l-fullMenu__logo-img {
        width: 8rem;
    }

    .l-fullMenu__box {
        flex-direction: column;
        align-items: center;
        gap: calc(var(--gap-unit)*6);
        width: 100%;
    }

    .l-fullMenu__nav-list {
        gap: calc(var(--gap-unit)*4.5);
    }

    .l-fullMenu__info {
        display: none;
    }

    .l-fullMenu__btns {
        gap: calc(var(--gap-unit)*2);
        width: 100%;
    }

    .l-fullMenu__btn {
        flex: 1;
        flex-direction: column;
        gap: calc(var(--gap-unit)*1.3);
        padding: calc(var(--gap-unit)*1.5) calc(var(--gap-unit)*3);
    }

    @keyframes btnRippleEffect {
        0% {
            opacity: 1;
            transform: scale(1);
        }
    
        100% {
            opacity: 0;
            transform: scale(1.2, 1.6);
        }
    }

    .l-fullMenu__btn-txt,
    .l-fullMenu__btn-txt-en {
        writing-mode: horizontal-tb;
    }

    .l-fullMenu__btn-txt {
        letter-spacing: .2em;
    }
}

@media (max-width: 450px) {

    .l-fullMenu__nav-list,
    .l-fullMenu__nav {
        justify-content: space-between;
        gap: calc(var(--gap-unit)*3);
        width: 100%;
    }

    .l-fullMenu__box {
        justify-content: flex-start;
        gap: calc(var(--gap-unit)*4);
        overflow-y: auto;
        padding: 2.5rem 1.5rem;
        scrollbar-width: thin;
        scrollbar-color: #159A57 #E8F0EC;
    }

    .l-fullMenu__box::-webkit-scrollbar {
        width: 0.6rem;
    }

    .l-fullMenu__box::-webkit-scrollbar-track {
        background-color: #E8F0EC;
        border-radius: 999px;
    }

    .l-fullMenu__box::-webkit-scrollbar-thumb {
        background-color: #159A57;
        border-radius: 999px;
    }

    .l-fullMenu__box::-webkit-scrollbar-thumb:hover {
        background-color: #117A45;
    }

    .l-fullMenu__btns {
        flex-direction: column;
        width: 85%;
    }

    .l-fullMenu__btn {
        width: 100%;
        padding: calc(var(--gap-unit)*2) calc(var(--gap-unit)*5);
    }

    .l-fullMenu__btn-txt {
        font-size: var(--font-size20);
    }
}





/* -------page home------- */
#home .l-header__logo {
    display: none;
}

#home .l-hamburger {
    position: fixed;
    top: 50%;
    right: 4.5rem;
    transform: translateY(-50%);
}

@media (min-width: 768px) {
    #home .l-header.is-scrolled .l-header__inner {
        background-color: transparent;
        box-shadow: none;
    }
}

@media (max-width: 768px) {
    #home .l-header.is-scrolled .l-header__logo {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
    }
}

.l-hero {
    position: relative;
    width: 100%;
    height: 100vh;
    background: linear-gradient(270deg, rgba(248, 252, 248, 0.82) 0%, rgba(248, 252, 248, 0.65) 50%, rgba(248, 252, 248, 0.46) 100%),
        url(../img/fv_bg.png) center / cover no-repeat;
    overflow: hidden;
}

.l-hero::before {
    content: "";
    position: absolute;
    inset: calc(var(--gap-unit)) calc(var(--gap-unit)*1.5);
    border: 1px solid #37B18E33;
    pointer-events: none;
    z-index: 2;
}

.l-hero__inner {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    width: 100%;
    height: 100%;
    padding: 5vh 5rem 3.5vh;
    z-index: 3;
}

.l-hero__drone {
    position: absolute;
    top: 6rem;
    left: 5rem;
    display: flex;
    align-items: center;
    gap: calc(var(--gap-unit)*1.5);
    font-size: var(--font-size12);
    font-family: var(--fontCG);
    line-height: 1;
    letter-spacing: 0.3em;
    color: #6A7C74;
}

.l-hero__drone::before {
    content: "";
    display: flex;
    width: 6rem;
    height: 1px;
    background-color: #6A7C74;
}

.l-hero__copy {
    position: absolute;
    left: 3rem;
    bottom: 10vh;
    font-size: 1rem;
    line-height: 1;
    letter-spacing: .4em;
    color: #183A3290;
    writing-mode: vertical-rl;
}

.l-hero__scroll {
    position: absolute;
    left: 50%;
    bottom: 4vh;
    z-index: 4;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(var(--gap-unit)*1.5);
    color: #71857C;
    transform: translateX(-50%);
    transition: color 0.35s ease, opacity 0.8s, visibility 0.8s;
}

.l-hero__scroll-label {
    font-size: var(--font-size12);
    font-family: var(--fontG);
    line-height: 1.6;
    letter-spacing: 0.26em;
}

.l-hero__scroll-line {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 1px;
    height: 3.6rem;
}

.l-hero__scroll-track {
    position: absolute;
    top: 0;
    left: 0;
    width: 1px;
    height: 3.5rem;
    background-color: currentColor;
    transform: scaleY(0);
    transform-origin: top center;
    animation: heroScrollDraw 2.4s cubic-bezier(0.65, 0, 0.35, 1) infinite;
}

.l-hero__scroll-arrow {
    position: absolute;
    bottom: -0.05rem;
    width: 0.8rem;
    height: 0.8rem;
    animation: heroScrollArrow 2.4s cubic-bezier(0.65, 0, 0.35, 1) infinite;
}

.l-hero__scroll-arrow::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border-right: 1px solid #71857C;
    border-bottom: 1px solid #71857C;
    transform: rotate(45deg);
}

@keyframes heroScrollDraw {
    0% {
        transform: scaleY(0);
        opacity: 0.35;
    }

    40% {
        transform: scaleY(1);
        opacity: 1;
    }

    60% {
        transform: scaleY(1);
        opacity: 1;
    }

    100% {
        transform: scaleY(0);
        opacity: 0.35;
    }
}

@keyframes heroScrollArrow {
    0%,
    28% {
        opacity: 0;
        transform: translateY(-0.4rem);
    }

    45%,
    72% {
        opacity: 1;
        transform: translateY(0);
    }

    100% {
        opacity: 0;
        transform: translateY(0.35rem);
    }
}

@media (hover: hover) {
    .l-hero__scroll:hover {
        color: #159A57;
    }

    .l-hero__scroll:hover .l-hero__scroll-track,
    .l-hero__scroll:hover .l-hero__scroll-arrow {
        animation-play-state: paused;
    }
}

.l-hero__main {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: center;
    width: fit-content;
    margin: 0 auto;
    padding: 6rem 10rem 3.5rem;
    z-index: 2;
}

.l-hero__logo {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*2);
    padding-right: 3.5rem;
    margin-bottom: calc(var(--gap-unit)*3.5);
    z-index: 3;
}

.l-hero__logo-brand {
    position: relative;
    font-size: var(--font-size14);
    font-family: var(--fontCG);
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0.3em;
    color: #6A7C74;
    text-align: right;
}

.l-hero__logo-main {
    display: flex;
    gap: calc(var(--gap-unit)*2);
}

.l-hero__logo-img {
    display: flex;
    width: 9rem;
}

.l-hero__logo-img img {
    width: 100%;
}

.l-hero__logo-name {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: calc(var(--gap-unit)*1.5);
    text-align: center;
}

.l-hero__logo-name-en {
    font-size: var(--font-size28);
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0.15em;
    color: #1B3A31;
}

.l-hero__logo-name-ja {
    font-size: var(--font-size15);
    font-family: var(--fontCG);
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0.3em;
    color: #6A7C74;
}

.l-hero__title {
    position: relative;
    font-size: 5.2rem;
    font-family: var(--fontT);
    font-weight: 600;
    line-height: 1.4;
    letter-spacing: 0.08em;
    margin-bottom: calc(var(--gap-unit)*3.5);
    z-index: 2;
}

.l-hero__text {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*2);
    z-index: 2;
}

.l-hero__text-main {
    font-size: var(--font-size18);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.08em;
    text-align: center;
}

.l-hero__text-sub {
    font-size: var(--font-size14);
    font-family: var(--fontT);
    font-weight: 600;
    line-height: 1.7;
    letter-spacing: 0.08em;
}

.l-hero__bottom {
    position: relative;
    z-index: 2;
    display: flex;
    justify-content: space-between;
    flex-direction: row-reverse;
    align-items: flex-start;
    gap: calc(var(--gap-unit)*4);
    padding-left: calc(var(--gap-unit)*2);
    flex-shrink: 0;
}

.l-hero-news {
    position: relative;
    min-width: 46rem;
    padding: calc(var(--gap-unit));
    background-color: #F8FCF952;
    border: 1px solid #FFFFFFB8;
}

.l-hero-news::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    filter: blur(14px);
    -webkit-filter: blur(14px);
    box-shadow: 0px 1px 0px 1px #FFFFFFB2 inset, 0px 20px 48px 0px #183A3224;
}

.l-hero-news__inner {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*1);
    padding: calc(var(--gap-unit)*2);
    border: 1px solid #159A5780;
    z-index: 2;
}

.l-hero-news__label {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit));
    background: linear-gradient(0deg, rgba(24, 58, 50, 0.15) 38.46%, rgba(24, 58, 50, 0.1) 100%);
    padding: var(--gap-unit) 0;
}

.l-hero-news__label-en {
    font-size: .9rem;
    font-family: var(--fontG);
    letter-spacing: 0.2em;
    color: #37B18E;
}

.l-hero-news__label-ja {
    font-size: var(--font-size18);
    font-family: var(--fontT);
    font-weight: 700;
    letter-spacing: 0.12em;
}

.l-hero-news__list {
    display: flex;
    flex-direction: column;
}

.l-hero-news__item {
    position: relative;
    display: flex;
    align-items: center;
    gap: calc(var(--gap-unit)*1.25);
    padding: calc(var(--gap-unit)*1.25) calc(var(--gap-unit)*1) calc(var(--gap-unit)*1.25) calc(var(--gap-unit)*1.25);
    margin: 0;
    border-bottom: 1px solid #183A3221;
    overflow: hidden;
    transition:
        background-color 0.35s ease,
        box-shadow 0.35s ease;
}

.l-hero-news__item::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 2px;
    height: 100%;
    background: linear-gradient(180deg, #37B18E 0%, rgba(55, 177, 142, 0.2) 100%);
    transform: scaleY(0);
    transform-origin: top center;
    transition: transform 0.4s cubic-bezier(0.77, 0, 0.175, 1);
}

.l-hero-news__item::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(55, 177, 142, 0.1) 0%, rgba(255, 255, 255, 0.2) 55%, transparent 100%);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.35s ease;
}

.l-hero-news__date {
    position: relative;
    z-index: 1;
    flex-shrink: 0;
    font-size: 1.3rem;
    font-weight: 500;
    line-height: 1;
    width: 9rem;
    letter-spacing: 0.04em;
    color: #53697D;
    transition: color 0.35s ease, letter-spacing 0.35s ease;
}

.l-hero-news__title {
    position: relative;
    z-index: 1;
    flex: 1;
    font-size: 1.3rem;
    font-family: var(--fontT);
    font-weight: 500;
    line-height: 1.7;
    letter-spacing: 0.04em;
    color: #1F2724E5;
    transition: color 0.35s ease, transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}

.l-hero-news__btn {
    position: relative;
    margin-top: var(--gap-unit);
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    gap: calc(var(--gap-unit)*1);
    font-size: var(--font-size14);
    line-height: 1;
    letter-spacing: .16em;
    color: #183A32C2;
    transition:
        color 0.35s ease,
        letter-spacing 0.35s ease,
        transform 0.35s cubic-bezier(0.34, 1.4, 0.64, 1);
}

.l-hero-news__btn-txt {
    transition: color 0.35s ease;
}

.l-hero-news__btn-icon {
    display: flex;
    width: 1.2rem;
    transition: transform 0.4s cubic-bezier(0.34, 1.4, 0.64, 1);
}

.l-hero-news__btn-icon svg {
    width: 100%;
}

.l-hero-news__btn-icon svg path {
    transition: fill 0.35s ease, fill-opacity 0.35s ease;
}

@media (hover: hover) {
    .l-hero-news__item:hover {
        background-color: rgba(255, 255, 255, 0.35);
    }

    .l-hero-news__item:hover::before {
        transform: scaleY(1);
    }

    .l-hero-news__item:hover::after {
        opacity: 1;
    }

    .l-hero-news__item:hover .l-hero-news__date {
        color: #159A57;
        letter-spacing: 0.08em;
    }

    .l-hero-news__item:hover .l-hero-news__title {
        color: #1B3A31;
        transform: translate3d(0.35rem, 0, 0);
    }

    .l-hero-news__btn:hover {
        color: #159A57;
        letter-spacing: 0.22em;
        transform: translate3d(0.2rem, 0, 0);
    }

    .l-hero-news__btn:hover .l-hero-news__btn-icon {
        transform: translate3d(0.35rem, 0, 0);
    }

    .l-hero-news__btn:hover .l-hero-news__btn-icon svg path {
        fill: #159A57;
        fill-opacity: 1;
    }
}

.l-nav {
    position: relative;
    flex: 1;
    z-index: 2;
}

.l-nav__list {
    display: flex;
    flex-direction: row-reverse;
    justify-content: flex-start;
    align-items: flex-start;
    gap: calc(var(--gap-unit)*3.5);
    list-style: none;
}

.l-nav__item {
    flex-shrink: 0;
}

.l-nav__link {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(var(--gap-unit)*1);
    color: var(--bg-font-color);
    transition: color 0.2s;
    z-index: 1;
    flex-shrink: 0;
}

.l-nav__link:hover {
    color: #AACAD1;
}

.l-nav__link .ripple-effect {
    position: absolute;
    top: -5.3rem;
    left: 50%;
    display: block;
    width: 12rem;
    height: 12rem;
    background: radial-gradient(#fff 0%,
            #f0f8fd 19.7%,
            #9ed1f4 32.51%,
            #f8fcff 49.75%,
            #b1dbff 70.94%,
            #f8fcff 87.68%,
            #fff 100%);
    border-radius: 50%;
    z-index: -2;
    transform: translateX(-50%) scale(0);
    animation: navDotRippleEffect 750ms cubic-bezier(0, 0, 0, 1) backwards;
    opacity: 0;
    pointer-events: none;
}

.l-nav__link::before {
    content: "";
    width: 1.4rem;
    height: 1.4rem;
    background-color: #AACAD1;
    border-radius: 50%;
    transition: opacity 0.3s linear;
}

.l-nav__link:hover::before {
    opacity: 0;
}

.l-nav__link-text {
    position: relative;
    z-index: 1;
    writing-mode: vertical-rl;
    text-orientation: upright;
    white-space: nowrap;
    font-size: var(--font-size15);
    font-family: var(--fontT);
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: 0.2em;
}

.l-nav__link-text span {
    writing-mode: sideways-lr;
}

.l-hero__box {
    position: absolute;
    top: 5vh;
    right: 5rem;
    width: 19rem;
    padding: calc(var(--gap-unit)*1.25) calc(var(--gap-unit));
    box-shadow: 0px 18px 48px 0px #183A326B;
    z-index: 4;
}

.l-hero__box::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #FFFFFF57;
    border: 1px solid #FFFFFF9E;
}

.l-hero__box-inner {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*1.5);
    background: #FFFFFF57;
    border: 1px solid #FFFFFF80;
    z-index: 2;
}

.l-hero__box-label {
    display: flex;
    align-items: center;
    gap: calc(var(--gap-unit)*1.5);
    font-size: 1rem;
    font-family: var(--fontG);
    letter-spacing: 0.22em;
    padding: var(--gap-unit);
    padding-bottom: 0;
    padding-left: 0;
    color: #183A3285;
}

.l-hero__box-label::before {
    content: "";
    display: flex;
    width: 4rem;
    height: 1px;
    background-color: #183A324D;
}

.l-hero__box-list {
    display: flex;
    flex-direction: column;
}

.l-hero__box-item {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*.75);
    padding: calc(var(--gap-unit)*1.25) calc(var(--gap-unit)*1.75);
    border-top: 1px solid rgba(27, 58, 49, 0.12);
    overflow: hidden;
    transition: background-color 0.35s ease;
}

.l-hero__box-item::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 2px;
    height: 100%;
    background: linear-gradient(180deg, #37B18E 0%, rgba(55, 177, 142, 0.2) 100%);
    transform: scaleY(0);
    transform-origin: top center;
    transition: transform 0.4s cubic-bezier(0.77, 0, 0.175, 1);
}

.l-hero__box-item::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(105deg, rgba(55, 177, 142, 0.12) 0%, rgba(255, 255, 255, 0.35) 48%, transparent 100%);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.35s ease;
}

.l-hero__box-item__label {
    position: relative;
    z-index: 1;
    font-size: 1rem;
    font-family: var(--fontG);
    line-height: 1.3;
    letter-spacing: .2em;
    color: #37B18EF2;
    transition: letter-spacing 0.35s ease, color 0.35s ease;
}

.l-hero__box-item__title {
    position: relative;
    z-index: 1;
    font-size: var(--font-size15);
    font-family: var(--fontT);
    font-weight: 800;
    line-height: 1.6;
    letter-spacing: 0.04em;
    color: #1B3A31;
    transition: color 0.35s ease, transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}

.l-hero__box-item__btn {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    gap: calc(var(--gap-unit)*1);
    font-size: 1.1rem;
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: 0.12em;
    color: #183A329E;
    transition: color 0.35s ease, letter-spacing 0.35s ease;
}

.l-hero__box-item__btn-icon {
    display: flex;
    width: 1rem;
    transition: transform 0.4s cubic-bezier(0.34, 1.4, 0.64, 1);
}

.l-hero__box-item__btn svg {
    width: 100%;
    height: auto;
}

.l-hero__box-item__btn svg path {
    transition: fill 0.35s ease, fill-opacity 0.35s ease;
}

@media (hover: hover) {
    .l-hero__box-item:hover {
        background-color: rgba(255, 255, 255, 0.4);
    }

    .l-hero__box-item:hover::before {
        transform: scaleY(1);
    }

    .l-hero__box-item:hover::after {
        opacity: 1;
    }

    .l-hero__box-item:hover .l-hero__box-item__title {
        color: #159A57;
        transform: translate3d(0.25rem, 0, 0);
    }

    .l-hero__box-item:hover .l-hero__box-item__btn {
        color: #159A57;
        letter-spacing: 0.16em;
    }

    .l-hero__box-item:hover .l-hero__box-item__btn-icon {
        transform: translate3d(0.35rem, 0, 0);
    }

    .l-hero__box-item:hover .l-hero__box-item__btn svg path {
        fill: #159A57;
        fill-opacity: 1;
    }
}

@media (max-width: 768px) {
    .l-hero__inner {
        padding: 5vh 4rem;
    }

    .l-hero__main {
        padding: 0;
    }
    
    .l-hero__bottom,
    .l-hero__box {
        display: none;
    }

    #home .l-header__logo {
        display: flex;
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
    }

    #home .l-hamburger {
        position: static;
        transform: translateY(0);
    }

    .l-hero__logo {
        padding: 0;
    }

    .l-hero__copy {
        bottom: 4vh;
        left: 50%;
        transform: translateX(-50%);
        writing-mode: horizontal-tb;
    }

    .l-hero__scroll {
        bottom: calc(var(--gap-unit)*2.5);
        gap: calc(var(--gap-unit)*1.5);
    }

    .l-hero__scroll-line {
        height: 3.6rem;
    }

    .l-hero__title {
        margin-bottom: calc(var(--gap-unit)*4);
    }

    .l-hero__text {
        gap: calc(var(--gap-unit)*3.5);
    }

    .l-hero__text-sub {
        line-height: 1.9;
    }
}

@media (max-width: 450px) {
    .l-hero__inner {
        padding: 5vh var(--margin);
    }

    .l-hero::before {
        inset: var(--gap-unit);
    }

    .l-hero__drone {
        top: 5rem;
        left: var(--margin);
    }

    .l-hero__drone::before {
        width: 4rem;
    }

    .l-hero__logo {
        padding-right: calc(var(--gap-unit)*4);
    }

    .l-hero__logo-img {
        width: 7.3rem;
    }

    .l-hero__logo-name-en {
        font-size: var(--font-size22);
    }

    .l-hero__logo-name-ja {
        font-size: 1.3rem;
    }

    .l-hero__logo-brand {
        font-size: var(--font-size12);
    }

    .l-hero__title {
        margin-bottom: calc(var(--gap-unit)*4);
    }

    .l-hero__title {
        font-size: 3.6rem;
        white-space: nowrap;
        padding-left: var(--gap-unit);
    }

    .l-hero__text {
        gap: calc(var(--gap-unit)*4);
    }

    .l-hero__text-sub {
        font-size: var(--font-size16);
        line-height: 2;
    }

    .l-hero__copy {
        text-align: center;
        white-space: nowrap;
        bottom: calc(var(--gap-unit)*3);
    }

    .l-hero__scroll {
        bottom: calc(var(--gap-unit)*8);
    }

    .l-hero__scroll-label {
        letter-spacing: 0.36em;
        text-indent: 0.36em;
    }

    .l-hero__scroll-line {
        height: 3.6rem;
    }
}



/* -------home service------- */
.p-home-service {
    position: relative;
    background: linear-gradient(180deg, #F4FBF7 0%, #FFFFFF 100%);
}

.p-home-service__inner {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*5);
}

.p-home-service__heading {
    margin-bottom: 0;
    flex-direction: column;
    align-items: flex-start;
    gap: calc(var(--gap-unit)*3);
}

.p-home-service__title {
    position: relative;
    padding-bottom: calc(var(--gap-unit)*2.75);
}

.p-home-service__title::before {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 5rem;
    height: 2px;
    background-color: var(--bg-green-color);
}

.p-home-service__list {
    display: flex;
    gap: calc(var(--gap-unit)*2.5);
}

.p-home-service__card {
    flex: 1;
    position: relative;
    display: flex;
    flex-direction: column;
    padding: calc(var(--gap-unit)*3);
    background-color: var(--bg-white-color);
    border: 1px solid #173D341F;
    box-shadow: 0px 20px 46px 0px #173D3412;
    opacity: 0;
    transform: translate3d(0, 2.4rem, 0);
    transition:
        border-color 0.35s ease,
        box-shadow 0.35s ease,
        transform 0.35s ease;
}

.p-home-service__card.is-show {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.6s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.8s cubic-bezier(0.22, 1, 0.36, 1),
        border-color 0.35s ease,
        box-shadow 0.35s ease;
}

.p-home-service__num {
    font-size: var(--font-size28);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.9;
    color: var(--bg-green-color);
}

.p-home-service__en {
    font-size: var(--font-size12);
    font-weight: 700;
    line-height: 1.9;
    letter-spacing: 0.32em;
    color: var(--bg-green-color);
    margin-bottom: calc(var(--gap-unit)*2);
}

.p-home-service__name {
    font-size: var(--font-size24);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0.03em;
    color: #1F2724;
    margin-bottom: calc(var(--gap-unit)*1.3);
}

.p-home-service__txt {
    flex: 1;
    font-size: var(--font-size15);
    line-height: 1.6;
    letter-spacing: .04em;
    color: #173D34B8;
    margin-bottom: calc(var(--gap-unit)*3.75);
}

.p-home-service__link {
    display: flex;
    align-items: center;
    gap: calc(var(--gap-unit)*1.5);
    font-size: var(--font-size14);
    font-weight: bold;
    line-height: 1.8;
    color: #71857C;
    transition: color 0.35s ease;
}

.p-home-service__link-arrow {
    transition: transform 0.35s ease;
}

.p-home-service__btn-wrap {
    display: flex;
    justify-content: center;
    padding-top: calc(var(--gap-unit)*1);
}

.p-home-service__btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: calc(var(--gap-unit)*1.25);
    padding: calc(var(--gap-unit)*2.2) calc(var(--gap-unit)*4.5);
    font-size: var(--font-size15);
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0.06em;
    color: #1F2724;
    background-color: var(--bg-white-color);
    border: 1px solid #37B18E9E;
    border-radius: 999px;
    box-shadow: 0px 10px 24px 0px #183A3212;
    transition:
        color 0.35s ease,
        background-color 0.35s ease,
        border-color 0.35s ease,
        box-shadow 0.35s ease,
        transform 0.35s ease;
}

.p-home-service__btn-arrow {
    transition: transform 0.35s ease;
}

@media (hover: hover) {
    .p-home-service__card.is-show:hover {
        border-color: #69A78A;
        box-shadow: 0 18px 44px rgba(24, 58, 50, 0.1);
        transform: translate3d(0, -0.3rem, 0);
    }

    .p-home-service__card.is-show:hover .p-home-service__name {
        color: #159A57;
    }

    .p-home-service__card.is-show:hover .p-home-service__link {
        color: #159A57;
    }

    .p-home-service__card.is-show:hover .p-home-service__link-arrow {
        transform: translateX(0.3rem);
    }

    .p-home-service__btn:hover {
        color: var(--bg-white-color);
        background-color: var(--bg-green-color);
        border-color: var(--bg-green-color);
        box-shadow: 0 14px 32px rgba(21, 154, 87, 0.22);
        transform: translateY(-0.2rem);
    }

    .p-home-service__btn:hover .p-home-service__btn-arrow {
        transform: translateX(0.3rem);
    }
}

@media (max-width: 768px) {
    .p-home-service__inner {
        gap: calc(var(--gap-unit)*4);
    }

    .p-home-service__list {
        flex-direction: column;
        gap: calc(var(--gap-unit)*2.5);
    }

    .p-home-service__card {
        flex: none;
        width: 100%;
        padding: calc(var(--gap-unit)*3.5) calc(var(--gap-unit)*3);
        transform: translate3d(-2.4rem, 0, 0) scale(0.98);
        overflow: hidden;
    }

    .p-home-service__card::before {
        content: "";
        position: absolute;
        left: 0;
        top: 0;
        width: 3px;
        height: 100%;
        background: linear-gradient(180deg, #159A57 0%, rgba(21, 154, 87, 0.15) 100%);
        transform: scaleY(0);
        transform-origin: top center;
        transition: transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.12s;
    }

    .p-home-service__card.is-show {
        transform: translate3d(0, 0, 0) scale(1);
    }

    .p-home-service__card.is-show::before {
        transform: scaleY(1);
    }

    .p-home-service__num {
        font-size: var(--font-size24);
    }

    .p-home-service__en {
        letter-spacing: 0.22em;
        margin-bottom: calc(var(--gap-unit)*1.5);
    }

    .p-home-service__name {
        font-size: var(--font-size20);
    }

    .p-home-service__txt {
        font-size: var(--font-size14);
        line-height: 1.85;
        margin-bottom: calc(var(--gap-unit)*3);
    }

    .p-home-service__btn-wrap {
        padding-top: calc(var(--gap-unit)*0.5);
    }
}

@media (max-width: 450px) {
    .p-home-service__inner {
        gap: calc(var(--gap-unit)*3.5);
    }

    .p-home-service__title-ja,
    .p-home-service .c-sec__title-ja {
        font-size: var(--font-size26);
    }

    .p-home-service__card {
        padding: calc(var(--gap-unit)*3) calc(var(--gap-unit)*2.5);
    }

    .p-home-service__num {
        font-size: var(--font-size22);
    }

    .p-home-service__name {
        font-size: var(--font-size18);
    }

    .p-home-service__txt {
        font-size: var(--font-size13, 1.3rem);
    }

    .p-home-service__btn {
        width: 100%;
        padding: calc(var(--gap-unit)*2) calc(var(--gap-unit)*3);
    }
}


/* -------home news------- */
.p-home-news {
    position: relative;
    background: linear-gradient(180deg, #FFFFFF 0%, #F8FCF9 100%);
}

.p-home-news__inner {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*6);
}

.p-home-news__heading {
    margin-bottom: 0;
    flex-direction: column;
    align-items: flex-start;
    gap: calc(var(--gap-unit)*3);
}

.p-home-news__title {
    position: relative;
    padding-bottom: calc(var(--gap-unit)*2.75);
}

.p-home-news__title::before {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 5rem;
    height: 2px;
    background-color: var(--bg-green-color);
}

.p-home-news__btn-wrap {
    display: flex;
    justify-content: center;
}

.p-home-news__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: calc(var(--gap-unit)*1.5);
    padding: calc(var(--gap-unit)*2.2) calc(var(--gap-unit)*7.5);
    font-size: var(--font-size15);
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0.06em;
    color: #1F2724;
    background-color: var(--bg-white-color);
    border: 1px solid #37B18E9E;
    border-radius: 999px;
    box-shadow: 0px 10px 24px 0px #183A3212;
    transition:
        color 0.35s ease,
        background-color 0.35s ease,
        border-color 0.35s ease,
        box-shadow 0.35s ease,
        transform 0.35s ease;
}

.p-home-news__btn-arrow {
    transition: transform 0.35s ease;
}

@media (hover: hover) {
    .p-home-news__btn:hover {
        color: var(--bg-white-color);
        background-color: var(--bg-green-color);
        border-color: var(--bg-green-color);
        box-shadow: 0 14px 32px rgba(21, 154, 87, 0.22);
        transform: translateY(-0.2rem);
    }

    .p-home-news__btn:hover .p-home-news__btn-arrow {
        transform: translateX(0.3rem);
    }
}

@media (max-width: 768px) {
    .p-home-news__inner {
        gap: calc(var(--gap-unit)*4);
    }

    .p-home-news .p-news-list__item {
        margin: 0;
        padding: calc(var(--gap-unit)*2.75) calc(var(--gap-unit)*1);
        transform: translate3d(0, 1.6rem, 0);
    }

    .p-home-news .p-news-list__item.is-show {
        transform: translate3d(0, 0, 0);
    }

    .p-home-news .p-news-list__date {
        width: 9rem;
    }

    .p-home-news .p-news-list__title {
        font-size: var(--font-size15);
    }
}

@media (max-width: 450px) {
    .p-home-news .c-sec__title-ja {
        font-size: var(--font-size26);
    }

    .p-home-news .p-news-list__item {
        flex-wrap: wrap;
        gap: calc(var(--gap-unit)*1.25) calc(var(--gap-unit)*1.5);
        padding: calc(var(--gap-unit)*2.5) calc(var(--gap-unit)*0.5);
    }

    .p-home-news .p-news-list__date {
        width: auto;
    }

    .p-home-news .p-news-list__cat {
        min-width: 7.5rem;
    }

    .p-home-news .p-news-list__title {
        flex: none;
        width: 100%;
        white-space: normal;
        font-size: var(--font-size14);
        line-height: 1.75;
    }

    .p-home-news .p-news-list__arrow {
        display: none;
    }

    .p-home-news__btn {
        width: 100%;
        padding: calc(var(--gap-unit)*2) calc(var(--gap-unit)*3);
    }
}


/* -------home company------- */
.p-home-company {
    position: relative;
    background: linear-gradient(180deg, #FFFFFF 0%, #F8FCF9 100%);
}

.p-home-company__inner {
    display: flex;
    justify-content: space-between;
    gap: calc(var(--gap-unit)*8.75);
}

.p-home-company__content {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: calc(var(--gap-unit)*3.5);
    opacity: 0;
    transform: translate3d(-2rem, 0, 0);
}

.p-home-company__content.is-show {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.65s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.85s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-home-company__heading {
    margin-bottom: 0;
    flex-direction: column;
    align-items: flex-start;
    gap: calc(var(--gap-unit)*3);
}

.p-home-company__title {
    position: relative;
    padding-bottom: calc(var(--gap-unit)*2.75);
}

.p-home-company__title::before {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 5rem;
    height: 2px;
    background-color: var(--bg-green-color);
}

.p-home-company__body {
    margin-top: calc(var(--gap-unit)*1.5);
}

.p-home-company__body p {
    font-size: var(--font-size16);
    line-height: 1.75;
}

.p-home-company__btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: calc(var(--gap-unit)*1.25);
    width: fit-content;
    padding: calc(var(--gap-unit)*2.2) calc(var(--gap-unit)*8.5);
    font-size: var(--font-size15);
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0.06em;
    color: #1F2724;
    background-color: var(--bg-white-color);
    border: 1px solid #37B18E9E;
    border-radius: 999px;
    box-shadow: 0px 10px 24px 0px #183A3212;
    transition:
        color 0.35s ease,
        background-color 0.35s ease,
        border-color 0.35s ease,
        box-shadow 0.35s ease,
        transform 0.35s ease;
}

.p-home-company__btn-arrow {
    transition: transform 0.35s ease;
}

.p-home-company__visual {
    display: flex;
    width: 45%;
    aspect-ratio: 500 / 373;
    overflow: hidden;
}

.p-home-company__visual img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

@media (hover: hover) {
    .p-home-company__btn:hover {
        color: var(--bg-white-color);
        background-color: var(--bg-green-color);
        border-color: var(--bg-green-color);
        box-shadow: 0 14px 32px rgba(21, 154, 87, 0.22);
        transform: translateY(-0.2rem);
    }

    .p-home-company__btn:hover .p-home-company__btn-arrow {
        transform: translateX(0.3rem);
    }
}

@media (max-width: 768px) {
    .p-home-company__inner {
        flex-direction: column;
        align-items: stretch;
        gap: calc(var(--gap-unit)*4);
    }

    .p-home-company__content {
        max-width: none;
        transform: translate3d(0, 2.4rem, 0);
    }

    .p-home-company__content.is-show {
        transform: translate3d(0, 0, 0);
    }

    .p-home-company__body {
        margin-top: calc(var(--gap-unit)*0.5);
    }

    .p-home-company__body p,
    .p-home-company__txt {
        font-size: var(--font-size15);
        line-height: 1.9;
    }

    .p-home-company__visual {
        width: 100%;
        max-width: none;
        aspect-ratio: 16 / 11;
        opacity: 0;
        transform: translate3d(0, 2rem, 0) scale(0.97);
        transition:
            opacity 0.7s cubic-bezier(0.53, 0.2, 0.25, 1),
            transform 0.85s cubic-bezier(0.22, 1, 0.36, 1),
            clip-path 1s cubic-bezier(0.165, 0.84, 0.44, 1);
    }

    .p-home-company__visual.js-clip_path {
        clip-path: inset(100% 0 0 0);
    }

    .p-home-company__visual.js-clip_path.on,
    .p-home-company__visual.is-show {
        clip-path: inset(0 0 0 0);
    }

    .p-home-company__visual.is-show {
        opacity: 1;
        transform: translate3d(0, 0, 0) scale(1);
        transition-delay: 0.15s;
    }

    .p-home-company__visual img {
        transform: scale(1.06);
        transition: transform 1.1s cubic-bezier(0.22, 1, 0.36, 1) 0.2s;
    }

    .p-home-company__visual.is-show img {
        transform: scale(1);
    }
}

@media (max-width: 450px) {
    .p-home-company .c-sec__title-ja {
        font-size: var(--font-size26);
    }

    .p-home-company__body p,
    .p-home-company__txt {
        font-size: var(--font-size14);
        line-height: 1.95;
    }

    .p-home-company__visual {
        aspect-ratio: 4 / 3;
    }

    .p-home-company__btn {
        align-self: stretch;
        width: 100%;
        padding: calc(var(--gap-unit)*2) calc(var(--gap-unit)*3);
    }
}


/* -------home access------- */
.p-home-access {
    position: relative;
    background: var(--bg-white-color);
}

.p-home-access__inner {
    display: flex;
    gap: calc(var(--gap-unit)*10);
}

.p-home-access__col {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*5);
    opacity: 0;
    transform: translate3d(0, 2rem, 0);
}

.p-home-access__col--access {
    transform: translate3d(-2.4rem, 2rem, 0);
}

.p-home-access__col--legal {
    transform: translate3d(2.4rem, 2rem, 0);
}

.p-home-access__col.is-show {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.65s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.85s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-home-access__col--legal.is-show {
    transition-delay: 0.14s;
}

.p-home-access__name,
.p-home-access__address,
.p-home-access__map,
.p-home-access__legal-img {
    opacity: 0;
    transition:
        opacity 0.65s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.8s cubic-bezier(0.22, 1, 0.36, 1),
        clip-path 0.85s cubic-bezier(0.22, 1, 0.36, 1),
        filter 0.75s ease;
}

.p-home-access__name {
    transform: translate3d(-1.4rem, 0, 0);
}

.p-home-access__address {
    transform: translate3d(0, 1.4rem, 0);
}

.p-home-access__map {
    clip-path: inset(0 0 100% 0);
    transform: translate3d(0, 1.6rem, 0) scale(0.98);
}

.p-home-access__legal-img {
    position: relative;
    transform: translate3d(0, 2rem, 0) scale(0.96);
    filter: blur(6px);
}

.p-home-access__legal-img::before {
    content: "";
    position: absolute;
    inset: 0;
    border: 1px solid #1B3A31;
    opacity: 0;
    transform: scale(1.03);
    transition:
        opacity 0.55s ease,
        transform 0.75s cubic-bezier(0.22, 1, 0.36, 1);
    pointer-events: none;
    z-index: 1;
}

.p-home-access__col--access.is-show .p-home-access__name {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition-delay: 0.22s;
}

.p-home-access__col--access.is-show .p-home-access__address {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition-delay: 0.36s;
}

.p-home-access__col--access.is-show .p-home-access__map {
    opacity: 1;
    clip-path: inset(0 0 0 0);
    transform: translate3d(0, 0, 0) scale(1);
    transition-delay: 0.52s;
}

.p-home-access__col--legal.is-show .p-home-access__legal-img {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
    filter: blur(0);
    transition-delay: 0.34s;
}

.p-home-access__col--legal.is-show .p-home-access__legal-img::before {
    opacity: 1;
    transform: scale(1);
    transition-delay: 0.62s;
}

.p-home-access__heading {
    margin-bottom: 0;
    flex-direction: column;
    align-items: flex-start;
    gap: calc(var(--gap-unit)*1.5);
}

.p-home-access__title {
    position: relative;
    padding-bottom: calc(var(--gap-unit)*2.75);
}

.p-home-access__title::before {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 5rem;
    height: 2px;
    background-color: var(--bg-green-color);
}

.p-home-access__body,
.p-home-access__legal {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*5);
}

.p-home-access__info {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*1.75);
}

.p-home-access__name {
    font-size: var(--font-size22);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.8;
    letter-spacing: 0.03em;
}

.p-home-access__info {
    font-size: var(--font-size14);
    line-height: 2;
    color: #4F625A;
}

.p-home-access__map {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    min-height: 20rem;
    padding: calc(var(--gap-unit)*3.75);
    overflow: hidden;
    border: 1px solid #183A321C;
    background: linear-gradient(99.75deg, rgba(168, 216, 203, 0.25) 0%, rgba(255, 255, 255, 0.7) 100%);
    transition:
        border-color 0.4s cubic-bezier(0.22, 1, 0.36, 1),
        box-shadow 0.4s cubic-bezier(0.22, 1, 0.36, 1),
        transform 0.4s cubic-bezier(0.22, 1, 0.36, 1),
        opacity 0.65s cubic-bezier(0.53, 0.2, 0.25, 1),
        clip-path 0.85s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-home-access__map::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 0.8rem;
    height: 0.8rem;
    margin: -0.4rem 0 0 -0.4rem;
    border-radius: 50%;
    background-color: #159A57;
    opacity: 0;
    transform: scale(0);
    box-shadow: 0 0 0 0 rgba(21, 154, 87, 0.35);
    pointer-events: none;
    z-index: 1;
}

@keyframes homeAccessMapPin {
    0% {
        opacity: 0;
        transform: scale(0);
        box-shadow: 0 0 0 0 rgba(21, 154, 87, 0.35);
    }

    35% {
        opacity: 1;
        transform: scale(1);
        box-shadow: 0 0 0 0.8rem rgba(21, 154, 87, 0);
    }

    100% {
        opacity: 0.85;
        transform: scale(1);
        box-shadow: 0 0 0 1.6rem rgba(21, 154, 87, 0);
    }
}

.p-home-access__map::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(105deg, rgba(21, 154, 87, 0.16) 0%, rgba(55, 177, 142, 0.08) 55%, rgba(255, 255, 255, 0) 100%);
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform 0.5s cubic-bezier(0.77, 0, 0.175, 1);
}

.p-home-access__map-label {
    position: relative;
    z-index: 2;
    font-size: var(--font-size14);
    font-weight: 500;
    line-height: 1.9;
    letter-spacing: 0.16em;
    color: #183A327A;
    opacity: 0;
    transform: translate3d(0, 0.8rem, 0);
    transition:
        color 0.35s ease,
        letter-spacing 0.35s ease,
        opacity 0.55s ease,
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-home-access__col--access.is-show .p-home-access__map-label {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition-delay: 0.68s;
}

.p-home-access__legal {
    padding: 0 calc(var(--gap-unit)*3);
    padding-top: calc(var(--gap-unit)*2);
}

.p-home-access__legal-img {
    display: flex;
    width: 100%;
}

.p-home-access__legal-img img {
    width: 100%;
}

@media (hover: hover) {
    .p-home-access__map:hover {
        border-color: #37B18E66;
        box-shadow: 0 1.2rem 2.8rem rgba(24, 58, 50, 0.08);
        transform: translateY(-0.2rem);
    }

    .p-home-access__map:hover::before {
        transform: scaleX(1);
    }

    .p-home-access__map:hover .p-home-access__map-label {
        color: #159A57;
        letter-spacing: 0.22em;
    }
}

@media (max-width: 768px) {
    .p-home-access__inner {
        flex-direction: column;
        gap: calc(var(--gap-unit)*6);
    }

    .p-home-access__col {
        gap: calc(var(--gap-unit)*3.5);
    }

    .p-home-access__col--access,
    .p-home-access__col--legal {
        transform: translate3d(0, 2.4rem, 0);
    }

    .p-home-access__col--legal.is-show {
        transition-delay: 0.1s;
    }

    .p-home-access__col--access.is-show .p-home-access__name {
        transition-delay: 0.14s;
    }

    .p-home-access__col--access.is-show .p-home-access__address {
        transition-delay: 0.24s;
    }

    .p-home-access__col--access.is-show .p-home-access__map {
        transition-delay: 0.34s;
    }

    .p-home-access__col--legal.is-show .p-home-access__legal-img {
        transition-delay: 0.18s;
    }

    .p-home-access__col--legal.is-show .p-home-access__legal-img::before {
        transition-delay: 0.38s;
    }

    .p-home-access__name {
        font-size: var(--font-size18);
        line-height: 1.7;
    }

    .p-home-access__address {
        font-size: var(--font-size14);
        line-height: 2;
    }

    .p-home-access__map {
        min-height: 14rem;
    }

    .p-home-access__legal {
        padding: 0;
    }
}

@media (max-width: 450px) {
    .p-home-access .c-sec__title-ja {
        font-size: var(--font-size26);
    }

    .p-home-access__inner {
        gap: calc(var(--gap-unit)*5);
    }

    .p-home-access__name {
        font-size: var(--font-size16);
    }

    .p-home-access__address {
        font-size: var(--font-size13, 1.3rem);
        line-height: 1.95;
    }

    .p-home-access__map {
        min-height: 11rem;
        padding: calc(var(--gap-unit)*3);
    }

    .p-home-access__map-label {
        font-size: var(--font-size12);
        letter-spacing: 0.12em;
    }
}

/* -------page company------- */
.p-company .c-sec__heading {
    margin-bottom: 0;
    flex-direction: column;
    align-items: flex-start;
    gap: calc(var(--gap-unit)*3);
}

.p-company .c-sec__title {
    position: relative;
    padding-bottom: calc(var(--gap-unit)*2.75);
}

.p-company .c-sec__title::before {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 5rem;
    height: 2px;
    background-color: var(--bg-green-color);
}

.p-company-message__inner {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: calc(var(--gap-unit)*7);
    padding: 0 calc(var(--gap-unit)*2);
}

.p-company-message__content {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*3.75);
    width: 56.5%;
}

.p-company-message__title {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: calc(var(--gap-unit)*1);
    padding-bottom: calc(var(--gap-unit)*2);
}

.p-company-message__title::before {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    display: block;
    width: 5rem;
    height: 2px;
    background-color: var(--bg-green-color);
}

.p-company-message__title-en {
    font-size: var(--font-size12);
    font-weight: 700;
    line-height: 1.9;
    letter-spacing: 0.32em;
    color: #159A57;
}

.p-company-message__title-ja {
    font-size: var(--font-size32);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 2;
    letter-spacing: 0.12em;
    color: #183A32;
}

.p-company-message__lead {
    font-size: var(--font-size26);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.6;
    color: #183A32;
    margin-top: calc(var(--gap-unit)*.625);
}

.p-company-message__txt {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*1.8);
    font-size: var(--font-size15);
    line-height: 2;
    color: #4A5A54;
    margin-top: calc(var(--gap-unit)*1.25);
}

.p-company-message__visual {
    position: relative;
    flex: 1;
}

.p-company-message__visual--sp {
    display: none;
}

.p-company-message__frame {
    position: relative;
    width: 100%;
}

.p-company-message__frame::before {
    content: "";
    position: absolute;
    bottom: 5rem;
    right: -3.9rem;
    z-index: 0;
    width: 27.3rem;
    aspect-ratio: 273/288;
    background-color: #37B18E1C;
    clip-path: inset(0 100% 0 0);
    transition: clip-path 0.6s cubic-bezier(0.77, 0, 0.175, 1);
}

.p-company-message__frame.is-before-show::before {
    clip-path: inset(0 0 0 0);
}

.p-company-message__img {
    position: relative;
    z-index: 1;
    aspect-ratio: 420 /520;
    overflow: hidden;
    clip-path: inset(0 100% 0 0);
    box-shadow: 0px 30px 70px 0px #183A3224;
}

.p-company-message__frame.is-img-show .p-company-message__img {
    clip-path: inset(0 0 0 0);
    transition: clip-path .9s cubic-bezier(0.77, 0, 0.175, 1);
}

.p-company-message__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 12%;
}

.p-company-message__nameplate {
    position: absolute;
    right: calc(var(--gap-unit) * -4);
    bottom: calc(var(--gap-unit) * 14);
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*0.25);
    min-width: 21rem;
    padding: calc(var(--gap-unit)*2.5) calc(var(--gap-unit)*3.5);
    background-color: #183A32;
    z-index: 2;
    opacity: 0;
    transform: translate3d(0, 2rem, 0);
}

.p-company-message__frame.is-name-show .p-company-message__nameplate {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.65s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.75s cubic-bezier(0.53, 0.2, 0.25, 1);
}

.p-company-message__role {
    font-size: 1.1rem;
    line-height: 1.9;
    color: #FFFFFFB8;
    letter-spacing: 0.18em;
}

.p-company-message__name {
    font-size: var(--font-size22);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.9;
    letter-spacing: 0.12em;
    color: var(--bg-white-color);
    margin-top: calc(var(--gap-unit)*.375);
}

.p-company-message__name-en {
    font-size: .9rem;
    font-family: var(--fontG);
    line-height: 1.9;
    letter-spacing: 0.22em;
    color: #FFFFFF8C;
}

@media (max-width: 768px) {
    .p-company-message__inner {
        gap: calc(var(--gap-unit)*4);
        padding: 0;
    }

    .p-company-message__content {
        width: 52%;
    }

    .p-company-message__nameplate {
        bottom: 3rem;
        right: -2.5rem;
        min-width: 19rem;
    }

    .p-company-message__frame::before {
        width: 24rem;
        right: -3rem;
    }

    .p-company-message__title-ja {
        font-size: var(--font-size28);
    }
}

@media (max-width: 450px) {
    .p-company-message__visual--sp {
        display: block;
        margin-top: calc(var(--gap-unit)*1.5);
    }

    .p-company-message__visual--pc {
        display: none;
    }

    .p-company-message__content {
        width: 100%;
    }

    .p-company-message__visual {
        padding: 0 1.5rem;
    }

    .p-company-message__frame::before {
        width: 32rem;
    }

    .p-company-message__nameplate {
        bottom: 7rem;
    }

    .p-company-message__title-en {
        letter-spacing: .2em;
    }

    .p-company-message__lead {
        font-size: var(--font-size24);
    }
}



.p-company-overview {
    position: relative;
    background: linear-gradient(180deg, rgba(232, 246, 239, 0.36) 0%, rgba(255, 255, 255, 0.58) 100%);
}

.p-company-overview__inner {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*7);
}

.p-company-overview__content {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: calc(var(--gap-unit)*7);
}

.p-company-overview__main {
    width: 50%;
}

.p-company-overview__table {
    border-top: 1px solid #183A322E;
}

.p-company-overview__row {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: calc(var(--gap-unit)*2.5);
    padding: calc(var(--gap-unit)*2.3) 0;
    border-bottom: 1px solid #183A322E;
}

.p-company-overview__term {
    font-size: var(--font-size16);
    font-weight: 700;
    line-height: 1.7;
    letter-spacing: 0.1em;
    color: #183A32;
    width: 19%;
}

.p-company-overview__desc {
    flex: 1;
    font-size: var(--font-size16);
    line-height: 1.7;
}

.p-company-overview__visual {
    position: relative;
    flex: 1;
    width: 50%;
    min-width: 0;
}

.p-company-overview__circle {
    position: absolute;
    right: -8rem;
    bottom: -9rem;
    width: 22rem;
    height: 22rem;
    pointer-events: none;
    z-index: 0;
}

.p-company-overview__circle svg {
    display: block;
    width: 100%;
    height: 100%;
    transform: rotate(-90deg);
}

.p-company-overview__circle circle {
    fill: none;
    width: 100%;
    height: 100%;
    stroke-dasharray: 0 600;
    transition: stroke-dasharray 1.2s cubic-bezier(0.77, 0, 0.175, 1);
}

.p-company-overview__visual.is-circle-show .p-company-overview__circle circle {
    stroke-dasharray: 600 600;
}

.p-company-overview__img {
    position: relative;
    width: 100%;
    aspect-ratio: 54/45;
    overflow: hidden;
    box-shadow: 0px 22px 52px 0px #183A321F;
    z-index: 1;
    clip-path: inset(0 100% 0 0);
}

.p-company-overview__visual.is-img-show .p-company-overview__img {
    clip-path: inset(0 0 0 0);
    transition: clip-path .7s cubic-bezier(0.77, 0, 0.175, 1);
}

.p-company-overview__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.p-company-overview__img .swiper {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.p-company-overview__img .swiper-slide {
    height: 100%;
}

.p-company-overview__img .swiper-pagination {
    bottom: 1.6rem;
}

.p-company-overview__img .swiper-pagination-bullet {
    width: 0.8rem;
    height: 0.8rem;
    background: #ffffff;
    opacity: 0.55;
}

.p-company-overview__img .swiper-pagination-bullet-active {
    background: #37B18E;
    opacity: 1;
}

.p-company-overview__img .swiper-button-prev,
.p-company-overview__img .swiper-button-next {
    width: 4.4rem;
    height: 4.4rem;
    margin-top: 0;
    top: 50%;
    transform: translateY(-50%);
    color: #ffffff;
    background: rgba(24, 58, 50, 0.42);
    border: 0;
    border-radius: 50%;
    --swiper-navigation-size: 1.6rem;
}

.p-company-overview__img .swiper-button-prev {
    left: 1.4rem;
}

.p-company-overview__img .swiper-button-next {
    right: 1.4rem;
}

.p-company-overview__img .swiper-button-prev::after,
.p-company-overview__img .swiper-button-next::after {
    font-size: 1.6rem;
    font-weight: 700;
}

@media (max-width: 768px) {
    .p-company-overview__inner {
        padding-bottom: calc(var(--gap-unit)*4);
    }

    .p-company-overview__content {
        flex-direction: column;
        gap: calc(var(--gap-unit)*4);
    }

    .p-company-overview__main {
        width: 100%;
    }

    .p-company-overview__visual {
        width: 100%;
    }
}

@media (max-width: 450px) {
    .p-company-overview__inner {
        gap: calc(var(--gap-unit)*5);
    }

    .p-company-overview__row {
        flex-direction: column;
        gap: calc(var(--gap-unit)*1.5);
    }

    .p-company-overview__term {
        width: 100%;
    }

    .p-company-overview__desc {
        margin: 0;
    }

    .p-company-overview__circle {
        display: none;
    }
}



.p-company-philosophy {
    background-color: #F4F9F6;
}

.p-company-philosophy__inner {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*5);
}

.p-company-philosophy__content {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: calc(var(--gap-unit)*12);
}

.p-company-philosophy__visual {
    position: relative;
    flex: 1;
}

.p-company-philosophy__circle {
    position: absolute;
    right: -4rem;
    bottom: -4rem;
    z-index: 0;
    width: 22rem;
    height: 22rem;
    pointer-events: none;
}

.p-company-philosophy__circle svg {
    display: block;
    width: 100%;
    height: 100%;
    transform: rotate(-90deg);
}

.p-company-philosophy__circle circle {
    fill: none;
    stroke-dasharray: 600;
    stroke-dashoffset: 600;
}

.p-company-philosophy__img {
    position: relative;
    z-index: 1;
    display: flex;
    width: 100%;
    overflow: hidden;
    aspect-ratio: 36/32;
    box-shadow: 0px 22px 52px 0px #183A321F;
    clip-path: inset(0 100% 0 0);
}

.p-company-philosophy__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transform: scale(1.12);
}

.p-company-philosophy__card {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*2.75);
    width: 55%;
    padding: calc(var(--gap-unit)*4) calc(var(--gap-unit)*3.5);
    box-shadow: 0px 32px 80px 0px #183A321A;
    background-color: #FFFFFFD1;
    opacity: 0;
    transform: translate3d(1rem, .5rem, 0);
}

.p-company-philosophy__card.is-show {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.75s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-company-philosophy__card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: linear-gradient(140.11deg, rgba(55, 177, 142, 0.08) 0%, rgba(55, 177, 142, 0) 44%);
    filter: blur(10px);
    -webkit-filter: blur(10px);
    border: 1px solid #37B18E2B;
    pointer-events: none;
    z-index: 2;
    opacity: 0;
}

.p-company-philosophy__card.is-show::before {
    opacity: 1;
    transition: opacity 1s ease 0.2s;
}

.p-company-philosophy__card-title {
    position: relative;
    font-size: var(--font-size24);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: 0.07em;
    color: #1B3A31;
    z-index: 2;
    opacity: 0;
    transform: translate3d(0, 1.8rem, 0);
}

.p-company-philosophy__card.is-show .p-company-philosophy__card-title {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.65s cubic-bezier(0.53, 0.2, 0.25, 1) 0.18s,
        transform 0.8s cubic-bezier(0.22, 1, 0.36, 1) 0.18s;
}

.p-company-philosophy__card-line {
    position: relative;
    width: 100%;
    height: 1px;
    background: linear-gradient(90deg, #37B18E 0%, rgba(55, 177, 142, 0.1) 100%);
    margin: var(--gap-unit) 0;
    transform: scaleX(0);
    transform-origin: left center;
}

.p-company-philosophy__card.is-show .p-company-philosophy__card-line {
    transform: scaleX(1);
    transition: transform 0.85s cubic-bezier(0.77, 0, 0.175, 1) 0.38s;
}

.p-company-philosophy__card-line::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background-color: #37B18E;
    transform: translateY(-50%) scale(0);
}

.p-company-philosophy__card.is-show .p-company-philosophy__card-line::before {
    transform: translateY(-50%) scale(1);
    transition: transform 0.45s cubic-bezier(0.34, 1.56, 0.64, 1) 0.7s;
}

.p-company-philosophy__card-txt {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*2.75);
    font-size: var(--font-size15);
    line-height: 2;
    color: #4A5A54;
}

.p-company-philosophy__card-txt p {
    opacity: 0;
    transform: translate3d(0, 1.4rem, 0);
}

.p-company-philosophy__card.is-show .p-company-philosophy__card-txt p {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.6s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.75s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-company-philosophy__card.is-show .p-company-philosophy__card-txt p:nth-child(1) {
    transition-delay: 0.48s;
}

.p-company-philosophy__card.is-show .p-company-philosophy__card-txt p:nth-child(2) {
    transition-delay: 0.58s;
}

.p-company-philosophy__list {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*2);
    margin-top: calc(var(--gap-unit)*1.5);
    z-index: 2;
}

.p-company-philosophy__item {
    display: flex;
    align-items: center;
    gap: calc(var(--gap-unit)*1.75);
    opacity: 0;
    transform: translate3d(-1.2rem, 0, 0);
}

.p-company-philosophy__card.is-show .p-company-philosophy__item {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-company-philosophy__card.is-show .p-company-philosophy__item:nth-child(1) { transition-delay: 0.68s; }
.p-company-philosophy__card.is-show .p-company-philosophy__item:nth-child(2) { transition-delay: 0.78s; }
.p-company-philosophy__card.is-show .p-company-philosophy__item:nth-child(3) { transition-delay: 0.88s; }
.p-company-philosophy__card.is-show .p-company-philosophy__item:nth-child(4) { transition-delay: 0.98s; }
.p-company-philosophy__card.is-show .p-company-philosophy__item:nth-child(5) { transition-delay: 1.08s; }

.p-company-philosophy__icon {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 4rem;
    height: 4rem;
    border: 1px solid #37B18E7A;
    border-radius: 50%;
    box-shadow: 0px 8px 24px 0px #37B18E17;
    transform: scale(0.55);
    transition: transform 0.55s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.p-company-philosophy__card.is-show .p-company-philosophy__item .p-company-philosophy__icon {
    transform: scale(1);
}

.p-company-philosophy__card.is-show .p-company-philosophy__item:nth-child(1) .p-company-philosophy__icon { transition-delay: 0.72s; }
.p-company-philosophy__card.is-show .p-company-philosophy__item:nth-child(2) .p-company-philosophy__icon { transition-delay: 0.82s; }
.p-company-philosophy__card.is-show .p-company-philosophy__item:nth-child(3) .p-company-philosophy__icon { transition-delay: 0.92s; }
.p-company-philosophy__card.is-show .p-company-philosophy__item:nth-child(4) .p-company-philosophy__icon { transition-delay: 1.02s; }
.p-company-philosophy__card.is-show .p-company-philosophy__item:nth-child(5) .p-company-philosophy__icon { transition-delay: 1.12s; }

.p-company-philosophy__icon svg {
    width: 2rem;
    height: 2rem;
}

.p-company-philosophy__item-txt {
    flex: 1;
    font-size: var(--font-size15);
    line-height: 1.7;
    letter-spacing: 0.04em;
    color: #183A32;
}

.p-company-philosophy__foot {
    padding-top: calc(var(--gap-unit)*2.75);
    border-top: 1px solid #37B18E57;
    opacity: 0;
    transform: translate3d(0, 1.6rem, 0);
}

.p-company-philosophy__card.is-show .p-company-philosophy__foot {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.7s cubic-bezier(0.53, 0.2, 0.25, 1) 1.2s,
        transform 0.85s cubic-bezier(0.22, 1, 0.36, 1) 1.2s;
}

.p-company-philosophy__catch {
    margin-bottom: calc(var(--gap-unit)*1.5);
    font-size: var(--font-size22);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.9;
    letter-spacing: 0.08em;
    color: #183A32;
}

.p-company-philosophy__foot-txt {
    font-size: var(--font-size15);
    line-height: 2;
}

@media (max-width: 768px) {
    .p-company-philosophy__content {
        flex-direction: column-reverse;
        gap: calc(var(--gap-unit)*6);
    }

    .p-company-philosophy__card {
        width: 100%;
    }

    .p-company-philosophy__visual {
        width: 70%;
    }
}

@media (max-width: 450px) {
    .p-company-philosophy__content {
        gap: calc(var(--gap-unit)*5);
    }

    .p-company-philosophy__card {
        padding: calc(var(--gap-unit)*5) calc(var(--gap-unit)*3);
    }

    .p-company-philosophy__card-title {
        font-size: 1.9rem;
        line-height: 1.7;
    }

    .p-company-philosophy__visual {
        width: 100%;
    }

    .p-company-philosophy__circle {
        display: none;
    }
}




.p-company-credo {
    background: linear-gradient(180deg, rgba(232, 246, 239, 0.36) 0%, rgba(255, 255, 255, 0.58) 100%);
}

.p-company-credo__inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: calc(var(--gap-unit)*10);
}

.p-company-credo__logo {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 25%;
    aspect-ratio: 1/1;
}

.p-company-credo__logo--tb {
    display: none;
}

.p-company-credo__logo::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) scale(0.55);
    width: 145%;
    aspect-ratio: 1/1;
    background: radial-gradient(68.96% 72.61% at 50% 50%, rgba(55, 177, 142, 0.12) 0%, rgba(55, 177, 142, 0) 62%);
    pointer-events: none;
    opacity: 0;
}

.p-company-credo__logo.is-show::before {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
    transition:
        opacity 0.9s cubic-bezier(0.22, 1, 0.36, 1),
        transform 1.1s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-company-credo__logo img {
    position: relative;
    width: 60%;
    z-index: 2;
}

.p-company-credo__content {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*2.5);
}

.p-company-credo__txt {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*2);
    font-size: var(--font-size15);
    line-height: 2.2;
    letter-spacing: 0.04em;
    color: #4A5A54;
}

.p-company-credo__txt p {
    will-change: transform, opacity;
}

.p-company-credo__cards {
    display: flex;
    gap: calc(var(--gap-unit)*2.25);
    margin-top: calc(var(--gap-unit)*2);
}

.p-company-credo__card {
    position: relative;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*1.25);
    padding: calc(var(--gap-unit)*3) calc(var(--gap-unit)*2.75);
    text-align: center;
    background-color: #FFFFFFB8;
    border: 1px solid #37B18E33;
    overflow: hidden;
}

.p-company-credo__card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 3px;
    transform: scaleX(0);
    transform-origin: left center;
}

.p-company-credo__card:nth-child(1)::before {
    background: linear-gradient(90deg, #0096BB 0%, rgba(0, 150, 187, 0.45) 100%);
}

.p-company-credo__card:nth-child(2)::before {
    background: linear-gradient(90deg, #F1BC2E 0%, rgba(241, 188, 46, 0.45) 100%);
}

.p-company-credo__card:nth-child(3)::before {
    background: linear-gradient(90deg, #D94649 0%, rgba(217, 70, 73, 0.45) 100%);
}

.p-company-credo__card.is-show::before {
    transform: scaleX(1);
    transition: transform 0.75s cubic-bezier(0.77, 0, 0.175, 1) 0.15s;
}

.p-company-credo__card-title {
    font-size: var(--font-size22);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.9;
    letter-spacing: 0.14em;
    color: #183A32;
    opacity: 0;
    transform: translate3d(0, 0.8rem, 0);
}

.p-company-credo__card.is-show .p-company-credo__card-title {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.5s cubic-bezier(0.53, 0.2, 0.25, 1) 0.2s,
        transform 0.6s cubic-bezier(0.22, 1, 0.36, 1) 0.2s;
}

.p-company-credo__card-txt {
    font-size: var(--font-size15);
    line-height: 2;
    color: #6A7C74;
    text-align: left;
    opacity: 0;
    transform: translate3d(0, 1rem, 0);
}

.p-company-credo__card.is-show .p-company-credo__card-txt {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1) 0.32s,
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.32s;
}

@media (max-width: 768px) {
    .p-company-credo__logo--tb {
        display: flex;
    }

    .p-company-credo__logo--pc {
        display: none;
    }

    .p-company-credo__logo {
        width: 40%;
        margin: 0 auto;
        aspect-ratio: 3/2;
    }

    .p-company-credo__cards {
        gap: calc(var(--gap-unit)*1.5);
        margin: 0;
    }

    .p-company-credo__card {
        padding: calc(var(--gap-unit)*2.5) calc(var(--gap-unit)*2);
    }
}

@media (max-width: 450px) {
    .p-company-credo__logo {
        width: 65%;
    }

    .p-company-credo__cards {
        flex-direction: column;
    }

    .p-company-credo__txt {
        margin-top: calc(var(--gap-unit)*2);
    }

    .p-company-credo__card {
        padding: calc(var(--gap-unit)*2) calc(var(--gap-unit)*2.5);
    }

    .p-company-credo__card-txt {
        font-size: var(--font-size16);
    }
}



.p-company-history {
    background-color: var(--bg-white-color);
}

.p-company-history__inner {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*7.5);
}

.p-company-history__content {
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: calc(var(--gap-unit)*10);
}

.p-company-history__timeline {
    flex: 1;
    position: relative;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*3.75);
    list-style: none;
    padding: 0;
}

.p-company-history__timeline::before {
    content: "";
    position: absolute;
    top: 5%;
    left: .8rem;
    width: 2px;
    height: 92%;
    background-color: #183A322E;
    transform: scaleY(0);
    transform-origin: top center;
}

.p-company-history__timeline.is-line-show::before {
    transform: scaleY(1);
    transition: transform 1.15s cubic-bezier(0.77, 0, 0.175, 1);
}

.p-company-history__item {
    position: relative;
    display: flex;
    align-items: center;
    gap: calc(var(--gap-unit)*2);
}

.p-company-history__circle {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 1.8rem;
    height: 1.8rem;
    border: 3px solid #159A57;
    border-radius: 50%;
    background-color: var(--bg-white-color);
    margin-right: calc(var(--gap-unit)*.5);
    transform: scale(0);
}

.p-company-history__main {
    flex: 1;
    display: flex;
    align-items: center;
    gap: calc(var(--gap-unit)*2);
}

.p-company-history__date {
    font-size: var(--font-size16);
    font-family: var(--fontG);
    font-weight: 700;
    line-height: 1.9;
    letter-spacing: 0.08em;
    color: #159A57;
    width: 15rem;
    opacity: 0;
    transform: translate3d(-1.6rem, 0, 0);
}

.p-company-history__event {
    flex: 1;
    font-size: var(--font-size16);
    line-height: 1.9;
    opacity: 0;
    transform: translate3d(-1.2rem, 0, 0);
}

.p-company-history__card {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*1.25);
    width: 32%;
    padding: calc(var(--gap-unit)*4.25) calc(var(--gap-unit)*3.75);
    border: 1px solid #37B18E33;
    background-color: #FFFFFFC7;
    box-shadow: 0px 24px 60px 0px #183A3212;
    opacity: 0;
    transform: translate3d(2.4rem, 2rem, 0);
}

.p-company-history__card::before {
    content: "";
    position: absolute;
    right: -2.8rem;
    bottom: -2.8rem;
    z-index: 0;
    width: 12rem;
    height: 12rem;
    border: 1px solid #37B18E3D;
    border-radius: 50%;
    pointer-events: none;
    transform: scale(0.4);
    opacity: 0;
}

.p-company-history__card.is-show::before {
    transform: scale(1);
    opacity: 1;
    transition:
        opacity 0.8s cubic-bezier(0.22, 1, 0.36, 1) 0.15s,
        transform 1s cubic-bezier(0.22, 1, 0.36, 1) 0.15s;
}

.p-company-history__card-label {
    position: relative;
    font-size: var(--font-size14);
    font-family: var(--fontG);
    font-weight: 700;
    line-height: 1.9;
    letter-spacing: 0.28em;
    color: #159A57;
    z-index: 1;
    opacity: 0;
    transform: translate3d(0, 0.8rem, 0);
}

.p-company-history__card.is-show .p-company-history__card-label {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.5s cubic-bezier(0.53, 0.2, 0.25, 1) 0.2s,
        transform 0.6s cubic-bezier(0.22, 1, 0.36, 1) 0.2s;
}

.p-company-history__card-title {
    position: relative;
    font-size: var(--font-size24);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.08em;
    color: #183A32;
    z-index: 1;
    opacity: 0;
    transform: translate3d(0, 1rem, 0);
}

.p-company-history__card.is-show .p-company-history__card-title {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1) 0.32s,
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.32s;
}

.p-company-history__card-txt {
    position: relative;
    font-size: var(--font-size16);
    line-height: 2;
    color: #6A7C74;
    margin-top: calc(var(--gap-unit)*.75);
    z-index: 1;
    opacity: 0;
    transform: translate3d(0, 1rem, 0);
}

.p-company-history__card.is-show .p-company-history__card-txt {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1) 0.45s,
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.45s;
}

@media (max-width: 768px) {
    .p-company-history__inner {
        gap: calc(var(--gap-unit)*5);
    }

    .p-company-history__content {
        flex-direction: column;
        gap: calc(var(--gap-unit)*4);
    }

    .p-company-history__item {
        gap: calc(var(--gap-unit)*3);
    }

    .p-company-history__date {
        width: 14rem;
    }

    .p-company-history__card {
        width: 100%;
    }

    .p-company-history__timeline::before {
        height: 85%;
    }

    .p-company-history__card-title br {
        display: none;
    }
}

@media (max-width: 450px) {
    .p-company-history__timeline::before {
        top: calc(var(--gap-unit)*.5);
        bottom: unset;
        height: 94%;
        transform: scaleY(0);
        transform-origin: top center;
    }

    .p-company-history__timeline.is-line-show::before {
        transform: scaleY(1);
    }

    .p-company-history__item {
        align-items: flex-start;
    }

    .p-company-history__circle {
        margin-top: calc(var(--gap-unit)*.5);
    }

    .p-company-history__main {
        flex-direction: column;
        align-items: flex-start;
        gap: calc(var(--gap-unit));
    }

    .p-company-history__card-txt {
        font-size: var(--font-size15);
    }
}




.p-company-license {
    position: relative;
    background: linear-gradient(180deg, rgba(232, 246, 239, 0.36) 0%, rgba(255, 255, 255, 0.58) 100%);
}

.p-company-license__inner {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*7.5);
}

.p-company-license__content {
    display: flex;
    align-items: flex-start;
    gap: calc(var(--gap-unit)*10);
}

.p-company-license__feature {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*2.2);
    width: 34%;
    padding: calc(var(--gap-unit)*5) calc(var(--gap-unit)*4.25);
    border: 1px solid #37B18E2E;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.82) 0%, rgba(248, 252, 248, 0.74) 100%);
    box-shadow: 0px 24px 64px 0px #183A3212;
    overflow: hidden;
}

.p-company-license__feature::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 4px;
    height: 100%;
    background: linear-gradient(180deg, #159A57 0%, rgba(21, 154, 87, 0.2) 100%);
    transform: scaleY(0);
    transform-origin: top center;
}

.p-company-license__feature.is-show::before {
    transform: scaleY(1);
    transition: transform 0.9s cubic-bezier(0.77, 0, 0.175, 1);
}

.p-company-license__count {
    display: flex;
    align-items: baseline;
}

.p-company-license__num {
    font-size: 7.2rem;
    font-family: var(--fontT);
    line-height: 1;
    color: var(--bg-green-color);
}

.p-company-license__unit {
    font-size: var(--font-size18);
    font-family: var(--fontT);
    line-height: 1;
}

.p-company-license__feature-title {
    font-size: var(--font-size24);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.75;
    letter-spacing: 0.08em;
    color: #183A32;
    margin-top: calc(var(--gap-unit)*.5);
}

.p-company-license__feature-txt {
    font-size: var(--font-size16);
    line-height: 2;
    color: #6A7C74;
}

.p-company-license__list {
    flex: 1;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: calc(var(--gap-unit)*1.75);
    list-style: none;
    padding: 0;
}

.p-company-license__item {
    display: flex;
    align-items: center;
    padding: calc(var(--gap-unit)*1.875);
    font-size: var(--font-size16);
    line-height: 1.75;
    background-color: var(--bg-white-color);
    border: 1px solid #183A321A;
    border-left: 3px solid #37B18E73;
}

@media (max-width: 768px) {
    .p-company-license__content {
        flex-direction: column;
        gap: calc(var(--gap-unit)*5);
    }

    .p-company-license__feature {
        width: 100%;
        padding: calc(var(--gap-unit)*4) calc(var(--gap-unit)*3.5);
    }

    .p-company-license__feature-title {
        font-size: var(--font-size22);
    }

    .p-company-license__feature-txt {
        font-size: var(--font-size15);
    }

    .p-company-license__item {
        font-size: var(--font-size15);
    }

    .p-company-license__num {
        font-size: 6rem;
    }

    .p-company-license__list {
        width: 100%;
    }
}

@media (max-width: 450px) {
    .p-company-license__feature {
        padding: calc(var(--gap-unit)*3.5) calc(var(--gap-unit)*3);
    }


    .p-company-license__item {
        font-size: var(--font-size14);
        padding: calc(var(--gap-unit)*1.75) calc(var(--gap-unit)*1.5);
    }
}



.p-company-office {
    position: relative;
    background: linear-gradient(180deg, rgba(232, 246, 239, 0.36) 0%, rgba(255, 255, 255, 0.58) 100%);
}

.p-company-office__inner {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*5);
}

.p-company-office__group {
    margin-top: calc(var(--gap-unit)*5);
}

.p-company-office__group .c-sec__title {
    gap: calc(var(--gap-unit)*1.7);
    padding-bottom: calc(var(--gap-unit)*2.3);
}

.p-company-office__list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: calc(var(--gap-unit)*6.25) calc(var(--gap-unit)*2.75);
    margin-top: calc(var(--gap-unit)*5);
}

.p-company-office__card {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*2.25);
    padding: calc(var(--gap-unit)*3.5);
    background-color: #FFFFFFBD;
    border: 1px solid #37B18E2E;
    overflow: hidden;
}

.p-company-office__card::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 3px;
    background: linear-gradient(90deg, #159A57 0%, rgba(21, 154, 87, 0.2) 100%);
    transform: scaleX(0);
    transform-origin: left center;
}

.p-company-office__card.is-show::after {
    transform: scaleX(1);
    transition: transform 0.7s cubic-bezier(0.77, 0, 0.175, 1) 0.12s;
}

.p-company-office__card::before {
    content: "MAP";
    position: absolute;
    bottom: 0;
    right: calc(var(--gap-unit)*2.75);
    font-size: 5.4rem;
    font-family: var(--fontG);
    line-height: 1.7;
    letter-spacing: .09rem;
    color: #37B18E14;
    z-index: 2;
    opacity: 0;
    transform: translate3d(1.2rem, 0.8rem, 0);
}

.p-company-office__card.is-show::before {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.7s cubic-bezier(0.53, 0.2, 0.25, 1) 0.25s,
        transform 0.85s cubic-bezier(0.22, 1, 0.36, 1) 0.25s;
}

.p-company-office__name {
    font-size: var(--font-size20);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 2.2;
    letter-spacing: 0.015em;
    color: #183A32;
}

.p-company-office__info {
    flex: 1;
    font-size: var(--font-size14);
    line-height: 2;
    color: #6A7C74;
}

.p-company-office__map {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    padding: calc(var(--gap-unit)*3.75);
    overflow: hidden;
    border: 1px solid #183A321C;
    background: linear-gradient(99.75deg, rgba(168, 216, 203, 0.25) 0%, rgba(255, 255, 255, 0.7) 100%);
    transition:
        border-color 0.4s cubic-bezier(0.22, 1, 0.36, 1),
        box-shadow 0.4s cubic-bezier(0.22, 1, 0.36, 1),
        transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-company-office__map::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(105deg, rgba(21, 154, 87, 0.16) 0%, rgba(55, 177, 142, 0.08) 55%, rgba(255, 255, 255, 0) 100%);
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform 0.5s cubic-bezier(0.77, 0, 0.175, 1);
    z-index: 0;
}

.p-company-office__map::after {
    content: "";
    position: absolute;
    right: calc(var(--gap-unit)*3);
    top: 50%;
    width: 1.4rem;
    height: 1.4rem;
    border-top: 1.5px solid #159A57;
    border-right: 1.5px solid #159A57;
    opacity: 0;
    transform: translate(-0.6rem, -50%) rotate(45deg);
    transition:
        opacity 0.35s cubic-bezier(0.22, 1, 0.36, 1),
        transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
    z-index: 1;
}

.p-company-office__map:hover {
    border-color: #37B18E66;
    box-shadow: 0 1.2rem 2.8rem rgba(24, 58, 50, 0.08);
    transform: translateY(-0.2rem);
}

.p-company-office__map:hover::before {
    transform: scaleX(1);
}

.p-company-office__map:hover::after {
    opacity: 1;
    transform: translate(0, -50%) rotate(45deg);
}

.p-company-office__map-label {
    position: relative;
    z-index: 1;
    font-size: var(--font-size12);
    font-weight: 700;
    line-height: 1.9;
    letter-spacing: 0.16em;
    color: #183A327A;
    transition:
        color 0.35s cubic-bezier(0.22, 1, 0.36, 1),
        letter-spacing 0.45s cubic-bezier(0.22, 1, 0.36, 1),
        transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-company-office__map:hover .p-company-office__map-label {
    color: #159A57;
    letter-spacing: 0.2em;
    transform: translateX(-0.4rem);
}

@media (max-width: 768px) {
    .p-company-office__map {
        padding: calc(var(--gap-unit)*3);
    }
}

@media (max-width: 450px) {
    .p-company-office__list {
        grid-template-columns: 1fr;
        gap: calc(var(--gap-unit)*2.5);
        margin-top: calc(var(--gap-unit)*6);
    }

    .p-company-office__map {
        padding: calc(var(--gap-unit)*3.5);
    }
}

.p-company-office__contact {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: calc(var(--gap-unit)*5);
    padding: calc(var(--gap-unit)*4.25) calc(var(--gap-unit)*8.25);
    background: linear-gradient(99.74deg, rgba(255, 255, 255, 0.86) 0%, rgba(248, 252, 248, 0.72) 100%),
        radial-gradient(94.39% 549.95% at 94% 50%, rgba(55, 177, 142, 0.08) 0%, rgba(55, 177, 142, 0) 22%);
    border: 1px solid #37B18E3D;
    box-shadow: 0px 22px 56px 0px #183A320F;
    overflow: hidden;
}

.p-company-office__contact::before {
    content: "";
    position: absolute;
    top: -2.8rem;
    right: -2.8rem;
    width: 16.5rem;
    aspect-ratio: 1;
    border-radius: 50%;
    border: 1px solid #37B18E1F;
    pointer-events: none;
    transform: scale(0.5);
    opacity: 0;
}

.p-company-office__contact.is-show::before {
    transform: scale(1);
    opacity: 1;
    transition:
        opacity 0.8s cubic-bezier(0.22, 1, 0.36, 1) 0.15s,
        transform 1s cubic-bezier(0.22, 1, 0.36, 1) 0.15s;
}

.p-company-office__contact-main {
    flex: 1;
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    gap: calc(var(--gap-unit)*5);
}

.p-company-office__contact-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 7.6rem;
    height: 7.6rem;
    background-color: #37B18E1A;
    border-radius: 50%;
}

.p-company-office__contact-icon svg {
    width: 4.2rem;
    height: 4.2rem;
}

.p-company-office__contact-label {
    display: block;
    margin-bottom: calc(var(--gap-unit)*1.4);
    font-size: var(--font-size12);
    font-weight: 700;
    line-height: 1.9;
    letter-spacing: 0.32em;
    color: #159A57;
}

.p-company-office__contact-txt {
    font-size: var(--font-size20);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 2;
    letter-spacing: 0.01em;
    color: #1B3A32;
}

.p-company-office__mail {
    position: relative;
    z-index: 1;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: calc(var(--gap-unit)*1.75);
    padding: calc(var(--gap-unit)*2) calc(var(--gap-unit)*3.5);
    overflow: hidden;
    color: #159A57;
    background-color: #FFFFFFA8;
    border: 1px solid #37B18E2E;
    transition:
        color 0.35s cubic-bezier(0.22, 1, 0.36, 1),
        background-color 0.35s cubic-bezier(0.22, 1, 0.36, 1),
        border-color 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-company-office__mail::after {
    content: "";
    position: absolute;
    left: calc(var(--gap-unit)*3.5);
    right: calc(var(--gap-unit)*3.5);
    bottom: calc(var(--gap-unit)*1.2);
    height: 1px;
    background: linear-gradient(90deg, transparent 0%, #159A57 20%, #159A57 80%, transparent 100%);
    transform: scaleX(0);
    transform-origin: center;
    transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-company-office__mail:hover {
    color: #FFFFFF;
    background-color: #159A57;
    border-color: #159A57;
}

.p-company-office__mail:hover::after {
    transform: scaleX(1);
}

.p-company-office__mail-icon {
    position: relative;
    z-index: 1;
    display: flex;
    width: 2.8rem;
    transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.p-company-office__mail:hover .p-company-office__mail-icon {
    transform: rotate(-8deg) translateY(-0.1rem);
}

.p-company-office__mail-icon svg {
    width: 100%;
    transition: filter 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-company-office__mail:hover .p-company-office__mail-icon svg {
    filter: brightness(0) invert(1);
}

.p-company-office__mail-txt {
    position: relative;
    z-index: 1;
    font-size: var(--font-size24);
    font-family: var(--fontG);
    line-height: 1.6;
    letter-spacing: 0.02em;
    color: var(--bg-green-color);
    transition: color 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-company-office__mail:hover .p-company-office__mail-txt {
    color: #FFFFFF;
}

@media (max-width: 768px) {
    .p-company-office__contact {
        flex-direction: column;
        align-items: flex-end;
        gap: calc(var(--gap-unit)*4);
        padding: calc(var(--gap-unit)*4.25) calc(var(--gap-unit)*5);
    }

    .p-company-office__contact-text {
        flex: 1;
    }

    .p-company-office__contact-main {
        width: 100%;
        gap: calc(var(--gap-unit)*3);
    }

    .p-company-office__mail-txt {
        font-size: var(--font-size22);
    }
}

@media (max-width: 768px) {
    .p-company-office__contact {
        padding: calc(var(--gap-unit)*4) calc(var(--gap-unit)*2.5);
    }

    .p-company-office__contact-main {
        align-items: flex-start;
        gap: calc(var(--gap-unit)*2);
    }

    .p-company-office__contact-icon {
        width: 7rem;
        height: 7rem;
    }

    .p-company-office__contact-icon svg {
        width: 4rem;
        height: 4rem;
    }

    .p-company-office__mail {
        width: 100%;
    }
}


.p-company-membership {
    position: relative;
    background: linear-gradient(180deg, rgba(232, 246, 239, 0.36) 0%, rgba(255, 255, 255, 0.58) 100%);
}

.p-company-membership__inner {
    display: flex;
    align-items: flex-start;
    gap: calc(var(--gap-unit)*8.5);
}

.p-company-membership__heading {
    width: 34%;
    flex-shrink: 0;
}

.p-company-membership__heading .c-sec__heading {
    gap: calc(var(--gap-unit)*3.5);
}

.p-company-membership__list {
    flex: 1;
    min-width: 0;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: calc(var(--gap-unit)*1.5);
    list-style: none;
    padding: 0;
    margin: 0;
}

.p-company-membership__item {
    display: flex;
    align-items: center;
    gap: calc(var(--gap-unit)*1.75);
    padding: calc(var(--gap-unit)*3.25) calc(var(--gap-unit)*2.25);
    font-size: var(--font-size16);
    line-height: 1.4;
    color: #183A32;
    background-color: var(--bg-white-color);
    border: 1px solid #183A321A;
    box-shadow: 0px 16px 38px 0px #183A320B;
}

.p-company-membership__item::before {
    content: "";
    flex-shrink: 0;
    width: 1rem;
    height: 1rem;
    border-radius: 50%;
    background-color: var(--bg-green-color);
}

@media (max-width: 768px) {
    .p-company-membership__inner {
        flex-direction: column;
        gap: calc(var(--gap-unit)*5);
    }

    .p-company-membership__heading {
        width: 100%;
    }

    .p-company-membership__list {
        width: 100%;
    }

    .p-company-membership__item {
        font-size: var(--font-size15);
        padding: calc(var(--gap-unit)*2) calc(var(--gap-unit)*2.25);
    }
}

@media (max-width: 450px) {
    .p-company-membership__list {
        grid-template-columns: repeat(1, 1fr);
        gap: calc(var(--gap-unit)*1.5);
    }

    .p-company-membership__item {
        font-size: var(--font-size16);
        gap: calc(var(--gap-unit)*1.5);
        padding: calc(var(--gap-unit)*2.5) calc(var(--gap-unit)*3);
    }
}


/* -------page service------- */
.p-service-message__inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: calc(var(--gap-unit)*7);
    padding: 0 4rem;
}

.p-service-message__content {
    flex: 1;
    position: relative;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*2.7);
    padding-left: calc(var(--gap-unit)*3.75);
}

.p-service-message__content::before {
    content: "";
    position: absolute;
    top: .6rem;
    bottom: 2.8rem;
    left: 0;
    width: 2px;
    background: linear-gradient(180deg, #159A57 0%, rgba(21, 154, 87, 0) 100%);
    transform: scaleY(0);
    transform-origin: top center;
}

.p-service-message__content.is-line-show::before {
    transform: scaleY(1);
    transition: transform 0.9s cubic-bezier(0.77, 0, 0.175, 1);
}

.p-service-message__title {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*2.125);
}

.p-service-message__title-en {
    font-size: var(--font-size12);
    font-weight: 700;
    line-height: 1.9;
    letter-spacing: 0.22em;
    color: #159A57;
}

.p-service-message__title-ja {
    font-size: var(--font-size32);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.9;
    letter-spacing: 0.02em;
    color: #11324A;
}

.p-service-message__txt {
    font-size: var(--font-size15);
    line-height: 1.9;
}

.p-service-message__visual {
    position: relative;
    width: 45%;
    overflow: hidden;
    box-shadow: 0px 22px 60px 0px #11324A1A;
}

.p-service-message__visual::before,
.p-service-message__visual::after {
    content: "";
    position: absolute;
    inset: 1.2rem;
    z-index: 2;
    border: 1px solid #FFFFFFCC;
    pointer-events: none;
    opacity: 0;
    transform: scale(0.12);
    transform-origin: center center;
}

.p-service-message__visual::before {
    border-color: rgba(255, 255, 255, 0.45);
}

.p-service-message__visual.is-frame-show::before {
    animation: serviceFrameRipple 1.35s 0.15s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.p-service-message__visual.is-frame-show::after {
    animation: serviceFrameRippleSettle 1.15s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes serviceFrameRipple {
    0% {
        opacity: 0.75;
        transform: scale(0.12);
        border-color: rgba(255, 255, 255, 0.7);
    }

    70% {
        opacity: 0.35;
        transform: scale(1.08);
        border-color: rgba(255, 255, 255, 0.25);
    }

    100% {
        opacity: 0;
        transform: scale(1.18);
        border-color: rgba(255, 255, 255, 0);
    }
}

@keyframes serviceFrameRippleSettle {
    0% {
        opacity: 0.9;
        transform: scale(0.18);
    }

    60% {
        opacity: 1;
        transform: scale(1.03);
    }

    100% {
        opacity: 1;
        transform: scale(1);
    }
}

.p-service-message__img {
    display: flex;
    aspect-ratio: 472/206;
    overflow: hidden;
    background-color: #E5EBE7;
    clip-path: circle(0% at 50% 50%);
}

.p-service-message__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transform: scale(1.14);
}

@media (max-width: 768px) {
    .p-service-message__inner {
        padding: 0;
        gap: calc(var(--gap-unit)*4);
    }

    .p-service-message__content {
        padding-left: calc(var(--gap-unit)*2.5);
        gap: calc(var(--gap-unit)*2);
    }

    .p-service-message__title {
        gap: calc(var(--gap-unit)*1.5);
    }

    .p-service-message__title-ja {
        font-size: var(--font-size26);
    }
}

@media (max-width: 450px) {
    .p-service-message__inner {
        flex-direction: column;
    }

    .p-service-message__visual {
        width: 100%;
    }
}



.p-service-list {
    position: relative;
    background: linear-gradient(180deg, #F4FBF7 0%, #FFFFFF 100%);
}

.p-service-list__inner {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*8);
    padding: 0 4rem;
}

.p-service-list__heading {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(var(--gap-unit)*3.125);
}

.p-service-list__title {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(var(--gap-unit)*2.25);
}

.p-service-list__title-en {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: calc(var(--gap-unit)*1.75);
    font-size: var(--font-size12);
    font-weight: 700;
    line-height: 1.9;
    letter-spacing: 0.22em;
    color: #159A57;
}

.p-service-list__title-en::before {
    content: "";
    display: block;
    width: 3.5rem;
    height: 1px;
    background-color: var(--bg-green-color);
    transform: scaleX(0);
    transform-origin: right center;
}

.p-service-list__title.is-show .p-service-list__title-en::before {
    transform: scaleX(1);
    transition: transform 0.7s cubic-bezier(0.77, 0, 0.175, 1) 0.15s;
}

.p-service-list__title-ja {
    font-size: 4rem;
    font-family: var(--fontT);
    font-weight: 600;
    line-height: 1.6;
    letter-spacing: 0.08em;
    color: #11324A;
    text-align: center;
}

.p-service-list__lead {
    font-size: var(--font-size15);
    line-height: 1.9;
    letter-spacing: .6px;
    color: #536962;
    text-align: center;
}

.p-service-list__items {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*14);
}

.p-service-list__item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: calc(var(--gap-unit)*8);
}

.p-service-list__item--reverse {
    flex-direction: row-reverse;
}

.p-service-list__media {
    position: relative;
    width: 44%;
    overflow: hidden;
    box-shadow: 0px 22px 60px 0px #11324A1A;
}

.p-service-list__media::before,
.p-service-list__media::after {
    content: none;
    display: none;
}

.p-service-list__media::before {
    border-color: rgba(255, 255, 255, 0.45);
}

.p-service-list__media.is-frame-show::before {
    animation: serviceFrameRipple 1.35s 0.15s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.p-service-list__media.is-frame-show::after {
    animation: serviceFrameRippleSettle 1.15s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.p-service-list__img {
    position: relative;
    display: flex;
    width: 100%;
    aspect-ratio: 45 / 37;
    overflow: hidden;
    background-color: #E5EBE7;
    z-index: 2;
    clip-path: circle(0% at 50% 50%);
}

.p-service-list__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transform: scale(1.14);
}

.p-service-list__img .swiper {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.p-service-list__img .swiper-slide {
    height: 100%;
}

.p-service-list__img .swiper-pagination {
    bottom: 1.4rem;
}

.p-service-list__img .swiper-pagination-bullet {
    width: 0.8rem;
    height: 0.8rem;
    background: #ffffff;
    opacity: 0.55;
}

.p-service-list__img .swiper-pagination-bullet-active {
    background: #37B18E;
    opacity: 1;
}

.p-service-list__img .swiper-button-prev,
.p-service-list__img .swiper-button-next {
    width: 4rem;
    height: 4rem;
    margin-top: 0;
    top: 50%;
    transform: translateY(-50%);
    color: #ffffff;
    background: rgba(24, 58, 50, 0.42);
    border: 0;
    border-radius: 50%;
    --swiper-navigation-size: 1.5rem;
}

.p-service-list__img .swiper-button-prev {
    left: 1.2rem;
}

.p-service-list__img .swiper-button-next {
    right: 1.2rem;
}

.p-service-list__img .swiper-button-prev::after,
.p-service-list__img .swiper-button-next::after {
    font-size: 1.5rem;
    font-weight: 700;
}

.p-service-list__content {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*2.25);
}

.p-service-list__meta {
    position: relative;
    padding-top: var(--gap-unit);
}

.p-service-list__num {
    position: absolute;
    bottom: -2rem;
    left: calc(var(--gap-unit)*-1);
    font-size: 11rem;
    font-family: var(--fontT);
    font-weight: 600;
    line-height: 1;
    color: #11324A17;
    pointer-events: none;
    opacity: 0;
    transform: translate3d(0, 1.5rem, 0) scale(0.9);
}

.p-service-list__en {
    position: relative;
    z-index: 1;
    font-size: var(--font-size12);
    font-weight: 700;
    line-height: 1.9;
    letter-spacing: 0.22em;
    color: var(--bg-green-color);
    opacity: 0;
    transform: translate3d(0, 1rem, 0);
}

.p-service-list__name {
    position: relative;
    font-size: var(--font-size32);
    font-family: var(--fontT);
    font-weight: 600;
    line-height: 1.5;
    color: #11324A;
    padding-bottom: calc(var(--gap-unit)*2.25);
    opacity: 0;
    transform: translate3d(0, 1.4rem, 0);
}

.p-service-list__name::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 7.6rem;
    height: 1px;
    background-color: var(--bg-green-color);
    transform: scaleX(0);
    transform-origin: left center;
}

.p-service-list__item.is-show .p-service-list__name::after {
    transform: scaleX(1);
    transition: transform 0.7s cubic-bezier(0.77, 0, 0.175, 1) 0.35s;
}

.p-service-list__txt {
    font-size: var(--font-size15);
    line-height: 1.9;
    padding-top: var(--gap-unit);
    padding-bottom: calc(var(--gap-unit)*1.25);
    opacity: 0;
    transform: translate3d(0, 1.4rem, 0);
}

.p-service-list__detail {
    font-size: var(--font-size14);
    line-height: 1.9;
    color: #536962;
    padding: calc(var(--gap-unit)*2.7) calc(var(--gap-unit)*3);
    background-color: #FFFFFFC7;
    border: 1px solid #DCEBE3;
    border-radius: calc(var(--gap-unit)*2);
    opacity: 0;
    transform: translate3d(0, 1.6rem, 0);
}

.p-service-list__detail-label {
    font-weight: 700;
    color: #11324A;
}

@media (max-width: 768px) {
    .p-service-list__inner {
        padding: 0;
    }

    .p-service-list__title-ja {
        font-size: var(--font-size32);
    }

    .p-service-list__items {
        gap: calc(var(--gap-unit)*10);
    }

    .p-service-list__item {
        gap: calc(var(--gap-unit)*4);
    }

    .p-service-list__num {
        font-size: 9rem;
    }

    .p-service-list__name {
        font-size: var(--font-size28);
    }
}

@media (max-width: 450px) {
    .p-service-list__title-ja {
        font-size: 2.5rem;
    }

    .p-service-list__lead {
        text-align: left;
    }

    .p-service-list__item {
        flex-direction: column-reverse;
    }

    .p-service-list__content {
        gap: calc(var(--gap-unit)*2);
    }

    .p-service-list__name {
        padding-bottom: calc(var(--gap-unit)*2);
    }

    .p-service-list__media {
        width: 100%;
    }
}







/* -------page ai------- */
.p-ai-intro {
    position: relative;
}

.p-ai-intro__inner {
    padding: 0 13rem;
}

.p-ai-intro__content {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*2.75);
    padding-left: calc(var(--gap-unit)*3.8);
}

.p-ai-intro__content::before {
    content: "";
    position: absolute;
    top: .6rem;
    left: 0;
    bottom: 2rem;
    width: 3px;
    background: linear-gradient(180deg, #159A57 0%, rgba(21, 154, 87, 0) 100%);
    transform: scaleY(0);
    transform-origin: top center;
}

.p-ai-intro__content.is-line-show::before {
    transform: scaleY(1);
    transition: transform 0.9s cubic-bezier(0.77, 0, 0.175, 1);
}

.p-ai-intro__head {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*2);
}

.p-ai-intro__label {
    font-size: var(--font-size12);
    font-weight: 700;
    line-height: 2;
    letter-spacing: 0.28em;
    color: #159A57;
}

.p-ai-intro__title {
    font-size: var(--font-size34);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: 0.02em;
}

.p-ai-intro__mark {
    position: relative;
    display: inline-block;
    cursor: default;
    transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-ai-intro__mark span {
    position: relative;
    z-index: 1;
    transition: color 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-ai-intro__mark::before {
    content: "";
    position: absolute;
    bottom: -3px;
    left: 0;
    width: 100%;
    height: calc(var(--gap-unit)*2.1);
    background-color: #37B18E2E;
    transform: scaleX(0);
    transform-origin: left center;
    transition:
        transform 0.55s cubic-bezier(0.77, 0, 0.175, 1),
        background-color 0.4s cubic-bezier(0.22, 1, 0.36, 1),
        height 0.4s cubic-bezier(0.22, 1, 0.36, 1),
        box-shadow 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-ai-intro__mark.is-show::before {
    transform: scaleX(1);
}

.p-ai-intro__mark::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -3px;
    width: 100%;
    height: 2px;
    background: linear-gradient(90deg, #159A57 0%, rgba(21, 154, 87, 0.2) 100%);
    transform: scaleX(0);
    transform-origin: left center;
    opacity: 0;
    transition:
        transform 0.45s cubic-bezier(0.22, 1, 0.36, 1),
        opacity 0.35s cubic-bezier(0.22, 1, 0.36, 1);
    z-index: 2;
}

.p-ai-intro__mark:hover {
    transform: translateY(-0.15rem);
}

.p-ai-intro__mark:hover span {
    color: #0F7A44;
}

.p-ai-intro__mark:hover::before {
    background-color: rgba(55, 177, 142, 0.38);
    height: calc(var(--gap-unit)*2.6);
    box-shadow: 0 0 1.6rem rgba(55, 177, 142, 0.25);
}

.p-ai-intro__mark:hover::after {
    transform: scaleX(1);
    opacity: 1;
}

.p-ai-intro__txt {
    font-size: var(--font-size16);
    line-height: 2.1;
}

@media (max-width: 768px) {
    .p-ai-intro__inner {
        padding: 0;
    }

    .p-ai-intro__title {
        font-size: var(--font-size26);
    }

    .p-ai-intro__txt {
        font-size: var(--font-size15);
    }
}

@media (max-width: 450px) {
    .p-ai-intro__mark::before,
    .p-ai-intro__mark::after {
        display: none;
    }

    .p-ai-intro__mark:hover {
        transform: none;
    }

    .p-ai-intro__mark:hover span {
        color: inherit;
    }

    .p-ai-intro__content {
        padding-left: calc(var(--gap-unit)*3.5);
    }
}



.p-ai-solution {
    position: relative;
    background-color: var(--bg-white-color);
}

.p-ai-solution__content {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*3.325);
}

.p-ai-solution__list {
    display: flex;
    gap: calc(var(--gap-unit)*2.25);
}

.p-ai-solution__card {
    position: relative;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*2);
    padding: calc(var(--gap-unit)*3.5) calc(var(--gap-unit)*3);
    background-color: var(--bg-white-color);
    border: 1px solid #E0EBE4;
    border-right: none;
    box-shadow: 0px 18px 56px 0px #182F280F;
    overflow: hidden;
    opacity: 0;
    transform: translate3d(0, 2.4rem, 0);
}

.p-ai-solution__card.is-show {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-ai-solution__card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 3px;
    background: linear-gradient(90deg, #159A57 0%, rgba(21, 154, 87, 0.2) 100%);
    transform: scaleX(0);
    transform-origin: left center;
}

.p-ai-solution__card.is-show::before {
    transform: scaleX(1);
    transition: transform 0.7s cubic-bezier(0.77, 0, 0.175, 1) 0.12s;
}

.p-ai-solution__list .p-ai-solution__card:last-child {
    border-right: 1px solid #E0EBE4;
}

.p-ai-solution__num {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 4rem;
    height: 4rem;
    font-size: var(--font-size18);
    font-family: var(--fontT);
    line-height: 1;
    color: #1B3A31;
    background-color: #EEF7F2;
    border: 1px solid #69A78A6B;
    opacity: 0;
    transform: scale(0.6);
}

.p-ai-solution__card.is-show .p-ai-solution__num {
    opacity: 1;
    transform: scale(1);
    transition:
        opacity 0.4s cubic-bezier(0.22, 1, 0.36, 1) 0.15s,
        transform 0.55s cubic-bezier(0.34, 1.56, 0.64, 1) 0.15s;
}

.p-ai-solution__card-title {
    font-size: var(--font-size28);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0.04em;
    color: #1B3A31;
    opacity: 0;
    transform: translate3d(0, 1rem, 0);
}

.p-ai-solution__card.is-show .p-ai-solution__card-title {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.5s cubic-bezier(0.53, 0.2, 0.25, 1) 0.25s,
        transform 0.6s cubic-bezier(0.22, 1, 0.36, 1) 0.25s;
}

.p-ai-solution__card-txt {
    font-size: var(--font-size15);
    line-height: 2;
    color: #667A72;
    opacity: 0;
    transform: translate3d(0, 1rem, 0);
}

.p-ai-solution__card.is-show .p-ai-solution__card-txt {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.5s cubic-bezier(0.53, 0.2, 0.25, 1) 0.38s,
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.38s;
}

.p-ai-solution__arrow {
    display: flex;
    width: 80%;
    margin: 0 auto;
    opacity: 0;
    clip-path: inset(0 0 100% 0);
}

.p-ai-solution__arrow.is-show {
    opacity: 1;
    clip-path: inset(0 0 0 0);
    transition:
        opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1),
        clip-path 0.9s cubic-bezier(0.77, 0, 0.175, 1);
}

.p-ai-solution__arrow img {
    width: 100%;
}

.p-ai-solution__result {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*1.5);
    padding: calc(var(--gap-unit)*7) 25rem;
    background: radial-gradient(90.17% 403.9% at 88% 12%, rgba(105, 167, 138, 0.13) 0%, rgba(105, 167, 138, 0) 25%), linear-gradient(102.58deg, rgba(238, 247, 242, 0.94) 0%, rgba(255, 255, 255, 0.98) 100%);
    border: 1px solid #69A78A47;
    box-shadow: 0px 18px 56px 0px #182F280D;
    overflow: hidden;
    clip-path: circle(0% at 50% 50%);
}

.p-ai-solution__result.is-show {
    clip-path: circle(140% at 50% 50%);
    transition: clip-path 1.05s cubic-bezier(0.77, 0, 0.175, 1);
}

.p-ai-solution__result::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 12rem;
    height: 12rem;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(21, 154, 87, 0.22) 0%, rgba(21, 154, 87, 0) 70%);
    transform: translate(-50%, -50%) scale(0.2);
    opacity: 0;
    pointer-events: none;
}

.p-ai-solution__result.is-show::before {
    animation: aiSolutionBloom 1.4s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.p-ai-solution__result::after {
    content: "";
    position: absolute;
    inset: 0;
    border: 1px solid transparent;
    pointer-events: none;
    opacity: 0;
}

.p-ai-solution__result.is-show::after {
    animation: aiSolutionBorderFlash 1.1s cubic-bezier(0.22, 1, 0.36, 1) 0.25s forwards;
}

@keyframes aiSolutionBloom {
    0% {
        opacity: 0;
        transform: translate(-50%, -50%) scale(0.2);
    }
    35% {
        opacity: 1;
    }
    100% {
        opacity: 0;
        transform: translate(-50%, -50%) scale(4.5);
    }
}

@keyframes aiSolutionBorderFlash {
    0% {
        opacity: 0;
        box-shadow: inset 0 0 0 0 rgba(21, 154, 87, 0);
    }
    40% {
        opacity: 1;
        box-shadow: inset 0 0 0 2px rgba(21, 154, 87, 0.35);
    }
    100% {
        opacity: 0;
        box-shadow: inset 0 0 0 0 rgba(21, 154, 87, 0);
    }
}

.p-ai-solution__result-label {
    position: relative;
    display: inline-flex;
    align-self: flex-start;
    font-size: var(--font-size20);
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0.01em;
    color: var(--bg-green-color);
}

.p-ai-solution__result-label > span {
    display: inline-block;
    opacity: 0;
    transform: translate3d(-1.2rem, 0, 0);
    filter: blur(4px);
}

.p-ai-solution__result.is-show .p-ai-solution__result-label > span {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    filter: blur(0);
    transition:
        opacity 0.55s cubic-bezier(0.22, 1, 0.36, 1) 0.45s,
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.45s,
        filter 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.45s;
}

.p-ai-solution__result-txt {
    position: relative;
    font-size: var(--font-size32);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: 0.04em;
    color: #1B3A31;
    perspective: 640px;
}

.p-ai-solution__result-txt .char {
    display: inline-block;
    opacity: 0;
    transform: translate3d(0, 0.85em, 0) rotateX(-55deg);
    transform-origin: 50% 100%;
}

@media (max-width: 768px) {
    .p-ai-solution__list {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: calc(var(--gap-unit)*2);
    }

    .p-ai-solution__card,
    .p-ai-solution__list .p-ai-solution__card:last-child {
        border-right: 1px solid #E0EBE4;
    }

    .p-ai-solution__card-title {
        font-size: var(--font-size26);
    }

    .p-ai-solution__result {
        gap: calc(var(--gap-unit)*2);
        padding: calc(var(--gap-unit)*5) calc(var(--gap-unit)*10);
    }

    .p-ai-solution__result-txt {
        font-size: var(--font-size26);
    }

    .p-ai-solution__result-label {
        font-size: var(--font-size16);
    }
}

@media (max-width: 450px) {
    .p-ai-solution__list {
        grid-template-columns: 1fr;
        gap: calc(var(--gap-unit)*1.5);
    }

    .p-ai-solution__card-title {
        font-size: var(--font-size24);
    }

    .p-ai-solution__card-title br {
        display: none;
    }

    .p-ai-solution__arrow {
        width: 100%;
    }

    .p-ai-solution__result {
        padding: calc(var(--gap-unit)*4) calc(var(--gap-unit)*2.5);
    }

    .p-ai-solution__result-label {
        font-size: var(--font-size15);
    }

    .p-ai-solution__result-txt {
        font-size: var(--font-size22);
    }
}



.p-ai-lineup {
    position: relative;
    background-color: var(--bg-white-color);
}

.p-ai-lineup__inner {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*2);
}

.p-ai-lineup__list {
    display: flex;
    gap: calc(var(--gap-unit)*2.5);
}

.p-ai-lineup__card {
    position: relative;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*2.75);
    padding: calc(var(--gap-unit)*3.75) calc(var(--gap-unit)*3);
    background-color: var(--bg-white-color);
    border: 1px solid #DDE9E2;
    overflow: hidden;
    opacity: 0;
    transform: translate3d(0, 2.8rem, 0);
}

.p-ai-lineup__card.is-show {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.75s cubic-bezier(0.22, 1, 0.36, 1),
        border-color 0.4s ease,
        box-shadow 0.4s ease;
}

.p-ai-lineup__card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 3px;
    background: linear-gradient(90deg, #159A57 0%, rgba(21, 154, 87, 0.15) 100%);
    transform: scaleX(0);
    transform-origin: left center;
}

.p-ai-lineup__card.is-show::before {
    transform: scaleX(1);
    transition: transform 0.8s cubic-bezier(0.77, 0, 0.175, 1) 0.08s;
}

.p-ai-lineup__card::after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 0 2.4rem 2.4rem 0;
    border-color: transparent rgba(21, 154, 87, 0.12) transparent transparent;
    opacity: 0;
    transform: translate3d(0.6rem, -0.6rem, 0);
}

.p-ai-lineup__card.is-show::after {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1) 0.35s,
        transform 0.55s cubic-bezier(0.22, 1, 0.36, 1) 0.35s;
}

.p-ai-lineup__num {
    display: block;
    font-size: 4.2rem;
    font-family: var(--fontT);
    font-weight: 500;
    line-height: 1;
    color: #1B3A3138;
    opacity: 0;
    transform: translate3d(-0.6rem, 1.2rem, 0) scale(1.15);
    filter: blur(3px);
}

.p-ai-lineup__card.is-show .p-ai-lineup__num {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
    filter: blur(0);
    transition:
        opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1) 0.18s,
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.18s,
        filter 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.18s;
}

.p-ai-lineup__en {
    display: inline-block;
    align-self: flex-start;
    font-size: var(--font-size12);
    font-weight: 700;
    line-height: 1.7;
    letter-spacing: 0.08em;
    color: #5D9880;
    clip-path: inset(0 100% 0 0);
    opacity: 0;
}

.p-ai-lineup__card.is-show .p-ai-lineup__en {
    clip-path: inset(0 0 0 0);
    opacity: 1;
    transition:
        clip-path 0.75s cubic-bezier(0.77, 0, 0.175, 1) 0.32s,
        opacity 0.4s ease 0.32s;
}

.p-ai-lineup__name {
    font-size: var(--font-size24);
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: 0.05em;
    color: #1B3A31;
    opacity: 0;
    transform: translate3d(0, 1rem, 0);
}

.p-ai-lineup__card.is-show .p-ai-lineup__name {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.5s cubic-bezier(0.53, 0.2, 0.25, 1) 0.48s,
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.48s;
}

@media (hover: hover) {
    .p-ai-lineup__card.is-show:hover {
        border-color: #69A78A;
        box-shadow: 0 16px 40px rgba(24, 47, 40, 0.08);
    }

    .p-ai-lineup__card.is-show:hover .p-ai-lineup__num {
        color: #159A574D;
        transition: color 0.35s ease;
    }

    .p-ai-lineup__card.is-show:hover .p-ai-lineup__name {
        color: #159A57;
        transition: color 0.35s ease;
    }
}

@media (max-width: 768px) {
    .p-ai-lineup__list {
        flex-wrap: wrap;
        justify-content: center;
    }

    .p-ai-lineup__card {
        flex: none;
        width: calc(calc(100% - calc(var(--gap-unit)*5))/3);
        padding: calc(var(--gap-unit)*3.5) calc(var(--gap-unit)*2.5);
    }
}

@media (max-width: 450px) {
    .p-ai-lineup__list {
        flex-wrap: wrap;
        justify-content: center;
        gap: calc(var(--gap-unit)*2);
    }

    .p-ai-lineup__card {
        flex: none;
        width: calc(calc(100% - calc(var(--gap-unit)*2))/2);
        padding: calc(var(--gap-unit)*3.5) calc(var(--gap-unit)*2.5);
    }

    .p-ai-lineup__name {
        font-size: var(--font-size22);
    }
}

.p-ai-lineup__cta {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: calc(var(--gap-unit)*3);
    width: 100%;
    margin-top: calc(var(--gap-unit)*5);
    padding: calc(var(--gap-unit)*7.5) calc(var(--gap-unit)*10.5);
    background: linear-gradient(90deg, rgba(244, 250, 247, 0.42) 0%, rgba(255, 255, 255, 0.92) 40%, rgba(255, 255, 255, 0.98) 100%);
    border: 1px solid #173D3426;
    box-shadow: 0px 24px 50px 0px #173D3412;
    overflow: hidden;
    transition:
        border-color 0.35s ease,
        box-shadow 0.35s ease,
        transform 0.35s ease;
}

.p-ai-lineup__cta-illust {
    position: absolute;
    bottom: 0;
    left: 10rem;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    width: 21rem;
}

.p-ai-lineup__cta-illust::before {
    content: "";
    position: absolute;
    left: 65%;
    top: 1.7rem;
    width: 36rem;
    height: 36rem;
    border-radius: 50%;
    background: linear-gradient(230.87deg, rgba(55, 177, 142, 0.224) 10.96%, rgba(55, 177, 142, 0.056) 27.7%, rgba(255, 255, 255, 0.14) 38.18%);
    transform: translateX(-50%);
    z-index: 0;
}

.p-ai-lineup__cta-illust img {
    position: relative;
    z-index: 1;
    width: 100%;
}

.p-ai-lineup__cta-body {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*1);
    margin-left: auto;
}

.p-ai-lineup__cta-title {
    font-size: var(--font-size18);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: 0.04em;
    color: #173D34;
}

.p-ai-lineup__cta-txt {
    font-size: var(--font-size14);
    line-height: 1.9;
    color: #1F272499;
}

.p-ai-lineup__cta-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: calc(var(--gap-unit)*1.25);
    flex-shrink: 0;
    padding: calc(var(--gap-unit)*1.5) calc(var(--gap-unit)*4.5);
    border: 1px solid #37B18E80;
    border-radius: 999px;
    background-color: var(--bg-white-color);
    transition:
        background-color 0.35s ease,
        border-color 0.35s ease,
        color 0.35s ease;
}

.p-ai-lineup__cta-btn-txt {
    font-size: var(--font-size15);
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: 0.08em;
    color: #173D34;
    transition: color 0.35s ease;
}

.p-ai-lineup__cta-btn-arrow {
    font-size: var(--font-size14);
    line-height: 1;
    color: #1B3A31;
    transition:
        color 0.35s ease,
        transform 0.35s ease;
}

@media (hover: hover) {
    .p-ai-lineup__cta:hover {
        border-color: #69A78A;
        box-shadow: 0 20px 48px rgba(24, 58, 50, 0.1);
        transform: translateY(-2px);
    }

    .p-ai-lineup__cta:hover .p-ai-lineup__cta-btn {
        background-color: var(--bg-green-color);
        border-color: var(--bg-green-color);
    }

    .p-ai-lineup__cta:hover .p-ai-lineup__cta-btn-txt,
    .p-ai-lineup__cta:hover .p-ai-lineup__cta-btn-arrow {
        color: #FFFFFF;
    }

    .p-ai-lineup__cta:hover .p-ai-lineup__cta-btn-arrow {
        transform: translateX(0.3rem);
    }
}

@media (max-width: 768px) {
    .p-ai-lineup__cta {
        flex-direction: column;
        align-items: center;
        gap: calc(var(--gap-unit)*2.5);
        padding: calc(var(--gap-unit)*2.5) calc(var(--gap-unit)*3);
    }

    .p-ai-lineup__cta-illust {
        position: relative;
        left: auto;
        bottom: auto;
        width: 15rem;
        height: auto;
    }

    .p-ai-lineup__cta-illust::before {
        display: none;
    }

    .p-ai-lineup__cta-illust img {
        width: 100%;
    }

    .p-ai-lineup__cta-body {
        margin-left: 0;
    }

    .p-ai-lineup__cta-title {
        font-size: var(--font-size18);
    }
}

@media (max-width: 450px) {
    .p-ai-lineup__cta {
        flex-direction: column;
        align-items: center;
        text-align: center;
        gap: calc(var(--gap-unit)*2);
        padding: calc(var(--gap-unit)*2.5) calc(var(--gap-unit)*2.5);
    }

    .p-ai-lineup__cta-body {
        flex: none;
        width: 100%;
        align-items: center;
    }

    .p-ai-lineup__cta-title {
        font-size: var(--font-size18);
    }

    .p-ai-lineup__cta-txt {
        font-size: var(--font-size14);
    }

    .p-ai-lineup__cta-btn {
        width: 100%;
        margin-left: 0;
        padding: calc(var(--gap-unit)*2.5) calc(var(--gap-unit)*3);
    }
}

.p-ai-detail {
    position: relative;
    background: linear-gradient(180deg, #F7FAF7 0%, #EEF7F2 100%);
}

.p-ai-detail__inner {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*11.5);
}

.p-ai-detail__block {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: calc(var(--gap-unit)*8);
}

.p-ai-detail__block--reverse {
    flex-direction: row-reverse;
}

.p-ai-detail__media {
    position: relative;
    width: 33%;
    padding: 0 0 calc(var(--gap-unit)*3) calc(var(--gap-unit)*3);
    perspective: 900px;
}

.p-ai-detail__media::before {
    content: "";
    position: absolute;
    bottom: 1.8rem;
    left: 0;
    z-index: 1;
    width: 18rem;
    height: 10.5rem;
    background-color: var(--bg-white-color);
    border: 1px solid #DDE9E2;
    box-shadow: 0px 10px 24px 0px #182F280D;
    opacity: 0;
    transform: scale(0.6);
    transform-origin: center center;
}

.p-ai-detail__media.is-frame-show::before {
    animation: aiDetailFrameRipple 1.25s 0.2s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.p-ai-detail__media::after {
    content: "";
    position: absolute;
    bottom: 0;
    right: calc(var(--gap-unit)*-2);
    z-index: 0;
    width: 78%;
    height: 78%;
    background-color: #69A78A1F;
    border: 1px solid #69A78A3D;
    opacity: 0;
    transform: scale(0.55);
    transform-origin: center center;
}

.p-ai-detail__media.is-frame-show::after {
    animation: aiDetailFrameSettle 1.1s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes aiDetailFrameRipple {
    0% {
        opacity: 0;
        transform: scale(0.55);
    }
    45% {
        opacity: 1;
        transform: scale(1.06);
    }
    100% {
        opacity: 1;
        transform: scale(1);
    }
}

@keyframes aiDetailFrameSettle {
    0% {
        opacity: 0;
        transform: scale(0.5);
    }
    55% {
        opacity: 1;
        transform: scale(1.04);
    }
    100% {
        opacity: 1;
        transform: scale(1);
    }
}

.p-ai-detail__img {
    position: relative;
    display: flex;
    width: 100%;
    aspect-ratio: 336 / 420;
    overflow: hidden;
    box-shadow: 0px 28px 80px 0px #142E261A;
    z-index: 2;
    clip-path: circle(0% at 18% 82%);
    transform: rotateY(18deg) translate3d(-1.2rem, 0, 0);
    transform-origin: left center;
    opacity: 0;
}

.p-ai-detail__block.is-media-show .p-ai-detail__img {
    clip-path: circle(140% at 18% 82%);
    transform: rotateY(0deg) translate3d(0, 0, 0);
    opacity: 1;
    transition:
        clip-path 1.15s cubic-bezier(0.77, 0, 0.175, 1),
        transform 1.05s cubic-bezier(0.22, 1, 0.36, 1),
        opacity 0.35s ease;
}

.p-ai-detail__block--reverse .p-ai-detail__img {
    clip-path: circle(0% at 82% 82%);
    transform: rotateY(-18deg) translate3d(1.2rem, 0, 0);
    transform-origin: right center;
}

.p-ai-detail__block--reverse.is-media-show .p-ai-detail__img {
    clip-path: circle(140% at 82% 82%);
    transform: rotateY(0deg) translate3d(0, 0, 0);
}

.p-ai-detail__img::before {
    content: "";
    position: absolute;
    inset: -1px;
    z-index: 4;
    border: 2px solid rgba(21, 154, 87, 0.55);
    opacity: 0;
    transform: scale(1.08);
    pointer-events: none;
}

.p-ai-detail__block.is-media-show .p-ai-detail__img::before {
    animation: aiDetailBorderSettle 1s cubic-bezier(0.22, 1, 0.36, 1) 0.35s forwards;
}

@keyframes aiDetailBorderSettle {
    0% {
        opacity: 0;
        transform: scale(1.08);
    }
    40% {
        opacity: 1;
        transform: scale(1);
    }
    100% {
        opacity: 0;
        transform: scale(1);
    }
}

.p-ai-detail__img::after {
    content: "";
    position: absolute;
    left: 18%;
    bottom: 18%;
    z-index: 3;
    width: 1.2rem;
    height: 1.2rem;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(21, 154, 87, 0.65) 0%, rgba(21, 154, 87, 0) 70%);
    opacity: 0;
    transform: scale(0.4);
    pointer-events: none;
}

.p-ai-detail__block.is-media-show .p-ai-detail__img::after {
    animation: aiDetailOriginPulse 1.1s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.p-ai-detail__block--reverse .p-ai-detail__img::after {
    left: auto;
    right: 18%;
}

@keyframes aiDetailOriginPulse {
    0% {
        opacity: 0;
        transform: scale(0.3);
    }
    30% {
        opacity: 1;
        transform: scale(1.8);
    }
    100% {
        opacity: 0;
        transform: scale(4.5);
    }
}

.p-ai-detail__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transform: scale(1.16);
}

.p-ai-detail__block.is-media-show .p-ai-detail__img img {
    transform: scale(1);
    transition: transform 1.3s cubic-bezier(0.22, 1, 0.36, 1) 0.1s;
}

.p-ai-detail__content {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*2.7);
    padding: calc(var(--gap-unit)*4.5) 0;
    border: 1px solid #DDE9E2;
    border-width: 1px 0;
}

.p-ai-detail__title-meta {
    display: flex;
    align-items: flex-start;
    gap: calc(var(--gap-unit)*5);
}

.p-ai-detail__num {
    font-size: 8rem;
    font-family: var(--fontT);
    line-height: .8;
    color: #1B3A3129;
    margin-top: .05em;
    opacity: 0;
    transform: translate3d(0, 1.6rem, 0) scale(1.08);
    filter: blur(4px);
}

.p-ai-detail__block.is-content-show .p-ai-detail__num {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
    filter: blur(0);
    transition:
        opacity 0.55s cubic-bezier(0.22, 1, 0.36, 1),
        transform 0.8s cubic-bezier(0.22, 1, 0.36, 1),
        filter 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-ai-detail__title {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*1.25);
}

.p-ai-detail__title-en {
    display: inline-block;
    align-self: flex-start;
    font-size: var(--font-size12);
    font-weight: 700;
    line-height: 1.9;
    letter-spacing: 0.26em;
    color: var(--bg-green-color);
    clip-path: inset(0 100% 0 0);
    opacity: 0;
}

.p-ai-detail__block.is-content-show .p-ai-detail__title-en {
    clip-path: inset(0 0 0 0);
    opacity: 1;
    transition:
        clip-path 0.8s cubic-bezier(0.77, 0, 0.175, 1) 0.15s,
        opacity 0.4s ease 0.15s;
}

.p-ai-detail__title-ja {
    font-size: var(--font-size32);
    font-family: var(--fontT);
    font-weight: bold;
    line-height: 1.5;
    letter-spacing: .04em;
    color: #1B3A31;
    opacity: 0;
    transform: translate3d(0, 1rem, 0);
}

.p-ai-detail__block.is-content-show .p-ai-detail__title-ja {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1) 0.28s,
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.28s;
}

.p-ai-detail__lead {
    font-size: var(--font-size24);
    font-weight: 700;
    line-height: 2;
    letter-spacing: 0.01em;
    color: #152F4B;
    opacity: 0;
    transform: translate3d(0, 1.2rem, 0);
}

.p-ai-detail__block.is-content-show .p-ai-detail__lead {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1) 0.4s,
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.4s;
}

.p-ai-detail__txt {
    font-size: var(--font-size16);
    line-height: 2.1;
    opacity: 0;
    transform: translate3d(0, 1.2rem, 0);
}

.p-ai-detail__block.is-content-show .p-ai-detail__txt {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1) 0.52s,
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.52s;
}

.p-ai-detail__cards {
    display: flex;
    gap: calc(var(--gap-unit)*2);
    margin-top: calc(var(--gap-unit)*1.5);
}

.p-ai-detail__card {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*1.875);
    padding: calc(var(--gap-unit)*3.25);
    background-color: var(--bg-white-color);
    border: 1px solid #DDE9E2;
    opacity: 0;
    transform: translate3d(0, 1.8rem, 0);
}

.p-ai-detail__block.is-content-show .p-ai-detail__card {
    opacity: 1;
    transform: translate3d(0, 0, 0);
}

.p-ai-detail__block.is-content-show .p-ai-detail__card:nth-child(1) {
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1) 0.64s,
        transform 0.75s cubic-bezier(0.22, 1, 0.36, 1) 0.64s;
}

.p-ai-detail__block.is-content-show .p-ai-detail__card:nth-child(2) {
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1) 0.78s,
        transform 0.75s cubic-bezier(0.22, 1, 0.36, 1) 0.78s;
}

.p-ai-detail__card-title {
    font-size: var(--font-size14);
    font-weight: 700;
    line-height: 1.8;
    color: #1B3A31;
    letter-spacing: 0.04em;
}

.p-ai-detail__bullets,
.p-ai-detail__steps {
    display: flex;
    flex-direction: column;
    font-size: var(--font-size15);
    line-height: 1.8;
    letter-spacing: .04em;
    color: #667A72;
}

.p-ai-detail__bullets li,
.p-ai-detail__steps li {
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: var(--gap-unit);
    padding: 0;
    margin: 0;
}

.p-ai-detail__bullets li::before {
    content: "・";
}

.p-ai-detail__steps {
    list-style: none;
    counter-reset: ai-step;
    padding: 0;
    margin: 0;
}

.p-ai-detail__steps li {
    counter-increment: ai-step;
}

.p-ai-detail__steps li::before {
    content: counter(ai-step) ". ";
}

@media (max-width: 768px) {
    .p-ai-detail__block {
        flex-direction: column-reverse;
        gap: calc(var(--gap-unit)*5);
        padding: calc(var(--gap-unit)*4.5) 0;
        border: 1px solid #DDE9E2;
        border-width: 1px 0;
    }

    .p-ai-detail__content {
        padding: 0;
        border: none;
    }

    .p-ai-detail__title-meta {
        gap: calc(var(--gap-unit)*4);
    }

    .p-ai-detail__num {
        font-size: 7.2rem;
    }

    .p-ai-detail__title-ja {
        font-size: var(--font-size28);
    }

    .p-ai-detail__lead {
        font-size: var(--font-size22);
    }

    .p-ai-detail__txt {
        font-size: var(--font-size15);
    }

    .p-ai-detail__media {
        width: 60%;
        perspective: none;
    }

    .p-ai-detail__img,
    .p-ai-detail__block--reverse .p-ai-detail__img {
        transform: none;
        transform-origin: center center;
    }

    .p-ai-detail__block.is-media-show .p-ai-detail__img,
    .p-ai-detail__block--reverse.is-media-show .p-ai-detail__img {
        transform: none;
    }
}

@media (max-width: 450px) {
    .p-ai-detail__title-meta {
        gap: calc(var(--gap-unit)*3);
    }

    .p-ai-detail__content {
        gap: calc(var(--gap-unit)*2.2);
    }

    .p-ai-detail__title-ja {
        font-size: var(--font-size26);
    }

    .p-ai-detail__cards {
        margin: 0;
        flex-direction: column;
        gap: calc(var(--gap-unit)*1.5);
    }

    .p-ai-detail__media {
        width: 100%;
    }
}


.p-ai-flow {
    position: relative;
    background-color: var(--bg-white-color);
}

.p-ai-flow__inner {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*5);
}

.p-ai-flow__list {
    position: relative;
    display: flex;
}

.p-ai-flow__list::before {
    content: "";
    position: absolute;
    top: 2.2rem;
    left: 10%;
    right: 10%;
    height: 1px;
    background: linear-gradient(90deg, rgba(105, 167, 138, 0) 0%, rgba(105, 167, 138, 0.65) 50%, rgba(105, 167, 138, 0) 100%);
    transform: scaleX(0);
    transform-origin: left center;
}

.p-ai-flow__list.is-line-show::before {
    transform: scaleX(1);
    transition: transform 1.1s cubic-bezier(0.77, 0, 0.175, 1);
}

.p-ai-flow__item {
    position: relative;
    z-index: 1;
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(var(--gap-unit)*1.75);
    text-align: center;
    padding: 0 calc(var(--gap-unit)*2.25);
}

.p-ai-flow__main {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(var(--gap-unit)*1.75);
    opacity: 0;
    transform: translate3d(0, 1.6rem, 0);
}

.p-ai-flow__item.is-show .p-ai-flow__main {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1) 0.28s,
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.28s;
}

.p-ai-flow__num {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 4.4rem;
    height: 4.4rem;
    background-color: var(--bg-white-color);
    border: 1px solid #69A78A80;
    border-radius: 50%;
    box-shadow: 0px 12px 34px 0px #182F2814;
    opacity: 0;
    transform: scale(0.55);
}

.p-ai-flow__item.is-show .p-ai-flow__num {
    opacity: 1;
    transform: scale(1);
    transition:
        opacity 0.4s cubic-bezier(0.22, 1, 0.36, 1),
        transform 0.65s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.p-ai-flow__num::before {
    content: "";
    position: absolute;
    inset: -0.45rem;
    border-radius: 50%;
    border: 1px solid rgba(21, 154, 87, 0.35);
    opacity: 0;
    transform: scale(0.7);
    pointer-events: none;
}

.p-ai-flow__item.is-show .p-ai-flow__num::before {
    animation: aiFlowRing 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.1s forwards;
}

@keyframes aiFlowRing {
    0% {
        opacity: 0;
        transform: scale(0.7);
    }
    40% {
        opacity: 1;
        transform: scale(1);
    }
    100% {
        opacity: 0;
        transform: scale(1.35);
    }
}

.p-ai-flow__num span {
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: calc(var(--font-size18) -1px);
    font-family: var(--fontT);
    line-height: 1;
    color: #1B3A31;
    width: 2.8rem;
    height: 2.8rem;
    border-radius: 50%;
    background-color: #EEF7F2;
}

.p-ai-flow__step {
    display: block;
    font-size: var(--font-size12);
    font-weight: 700;
    line-height: 1.9;
    letter-spacing: 0.22em;
    color: #159A57;
    margin-top: calc(var(--gap-unit)*.5);
    clip-path: inset(0 100% 0 0);
    opacity: 0;
}

.p-ai-flow__item.is-show .p-ai-flow__step {
    clip-path: inset(0 0 0 0);
    opacity: 1;
    transition:
        clip-path 0.65s cubic-bezier(0.77, 0, 0.175, 1) 0.38s,
        opacity 0.35s ease 0.38s;
}

.p-ai-flow__name {
    font-size: var(--font-size20);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: 0.06em;
    color: #1B3A31;
    opacity: 0;
    transform: translate3d(0, 0.8rem, 0);
}

.p-ai-flow__item.is-show .p-ai-flow__name {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.5s cubic-bezier(0.53, 0.2, 0.25, 1) 0.48s,
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.48s;
}

.p-ai-flow__txt {
    font-size: var(--font-size15);
    line-height: 2;
    text-align: left;
    opacity: 0;
    transform: translate3d(0, 0.8rem, 0);
}

.p-ai-flow__item.is-show .p-ai-flow__txt {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.5s cubic-bezier(0.53, 0.2, 0.25, 1) 0.58s,
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.58s;
}

@media (max-width: 768px) {
    .p-ai-flow__inner {
        padding: 0 4rem;
    }

    .p-ai-flow__list {
        flex-direction: column;
        gap: calc(var(--gap-unit)*3);
    }

    .p-ai-flow__list::before {
        top: 8%;
        bottom: 10%;
        left: 3rem;
        width: 1px;
        height: auto;
        transform: scaleY(0);
        transform-origin: top center;
    }

    .p-ai-flow__list.is-line-show::before {
        transform: scaleY(1);
    }

    .p-ai-flow__item {
        padding: 0;
        flex-direction: row;
        align-items: flex-start;
        gap: calc(var(--gap-unit)*3);
    }

    .p-ai-flow__main {
        flex: 1;
        align-items: flex-start;
        padding-top: calc(var(--gap-unit)*.5);
    }

    .p-ai-flow__step {
        display: none;
    }

    .p-ai-flow__num {
        width: 6rem;
        height: 6rem;
    }

    .p-ai-flow__num span {
        font-size: var(--font-size20);
        width: 4rem;
        height: 4rem;
    }

    .p-ai-flow__name br {
        display: none;
    }
}

@media (max-width: 450px) {
    .p-ai-flow__inner {
        padding: 0;
        gap: calc(var(--gap-unit)*1);
    }

    .p-ai-flow__item {
        gap: calc(var(--gap-unit)*2);
    }
}









/* -------page drone------- */
.p-drone-video {
    position: relative;
}

.p-drone-video__player {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background-color: #0B1612;
    box-shadow: 0 24px 64px rgba(24, 58, 50, 0.16);
}

.p-drone-video__cover {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    padding: 0;
    border: none;
    cursor: pointer;
    background: transparent;
}

.p-drone-video__poster {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-drone-video__play {
    position: absolute;
    top: 50%;
    left: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 7.2rem;
    height: 7.2rem;
    color: #FFFFFF;
    transform: translate(-50%, -50%);
    transition:
        transform 0.4s cubic-bezier(0.22, 1, 0.36, 1),
        color 0.35s ease;
    filter: drop-shadow(0 8px 24px rgba(0, 0, 0, 0.35));
}

.p-drone-video__play svg {
    width: 100%;
    height: 100%;
}

.p-drone-video__cover::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(11, 22, 18, 0.12) 0%, rgba(11, 22, 18, 0.28) 100%);
    pointer-events: none;
    transition: opacity 0.35s ease;
}

@media (hover: hover) {
    .p-drone-video__cover:hover .p-drone-video__poster {
        transform: scale(1.04);
    }

    .p-drone-video__cover:hover .p-drone-video__play {
        color: #37B18E;
        transform: translate(-50%, -50%) scale(1.06);
    }
}

.p-drone-video__player.is-playing .p-drone-video__cover {
    display: none;
}

.p-drone-video__iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

@media (max-width: 768px) {
    .p-drone-video__play {
        width: 5.6rem;
        height: 5.6rem;
    }
}

@media (max-width: 450px) {
    .p-drone-video__play {
        width: 4.8rem;
        height: 4.8rem;
    }
}

.p-drone-soccer__inner {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*6);
}

.p-drone-soccer .js-drone-soccer-lead {
    opacity: 0;
    transform: translate3d(0, 1.4rem, 0);
}

.p-drone-soccer .js-drone-soccer-lead.is-show {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.65s cubic-bezier(0.53, 0.2, 0.25, 1) 0.2s,
        transform 0.8s cubic-bezier(0.22, 1, 0.36, 1) 0.2s;
}

.p-drone-soccer__content {
    display: flex;
    align-items: flex-start;
    gap: calc(var(--gap-unit)*5);
}

.p-drone-soccer__card {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*2);
    width: 50%;
    padding: calc(var(--gap-unit)*4.25);
    background-color: var(--bg-white-color);
    box-shadow: 0px 18px 56px 0px #182F2812;
    border: 1px solid #DDE9E2;
    overflow: hidden;
    opacity: 0;
    transform: translate3d(0, 2.4rem, 0);
}

.p-drone-soccer__card.is-show {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.6s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.85s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-drone-soccer__card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 3px;
    background: linear-gradient(90deg, #159A57 0%, rgba(21, 154, 87, 0.15) 100%);
    transform: scaleX(0);
    transform-origin: left center;
}

.p-drone-soccer__card.is-show::before {
    transform: scaleX(1);
    transition: transform 0.85s cubic-bezier(0.77, 0, 0.175, 1) 0.1s;
}

.p-drone-soccer__card-title {
    font-size: var(--font-size28);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.5;
    color: #1B3A31;
    letter-spacing: 0.04em;
    opacity: 0;
    transform: translate3d(0, 1rem, 0);
}

.p-drone-soccer__card.is-show .p-drone-soccer__card-title {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1) 0.18s,
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.18s;
}

.p-drone-soccer__card-txt {
    font-size: var(--font-size15);
    line-height: 2;
    letter-spacing: .04em;
    color: #667A72;
    opacity: 0;
    transform: translate3d(0, 1rem, 0);
}

.p-drone-soccer__card.is-show .p-drone-soccer__card-txt {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1) 0.3s,
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.3s;
}

.p-drone-soccer__points {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*1.25);
    margin-top: var(--gap-unit);
}

.p-drone-soccer__point {
    position: relative;
    font-size: var(--font-size15);
    font-weight: 700;
    line-height: 1.9;
    color: #1B3A31;
    padding: calc(var(--gap-unit)*1.7) calc(var(--gap-unit)*2);
    background-color: #EFF7F4;
    border-left: 3px solid #69A78A;
    opacity: 0;
    transform: translate3d(-1.4rem, 0, 0);
}

.p-drone-soccer__card.is-show .p-drone-soccer__point {
    opacity: 1;
    transform: translate3d(0, 0, 0);
}

.p-drone-soccer__card.is-show .p-drone-soccer__point:nth-child(1) {
    transition:
        opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1) 0.42s,
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.42s;
}

.p-drone-soccer__card.is-show .p-drone-soccer__point:nth-child(2) {
    transition:
        opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1) 0.54s,
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.54s;
}

.p-drone-soccer__card.is-show .p-drone-soccer__point:nth-child(3) {
    transition:
        opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1) 0.66s,
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.66s;
}

.p-drone-soccer__branch {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*1.5);
    padding: calc(var(--gap-unit)*4.5) calc(var(--gap-unit)*3.25);
    border: 1px solid #69A78A4D;
    background-color: #EEF7F2;
    opacity: 0;
    transform: translate3d(0, 1.6rem, 0);
    clip-path: inset(0 0 100% 0);
}

.p-drone-soccer__card.is-show .p-drone-soccer__branch {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    clip-path: inset(0 0 0 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1) 0.78s,
        transform 0.75s cubic-bezier(0.22, 1, 0.36, 1) 0.78s,
        clip-path 0.9s cubic-bezier(0.77, 0, 0.175, 1) 0.78s;
}

.p-drone-soccer__branch-label {
    font-size: var(--font-size12);
    font-weight: 700;
    line-height: 2;
    letter-spacing: 0.24em;
    color: #159A57;
}

.p-drone-soccer__branch-title {
    font-size: var(--font-size24);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.6;
    color: #1B3A31;
}

.p-drone-soccer__branch-txt {
    font-size: var(--font-size15);
    line-height: 2;
}

.p-drone-soccer__gallery {
    flex: 1;
    display: flex;
    flex-direction: column;
    flex-shrink: 0;
    gap: calc(var(--gap-unit)*4.5);
}

.p-drone-soccer__media {
    position: relative;
    display: flex;
    width: 100%;
    z-index: 1;
}

.p-drone-soccer__media--01 {
    padding: 0 calc(var(--gap-unit)*4) calc(var(--gap-unit)*4.5) calc(var(--gap-unit)*5);
}

.p-drone-soccer__media::before {
    content: "";
    position: absolute;
    background-color: #EEF7F2;
    border: 1px solid #69A78A29;
    opacity: 0;
    transform: scale(0.88);
}

.p-drone-soccer__media.is-show::before {
    opacity: 1;
    transform: scale(1);
    transition:
        opacity 0.55s cubic-bezier(0.22, 1, 0.36, 1) 0.2s,
        transform 0.8s cubic-bezier(0.22, 1, 0.36, 1) 0.2s;
}

.p-drone-soccer__media--01::before {
    left: 0;
    bottom: 0;
    width: 41.5rem;
    height: 22.5rem;
    transform-origin: left bottom;
}

.p-drone-soccer__media--02 {
    padding: 0 calc(var(--gap-unit)*4.25) calc(var(--gap-unit)*4.5) calc(var(--gap-unit)*2);
}

.p-drone-soccer__media--02::before {
    bottom: 0;
    right: 0;
    width: 42rem;
    aspect-ratio: 42/24;
    transform-origin: right bottom;
}

.p-drone-soccer__media img {
    position: relative;
    width: 100%;
    height: auto;
    object-fit: cover;
    z-index: 2;
    clip-path: circle(0% at 50% 50%);
    transform: scale(1.12);
}

.p-drone-soccer__media.is-show img {
    clip-path: circle(120% at 50% 50%);
    transform: scale(1);
    transition:
        clip-path 1.15s cubic-bezier(0.77, 0, 0.175, 1),
        transform 1.25s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-drone-soccer__media--01 img {
    aspect-ratio: 455 / 315;
}

.p-drone-soccer__media-label {
    position: absolute;
    z-index: 3;
    top: calc(var(--gap-unit)*2.5);
    padding: calc(var(--gap-unit)) calc(var(--gap-unit)*1.75);
    font-size: var(--font-size12);
    font-weight: 700;
    line-height: 1.6;
    color: #1B3A31;
    letter-spacing: 0.04em;
    background-color: #FFFFFFF0;
    border: 1px solid #69A78A38;
    opacity: 0;
    transform: translate3d(0, -0.8rem, 0);
}

.p-drone-soccer__media.is-show .p-drone-soccer__media-label {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1) 0.55s,
        transform 0.6s cubic-bezier(0.22, 1, 0.36, 1) 0.55s;
}

.p-drone-soccer__media--01 .p-drone-soccer__media-label {
    right: 5rem;
}

.p-drone-soccer__media--02 .p-drone-soccer__media-label {
    left: 3.5rem;
}

.p-drone-soccer__team {
    display: flex;
    flex-direction: row-reverse;
    align-items: center;
    gap: calc(var(--gap-unit)*6);
    padding: calc(var(--gap-unit)*4.5);
    background-color: var(--bg-white-color);
    border: 1px solid #DDE9E2;
    box-shadow: 0px 18px 56px 0px #182F2812;
}

.p-drone-soccer__team.is-show {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.6s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.85s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-drone-soccer__team-media {
    position: relative;
    width: 42%;
    overflow: hidden;
}

.p-drone-soccer__team-media img {
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 5;
    object-fit: cover;
    object-position: center 12%;
    transform: scale(1.04);
}

.p-drone-soccer__team.is-show .p-drone-soccer__team-media img {
    transform: scale(1);
    transition: transform 1.15s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-drone-soccer__team-content {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: calc(var(--gap-unit)*2);
    min-width: 0;
}

.p-drone-soccer__team-label {
    display: inline-block;
    align-self: flex-start;
    font-size: var(--font-size14);
    font-family: var(--fontT);
    font-weight: 700;
    letter-spacing: 0.28em;
    color: #159A57;
}

.p-drone-soccer__team-title {
    font-size: var(--font-size28);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.04em;
    color: #1B3A31;
}

.p-drone-soccer__team-txt {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*1.6);
    font-size: var(--font-size15);
    line-height: 2;
    letter-spacing: 0.04em;
    color: #667A72;
}

.p-drone-soccer__team-catch {
    font-size: var(--font-size18);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.8;
    letter-spacing: 0.06em;
    color: #1B3A31;
}

.p-drone-soccer__official {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: calc(var(--gap-unit)*3);
    width: 67%;
    padding: calc(var(--gap-unit)*3);
    margin: 0 auto;
    border: 1px solid #C8E8D4;
    background: linear-gradient(107.8deg, #F4FBF7 0%, #FFFFFF 100%), radial-gradient(91.85% 286.12% at 12% 18%, rgba(55, 177, 142, 0.14) 0%, rgba(55, 177, 142, 0) 28%);
    box-shadow: 0px 26px 56px 0px #183A3226;
    opacity: 0;
    transform: translate3d(0, 2rem, 0);
}

.p-drone-soccer__official.is-show {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.65s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.85s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-drone-soccer__official-body {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: calc(var(--gap-unit)*1);
    min-width: 0;
    opacity: 0;
    transform: translate3d(0, 1rem, 0);
}

.p-drone-soccer__official.is-show .p-drone-soccer__official-body {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1) 0.28s,
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.28s;
}

.p-drone-soccer__official-tag {
    position: absolute;
    top: -1.3rem;
    left: 2rem;
    padding: var(--gap-unit) calc(var(--gap-unit)*1.75);
    font-size: var(--font-size12);
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.12em;
    color: #173D34;
    background-color: var(--bg-white-color);
    border: 1px solid #37B18E94;
    opacity: 0;
    transform: translate3d(0, 0.6rem, 0) scale(0.92);
}

.p-drone-soccer__official.is-show .p-drone-soccer__official-tag {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
    transition:
        opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1) 0.2s,
        transform 0.6s cubic-bezier(0.34, 1.45, 0.64, 1) 0.2s;
}

.p-drone-soccer__official-info {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*0.75);
}

.p-drone-soccer__official-en {
    font-size: var(--font-size12);
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.2em;
    color: #159A57;
}

.p-drone-soccer__official-title {
    font-size: var(--font-size18);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.5;
    color: #173D34;
}

.p-drone-soccer__official-logo {
    display: flex;
    width: 100%;
    max-width: 35rem;
}

.p-drone-soccer__official-logo img {
    display: block;
    width: 100%;
}

.p-drone-soccer__official-note {
    font-size: var(--font-size14);
    line-height: 1.6;
    color: #1F272499;
}

.p-drone-soccer__official-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    gap: calc(var(--gap-unit)*1.25);
    padding: calc(var(--gap-unit)*1.8) calc(var(--gap-unit)*4.5);
    font-size: var(--font-size14);
    font-weight: 700;
    line-height: 1;
    color: #173D34;
    background-color: var(--bg-white-color);
    border: 1px solid #37B18E9E;
    border-radius: 10rem;
    box-shadow: 0px 10px 24px 0px #183A3212;
    opacity: 0;
    transform: translate3d(1rem, 0, 0);
    transition:
        color 0.3s linear,
        background-color 0.3s linear,
        border-color 0.3s linear;
}

.p-drone-soccer__official.is-show .p-drone-soccer__official-btn {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1) 0.4s,
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.4s,
        color 0.3s linear,
        background-color 0.3s linear,
        border-color 0.3s linear;
}

.p-drone-soccer__official-btn-arrow {
    font-size: var(--font-size14);
}

.p-drone-soccer__official-btn:hover {
    color: var(--bg-white-color);
    background-color: #1B3A31;
    border-color: #1B3A31;
}

@media (max-width: 768px) {
    .p-drone-soccer__inner {
        gap: calc(var(--gap-unit)*3);
    }

    .p-drone-soccer__content {
        flex-direction: column;
        gap: calc(var(--gap-unit)*4);
    }

    .p-drone-soccer__card {
        width: 100%;
        padding: calc(var(--gap-unit)*3.5) calc(var(--gap-unit)*3);
    }

    .p-drone-soccer__card-title {
        font-size: var(--font-size24);
    }

    .p-drone-soccer__branch {
        padding: calc(var(--gap-unit)*3.5) calc(var(--gap-unit)*2.75);
    }

    .p-drone-soccer__branch-title {
        font-size: var(--font-size22);
    }

    .p-drone-soccer__gallery {
        width: 100%;
        gap: calc(var(--gap-unit)*3.5);
    }

    .p-drone-soccer__media--01 {
        padding: 0 calc(var(--gap-unit)*2.5) calc(var(--gap-unit)*3) calc(var(--gap-unit)*3);
    }

    .p-drone-soccer__media--02 {
        padding: 0 calc(var(--gap-unit)*3) calc(var(--gap-unit)*3) calc(var(--gap-unit)*1.5);
    }

    .p-drone-soccer__media--01::before {
        width: 85%;
        height: auto;
        aspect-ratio: 415 / 225;
    }

    .p-drone-soccer__media--02::before {
        width: 85%;
    }

    .p-drone-soccer__media--01 .p-drone-soccer__media-label {
        right: 3rem;
    }

    .p-drone-soccer__media--02 .p-drone-soccer__media-label {
        left: 2.5rem;
    }

    .p-drone-soccer__team {
        flex-direction: column;
        gap: calc(var(--gap-unit)*3.5);
        padding: calc(var(--gap-unit)*3.5) calc(var(--gap-unit)*3);
    }

    .p-drone-soccer__team-media {
        width: 100%;
    }

    .p-drone-soccer__team-title {
        font-size: var(--font-size24);
    }

    .p-drone-soccer__official {
        width: 100%;
        gap: calc(var(--gap-unit)*2.5);
        padding: calc(var(--gap-unit)*3.5) calc(var(--gap-unit)*3) calc(var(--gap-unit)*2.75);
    }

    .p-drone-soccer__official-body {
        gap: calc(var(--gap-unit)*1.75);
    }

    .p-drone-soccer__official-tag {
        left: 1.5rem;
    }

    .p-drone-soccer__official-title {
        font-size: var(--font-size18);
    }

    .p-drone-soccer__official-logo {
        max-width: 28rem;
    }

    .p-drone-soccer__official-btn {
        padding: calc(var(--gap-unit)*1.6) calc(var(--gap-unit)*3.5);
    }
}

@media (max-width: 450px) {
    .p-drone-soccer__inner {
        gap: calc(var(--gap-unit)*1);
    }

    .p-drone-soccer__content {
        gap: calc(var(--gap-unit)*3.5);
    }

    .p-drone-soccer__card {
        padding: calc(var(--gap-unit)*3) calc(var(--gap-unit)*2.5);
        gap: calc(var(--gap-unit)*1.75);
    }

    .p-drone-soccer__card-title {
        font-size: var(--font-size22);
    }

    .p-drone-soccer__card-txt,
    .p-drone-soccer__point,
    .p-drone-soccer__branch-txt {
        font-size: var(--font-size14);
    }

    .p-drone-soccer__point {
        padding: calc(var(--gap-unit)*1.5) calc(var(--gap-unit)*1.75);
    }

    .p-drone-soccer__branch {
        padding: calc(var(--gap-unit)*3) calc(var(--gap-unit)*2.5);
        gap: calc(var(--gap-unit)*1.25);
    }

    .p-drone-soccer__branch-title {
        font-size: var(--font-size20);
    }

    .p-drone-soccer__gallery {
        gap: calc(var(--gap-unit)*3);
    }

    .p-drone-soccer__media--01,
    .p-drone-soccer__media--02 {
        padding: 0 calc(var(--gap-unit)*1.5) calc(var(--gap-unit)*2.5);
    }

    .p-drone-soccer__media--01::before,
    .p-drone-soccer__media--02::before {
        width: 90%;
    }

    .p-drone-soccer__media-label {
        top: calc(var(--gap-unit)*1.5);
        padding: calc(var(--gap-unit)*0.875) calc(var(--gap-unit)*1.5);
    }

    .p-drone-soccer__media--01 .p-drone-soccer__media-label {
        right: 1.5rem;
    }

    .p-drone-soccer__media--02 .p-drone-soccer__media-label {
        left: 1.5rem;
    }

    .p-drone-soccer__team {
        padding: calc(var(--gap-unit)*3) calc(var(--gap-unit)*2.5);
    }

    .p-drone-soccer__team-title {
        font-size: var(--font-size22);
    }

    .p-drone-soccer__team-catch {
        font-size: var(--font-size16);
    }

    .p-drone-soccer__official {
        flex-direction: column;
        align-items: stretch;
        gap: calc(var(--gap-unit)*2);
        padding: calc(var(--gap-unit)*3.25) calc(var(--gap-unit)*2.5) calc(var(--gap-unit)*2.5);
    }

    .p-drone-soccer__official-tag {
        left: 1.25rem;
    }

    .p-drone-soccer__official-body {
        gap: calc(var(--gap-unit)*1.5);
    }

    .p-drone-soccer__official-title {
        font-size: var(--font-size16);
    }

    .p-drone-soccer__official-logo {
        max-width: 100%;
    }

    .p-drone-soccer__official-btn {
        width: 100%;
        padding: calc(var(--gap-unit)*1.8) calc(var(--gap-unit)*2.5);
    }

    .p-drone-soccer__official-note {
        font-size: var(--font-size12);
    }
}













.p-drone-flow {
    position: relative;
    background: linear-gradient(180deg, #F7FAF7 0%, #EEF7F2 100%);
}

.p-drone-flow .c-sec__heading {
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    gap: calc(var(--gap-unit)*3);
}

.p-drone-flow .c-sec__title {
    position: relative;
    padding-bottom: calc(var(--gap-unit)*2.5);
}

.p-drone-flow .c-sec__title::before {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 5rem;
    height: 2px;
    background-color: var(--bg-green-color);
}

.p-drone-flow .c-sec__lead {
    max-width: 100%;
    margin-top: calc(var(--gap-unit)*3);
}

.p-drone-flow__inner {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*2);
}

.p-drone-flow__list {
    display: flex;
    flex-direction: column;
    background-color: var(--bg-white-color);
    border: 1px solid #DDE9E2;
    box-shadow: 0px 18px 56px 0px #182F2812;
}

.p-drone-flow__item {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: calc(var(--gap-unit)*1.875);
    padding: calc(var(--gap-unit)*4) calc(var(--gap-unit)*5);
    border-bottom: 1px solid #E6EEE9;
}

.p-drone-flow__item:last-child {
    border-bottom: none;
}

.p-drone-flow__num {
    flex-shrink: 0;
    font-size: var(--font-size28);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0.06em;
    color: #159A57;
}

.p-drone-flow__main {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*1.5);
}

.p-drone-flow__title {
    font-size: var(--font-size22);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: 0.04em;
    color: #1B3A31;
}

.p-drone-flow__txt {
    font-size: var(--font-size16);
    line-height: 1.9;
    color: #667A72;
}

@media (max-width: 768px) {
    .p-drone-flow__inner {
        gap: calc(var(--gap-unit)*3);
    }

    .p-drone-flow__item {
        flex-direction: column;
        gap: calc(var(--gap-unit)*1.5);
        padding: calc(var(--gap-unit)*3.5);
    }

    .p-drone-flow__title {
        font-size: var(--font-size20);
    }

    .p-drone-flow__txt {
        font-size: var(--font-size15);
    }
}

@media (max-width: 450px) {
    .p-drone-flow__inner {
        gap: var(--gap-unit);
    }

    .p-drone-flow__item {
        padding: calc(var(--gap-unit)*2.75) calc(var(--gap-unit)*2.5);
    }

    .p-drone-flow__num {
        font-size: var(--font-size22);
    }

    .p-drone-flow__txt {
        font-size: var(--font-size14);
    }
}

.p-drone-security {
    position: relative;
    background: linear-gradient(180deg, #F7FAF7 0%, #EEF7F2 100%);
}

.p-drone-security__inner {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: calc(var(--gap-unit)*6);
}

.p-drone-security__heading {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: calc(var(--gap-unit)*2.5);
    text-align: left;
}

.p-drone-security__title {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: calc(var(--gap-unit)*1.75);
}

.p-drone-security__title-en {
    font-size: var(--font-size12);
    font-weight: 700;
    line-height: 2;
    letter-spacing: 0.33em;
    color: #159A57;
}

.p-drone-security__title-ja {
    font-size: var(--font-size32);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.08em;
    color: #1B3A31;
}

.p-drone-security__lead {
    font-size: var(--font-size22);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: 0.03em;
    color: #1B3A31;
}

.p-drone-security__media {
    display: flex;
    width: 75%;
    margin: 0 auto;
    aspect-ratio: 800/450;
    overflow: hidden;
    box-shadow: 0 20px 56px rgba(24, 58, 50, 0.1);
}

.p-drone-security__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.p-drone-security__body {
    width: 100%;
    font-size: var(--font-size16);
    line-height: 2.1;
    letter-spacing: .02em;
    color: #667A72;
}

.p-drone-security__catch {
    font-weight: bold;
}

@media (max-width: 768px) {
    .p-drone-security__inner {
        gap: calc(var(--gap-unit)*4);
    }

    .p-drone-security__title-ja {
        font-size: var(--font-size28);
    }

    .p-drone-security__lead {
        font-size: var(--font-size18);
    }
}

@media (max-width: 450px) {
    .p-drone-security__inner {
        gap: calc(var(--gap-unit)*5);
    }

    .p-drone-security__media {
        width: 100%;
    }

    .p-drone-security__body p {
        font-size: var(--font-size15);
    }
}

.p-drone-line {
    position: relative;
    background-color: #F4F9F6;
}

.p-drone-line__inner {
    position: relative;
    display: flex;
    align-items: stretch;
    gap: calc(var(--gap-unit)*5);
    padding: calc(var(--gap-unit)*5) calc(var(--gap-unit)*5);
    background: linear-gradient(112.38deg, #F7FFF9 0%, #FFFFFF 100%);
    box-shadow: 0 0.4rem 2rem rgba(24, 58, 50, 0.06);
    overflow: hidden;
    opacity: 0;
    transform: translate3d(0, 2rem, 0);
}

.p-drone-line__inner.is-show {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.65s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.85s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-drone-line__inner::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: radial-gradient(99.18% 240.86% at 92% 10%, rgba(6, 199, 85, 0.1) 0%, rgba(6, 199, 85, 0) 26%);
    border: 1px solid #06C75547;
}

.p-drone-line__body {
    position: relative;
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: calc(var(--gap-unit)*2);
    z-index: 2;
}

.p-drone-line__title {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit));
}

.p-drone-line__title-en {
    font-size: var(--font-size16);
    font-weight: 700;
    line-height: 2;
    color: #159A57;
    letter-spacing: 0.35em;
    clip-path: inset(0 100% 0 0);
    opacity: 0;
}

.p-drone-line.is-body-show .p-drone-line__title-en {
    clip-path: inset(0 0 0 0);
    opacity: 1;
    transition:
        clip-path 0.7s cubic-bezier(0.77, 0, 0.175, 1) 0.1s,
        opacity 0.4s ease 0.1s;
}

.p-drone-line__title-ja {
    font-size: var(--font-size28);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.55;
    color: #1B3A31;
    letter-spacing: 0.04em;
    opacity: 0;
    transform: translate3d(0, 1.2rem, 0);
}

.p-drone-line.is-body-show .p-drone-line__title-ja {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1) 0.2s,
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.2s;
}

.p-drone-line__desc {
    font-size: var(--font-size16);
    line-height: 2;
    opacity: 0;
    transform: translate3d(0, 1rem, 0);
}

.p-drone-line.is-body-show .p-drone-line__desc {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1) 0.32s,
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.32s;
}

.p-drone-line__list {
    display: flex;
    flex-direction: column;
    margin-top: calc(var(--gap-unit));
}

.p-drone-line__item {
    position: relative;
    display: flex;
    align-items: center;
    gap: var(--gap-unit);
    font-size: var(--font-size15);
    line-height: 2;
    color: #667A72;
    opacity: 0;
    transform: translate3d(-1rem, 0, 0);
}

.p-drone-line__item::before {
    content: "・";
}

.p-drone-line.is-body-show .p-drone-line__item {
    opacity: 1;
    transform: translate3d(0, 0, 0);
}

.p-drone-line.is-body-show .p-drone-line__item:nth-child(1) {
    transition:
        opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1) 0.42s,
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.42s;
}

.p-drone-line.is-body-show .p-drone-line__item:nth-child(2) {
    transition:
        opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1) 0.52s,
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.52s;
}

.p-drone-line.is-body-show .p-drone-line__item:nth-child(3) {
    transition:
        opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1) 0.62s,
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.62s;
}

.p-drone-line.is-body-show .p-drone-line__item:nth-child(4) {
    transition:
        opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1) 0.72s,
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.72s;
}

.p-drone-line__card {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    gap: calc(var(--gap-unit)*1.5);
    width: 28rem;
    padding: calc(var(--gap-unit)*2.75);
    background-color: var(--bg-white-color);
    border: 1px solid #06C7553D;
    box-shadow: 0px 16px 42px 0px #06C75514;
    z-index: 2;
    opacity: 0;
    transform: translate3d(2rem, 0, 0) scale(0.96);
}

.p-drone-line.is-card-show .p-drone-line__card {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
    transition:
        opacity 0.6s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-drone-line__qr {
    display: flex;
    padding: 0 calc(var(--gap-unit)*2.75);
    clip-path: inset(12% 12% 12% 12%);
    opacity: 0;
}

.p-drone-line.is-card-show .p-drone-line__qr {
    clip-path: inset(0 0 0 0);
    opacity: 1;
    transition:
        clip-path 0.75s cubic-bezier(0.77, 0, 0.175, 1) 0.12s,
        opacity 0.45s ease 0.12s;
}

.p-drone-line__qr img {
    width: 100%;
}

.p-drone-line__btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: calc(var(--gap-unit)*1.5);
    width: 100%;
    padding: calc(var(--gap-unit)*1.5) calc(var(--gap-unit)*2);
    font-size: var(--font-size15);
    font-weight: 700;
    line-height: 1.9;
    letter-spacing: 0.04em;
    color: var(--bg-white-color);
    text-align: center;
    border: 2px solid #06C755;
    background-color: #06C755;
    border-radius: 10rem;
    opacity: 0;
    transform: translate3d(0, 0.8rem, 0);
    transition:
        opacity 0.3s linear,
        background-color 0.3s linear,
        transform 0.3s ease;
}

.p-drone-line.is-card-show .p-drone-line__btn {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.5s cubic-bezier(0.53, 0.2, 0.25, 1) 0.28s,
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.28s,
        background-color 0.3s linear;
}

.p-drone-line__btn:hover {
    background-color: var(--bg-white-color);
    color: #06C755;
}

.p-drone-line__note {
    font-size: var(--font-size12);
    line-height: 1.7;
    color: #667A72;
    text-align: center;
    opacity: 0;
    transform: translate3d(0, 0.8rem, 0);
}

.p-drone-line.is-card-show .p-drone-line__note {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.5s cubic-bezier(0.53, 0.2, 0.25, 1) 0.42s,
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.42s;
}

@media (max-width: 768px) {
    .p-drone-line__inner {
        flex-direction: column;
        align-items: center;
        gap: calc(var(--gap-unit)*4);
        padding: calc(var(--gap-unit)*5) calc(var(--gap-unit)*4);
    }

    .p-drone-line__body {
        width: 100%;
    }

    .p-drone-line__title-ja {
        font-size: var(--font-size26);
    }

    .p-drone-line__desc {
        font-size: var(--font-size15);
    }

    .p-drone-line__card {
        transform: translate3d(0, 2rem, 0) scale(0.98);
    }
}

@media (max-width: 450px) {
    .p-drone-line__inner {
        gap: calc(var(--gap-unit)*4);
        padding: calc(var(--gap-unit)*4.5) calc(var(--gap-unit)*2.5);
    }

    .p-drone-line__title-en {
        font-size: var(--font-size14);
        letter-spacing: 0.28em;
    }

    .p-drone-line__title-ja {
        font-size: var(--font-size24);
    }

    .p-drone-line__desc {
        font-size: var(--font-size14);
        line-height: 1.9;
    }

    .p-drone-line__desc br {
        display: none;
    }

    .p-drone-line__item {
        font-size: var(--font-size14);
        align-items: flex-start;
    }

    .p-drone-line__card {
        width: 100%;
        padding: calc(var(--gap-unit)*2.5);
    }

    .p-drone-line__qr {
        padding: 0 calc(var(--gap-unit)*2);
        width: 70%;
    }

    .p-drone-line__note {
        font-size: var(--font-size14);
    }
}











/* -------page community------- */
.p-community-approach__inner {
    display: flex;
    flex-direction: column;
    padding: 0 calc(var(--gap-unit)*2);
}

.p-community-approach__visual {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.p-community-approach__visual[data-inview] .p-community-approach__panel,
.p-community-approach__visual[data-inview] .p-community-approach__panel * {
    -webkit-mask-image: none;
    mask-image: none;
}

.p-community-approach__visual[data-inview].inview .p-community-approach__panel:not(.is-show) {
    opacity: 0;
}

.p-community-approach__img {
    display: flex;
    width: 100%;
    aspect-ratio: 1096 / 360;
    overflow: hidden;
    border: 1px solid #DDE9E2;
    box-shadow: 0px 20px 64px 0px #182F2814;
}

.p-community-approach__img img {
    width: 100%;
    height: 100%;
    object-position: center;
    object-fit: cover;
}

.p-community-approach__panel {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*2.2);
    width: 70%;
    margin: calc(var(--gap-unit)*-3.5) auto 0;
    padding: calc(var(--gap-unit)*4.25) calc(var(--gap-unit)*4.75);
    background-color: #FFFFFFF0;
    border: 1px solid #DDE9E2;
    box-shadow: 0px 18px 56px 0px #182F2812;
    z-index: 1;
    opacity: 0;
    transform: translate3d(0, 2.8rem, 0);
}

.p-community-approach__panel.is-show {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.65s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.85s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-community-approach__title {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit));
}

.p-community-approach__title-en {
    display: inline-block;
    align-self: flex-start;
    font-size: var(--font-size16);
    font-weight: 700;
    line-height: 2;
    color: var(--bg-green-color);
    letter-spacing: 0.36em;
    clip-path: inset(0 100% 0 0);
    opacity: 0;
}

.p-community-approach__panel.is-show .p-community-approach__title-en {
    clip-path: inset(0 0 0 0);
    opacity: 1;
    transition:
        clip-path 0.75s cubic-bezier(0.77, 0, 0.175, 1) 0.2s,
        opacity 0.4s ease 0.2s;
}

.p-community-approach__title-ja {
    font-size: var(--font-size28);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.6;
    color: #1B3A31;
    letter-spacing: 0.08em;
    opacity: 0;
    transform: translate3d(0, 1rem, 0);
}

.p-community-approach__panel.is-show .p-community-approach__title-ja {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1) 0.35s,
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.35s;
}

.p-community-approach__lead {
    font-size: var(--font-size16);
    line-height: 2;
    color: #667A72;
    opacity: 0;
    transform: translate3d(0, 1rem, 0);
}

.p-community-approach__panel.is-show .p-community-approach__lead {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1) 0.5s,
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.5s;
}

.p-community-approach__list {
    display: flex;
    gap: calc(var(--gap-unit)*4);
    margin-top: calc(var(--gap-unit)*9);
}

.p-community-approach__item {
    flex: 1;
    position: relative;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*1.25);
    padding: calc(var(--gap-unit)*3) calc(var(--gap-unit)*3);
    border: 1px solid #DDE9E2;
    box-shadow: 0px 20px 60px 0px #182F280F;
    background-color: #FFFFFFE0;
    overflow: hidden;
    opacity: 0;
    transform: translate3d(0, 2.4rem, 0);
}

.p-community-approach__item.is-show {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.75s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-community-approach__item::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 3px;
    background: linear-gradient(90deg, #159A57 0%, rgba(21, 154, 87, 0.15) 100%);
    transform: scaleX(0);
    transform-origin: left center;
}

.p-community-approach__item.is-show::before {
    transform: scaleX(1);
    transition: transform 0.75s cubic-bezier(0.77, 0, 0.175, 1) 0.1s;
}

.p-community-approach__item::after {
    content: "";
    position: absolute;
    right: -2.2rem;
    bottom: -2.2rem;
    width: 8.6rem;
    height: 8.6rem;
    border-radius: 50%;
    background-color: #69A78A1A;
    pointer-events: none;
    opacity: 0;
    transform: scale(0.6);
}

.p-community-approach__item.is-show::after {
    opacity: 1;
    transform: scale(1);
    transition:
        opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1) 0.35s,
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.35s;
}

.p-community-approach__num {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 4.5rem;
    height: 4.5rem;
    font-size: var(--font-size18);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1;
    color: #1B3A31;
    border: 1px solid #69A78A47;
    background-color: #EEF7F2;
    opacity: 0;
    transform: scale(0.65);
}

.p-community-approach__item.is-show .p-community-approach__num {
    opacity: 1;
    transform: scale(1);
    transition:
        opacity 0.4s cubic-bezier(0.22, 1, 0.36, 1) 0.15s,
        transform 0.6s cubic-bezier(0.34, 1.5, 0.64, 1) 0.15s;
}

.p-community-approach__item-title {
    position: relative;
    font-size: var(--font-size24);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.5;
    color: #1B3A31;
    margin-top: calc(var(--gap-unit)*1);
    letter-spacing: 0.06em;
    z-index: 1;
    opacity: 0;
    transform: translate3d(0, 0.8rem, 0);
}

.p-community-approach__item.is-show .p-community-approach__item-title {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.5s cubic-bezier(0.53, 0.2, 0.25, 1) 0.28s,
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.28s;
}

.p-community-approach__item-txt {
    position: relative;
    z-index: 1;
    font-size: var(--font-size14);
    line-height: 1.9;
    color: #667A72;
    opacity: 0;
    transform: translate3d(0, 0.8rem, 0);
}

.p-community-approach__item.is-show .p-community-approach__item-txt {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.5s cubic-bezier(0.53, 0.2, 0.25, 1) 0.4s,
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.4s;
}

@media (max-width: 768px) {
    .p-community-approach__inner {
        padding: 0;
    }

    .p-community-approach__img {
        aspect-ratio: 1096 / 540;
    }

    .p-community-approach__panel {
        width: 85%;
    }

    .p-community-approach__title-ja {
        font-size: var(--font-size26);
    }

    .p-community-approach__title-en {
        font-size: var(--font-size14);
    }

    .p-community-approach__lead {
        font-size: var(--font-size15);
    }

    .p-community-approach__list {
        gap: calc(var(--gap-unit)*2);
    }

    .p-community-approach__item {
        padding: calc(var(--gap-unit)*2.5);
    }

    .p-community-approach__item-title {
        font-size: var(--font-size20);
    }
}

@media (max-width: 450px) {
    .p-community-approach__panel {
        margin-top: 0;
        border-top: 0;
        width: 100%;
        padding: calc(var(--gap-unit)*3.5) calc(var(--gap-unit)*3);
    }

    .p-community-approach__list {
        flex-direction: column;
        gap: calc(var(--gap-unit)*1);
        margin-top: calc(var(--gap-unit)*5);
    }

    .p-community-approach__item {
        padding: calc(var(--gap-unit)*3);
    }

    .p-community-approach__item-title {
        font-size: var(--font-size22);
    }
}




.p-community-activity {
    position: relative;
    background: linear-gradient(180deg, #F7FAF7 0%, #EEF7F2 100%);
}

.p-community-activity__lead {
    color: var(--bg-font-color);
}

.p-community-activity .js-community-activity-lead {
    opacity: 0;
    filter: blur(6px);
    transform: translate3d(0, 0.6rem, 0);
}

.p-community-activity .js-community-activity-lead.is-show {
    opacity: 1;
    filter: blur(0);
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.15s,
        filter 0.8s cubic-bezier(0.22, 1, 0.36, 1) 0.15s,
        transform 0.8s cubic-bezier(0.22, 1, 0.36, 1) 0.15s;
}

.p-community-activity__list {
    display: flex;
    flex-direction: column;
    background-color: var(--bg-white-color);
    border: 1px solid #DDE9E2;
    box-shadow: 0px 14px 46px 0px #182F280D;
    overflow: hidden;
    clip-path: inset(0 0 100% 0);
    opacity: 1;
}

.p-community-activity__list.is-show {
    clip-path: inset(0 0 0 0);
    transition: clip-path 1s cubic-bezier(0.77, 0, 0.175, 1);
}

.p-community-activity__item {
    position: relative;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: calc(var(--gap-unit)*3);
    padding: calc(var(--gap-unit)*3.75) calc(var(--gap-unit)*4);
    border-bottom: 1px solid #E8EBE9;
    transition: background-color 0.3s linear;
    overflow: hidden;
}

.p-community-activity__item::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(238, 247, 242, 0.95) 0%, rgba(238, 247, 242, 0.2) 55%, rgba(238, 247, 242, 0) 100%);
    transform: translate3d(-105%, 0, 0);
    pointer-events: none;
    z-index: 0;
}

.p-community-activity__item.is-show::before {
    animation: communityActivityWash 0.95s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

@keyframes communityActivityWash {
    0% {
        transform: translate3d(-105%, 0, 0);
    }
    55% {
        transform: translate3d(0, 0, 0);
    }
    100% {
        transform: translate3d(105%, 0, 0);
    }
}

.p-community-activity__item:last-child {
    border-bottom: none;
}

.p-community-activity__num {
    position: relative;
    z-index: 1;
    width: 7.4rem;
    font-size: var(--font-size32);
    font-family: var(--fontT);
    line-height: 1;
    color: #159A57;
    letter-spacing: 0.02em;
    opacity: 0;
    filter: blur(5px);
    transform: scale(1.25);
}

.p-community-activity__item.is-show .p-community-activity__num {
    opacity: 1;
    filter: blur(0);
    transform: scale(1);
    transition:
        opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1) 0.15s,
        filter 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.15s,
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.15s,
        color 0.35s ease,
        letter-spacing 0.35s ease;
}

.p-community-activity__main {
    position: relative;
    z-index: 1;
    flex: 1;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: calc(var(--gap-unit)*4);
    opacity: 0;
    transform: translate3d(0, 1.2rem, 0);
}

.p-community-activity__item.is-show .p-community-activity__main {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1) 0.28s,
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.28s;
}

.p-community-activity__title {
    position: relative;
    width: 34%;
    font-size: var(--font-size22);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.6;
    color: #1B3A31;
    letter-spacing: 0.05em;
    transition: color 0.35s ease, transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-community-activity__txt {
    flex: 1;
    font-size: var(--font-size15);
    line-height: 2;
    color: #667A72;
    transition: color 0.35s ease;
}

.p-community-activity__arrow {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 4.5rem;
    height: 4.5rem;
    font-size: var(--font-size22);
    line-height: 1;
    color: #159A57;
    text-align: center;
    border-radius: 50%;
    border: 1px solid transparent;
    background-color: transparent;
    opacity: 0;
    margin-left: var(--gap-unit);
    transform: rotate(-90deg) scale(0.6);
    transition:
        transform 0.35s cubic-bezier(0.22, 1, 0.36, 1),
        opacity 0.3s linear,
        color 0.35s ease,
        background-color 0.35s ease,
        border-color 0.35s ease,
        box-shadow 0.35s ease;
}

.p-community-activity__item.is-show .p-community-activity__arrow {
    opacity: 1;
    transform: rotate(0deg) scale(1);
    transition:
        opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1) 0.42s,
        transform 0.65s cubic-bezier(0.34, 1.45, 0.64, 1) 0.42s,
        color 0.35s ease,
        background-color 0.35s ease,
        border-color 0.35s ease,
        box-shadow 0.35s ease;
}

@media (hover: hover) {
    .p-community-activity__item.is-show:hover {
        background-color: #F4FBF7;
        box-shadow: inset 4px 0 0 #159A57;
    }

    .p-community-activity__item.is-show:hover::before {
        animation: none;
        transform: translate3d(0, 0, 0);
        background: linear-gradient(90deg, rgba(21, 154, 87, 0.08) 0%, rgba(21, 154, 87, 0.02) 45%, rgba(21, 154, 87, 0) 100%);
        transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1), background 0.45s ease;
    }

    .p-community-activity__item.is-show:hover .p-community-activity__num {
        color: #0F7A44;
        letter-spacing: 0.08em;
        transform: scale(1.08);
        transition:
            color 0.35s ease,
            letter-spacing 0.35s ease,
            transform 0.45s cubic-bezier(0.34, 1.4, 0.64, 1);
    }

    .p-community-activity__item.is-show:hover .p-community-activity__title {
        color: #159A57;
        transform: translate3d(0.4rem, 0, 0);
    }

    .p-community-activity__item.is-show:hover .p-community-activity__title::after {
        transform: scaleX(1);
    }

    .p-community-activity__item.is-show:hover .p-community-activity__txt {
        color: #4F6A60;
    }

    .p-community-activity__item.is-show:hover .p-community-activity__arrow {
        color: var(--bg-white-color);
        background-color: #159A57;
        border-color: #159A57;
        box-shadow: 0 10px 24px rgba(21, 154, 87, 0.28);
        transform: rotate(0deg) scale(1);
        transition:
            transform 0.4s cubic-bezier(0.34, 1.4, 0.64, 1),
            color 0.35s ease,
            background-color 0.35s ease,
            border-color 0.35s ease,
            box-shadow 0.35s ease;
    }
}

@media (max-width: 768px) {
    .p-community-activity__item {
        gap: calc(var(--gap-unit)*2.5);
        padding: calc(var(--gap-unit)*3.5) calc(var(--gap-unit)*3.5);
        padding-right: calc(var(--gap-unit)*3);
    }

    .p-community-activity__num {
        font-size: var(--font-size30);
        width: 4rem;
    }

    .p-community-activity__title {
        width: 34%;
    }

    .p-community-activity__title {
        font-size: var(--font-size18);
    }

    .p-community-activity__main {
        gap: calc(var(--gap-unit)*2);
    }

    .p-community-activity__txt {
        font-size: var(--font-size14);
    }

    .p-community-activity__arrow {
        font-size: var(--font-size18);
        width: 4rem;
        height: 4rem;
    }
}

@media (max-width: 450px) {
    .p-community-activity__item {
        flex-direction: column;
        align-items: flex-start;
        padding: calc(var(--gap-unit)*3) calc(var(--gap-unit)*3);
    }

    .p-community-activity__main {
        flex-direction: column;
        align-items: flex-start;
    }

    .p-community-activity__arrow {
        display: none;
    }

    .p-community-activity__title {
        font-size: var(--font-size20);
        width: 100%;
    }

    .p-community-activity__main {
        gap: calc(var(--gap-unit)*2);
    }
}




.p-community-detail {
    position: relative;
    background-color: var(--bg-white-color);
}

.p-community-detail__inner {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*5.5);
}

.p-community-detail__block {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: calc(var(--gap-unit)*5.5);
    padding: calc(var(--gap-unit)*4);
    background-color: var(--bg-white-color);
    border: 1px solid #DDE9E2;
    box-shadow: 0px 16px 50px 0px #182F280E;
    overflow: hidden;
}

.p-community-detail__block--reverse {
    flex-direction: row-reverse;
}

.p-community-detail__media {
    position: relative;
    display: flex;
    width: 36%;
    aspect-ratio: 1/1;
    overflow: hidden;
    border: 1px solid #DDE9E2;
    clip-path: inset(0 100% 0 0);
}

.p-community-detail__block--reverse .p-community-detail__media {
    clip-path: inset(0 0 0 100%);
}

.p-community-detail__block.is-media-show .p-community-detail__media,
.p-community-detail__block--reverse.is-media-show .p-community-detail__media {
    clip-path: inset(0 0 0 0);
    transition: clip-path 1.05s cubic-bezier(0.77, 0, 0.175, 1);
}

.p-community-detail__media::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 2;
    background: linear-gradient(135deg, rgba(238, 247, 242, 0.55) 0%, rgba(238, 247, 242, 0) 55%);
    opacity: 0;
    pointer-events: none;
}

.p-community-detail__block.is-media-show .p-community-detail__media::after {
    animation: communityDetailFlash 0.85s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

@keyframes communityDetailFlash {
    0% {
        opacity: 0.65;
    }
    100% {
        opacity: 0;
    }
}

.p-community-detail__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scale(1.14);
}

.p-community-detail__block.is-media-show .p-community-detail__media img {
    transform: scale(1);
    transition: transform 1.25s cubic-bezier(0.22, 1, 0.36, 1) 0.05s;
}

.p-community-detail__media .swiper {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
}

.p-community-detail__media .swiper-slide {
    height: 100%;
}

.p-community-detail__media .swiper-pagination {
    bottom: 1.4rem;
    z-index: 3;
}

.p-community-detail__media .swiper-pagination-bullet {
    width: 0.8rem;
    height: 0.8rem;
    background: #ffffff;
    opacity: 0.55;
}

.p-community-detail__media .swiper-pagination-bullet-active {
    background: #37B18E;
    opacity: 1;
}

.p-community-detail__media .swiper-button-prev,
.p-community-detail__media .swiper-button-next {
    width: 4rem;
    height: 4rem;
    margin-top: 0;
    top: 50%;
    transform: translateY(-50%);
    color: #ffffff;
    background: rgba(24, 58, 50, 0.42);
    border: 0;
    border-radius: 50%;
    z-index: 3;
    --swiper-navigation-size: 1.5rem;
}

.p-community-detail__media .swiper-button-prev {
    left: 1.2rem;
}

.p-community-detail__media .swiper-button-next {
    right: 1.2rem;
}

.p-community-detail__content {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: calc(var(--gap-unit)*1.5);
    min-width: 0;
}

.p-community-detail__label {
    display: inline-block;
    align-self: flex-start;
    font-size: var(--font-size15);
    font-weight: 700;
    line-height: 2;
    letter-spacing: 0.3em;
    color: #159A57;
    clip-path: inset(0 100% 0 0);
    opacity: 0;
}

.p-community-detail__block.is-content-show .p-community-detail__label {
    clip-path: inset(0 0 0 0);
    opacity: 1;
    transition:
        clip-path 0.75s cubic-bezier(0.77, 0, 0.175, 1),
        opacity 0.4s ease;
}

.p-community-detail__title {
    font-size: var(--font-size30);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.45;
    color: #1B3A31;
    letter-spacing: 0.02em;
    opacity: 0;
    transform: translate3d(0, 1.2rem, 0);
}

.p-community-detail__block.is-content-show .p-community-detail__title {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1) 0.12s,
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.12s;
}

.p-community-detail__lead {
    font-size: var(--font-size20);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.8;
    color: #1B3A31;
    opacity: 0;
    transform: translate3d(0, 1rem, 0);
}

.p-community-detail__block.is-content-show .p-community-detail__lead {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1) 0.24s,
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.24s;
}

.p-community-detail__txt {
    font-size: var(--font-size16);
    line-height: 2;
    color: #667A72;
    margin-top: calc(var(--gap-unit)*.7);
    opacity: 0;
    transform: translate3d(0, 1rem, 0);
}

.p-community-detail__block.is-content-show .p-community-detail__txt {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1) 0.36s,
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.36s;
}

.p-community-detail__list {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*1);
    margin-top: var(--gap-unit);
}

.p-community-detail__item {
    position: relative;
    display: flex;
    align-items: center;
    gap: calc(var(--gap-unit)*1.5);
    font-size: var(--font-size15);
    line-height: 1.9;
    color: #263A33;
    opacity: 0;
    transform: translate3d(-1rem, 0, 0);
}

.p-community-detail__block.is-content-show .p-community-detail__item {
    opacity: 1;
    transform: translate3d(0, 0, 0);
}

.p-community-detail__block.is-content-show .p-community-detail__item:nth-child(1) {
    transition:
        opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1) 0.48s,
        transform 0.6s cubic-bezier(0.22, 1, 0.36, 1) 0.48s;
}

.p-community-detail__block.is-content-show .p-community-detail__item:nth-child(2) {
    transition:
        opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1) 0.58s,
        transform 0.6s cubic-bezier(0.22, 1, 0.36, 1) 0.58s;
}

.p-community-detail__block.is-content-show .p-community-detail__item:nth-child(3) {
    transition:
        opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1) 0.68s,
        transform 0.6s cubic-bezier(0.22, 1, 0.36, 1) 0.68s;
}

.p-community-detail__item::before {
    content: "";
    display: flex;
    flex-shrink: 0;
    width: 1rem;
    height: 1rem;
    background-color: #69A78A;
    transform: scale(0);
}

.p-community-detail__block.is-content-show .p-community-detail__item::before {
    transform: scale(1);
    transition: transform 0.45s cubic-bezier(0.34, 1.5, 0.64, 1);
}

.p-community-detail__block.is-content-show .p-community-detail__item:nth-child(1)::before {
    transition-delay: 0.52s;
}

.p-community-detail__block.is-content-show .p-community-detail__item:nth-child(2)::before {
    transition-delay: 0.62s;
}

.p-community-detail__block.is-content-show .p-community-detail__item:nth-child(3)::before {
    transition-delay: 0.72s;
}

@media (max-width: 768px) {
    .p-community-detail__block {
        gap: calc(var(--gap-unit)*3.5);
        padding: calc(var(--gap-unit)*4) calc(var(--gap-unit)*3.5);
    }

    .p-community-detail__label {
        font-size: var(--font-size12);
    }

    .p-community-detail__title {
        font-size: var(--font-size24);
    }

    .p-community-detail__lead {
        font-size: 1.7rem;
    }

    .p-community-detail__txt {
        font-size: var(--font-size14);
    }

    .p-community-detail__item {
        font-size: var(--font-size14);
    }

    .p-community-detail__item::before {
        width: .8rem;
        height: .8rem;
    }
}

@media (max-width: 450px) {
    .p-community-detail__block {
        flex-direction: column-reverse;
        padding: calc(var(--gap-unit)*4) calc(var(--gap-unit)*3);
    }

    .p-community-detail__title {
        font-size: 2.5rem;
    }

    .p-community-detail__lead {
        font-size: 1.7rem;
    }

    .p-community-detail__media {
        width: 100%;
    }
}





.p-community-message {
    position: relative;
    background: linear-gradient(180deg, #F7FAF7 0%, #EEF7F2 100%);
}

.p-community-message__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.p-community-message .c-sec__title {
    align-items: center;
    text-align: center;
}

.p-community-message__card {
    font-size: var(--font-size16);
    line-height: 2;
    width: 80%;
    padding: calc(var(--gap-unit)*3.75) calc(var(--gap-unit)*4);
    background: linear-gradient(0deg, #FFFFFF, #FFFFFF),
        radial-gradient(101.58% 568.63% at 100% 0%, rgba(105, 167, 138, 0.1) 0%, rgba(105, 167, 138, 0) 24%);
    border-top: 3px solid #69A78A;
    box-shadow: 0px 20px 64px 0px #182F2814;
}

@media (max-width: 768px) {
    .p-community-message .c-sec__heading {
        margin-bottom: calc(var(--gap-unit)*4);
    }

    .p-community-message__card {
        width: 100%;
    }
}




/* -------page dx------- */
.p-dx-reason {
    position: relative;
    background-color: var(--bg-white-color);
}

.p-dx-reason .js-dx-reason-lead {
    opacity: 0;
    transform: translate3d(0, 1.4rem, 0);
}

.p-dx-reason .js-dx-reason-lead.is-show {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.65s cubic-bezier(0.53, 0.2, 0.25, 1) 0.2s,
        transform 0.8s cubic-bezier(0.22, 1, 0.36, 1) 0.2s;
}

.p-dx-reason__list {
    display: flex;
    gap: calc(var(--gap-unit)*2);
}

.p-dx-reason__item {
    position: relative;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*1.5);
    padding: calc(var(--gap-unit)*3.25) calc(var(--gap-unit)*2.75);
    background-color: var(--bg-white-color);
    border: 1px solid #DDE9E2;
    box-shadow: 0px 16px 48px 0px #182F280E;
    overflow: hidden;
    opacity: 0;
    transform: translate3d(0, 2.4rem, 0);
}

.p-dx-reason__item.is-show {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.75s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-dx-reason__item::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 3px;
    background: linear-gradient(90deg, #159A57 0%, rgba(21, 154, 87, 0.15) 100%);
    transform: scaleX(0);
    transform-origin: left center;
}

.p-dx-reason__item.is-show::before {
    transform: scaleX(1);
    transition: transform 0.75s cubic-bezier(0.77, 0, 0.175, 1) 0.1s;
}

.p-dx-reason__item-title {
    position: relative;
    z-index: 1;
    font-size: var(--font-size20);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.6;
    color: #1B3A31;
    letter-spacing: 0.03em;
    opacity: 0;
    transform: translate3d(0, 0.9rem, 0);
}

.p-dx-reason__item.is-show .p-dx-reason__item-title {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.5s cubic-bezier(0.53, 0.2, 0.25, 1) 0.2s,
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.2s;
}

.p-dx-reason__item-txt {
    position: relative;
    z-index: 1;
    font-size: var(--font-size14);
    line-height: 2;
    color: #667A72;
    opacity: 0;
    transform: translate3d(0, 0.9rem, 0);
}

.p-dx-reason__item.is-show .p-dx-reason__item-txt {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.5s cubic-bezier(0.53, 0.2, 0.25, 1) 0.34s,
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.34s;
}

@media (hover: hover) {
    .p-dx-reason__item.is-show:hover {
        border-color: #69A78A;
        box-shadow: 0 18px 48px rgba(24, 47, 40, 0.1);
    }

    .p-dx-reason__item.is-show:hover .p-dx-reason__item-title {
        color: #159A57;
        transition: color 0.35s ease;
    }
}

@media (max-width: 768px) {
    .p-dx-reason__list {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 450px) {
    .p-dx-reason__list {
        grid-template-columns: 1fr;
        gap: var(--gap-unit);
    }
}




.p-dx-initiatives {
    position: relative;
    overflow: hidden;
    background: linear-gradient(180deg, #F8FCF9 0%, #EDF8F3 100%);
    --dx-ring-scale: 0.72;
    --dx-ring-opacity: 0;
}

.p-dx-initiatives::before {
    content: "";
    position: absolute;
    top: -30rem;
    left: -30rem;
    width: 60rem;
    height: 60rem;
    border-radius: 50%;
    border: 1px solid #37B18E1C;
    pointer-events: none;
    opacity: var(--dx-ring-opacity);
    transform: scale(var(--dx-ring-scale));
    transform-origin: center center;
    transition: none;
}

.p-dx-initiatives::after {
    content: "";
    position: absolute;
    top: -22rem;
    left: -22rem;
    width: 44rem;
    height: 44rem;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(55, 177, 142, 0.1) 0%, rgba(55, 177, 142, 0) 70%);
    pointer-events: none;
    opacity: calc(var(--dx-ring-opacity) * 0.9);
    transform: scale(var(--dx-ring-scale));
    transform-origin: center center;
}

.p-dx-initiatives__inner {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*5);
}

.p-dx-initiatives__heading {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: calc(var(--gap-unit)*2.5);
}

.p-dx-initiatives__title {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: calc(var(--gap-unit)*1.75);
}

.p-dx-initiatives__title-en {
    font-size: var(--font-size12);
    font-weight: 700;
    line-height: 2;
    letter-spacing: 0.33em;
    color: #159A57;
}

.p-dx-initiatives__title-ja {
    font-size: var(--font-size32);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.08em;
    color: #1B3A31;
}

.p-dx-initiatives__lead {
    position: relative;
    font-size: var(--font-size24);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.8;
    letter-spacing: 0.06em;
    color: #1B3A31;
}

.p-dx-initiatives__card {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*2);
    padding: calc(var(--gap-unit)*4);
    background-color: var(--bg-white-color);
    border: 1px solid #DDE9E2;
    box-shadow: 0 16px 48px rgba(24, 58, 50, 0.06);
    overflow: hidden;
}

.p-dx-initiatives__card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 3px;
    background: linear-gradient(90deg, #159A57 0%, rgba(21, 154, 87, 0.15) 100%);
    transform: scaleX(0);
    transform-origin: left center;
}

.p-dx-initiatives__card.is-show::before {
    transform: scaleX(1);
    transition: transform 0.9s cubic-bezier(0.77, 0, 0.175, 1) 0.05s;
}

.p-dx-initiatives__card p {
    font-size: var(--font-size16);
    line-height: 2.1;
    color: #667A72;
}

@media (max-width: 768px) {
    .p-dx-initiatives__inner {
        gap: calc(var(--gap-unit)*4);
    }

    .p-dx-initiatives__title-ja {
        font-size: var(--font-size28);
    }

    .p-dx-initiatives__lead {
        font-size: var(--font-size18);
    }

    .p-dx-initiatives__card {
        gap: calc(var(--gap-unit)*2.25);
        padding: calc(var(--gap-unit)*3.5) calc(var(--gap-unit)*3.25);
    }

    .p-dx-initiatives__card p {
        font-size: var(--font-size15);
    }
}

@media (max-width: 450px) {
    .p-dx-initiatives::before {
        top: -12rem;
        left: -16rem;
        width: 36rem;
        height: 36rem;
    }

    .p-dx-initiatives__card {
        padding: calc(var(--gap-unit)*3) calc(var(--gap-unit)*2.5);
    }

    .p-dx-initiatives__card p {
        font-size: var(--font-size14);
        line-height: 2;
    }
}

.p-dx-komainu {
    position: relative;
    background-color: var(--bg-white-color);
}

.p-dx-komainu__wrap {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*6);
}

.p-dx-komainu__inner {
    position: relative;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: calc(var(--gap-unit)*7);
}

.p-dx-komainu__img {
    position: relative;
    z-index: 1;
    display: flex;
    width: 45%;
    padding: 0 0 calc(var(--gap-unit)*3) calc(var(--gap-unit)*3);
}

.p-dx-komainu__img::before {
    content: "";
    position: absolute;
    bottom: 0;
    right: calc(var(--gap-unit)*-2);
    width: 40rem;
    aspect-ratio: 40/46;
    background-color: #69A78A1A;
    border: 1px solid #69A78A3D;
    clip-path: inset(0 100% 0 0);
    transition: clip-path 0.6s cubic-bezier(0.77, 0, 0.175, 1);
}

.p-dx-komainu__img.is-before-show::before {
    clip-path: inset(0 0 0 0);
}

.p-dx-komainu__visual {
    position: relative;
    width: 100%;
    aspect-ratio: 40 / 46;
    overflow: hidden;
    z-index: 2;
    clip-path: inset(0 100% 0 0);
}

.p-dx-komainu__img.is-img-show .p-dx-komainu__visual {
    clip-path: inset(0 0 0 0);
    transition: clip-path 0.9s cubic-bezier(0.77, 0, 0.175, 1);
}

.p-dx-komainu__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.p-dx-komainu__visual .swiper {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.p-dx-komainu__visual .swiper-slide {
    height: 100%;
}

.p-dx-komainu__visual .swiper-pagination {
    bottom: 1.4rem;
    z-index: 3;
}

.p-dx-komainu__visual .swiper-pagination-bullet {
    width: 0.8rem;
    height: 0.8rem;
    background: #ffffff;
    opacity: 0.55;
}

.p-dx-komainu__visual .swiper-pagination-bullet-active {
    background: #37B18E;
    opacity: 1;
}

.p-dx-komainu__visual .swiper-button-prev,
.p-dx-komainu__visual .swiper-button-next {
    width: 4rem;
    height: 4rem;
    margin-top: 0;
    top: 50%;
    transform: translateY(-50%);
    color: #ffffff;
    background: rgba(24, 58, 50, 0.42);
    border: 0;
    border-radius: 50%;
    z-index: 3;
    --swiper-navigation-size: 1.5rem;
}

.p-dx-komainu__visual .swiper-button-prev {
    left: 1.2rem;
}

.p-dx-komainu__visual .swiper-button-next {
    right: 1.2rem;
}

.p-dx-komainu__content {
    position: relative;
    z-index: 1;
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: calc(var(--gap-unit)*2.2);
}

.p-dx-komainu__label {
    display: inline-block;
    align-self: flex-start;
    font-size: var(--font-size15);
    font-weight: 700;
    line-height: 2;
    letter-spacing: 0.35em;
    color: #159A57;
    clip-path: inset(0 100% 0 0);
    opacity: 0;
}

.p-dx-komainu__content.is-show .p-dx-komainu__label {
    clip-path: inset(0 0 0 0);
    opacity: 1;
    transition:
        clip-path 0.75s cubic-bezier(0.77, 0, 0.175, 1),
        opacity 0.4s ease;
}

.p-dx-komainu__title {
    font-size: var(--font-size32);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.5;
    color: #1B3A31;
    letter-spacing: 0.02em;
    opacity: 0;
    transform: translate3d(0, 1.2rem, 0);
}

.p-dx-komainu__content.is-show .p-dx-komainu__title {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1) 0.12s,
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.12s;
}

.p-dx-komainu__lead {
    font-size: var(--font-size16);
    line-height: 2;
    letter-spacing: 0.04em;
    margin-top: var(--gap-unit);
    color: #667A72;
    opacity: 0;
    transform: translate3d(0, 1rem, 0);
}

.p-dx-komainu__content.is-show .p-dx-komainu__lead {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1) 0.26s,
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.26s;
}

.p-dx-komainu__list {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*1.25);
    margin-top: calc(var(--gap-unit)*.6);
}

.p-dx-komainu__item {
    position: relative;
    display: flex;
    align-items: center;
    gap: calc(var(--gap-unit)*1.5);
    font-size: var(--font-size15);
    line-height: 2;
    color: #263A33;
    opacity: 0;
    transform: translate3d(-1rem, 0, 0);
}

.p-dx-komainu__content.is-show .p-dx-komainu__item {
    opacity: 1;
    transform: translate3d(0, 0, 0);
}

.p-dx-komainu__content.is-show .p-dx-komainu__item:nth-child(1) {
    transition:
        opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1) 0.4s,
        transform 0.6s cubic-bezier(0.22, 1, 0.36, 1) 0.4s;
}

.p-dx-komainu__content.is-show .p-dx-komainu__item:nth-child(2) {
    transition:
        opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1) 0.5s,
        transform 0.6s cubic-bezier(0.22, 1, 0.36, 1) 0.5s;
}

.p-dx-komainu__content.is-show .p-dx-komainu__item:nth-child(3) {
    transition:
        opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1) 0.6s,
        transform 0.6s cubic-bezier(0.22, 1, 0.36, 1) 0.6s;
}

.p-dx-komainu__content.is-show .p-dx-komainu__item:nth-child(4) {
    transition:
        opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1) 0.7s,
        transform 0.6s cubic-bezier(0.22, 1, 0.36, 1) 0.7s;
}

.p-dx-komainu__item span {
    flex: 1;
}

.p-dx-komainu__item::before {
    content: "";
    display: block;
    flex-shrink: 0;
    width: 1rem;
    height: 1rem;
    background-color: #69A78A;
    transform: scale(0);
}

.p-dx-komainu__content.is-show .p-dx-komainu__item::before {
    transform: scale(1);
    transition: transform 0.45s cubic-bezier(0.34, 1.5, 0.64, 1);
}

.p-dx-komainu__content.is-show .p-dx-komainu__item:nth-child(1)::before {
    transition-delay: 0.44s;
}

.p-dx-komainu__content.is-show .p-dx-komainu__item:nth-child(2)::before {
    transition-delay: 0.54s;
}

.p-dx-komainu__content.is-show .p-dx-komainu__item:nth-child(3)::before {
    transition-delay: 0.64s;
}

.p-dx-komainu__content.is-show .p-dx-komainu__item:nth-child(4)::before {
    transition-delay: 0.74s;
}

@media (max-width: 768px) {
    .p-dx-komainu__inner {
        gap: calc(var(--gap-unit)*5);
    }

    .p-dx-komainu__title {
        font-size: var(--font-size28);
    }

    .p-dx-komainu__lead {
        font-size: var(--font-size15);
    }

    .p-dx-komainu__img {
        padding: 0 0 calc(var(--gap-unit)*2) calc(var(--gap-unit)*2);
    }

    .p-dx-komainu__img::before {
        width: 25rem;
    }

    .p-dx-komainu__list {
        gap: calc(var(--gap-unit));
    }

    .p-dx-komainu__item {
        gap: calc(var(--gap-unit)*1.25);
        font-size: var(--font-size14);
    }

    .p-dx-komainu__item::before {
        width: .8rem;
        height: .8rem;
    }
}

@media (max-width: 450px) {
    .p-dx-komainu__inner {
        flex-direction: column-reverse;
    }

    .p-dx-komainu__title {
        font-size: var(--font-size26);
    }

    .p-dx-komainu__img {
        width: 95%;
        padding-left: 0;
    }

    .p-dx-komainu__img::before {
        width: 30rem;
    }
}

.p-dx-komainu__process {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*2);
    padding: calc(var(--gap-unit)*5.5);
    background: linear-gradient(180deg, #F8FCF9 0%, #F0FAF5 100%);
    border: 1px solid var(--color-cyan-168, #183A3214);
    box-shadow: 0px 18px 48px 0px #183A3212;
    border: 1px solid #DDE9E2;
}

.p-dx-komainu__process-title {
    font-size: var(--font-size24);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.7;
    letter-spacing: 0.07em;
    color: #173D34;
}

.p-dx-komainu__process-body {
    margin-top: calc(var(--gap-unit)*.5);
}

.p-dx-komainu__process-body p,
.p-dx-komainu__process-note {
    font-size: var(--font-size16);
    line-height: 1.9;
    color: #183A32BD;
}

.p-dx-komainu__steps {
    display: flex;
    gap: calc(var(--gap-unit));
    list-style: none;
    margin: 0;
    padding: 0;
    margin-top: var(--gap-unit);
}

.p-dx-komainu__step {
    position: relative;
    z-index: 1;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*1);
    padding: calc(var(--gap-unit)*2);
    padding-bottom: calc(var(--gap-unit)*3);
    background-color: var(--bg-white-color);
    border: 1px solid #37B18E29;
    box-shadow: 0 8px 24px rgba(24, 58, 50, 0.05);
}

.p-dx-komainu__step:nth-child(1) { z-index: 5; }
.p-dx-komainu__step:nth-child(2) { z-index: 4; }
.p-dx-komainu__step:nth-child(3) { z-index: 3; }
.p-dx-komainu__step:nth-child(4) { z-index: 2; }
.p-dx-komainu__step:nth-child(5) { z-index: 1; }

.p-dx-komainu__step:not(:last-child)::after {
    content: "→";
    position: absolute;
    top: 50%;
    right: calc(var(--gap-unit)*-1.7);
    transform: translateY(-50%);
    font-size: var(--font-size16);
    font-family: var(--fontG);
    line-height: 1;
    color: #37B18E;
    pointer-events: none;
}

.p-dx-komainu__step-num {
    font-size: var(--font-size18);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.04em;
    color: #159A57;
}

.p-dx-komainu__step-label {
    font-size: var(--font-size14);
    font-weight: bold;
    line-height: 1.3;
    letter-spacing: 0.04em;
    color: #173D34;
}

.p-dx-komainu__official {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: calc(var(--gap-unit)*3.5);
    width: 50%;
    padding: calc(var(--gap-unit)*3);
    margin: 0 auto;
    overflow: hidden;
    background-color: var(--bg-white-color);
    border: 1px solid #D5DCE3;
    box-shadow: 0 12px 36px rgba(24, 40, 58, 0.06);
    transition:
        border-color 0.45s cubic-bezier(0.22, 1, 0.36, 1),
        box-shadow 0.45s cubic-bezier(0.22, 1, 0.36, 1),
        transform 0.45s cubic-bezier(0.22, 1, 0.36, 1),
        background-color 0.45s ease;
}

.p-dx-komainu__official::before {
    content: "";
    position: absolute;
    top: 0;
    left: -40%;
    width: 40%;
    height: 100%;
    background: linear-gradient(
        105deg,
        transparent 0%,
        rgba(0, 61, 105, 0.07) 45%,
        rgba(233, 81, 74, 0.08) 55%,
        transparent 100%
    );
    transform: skewX(-18deg) translateX(0);
    opacity: 0;
    pointer-events: none;
    z-index: 1;
}

.p-dx-komainu__official::after {
    content: "";
    position: absolute;
    inset: 0;
    border: 1px solid transparent;
    pointer-events: none;
    transition: border-color 0.45s ease, box-shadow 0.45s ease;
}

.p-dx-komainu__official-logo {
    position: relative;
    z-index: 2;
    flex: 1;
    display: flex;
    transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-dx-komainu__official-logo img {
    width: 100%;
    transition: filter 0.45s ease;
}

.p-dx-komainu__official-link {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: calc(var(--gap-unit)*1);
    padding: calc(var(--gap-unit)*3);
    border-left: 1px solid #003D691F;
    transition: border-color 0.45s ease;
}

.p-dx-komainu__official-txt {
    font-size: var(--font-size16);
    font-weight: 700;
    line-height: 1.9;
    letter-spacing: 0.04em;
    color: #003D69;
    transition: color 0.35s ease, letter-spacing 0.45s ease;
}

.p-dx-komainu__official-arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: var(--font-size22);
    font-family: var(--fontG);
    font-weight: bold;
    line-height: 1;
    letter-spacing: .03em;
    color: #E9514A;
    transition:
        transform 0.45s cubic-bezier(0.34, 1.4, 0.64, 1),
        color 0.35s ease,
        text-shadow 0.35s ease;
}

@media (hover: hover) {
    .p-dx-komainu__official:hover {
        border-color: #003D6940;
        background-color: #F7FAFC;
        box-shadow:
            0 20px 48px rgba(0, 61, 105, 0.12),
            0 0 0 1px rgba(233, 81, 74, 0.12);
        transform: translateY(-4px);
    }

    .p-dx-komainu__official:hover::before {
        opacity: 1;
        animation: komainuOfficialShine 0.85s cubic-bezier(0.22, 1, 0.36, 1) forwards;
    }

    .p-dx-komainu__official:hover::after {
        border-color: rgba(0, 61, 105, 0.18);
        box-shadow: inset 0 0 0 1px rgba(233, 81, 74, 0.08);
    }

    .p-dx-komainu__official:hover .p-dx-komainu__official-logo img {
        filter: drop-shadow(0 6px 14px rgba(0, 61, 105, 0.18));
    }

    .p-dx-komainu__official:hover .p-dx-komainu__official-link {
        border-left-color: #E9514A55;
    }

    .p-dx-komainu__official:hover .p-dx-komainu__official-txt {
        color: #002A4A;
        letter-spacing: 0.08em;
    }

    .p-dx-komainu__official:hover .p-dx-komainu__official-arrow {
        color: #E9514A;
        transform: translateX(0.7rem);
        text-shadow: 0 0 12px rgba(233, 81, 74, 0.45);
        animation: komainuOfficialArrow 0.9s cubic-bezier(0.34, 1.4, 0.64, 1) infinite;
    }
}

@keyframes komainuOfficialShine {
    0% {
        transform: skewX(-18deg) translateX(0);
    }
    100% {
        transform: skewX(-18deg) translateX(350%);
    }
}

@keyframes komainuOfficialArrow {
    0%,
    100% {
        transform: translateX(0.7rem);
    }
    50% {
        transform: translateX(1.1rem);
    }
}

@media (max-width: 768px) {
    .p-dx-komainu__wrap {
        gap: calc(var(--gap-unit)*5);
    }

    .p-dx-komainu__process {
        gap: calc(var(--gap-unit)*3);
        padding: calc(var(--gap-unit)*4) calc(var(--gap-unit)*3);
    }

    .p-dx-komainu__process-title {
        font-size: var(--font-size20);
        text-align: left;
    }

    .p-dx-komainu__steps {
        flex-wrap: wrap;
        gap: calc(var(--gap-unit)*1.5);
    }

    .p-dx-komainu__step {
        flex: 1 1 calc(50% - calc(var(--gap-unit)*1));
        min-width: calc(50% - calc(var(--gap-unit)*1));
    }

    .p-dx-komainu__step:not(:last-child) {
        margin-right: 0;
    }

    .p-dx-komainu__step:not(:last-child)::after {
        display: none;
    }

    .p-dx-komainu__official {
        width: 75%;
        gap: calc(var(--gap-unit)*3);
        padding: calc(var(--gap-unit)*2.5);
    }

    .p-dx-komainu__official-logo img {
        width: 100%;
    }

    .p-dx-komainu__official-link {
        padding: calc(var(--gap-unit)*2.25) calc(var(--gap-unit)*2.5);
    }

    .p-dx-komainu__official-txt {
        font-size: var(--font-size15);
    }

    .p-dx-komainu__official-arrow {
        font-size: var(--font-size18);
    }
}

@media (max-width: 450px) {
    .p-dx-komainu__process {
        padding: calc(var(--gap-unit)*3) calc(var(--gap-unit)*2.5);
    }

    .p-dx-komainu__step {
        flex: 1 1 100%;
        min-width: 100%;
    }

    .p-dx-komainu__process-body p,
    .p-dx-komainu__process-note {
        font-size: var(--font-size14);
    }

    .p-dx-komainu__official {
        width: 100%;
        gap: calc(var(--gap-unit)*2);
    }

    .p-dx-komainu__official-link {
        padding: calc(var(--gap-unit)*2) calc(var(--gap-unit)*2.25);
    }

    .p-dx-komainu__official-txt {
        font-size: var(--font-size14);
    }

    .p-dx-komainu__official-arrow {
        font-size: var(--font-size16);
    }
}

.p-dx-vision {
    position: relative;
    background: linear-gradient(180deg, #F8FCF9 0%, #EEF8F3 100%);
}

.p-dx-vision__inner {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*3.5);
}

.p-dx-vision__card {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*2);
    padding: calc(var(--gap-unit)*5) calc(var(--gap-unit)*4);
    background: #FFFFFFD1;
    border: 1px solid #183A3217;
    box-shadow: 0px 12px 32px 0px #183A320B;
}

.p-dx-vision__title {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*2);
}

.p-dx-vision__title-en {
    display: inline-block;
    align-self: flex-start;
    font-size: var(--font-size12);
    font-weight: 700;
    line-height: 2;
    letter-spacing: 0.32em;
    color: #159A57;
}

.p-dx-vision__title-ja {
    font-size: var(--font-size32);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.04em;
    color: #1B3A31;
}

.p-dx-vision__body {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*2);
}

.p-dx-vision__body p {
    font-size: var(--font-size16);
    line-height: 2.1;
    color: #183A32BD;
}

.p-dx-vision__body .p-dx-vision__callout {
    padding: calc(var(--gap-unit)*2.5) calc(var(--gap-unit)*2.5);
    font-size: var(--font-size24);
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: 0.03em;
    color: #173D34;
    background-color: #37B18E13;
    border-left: 3px solid var(--bg-green-color);
}

.p-dx-vision__body p:last-child {
    margin-top: var(--gap-unit);
}

.p-dx-vision__body p:first-child {
    margin: 0;
}

@media (max-width: 768px) {
    .p-dx-vision__inner {
        gap: calc(var(--gap-unit)*3);
    }

    .p-dx-vision__card {
        gap: calc(var(--gap-unit)*2);
        padding: calc(var(--gap-unit)*4) calc(var(--gap-unit)*3.25);
    }

    .p-dx-vision__title {
        gap: calc(var(--gap-unit)*1.5);
    }

    .p-dx-vision__title-en {
        letter-spacing: 0.24em;
    }

    .p-dx-vision__title-ja {
        font-size: var(--font-size24);
        line-height: 1.55;
    }

    .p-dx-vision__body {
        gap: calc(var(--gap-unit)*1.75);
    }

    .p-dx-vision__body p {
        font-size: var(--font-size15);
        line-height: 2;
    }

    .p-dx-vision__body .p-dx-vision__callout {
        padding: calc(var(--gap-unit)*2.25) calc(var(--gap-unit)*2.25);
        font-size: var(--font-size18);
        line-height: 1.55;
        letter-spacing: 0.02em;
    }

    .p-dx-vision__body p:last-child {
        margin-top: calc(var(--gap-unit)*0.5);
    }
}

@media (max-width: 450px) {
    .p-dx-vision__inner {
        gap: calc(var(--gap-unit)*2.5);
    }

    .p-dx-vision__card {
        gap: calc(var(--gap-unit)*1.75);
        padding: calc(var(--gap-unit)*3.25) calc(var(--gap-unit)*2.5);
    }

    .p-dx-vision__title {
        gap: calc(var(--gap-unit)*1.5);
    }

    .p-dx-vision__title-en {
        letter-spacing: 0.2em;
    }

    .p-dx-vision__title-ja {
        font-size: var(--font-size26);
        line-height: 1.6;
        letter-spacing: 0.03em;
    }

    .p-dx-vision__body {
        gap: calc(var(--gap-unit)*1.5);
    }

    .p-dx-vision__body p {
        font-size: var(--font-size14);
        line-height: 1.95;
    }

    .p-dx-vision__body .p-dx-vision__callout {
        padding: calc(var(--gap-unit)*1.5) calc(var(--gap-unit)*2);
        font-size: var(--font-size16);
        line-height: 1.8;
        letter-spacing: 0.015em;
    }

    .p-dx-vision__body p:last-child {
        margin-top: 0;
    }
}


/* -------page recruit------- */
.p-recruit-nav {
    position: relative;
    background: linear-gradient(180deg, rgba(247, 250, 247, 0.95) 0%, rgba(244, 249, 246, 0.96) 100%);
}

.p-recruit-nav__inner {
    padding: 0 3rem;
}

.p-recruit-nav__box {
    position: relative;
    overflow: hidden;
    clip-path: inset(8% 8% 8% 8%);
    opacity: 0;
}

.p-recruit-nav__box.is-show {
    clip-path: inset(0 0 0 0);
    opacity: 1;
    transition:
        clip-path 1.05s cubic-bezier(0.77, 0, 0.175, 1),
        opacity 0.5s ease;
}

.p-recruit-nav__bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.p-recruit-nav__bg::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(20, 33, 42, 0.72) 0%, rgba(20, 33, 42, 0.68) 100%);
}

.p-recruit-nav__bg img {
    width: 100%;
    height: 100%;
    object-position: center 42%;
    object-fit: cover;
    transform: scale(1.12);
}

.p-recruit-nav__box.is-show .p-recruit-nav__bg img {
    transform: scale(1);
    transition: transform 1.4s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-recruit-nav__list {
    position: relative;
    z-index: 1;
    display: flex;
    border-top: 1px solid #FFFFFF73;
    border-bottom: 1px solid #FFFFFF73;
    margin: 17rem 18rem;
}

.p-recruit-nav__item {
    position: relative;
    display: flex;
    flex: 1;
    flex-direction: column;
    align-items: center;
    gap: calc(var(--gap-unit));
    padding: calc(var(--gap-unit)*3);
    text-align: center;
    color: var(--bg-white-color);
    border-right: 1px solid #FFFFFF73;
    transition: background-color 0.3s linear;
    opacity: 0;
    transform: translate3d(0, 1.8rem, 0);
}

.p-recruit-nav__item.is-show {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1),
        background-color 0.3s linear;
}

.p-recruit-nav__item:last-child {
    border-right: none;
}

.p-recruit-nav__item:hover {
    background-color: rgba(255, 255, 255, 0.1);
}

.p-recruit-nav__num {
    font-size: var(--font-size14);
    font-family: var(--fontT);
    line-height: 1.9;
    color: #FFFFFF9E;
    opacity: 0;
    letter-spacing: 0.2em;
    transform: translate3d(0, 0.6rem, 0);
}

.p-recruit-nav__item.is-show .p-recruit-nav__num {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1) 0.12s,
        transform 0.55s cubic-bezier(0.22, 1, 0.36, 1) 0.12s;
}

.p-recruit-nav__title {
    font-size: var(--font-size28);
    font-family: var(--fontT);
    font-weight: 600;
    line-height: 1.4;
    letter-spacing: 0.08em;
    opacity: 0;
    transform: translate3d(0, 0.8rem, 0);
}

.p-recruit-nav__item.is-show .p-recruit-nav__title {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.5s cubic-bezier(0.53, 0.2, 0.25, 1) 0.22s,
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.22s;
}

.p-recruit-nav__desc {
    font-size: 1.3rem;
    line-height: 1.7;
    letter-spacing: 0.04em;
    color: #FFFFFFB8;
    opacity: 0;
    transform: translate3d(0, 0.8rem, 0);
}

.p-recruit-nav__item.is-show .p-recruit-nav__desc {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.5s cubic-bezier(0.53, 0.2, 0.25, 1) 0.34s,
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.34s;
}

.p-recruit-nav__arrow {
    font-size: var(--font-size20);
    line-height: 1;
    color: #FFFFFFDB;
    opacity: 0;
    transform: translate3d(0, -0.6rem, 0);
}

.p-recruit-nav__item.is-show .p-recruit-nav__arrow {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1) 0.46s,
        transform 0.6s cubic-bezier(0.34, 1.45, 0.64, 1) 0.46s;
}

@media (hover: hover) {
    .p-recruit-nav__item.is-show:hover .p-recruit-nav__arrow {
        transform: translate3d(0, 0.35rem, 0);
        transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
    }

    .p-recruit-nav__item.is-show:hover .p-recruit-nav__title {
        letter-spacing: 0.14em;
        transition: letter-spacing 0.35s ease;
    }
}

.p-recruit-nav__arrow svg {
    width: 100%;
    height: auto;
}

@media (max-width: 768px) {
    .p-recruit-nav__inner {
        padding: 0;
    }

    .p-recruit-nav__list {
        margin: 8rem 4rem;
        border-bottom: none;
    }

    .p-recruit-nav__title {
        font-size: var(--font-size26);
    }
}

@media (max-width: 450px) {
    .p-recruit-nav__list {
        flex-direction: column;
    }

    .p-recruit-nav__item {
        border-right: none;
        border-bottom: 1px solid #FFFFFF73;
    }
}

.p-recruit-manga {
    position: relative;
    background-color: var(--bg-white-color);
}

.p-recruit-manga__nav {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: calc(var(--gap-unit)*1.5);
    margin-bottom: calc(var(--gap-unit)*8);
}

.p-recruit-manga__nav-item {
    display: flex;
    align-items: center;
    gap: calc(var(--gap-unit)*1.75);
    padding: calc(var(--gap-unit)*2) calc(var(--gap-unit)*2.25);
    font-size: var(--font-size14);
    font-weight: bold;
    line-height: 1.9;
    color: #1B3A31;
    background-color: var(--bg-white-color);
    border: 1px solid #DDE9E2;
    opacity: 0;
    transform: translate3d(0, 1.4rem, 0);
    transition:
        border-color 0.3s linear,
        box-shadow 0.3s linear,
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-recruit-manga__nav-item.is-in {
    opacity: 1;
    transform: translate3d(0, 0, 0);
}

.p-recruit-manga__nav-item:hover,
.p-recruit-manga__nav-item.is-active {
    border-color: #C8E8D4;
    box-shadow: 0 0.4rem 1.2rem rgba(24, 58, 50, 0.06);
}

.p-recruit-manga__nav-num {
    font-size: var(--font-size18);
    font-family: var(--fontT);
    font-weight: 700;
    color: #5D9880;
    line-height: 1.9;
}

.p-recruit-manga__hint {
    display: none;
    opacity: 0;
    transform: translate3d(0, 0.8rem, 0);
}

.p-recruit-manga__hint.is-in {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-recruit-manga__body {
    display: flex;
    align-items: flex-start;
    gap: calc(var(--gap-unit)*5);
}

.p-recruit-manga__sticky {
    position: sticky;
    top: calc(var(--header-distance) + var(--headerH) + var(--gap-unit)*3);
    flex-shrink: 0;
    width: 28rem;
    z-index: 2;
    opacity: 0;
    transform: translate3d(-1.6rem, 0, 0);
}

.p-recruit-manga__sticky.is-in {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.65s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.85s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-recruit-manga__infos {
    position: relative;
    min-height: 22rem;
}

.p-recruit-manga__list {
    display: flex;
    flex: 1;
    flex-direction: column;
    min-width: 0;
    gap: calc(var(--gap-unit)*7);
}

.p-recruit-manga__list .swiper-wrapper {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*7);
    width: 100%;
}

.p-recruit-manga__list:not(.swiper-initialized) .swiper-wrapper {
    transform: none !important;
}

.p-recruit-manga__list .swiper-slide {
    width: 100%;
    height: auto;
}

.p-recruit-manga__block {
    scroll-margin-top: calc(var(--header-distance) + var(--headerH) + var(--gap-unit)*3);
}

.p-recruit-manga__info {
    position: absolute;
    inset: 0 auto auto 0;
    display: flex;
    flex-direction: column;
    width: 100%;
    padding: calc(var(--gap-unit)*3.5) calc(var(--gap-unit)*3.25);
    border: 1px solid #DDE9E2;
    background-color: var(--bg-white-color);
    box-shadow: 0px 20px 64px 0px #182F2814;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(2.4rem) scale(0.96);
    clip-path: inset(12% 0 12% 0);
    filter: blur(2px);
    transition:
        opacity 0.55s cubic-bezier(0.22, 1, 0.36, 1),
        transform 0.55s cubic-bezier(0.22, 1, 0.36, 1),
        clip-path 0.55s cubic-bezier(0.22, 1, 0.36, 1),
        filter 0.45s linear,
        visibility 0s linear 0.55s,
        box-shadow 0.45s linear;
}

.p-recruit-manga__info.is-active {
    position: relative;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0) scale(1);
    clip-path: inset(0 0 0 0);
    filter: blur(0);
    transition-delay: 0s;
    box-shadow: 0 1.6rem 4.8rem rgba(24, 58, 50, 0.14);
}

.p-recruit-manga__info.is-exit {
    opacity: 0;
    visibility: visible;
    transform: translateY(-1.6rem) scale(0.98);
    clip-path: inset(0 0 40% 0);
    filter: blur(1px);
}

.p-recruit-manga__info.is-active .p-recruit-manga__label,
.p-recruit-manga__info.is-active .p-recruit-manga__heading,
.p-recruit-manga__info.is-active .p-recruit-manga__txt {
    animation: mangaInfoIn 0.65s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.p-recruit-manga__info.is-active .p-recruit-manga__label {
    animation-delay: 0.08s;
}

.p-recruit-manga__info.is-active .p-recruit-manga__heading {
    animation-delay: 0.16s;
}

.p-recruit-manga__info.is-active .p-recruit-manga__txt {
    animation-delay: 0.24s;
}

.p-recruit-manga__label {
    position: relative;
    display: inline-block;
    width: fit-content;
    margin-bottom: calc(var(--gap-unit)*0.5);
    font-size: var(--font-size15);
    font-weight: 700;
    line-height: 2;
    letter-spacing: 0.22em;
    color: #667A72;
}

.p-recruit-manga__heading {
    font-size: var(--font-size26);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.55;
    color: #1B3A31;
    letter-spacing: 0.02em;
}

.p-recruit-manga__txt {
    font-size: var(--font-size15);
    line-height: 2;
    color: #667A72;
    margin-top: calc(var(--gap-unit)*1.75);
}

.p-recruit-manga__panel {
    display: block;
    width: 100%;
    padding: calc(var(--gap-unit)*2.75);
    margin: 0;
    font: inherit;
    text-align: left;
    appearance: none;
    background-color: var(--bg-white-color);
    border: 1px solid #DDE9E2;
    box-shadow: 0px 20px 64px 0px #182F2814;
    cursor: zoom-in;
    overflow: hidden;
    clip-path: inset(0 100% 0 0);
    transition:
        transform 0.55s cubic-bezier(0.22, 1, 0.36, 1),
        box-shadow 0.55s linear,
        clip-path 0.95s cubic-bezier(0.77, 0, 0.175, 1);
}

.p-recruit-manga__block.is-reveal .p-recruit-manga__panel {
    clip-path: inset(0 0 0 0);
}

.p-recruit-manga__panel:hover {
    box-shadow: 0 1.8rem 5.2rem rgba(24, 58, 50, 0.16);
}

.p-recruit-manga__block.is-active .p-recruit-manga__panel {
    box-shadow: 0 1.6rem 4.8rem rgba(24, 58, 50, 0.14);
}

.p-recruit-manga__panel img {
    display: block;
    width: 100%;
    height: auto;
    pointer-events: none;
    transform: scale(1.06);
}

.p-recruit-manga__block.is-reveal .p-recruit-manga__panel img {
    transform: scale(1);
    transition: transform 1.15s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-recruit-manga-lightbox {
    position: fixed;
    inset: 0;
    z-index: 2000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: calc(var(--gap-unit)*3);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.35s linear, visibility 0s linear 0.35s;
}

.p-recruit-manga-lightbox.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transition-delay: 0s;
}

.p-recruit-manga-lightbox__bg {
    position: absolute;
    inset: 0;
    background-color: rgba(24, 58, 50, 0.72);
    backdrop-filter: blur(4px);
    cursor: zoom-out;
}

.p-recruit-manga-lightbox__dialog {
    position: relative;
    z-index: 1;
    width: min(96rem, 100%);
    max-height: calc(100vh - 4rem);
    padding: calc(var(--gap-unit)*2);
    background-color: var(--bg-white-color);
    box-shadow: 0 2rem 6rem rgba(0, 0, 0, 0.28);
    overflow: auto;
    transform: scale(0.92) translateY(1.2rem);
    opacity: 0;
    transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.35s linear;
}

.p-recruit-manga-lightbox.is-open .p-recruit-manga-lightbox__dialog {
    transform: scale(1) translateY(0);
    opacity: 1;
}

.p-recruit-manga-lightbox__img {
    display: block;
    width: 100%;
    height: auto;
}

.p-recruit-manga-lightbox__close {
    position: absolute;
    top: 0.8rem;
    right: 0.8rem;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3.6rem;
    height: 3.6rem;
    font-size: 2.4rem;
    line-height: 1;
    color: #1B3A31;
    background-color: rgba(255, 255, 255, 0.92);
    border: 1px solid #DDE9E2;
    cursor: pointer;
    transition: color 0.3s linear, background-color 0.3s linear;
}

.p-recruit-manga-lightbox__close:hover {
    color: var(--bg-white-color);
    background-color: #159A57;
    border-color: #159A57;
}

@keyframes mangaInfoIn {
    from {
        opacity: 0;
        transform: translateY(1.2rem);
    }

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

@media (max-width: 768px) {
    .p-recruit-manga__hint {
        display: block;
        margin: calc(var(--gap-unit)*-2) 0 calc(var(--gap-unit)*4);
        font-size: var(--font-size14);
        font-weight: 700;
        line-height: 1.8;
        letter-spacing: 0.04em;
        color: #1B3A31;
        text-align: center;
    }

    .p-recruit-manga__nav {
        display: none;
    }

    .p-recruit-manga__body {
        flex-direction: column;
        gap: calc(var(--gap-unit)*2);
    }

    .p-recruit-manga__sticky {
        position: relative;
        top: auto;
        width: 100%;
    }

    .p-recruit-manga__infos {
        min-height: 18rem;
    }

    .p-recruit-manga__info {
        padding: calc(var(--gap-unit)*3) calc(var(--gap-unit)*2.5);
    }

    .p-recruit-manga__heading {
        font-size: var(--font-size22);
    }

    .p-recruit-manga__list {
        width: 100%;
        overflow: hidden;
        gap: 0;
    }

    .p-recruit-manga__list .swiper-wrapper {
        flex-direction: row;
        gap: 0;
    }

    .p-recruit-manga__list .swiper-slide {
        width: 100%;
        height: auto;
        flex-shrink: 0;
    }

    .p-recruit-manga__panel {
        padding: 0;
    }
}

@media (max-width: 768px) {
    .p-recruit-manga__info {
        padding: calc(var(--gap-unit)*2);
    }

    .p-recruit-manga__label {
        font-size: var(--font-size14);
    }

    .p-recruit-manga__heading {
        font-size: var(--font-size20);
        margin-top: calc(var(--gap-unit)*.5);
    }

    .p-recruit-manga__txt {
        font-size: var(--font-size14);
        margin-top: calc(var(--gap-unit)*1);
    }
}



.p-recruit-job {
    position: relative;
    background: linear-gradient(180deg, #F7FAF7 0%, #EEF7F2 100%);
}

.p-recruit-job__notice {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*1.5);
    padding: calc(var(--gap-unit)*3.5);
    margin-bottom: calc(var(--gap-unit)*7.5);
    background: linear-gradient(180deg, rgba(255, 249, 227, 0.9) 0%, rgba(255, 255, 255, 0.96) 100%);
    border: 1px solid #D0A4004D;
    overflow: hidden;
    opacity: 0;
    transform: translate3d(0, 2rem, 0);
}

.p-recruit-job__notice.is-show {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.6s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-recruit-job__notice::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 4px;
    height: 100%;
    background: linear-gradient(180deg, #D0A400 0%, rgba(208, 164, 0, 0.25) 100%);
    transform: scaleY(0);
    transform-origin: top center;
}

.p-recruit-job__notice.is-show::before {
    transform: scaleY(1);
    transition: transform 0.75s cubic-bezier(0.77, 0, 0.175, 1) 0.12s;
}

.p-recruit-job__notice-title {
    font-size: var(--font-size20);
    font-weight: 700;
    line-height: 1.9;
    color: #6F5A17;
    letter-spacing: .6px;
    opacity: 0;
    transform: translate3d(0, 0.8rem, 0);
}

.p-recruit-job__notice.is-show .p-recruit-job__notice-title {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.5s cubic-bezier(0.53, 0.2, 0.25, 1) 0.2s,
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.2s;
}

.p-recruit-job__notice-lead {
    font-size: var(--font-size15);
    font-weight: bold;
    line-height: 2;
    color: #79611E;
    opacity: 0;
    transform: translate3d(0, 0.8rem, 0);
}

.p-recruit-job__notice.is-show .p-recruit-job__notice-lead {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.5s cubic-bezier(0.53, 0.2, 0.25, 1) 0.32s,
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.32s;
}

.p-recruit-job__notice-list {
    font-size: var(--font-size14);
    line-height: 1.9;
    color: #79611E;
}

.p-recruit-job__notice-list li {
    display: flex;
    align-items: center;
    gap: calc(var(--gap-unit));
    opacity: 0;
    transform: translate3d(-0.8rem, 0, 0);
}

.p-recruit-job__notice.is-show .p-recruit-job__notice-list li {
    opacity: 1;
    transform: translate3d(0, 0, 0);
}

.p-recruit-job__notice.is-show .p-recruit-job__notice-list li:nth-child(1) {
    transition:
        opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1) 0.42s,
        transform 0.55s cubic-bezier(0.22, 1, 0.36, 1) 0.42s;
}

.p-recruit-job__notice.is-show .p-recruit-job__notice-list li:nth-child(2) {
    transition:
        opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1) 0.5s,
        transform 0.55s cubic-bezier(0.22, 1, 0.36, 1) 0.5s;
}

.p-recruit-job__notice.is-show .p-recruit-job__notice-list li:nth-child(3) {
    transition:
        opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1) 0.58s,
        transform 0.55s cubic-bezier(0.22, 1, 0.36, 1) 0.58s;
}

.p-recruit-job__notice.is-show .p-recruit-job__notice-list li:nth-child(4) {
    transition:
        opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1) 0.66s,
        transform 0.55s cubic-bezier(0.22, 1, 0.36, 1) 0.66s;
}

.p-recruit-job__notice-list li::before {
    content: "・";
}

.p-recruit-job__table {
    background-color: var(--bg-white-color);
    border: 1px solid #DDE9E2;
    box-shadow: 0px 20px 64px 0px #182F2814;
    overflow: hidden;
    opacity: 0;
    transform: translate3d(0, 1.6rem, 0);
}

.p-recruit-job__table.is-show {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.75s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-recruit-job__row {
    display: flex;
    border-bottom: 1px solid #DDE9E2;
    opacity: 0;
    transform: translate3d(-1.6rem, 0, 0);
}

.p-recruit-job__row.is-show {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.5s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-recruit-job__row:last-child {
    border-bottom: none;
}

.p-recruit-job__cap {
    display: flex;
    align-items: center;
    width: 16rem;
    padding: calc(var(--gap-unit)*3) calc(var(--gap-unit)*2.5);
    font-size: var(--font-size15);
    font-weight: 700;
    line-height: 1.9;
    color: #1B3A31;
    background-color: #EEF7F2;
}

.p-recruit-job__data {
    flex: 1;
    display: flex;
    align-items: center;
    padding: calc(var(--gap-unit)*2.75) calc(var(--gap-unit)*3);
    font-size: var(--font-size14);
    line-height: 2;
    background-color: var(--bg-white-color);
}

.p-recruit-job__data p+p {
    margin-top: 0.35em;
}

@media (max-width: 450px) {
    .p-recruit-job__row {
        flex-direction: column;
    }

    .p-recruit-job__cap,
    .p-recruit-job__data {
        width: 100%;
        padding: calc(var(--gap-unit)*2);
    }
}


.p-recruit-flow {
    position: relative;
    background: linear-gradient(180deg, #F7FAF7 0%, #EEF7F2 100%);
}

.p-recruit-flow__list {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*2.5);
}

.p-recruit-flow__item {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: flex-start;
    gap: calc(var(--gap-unit)*3.5);
    padding: calc(var(--gap-unit)*3.5);
    background-color: var(--bg-white-color);
    border: 1px solid #DDE9E2;
    box-shadow: 0px 20px 64px 0px #182F2814;
    opacity: 0;
    transform: translate3d(0, 2.2rem, 0);
}

.p-recruit-flow__item.is-show {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.75s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-recruit-flow__item::before {
    content: "";
    position: absolute;
    top: 10rem;
    left: 7.3rem;
    bottom: calc(var(--gap-unit)*-2.75);
    width: 1px;
    background-color: #69A78A52;
    transform: scaleY(0);
    transform-origin: top center;
}

.p-recruit-flow__item.is-show::before {
    transform: scaleY(1);
    transition: transform 0.8s cubic-bezier(0.77, 0, 0.175, 1) 0.35s;
}

.p-recruit-flow__item:last-child:before {
    display: none;
}

.p-recruit-flow__num {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 9rem;
    height: 9rem;
    font-size: var(--font-size30);
    font-family: var(--fontT);
    line-height: 1;
    color: #1B3A31;
    border: 1px solid #69A78A52;
    background-color: #EEF7F2;
    opacity: 0;
    transform: scale(0.6);
    flex-shrink: 0;
}

.p-recruit-flow__item.is-show .p-recruit-flow__num {
    opacity: 1;
    transform: scale(1);
    transition:
        opacity 0.4s cubic-bezier(0.22, 1, 0.36, 1) 0.08s,
        transform 0.65s cubic-bezier(0.34, 1.5, 0.64, 1) 0.08s;
}

.p-recruit-flow__num::before {
    content: "";
    position: absolute;
    inset: -0.5rem;
    border: 1px solid rgba(21, 154, 87, 0.35);
    opacity: 0;
    transform: scale(0.7);
    pointer-events: none;
}

.p-recruit-flow__item.is-show .p-recruit-flow__num::before {
    animation: recruitFlowRing 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.12s forwards;
}

@keyframes recruitFlowRing {
    0% {
        opacity: 0;
        transform: scale(0.7);
    }
    40% {
        opacity: 1;
        transform: scale(1);
    }
    100% {
        opacity: 0;
        transform: scale(1.3);
    }
}

.p-recruit-flow__num span {
    position: relative;
    z-index: 1;
}

.p-recruit-flow__body {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: calc(var(--gap-unit)*1);
    opacity: 0;
    transform: translate3d(1.4rem, 0, 0);
}

.p-recruit-flow__item.is-show .p-recruit-flow__body {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1) 0.22s,
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.22s;
}

.p-recruit-flow__label {
    display: inline-block;
    align-self: flex-start;
    font-size: var(--font-size16);
    font-weight: 700;
    line-height: 2;
    letter-spacing: 0.24em;
    color: #667A72;
    clip-path: inset(0 100% 0 0);
    opacity: 0;
}

.p-recruit-flow__item.is-show .p-recruit-flow__label {
    clip-path: inset(0 0 0 0);
    opacity: 1;
    transition:
        clip-path 0.7s cubic-bezier(0.77, 0, 0.175, 1) 0.3s,
        opacity 0.35s ease 0.3s;
}

.p-recruit-flow__title {
    font-size: var(--font-size24);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 2;
    color: #1B3A31;
    letter-spacing: 0.06em;
    opacity: 0;
    transform: translate3d(0, 0.8rem, 0);
}

.p-recruit-flow__item.is-show .p-recruit-flow__title {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.5s cubic-bezier(0.53, 0.2, 0.25, 1) 0.4s,
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.4s;
}

.p-recruit-flow__txt {
    font-size: var(--font-size16);
    line-height: 2;
    opacity: 0;
    transform: translate3d(0, 0.8rem, 0);
}

.p-recruit-flow__item.is-show .p-recruit-flow__txt {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.5s cubic-bezier(0.53, 0.2, 0.25, 1) 0.5s,
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.5s;
}

@media (max-width: 768px) {
    .p-recruit-flow__num {
        font-size: var(--font-size26);
        width: 6rem;
        height: 6rem;
    }

    .p-recruit-flow__title {
        font-size: var(--font-size22);
    }

    .p-recruit-flow__item::before {
        top: 8rem;
        left: 5.8rem;
    }

    .p-recruit-flow__label {
        font-size: var(--font-size15);
    }

    .p-recruit-flow__txt {
        font-size: var(--font-size15);
    }
}

@media (max-width: 450px) {
    .p-recruit-flow__item {
        flex-direction: column;
        gap: calc(var(--gap-unit)*1.5);
    }

    .p-recruit-flow__item::before {
        display: none;
    }
}


.p-recruit-form__title {
    margin-bottom: calc(var(--gap-unit)*4);
    font-size: var(--font-size24);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.5;
    color: #1B3A31;
    letter-spacing: 0.08em;
    text-align: center;
}

.p-recruit-form .js-fade_up,
.p-contact-form .js-fade_up {
    transform: translate(0, 2rem);
    opacity: 0;
    transition: opacity 0.5s cubic-bezier(0.53, 0.2, 0.25, 1), transform 0.8s cubic-bezier(0.53, 0.2, 0.25, 1), -webkit-transform 0.8s cubic-bezier(0.53, 0.2, 0.25, 1);
    transition-delay: 0.06s;
}

.p-recruit-form .js-fade_up.on,
.p-contact-form .js-fade_up.on {
    opacity: 1;
    transform: translate(0, 0);
}

.p-recruit-form .c-sec__lead.js-fade_up {
    transition-delay: 0.1s;
}

.p-recruit-form__title.js-fade_up {
    transition-delay: 0.18s;
}

.p-recruit-form__wrap.js-fade_up,
.p-contact-form__wrap.js-fade_up {
    transition-delay: 0.28s;
}

.p-recruit-form__privacy.js-fade_up,
.p-contact-form__privacy.js-fade_up {
    transition-delay: 0.38s;
}

.p-recruit-form__submit.js-fade_up,
.p-contact-form__submit.js-fade_up {
    transition-delay: 0.48s;
}

.p-recruit-form__genders {
    display: flex;
    align-items: center;
    gap: calc(var(--gap-unit)*4);
    min-height: 4.4rem;
}

.p-recruit-form__gender {
    display: inline-flex;
    align-items: center;
    gap: calc(var(--gap-unit)*1);
    font-size: var(--font-size15);
    line-height: 1.5;
    color: var(--bg-font-color);
    cursor: pointer;
}

.p-recruit-form__gender-input {
    width: 1.6rem;
    height: 1.6rem;
    accent-color: var(--bg-green-color);
    cursor: pointer;
    margin: 0;
}

.p-recruit-form__birth {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: calc(var(--gap-unit)*4);
}

.p-recruit-form__birth-item {
    display: inline-flex;
    align-items: center;
    gap: calc(var(--gap-unit)*1.25);
}

.p-recruit-form__birth .p-recruit-form__birth-input {
    width: 15rem;
}

.p-recruit-form__birth-unit {
    font-size: var(--font-size16);
    font-weight: bold;
    line-height: 1;
    color: #1B3A31;
}

@media (max-width: 768px) {
    .p-recruit-form__birth {
        gap: calc(var(--gap-unit)*2);
    }
}

@media (max-width: 450px) {
    .p-recruit-form__birth {
        flex-direction: column;
        gap: calc(var(--gap-unit)*1.5);
    }

    .p-recruit-form__birth-item {
        width: 100%;
    }

    .p-recruit-form__birth .p-recruit-form__birth-input {
        width: 18rem;
    }

    .p-recruit-form__birth-unit {
        font-size: var(--font-size15);
    }
}










/* -------page contact------- */
.p-contact-form__content,
.p-recruit-form__content {
    position: relative;
    padding: calc(var(--gap-unit)*7);
    background: linear-gradient(180deg, rgba(247, 250, 247, 0.92) 0%, #FFFFFF 32%);
    border: 1px solid #DDE9E2;
    box-shadow: 0px 20px 64px 0px #182F2814;
}

.p-contact-form__wrap,
.p-recruit-form__wrap {
    border: 1px solid #DDE9E2;
    background-color: var(--bg-white-color);
}

.p-contact-form__field,
.p-recruit-form__field {
    display: flex;
    border-bottom: 1px solid #E5EBE7;
}

.p-contact-form__field:last-child,
.p-recruit-form__field:last-child {
    border-bottom: none;
}

.p-contact-form__cap,
.p-recruit-form__cap {
    display: flex;
    align-items: center;
    flex-shrink: 0;
    gap: calc(var(--gap-unit));
    font-size: var(--font-size15);
    font-weight: 700;
    line-height: 1.6;
    color: #1B3A31;
    width: 22rem;
    padding: calc(var(--gap-unit)*4.2) calc(var(--gap-unit)*2.75);
    background-color: #EEF7F2;
}

.p-contact-form__cap-required,
.p-recruit-form__cap-required {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: calc(var(--gap-unit)*.4) var(--gap-unit);
    font-size: 1.1rem;
    font-weight: 700;
    line-height: 1.4;
    color: var(--bg-white-color);
    letter-spacing: 0.05em;
    background-color: #D75B4C;
}

.p-contact-form__control,
.p-recruit-form__control {
    display: flex;
    flex-direction: column;
    flex: 1;
    gap: calc(var(--gap-unit)*2.25);
    padding: calc(var(--gap-unit)*2.5) calc(var(--gap-unit)*3);
    background-color: var(--bg-white-color);
}

.p-contact-form__radios,
.p-recruit-form__radios {
    display: flex;
    gap: calc(var(--gap-unit)*1.5);
}

.p-contact-form__radio,
.p-recruit-form__radio {
    flex: 1;
    cursor: pointer;
}

.p-contact-form__radio-input,
.p-recruit-form__radio-input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.p-contact-form__radio-box,
.p-recruit-form__radio-box {
    display: flex;
    align-items: flex-start;
    gap: calc(var(--gap-unit)*1.5);
    height: 100%;
    padding: calc(var(--gap-unit)*2.25);
    border: 1px solid #DDE9E2;
    background-color: var(--bg-white-color);
    transition: border-color 0.3s linear, background-color 0.3s linear;
}

.p-contact-form__radio-input:checked+.p-contact-form__radio-box,
.p-recruit-form__radio-input:checked+.p-recruit-form__radio-box {
    border-color: var(--bg-green-color);
    background-color: rgba(21, 154, 87, 0.04);
}

.p-contact-form__radio-mark,
.p-recruit-form__radio-mark {
    position: relative;
    flex-shrink: 0;
    width: 1.6rem;
    height: 1.6rem;
    margin-top: 0.15em;
    border: 1px solid #B8C4BE;
    border-radius: 50%;
    background-color: var(--bg-white-color);
}

.p-contact-form__radio-input:checked+.p-contact-form__radio-box .p-contact-form__radio-mark::after,
.p-recruit-form__radio-input:checked+.p-recruit-form__radio-box .p-recruit-form__radio-mark::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 1rem;
    height: 1rem;
    border-radius: 50%;
    background-color: var(--bg-green-color);
    transform: translate(-50%, -50%);
}

.p-contact-form__radio-body,
.p-recruit-form__radio-body {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*.7);
}

.p-contact-form__radio-title,
.p-recruit-form__radio-title {
    font-size: var(--font-size16);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.5;
    color: var(--bg-font-color);
}

.p-contact-form__radio-desc,
.p-recruit-form__radio-desc {
    font-size: 1.3rem;
    line-height: 1.7;
    color: #667A72;
}

.p-contact-form__input,
.p-recruit-form__input,
.p-contact-form__textarea,
.p-recruit-form__textarea {
    width: 100%;
    padding: calc(var(--gap-unit)*1.75) calc(var(--gap-unit)*2);
    font-size: var(--font-size15);
    font-family: var(--fontB);
    line-height: 1;
    color: var(--bg-font-color);
    background-color: #FCFEFD;
    border: 1px solid #D9E4DE;
    outline: none;
    transition: border-color 0.3s linear;
}

.p-contact-form__input:focus,
.p-recruit-form__input:focus,
.p-contact-form__textarea:focus,
.p-recruit-form__textarea:focus {
    border-color: var(--bg-green-color);
}

.p-contact-form__input::-webkit-input-placeholder,
.p-recruit-form__input::-webkit-input-placeholder,
.p-contact-form__textarea::-webkit-input-placeholder,
.p-recruit-form__textarea::-webkit-input-placeholder {
    color: #A1AAA6;
}

.p-contact-form__input::-moz-placeholder,
.p-recruit-form__input::-moz-placeholder,
.p-contact-form__textarea::-moz-placeholder,
.p-recruit-form__textarea::-moz-placeholder {
    color: #A1AAA6;
}

.p-contact-form__input:-ms-input-placeholder,
.p-recruit-form__input:-ms-input-placeholder,
.p-contact-form__textarea:-ms-input-placeholder,
.p-recruit-form__textarea:-ms-input-placeholder {
    color: #A1AAA6;
}

.p-contact-form__textarea,
.p-recruit-form__textarea {
    min-height: 14rem;
    resize: vertical;
    line-height: 1.6;
}

.p-contact-form__privacy,
.p-recruit-form__privacy {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*1.75);
    padding: calc(var(--gap-unit)*4);
    margin-top: calc(var(--gap-unit)*5);
    background-color: var(--bg-white-color);
}

.p-contact-form__privacy-title,
.p-recruit-form__privacy-title {
    font-size: var(--font-size24);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.9;
    color: #1B3A31;
    letter-spacing: 0.08em;
}

.p-contact-form__privacy-lead,
.p-recruit-form__privacy-lead {
    font-size: var(--font-size15);
    line-height: 1.9;
    color: #667A72;
}

.p-contact-form__privacy-box,
.p-recruit-form__privacy-box {
    width: 100%;
    padding: calc(var(--gap-unit)*3) calc(var(--gap-unit)*2.5);
    font-size: var(--font-size14);
    line-height: 2;
    color: #40544C;
    background-color: #F7FAF7;
    border: 1px solid #DDE9E2;
}

.p-contact-form__agree,
.p-recruit-form__agree {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: calc(var(--gap-unit)*1.5);
    width: 100%;
    padding: calc(var(--gap-unit)*2.2) calc(var(--gap-unit)*3);
    font-size: var(--font-size15);
    font-weight: 500;
    line-height: 1.9;
    color: #263A33;
    background-color: #F5F7F6;
    cursor: pointer;
}

.p-contact-form__agree-input,
.p-recruit-form__agree-input {
    width: 1.8rem;
    height: 1.8rem;
    accent-color: var(--bg-green-color);
    cursor: pointer;
    margin: 0;
}

.p-contact-form__submit,
.p-recruit-form__submit {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(var(--gap-unit)*1.75);
    padding: calc(var(--gap-unit)*3.75);
    margin-top: calc(var(--gap-unit)*5);
}

.p-contact-form__submit-btn,
.p-recruit-form__submit-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 36rem;
    padding: calc(var(--gap-unit)*2.5) calc(var(--gap-unit)*6);
    font-size: var(--font-size16);
    font-family: var(--fontB);
    font-weight: 700;
    letter-spacing: 0.1em;
    color: var(--bg-white-color);
    background-color: #1B3A31;
    border: 2px solid #1B3A31;
    border-radius: 10rem;
    cursor: pointer;
    transition: color 0.2s linear, background-color 0.2s linear;
}

.p-contact-form__submit-btn:hover,
.p-recruit-form__submit-btn:hover {
    color: #1B3A31;
    background-color: var(--bg-white-color);
}

.p-contact-form__submit-note,
.p-recruit-form__submit-note {
    font-size: var(--font-size14);
    line-height: 1.8;
    color: #667A72;
    text-align: center;
}

@media (max-width: 768px) {

    .p-contact-form__content,
    .p-recruit-form__content {
        padding: calc(var(--gap-unit)*6) calc(calc(var(--gap-unit)*4));
    }

    .p-contact-form__field,
    .p-recruit-form__field {
        flex-direction: column;
    }

    .p-contact-form__cap,
    .p-recruit-form__cap {
        width: 100%;
        padding: calc(var(--gap-unit)*2.2) calc(var(--gap-unit)*2.75);
    }

    .p-contact-form__radios,
    .p-recruit-form__radios {
        gap: calc(var(--gap-unit)*1);
    }

    .p-contact-form__radio-box,
    .p-recruit-form__radio-box {
        padding: calc(var(--gap-unit)*2) calc(var(--gap-unit)*1.5);
    }

    .p-contact-form__control,
    .p-recruit-form__control {
        padding: calc(var(--gap-unit)*2);
    }

    .p-contact-form__privacy,
    .p-recruit-form__privacy {
        padding: calc(var(--gap-unit)*3) 0;
        padding-top: calc(var(--gap-unit)*1.5);
    }

    .p-contact-form__privacy-title,
    .p-recruit-form__privacy-title {
        font-size: var(--font-size22);
    }

    .p-contact-form__privacy-lead,
    .p-recruit-form__privacy-lead {
        font-size: var(--font-size14);
    }

    .p-contact-form__submit,
    .p-recruit-form__submit {
        padding: calc(var(--gap-unit)*2.75) 0;
        padding-top: calc(var(--gap-unit)*1.5);
    }

    .p-contact-form__submit-btn,
    .p-recruit-form__submit-btn {
        min-width: 33rem;
        padding: calc(var(--gap-unit)*2.2) calc(var(--gap-unit)*6);
    }
}

@media (max-width: 450px) {
    .p-contact .c-lower__title-ja {
        font-size: var(--font-size30);
    }

    .p-contact-form__content,
    .p-recruit-form__content {
        padding: calc(var(--gap-unit)*6) calc(var(--gap-unit)*2.5);
    }

    .p-contact-form__radios,
    .p-recruit-form__radios {
        flex-direction: column;
    }

    .p-contact-form__radio-box,
    .p-recruit-form__radio-box {
        padding: calc(var(--gap-unit)*2);
    }

    .p-contact-form__cap,
    .p-recruit-form__cap {
        padding: calc(var(--gap-unit)*2.2) calc(var(--gap-unit)*2);
    }

    .p-contact-form__control,
    .p-recruit-form__control {
        padding: calc(var(--gap-unit)*1.5);
    }

    .p-contact-form__textarea,
    .p-recruit-form__textarea {
        min-height: 20rem;
    }

    .p-contact-form__input,
    .p-recruit-form__input,
    .p-contact-form__textarea,
    .p-recruit-form__textarea {
        padding: calc(var(--gap-unit)*1.75);
    }

    .p-contact-form__submit-note,
    .p-recruit-form__submit-note {
        font-size: 1.3rem;
    }
}







/* -------page news------- */
.p-news-list {
    position: relative;
    background-color: var(--bg-white-color);
}

.p-news-list__inner {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*5.5);
    padding: 0 10rem;
}

.p-news-list__filter {
    display: flex;
    align-items: center;
    gap: calc(var(--gap-unit)*4);
    padding: calc(var(--gap-unit)*3.75) calc(var(--gap-unit)*4.75);
    background-color: #F7FAF7;
    border: 1px solid #DDE9E2;
    opacity: 0;
    transform: translate3d(0, 1.6rem, 0);
}

.p-news-list__filter.is-show {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.6s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-news-list__filter-label {
    position: relative;
    font-size: var(--font-size16);
    font-weight: 700;
    line-height: 1.9;
    color: #1B3A31;
    padding-left: calc(var(--gap-unit)*2);
    border-left: 3px solid #1B3A31;
}

.p-news-list__filter-list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: calc(var(--gap-unit)*3.25);
}

.p-news-list__filter-link {
    position: relative;
    display: block;
    font-size: var(--font-size14);
    font-weight: bold;
    line-height: 1.9;
    color: #667A72;
    transition: color 0.3s linear;
}

.p-news-list__filter-link::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -1px;
    width: 100%;
    height: 1px;
    background-color: #5D9880;
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.3s linear;
}

.p-news-list__filter-link.is-active,
.p-news-list__filter-link:hover {
    color: #5D9880;
}

.p-news-list__filter-link.is-active::after,
.p-news-list__filter-link:hover::after {
    transform: scaleX(1);
}

.p-news-list__content {
    border-top: 1px solid #E5EBE7;
}

.p-news-list__item {
    position: relative;
    display: flex;
    align-items: center;
    gap: calc(var(--gap-unit)*2.25);
    padding: calc(var(--gap-unit)*3) calc(var(--gap-unit)*1.5);
    margin: 0 calc(var(--gap-unit)*-1.5);
    border-bottom: 1px solid #DDE9E2;
    opacity: 0;
    transform: translate3d(-1.6rem, 0, 0);
    transition:
        background-color 0.35s ease,
        box-shadow 0.35s ease;
}

.p-news-list__item.is-show {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.5s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1),
        background-color 0.35s ease,
        box-shadow 0.35s ease;
}

.p-news-list__item::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    width: 3px;
    height: 100%;
    background: linear-gradient(180deg, #159A57 0%, rgba(21, 154, 87, 0.2) 100%);
    transform: scaleY(0);
    transform-origin: top center;
    transition: transform 0.4s cubic-bezier(0.77, 0, 0.175, 1);
}

.p-news-list__item::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(238, 247, 242, 0.9) 0%, rgba(238, 247, 242, 0) 70%);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.35s ease;
}

.p-news-list__date {
    position: relative;
    z-index: 1;
    font-size: var(--font-size14);
    font-weight: bold;
    line-height: 1.9;
    color: #53697D;
    letter-spacing: 0.04em;
    width: 12rem;
    transition: color 0.35s ease, letter-spacing 0.35s ease;
}

.p-news-list__cat {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 9rem;
    padding: calc(var(--gap-unit)*.5) 0;
    font-size: var(--font-size12);
    font-weight: 700;
    line-height: 1.9;
    letter-spacing: 0.05em;
    transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-news-list__cat--news {
    color: #1B6B45;
    background-color: #E5F4EC;
}

.p-news-list__cat--blog {
    color: #2F6FA8;
    background-color: #E8F2FA;
}

.p-news-list__cat--recruit {
    color: #8A5A2B;
    background-color: #F6EEE4;
}

.p-news-list__cat--sns {
    color: #6B4E9B;
    background-color: #F0EAF7;
}

.p-news-list__title {
    position: relative;
    z-index: 1;
    flex: 1;
    min-width: 0;
    overflow: hidden;
    font-size: var(--font-size16);
    font-weight: bold;
    line-height: 1.9;
    color: #263A33;
    letter-spacing: .04em;
    white-space: nowrap;
    text-overflow: ellipsis;
    transition: color 0.35s ease, transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-news-list__arrow {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 3.2rem;
    height: 3.2rem;
    font-size: var(--font-size16);
    line-height: 1;
    color: #1B3A31;
    border-radius: 50%;
    border: 1px solid transparent;
    padding-bottom: calc(var(--gap-unit)*.5);
    transition:
        color 0.35s ease,
        background-color 0.35s ease,
        border-color 0.35s ease,
        transform 0.4s cubic-bezier(0.34, 1.4, 0.64, 1),
        box-shadow 0.35s ease;
}

@media (hover: hover) {
    .p-news-list__item.is-show:hover {
        background-color: #F7FBF9;
        box-shadow: inset 0 0 0 1px #DDE9E2;
    }

    .p-news-list__item.is-show:hover::before {
        transform: scaleY(1);
    }

    .p-news-list__item.is-show:hover::after {
        opacity: 1;
    }

    .p-news-list__item.is-show:hover .p-news-list__date {
        color: #159A57;
        letter-spacing: 0.08em;
    }

    .p-news-list__item.is-show:hover .p-news-list__cat {
        transform: scale(1.06);
    }

    .p-news-list__item.is-show:hover .p-news-list__title {
        color: #159A57;
        transform: translate3d(0.4rem, 0, 0);
    }

    .p-news-list__item.is-show:hover .p-news-list__arrow {
        color: var(--bg-white-color);
        background-color: #159A57;
        border-color: #159A57;
        box-shadow: 0 8px 20px rgba(21, 154, 87, 0.25);
    }
}

.p-news-list__pager {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: calc(var(--gap-unit)*1.25);
    opacity: 0;
    transform: translate3d(0, 1.2rem, 0);
}

.p-news-list__pager.is-show {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-news-list__pager-item {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 4rem;
    height: 4rem;
    padding: 0 calc(var(--gap-unit)*1.5);
    font-size: var(--font-size14);
    font-weight: 700;
    line-height: 1;
    color: #159A57;
    background-color: var(--bg-white-color);
    border: 1px solid #159A57;
    transition: color 0.3s linear, background-color 0.3s linear, transform 0.3s ease;
}

.p-news-list__pager-item.is-current,
.p-news-list__pager-item:hover {
    color: var(--bg-white-color);
    background-color: #159A57;
}

@media (hover: hover) {
    .p-news-list__pager-item:hover {
        transform: translate3d(0, -0.2rem, 0);
    }
}

.p-news-list__pager-item--next {
    min-width: 7rem;
}

.p-news-list__pager-item--prev {
    min-width: 7rem;
}

.p-news-list__pager .wp-pagenavi {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: calc(var(--gap-unit)*1.25);
    flex-wrap: wrap;
}

.p-news-list__pager .wp-pagenavi a,
.p-news-list__pager .wp-pagenavi span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 4rem;
    height: 4rem;
    padding: 0 calc(var(--gap-unit)*1.5);
    font-size: var(--font-size14);
    font-weight: 700;
    line-height: 1;
    color: #159A57;
    background-color: var(--bg-white-color);
    border: 1px solid #159A57;
    text-decoration: none;
    transition: color 0.3s linear, background-color 0.3s linear, transform 0.3s ease;
}

.p-news-list__pager .wp-pagenavi span.current,
.p-news-list__pager .wp-pagenavi a:hover {
    color: var(--bg-white-color);
    background-color: #159A57;
}

@media (max-width: 768px) {
    .p-news-list__inner {
        padding: 0 2rem;
    }

    .p-news-list__filter {
        padding: calc(var(--gap-unit)*3.5) calc(var(--gap-unit)*4.5);
    }

    .p-news-list__date {
        width: 9rem;
    }

    .p-news-list__title {
        font-size: var(--font-size15);
    }
}

@media (max-width: 450px) {
    .p-news-list__inner {
        padding: 0;
    }

    .p-news-list__filter {
        flex-direction: column;
        align-items: flex-start;
        gap: calc(var(--gap-unit)*3);
        padding: calc(var(--gap-unit)*3) calc(var(--gap-unit)*3.5);
    }

    .p-news-list__filter-label {
        line-height: 1.6;
        padding-left: calc(var(--gap-unit)*1.5);
        border-left: 2px solid #1B3A31;
    }

    .p-news-list__item {
        flex-wrap: wrap;
        gap: calc(var(--gap-unit)*1.5);
    }

    .p-news-list__title {
        flex: none;
        width: 100%;
    }

    .p-news-list__arrow {
        display: none;
    }
}



.p-news-photo {
    position: relative;
    background: linear-gradient(180deg, #F7FAF7 0%, #EEF7F2 100%);
}

.p-news-photo__inner {
    padding: 0 2rem;
}

.p-news-photo__list {
    display: flex;
    gap: calc(var(--gap-unit)*2.75);
}

.p-news-photo__card {
    flex: 1;
    position: relative;
    display: flex;
    flex-direction: column;
    border: 1px solid #DDE9E2;
    background-color: var(--bg-white-color);
    box-shadow: 0px 18px 56px 0px #182F2812;
    overflow: hidden;
    opacity: 0;
    transform: translate3d(0, 2.8rem, 0);
    transition:
        opacity 0.55s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1),
        box-shadow 0.4s ease,
        border-color 0.4s ease;
}

.p-news-photo__card.is-show {
    opacity: 1;
    transform: translate3d(0, 0, 0);
}

.p-news-photo__card::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 3px;
    background: linear-gradient(90deg, #159A57 0%, rgba(21, 154, 87, 0.15) 100%);
    transform: scaleX(0);
    transform-origin: left center;
    z-index: 2;
    transition: transform 0.45s cubic-bezier(0.77, 0, 0.175, 1);
}

.p-news-photo__card::after {
    content: "";
    position: absolute;
    inset: 0;
    border: 1px solid transparent;
    pointer-events: none;
    z-index: 2;
    transition: border-color 0.4s ease, box-shadow 0.4s ease;
}

.p-news-photo__img {
    position: relative;
    display: flex;
    aspect-ratio: 5/4;
    overflow: hidden;
}

.p-news-photo__img::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 42%, rgba(27, 58, 49, 0.45) 100%);
    opacity: 0;
    z-index: 1;
    pointer-events: none;
    transition: opacity 0.6s ease;
}

.p-news-photo__img::after {
    content: "";
    position: absolute;
    top: 1.2rem;
    right: 1.2rem;
    width: 3.2rem;
    height: 3.2rem;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, 0.55);
    background: rgba(255, 255, 255, 0.18);
    backdrop-filter: blur(4px);
    opacity: 0;
    transform: scale(0.6) rotate(-20deg);
    z-index: 1;
    pointer-events: none;
    transition:
        opacity 0.4s ease,
        transform 0.5s cubic-bezier(0.34, 1.4, 0.64, 1);
}

.p-news-photo__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    clip-path: circle(0% at 50% 42%);
    transform: scale(1.16);
    transition:
        clip-path 2s cubic-bezier(0.22, 1, 0.36, 1),
        transform 2s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-news-photo__card.is-show .p-news-photo__img img {
    clip-path: circle(140% at 50% 42%);
    transform: scale(1);
    transition-delay: 0.08s;
}

.p-news-photo__body {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    gap: var(--gap-unit);
    padding: calc(var(--gap-unit)*2.5) calc(var(--gap-unit)*2.75) calc(var(--gap-unit)*3);
    background-color: var(--bg-white-color);
}

.p-news-photo__tag {
    display: inline-flex;
    align-self: flex-start;
    padding: 0.1em 0.7em;
    margin-left: -0.35em;
    font-size: var(--font-size12);
    font-weight: 700;
    line-height: 1.9;
    letter-spacing: 0.04em;
    color: #159A57;
    border-radius: 999px;
    background-color: transparent;
    opacity: 0;
    transform: translate3d(0, 1rem, 0);
    transition:
        opacity 0.45s ease,
        transform 0.55s cubic-bezier(0.22, 1, 0.36, 1),
        background-color 0.35s ease,
        color 0.35s ease;
}

.p-news-photo__card.is-show .p-news-photo__tag {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition-delay: 0.28s;
}

.p-news-photo__title {
    position: relative;
    display: inline-block;
    width: fit-content;
    max-width: 100%;
    font-size: var(--font-size24);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.5;
    color: #1B3A31;
    letter-spacing: 0.02em;
    opacity: 0;
    transform: translate3d(0, 1.2rem, 0);
    transition:
        opacity 0.45s ease,
        transform 0.55s cubic-bezier(0.22, 1, 0.36, 1),
        color 0.35s ease;
}

.p-news-photo__card.is-show .p-news-photo__title {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition-delay: 0.38s;
}

.p-news-photo__txt {
    font-size: var(--font-size16);
    line-height: 2;
    opacity: 0;
    transform: translate3d(0, 1.2rem, 0);
    transition:
        opacity 0.45s ease,
        transform 0.55s cubic-bezier(0.22, 1, 0.36, 1),
        color 0.35s ease;
}

.p-news-photo__card.is-show .p-news-photo__txt {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition-delay: 0.48s;
}

@media (hover: hover) {
    .p-news-photo__card.is-show:hover {
        transform: translate3d(0, -0.7rem, 0);
        border-color: #B8D9C8;
        box-shadow: 0 1.8rem 4.8rem rgba(24, 47, 40, 0.14);
    }

    .p-news-photo__card.is-show:hover::before {
        transform: scaleX(1);
    }

    .p-news-photo__card.is-show:hover::after {
        border-color: rgba(21, 154, 87, 0.22);
        box-shadow: inset 0 0 0 1px rgba(21, 154, 87, 0.08);
    }

    .p-news-photo__card.is-show:hover .p-news-photo__img::before {
        opacity: 1;
    }

    .p-news-photo__card.is-show:hover .p-news-photo__img::after {
        opacity: 1;
        transform: scale(1) rotate(0deg);
    }

    .p-news-photo__card.is-show:hover .p-news-photo__img img {
        transform: scale(1.08);
        transition-delay: 0s;
        transition-duration: 0.7s;
    }

    .p-news-photo__card.is-show:hover .p-news-photo__tag {
        color: #0F7A44;
        background-color: #E5F4EC;
    }

    .p-news-photo__card.is-show:hover .p-news-photo__title {
        color: #159A57;
    }

    .p-news-photo__card.is-show:hover .p-news-photo__txt {
        color: #3A5249;
    }
}

.p-news-photo__cta {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: calc(var(--gap-unit)*4);
    padding: calc(var(--gap-unit)*3.75) calc(var(--gap-unit)*4.25);
    background-color: var(--bg-white-color);
    border: 1px solid #E0EBE4;
    box-shadow: 0 0.4rem 2rem rgba(24, 58, 50, 0.04);
    margin-top: calc(var(--gap-unit)*5);
}

.p-news-photo__cta-text {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    gap: var(--gap-unit);
}

.p-news-photo__cta-title {
    font-size: var(--font-size30);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.5;
    color: #1B3A31;
    letter-spacing: 0.02em;
}

.p-news-photo__cta-txt {
    font-size: var(--font-size16);
    line-height: 2;
}

.p-news-photo__cta-btn {
    position: relative;
    z-index: 1;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: calc(var(--gap-unit)*1.25);
    flex-shrink: 0;
    padding: calc(var(--gap-unit)*1.875) calc(var(--gap-unit)*2.25);
    font-size: var(--font-size14);
    font-weight: 700;
    line-height: 1.9;
    color: #183A32;
    background-color: var(--bg-white-color);
    border: 1px solid #69A78A;
    overflow: hidden;
    transition:
        color 0.35s ease,
        border-color 0.35s ease,
        box-shadow 0.4s ease,
        transform 0.4s cubic-bezier(0.34, 1.4, 0.64, 1);
}

.p-news-photo__cta-btn::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(105deg, #159A57 0%, #1B3A31 100%);
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform 0.45s cubic-bezier(0.77, 0, 0.175, 1);
    z-index: 0;
}

.p-news-photo__cta-icon,
.p-news-photo__cta-label,
.p-news-photo__cta-arrow {
    position: relative;
    z-index: 1;
}

.p-news-photo__cta-icon {
    display: flex;
    width: 2.4rem;
    height: 2.4rem;
    transition: transform 0.4s cubic-bezier(0.34, 1.4, 0.64, 1);
}

.p-news-photo__cta-icon img {
    width: 100%;
    height: 100%;
}

.p-news-photo__cta-icon svg path {
    transition: stroke 0.35s ease, fill 0.35s ease;
}

.p-news-photo__cta-label {
    transition: letter-spacing 0.35s ease;
}

.p-news-photo__cta-arrow {
    display: inline-flex;
    line-height: 1;
    transition: transform 0.4s cubic-bezier(0.34, 1.4, 0.64, 1);
}

@media (hover: hover) {
    .p-news-photo__cta-btn:hover {
        color: var(--bg-white-color);
        border-color: #159A57;
        box-shadow: 0 1rem 2.4rem rgba(21, 154, 87, 0.28);
        transform: translate3d(0, -0.2rem, 0);
    }

    .p-news-photo__cta-btn:hover::before {
        transform: scaleX(1);
    }

    .p-news-photo__cta-btn:hover .p-news-photo__cta-icon {
        transform: rotate(-8deg) scale(1.08);
    }

    .p-news-photo__cta-btn:hover .p-news-photo__cta-icon svg path[stroke] {
        stroke: #fff;
    }

    .p-news-photo__cta-btn:hover .p-news-photo__cta-icon svg path[fill] {
        fill: #fff;
    }

    .p-news-photo__cta-btn:hover .p-news-photo__cta-label {
        letter-spacing: 0.06em;
    }

    .p-news-photo__cta-btn:hover .p-news-photo__cta-arrow {
        transform: translate3d(0.4rem, 0, 0);
    }
}

@media (max-width: 768px) {
    .p-news-photo__inner {
        padding: 0;
    }

    .p-news-photo__list {
        gap: calc(var(--gap-unit)*1.5);
    }

    .p-news-photo__body {
        padding: calc(var(--gap-unit)*2.25) calc(var(--gap-unit)*2.25) calc(var(--gap-unit)*2.5);
    }

    .p-news-photo__title {
        font-size: var(--font-size22);
    }

    .p-news-photo__txt {
        font-size: var(--font-size14);
        line-height: 1.8;
    }

    .p-news-photo__cta {
        padding: calc(var(--gap-unit)*3.25) calc(var(--gap-unit)*3.5);
    }

    .p-news-photo__cta-title {
        font-size: var(--font-size22);
    }

    .p-news-photo__cta-txt {
        font-size: var(--font-size14);
    }
}

@media (max-width: 450px) {
    .p-news-photo__list {
        flex-direction: column;
        gap: calc(var(--gap-unit)*2);
    }

    .p-news-photo__img {
        aspect-ratio: 3/2;
    }

    .p-news-photo__body {
        padding: calc(var(--gap-unit)*2.5) calc(var(--gap-unit)*2.75) calc(var(--gap-unit)*3);
    }

    .p-news-photo__title {
        font-size: var(--font-size24);
    }

    .p-news-photo__txt {
        font-size: var(--font-size16);
    }

    .p-news-photo__cta {
        flex-direction: column;
        gap: calc(var(--gap-unit)*3);
        padding: calc(var(--gap-unit)*3.5) calc(var(--gap-unit)*3);
        margin-top: calc(var(--gap-unit)*5);
    }

    .p-news-photo__cta-txt {
        font-size: var(--font-size15);
    }

    .p-news-photo__cta-title {
        font-size: var(--font-size24);
    }

    .p-news-photo__cta-btn {
        margin-left: auto;
    }
}




/* -------page security sign------- */
.p-security-sign {
    position: relative;
    background: linear-gradient(180deg, rgba(232, 246, 239, 0.36) 0%, rgba(255, 255, 255, 0.58) 100%);
}

.p-security-sign__content {
    position: relative;
    display: flex;
    justify-content: center;
    padding-bottom: calc(var(--gap-unit)*5);
}

.p-security-sign__img {
    display: flex;
    width: 75%;
    padding: 0;
    margin: 0;
    background-color: var(--bg-white-color);
    border: 1px solid #37B18E50;
    cursor: zoom-in;
    transition: box-shadow 0.35s ease, border-color 0.35s ease, transform 0.35s ease;
}

.p-security-sign__img:hover {
    border-color: #159A57;
    box-shadow: 0 1.2rem 3.2rem rgba(24, 58, 50, 0.12);
    transform: translate3d(0, -0.2rem, 0);
}

.p-security-sign__img img {
    width: 100%;
    pointer-events: none;
}

.p-security-sign-lightbox {
    position: fixed;
    inset: 0;
    z-index: 2000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: calc(var(--gap-unit)*3);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.35s linear, visibility 0s linear 0.35s;
}

.p-security-sign-lightbox.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transition-delay: 0s;
}

.p-security-sign-lightbox__bg {
    position: absolute;
    inset: 0;
    background-color: rgba(24, 58, 50, 0.72);
    backdrop-filter: blur(4px);
    cursor: zoom-out;
}

.p-security-sign-lightbox__dialog {
    position: relative;
    z-index: 1;
    width: min(96rem, 100%);
    max-height: calc(100vh - 4rem);
    padding: calc(var(--gap-unit)*2);
    background-color: var(--bg-white-color);
    box-shadow: 0 2rem 6rem rgba(0, 0, 0, 0.28);
    overflow: auto;
    transform: scale(0.92) translateY(1.2rem);
    opacity: 0;
    transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.35s linear;
}

.p-security-sign-lightbox.is-open .p-security-sign-lightbox__dialog {
    transform: scale(1) translateY(0);
    opacity: 1;
}

.p-security-sign-lightbox__img {
    display: block;
    width: 100%;
    height: auto;
}

.p-security-sign-lightbox__close {
    position: absolute;
    top: 0.8rem;
    right: 0.8rem;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3.6rem;
    height: 3.6rem;
    font-size: 2.4rem;
    line-height: 1;
    color: #1B3A31;
    background-color: rgba(255, 255, 255, 0.92);
    border: 1px solid #DDE9E2;
    cursor: pointer;
    transition: color 0.3s linear, background-color 0.3s linear;
}

.p-security-sign-lightbox__close:hover {
    color: var(--bg-white-color);
    background-color: #159A57;
    border-color: #159A57;
}

@media (max-width: 768px) {
    .p-security-sign__img {
        width: 80%;
    }
}

@media (max-width: 450px) {
    .p-security-sign__img {
        width: 100%;
    }
}
















/* ----------footer style---------- */
.l-footer {
    position: relative;
    background-color: var(--bg-white-color);
}

.l-footer__inner {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*5);
    padding: calc(var(--gap-unit)*9) calc(var(--gap-unit)*10);
    padding-bottom: calc(var(--gap-unit)*3);
}

.l-footer__info {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: calc(var(--gap-unit)*6.5);
    padding: 0 12rem;
    padding-bottom: calc(var(--gap-unit)*1.5);
}

.l-footer__logo {
    position: relative;
    display: flex;
    width: 54%;
    padding: 0 calc(var(--gap-unit)*3.5);
    padding-bottom: calc(var(--gap-unit)*4.5);
}

.l-footer__logo::before {
    content: "";
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 62%;
    height: 2px;
    background-color: #1F2724B8;
    transition:
        width 0.55s cubic-bezier(0.22, 1, 0.36, 1),
        background-color 0.4s ease,
        height 0.4s ease;
}

.l-footer__logo-link {
    display: flex;
    align-items: center;
    gap: calc(var(--gap-unit)*2.5);
}

.l-footer__logo-img {
    display: flex;
    width: 8rem;
    transition: transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);
}

.l-footer__logo-img img {
    width: 100%;
}

.l-footer__logo-txt {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*2.5);
    padding-top: calc(var(--gap-unit)*3);
    padding-bottom: calc(var(--gap-unit));
}

.l-footer__logo-txt-ja {
    font-size: var(--font-size28);
    font-family: var(--fontT);
    font-weight: 800;
    line-height: 1.7;
    letter-spacing: .02em;
    color: var(--bg-blackblue-color);
    transition: color 0.35s ease, letter-spacing 0.55s cubic-bezier(0.22, 1, 0.36, 1);
}

.l-footer__logo-txt-en {
    font-size: var(--font-size12);
    font-family: var(--fontG);
    line-height: 1.9;
    color: #1F27248F;
    letter-spacing: .28em;
    padding-left: .3em;
    transition: color 0.35s ease, letter-spacing 0.55s cubic-bezier(0.22, 1, 0.36, 1);
}

.l-footer__address {
    font-size: var(--font-size14);
    line-height: 2;
    color: #1F2724;
    letter-spacing: 1px;
}

.l-footer__menu {
    display: flex;
    justify-content: center;
    gap: calc(var(--gap-unit)*2.5);
    padding: calc(var(--gap-unit)*3.5) calc(var(--gap-unit)*3);
    border: solid #183A3229;
    border-width: 1px 0;
}

.l-footer__sns {
    display: flex;
    width: 32%;
}

.l-footer__sns-link {
    position: relative;
    flex: 1;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: calc(var(--gap-unit)*2.25);
    font-size: var(--font-size18);
    font-weight: bold;
    color: var(--bg-blackblue-color);
    line-height: 1.5;
    padding: var(--gap-unit) calc(var(--gap-unit)*3);
    overflow: hidden;
    isolation: isolate;
    transition: color 0.35s ease;
}

.l-footer__sns-link::before {
    content: "";
    position: absolute;
    inset: 12% 8%;
    border-radius: 999px;
    background: radial-gradient(circle at 30% 40%, rgba(55, 177, 142, 0.18) 0%, rgba(55, 177, 142, 0.05) 45%, transparent 70%);
    opacity: 0;
    transform: scale(0.7);
    transition:
        opacity 0.45s ease,
        transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);
    z-index: -1;
    pointer-events: none;
}

.l-footer__sns-link:last-child {
    border-left: 1px solid #183A3238;
}

.l-footer__sns-icon {
    display: flex;
    width: 3rem;
    transition: transform 0.55s cubic-bezier(0.34, 1.4, 0.64, 1);
}

.l-footer__sns-icon img {
    width: 100%;
}

.l-footer__sns-txt {
    position: relative;
    transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

.l-footer__menu-list {
    flex: 1;
    display: flex;
    gap: calc(var(--gap-unit)*2.5);
}

.l-footer__menu-item {
    flex: 1;
}

.l-footer__menu-link {
    position: relative;
    z-index: 1;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: calc(var(--gap-unit)*2.5);
    width: 100%;
    height: 100%;
    padding: calc(var(--gap-unit)*2.2);
    border: 1px solid #183A324D;
    overflow: hidden;
    color: #183A32;
    transition:
        color 0.35s ease,
        border-color 0.35s ease,
        box-shadow 0.4s ease;
}

.l-footer__menu-link::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    width: 0;
    background: linear-gradient(105deg, #159A57 0%, #1B3A31 100%);
    transition: width 0.45s cubic-bezier(0.77, 0, 0.175, 1);
    z-index: 0;
    pointer-events: none;
}

.l-footer__link-icon,
.l-footer__link-txt,
.l-footer__link-arrow {
    position: relative;
    z-index: 1;
}

.l-footer__link-icon {
    display: flex;
    width: 3rem;
}

.l-footer__link-icon svg {
    width: 100%;
}

.l-footer__link-icon svg path {
    transition: stroke 0.35s ease, fill 0.35s ease;
}

.l-footer__link-txt {
    font-size: var(--font-size18);
    font-weight: bold;
    line-height: 1.6;
    color: inherit;
    padding-bottom: .2rem;
    transition: letter-spacing 0.35s ease;
}

.l-footer__link-arrow {
    display: flex;
    width: .7rem;
    margin-left: 3px;
}

.l-footer__link-arrow svg {
    width: 100%;
}

.l-footer__link-arrow svg path {
    transition: fill 0.35s ease;
}

.l-footer__nav {
    position: relative;
    padding: calc(var(--gap-unit)*3);
}

.l-footer__nav-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: calc(var(--gap-unit)*1.5) calc(var(--gap-unit)*3);
}

.l-footer__nav-link {
    position: relative;
    display: flex;
    align-items: center;
    gap: calc(var(--gap-unit)*1.25);
    font-size: var(--font-size14);
    line-height: 1.9;
    color: #4F625A;
    transition:
        color 0.3s ease,
        letter-spacing 0.45s cubic-bezier(0.22, 1, 0.36, 1),
        transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

.l-footer__nav-link::before {
    content: "";
    display: flex;
    flex-shrink: 0;
    width: calc(var(--gap-unit)*.7);
    height: calc(var(--gap-unit)*.7);
    background-color: #B8D3DD;
    border-radius: 50%;
    transition:
        background-color 0.35s ease,
        transform 0.5s cubic-bezier(0.34, 1.4, 0.64, 1),
        box-shadow 0.45s ease;
}

.l-footer__nav-link::after {
    content: "";
    position: absolute;
    left: calc(var(--gap-unit)*2);
    right: 0;
    bottom: 0.15em;
    height: 1px;
    background-color: #37B18E;
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
    pointer-events: none;
}

.l-footer__btm {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: calc(var(--gap-unit)*2.5);
}

.l-footer__btm-link {
    position: relative;
    font-size: var(--font-size12);
    color: #71857C;
    line-height: 1;
    letter-spacing: .5px;
    transition: color 0.3s ease;
}

.l-footer__btm-link::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -0.35em;
    width: 100%;
    height: 1px;
    background-color: currentColor;
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

.l-footer__copy {
    font-size: var(--font-size12);
    line-height: 1;
    color: #9AA9A2;
    letter-spacing: .18em;
}

@media (hover: hover) {
    .l-footer__logo:has(.l-footer__logo-link:hover)::before {
        width: 88%;
        background-color: #37B18E;
    }

    .l-footer__logo-link:hover .l-footer__logo-txt-ja {
        color: #159A57;
    }

    .l-footer__logo-link:hover .l-footer__logo-txt-en {
        color: #69A78A;
    }

    .l-footer__sns-link:hover {
        color: #159A57;
    }

    .l-footer__sns-link:hover::before {
        opacity: 1;
        transform: scale(1);
    }

    .l-footer__sns-link:hover .l-footer__sns-icon {
        transform: rotate(-8deg);
    }

    .l-footer__sns-link:hover .l-footer__sns-txt {
        transform: translate3d(0.2rem, 0, 0);
    }

    .l-footer__menu-link:hover {
        color: var(--bg-white-color);
        border-color: #159A57;
        box-shadow: 0 1rem 2.4rem rgba(21, 154, 87, 0.28);
    }

    .l-footer__menu-link:hover::before {
        width: 100%;
    }

    .l-footer__menu-link:hover .l-footer__link-icon svg path[stroke] {
        stroke: #fff;
    }

    .l-footer__menu-link:hover .l-footer__link-icon svg path[fill] {
        fill: #fff;
    }

    .l-footer__menu-link:hover .l-footer__link-txt {
        letter-spacing: 0.06em;
    }

    .l-footer__menu-link:hover .l-footer__link-arrow svg path {
        fill: #fff;
    }

    .l-footer__nav-link:hover {
        color: #159A57;
        letter-spacing: 0.06em;
        transform: translate3d(0.15rem, 0, 0);
    }

    .l-footer__nav-link:hover::before {
        background-color: #37B18E;
        transform: scale(1.55);
        box-shadow: 0 0 0 6px rgba(55, 177, 142, 0.18);
    }

    .l-footer__nav-link:hover::after {
        transform: scaleX(1);
    }

    .l-footer__btm-link:hover {
        color: #159A57;
    }

    .l-footer__btm-link:hover::after {
        transform: scaleX(1);
    }
}

@media (max-width: 768px) {
    .l-footer__inner {
        padding: calc(var(--gap-unit)*4) var(--margin);
        padding-top: calc(var(--gap-unit)*11);
    }

    .l-footer__info {
        flex-direction: column;
        gap: calc(var(--gap-unit)*4);
        padding: 0;
    }

    .l-footer__logo {
        width: 75%;
        padding: 0;
    }

    .l-footer__logo-link {
        gap: calc(var(--gap-unit)*3);
    }

    .l-footer__logo::before {
        display: none;
    }

    .l-footer__logo-txt-ja {
        font-size: var(--font-size24);
    }

    .l-footer__logo-txt-en {
        font-size: 1.1rem;
    }

    .l-footer__logo-txt {
        padding: 0;
        gap: calc(var(--gap-unit)*1);
    }

    .l-footer__address {
        text-align: center;
        font-weight: 500;
    }

    .l-footer__menu {
        flex-direction: column;
        align-items: center;
        padding: calc(var(--gap-unit)*3);
    }

    .l-footer__menu-list {
        width: 100%;
    }

    .l-footer__sns {
        width: 75%;
    }

    .l-footer__sns-link {
        font-size: var(--font-size16);
        gap: calc(var(--gap-unit)*2);
    }

    .l-footer__menu-link {
        gap: calc(var(--gap-unit)*1.5);
    }

    .l-footer__link-txt {
        font-size: var(--font-size16);
    }

    .l-footer__link-icon {
        width: 2.6rem;
    }

    .l-footer__nav {
        padding: var(--gap-unit) calc(var(--gap-unit)*2);
    }
}

@media (max-width: 450px) {
    .l-footer__inner {
        gap: calc(var(--gap-unit)*3);
    }

    .l-footer__logo {
        width: 100%;
        justify-content: center;
    }

    .l-footer__logo-link {
        justify-content: center;
        gap: calc(var(--gap-unit)*2);
    }

    .l-footer__logo-img {
        width: 7.5rem;
    }

    .l-footer__address {
        font-size: var(--font-size15);
    }

    .l-footer__menu {
        padding: 0;
        border: none;
    }

    .l-footer__menu-list {
        display: none;
    }

    .l-footer__sns-txt {
        display: none;
    }

    .l-footer__sns {
        width: auto;
        gap: calc(var(--gap-unit)*2.5);
    }

    .l-footer__sns-link {
        padding: 0;
    }

    .l-footer__sns-icon {
        width: 4.5rem;
    }

    .l-footer__sns-link:last-child {
        border: none;
    }

    .l-footer__nav {
        display: none;
    }

    .l-footer__btm {
        justify-content: center;
        margin-top: calc(var(--gap-unit));
    }

    .l-footer__btm-list {
        display: none;
    }

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

/*#region page loading / transition (mamiya-style) */
.p-pageTrans {
    width: 100vw;
    height: 100vh;
    background: #fff;
    overflow: hidden;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 10000;
    pointer-events: none;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.6s 0.2s, visibility 0.6s 0.2s;
}

.loading-on .p-pageTrans {
    display: none;
}

.p-pageTransRipple {
    width: 100vh;
    max-width: 100vw;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 1;
    opacity: 0;
    transition: opacity 0.4s;
}

.p-pageTransRipple__inner {
    width: 100%;
    padding: 100% 0 0;
    position: relative;
    transform: scale(0);
    animation: pageTransitionRippleEffect 1.8s cubic-bezier(0.27, 0.65, 0.5, 0.86) backwards;
    pointer-events: none;
    animation-play-state: paused;
}

.p-pageTransRipple__item {
    width: 100%;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.p-pageTransRipple__item--2 {
    width: 32%;
}

.p-pageTransRipple__item::before {
    content: "";
    display: block;
    width: 100%;
    padding: 100% 0 0;
    border-radius: 50%;
    background: radial-gradient(
        rgba(255, 255, 255, 0) 0%,
        rgba(255, 255, 255, 0) 43.35%,
        rgba(105, 167, 138, 0.55) 59.74%,
        rgba(255, 255, 255, 0) 70%
    );
    opacity: 0.6;
}

@keyframes pageTransitionRippleEffect {
    0% {
        opacity: 1;
        transform: scale(0.4);
    }
    100% {
        opacity: 0;
        transform: scale(1.8);
    }
}

.p-pageTrans.is-loading,
.p-pageTrans.is-loading.is-enter {
    opacity: 1;
    visibility: visible;
    transition-duration: 0.3s;
    transition-delay: 0s;
}

.p-pageTrans.is-leave,
.p-pageTrans.is-leave.is-done {
    opacity: 1;
    visibility: visible;
    transition-duration: 0.3s;
    transition-delay: 0s;
}

.p-pageTrans.is-done .p-pageTransRipple {
    opacity: 1;
}

.p-pageTrans.is-done .p-pageTransRipple__inner {
    animation-play-state: running;
}

.p-pageTrans.is-done {
    opacity: 0;
    visibility: hidden;
    transition-duration: 0.6s;
    transition-delay: 0.6s;
}

.p-pageTrans.is-reload,
.p-pageTrans.is-back,
.p-pageTrans.is-reload.is-loading.is-enter,
.p-pageTrans.is-back.is-loading.is-enter {
    opacity: 0;
    visibility: hidden;
    transition-duration: 0s;
    transition-delay: 0s;
}

/* --- subpage enter: header + lower heading --- */
/* Keep white cover up from first paint until is-done (prevents FOUC) */
html.page-enter-on .p-pageTrans:not(.is-done):not(.is-leave):not(.is-reload):not(.is-back) {
    opacity: 1;
    visibility: visible;
    transition-duration: 0s;
    transition-delay: 0s;
}

.page-enter-on .l-header {
    opacity: 0;
    visibility: hidden;
    transform: translate3d(0, -1.25rem, 0);
    transition:
        opacity 0.7s cubic-bezier(0.53, 0.2, 0.25, 1),
        transform 0.9s cubic-bezier(0.53, 0.2, 0.25, 1),
        visibility 0.7s;
}

.page-enter-on .c-lower__heading::before,
.page-enter-on .c-lower__heading::after {
    opacity: 0;
    transition: opacity 0.8s cubic-bezier(0.53, 0.2, 0.25, 1);
}

.page-enter-on .c-lower__heading-inner::before {
    opacity: 0;
    transform: scale(0.94);
    transition:
        opacity 0.9s cubic-bezier(0.53, 0.2, 0.25, 1) 0.12s,
        transform 1.1s cubic-bezier(0.22, 1, 0.36, 1) 0.12s;
}

.page-enter-on .c-lower__breadcrumb {
    opacity: 0;
    visibility: hidden;
    transform: translate3d(0, 0.8rem, 0);
    transition:
        opacity 0.65s cubic-bezier(0.53, 0.2, 0.25, 1) 0.28s,
        transform 0.85s cubic-bezier(0.53, 0.2, 0.25, 1) 0.28s,
        visibility 0.65s 0.28s;
}

.page-enter-on .c-lower__title-en {
    opacity: 0;
    visibility: hidden;
    letter-spacing: 0.55em;
    transform: translate3d(0, 1.2rem, 0);
    filter: blur(6px);
    transition:
        opacity 0.7s cubic-bezier(0.53, 0.2, 0.25, 1) 0.42s,
        transform 0.95s cubic-bezier(0.22, 1, 0.36, 1) 0.42s,
        letter-spacing 1.1s cubic-bezier(0.22, 1, 0.36, 1) 0.42s,
        filter 0.9s cubic-bezier(0.53, 0.2, 0.25, 1) 0.42s,
        visibility 0.7s 0.42s;
}

.page-enter-on .c-lower__title-ja {
    opacity: 0;
    visibility: hidden;
    transform: scale(0.88) translate3d(0, 1rem, 0);
    filter: blur(12px);
    transition:
        opacity 0.85s cubic-bezier(0.65, 0.45, 0.79, 0.51) 0.58s,
        transform 1.2s cubic-bezier(0.59, 0.35, 0.78, 0.63) 0.58s,
        filter 1.1s cubic-bezier(0.65, 0.45, 0.79, 0.51) 0.58s,
        visibility 0.85s 0.58s;
}

.page-enter-on .c-lower__lead {
    opacity: 0;
    visibility: hidden;
    transform: translate3d(0, 1rem, 0);
    transition:
        opacity 0.7s cubic-bezier(0.53, 0.2, 0.25, 1) 0.85s,
        transform 0.9s cubic-bezier(0.53, 0.2, 0.25, 1) 0.85s,
        visibility 0.7s 0.85s;
}

.page-enter-on .c-lower__lead::before,
.page-enter-on .c-lower__lead::after {
    transform: scaleX(0);
    transition: transform 0.7s cubic-bezier(0.77, 0, 0.175, 1) 1s;
}

.page-enter-on .c-lower__lead::before {
    transform-origin: right center;
}

.page-enter-on .c-lower__lead::after {
    transform-origin: left center;
}

.page-enter-on.anime-start-lower .l-header {
    opacity: 1;
    visibility: visible;
    transform: translate3d(0, 0, 0);
}

.page-enter-on.anime-start-lower .c-lower__heading::before,
.page-enter-on.anime-start-lower .c-lower__heading::after {
    opacity: 1;
}

.page-enter-on.anime-start-lower .c-lower__heading-inner::before {
    opacity: 1;
    transform: scale(1);
}

.page-enter-on.anime-start-lower .c-lower__breadcrumb {
    opacity: 1;
    visibility: visible;
    transform: translate3d(0, 0, 0);
}

.page-enter-on.anime-start-lower .c-lower__title-en {
    opacity: 1;
    visibility: visible;
    letter-spacing: 0.36em;
    transform: translate3d(0, 0, 0);
    filter: blur(0);
}

.page-enter-on.anime-start-lower .c-lower__title-ja {
    opacity: 1;
    visibility: visible;
    transform: scale(1) translate3d(0, 0, 0);
    filter: blur(0);
}

.page-enter-on.anime-start-lower .c-lower__lead {
    opacity: 1;
    visibility: visible;
    transform: translate3d(0, 0, 0);
}

.page-enter-on.anime-start-lower .c-lower__lead::before,
.page-enter-on.anime-start-lower .c-lower__lead::after {
    transform: scaleX(1);
}

/* --- first visit loading (home) --- */
.p-loading {
    width: 100vw;
    height: 100vh;
    position: fixed;
    top: 0;
    left: 0;
    overflow: hidden;
    display: none;
    z-index: 10002;
    background: #fff;
    transition: opacity 1.2s, visibility 1.2s;
}

.loading-on .p-loading {
    display: block;
}

.anime-start-2 .p-loading {
    opacity: 0;
    visibility: hidden;
}

.p-loading__wave {
    width: 100vw;
    height: 30.25%;
    position: absolute;
    left: 0;
    opacity: 0.22;
    animation: loadingWaveAnimeY 4s linear 0s infinite alternate;
    animation-play-state: paused;
}

.p-loading__wave--1 { top: -13.375%; }
.p-loading__wave--2 { top: 18.75%; }
.p-loading__wave--3 { top: 51.125%; }
.p-loading__wave--4 { top: 83.375%; }

.p-loading__wave::before {
    content: "";
    display: block;
    width: 200%;
    height: 100%;
    background: #fff;
    position: absolute;
    top: 0;
    right: 0;
    animation-name: loadingWaveAnimeX1;
    animation-duration: 2s;
    animation-timing-function: cubic-bezier(0.6, 0, 0.4, 1);
    animation-iteration-count: infinite;
    animation-direction: alternate;
    animation-play-state: paused;
}

.p-loading__wave--2::before,
.p-loading__wave--4::before {
    right: auto;
    left: 0;
    animation-name: loadingWaveAnimeX2;
}

.loading-on .p-loading__wave,
.loading-on .p-loading__wave::before {
    animation-play-state: running;
}

@keyframes loadingWaveAnimeX1 {
    0% { transform: translateX(0%); }
    100% { transform: translateX(2%); }
}

@keyframes loadingWaveAnimeX2 {
    0% { transform: translateX(0%); }
    100% { transform: translateX(-2%); }
}

@keyframes loadingWaveAnimeY {
    0% { transform: translateY(0%); }
    20% { transform: translateY(-2%); }
    40%,
    60% { transform: translateY(0%); }
    80% { transform: translateY(2%); }
    100% { transform: translateY(0%); }
}

@keyframes blurInAnime {
    0% {
        filter: blur(15px);
        opacity: 0;
    }
    100% {
        filter: blur(0);
        opacity: 1;
    }
}

.loading-on .l-hero__logo {
    opacity: 0;
    transform: scale(0.76);
    perspective: 1000px;
    backface-visibility: hidden;
    transition: transform 1.4s cubic-bezier(0.59, 0.35, 0.78, 0.63);
    animation-fill-mode: forwards;
    animation-timing-function: cubic-bezier(0.65, 0.45, 0.79, 0.51);
    animation-duration: 1.2s;
}

.loading-on.anime-start-3 .l-hero__logo {
    animation-name: blurInAnime;
    transform: scale(1);
}

.l-hero .p-loadingRipple {
    width: 60%;
    max-width: 71rem;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 1;
    display: none;
    pointer-events: none;
}

.loading-on .l-hero .p-loadingRipple {
    display: block;
}

.p-loadingRipple__inner {
    width: 100%;
    padding: 100% 0 0;
    position: relative;
    transform: scale(0.6);
    transition: transform 1.6s cubic-bezier(0.27, 0.65, 0.5, 0.86);
}

.p-loadingRipple__item {
    width: 100%;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    transition: opacity 0.8s;
}

.p-loadingRipple__item--1 {
    transition-delay: 0.4s;
}

.p-loadingRipple__item--2 {
    width: 32%;
    transition-delay: 0.8s;
}

.p-loadingRipple__item::before {
    content: "";
    display: block;
    width: 100%;
    padding: 100% 0 0;
    border-radius: 50%;
    background: radial-gradient(
        rgba(255, 255, 255, 0) 0%,
        rgba(255, 255, 255, 0) 43.35%,
        rgba(105, 167, 138, 0.55) 59.74%,
        rgba(255, 255, 255, 0) 70%
    );
    opacity: 0.6;
}

.loading-on.anime-start-4 .p-loadingRipple__inner {
    transform: scale(1.8);
}

.loading-on.anime-start-4 .p-loadingRipple__item {
    opacity: 0;
}

.loading-on .u-loadingEl {
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.8s, visibility 0.8s;
}

.loading-on.anime-start-5 .u-loadingEl {
    opacity: 1;
    visibility: visible;
}

.loading-on.anime-start-5 .l-hero__scroll {
    transition-delay: 0.45s;
}

html.loading-on,
html.loading-on body {
    overflow: hidden;
}

@media (max-width: 767px) {
    .l-hero .p-loadingRipple {
        width: 90%;
    }
}

/*#region privacy*/
.p-privacy-body__inner {
    max-width: 96rem;
    margin: 0 auto;
}

.p-privacy-body__lead {
    margin: 0 0 calc(var(--gap-unit)*6);
    font-size: var(--font-size16);
    line-height: 2;
    color: #40544C;
}

.p-privacy-body__list {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*4);
}

.p-privacy-body__section {
    padding: calc(var(--gap-unit)*4) calc(var(--gap-unit)*4.5);
    background-color: #F7FAF7;
    border: 1px solid #DDE9E2;
}

.p-privacy-body__title {
    display: flex;
    align-items: center;
    gap: calc(var(--gap-unit)*2);
    margin: 0 0 calc(var(--gap-unit)*2.5);
}

.p-privacy-body__num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 4.2rem;
    height: 4.2rem;
    padding: 0 calc(var(--gap-unit)*1.2);
    font-size: var(--font-size14);
    font-weight: 700;
    letter-spacing: 0.08em;
    color: #FFFFFF;
    background-color: #37B18E;
}

.p-privacy-body__title-txt {
    font-size: var(--font-size22);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: 0.06em;
    color: #1B3A31;
}

.p-privacy-body__txt {
    font-size: var(--font-size15);
    line-height: 2;
    color: #40544C;
}

.p-privacy-body__txt p {
    margin: 0;
}

.p-privacy-body__txt p + .p-privacy-body__bullets,
.p-privacy-body__txt p + .p-privacy-body__contact {
    margin-top: calc(var(--gap-unit)*2);
}

.p-privacy-body__bullets {
    display: flex;
    flex-direction: column;
    gap: calc(var(--gap-unit)*1.2);
    margin: 0;
    padding: 0;
    list-style: none;
}

.p-privacy-body__bullets li {
    position: relative;
    padding-left: calc(var(--gap-unit)*2.5);
}

.p-privacy-body__bullets li::before {
    content: "";
    position: absolute;
    top: 1.1em;
    left: 0;
    width: 0.6rem;
    height: 0.6rem;
    border-radius: 50%;
    background-color: #37B18E;
    transform: translateY(-50%);
}

.p-privacy-body__contact {
    padding: calc(var(--gap-unit)*3) calc(var(--gap-unit)*3.5);
    background-color: var(--bg-white-color);
    border: 1px solid #DDE9E2;
}

.p-privacy-body__contact a {
    color: #37B18E;
    text-decoration: underline;
    text-underline-offset: 0.2em;
}

.p-privacy-body__date {
    margin: calc(var(--gap-unit)*6) 0 0;
    font-size: var(--font-size14);
    line-height: 1.8;
    color: #667A72;
    text-align: right;
}

@media (max-width: 767px) {
    .p-privacy-body__lead {
        margin-bottom: calc(var(--gap-unit)*4);
        font-size: var(--font-size15);
    }

    .p-privacy-body__list {
        gap: calc(var(--gap-unit)*3);
    }

    .p-privacy-body__section {
        padding: calc(var(--gap-unit)*3);
    }

    .p-privacy-body__title {
        align-items: flex-start;
        gap: calc(var(--gap-unit)*1.5);
    }

    .p-privacy-body__num {
        min-width: 3.6rem;
        height: 3.6rem;
        font-size: var(--font-size12);
    }

    .p-privacy-body__title-txt {
        font-size: var(--font-size18);
    }

    .p-privacy-body__txt {
        font-size: var(--font-size14);
    }

    .p-privacy-body__contact {
        padding: calc(var(--gap-unit)*2.5);
    }

    .p-privacy-body__date {
        margin-top: calc(var(--gap-unit)*4);
        text-align: left;
    }
}
/*#endregion privacy*/

/*#region news detail*/
.p-news-detail {
    position: relative;
    background-color: var(--bg-white-color);
}

.p-news-detail__main {
    position: relative;
    background:
        radial-gradient(ellipse 70% 40% at 0% 0%, rgba(21, 154, 87, 0.05) 0%, transparent 50%),
        linear-gradient(180deg, #FFFFFF 0%, #F7FAF7 100%);
}

.p-news-detail__inner {
    max-width: 92rem;
    margin: 0 auto;
    padding: 0 6rem;
}

.p-news-detail__header {
    display: flex;
    align-items: center;
    gap: calc(var(--gap-unit)*3.5);
    padding-bottom: calc(var(--gap-unit)*4);
    border-bottom: 1px solid #DDE9E2;
}

.p-news-detail__date {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(var(--gap-unit)*.5);
    line-height: 1;
    padding-top: 0.2rem;
}

.p-news-detail__date-year {
    font-family: var(--fontT), var(--fontG), serif;
    font-size: var(--font-size24);
    font-weight: 500;
    letter-spacing: 0.1em;
    color: #159A57;
}

.p-news-detail__date-md {
    display: flex;
    align-items: baseline;
    gap: 0.4rem;
    font-family: var(--fontT), var(--fontG), serif;
    font-size: var(--font-size24);
    font-weight: 600;
    letter-spacing: 0.02em;
    color: #1B3A31;
}

.p-news-detail__date-sep {
    font-size: var(--font-size22);
    font-weight: 400;
    color: #5D9880;
    padding: 0 0.15rem;
}

.p-news-detail__date-full {
    display: none;
}

.p-news-detail__title {
    flex: 1;
    min-width: 0;
    margin: 0;
    font-size: var(--font-size32);
    font-family: var(--fontT);
    font-weight: 700;
    line-height: 1.55;
    letter-spacing: 0.04em;
    color: #1B3A31;
}

.p-news-detail__meta {
    display: flex;
    align-items: center;
    margin-top: calc(var(--gap-unit)*3.5);
}

.p-news-detail__cat {
    display: inline-flex;
    align-items: center;
    gap: calc(var(--gap-unit)*1.25);
    padding: calc(var(--gap-unit)*.6) calc(var(--gap-unit)*2);
    font-size: var(--font-size13, 1.3rem);
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: 0.06em;
    text-decoration: none;
    transition: opacity 0.25s ease, transform 0.25s ease;
}

.p-news-detail__cat:hover {
    opacity: 0.85;
    transform: translate3d(0.15rem, 0, 0);
}

.p-news-detail__cat-dot {
    width: 1.1rem;
    height: 1.1rem;
    border-radius: 50%;
    background-color: currentColor;
    box-shadow: 0 0 0 0.35rem rgba(21, 154, 87, 0.18);
    flex-shrink: 0;
}

.p-news-detail__cat--news {
    color: #1B6B45;
    background-color: #E5F4EC;
}

.p-news-detail__cat--news .p-news-detail__cat-dot {
    box-shadow: 0 0 0 0.35rem rgba(27, 107, 69, 0.18);
}

.p-news-detail__cat--blog {
    color: #2F6FA8;
    background-color: #E8F2FA;
}

.p-news-detail__cat--blog .p-news-detail__cat-dot {
    box-shadow: 0 0 0 0.35rem rgba(47, 111, 168, 0.18);
}

.p-news-detail__cat--recruit {
    color: #8A5A2B;
    background-color: #F6EEE4;
}

.p-news-detail__cat--recruit .p-news-detail__cat-dot {
    box-shadow: 0 0 0 0.35rem rgba(138, 90, 43, 0.18);
}

.p-news-detail__cat--sns {
    color: #6B4E9B;
    background-color: #F0EAF7;
}

.p-news-detail__cat--sns .p-news-detail__cat-dot {
    box-shadow: 0 0 0 0.35rem rgba(107, 78, 155, 0.18);
}

.p-news-detail__thumb {
    margin: calc(var(--gap-unit)*5) 0 0;
    overflow: hidden;
    border: 1px solid #DDE9E2;
    background-color: #EEF7F2;
}

.p-news-detail__thumb img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
    object-fit: cover;
}

.p-news-detail__content {
    margin-top: calc(var(--gap-unit)*5);
    font-size: var(--font-size15);
    line-height: 2.1;
    color: #263A33;
    letter-spacing: 0.03em;
}

.p-news-detail__content > *:first-child {
    margin-top: 0;
}

.p-news-detail__content > *:last-child {
    margin-bottom: 0;
}

.p-news-detail__content h2,
.p-news-detail__content h3,
.p-news-detail__content h4 {
    margin: calc(var(--gap-unit)*6.5) 0 calc(var(--gap-unit)*3);
    color: #1B3A31;
    font-weight: 700;
    letter-spacing: 0.04em;
    line-height: 1.55;
}

.p-news-detail__content h2 {
    position: relative;
    font-size: var(--font-size22);
    padding: calc(var(--gap-unit)*1.875) calc(var(--gap-unit)*2.5);
    background-color: #EEF7F2;
    border-radius: calc(var(--border-radius) * 0.5);
    border-left: 5px solid #159A57;
    overflow: hidden;
}

.p-news-detail__content h3 {
    position: relative;
    font-size: var(--font-size20);
    font-weight: 700;
    padding-bottom: calc(var(--gap-unit)*1.875);
    border-bottom: 2px solid #DDE9E2;
}

.p-news-detail__content h3::before {
    content: "";
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 10%;
    min-width: 4.8rem;
    height: 2px;
    background-color: #159A57;
}

.p-news-detail__content h4 {
    position: relative;
    font-size: var(--font-size18);
    padding-left: calc(var(--gap-unit)*2);
    border-left: 3px solid #5D9880;
}

@media (max-width: 767px) {
    .p-news-detail__content h2 {
        font-size: var(--font-size18);
        padding: calc(var(--gap-unit)*1.25) calc(var(--gap-unit)*1.5);
    }

    .p-news-detail__content h3 {
        font-size: var(--font-size18);
        padding-bottom: calc(var(--gap-unit)*1.25);
    }

    .p-news-detail__content h4 {
        font-size: var(--font-size16);
    }
}

@media (max-width: 450px) {
    .p-news-detail .c-lower__breadcrumb {
        display: block;
    }
}

.p-news-detail__content p {
    margin: 0 0 calc(var(--gap-unit)*3);
}

.p-news-detail__content a {
    color: #159A57;
    text-decoration: underline;
    text-underline-offset: 0.25em;
    transition: color 0.25s ease;
}

.p-news-detail__content a:hover {
    color: #1B3A31;
}

.p-news-detail__content ul,
.p-news-detail__content ol {
    margin: 0 0 calc(var(--gap-unit)*3);
    padding-left: calc(var(--gap-unit)*3);
}

.p-news-detail__content li + li {
    margin-top: calc(var(--gap-unit)*1);
}

.p-news-detail__content blockquote {
    position: relative;
    margin: calc(var(--gap-unit)*5) 0;
    padding: calc(var(--gap-unit)*3.5) calc(var(--gap-unit)*4);
    background-color: #F7FAF7;
    color: #1B3A31;
    font-weight: 500;
}

.p-news-detail__content blockquote p:last-child {
    margin-bottom: 0;
}

.p-news-detail__content img {
    display: block;
    max-width: 100%;
    height: auto;
    margin: calc(var(--gap-unit)*4) auto;
    border: 1px solid #DDE9E2;
}

.p-news-detail__content figure {
    margin: calc(var(--gap-unit)*4) 0;
}

.p-news-detail__content figcaption {
    margin-top: calc(var(--gap-unit)*1.5);
    font-size: var(--font-size13, 1.3rem);
    color: #667A72;
    text-align: center;
}

.p-news-detail__content table {
    width: 100%;
    margin: calc(var(--gap-unit)*4) 0;
    border-collapse: collapse;
    font-size: var(--font-size15);
}

.p-news-detail__content th,
.p-news-detail__content td {
    padding: calc(var(--gap-unit)*1.5) calc(var(--gap-unit)*2);
    border: 1px solid #DDE9E2;
    text-align: left;
}

.p-news-detail__content th {
    background-color: #F7FAF7;
    color: #1B3A31;
    font-weight: 700;
}

.p-news-detail__foot {
    display: flex;
    justify-content: center;
    margin-top: calc(var(--gap-unit)*7);
    padding-top: calc(var(--gap-unit)*4);
    border-top: 1px solid #DDE9E2;
}

.p-news-detail__back {
    display: inline-flex;
    align-items: center;
    gap: calc(var(--gap-unit)*1.5);
    padding: calc(var(--gap-unit)*2) calc(var(--gap-unit)*3.5);
    font-size: var(--font-size14);
    font-weight: 700;
    letter-spacing: 0.08em;
    color: #1B3A31;
    background-color: var(--bg-white-color);
    border: 1px solid #1B3A31;
    transition: color 0.25s ease, background-color 0.25s ease, border-color 0.25s ease;
}

.p-news-detail__back:hover {
    color: var(--bg-white-color);
    background-color: #159A57;
    border-color: #159A57;
}

.p-news-detail__back-icon {
    font-size: var(--font-size18);
    line-height: 1;
}

@media (max-width: 767px) {
    .p-news-detail__inner {
        padding: 0;
    }

    .p-news-detail__header {
        flex-direction: column;
        align-items: flex-start;
        gap: calc(var(--gap-unit)*1.5);
    }

    .p-news-detail__date {
        flex-direction: row;
        align-items: baseline;
        gap: calc(var(--gap-unit)*1.5);
        min-width: 0;
    }

    .p-news-detail__date-year,
    .p-news-detail__date-md {
        display: none;
    }

    .p-news-detail__date-full {
        display: inline;
        font-size: var(--font-size15);
        font-family: var(--fontG), serif;
        font-weight: 700;
        letter-spacing: 0.06em;
        color: #53697D;
    }

    .p-news-detail__title {
        font-size: var(--font-size28);
    }
}
/*#endregion news detail*/

/*#region contact confirm / thanks*/
.p-contact-confirm__empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(var(--gap-unit)*4);
    padding: calc(var(--gap-unit)*6) calc(var(--gap-unit)*4);
    text-align: center;
}

.p-contact-confirm__empty-txt {
    margin: 0;
    font-size: var(--font-size16);
    line-height: 2;
    color: #40544C;
}

.p-contact-confirm__value {
    margin: 0;
    font-size: var(--font-size16);
    line-height: 1.9;
    color: #1B3A31;
    word-break: break-word;
}

.p-contact-confirm__value--textarea {
    white-space: pre-wrap;
    min-height: 8rem;
}

.p-contact-confirm__actions {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: calc(var(--gap-unit)*2);
    margin-top: calc(var(--gap-unit)*5);
    padding: calc(var(--gap-unit)*3.75) 0 calc(var(--gap-unit)*1.75);
}

.p-contact-confirm__btn--back {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 24rem;
    padding: calc(var(--gap-unit)*2.5) calc(var(--gap-unit)*5);
    font-size: var(--font-size16);
    font-family: var(--fontB);
    font-weight: 700;
    letter-spacing: 0.1em;
    color: #1B3A31;
    background-color: var(--bg-white-color);
    border: 2px solid #1B3A31;
    border-radius: 10rem;
    cursor: pointer;
    transition: color 0.2s linear, background-color 0.2s linear;
}

.p-contact-confirm__btn--back:hover {
    color: var(--bg-white-color);
    background-color: #1B3A31;
}

.p-contact-confirm__btn--send {
    min-width: 24rem;
}

.p-contact-confirm .p-contact-form__submit-note,
.p-recruit-confirm .p-recruit-form__submit-note {
    margin-top: 0;
    padding-bottom: calc(var(--gap-unit)*3.75);
}

.p-recruit-confirm .p-recruit-form__content {
    padding-bottom: calc(var(--gap-unit)*2);
}

.p-contact-thanks__inner {
    max-width: 80rem;
    margin: 0 auto;
}

.p-contact-thanks__box {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(var(--gap-unit)*4);
    padding: calc(var(--gap-unit)*6) calc(var(--gap-unit)*5);
    text-align: center;
    background-color: #F7FAF7;
    border: 1px solid #DDE9E2;
}

.p-contact-thanks__txt {
    margin: 0;
    font-size: var(--font-size18);
    line-height: 2;
    color: #1B3A31;
}

.p-contact-thanks__info {
    font-size: var(--font-size15);
    line-height: 2;
    color: #40544C;
}

.p-contact-thanks__info p {
    margin: 0;
}

.p-contact-thanks__btn {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 28rem;
    padding: calc(var(--gap-unit)*2.5) calc(var(--gap-unit)*5);
    font-size: var(--font-size16);
    font-weight: 700;
    letter-spacing: 0.1em;
    color: var(--bg-white-color);
    background-color: #1B3A31;
    border: 2px solid #1B3A31;
    border-radius: 10rem;
    text-decoration: none;
    transition: color 0.2s linear, background-color 0.2s linear;
}

.p-contact-thanks__btn:hover {
    color: #1B3A31;
    background-color: var(--bg-white-color);
}

@media (max-width: 767px) {
    .p-contact-confirm__actions {
        flex-direction: column;
    }

    .p-contact-confirm__btn--back,
    .p-contact-confirm__btn--send,
    .p-contact-thanks__btn {
        width: 100%;
        min-width: 0;
    }

    .p-contact-thanks__box {
        padding: calc(var(--gap-unit)*4) calc(var(--gap-unit)*3);
    }

    .p-contact-thanks__txt {
        font-size: var(--font-size16);
    }
}
/*#endregion contact confirm / thanks*/
/*#endregion page loading / transition */