@charset "utf-8";
/*------------------------------------------------------------
	index
------------------------------------------------------------*/
.mainVisual {
    margin-bottom: 5px;
    padding-bottom: 64px;
    position: relative;
    background-color: #119252;
}
.mainVisual::before {
    width: 6.2%;
    height: 100%;
    position: absolute;
    right: 0;
    top: 0;
    border-left: 5px solid #FFF;
    box-sizing: border-box;
    background: #0e6fa6;
    
    content: "";
}
.mainVisual::after {
    width: 34px;
    height: 34px;
    position: absolute;
    right: calc(6.2% - 18px);
    bottom: -18px;
    border-radius: 50%;
    z-index: 10;
    background-color: #FFF;
    
    content: "";
}
.mainVisual .content {
    position: relative;
}
.mainVisual .content .firstView {
    transition-delay: 2.6s;
}
.mainVisual .content::after {
    width: 137px;
    height: 137px;
    position: absolute;
    right: -137px;
    top: -3px;
    background: url("../img/index/bg02.png") no-repeat center center / 137px 137px;
    background-size: cover;
    
    content: "";
}
@media all and (min-width: 1101px) and (max-width: 1295px) {
    .mainVisual .content::after {
        right: -15%;
    }  
}
@media all and (min-width: 1101px) and (max-width: 1244px) {
    .mainVisual .content::after {
        right: -7%;
    }  
}
.mainVisual .imgSec {
    padding-right: 6.2%;
}
.mainVisual .imgBox {
    margin: -7.25% auto -5px;
    padding-right: 1.6%;
    max-width: 1290px;
    box-sizing: border-box;
}
.mainVisual .imgBox .photo {
    opacity: 0;
    margin-top: 6.4%;
    width: 46.4%;
    position: relative;
    z-index: 1;
    -webkit-transform: translateX(50px);
    transform: translateX(50px);
    transition: all .8s cubic-bezier(0, 0.55, 0.45, 1) 0.8s;
}
.mainVisual.show .imgBox .photo {
    -webkit-transform: translateX(0);
    transform: translateX(0);
    opacity: 1;
}
.mainVisual .imgBox .txtBox {
    margin-right: -15%;
    width: 57.2%;
    position: relative;
}
.mainVisual .imgBox .txtBox > img {
    opacity: 0;
    transition: all 3s cubic-bezier(0, 0.65, 0.35, 1);
}
.mainVisual.show .imgBox .txtBox > img {
    opacity: 1;
}
.mainVisual .imgBox .txtBox h2 {
    width: 240px;
    position: absolute;
    left: 50%;
    top: 50%;
    transition: clip-path 1s ease-out,transform 1s ease-out,-webkit-clip-path 1s ease-out;
    transition-delay: 1.6s;
    -webkit-clip-path: inset(0 100% 0 0);
    clip-path: inset(0 100% 0 0);
    transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);
}
.mainVisual.show .imgBox .txtBox h2 {
    -webkit-clip-path: inset(0 -1% 0 0);
    clip-path: inset(0 -1% 0 0);
}
.mainVisual .scroll {
    margin: -120px 0 0 5%;
    text-align: center;
}
.mainVisual .scroll .scrollImg {
    overflow: hidden;
    display: inline-block;
    position: relative;
}
.mainVisual .scroll .scrollImg:before {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: #FFF;
    content: "";
    z-index: 1;
}
.mainVisual .scroll .scrollImg:after {
    position: absolute;
    left: 0;
    top: -30%;
    width: 100%;
    height: 30%;
    background-color: #E6B831;
    content: "";
    z-index: 2;
    animation: scroll 2s linear infinite;
    -webkit-animation: scroll 2s linear infinite;
}
@keyframes scroll
{
    from {top: -30%;}
    to {top: 100%;}
}

@-webkit-keyframes scroll /*Safari and Chrome*/
{
    from {top: -30%;}
    to {top: 100%;}
}
.mainVisual .scroll img {
    position: relative;
    width: 15px;
    z-index: 3;
}
.mainVisual .scroll .en {
    display: block;
    color: #FFF;
}
.mainVisual p {
    margin-bottom: 22px;
    color: #FFF;
    line-height: 1.8;
}
.mainVisual p:last-of-type {
    margin-bottom: 30px;
}
.mainVisual dl {
    color: #FFF;
    font-size: 1.1rem;
    line-height: 1.8;
}
.mainVisual dt {
    float: left;
}
.mainVisual dd {
    padding: 0 0 0 6rem;
}
.mainVisual .txtList01 {
    margin-bottom: 58px;
}
.mainVisual .txtList01 dd {
    padding-left: 10rem;
}
.mainVisual .phoList {
    margin: 0 auto;
    max-width: 520px;
}
.mainVisual .phoList li {
    width: 180px;
}
.mainVisual .phoList li .photo {
    margin-bottom: 20px;
}
.mainVisual .phoList li .txtBox {
    margin-right: -60px;
}
.mainVisual .phoList li p {
    margin-bottom: 10px;
    font-size: 1.2rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1.45;
}
.mainVisual .phoList li p .lt0 {
    letter-spacing: 0;
}
.mainVisual .phoList li p .sml {
    margin-bottom: 4px;
    display: block;
    font-size: 1.1rem;
    font-weight: 400;
}
.mainVisual .phoList li .name {
    font-size: 1.5rem;
    font-weight: 400;
}
.mainVisual .phoList li .name img {
    margin: 0 -15px 0 8px;
    width: 102px;
    display: inline-block;
    vertical-align: -8px;
}
.mainVisual .phoList li:last-of-type .name img {
    width: 55px;
    vertical-align: -40px;
}
#main .about {
    padding: 68px 0 81px;
    position: relative;
    border-bottom: 7px solid #FFF;
    background-color: #f19601;
}
#main .about::before {
    width: 6.2%;
    height: 100%;
    position: absolute;
    right: 0;
    top: 0;
    border-left: 5px solid #FFF;
    box-sizing: border-box;
    background: #119252;
    
    content: "";
}
#main .about::after {
    width: 34px;
    height: 34px;
    position: absolute;
    right: calc(6.2% - 18px);
    bottom: -18px;
    border-radius: 50%;
    background-color: #FFF;
    
    content: "";
}
#main .about .headLine01 {
    margin-bottom: 49px;
}
#main .about p {
    margin-bottom: 22px;
    color: #FFF;
    line-height: 1.8;
}
#main .about p:last-of-type {
    margin-bottom: 0;
}
#main .business {
    margin-bottom: -30.8%;
    position: relative;
    overflow: hidden;
}
#main .business .inner {
    width: 100%;
    position: absolute;
    left: 0;
    top: 6.7%;
    color: #FFF;
    z-index: 1;
    text-align: center;
}
#main .business .headLine01 {
    margin-bottom: 30px;
}
#main .business .headLine01 span {
    display: inline-block;
}
#main .business .headLine01 .en {
    margin-bottom: -15px;
    display: block;
}
#main .business .cTxt {
    font-size: 1.1rem;
    line-height: 1.75;
}
#main .business .cTxt span {
    display: inline-block;
}
@media all and (min-width: 897px) and (max-width: 1190px) {
    #main .business .inner {
        top: 5%;
    }
    #main .business .cTxt {
        font-size: 1rem;
    }
}
#main .business .map {
    position: relative;
}
#main .business .map img {
    margin-top: -32.35%;
    display: inline-block;
    max-width: inherit;
    width: 100%;
}
#main .business .map svg {
    width: 100%;
}
#main .business .map .add01 {
    width: 10.9%;
    position: absolute;
    left: 17.8%;
    top: 29.3%;
    opacity: 0;
    -webkit-transform: translateY(-50px);
    transform: translateY(-50px);
    transition: all 1.5s cubic-bezier(0.680, -0.550, 0.265, 1.550) 1s;
}
#main .business.on .map .add01 {
    -webkit-transform: translateY(0);
    transform: translateY(0);
    opacity: 1;
}
#main .business .map .add02 {
    width: 10.9%;
    position: absolute;
    left: 29.3%;
    top: 18.4%;
    opacity: 0;
    -webkit-transform: translateY(-50px);
    transform: translateY(-50px);
    transition: all 1.5s cubic-bezier(0.680, -0.550, 0.265, 1.550) 1.8s;
}
#main .business.on .map .add02 {
    -webkit-transform: translateY(0);
    transform: translateY(0);
    opacity: 1;
}
#main .business .map .add03 {
    width: 10.9%;
    position: absolute;
    left: 40.8%;
    top: 25.4%;
    opacity: 0;
    -webkit-transform: translateY(-50px);
    transform: translateY(-50px);
    transition: all 1.5s cubic-bezier(0.680, -0.550, 0.265, 1.550) 1s;
}
#main .business.on .map .add03 {
    -webkit-transform: translateY(0);
    transform: translateY(0);
    opacity: 1;
}
#main .business .map .add04 {
    width: 10.9%;
    position: absolute;
    right: 31.2%;
    top: 29.2%;
    opacity: 0;
    -webkit-transform: translateY(-50px);
    transform: translateY(-50px);
    transition: all 1.5s cubic-bezier(0.680, -0.550, 0.265, 1.550) 2.6s;
}
#main .business.on .map .add04 {
    -webkit-transform: translateY(0);
    transform: translateY(0);
    opacity: 1;
}
#main .business .map .add05 {
    width: 10.9%;
    position: absolute;
    right: 8.2%;
    top: 7.1%;
    opacity: 0;
    -webkit-transform: translateY(-50px);
    transform: translateY(-50px);
    transition: all 1.5s cubic-bezier(0.680, -0.550, 0.265, 1.550) 1s;
}
#main .business.on .map .add05 {
    -webkit-transform: translateY(0);
    transform: translateY(0);
    opacity: 1;
}
#main .business .map .add06 {
    width: 13.8%;
    position: absolute;
    left: 45%;
    bottom: 47.4%;
    opacity: 0;
    -webkit-transform: translateY(-50px);
    transform: translateY(-50px);
    transition: all 1.5s cubic-bezier(0.680, -0.550, 0.265, 1.550) 1.8s;
}
#main .business.on .map .add06 {
    -webkit-transform: translateY(0);
    transform: translateY(0);
    opacity: 1;
}
#main .business .map .add07 {
    width: 10.95%;
    position: absolute;
    left: 42.4%;
    bottom: 30.4%;
    opacity: 0;
    -webkit-transform: translateY(-50px);
    transform: translateY(-50px);
    transition: all 1.5s cubic-bezier(0.680, -0.550, 0.265, 1.550) 2.6s;
}
#main .business.on .map .add07 {
    -webkit-transform: translateY(0);
    transform: translateY(0);
    opacity: 1;
}
#main .line {
    position: relative;
}
#main .line::before {
    width: 6.2%;
    height: 394px;
    position: absolute;
    left: 0;
    bottom: 0;
    z-index: 1;
    box-sizing: border-box;
    border-right: 5px solid #FFF;
    background: #f19601;
    
    content: "";
}
#main .line::after {
    width: 34px;
    height: 34px;
    position: absolute;
    left: calc(6.2% - 18px);
    bottom: 376px;
    z-index: 1;
    border-radius: 50%;
    background: #FFF;
    
    content: "";
}
#main .line .headLine01 {
    margin: 0 auto 135px;
    width: 820px;
    color: #0d6fa5;
    text-align: left;
    line-height: 0.9;
}
#main .line .headLine01 span {
    transition-delay: 4.1s;
    display: inline-block;
}
#main .line .headLine01 .en {
    margin: 0;
    display: inline-block;
}
#main .line .headLine01 .jp {
    margin: -5px 0 0 -15px;
    display: inline-block;
    position: relative;
    left: -46px;
}
#main .line .bgBox {
    margin-bottom: 5px;
    padding-bottom: 12px;
    position: relative;
    background-color: #0e6fa6;
}
#main .line .bgBox::after {
    width: 100%;
    height: 394px;
    position: absolute;
    left: 0;
    bottom: 0;
    z-index: -1;
    background: #0e6fa6;
    
    content: "";
}
#main .line .bgBox ul {
    position: relative;
    top: -86px;
}
#main .line .bgBox li {
    margin-right: 22px;
    padding: 15px 25px 20px;
    width: 258px;
    color: #FFF;
    box-sizing: border-box;
    background-color: #119252;
}
#main .line .bgBox li:nth-child(2) {
    background-color: #d69c17;
}
#main .line .bgBox li:nth-child(3) {
    background-color: #d1383a;
}
#main .line .bgBox li:nth-child(3n) {
    margin-right: 0;
}
#main .line .bgBox li .ttlBox {
    margin-bottom: 16px;
}
#main .line .bgBox li .ttlBox01 {
    margin-right: -12px;
}
#main .line .bgBox li .ttl {
    font-size: 2.9rem;
    font-weight: 900;
    line-height: 1.2;    
    letter-spacing: 0.15em;
}
#main .line .bgBox li:nth-child(3) .ttl {
    margin-top: 8px;
    font-size: 2rem;
    line-height: 1.4;
}
#main .line .bgBox li .ttl .sml {
    margin-top: 5px;
    display: block;
    font-size: 1rem;
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: 0;
}
#main .line .bgBox li .ttlBox .img img {
    height: 76px;
}
#main .line .bgBox li .txt {
    margin-bottom: 11px;
    min-height: 56px;
    font-size: 1.2rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    line-height: 1.55;
}
#main .line .bgBox li .txtList {
    top: auto;
}
#main .line .bgBox li .txtList li {
    margin: 0;
    padding: 0;
    font-size: 1.1rem;
    line-height: 1.55;
    background: none;
}
#main .case {
    margin-bottom: 5px;
    padding: 50px 0 0;
    position: relative;
    background-color: #119252;
}
#main .case::before {
    width: 34px;
    height: 34px;
    position: absolute;
    left: calc(6.2% - 18px);
    top: -18px;
    z-index: 1;
    border-radius: 50%;
    background: #FFF;
    
    content: "";
}
#main .case .content {
    width: 800px;
}
#main .case .headLine01 {
    margin: 0 30px 0 0;
    font-size: 1.3rem;
    text-align: left;
}
#main .case .headLine01 .en {
    margin-bottom: -8px;
    font-size: 5.2rem;
}
#main .case .ttlBox {
    margin-bottom: 68px;
}
#main .case .ttlBox ul {
    margin-top: 15px;
    color: #FFF;
    font-size: 1.1rem;
}
#main .case .ttlBox li {
    margin-bottom: 5px;
    padding-left: 18px;
    position: relative;
}
#main .case .ttlBox li:last-of-type {
    margin-bottom: 0;
}
#main .case .ttlBox li::before {
    width: 15px;
    height: 15px;
    position: absolute;
    left: 0;
    top: 1px;
    border-radius: 50%;
    background: #FFFF00;
    content: "";
}
#main .case .ttlBox li:last-of-type::before {
    background-color: #FFF;
}


#main .case .ttlBox ul.financialList {
    display: flex;
    margin-top: 38px;
    color: #FFF;
    font-size: 1.1rem;
    flex-wrap: nowrap;
    justify-content: space-between;
}
#main .case .ttlBox ul.financialList li {
    margin-right: 30px;
    margin-bottom: 20px;
    padding-left: 18px;
    position: relative;
    color: #FFF;
}
#main .case .ttlBox ul.financialList li:last-of-type {
    margin-bottom: 0;
}
#main .case .ttlBox ul.financialList li::before {
    width: 15px;
    height: 15px;
    position: absolute;
    left: 0;
    top: 1px;
    border-radius: 50%;
    background: #FFF;
    content: "";
}
#main .case .ttlBox ul.financialList li a {
    color: #fff;
    text-decoration: none;
}

#main .case .tabBox {
    color: #FFF;
}
#main .case .lBox {
    width: 80px;
}
#main .case .lBox .ttl {
    margin-bottom: 26px;
    font-size: 1.3rem;
    font-weight: 800;
}
#main .case .lBox p {
    font-size: 1.1rem;
    letter-spacing: 0.1em;
}
#main .case .table {
    width: 720px;
}
#main .case table {
    width: 100%;
    border-collapse: collapse;
}
#main .case th,
#main .case td {
    padding: 0 15px 45px 35px;
    text-align: left;
    font-weight: 400;
    font-size: 1.1rem;
    vertical-align: top;
    box-sizing: border-box;
    border-left: 1px solid #FFF;
}
#main .case th span,
#main .case td span {
    display: block;
}
#main .case thead th,
#main .case thead td {
    padding-bottom: 28px;
    font-weight: 700;
    text-align: center;
    position: relative;
}
#main .case thead th::before,
#main .case thead td::before {
    width: 8px;
    height: 8px;
    position: absolute;
    left: -4px;
    top: -4px;
    border-radius: 50%;
    background-color: #FFF;
    content: "";
}
#main .case th {
    width: 312px;
    font-size: 1.2rem;
    line-height: 1.4;
}
#main .case thead th,
#main .case thead td {
    font-size: 1.3rem;
    letter-spacing: 0.1em;
}
#main .case .wid01 { 
    width: 258px
}
#main .case th .sml {
    margin-top: 3px;
    display: block;
    font-size: 0.7rem;
}
#main .case .trStyle01 th,
#main .case .trStyle01 td {
    color: #ffff00;
    font-size: 1.1rem;
}
#main .case .lastTr th,
#main .case .lastTr td {
    padding-bottom: 22px;
    position: relative;
}
#main .case .lastTr th::before,
#main .case .lastTr td::before {
    width: 8px;
    height: 8px;
    position: absolute;
    left: -4px;
    bottom: -4px;
    border-radius: 50%;
    background-color: #FFF;
    content: "";
}
#main .case .bgBox01 {
    margin: 42px 0;
    padding: 60px 0;
    background-color: #10723f;
}
#main .case .bgBox02 {
    margin-bottom: 0;
    padding-bottom: 108px;
}
#main .case .bgBox03 {
    margin-bottom: 0;
    padding-bottom: 10px;
}
#main .linkSec .blog {
    padding: 28px 20px 46px;
    width: 50%;
    text-align: center;
    box-sizing: border-box;
    background-color: #0e6fa4;
}
#main .linkSec .headLine01 {
    margin-bottom: 20px;
}
#main .linkSec .headLine01 .en {
    margin-bottom: -7px;
    font-size: 5.2rem;
}
#main .linkSec .link {
    margin-bottom: 15px;
}
#main .linkSec .link a {
    color: #FFF;
    font-size: 2.5rem;
}
#main .linkSec ul {
    align-items: center;
}
#main .linkSec li {
    margin-right: 5px;
}
#main .linkSec li:last-of-type {
    margin-right: 0;
}
#main .linkSec li img {
    display: inline-block;
    width: 21px;
    vertical-align: middle;
}
#main .linkSec li:first-child img {
    width: 46px;
}
#main .linkSec .contact {
    padding: 28px 20px 26px;
    width: 50%;
    box-sizing: border-box;
    position: relative;
    color: #FFF;
    text-align: center;
    background-color: #f09401;
}
#main .linkSec .contact::before {
    width: 34px;
    height: 34px;
    position: absolute;
    left: -18px;
    top: -20px;
    border-radius: 50%;
    background: #FFF;
    
    content: "";
}
#main .linkSec .contact::after {
    width: 5px;
    height: 100%;
    position: absolute;
    left: -3px;
    top: 0;
    background-color: #FFF;
    
    content: "";
}
#main .linkSec .contact .headLine01s {
    margin-bottom: 55px;
}
#main .linkSec .contact p {
    display: inline-block;
    text-align: left;
    font-size: 1.3rem;
    line-height: 1.75;
}
#main .linkSec .contact .mail {
    margin: 0 auto;
    width: 324px;
    font-size: 1rem;
    text-align: left;
}
#main .linkSec .contact .mail a {
    margin-right: 5px;
    display: inline-block;
    color: #FFF;
    font-size: 2.5rem;
}
@media all and (min-width: 897px) and (max-width: 1100px) {
    .mainVisual .imgSec {
        margin-bottom: 30px;
        overflow: hidden;
    }
    .mainVisual .imgBox {
       margin: -17.5% -3.5% 0 -19%; 
    }
    .mainVisual::before {
        z-index: 10;
    }
    .mainVisual .imgBox .txtBox {
        width: 64%;
    }
    .mainVisual .imgBox .txtBox h2 {
        padding: 8% 0 0 2.5%;
    }
    .mainVisual .imgBox .photo {
        margin-top: 10%;
        width: 48.8%;
    }
    .mainVisual .content {
        padding-right: 6.2%;
        max-width: 550px;
    }
    .mainVisual .content::after {
        right: -60px;
    }
    .mainVisual p:last-of-type {
        margin-bottom: 22px;
    }
    .mainVisual .phoList li .photo {
        margin-bottom: 8px;
        width: 110px;
    }
    .mainVisual .txtList01 {
        margin-bottom: 53px;
    }
    .mainVisual {
        padding-bottom: 58px;
    }
    #main .about {
        padding-bottom: 120px;
    }
    #main .about .content {
        padding-right: 6.2%;
        max-width: 700px;
    }
    #main .business .inner {
        top: 1.8%;
    }
    #main .business .headLine01 {
        margin-bottom: 15px;
    }
    #main .business .headLine01 .en {
        margin-bottom: -18px;
    }
    #main .business {
        margin-bottom: -36%;
    }
    #main .line .headLine01 {
        margin-bottom: 85px;
        width: 780px;
    }
    #main .line .bgBox ul {
        top: auto;
    }
    #main .line .bgBox {
        padding-bottom: 51px;
    }
    #main .line .bgBox::after {
        height: 480px;
    }
    #main .line::before {
        height: 480px;
    }
    #main .line::after {
        bottom: 465px;
    }
    #main .line .content {
        padding-left: 6.2%;
    }
}
@media all and (max-width: 896px) {
    .mainVisual {
        margin-bottom: 4px;
        padding-bottom: 23px;
    }
    .mainVisual::before {
        width: 34px;
        border-left: 4px solid #FFF;
    }
    .mainVisual::after {
        width: 24px;
        height: 24px;
        right: 20px;
        bottom: -14px;
    }
    .mainVisual .content::after {
        width: 98px;
        height: 98px;
        right: -16px;
        top: 0;
    }
    .mainVisual .imgSec {
        padding-right: 0;
        overflow: hidden;
        position: relative;
    }
    .mainVisual .imgSec::before {
        width: 24px;
        height: 24px;
        position: absolute;
        right: 20px;
        top: 398px;
        z-index: 1;
        border-radius: 50%;
        background: #FFF;
        
        content: "";
    }
    .mainVisual .imgBox {
        margin: 0;
        padding-right: 0;
        max-width: inherit;
        display: block;
    }
    .mainVisual .imgBox .photo {
        margin: -218px auto 0;
        padding-right: 33px;
        width: 256px;
    }
    .mainVisual .imgBox .txtBox {
        width: auto;
        height: 460px;
        position: relative;
    }
    .mainVisual .imgBox .txtBox > img {
        margin-left: -303px;
        width: 547px;
        height: 533px;
        max-width: inherit;
        max-height: inherit;
        position: absolute;
        left: 50%;
        top: -65px;
    }
    .mainVisual .imgBox .txtBox h2 {
        width: 206px;
        left: 75px;
        top: 52px;
        transform: none;
    }
    .mainVisual .scroll {
        margin: -72px 0 38px 33px;
        text-align: left;
    }
    .mainVisual .scroll a {
        display: inline-block;
        font-size: 1.2rem;
        text-align: center;
    }
    .mainVisual .scroll img {
        width: 8px;
    }
    .mainVisual .headLine01 {
        text-align: left;
        position: relative;
        z-index: 1;
    }
    .mainVisual p {
        margin-bottom: 20px;
        line-height: 1.85;
        text-align: justify;
    }
    .mainVisual p:last-of-type {
        margin-bottom: 30px;
    }
    .mainVisual dl {
        margin-bottom: 12px;
        font-size: 1rem;
        line-height: 1.55;
    }
    .mainVisual dt {
        margin-bottom: 2px;
        float: none;
    }
    .mainVisual dd {
        padding: 0;
    }
    .mainVisual .txtList01 {
        margin-bottom: 42px;
    }
    .mainVisual .txtList01 dd {
        padding-left: 0;
    }
    .mainVisual .phoList {
        max-width: inherit;
    }
    .mainVisual .phoList li {
        margin-bottom: 15px;
        width: 100%;
        display: flex;
        justify-content: space-between;
    }
    .mainVisual .phoList li:last-of-type {
        margin-bottom: 0;
    }
    .mainVisual .phoList li .photo {
        margin-bottom: 0;
        width: 100px;
    }
    .mainVisual .phoList li .txtBox {
        margin: -5px 0 0;
        width: calc(100% - 112px);
    }
    .mainVisual .phoList li p {
        margin-bottom: 6px;
        font-size: 1rem;
        line-height: 1.45;
    }
    .mainVisual .phoList li p .sml {
        margin-bottom: 4px;
        font-size: 1rem;
    }
    .mainVisual .phoList li .name {
        font-size: 1.4rem;
        text-align: left;
    }
    .mainVisual .phoList li .name .img {
        margin-top: 2px;
        display: block;
        text-align: right;
    }
    .mainVisual .phoList li .name img {
        margin-top: 0;
        width: 86px;
    }
    .mainVisual .phoList li:last-of-type .name img {
        margin-top: -10px;
        width: 55px;
    }
    #main .about {
        padding: 43px 0 43px;
        border-bottom: 4px solid #FFF;
    }
    #main .about .headLine01 .en {
        margin-bottom: 5px;
    }
    #main .about::before {
        width: 34px;
        border-left: 4px solid #FFF;
    }
    #main .about::after {
        width: 26px;
        height: 26px;
        right: 20px;
        bottom: -14px;
        z-index: 1;
    }
    #main .about .headLine01 {
        margin-bottom: 30px;
    }
    #main .about p {
        margin-bottom: 20px;
        font-size: 1.2rem;
        line-height: 1.85;
        letter-spacing: 0.02em;
    }
    #main .about p:last-of-type {
        margin-bottom: 0;
    }
    #main .business {
        margin-bottom: 7px;
    }
    #main .business .inner {
        top: 39px;
    }
    #main .business .headLine01 {
        margin-bottom: 10px;
    }
    #main .business .headLine01 .en {
        margin-bottom: 5px;
    }
    #main .business .cTxt {
        font-size: 1.1rem;
        line-height: 1.6;
    }
    #main .business .map {
       padding-bottom: 5%; 
    }
    #main .business .map img {
        margin-top: 0;
    }
    #main .business .map .add01 {
        width: 26%;
        left: 0.5%;
        top: 57.5%;
    }
    #main .business .map .add02 {
        width: 26%;
        left: 15%;
        top: 26.5%;
    }
    #main .business .map .add03 {
        width: 26%;
        left: 29.2%;
        top: 44.2%;
    }
    #main .business .map .add04 {
        width: 26%;
        right: 22.5%;
        top: 33.5%;
    }
    #main .business .map .add05 {
        width: 26%;
        right: 3%;
        top: 40%;
    }
    #main .business .map .add06 {
        width: 55%;
        left: 41%;
        bottom: 6%;
    }
    #main .business .map .add07 {
        width: 36%;
        left: 10%;
        bottom: 0;
    }
    #main .line {
        margin-bottom: 4px;
        padding: 12px 0 26px;
        background: #0e6fa6;
    }
    #main .line::before {
        width: 30px;
        height: 100%;
        border-right: 4px solid #FFF;
    }
    #main .line::after {
        width: 24px;
        height: 24px;
        left: 16px;
        bottom: -14px;
    }
    #main .line .headLine01 {
        margin: 0 auto 19px;
        padding: 0 40px 0 65px;
        width: auto;
        position: relative;
        color: #FFF;
        text-align: center;
    }
    #main .line .headLine01::before {
        width: 24px;
        height: 24px;
        position: absolute;
        left: 16px;
        top: -24px;
        z-index: 1;
        border-radius: 50%;
        background: #FFF;
        content: "";
    }
    #main .line .headLine01 .en {
        margin: 0 0 13px;
    }
    #main .line .headLine01 .jp {
        margin: 0;
        left: auto;
    }
    #main .line .bgBox {
        margin-bottom: 5px;
        padding-bottom: 12px;
    }
    #main .line .bgBox .content {
        margin: 0 0 0 59px;
    }
    #main .line .bgBox::after {
        display: none;
    }
    #main .line .bgBox ul {
        top: auto;
        display: block;
    }
    #main .line .bgBox li {
        margin: 0 0 28px;
        padding: 28px 35px 32px;
        width: auto;
    }
    #main .line .bgBox li:last-of-type {
        margin-bottom: 0;
    }
    #main .line .bgBox li .ttlBox {
        margin: 0 -20px 16px 0;
        align-items: center;
    }
    #main .line .bgBox li .ttl {
        font-size: 3rem;
        line-height: 1.1;
    }
    #main .line .bgBox li:nth-child(3) .ttl {
        margin-top: 0;
        font-size: 2.4rem;
        line-height: 1.3;
    }
    #main .line .bgBox li .ttl .sml {
        margin-top: 3px;
        font-size: 1rem;
    }
    #main .line .bgBox li .txt {
        margin-bottom: 8px;
        min-height: inherit;
        font-size: 1.3rem;
        letter-spacing: 0;
        line-height: 1.55;
    }
    #main .line .bgBox li .txtList {
        top: auto;
    }
    #main .line .bgBox li .txtList li {
        margin: 0 0 3px;
        padding: 0;
        font-size: 1.2rem;
    }
    #main .line .bgBox li .txtList li:last-of-type {
        margin-bottom: 0;
    }
    #main .case {
        margin-bottom: 4px;
        padding: 30px 0 0;
    }
    #main .case::before {
        display: none;
    }
    #main .case .content {
        margin: 0;
        width: auto;
    }
    #main .case .headLine01 {
        margin: 0 0 16px;
        font-size: 1.4rem;
        text-align: center;
    }
    #main .case .headLine01 .en {
        margin-bottom: 6px;
        font-size: 3.8rem;
    }
    #main .case .ttlBox {
        margin: 0 20px 65px;
        display: block;
    }
    #main .case .ttlBox ul {
        margin-top: 15px;
        font-size: 1.1rem;
    }
    #main .case .ttlBox li {
        margin-bottom: 12px;
        font-size: 1.2rem;
    }
    #main .case .ttlBox li::before {
        top: 3px;
    }
    #main .case .tabBox {
        display: block;
        border-top: 4px solid #FFF;
        background-color: #10723f;
    }
    #main .case .bgBox03 {
        margin: 0;
        padding-top: 32px;
        padding-bottom: 32px;
        border-top: 4px solid #FFF;
    }
    #main .case .ttlBox ul.financialList {
        margin-bottom: -70px;
    }
    #main .case .ttlBox ul.financialList li {
        margin-right: 0;
        padding-left: 14px;
        font-size: 1.0rem;
    }
    #main .case .ttlBox ul.financialList li::before {
        width: 12px;
        height: 12px;
        position: absolute;
        left: 0;
        top: 1px;
        border-radius: 50%;
        background: #FFF;
        content: "";
    }

    #main .case .lBox {
        width: auto;
    }
    #main .case .lBox .ttl {
        display: none;
    }
    #main .case .lBox p {
        position: relative;
        top: -37px;
        color: #119252;
        font-size: 3.7rem;
        text-align: center;
        font-family: alternate-gothic-no-1-d, sans-serif;
        font-weight: 400;
        font-style: normal;
    }
    #main .case .lBox p span {
        padding-top: 12px;
        display: inline-block;
        width: 74px;
        height: 74px;
        border-radius: 50%;
        letter-spacing: 0.01em;
        box-sizing: border-box;
        background-color: #FFF;
    }
    #main .case .lBox p .pcIn {
        display: none;
    }
    #main .case .table {
        padding: 0 10px 55px;
        width: auto;
    }
    #main .case th,
    #main .case td {
        padding: 0 10px 20px;
        font-weight: 400;
        font-size: 1.1rem;
        line-height: 1.3;
    }
    #main .case thead th,
    #main .case thead td {
        padding-bottom: 25px;
        font-size: 1.2rem;
        text-align: left;
    }
    #main .case th::before {
        display: none;
    }
    #main .case th {
        width: 39%;
        font-size: 1.2rem;
        border-left: none;
    }
    #main .case .wid01 { 
        width: 31%;
    }
    #main .case .lastTr th,
    #main .case .lastTr td {
        padding-bottom: 10px;
    }
    #main .case .bgBox01 {
        margin: 0;
        padding: 0;
        background: none;
    }
    #main .case .bgBox01 .tabBox {
        background-color: #119252;
    }
    #main .case .bgBox02 {
        margin-bottom: 0;
        padding-bottom: 5px;
    }
    #main .linkSec {
        display: block;
    }
    #main .linkSec .blog {
        margin-bottom: 4px;
        padding: 32px 26px 38px 0;
        width: auto;
        position: relative;
    }
    #main .linkSec .blog::before {
        width: 24px;
        height: 24px;
        position: absolute;
        right: 16px;
        top: -14px;
        border-radius: 50%;
        background: #FFF;
        
        content: "";
    }
    #main .linkSec .blog::after {
        width: 4px;
        height: 100%;
        position: absolute;
        right: 26px;
        top: 0;
        background: #FFF;
        
        content: "";
    }
    #main .linkSec .headLine01 {
        margin-bottom: 15px;
        font-size: 1.1rem;
    }
    #main .linkSec .headLine01 .en {
        margin-bottom: 2px;
        font-size: 3.7rem;
    }
    #main .linkSec .link {
        margin-bottom: 12px;
    }
    #main .linkSec .link a {
        font-size: 1.6rem;
    }
    #main .linkSec .contact {
        padding: 40px 50px 30px 30px;
        width: auto;
        text-align: left;
        background: #119252;
    }
    #main .linkSec .contact::before {
        width: 24px;
        height: 24px;
        left: auto;
        right: 16px;
        top: -14px;
        z-index: 1;
    }
    #main .linkSec .contact::after {
        width: 26px;
        height: 100%;
        left: auto;
        right: 0;
        border-left: 4px solid #FFF;
        background: #f19601;
    }
    #main .linkSec .contact .headLine01 {
        margin-bottom: 22px;
    }
    #main .linkSec .contact p {
        margin-bottom: 10px;
        font-size: 1.2rem;
        line-height: 1.75;
    }
    #main .linkSec .contact .mail {
        width: auto;
    }
    #main .linkSec .contact .mail a {
        margin-right: 20px;
        font-size: 2.5rem;
    }
}
@media all and (max-width: 383px) {
    .mainVisual .scroll {
        margin-left: 10px;
    }
    #main .line .bgBox li {
        padding-left: 10px;
    }
    #main .line .bgBox li .ttl {
        width: 80%;
    }
    #main .line .bgBox li .img {
        margin-left: -20%;
    }
    #main .line .bgBox li .ttl .sml {
        font-size: 0.9rem;
    }
}
@media all and (min-width: 897px) and (max-width: 922px) {
    #container {
        overflow: hidden;
    }
}
.centerView .inner {
    transition: clip-path 2s ease-out,transform 2s ease-out,-webkit-clip-path 2s ease-out;
    -webkit-clip-path: inset(0 100% 0 0);
    clip-path: inset(0 100% 0 0);
}
.centerView.on .inner {
    -webkit-clip-path: inset(0 -1% 0 0);
    clip-path: inset(0 -1% 0 0);
}