/* 1336pxの場合　フォントサイズ以外
 min(1rem,calc(10vw/13.66)) */

main {
 overflow: hidden;
}
/*                       header                        */

header {
 position: fixed;
 top: 0;
 left: 0;
 width: 100%;
 z-index: 99;
 transition: .4s;
}
header.show {
 background-color: #fff;
}
.hd_inner {
 padding: min(3rem, calc(30vw / 13.66)) min(4rem, calc(40vw / 13.66));
}
.hd_flex {
 display: flex;
 justify-content: space-between;
 align-items: center;
 position: relative;
 z-index: 15;
}
.logo {
 width: min(23.8rem, calc(238vw / 13.66));
}
@media (hover: hover) and (pointer: fine) {
 .logo a:where(:any-link, :enabled, summary):hover {
  opacity: 0.7;
 }
}
.hd_menu {
 width: min(97rem, calc(970vw / 13.66));
 display: flex;
 justify-content: space-between;
 align-items: center;
}
.hd_list {
 width: min(57.5rem, calc(575vw / 13.66));
 display: flex;
 justify-content: space-between;
 align-items: center;
}
.hd_list a {
 font-size: 1.4rem;
 color: #333333;
 font-weight: 600;
 letter-spacing: 0.08em;
 position: relative;
 display: block;
}
.hd_list a::before {
 content: "";
 width: 100%;
 border: min(0.1rem, calc(1vw / 13.66)) solid #333333;
 border-radius: min(1rem, calc(10vw / 13.66));
 position: absolute;
 bottom: 0;
 left: 0;
 transform-origin: center;
 transform: scale(0, 1);
 transition: 0.4s;
}
.hd_btn {
 width: min(38rem, calc(380vw / 13.66));
 display: flex;
 justify-content: space-between;
}
.hd_btn a {
 width: min(12rem, calc(120vw / 13.66));
 display: block;
 background-color: #000000;
 font-size: 1.2rem;
 font-weight: 600;
 line-height: 1.25;
 letter-spacing: 0.02em;
 color: #fff;
 border-radius: min(2rem, calc(20vw / 13.66));
 display: flex;
 align-items: center;
 justify-content: center;
 padding: min(0.3rem, calc(3vw / 13.66)) 0;
 border: min(0.2rem, calc(2vw / 13.66)) solid #000;
 box-sizing: border-box;
}

@media (hover: hover) and (pointer: fine) {
 .hd_btn a:where(:any-link, :enabled, summary):hover {
  color: #000;
  background-color: #fff;
 }
 .hd_list a:where(:any-link, :enabled, summary):hover::before {
  transform: scale(1);
 }
}

.nav {
 display: none;
}

@media screen and (max-width: 767px) {

.hd_inner {
 padding: 1.5rem 2rem;
}
.logo {
 width:13.3rem;
}
.hd_menu {
 display: none;
}
.nav_btn{
 width: 3rem;
 padding: .9rem 0;
 position: relative;
 box-sizing: border-box;
}
.nav_btn span{
 display: block;
 width: 100%;
 border: .1rem solid #000000;
 transition: .4s;
 box-sizing: border-box;
}
.nav_btn.open span {
 opacity: 0;
}
.nav_btn::before,
.nav_btn::after{
 content: '';
 width: 100%;
 border: .1rem solid #000000;
 transition: .4s;
 position: absolute;
 left: 0;
 box-sizing: border-box;
}
.nav_btn::before {
 top: 0;
}
.nav_btn::after {
 bottom: 0;
}
.nav_btn.open::before {
 top: .9rem;
 transform: rotate(135deg);
}
.nav_btn.open::after {
 bottom: .9rem;
 transform: rotate(-135deg);
}

.nav {
 position: fixed;
 top: 0;
 left: 0;
 width: 100%;
 height: 100vh;
 height: 100dvh;
 z-index: 10;
 background-color: #fff;
 box-sizing: border-box;
 padding: 11rem 0 0;
 /* overflow: scroll; */
}
.nav_bg {
 position: fixed;
 top: 0;
 left: 0;
height: 100%;
width: 100%;
}
.nav_inner {
 position: relative;
 z-index: 1;
 width: 100%;
 height: 100%;
 margin: 0 auto 0;
 overflow: scroll;
 box-sizing: border-box;
 padding-bottom: 5rem;
}
.nav_menu ul {
 width: 31rem;
 margin: 0 auto;
 border-bottom: #ff3222 solid .1rem;
 padding: 1.5rem 0;
}
.nav_menu ul a{
 font-size: 1.2rem;
 color: #ff3222;
 font-weight: 600;
 display: flex;
 align-items: center;
 width: 100%;
 text-align: left;
 letter-spacing: 0.06em;
}
.nav_menu ul li:first-of-type a{
 font-size: 1.4rem;
 margin-bottom: 0.5rem;
}
.nav_menu ul .nav_menu_btn {
 font-size: 1.2rem;
 background-color: #ff3222;
 display: flex;
 align-items: center;
 justify-content: center;
 color: #fff;
 padding: 0.8rem 0;
 margin-top: 1rem;
 gap: 0 1rem;
}
.nav_menu ul .nav_menu_btn::after {
 content: '';
 width: 1.9rem;
 height: 1.2rem;
 background: url(../images/common/blank_icon.svg) no-repeat;
 background-size: cover;
}
.nav_menu ul li a.nav_menu_btn {
 font-size: 1.2rem;
}
.nav_menu ul li a.no_link {
pointer-events: none;
opacity: .5;
}


.nav_menu ul:nth-of-type(2) li a:after {
 content: '';
 width: 1.9rem;
 height: 1.2rem;
 background: url(../images/common/blank_icon_hover.svg) no-repeat;
 background-size: cover;
 margin-left: 1rem;
}
.nav_menu ul:nth-of-type(2) li:first-of-type a::after{
 content: none;
}

}




/*                       content                        */
.btn {
 width: min(41.4rem, calc(414vw / 13.66));
 position: relative;
}
.btn::before {
 content: "";
 width: 100%;
 height: 100%;
 background: #fff;
 box-sizing: border-box;
 border: min(0.1rem, calc(1vw / 13.66)) solid #3f3f3f;
 border-radius: min(4.4rem, calc(44vw / 13.66));
 position: absolute;
 top: min(0.4rem, calc(4vw / 13.66));
 left: min(0.4rem, calc(4vw / 13.66));
}
.btn a {
 border-radius: min(4.4rem, calc(44vw / 13.66));
 display: block;
 width: 100%;
 background-color: #3f3f3f;
 text-align: center;
 color: #fff;
 font-size: 1.7rem;
 font-weight: 600;
 letter-spacing: 0.12em;
 padding: min(2.7rem, calc(27vw / 13.66)) 0;
 position: relative;
 z-index: 1;
}
.btn a::before {
 content: "";
 width: min(2.2rem, calc(22vw / 13.66));
 height: min(2.6rem, calc(26vw / 13.66));
 background: url(../images/common/arrow_icon.svg) no-repeat;
 background-size: cover;
 transform: scale(-1, 1) translateY(-50%);
 position: absolute;
 top: 50%;
 right: min(3rem, calc(30vw / 13.66));
 transition: 0.4s;
}
.btn.blank a::before {
 width: min(2.5rem, calc(25vw / 13.66));
 height: min(1.6rem, calc(16vw / 13.66));
 background: url(../images/common/blank_icon.svg) no-repeat;
 background-size: cover;
 transform: translateY(-50%);
}

@media (hover: hover) and (pointer: fine) {
 .btn a:where(:any-link, :enabled, summary):hover {
  transform: translate(min(0.4rem, calc(4vw / 13.66)), min(0.4rem, calc(4vw / 13.66)));
 }
 .btn a:where(:any-link, :enabled, summary):hover::before {
  right: min(2rem, calc(20vw / 13.66));
 }
 .btn.blank a:where(:any-link, :enabled, summary):hover::before {
  right: min(3rem, calc(30vw / 13.66));
 }
}

@media screen and (max-width: 767px) {
.btn {
 width: 33.5rem;
}
.btn::before {
 border:.1rem solid #3f3f3f;
 border-radius:2.7rem;
 position: absolute;
 top: .3rem;
 left: .3rem;
}
.btn a {
 border-radius: 2.7rem;
 font-size: 1.4rem;
 padding:1.5rem 0;
}
.btn a::before {
 width: 1.7rem;
 height:2.1rem;
 right:2.5rem;
}
.btn.blank a::before {
 width: 2rem;
 height:1.3rem;
}
@media (hover: hover) and (pointer: fine) {

 .btn a:where(:any-link, :enabled, summary):hover::before {
  right:2.5rem;
 }
 .btn.blank a:where(:any-link, :enabled, summary):hover::before {
  right:2.5rem;
 }
}
}


/*                       footer                        */
footer {
 position: relative;
 z-index: 1;
}
.footer_inner {
 background-color: #ff3222;
 padding:  min(11rem, calc(110vw / 13.66)) 0 0;
 position: relative;
}
.footer_inner::after {
 content: "";
 width: 100%;
 height: min(12rem, calc(120vw / 13.66));
 background: url(../images/common/wave_footer.svg) repeat-x;
 position: absolute;
 top: max(-6rem, calc(-60vw / 13.66));
 left: 0;
}
.footer_flex {
 width: min(125.5rem, calc(1255vw / 13.66));
 margin: 0 auto;
 display: flex;
 justify-content: space-between;
}
.footer_menu {
 text-align: left;
}
.footer_menu a {
 color: #fff;
 font-size: 1.4rem;
 font-weight: 500;
 letter-spacing: 0.09em;
 position: relative;
 display: inline-block;
}
.footer_menu a::before {
 content: '';
 width: 100%;
 border: #fff solid min(.1rem, calc(1vw / 13.66));
 position: absolute;
 left: 0;
 bottom: 0;
 transition: .4s;
 transform: scale(0,1);
}
@media (hover: hover) and (pointer: fine) {
 .footer_menu a:where(:any-link, :enabled, summary):hover::before {
  transform: scale(1);
 }
}
.footer_menu li:first-of-type a {
 font-size: 1.5rem;
 font-weight: 600;
}
.footer_menu:first-of-type li:not(:first-of-type) a::after {
 content: '';
  width: min(1.6rem, calc(16vw / 13.66));
  height: min(1rem, calc(10vw / 13.66));
  background: url(../images/common/blank_icon.svg) no-repeat;
  background-size: cover;
  position: absolute;
  top: 50% ;
  transform: translateY(-50%);
  right: max(-2rem, calc(-20vw / 13.66));
}
.footer_btn {
 width: min(20.7rem, calc(207vw / 13.66));
 margin-top: min(1rem, calc(10vw / 13.66));
}
.footer_btn a{
 display: block;
 width: 100%;
 font-size: 1.2rem;
 color: #ff3222;
 background-color: #fff;
 text-align: center;
 font-weight: 600;
 line-height: 2.3;
 display: flex;
 align-items: center;
 justify-content: center;
 gap:  0 min(.5rem, calc(5vw / 13.66));
 box-sizing: border-box;
 border: min(.2rem, calc(2vw / 13.66)) solid #fff;
}
.footer_btn a span {
 content: '';
  width: min(1.6rem, calc(16vw / 13.66));
  height: min(1rem, calc(10vw / 13.66));
  background: url(../images/common/blank_icon_hover.svg) no-repeat;
  background-size: cover;
  position: relative;
}
.footer_btn a span::before {
 content: '';
  width: min(1.6rem, calc(16vw / 13.66));
  height: min(1rem, calc(10vw / 13.66));
  background: url(../images/common/blank_icon.svg) no-repeat;
  background-size: cover;
  position: absolute;
  top: 0;left: 0;
  transition: .4s;
  opacity: 0;
}
.footer_btn a::before {
 content: none;
}
@media (hover: hover) and (pointer: fine) {
 .footer_btn a:where(:any-link, :enabled, summary):hover {
  color: #fff;
  background-color: #ff3222;
 }
 .footer_btn a:where(:any-link, :enabled, summary):hover span::before {
  opacity: 1;
 }
}

.footer_menu_detail {
  width: min(30rem, calc(300vw / 13.66));
  display: flex;
  justify-content: space-between;
  align-self: center;
}
.footer_menu_detail ul {
 border-left: #d1d1d1 solid  min(.1rem, calc(1vw / 13.66));
 padding-left:  min(2rem, calc(20vw / 13.66));
 text-align: left;
 padding-bottom: min(4rem, calc(40vw / 13.66));
}
.footer_menu_detail ul a {
 font-size: 1.4rem;
 font-weight: 600;
 color: #fff;
 position: relative;
}
.footer_menu_detail a::before {
 content: '';
 width: 100%;
 border: #fff solid min(.1rem, calc(1vw / 13.66));
 position: absolute;
 left: 0;
 bottom: 0;
 transition: .4s;
 transform: scale(0,1);
}
@media (hover: hover) and (pointer: fine) {
 .footer_menu_detail a:where(:any-link, :enabled, summary):hover::before {
  transform: scale(1);
 }
}
.footer_menu_other {
 width: min(125.5rem, calc(1255vw / 13.66));
 display: flex;
 justify-content: flex-end;
 align-items: center;
 gap: 0 min(3rem, calc(30vw / 13.66));
 margin: min(6rem, calc(60vw / 13.66)) auto min(3rem, calc(30vw / 13.66));
}
.footer_menu_other a {
 font-size: 1.4rem;
 font-weight: 500;
 letter-spacing: 0.09em;
 color: #fff;
 display: flex;
 align-items: center;
 gap: 0 min(.8rem, calc(8vw / 13.66));
 position: relative;
}

.footer_menu_other a::after {
 content: '';
  width: min(2.6rem, calc(26vw / 13.66));
  height: min(1.6rem, calc(16vw / 13.66));
  background: url(../images/common/blank_icon.svg) no-repeat;
  background-size: cover;
}
.footer_menu_other a::before {
 content: '';
 width: 100%;
 border: #fff solid min(.1rem, calc(1vw / 13.66));
 position: absolute;
 left: 0;
 bottom: 0;
 transition: .4s;
 transform: scale(0,1);
}
@media (hover: hover) and (pointer: fine) {
 .footer_menu_other a:where(:any-link, :enabled, summary):hover::before {
  transform: scale(1);
 }
}
.footer_bottom {
 background-color: #fff;
 padding:  min(1.5rem, calc(15vw / 13.66)) min(4rem, calc(40vw / 13.66));
 display: flex;
 justify-content: space-between;
 align-items: center;
}

.footer_logo {
 width:  min(35.5rem, calc(355vw / 13.66));
 display: flex;
 justify-content: space-between;
 align-items: center;
}
.footer_logo a{
 display: block;
 width: min(19.7rem, calc(197vw / 13.66));
}
@media (hover: hover) and (pointer: fine) {
 .footer_logo a:where(:any-link, :enabled, summary):hover {
  opacity: .7;
 }
}
.footer_logo p{
 font-size: 1.4rem;
 font-weight: 500;
 color: #ff3222;
 letter-spacing: 0.06em;
}

.copy {
 font-size: 1.2rem;
 font-weight: 500;
 letter-spacing: 0.06em;
 color: #333333;
}

@media screen and (max-width: 767px) {
.footer_inner {
 padding: 5.5rem 0 0;

}
.footer_inner::after {
 height: 6rem;
 top:-3rem;
 background-size: cover;
 background-position: center;
}
.footer_flex {
 width: 32rem;
 flex-wrap: wrap;
 gap: 3rem 0;
}
.footer_menu {
 width: 15.5rem;
 text-align: left;
}
.footer_menu:nth-of-type(5) {
 width: 100%;
}
.footer_menu a {
 font-size: 1.2rem;
 letter-spacing: 0.02em;
 margin-top: 0.5rem;
}
.footer_menu a::before {
 content: none;
}
.footer_menu li:first-of-type a {
 font-size: 1.4rem;
 margin-top: 0;
}
.footer_menu:first-of-type li:not(:first-of-type) a::after {
width: 1.9rem;
  height: 1.2rem;
  right:-2.5rem;
}
.footer_btn:nth-last-of-type(2) {
 margin-top: 3.5rem;
}
.footer_btn {
 width: 100%;
 margin-top:1rem;
}
.footer_btn a{
 gap:  0 1.3rem;
 border:.1rem solid #fff;
 padding: 0.6rem 0;
}
.footer_btn a span {
  width: 1.9rem;
  height: 1.2rem;
}
.footer_btn a span::before {
  width: 100%;
  height: 100%;
}

.footer_menu_detail {
  width:100%;
  border-bottom: .1rem solid #fff;
  padding-bottom: 3rem;
}
.footer_menu_detail ul {
 border-left:none;
 padding-left: 0;
 padding-bottom: 0;
}
.footer_menu_detail ul a {
 font-size: 1.4rem;
}
.footer_menu_detail a::before {
 content: none;
}
.footer_menu_other {
 width:32rem;
 display: flex;
 justify-content: space-between;
 flex-wrap: wrap;
 gap:.5rem  0;
 margin:2rem auto 4rem;
}
.footer_menu_other a {
 font-size: 1.2rem;
 gap: 0 .5rem;
}

.footer_menu_other a::after {
  width: 1.9rem;
  height:1.2rem;
}
.footer_menu_other a::before {
 border: #fff solid .1rem;
}
.footer_bottom {
 flex-direction: column;
 gap: 1rem 0;
 padding: 1rem 2rem;
}

.footer_logo {
 width:  100%;
}
.footer_logo a{
 width: 17.8rem;
}
.footer_logo p{
 font-size: 1.2rem;
}

.copy {
 font-size: 1rem;
}
}

.left_in {
 opacity: 0;
 transform: translate(-10%,10%);
 transition: .7s;
}
.right_in {
 opacity: 0;
 transform: translate(10%,10%);
 transition: .7s;
}
.scrollin {
 opacity: 1;
 transform: translate(0);
}

.hd_list a.no_link {
 pointer-events: none;
 color: #33333380;
}
.footer_menu li a.no_link {
 pointer-events: none;
 color: #ffffff80;
}


