*{
  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{
  --font-default:"hiragino-mincho-pron",sans-serif;
  --fw-300:300;
  --fw-600:600;
  --hex-background:#FFF;
  --hex-primary:#13151a;
  --hex-neutral:#a3a3a3;
  --hex-highlight:#dc3232;
  --fs-base:clamp(.625rem,.36vi + .54rem,.81rem);
  --lh-base:clamp(1.125rem,1.45vi + .78rem,1.875rem);
  --ls-sm:.05em;
  --ls-base:.125em;
  --ls-md:.155em;
  --ls-lg:.25em;
}
body{
  font-family:var(--font-default);
  font-size:var(--fs-base);
  font-weight:var(--fw-base);
  position:relative;
  background-color:var(--hex-background);
  color:var(--hex-primary);
  -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:var(--lh-base);
  letter-spacing:var(--ls-sm);
}
a{
  display:inline-block;
  color:inherit;
}
a,
a:focus,
a:hover{
  outline:none;
  text-decoration:none;
}
a:hover{
  cursor:pointer;
}
main,
article,
aside,
dialog,
figure,
footer,
header,
hgroup,
nav{
  position:relative;
  display:block;
}
ul,
ol{
  list-style:none;
}
li{
  list-style:none;
}
nav ul{
  list-style:none;
}
figure{
  position:relative;
  display:block;
  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{
  position:relative;
  padding:5rem 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;
}
.pc-hide{
  display:block;
}
.sp-hide{
  display:none;
}
img{
  display:inline-block;
  width:100%;
  height:auto;
}
svg{
  width:100%;
  height:auto;
}
picture{
  display:block;
}
input,
textarea,
select,
button{
  font-size:1rem;
  width:100%;
  padding:0;
  border:none;
  border-radius:0;
  line-height:1.6;
  color:#000;
  background:#fff;
  letter-spacing:.05em;
  -webkit-text-size-adjust:100%;
  -webkit-appearance:none;
  -moz-appearance:none;
  appearance:none;
}
textarea{
  resize:vertical;
  vertical-align:bottom;
}
input[type="submit"],
input[type="reset"],
input[type="button"],
button{
  transition:background 0.3s;
  cursor:pointer;
}
input[type="submit"]:hover,
input[type="reset"]:hover,
input[type="button"]:hover,
button:hover{
  opacity:1;
}
textarea:focus,
input:focus{
  outline:none;
}
.container,
.container-lg,
.flex-container{
  position:relative;
  width:100%;
  margin:0 auto;
  padding:0 1.25rem;
}
.container{
  width:calc(100% - 5rem);
  padding:0;
}
.min-container{
  max-width:60rem;
}
.h2-ttl{
  font-size:clamp(1.375rem,.66vi + 1.22rem,1.75rem);
  letter-spacing:var(--ls-md);
  margin-bottom:2.5rem;
}
.h2-ttl > span:nth-of-type(1){
  position:relative;
  margin-right:2.5rem;
}
.h2-ttl > span:nth-of-type(1)::after{
  content:'';
  position:absolute;
  top:0;
  right:-1.25rem;
  width:.063rem;
  height:100%;
  transform:rotate(25deg);
  background-color:var(--hex-primary);
}
.h2-ttl .sm-txt{
  font-size:.875rem;
}
.primary-btn{
  margin-top:1.25rem;
}
.primary-btn a{
  font-weight:var(--fw-600);
  display:inline-block;
  width:15rem;
  height:3.75rem;
  background-color:var(--hex-primary);
  color:var(--hex-background);
  padding:0 1.25rem;
  line-height:3.75rem;
  letter-spacing:var(--ls-base);
  text-align:center;
}
.footer{
  padding-bottom:.938rem;
}
.p-copyright{
  font-size:var(--fs-base);
  text-align:right;
}
.header{
  position:fixed;
  top:0;
  left:0;
  width:100%;
  padding:1.875rem 0 .938rem 0;
  background-color:var(--hex-background);
  z-index:999;
}
.header h1 a,
.page-navi .logo h1 a{
  font-size:1.563rem;
  font-weight:500;
  letter-spacing:.625rem;
  line-height:1;
}
.header-nav .nav-links{
  letter-spacing:var(--ls-base);
}
.header-nav .nav-list{
  display:flex;
  gap:1.25rem;
}
.header-nav .nav-list li{
  position:relative;
}
.header-nav .nav-list li+li::before{
  content:'';
  position:absolute;
  top:.25rem;
  left:-.625rem;
  width:.063rem;
  height:1rem;
  background-color:var(--hex-primary);
}
.header-nav .nav-links > *+*{
  margin-top:.875rem;
}
.header-nav .nav-links a,
.header-nav .nav-list a{
  font-size:1rem;
  position:relative;
}
.header-nav .nav-list a span{
  position:relative;
  z-index:2;
}
.page-navi{
  margin-top:5rem;
}
.page-navi > div+div{
  margin-top:5rem;
}
.page-navi .logo{
  display:none;
}
.page-navi .header-nav{
  display:none;
  align-items:flex-end;
  justify-content:space-between;
}
.page-navi .sns-link{
  position:relative;
  line-height:0;
  bottom:-.75rem;
}
.page-navi .sns-link a{
  font-size:1rem;
  display:inline-block;
}
.instagram-icon{
  width:clamp(1.625rem,1.21vi + 1.34rem,2.25rem);
}
.header-top{
  display:flex;
  align-items:center;
  justify-content:flex-end;
}
.hamburger-menu{
  width:3.75rem;
  height:2.5rem;
  cursor:pointer;
}
.hamburger-menu > div{
  display:flex;
  align-items:center;
  justify-content:space-around;
  flex-direction:column;
  width:100%;
  height:100%;
}
.hamburger-menu span{
  width:100%;
  height:.063rem;
  background-color:var(--hex-primary);
}
.offscreen-nav{
  position:fixed;
  display:flex;
  flex-wrap:wrap;
  align-items:flex-start;
  top:0;
  left:0;
  width:100vw;
  height:100vh;
  padding:clamp(5.625rem,1.21vi + 5.34rem,6.25rem) clamp(1.25rem,2.42vi + .68rem,2.5rem) clamp(1.25rem,2.42vi + .68rem,2.5rem);
  background:var(--hex-background);
  z-index:2;
  clip-path:polygon(0 0,100% 0,100% 0,0 0);
}
.menu-copy{
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  max-width:82.5rem;
  width:100%;
  height:100%;
  margin:0 auto;
}
.menu-link-item{
  width: max-content;
  clip-path:polygon(0 0,100% 0,100% 100%,0 100%);
}
.menu-link-item+.menu-link-item{
  margin-top:.938rem;
}
.menu-link-item-holder{
  position:relative;
}
.menu-link-item-holder a{
  font-size:clamp(1.375rem,.73vi + 1.2rem,1.75rem);
  color:var(--hex-primary);
  letter-spacing:var(--ls-base);
}
.menu-info{
  display:flex;
  align-items:center;
  justify-content:space-between;
  width:100%;
  margin-top:2.5rem;
  line-height:1;
}
.menu-info-col{
  display:flex;
  gap:1.25rem;
}
.menu-open .hamburger-menu > div{
  justify-content:center;
}
.menu-open .hamburger-menu span{
  position:relative;
  transition:transform .6s ease-in;
}
.menu-open .hamburger-menu span:nth-of-type(1){
  transform:rotate(45deg);
}
.menu-open .hamburger-menu span:nth-of-type(2){
  display:none;
}
.menu-open .hamburger-menu span:nth-of-type(3){
  transform:rotate(-45deg);
}
.footer .flex{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  padding-top:1.875rem;
  border-top:.063rem solid var(--hex-primary);
}
.footer .flex > div > *+*{
  margin-top:.938rem;
}
.footer h5,
.footer p{
  line-height:1;
}
.footer-contact{
  display:flex;
  justify-content:space-between;
}
.custom-visual{
  padding-top:1.25rem;
}
.custom-visual .flex{
  display:flex;
  flex-direction:column;
  gap:1.25rem;
}
.custom-visual__image{
  /* height:540px; */
  aspect-ratio: 16 / 9;
  overflow:hidden;
}
.custom-visual__image img{
  height:100%;
  object-fit:cover;
  object-position:center;
}
.grecaptcha-badge{
  display:none!important;
}
/*-- media query 60rem --*/
@media screen and (min-width: 60rem){
  .pc-hide,
  .header-logo{
    display:none;
  }
  .sp-hide,
  .page-navi .logo{
    display:block;
  }
  .page-navi .header-nav{
    display:flex;
  }
  .custom-visual{
    padding-top:2.5rem;
  }
}
/*-- media query 48rem --*/
@media screen and (max-width:48rem){
  .container{
    width:calc(100% - 2.5rem);
  }
  .header h1 a,
  .page-navi .logo h1 a{
    font-size:1.25rem;
  }
  .header-top{
    flex-direction:row-reverse;
    justify-content:space-between;
  }
  .hamburger-menu{
    width:3.125rem;
  }
  .custom-visual__image{
    /* height:220px; */
    aspect-ratio: 1 / 1;
  }
}
