abbr,address,article,aside,audio,b,blockquote,body,caption,cite,code,dd,del,dfn,dialog,div,dl,dt,em,fieldset,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,p,pre,q,samp,section,small,span,strong,sub,sup,table,tbody,td,tfoot,th,thead,time,tr,ul,var,video {
    margin: 0;
    padding: 0;
    border: 0;
    outline: 0;
    font-size: 100%;
    vertical-align: top;
    background: 0 0
}

body {
    line-height: 1
}

article,aside,dialog,figure,footer,header,hgroup,nav,section {
    display: block
}

ul {
    list-style: none
}

blockquote,q {
    quotes: none
}

blockquote:after,blockquote:before,q:after,q:before {
    content: "";
    content: none
}

a {
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    vertical-align: baseline;
    background: 0 0
}

del {
    text-decoration: line-through
}

abbr[title],dfn[title] {
    border-bottom: 1px dotted #000;
    cursor: help
}

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

hr {
    display: block;
    height: 1px;
    border: 0;
    border-top: 1px solid #ccc;
    margin: 1em 0;
    padding: 0
}

input,select {
    vertical-align: middle
}

* {
    padding: 0;
    margin: 0;
    border: 0;
    vertical-align: top
}

::after,::before {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    line-height: 1
}

@media screen and (max-width: 767px) {
    html {
        font-size:1.3333333333vw
    }
}

@media screen and (min-width: 768px) {
    html {
        scroll-behavior:smooth
    }
}

body {
    font-size: max(1.6rem,11px);
    font-family: "Noto Sans JP","Yu Gothic Medium","Yu Gothic","Hiragino Kaku Gothic ProN","Hiragino Sans",Verdana,Meiryo,sans-serif;
    color: #333;
    background: #fff;
    padding: 0;
    margin: 0;
    width: 100%;
    line-height: 1.7;
    word-break: none;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
    letter-spacing: .04em
}

@media screen and (max-width: 767px) {
    body {
        font-size:4.1025641026vw
    }
}

body.hidden {
    overflow: hidden
}

picture {
    display: block
}

a {
    position: relative;
    color: #333;
    text-decoration: none;
    border: none;
    transition: .6s cubic-bezier(.19,1,.22,1)
}

a.hv:hover {
    opacity: .4
}

a.underline {
    border-bottom: 1px solid #333
}

@media screen and (min-width: 768px) {
    a.underline::before {
        position:absolute;
        content: "";
        border-bottom: 1px solid;
        bottom: -1px;
        left: 0;
        width: 0;
        height: 0;
        transition: .4s cubic-bezier(.075,.82,.165,1)
    }
}

img {
    width: 100%;
    height: auto
}

header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 8rem;
    transition: 1s cubic-bezier(.19,1,.22,1);
    backdrop-filter: blur(78px);
    -webkit-backdrop-filter: blur(78px);
    background: rgba(255,255,255,.1);
    display: flex;
    align-items: center;
    justify-content: space-between;
    z-index: 10;
    padding: 0 3.3rem;
    box-sizing: border-box
}

@media screen and (max-width: 767px) {
    header {
        height:20.5128205128vw;
        padding: 0 5.12vw
    }
}

header .logo {
    position: relative;
    width: 28rem;
    display: flex;
    align-items: center;
    margin-top: -1rem;
}

header .logo img {
    mix-blend-mode:difference;
}

@media screen and (max-width: 767px) {
    header .logo {
        width:44vw;
        height: auto;
    }
}

footer {
    position: relative;
    background: #333;
    padding: 7rem 0;
    color: #fff
}

@media screen and (max-width: 767px) {
    footer {
        padding:15.3846153846vw 0
    }
}

footer .inner {
    position: relative;
    max-width: 1600px;
    width: 90%;
    margin-inline:auto}

@media screen and (max-width: 767px) {
    footer .inner {
        width:calc(100% - 10.24vw)
    }
}

footer .footer_contetnts {
    position: relative;
    display: flex;
    justify-content: space-between
}

@media screen and (max-width: 767px) {
    footer .footer_contetnts {
        display:block
    }
}

footer .footer_content {
    position: relative;
}

@media screen and (max-width: 767px) {
    footer .footer_content {
        width:100%
    }
}

footer .footer_content._address .logo {
    width: 28rem;
    margin-bottom: 2.8rem
}

@media screen and (max-width: 767px) {
    footer .footer_content._address .logo {
        width:59.2307692308vw;
        margin-bottom: 7.1794871795vw
    }
}

footer .footer_content._address .address {
    font-size: 1.4rem;
    letter-spacing: .08em
}

@media screen and (max-width: 767px) {
    footer .footer_content._address .address {
        font-size:3.5897435897vw
    }
}

footer .footer_content._address a {
    color: #fff;
    display: inline-block;
    margin-right: 1rem
}

footer .footer_content._nav ul {
    display: flex;
    justify-content: flex-end;
    gap: 3.8rem
}

@media screen and (max-width: 767px) {
    footer .footer_content._nav ul {
        margin:8.2051282051vw 0;
        display: block
    }
}

@media screen and (max-width: 767px) {
    footer .footer_content._nav ul li {
        margin:2.5641025641vw 0
    }
}

footer .footer_content._nav ul a {
    letter-spacing: .08em;
    color: #fff;
    font-weight: 500
}

footer .footer_content._nav .sns {
    display: flex;
    justify-content: flex-end;
    gap: 1.6rem;
    margin-top: 3.6rem
}

@media screen and (max-width: 767px) {
    footer .footer_content._nav .sns {
        gap:4.1025641026vw;
        justify-content: flex-start;
        margin-top: 8.2051282051vw
    }
}

footer .footer_content._nav .sns p {
    position: relative;
    font-size: 1.4rem;
    top: .4rem
}

@media screen and (max-width: 767px) {
    footer .footer_content._nav .sns p {
        font-size:3.5897435897vw;
        top: 1.5384615385vw
    }
}

footer .footer_content._nav .sns img {
    position: relative;
    display: inline-block;
    height: 2.2rem;
    width: 2.2rem;
    vertical-align: middle
}

@media screen and (max-width: 767px) {
    footer .footer_content._nav .sns img {
        width:5.641025641vw;
        height: 5.641025641vw;
        top: 0
    }
}

footer .copy {
    font-size: 1.2rem;
    margin-top: 7.2rem
}

@media screen and (max-width: 767px) {
    footer .copy {
        font-size:3.0769230769vw;
        margin-top: 15.3846153846vw
    }
}

footer .to_top {
    position: absolute;
    right: 0;
    bottom: 0;
    display: flex;
    align-items: center;
    background: linear-gradient(to right, #26533D, #4A916E);
    border-radius: 50%;
    width: 5rem;
    height: 5rem
}

@media screen and (max-width: 767px) {
    footer .to_top {
        width:12.8205128205vw;
        height: 12.8205128205vw;
        bottom: 23.0769230769vw
    }
}

footer .to_top::before {
    position: absolute;
    content: "";
    background: url(../images/ico_arrow.svg) no-repeat center center/100%;
    width: 1.6rem;
    height: 1.6rem;
    top: 50%;
    left: 50%;
    transition: .6s cubic-bezier(.19,1,.22,1);
    translate: -50% -50%;
    z-index: 2;
    rotate: -90deg;
    filter: brightness(0) invert(1)
}

@media screen and (max-width: 767px) {
    footer .to_top::before {
        width:4.1025641026vw;
        height: 3.0769230769vw;
        right: 3.8461538462vw
    }
    footer .to_top:active {
        background: #0C4691;
    }
    footer .to_top:active::before {
        filter: brightness(0) invert(1)
    }
}

@media screen and (min-width: 768px) {
    footer .to_top:hover {
        background-color: #fff
    }
    
    footer .to_top:hover::before {
        filter: brightness(1) invert(0)
    }
}

/*reCAPTHAマーク設定*/
.grecaptcha-badge { visibility: hidden; }
p.recapcha-text { font-size: 11px; text-align: center;}
.top .contact_content .policy_contents p.recapcha-text {
	display: inline-block;
	text-align: left;
}
