/* common */
html, body {
    position: relative;
    width: 100%;
}

body {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
}

main {
    overflow-x: hidden;
}

.outer {
    max-width: 1920px;
    margin: 0 auto;
}

.inner {
    padding: 0 80px;
}

.inner-mv {
    padding: 0;
}

.container {
    max-width: 1440px;
    margin: 0 auto;
}

.children-page .container {
    max-width: 1040px;
}

a {
    display: inline-block;
}

.btn {
    width: 335px;
}

.btn>* {
    -webkit-transition: all 0.3s ease;
    -moz-transition: all 0.3s ease;
    -o-transition: all 0.3s ease;
    transition: all 0.3s ease;
    width: 100%;
    text-align: center;
    padding: 22px 0;
    background-color: #000;
    color: #fff;
    font-family: 'Arial', sans-serif;
    letter-spacing: 0.1em;
    font-size: 18px;
    border: solid 2px #000;
}

.btn>*:hover {
    background-color: transparent;
    color: #000;
}

.white-btn>* {
    -webkit-transition: all 0.3s ease;
    -moz-transition: all 0.3s ease;
    -o-transition: all 0.3s ease;
    transition: all 0.3s ease;
    width: 100%;
    text-align: center;
    padding: 22px 0;
    background-color: #fff;
    color: #000;
    font-family: 'Arial', sans-serif;
    letter-spacing: 0.1em;
    font-size: 18px;
    border: solid 2px #000;
}

.white-btn>*:hover {
    background-color: #000;
    color: #fff;
}

.submit-btn:hover {
    background-color: #4CBB84;
    color: #fff;
    border-color: #4CBB84;
}

img {
    width: 100%;
}

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

.ly-flex-align-center {
    align-items: center;
}

.ly-flex-align-end {
    align-items: flex-end;
}

.ly-fs32 {
    font-size: 32px;
}

.ly-fs24 {
    font-size: 24px;
}

.ly-mb-50 {
    margin-bottom: 50px;
}

.ly-mb-30 {
    margin-bottom: 30px;
}

.ly-mb-24 {
    margin-bottom: 24px;
}

.ly-pt-18 {
    padding-top: 18px;
}

.ly-indent {
    padding-left: 1em;
    text-indent: -1em;
}

.ly-palt {
    font-feature-settings: "palt";
}

.ly-bg-yellow {
    background-color: yellow;
}

p {
    font-weight: 400;
}

rt {
    font-weight: 400;
    letter-spacing: 0.1em;
}

.forPC {
    display: block;
}

.forTB {
    display: block;
}

.forSP {
    display: none;
}

@media screen and (max-width:1025px) {
    .forPC {
        display: none !important;
    }

    .forSP {
        display: block !important;
    }

    .inner {
        padding: 0 16px;
    }

    .inner-sp {
        padding: 0;
    }

    .ly-flex-column-sp {
        flex-direction: column;
    }

    .ly-flex-align-start-sp {
        align-items: flex-start;
    }
}

@media screen and (max-width:600px) {
    .inner {
        padding: 0 16px;
    }

    .inner-sp {
        padding: 0;
    }

    .forTB {
        display: none;
    }

    .btn>* {
        text-align: center;
        padding: 13px 0;
        font-size: 18px;
    }

    .btn {
        width: 220px;
    }
}

/* header */
header {
    position: sticky;
    top: 0;
    background-color: #fff;
    z-index: 999;
    box-shadow: 0 3px 6px rgba(0, 0, 0, 15%);
}

header .logo {
    width: 250px;
}

header .inner .container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 80px;
}

header .header-right nav ul {
    display: flex;
    gap: 50px;
    font-size: 16px;
}

.header-right li {
    -webkit-transition: all 0.3s ease;
    -moz-transition: all 0.3s ease;
    -o-transition: all 0.3s ease;
    transition: all 0.3s ease;
}

.contact-link {
    color: #378A60;
}

.header-right li:not(.lang-change):hover,
.nav-item:not(.lang-change):hover {
    color: #76BB4C;
}

.lang-change .JP.active {
    border-bottom: solid 2px #378A60;
}

.lang-change .EN.active {
    border-bottom: solid 2px #378A60;
}

.lang-change .JP.inactive {
    color: #CBCBCB;
}

.lang-change .EN.inactive {
    color: #CBCBCB;
}

.lang-change .slash {
    display: inline-block;
    margin: 0 0.5em 0;
}

@media screen and (max-width:600px) {
    header .inner .container {
        height: 60px;
    }

    header .logo {
        width: 170px;
    }
}

/*=============================
.btn-trigger
=============================*/
.btn-trigger {
    position: relative;
    width: 27px;
    height: 17px;
    cursor: pointer;
}

.btn-trigger span {
    position: absolute;
    left: 0;
    width: 100%;
    height: 3px;
    background-color: #000;
}

.btn-trigger, .btn-trigger span {
    display: inline-block;
    transition: all .5s;
    box-sizing: border-box;
}

.btn-trigger span:nth-of-type(1) {
    top: 0;
}

.btn-trigger span:nth-of-type(2) {
    top: 7px;
}

.btn-trigger span:nth-of-type(3) {
    bottom: 0;
}


/*=============================
  #btn01
  =============================*/
#btn01.active span:nth-of-type(1) {
    -webkit-transform: translateY(7px) rotate(-45deg);
    transform: translateY(7px) rotate(-45deg);
}

#btn01.active span:nth-of-type(2) {
    opacity: 0;
}

#btn01.active span:nth-of-type(3) {
    -webkit-transform: translateY(-7px) rotate(45deg);
    transform: translateY(-7px) rotate(45deg);
}

/* hamberger-menu */
.nav-wrapper {
    visibility: hidden;
    opacity: 0;
    width: 100vw;
    height: 100vh;
    position: fixed;
    top: 0;
    left: 0;
    background-color: rgba(255, 255, 255, 0.4);
    backdrop-filter: blur(30px);
    -webkit-backdrop-filter: blur(30px);
    z-index: 998;
    transition: all 0.3s;
}

.header-nav {
    width: 100%;
    height: 100%;
    z-index: 2;
    padding: 44px 16px;
}

.nav-list {
    display: block;
    margin-top: 60px;
}

.nav-item {
    -webkit-transition: all 0.3s ease;
    -moz-transition: all 0.3s ease;
    -o-transition: all 0.3s ease;
    transition: all 0.3s ease;
    margin-right: 0;
    margin-bottom: 50px;
    font-size: 32px;
}

/* メニューオープン時 */
.nav-wrapper.fade {
    visibility: visible;
    opacity: 1;
    transition: all 0.3s;
}

.noscroll {
    overflow: hidden;
}

/* mv */
.bg-top {
    position: relative;
}

.bg-top::after {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    z-index: -2;
    width: 100%;
    height: calc(100% + 450px);
    background: linear-gradient(to bottom, #4CBB84 20%, #378A60 80%);
    transform: skewY(-10deg);
    transform-origin: top left;
}

.mv {
    background-image: url(/uploads/2026/06/bg.jpg);
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
}

.mv h2 {
    margin-left: 60px;
    font-size: 48px;
    color: #fff;
    padding: 20% 0 20%;
    text-shadow: 0 3px 20px rgba(0, 0, 0, 50%);
    line-height: 1.5em;
}

@media screen and (max-width:1025px) {
    .mv h2 {
        font-size: 50px;
        padding: 24% 16px 25%;
        ;
    }

    .bg-top::after {
        height: calc(100% + 350px);
    }
}

@media screen and (max-width:600px) {
    .bg-top {
        padding-top: 0;
    }

    .mv {
        background-image: url(/uploads/2026/06/bg_sp.jpg);
        background-repeat: no-repeat;
        background-position: 0 -100px;
        background-size: cover;
    }

    .mv h2 {
        font-size: 32px;
        padding: 70% 16px 530px;
    }

    .bg-top::after {
        height: calc(100% + 250px);
        transform: skewY(354deg);
    }
}

@media screen and (max-width:389px) {
    .mv h2 {
        font-size: 24px;
        padding: 70% 16px 90%;
    }

    .bg-top::after {
        height: calc(100% + 250px);
    }

    .mv {
        background-position: 0 -50px;
        background-size: cover;
    }
}

/* about */
.top-page-section-title {
    font-size: 64px;
    font-family: 'Arial', sans-serif;
    color: #fff;
    text-shadow: 22px 13px 0 rgba(0, 0, 0, 15%);
}

.inner .about {
    margin: 132.3px auto 0;
    background-image: url(/uploads/2026/06/message.png);
    background-repeat: no-repeat;
    background-position: calc(50% + 40%) center;
    background-size: contain;
    padding: 5% 0 5%;
    max-width: 1920px;
}

.about p {
    font-size: 24px;
    font-weight: 700;
    color: #fff;
    margin-top: 27px;
    margin-bottom: 64px;
    line-height: 1.875em;
}


@media screen and (max-width:1025px) {
    .inner .about {
        background-image: none;
        padding: 0;
    }

    .top-page-section-title {
        font-size: 50px;
    }

    .about-over-view {
        padding: 0 16px;
        position: relative;
        z-index: 10;
    }

    .about-img {
        position: absolute;
        top: -100px;
        left: 50vw;
        width: 50vw;
        z-index: -1;
    }

}


@media screen and (max-width:600px) {
    .top-page-section-title {
        font-size: 40px;
        text-shadow: 13px 7px 0 rgba(0, 0, 0, 15%);
    }

    .about p {
        font-size: 20px;
        margin-top: 24px;
        margin-bottom: 40px;
        line-height: 1.875em;
    }

    .about-img {
        top: -95px;
        min-width: 258.14px;
        left: calc(50vw - 40px);
        width: 278px;
    }
}

@media screen and (max-width:389px) {
    .top-page-section-title {
        font-size: 32px;
    }

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

/* our-service */
.our-service {
    padding-top: 220px;
    padding-bottom: 200px;
}

.service-items {
    margin-top: 50px;
    display: flex;
    flex-direction: column;
    gap: 195px;
}

.our-service .service-item {
    display: flex;
    align-items: center;
    gap: 4%;
}

.our-service .service-item-rev {
    flex-direction: row-reverse;
    justify-content: space-between;
}

.our-service .service-detail {
    padding: 60px 0 0 47px;
    background-size: 190px;
}

@media screen and (min-width:1025px) {
    .our-service .service-items .service-item:nth-child(odd) .service-detail {
        margin-right: 80px;
        flex: 1;
    }

    .our-service .service-items .service-item:nth-child(even) .service-detail {
        margin-left: 80px;
        flex: 1;
    }
}

@media screen and (max-width:1025px) {
    .our-service {
        padding-top: 150px;
        padding-bottom: 100px;
    }

    .service-items {
        margin-top: 150px;
        gap: 150px;
    }

    .service-item {
        position: relative;
    }

    .service-number {
        width: 150px;
        position: absolute;
        top: -80px;
        left: 16px;
    }
}

@media screen and (max-width:600px) {
    .our-service {
        padding-top: 150px;
        padding-bottom: 100px;
    }

    .service-items {
        margin-top: 100px;
        gap: 100px;
    }

    .service-number {
        width: 100px;
        top: -55px;
        left: 10px;
    }
}

.service-number01 {
    background: url(/uploads/2026/06/01.png) no-repeat;
}

.service-number02 {
    background: url(/uploads/2026/06/02.png) no-repeat;
}

.service-number03 {
    background: url(/uploads/2026/06/03.png) no-repeat;
}

.our-service .service-detail p {
    font-size: 40px;
    margin-bottom: 65px;
    margin-left: 160px;
    font-weight: 700;
    color: #4CBB84;
}

@media screen and (max-width:600px) {
    .our-service .service-detail p {
        margin-bottom: 20px;
        margin-left: 0;
    }
}

.our-service .service-detail h4 {
    font-size: 28px;
    line-height: 2.5rem;
}

.our-service .service-detail ul {
    margin: 48px 0;
    color: #333333;
}

.our-service .service-detail ul li {
    box-sizing: border-box;
    padding-left: 0px;
    font-size: 18px;
    font-weight: 400;
    padding-left: 1em;
    text-indent: -1em;
    line-height: 1.77em;
}

.our-service .service-image {
    width: 50%;
}

.moreLinkText {
    -webkit-transition: all 0.3s ease;
    -moz-transition: all 0.3s ease;
    -o-transition: all 0.3s ease;
    transition: all 0.3s ease;
    width: 200px;
    display: inline-block;
    color: #4CBB84;
    font-weight: 400;
}

.lineArrow {
    width: 100%;
    height: 15px;
    border-bottom: 2px solid #4CBB84;
    border-right: 3px solid #4CBB84;
    transform: skew(45deg);
    margin: -10px 0 0 -7px;
}

.moreLinkText:hover {
    width: 222px;
}

.service-offset {
    position: relative;
    left: -25px;
}

@media screen and (max-width:1025px) {
    .our-service .service-item {
        flex-direction: column;
        gap: 20px;
        align-items: stretch;
    }

    .our-service .service-image {
        width: 100%;
    }

    .row {
        float: right;
    }

    .our-service .service-detail {
        padding: 0 16px;
        background-size: 190px;
    }

    .service-number01 {
        background: none;
    }

    .service-number02 {
        background: none;
    }

    .service-number03 {
        background: none;
    }
}

@media screen and (max-width:600px) {
    .our-service .service-detail p {
        font-size: 28px;
        margin-bottom: 0;
    }

    .our-service .service-detail h4 {
        margin-top: 5px;
        font-size: 24px;
        line-height: 34px;
    }

    .our-service .service-detail ul {
        padding-left: 1em;
        margin: 16px 0 40px;
    }

    .our-service .service-detail ul li {
        box-sizing: border-box;
        padding-left: 0px;
        font-size: 18px;
    }
}

@media screen and (max-width:389px) {
    .our-service .service-detail p {
        font-size: 24px;
    }

    .our-service .service-detail h4 {
        font-size: 20px;
        line-height: 1.5em;
    }

    .our-service .service-detail ul li {
        font-size: 16px;
    }
}

/* column */
.column {
    background-color: #EFF8F1;
    padding: 150px 0;
}

.column .top-page-section-title {
    margin-bottom: 89px;
    color: #000;
}

.column-items ul {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.column-card {
    background-color: #fff;
    box-shadow: 0 6px 20px rgb(162, 162, 162, 0.16);
}

.card-img img {
    height: 200px;
    object-fit: contain;
}

.column-card .card-detail {
    padding: 16px 16px 24px;
}

.column-card .card-detail h5 {
    font-size: 20px;
    font-weight: 700;
    line-height: 1.3em;
    margin-bottom: 12px;
    min-height: 2.6em;
}

.column-card .card-detail p {
    font-size: 14px;
    font-weight: 400;
    line-height: 1.71em;
    margin-bottom: 23px;
    color: #333333;
}

.moreLinkShort {
    display: flex;
    justify-content: left;
}

.moreLinkTextShort {
    -webkit-transition: all 0.3s ease;
    -moz-transition: all 0.3s ease;
    -o-transition: all 0.3s ease;
    transition: all 0.3s ease;
    display: inline-block;
    color: #4CBB84;
    font-weight: 400;
}

.column .btn {
    margin: 64px auto 0;
}

.line2-clamp {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}

.line3-clamp {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
}

@media screen and (max-width:1025px) {
    .column .top-page-section-title {
        margin-bottom: 50px;
    }
}

@media screen and (max-width:600px) {
    .column {
        padding: 80px 0;
    }

    .column .btn {
        margin: 0 auto;
    }

    .column .top-page-section-title {
        margin-bottom: 31.5px;
    }
}

.lineArrowShort {
    width: 30px;
    height: 10px;
    border-bottom: 2px solid #4CBB84;
    border-right: 3px solid #4CBB84;
    transform: skew(45deg);
    margin: -15px 0 0 80px;
}

/* contact-area */
.contact-area {
    padding: 142px 0 81px;
    background-image: url(/uploads/2026/06/contact_area_img.png);
    background-repeat: no-repeat;
    background-size: cover;
}

.contact-right {
    width: 350px;
}

.contact-area .contact-left p {
    font-weight: 700;
    font-size: 40px;
    margin-bottom: 50px;
}

.contact-area .contact-right {
    width: 400px;
}


@media screen and (max-width:1366px) {
    .contact-area .contact-left p {
        font-size: 44px;
        margin-bottom: 50px;
    }
}

@media screen and (max-width:1025px) {
    .contact-area {
        padding: 108px 0;
        background-image: url(/uploads/2026/06/contact_area_img_sp.png);
        background-repeat: no-repeat;
        background-size: cover;
    }

    .contact-area .contact-left p {
        text-align: center;
        line-height: 1.5em;
    }

    .contact-area .btn {
        margin: 0 auto;
    }

    .contact-area .contact-right {
        margin-top: 65px;
    }
}

@media screen and (max-width:600px) {
    .contact-area .contact-left p {
        font-size: 32px;
    }

    .contact-area .contact-right {
        width: 320px;
    }
}

@media screen and (max-width:389px) {
    .contact-area .contact-left p {
        font-size: 26px;
    }

    .contact-area .contact-right {
        width: 280px;
    }
}

/* footer */
footer {
    background-color: #000;
    color: #fff;
    padding: 48px 0;
}

footer .footer-left-top {
    column-gap: 38px;
    margin-bottom: 20px;
    font-weight: 400;
    font-family: 'Arial', sans-serif;
}

footer .footer-left-bottom {
    display: flex;
    column-gap: 38px;
    font-weight: 300;
    font-size: 14px;
}

footer small,
.footer-left-bottom {
    color: #707070;
}

footer small {
    font-family: 'Arial', sans-serif;
}

@media screen and (max-width:1025px) {
    footer small {
        margin-top: 68px;
    }
}

@media screen and (max-width:600px) {
    footer {
        padding: 33px 0 12px;
    }

    footer .footer-left-top {
        font-size: 14px;
        flex-direction: column;
        gap: 30px;
        margin-bottom: 40px;
    }

    footer .footer-left-bottom {
        font-size: 14px;
        flex-direction: column;
        gap: 20px;
    }

    footer .footer-left-bottom {
        font-size: 12px;
    }

    footer small {
        font-size: 10px;
        margin-top: 40px;
    }
}

/* page common */
.children-page p {
    font-size: 18px;
    line-height: 2em;
}

.page-title {
    font-family: 'Arial', sans-serif;
    position: relative;
    z-index: -1;
    padding-top: 200px;
    padding-bottom: 200px;
}

.page-title::after {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    z-index: -1;
    width: 100%;
    height: 480px;
    background: linear-gradient(to right, #4CBB84 20%, #378A60 80%);
    transform: skewY(-10deg);
    transform-origin: top left;
}

.page-title h2 {
    font-size: 72px;
    color: #fff;
    text-shadow: 22px 13px 0 rgb(0 0 0 / 15%);
}

/* 404ページのタイトルだけオフセット影を無効化（ゴースト解消・他ページは現状維持） */
.error404 .page-title h2 {
    text-shadow: none;
}

.sub-page-section-title {
    font-family: 'Arial', sans-serif;
    font-size: 32px;
    opacity: 0.5;
    display: inline-block;
    background: linear-gradient(90deg, #4CBB84, #378A60);
    background: -webkit-linear-gradient(0deg, #4CBB84, #378A60);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.sub-page-section-sub-title {
    font-size: 56px;
    line-height: 1.5em;
}

@media screen and (max-width:1025px) {
    .page-title h2 {
        font-size: 50px;
        text-shadow: 13px 7px 0 rgba(0, 0, 0, 15%);
    }

    .page-title {
        padding-top: 146.25px;
        padding-bottom: 146.25px;
    }

    .page-title::after {
        height: 350px;
    }

    .sub-page-section-title {
        font-size: 40px;
    }

    .sub-page-section-sub-title {
        font-size: 40px;
    }
}

@media screen and (max-width:600px) {
    .children-page p {
        font-size: 16px;
        line-height: 2em;
    }

    .page-title h2 {
        font-size: 40px;
    }

    .page-title {
        padding-top: 87px;
        padding-bottom: 87px;
    }

    .page-title::after {
        height: 220px;
        transform: skewY(354deg);
    }

    .sub-page-section-title {
        font-size: 32px;
        margin-bottom: 23.5px;
    }

    .sub-page-section-sub-title {
        font-size: 30px;
        line-height: 1.5em;
    }
}


/* mission */
.mission {
    padding-bottom: 150px;
    padding-top: 100px;
}

.mission p {
    font-size: 20px;
    line-height: 2em;
    font-weight: 400;
}

.issue-items {
    column-gap: 120px;
}

@media screen and (max-width:1025px) {
    .mission {
        padding-bottom: 100px;
        padding-top: 100.9px;
    }

    .mission p {
        font-size: 18px;
    }
}

@media screen and (max-width:600px) {
    .mission p {
        line-height: 1.77em;
    }
}

/* isuues */
.issues {
    padding: 150px 0 206px;
    background-color: #F8F8F8;
}

.issue-item {
    width: 50%;
}

.issue-item h5 {
    line-height: 1.5em;
}

.issue-item p {
    font-weight: 400;
    font-size: 16px;
}

.issue-item p:not(:last-child) {
    margin-bottom: 40px;
}

@media screen and (max-width:1025px) {
    .issue-items {
        flex-direction: column;
        gap: 50px;
    }

    .issue-item {
        width: 100%;
    }

    .issue-item h5 {
        font-size: 24px;
    }

    .issue-item p {
        font-size: 16px;
    }
}

@media screen and (max-width:600px) {
    .issues {
        padding: 80px 0 80px;
        background-color: #F8F8F8;
    }

    .issue-item p:not(:last-child) {
        margin-bottom: 30px;
    }
}

/* outline */
.outline {
    padding: 150px 0;
    font-size: 20px;
}

@media screen and (max-width:600px) {
    .outline {
        padding: 80px 0;
        font-size: 14px;
    }
}

/* table01 */
#table01 {
    width: 100%;
    font-size: 16px;
}

#table01 tr {
    border-bottom: 1px solid #CBCBCB;
}

#table01 tr:first-child {
    border-top: 1px solid #CBCBCB;
}

#table01 tr.no-line {
    border-bottom: none;
}

#table01 tr.no-line th, 
#table01 tr.no-line td {
    padding-bottom: 0;
}

#table01 th,
#table01 td {
    padding: 38px 20px;
    border: none;
}

#table01 td {
    font-weight: 400;
}

#table01 th {
    width: 170px;
}

.business-details li {
    padding-left: 1em;
    text-indent: -1em;
    line-height: 1.7em;
}

@media only screen and (max-width: 600px) {
    #table01 {
        font-size: 16px;
    }

    #table01 tr:first-child {
        border-top: none;
    }

    #table01 th,
    #table01 td {
        width: 100%;
        display: block;
    }

    #table01 th {
        width: 100%;
        padding: 0;
        margin-top: 16px;
    }

    #table01 td {
        padding: 0;
        margin-top: 16px;
        padding-bottom: 16px;
    }

    #table01 tr {
        display: flex;
        flex-direction: column;
    }
}

/* service */
.solution {
    padding-bottom: 150px;
    padding-top: 160px;
}

.solution {
    margin-top: -80px;
}

.solution:nth-child(even) {
    background-color: #F8F8F8;
}

.solution .container {
    max-width: 1040px;
}

.solution-heading {
    align-items: center;
    background-repeat: no-repeat;
    background-size: 480px;
    background-position-y: center;
}

.solution1-heading {
    background-image: url(/uploads/2026/06/solution1_bg-scaled.jpg);
}

.solution2-heading {
    background-image: url(/uploads/2026/06/solution2_bg.jpg);
}

.solution3-heading {
    background-image: url(/uploads/2026/06/solution3_bg.jpg);
    /* background-position-y: 0; */
}

.solution:nth-child(even) .solution-heading {
    flex-direction: row-reverse;
}

.solution:nth-child(even) .solution-left {
    width: 50%;
}

.solution-heading h4 {
    line-height: 1.5em;
    font-size: 44px;
    margin-top: 32px;
    margin-bottom: 32px;
}

.solution-left {
    z-index: 10;
}

@media screen and (min-width:1025px) {
    .EN.solution-left {
        width: 50%;
    }
}

.solution-right {
    width: 40%;
}

.solution-detail-text {
    font-weight: 400;
}

span.solution-sub-title {
    display: block;
    font-size: 40px;
    font-weight: 700;
    -webkit-text-fill-color: #4CBB84;
    opacity: 1;
    position: relative;
}

.offer-service {
    margin-top: 80px;
}

.offer-service-title {
    font-size: 24px;
}

.offer-service-items {
    margin-top: 40px;
}

.offer-service-item {
    display: flex;
    align-items: center;
    gap: 20px;
    margin-top: 40px;
}

.icon-wrapper {
    width: 100px;
    padding: 8px;
    border-radius: 4px;
}

.solution:nth-child(odd) .offer-service-item .icon-wrapper {
    background-color: #F8F8F8;
}

.solution:nth-child(even) .offer-service-item .icon-wrapper {
    background-color: #fff;

}

.offer-service-item p {
    font-size: 20px;
    line-height: 1.5em;
    flex: 1 1;
}

.solution:nth-child(odd) .solution-heading {
    background-position-x: right;
}

.solution:nth-child(even) .solution-heading {
    /* background-position-x: 50px; */
}

@media screen and (max-width:1025px) {
    .solution {
        padding-bottom: 150px;
        padding-top: 200px;
    }

    .solution {
        margin-top: -80px;
    }

    .solution:nth-child(even) .solution-heading {
        flex-direction: row;
    }

    .solution:nth-child(odd) .solution-heading {
        background-position-x: right;
    }

    .solution:nth-child(even) .solution-heading {
        background-position-x: right;
    }

    .solution:nth-child(even) .solution-left {
        width: auto;
    }

    .solution-heading {
        background-image: none;
        position: relative;
        height: auto;
    }

    .solution-right {
        position: absolute;
        top: -100px;
        right: 0;
        width: 50vw;
    }

    .offer-service-items {
        gap: 25px;
    }

    .EN .solution-sub-title {
        width: 60%;
    }

    span.solution-sub-title::before {
        width: 50px;
    }
}

@media screen and (max-width:600px) {

    .solution {
        padding-top: 230px;
        margin-top: -60px;
    }

    .offer-service-items {
        flex-direction: column;
        gap: 20px;
        margin-top: 20px;
    }

    .solution:nth-child(odd) .offer-service-item {
        background-color: transparent;
    }

    .solution:nth-child(odd) .solution-heading {
        margin-bottom: 0;
    }

    .solution:nth-child(even) .solution-heading {
        margin-bottom: 0;
    }

    .offer-service-item p {
        text-align: left;
        font-size: 14px;
        flex: 1;
    }

    .offer-service {
        margin-top: 40px;
    }

    .offer-service-title {
        font-size: 20px;
    }

    .icon-wrapper {
        width: 80px;
        height: 80px;
    }

    .solution:nth-child(odd) .icon-wrapper {
        background-color: #F8F8F8;
    }

    .solution:nth-child(even) .icon-wrapper {
        background-color: #fff;
    }

    .offer-service-icon {
        object-fit: cover;
    }

    .solution-heading .solution-left .sub-page-section-title {
        margin-bottom: 0;
    }

    .solution-heading h4 {
        margin-top: 18px;
        font-size: 24px;
    }

    .EN .solution-sub-title {
        width: 100%;
    }

    span.solution-sub-title {
        font-size: 32px;
    }


    .solution-right {
        position: absolute;
        top: -160px;
        left: 32vw;
        min-width: 258.14px;
    }
}

/* column */
.children-page .column-items ul {
    padding: 150px 0;
    row-gap: 40px;
}

.children-page .card-img>img {
    height: 200px;
    object-fit: cover;
}

@media screen and (max-width:1025px) {
    .children-page .column-items ul {
        display: flex;
        flex-wrap: wrap;
        padding: 50px 0;
    }

    .children-page .column-items .column-card {
        width: calc(50% - 10px);
    }
}

@media screen and (max-width:700px) {
    .children-page .column-items ul {
        padding: 50px 0;
        row-gap: 40px;
        flex-direction: column;
    }

    .children-page .column-items .column-card {
        width: 100%;
    }
}

/* column-content */
.ly-bg-gray {
    background-color: #ccc;
}

.column-wrapper {
    padding: 100px 0 150px;
}
.column-wrapper .column-margin {
    margin-bottom: 1em;
}
.column-num {
    font-size: 0.6em;
    line-height: 1.5em;
    color: #fff;
}

.column-title {
    font-size: 40px;
    font-weight: 700;
    color: #fff;
    line-height: 1.3em;
    margin-bottom: 20px;
}

.column-date {
    color: #fff;
    opacity: 0.5;
    font-size: 1.5em;
    display: inline-block;
    margin-bottom: 1em;
}

.column-sub-title {
    font-size: 24px;
    line-height: 1.25em;
    margin-top: 3em;
    margin-bottom: 1em;
}
.column-sub-title:first-of-type {
    margin-top: 1em;
} 

.column-detail {
    font-size: 16px;
    line-height: 1.8em;
    letter-spacing: 0.05em;
}

.column-btn {
    margin: 150px auto 0;
}

.column-text {
    margin-top: 50px;
}

.column-note {
    margin-top: 50px;
}

.column-text a,
.column-note a {
    color: #0000ee;
    text-decoration: underline;
    display: inline;
    word-break: break-all;
}

.column-text h4 {
    letter-spacing: 0.05em;
    font-size: 20px;
    margin-top: 2em;
    margin-bottom: 0.5em;
}

.column-text h5 {
    letter-spacing: 0.05em;
    font-size: 18px;
    margin-top: 30px;
    margin-bottom: 5px;
}

.column-content-img {
    width: 80%;
    margin: 50px auto;
}

.column-content-img span {
    font-weight: 500;
}

.column-responsive-table-wrapper,.column-table-wrapper {
    margin: 50px 0;
    font-weight: normal;
}

.column-table-wrapper {
    overflow-x: auto;
}

.column-table-inner {
    min-width: 768px;
}

.column-responsive-table-inner,.column-table-inner {
    margin: 0 auto;
    width: fit-content;
}

.column-responsive-table-wrapper table,.column-table-wrapper table {
    margin: 1em auto;
}

.column-responsive-table-wrapper th,
.column-responsive-table-wrapper td,
.column-table-wrapper th,
.column-table-wrapper td {
    border: solid 1px #000;
    padding: 10px;
    line-height: 1.5em;
}

.column-border-box {
    border: solid;
    width: fit-content;
    padding: 20px;
    margin: 50px auto;
}

.small-note {
    vertical-align: top;
    font-size: 0.4em;
    margin-right: 0.6em;
}

@media screen and (max-width:1025px) {
    .column-wrapper {
        padding: 20px 0 80px;
    }

    .column-page-title::after {
        content: '';
        position: absolute;
        left: 0;
        top: 0;
        z-index: -1;
        width: 100%;
        height: 0;
        background: linear-gradient(to right, #4CBB84, #378A60);
        transform: skewY(-10deg);
        transform-origin: top left;
    }

    .column-title {
        padding-top: 20px;
        padding-left: 16px;
        padding-right: 16px;
        padding-bottom: calc(10vw + 10px);
        position: relative;
        overflow: hidden;
        background: linear-gradient(to right, #4CBB84, #378A60);
    }

    .column-title::before {
        content: '';
        position: absolute;
        bottom: 0;
        left: 0;
        border-bottom: 10vw solid #fff;
        border-left: 100vw solid transparent;
    }

    .column-date {
        font-size: 0.6em;
        margin-bottom: 0;
    }

    .column-btn {
        margin: 80px auto 0;
    }

    .column-content-img {
        width: 100%;
    }

}

@media screen and (max-width:600px) {
    .column-num {
        font-size: 16px;
        line-height: 2em;
        color: #fff;
    }

    .column-title {
        font-size: 24px;
        margin-bottom: 31.5px;
    }

    .column-text {
        margin-top: 0;
        margin-bottom: 20px;
    }

    .column-responsive-table-wrapper table tr {
        display: flex;
        flex-direction: column;
    }
}

/* contact */
.form-container {
    max-width: 1000px;
    margin: 0 auto;
    padding-top: 125.9px;
}

.form-wrapper {
    padding-bottom: 150px;
}

p.contact-text {
    line-height: 1.6em;
    text-align: center;
    margin-bottom: 57px;
}

#contact-form table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0px 50px;
}

#contact-form input:not(#confirm, .submit-btn),
#contact-form textarea {
    border: solid 1px #CBCBCB;
    border-radius: 4px;
    padding: 18px 20px;
    font-weight: 400;
    font-size: 20px;
    line-height: 2em;
}

#contact-form .name td {
    display: flex;
    gap: 20px;
}

#contact-form .name input {
    width: 100%;
}

#contact-form .email input {
    width: 100%;
}

#contact-form .contact-detail textarea {
    width: 100%;
    resize: vertical;
}

#contact-form th {
    width: 300px;
    padding-top: 18px;
    font-size: 20px;
}

#contact-form table tr:not(:last-child) {
    margin-bottom: 50px;
}

#contact-form>.btn {
    margin: 50px auto 0;
}

.require {
    color: #4CBB84;
    border: solid 1px #4CBB84;
    padding: 0 15px;
    margin-right: 10px;
}

.confirm-text {
    font-size: 20px;
    font-weight: 400;
}

.confirm-btn-group {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    column-gap: 64px;
    row-gap: 32px;
    margin-top: 90px;
}

.privacy-agree {
    text-align: center;
}

.privacy-agree label {
    font-weight: 400;
}

a.agree-link {
    text-decoration-line: underline;
}

input[type=checkbox] {
    transform: scale(1.3);
    border-radius: 0;
    margin-right: 10px;
}

button[type="submit"][disabled] {
    background-color: #CBCBCB;
    border-color: #CBCBCB;
    color: #fff;
}

.name-outer {
    width: 50%;
}

label.error {
    display: inline-block;
    font-size: 14px;
    font-weight: 400;
    color: #EB4848;
    margin-top: 10px;
    cursor: default;
}

input.error,
textarea.error {
    border-color: #EB4848 !important;
}

@media screen and (max-width:820px) {
    #contact-form th {
        width: 250px;
    }

    #contact-form th,
    #contact-form td {
        font-size: 16px;
    }

    #contact-form input:not(#confirm, .submit-btn),
    #contact-form textarea {
        font-size: 16px;
        padding: 15px 12px;
    }
}

@media screen and (max-width:600px) {
    .form-wrapper {
        padding-bottom: 80px;
    }

    .form-container {
        padding-top: 50px;
    }

    #contact-form th,
    #contact-form td {
        display: block;
    }

    #contact-form th {
        margin-bottom: 17px;
    }

    #contact-form th span {
        font-size: 12px;
    }

    #contact-form .name td {
        flex-direction: column;
    }

    #contact-form .name td input {
        width: 100%;
    }

    p.contact-text {
        margin-bottom: 0;
    }

    #contact-form.confirm-area .name td {
        flex-direction: row;
    }

    #contact-form th {
        width: 100%;
    }

    .require {
        padding: 0 13px;
    }

    .confirm-btn-group {
        margin-top: 30px;
        flex-direction: column;
        align-items: center;
    }

    .name-outer {
        width: 100%;
    }

    .privacy-agree label {
        font-size: 14px;
    }
}

@media screen and (max-width:375px) {
    .privacy-agree label {
        font-size: 12px;
    }

    input[type=checkbox] {
        transform: scale(1);
        border-radius: 0;
        margin-right: 0;
    }
}

/* complete */
p.complete-text {
    text-align: center;
    font-weight: 700;
    font-size: 32px;
    line-height: 1.5em;
}

.complete-image {
    width: 500px;
    margin: 0 auto 80px;
}

.to-top-btn {
    margin: 0 auto;
}

.nav-items {
    padding: 0;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

@media screen and (max-width:600px) {

    p.complete-text {
        font-size: 20px;
    }

    .complete-image {
        width: 250px;
        margin: 0 auto 80px;
    }
}

/* privacy */
.privacy {
    padding: 100px 0;
}

.privacy p {
    margin-bottom: 0.5em;
}

/* coming-soon */
.coming-soon {
    position: relative;
}

.coming-soon::after {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    background-color: rgba(0, 0, 0, 40%);
    z-index: 10;
    width: 100%;
    height: 100%;
}

.coming-soon::before {
    content: 'Coming Soon';
    font-size: 70px;
    width: 100%;
    text-align: center;
    color: #fff;
    position: absolute;
    z-index: 11;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
}

@media screen and (max-width:1025px) {
    .coming-soon::before {
        font-size: 60px;
    }
}

@media screen and (max-width:600px) {
    .coming-soon::before {
        font-size: 32px;
    }
}
/* --- Readability for articles created via the admin editor (Quill top-level nodes) --- */
.column-text > p { line-height: 2; margin-bottom: 1.1em; }
.column-text > h2 { font-size: 24px; font-weight: 700; margin: 1.8em 0 .6em; line-height: 1.5; }
.column-text > h3 { font-size: 20px; font-weight: 700; margin: 1.5em 0 .5em; line-height: 1.5; }
.column-text > ul, .column-text > ol { margin: 0 0 1.1em; padding-left: 1.6em; }
.column-text > ul { list-style: disc; }
.column-text > ol { list-style: decimal; }
.column-text > ul > li, .column-text > ol > li { margin-bottom: .5em; line-height: 1.9; }
.column-text img { max-width: 100%; height: auto; }
