@charset "UTF-8";

:root{
    --font-gothic:"Noto Sans JP", "メイリオ", "Hiragino Kaku Gothic ProN", sans-serif;
    --font-en:montserrat, arial, sans-serif;
    --color:#000;
    --noscript:2000;
    --dialog:1001;
    --modalbackdrop:1000;
    --dialog-of-inert:999;
}

:lang(en){
    font-family:var(--font-en);
}

.is-focus, :focus:not(:focus-visible){
    outline:0;
}

*, ::before, ::after{
    box-sizing:border-box;
}

html{
    height:100%;
    font-family:var(--font-gothic);
    font-size:0.625em;
    scroll-behavior:smooth;
    -webkit-text-size-adjust:100%;
            text-size-adjust:100%;
}

html::after{
        display:block;
        content:"";
        position:fixed;
        z-index:-1;
        inset:0;
        margin:auto;
        background-color:rgb(0, 0, 0, 0.5);
        visibility:hidden;
        opacity:0;
        transition:visibility 0.3s, opacity 0.3s;
    }

html.is-modal{
        overflow:hidden;
        scroll-behavior:auto;
    }

html.is-modal::after{
            z-index:var(--modalbackdrop);
            visibility:visible;
            opacity:1;
        }

body{
    margin:auto;
    min-width:320px;
    font-size:1.4rem;
    line-height:1.6875;
    color:var(--color);
    background-color:#fff;
}

html.is-modal body{
        overflow:hidden;
    }

main{
    display:block;
}

h1, h2, h3, h4, h5, h6{
    font-size:2rem;
    font-weight:400;
    line-height:inherit;
}

:is(h1,h2,h3,h4,h5,h6):has(.c-media-image){
        line-height:1;
    }

figure, p{
    margin:0;
}

ul, ol{
    padding:0;
    list-style:none;
}

dl dt,dl dd{
        padding:0;
        margin:0;
    }

ul ul, ul ol, ol ol, ol dl, dl ol, dl ul, dl dl{
    margin:0;
}

table{
    border-collapse:collapse;
    border-spacing:0;
}

table th,table td{
        word-break:break-all;
    }

em{
    font-style:normal;
    font-weight:700;
}

strong{
    font-style:normal;
    font-weight:700;
}

small, kbd, samp{
    font-family:inherit;
}

code{
    color:var(--color);
    -webkit-user-select:all;
            user-select:all;
}

abbr[title]{
    -webkit-text-decoration:none;
    text-decoration:none;
}

address{
    font-style:normal;
}

img{
    max-width:100%;
    height:auto;
    border-style:none;
}

summary{
    cursor:pointer;
}

:link, :visited{
    color:var(--color);
    -webkit-text-decoration:underline;
    text-decoration:underline;
}

a{
    word-break:break-all;
}

a:not([href],
[role="button"]){
    cursor:default;
    -webkit-text-decoration:none;
    text-decoration:none;
}

[href^="tel:"]{
    -webkit-text-decoration:none;
    text-decoration:none;
    word-break:break-word;
}

button, input[type="button"], input[type="submit"], input[type="reset"], [role="button"]:not([aria-disabled="true"]), [role="tab"]:not([aria-selected="true"]){
    cursor:pointer;
}

button{
    overflow:visible;
    padding:0;
    border:0;
    margin:auto;
    background:transparent;
    color:inherit;
    font-family:inherit;
    font-size:inherit;
    line-height:inherit;
    word-break:break-all;
}

button:disabled,button[aria-disabled="true"]{
        cursor:default;
    }

::placeholder{
    opacity:1;
}

iframe{
    border:0;
}

p:has(> small){
    font-size:1.2rem;
}

p:has( > small) small{
        font-size:inherit;
    }

:is(.p-regionIntro__inner) > :first-child{
        margin-top:0 !important;
    }

:is(.p-regionIntro__inner) > :last-child{
        margin-bottom:0 !important;
    }

.l-header{
    position:absolute;
    z-index:1;
    left:0;
    right:0;
    padding-inline:20px;
}

.l-header__inner{
    padding-block:20px 10px;
    margin-inline:auto;
    max-width:1280px;
}

.l-header__logo{
    max-width:74px;
}

.p-main-visual{
    position:relative;
    padding-top:70px;
    margin:0;
    overflow:hidden;
}

.p-main-visual__inner{
    position:absolute;
    z-index:1;
    inset:0;
    margin:auto;
    max-width:1400px;
}

.p-main-visual__title, .p-main-visual__businessCard, .p-main-visual__nameplate, .p-main-visual__taisei, .p-main-visual__package{
    position:absolute;
}

:is(.p-main-visual__title,.p-main-visual__businessCard,.p-main-visual__nameplate,.p-main-visual__taisei,.p-main-visual__package) img{
        width:100%;
    }

.p-main-visual__title{
    left:2.13333vw;
    bottom:80.26667vw;
    margin:0;
    width:77.86667vw;
}

.p-main-visual__businessCard{
    left:56.26667vw;
    bottom:74.66667vw;
    width:43.2vw;
}

.p-main-visual__nameplate{
    left:56.53333vw;
    bottom:49.33333vw;
    width:40.53333vw;
}

.p-main-visual__taisei{
    left:-8.53333vw;
    bottom:0;
    width:94.66667vw;
}

.p-main-visual__package{
    left:60.26667vw;
    bottom:12.53333vw;
    width:33.06667vw;
}

.p-main-visual__bg{
    background-color:#003F21;
}

.p-main-visual__bg .c-media-image__viewport{
        display:block;
        overflow:hidden;
    }

.l-main-content{
    position:relative;
    background:url(../img/index_bg_01_sp@2x.jpg) repeat-y 50% 0 / 100% #FEEBBE;
}

.l-main-content__inner{
    position:relative;
    z-index:1;
    padding-top:max(calc(4vw + 20px) , 35px);
    background:url(../img/index_bg_l-main-content_sp@2x.jpg) no-repeat 50% 0 / 100%;
}

.p-regionIntro{
    overflow:hidden;
}

@keyframes main-visual{
  0%{
    opacity:0;
    transform:scale(0);
  }

  80%{
    transform:scale(1.1);
  }

  100%{
    opacity:1;
    transform:scale(1);
  }
}

@keyframes slide-in-from-the-right{
  0%{
    opacity:0;
    transform:translateX(50px);
  }

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

@keyframes scroll-effect{
    from{
        opacity:0;
        transform:translateY(20%);
    }

    to{
        opacity:1;
        transform:translateY(0%);
    }
}

@media (hover: hover){
        :is(:link,:visited):hover{
            -webkit-text-decoration:none;
            text-decoration:none;
        }
        .p-main-visual__linkJa:any-link{
            background-color:#fff;
            filter:drop-shadow(0 0 3px #fff);
            opacity:0;
            transition:opacity 0.5s;
        }

            .p-main-visual__linkJa:any-link:hover{
                opacity:0.4;
            }
}

@media (min-width: 767.02px){
    html{
        height:100%;
        scroll-padding-top:max(8.63071vw, 104px);
    }

    body{
        min-width:1260px;
        font-size:1.6rem;
    }
    p:has(> small){
        font-size:1.4rem;
    }
    .l-header__inner{
        padding-block:10px;
    }

    .l-header__logo{
        max-width:93px;
    }
    .p-main-visual{
        padding-top:195px;
    }

    .p-main-visual__title{
        left:min(1.78571vw, 35px);
        bottom:min(1.64286vw, 23px);
        margin:0;
        width:clamp(560px, 47.14286vw, 760px);
    }

    .p-main-visual__businessCard{
        z-index:2;
        left:clamp(452px, 40.14286vw, 562px);
        bottom:min(-0.64286vw, 9px);
        width:clamp(306px, 29vw, 406px);
    }

    .p-main-visual__nameplate{
        left:auto;
        right:clamp(464px, 31.71429vw, 444px);
        top:min(3.35714vw, 47px);
        width:clamp(300px, 25.14286vw, 300px);
    }

    .p-main-visual__taisei{
        left:auto;
        right:clamp(-116px, -5.64286vw, -65px);
        bottom:0;
        width:max(43.28571vw, 696px);
    }

    .p-main-visual__package{
        display:none !important;
    }
    .l-main-content{
        background-image:url(../img/index_bg_01_pc@2x.jpg);
    }

    .l-main-content__inner{
        padding-top:max(calc(1.42857vw + 48px) , 68px);
        background-image:url(../img/index_bg_l-main-content_pc@2x.jpg);
    }
    .p-regionIntro__inner{
        padding-top:70px;
    }
}

@media (scripting: enabled){
    [href^="#dialog-"]{
        pointer-events:none;
    }
        .js-scrollEffectsOfMainVisual .p-main-visual__title,.js-scrollEffectsOfMainVisual .p-main-visual__businessCard,.js-scrollEffectsOfMainVisual .p-main-visual__bg .c-media-image__image{
            opacity:0;
            transform:scale(0);
            transform-origin:50% 0;
        }

        .js-scrollEffectsOfMainVisual .p-main-visual__nameplate,.js-scrollEffectsOfMainVisual .p-main-visual__taisei,.js-scrollEffectsOfMainVisual .p-main-visual__package{
            opacity:0;
            transform:translateX(50px);
        }
            .js-scrollEffectsOfMainVisual.is-show .p-main-visual__title,.js-scrollEffectsOfMainVisual.is-show .p-main-visual__businessCard,.js-scrollEffectsOfMainVisual.is-show .p-main-visual__bg .c-media-image__image{
                animation:0.5s 0.5s cubic-bezier(0.16, 1, 0.3, 1) forwards main-visual;
            }

            .js-scrollEffectsOfMainVisual.is-show .p-main-visual__nameplate,.js-scrollEffectsOfMainVisual.is-show .p-main-visual__taisei,.js-scrollEffectsOfMainVisual.is-show .p-main-visual__package{
                animation:0.5s 1.2s cubic-bezier(0.33, 1, 0.68, 1) forwards slide-in-from-the-right;
            }

    .js-scrollEffects{
        opacity:0;
    }

        .js-scrollEffects.is-show{
            animation:0.7s 0.3s ease forwards scroll-effect;
        }
}
