.s-main--visual{
    padding:0;
}
.main--visual_content{
    position:relative;
    width:100vw;
    height:100svh;
    overflow:hidden;
}
.main--visual_slider{
    position:relative;
    width:100%;
    height:100vh;
}
.main--visual_slider .swiper-slide{
    position:relative;
    display:flex;
    align-items:center;
    justify-content:center;
    overflow:hidden;
}
.main--visual_slider .slide-bg{
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:100%;
    background-size:cover;
    background-position:center;
    transform:scale(1);
}
.main--visual_content .slide-overlay{
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:100%;
    background:linear-gradient(180deg,rgba(255,255,255,.2) 30%,rgba(23,23,23,.75) 100%);
    z-index:1;
}
.progress-container{
    position:absolute;
    bottom:clamp(1.25rem,2.21vi + .73rem,2.5rem);
    left:clamp(1.25rem,2.21vi + .73rem,2.5rem);
    width:clamp(3.75rem,2.21vi + 3.23rem,5rem);
    height:clamp(3.75rem,2.21vi + 3.23rem,5rem);
    cursor:pointer;
    opacity:0;
    z-index:2;
}
.progress-circle{
    width:100%;
    height:100%;
    transform:rotate(-90deg);
}
.progress-circle-bg{
    fill:none;
    stroke:rgba(255,255,255,.2);
    stroke-width:2;
}
.progress-circle-fill{
    fill:none;
    stroke:var(--hex-white);
    stroke-width:2;
    stroke-linecap:round;
    stroke-dasharray:238.76;
    stroke-dashoffset:238.76;
}
.progress-counter{
    font-size:var(--fs-base);
    font-weight:var(--font-w-medium);
    display:flex;
    align-items:center;
    gap:.313rem;
    position:absolute;
    top:50%;
    left:50%;
    transform:translate(-50%,-50%);
    color:var(--hex-white);
    text-align:center;
    line-height:1;
}
.current-slide{
    font-size:clamp(.875rem,.66vi + .72rem,1.25rem);
    font-weight:var(--font-w-bold);
}
.total-slides{
    font-size:var(--fs-sm);
    margin-top:.125rem;
    opacity:.7;
}
.main--visual_content .content-txt{
    position:absolute;
    bottom:30%;
    max-width:clamp(21.25rem,22.1vi + 16.07rem,33.75rem);
    width:100%;
    margin:0 auto;
    color:var(--background-color);
    text-align:center;
    z-index:3;
}
.main--visual_content .content-txt h1{
    font-family:var(--nippon-m-font);
    font-size:var(--font-lg);
    font-weight:var(--font-w-md);
    margin-bottom:.625rem;
    letter-spacing:.125em;
}
.main--visual_content .content-txt p+p{
    margin-top:1.25rem;
}
.main--visual_slider .swiper-pagination{
    padding-right:.938rem;
    text-align:center;
}
.main--visual_slider .swiper-pagination-bullet{
    width:.625rem;
    height:.625rem;
    border-radius:0;
    background:rgba(255,255,255,.8);
}
.main--visual_slider .swiper-pagination-bullet-active{
    background-color:var(--secondary-color);
}
.about-section{
    position:relative;
    padding:0;
    overflow:hidden;
}
.about-section::after{
    content:'';
    position:absolute;
    display:block;
    width:100%;
    height:100%;
    top:0;
    right:0;
    bottom:0;
    left:0;
    background-color:rgba(29,35,33,.95);
    z-index:2;
}
.slider-mirror--image {
    position:absolute;
    top:0;
    right:0;
    bottom:0;
    left:0;
    width:100%;
    height:100%;
    background-size:cover;
    background-position:center;
    background-repeat:no-repeat;
    transition:opacity 0.3s ease;
    transform:rotate(180deg) scale(1.09);
    z-index:1;
}
.about-section .container{
    height:100%;
}
.about-section .content{
    position:relative;
    min-height:100dvh;
    padding:6.25rem 0;
    z-index:3;
}
.about-section .h2-ttl{
    margin-bottom:var(--margin-base);
}
.about-section .flex{
    flex-direction:column-reverse;
    gap:1.563rem;
}
.lang-jp .about-section .content-txt .en-content{
    display:none;
}
.about-section .statement-txt p+p{
    margin-top:1.563rem;
}
/*-- Mobile responsiveness --*/
@media (max-width:48rem) {
    .contactform-modal .--inner{
        margin:1rem;
        padding:1.5rem;
    }
}
/*-- media query min75rem --*/
@media screen and (min-width:75rem){
    .about-section .content{
        display:flex;
        flex-direction:column;
        justify-content:center;
    }
    .about-section .flex{
        flex-direction:row;
        justify-content:space-between;
    }
    .statement-txt{
        width:35rem;
    }
}