*{
    margin:0;
    padding:0;
    -webkit-box-sizing:border-box;
    -moz-box-sizing:border-box;
    box-sizing:border-box;
}
::after,
::before{
    box-sizing:border-box;
}
:root{
    --primary-color:#171717;
    --secondary-color:#F7F7F7;
    --background-color:#FFFFFF;
    --highlight-color:#F3011A;
    --background-alt-color:#C6C6C6;
    --background--alt2-color:#D9DDE0;
    --dark-grey-color:#444444;
    --overlay-bg:rgba(23,23,23,.2);
    --opaque-bg:rgba(255,255,255,.8);
    --box-shadow:rgba(23,23,23,.01) 0 84px 34px,rgba(23,23,23,.04) 0 47px 28px,rgba(23,23,23,.06) 0 21px 21px,rgba(23,23,23,.07) 0 5px 12px,rgba(23,23,23,.07) 0 0 0;
    --noto-sans-jp:"Noto Sans JP",sans-serif;
    --hiragino-mincho-pron:"hiragino-mincho-pron",sans-serif;
    --font-w-regular:400;
    --font-w-medium:500;
    --font-w-semibold:600;
    --font-w-bold:700;
    --font-w-black:900;
    --font-style:normal;
    --fs-sm:clamp(.65rem,.09vi + .68rem,.75rem);
    --fs-base:clamp(.875rem,.22vi + .82rem,1rem);
    --fs-md:clamp(1.125rem,.42vi + .99rem,1.375rem);
    --fs-lg:clamp(1.375rem,.72vi + 1.2rem,1.75rem);
    --fs-xl:clamp(1.75rem,4.86vi + .61rem,4.5rem);
    --fs-xxl:clamp(2.125rem,1.81vi + 1.71rem,3.25rem);
    --fs-xxxl:clamp(2.625rem,2.72vi + 2.03rem,4.25rem);
    --lead-txt:clamp(1rem,.22vi + .95rem,1.13rem);
    --p-lineheight:2.2;
    --border-radius-default:clamp(1.25rem,2.21vi + .73rem,2.5rem);
}
body{
    font-family:var(--noto-sans-jp);
    font-size:var(--fs-base);
    font-weight:var(--font-w-medium);
    position:relative;
    letter-spacing:.055em;
    color:var(--primary-color);
    background-color:var(--background-color);
    font-style:normal;
    -webkit-font-smoothing:antialiased;
    -moz-osx-font-smoothing:grayscale;
    transition:background-color 1s ease;
}
body,
h1,
h2,
h3,
h4,
h5,
h6{
    margin:0;
    outline:none;
    line-height:1.6;
}
p{
    line-height:2.2;
}
a{
    display:inline-block;
    color:inherit;
}
a,a:focus,a:hover{
    outline:none;
    text-decoration:none;
}
a:hover{
    opacity:.7;
    cursor:pointer;
    transition:opacity .4s ease-in-out;
}
main,
article,
aside,
dialog,
figure,
footer,
header,
hgroup,
nav,
section{
    position:relative;
    display:block;
}
ul,ol{
    list-style:none;
}
li{
    list-style:none;
}
nav ul{
    list-style:none;
}
figure{
    position:relative;
    display:block;
    margin-bottom:0;
    line-height:0;
}
figure figcaption{
    line-height:1.6;
}
table{
    width:100%;
}
table th{
    text-align:left;
}
iframe{
    border:none;
}
canvas{
    vertical-align:bottom;
}
blockquote,q{
    quotes:none;
}
blockquote:before,
blockquote:after,
q:before,
q:after{
    content:'';
    content:none;
}
strong{
    font-weight:800;
}
section{
    padding:clamp(4.688rem,8.29vi + 2.75rem,9.375rem) 0;
}
span{
    display:inline-block;
}
button{
    font-family:inherit;
    background:transparent;
    border:0;
    color:inherit;
    cursor:pointer;
    letter-spacing:.06em;
    line-height:1.14;
    outline:0;
    padding:0;
}
img,svg{
    width:100%;
    height:auto;
}
input,
textarea,
select,
button{
    font-size:var(--font-regular);
    appearance:none;
    width:auto;
    padding:0;
    border:none;
    border-radius:0;
    line-height:1.6;
    color:var(--jpp-primary);
    background:var(--jpp-white);
    letter-spacing:.05em;
    -webkit-appearance:none;
    -moz-appearance:none;
    -webkit-text-size-adjust:100%;
}
.container,
.container-lg,
.flex-container{
    position:relative;
    width:100%;
    margin:0 auto;
    padding:0 clamp(1.25rem,1.29vi + .95rem,2.5rem);
}
.container{
    max-width:90rem;
}
.pc-hide{
    display:block;
}
.sp-hide{
    display:none;
}
.p-layout{
    min-height:100vh;
    overflow-x:hidden;
}
.grid{
    display:grid;
}
.flex{
    display:flex;
    flex-direction:column;
}
.img-cover img{
    height:100%;
    object-fit:cover;
    object-position:center;
}
.s-parallax{
    padding:0;
}
.parallax-content{
    position:relative;
    height:50vh;
    overflow:hidden;
}
.s-with-video .parallax-content::after{
    content:'';
    position:absolute;
    display:block;
    width:100%;
    height:100%;
    top:0;
    left:0;
    background:linear-gradient(180deg,rgba(255,255,255,.2) 30%,rgba(255,255,255,.75) 100%);
}
.image{
  height:120%;
  transform:translateY(0);
}
.image img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.s-parallax p{
    font-size:var(--fs-md);
    font-weight:var(--font-w-bold);
    position:absolute;
    right:0;
    bottom:-.938rem;
    left:-.938rem;
    margin:0 auto;
    color:var(--background-color);
    z-index:2;
    line-height:1;
}
.s-parallax p img{
    width:103%;
}
.s-parallax video{
    width:auto;
    height:100%;
}
.s-ttl{
    margin-bottom:clamp(3.125rem,5.52vi + 1.83rem,6.25rem);
}
.s-ttl.color-alt{
    color:var(--background-color);
}
.s-ttl.txt-right{
    text-align:right;
}
.s-ttl h2{
    font-family:var(--hiragino-mincho-pron);
    font-size:clamp(1.375rem,2.21vi + 0.86rem,2.625rem);
    font-weight:var(--font-w-semibold);
    margin-top:1.25rem;
}
.s-ttl p span{
    font-weight:var(--font-w-medium);
    position:relative;
}
.s-ttl p span::before{
    content:'';
    position:relative;
    display:inline-block;
    width:.5rem;
    height:.5rem;
    margin-right:.313rem;
    border-radius:50%;
    background-color:var(--highlight-color);
}
.lead-txt{
    font-size:var(--lead-txt);
    line-height:var(--p-lineheight);
}
/*-- header --*/
.header{
    position:fixed;
    top:0.938rem;
    left:0;
    width:100%;
    z-index:10;
}
.header .flex{
    flex-direction:row;
    align-items:center;
    justify-content:space-between;
}
.header .logo{
    width:clamp(13.125rem,12.15vi + 10.28rem,20rem);
}
.header .navi{
  position:fixed;
  top:.938rem;
  right:1.25rem;
  width:2.5rem;
  height:2.5rem;
  padding:0;
  background-color:var(--opaque-bg);
  border-radius:var(--border-radius-default);
  z-index:99;
  clip-path:circle(0% at 100% 0%);
  transition: width 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94),
              height 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94),
              clip-path 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94),
              padding 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  pointer-events:none;
  overflow:hidden;
}
.navi-open .navi{
  width:15rem;
  height:auto;
  padding:1.25rem 2.5rem 1.25rem 1.25rem;
  clip-path:circle(150% at 90% 10%);
  pointer-events:auto;
  box-shadow:var(--box-shadow);
}
.navi-list{
  display:flex;
  flex-direction:column;
  opacity:0;
  transition:opacity 0.3s ease;
}
.navi-open .navi-list{
  opacity:1;
  transition-delay:0.2s;
}
.navi-list > li{
  opacity:0;
  transform:translateY(0.625rem);
  transition: opacity 0.4s ease-out,
              transform 0.4s ease-out;
}
.navi-list > li + li{
  margin-top:1.25rem;
}
.navi-open .navi-list > li{
  opacity:1;
  transform:translateY(0);
}
.navi-open .navi-list > li:nth-child(1){
  transition-delay:0.25s;
}
.navi-open .navi-list > li:nth-child(2){
  transition-delay:0.28s;
}
.navi-open .navi-list > li:nth-child(3){
  transition-delay:0.31s;
}
.navi-open .navi-list > li:nth-child(4){
  transition-delay:0.34s;
}
.navi-open .navi-list > li:nth-child(5){
  transition-delay:0.37s;
}
.navi-open .navi-list > li:nth-child(6){
  transition-delay: 0.4s;
}
.navi-open .navi-list > li:nth-child(7){
  transition-delay: 0.43s;
}
.navi-list > li a{
    font-weight:var(--font-w-bold);
    position:relative;
}
.navi-list > li a::before{
    content:'';
    position:relative;
    display:inline-block;
    width:.5rem;
    height:.5rem;
    margin-right:.313rem;
    border-radius:50%;
    background-color:var(--highlight-color);
}
.hamburger-menu{
    position:relative;
    display:block;
    width:2.5rem;
    height:2.5rem;
    background-color:var(--opaque-bg);
    border-radius:50%;
    overflow:hidden;
    cursor:pointer;
    z-index:100;
    transition:transform 0.3s ease;
}
.hamburger-menu .--lines{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    width:100%;
    height:100%;
}
.hamburger-menu .--lines .line{
    width:1.375rem;
    height:.125rem;
    background-color:var(--primary-color);
}
.hamburger-menu .--lines .line+.line{
    margin-top:.188rem;
}
.form-content > dl+dl{
    margin-top:1.875rem;
}
.form-content > dl dt{
    font-weight:var(--font-w-bold);
}
.form-content > dl dd{
    margin-top:.938rem;
}
.form-content > dl dt span{
    font-size:var(--fs-sm);
    color:var(--highlight-color);
    margin-left:.625rem;
}
.form-content .notice{
    font-size:.75rem;
    display:block;
    margin-top:.625rem;
}
.form-txt,.form-textarea,
.form-zip input,
.form-select select{
    font-size:1rem;
    width:100%;
    height:3.125rem;
    padding:.75rem .938rem;
    background:var(--secondary-color);
    color:var(--primary-color);
    border-radius:.515rem;
    border:none;
}
.form-txt:placeholder-shown,
.form-textarea:placeholder-shown,
.form-zip input:placeholder-shown,
.form-select select:placeholder-shown{
    color:var(--background-alt-color);
}
.form-txt::-webkit-input-placeholder,
.form-textarea::-webkit-input-placeholder,
.form-zip input::-webkit-input-placeholder,
.form-select select::-webkit-input-placeholder{
    color:var(--background-alt-color);
}
.form-txt:-moz-placeholder,
.form-textarea:-moz-placeholder,
.form-zip input:-moz-placeholder,
.form-select select:-moz-placeholder{
    color:var(--background-alt-color);
}
.form-txt::-moz-placeholder,
.form-textarea::-moz-placeholder,
.form-zip input::-moz-placeholder,
.form-select select::-moz-placeholder{
    color:var(--background-alt-color);
}
.form-txt:-ms-input-placeholder,
.form-textarea:-ms-input-placeholder,
.form-zip input:-ms-input-placeholder,
.form-select select:-ms-input-placeholder{
    color:var(--background-alt-color);
}
.form-textarea{
    height:10rem;
}
.form-btn{
    display:flex;
    justify-content:center;
    gap:.938rem;
    margin-top:clamp(1.875rem,1.29vi + 1.57rem,3.125rem);
    text-align:center;
}
.form-btn button{
    font-size:1rem;
    position:relative;
    text-align:center;
    width:12.5rem;
    height:3.75rem;
    line-height:3.75rem;
    letter-spacing:.105em;
    background:var(--primary-color);
    color:var(--background-color);
    cursor:pointer;
}
.form-agree{
    font-size:.75rem;
    line-height:1.6;
    margin-top:3.125rem;
}
.form-agree .form-agree--content{
    display:flex;
    align-items:center;
    gap:.938rem;
}
.form-agree .form-agree--content span{
    position:relative;
    display:inline-block;
    width:1.25rem;
    height:1.25rem;
    margin-right:.625rem;
}
.form-agree .form-agree--content span label{
    display:inline-block;
    width:1.25rem;
    height:1.25rem;
    cursor:pointer;
}
.form-agree .form-agree--content span label input{
    display:none;
}
.form-agree .form-agree--content span label input:checked + span{
    background:var(--background-alt-color);
    border:.25rem solid var(--primary-color);
}
.form-agree .form-agree--content span label span{
    background:var(--secondary-color);
    text-indent:-62.438rem;
    overflow:hidden;
    border:2px solid var(--primary-color);
    margin:0;
}
.form-agree .form-agree--content a{
    display:contents;
    margin:0 .313rem;
    color:var(--highlight-color);
}
.form-select select:focus-visible{
    outline-color:var(--primary-color);
}
.error{
    font-size:.75rem;
    margin-top:.625rem;
    color:var(--highlight-color);
}
.footer{
    padding:clamp(4.375rem,8.84vi + 2.3rem,9.375rem) 0 2.5rem 0;
}
.footer .flex{
    gap:2.5rem;
}
.footer h2{
    font-size:clamp(1.125rem,1.1vi + .87rem,1.75rem);
    margin-bottom:.938rem;
}
.footer h2 img{
    width:clamp(16.25rem,6.63vi + 14.7rem,20rem);
}
.footer .--address{
    line-height:var(--p-lineheight);
}
.footer .--address a,
.footer .group-c--link a{
    display:flex;
    align-items:center;
    gap:.5rem;
}
.footer .group-c--link a{
    justify-content:center;
}
.footer .--address img,
.footer .group-c--link img{
    width:.938rem;
}
.footer-navi{
    display:flex;
    align-items:center;
    justify-content:center;
    margin-top:clamp(3.125rem,5.52vi + 1.83rem,6.25rem);
}
.footer-navi .footer-navi-list{
    display:none;
}
.swiper-pagination-bullet-active{
    background-color:var(--primary-color);
}
.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet,
.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet{
    margin:0 .313rem;
}
/**-- 2025-10-29 --**/
.wpcf7-form-control-wrap{
    width:100%!important;
}
.form-btn .wpcf7-form-control{
    font-size: 1rem;
    position: relative;
    text-align: center;
    width: 12.5rem;
    height: 3.75rem;
    line-height: 3.75rem;
    letter-spacing: .105em;
    background: var(--primary-color);
    color: var(--background-color);
    cursor: pointer;
}
.footer .--address a{
    text-decoration:underline;
}
.privacy-content{
    height:12.5rem;
    margin-top:1.25rem;
    padding:1.25rem;
    border:.063rem solid var(--dark-grey-color);
    overflow-y:auto;
}
.privacy-content h3{
    margin-bottom:.938rem;
}
.privacy-content h4{
    margin:.938rem 0 .625rem 0;
}
.privacy-content ul{
    margin:.938rem 0 .625rem 0;
}
.privacy-content ul li{
    position:relative;
    padding-left:1.25rem;
}
.privacy-content ul li::before{
    content:'';
    position:absolute;
    width:.313rem;
    height:.313rem;
    top:0;
    bottom:0;
    left:0;
    margin:auto;
    background-color:var(--dark-grey-color);
}
/*-- media query 48rem --*/
@media screen and (min-width:48rem){
    .parallax-content{
        height:80vh;
    }
}
/*-- media query 60rem --*/
@media screen and (min-width:60rem){
    .s-parallax p{
        bottom:-1.875rem;
    }
    .form-content > dl{
        display:flex;
        gap:3.125rem;
    }
    .form-content > dl dt{
        flex-shrink:0;
        width:220px;
    }
    .form-content > dl dd{
        flex-basis:auto;
        width:100%;
        margin-top:0;
    }
    .form-agree .form-agree--content{
        justify-content:center;
    }
    .footer .flex{
        flex-direction:row;
        justify-content:space-between;
    }
    .footer .--address{
        display:flex;
        align-items:center;
        gap:1.25rem;
    }
}
/*-- media query 80rem --*/
@media screen and (min-width:80rem){
    .pc-hide{
        display:none;
    }
    .sp-hide{
        display:block;
    }
    .s-parallax p{
        bottom:-2.5rem;
    }
    .s-parallax video{
        width:100%;
        height:auto;
    }
    .hamburger-menu{
        display:none;
        pointer-events:none;
    }
    .header .navi{
        position:relative;
        top:0;
        right:0;
        width:auto;
        height:auto;
        padding:20px;
        clip-path:none;
        pointer-events:inherit;
        border-radius:0;
    }
    .navi-inner{
        display:flex;
        align-items:center;
        justify-content:center;
        width:100%;
        height:100%;
    }
    .navi-list{
        flex-direction:row;
        align-items:center;
        gap:1.25rem;
        opacity:1;
    }
    .navi-list > li{
        opacity:1;
        transform:none;
    }
    .navi-list > li + li{
        margin-top:0;
    }
    .navi-list > li a{
        font-size:.875rem;
    }
    .navi-list > li a::before{
        content:none;
    }
    .navi-list > li.contact-btn a{
        padding:.625rem .875rem;
        background-color:var(--primary-color);
        color:var(--background-color);
    }
    .footer-navi{
        justify-content:space-between;
    }
    .footer-navi .footer-navi-list{
        display:flex;
        gap:1.25rem;
    }
}
